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

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

ベイズ統計の理論と方法

ベイズ統計の理論と方法

前回:ノート1 / 次回:まだ
  • 前回のノートでは確率と確率密度がごっちゃになっているところがあります。事象 A が起きる確率 P(A) に対して -\log P(A) は事象 A の選択情報量ですが、確率変数 X確率密度関数 p(x) に対して -\log p(x) は選択情報量とはよばないと思います。よばないと思いますがよび方に困るので、以下「選択情報量のような量」とよんでいます(自由エネルギーのことなんですが、自由エネルギーって何っていうことばとして)。
    • そんな変な呼び方をしなくても「負の対数尤度」などとよべばさしつかえはないですが、個人的にそうよぶとそれって大きいほどどういう意味だっけというのがなんかすぐわかんないので採用しません。
f:id:cookie-box:20190101155733p:plain:w60

前回読んだ1~10ページの内容をふりかえります。この本はベイズ推測について解説する本であり、ベイズ推測とは何かというのは 1.1 節に定義がありました。つまり、「ベイズ推測する」とは

サンプル x^n 内の各点が独立に従っている分布は、確率モデル p(x|w) の事後分布 p(w|X^n) による平均  \mathbb{E}_w \bigl[p(x|w) \bigr] \equiv p(x|X^n) だろうと考える(★)
ことに他なりません。ここで事後分布 p(w|X^n) というのは私たちが何となく知る事後分布ではなく、逆温度 \beta を用いて定義される (1.5) 式であることに注意してください(といっても、\beta = 1 の場合は p(X^n|w) \varphi(w) からベイズの定理によって導かれる、私たちがよく知る事後分布と同じですが)。
しかし、「~だろうと考える(★)」というだけでは、「じゃあそう考えれば?」という話です。この本で私たちが学ぶのは、「『~だろうと考える(★)』というのは結局どういうことなのか」でしょう。

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

6ページの1.~3.の問題を考えていくことでそれに迫るんだね。きっと「『~だろうと考える(★)』ことで、こんな条件下で、こんな風によい推測を達成できる」という感じの出口になるのかな。そういう出口があることがわかっているから、私たちはベイズ推測を利用することができる。そういう出口を知らずにベイズ推測をするなら、「理由はないけどとりあえず(★)だろうと考えました」ということにしかならない。

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

しかし「よい推測」とは何かという問題があります。私たちは現実に推測を行う場面で真の分布を知り得ないので、真の分布にどれだけ近づけたかを確認することはできません。しかしそれでも、 \bigl( \, q(x), \, p(x|w), \, \varphi(w) \, \bigr) に拠らない数学的な法則が存在して、推測の「限界」を議論することができるということですが…。1章の続きではその足掛かりとして、「自由エネルギー F_n(\beta)」と「汎化損失  G_n」が定義されました。

  • 自由エネルギー F_n(\beta) は事前分布 \varphi(w) と確率モデル p(x|w) と逆温度 \beta とサンプル X^n による量で、分配関数 Z_n(\beta) の対数の温度倍のマイナス1倍です。\beta=1 のとき F_n(1) は周辺尤度(その確率モデルでその事前分布にしたがうあらゆるパラメータの下でサンプル X^n が観測される確率密度) Z_n(1) の対数のマイナス1倍に等しいです。確率密度を確率のようなものと思えば、F_n(1) は「その確率モデルでその事前分布にしたがうあらゆるパラメータの下でサンプル X^n が観測されるという事象の選択情報量のような量」です。これは、F_n(1) をあらゆるサンプル X^n の現れ方について平均すると(= q(x^n) で平均すると)、q(x^n)Z_n(1) の交差エントロピーになります。つまり、「真の分布」と「事前分布で平均した確率モデル」がどれだけ似ているかを測る指標になりそうです。もっとも、知り得ない q(x^n) で平均するということは不可能なので議論が必要ですが…。
  • 汎化損失  G_n は真の分布 q(x) と予測分布 p^\ast (x) の交差エントロピーです。しかし、やはり知り得ない q(x) で平均するということは不可能なので、経験損失 T_n から見積るということですが…。T_n は「予測分布 p^\ast (x) の下で各サンプル X_i が観測される事象の選択情報量のような量の全サンプル平均」です。T_n は全サンプルからつくった櫛形の(n 本のデルタ関数が立った)経験分布と予測分布の交差エントロピーととらえることもできるかもしれません。
