X - 数理・計算科学専攻

2009 年前期
大学院講義「統計数理 I」
間瀬茂 (情報理工学研究科 数理・計算科学専攻)
講義の目標: 統計学の役にたつテクニックの幾つかを紹介する。解説は体系的では無く、基礎の概
略を述べる。
–1–
目次
(1) 確率と密度関数
(2) 最尤法
(3) ベイズ法
(4) モンテカルロ法
(5) MCMC 法
(6) アニーリング法
(7) EM アルゴリズム
(8) 隠れマルコフモデル
(9) ベイジアンネットワーク
(10) 統計解析環境 R
(11) 参考文献
—
—
—
—
—
—
—
—
—
—
—
2頁
6頁
17 頁
23 頁
26 頁
45 頁
49 頁
57 頁
74 頁
90 頁
94 頁
1.1 確率と密度関数
–2–
確率論および統計学では「運」ω により結果が変わるランダムな現象 (確率変数) X(ω) を考える。
X が集合 A に入るという事象の確率を P{X ∈ A} = P{ω; X(ω) ∈ A} と表す。これは X の値が A
に入るような運が「全ての運の全体 Ω」中で占める割合を表す。
確率および期待値を具体的に指定するには、密度 (確率) 関数を用いる。もし X が連続値を取れば
密度関数 (probability density function) f (x) を用い
∫
P{X ∈ A} =
∫
f (x)dx,
E{g(X)} =
g(x) f (x)dx
A
となる。離散値を取れば確率関数 (probability function) f (x) を用い
∑
∑
g(x) f (x)
P{X ∈ A} =
f (x), E{g(X)} =
x
x∈A
と表す。ここで f (x) = P{X = x} であり、これは X が実際に値を取る高々加算個の x を除いて 0
になる。
注意:
1) 以下では簡単のために主に連続値の場合だけを紹介するが、連続変数の場合も、積分を和に、密
度関数を確率関数に変えればほぼ同じ結果が得られる。確率関数も単に密度関数と呼び、更に単に
「密度 (density)」と呼ぶこともあるので注意して欲しい。
2) 積分範囲を明示しない時は「密度が定義されている最大の範囲」で積分することを意味する。
1.2 確率と密度関数 — 同時密度と周辺密度
–3–
確率ベクトル X = (X1 , X2 , . . . , Xn ) の密度を「同時密度関数 (joint density)」
f (x) = f (x1 , x2 , . . . , xn ) と呼ぶ。X の副ベクトル X0 = (Xi , Xi , . . . , Xi ) の密度を元の同時密
m
2
1
度に対し「周辺密度 (marginal density)」 f (x0 ) = f (xi , xi , . . . , xi ) と呼ぶ。周辺密度は同時密
m
1 2
度を「余分な変数に対して積分し尽くす (integrate out)」することで得られる。例えば
X = (X1 , X2 , X3 ) ならば
∫
X1 , X3 の周辺密度 f (x1 , x3 ) =
f (x1 , x2 , x3 )dx2 ,
∫
X1 の周辺密度 f (x1 ) =
f (x1 , x2 , x3 )dx2 dx3
∫
証明 E{g(X1 , X3 )} =
g(x1 , x3 ) f (x1 , x2 , x3 )dx1 dx2 dx3
∫
∫
=
g(x1 , x3 )[ f (x1 , x2 , x3 )dx2 ]dx1 dx3
ここで簡便性のために (記号の乱用で)、どの周辺密度であるかを f (x1 , x3 ) の様に変数名で暗黙の
うちに表す習慣がある。また関数名も同じ f を断り無しに使う。これは次に示す、一部の文献に
見られるような、正確ではあるが煩瑣な表現に比べると、慣れれば至極便利である:
正確だが面倒な記法例
f1,3 (x1 , x3 ),
fX ,X (x1 , x3 )
1 3
1.3 確率と密度関数 — 条件付き密度とベイズの定理
–4–
二つの確率変数 (ベクトル) X,Y の同時密度を f (x, y) とすると、
「Y = y という条件の下での X の
条件付き密度」は次のように定義される:
f (x | y) =
f (x, y)
f (y)
分母は y の周辺密度である。自明の関係
f (x, y) = f (x | y) f (y) = f (y | x) f (x)
∫
に注意。分母 f (y) が零の場合比の値は定義できないが、P{ f (Y) = 0} = {y: f (y)=0} f (y)dy = 0
であるから、実際は任意の値として便宜的に定義すれば良い。
もし f (x | y) ≡ f (x) であれば f (x, y) = f (x) f (y) であり、これは X と Y が独立であることを意味
する。つまり、独立であれば、Y の値を情報として与えても X の密度は f (x) のままで不変という
こと。
いわゆる「ベイズ (Bayes) の定理」は二つの条件付き密度間の関係を与える:
f (y | x) =
1
× f (x | y) f (y).
f (x)
Y が原因、X が結果とすれば f (x | y) は「原因が y であるときの結果の確率分布」を意味する。ベ
イズの定理は因果を逆転し、「結果が x であるときの原因の確率分布」を与える式になる。
1.4 確率と密度関数 — 例: 条件付き密度のパラドックス
例:
–5–
条件付き確率はしばしば誤解の元になる。ある病気とその診断法があり
f (陽性 | 病気) = 0.99,
f (陽性 | 健康) = 0.10
だったとする。この検査法は一見優れているように見える。しかし病気そのものが稀で
f (病気) = 0.01 だったとする。全確率の公式
∫
f (y) =
f (y | x) f (x)dx
(の離散版) とベイズの定理から、陽性と診断された人のうち実際に病気である人は一割にも満たな
いことが分かる:
f (陽性 | 病気) f (病気)
f (病気 | 陽性) =
f (陽性)
=
f (陽性 | 病気) f (病気)
f (陽性 | 病気) f (病気) + f (陽性 | 健康) f (健康)
=
0.99 × 0.01
= 0.091
0.99 × 0.01 + 0.10 × 0.99
2.1 最尤法
–6–
ランダムなデータ X = (X1 , X2 , . . . , Xn ) はその同時分布の密度関数 f (x1 , x2 , . . . , xn ) で特徴づけ
られる。統計モデルはデータの可能な母集団分布のクラス (同時密度関数のパラメータ族)
f (x1 , x2 , . . . , xn | θ),
θ∈Θ
(1)
で表現される。従ってデータの真の母集団分布に対応する「真のパラメータ」θ∗ が存在すること
になり、それをデータの実現値 x = (x1 , x2 , . . . , xn ) を基に推測する事が問題になる (統計的推測
問題)。
b = θ(X)
b
推測はデータの関数である推定量 (estimator) θ
を用いて行われる。推定値自体もランダム
b を推定値 (estimate) と呼ぶ。
になることを注意する。具体的な実現値を代入して得られた値 θ(x)
個々の問題に対し、良い推定量をどのようにして求めるかは、良さの意味自体が様々に考えられる
以上、簡単には答えられないが、以下では「比較的良い」推定量を構成するために広く使われる二
つの原理である「最尤法」と「ベイズ法」を紹介する。
2.2 最尤法 — 尤度関数と最尤推定量
–7–
最尤法 (maximum likelihood method) では、データの密度関数のパラメータが θ であるとき、そ
のデータがどのくらい得られやすいかを計る「尤度関数 (likelihood function)」を用いる:
L(θ) = L(θ | x) = f (x1 , x2 , . . . , xn | θ), θ ∈ Θ.
ここで x には具体的なデータの値 (実現値) が代入されていると考えている。
(2)
データは「出やすいからこそ出た」と考えれば、L(θ) を最大にする θ を真のパラメータの推定値
に取ることは自然である。これを「最尤推定量 (Maximum Likelihood Estimator)」と呼ぶ:
b
θ
MLE (x) = argmax L(θ | x).
θ∈Θ
推定量を構成する問題が、機械的に尤度関数の最大化問題に帰着されていることを注意する。
(3)
2.3 最尤法 — 対数尤度方程式
–8–
尤度関数はしばしば積の形になるため、対数を取ってから最大化する方が簡単になる。
b
θ = (θ1 , θ2 , . . . , θk ) ならば次の対数尤度方程式を解いて最尤推定量 θ
MLE を求める:
∂ log L(θ)
∂ log L(θ)
∂ log L(θ)
= 0.
=
= ... =
∂θ1
∂θ2
∂θk
∏
例: もしデータが独立同分布なら L(θ | X) = n f (Xi | θ) だから対数尤度方程式は
i=1
n
n
∂ ∑
∂ ∑
log f (Xi | θ) = . . . =
log f (Xi | θ) = 0.
∂θ1
∂θk
i=1
i=1
(4)
(5)
2.3 最尤法 — 例: 1 次定常マルコフ連鎖
–9–
同時密度関数の分解
fθ (x1 , x2 , . . . , xn ) = fθ (xn | x1 , x2 , . . . xn−1 ) fθ (xn−1 | x1 , x2 , . . . , xn−2 )
· · · fθ (x2 | x1 ) fθ (x1 )
(6)
に於いて fθ (xi | x1 , x2 , . . . , xi−1 ) = Tθ (xi | xi−1 ) の時 1 次定常マルコフ連鎖と言う。
∏n−1
T (X
| Xi ) だから対数尤度方程式は
i=1 θ i+1




n−1


∑


∂ 

log
f
(X
)
+
log
T
(X
|
X
)
= 0,


θ 1
θ i+1
i 


∂θ j 


