![見出し画像](https://assets.st-note.com/production/uploads/images/118982421/rectangle_large_type_2_c1baf63315363bf1b214de5a58a6f78a.png?width=800)
変分オートエンコーダ①紹介編
VAE(Variational AutoEncoder)は、2013年の論文「Auto-Encoding Variational Bayes」(変分ベイズ自動エンコーディング)の中で発表されたデータ生成の手法を使ったモデルの名前です。
オランダにあるアムステルダム大学のDiederik P KingmaとMax Wellingは、彼らの手法をAEVB(Auto-Encoding Variational Bayes)と呼んでおり、そのまま論文のタイトルにもなっています。
AEVBの手法は、画像以外のデータでも適用できるのですが、具体例として、画像を生成するモデルが紹介されており、このシリーズでも画像生成の理論という観点からの解説をします。よって、今回のシリーズでは、VAE(Variational AutoEncoder、変分オートエンコーダ)を画像生成モデルの意味で使い、その他のデータ生成については触れません。
さて、VAEは画像生成AIを例として登場したのですが、その後の生成AIであるGANが登場した後は、画像生成としてはあまり表に出てこなかった印象ではあります。さらに、ここ数年のStable DiffusionなどのモデルによってGANの印象も薄くなりました。よって、画像生成AIというとStable Diffusionのことを思い浮かべる方が多いと思われます。それでも、VAEを学ぶ意味はあるのでしょうか。
VAEは、もう10年も前に発表された手法・モデルですが、その理論は現在もいろいろなAIモデルに影響を与えています。Stable Diffusionなどとも関連があり、おそらく、多少の影響は与えていることでしょう。そんなわけで、VAEを理解しておくと関連するモデルの理解の手助けにもなります。
なぜなら、VAEには、さまざまな有益な知識とテクニックが組み込まれているからです。オートエンコーダ、ベイズ理論、変分推論がディープラーニングと絡み合っています。理論を知らないと何をやっているのかさえ理解できませんが、一旦理解してしまうと似たようなアイデアを使っているモデルの理解が容易となります。
とは言っても、VAEも一般的なディープラーニングと同様に、訓練データから特徴を特定して学習します。そうして得た知識を新しい画像データを生成するために利用します。そういった意味では、普通のディープラーニングと大差ない部分もあります。
ただし、VAEの訓練は、訓練データから特徴を抽出するエンコーダと画像を生成するデコーダの二つの部分に分かれます。その際、エンコーダは、入力画像から同じような画像を生成するためのパラメータの分布を予測します。そして、訓練が終了すると、デコーダのみを使って画像の生成を行えるようになります。
こういったことは、VAEについて初めて学ぶ方には意味が分からないことでしょう。なので、次回から全体像から細部へと詳しく解説していきます。最終的にはPyTorchを使って簡単なVAEの実装を行います。
お楽しみに!
この記事が気に入ったらサポートをしてみませんか?