本文へ移動

生成モデル

導入

生成モデルGenerative Model)は、データの生成過程をモデル化することで、新しいデータを生成することができるモデルである。一般的に、ある既存のデータの分布 を近似する確率モデル を学習することが目的である。 ここで潜在変数 を考えると

と表すことができる。しかし、この計算は一般に難しいため、潜在変数モデルを学習するためのアルゴリズムが必要になる。

オートエンコーダ(AE)

そもそもオートエンコーダAutoencoder; AE)は、入力データを低次元の潜在表現に符号化し、そこから元の入力を再構成するニューラルネットワークである。入力を潜在変数 へ写像するEncoderと、潜在変数 から入力データを再構成するDecoderから構成される。オートエンコーダは次元圧縮や特徴抽出に広く用いられる。 標準的なオートエンコーダは潜在変数に明示的な確率モデルを置かないため、そのまま新しいデータをサンプリングする生成モデルとしては扱いにくい。

オートエンコーダの構造

変分オートエンコーダ(VAE)

一方で、変分オートエンコーダVariational Autoencoder; VAE)は、潜在変数モデルと変分推論を組み合わせた生成モデルである。データ が潜在変数 から生成される確率モデルを考えることで、新しいデータをサンプリングできるようにする。多くの実装ではEncoderは平均 と対数分散 (あるいは標準偏差 に相当する量)を出力し、潜在変数

という対角ガウス分布からサンプリングされる。Decoderはこの潜在変数 を入力として、データ を生成する。

変分オートエンコーダの構造

あるデータ に対してそれが生成できるようになるとは、その尤度 を最大化することである。しかし、潜在変数を用いれば

と表せるが、これを直接計算することは難しい。

事後確率 を計算しようとも

と表せるが、分母の尤度 を計算することが難しい。そのため、 を近似するような を用意し、この二つの分布の差を最小化するように学習する。分布の差は通常、カルバック・ライブラー(Kullback-Leibler; KL)ダイバージェンスで測られる。 すなわち、

が成り立つ。私たちが知りたい尤度の対数をとった対数尤度 は、

で下から評価できる。右辺は、変分下界Evidence Lower Bound; ELBO)と呼ばれ、 そのものではなくELBOを最大化することが学習の目的となる。深層学習では、ELBOに負の符号を付けた目的関数を最小化する。

一般的に は標準正規分布 であると仮定されることが多い。すると、 が対角ガウス分布であるとき、KL penalty項は解析的に計算できる。

ただし、 の要素である。また、再構成誤差(Reconstruction error)項も計算できる。 の各要素が独立であると仮定すると

なので、

さて、デコーダーは を入力として であるような確率 を出力するようなモデルであるとする。これはすなわち、 がベルヌーイ分布であると仮定することになる。すると、

と表せる。これを用いると、

さて、本来ではこれを計算するには について期待値を取る必要があるが、これを実際にはモンテカルロ法でサンプリングした について、

と近似する。また、勾配法を用いて学習する際にはこのELBOの計算自体を何回も繰り返すことになるので としても十分であることが多い。 結果として、ある1サンプル についてのELBOは、

と計算できる。VAEをニューラルネットワークで実装する際には

という形でサンプリングを行う。これを再パラメータ化トリックReparameterization Trick)と呼ぶ。これにより、 を通じて が微分可能な関数として表されるため、誤差逆伝播法を用いて学習することができるようになる。

敵対的生成ネットワーク(GAN)

敵対的生成ネットワークGenerative Adversarial Network; GAN)は、生成モデルの一種であり、生成器と識別器という二つのニューラルネットワークが互いに競い合うことで学習するモデルである。 生成器 は、潜在変数 を入力としてデータ を生成するモデルである。一方で、識別器 は、入力されたデータが実際のデータ分布からのサンプルであるか、生成器によって生成されたものであるかを識別するモデルである。 をデータセットの分布とする。 がデータセットに属しているかを表すラベル は、

で定義される。すると は、入力されたデータが実際のデータセットからのサンプルである確率であると解釈できる。

これを用いると、

と表せる。 の対数尤度は、

とかける。ここで、 の集合全体でデータセットと生成されたデータの大きさが同じ 個であるとする。 を潜在変数の分布とすると、 は実際のデータセットからのサンプルであり、 は潜在変数の分布からのサンプルであるとする。すると、全体をmで割ると

これが の対数尤度である。 はこれを最大化するべきである。一方で、 は、 が生成されたデータを実際のデータと識別できないようにすることが目的であるため、 はこれを最小化するべきである。よって学習の目的は

である。しかし、 にのみ注目すると学習の目的は であるが、学習初期の勾配飽和を避けるため、 を目的関数として使用することも多い。これを非飽和損失Non-saturating Loss)と呼ぶ。 まとめると、それぞれの目的関数は以下のようになる。

拡散モデル

拡散モデルDiffusion Model)は、データ生成のための確率的な生成モデルである。データ分布からノイズを段階的に加えることでデータを破壊する前向き過程forward process)と、ノイズからデータを段階的に復元する逆過程reverse process)から構成される。 forward processは、データ に対して、段階 でノイズを加えることで を生成する。通常、ガウスノイズが用いられる。段階 から への遷移は、以下のような条件付き確率分布で表される。

ここで、 は段階 のノイズの強さを制御するスケジュールである。これはマルコフ過程であり、段階 の分布は初期データ分布からノイズを加えることで直接表される。

この条件下で、 から を復元する逆過程 は、Feller (1949) および Anderson (1982) による逆時間過程の理論に動機づけられ、Sohl-Dickstein et al. (2015) や Ho et al. (2020) では、 が十分小さいときガウス分布でパラメータ化される。正確には、逆向き過程でも同じ関数形になることが理論的背景であり、 自体は機械学習モデルとして導入される。

ここで、 は逆過程のパラメータであり、 は、段階 のノイズの強さやデータの構造に応じて、 から を復元するための平均と共分散を出力するモデルであり、 によってパラメータ化される。実際には、これらを直接学習するわけではない。すると、尤度は

である。ここでは、 のような添え字を と表す。これの最大化が学習の目的となる。対数尤度の変分下限 を考えると

となる。ここで、前向き過程 はマルコフ過程であるので、 となり、

である。これを代入すると

となる。 の部分は

と計算できるので

と求まる。 はガウス分布であり、

は分母が によらない定数であり、分子はどちらもガウス分布であるので はガウス分布である。つまり、 は二つのガウス分布のKLダイバージェンスである。 を標準正規分布に固定すれば に依らない定数であり、 は復元項とよばれる。Ho et al. (2020) では、最終的に厳密な変分下界そのものではなく、簡略化したノイズ予測損失を用いて学習している。ここで、 を、 に対して を生成する前向き過程のノイズ を予測するモデルとすると、実際の損失関数 そのものではなく

とできる。