StatModeling Memorandum

StatModeling Memorandum

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

「ベイズ統計の理論と方法」渡辺澄夫のメモ

ベイズ推測を使う人はもちろんのこと、嫌う人にもぜひ一読をすすめたい書籍です。ただし、メインの定理の証明の部分は、代数幾何学特異点解消定理を使いますし、その他にも複素関数論・経験過程といった知識を要求されます。これらの事前知識に詳しくないと、3,4章の定理ひいてはWAICがなにやら抽象的で納得ができないといった事態になると思います。いつかp.93 例4のような特異点解消定理を使った例をいくつかこなして、さらに数値実験をして感覚をつかめたらと思います。渡辺先生は「もちろん『代数幾何学を知らなければWAICを使うことはできない』ということはありません。 WAICは簡単に計算できますので誰でも使うことができます。」とおおらかにおっしゃってくれていますので(web)現段階でも使います。

また書籍には、ベイズ推測のユーザーとして参考になる「注意」「例」、各章の最後にある「質問と回答」のコーナー、さらにモデルの評価法・クロスバリデーションとの関係・DICがいかにダメかを語る6章、MCMC・HMC・ランジュバン方程式を用いる方法・平均場近似(変分ベイズ)を簡潔に説明する5章など見どころ満載です。以下では書籍をところどころ引用しながら、自分がベイズ推測を使う上で覚えておきたいことを淡々と書いていきます。詳しく知りたい方は書籍を読んでください。

ベイズ統計の理論と方法

ベイズ統計の理論と方法

3つの平均

まず書籍に登場する3つの平均のとり方があって、それぞれ別の意味を持っていて重要なのでおさえておく。

1. サンプル(データ)の現れ方についての平均(p.3)

f:id:StatModeling:20201107074220p:plain

ここで、f:id:StatModeling:20201107074201p:plainはサンプル(データ)、f:id:StatModeling:20201107074047p:plainはサンプル(データ)の数、f:id:StatModeling:20201107074116p:plainは真の分布。

2. 真の分布f:id:StatModeling:20201107074116p:plainについての平均(p.3)

f:id:StatModeling:20201107074216p:plain

3. 事後分布についての平均(p.5)

f:id:StatModeling:20201107074224p:plain

事後分布は:

f:id:StatModeling:20201107074106p:plain

のように表わされ、ここでf:id:StatModeling:20201107074134p:plainはパラメータの事前分布、f:id:StatModeling:20201107074205p:plainは分配関数:

f:id:StatModeling:20201107074210p:plain

で、f:id:StatModeling:20201107074228p:plainを逆温度と呼ぶ。このあたりの命名は物理の統計力学から由来している。分配関数は規格化定数と思ってOKだけど自由エネルギーと密接な関係がある(後述)。逆温度は最も重要な場合はf:id:StatModeling:20201107074233p:plainだが、その他の場合でも証明やWBICの時に活躍する。

ベイズ推測

事後分布によって確率モデルf:id:StatModeling:20201107074043p:plainを平均したもの:

f:id:StatModeling:20201107074113p:plain

を予測分布といい、ベイズ推測とは「真の確率分布f:id:StatModeling:20201107074116p:plainはおおよそf:id:StatModeling:20201107074109p:plainであろう」と推測すること(p.5)。

一般的な状況では真の分布f:id:StatModeling:20201107074116p:plainが不明であるにもかかわらず、サンプル(データ)だけが与えられた時に確率モデルf:id:StatModeling:20201107074043p:plainと事前分布f:id:StatModeling:20201107074134p:plainがどの程度適切であると言えるか、が焦点。

それを客観的に評価するにあたり重要な量が汎化誤差と自由エネルギーである(p.9,7)。WAICはサンプルの現れ方による平均をとると汎化誤差と漸近的に同じ挙動を示し、WBICは自由エネルギーと漸近的に同じ挙動を示す。(p.118,web,web)。WAICの方の証明は書籍のメインであり、WBICの方は書籍に間に合わなかったとのこと(web)。

なお、情報量がf:id:StatModeling:20201107074319p:plainで与えられることから自分の覚えやすさのため以下では一部書籍とは異なる表記をします。

汎化誤差とWAIC

汎化誤差(generalization error)は以下のように定義される。

f:id:StatModeling:20201107074311p:plain

ここで Shannonの不等式(証明はこの講義ノート[pdf]などを参照):

f:id:StatModeling:20201107074127p:plain