i=1
L(θ | X) = fθ (X1 )
j = 1, 2, . . . , k
(7)
2.3 最尤法 — 例: 有向独立グラフ
– 10 –
例: 有向独立グラフ。遺伝学に特有の家系図データは親子関係から決まる自然なグラフ構造を持
つ。確率有向グラフは、頂点と呼ばれる確率変数 Xi と、条件付き確率関係「他の全ての X j を与
えたときの Xi の条件付き密度関数は、Xi へ矢印が引かれているような X j を条件とするだけで決
まる」を表す有向辺の組からなる。
家系図データ中の各創始者 (家系図中に親が含まれない個人) の全体を X0 、創始者を
{X1 , X2 , . . . , Xn } と置く。各創始者 i の父親、母親をそれぞれ Mi , Fi と置くと
f (x1 , x2 , . . . , xn | x0 ) =
n
∏
i=1
f (xi | xM , xF ),
i
i
f (x0 , x1 , x2 , . . . , xn ) = f (x0 ) ×
n
∏
i=1
f (xi | xM , xF )
i
i
となる。これは家系図データの尤度を求める際の基本の式となる。
2.3 最尤法 — 家系図尤度
– 11 –
家系図有向独立グラフの例: X0 = {Y1 , Y2 , Y3 } が創始者グループ、{X1 , X2 } が非創始者。尤度関
数は
f (y1 , y2 , y3 , x1 , x2 ) = f (y1 , y2 , y3 ) f (x1 | y1 , y2 ) f (x2 | x1 , y3 ).
Y1
Y2
X1
Y3
X2
簡単な家系図
2.4 最尤法 — 例: 人間の ABO 血液型の遺伝
– 12 –
人間の血液型には輸血の適・不適から 4 種類のタイプが存在し、それらが遺伝することが知られて
いたが、これをメンデル遺伝学の立場から説明するために 2 種類の仮説がかって提案された。
(1) 第 1 の説はメンデル自身の実験でお馴染みの 2 組の対立遺伝子説である。これによれば 2 組の
対立遺伝子 (A, a), (B, b) があり、遺伝子グループ
{
} {
} {
} { }
AA Aa
aa aa
AA Aa AA Aa
aa
,
,
,
,
,
,
,
,
bb
bb
BB Bb
BB Bb Bb Bb
bb
がそれぞれ血液型 1,2,3,4 に対応するとする。
(2) 第 2 の説では、3 種類の遺伝子 A,B,O があり、A,B 間に優劣は無く、ともに O に対し優性である
とする。そして遺伝子グループ
{AA, AO}, {BB, BO}, {AB}, {OO}
がそれぞれ血液型 1,2,3,4 に対応するとする。
2.4 最尤法 — 例: 人間の ABO 血液型の遺伝
– 13 –
19 世紀の数学者 Bernstein は西洋人 502 人のデータを元に両説の真偽を検討した:
1型
212 人
2型
103 人
3型
39 人
4型
148 人
計
502 人
2 組の対立遺伝子説では、集団内の A,a 遺伝子と B,b 遺伝子の比率をそれぞれ p : 1 − p, q : 1 − q
とすれば、ランダムな交配により次世代の血液型の確率は、卵子・精子それぞれ 4 通りの遺伝子の
タイプの組合せと確率から、次の表のようになる (簡単のため P = 1 − p, Q = 1 − q とおいた):
♂ AB(pq)
♂ Ab(pQ)
♂ aB(Pq)
♂ ab(PQ)
♀ AB(pq)
♀ Ab(pQ)
♀ aB(Pq)
♀ ab(PQ)
3 型 (p2 q2 )
3 型 (p2 qQ)
3 型 (pPq2 )
3 型 (pPqQ)
3 型 (p2 qQ)
1 型 (p2 Q2 )
3 型 (pPqQ)
1 型 (pPQ2 )
3 型 (pPq2 )
3 型 (pPqQ)
2 型 (P2 q2 )
2 型 (P2 qQ)
3 型 (pPqQ)
1 型 (pPQ2 )
2 型 (P2 qQ)
4 型 (P2 Q2 )
2.4 最尤法 — 例: 人間の ABO 血液型の遺伝
– 14 –
従って、各血液型の確率関数と尤度関数は次のようになる:
f (1 | p, q) = p(2 − p)(1 − q)2 ,
f (2 | p, q) = (1 − p)2 q(2 − q),
f (3 | p, q) = p(2 − p)q(2 − q),
f (4 | p, q) = (1 − p)2 (1 − q)2 ,
L(p, q) = f (1 | p, q)212 f (2 | p, q)103 f (3 | p, q)39 f (4 | p, q)148
= p251 (1 − p)502 (2 − p)251 q142 (1 − q)720 (2 − q)142 .
対数尤度方程式は
502
251
142
720
142
251
−
−
=
−
−
= 0.
p
1−p
2−p
q
1−q
2−p
これは整理すると 2 次方程式になり、解 (最尤推定値) b
p = 0.2929, b
q = 0.1532 を得る。
2.4 最尤法 — 例: 人間の ABO 血液型の遺伝
– 15 –
A,B,O 遺伝子説では、集団内の A,B,O 遺伝子の比率を p : q : r (r = 1 − p − q) とすれば、ランダム
な交配により次世代の血液型の確率は次の表のようになる:
♂ A(p)
♂ B(q)
♂ O(r)
♀ A(p)
♀ B(q)
♀ O(r)
1 型 (p2 )
3 型 (pq)
1 型 (pr)
3 型 (pq)
2 型 (q2 )
2 型 (qr)
1 型 (pr)
2 型 (qr)
4 型 (r2 )
従って、各血液型の確率関数と尤度関数は次のようになる:
f (1 | p, q) = p2 + 2qr,
f (3 | p, q) = 2qr,
f (2 | p, q) = q2 + 2qr,
f (4 | p, q) = r2 ,
L(p, q) = (p2 + 2qr)212 (q2 + 2qr)103 (2pq)39 (r2 )148 .
2.4 最尤法 — 例: 人間の ABO 血液型の遺伝
– 16 –
次の対数尤度方程式を数値的に解いて、解 (最尤推定値) b
p = 0.2945, b
q = 0.1540 を得る。
251
212
206
296
−
−
−
= 0,
p
2 − p − 2q
2 − 2p − q
1−p−q
142
424
103
296
−
−
−
= 0.
q
2 − p − 2q
2 − 2p − q
1−p−q
以上の結果から、両仮説の下での推定理論確率を求めると:
標本確率
推定確率 (AaBb 説)
推定確率 (ABO 説)
1型
0.4223
0.3586
0.4116
2型
0.2052
0.1414
0.1936
3型
0.0777
0.1414
0.0907
4型
0.2948
0.3586
0.3042
これより、ABO 説の方が実際のデータをより良く説明できることが分かる。更に AaBb 説では 1 型
と 4 型, 2 型と 3 型の理論比率がそれぞれ同じにならねばならぬこと、1 型と 3 型 (A,AB 型) の親から
4 型 (O 型) の子どもが生まれる可能性がある等、実際とはかけ離れた結論が導かれることからも
AaBb 説は支持しがたい。
3.1 ベイズ法
– 17 –
ベイズ法 (Bayesian inference) は確率論のベイズの定理に基づく統計手法であり、データの「真の
母集団分布」を求めるという最尤推定法等の客観的な立場と異なり、データの母集団分布の「尤も
らしさ」を推論するという主観的な立場を重視する。
ベイズの定理 (再掲): 密度関数 f (x, ϑ) に対し
f (ϑ | x) ∝ f (x | ϑ) f (ϑ).
証明:
f (x, ϑ)
f (x, ϑ)
1
1
f (ϑ | x) =
=
×
× f (ϑ) =
× f (x | ϑ) f (ϑ) ∝ f (x | ϑ) f (ϑ).
f (x)
f (x)
f (ϑ)
f (x)
解釈: f (x | ϑ) を原因が ϑ であるときの結果 x の確率分布とすると、 f (ϑ | x) は結果 (データ) が x
であるときの、原因 ϑ の確率分布を表す。結果を観測する前には原因 ϑ は密度 f (ϑ) で表される曖
昧さを持てば、結果 x を観測した後には曖昧さは条件付き密度 f (ϑ | x) にベイズの定理に従い変化
する。
3.2 ベイズ法 — 事前分布と事後分布
– 18 –
ベイズ推定法では、データの母集団分布は唯一ではなく、密度関数 π(θ) で表現される曖昧さがあ
ると考える。π は事前分布 (prior distribution)、もしくは主観分布 (subjective distribution) と呼ば
れ、過去の経験、何らかの見込み・信念を表す。実際には単に数学的簡易さという便宜主義で選ば
れることも多い。
ベイズの定理から、データ x を観測すると、我々のデータの母集団に対する見込みは事後分布
(posteriori distribution)
f (θ | x) =
1
× f (x | θ)π(θ)
f (x)
(8)
に変化する。一般に事後分布は事前分布よりもより狭い範囲に分布する (母集団分布の確度が高
まる)。
注意: (8) の右辺の正規化定数 1/ f (x) は、原理的には本体 f (x | θ)π(θ) から完全に決まるが、しば
しば計算が困難なことが多い。
3.3 ベイズ法 — 例: 事後分布
– 19 –
6
5
4
0
1
2
3
density (x)
3
2
1
0
density (x)
4
5
6
簡単な例: 平均 0.5, 分散 1 の正規分布に従うデータと、区間 [0, 2] 上の一様分布に従う事前分布か
ら求めた事後分布のグラフ。真値 0.5(矢印位置) のより近くに分布するようになる。
−1
0
1
x
データ数 50
2
3
−1
0
1
x
データ数 200
2
3
3.4 ベイズ法 — ベイズ推定量と MAP 推定量
– 20 –
事後分布から具合的なパラメータの推定を行うには幾つかの方法が考えられる:
b : 事後分布に関する平均自乗誤差を最小にするパラメータ値
(1) ベイズ推定量 θ
B
∫
b (x) = argmin
θ
|t − θ|2 f (θ | x)dθ.
B
Θ
t∈Θ
∫
簡単な計算から、ベイズ推定量は事後分布の平均 Θ θ f (θ | x)dθ に他ならないことが分かる。
b
(2) MAP(最大事後確率, Maximum A Posteriori probability) 推定量 θ
MAP : 事後密度関数を最大
にする値。MAP 推定量は、 f (x | θ)π(θ) を最大にする θ 値であり、正規化定数 1/ f (x) が分からな
くても計算できる。
注意: ベイズ法の現代的応用では、正規化定数が計算不能であることが多く、MAP 推定量が基本と
なる。 f (x | θ)π(θ) = f (x, θ) であるから、MAP 推定量はデータ x と「最も相性の良い」パラメー
タともいえる。
3.4 例: ベイズ法 — 例: 人間の ABO 血液型の遺伝
– 21 –
人間の ABO 血液型の遺伝データの例を再び考える。パラメータ p, q (p, q ≥ 0, p + q ≤ 1 の制限に
注意) の事前分布としてディリクレ分布 (α, β, γ > 0)
Γ(α + β + γ) α−1 β−1
π(p, q) =
p
q
(1 − p − q)γ−1 ,
Γ(α)Γ(β)Γ(γ)
p, q ≥ 0, p + q ≤ 1
を取る。特に α = β = γ = 2 とすると、AaBb 説、ABO 説の下での事後分布は、それぞれ



f (p, q | x) ∝ 

