ベイズ推測の基礎理論

ベイズ推測の基礎理論
渡辺澄夫, 東京工業大学
概要
ベイズ推測に現れる問題と答えを書きます。これは既に知られていることですが、
数学が好きな人は答えを見ないで自分で考えてみてください。
1
問題
x ∈ RN , w ∈ W ⊂ Rd とします。(W はコンパクト集合)。
真の密度関数 q(x) に従う n 個の独立な確率変数 X1 , X2 , ..., Xn が与えられたとき、統
計モデル p(x|w) と事前分布 φ(w) を用いて ベイズ予測分布 を
∫
n
∏
p(x|w)
p(Xi |w)φ(w)dw
p̂(x) =
∫ ∏
n
i=1
p(Xi |w)φ(w)dw
i=1
と定義します。ある w0 ∈ W が存在して q(x) = p(x|w0 ) となることを仮定します。
ベイズ汎化誤差 を
∫
q(x)
Gn = q(x) log
dx
p̂(x)
と定義するとき、その平均値 E[Gn ] の漸近挙動を求めるための理論を作りましょう。n → ∞
のとき E[Gn ] → 0 になりますが、その速さはどのくらいでしょうか。
2
答え
実対数閾値 λ > 0 を用いて
λ
1
+ o( )
n
n
となります。実対数閾値の定義は以下で述べます。
E[Gn ] =
3
実対数閾値の定義
真の密度関数 q(x) と統計モデル p(x|w) のカルバック・ライブラ距離を
∫
q(x)
dx
K(w) = q(x) log
p(x|w)
と定義し、ゼータ関数 を次式で定義します(z ∈ C)。
∫
ζ(z) = K(w)z φ(w)dw
K(w) ≥ 0 が実解析関数で φ(w) ≥ 0 が無限回微分可能な関数ならば、ゼータ関数 は
Re(z) > 0 で複素関数として正則ですが、実は複素平面全体に有理型関数として解析接続
することができます。その極はすべて実数であり、負の有理数であることがわかります。
そこで、ゼータ関数の極を原点に近いほうから順に (−λ1 ), (−λ2 ), ... と名づけます。こ
のとき λ1 が実対数閾値です。つまり λ = λ1 です。なお、その極の位数を多重度と呼び
m と書くことします。
1
4
例1
x, w ∈ R1 で、真の密度関数、統計モデル、事前分布が
1
q(x) = √ exp(−x2 /2)
2π
1
p(x|w) = √ exp(−(x − w)2 /2)
2π
{
1/2 (|x| ≤ 1)
φ(w) =
0 (|x| > 1)
であるときを考えます。
K(w) = w2 /2
なので Re(z) > 0 では
1
ζ(z) =
2
∫
1
1
(w /2) dw = z
2
−1
2
∫
1
z
(w2 )z dw =
0
1
2z (2z
+ 1)
.
なので、解析接続できて λ = 1/2.多重度は m = 1 です.従って
E[Gn ] =
5
1
1
+ o( ).
2n
n
例2
(x, y) ∈ R2 とします.またパラメータの集合を
W = {w = (a, b, c) ∈ R3 ; |a|, |b|, |c| ≤ 1}.
とします。関数
{
q0 (x) =
1/2 (|x| ≤ 1)
0 (|x| > 1)
を用いて、統計モデル、真の密度関数、事前分布が
)
( 1
q(x)
2
p(x, y|a, b, c) = √ exp − (y − aS(bx) − cx) ,
2
2π
q(x, y) = p(x, y|0, 0, 0),
φ(a, b, c) = 1/8,
(1)
(2)
(3)
である場合を考えます。ただし S(x) = x + x2 とします。このとき真の密度関数と統計モ
デルのカルバック・ライブラ距離は
1
1
K(a, b, c) = (ab + c)2 + a2 b4
2
6
になります.従ってゼータ関数は
∫ ∫ ∫
)z
1
1 1 1 1 (1
(ab + c)2 + a2 b4 da db dc
ζ(z) =
8 −1 −1 −1 2
6
2
この関数の極を見つけるのは難しく見えますが次のようにすると求められます。まずパラ
メータの集合を W = ∪j Wj のように分けます。ここで
W1 = {|a| ≤ |c|},
W2 = {|a| ≥ |c|, |ab| ≤ |ab + c|},
W3 = {|a| ≥ |c|, |ab + c| ≤ |ab2 |},
W4 = {|a| ≥ |c|, |ab2 | ≤ |ab + c| ≤ |ab|}.
次に別の集合 Uj = {(aj , bj , cj )} (j = 1, 2, 3, 4) を用意してそこから W への関数 w = g(u)
を次のように作ります。g(u) は各 Uj から Wj への関数として定義されますが矛盾するこ
となく ∪Uj から ∪Wj への関数になります。
a = a1 c1 ,
b = b1 ,
c = c1 ,
c = a2 (1 − b2 )c2 ,
a = a2 ,
b = b2 c2 ,
a = a3 ,
b = b3 ,
c = a3 b3 (b3 c3 − 1),
a = a4 ,
b = b4 c4 ,
c = a4 b4 c4 (c4 − 1).
すると、
)
1
(a1 b1 + 1)2 + a21 b41 ,
2
6
(1 1
)
= a22 c22
+ b 2 c2 ,
2 6 2 2
(1
1)
= a23 b43 c23 +
,
2
6
(1 1 )
= a24 b24 c44
+ b2 .
2 6 4
おおきな括弧の中は 0 にならないのでゼータ関数の極には影響しません。また積分の変
数変換を行うときヤコビアンが必要になるので計算しておきましょう。
K(a, b, c) = K(g(u)) = c21
(1
|g ′ (u)| = |c1 |
= |a2 c2 |
= |a3 b23 |
= |a4 b4 c4 |2 .
ゼータ関数は
∫
ζ(z) =
K(g(u))z φ(g(u))|g ′ (u)|du
とかけるので、各 Ui 上で部分的な実対数閾値と多重度を求めることができます。
λ1 = 1,
m1 = 1,
λ2 = 1,
m2 = 2,
λ3 = 3/4,
m3 = 1,
λ4 = 3/4,
m4 = 1.
ゼータ関数はパラメータ集合を分割して計算したものの和になりますので、実対数閾値は
その中の最小値で λ = 3/4 であり、その多重度は m = 1 です。従って
E[Gn ] =
3
1
+ o( )
4n
n
であることがわかりました。
3
6
発展(統計)
汎化誤差のほかに統計学で重要な量として、学習誤差
n
1∑
q(Xi )
Tn =
log
n i=1
p̂(Xi )
とベイズ自由エネルギー
Fn = − log
∫ ∏
n
p(Xi |w)φ(w)dw
i=1
があります。特異揺らぎと呼ばれる量 ν > 0 を用いて
2ν
1
E[Gn ] − E[Tn ] =
+ o( )
n
n
であることを示すことができます。真の密度関数がわからなくても ν を計算することが
できるので、E[Tn ] から E[Gn ] を求めることができます(WAIC)。また
Fn = −
n
∑
log q(Xi ) + λ log n − (m − 1) log log n + Op (1)
i=1
であることがわかります。真の密度関数がわからなくても Fn を求める方法があります
(WBIC)。
7
発展(数学)
ここで紹介した方法は数学という大きな川の流れがあって初めて作ることができたもの
です。「産業に役立つ部分だけあればよい」という考えかたでは、決して作ることはでき
ませんでした。
1. 例2で述べた変換について背後に何かあると感じたある人は代数幾何学 [3] を学び
ましょう.
2. ここで紹介したゼータ関数(ゲルファント・井草のゼータ)を美しいと感じた人は
代数解析学 [1] を学びましょう。
3. 解析関数の零点が作る集合は代数的な性質と解析的な性質が深く関係しているはず
だと感じた人は多変数関数論 [2] を学びましょう.
なお、例2で紹介した計算の方法については参考文献 [4] の 102 ページの example 3.19
に書いてあります。
参考文献
[1] 柏原正樹. 代数解析概論. 岩波書店, 2008.
[2] 野口潤次郎. 多変数解析関数論 学部生におくる岡の連接定理. 朝倉書店. 2013.
[3] 上野健爾. 代数幾何. 岩波書店. 2005.
[4] Sumio Watanabe. Algebraic geometry and statistical learning theory, Cambridge University Press, 2009.
4