確率・分布●●●●○

ベイズ推論

Bayesian Inference ・ べいずすいろん

事前の信念をデータで更新し、事後分布として不確かさごと推定する枠組み

✦ 30秒で試す — 航海今日の結論が、そのまま明日の出発点になる推論方法Aと方法Bで、最後の見立てはどうなる?予想してみる

概要

ベイズ推論は、ベイズの定理を推測の骨格に据えた統計的推論の枠組みです。知りたい母数(コインの表が出る確率、広告のクリック率など)について「データを見る前の信念」を確率分布として用意し、観測データが得られるたびにその分布を更新していきます。更新前の分布を事前分布、更新後の分布を事後分布と呼び(事前分布と事後分布)、この一連の操作をベイズ更新といいます。

最大の特徴は、答えが一つの数値ではなく分布として返ってくることです。「クリック率の推定値は3.2%」で終わらせず、「3.2%あたりが最も確からしいが、2.5%から4.0%の間のどこかである確率が95%」というように、推定の不確かさそのものを持ち歩けます。またデータが増えるたびに事後分布を次の事前分布として使い回せるため、逐次的にデータが届く状況と相性が抜群です。

スパムフィルタ、A/Bテストの判断、医療診断、機械学習のモデルまで、「手持ちの知識を新しい証拠で更新する」場面のあらゆるところでこの枠組みが働いています。頻度主義とベイズ主義という対立軸のベイズ側を、実際に動く手続きにしたものがベイズ推論です。

なぜ生まれたか

推測統計の主流だった頻度主義の道具立て(最尤推定による点推定と仮説検定)には、実務でしばしば困る場面がありました。まず、答えが点推定と検定の二値的な判断に寄りがちで、「どれくらい確からしいのか」という不確かさの全体像が見えにくいこと。次に、データが少ないと推定が暴れるのに、「この値は経験上5%前後のはずだ」といった事前知識を形式的に取り込む口がないこと。3回投げて3回表なら最尤推定は「表の確率100%」と答えてしまいます。そしてデータが逐次届く状況で、途中経過を見るたびに検定を繰り返すと誤りの確率が膨らむことです。

ベイズ推論はこれらを一つの原理で解決します。事前知識は事前分布として明示的に入力し、データの証拠は尤度(そのデータが観測される確からしさ)として取り込み、ベイズの定理で掛け合わせて事後分布を得る。不確かさは分布の広がりとして自動的に表現され、逐次更新は「今日の事後分布を明日の事前分布にする」だけで済みます。枠組み自体は18世紀のベイズと19世紀のラプラスに遡りますが、事後分布の計算(正規化のための積分)が複雑なモデルでは手に負えず、長らく理論倒れでした。1990年前後にMCMCと計算機がこの計算問題を解決したことで、ようやく汎用の実用技術になったという経緯があります。

詳細

更新の仕組み — 事後は尤度と事前の掛け算

ベイズ更新の中身は一行で言えます。「事後分布は、尤度と事前分布の積に比例する」。事前分布が母数θの各値に置いた確からしさを、観測データがθの各値のもとでどれくらい起こりやすいか(尤度)で重み付けし直し、全体が確率として足し合わせて1になるよう正規化したものが事後分布です。条件付き確率の言葉でいえば、事後分布とは「データを条件としたときのθの条件付き分布」にほかなりません。

事後 ∝ 事前 × 尤度(θ の各値ごとに掛け、面積を1に揃える)事前分布Beta(3, 3)00.51尤度10回中7回表00.51事後分布Beta(10, 6)00.51×=「0.5 前後だろう」という見立てθ ごとのデータの起こりやすさ両方が認める θ に山(平均 0.625)
事後 ∝ 事前 × 尤度 — θ の各値ごとに高さを掛け合わせると、両方が認める場所にだけ山が残る

たとえば新しいコインの表が出る確率θを知りたいとします。事前には「たぶん0.5前後だろう」というゆるい山型の分布 Beta(3, 3) を置く。10回投げて7回表が出たら、尤度はθ=0.7で最大になり、両者を掛けた事後分布 Beta(10, 6) は0.5と0.7の間、平均0.625に山を移した形になります。データがわずか10回なら事前の影響が残り、1000回投げれば尤度が支配して事前の形はほとんど消える——データ量に応じて事前知識と証拠のバランスが自動的に取れるのが、この掛け算の美点です。事前分布を指で描き変えながらこの掛け算を確かめられる部品は、事前分布と事後分布の項にあります。

