こんにちは, こんばんはこめちゃんです. 12月22日ということでクリスマスまであと少しですね. 僕はクリスマスイブも当日もバイトです. ちなみに24日にはEveさんの配信があるので見てください
さてそんな今日はMerry Christmasの前に...Markov chain Monte Carlo methods(以下MCMC)についての紹介とベイズ統計学の話をします. 聞き馴染みがなく難しそうと思うかもしれませんが少しでも面白いと感じてくれればいいなと思います. なお厳密な議論や数式は確率論をあまり知らないので多用せず, 雰囲気で導入の部分だけ話します. 数学屋さんごめんなさい.
日本語ではマルコフ連鎖モンテカルロ法と言いますが, 多くの方はモンテカルロ法は聞いたことがあると思います. マルコフ連鎖とは未来が現在の状態にのみ依存する(過去の状態に依存しない)過程のことを言います. これは記憶をしない(無記憶性)とも捉えられます.
このマルコフ連鎖モデルの例を紹介します. "明日の天気"は"今日の天気"にのみ依存すると仮定します.
今日が晴れ→「明日は80%で晴れ」,「20%で雨」
今日が雨→「明日は40%で晴れ」,「 60%で雨」
このようなモデルを繰り返すことで1週間後やさらにその先の確率分布をシュミレーションします.
遷移図
例えば今日の天気が晴れのとき, 2日後晴れる確率はなんでしょうか. これは実際に場合分けし計算すれば求めることができますが, 線形代数を勉強してるのでせっかくなら行列を駆使しましょう.
情報をベクトルとして$\mathbf{x} = \begin{pmatrix} 晴れの確率 \\ 雨の確率 \end{pmatrix}$ と表すことにします. 現在の確率情報を$\mathbf{x_0}$ とすると,
$\mathbf {x_0} = \begin{pmatrix} 1 \\ 0 \end{pmatrix}$ ですね. ここで確率推移行列として $P = \begin{eqnarray}
\left(
\begin{array}{cc}
0.8 & 0.4 \\
0.2 & 0.6
\end{array}
\right)
\end{eqnarray} $
を用います. これは列ベクトルとして晴れの場合と雨の場合で考えたものです.
これを$\mathbf{x_0}$に左から作用させます. 1日後の確率情報を$\mathbf{x_1}$とすると,
$$
\mathbf{x_1} = P\mathbf{x_0} =\begin{pmatrix} 0.8 \\ 0.2 \end{pmatrix}
$$
となりますね. これで仮定に一致することが確認することができましたね. では2日後晴れである確率情報$\mathbf{x_2}$を求めるにはどうすればいいでしょうか.
そう, もう一度作用させればいいですね. つまり$\mathbf{x_0}$に対して, $P^2$を作用させます. 計算過程は省略しますが, $\mathbf{x_2} = \begin{pmatrix} 0.72 \\ 0.28 \end{pmatrix}$ が得られると思います. よって0.72の確率で2日後晴れることがわかりました. また同様にn日後の天気を考えたい際は$P^n$を考えればいいですね.(対角化が役に立ちます!)
しかしながらこのnが大きくなるとある問題が生じます. それはある地点で確率が一定になってしまうということです. このような状態を定常分布と言います. 高校化学の平衡に近いと思います. 各値は変化しているが全体として一定の状態であるということです. 数式で表すと以下のようになります.
$$
P \mathbf{\pi} = \mathbf{\pi}
$$
先ほどの例で考えると$\mathbf{\pi} = \begin{pmatrix} \frac{2}{3} \\ \frac{1}{3} \end{pmatrix} $が得られます. つまりこのモデルでは長い目で見れば $\frac{2}{3}$で晴れるということです.(固有値の議論と同じです)
さてMCMCではこの定常分布$\mathbf{\pi}$は実は先に決まっているような場合を考えます. そして都合の良い確率遷移行列$P$を求めるのがMCMCのモチベーションです.
確率遷移行列と定常分布は過程とゴールの関係があります.
MCMC, もっと言うとベイズ統計の基礎となるベイズの定理のモチベーションは時間逆行性の表現にあると考えています. ベイズ統計とは結果から原因を推測する営みなのです.
さて若干脱線しましたがMCMCではつまり$\mathbf{\pi}$は既知, すなわち結果が分かっている状態でその原因すなわち確率遷移行列を求めます. 具体的な計算は難しい(私もうまく話せる気がしないので)割愛します. すごい雑にまとめるとメトロポリス・ヘイスティング法(以下MH法)の導出と同じで, アダマール積(各成分同士の積をとるやつ)と確率の保存を用いて計算しています. フィルタリングと正規化とでも表現できるでしょうか. 気持ちを知ってほしいのとこんなのやるのはベイズ統計やる人ぐらいなので知らなく大丈夫です. (詳しく知りたい方は一緒に勉強しましょう, DMください)
以上によって求めた確率遷移行列から乱数(サンプル)を大量に発生させ原因を探るのがベイズ統計の主な考え方です. 改めてまとめましょう.
ベイズ統計では結果から原因を探ることをモチベーションとしていました. まずデータ(結果)と事前知識から原因の定常分布$\mathbf{\pi}$を定義します. そして, マルコフ連鎖の考え方より, 確率遷移行列を考えます. そしてサンプルを大量に取ること(モンテカルロ法)により真の原因を推測します. 確率遷移行列を得ることができたら本来必要な複雑な積分を省略できます. これが非常にMCMCが重宝される理由の一つです.
さて突然ですが, みなさんはラプラスの悪魔はご存知でしょうか. これは全ての原子の情報を把握し解析できれば未来や過去は計算できるというものです. 私はラプラスの悪魔に魅了された人間の一人ですが残念ながらこの決定論は量子力学により否定されてしまいました.
また人類はまだ世界を解析できる能力を有していません. しかし人類は決定を諦める代わりに不確実性を受けいれ武器にしました. MCMCにより複雑な計算をせずとも偶然性により原因を明らかに知っていったのです. この時間逆行的思想は魅力的です. まさにタイムマシンとも言えます. ベイズ解析の分野の一つには因果推論という事象の原因を結果から推測する分野があります, ぜひ今回を機に目を通してみてはいかがでしょうか.
今回はベイズ統計って何すんのっていうテーマで語らせていただきました. これでもまだ全体の内容の僅かに過ぎません.
自分はまさにこのような因果推論について研究したいなと思っています. なんか面白そうだなと思った方がいればぜひ一緒に勉強しましょう.
最初執筆するにあたってテーマ選定に苦労しました効率のいい成績の取り方というテーマにするか悩みました.結局自明な勉強すればいいという答えに辿り着いてしまうので見送らせていただきました. 今の時代はAIをうまく使って勉強していきましょう.
確率を高校で若干苦手意識を持った人って少なくないと思います. ですが大学数学では確率とは面積で定義されます. つまり積分とかそっちの話が結構近いんですよね.
割と面白いんでぜひ確率を勉強してみてください, なんならいずれ自主ゼミとか開きたいなと思ってるので機会があればぜひよろしくお願いします.
ではまたどこかで, ありがとうございました.