が成り立つため、汎化誤差が小さいほど、f:id:StatModeling:20201107074109p:plainf:id:StatModeling:20201107074116p:plainを精度よく推測していると考えてよいことが分かる(p.9)。実際には真の分布f:id:StatModeling:20201107074116p:plainは不明であるので、サンプル(データ)と事後分布から計算できる量で近似していくことになる。その量が経験誤差(training error, p.9)と汎関数分散(functional variance, p.117)。 経験誤差は以下で定義される。

f:id:StatModeling:20201107074131p:plain

汎関数分散は以下で定義される。

f:id:StatModeling:20201107074138p:plain

WAICは以下で定義される。

f:id:StatModeling:20201107074149p:plain

特によく使われるf:id:StatModeling:20201107074233p:plainの時には以下が成り立つ(p.118)。

f:id:StatModeling:20201107074315p:plain

自由エネルギーとWBIC

自由エネルギーは以下のように定義される(p.8)。

f:id:StatModeling:20201107074300p:plain

特に重要なf:id:StatModeling:20201107074233p:plainの時の分配関数は、確率モデルと事前分布から推測されたサンプルf:id:StatModeling:20201107074201p:plainの確率分布:

f:id:StatModeling:20201107074059p:plain

になっている。そこでf:id:StatModeling:20201107074233p:plainの時の自由エネルギーのサンプルの現れ方による平均をとると、

f:id:StatModeling:20201107074304p:plain

となり、先ほどと同様のShannonの不等式より自由エネルギーが小さいほど、推測された分布f:id:StatModeling:20201107074102p:plainが真の分布f:id:StatModeling:20201107074120p:plainを平均的によく近似していると考えることができる(p.9)。

WBICはf:id:StatModeling:20201107074238p:plainの時の以下で定義される(web)。

f:id:StatModeling:20201107074145p:plain

そして以下が成り立つ(web)。

f:id:StatModeling:20201107074300p:plain

汎化誤差・WAICが次に得られるサンプル(データ)の分布にフォーカスした量、 自由エネルギー・WBICが今まで得られたサンプル(データ)の分布にフォーカスした量と言うことができると思います。そこから予測精度に重きを置きたい場合には前者、真のモデルが知りたい場合には後者といった使い分けになるのだと思います。ただ、実際問題としては両方計算して挙動を見てみるのが良いのだと思います。(p.84ではAIC, BICについてですが、両方計算してみてどちらの方法から見ても明らかに良好ではない確率モデルは適切でないと考えてよいのではないかと思われる、とあります)

事後分布が正規分布で近似できる場合と最尤推測・事後確率最大化推測

ベイズ推測の他にも予測分布を推測方法はいくつかあり、例えば最尤推測・事後確率最大化推測がある。事前分布が一定値ならば最尤推測と事後確率最大化推測は同じになる(p.17)。例えとして、f:id:StatModeling:20201107074153p:plainとして2つの正規分布の混合の以下の分布を考える。

f:id:StatModeling:20201107074055p:plain

f:id:StatModeling:20201107074051p:plainの大きさだけに着目するとその比は1:1000なのでこの分布はほとんど二つ目の分布でできているように見える。しかしながらそれぞれの分布を積分すると確率の比は1:(0.1)7なので、確率的にはほとんど一つ目の分布でできていると言える。分布の大きさだけで推測する方法が事後確率最大化推測であり、分布の確率で推測する方法がベイズ推測(p.223)。

ベイズ推測も含め、どの方法も真の分布を知ることはできない人間が仮に定めた方法であり、正統な方法は存在しない(p.17)。現実の問題においてはほとんどが不良設定問題であり、答えを得るために何らかの選択を行う必要がある。その際には「この統計的推測は、この選択を行った結果得られたものなのだ」と自覚することが大切であり、選択したことにき気づかなかったり、選択したことを隠したり、選択したものを正当化することは事態を混乱させるだけである(p.195)。

事後分布が正規分布で近似できる場合は、ベイズ推測・最尤推測・事後確率最大化推測はどれも同様な結果を与える。そうでない場合は、推測された結果も異なり、汎化誤差も異なる(p.17)。 確率モデルが正規分布一つで近似するような場合、指数型分布が統計学的に非常によい性質を持っているので、どの推測方法を用いても結果には大きな違いはない(p.198)。最尤推測は一般の確率モデルにおいては、経験誤差は小さくなるが汎化誤差は大きくなるので汎化誤差を小さくするという目的には適していない(p.130)。p.18「1.4事後分布の例」は必見です(web版)。

