確率・分布●●●●●

共役事前分布

Conjugate Prior ・ きょうやくじぜんぶんぷ

事後分布が事前分布と同じ形になる組み合わせ。ベイズ更新を閉じた式にする

✦ 30秒で試す — 航海データを見る前の見立ても、架空の観測回数として足し算できる合わせた見立て(事後)の平均は、どちら寄り?予想してみる

概要

共役事前分布とは、ある尤度(データの生成モデル)と組み合わせたとき、事後分布が事前分布と同じ族の分布になるような事前分布のことです。たとえば成功率pの二項分布のデータにベータ分布の事前を組み合わせると、事後分布もまたベータ分布になります。分布の「形」が更新の前後で保たれ、変わるのはパラメータの数値だけ — この性質を共役性と呼びます。

共役性の何がうれしいのか。事前分布と事後分布をつなぐベイズ更新には、本来なら正規化のための積分計算が必要で、これが一般には解けません。ところが共役な組み合わせでは、事後分布が「事前分布のパラメータにデータの集計値を足す」だけの閉じた式で書けてしまいます。積分が足し算に化ける — ベイズ更新を紙と鉛筆で実行可能にする仕掛けが共役事前分布です。

MCMCが普及した現在でも、共役モデルはベイズ推論の教科書の入口であり、逐次更新が高速に必要な現場(オンライン学習、バンディットアルゴリズムなど)の実用部品であり、複雑なモデルの部品としても生き続けています。

なぜ生まれたか

ベイズ推論の原理は18世紀からあったのに、20世紀末まで実用が広がらなかった最大の理由は計算です。事後分布を確率分布として完成させるには「尤度×事前を母数の全域で足し合わせる」積分が必要で、電子計算機のない時代はもちろん、あっても母数が多次元になれば数値積分は手に負えませんでした。ベイズの枠組みは美しいが計算できない — これが長年の課題でした。

共役事前分布は、この課題への「モデルの側を計算できる形に選ぶ」という解決です。尤度の数式の形をにらみ、掛け算しても同じ族に収まる事前分布をあらかじめ選んでおけば、事後分布は積分なしでパラメータの更新式として求まります。1950〜60年代にライファとシュレイファーらが意思決定理論の文脈でこの考え方を体系化し、主要な尤度に対する共役族のカタログが整備されました。MCMC以前のベイズ統計は、実質的にこのカタログの範囲で営まれていたと言ってよいほどです。

詳細

ベータ二項モデル — 足し算になる更新

共役性の代表例がベータ二項モデルです。成功率pのベルヌーイ試行(成功/失敗の繰り返し)について、事前分布としてベータ分布 Beta(a, b) を置きます。aとbは「これまでに見たことにする成功数・失敗数」と読める形のパラメータです。ここでn回中k回成功というデータ(二項分布に従う)を観測すると、事後分布は Beta(a + k, b + n − k) になります。成功数を a に、失敗数を b に足すだけ。積分はどこにも現れません。

種明かしは式の形にあります。尤度は p の k 乗と (1 − p) の n − k 乗の積、ベータ分布の密度は p の a − 1 乗と (1 − p) の b − 1 乗の積に比例します。掛け合わせると指数どうしが足し算になり、p の (a + k − 1) 乗と (1 − p) の (b + n − k − 1) 乗の積——また同じ形です。正規化の定数は形が分かれば決まるので、積分を実行する必要がありません。

00.50.671p事前 Beta(2, 2)成功2・失敗2 ぶんの見立て事後 Beta(9, 5)最頻値 8/12 ≈ 0.67、平均 9/14 ≈ 0.6410回中7回成功を観測a に +7、b に +3 するだけ事後の山は、事前の中心 0.5 とデータの割合 0.7 の間に立ち、幅は狭くなる
ベータ二項モデルの更新 — Beta(2, 2) の事前が、10回中7回成功のデータで Beta(9, 5) の事後になる(曲線は計算した密度)

