ベイズ統計の理論と方法: ノート2.5

以下の本を読みます。キャラクターは架空のものです。解釈の誤りは筆者に帰属します。おかしい点がありましたらコメント等でご指摘いただけますと幸いです。

ベイズ統計の理論と方法

ベイズ統計の理論と方法

前回:ノート2 / 次回:まだ
f:id:cookie-box:20190101155733p:plain:w60

前回は1章の 1.2.2 節以降を読みましたが、そこで学んだ主なことは以下でした。

  • ベイズ推測は確率モデルが指数型分布である場合は、事前分布から事後分布への更新が「ハイパーパラメータの更新」の形になる。
  • サンプル X^n から逆温度 \beta=1ベイズ推測を行うとき、
    x の真の分布と予測分布 p(x|X^n) の交差エントロピー(汎化誤差) G_n の期待値は、
    サンプル X^{n+1} に対して \varphi(w) , \, p(x|w) を仮定したときの自由エネルギー F_{n+1}(1) の期待値から、
    サンプル X^n に対して \varphi(w) , \, p(x|w) を仮定したときの自由エネルギー F_n(1) の期待値を差し引いたものに等しい。
後者は、「ベイズ推測をするということはどんな予測をするということなのか」に踏み入ってきていますね。つまり、「ベイズ推測をするということは、誤差が平均的にこれくらいになる予測をするということなのだ」ということですが…しかし、私たちの手元にあるのはある1通りのサンプルの出方のみなので、自由エネルギーの「期待値」を知ることはできません。

f:id:cookie-box:20190101160814p:plain:w60

第2章ではもう少し詳しく、そもそも確率モデルによって真の分布が実現可能なのか、パラメータ集合 W の中に最適な w があるのかなどを考えて、どんな条件下で何が成り立つのかを議論するのかな。

f:id:cookie-box:20190101155733p:plain:w60

勝手に先をぱらぱら読まないでください…しかし、1.6 節の「本書の概略」をみておくと、2章で汎化と推測の間に何が成り立つかを調べて、3章では事後分布が正規分布で近似できる理想的な場合、4章ではそうでない場合により詳しく何がいえるかをみていくのでしょうか。5章は現実の計算方法のようですね。6章はベイズ推測によって現実の目的を達成したいときここまでやるべきということ、といった感じがしますが…。7章は一歩下がって、なぜベイズ推測をするのか、ベイズ推測に限らず統計的推測をするときの心構えのようなものがかかれている感じがしますね。なぜこれが最終章なのかわかりませんが…学生からの質問が多い内容だから付け足したとかでしょうか…。

f:id:cookie-box:20190101160814p:plain:w60

その理由のベイズ推測は難しそうだね。早速2章に進む?

f:id:cookie-box:20190101155733p:plain:w60

いえ、少し気になる点が。17ページの「『パラメータ集合がコンパクトであり事前分布が一定値ならば、ベイズ推測は最尤推測と同じである』という言明は、本書の定義を採用するならば、正しくない」というくだりです。この本の定義においては「『ベイズ推測は最尤推測と同じである』ということはない」ということなので別にいいといえばいいんですが…でも、ベイズ推測の定義によってはその条件下でベイズ推測と最尤推測が同じになりうることを示唆していますよね。それってどういうことでしょうか? この本の定義ならベイズ推測と最尤推測は以下ですよね。

  •  \displaystyle p^{\ast}(x) = \int_W p(x|w)p(w|X^n)dw \, , \quad p(w|X^n) = \frac{1}{Z_n(\beta)} \varphi(w) \prod_{i=1}^n p(X_i | w)^{\beta}
  •  \displaystyle p_{ML}(x) = p(x|w_{ML}) \, , \quad \displaystyle w_{ML} = \underset{w \in W}{\rm arg max} \prod_{i=1}^n p(X_i | w)
これらが同じにはあまりみえませんが…。

f:id:cookie-box:20190101160814p:plain:w60

…同じにみえるかどうかはおいておいて、ベイズ推測と最尤推測の例を考えてみようか。事前分布は一定値で…データが離散値だからあまりよくない例かもしれないんだけど、コインを投げて表が出る確率を予測したいとして、確率モデルを p( {\rm head} |w) = w, p( {\rm tail} |w) = 1-w とし、 w \in [0, 1] とする。事前分布は \varphi(w) はこの区間内だけ1をとり、この区間外では0をとる分布ね。例えば観測されたデータが「表、裏、裏、裏」だったとすると、最尤推測の結果は尤度関数  w(1-w)^3 を最大にするのが w_{ML} = 1/4 だから p_{ML}( {\rm head}) = 1/4 だけど、 \beta=1ベイズ推測すると、

  •  Z_n(1) = \int_{0}^{1} w (1-w)^3 dw = 1 / 20
  •  p(w|X^n) = 20 \cdot \varphi(w) w (1-w)^3
  •  p^{\ast}( {\rm head} ) = 20 \cdot \int_{0}^{1} w^2 (1-w)^3 dw = 20 \cdot 1/60 = 1/3
  •  p^{\ast}( {\rm tail} ) = 20 \cdot \int_{0}^{1} w (1-w)^4 dw = 20 \cdot 1/30 = 2/3

