mathematical foundation of statistical learningwatanabe-2016/1/7 mathematical learning theory 6...
TRANSCRIPT
情報学習理論
渡辺澄夫
東京工業大学
競合学習
自己組織化
ボルツマンマシン
教師なし学習
深層学習
サポートベクタマシン
教師あり学習
ニューラルネットワーク
教師なし学習
学習データ
X1, X2, …, Xn
テストデータ
X
真の情報源
情報源を学習すると世界を思い出せるようになる・・・
2016/1/7 Mathematical Learning Theory 4
連想記憶
2016/1/7 5
連想記憶 赤くて丸い・・・・・・りんごを思い出します
p(x|w)
q(x)
2016/1/7 Mathematical Learning Theory 6
ボルツマンマシンとは
外界からの情報があるとき(起きているとき)の平衡状態と情報がないとき(寝ているとき)の平衡状態が同じになるように学習する。
確率分布を多数のスピン変数の平衡状態によって実現しようとするモデルがボルツマンマシンである。
ボルツマンマシンは教師あり学習にも教師なし学習にも使うことができる。逆推論もできる。
今日は、外界からの情報の一部分から全体を思い出す(連想記憶)について考える。
2016/1/7 Mathematical Learning Theory 7
脳型システムと連想記憶
外界
外界から隠れている部分
外界を観測する部分(思い出す)
外界を観測する部分の一部(連想の元)
外界を観測する部分の一部から全体を思い出す
2016/1/7 Mathematical Learning Theory 8
制限つきボルツマンマシン
外を観測する部分
隠れている部分
外界連想するときの元になる部分
2016/1/7 Mathematical Learning Theory 9
制限つきボルツマンマシン
外を観測するユニット Visible units : N 個
隠れているユニット Hidden Units : H個
wij
i
j
θi バイアス
結合荷重
y = (s1,s2,…sH)
x = (sH+1,sH+2,…,sH+N)
2016/1/7 Mathematical Learning Theory 10
ボルツマンマシン
y = (s1,s2,…sH) x = (sH+1,sH+2,…,sH+N)
両方のユニット (全て0または1)
s = (x,y)= ( s1,s2,…sH, sH+1,sH+2,…,sH+N)
結合荷重 wij とバイアス θi は実数値
H(s,w,θ) = - (1/2) Σ wijsisj – Σ θisi
エネルギー (s=(x,y))
ii≠j
スピン系は磁石のモデル量子時空の離散化でもある
1984, ヒントンは脳のモデルを考えた
2016/1/7 Mathematical Learning Theory 11
平衡状態とは
エネルギー関数 H(s) が与えられたとき、確率分布
p(s)=(1/Z) exp( - H(s))
を平衡状態といい、Zを分配関数という
Z = Σs exp( -H(s))
ボルツマンマシンは s=(x,y) の平衡状態で定義される
(1) (w,θ) で定まる二つの平衡状態がある(2) 平衡状態の作り方(3) 平衡状態の学習のさせ方 = (w,θ) の決め方
2016/1/7 Mathematical Learning Theory 12
平衡状態I 眠る
p(x,y|w,θ) = (1/Z(w,θ)) exp(-H(x,y,w,θ) )
眠り平衡状態 (外界からの情報なし:s=(x,y) が確率的に変動)
Z(w,θ)= Σx,y exp(-H(x,y,w,θ) )
眠り分配関数
◎ (x,y) の分布なのでギブス法(後述)で作る◎ 眠り平衡状態の平均値を E[ |w,θ] と書く
2016/1/7 Mathematical Learning Theory 13
平衡状態II 目覚めている
p(y|x,w,θ) = (1/Z(x,w,θ)) exp(-H(x,y,w,θ) )
目覚め平衡状態(外界から情報あり:x は固定で y だけ変動)
Z(x,w,θ)= Σy exp(-H(x,y,w,θ) )
目覚め分配関数
◎ x が固定されているので、繰り返しなしで作れる.◎ 目覚め平衡状態の平均値を E[ |x,w,θ] と書く
2016/1/7 Mathematical Learning Theory 14
眠り平衡状態の作り方
眠り平衡状態はギブス法を用いて作る
ギブス法(ギブスサンプラー)
1. s=(s1,s2,…,sn) を初期化2. k をランダム(等確率)に選ぶ3. sk以外を固定してp(sk|s≠sk)から sk をサンプリング4. (2,3)を繰り返す
目覚め平衡状態は直接に作れる
15
ギブス法p(x,y) からのサンプリング: p(y|x) と p(x|y) を繰り返す
ギブス メトロポリス
2016/1/7 Mathematical Learning Theory 16
平衡状態の確率の比
H(s,w,θ)|sk=1 = - (1/2) Σ wijsisj – Σ θisi
H(s,w,θ)|sk=0 = - (1/2) Σ wijsisj – Σ θisi
sk 以外を固定したとき sk=1 と sk=0 のエネルギーは
sk=1
sk=0
H(s,w,θ)|sk=1 - H(s,w,θ)|sk=0 = - Σ wkjsj - θkj≠k
その差は
sk=0 と sk=1 の確率の比を1 : exp(Σ wkjsj + θk ) にして更新すればよい
2016/1/7 Mathematical Learning Theory 17
制限つきボルツマンマシン
外を観測するユニット
隠れているユニット
制限つきボルツマンマシンでは一方を固定すれば相手のユニット同士は独立になるのでギブス法が使いやすい
目覚め平衡状態は一回で作れる
2016/1/7 Mathematical Learning Theory 18
問1
次の確率分布をギブス法で近似しやすい順に並べよ
(1)
x
y
(2)
x
y
(3)
x
y
(4)
x
y
2016/1/7 Mathematical Learning Theory 19
2016/1/7 Mathematical Learning Theory 20
学習の目標
p(x|w,θ) = Σy (1/Z(w,θ)) exp(-H(x,y,w,θ) )
眠り平衡状態での x の分布(y について周辺化)は
ボルツマンマシンの学習の目標
外界が未知の確率分布 q(x) に従うときうまく (w,θ) を調節することで、眠り平衡状態での x の分布が外界の分布を近似する q(x) ≒ p(x|w,θ) ようにしたい.
= (1/Z(w,θ)) Σy exp(-H(x,y,w,θ) )
眠り状態が目覚め状態と同じになるように学習する
2016/1/7 Mathematical Learning Theory 21
学習の方法
データ x が与えられるたびに
L(w,θ) = - log p(x|w,θ)
を小さくしていくと
「眠り状態の x →外界のx」になっていく。
◎ なぜこの方法で q(x) を p(x|w,θ) で学習できるのか?相対エントロピーの最小化と等価であるから
◎ 確率分布 p(x) にとって –log p(x) は、x に出会ったときの驚きの度合い(情報量)に相当する.珍しいほど驚きます。
2016/1/7 Mathematical Learning Theory 22
確率降下法
w := w + η∂w log p(x|w,θ)
θ := θ + η∂θ log p(x|w,θ)
最急降下法 (η>0 として)を用いる
# (w,θ)はベクトルであり ∂w ∂θはベクトルとしての偏微分
L(w,θ)を小さくしていくために
次と次々ページは偏微分の計算。数式が苦手な人は2ページスキップ。
2016/1/7 Mathematical Learning Theory 23
偏微分の計算
∂wij log p(x|w,θ) =
= - (∂wij (Σx,y exp(-H(x,y,w,θ) ) ) / ( Σx,y exp(-H(x,y,w,θ) )
+ (∂wij (Σy exp(-H(x,y,w,θ) ) ) / (Σy exp(-H(x,y,w,θ) )
眠り平衡状態 p(x|w,θ) について
log p(x|w,θ)
= - log ( Z(w,θ)) ) + log (Σy exp(-H(x,y,w,θ) )
= - log (Σx,y exp(-H(x,y,w,θ) ) + log (Σy exp(-H(x,y,w,θ) )
パラメータについて偏微分すると
2016/1/7 Mathematical Learning Theory 24
偏微分の計算の続き
∂wij log p(x|w,θ) =
= - ((Σx,y sisj exp(-H(x,y,w,θ) ) ) / ( Σx,y exp(-H(x,y,w,θ) )
+ ((Σy sisj exp(-H(x,y,w,θ) ) ) / (Σy exp(-H(x,y,w,θ) )
偏微分の計算を続けると
∂wij log p(x|w,θ) = - E[sisj|w,θ] + E[sisj|x,w,θ]
前者は眠り平衡状態での平均後者は目覚め平衡状態での平均なので
∂θi log p(x|w,θ) = - E[si|w,θ] + E[si|x,w,θ]
同様にして
2016/1/7 Mathematical Learning Theory 25
ボルツマンマシンの学習則
wij := wij + η ( - E[sisj|w,θ] + E[sisj|x,w,θ])
θi := θi + η ( − E[si|w,θ] + E[si|x,w,θ])
ボルツマンマシンの学習則
#1980年代にHintonが提案。当時は演算量が大きすぎてあまり使われていなかったが 30年を経て Deep Learning で使われいま流行になっている。
目標「眠り平衡状態≒外界」を実現するためには、目覚め状態と眠り状態の差を使ってパラメータを調整すればよい。目覚め状態と眠り状態が同じになると学習が終わる。
2016/1/7 26
(余談)伝説の剣・相対エントロピー
◎ 確率分布 q(x) から p(x) までの相対エントロピーはK(q||p)= ∫ q(x)log (q(x)/p(x))dx によって定義される。
◎ どんなモデル p(x|w) の学習も K(q||p) の最小化を目標としていると考えてよい。
相対エントロピー伝説
◎ 1800年代末、ボルツマンは「時間の矢」の問題を考える過程で相対エントロピーの概念を発見した。
◎ 1920頃、フィッシャーは相対エントロピーの2回微分が最尤推定量の漸近分布を与えることを示した。
◎ 1950頃、シャノンは相対エントロピーは情報圧縮限界であることを示した。
2016/1/7 Mathematical Learning Theory 27
2016/1/7 Mathematical Learning Theory 28
ボルツマンマシンの応用
1. 連想記憶 (x の一部を見ると全体を思いだせる)
2. たくさんつないで deep learning
3. Visible ユニットを二つX=(X1,X2)にわけて(X1→X2)の推論および逆推論(X2→X1)
(x の一部を見せて全体が思い出せるか)
あるいは deep learning のための事前情報処理
2016/1/7 Mathematical Learning Theory 29
連想記憶
一部を見る
全体を思い出す
2016/1/7 Mathematical Learning Theory 30
問2ボルツマンマシンについて実験して次のことを調べよ。
1.連想記憶として、どのくらいの情報があれば復元できるか?
2.各学習例でギブスサンプラの回数をどのくらい減らしても大丈夫か?Deep Learning では、1回でもOKと言われています。
提示ユニット数
連想記憶状況
ギブス繰り返し数
連想記憶状況