カルバック情報量の分割による特異モデルの学習係数の

Download Report

Transcript カルバック情報量の分割による特異モデルの学習係数の

カルバック情報量の分割による
特異モデルの確率的複雑さの計算法
永田賢二 渡辺澄夫
東京工業大学工学部情報工学科
東京工業大学精密工学研究所
1
 (w)
背景

順問題
q(x)

X 1 , X 2 , , X n
逆問題
?
p( x | w)
p1 ( x | w )
X 1 , X 2 , , X n

pM (x | w)
2
背景


統計的正則モデル
順問題について解明されている
⇒AIC,BIC,MDLなど
特異モデル
未だ順問題が解明されていない
⇒モデル選択のアルゴリズムが
確立されていない
3
目的


特異モデルの順問題について、
カルバック情報量を分割することにより、
確率的複雑さを計算する方法を提案
従来法との比較により分割することの
有効性を実験的に検証
4
 (w)
ベイズ学習
q(x)


事後分布:
X  ( X 1 , X 2 , , X n )
n
p(w | X ) 
n
n
1
n
Z(X )
ベイズ予測分布: p ( x | X ) 
n
p( x | w)
 ( w ) p ( X i | w )
i 1
 p( x | w) p(w | X
n
) dw
予測分布と真の分布の違いは、サンプルが増え
るにつれて、どのような早さで小さくなってゆくか
5
カルバック情報量

カルバック情報量
H (w) 

 q ( x ) log
q( x)
dx
p( x | w)
汎化誤差
G ( n )  E X n [  q ( x ) log


1
 o( )
n
n
q( x)
n
dx ]
p(x | X )
(  :学習係数)
6
学習係数と確率的複雑さ
F ( n )   log
 exp(  nH ( w ))  ( w ) dw
  log n  ( m  1) log log n  O (1) ( m:定数)
<計算法>
f ( n , t )   log
f ( n ,1) 

1

1
0

0
f
t
dt
 exp(  ntH ( w ))  ( w ) dw
とすると
dt
 nH ( w ) exp(  ntH ( w ))  ( w ) dw
 exp(  ntH ( w ))  ( w ) dw
