粒子フィルタ入門です.
References
- http://www.jstatsoft.org/v30/i06/paper
私はこのライブラリを使っています.
- Sequential Monte Carlo Methods in Practice (Springer)
この1章がとてもよくまとまっていておすすめです. 他にも応用例が色々書いてあるので実用向きという印象があります.
4. 学習データ {xn , tn } (n = 1, 2, . . . , N )
が得られたとすると
二乗和誤差関数は以下で与えられる
1 n o
? ? ?
ED (W) = Tr (XW T? ?
T) (XW T)
2
5. ここでなぜかトレースが出てくる
X
(AB)ij = aik bkj
k
X
T
(A A)ij = aki akj
k
この表記で考えるいろいろとてもわかりやすいと
思う
6. X
T
Tr(A A) = aku aku
k,u
X
2
= aku
k,u
二乗のトレースをとると全ての要素の二乗和の
足し合わせが得られる
X
? ?
(XW)ij = xik wkj
? ?
k
i番目のデータのj番目のクラスでの出力
1 n o
? = Tr (XW T)T (XW T)
ED (W) ? ? ? ?
2
誤差の各要素の二乗和
7. ?
W による微分計算
n o Xn o2
? ?
Tr (XW T ? ?
T) (XW T) = ? ?
( XW T)st
s,t
であるので
@ 1 @ Xn o2
?
ED (W) = ? ?
(XW T)st
@wij 2 @wij s,t
X @ ? ?
= ? ?
(XW T)st ( XW T)st
s,t
@wij
全体の微分 中身の微分
8. X @ ? ?
= ? ?
( XW T)st (XW T)st
@wij
s,t
X Xtは後から消えるので省く
? ? @
= ( XW T)st ( xsu wut )
? ?
s,t
@wij u
X
= ? ?
( XW T)st xsu
? iu jt
この書き方もおすすめ
s,t,u
X
= ? ?
( XW T)sj xsi
?
s
X
= ? ? ?
(XT )is (XW T)sj
s
? T )(XW
= ((X ? ? T))ij
9. @ ? ? ? ?
ED (W) = ((XT )(XW T))ij
@wij
@ ? ? ? ?
ED (W) = ((XT )(XW T))
@W?
よりいつもの疑似逆行列による以下の解が得られる
? = (XT X)
W ? ? 1 ? TT
X
10. 演习4.2
T
目的変数ベクトルがある定数 a ,b
に対して以下の線形制約
T
a tn + b = 0
を満たすときモデル予測も以下を満たすことを
示せ
T
a y(x) + b = 0
11. 1 T T T
ED (W) = Tr (XW + 1w0 T) (XW + 1w0 T)
2
0 1
x11 x12 .. x1D
@ : : : : A w1 w2 .. wK
xN 1 xN 2 .. xN D
0 1
0 1 t11 t12 .. t1K
1 @ : : : : A
B1C
B C w01 w02 .. w0K tN 1 tN 2 .. tN K
@:A
1
12. w0 に関して微分すると
右辺は全要素の二乗和の足し合わせだった
ことを利用して
( )
@ @ 1X
ED (W) = (XW + 1wT
0 T)2
st
@w0 @w0 2 s,t
@ED (W) X @
( )i = (XW + 1wT
0 T)st (XW + 1wT
0 T)st
@w0 s,t
@w0i
(1wT )st = 1s w0t = 1s w0t より右辺は
0
T
X
T
(XW + 1w0 T)st it
s,t
13. X
T
(XW + 1w0 T)st it
s,t
X
T
= (XW + 1w0 T)si
s
( ) T
i
( )
i
T T
= ((XW + 1w0 T) 1)i
14. @
ED (W) = (XW + 1wT
0 T)T 1
@w0
=0として解くと
1 T T T
w0 = (T W X )1
N
1 T
?= T 1 1 T
t x= X 1
?
N N
とすると
(それぞれ各クラス得点、入力値のN回の平均ベ
クトルである)
15. w0 = ?
t w x
? T
となり、バイアスベクトルは平均値のずれを
吸収するように決定されることが分かる
これを最初の二乗和誤差関数に代入
1 ? ? ? ?
ED (W) = Tr (XW + T XW T)T (XW + T XW T)
2
? =T
T ?
T
?
X=X ?
X
とおくと最初と同じ形式になる ? +T
W=X ?
16. ? T ?
y(x ) = W x + w0
T ?
= W x +?
t ?
W x T
=t ? x
? + TT (?+ )T (x? x)
?
T ? T? T ?T + T ?
a y(x ) = a t + a T (? ) (x
x x)
?
b ? ?
T=T T
b b .. b
23. 射影した时のクラス办のクラス内分散は
X
2 2
sk = (yn mk )
n2Ck クラスkに含まれるデータ平均
X
2
sk
総クラス内分散????と定義????
?
k
2 2
今回はとりあえず2クラスより s1 + s2
フィッシャーの判別基準は以下で定義
2
(m2 m1 ) クラス間分散
J(W) = 2 + s2
s1 2 クラス内分散
24. ここで、この式をパラメータ行列を使って書き
換えてみる(言ってることは全く同じ)
T
SB = (m2 m1 )(m2 m1 )
クラス間共分散行列と呼ぶ
X X
T T
SW = (xn m1 )(xn m1 ) + (xn m2 )(xn m2 )
n2C1 n2C2
総クラス内共分散行列と呼ぶ
という2つの共分散行列を定義すると
25. T T T
w SB w = w (m2 m1 )(m2 m1 ) w
2
= (m2 m1 )
T T
w m1 = m1 w = m1 だから
26. X X
SW = (xn m1 )(xn m1 ) T + (xn m2 )(xn m2 ) T
n2C1 n2C2
X
T w (xnT
m1 )(xn T
m1 ) w +...
w SW w =
n2C1
X
T T T
= w (xn m1 )(w (xn m1 )) +...
n2C1
X
2
= (yn m1 ) +...
n2C1
となる
27. 0 0
d f (x) f (x) g(x) f (x)g (x)
= 2
dx g(x) g(x)
を用いて
@
J(W) を解くと
@w
T T
(w SB w)SW w = (w SW w)SB w
X
= (m2 m1 ) 2 = (yn m1 )2 +...
n2C1
この2つはスカラーなのでとりあえず無視する
SW w / SB w
28. SW w / SB w
T
SB w = (m2 m1 )(m2 m1 ) w
/ (m2 m1 )
よって以下が得られる
1
w/ SW (m2 m1 )
クラス内共分散が等方的ならクラス平均の差に比例
29. 射影方向が决定したら
クラスの条件付き確率密度
データ数 p(y|Ck ) をモデル化できる
y
例えばデータから最尤法を用いてパラメータ決定