p251 (1 − p)502 (2 − p)251 q142 (1 − q)720 (2 − q)142 × pqr
(p2 + 2qr)212 (q2 + 2qr)103 (2pq)39 (r2 )148 × pqr
となる (簡単のために r = 1 − p − q と置いた)。
(AaBb 説),
(ABO 説)
3.4 例: ベイズ法 — 例: 人間の ABO 血液型の遺伝
– 22 –
これらから MAP 推定量を求める手順は結局最尤推定量の計算と類似する (実は α = β = γ = 1 と置
けば最尤推定そのもの)。
b
pMAP = 0.2929,
b
qMAP = 0.1838
(AaBb 説),
b
pMAP = 0.2947,
b
qMAP = 0.1546
(ABO 説).
以上の結果から、両仮説の下での推定理論確率を求めると、以下のように最尤推定法の場合とほと
んど同じ結果が得られる:
標本確率
推定確率 (AaBb 説)
推定確率 (ABO 説)
1型
0.4223
0.3331
0.4114
2型
0.2052
0.1669
0.1942
3型
0.0777
0.1669
0.0911
4型
0.2948
0.3331
0.3033
4.1 モンテカルロ法
– 23 –
乱数を用いた数値積分法をモンテカルロ (Monte Carlo) 法と総称する。密度関数 f (x) に従う独立
な確率変数 (ベクトル) 列 X1 , X2 , . . .、 g(x) を任意関数とする。 g(X1 ), g(X2 ), . . . も独立列であり、
その平均が存在すれば E{g(Xi )} =
∫
g(x) f (x)dx. 従って大数の強法則から
∫
n
1 ∑
g(Xi ) →
g(x) f (x)dx.
n
i=1
(9)
つまり十分大きな n に対しては上式の左辺の標本平均は右辺の平均値の近似値になる。
注意:
1) 積 g(x) f (x) が一定であるような g, f の選択には自由度があり、精度、収束の早さに影響する。
√
2) (9) の収束の早さは一般に O(1/ n) であり、決して早くないが、収束のオーダーは次元や g の
滑らかさによらない。独立でない乱数列を用いても良いが、収束の早さは更に遅くなる。
3) 積分の次元が小さく、被積分関数が適度に滑らかなら、いわゆる数値積分の方が迅速かつ正で
ある。更に、準乱数 (semi-random number, low-discrepancy sequence) と呼ばれる特殊な数列
を用いると収束のオーダーを O(1/n) にすることもできる。
4.2 モンテカルロ法 — 疑似乱数
– 24 –
計算機では乱数は疑似乱数 (pseudo random number) と呼ばれる、本来規則的であるが、乱数が
持つべき性質をできるだけ多く持つような数列を発生して代用する。現在の高機能のフリーの統計
システム R の一様疑似乱数 runif の既定アルゴリズムは Mersenne-Twister 法。周期
219937 − 1 = 4.31 × 106001 という超長周期、(百億人が毎秒百億個の乱数を百年使い続けても必
要な乱数の数は 3.12 × 1029 、623 次元空間中に均等に分布)。
Marsaglia-Multicarry 法 (R1.7 以前の既定手法)
Mersenne-Twister 法
引き続く疑似乱数 (Rt , Rt+1 , Rt+2 ) を三次元立方体に置き、その薄い薄辺を底面に射影
4.3 モンテカルロ法 — importance sampling 法
– 25 –
モンテカルロ法の収束を早めたり、計算を容易にする工夫には様々なものがある。本来の密度関数
f の代わりに別の密度関数 h に従う乱数列 Z1 , Z2 , . . . と、重み関数 w(z) = f (z)/h(z) を用いると、
大数の強法則から
∫
∫
n
∑
f
(x)
1
w(Zi )g(Zi ) →
g(x)h(x)dx =
f (x)g(x)dx,
n
h(x)
i=1
∫
∫
n
f (x)
1 ∑
w(Zi ) →
h(x)dx =
f (x)dx = 1.
n
h(x)
i=1
∫
∑n
∑n
従って重み付き和
w(Zi )g(Zi )/
w(Zi ) は g(x) f (x)dx に収束する。
i=1
i=1
∫
∑n
注意: 分子
w(Zi )g(Zi ) だけでも g(x) f (x)dx に収束するが、比を取り重みを総和 1 にする
i=1
方が安定する。
5.1 MCMC 法
– 26 –
MCMC(Markov Chain Monte Carlo) 法とはマルコフ連鎖を用いて高次元乱数を漸近的に発生する
手法の総称である。一般 (離散もしくは連続) 空間 X 上の密度関数 f (x), x = (x1 , x2 , . . . , xn ) ∈ Xn ,
に従うベクトル乱数 R = (r1 , r2 , . . . , rn ) を発生したい。n が非常に大きく、また f (x) が複雑な場
合 R を直接発生することは一般に困難か不可能になる。更に典型的な場合 f (x) は
1
f (x) = cg(x), c = ∫
Xn g(x)dx
の形を持ち、 g(x) は簡単に計算できるが、高次元積分 (もしくは多重和) である正規化定数 c が理論
的にも数値的にも計算できない。
メトロポリス抽出法 (Metropolis sampler) は最初米国ロスアラモスに於ける原子爆弾開発の際、
Metropolis を始めとする物理学者たちにより提案され、その後統計物理学の粒子系の平衡分布
(Gibbs 分布) を計算する標準的手法となった。後に Hastings により多次元乱数を発生する一般的
方法に拡張され、Metopolis-Hastings アルゴリズムと呼ばれる。世界の十大アルゴリズムの一つ
とされ、開発直後の電子計算機の使用を最初から前提にしたアルゴリズムという意味でも興味
深い。
5.1 MCMC 法 — 有限状態空間上のマルコフ連鎖 (まとめ)
– 27 –
有限状態空間 S = {1, 2, . . . , N} 上のマルコフ連鎖 X = {X0 , X1 , X2 , . . .} は定常推移確率行列
P = (pij ),
pi j = P{Xt+1 = j | Xt = i}, i, j ∈ S, t = 0, 1, 2, . . .
(n)
を持つとする。P の各行の総和は 1 となる。P の行列としての n 乗を Pn = (p ) と置くと
ij
(n)
p
= P{Xt+n = j | Xt = i}, i, j ∈ S, t = 0, 1, 2, . . . .
ij
5.1 MCMC 法 — 有限状態空間上のマルコフ連鎖 (まとめ)
– 28 –
(n)
(1) 状態 i が非周期的 (aperiodic) とは gcd{n; p
> 0} = 1。
ii
(n)
(2) 状態 i が再帰的 (recurrent) とは ∃n ≥ 1 で p
> 0。再帰的でない状態は一時的 (transient) と
ii
∑ (n)
呼ばれる。状態 i が再帰的となる必要十分条件は n p
= ∞。
ii
(3) 再帰的で非周期的な状態はエルゴード的な状態と呼ばれる。
(n)
(4) マルコフ連鎖が既約 (irreducible) とは ∀i, j ∈ S で p
> 0, ∃n。
ij
(5) 既約で、全ての状態がエルゴード的なマルコフ連鎖は「エルゴード的なマルコフ連鎖」と呼ば
れる。
(6) ∀i, j で πi pij = π j p ji が成り立つ S 上の確率ベクトル π = (π1 , π2 , . . . , πN ) (横ベクトルと考
える) が存在するとき、マルコフ連鎖は可逆 (reversible) と呼ばれる。このとき π は X の平衡 (定
常) 分布、π = πP、となる。
5.1 MCMC 法 — 有限状態空間上のマルコフ連鎖 (まとめ)
定理 (平衡分布の存在):
– 29 –
エルゴード的なマルコフ連鎖では ∀i, j で (i に無関係な) 極限
(n)
π j = lim p
n→∞ ij
が存在する。π = (π1 , π2 , . . . , πN ) は X の平衡分布、つまり π = πP。X0 の分布が π であれば、
全ての Xt の分布も π。
定理 (マルコフ連鎖に対するエルゴード定理、大数の強法則):
任意の関数 g(i) で
n
∑
1 ∑
g(Xt ) →
g(i)πi .
n
t=0
i∈S
つまりモンテカルロ法が実行できる。
エルゴード的なマルコフ連鎖では
5.2 MCMC 法 — メトロポリス抽出法の理論的基礎
Xn : を状態空間、X = {X1 , X2 , . . . , Xn , . . .} を X 上の n 次元ベクトル単純マルコフ連鎖、
T(y | x): X の推移確率 P{Xi+1 = y | Xi = x}
f (x) を X の平衡 (equilibrium) 分布の密度関数とする。推移確率のは次の性質を持つ:
∫
T(y | x) ≥ 0,
T(y | x)dy = 1 ∀x
平衡条件:
∫
f (y) =
T(y | x) f (x)dx ∀y
初期分布 (X1 の確率分布) が平衡分布に従えば、任意の Xt も同じ分布に従う。
– 30 –
5.2 MCMC 法 — メトロポリス抽出法の理論的基礎
– 31 –
詳細均衡式 (detailed balance equation)
x から y へ移動する無限小確率が、 y から x へ移動するそれと等しい。
T(x | y) f (y) = T(y | x) f (x)
∀x, y
定理. 詳細均衡式が成り立てば平衡条件が成り立つ。つまり、対応するマルコフ連鎖は可逆であり、
f (x) がその平衡分布になる。
証明. ∀y で
∫
T(x | y)dx = 1 に注意すると
∫
∫
∫
f (y) = f (y) T(x | y)dx =
T(x | y) f (y)dx =
T(y | x) f (x)dy.
5.2 MCMC 法 — メトロポリス抽出法の理論的基礎
– 32 –
推移確率が更に次の形を持つと仮定:
T(x | y) = A(x | y)K(x | y).
ここで K(x | y) はそれ自身推移確率で 0 ≤ A(x | y) ≤ 1 とする。 y から x に仮推移したうち、確率
A(x | y) 分だけ採択 (x に移動)、確率 1 − A(x | y) で棄却 (y に戻る)。対応する詳細均衡式は
A(x | y)K(x | y) f (y) = A(y | x)K(y | x) f (x)
∀x, y.
K(y|x) f (x)
を定義する。通常 K(x | y) = K(y | x) なので単に
K(x|y) f (y)
q(x | y) = f (x)/ f (y)。すると詳細均衡式は次と同値:
A(x | y)
= q(x | y) ∀x, y.
A(y | x)
補助量 q(x | y) =
5.2 MCMC 法 — メトロポリス抽出法の理論的基礎
– 33 –
定理. 任意の f (x), T(x | y) に対し、次の二つの A の選択で詳細均衡式が成り立つ:
(1) A(x | y) = min{1, q(x | y)} Metropolis 等によるオリジナル,
(2) A(x | y) = q(x | y)/(1 + q(x | y)) Hastings による変種.
証明. q(x | y) = q(y | x) に注意。(1) の場合は
A(x | y)
min{1, q(x | y)}
=
=
A(y | x)
min{1, 1/q(x | y)}
{
q(x | y)/1 = q(x | y)
1/(1/q(x | y)) = q(x | y)
(q(x | y) ≥ 1 の場合),
(q(x | y) < 1 の場合).
(2) の場合は
q(x | y) 1 + 1/q(x | y)
A(x | y)
=
= q(x | y).
A(y | x)
1 + q(x | y) 1/q(x | y)
5.2 MCMC 法 — メトロポリス抽出法の理論的基礎
– 34 –
以上の結果から Metropolis-Hastings アルゴリズムの基礎となる次の結果が得られる。
定理. 任意の確率分布 f (x), 推移確率 K(x | y) に対し、詳細均衡式が成り立つように A(x | y) を選
ぶ。推移確率 T(x | y) = A(x | y)K(x | y) を持つ単純マルコフ連鎖 X1 , X2 , . . . , Xn , . . . がエルゴー
ド的であれば、Xn の確率分布は漸近的に f (x) に分布収束する。特に十分大きな n で Xn は近似
的に f (x) に従う乱数となる。
Metropolis によるオリジナルアルゴリズムは以下の通りである:
(1) 初期乱数 R0 = (r0,1 , r0,2 , . . . , r0,n ) を発生する。
(2) Rm+1 の候補 R∗ を推移確率 K(x | Rm ) で発生。次の乱数 Rm+1 を次のように確率的に定
める:
{
R∗
確率 A(R∗ | Rm ) で更新,
Rm+1 =
(10)
Rm
確率 1 − A(R∗ | Rm ) で未更新.
(3) 十分大きな m に対する Rm を求める (近似) 乱数とする。
5.2 MCMC 法 — メトロポリス抽出法の理論的基礎
– 35 –
注意.
1) Metropolis のオリジナル版では A(R∗ | Rm ) = min{1, f (R∗ )/ f (Rm )}。 f (R∗ )/ f (Rm ) ≥ 1 なら
確率的に Rm より R∗ の方が「尤らしい」パターンだから R∗ に更新する。 f (R∗ )/ f (Rm ) < 1 でも
確率的に「より尤もらしくない」R∗ に更新するのは、確率的緩和 (stochastic relaxation) と呼ば
れ、 f (x) の局所的最大値付近にパターンが集中することを防ぐ効果がある。
2) A(R∗ | Rm ) は比 f (R∗ )/ f (Rm ) だけで決まるから、 f (x) に計算不可能な正規化定数が含まれて
いても良い。
3) K(y | Y) による推移を重ねて、 f (x) > 0 である X のあらゆる点に (原理的に) いつかは到達でき
ることが、MCMC 連鎖がエルゴード的であるためには不可欠である。推移確率 K(y | x) は実際は、
X = R とすると、平均 x の n 次元正規分布 N(x, σ2 I) (各成分が N(xi , σ2 ) の独立正規乱数) と置く
ことが多い。
– 36 –
0
0.00
20
0.02
40
60
0.04
0.06
80 100
0.08
5.2 MCMC 法 — 例: メトロポリス抽出法の実例
100
200
300
400
0
100
200
300
400
0.00
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.00
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0
0.00
20
0.02
40
60
0.04
0.06
80 100
0.08
0
∑25
x ≤ 1, xi > 0, ∀i] に比例する 25 次元密度から
メトロポリス抽出法の例: 密度関数が I[
i=1 i
の抽出。1 ≤ n ≤ 1e4 回と 1e5 ≤ n ≤ 1e5 + 1e4 回の x1 の値のプロット (左) とその対応ヒスト
グラム (右)
5.3 MCMC 法 — ギブス抽出法
– 37 –
今一つのマルコフ連鎖を用いた (近似的) 高次元乱数発生法がギブス抽出法 (Gibbs sampler) であ
る。目標分布 f (x), x = (x1 , x2 , . . . , xn ), の一つの変数 xi とそれ以外の変数集合 x∗ = x\{xi } に対
i
∗
し条件付き分布 f (xi | x ) (低次元の分布になる) に従う乱数が正確かつ容易に発生できるとき使
i
える。
(1) 任意の分布 g(x) に従う初期乱数 R0 = (r0,1 , r0,2 , . . . , r0,n ) を発生する。
(2) 各 i を 1 から n まで変えながら、m ≥ 1 番目の乱数 Rm の i 番目の座標値 rm,i を x∗ の値を現
i
在存在する最新の乱数の値 (Rm−1 もしくは Rm の座標の一部) としたときの条件付き分布
f (xi | x∗ ) に従って発生した乱数の値とする。
i
(3) 十分大きな m に対する Rm を求める (近似) 乱数とする。
例: X3 上の乱数を発生する場合:
(1) 初期乱数 R0 = (r0,1 , r0,2 , r0,3 ) を発生する。
(2) r1,1 を条件付き分布 f (x1 | r0,2 , r0,3 ) で発生。
(3) r1,2 を条件付き分布 f (x2 | r1,1 , r0,3 ) で発生。
(4) r1,3 を条件付き分布 f (x3 | r1,1 , r1,2 ) で発生し R1 = (r1,1 , r1,2 , r1,3 ) が決まる。
5.3 MCMC 法 — ギブス抽出法
– 38 –
注意.
1) Metropolis 抽出法では引き続く乱数値が全く同じになることがしばしば起きるが、Gibbs 抽出
法では原則として抽出毎に異なった乱数値が得られる。
2) Metropolis, Gibbs 抽出法双方で、十分平衡状態に近付くまでに必要な空回し (burn in) 回数の決
定は、それまでの発生乱数列の様子を見ながら決めるが、簡単で確実な方法は無い。
3) Gibbs 抽出法は採択率 A(x | y) ≡ 1 である Metropolis 抽出法の一種類と考えることができる。
また条件付き密度を用いるため、 f (x) の正規化定数が未知でも有効である。
4) 実際には多数の乱数が必要になるため、一つのマルコフ連鎖を発生しながら、十分大きな間隔 t
で Rm , Rm+t , Rm+2t , . . . を選ぶ。もしくは複数のマルコフ連鎖を独立に発生して、各々から一つ
ずつ乱数を選ぶ。前者では、最終乱数間の相関が十分低くなるように注意する。後者では、完全に
独立な乱数が得られるが、必要抽出時間は大きくなる。
5) Gibbs 抽出法は Geman 兄弟によるベイズ法を用いた画像解析法で用いられ、名前も彼らに
よる。
5.4 MCMC 法 — 混合性の問題
– 39 –
MCMC 法では常に混合性 (mixing property) が問題になる。マルコフ連鎖は可能な全ての状態を密
度関数の値に応じて万辺無くサンプリングしなければならないが、高次元の複雑な密度関数はしば
しば複数の谷・峰を持つので、結果として限られた部分しかサンプリングしないことも起きる。
MCMC 法の混合性を高める工夫は数多くあるが、以下では二つを紹介する。いずれも、本来のマ
ルコフ連鎖と混合性が良いマルコフ連鎖を並行して生成する。
加熱 (heated)MCMC 法: 本来の密度 f (x) に対し、それを「温度 T > 1 に加熱した」密度
fT (x) ∝ f (x)1/T を考える。 f に比べ fT は相対的に平坦になり、混合性がます。対応するマルコ
フ連鎖をそれぞれ {Xn }, {Yn } とし、加熱マルコフ連鎖 {Zn } の各ステップ Zn を確率
{
}
1−1/T
min 1, [ f (Xn )/ f (Yn )]
で Zn = Yn とし、さもなければ Zn = Xn とする。
ヒント: 状態空間 X × Y 上の密度 f (x)g(y) に対する MCMC 系列 (Xn , Yn ) を考える。系列 Xn だ
け見れば、その平衡分布は f (x)。二つの MCMC 系列を交換する推移確率
K((x0 , y0 ) | (x, y)) = I[x = y0 , y = x0 ] を考えると、q((x, y) | (y, x)) = ( f (x)/ f (y))/(g(x)/g(y))。
5.5 MCMC 法 — 混合性の問題
– 40 –
MC(Metropolis-Coupled)MCMC 法: 本来の密度 f (x) = f1 (x) に対し、順に混合性が高くなる密度
f2 , f3 , . . . , fk を考える。対応する k 本の MCMC 系列 X(1) , X(2) , . . . , X(k) を同時に発生する。
(1) (2)
(k)
(i)
Xn , Xn , . . . , Xn が決まったら、隣り合った二つの系列 Xn , X(i+1) の交換を加熱 MCMC 法
と同様に確率的に行う。ベクトル MCMC 系列 (X(1) , X(2) , . . . , X(k) ) の平衡分布は
f1 (x(1) ) f1 (x(2) ) · · · f1 (x(k) ) であり、特に X(1) の平衡分布は f1 = f となる。
結果として X(2) , X(3) , . . . , X(k) は捨てられるが、その分混合性が高まる。
f2 , f3 , . . . , fk としては、例えば温度パラメータを T1 = 1 < T2 < . . . < Tk とし
fi (x) ∝ f (x)Ti
とする。
5.6 MCMC 法 — 混合性の問題
– 41 –
データ増幅 (data augmentation) 法: 補助的な変数を加え、拡大した空間で考えると混合性が高ま
る可能性がある。本来の空間に対し、補助空間 Y を考える。条件付き密度 f (x | y), f (y | x) が与
えられているとする。同時密度 f (x, y) ∝ f (y | x) f (x) に従う乱数 (X, Y) を X × Y 上に MCMC 法
で発生する。X の周辺密度は求めたい f (x) になる。
適当な初期乱数 X0 から出発し、Xn が求まったとして Yn を条件付き密度関数 f (y | Xn ) で発生
する。次に条件付き密度関数 f (x | Yn ) で Xn+1 を発生する。適当な条件の下で系列 {Xn } の分布
は密度 f (x) の平衡分布に収束する。つまり推移確率 K((x, y) | (x0 , y0 )) = f (x | y) f (y | x0 ) を考
える。
5.7 MCMC 法 — ギブス分布
– 42 –
Metropolis 抽出法の誕生のきっかけになった統計力学の粒子系の位置エネルギーの確率分布 (粒子
系には他にと呼ばれる粒子の総運動エネルギーがあり、Maxwell 分布、つまり正規分布に従う)。
X = {x1 , x2 , . . . , xn }: 3 次元空間 R3 中の有界領域 X 中の n 個の粒子の位置座標、
φ(|x − y|): 位置 x, y の二つの粒子間に働くポテンシャル (エネルギー) 関数、
∑
E(X) = i≤j φ(|xi − x j |): 粒子系 X の総ポテンシャルエネルギー。
物理学者 Gibbs は、熱力学的平衡状態にある粒子系の位置エネルギーの確率分布の密度関数が次の
ように表現できることを示した:
(
)
E(x)
1
f (x) =
exp −
,
Z
kT
(
Z=
e−E(x)/kT dx.
Xn
ここで T は粒子系の絶対温度、k = 1.38065 × 10−8 m2 kg s−2 K−1 は Boltzmann 定数と呼ばれ
る分子一個あたりのエントロピー量を表す物理定数。Z は分配関数と呼ばれる正規化定数の逆数で
あり、統計力学では n は 1 モル (アボガドロ数) 6.02 × 1023 のオーダーになる。
5.8 MCMC 法 — MCMC 法とベイズ法
– 43 –
かってのベイズ法では事後密度関数の正規化定数
∫
1/
Θ
f (x | θ)π(θ)dθ
が理論的に計算可能なものを主に扱い、当然事前分布の形やパラメータの次元も簡単なものに限ら
ざるを得ず、統計哲学として魅力的ではあったが、結局最尤法などと比較したメリットは決して多
くなかった。
MCMC 法を用いた Metropolis 抽出法や Gibbs 抽出法は、この正規化定数を求めること無く、事後
分布に従う乱数を漸近的に発生し、事後分布に基づくモンテカルロ法を可能にする。その際パラ
メータの次元は実質的に制限が無い。この柔軟さから、MCMC 法と組み合わされたベイズ法はこ
れまで到底不可能であったような複雑な統計モデルを扱うことを可能にした。
この可能性を最初に雄弁に示したのは Geman 兄弟による画像解析への応用であった。デジタル画
像は画素 (pixel) と呼ばれる単位矩形に明度・色彩等の情報が付随し、実際の画像はそれにノイズや
歪み等が加わったものと考えられる。真の画素情報を推定すべきパラメータと考えれば、その次元
は数万から数百万のオーダーになる。Geman 兄弟の論文はギブス抽出法とベイズ法を組み合わ
せ、真の画像全体を推定する魅力的な可能性を示し、その後の画像解析理論に革命的な影響を与
えた。
5.9 MCMC 法 — 階層的ベイズモデル
– 44 –
MCMC 法を用いたベイズ法は、従来の統計モデルでは到底不可能だったパラメータの次元の高い
複雑なモデルを扱うことを可能にした。特に「階層的ベイズモデル」と呼ばれる方法は統計応用に
革命的な変革をもたらしつつある。
階層的ベイズモデルは次のようなモデル式を用いる:
f (θ, λ | x) ∝ f (x | θ)π(θ | λ)ρ(λ)
ここで π は事前分布である。パラメータ θ はそれ自体複雑な構造を持ち高次元となるため、更に
「ハイパーパラメータ (hyper parameter)」と呼ばれる比較的低次元のパラメータ λ を用いて構造
化している。ρ はハイパーパラメータの事前分布である。条件付き密度 f (x | θ) 自体は複雑なパラ
メータ θ を用いて記述できるため、現象に含まれる様々な要因をモデルに取り込むことが可能に
なる。
例として、地震の発生位置・深度・震度を与えて、地表の震度を予測する問題に階層的ベイズモデ
ルを適用した例を紹介する (2007 年度修士卒の山根君の修論発表用スライド)。
6.1 アニーリング法
– 45 –
MCMC 法の重要な応用であるアニーリング法 (Simulated Annealing) は、組合せ的最適化問題と
呼ばれる条件の悪い最適化問題に対する汎用的手法である。アニーリングとは「焼き鈍し」(高温
の金属をゆっくり冷却すると内部エネルギーが最小の状態に落ち着く) という意味である。
有限だが巨大な集合 X 上で定義された確率分布 P(x) に対し、x∗ = argmaxx∈X P(x) を求めたい。
疑似的に温度と呼ばれる正定数 T を用いて新しい確率分布を定義する。
P(x)1/T
PT (x) = ∑
1/T (y)
y∈X P
T を小さくする (冷却) すると、相対的に P(x) が大きなものは PT (x) がますます大きくなり、
T → 0 の極限では PT (x∗ ) → 1 となる。そうした x∗ が複数あれば確率はそれらに等分配される。
従って、十分小さな T に従う乱数 X を発生できれば、ほぼ確率 1 で X = x∗ となる。
PT (x) の正規化定数は一般に計算不可能であり、ここで MCMC 法の出番となる。
より一般の関数 H(x) の最大化には確率分布 P(x) ∝ eH(x) を考えれば良い。
6.1 アニーリング法 — 簡単な例とアルゴリズム
– 46 –
簡単な例: P(x) は {1, 2, . . . , 100} 上のほぼ等確率の分布
T
1
1/10
1/100
1/1000
1/2500
1/5000
PT (1)
0.010713
0.020212
0.185210
0.884086
0.995463
0.999979
PT (2)
0.010690
0.019780
0.149255
0.102125
0.004514
0.000020
PT (3)
0.010667
0.019363
0.120519
0.012105
0.000021
0.000000
PT (4)
0.010644
0.018959
0.097678
0.001471
0.000000
0.000000
PT (5)
0.010622
0.018568
0.079315
0.000183
0.000000
0.000000
アニーリング法の具体的アルゴリズム:
(1) 冷却計画 Tm ↓ 0 と初期値 X1 を定める。
(2) Xm から PTm に対する MCMC 法を一回適応し Xm+1 を定める。
(3) 十分大きな m に対する Xm を最適解の候補とする。
注意: Xm が最適解に収束するためには、実は Tm が 1/ log m という極めて緩慢なオーダーで小さ
くなることが必要となる。実際には、現実的な減少オーダーでも「かなり良い」解が得られること
も多いようである。
6.1 アニーリング法 — 例: トラベリング・セールスマン問題
– 47 –
例: トラベリング・セールスマン問題。ヨーロッパの 21 都市を順に線分で結び、総延長距離が最小
になるようにする:
2000
optim() ’solving’ traveling salesman problem
Stockholm
1000
Copenhagen
アニーリング法によるトラベリン
グ・セールスマン問題の解: 繰り返
し回数百万回の結果。この場合総
距離は 12,842 でたまたま真値と
一致
Hamburg
Hook of Holland
Calais
Cologne
Brussels
0
Cherbourg
Paris
Lisbon
Munich
Lyons
Vienna
Geneva
Madrid
Marseilles
Milan
Barcelona
−1000
Gibraltar
Rome
−2000
Athens
−2000
−1000
0
1000
2000
6.1 アニーリング法 — 例: ワイルドな関数の最小化
– 48 –
例: まずアニーリング法で近似解を求め、次にそれを初期値としてニュートン (BFGS) 法で改良。
160
f (x) = 10 sin(0.3x) sin(1.3x2 ) + 0.00001x4 + 0.2x + 80
120
140
SA 法による初期解:
x = −15.81557,
f (x) = 67.46924
改良解 (ほぼ真値):
100
x = −15.81515,
f (x) = 67.46773
80
アステリスクは改良解位置
−40
−20
0
20
40
7.1 EM アルゴリズム
– 49 –
EM(Expectation Maximization) アルゴリズムは仮想的な完全データの尤度関数を基に、不完全
データから最尤推定量を求める手法である。二種類のデータ x, y の間に y = s(x) の 関係∗1 があ
り、逆に y だけからは x の値が一意に定まらないとき、x (y) を完全 (不完全) データという。更に
x の尤度関数は y のそれよりも比較的簡単であるが、その値は直接には観測できないとする。
x を空間 X 上の密度 f (x | θ) を持つ完全データ、 y を空間 Y 上の密度 g(y | θ) を持つ不完全デー
タとする。両者の間には次の関係がある:
∫
g(y | θ) =
f (x | θ)dx
−1
s (y)
つまり密度 f (x | θ) は同じ y 値を与える x 値に対し平均化される。k(x | y, θ) を条件付き密度
k(x | y, θ) =
f (x | θ)
g(y | θ)
但し y = s(x)
とすると、次の関係が成り立つ:
Lx (θ) = L(θ) + Lx|y (θ),
(11)
———————————————————1) 後の隠れマルコフモデルで扱う Baum-Welch アルゴリズムでは更に s が推移確率で、 y が x
からランダムに生成される場合を考える。
7.2 EM アルゴリズム
– 50 –
ここで L(θ) = log g(y | θ), Lx (θ) = log f (x | θ)、そして Lx|y (θ) = log k(x | y, θ) はそれぞれ、
データ y の対数尤度、データ x の対数尤度、そしてデータ y を与えたという条件の下での x の対
数条件付き尤度である。
(11) の両辺に k(x | y, θ0 ) を掛けて平均すると次の式が得られる:
Q(θ | θ0 ) = L(θ) + H(θ | θ0 )
ここで
Q(θ | θ0 ) =
H(θ | θ0 ) =
∫
∫
log f (x | θ)k(x | y, θ0 )dx,
log k(x | y, θ)k(x | y, θ0 )dx.
(12)
7.3 EM アルゴリズム — missing information principle とアルゴリズム
– 51 –
b
「情報量不等式」から、H(θ | θ0 ) は θ = θ0 で最大値を取る。従って θ
MLE をデータ y から求め
た最尤推定量 (L(θ) を最大化するパラメータ) とすると次の missing information principle が成り
立つ:
b
b
b
max Q(θ | θ
MLE ) = Q(θMLE | θMLE ).
θ
(証明)
b
b
b
Q(θ | θ0 ) = L(θ) + H(θ | θ
MLE ) ≤ L(θ) + H(θMLE | θMLE )
b
b
b
b
b
≤ L(θ
MLE ) + H(θMLE | θMLE ) = Q(θMLE | θMLE ).
EM アルゴリズムの実際:
b
θ
MLE の m 番目の近似値 θm が求まっているとして:
(1) Expectation step: 理論量 Q(θ | θm ) を計算、
(2) Maximization step: θm+1 = argmaxθ Q(θ | θm ) と置く、
(13)
7.4 EM アルゴリズム — 幾つかの注意
– 52 –
注意:
1) 両ステップの実際の実現法は別途考える必要がある。特に M ステップには様々な最適化手法が
考えられる。
2) EM ステップは常に尤度を増加させる。つまり L(θm+1 ) ≥ L(θm ):
(証明)
b
b
b
L(θm+1 ) = L(θ) + H(θ | θ
MLE ) ≤ L(θMLE ) + H(θ | θMLE )
b
b
b
b
b
≤ L(θ
MLE ) + H(θMLE | θMLE ) = Q(θMLE | θMLE ).
3) E ステップで Q(θ | θm ) が簡単な式で表現できない場合、k(x | y, θm ) に従う乱数
K1 , K2 , . . . , KN で平均値を近似する「確率的 EM アルゴリズム」が使える:
N
∑
1
log f (K j | θ).
Q∗ (θ | θn ) =
N
j=1
b
4) 多くの場合プログラムは簡単で計算量も少ないが、収束はかなり遅い可能性がある。θ
MLE へ
の収束も必ずしも保証されない。
7.5 EM アルゴリズム — 例: 人間の ABO 血液型の遺伝
– 53 –
例: 再び Bernstein のデータを用いる。完全データ x = (m1 , m2 , . . . , m6 ) は観測不可能な遺伝子
型 AA,AO,BB,BO,AB,OO を持つ個人数である。不完全データ y = (y1 , y2 , y3 , y4 ) は表現型
A,B,AB,O を持つ個人数で、次の関係がある:
m1 + m2 = n1 , m3 + m4 = n2 , m5 = n3 , m6 = n4 .
パラメータは θ = (p, q) である。総データ数を n, r = 1 − p − q とすると、完全データと不完全デー
タの密度はそれぞれ
f (x | θ) =
g(y | θ) =
n!
(p2 )m1 (2pr)m2 (q2 )m3 (2qr)m4 (2pq)m5 (r2 )m6 ,
m1 !m2 ! . . . m6 !
n1
∑
n2
∑
m1 =0 m2 =3
=
f ((m1 , n1 − m1 , m3 , n2 − m3 , n3 , n4 ) | θ)
n!
(p2 + 2pr)n2 (q2 + 2qr)n2 (2pq)n3 (r2 )n4 .
n1 !n2 !n3 !n4 !
7.6 EM アルゴリズム — 例: 人間の ABO 血液型の遺伝
従って k(x | y, θ) = f (x | θ)/g(y | θ) は次の形になる:
m 
n −m
m
)
( )
2
2
1
1
1





 3
