講義12 - 東京工業大学

Download Report

Transcript 講義12 - 東京工業大学

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