VAE(変分オートエンコーダ)を理解するには、変分ベイズを理解せねばならず、そのためにはさらに遡って(以前少しかじった)EMアルゴリズムまで再度理解を深める必要があることがわかった。学習の備忘録として記載(よって、正しさは保証できない)。
EMアルゴリズム
最尤推定(i.e. p(X|Θ)を最大化するΘの推定)のための手法の一つ。
混合正規モデルの推定を行う文脈においては、Θはパラメータμ(混合される各正規分布の平均)、Σ(混合される各正規分布の標準偏差)、π(各正規分布に対する重み)を含み、これらの値を推定する。
この問題は、クラスタリングの問題とのアナロジーで捉えることができる。
K-means法においては、各データ点のクラスタへの割り当て、クラスタのcentroidの更新の2ステージによって、クラスタ内分散の和を最小化する問題を解いている。
一方、EMアルゴリズムにおいては、とりあえず与えたパラメータから尤度を計算(Eステップ)、尤度を最大化するパラメータを求める(Mステップ)→さらにそのパラメータを用いてEステップを行う→ ... というプロセスを繰り返す。
使用した資料: https://qiita.com/kenmatsu4/items/59ea3e5dfa3d4c161efb
以前勉強した時は、3-6-1〜3-6-3の箇所において、なぜ準備として尤度関数を微分をする必要があるのだ?というのがわからなかったが、これは「Mステップにおいて、尤度を最大化するパラメータ(最尤推定値)を求めるための準備」
学習中に湧いた疑問
・ MCMCとの関係は?
EM アルゴリズムは山登り法の一種であり、局所最適解(local minimum)に陥る可能性があるのが問題ですが、MCMC は局所最適解にとどまらないという利点を持っています。
引用元:https://soonraah.hatenablog.com/entry/2014/10/06/081020
・ 今回は、混合正規分布モデルの話だったので、クラスタリングの問題とのアナロジーで理解できたが、EMアルゴリズムを最尤推定に普遍的に使える理由は何か?
→ パラメータから尤度を求め、求めた尤度からそれを最大化するパラメータを求めてあとそれを繰り返す、というプロセスは普遍的に使えそう
→ 新たな疑問としては、なぜこのプロセスを繰り返すと、山を登れるのか?というところ(ただ、直感的にはMプロセスで最大化しているわけなので、落ちることはなさそう)。ここで下界とかの話になるのだろうか? 収束する保証はあるのか?とかそういった観点も疑問
→ 4章に解説あり。
クラスタリングにおいて、クラスタの割り当ての箇所が、q(Z)(Zは潜在変数、q(Z)はZに関する確率変数...この箇所がイマイチわかっていない)を最大化していく過程(すなわちEステップ)に対応しているという理解。
・ なぜK-meansと違って、単純に解けないのか?
→ log-sumが出てくるから?
変分ベイズ
モチベーションはEMアルゴリズムと同じでパラメータ推定。
EMアルゴリズムでは、パラメータを点推定するが、変分ベイズでは、ベイズ推定のコンセプトに基づき、「パラメータの分布」を仮定する。
→ これによって、単峰性ではない問題にも対応可能であり、かつ過学習にもなりにくい(点推定が有効ではないバイオインフォマティクスの問題に使われるらしい)
最大化するのは尤度ではなく、対数周辺尤度。
この資料がわかりやすかった。
https://tips-memo.com/python-vb-gmm#i-6
EMアルゴリズムでは,真の事後分布を計算できるという立場を取るため,KLダイバージェンスをにする近似事後分布を求めることができました。一方で,変分ベイズでは真の事後分布を計算することができないという立場を取るため,近似分布が真の事後分布と厳密に等しくなることはないと仮定します。
引用元: https://academ-aid.com/ml/vb
最尤推定 (EM) と違い, 過学習を自動的に防ぐ
https://www.ism.ac.jp/~daichi/paper/vb-nlp-tutorial.pdf
学習中に湧いた疑問
・ 何がベイズ?
→ パラメータの点推定ではなく、確率変数として推定しているところ。
・ 変分ってどの箇所のことを指してる?
→ まだ理解に至っていない