生成モデルは教師なし学習を使用してあらゆる種類のデータ分布を学習する強力な方法であり、わずか数年で大きな成功を収めた。 生成モデルのすべての種類は、いくつかのバリエーションを持つ新しいデータ点を生成するように、訓練セットの真のデータ分布を学習することを目的としています。 しかし、暗黙的にせよ明示的にせよ、データの正確な分布を学習できるとは限らない。そこで、真のデータ分布にできるだけ近い分布をモデル化しようとする。 このため、ニューラルネットワークの力を利用して、モデルの分布を真の分布に近似させることができる関数を学習することができる。
最もよく使われ効率的なアプローチとして、変分オートエンコーダ(VAE)と生成逆行ネットワーク(GAN)の2つがある。 VAEはデータの対数尤度の下限を最大化することを目的とし、GANは生成器と識別器の間の均衡を達成することを目的としています。 このブログ記事では、VAE と GAN の動作とその背後にある直感を説明します。
バリエーション オートエンコーダ
読者はすでにバニラ オートエンコーダの動作に慣れていると仮定しています。 オートエンコーダを使って、入力画像を、入力データ分布に関する潜在的な情報を格納できる、より小さな次元の表現に符号化できることは知っています。 しかし、バニラオートエンコーダでは、エンコードされたベクトルはデコーダを使って対応する入力にマッピングされるだけである。 これを達成するために、モデルは学習データの確率分布を学習する必要がある。 VAEは、ニューラルネットワークを用いて画像のような複雑なデータ分布を教師なし方式で学習する最もポピュラーなアプローチの一つである。 これはベイズ推定に基づく確率的グラフィカルモデルであり、学習データの基礎となる確率分布を学習し、その分布から新しいデータを容易にサンプリングできるようにすることを目的としている。 そのアイデアは、潜在変数(直接観測されないが、数学的モデルによって推測される変数)と呼ばれる訓練データの低次元潜在表現を学習することであり、実際の訓練データを生成したと想定している。 これらの潜在変数は、モデルが生成する必要のある出力の種類に関する有用な情報を格納することができる。 潜在変数zの確率分布をP(z)と表記する。 推論時に新しいデータ点を簡単にサンプリングできるように、分布P(z)を学習する事前分布としてガウス分布が選択される。
さて、主目的は学習データXの尤度を最大化するいくつかのパラメータでデータをモデル化することである。 つまり、低次元の潜在ベクトルがデータxを生成したと仮定し(x∈X)、この潜在ベクトルを、評価すべきθをパラメータとする決定論的関数f(z;θ)を用いてデータxに写像する(図1参照)。 この生成過程の下で、我々の目的は、Xの各データの確率を最大化することであり、それは、
Pө(X) = ∫Pө(X, z)dz = ∫Pө(X|z)Pө(z)dz (1)
ここに、f(z;θ)は分布Pө(X|z)に置き換えられている。
を用いてデータ分布にマッピングされた潜在ベクトル この最尤推定の直感は、もしモデルがこれらの潜在変数から学習サンプルを生成できるならば、いくつかのバリエーションを持った類似サンプルも生成できることである。 言い換えれば、P(z)から多数の潜在変数をサンプリングし、これらの変数からxを生成すれば、生成されたxはデータ分布Pdata(x)に一致するはずである。 ここで、我々は2つの質問に答える必要がある。 潜在変数の分布をどのように捕えるか、そして、式1をzのすべての次元にわたってどのように積分するか。
明らかに、出力画像を生成するために潜在ベクトルにエンコードしたい関連情報を手動で指定するのは退屈な作業である。 むしろ我々は、推論時に簡単にサンプリングできるように、この潜在ベクトルが正規分布としてうまく近似できることを仮定して、zを計算するためにニューラルネットワークに依存する。 n次元空間におけるzの正規分布があれば、十分に複雑な関数を用いて任意の種類の分布を生成することが常に可能であり、この関数の逆数を用いて潜在変数自体を学習することができる。
式1において、積分はzのすべての次元にわたって行われるので実行不可能である。 しかし、モンテカルロ積分の方法を使えば計算できるが、これは実装が容易でない。 そこで、式1のPө(X)を近似的に最大化する別の方法をとる。 VAEの考え方は、我々が知らないP(z|X)を使ってP(z)を推論することである。 P(z|X)は変分推論と呼ばれる方法で推論しますが、これは基本的にベイズ統計学の最適化問題です。 まず、P(z|X)を見つけやすい単純な分布Q(z|X)を使ってモデル化し、KL-divergence metric approachを使ってP(z|X)とQ(z|X)の差を最小にし、我々の仮説が真の分布に近くなるよう試みます。 これには多くの数学的方程式が続きますが、ここでは説明せず、原著論文でご覧ください。 しかし、VAEの背後にある直感を得れば、これらの方程式はそれほど難しくないと言わざるを得ません。
GANのバリエーションとして最も広く使われているのが、ノイズベクトルに条件ベクトルを加えるだけで構成される条件付きGANである(図7を参照のこと)。 cGAN以前は、ノイズzのランダムなサンプルからランダムに画像を生成していたが、何か所望の特徴を持った画像を生成したい場合はどうすればよいだろうか。 どのような画像を生成したいのか、このような余分な情報をとにかくモデルに与える方法はないのだろうか。 答えはイエスであり、条件付きGANはそのための方法である。 生成器と識別器の両方に提供される追加情報に基づいてモデルを条件付けることで、データ生成プロセスを指示することが可能になる。 条件付きGANは、テキストから画像生成、画像から画像への翻訳、自動画像タグ付けなど、様々なタスクで利用されている。 両者の統一的な構造を下図に示す。
Fig. yを条件付けベクトルとするcGANの基本例
GANの素晴らしい点の1つは、少ない学習データでも学習できることである。 確かにGANの結果は有望ですが、学習手順は簡単ではなく、特にネットワークのハイパーパラメータを設定することが重要です。 さらに、GANは簡単に収束しないので、最適化が難しい。 もちろん、GANをハックするためのヒントやトリックもありますが、必ずしも役立つとは限りません。 これらのヒントのいくつかは、ここで見つけることができます。 また、生成された画像が知覚的にリアルかどうかをチェックする以外、結果の定量的な評価基準はありません。
結論
深層学習モデルは、教師あり学習では本当に人間レベルのパフォーマンスを達成していますが、教師なし学習では同じことは言えません。 それでも、深層学習科学者は、教師なしモデルのパフォーマンスを向上させるために懸命に取り組んでいます。 今回のブログポストでは、教師なし学習のフレームワークとして最も有名な生成モデルの2つが実際にどのように機能するのかを見てみました。 Variational Autoencodersの問題点と、Adversarial Networkがなぜリアルな画像を生成するのに優れているのかを知ることができた。 しかし、GANには学習の安定化などの問題があり、これはまだ活発な研究分野です。 しかし、GANは実に強力で、現在、高画質画像(動画参照)や動画の生成、テキストと画像の翻訳、画像強調、画像からのオブジェクトの3Dモデルの再構成、音楽生成、抗がん剤発見など、さまざまなタスクで利用されている。 これ以外にも、多くの深層学習研究者が、この2つのモデルを統一し、両者の長所を引き出すための研究を行っています。 ディープラーニングの進歩がますます加速する中、GANは半教師付き学習や強化学習など、人工知能の閉ざされた多くの扉を開くと私は考えています。 今後数年間で、生成モデルはグラフィックデザインや魅力的なユーザーインターフェースのデザインなどに非常に役立つようになるでしょう。 また、Generative Adversarial Networksを使って、自然言語のテキストを生成することも可能になるかもしれない
。