introduction to neural turning machine
TRANSCRIPT
Deep Learningの最新動向 Neural Tuning Machinesのしくみ
株式会社 ウェブファーマー 大政孝充
今回紹介する論⽂はこれ
[1]A.Graves, et. al.”Neural Turning Machines” arXiv:14105.5401v2,2104
全体像の解説はこちらを参照
森山氏が綺麗な資料をつくっています。 http://www.slideshare.net/naotomoriyama/ss-69549087
今回はここだけ解説
l Controllerの演算 l 重みの導出計算
全体の概要
まず基本要素の定義
wt i( )i∑ =1, 0 ≤ wt i( ) ≤1,∀i.
Mt
M
N
重み・・・読み込みや書き込みで使用する
メモリ・・・記憶された情報
location方向
contents 方向
読み込み
iwt
Wt
Mt i( )rt ← wt i( )Mt i( )i∑
0.1 0.3 ・ ・ 0.1
どのlocationを強く読み込むか
書き込み(1)erase
iwt
Wt
Mt i( )
i Mt−1 i( )
et0.5, 0.3, ・・・・,0.8
→何番目の要素を強く消すか。
0.5, 0.3, ・・・・,0.80.5, 0.3, ・・・・,0.8
0.5, 0.3, ・・・・,0.8
0.5, 0.3, ・・・・,0.8
wt
Wt
0.1 0.3 ・ ・ 0.1
強く読み出すlocationは強く消しておく?
Mt−1 i( ) 1−wt i( )et⎡⎣ ⎤⎦
書き込み(2)write
iwt
Wt
Mt i( )
i Mt−1 i( )
at0.4, 0.7, ・・・・,0.2
→何番目の要素を強く書き込むか。
Wt
0.1 0.3 ・ ・ 0.1
強く消したlocationは強く書き込む
Mt i( )← !Mt i( )+wt i( )at
0.4, 0.7, ・・・・,0.20.4, 0.7, ・・・・,0.2
0.4, 0.7, ・・・・,0.2
0.4, 0.7, ・・・・,0.2
0.1 0.3 ・ ・ 0.1
ところで・・・重みってどうやってきまるの?
Wt
重み決定過程の全貌
これが重み決定過程の全貌! ちょっとややこしいので、1つ1つ見ていく。
重み決定過程①:Content Adressing
wtc i( )←
exp βtK kt,Mt i( )⎡⎣ ⎤⎦( )exp βtK kt,Mt j( )⎡⎣ ⎤⎦( )j∑
K u,v[ ] = u ⋅ vu ⋅ v
現在のメモリとkey との類似度を求める
i
kt
重み決定過程①:Content Adressing
wtc i( )←
exp βtK kt,Mt i( )⎡⎣ ⎤⎦( )exp βtK kt,Mt j( )⎡⎣ ⎤⎦( )j∑
K u,v[ ] = u ⋅ vu ⋅ v
kt
Mt−1 i( )
0.4, 0.7, ・・・・,0.2
0.6, 0.1, ・・・・,0.3
K kt,Mt i( )⎡⎣ ⎤⎦=kt ⋅Mt i( )kt ⋅ Mt i( )
=0.4 ⋅0.6+ 0.7 ⋅0.1+!+ 0.2 ⋅0.3
0.42 + 0.72 +!+ 0.22 ⋅ 0.62 + 0.12 +!+ 0.32
=4.0
2.5 ⋅2.0= 0.8
例
重み決定過程①:Content Adressing
wtc i( )←
exp βtK kt,Mt i( )⎡⎣ ⎤⎦( )exp βtK kt,Mt j( )⎡⎣ ⎤⎦( )j∑
key強度 をかけるβt
βtK kt,Mt i( )⎡⎣ ⎤⎦= 0.7 ⋅0.8
= 0.56
重み決定過程①:Content Adressing
epsilonをとる
=1.75
exp βtK kt,Mt i( )⎡⎣ ⎤⎦( ) = exp 0.56( )
wtc i( )←
exp βtK kt,Mt i( )⎡⎣ ⎤⎦( )exp βtK kt,Mt j( )⎡⎣ ⎤⎦( )j∑
重み決定過程①:Content Adressing
wtc i( )←
exp βtK kt,Mt i( )⎡⎣ ⎤⎦( )exp βtK kt,Mt j( )⎡⎣ ⎤⎦( )j∑
=1.758.72
= 0.2
wtc i( )←
exp βtK kt,Mt i( )⎡⎣ ⎤⎦( )exp βtK kt,Mt j( )⎡⎣ ⎤⎦( )j∑
=1.75
1.75+ 0.97+!+1.18
softmaxで正規化する
重み決定過程②:Interpolation
0 ≤ gt ≤1
前時刻の と のどちらを多く取るか
wtg ← gtwt
c + 1− gt( )wt−1
wt−1 wtc
重み決定過程③:Convolution Shift
位置方向に畳み込む
!wt i( )← wtg j( )st i− j( )
j=0
N−1
∑
0.1 0.3 0.2 0.3 0.1
重み決定過程③:Convolution Shift
!wt i( )← wtg j( )st i− j( )
j=0
N−1
∑wt
g0.09 0.04 0.03 0.12 0.72
st
0.1 0.3 0.2 0.262 0.1
st 0( )st 1( )st 2( )st 3( )st 4( )
wtg 0( )
wtg 1( )
wtg 2( )
wtg 3( )
wtg 4( )
の場合i = 3
!wt 3( )← wtg j( )st 3− j( )
j=0
N−1
∑!wt 3( )
例えば
= 0.1×0.04+ 0.3×0.03+ 0.2×0.12+ 0.3×0.72+ 0.1×0.09= 0.203
0.09 st 4( )
0.1 0.3 0.2 0.3 0.1
重み決定過程③:Convolution Shift
wtg
0.02 0.04 0.08 0.14 0.72
st
st 0( )st 1( )st 2( )st 3( )st 4( )
wtg 0( )
wtg 1( )
wtg 2( )
wtg 3( )
wtg 4( )
i が増加すると、畳み込みフィルタがShift (rotation)する
st 4( )0.02
sharpening
1≤ γ t
畳み込みでぼやけた分を先鋭化するwt i( )←
!wt i( )γ t
!wt j( )γ tj∑
以上