StatModeling Memorandum

StatModeling Memorandum

StanとRとPythonでベイズ統計モデリングします. たまに書評.

あてはめの原理・あてはめを実装する計算法・モデル

先日@ibaibabaibaiさんからこんなツイートがありましたので自分用のメモとして残しておきます。

勝手に整理して表にしました。

あてはめの原理最尤法ベイズ
計算法EMアルゴリズム
最急降下法
共役勾配法
など
MCMC
変分ベイズVB; Variational Bayes)
Expectation Propagation
など

最尤推定に関しては渡辺澄夫先生の以下の記事が大変勉強になります。 [参考] 最尤推定はいつなら大丈夫?

なおStanの計算法はHMC(Hamiltonian Monte Carlo)でmanualの中ではMCMCの一種と記述があります(50.5. Stan’s Hamiltonian Monte Carlo Samplers)。一般的にMCMCを使った方が推定値は正確ですが、向いていない(収束しづらい)ケースもいくつかあります。例えば以下のような場合です。

  • 2次元上に分布するデータに10個ぐらいの混合ガウス分布をあてはめる場合。multimodality(多峰性)が問題になります(この記事を参照)。簡単にいうと、何通りか正解に近い配置があって、その各配置の間の距離なり障壁が(サンプリングがスムーズにいかない程度に)あるイメージです。
  • HMM(隠れマルコフモデル)やLDAのように添え字が入れ替わってもOKな場合。non-identifiability(識別性がないこと)が問題になります。MCMCのchain間の比較ができませんので収束判定が難しくなります。

経験的には両方の問題を同時に含んでいる場合が多いです。そのような場合で収束にとても時間がかかるような時はMCMCよりもVBの方がよい選択肢になるでしょう。VBはわずかに正確さが落ちますが、計算がとても高速です。VBの1つの実装であるVB-EMアルゴリズムは初期値に依存するので初期値をいくつか振ることになります。Stanでも2.9.0から実装されました。

モデルは全然別物で、「ある現象のしくみを近似したもの」です。名前がついているもので言えばGLM, GLMM, HMM, LDAなどです。これらのモデルに含まれるパラメータを推定する際に、上記のような「あてはめの原理」と「計算法」の選択肢があることになります。まあしかし最尤推定で求めた値を信じて実際に痛い目を見ない限り、最尤推定しつづけますよねぇ…。逆にベイズ推定ばっかりで痛い目を見ることは、MCMCの計算が収束しないとかそういうことを除けばあんまりないと思います。

追記

コメント(?)いただきました。