事後分布が正規分布で近似できる場合にはAICは汎化誤差に対応し、BICは自由エネルギーに対応している。確率モデルが観測できない変数を含んでいたり、階層的な構造を持っている場合は、それらが成り立たない(p.84)。p.80 例9のAIC,BIC,統計的検定の比較は分かりやすくて秀逸です。

事後分布が正規分布で近似できるのに必要な条件は三つある(p.52)。

  • 真の分布に対して最適なパラメータが一つ。すなわち、f:id:StatModeling:20201107074039p:plainを最小にするパラメータが一つf:id:StatModeling:20201107074141p:plainだけであること。
  • そのf:id:StatModeling:20201107074141p:plainにおいて以下の行列の固有値がすべて正であること。

f:id:StatModeling:20201107074035p:plain

  • 事後分布が正規分布とみなせるぐらい十分にデータ数f:id:StatModeling:20201107074047p:plainが大きいこと。その大きさは真の分布や確率モデルに強く依存する。

事後分布を正規分布で近似する理論の弱点は、現実の問題がこの理論を適用できるケースに相当するかどうかを、この理論の中では判断することができないということである(p.53)。WAICやWBICを求めて比較してはじめてその近似が適切だったかどうかが分かる(p.85)。

一つだけを除外するクロスバリデーションとの関係

クロスバリデーション誤差は以下のように定義する。

f:id:StatModeling:20201107074245p:plain

ここで、

f:id:StatModeling:20201107074213p:plain

はサンプルf:id:StatModeling:20201107074201p:plainが与えられたとき、f:id:StatModeling:20201107074157p:plainを取り除いた残りのサンプルでつくった事後分布による平均。f:id:StatModeling:20201107074241p:plainはサンプルの現れ方による平均をとると、汎化誤差に一致する(p.177)。またf:id:StatModeling:20201107074241p:plainは確率変数として次の関係を持つ。

f:id:StatModeling:20201107074252p:plain

特にf:id:StatModeling:20201107074233p:plainの時は以下が成り立つ。

f:id:StatModeling:20201107074255p:plain

この証明ではクロスバリデーション誤差が通常の全サンプルを使ってつくった事後分布を使って、

f:id:StatModeling:20201107074248p:plain

というように表せることを使う(p.178)。実際の問題ではWAICのほうがクロスバリデーションよりも安定していて、ゆらぎが小さいことが多い(p.180)。

その他のメモ

WAICも万能ではなく、汎化誤差と平均の挙動が同じになるためには大切な条件が必要で、それは対数尤度比関数が相対的に有限な分散を持つこと。対数尤度比関数は

f:id:StatModeling:20201107074124p:plain

で表わされる。もしも、対数尤度比関数が相対的に有限な分散を持たないと、サンプルの現れ方に依存して事後分布の形状が極端に大きくなり、汎化誤差や自由エネルギーのサンプル(データ)の数f:id:StatModeling:20201107074047p:plainに対する挙動が大きく変化してしまうからである。通常の統計的推測においては、このようなケースは起こりにくいと思われるが、事後分布がサンプルに応じて大きく変動する場合には、対数尤度比関数が相対的に有限な分散をもつかどうかを考察する必要が生じるかもしれない(p.36)。また、WAICは平均的には汎化誤差そのものを見る量であるが、確率的にゆらいでいる確率変数である。従って、その量を最小化すれば必ず予測精度が向上するというものではない(p.200)。WBICも同様と思います。

  • ハイパーパラメータの事前分布の設定の仕方(p.199) ベイズ推測を行う場合には考察しているモデルの相転移構造を解明したうえで目的に適すると思われるハイパーパラメータを用いることが望ましいが、それが困難である場合には、十分大きなコンパクト集合上の一様分布か、あるいは十分大きな分散をもつ正規分布であればそれほど大きな問題は生じない。こうした確率モデルでは事前分布をなににするかという影響よりもベイズ推測をするかどうかの影響のほうが大きく、事前分布は局所性の少ないものであれば、工夫を凝らさなくても大丈夫であることが少なくない。
  • 7章の章末問題【1】(p.202) ベイズ推測を行うとき、事前分布をどのように設計するかを心配する人は多いのであるが、確率モデルが正しいかどうかを心配する人は少ない。統計的推測に及ぼす影響は事前分布よりも確率モデルのほうが大きいにもかかわらず、なぜ、そのように考える人が多いのだろうか。

次の記事ではRとStanでお手軽にWAIC・WBICを計算します。