この更新式は直感的にも読み下せます。事前分布 Beta(2, 2) は「成功2回・失敗2回ぶんの経験を持っているつもり」というゆるい五分五分の見立てで、そこに実データの成功7回・失敗3回が加算されて Beta(9, 5) になる。事後分布の山は 7/10 = 0.7 と事前の中心 0.5 の間に立ちます(最頻値は 8/12 ≈ 0.67、平均は 9/14 ≈ 0.64)。事後平均は「事前平均 0.5 とデータの割合 0.7 を、事前の擬似回数 4 と実データ数 10 の重みで平均したもの」になっており、(4 × 0.5 + 10 × 0.7) ÷ 14 = 9/14 と計算できます。事前分布のパラメータが「疑似的な観測数」として働くこの読み方は、事前の強さを設計する際の実用的な物差しになります。a、bを大きくすれば頑固な事前、小さくすれば素直にデータに従う事前です。

共役ペアのカタログ

共役性は尤度と事前の「ペア」の性質です。代表的な組み合わせとして、二項分布(成功率)にはベータ分布、ポアソン分布(発生率)にはガンマ分布、正規分布の平均(分散既知)には正規分布、カテゴリ比率にはディリクレ分布、指数分布の率パラメータにはガンマ分布が共役です。いずれも尤度の数式と同じ「形」を持つ族を事前に選んでいるため、掛け算しても族から出ない、というのが共通の種明かしです。理論的には、尤度が指数型分布族(正規・二項・ポアソン・ガンマなど、密度を「パラメータの関数 × データの要約統計量」の指数の形に書ける分布のまとまり)に属していれば共役事前分布が必ず作れ、事前のパラメータに「要約統計量と件数」を足すという同じ型の更新になります。逆に言えば、尤度ごとに共役族は決まってしまい、自由に選べるわけではありません。

なぜ実務で今も使われるか

MCMC時代の現在でも共役モデルには明確な出番があります。第一に速度です。更新が定数時間の足し算なので、リクエストのたびにクリック率の分布を更新するようなオンライン処理でも計算コストがほぼゼロで済みます。多腕バンディットの定番手法トンプソンサンプリングは、まさにベータ二項の共役更新を毎回回して腕を選びます。第二に逐次性との相性です。事前分布と事後分布の連鎖(今日の事後を明日の事前にする運用)が、パラメータを持ち越すだけで実現できます。第三に、階層モデルのような複雑なモデルの内部でも、共役な部分だけ解析的に済ませて残りをサンプリングする(ギブスサンプリングや周辺化)ことで、MCMCの効率を大きく改善できます。

限界 — モデリングの自由と引き換え

共役事前分布の弱点は、その便利さの裏返しです。共役性を優先すると、事前分布の形が「計算の都合」で決まってしまい、本当に表現したい事前知識と食い違うことがあります。たとえば「pは0.2付近か0.8付近のどちらかだろう」という二山の事前は、1つのベータ分布では表せません。ただしこれには抜け道があり、ベータ分布を2つ重ねた混合分布を事前に置けば、事後もまた「更新されたベータ分布の混合」になり、各成分の重みだけをデータへの当てはまりに応じて付け替えれば済みます。共役族の混合は、共役性を保ったまま表現力を広げる古典的な技法です。また尤度が複雑なモデル(非線形モデルや階層の深いモデル)には、そもそも使える共役族が存在しないことがほとんどです。現代の実務では、共役で済むところは共役で高速に、済まないところはMCMCや確率的プログラミングで力任せに、という使い分けが標準です。共役事前分布は「ベイズ更新が本来どれほど単純な操作か」を見せてくれる教材であると同時に、計算資源が許す限りモデルの表現を優先する、という現代的な設計判断の比較対象でもあります。

試問

成功率についての見立てをベータ分布 Beta(α, β) で表すと、データを見た後の見立て(事後分布)もまたベータ分布になります。その平均(事後平均)が、データを見た後の「成功率はだいたいこのくらい」という値です。

✦ 命題挑戦中

成功率について事前 Beta(2, 8)(成功2回・失敗8回ぶんの経験)を持っている。新たに20回試して、事後平均をちょうど 0.5 にする成功回数を求めよ

20回中、何回成功すればよい?

10回