見出し画像

変分オートエンコーダ②大きな疑問

前回は、変分オートエンコーダ(以下、VAE)の簡単な紹介とそれを理解する意義について解説しました。今回は、VAEが解決しようとしているそもそもの問題について解説します。

VAEの論文は次の大きな疑問を投げかけるところから始まります。

扱いにくい事後分布を持つ連続潜在変数と大規模なデータセットが存在する場合、有向確率モデル効率的な推論と学習をどのように実行できるでしょうか?

(以下原文)
How can we perform efficient inference and learning in directed probabilistic models, in the presence of continuous latent variables with intractable posterior distributions, and large datasets?

Auto-Encoding Variational Bayes

この論文はこの大きな疑問に対する解決策を提供するのですが、問題自体を理解するのに、太字で示した言葉を知っている必要があります。それぞれの言葉の意味はこのシリーズの中で解説していきます。

大まかな意味としては、「十分なデータセットがあるとして、確率の関係を利用したモデルを効率よく訓練するにはどうすれば良いのか」という疑問です。

そのデータセットとは、例えば、MNISTのように手書きの数字データを大量に集めたものなどを想定しています。

MNISTからの手書き数字画像

MNISTは、PyTorchのTorchvisionなどを使えば、簡単に使うことができます。なので、データセットの入手に関しては問題はありません。よって、「大規模なデータセットが存在する場合」という条件がついています。

問題なのは、そのようなデータから学習することで、同じようなデータを生成することができるのか、ということです。つまり、データからある種のパターンを見つけることができれば、同じようなデータ(この場合、手書き数字の画像)を生成する役に立つというわけです。それを効率的に行いたいので、「効率的な推論と学習」をどのように実行できるのかと、疑問を呈しています。

また、「有向確率モデル」(Directed Probabilistic Models)と言っているのは、モデルが入力データから学習し、新しいデータを生成するまでを、一方通行(有向)の確率モデルとして定義することを指しています。これについては今後の記事で解説していきます。

有効確率モデル

この有効な確率モデルを仮定した場合、次のような一連の処理を想定しています。まず、入力データから得た情報から、新しいデータを生成するためのパラメータに関する情報を出力します。このパラメータはデータに秘められており、また連続値をとるので「連続潜在変数」(Continuous Latent Variables)と呼ばれます。そして、そのパラメータの情報を使うことで新しいデータを生成することが可能となります。

なお、入力データから得たパラメータの値自体が一意に決まるのではなく、平均と分散を持ちます。つまり、パラメータ自体に確率分布があると想定しています。その確率分布は、入力データ(MNISTの場合は、入力画像)によって変わってきます。よって、入力データからパラメータの分布、そしてパラメータの分布から生成されるデータの分布が決まってくるので有効確率モデルになります。

論文では、次のような図を使って有効確率モデルを表現しています。これについても後々に解説していきます。

論文の図1

前述したように、入力データの特徴によって、新しいデータの生成をするのに必要なパラメータの値が異なってきます。よって、入力データを受け取った後(事後)のパラメータの分布という意味で、ある入力データから予測されたパラメータの分布を事後分布と呼びます。

ただし、データを生成するためのパラメータの事後分布は簡単には予測できません。また、入力画像によってパラメータの分布が変わってくるので入力データとパラメータの分布には複雑な関係あると想定されます。そのため、「扱いにくい事後分布を持つ連続潜在変数」という表現をしています。

もう一度、VAEの論文が問いかける大きな疑問の意訳をここに引用します。

扱いにくい事後分布を持つ連続潜在変数と大規模なデータセットが存在する場合、有向確率モデル効率的な推論と学習をどのように実行できるでしょうか?

Auto-Encoding Variational Bayes

なんとなく雰囲気は伝わりましたでしょうか。はじめてこの疑問に触れた方には、ここまで読んでも意味がわからないかもしれません。今後の記事では、これらの言葉の詳細を解説していきます。そして、最終的にはPyTorchによる簡単なVAEの実装を行います。

お楽しみに!

ここから先は

0字

キカベン・読み放題

¥1,000 / 月
初月無料
このメンバーシップの詳細

この記事が気に入ったらサポートをしてみませんか?