f:id:cookie-box:20190101155733p:plain:w60

 p_{ML}( {\rm head}) \neq p^{\ast}({\rm head}) ですね…。最尤推測もベイズ推測もさすがに「表の出る確率の方が低いだろう」となるのは一緒ですが、ベイズ推測は「3分の1は表が出るんじゃないか」ということですから、最尤推測の「4分の1は表が出るんじゃないか」より表が出る確率を大きく見積もっていますが…。

f:id:cookie-box:20190101160814p:plain:w60

ちなみに  \beta=2 にするとこうなるね。

  •  Z_n(2) = \int_{0}^{1} w^2 (1-w)^6 dw = 1 / 252
  •  p(w|X^n) = 252 \cdot \varphi(w) w^2 (1-w)^6
  •  p^{\ast}( {\rm head} ) = 252 \cdot \int_{0}^{1} w^3 (1-w)^6 dw = 252 \cdot 1/840 = 3/10
  •  p^{\ast}( {\rm tail} ) = 252 \cdot \int_{0}^{1} w^2 (1-w)^7 dw = 252 \cdot 1/360 = 7/10

f:id:cookie-box:20190101155733p:plain:w60

さっきより微妙に最尤推測に近づきましたね。微妙にですが。

f:id:cookie-box:20190101160814p:plain:w60

ただコインを投げた回数が4回は少ないかもね。「表1回、裏3回」じゃなく「表1回、裏99回」だったらどうだろう。最尤推測の結果は p_{ML}({\rm head}) = 1/100 になるはずだ。でもベイズ推測は  \beta=1 だったら、

  •  Z_n(1) = \int_{0}^{1} w (1-w)^{99} dw = 1 / 10100
  •  p(w|X^n) = 10100 \cdot \varphi(w) w (1-w)^{99}
  •  p^{\ast}( {\rm head} ) = 10100 \cdot \int_{0}^{1} w^2 (1-w)^{99} dw = 10100 \cdot 1/515100 = 1/51
  •  p^{\ast}( {\rm tail} ) = 10100 \cdot \int_{0}^{1} w (1-w)^{100} dw = 10100 \cdot 1/10302 = 50/51

f:id:cookie-box:20190101155733p:plain:w60

やっぱりベイズ推測の方が表が出る確率を大きく見積もっているようですね。…しかし副部長、定積分の計算速くないですか?

f:id:cookie-box:20190101160814p:plain:w60

以下のサイトに以下のコマンドを打ち込んだだけだからね。
Wolfram|Alpha: Computational Intelligence

integrate w (1-w)^3 dw from w = 0 to 1
integrate w^2 (1-w)^3 dw from w = 0 to 1
integrate w (1-w)^4 dw from w = 0 to 1

integrate w^2 (1-w)^6 dw from w = 0 to 1
integrate w^3 (1-w)^6 dw from w = 0 to 1
integrate w^2 (1-w)^7 dw from w = 0 to 1

integrate w (1-w)^99 dw from w = 0 to 1
integrate w^2 (1-w)^99 dw from w = 0 to 1
integrate w (1-w)^100 dw from w = 0 to 1

f:id:cookie-box:20190101155733p:plain:w60

手抜きだった。

f:id:cookie-box:20190101160814p:plain:w60

最初は手計算してたけど途中でめんどくさくなってきたからね。

f:id:cookie-box:20190101155733p:plain:w60

…あの、\beta=1 の場合ですが、「表1回、裏3回」の場合も「表1回、裏99回」の場合も、ベイズ推測の結果は最尤推測の結果と一致していませんが、「表1回、裏1回」を付け足した「表2回、裏4回」「表2回、裏100回」に対する最尤推測の結果とは一致していませんか??

f:id:cookie-box:20190101160814p:plain:w60

…「表1回、裏n-1回」のベイズ推測の結果が「表2回、裏n回」に対する最尤推測の結果と一致するね。最尤推測だと尤度関数 w(1-w)^{n-1} の最大点 w_{ML} をとるわけだけど、ベイズ推測だとこの w(1-w)^{n-1} を事後分布としてこれで確率モデルを平均するから、表と裏が出る確率の予測値の比は w^2(1-w)^{n-1}w(1-w)^n をそれぞれ [0, 1] で定積分した比になる。この比は 2:n になる。前者を部分積分すれば後者の 2/n 倍になることがただちにわかるからね。