n1  p
n2  q
 2pr 


×





m1 p2 + 2pr
m3 q2 + 2pr 
p2 + 2pr
θ0 = (p0 , q0 ) とすると二項分布の平均公式を用い
n1
n2
∑
∑
(
Q(θ | θ0 ) =
– 54 –


 2qr n2 −m3


.
 2

q + 2qr
log f (x | θ) × k(x | y, θ0 )
m1 =0 m2 =3
は θ, θ0 に依存しない定数を除き次の形になる (E ステップ):
7.7 EM アルゴリズム — 例: 人間の ABO 血液型の遺伝
– 55 –
p2
2p0 r0
0
2
n1
log(p ) + n1
log(2pr)
2
2
p + 2p0 r0
p + 2p0 r0
0
0
q2
2q0 r0
0
2
+ n2
log(q ) + n2
log(2qr) + n3 log(2pq) + n4 log(r2 ).
q2 + 2q0 r0
q2 + 2q0 r0
0
0
連立方程式 ∂Q/∂p = ∂Q/∂q = 0 を解いて最大化 (M ステップ) すると、パラメータ (p0 , q0 ) を
(p, q) に更新する次の式が得られる:


2
p
n1 
p0 r0
n3 
0

 ,
p=
+
+

2 + 2p r
n  p2 + 2p r
2n1 
p
0 0
0 0
0
0


2
q
q0 r0
n3 
n2 
0

 .
+
+
q=

2 + 2q r
n  q2 + 2q r
2n2 
q
0 0
0 0
0
0
7.8 EM アルゴリズム — 例: 人間の ABO 血液型の遺伝
– 56 –
Bernstein のデータを用い、初期値 p0 = q0 = 1/3 から始め、収束するまでの様子:
ステップ数
1
2
3
4
b
p
0.32039
0.30093
0.29585
0.29477
b
q
0.17563
0.15666
0.15438
0.15406
b
b
b
b
r
ステップ数
p
q
r
0.50398
5 0.29455 0.15401 0.55143
0.54241
6 0.29451 0.15401 0.55149
0.54977
7 0.29450 0.15400 0.55150
0.55117
8 0.29450 0.15400 0.55150
同じ例に対する確率的 EM アルゴリズムの適用例。100 個の乱数を用いた標本平均で Q を近似。
乱数を用いた揺らぎのせいで完全な収束は得られない:
ステップ数
10
20
30
40
50
b
p
0.29492
0.29460
0.29485
0.29466
0.29485
b
q
0.15431
0.15410
0.15397
0.15382
0.15395
b
b
b
b
r
p
q
r
ステップ数
0.55077
60 0.29444 0.15397 0.55158
0.55129
70 0.29445 0.15417 0.55137
0.55118
80 0.29519 0.15404 0.55077
0.55152
90 0.29360 0.15405 0.55235
0.55120
100 0.29490 0.15430 0.55080
8.1 隠れマルコフモデル
– 57 –
隠れマルコフモデル (HMM, hidden Markov model) は、マルコフ過程から間接的に生じるデータ
を観測することにより、背景にあるマルコフモデルを推定するための手法である。
HMM は最初、音声認識 (Speech Recognition) 分野で標準的手法となり、その後本来の現象系列
から間接的に生じるデータ系列のモデルとして広く使われている。
音声認識では、話者が話す単語列をマルコフ連鎖と考え、それが実際に発声され記録された音響パ
ターンがデータとなる。自然言語処理では、例えば入力文字列から対応する単語列を推測する。遺
伝学では、遺伝子は隣り合った座位間で同一の組換え率でマルコフ的に配列する。一方遺伝子列か
ら生じる実際に観測できる表現型がデータとなる。
8.2 隠れマルコフモデル — 定義
– 58 –
状態空間 S = {S1 , S2 , . . . , SN } (以下 {1, 2, . . . , N} と略) 、推移確率行列 A = {aij } を持つエルゴー
ド的マルコフ連鎖を Q = Q1 Q2 · · · QT 、その実現値を q = q1 q2 · · · qT と表す:
aij = P(Qt+1 = j | Qt = i) 1 ≤ i, j ≤ N.
マルコフ連鎖 q 自体は観測できず (「隠れマルコフ」の名前のいわれ)、代わりに j から推移確率
B = {b j (k)} に従い発生する観測空間 V = {V1 , V2 , . . . , VM } (以下 {1, 2, . . . , M} と略) 中の値 Ot
(実現値を ot と表す) が観測可能されるとする:
b j (k) = P(Ot = k | Qt = j)
1 ≤ i ≤ N, 1 ≤ k ≤ M.
マルコフ連鎖の初期分布を π = {πi }, πi = P(Q1 = i), とする。N, M, S, V を与えた時、三つ組
λ = (A, B, π) を HMM と呼び、対応する確率を Pλ と表す。
状態系列 Q:
隠れマルコフ過程
観測系列 O:
Q1 → Q2 → · · · · · · → QT−1 → QT
⇓
⇓
⇓
⇓
O1
O2
······
OT−1
OT
(14)
8.3 隠れマルコフモデル — 基本問題
– 59 –
観測系列 O∗ = o1 o2 · · · oT から背景にあるモデル λ と真の状態系列 Q∗ = q1 q2 · · · qT を推測する
ことが問題になる。この際、マルコフ連鎖 Q は明確な実体があることもあれば、仮想的な存在で
あることもある。
HMM に関する理論の基本問題には次の三つがある:
1) HMM λ の下で観測系列 O∗ = o1 o2 . . . oT が得られる確率 Pλ (O∗ ) を求める。
2) 学習用データ系列 O∗ を与えた時尤度 Pλ (O∗ ) を最大化する HMM λ = (A, B, π) を推定する。
3) HMM λ の下で、観測系列 O∗ を出力する最も可能性の高い状態系列 Q∗ を推定する。
以下順にこれらの問題を解説する。
8.4 隠れマルコフモデル — forward-backward アルゴリズム
– 60 –
各観測データ ot は対応する状態 qt から推移確率 b j (k) で互いに独立に発生すると考えれば
Pλ (O∗ | Q∗ ) =
一方、状態系列 Q∗ の確率は
Pλ (Q∗ ) = π(q1 )
T
∏
t=1
T
∏
t=2
bqt (ot ).
aqt−1 qt .
故に全確率の公式より、観測系列の確率は全ての可能な状態系列 Q∗ = q1 q2 · · · qT に関する和
Pλ (O) =
=
∑
Q∗
∑
Q∗
Pλ (O∗ | Q∗ )Pλ (Q∗ )
π(q1 )bq1 (o1 )
T
∏
t=2
aqt−1 qt bqt (ot )
となる。最後の積和の計算量は O(TNT ) であり、実際的な場合計算不可能。
(15)
8.5 隠れマルコフモデル — 前進・後退アルゴリズム
– 61 –
(15) 式右辺を計算量を O(N2 T) で求めるアルゴリズムが前進・後退 (forward-backward) アルゴリ
ズムである。o1 o2 · · · ot という系列を観測し、時刻 t で 状態 j にいる確率を
αt ( j) = Pλ (o1 , o2 , . . . , ot , Qt = j)
と置くと、αt−1 (i) から αt (j), 1 ≤ j ≤ N, を求める漸化式 (要するに多重和を重複和で表現) を用
い、次の前進アルゴリズムを得る:
Pλ (O∗ ) =
N
∑
αT (i).
(前進アルゴリズム)
i=1
同様に、時刻 t で状態 i に居て、それ以降 ot+1 ot+2 · · · oT を観測する確率を
βt (i) = Pλ (ot+1 , ot+2 , . . . , oT , Qt = i)
と置くと、次の後退アルゴリズムを得る:
Pλ (O∗ ) =
N
∑
i=1
πi β1 (i)
(後退アルゴリズム)
8.6 隠れマルコフモデル — Viterbi アルゴリズム
– 62 –
Viterbi アルゴリズムはモデル λ において最適な (最大確率を持つ) 状態系列 Q∗ = q1 q2 · · · qT を求
めるアルゴリズムである。まず観測系列 o1 o2 · · · ot に対する最適な状態系列 q1 q2 · · · qt を求める
ために、最大確率
δt (i) =
max
P (q , q , . . . , qt−1 , Qt = i, o1 , o2 , . . . , ot )
q1 ,q2 ,··· ,qt−1 λ 1 2
を定義すると、次の再帰的関係が得られる:
δt+1 ( j) = [max δt (i)aij ]b j (ot+1 ).
i
8.7 隠れマルコフモデル — Viterbi アルゴリズム
証明:
– 63 –
Pλ (q1 , q2 , . . . , qt , Qt+1 = j, o1 , o2 , . . . .ot+1 )
= Pλ (o1 , o2 , . . . .ot+1 | q1 , q2 , . . . , qt , Qt+1 = j)Pλ (q1 , q2 , . . . , qt , Qt+1 = j)
= bq (o1 )bq2 (02 ) · · · bqt (ot )b j (ot+1 ) · · · πq aq1 q2 aq2 q3 · · · aq
a
1
1
t−1 qt qt j
[
]
= Pλ (q1 , q2 , . . . , qt−1 , Qt = qt , o1 , o2 , . . . ot )aq j b j (ot+1 ).
t
故に
δt+1 (j) =
max P (q , q , . . . , qt , Qt+1 = j, o1 , o2 , . . . .ot+1 )
q1 ,q2 ,...,qt λ 1 2
[
]
=
max
P (q , q , . . . , qt−1 , Qt = qt , o1 , o2 , . . . ot )aq j b j (ot+1 )
t
q1 ,q2 ,...,qt λ 1 2
[
]
= max
max
P (q , q , . . . , qt−1 , Qt = qt , o1 , o2 , . . . ot )aq j b j (ot+1 )
t
qt q1 ,q2 ,...,qt−1 λ 1 2
[
]
]
[
= max δt (qt )aq j b j (ot+1 ) = max δt (i)aij b j (ot+1 ).
t
qt
i
8.8 隠れマルコフモデル — Viterbi アルゴリズム
– 64 –
Viterbi アルゴリズムは、マルコフ的に変化する事象に対する最適化手法である DP(動的計画法,
Dynamic Programing) に基づき、量 δt (i) と補助的量 φt (i) を用いて次のように表現される:
(1) [初期化]
1 ≤ i ≤ N に対し次のように置く:
δ1 (i) = πi bi (o1 ), φ1 (i) = 0.
(2) [再帰過程] 2 ≤ t ≤ T, 1 ≤ j ≤ N に対し次の量を計算:
δt (j) = max[δt−1 (i)ai j ]b j (ot ), φt ( j) = argmax[δt−1 (i)aij ].
i
i
(3) [最終結果] 次の最終量を計算する。p∗ が最適状態系列の確率である:
p∗ = max δT (i),
i
q∗ = argmax δT (i).
T
i
(4) [最適状態系列の再構成] (3) の最大確率を与える状態系列を過去に遡って再構成する。得られ
た状態系列 Q∗ = q0 q0 · · · q0 が求めるもの:
T
1 2
q0t = φt+1 (q0 ), t = t − 1, t − 2, . . . , 1.
t+1
8.9 隠れマルコフモデル — Baum-Welch アルゴリズム
– 65 –
Baum-Welch アルゴリズムは、学習データからモデル λ の尤度を最大化しパラメータの最尤推定
量を求めるようとする。基本的には局所的最大化であるため、真の最尤推定値が得られるかどうか
は不明である。この際真の状態系列 Q は未知であるため EM アルゴリズムを用いる。
先ず次の確率を計算する:
ξt (i, j) = Pλ (Qt = i, Qt+1 = j | O∗ ).
次に forward-backward アルゴリズムで登場する α,β を用いて次の量を計算する:
αt (i)ai j (ot+1 )βt+1 ( j)
ξt (i, j) =
.
Pλ (O∗ )
モデルと観測系列を与えた下で、ステップ t で状態 i に居る確率は次のように計算される:
γt (i) = Pλ (Qt = i | O∗ ) =
∑
ξt (i, j).
j
∑T
∑T
γ (i) は i からの推移の期待
ξ (i, j) は状態 i から j への推移の期待数であり、
注意:
t=1 t
t=1 t
数である。
8.10 隠れマルコフモデル — Baum-Welch アルゴリズム
– 66 –
Baum-Welch アルゴリズム:
(1) 初期モデル λ = {A, B, π} (のパラメータ) を任意に定める。
(2) パラメータを再推定する。
π̄i = γt (i),
∑T−1
ξt (i, j)
t=1
,
āij = ∑
T−1 γ (i)
t=1 t
∑
b̄ j (k) =
1≤t<T−1; ot =k γt (j)
.
∑T−1
γ ( j)
t=1 t
(3) Ā = {āi j }, B̄ = {b̄ j (k)} そして π̄ = {π̄i } と置き、モデル λ を λ̄ = (Ā, B̄, π̄) に更新する。
(4) 手順 (2),(3) を λ = λ̄ となるまで繰り返す。
8.11 隠れマルコフモデル — Baum-Welch アルゴリズムの導出 (1)
– 67 –
Baum-Welch アルゴリズムは EM アルゴリズムを用い次のように導出される。ここで完全データ
は (Q, O)、不完全データは O と考えることに注意する。EM アルゴリズムにおける Q 関数は次の
ように定義できる ( ここで Q∗ = q1 q2 · · · qT , O∗ = o1 o2 · · · oT )。
Q(λ | λ0 ) =
=
∑
Q∗
∑
Q∗
log Pλ (O∗ , Q∗ ) × Pλ0 (O∗ , Q∗ | O∗ )
Pλ0 (O∗ , Q∗ )
log Pλ (O∗ , Q∗ ) ×
Pλ0 (O∗ )
従って λ と Q∗ に関係ない比例定数 1/Pλ0 (O∗ ) を除いて
Q(λ | λ0 ) =
∑
Q∗
log Pλ (O∗ , Q∗ ) × Pλ0 (O∗ , Q∗ ).
8.12 隠れマルコフモデル — Baum-Welch アルゴリズムの導出 (2)
– 68 –
(15) で使われたのと同様の議論から
Pλ (O∗ , Q∗ ) = π(q1 )bq1 (o1 )
故に
T
∏
t=2
aqt−1 qt bqt (ok ).


T
∑  ∑



∗
∗
0
log π(q1 )Pλ0 (O , Q ) +
Q(λ | λ ) =
log aqt−1 qt  Pλ0 (O∗ , Q∗ )



Q∗ t=2
Q∗


T
∑  ∑



+
log bqt (ot ) Pλ0 (O∗ , Q∗ ).



Q∗ t=2
∑
(16)
8.13 隠れマルコフモデル — Baum-Welch アルゴリズムの導出 (3)
– 69 –
(16) 式左辺の 3 つの項は被総和項に登場しない和変数に付いて sum out するとそれぞれ以下のよう
になる:
第1項 =
∑
i
log π(i)Pλ0 (O∗ , q1 = i),


T
∑ ∑  ∑



第2項 =
log aij  Pλ0 (O∗ , qt−1 = i, qt = j),



i j t=2


T
∑ ∑  ∑



第3項 =
log bi (ot ) Pλ0 (O∗ , qt = i).



t=2
i j
8.14 隠れマルコフモデル — rei Baum-Welch アルゴリズムの導出 (4)
– 70 –
∑
∑
π(i)
=
1,
a
=
1
∀i,
i
j ij
k b j (k) = 1 ∀j の下で
Q(λ | λ0 ) を π(i), aij , b j (k) に付いて最大化を行うと λ0 が更新された HMM λ の成分は
)
Pλ0 (O∗ , q1 = i) (
= γt (i) ,
π̄i =
Pλ0 (O∗ )
 ∑

∑T
T−1
∗

ξt (i, j) 
Pλ0 (O , qt−1 = i, qt = j) 
= t=1
 ,
āi j = t=2


∑T
∑
T−1
∗

Pλ0 (O , qt−1 = i)
γt (i) 
t=2
t=1

 ∑
∑T
∗

P (O , qt = j)δo k
1≤t<T−1; ot =k γt (j) 

t=2 λ0
t
 .
=
b̄ j (k) = ∑
∑T−1


T P 0 (O∗ , q = j)
γ
(
j)
t
t=2 λ
t=1 t
故にラグランジュ未定乗数法を用い、拘束条件
∑
これらはそれぞれ O∗ が観測されたという条件の下での、q1 = i である標本確率、 qt−1 = i の時
qt = j へ推移する標本確率、qt = i の時 ot = k となる標本確率、 であることを注意する。
8.15 隠れマルコフモデル — 例
– 71 –
簡単な隠れマルコフモデル: 状態空間 {1, 2, 3, 4}。観測空間 R。(連続値) 観測確率 {bi (x)} は状態値
i = 1, 2, 3, 4 に対しそれぞれ平均 1, 2, 6, 3、標準偏差 0.5 の正規誤差が加わったもの。データ系列
長 1, 000





{aij } = 


0.1
0.2
0.0
0.3
0.3
0.2
0.0
0.2
0.5
0.3
0.4
0.2
0.1
0.3
0.6
0.3






6
4
2
0
0
200
400
600
800
1000
Time
観測値系列。●印は状態値 2 に対応
– 72 –
30
0
0
10
20
Frequency
20
10
Frequency
30
40
40
50
8.16 隠れマルコフモデル — 例
0.0
0.5
1.0
1.5
2.0
2.5
0.5
1.0
1.5
2.0
2.5
3.0
3.5
80
40
60
Frequency
20
0
20
10
0
Frequency
30
100
40
120
140
−0.5
4.5
5.0
5.5
6.0
6.5
7.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
観測値系列。●印は状態値 2 に対応
5.0
9.1 ベイジアンネットワーク
– 73 –
エキスパートシステム (expert system) とは,専門家が経験から学んだノウハウを少数の推論規則
にまとめたものである.最初のエキスパートシステムは推論規則を
A1 ⇒ B 1 ,
A2 ⇒ B2 ,
...,
An ⇒ Bn
という決定論的な規則群にまとめるものであった.実際は A であっても,場合により B にも B0
にもなりうることが多く,適用できる場合が限られた.決定論的エキスパートシステムの欠点を補
うべく,確率的エキスパートシステムとして提唱されたのがベイジアンネットワーク (BN,
Bayesian Network) 理論である.
DAG (Directed Acyclic Graph) とは矢印に添った閉路を持たない有向グラフである.G を DAG
としそのノードを {1, 2, . . . , n} とし、各ノード i には確率変数 Xi が対応するとする.Xi の (有限)
状態空間を Xi = {1, 2, . . . , ai } とする.各ノード i の親ノード (i への矢印を持つノード j) 集合を
pa(i) と置く.
X = (X1 , X2 , . . . , Xn ) は,その同時密度 p(x), x = (x1 , x2 , . . . , xn ) が分解
n
∏
p(x) =
p(xi | xpa(i) )
(17)
i=1
を持つとき,BN と呼ばれる.ここで,S ⊂ {1, 2, . . . , n} に対し xS = {xi : i ∈ S} と置く.もし
pa(i) = ∅ ならば p(xi | x∅ ) = p(xi ) と考える.
9.2 ベイジアンネットワーク
– 74 –
分解 (17) は確率変数間の「依存関係」をモデル化している.特に,Xi の確率分布は i の Markov
blanket と呼ばれるノード集合 (i の親ノード,子どもノードと,子どもノードの親ノードの全体)
に対応する X j だけで決まり,その他の X j の値には影響されない.実際
p(x1 , x2 , . . . , xn )
p(xi | x j , j , i) =
p(x1 , x2 , . . . , xi−1 , xi+1 , . . . , xn )
p(x1 , x2 , . . . , xn )
= ∑
yi p(x1 , x2 , . . . , xi−1 , yi , xi+1 , . . . , xn )
∏
p(xi | xpa(i) ) × v: i∈pa(v) p(xv | xpa(v) )
∏
.
= ∑
p(y
|
x
)
×
p(x
|
x
)
v pa(v)
yi
i pa(i)
v: i∈pa(v)
となり、最後の式に登場するノードは i およびその親ノード pa(i) と子供ノード {v : i ∈ pa(v)}
だけ。
9.3 ベイジアンネットワーク
X1
¡@
?
¡
@
ª
¡
@
RX4
X2
X3
¡
?
¡
ª
¡
X5
– 75 –
1
¡@
¡
@
¡
@4
2
3
¡
¡
¡
5
図 1: 同時分布 p(x1 , x2 , x3 , x4 , x5 ) = p(x1 )p(x2 | x1 )p(x3 | x1 )p(x4 | x1 )p(x5 | x3 , x4 ) を持つ
簡単なベイジアンネットワーク (左) と,その junction tree 構成のための作業用グラフ (右)
図 1 の例ではノード 3 の Markov blanket は {1, 4, 5} で,p(x3 | x1 , x2 , x4 , x5 ) は x2 に依存しない.
9.4 ベイジアンネットワーク
同じ例では
– 76 –
∑
p(x1 , x3 )
y2 ,y4 ,y5 p(x1 , y2 , x3 , y4 , y5 )
= ∑
p(x1 )
y2 ,y3 ,y4 ,y5 p(y1 , y2 , y3 , y4 , y5 )
∑
y2 ,y4 ,y5 p(x1 )p(y2 | x1 )p(x3 | x1 )p(y4 | x1 )p(y5 | x3 , y4 )
= ∑
y2 ,y3 ,y4 ,y5 p(x1 )p(y2 | x1 )p(y3 | y1 )p(y4 | y1 )p(y5 | y3 , y4 )
∑
∑
∑
p(x1 ) · y p(y2 | x1 ) · p(x3 | x1 ) · y p(y4 | y1 ) · y p(y5 | x3 , y4 )
2
5
4
∑
∑
∑
∑
=
p(x1 ) · y p(y2 | x1 ) · y p(y3 | x1 ) · y p(y4 | y1 ) · y p(y5 | y3 , y4 )
2
3
5
4
p(x1 ) · 1 · p(x3 | x1 ) · 1 · 1
=
= p(x3 | x1 )
p(x1 ) · 1 · 1 · 1 · 1
となり,これは同時分布の分解 (17) に登場する p(xi | xpa(i) ) が文字通りの条件付き分布
P{Xi = xi | Xpa(v) = xpa(v) } であることを示している.p(xi | xpa(i) ) > 0 である限り,Xi は (複
数の) 値 xi を取りうることを注意しよう.
9.5 ベイジアンネットワーク — エビデンスと事後周辺分布
– 77 –
BN の幾つかのノード集合 S に対する確率変数に観測値 (エビデンス,evidence) E : XS = x∗ が
S
与えられているとする.ノード i < S に於ける周辺分布
p(xi | E) = p(xi | xS = x∗ ), i = 1, 2, . . . , ai
S
は,エビデンス E が与えられたという条件の下での Xi の値の事後確率を表す.従って,例えば
MAP 推定量
k̂ = argmax p(xi | E)
xi
は「最も可能性が高い Xi の値」を与える.またその確率 p(x | E) はその確度を与える.これが
k̂
確率的エキスパートシステムの基本的アイデアである.
∑
p(x & E)
=
p(xi | E) =
p(E)
∗
xv , v<S\{i} p(x j , j < S, x j = x j , j ∈ S)
∑
∗ , j ∈ S)
p(x
,
j
<
S,
x
=
x
xv , v<S
j
j
j
であるから,ネットワークが大きくなると,直接の計算は不可能になる.
9.6 ベイジアンネットワーク — 例
– 78 –
簡単な例: 図 1 のネットワークを考える.X1 , X2 , . . . , X5 の状態空間は全て二値 {1, 2} とし,次
のような確率構造を考える:
p(x5
p(x5
p(x2
p(x3
p(x4
= 1 | x3
= 1 | x3
p(x1
= 1 | x1
= 1 | x1
= 1 | x1
= 1, x4
= 2, x4
= 1) = 0.4,
= 1) = 1/4, p(x2 = 1 | x1 = 2) = 3/5,
= 1) = 1/4, p(x3 = 1 | x1 = 2) = 1/2,
= 1) = 1/4, p(x4 = 1 | x1 = 2) = 3/4,
= 1) = 0.8, p(x5 = 1 | x3 = 1, x4 = 2) = 0.7,
= 1) = 0.4, p(x5 = 1 | x3 = 2, x4 = 2) = 0.2.
エビデンス X1 = x∗ , X5 = x ∗5 が与えられたときの X3 = 1, 2 の周辺確率は,直接計算から次の
1
ようになる:
x∗
1
1
1
2
2
x∗
5
1
2
1
2
x3 = 1 の周辺確率
0.4915
0.6889
0.1089
0.2571
x3 = 2 の周辺確率
0.5085
0.3111
0.8911
0.7429
9.7 ベイジアンネットワーク — BP アルゴリズム
– 79 –
BP アルゴリズムは DAG G から誘導される junction tree と呼ばれる,G の部分ノード集合をノー
ドとする無向木グラフ T (いつでも構成可能だが一意的ではない) 上で定義される.T のクリーク
(完全グラフ) であるノードと,分離集合の全体をそれぞれ C, S と置く.二つのクリーク C1 ,C2 は
C1 ∩ C2 , ∅ の時隣接するといい,C1 ∩ C2 をその分離集合 (separator) と呼ぶ.分離集合は隣接
クリークノードに対する無向辺と考える.
一般論は複雑なので,図 1 の DAG を junction tree に変形する手順を紹介する.まず,全ての有
向辺を無向辺に変える.共通の子供を持つ二つのノード間に既に無向辺が引かれていなければ,新
しく無向辺を引く (図 1 ではノード 3,4 間).結果の無向グラフからクリーク集合を求める (図 1 で
は {1, 2}, {1, 3, 4}, {3, 4, 5}).隣接するクリーク {1, 2}, {1, 3, 4} の分離集合は {1}, {1, 3, 4}, {3, 4, 5} の
分離集合は {3, 4} となる.
{1, 2}
{1}
{1, 3, 4}
{3, 4}
{3, 4, 5}
(図 1 に対する junction tree)
9.8 ベイジアンネットワーク — BP アルゴリズム
– 80 –
以下 junction tree 上の BP アルゴリズムを紹介する.証明は,基本的には単純であるが,グラフ理
論的な複雑さを含み,関連文献に譲る.
(1) [同時密度関数の一般化ポテンシャル関数表示] 同時密度 (17) を次の形に書き換える (常に可
能だが一意的ではない):
∏
C∈C φC (xC )
∏
p(x) =
.
(18)
φ
(x
)
S∈S S S
ここで関数 φA (xA ) は xA のみに依存するある関数であるが,必ずしも (条件付き) 密度関数では
ない.最初,全ての S ∈ S で φS ≡ 1 とする.図 1 に対するこの初期表現は
p{1,2} (x1 , x2 ) × p{1,3,4} (x1 , x3 , x4 ) × p{3,4,5} (x3 , x4 , x5 )
p(x) =
p{1} (x1 ) × p{3,4} (x3 , x4 )
p(x2 | x1 ) × [p(x3 | x1 )p(x4 | x1 )] × [p(x4 | x3 )p(x5 | x3 )]
=
1×1
となる.
9.9 ベイジアンネットワーク — BP アルゴリズム
(2) [隣接クリーク間の sum-flow]
る.新しいポテンシャル関数
φ∗ =
S0
– 81 –
C1 ,C2 を二つの隣接するクリーク,S0 をその分離集合とす
∑
C1 \S0
φC
1
(xi , i ∈ C1 \S0 , を sum out),
φ∗ = φC λS
C2
2 0
を定義する.ここで
λS = φ∗ /φS
C2
0
0
である (分母が 0 の時は比の値は 0 とする).
φS , φC をそれぞれ φ∗ , φ∗ に替えても式 (18) の右辺の関数は変わらない事が証明できる.
S0 C2
0
2
9.10 ベイジアンネットワーク — BP アルゴリズム
– 82 –
(3) [fully active schedule] T の隣接クリークとその分離集合の三組 (C1 , C2 , S0 ) の順序付けら
れたある有限リスト (fully active schedule と呼ばれる) があり,それに沿って上の sum-flow 操作
を順次行う事により同時密度関数 (18) は
∏
C∈C fC
∏
p=
.
(19)
f
S∈S S
の形に変形され,関数族 { fC , fS } はそれ以上の sum-flow 操作を行っても変化しなくなる (平衡状
態と呼ぶ).簡単に言えば,任意の隣接クリーク間に sum-flow 操作が行われれば,平衡状態にな
る.特に BP アルゴリズムは高々 G のノード数に比例する計算量を持つ.
(4) [周辺密度関数] 表現 (19) 中の fC , fS は (正規化定数を除き) 同時分布 p の C, S 上の周辺密
度関数となる.つまり式 (19) は p の C, S 上の周辺密度関数 pC , pS を用いて次の表現を持つ:
∏
pC (xC )
C∈C
p(x) = ∏
.
(20)
p
(x
)
S∈S S S
9.11 ベイジアンネットワーク — BP アルゴリズム
– 83 –
(5) [エビデンス] G の幾つかのノードにエビデンス E が与えられているとする
φE (xC ) = φC (xC & E), φE (xS ) = φS (xS & E) と置くと,表現 (20) より
S
C
∏
E
C∈C φC (xC & E)
p(x & E) = ∏
E (x & E)
φ
S∈S S S
となるから,これより BP アルゴリズムを用いて,事後周辺密度関数 pC (xC | E), pS (xS | E) を直
接計算できる.
9.12 ベイジアンネットワーク — 簡単な例
– 84 –
簡単な例として,2 ← 1 → 3 という DAG を考える.対応する junction tree は二つのクリーク
A = {1, 2}, B = {1, 3}, そして分離集合 S = {1} からなる.同時分布を次のように分解する:
p(x) = p(x1 )p(x2 | x1 )p(x3 | x1 ) =
φA (x1 , x2 )φB (x1 , x3 )
φS (x1 )
φB (x1 , x2 ) = p(x2 | x1 ),
φA (x1 , x2 ) = p(x1 )p(x2 | x1 ),
φS (x1 ) = 1
と置いた.A から B への sum flow 操作により
∑
p(x1 )
∗
φ (x1 ) =
φA (x1 , x2 ) = p(x1 ), φ∗ (x1 , x2 ) = p(x3 | x1 ) ×
= p(x1 , x3 ).
B
S
1
x2
続く B から A への sum flow 操作により
∑
∑
∗∗
∗
φ (x1 ) =
φ (x1 , x3 ) =
p(x1 , x3 ) = p(x1 ),
B
S
x3
x3
φ∗ (x1 )
p(x1 )
S
∗
φ (x1 , x2 ) = φA (x1 , x2 ) × ∗∗
= p(x1 )p(x2 | x1 ) ×
= p(x1 .x2 )
A
p(x1 )
φ (x1 )
S
となる.二回の sum flow 操作により確かに
φ∗ (x1 , x2 ) = p(x1 , x2 ), φ∗ (x1 , x3 ) = p(x1 , x3 ), φ∗∗ (x1 ) = p(x1 )
B
A
S
となった事が分かる.これ以上の sum flow 操作では変化は無い事も分かる.
ここで
9.13 ベイジアンネットワーク — naive Bayesian network
– 85 –
隠れマルコフ過程 (14) はベイジアンネットワークに他ならないことを注意しよう。
実用的であるが最も単純なベイジアンネットワークが naive Bayesian network であり,一つの目
標ノードと複数の属性ノードを持つ (図 2).重回帰分析と同様、属性 X1 , X2 , . . . , Xn の値に基づ
き X0 の値を予測する分類法 (classifier) として用いられることがある.
X0
¡
¶ @
¡¶
@
ª
¡
/
¶
@
R
.
.
.
.
.
.
.
.
.
.
.
.
... X
X
X
1
2
n
∏n
図 2. Naive Bayes network p(x0 , x1 , x2 , . . . , xn ) = p(x0 )
p(xi | x0 )
i=1
9.14 ベイジアンネットワーク — 企業格付け問題への応用
– 86 –
naive Bayes network の応用例として,日本の東証一部上場電気・電子企業の格付けの問題を紹介
する.企業の格付けは,投資対象としての企業の価値を判断する材料として,証券会社やマスコミ
により定期的に発表され、投資対象としての各企業を「優秀,普通,劣る (簡単のために 3,2,1 と数
値化)」と分類する.証券会社等が公表した格付けデータ X0 と,様々な企業の公表経営指標から
代表的な 15 指標 (これも「優秀,普通,劣る」と三段階 3,2,1 に要約) X1 , X2 , . . . , X15 を用いる.
確率構造を特定するにはパラメータである p(x0 ), p(xi | x0 ) (i = 1, 2, . . . , 15) をデータから推定す
る必要がある.この場合最尤推定量は単なる対応する標本比になる.この場合全部で 523 個の企業
データのそれぞれの x1 , x2 , . . . , x15 をエビデンスとした x0 の MAP 推定値を該当企業の格付けの
予測値とする.結果は以下のようになった.
予測値
1
2
3
全体
真値
1
0 (0 %)
59 (100 %)
0 (0 %)
59 (100 %)
2
0 (0 %)
305 (89.18 %)
37 (10.82 %)
342 (100 %)
3
0 (0 %)
61 (50 %)
61 (50 %)
122 (100 %)
全体
0
425
98
523 社
最尤推定パラメータに基づく分類結果。予測値 (MAP 推定値) と真値
9.15 ベイジアンネットワーク — 企業格付け問題への応用
– 87 –
確率構造の推定を更に改良するため,leave-one-out cross-validation を用いる.最尤推定確率構
造を初期値として,確率パラメータを次の目的関数ができるだけ小さくなるように SA 法で改良し
てゆく:
523
)2 (
)
∑ (
(i)
(i) 2
(i)
x̂ − x
obj =
x̂0 − 2 + 1
0
0
i=1
(i)
(i)
ここで x は i 番目の企業データの格付け値,x̂ はそのデータを除いた 522 個の企業データを用
0
0
いて,現在の確率パラメータを基にして予測した i 番目の企業の格付け予測値である.重みは大き
な食い違いを強調するために用いた.精度が相当上がっている事が分かる.
予測値
1
2
3
全体
真値
1
51 (86.44%)
8 (13.56%)
0 (0%)
59 (100%)
2
42 (12.28%)
246 (71.93%)
54 (15.79%)
342 (100%)
3
0 (0%)
13 (10.66%)
109 (89.34%)
122 (100%)
全体
115
247
161
523
SA 法一万回で改良した確率パラメータによる格付け予測結果。真値と予測値の比較
9.16 ベイジアンネットワーク — 企業格付け問題への応用
– 88 –
MAP 予測値は単に最大確率を与える 1,2,3 という数値になり,例えば予測値が 1,2,3 となる確率
がそれぞれ 48%,47%,5% となる場合には必ずしも適切ではない.整数値にはならぬが,むしろ予
測確率による平均値 の方が望ましい.次のグラフは平均値による格付け結果を表す.
For EC=1
6
2
0
0
1.5
2.0
2.5
3.0
1.0
1.5
2.0
E[EC]
E[EC]
For EC=2
For EC=3
2.5
3.0
10
5
0
Density
0 1 2 3 4 5 6 7
15
1.0
Density
4
Density
3
2
1
Density
8
4
10
5
For EC=1,2,3
1.0
1.5
2.0
E[EC]
2.5
3.0
1.0
1.5
2.0
E[EC]
2.5
3.0
予測確率の平均値による格付け結
果:上左,上右,下左,下右はそれ
ぞれ,全体,真値 = 1, 2, 3 の場合
の予測平均値のヒストグラムとそ
の密度関数の推定値 (実線)
10.1 統計解析環境 R
– 89 –
統計的手法の実際の適用には、信頼できる高機能の統計解析ソフトの利用が欠かせない。従来こう
したソフトは個人的購入は不可能な高額な 商用ソフト∗1) しか無く、統計解析は企業・学術団体等
の特権的組織しか利用できない状態が長く続いてきた。オープンソースの統計解析環境 R はかっ
てのベル研究所で J. Chambers 等により開発された統計解析用言語・システムの「S 言語∗2) 」の
フリーな実装であり、誕生以来世界の統計利用者の熱狂的支持と改良により、今や商用ソフト以上
の機能と使いやすさで、統計的手法の共通基盤の地位を獲得し、統計利用の南北問題を解消しつつ
ある。R は統計本にも革命をもたらしつつあり、ここ数年で日本を含め全世界で R 利用を前提とし
た書籍の出版ブームが起きている。詳しくは参考文献を参照。
——————————————–
1) 心理学等文系の利用が多い SPSS、医・薬学関係の利用が多い SAS、そして幅広い統計研究者
が利用してきた S システムの商用版である S-PLUS が代表である。また、Matlab, Mathematica
等の数値・数式解析ソフトの「おまけの」統計解析機能の利用も多かった。事実上世界で最も広く
使われている統計解析ソフトは Excel である。
2) S 言語は 1998 年度の米国計算機学会のソフトウェアシステム賞を受賞した。他の受賞例には
UNIX, TeX, TCP/IP, WWW, Postscript, Java 等がある。
11.1 統計解析環境 R
– 90 –
R は次のような特徴を持つ:
1. 本体だけでも広範囲の基本的な統計解析機能を実装、
2. 様々なタイプのデータを保持・管理・変形できるデータタイプを持つ、
3. 対話的処理が基本で試行錯誤的に解析ができる、
4. 関数毎に詳細なオンラインヘルプと、例示用コードを持つ。また、参照用に幅広い実際
的データセットを持つ、
5. 豊富な関数を持つフルセットのオブジェクト指向計算機言語機能を持ち、プログラム生
産効率が極めて高い、
6. 結果から直ちに様々な形式・書式の出版物品位の高機能なグラフィックスを作成できる、
7. 最適化を含む高度な数値処理機能を持つ、
8. 今や千を越えるユーザー提供のパッケージにより、広範囲な特殊機能を利用可能、
9. Linux, Microsoft Windows, Mac を代表とするほとんどの計算機・OS で稼働、
10. 全世界のユーザーの利用による速やかなバグの発見と修正、新機能の追加。
12.1 統計解析環境 R
例: R で百万個から一万個を選ぶ組合せの数
> (x <- lchoose(1e6,1e4)/log(10))
[1] 24318.76
> (y <- x-floor(x))
[1] 0.7604373
> 10ˆy
[1] 5.760196
– 91 –
(100,000)
10,000 を計算する例。
# 場合の数の常用対数
# その小数部分
# つまり場合の数は 5.76e24318
13.1 参考文献
統計学関連参考文献
■ 稲垣宣生、「数理統計学」、裳華房 (1990)
遺伝統計学関連参考文献
■ 鎌谷直之編、「ポストゲノム時代の遺伝統計学」、羊土社 (2001)
MCMC 法関連参考文献
■ N. Metropolis, A. Rosenbluth, M. Rosenbluth, A.H. Teller, and E. Teller. “Equations
of state calculations by fast computing machines”, J. Chemical Physics, 21, 1087–
1092 (1953).
■ A. Geman and S. Geman. “Stochastic relaxations, Gibbs distributions and the
Bayesian restoration of images”, IEEE Trans. PAMI, PAMI-6, 721-741 (1984).
■ W.R. Gilks, S. Richardson, and D.J. Speigelhalter (eds.). Markov Chain Monte Carlo
in Practice, Chapman & Hall (1996).
■ 伊庭幸人, 種村正美著「マルコフ連鎖モンテカルロ法とその周辺」、岩波書店 (2005)
■ 小西貞則他著「計算統計学の方法、ブートストラップ・EM アルゴリズム・MCMC」、朝
倉書店 (2008)
■ 石黒真木夫他著「階層ベイズモデルとその周辺 時系列・画像・認知への応用」、岩波書店
(2004)
– 92 –
14.1 参考文献
EM 法関連参考文献
■ 小西貞則他著「計算統計学の方法、ブートストラップ・EM アルゴリズム・MCMC」、朝
倉書店 (2008)
■ G.J. McLachlan and K. Thriyambakam. ”The EM Algorithm And Extensions (2nd
ed.)”, Wiley-Interscience (2007)
隠れマルコフモデル関連参考文献
■ L.R. Rabiner. “A Tutorial on Hidden Markov Models and Selected Applications in
Speech Recognition”, Proc. IEEE, 77-2, 257-286 (1989)
■ L.R. Rabiner and B.-H. Juang 著、古井貞煕 (監訳) 「音声認識の基礎 (上)(下)」, NTT ア
ドバンステクノロジ (1995)
ベイジアンネットワーク関連参考文献
■ J. Pearl. Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Infer-
ence. Morgan Kaufmann (1988).
■ R.G. Cowell, A.P. David, S.L. Lauritzen, D.J. Spielgelhalter. Probabilistic Networks
and Expert Systems, Springer (1999).
■ F.V. Jensen. Bayesian Networks and Decision Graphs, Springer (2002).
– 93 –
15.1 参考文献
– 94 –
■ O. Pourret, N. Patrick and B. Marcot(eds.). Bayesian Networks. A Practical Guide to
Applications, John Wiley & Sons (2008)
オープンソース統計解析ソフト R 関連参考情報
■ CRAN(Complete R Archive Network)。R 本体および千を越す膨大な貢献パッケージが
入手できる。日本のミラーサイトは http://cran.md.tsukuba.ac.jp
■ RjpWiki。日本の R ユーザーが運営する情報サイト。各種 Tips や質問コーナーがある。
URL は http://www.okada.jp.org/RWiki/
■ 岡田昌史編「The R Book データ解析環境 R の活用事例集」
、九天社 (2004)
■ 間瀬茂著「R プログラミングマニュアル」、数理工学社 (2007)
■ 間瀬茂他著「工学のためのデータサイエンス入門 フリーな統計環境 R を用いたデータ解
析」、数理工学社 (2004)
課題 1
以下の表は、鼠の血液型に関係する二つの遺伝子 B1 ,B4 に対し、B1 B4 の親同士の掛け合わせで
得られた 200 匹の子鼠の表現型の頻度データ:
標本度数
標本確率
B1 B1
58 匹
1.16/4
B1 B4
129 匹
2.52/4
B4 B4
13 匹
0.26/4
これはいわゆるメンデル比 1 : 2 : 1 から大きくずれる。
B4 B4 タイプがかなり少ない一方、B1 B1 ,B1 B4 タイプの比率はメンデル比 1 : 2 に近い。
このデータを、何らかの理由で遺伝子型 B4 B4 の受精卵 (だけ) が無事に成長しにくい考え、その生
存率 c を最尤推定せよ。
課題 2
Gibbs 抽出法は採択率 A ≡ 1 の Metropolis 抽出法であることを示せ。
ヒント: 現在の座標を r = (r1 , r2 , . . . , rn ) とし、座標 i を固定し
r−i = (r1 , r2 , . . . , ri−1 , ri+1 , . . . , rn )
とする。xi を条件密度 f (xi | r−i ) で選んだ乱数値として
r0 = (r1 , r2 , . . . , ri−1 , xi , ri+1 , . . . , rn )
とすると、r から r0 への推移確率 K(r0 | r) は
K(r0 | r) = f (xi | r−i )
であり、従って K(r | r0 ) = f (ri | r−i ) に注意。
(
)
0
= f (r )/ f (r−i )
課題 3 正規分布 N(µ, 1) に従う互いに独立な完全データ X = (X1 , X2 , . . . , Xn ) に対し不完全
データ Yi = |Xi | を考える。Y = (Y1 , Y2 , . . . , Yn ) の観測値 y = (y1 , y2 , . . . , yn ) が得られたとし
て、EM アルゴリズムにおける目的関数 Q(µ | µ0 ) の形を求めよ。
ヒント 1: f (x) を標準正規分布の密度関数とすると f (x | µ) = f (x − µ) であり


