Upload
shotaro-sano
View
417
Download
0
Embed Size (px)
Citation preview
0
Binarized Neural Networks Itay Hubara, Matthieu Courbariaux, Daniel Soudry,
Ran El-Yaniv, Yoshua Bengio
NIPS & ICDM 2016 輪読会
紹介者:佐野正太郎
株式会社リクルートコミュニケーションズ
(C)Recruit Communications Co., Ltd.
Binarized Neural Networks
モチベーション
• ニューラルネットの省メモリ化
– 小数点精度は32bitも要らない場合が多い
– 組み込みシステムなどマシンパワーが低い場合の計算
提案手法:Binarized Neural Networks
• 重みとノード出力が全て二値化されたネットワーク
– 従来手法(BinaryConnect)では重みのみを二値化
• バイナリオペレーションによる高速化
– GPU計算で約7倍速(MNISTベンチマーク)
1
(C)Recruit Communications Co., Ltd.
Binarized Neural Networks
活性化関数 => 重み付き和の符号関数
計算をバイナリ化に合わせて変更
• フォワード計算
• バックプロパゲーション
• バッチ正則化の高速化
• AdaMaxの高速化
2
(C)Recruit Communications Co., Ltd.
フォワード計算
3
K層目 バイナリ ベクトル
二値化された 重み行列を
かける
バッチ 正則化
K+1層目 バイナリ ベクトル
ベクトル 各要素の 二値化
・・・ ・・・
重み行列 Wk は連続値として保持
フォワード計算時には二値化
(C)Recruit Communications Co., Ltd.
XNORオペレーションの恩恵
4
• 『活性化関数出力 x 重み』ごとにXNORをかけて足しこむ
• XNORによるGPUカーネル => 32bit floatに比べ約5.3倍速
+1 -1 -1
-1 +1 -1 +1 -1
+1
(C)Recruit Communications Co., Ltd.
バックプロパゲーション
5
バッチ正則化 逆伝播
ロスに対する K+1層目の
勾配ベクトル
活性化関数への 入力についての
勾配ベクトル
・・・ ・・・
ロスに対する K層目の
勾配ベクトル
(C)Recruit Communications Co., Ltd.
バックプロパゲーション
6
バッチ正則化 逆伝播
ロスに対する K+1層目の
勾配ベクトル
活性化関数への 入力についての
勾配ベクトル
・・・ ・・・
ロスに対する K層目の
勾配ベクトル
符号関数の勾配?
(C)Recruit Communications Co., Ltd.
バックプロパゲーション
Straight-through estimator [Hinton, 2012]
• 確率的な離散値を持つニューロンのバックプロパゲーション
• 決定的な符号関数の場合は下記のように近似
7
要素ごとの掛け算
条件を満たす要素は1 満たさない要素は0
(C)Recruit Communications Co., Ltd.
バッチ正則化の高速化
8
Batch Normalization Shift based
Batch Normalization
ミニバッチの平均
入力の中心化
ミニバッチの分散
正規化
スケール & シフト
2の冪上への ラウンディング
ビットシフト
(C)Recruit Communications Co., Ltd.
AdaMaxの高速化
Shift-based AdaMax [Kingma & Ba, 2014]
• バッチ正則化と同様に乗算をシフト演算化
• ハイパーパラメタの一部を2の冪乗に設定しておく
9