表題の通り。この辺りややこしくていつもわからなくなるので、身につけるためにも自分なりの理解をまとめたメモを書く。
対数尤度と下限とKLダイバージェンス
まず、既知の変数を、未知の変数(ここでは潜在変数か未知パラメータかは区別していない)をとすると以下が成り立つ。
ただし、はKLダイバージェンスで、
は、対数尤度の下限で
であり、常に
が成り立つ。これは関数が上に凸でありイェンセン不等式よりであるため、 として得られる。
また、式(1)は、式(2)と式(3)を実際に足してみると得られる。
EMアルゴリズム
考え方
- 得られているものは既知の変数の、求めたいのは未知パラメータ。
- 目的関数は対数尤度であり、これを最大化するを求めたい。
- ところが、これを直接的に最適化するのは一般に困難。
- ここで、潜在変数を導入し、という量を考える。
- 式(4)より、が成り立つ。
- そのため、を最大化する関数とパラメータを求めることを考える。
- ただし、この両者を一気に最適化する解析解は得られないので、座標降下法の考えで一方を固定し他方を最適化するという操作を繰り返して求める。
EMアルゴリズムの更新式
ということで、更新アルゴリズムは以下の通り。
- まずは、パラメータを既知の値と固定した場合に、を最大にする関数を求める。
- 式(1)より、。
- なので、結局とするのが最適。
- 色々分け方があるようだが、これをEステップと呼ぶことが多いらしい。
- 次に、関数を上で求めたに固定し、を最大化するを求める。
- なので、 を最大化するを求めればよい。
- 期待値の最適化なのでさえ最適化できるなら適用可能。
- こちらをMステップと呼ぶ。
変分ベイズEMアルゴリズム
変分近似の考え方
- 得られているものは既知の変数の、未知変数は潜在変数もパラメータもひっくるめてとする。
- モデルが与えられていて、未知変数の事後分布を求めたい。
- これは、であり、厳密に求めるのは困難(が難しい)。
- そこで、を別の分布で近似することを考える。
- 当然はに近い方がいいので、式(2)のKLダイバージェンスを最小化する関数を求めることになる。
- その際、に何の制約も課さないと、 という無意味な解が得られるので、に何らの制約を課して表現能力を限定する。
- 典型的なのは、のように未知変数間の独立性を制約にする近似(平均場近似)。
- 式(1)より、KLダイバージェンスを最小化はを最大化することと等価。
- は定数なので。
- ということで、定めた制約のもとを最大化するを求めればよい。
ここまでは変分近似の考え方。おそらく、変分ベイズEMアルゴリズムと言うと、以下のようなもう少し限定されたアルゴリズムのことを言うと思う。
変分EMアルゴリズムの考え方
- 今、未知変数がパラメータと潜在変数だとする。
- これらの事後分布を求めたいが厳密に求めるのは困難なので、という分布で近似することを考える。
- の制約としては、という独立性を制約とする。
- モデルに応じてどういう独立性を仮定するのが適切なのかが変わってくる(をいくつかの要素が独立だと仮定したり)。
- 式(3)より、。
- 後はこれを座標降下法の要領で、を固定してに関する最適化とを固定してに関する最適化を交互に繰り返せばよい。
変分EMアルゴリズムの更新式の導出
ここからはもう少し、この式を展開する。
この式において、まずという既知の関数として、について最大化することを考える。
この最後の式をよく見ると、分子をで積分した時になれば(つまり確率分布であれば)、これはKLダイバージェンス(にをかけたもの)である。そのため、
と定義すれば、
になり、下限を最大化するためにはKLダイバージェンスを0にするを求めればよい。すなわち、
とすればよい。この潜在変数側の更新を変分Eステップという。ちなみに両辺logを取ると、
と書ける。がどんな分布かを求める際、このlogを取った形式で計算をすることが多い。
同様の式展開をという既知の関数としてについて最大化する場合に適用すると、
なので、に関する更新式は、
となる。こちらは変分Mステップと呼ばれる。こちらも両辺logを取った式を書いておくと、