そして、\beta=1 のとき p^\ast (X_{n+1}) = Z_{n+1}(1) /Z_n(1) が成り立つので、この両辺の逆数の対数より、「予測分布(ただし \beta=1)の下で未知データ X_{n+1} が観測される事象の選択情報量のような量」が「事前分布で平均した確率モデルの下でサンプル X^{n+1} が観測される事象の選択情報量のような量( F_{n+1}(1) )」から「事前分布で平均した確率モデルの下でサンプル X^{n} が観測される事象の選択情報量のような量( F_{n}(1) )」を差し引いたものに等しいことがわかります。前回はここまで読みました。…ここから  X^{n+1} で平均してその下の式になりますか?? 右辺第1項は X^{n+1} の関数ですが、右辺第2項は X^{n} のみの関数であるようにみえますが…それに左辺は…左辺はこれ何の関数でしたっけ??

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

右辺第1項と右辺第2項は丁寧にかくとこうかな。

  •  \displaystyle \int q(x_1) \cdots q(x_n) q(x_{n+1}) F_{n+1} (1) dx_1 \cdots dx_n dx_{n+1} = \mathbb{E} \bigl[ F_{n+1}(1) \bigr]
  •  \displaystyle \int q(x_1) \cdots q(x_n) q(x_{n+1}) F_n (1) dx_1 \cdots dx_n dx_{n+1}
     \displaystyle = \int q(x_1) \cdots q(x_n) F_n (1) dx_1 \cdots dx_n \cdot \int  q(x_{n+1}) dx_{n+1}
     = \mathbb{E} \bigl[ F_n(1) \bigr]
左辺は先に x_{n+1} について積分しようか。
  •  \displaystyle - \int q(x_1) \cdots q(x_n) q(x_{n+1}) \log p^\ast (x_{n+1}) dx_1 \cdots dx_n dx_{n+1}
     \displaystyle = \int q(x_1) \cdots q(x_n) G_n dx_1 \cdots dx_n
     \displaystyle = \mathbb{E} \bigl[ G_n \bigr]
\mathbb{E} \bigl[ \cdot \bigr] はあらゆるサンプル x^{n+1} の出方に対する平均だから、10ページの一番下の式は確率的に変動する項を含まないね。任意の  \bigl( \, q(x), \, p(x|w), \, \varphi(w) \,\bigr) に対して、\beta=1ベイズ推測を実施したときの汎化損失の期待値は、ベイズ推測を実施する前の自由エネルギー(選択情報量のような量)の期待値がどれだけ増加するかに等しいことになる。
…なるほど、もし仮にその事前分布と確率モデルの下で X^n を観測する事象の選択情報量も X^{n+1} を観測する事象の選択情報量も常に変わらないというなら、n+1 個目のデータには全く「新たな情報」「意外さ」がない、X^n を観測したらそれがどんな X^n であっても次に観測される X_{n+1} が確実にわかってしまう、そんな状況だね。そんな状況では汎化損失の期待値もゼロだ。確実に X_{n+1} がわかるんだから誤差は生じない。でも、n+1 個目のデータ X_{n+1} に僅かでも「新たな情報」があれば、その「新たな情報」はベイズ推測に誤差を生じさせる。X_{n+1} を観測するまで得られない情報がある状況なんだから、完璧な推測はできない。汎化損失の期待値はゼロにならない。…といったけど、正確には汎化損失は「誤差」って感じじゃないね。KL情報量じゃなくて交差エントロピーだから、完璧に予測分布を q(x) にしても汎化損失 G_n はゼロにならない。q(x)エントロピー(連続分布なので微分エントロピー)が理論下限だ。

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