次のデータが届いたら事前分布として再利用

事前分布 θの各値の確からしさ

ベイズの定理で更新 尤度を掛けて正規化

観測データ

尤度 θごとのデータの起こりやすさ

事後分布 データを見た後の確からしさ

事後分布から答えを取り出す

事後分布はそれ自体が答えですが、報告や意思決定のために要約もできます。分布の平均を取れば事後平均、最も高い点を取ればMAP推定(事後確率最大化)という点推定になり、確率95%を占める範囲を切り出せば「θがこの範囲にある確率は95%」と読める信用区間になります。さらに「θが0.5を超える確率は97%」「案Bが案Aより良い確率は92%」のような、意思決定に直結する確率も事後分布から直接計算できます。

もう1つ重要な出口が事後予測分布です。「次の10回で表が何回出るか」を予測するとき、θを事後平均の1点に固定して二項分布を使うと、θ自体の不確かさを無視した狭すぎる予測になります。事後分布のθの各値について予測を作り、事後の重みで平均すれば、「θがまだよく分からない」ぶんだけ広がった正直な予測が得られます。予測分布と実データを比べてモデルのずれを探す「事後予測チェック」は、ベイズ流のモデル診断の基本です。

最尤推定との関係

最尤推定は「尤度が最大になるθを選ぶ」手法でした。ベイズ推論で完全に平坦な事前分布を置くと、事後分布の形は尤度そのものになり、MAP推定は最尤推定と一致します。つまり最尤推定は「事前知識を一切入れないベイズ推定の点要約」とみなせる特殊な場合です。さらに、事前分布を置いたMAP推定は、最尤推定に罰則項を足した正則化と同じ計算になります(正規分布の事前ならリッジ回帰、ラプラス分布の事前ならラッソ)。両者は対立する別物というより連続的な関係にあり、ベイズ推論の追加装備は「事前分布」と「点ではなく分布で答える姿勢」の二つだ、と整理できます。

計算をどう乗り越えるか

事後分布の正規化には「尤度×事前をθの全域で足し合わせる(積分する)」計算が必要で、これがベイズ推論の歴史的な難所でした。実用上の突破口は三つあります。第一に、事後分布が事前分布と同じ族に収まるよう設計する共役事前分布を使えば、更新が閉じた式(パラメータの足し算)になります。第二に、積分を諦めて事後分布からの乱数サンプリングで近似するMCMCは、ほぼ任意のモデルに適用できる汎用解です。第三に、モデルを書けば推論エンジンが後を引き受ける確率的プログラミングの登場で、グループごとの違いと全体の傾向を同時に推定する階層ベイズモデルも実務の射程に入りました。単語ごとの証拠を独立とみなして掛け合わせるナイーブベイズのように、大胆な仮定で計算を単純化して実用速度を得る道もあります。

落とし穴

ベイズ推論の説明責任は事前分布に集中します。データが少ないときほど事前の影響が大きいため、恣意的な事前分布は恣意的な結論を生みます。実務では、極端に強い事前を避けて弱情報事前(ゆるい制約だけ課す分布)を使う、事前分布を変えて結論の頑健性を確かめる感度分析を行う、事前分布だけからデータを生成してみて常識外れの値が出ないか確かめる(事前予測チェック)、という作法が標準です。「無情報」のつもりの平坦な事前も、パラメータの表し方を変えると強い主張になることがある点にも注意が要ります。

もう1つは計算の質です。事後分布がMCMCで得られている場合は、複数の連鎖が同じ分布に収束しているか(R-hat などの診断量)、サンプルが十分独立か(有効サンプルサイズ)を確認しないまま結果を読んではいけません。そして「事後確率95%」は、置いたモデルが正しいという前提つきの数字です。モデルそのものが外れていれば、どれほど丁寧に計算しても自信満々の誤答が返ってきます。「分布で答えられる」強力さは、入力と計算とモデルの質に対する丁寧さとセットで初めて信頼に足るものになります。

試問

✦ 命題挑戦中

新しい広告のクリック率 θ をベイズ推論で推定する。9つの情報を、事前分布・尤度・事後分布の箱に仕分けよ

事前分布データを見る前の θ の見立て
尤度θ の各値のもとでのデータの起こりやすさ
事後分布データを見た後の θ の見立て

項目を選んでから、入れる箱を選びます