Upload
takuya-minagawa
View
3.773
Download
1
Embed Size (px)
DESCRIPTION
5/22 CV勉強会@関東の発表資料
Citation preview
CV勉強会@関東発表資料CV最先端ガイド6 ディープラーニング
4.3章-6章
2014/05/25 takmin
発表内容
4.3 Deep Belief Network
4.4 Deep Boltzmann Machine
4.5 Convolutional DBM
5. ソフトウェア
6. おわりに
Deep Belief Network
Deep Belief Network
𝒉3
𝒉2
𝒉1
𝒗
Deep Belief Network
𝒉3
𝒉2
𝒉1
𝒗
𝑝 𝒉2, 𝒉3
Restricted Boltzmann Machine
Deep Belief Network
𝒉3
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
Deep Belief Network
𝒉3
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
𝑝 𝒉1 𝒉2
Deep Belief Network
𝒉3
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
𝑝 𝒗 𝒉1
𝑝 𝒉1 𝒉2
𝑝 𝒉𝑙 𝒉𝑙+1
Deep Belief Network
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
𝒉3
𝒉2
𝒉1
𝒉0
Deep Belief Network
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
𝒉3
𝒉2
𝒉1
𝒉0
𝑝 𝒉𝑙 𝒉𝑙+1 =
𝑖
𝑝 ℎ𝑖𝑙 𝒉𝑙+1
Deep Belief Network
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
𝒉3
𝒉2
𝒉1
𝒉0
𝑝 𝒉𝑙 𝒉𝑙+1 =
𝑖
𝑝 ℎ𝑖𝑙 𝒉𝑙+1
𝑝 ℎ𝑖𝑙 𝒉𝑙+1 = σ 𝑐𝑖
𝑙 +
𝑗
𝑊𝑖𝑗𝑙+1ℎ𝑗𝑙+1
(53)
Deep Belief Network
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
𝒉3
𝒉2
𝒉1
𝒉0
𝑝 𝒉𝑙 𝒉𝑙+1 =
𝑖
𝑝 ℎ𝑖𝑙 𝒉𝑙+1
𝑝 𝒗, 𝒉; 𝜃 =
𝑙=0
𝐿−2
𝑝 𝒉𝑙 𝒉𝑙+1 𝑝 𝒉𝐿−1, 𝒉𝐿 (52)
ネットワーク全体の同時確率
𝑝 ℎ𝑖𝑙 𝒉𝑙+1 = σ 𝑐𝑖
𝑙 +
𝑗
𝑊𝑖𝑗𝑙+1ℎ𝑗𝑙+1
(53)
Deep Belief Network
Restricted Boltzmann Machine
𝑝 𝒉𝐿−1, 𝒉𝐿
=1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒉𝐿−1, 𝒉𝐿; 𝜃)
𝒉3
𝒉2
𝒉1
𝒉0
𝑝 𝒉𝑙 𝒉𝑙+1 =
𝑖
𝑝 ℎ𝑖𝑙 𝒉𝑙+1
𝑝 𝒗, 𝒉; 𝜃 =
𝑙=0
𝐿−2
𝑝 𝒉𝑙 𝒉𝑙+1 𝑝 𝒉𝐿−1, 𝒉𝐿 (52)
ネットワーク全体の同時確率
𝑝 ℎ𝑖𝑙 𝒉𝑙+1 = σ 𝑐𝑖
𝑙 +
𝑗
𝑊𝑖𝑗𝑙+1ℎ𝑗𝑙+1
(53)
推論
分布𝑝 𝒉 𝒗 を求めたい。
𝒉3
𝒉2
𝒉1
𝒗 ここが与えられた時の
この各ユニットの分布(1になる確率)
(リンクの重み𝑾は学習済み)
推論
分布𝑝 𝒉 𝒗 を求めたい。
𝒉3
𝒉2
𝒉1
𝒗 観測データ
下の層から順に推論
教師ありの場合、この値を更にロジスティック回帰やSVMに使用
推論
分布𝑝 𝒉 𝒗 を求めたい。
𝒉3
𝒉2
𝒉1
𝒗
(54)
𝑞 ℎ𝑖𝑙 = 1 𝒉𝑙−1
= σ 𝑐𝑖𝑙 +
𝑗
ℎ𝑗𝑙−1𝑊𝑖𝑗
𝑙
注:この式は解析的に求まらない。あくまで近似。
推論
分布𝑝 𝒉 𝒗 を求めたい。
𝒉3
𝒉2
𝒉1
𝒗
通常のRestricted Boltzmann Machineとして最上位のユニットの確率分布を計算
推論
分布𝑝 𝒉 𝒗 を求めたい。
𝒉3
𝒉2
𝒉1
𝒗
(54)
𝑞 ℎ𝑖𝑙 = 1 𝒉𝑙−1
= σ 𝑐𝑖𝑙 +
𝑗
ℎ𝑗𝑙−1𝑊𝑖𝑗
𝑙
推論
分布𝑝 𝒉 𝒗 を求めたい。
𝒉3
𝒉2
𝒉1
𝒗
(54)
𝑞 ℎ𝑖𝑙 = 1 𝒉𝑙−1
= σ 𝑐𝑖𝑙 +
𝑗
ℎ𝑗𝑙−1𝑊𝑖𝑗
𝑙
q1
0
プレトレーニング
𝒉3
𝒉2
𝒉1
𝒗
リンクの重み𝑾
各ユニットの重み𝑐𝑖𝑙
を学習
プレトレーニング
𝒉3
𝒉2
𝒉1
𝒗 学習データ
下の層から順に学習
プレトレーニング
𝒉3
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machineとして学習
無視
プレトレーニング
𝒉3
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machineとして学習
無視
プレトレーニング
𝒉3
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machineとして学習
無視
(54)
𝑞 ℎ𝑖𝑙 = 1 𝒉𝑙−1
= σ 𝑐𝑖𝑙 +
𝑗
ℎ𝑗𝑙−1𝑊𝑖𝑗
𝑙
から学習データを生成
プレトレーニング
𝒉3
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machineとして学習
(54)
𝑞 ℎ𝑖𝑙 = 1 𝒉𝑙−1
= σ 𝑐𝑖𝑙 +
𝑗
ℎ𝑗𝑙−1𝑊𝑖𝑗
𝑙
から学習データを生成
Deep Boltzmann Machine
Deep Boltzmann Machine
𝒉3
𝒉2
𝒉1
𝒗
𝒉3
𝒉2
𝒉1
𝒗
Deep Boltzmann Machine Deep Belief Network
無向グラフ 有向グラフ
Deep Boltzmann Machine
𝒉2
𝒉1
𝒗
𝐸 𝒗, 𝒉; 𝜃
= −
𝑖=1
𝑁𝑉
𝑏𝑖𝑣𝑖 −
𝑗=1
𝑁𝐻1
𝑐𝑗1ℎ𝑗1 −
𝑖,𝑗
𝑣𝑖𝑊𝑖𝑗1ℎ𝑗1 −
𝑗=1
𝑁𝐻2
𝑐𝑗2ℎ𝑗2 −
𝑗,𝑘
ℎ𝑗1𝑊𝑗𝑘2ℎ𝑘2
隠れ層が2層の場合
𝑝 𝒗, 𝒉; 𝜃 =1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒗, 𝒉; 𝜃)
ネットワーク全体の同時確率
(55)
Deep Boltzmann Machine
𝒉2
𝒉1
𝒗
𝐸 𝒗, 𝒉; 𝜃
= −
𝑖=1
𝑁𝑉
𝑏𝑖𝑣𝑖 −
𝑗=1
𝑁𝐻1
𝑐𝑗1ℎ𝑗1 −
𝑖,𝑗
𝑣𝑖𝑊𝑖𝑗1ℎ𝑗1 −
𝑗=1
𝑁𝐻2
𝑐𝑗2ℎ𝑗2 −
𝑗,𝑘
ℎ𝑗1𝑊𝑗𝑘2ℎ𝑘2
隠れ層が2層の場合
𝑝 𝒗, 𝒉; 𝜃 =1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒗, 𝒉; 𝜃)
ネットワーク全体の同時確率
(55)
Deep Boltzmann Machine
𝐸 𝒗, 𝒉; 𝜃 = −
𝑙=0
𝐿
𝑗=1
𝑁𝐻𝑙
𝑐𝑗𝑙ℎ𝑗𝑙 −
𝑙=1
𝐿
𝑖,𝑘
ℎ𝑖𝑙−1𝑊𝑖𝑘
𝑙 ℎ𝑘𝑙
一般化
𝑝 𝒗, 𝒉; 𝜃 =1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒗, 𝒉; 𝜃)
ネットワーク全体の同時確率
(55)’
𝒉𝐿
𝒉𝑙
𝒉1
𝒉0
推論
𝒉2
𝒉1
𝒗
分布𝑝 𝒉 𝒗 を求めたい。
ここが与えられた時の
この各ユニットの分布(1になる確率)
(リンクの重み𝑾は学習済み)
推論
𝒉2
𝒉1
𝒗
分布𝑝 𝒉 𝒗 を求めたい。(リンクの重み𝑾は学習済み)
観測データ
平均場近似で求める
平均場近似による推論
𝒉2
𝒉1
𝒗
各ユニットの状態を独立として近似
𝑞 𝒉 𝒗 ≡
𝑙
𝑗
𝑞𝑗𝑙 ℎ𝑗𝑙 𝒗
𝑞∗ 𝒉 𝒗 = argmin𝑞𝒟 𝑞 𝒉 𝒗 𝑝 𝒉 𝒗; 𝜃
(56)
(57)
𝑞 𝒉 𝒗 を𝑝 𝒉 𝒗; 𝜃 と近い関数形にしたい。→ 𝑞と𝑝のKLダイバージェンス最小化
平均場近似による推論
𝒉2
𝒉1
𝒗
各ユニットの状態を独立として近似
𝑞 𝒉 𝒗 ≡
𝑙
𝑗
𝑞𝑗𝑙 ℎ𝑗𝑙 𝒗
𝑞∗ 𝒉 𝒗 = argmin𝑞𝒟 𝑞 𝒉 𝒗 𝑝 𝒉 𝒗; 𝜃
(56)
(57)
𝑝 𝒗, 𝒉; 𝜃 =1
𝑍(𝜃)𝑒𝑥𝑝 −𝐸(𝒗, 𝒉; 𝜃)
平均場近似による推論
𝒉2
𝒉1
𝒗
各ユニットの状態を独立として近似
𝑞 𝒉 𝒗 ≡
𝑙
𝑗
𝑞𝑗𝑙 ℎ𝑗𝑙 𝒗
𝑞∗ 𝒉 𝒗 = argmin𝑞𝒟 𝑞 𝒉 𝒗 𝑝 𝒉 𝒗; 𝜃
(56)
(57)
𝐸 𝒗, 𝒉; 𝜃 = −
𝑙=0
𝐿
𝑗=1
𝑁𝐻𝑙
𝑐𝑗𝑙ℎ𝑗𝑙 −
𝑙=1
𝐿
𝑖,𝑘
ℎ𝑖𝑙−1𝑊𝑖𝑘
𝑙 ℎ𝑘𝑙 (55)’
平均場近似による推論
𝑞∗ 𝒉 𝒗 = argmin𝑞𝒟 𝑞 𝒉 𝒗 𝑝 𝒉 𝒗; 𝜃 (57)
𝒟 𝑞 𝒉 𝒗 𝑝 𝒉 𝒗; 𝜃
=
𝑙=1
𝐿
𝑗=1
𝑁𝐻𝑙
𝜇𝑗𝑙 ln 𝜇𝑗𝑙 + 1 − 𝜇𝑗
𝑙 ln 1 − 𝜇𝑗𝑙 −
𝑙=0
𝐿
𝑗=1
𝑁𝐻𝑙
𝑐𝑗𝑙𝜇𝑗𝑙
−
𝑙=1
𝐿
𝑗=1
𝑁𝐻𝑙
𝜇𝑗𝑙−1𝑊𝑗
𝑙𝜇𝑗𝑙
μ𝑗𝑙 ≡ 𝑞𝑗
𝑙 ℎ𝑗𝑙 = 1 𝒗 とすると
平均場近似による推論
𝑞∗ 𝒉 𝒗 = argmin𝑞𝒟 𝑞 𝒉 𝒗 𝑝 𝒉 𝒗; 𝜃 (57)
μ𝑗𝑙 ≡ 𝑞𝑗
𝑙 ℎ𝑗𝑙 = 1 𝒗
𝜕
𝜕μ𝑗𝑙 𝒟 𝑞 𝑝 =0
を解くと、μ𝑗𝑙の停留点は
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
観測データ
適当な初期値
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットが収束するまで更新を繰り返す
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットが収束するまで更新を繰り返す
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットが収束するまで更新を繰り返す
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットが収束するまで更新を繰り返す
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットが収束するまで更新を繰り返す
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットが収束するまで更新を繰り返す
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットが収束するまで更新を繰り返す
平均場近似による推論:手順
𝒉2
𝒉1
𝒗
μ𝑗𝑙 = σ 𝑐𝑗
𝑙 +
𝑖
μ𝑖𝑙−1𝑊𝑖𝑗
𝑙 +
𝑘
𝑊𝑗𝑘𝑙+1μ𝑘𝑙+1 (58)
各ユニットの停留点
各ユニットのμ𝑗𝑙が、推論結果
(1となる確率)
プレトレーニング
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machineとして学習
𝑝 ℎ𝑗1 = 1 𝒗 = σ
𝑖
𝑣𝑖𝑊𝑖𝑗1
𝑝 𝑣𝑖 = 1 𝒉1 = σ
𝑗
𝑊𝑖𝑗1ℎ𝑗1
RBMの場合(簡単のためバイアス項は除いている)
(41)
(42)
パラメータ𝑾1の更新に使う
プレトレーニング
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machineとして学習
Deep Boltzmann Machineの場合(簡単のためバイアス項は除いている)
(60)
(59)
上下の層から影響あるので、2倍
𝑝 ℎ𝑗1 = 1 𝒗 = σ
𝑖
𝑣𝑖𝑊𝑖𝑗1 +
𝑖
𝑣𝑖𝑊𝑖𝑗1
𝑝 𝑣𝑖 = 1 𝒉1 = σ
𝑗
𝑊𝑖𝑗1ℎ𝑗1
プレトレーニング
𝒉2
𝒉1
𝒗
Restricted Boltzmann Machineとして学習
Deep Boltzmann Machineの場合(簡単のためバイアス項は除いている)
𝑝 ℎ𝑘2 = 1 𝒉1 = σ
𝑗
ℎ𝑗1𝑊𝑖𝑗2
𝑝 ℎ𝑗1 = 1 𝒉2 = σ
𝑘
𝑊𝑖𝑘2ℎ𝑘2 +
𝑘
𝑊𝑖𝑘2ℎ𝑘2
(62)
(61)
上下の層から影響あるので、2倍
微調整
𝒉2
𝒉1
𝒗
全体のパラメータを学習
プレトレーニングの結果が初期値
𝜕𝒟
𝜕𝜃=𝜕𝐸
𝜕𝜃𝑑𝑎𝑡𝑎
−𝜕𝐸
𝜕𝜃𝑚𝑜𝑑𝑒𝑙
(39)
パラメータ全体から計算
微調整
𝒉2
𝒉1
𝒗
𝜕𝒟
𝜕𝜃=𝜕𝐸
𝜕𝜃𝑑𝑎𝑡𝑎
−𝜕𝐸
𝜕𝜃𝑚𝑜𝑑𝑒𝑙
(39)
−𝜕𝐸
𝜕𝑊𝑖𝑗𝑙
𝑑𝑎𝑡𝑎
=1
𝑁
𝑛
𝑣𝑖𝑛μ𝑗𝑙𝑛
−𝜕𝐸
𝜕𝑏𝑖𝑑𝑎𝑡𝑎
=1
𝑁
𝑛
𝑣𝑖𝑛
−𝜕𝐸
𝜕𝑐𝑗𝑙
𝑑𝑎𝑡𝑎
=1
𝑁
𝑛
μ𝑗𝑙𝑛
CD法で計算
𝑣𝑖𝑛:n番目の学習データ
n番目のデータから平均場近似した条件付き確率
μ𝑗𝑙𝑛:
Convolutional DBM
Convolutional DBM
・・・
・・・
𝒉
𝒗
𝑾1 𝑾2 𝑾3𝐵𝛼
畳込みとMax Pooling を生成モデル(RBM)に組込む
𝐸 𝒗, 𝒉 = −
𝑘
𝑖,𝑗
ℎ𝑖,𝑗𝑘 𝑾𝑘 ∗ 𝑣
𝑖,𝑗+ 𝑐𝑘ℎ𝑖,𝑗
𝑘 − 𝑏
𝑖,𝑗
𝑣𝑖,𝑗 (66)
(67)subject to
入力への畳み込み
𝐵𝛼内の出力はどれか1つだけ1,または全て0
(𝑖,𝑗)∈𝐵𝛼
ℎ𝑖,𝑗𝑘 ≤ 1, ∀𝑘, 𝛼
バイアス
ソフトウェア
ソフトウェア
Deep Learningのソフトウェアへのリンクまとめサイト
http://deeplearning.net/software_links/
ソフトウェア名前 言語 URL 高速化 開発元 アルゴリズム
Theano Python http://deeplearning.net/software/theano
• CUDA• BLAS
モントリオール大学LISA
• CNN• DBN• DBM
EBlearn C++ http://eblearn.cs.nyu.edu:21991/
• IPP• SSE• OpenMP
ニューヨーク大学CBLL
• CNN
cuda-convnet
PythonC++
http://code.google.com/p/cuda-convnet
• CUDA A.Krizhevsky@トロント大
• CNN
Caffe C++ http://caffe.berkeleyvision.org/index.html
• CUDA カリフォルニア大バークレー校BVLC
• CNN
ConvNetJS
JavaScript
http://cs.stanford.edu/people/karpathy/convnetjs/
A.Karpathy@スタンフォード大
• CNN
おわりに
ディープラーニングは各種のベンチマークやコンテストで著しい成果を挙げている。
なぜ、そんなに性能が良いのか? プレトレーニングが重要であるという説
過完備な特徴セットによるスパース表現が本質であるという説