n

 1 ∑
√


−n/2
2
f (x | µ) = ( 2π)
exp −
(xi − µ)  .
 2

i=1
ヒント 2:
∫x
g(yi | µ) の計算: 標準正規分布の分布関数 Φ(x) = −∞ f (t)dt 用いると
P{Yi ≤ z} = P{−z ≤ Xi ≤ z} = P{−z − µ ≤ Xi − µ ≤ z − µ}
= Φ(z − µ) − Φ(−z − µ) (z ≥ 0)
ヒント 3:
f (xi − µ)I[|xi | = yi ]
k(xi | yi , µ) =
.
g(yi | µ)
ここで |xi | = yi という条件があるからこれは実は離散 2 点分布
f (yi − µ)
k(xi | yi , µ) =
,
g(yi | µ)
k(−xi | yi , µ) =
になることを注意。
f (−yi − µ)
g(yi | µ)
.
ヒント 4:
Q(µ | µ0 ) =
∫
log f (x | µ) × k(x | y, µ0 )dx

∫ 
n
∑


1

−n/2
2
(2π)
+
=
(xi − µ)  × k(x | y, µ0 )dx


2
i=1
n ∫
∑
1
= (2π)−n/2 +
(xi − µ)2 × k(x | y, µ0 )dx.
2
i=1
ここでデータの独立性から
k(x | y, µ0 ) =
n
∏
j=1
に注意。
k(x j | y j , µ0 )