f:id:cookie-box:20190101155733p:plain:w60

最尤推測では w(1-w)^{n-1} の最大点をとってしまうのに対して、ベイズ推測ではこれを事後分布として平均することが表1回と裏1回分の差につながっている…。

f:id:cookie-box:20190101160814p:plain:w60

こうしてみると「事前分布が一定値である」と「パラメータに事前分布などない(頻度論)」は明確に違うんだね。パラメータ集合のどこでも一定値をとる事前分布は一見「データを観測するまではパラメータはどの点なのかわからない」といった差し障りがなさそうなものにみえるけど、その実「パラメータ集合のどの点である可能性も等しくある」という確固たる信念だってわけだね。だから、一定値の事前分布でのベイズ推測はコインの表が出る確率を大きめに見積もる。コインを4回投げて表が出た回数が1回だけだったにもかかわらず、「表が出る確率は 0~1 のどの可能性も等しくあるはずだ」という事前の信念が強いからね。…もっとも w(1-w)^{n-1} を事後分布として考えるとしても、17ページの最後の行にあるように、それで平均するんじゃなくMAP推定するなら最尤推測の結果と同じになるよ。だってMAP推定は「 w(1-w)^{n-1} の最大点をとってしまう」だからね。最尤推測と同じだ。

f:id:cookie-box:20190101155733p:plain:w60

確かに。じゃあ「パラメータ集合がコンパクトであり事前分布が一定値ならば、ベイズ推測は最尤推測と同じである」といいうのはベイズ推測=MAP推測と定義した場合のことだったんでしょうか?

f:id:cookie-box:20190101160814p:plain:w60

あるいはこの本の定義のベイズ推測でも逆温度 \beta を無限大にすれば最尤推測になるけど…そんなベイズ推測の定義は考えにくいか。他にどんなベイズ推測の定義を想定してそのくだりがかかれたかはよくわからないな。そもそも上で考えた例も適当かわからないし。

f:id:cookie-box:20190101155733p:plain:w60

いまいちすっきりし切りませんね…まあいいです。そういえば、この本は章末問題がありますよね。1章の章末問題をやってみたんですが、1問目から解けなかったんです。だいたい、左辺では \beta に関する下限だったのが右辺では w に関する下限になっているんですよ…。

f:id:cookie-box:20190101160814p:plain:w60

自由エネルギーの逆温度に関する下限が、確率モデルの負の対数尤度のパラメータに関する下限に等しい、か。逆温度 \beta が大きいほど分配関数は大きくなるから自由エネルギーを小さくできそうだけど、自由エネルギーには逆温度の逆数がかかっているから…\beta \to +\infty でどこかに収束するのかな? まあその収束先が右辺なんだろうけど…。

f:id:cookie-box:20190101155733p:plain:w60

どうすればこの右辺になるのかかなり考えてもわからなかったんですが、この本よくみたら章末問題の解答がついているんですよ。もうこの本に対する好感度が非常に上がりましたね。

f:id:cookie-box:20190101160814p:plain:w60

そ、そっか…。ていうか先に解答ついてるか確認しようよ…。

f:id:cookie-box:20190101155733p:plain:w60

つまり、分配関数は確率モデルの負の対数尤度でかけますから、そこを確率モデルの負の対数尤度を最小にする(分配関数を最大にする)\hat{w} における負の対数尤度に置き換えれば自由エネルギーを下から評価できます。自由エネルギーはこれより小さくならない、とできます。しかし  F_n(\beta) \geqq n L_n(\hat{w}) とかけたところでこれは  F_n(\beta) の下限が n L_n(\hat{w}) であることを意味しませんね(というネタがここ数日ツイッターで流行っているような)。なので、あるときに  F_n(\beta)n L_n(\hat{w}) に近くなることを示さなければなりません。分配関数はパラメータの積分範囲を狭くすれば小さくなりますから、確率モデルの負の対数尤度が最小値+ ε 未満となる領域だけに積分範囲を制限することで自由エネルギーを上から抑えることはできます。任意の ε > 0 について ε よりも小さくできます。のでこの問題の左辺と右辺の下限は等しかったんです。

f:id:cookie-box:20190101160814p:plain:w60

解答の前半は違和感ない気がするかな…後半が、「分配関数の対数に逆温度の逆数をかけたものはこれより小さくならない」ってことだけど、分配関数の積分の領域をすごく狭くしてるイメージがあるから、そんなに狭くして下限が抑えられるのがちょっと不思議…だけど、逆温度が大きいときはこの狭い領域に分配関数は局在してるわけだし、逆温度を小さくすれば分配関数は局在しないけど「逆温度の逆数」が大きいから結局「分配関数の対数に逆温度の逆数をかけたもの」は大きくなってしまうって感じなのかな…。

(ノート3があれば)つづく