7
メトロポリス法
ある確率分布 p ( w )  exp(  Hˆ ( w )) に従う
サンプルを発生させるアルゴリズム
① Hˆ ( w )  Hˆ ( w ' )  w ' を採択
② Hˆ ( w )  Hˆ ( w ' )  確率 P で w ' を採択
確率 1  P で w を採択
半径 r
[ P  exp(  Hˆ ( w ' )  Hˆ ( w ))]
w
w'
この操作をK回繰り返し、
K個のサンプルとする。
8
確率的複雑さの数値計算(従来法)
exp(  ntH ( w ))  ( w )
0
1
~
w1
1
w2
1
wK
t2
~
w1
2
w2
2
wK
tm
~
w1
m
wK
t1
m
w2
1
2
F (n )
m
9
提案方法と基礎定理

提案方法
H (w)  H 1(w)  H 2 (w)
F (n)  ?

F1 ( n ) は既知数
定理
F ( n )  F1 ( n )  log
 exp(
 nH 2 ( w ))  n ( w ) dw
[  n ( w )  exp(  nH 1 ( w ))  ( w )]
10
定理の証明
Z ( n )   exp(  nH ( w ))  ( w ) dw
  exp(  nH 1 ( w )) exp(  nH 2 ( w ))  ( w ) dw
  exp(  nH 1
exp(  nH ( w )) exp(  nH ( w ))  ( w ) dw

( w ))  ( w ) dw 
 exp(  nH ( w ))  ( w ) dw
2
1
1
  exp(  nH 1 ( w ))  ( w ) dw   exp(  nH 2 ( w ))  n ( w ) dw
F ( n )   log Z ( n )  F1 ( n )  log
 exp(  nH
2
( w ))  n ( w ) dw
I (n ) とする
11
計算アルゴリズム1
 exp(  nH
F ( n )  F1 ( n )  log
2
( w ))  n ( w ) dw の計算
確率分布  n (w ) によるexp(  nH 2 ( w )) の平均値
 n (w)
F1 ( n )
+
w1
w2
wK
I (n)
12
計算アルゴリズム2
 exp(  ntH
g ( n , t )   log
g ( n ,1) 

1
0


dg
( w ))  n ( w ) dw とすると
dt
dt
1
0
2
dt
 nH
2
( w ) exp(  ntH 2 ( w ))  n ( w ) dw
exp(

ntH
(
w
))

(
w
)
dw
2
n

確率分布 exp(  ntH 2 ( w ))  n ( w ) による nH 2 ( w ) の平均値
13
計算アルゴリズム2
exp(  ntH 2 ( w ))  n ( w )
0
F1 ( n )
t1
~
1
w1
1
w2
1
wK
+
1
2
t2
~
w1
tm
~
w1
m
2
2
w2
wK
m
wK
w2
I (n )
m
14
計算アルゴリズム3
F ( n )  F1 ( n ) 
0

1
dt
 nH
2
( w ) exp(  ntH 2 ( w ))  n ( w ) dw
 exp(  ntH
0
2
( w ))  n ( w ) dw
 n (w)
t1
F1 ( n )
+
t2
I (n)
w1
1
tm
w2
wK
15
実験条件
<カルバック情報量>
<事前分布>
H (a, b)  H 1 (a, b)  H 2 (a, b)
H 1 (a, b)  b
4
H 2 (a, b)  a b
2
 (a, b) 
a b
2
1
2
exp( 
2
2
⇒F ( n ), F1 ( n ) ともに積分計算可能
2
<メトロポリス法>
<tについての積分>
•繰り返し回数:K⇒300000
[0:0.1]を
1
10000
毎に分割
•
[0.1:1]を
1
1000
毎に分割
半径 r ⇒
)
O(
1
n
)
16
実験結果①
<従来法>
F (n )
<アルゴリズム2>
F (n )
log( n )
log( n )
計算時間(sec)
従来法
8998.325
アルゴリズム2
8535.850
分割することで
計算精度を向上
17
実験結果②
<アルゴリズム1>
<アルゴリズム2>
<アルゴリズム3>
log( n )
log( n )
log( n )
アルゴリズム1
アルゴリズム2
アルゴリズム3
計算時間(sec)
4.025
8535.850
860.700
計算精度をある程度
抑えた上で計算時間を
大幅に短縮
18
考察

メトロポリス法の精度を上げるには・・・
⇒w
から w 'へ更新される確率が0.5
サンプルを発生させる確率分布ごとに
繰り返し回数と半径の設定の必要あり
各アルゴリズムで最適化を行った上で
比較を行うことが望ましい
19
結論と今後の課題



カルバック情報量を分割することにより確率的複
雑さを計算する方法を3つ提案
実験の結果、分割することで計算精度が向上し、
精度をある程度抑えた上で計算時間を大幅に短
縮できることを確認
今後の課題として、メトロポリス法の条件の最適
化を行った上での提案アルゴリズムの性質の解
明の問題がある。
20
確率的複雑さの数値計算(従来法)
(1)
tについての積分区間[0,1]を
細かく分割し、(2)、(3)の手続きを行う。
(2) exp(  ntH ( w ))  ( w ) に従うサンプル
{ w k ; k  1, 2 ,  K }を取り出す。
(3) y ( n , t ) 
(4)

1
K
K
 nH ( w
k
) を計算する。
k 1
y ( n , t ) を目的の値とする。
t
21
計算アルゴリズム1
F ( n )  F1 ( n )  log
 exp(  nH
2
( w ))  n ( w ) dw の計算
確率分布  n (w ) によるexp(  nH 2 ( w )) の平均値
(1)  n (w ) に従うサンプル{ w k ; k  1, 2 ,  K } を取り出す。
(2) y ( n ) 
1
K
K
 exp(  nH
2
( w k )) を計算する。
k 1
(3) F1 ( n )  log( y ( n )) を目的の値とする。
22
計算アルゴリズム2
(1)
tについての積分区間[0:1]を
細かく分割し、(2)、(3)の手続きを行う。
(2) exp(  ntH 2 ( w ))  n ( w ) に従うサンプル
{ w k ; k  1, 2 ,  K } を取り出す。
(3) y ( n , t ) 
1
K
(4) F1 ( n ) 

K
 nH
2
( w k ) を計算する。
k 1
y ( n , t ) を目的の値とする。
t
23
計算アルゴリズム3
F ( n )  F1 ( n ) 

1
dt
 nH
2
( w ) exp(  ntH 2 ( w ))  n ( w ) dw
 exp(  ntH
0
2
( w ))  n ( w ) dw
(1) n (w ) に従うサンプル{ w k ; k  1, 2 ,  K } を取り出す。
(2)t についての積分区間[0:1]を細かく分割し、
y1 ( n , t ) 
y2 (n, t ) 
(3) F1 ( n ) 
K
1
K
1
K
 nH
( w k ) exp(  ntH 2 ( w k ))
k 1
K
 exp(  ntH
2
( w k )) を計算する。
k 1

t
2
y1 ( n , t )
y2 (n, t )
を目的の値とする。
24