え、えっと? ともかく、何が何の変数で、何が確率変数なのかややこしいですね。改めて整理します。10ページの上・中・下3箇所の数式は、それぞれ「確率密度」「選択情報量のような量」「交差エントロピー」にみえて、2ステップ更新されたようにみえるんです。でも、右辺は2ステップなのですけど、左辺は3ステップあったのですね(中から下への更新に、先に x_{n+1}積分して、次に残りの変数で積分するという2ステップの更新が含まれています)。つまり、右辺(上側の表)と左辺(下側の表)でそれぞれ主人公が以下のように交代しています。

Z_n(1)事前分布で平均した確率モデルの下でサンプル X^{n} が観測される事象の確率密度 or サンプル X^{n} の下での事前分布で平均した確率モデルの周辺尤度X_n により確率的に変動する確率変数)
F_n(1)事前分布で平均した確率モデルの下でサンプル X^{n} が観測される事象の選択情報量のような量 or サンプル X^{n} に対して事前分布で平均した確率モデルを仮定したときの系の自由エネルギーX_n により確率的に変動する確率変数)
\mathbb{E} \bigl[ F_n(1) \bigr] 「真の分布」と「事前分布で平均した確率モデル」の交差エントロピー or 真の分布の下でのあらゆるサンプル X_n の出方に対する、事前分布で平均した確率モデルを仮定したときの系の自由エネルギーの期待値(確率変数ではない)
p^\ast(x)予測分布の下で点 x が観測される事象の確率密度( X_n により確率的に変動する x確率密度関数
\displaystyle \log \frac{1}{p^\ast(x)}予測分布の下で点 x が観測される事象の選択情報量のような量( X_n により確率的に変動する x確率密度関数
G_nx の真の分布と予測分布の交差エントロピーX_n により確率的に変動する確率変数)
\mathbb{E} \bigl[ G_n \bigr]真の分布の下でのあらゆるサンプル X_n の出方に対する、点 x の真の分布と予測分布の交差エントロピーの期待値(確率変数ではない)
右辺の表(上側の表)の方のこの色の文字は右辺の主人公を私たちがいくぶんよく知る統計学の言葉でかいたもので、この色の文字はこの本で出てくる言葉にならったものです。意図していなかったんですが自然とこの色の文字の方が「モデルはぶれない、サンプルがぶれる」という、伝統的な頻度論的な統計学に寄った表現になっていますね。比べてこの色の文字は「サンプル所与の下での、モデルの関数」といった感じです。左辺については G_n までは予測分布 p^\ast (x) というものがあるという前提でのこの分布に対する話なので「サンプルとモデルどっちがぶれる?」という要素はありません。ただ、G_n から \mathbb{E} \bigl[ G_n \bigr] のステップは「モデルがぶれる」という立場ですね。モデル p^\ast (x) がぶれないならば、汎化誤差の「期待値をとる」などという操作は考えられないはずです。
…汎化損失と自由エネルギーにある関係が成り立つのはわかりました。11ページは、なぜ確率密度の対数のマイナスをとるのかという話をしていますね。…これ、「確率密度は e^{-E} の形であることが多いので E を取りたいから」「E はエネルギーと実感できるから」って、どちらも突拍子もなく感じるんですが。なぜ確率密度がそんな形をしていることが多いなどといえるんです? だいたいどこからエネルギーが出てきたんですか? 自由エネルギーとはそのような名前なのだと割り切っていましたが、ここでは紛れもなく物理のエネルギーの話をしていますよね?

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

まあ確率密度が e^{-E} の形であるかどうかとエネルギーの登場はおいといても、確率 P を対数のマイナス1倍をとって - \log P として「選択情報量」というものさしでみると「大きいほどめずらしい、それが起きたと知ったときの価値が高い出来事だ」って何となくわかりやすかったよね。こっちのものさし方が推測のよさを測るのに感覚に合ってそうだ。もちろん確率 P のままでも推測の誤差を議論することはできると思うけど…でも、元々よく起きる出来事か、レアな出来事かで確率を1%誤る重大さって違う気がするよね。ある年に名古屋では年間に100日くらい雨が降って、10日くらい雪が降ったらしい。真の値より10日多めに110日雨の予報を出してもたぶんあまり怒られないけど、真の値より10日多めに20日雪の予報を出したらたぶんクレームがくるだろうし天気予報を信用してもらえなくなるよね。

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

いや、雪の日は実際タイヤチェーンなどさまざまな準備が必要ですから、事象自体が誤りの重大さに関係していてその喩えはあまり適切ではないのでは…まあ雰囲気はわかりますが。ただ、それなら確率の誤差ではなく誤差率をみるということもできると思いますが…。

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

率って扱いにくいし、誤差が小さければ誤差率は対数差分で近似できるしね。 (P^\ast - P)/P がゼロに近ければ  (P^\ast - P)/P \approx \log \bigl( 1 + (P^\ast - P)/P \bigr) = \log P^\ast - \log P だよね。

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

なんと、確かにそうなりますね。

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

あと確率密度が e^{-E} の形かってのも、何か物理法則にしたがうデータだったらそうなる見込みがあるからね。その辺は統計力学の話になるけど。

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

やっぱり物理の話じゃないですか…まあ -\log P にさまざまな解釈が与えられるというのはいいです。次節に進みましょう。…事後分布や予測分布を「解析的に計算できない」ことが多い? 「解析的に計算できない」って何ですか? (1.5) 式や (1.8) 式ってそんなに何か困難な要素があるんですか??

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

「解析的に解けない」っていうと解が既知の演算や関数でかきあらわせないって意味だね。「5次方程式は一般的に解けない」というのは一般の係数の加減乗除べき根で方程式の解をかきあらわすことができないって意味だし。ただここでいう既知の演算や関数が何かはまだわからないかな。まあこの節に「計算できる例」があるってことなんだからそこから推し量ることはできるんじゃない?

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

そうですね、この節の例を計算してみましょう。 \displaystyle p(x|w) = v(x) e^{f(w) \cdot g(x)} \displaystyle \varphi(w|\phi) = \frac{1}{z(\phi)} e^{\phi \cdot f(w)} ということです。f( \cdot) g( \cdot) の制約はわかりませんが確率モデルが積分できることは確かですね。このとき、分配関数及び事後分布を計算すると、
 \displaystyle Z_n(\beta) = \int_W  \frac{1}{z(\phi)} e^{\phi \cdot f(w)} \prod_{i=1}^n \bigl( v(X_i) e^{f(w) \cdot g(X_i)} \bigr)^{\beta} dw
 \displaystyle \qquad \; \; \, = \frac{1}{z(\phi)} \left( \prod_{i=1}^n v(X_i)^\beta \right) \int_W  e^{\phi \cdot f(w) + \sum_{i=1}^n \beta f(w) \cdot g(X_i)} dw
 \displaystyle \qquad \; \; \, = \frac{z \bigl( \phi + \sum_{i=1}^n \beta g(X_i) \bigr)}{z(\phi)} \prod_{i=1}^n v(X_i)^\beta
 \displaystyle p(w|X^n) = \frac{1}{Z_n} \frac{1}{z(\phi)} e^{\phi \cdot f(w)} \prod_{i=1}^n \bigl( v(X_i) e^{f(w) \cdot g(X_i)} \bigr)^{\beta}
 \displaystyle \qquad \quad \; \; \; = \frac{1}{Z_n} \frac{1}{z(\phi)} \left( \prod_{i=1}^n v(X_i)^\beta \right) e^{\phi \cdot f(w) + \sum_{i=1}^n \beta f(w) \cdot g(X_i)}
 \displaystyle \qquad \quad \; \; \; = \frac{1}{z \bigl( \phi + \sum_{i=1}^n \beta \cdot g(X_i) \bigr)} e^{\bigl( \phi + \sum_{i=1}^n \beta g(X_i) \bigr) \cdot f(w)}
 \displaystyle \qquad \quad \; \; \; = \varphi \left(w \middle| \phi + \sum_{i=1}^n \beta g(X_i) \right) \equiv \varphi(w | \hat{\phi})
これは…ハイパーパラメータ \phi が更新された形になりましたね。

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

…確率モデル  \displaystyle \prod_{i=1}^n p(X_i|w)^\beta と事前分布 \varphi(w|\phi) の積が a \varphi(w|\hat{\phi}) の形にかける( aw に依存しない係数)なら Z_n(\beta) = a になって事後分布が \varphi(w|\hat{\phi}) になるってことか。逆に事後分布をこの形にしたいなら…やっぱり  \displaystyle \prod_{i=1}^n p(X_i|w)^\beta\varphi(w|\phi) の積が a \varphi(w|\hat{\phi}) の形にかけないといけない。  \displaystyle \prod_{i=1}^n p(X_i|w)^\beta\varphi(w|\phi) の積の w への依存性はこの形でないといけない。「事前分布を事後分布にする」ことを「ハイパーパラメータ \phi を更新する」形で達成することは、以下を満たす確率モデルと事前分布を選ぶことと同じように感じる。

 \varphi(w|\phi) \displaystyle \prod_{i=1}^n p(X_i|w)^\beta = a \varphi(w|\hat{\phi})
指数型分布と共役な事前分布はばっちりこれを満たす。指数型分布でない p(x|w) であったら絶対にこれを満たさないのかはすぐわからないな…でも、14ページをみるとどうもそうみたいだね。

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

「解析的に解ける」というのは結局「パラメータの更新で済む」という意味だったんでしょうか….? もちろん、「パラメータの更新で済む」ような確率モデルと事前分布を選ばなければならないという意味ではないと14ページにありますね。あくまで人間の都合です。…1.3節はさまざまな推測方法ということですが…最尤推測って \beta=\inftyベイズ推測なんですか??

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

最尤推測では w の分布でなくただ1つの w を求めることになる。p(w|X^n)=\delta(w - w_{ML}) って感じかな。15ページの \varphi(m|\hat{\phi_1}, \hat{\phi_2})\beta \to \inftyデルタ関数に近づくと思う。近づく先は  \sum_{i=1}^n X_i / n だからパラメータ m最尤推定値だね。一般の場合にも最尤推定値にたつデルタ関数っていうのを示すのはどうやるのかすぐ思いつかないけど…。

2019-05-07 追記
> 一般の場合にも最尤推定値にたつデルタ関数っていうのを示すのはどうやるのかすぐ思いつかない
以下のような感じな気がします。
https://twitter.com/CookieBox26/status/1125552313572020224
f:id:cookie-box:20190101155733p:plain:w60

事後確率最大化というのは、ベイズ推測をした上で事後分布の最頻値を採用する方式なのですかね。他方、平均値を採用するのが平均プラグイン? なぜプラグインというのか…。他の方式としては…平均場近似??

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

148ページからかいてあるよ。これはどちらかというと、ベイズ推測において事後分布を平均場近似によって得ることを変分ベイズ法というのかな。

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

17ページの (3) にある場合にベイズ推測と最尤推測が同じといえるのかいえないのかといった気になることがかいてありますね…まあいまはとばしますか。18ページからは解析的に解ける場合で数値実験しているようですね。…節変わって23ページに、「確率モデルが仮のものである場合」とありますね。もちろん確率モデルがわかっている場合とわかっていない場合とあるのはわかるんですが、だから何を言いたかったんでしょうか…。

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

「1000人の試験結果のときと100万人の試験結果のときで推測されるパラメータがずれていてもいい」って感じに読めるね。仮に100万人の試験結果が正規分布J 個混合した分布で上手くフィッティングできても「中学生全体が J 個のグループに分けられると結論されたのではない」というのは、J は「100万人の試験結果の解析に有用なパラメータ」に過ぎないってことだね。

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

じゃあ、中学生全体の試験結果が何個にクラスタリングされるかを研究することはできないってことですか?

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

やっちゃいけないのは、特に根拠なく混合正規分布を仮定して、100万人の試験結果から推測した J でもって「中学生というものは J 個のグループに分けられます」と結論付けることだ。「この100万人の中学生は」と付けるなら間違ってはないだろうけどね。本当に「中学生は J 個のグループに分けられるのではないか」という仮説を検証したいなら、きっと人数を増やして収束していくかとか確認すべきで、現実にはそこで頓挫するんじゃないかな。

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