データのみを与えられたときにそのデータがどのような分布から発生したものかどうかを推測することを統計的学習や統計的推測などと呼びます。(以後データを発生させた未知の分布を真の分布と呼ぶことにします)
 ベイズ推測はデータから真の分布を推測する手法のひとつです、他にも最尤法や事後確率最大化法(MAP法)などがあります。
 では実際にベイズ推測がどのように行うのか説明していきます

用語の定義

以下ではベイズ推測を説明する上で必要な用語の定義を行います。

 まず推測を行う元となるデータをX={X_1,X_2,...,X_n}、目標とする真の分布をq(x)と表記することにします。
 次に、モデル(尤度と言われることもあります)と事前分布というものを定義します。モデルはパラメータ\thetaが与えられたときのxの確率分布を意味しp(x|\theta)と表記します、事前分布は\thetaの確率分布を意味し\phi(\theta)と表記します。ベイズ推測ではモデルと事前分布を用いて予測分布を作成します。

ベイズ推測の定義

 ベイズ推測ではまず、事前分布、モデル、データが与えられたと仮定する。これは事前分布に従いあるパラメータ\thetaが得られ、そのパラメータのもとで、モデルp(x|\theta)に従いデータが発生したと仮定したと考えていいでしょう。
 以上の仮定のもと事後分布p(\theta|X)を以下のように計算します。
p(\theta|X)=\frac{ \phi(\theta)\prod_{i=0}^np(X_i|\theta) }{\int\phi(\theta)\prod_{i=0}^np(X_i|\theta)d\theta}
 データが事前分布、モデルから発生したという仮定のもと、データが与えられたときの条件付き確率になっています(実際に表記もそのようになっています)。このように事後分布が計算されたとき、予測分布を次のように定義します。
p(x|X)=E_{p(\theta|X)}[p(x|\theta)]
事後分布で期待値をとることをE_{p(\theta|X)}[]と表記しました。
E_{p(\theta|X)}[p(x|\theta)]=\int p(x|\theta)p(\theta|X)d\theta
上記のように予測分布を計算することをベイズ推測と定義します。
 しかし文献によりMAP推定値を用いた方法も含む場合など、さまざまな表記があります。今回は『ベイズ統計の理論と方法』著渡辺澄夫にならいこのように定義しました。

注意事項

 ベイズ推測を行う際、事後分布を計算する必要があります。これは積分計算を必要とするため計算機で実現するために、MCMCなどの手法を用いる必要があり、pythonではPyStan等で計算することができます。

 上記では事前分布やモデルの正当性や、予測分布がどの程度正しい予測になっているかについては言及しませんでした。これはベイズ推測は事前分布とモデルが真の分布に対して正しい、正しくないに関わらず計算することができます。しかしこれは予測分布が正しいわけではありません。そのため計算された予測分布が真の分布に対してどの程度確からしいか検討する必要があります。評価方法については今回は言及しませんが、汎化誤差、ベイズ情報量基準等で評価することになります。

(著:馬場達之)

Deepblueでは統計やAIの平和的活用を一緒に取り組んでいただける方を募集してます。詳しくはRecruitをご覧ください。

関連記事