先日の記事、EMアルゴリズム徹底解説で触れられなかった、EMアルゴリズムによるMAP推定について少し解説します。
つまり、モデルのパラメーター$\theta$の事後分布を、$\theta$に関して最大化してMAP推定値を求める仕組みです。これは下記のような${\hat {\theta }}_{\mathrm {MAP} }$を求める方法です。
{\hat {\theta }}_{\mathrm {MAP} }(x)=\arg \max _{\theta }f(\theta | \boldsymbol{X})
なので、最尤推定の時にターゲットとした$\ln p(\boldsymbol{X}|\theta)$ではなく、$\ln p(\theta|\boldsymbol{X})$を対象にします。MAP推定の場合に変分下限がどうなるかをみてみると、下記のように最尤推定の時の変分下限$\mathcal{L}$に、$\ln p(\theta) - \ln p(\boldsymbol{X})$が足されたものが導出されます。
次に、$\ln p(\theta | \boldsymbol{X}) $ と $ \mathcal{L}'(q, \theta)$の差を見てみると、最尤推定の時と同一のKLダイバージェンスが導けることがわかります。これにより、EMアルゴリズムのEステップは最尤推定の時と変わらないことがわかります。
次に$\theta$に関する変分下限の最大化を見ていきます。これは先ほどの$\mathcal{L}'$を分解すると見えてきます。最尤推定の時の変分下限$\mathcal{L}$と比べ$\ln p(\theta)$が加わっています。これをMステップで利用して新しい$\theta$を求めればMステップとなります。
あとは最尤推定の時のEMアルゴリズムと同じですね