SlideShare a Scribd company logo
バイナリ
ニューラルネットと
ハードウェアの関係
発表者:筑波大学システム情報工学研究科 田尻 健斗
メンター: 大阪大学生命機能研究科 西田 圭吾
東京大学情報理工学系研究科 八木 拓真
1
全脳アーキテクチャ若若⼿手の会
第 26  回勉強会
⾃自⼰己紹介
• ⽥田尻健⽃斗
Ø 筑波⼤大学 システム情報⼯工学研究科D1
Ø 衛星リモートセンシングの⾼高速化
2
これ
SoftBankがARMを買収
3http://www.softbank.jp/sbnews/entry/20170519_02
様々な組み込み機器
4
By	
  Alexander	
  Glinz	
  -­‐ photo	
  by	
  Alexander	
  Glinz	
  /	
  uploaded	
  by	
  Joadl,	
  CC	
  BY-­‐SA	
  3.0at,https://commons.wikimedia.org/w/index.php?curid=29727889
GFDL,	
  https://ja.wikipedia.org/w/index.php?curid=248165
組み込みにおけるNNの搭載
5
By	
  Alexander	
  Glinz	
  -­‐ photo	
  by	
  Alexander	
  Glinz	
  /	
  uploaded	
  by	
  Joadl,	
  CC	
  BY-­‐SA	
  3.0at,https://commons.wikimedia.org/w/index.php?curid=29727889
衝突回避システム
オンボード上でシステムを完結させたい
⾃自⽴立立制御ドローン
衛星リモート
センシング
⼤大きい計算機・⼩小さい計算機
Tesla	
  K40
Raspberry	
  pi	
  3
Model B
計算ユニット Streaming Multiprocessor x40 ARM	
  x4	
  
同時並列列数 2560 8
メモリ 12	
  GB 1	
  GB
消費電力 235	
  W 12.5	
  W
価格 50万円 6千円
6
⼤大きい計算機・⼩小さい計算機
Tesla	
  K40
Raspberry	
  pi	
  3
Model B
計算ユニット Streaming Multiprocessor x40 ARM	
  x4	
  
同時並列列数 2560 8
メモリ 12	
  GB 1	
  GB
消費電力 235	
  W 12.5	
  W
価格 50万円 6千円
7
そうだ、バイナリ化しよう
8
1
メモリ使用量が
!
"#
倍に
掛け算が
ビット演算に
𝑤!! ⋯ 𝑤!&
⋮ ⋱ ⋮
𝑤)! ⋯ 𝑤)&
𝑥!
⋮
𝑥&
バイナリ化の威⼒力力
9
[M.	
  Rastegari,	
  2016]	
  M.	
  Rastegari,	
  et	
  al.	
  “XNOR-­‐Net:	
  ImageNet	
  Classification	
  Using	
  Binary	
  Convolutional	
  Neural	
  Networks”,	
  arxiv:1603.05279,	
  2016.
475
7.4
0
100
200
300
400
500
バイナリ化前 バイナリー化後
AlexNetの重みのデータ量量[MB]
32倍省省メモリ
58倍⾼高速化
[M.  Rastegari,  2016]  
⽬目次
1. バイナリ化⼊入⾨門
2. 表現ビット数の限界に迫る:バイナリNNの数々
Ø BinaryConnect
Ø Binarized Neural  Network
Ø XNOR-‐‑‒Net
3. BNNの性能限界を探る:FPGAの視点から
Ø ハードウェアの性能を引き出す
Ø FINN:  Fast,  Scalable  and  Binarized
4. BNNから⾒見見るハードウェアの未来
10
⽬目次
1. バイナリ化⼊入⾨門
2. 表現ビット数の限界に迫る:バイナリNNの数々
Ø BinaryConnect
Ø Binarized Neural  Network
Ø XNOR-‐‑‒Net
3. BNNの性能限界を探る:FPGAの視点から
Ø ハードウェアの性能を引き出す
Ø FINN:  Fast,  Scalable  and  Binarized
4. BNNから⾒見見るハードウェアの未来
11
NNの浮動⼩小数点のバイナリ化
浮動⼩小数点からバイナリにすることでメモリ容量量を削減
12
−1.5
3.1
2.2
ℎ"
ℎ#
ℎ2
×−1.1
×2.4
各数値で32bit必要
−1.5
3.1
2.2
ℎ"
ℎ#
ℎ2
×−1
×1
×1
各数値で1bit必要
バイナリ化
×1.1
ニューラルネット
13
𝑥!
−1.5
3.1
2.2
ℎ!
ℎ"
ℎ#
ℎ2
𝑧#
𝑧!
𝑧"
𝑥!
𝑥"
𝑥#
𝑥2
入
力
𝑧#
𝑧!
𝑧"
出
力
重みと活性の線形和 &  ⾮非線形の活性化関数
浮動⼩小数点同⼠士の積和演算が発⽣生
ℎ" = 𝑎 +0.1×3.1 − 1.1×1.5 + 2.1×2.2 	
   a:活性化関数
×−1.1
×2.1
×0.1
浮動⼩小数点とは
14
By	
  en:User:Fresheneesz,	
  traced	
  by	
  User:Stannered	
  -­‐ en:Image:Float	
  example.PNG,	
  CC	
  表示-­‐継承 3.0,	
  
https://commons.wikimedia.org/w/index.php?curid=3357169
浮動⼩小数点⽅方式
Ø仮数部(fraction)と指数部(exponent)で数を表⽰示
Ø単精度度では⼀一つの数を表すのに32bit必要
Ø通常のNNでは32bit単精度度浮動⼩小数点を使⽤用
仮数部
指数部
1.5×23
仮数部
指数部
バイナリ化とは
p バイナリ化
→量量⼦子化の⼀一種で、実数値を2通りの値の
どちらかに変換する操作
sign 𝑥 = ?
1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   𝑥 ≥ 0,
−1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  それ以外.
p 今回の発表では特に断らない限り、上式を
バイナリ化と呼ぶ
15
NNの軽量量化
p 組み込み⽤用途を想定したNNが抱える問題
Ø ⼤大量量のビットを使って情報を保持
Ø ⼤大量量の浮動⼩小数点同⼠士の積和演算の発⽣生
p モデルの軽量量化⼿手法
Ø 蒸留留 :⼩小さいモデルで再学習[Hinton,  2015]
Ø 冗⻑⾧長性の排除:構造化された⾏行行列列[Sindhwani,  2015]
Ø 適度度な量量⼦子化:重みのクラスタリング[Han,  2015]
Ø バイナリ化 :実数値→2値[Courbariaux,  2015]
16
NNの学習と推論論
17
𝒖 = 𝑾 ! 𝒙 + 𝒃 !
𝒉 = 𝑎(𝐮)
𝒗 = 𝑾 # 𝒉 + 𝒃 #
𝒚 = softmax(𝒗)
学習
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
①順伝播
推論論
NNの学習と推論論
18
𝐸 = − T 𝑡)Vlog	
   𝑦)V
),V
学習
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
①順伝播
②誤差評価
推論論
NNの学習と推論論
19
𝚫(#)
= 𝒕	
   − 𝒚
𝚫 ! = 𝑎[ 𝒖 ⨀ 𝑾 # 𝚫 #
𝜕𝑬
𝜕𝑾 #
= ⋯
学習
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
①順伝播
②誤差評価
③逆伝播
推論論
NNの学習と推論論
20
𝑾 _
= 𝑾 _
− 𝜂
𝜕𝐸
𝜕𝑾 _ 	
  
𝒃 _
= 𝒃 _
− 𝜂
𝜕𝐸
𝜕𝒃 _ 	
  
学習
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
①順伝播
②誤差評価
③逆伝播
④重み更更新
推論論
NNの学習と推論論
21
学習
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
①順伝播
②誤差評価
③逆伝播
④重み更更新
推論論 ①順伝播𝒖 = 𝑾 ! 𝒙 + 𝒃 !
𝒉 = 𝑎(𝐮)
𝒗 = 𝑾 # 𝒉 + 𝒃 #
𝒚 = softmax(𝒗)
「素朴な」重みのバイナリ化
22
学習
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾(#)
𝒃(#)
𝑾(!)
𝒃(!)
𝑥#
𝑥!
𝑥"
ℎ"
ℎ#
𝑦#
𝑦!
𝑦"
𝑾 𝒃
(#)
𝒃(#)
𝑾 𝒃
(!)
𝒃(!)
①順伝播
②誤差評価
③逆伝播
④重み更更新
推論論 ①順伝播
浮動⼩小数点で学習
(通常通り)
学習済み重みを
そのままバイナリ化
して推論論
→誤差の蓄積のため精度度低下、
どうする?
⽬目次
1. バイナリ化⼊入⾨門
2. 表現ビット数の限界に迫る:バイナリNNの数々
Ø BinaryConnect
Ø Binarized Neural  Network
Ø XNOR-‐‑‒Net
3. BNNの性能限界を探る:FPGAの視点から
Ø ハードウェアの性能を引き出す
Ø FINN:  Fast,  Scalable  and  Binarized
4. BNNから⾒見見るハードウェアの未来
23
バイナリNNの種類
重みの
バイナリ化
活性の
バイナリ化
⼤大規模な
データセット
への対応
Binary	
  
Connect
⚪ -­‐ -­‐
Binarized
Neural	
  
Network
⚪ ⚪ -­‐
XNOR-­‐Net ⚪
⚪ ⚪
24
バイナリNNの種類
重みの
バイナリ化
活性の
バイナリ化
⼤大規模な
データセット
への対応
Binary	
  
Connect
⚪ -­‐ -­‐
Binarized
Neural	
  
Network
⚪ ⚪ -­‐
XNOR-­‐Net ⚪
⚪ ⚪
25
BinaryConnect
M.Courbariaux,  Y.Bengio,  &  David,  J.  P.  (2015).  
“Binaryconnect:  Training  deep  neural  networks  with  binary  
weights  during  propagations”.  In Advances  in  Neural  
Information  Processing  Systems (pp.  3123-‐‑‒3131).
26
概要
p 順伝播・逆伝播の計算にバイナリ重みを⽤用いる
ことで、バイナリ重みを⽤用いたNNの学習アル
ゴリズムを提案
p 通常のNNとほぼ同等の正解率率率を確保
Ø バイナリ化が正則化の役割を果たし、⼩小規模
データセットにおいて良良好な正解率率率を達成
27
BinaryConnectの成果
重要な発⾒見見:重み⾏行行列列をバイナリ化することは、
単に重み⾏行行列列のメモリ使⽤用量量を削減することでは
ない!
→バイナリ化には乗算を加算に置き換える作⽤用
ある
メモリ使⽤用量量が削減されるだけでなく⼀一部の乗算
が加算に代わることで計算量量が削減される
28
数式の表記
𝑾a
_
:𝑙層⽬目のバイナリ化された重み
𝑾 _
:𝑙層⽬目の浮動⼩小数点重み (通常の重み)
𝒃 _
:𝑙層⽬目の浮動⼩小数点バイアス
𝐸 :損失関数
𝑎 _
:𝑙層⽬目の活性
29
BinaryConnectの学習
30
①順伝播
各層の順伝播時にバイナリ化した
重み𝑾a
(_)
を使⽤用
𝑾a
_
= binarize 𝑾 _
𝒂 _h! = 𝑓 𝑾a
_
	
   𝒉 _ + 𝒃 _ 	
  
元の重み𝑾 _ も保持
𝑾(_)
𝑾a
(_)
𝒃(_)
順伝播
BinaryConnectの学習
31
②逆伝播
バイナリ化した重みに対する勾配
j𝑬
j𝑾k
l とバイアス勾配
j𝑬
j𝒃 l を計算
𝑾(_)
𝑾a
(_)
𝒃(_)
𝜕𝑬
𝜕𝑾a
_
𝜕𝑬
𝜕𝒃 _
順伝播
逆伝播
BinaryConnectの学習
32
③更更新
実数重みをバイナリ勾配で更更新
𝑾(_) = clip(𝑾 _ − 𝜂
𝜕𝑬
𝜕𝑾a
_
)
𝒃(_) = 𝒃(_) − 𝜂
𝜕𝑬
𝜕𝒃 _
クリッピング ([-­‐‑1,	
  1]に収める)	
  に
よって、実数重みの発散を防ぐ
→学習⾃自体は結局実数で⾏行行う
𝑾(_)
𝑾a
(_)
𝒃(_)
𝜕𝑬
𝜕𝑾a
_
𝜕𝑬
𝜕𝒃 _
順伝播
逆伝播
バイナリ化の正則化効果
33
p 正則化:重み⾏行行列列の表現⼒力力を落落とし、過学習を
防ぐこと
Ø 例例:DropConnect [Wan+,  2013]
Ø 重み⾏行行列列の各要素の⼤大きさの情報を捨てるバイナリ
化は、正則化の⼀一種と考えることができる
p 実際、今回の実験では正則化なしの場合よ
りかえって良良い正解率率率を得た
データセット
34
p Permutation-‐‑‒invariant  MNIST
Ø28x28のグレースケール⼿手書き数字、10クラス
Ø訓練60000枚、テスト10000枚
Ø回転、拡⼤大縮⼩小など、事前の画像処理理を禁⽌止
p CIFAR-‐‑‒10
Ø32×32のカラー画像、10クラス
Ø訓練50000枚、テスト10000枚
p SVHN
Ø32x32のカラー数字、10クラス
Ø訓練604000枚、テスト26000枚
実験
p ネットワークの構成
ØMNIST:784-‐‑‒1024-‐‑‒1024-‐‑‒1024-‐‑‒SVM
ØCIFAR-‐‑‒10: 畳み込み3層+全結合1層のCNN+SVM      
(256C3-‐‑‒MP2-‐‑‒512C3-‐‑‒MP2-‐‑‒1024C3-‐‑‒MP2-‐‑‒2048-‐‑‒SVM)
ØSVHN:上と同様(ただしユニット数が半分)
Ø各層にBatchNormalizationを挟んでる
p ⽐比較対象
ØMNIST:浮動⼩小数点のNNと50%Droput
ØCIFAR-‐‑‒10・SVHN:浮動⼩小数点のNNのみ
35
実験結果
36
浮動⼩小数点のNNとほぼ同等の精度度を達成
MNIST CIFAR-‐‑‒10 SVHN
浮動⼩小数点
(正則化なし)
1.30% 10.64% 2.44%
提案⼿手法 1.29% 9.90% 2.30%
浮動⼩小数点
(50%  Dropout)
1.01% − −
重みをバイナリ化しても精度度へのほぼ影響なし!
バイナリNNの種類
重みの
バイナリ化
活性の
バイナリ化
⼤大規模な
データセット
への対応
Binary	
  
Connect
⚪ -­‐ -­‐
Binarized
Neural	
  
Network
⚪ ⚪ -­‐
XNOR-­‐Net ⚪
⚪ ⚪
37
Binarized
Neural  Network
M.  Courbariaux et  al.  “Binarized Neural  Networks:  
Training  Deep  Neural  Networks  with  Weights  and  
Activations  Constrained  to  +1  or  -‐‑‒1”.  (2016):    12  
June  2017.
38
BinaryConnect 概要(再掲)
39
𝑥!
−1.5
3.1
2.2
ℎ!
ℎ"
ℎ#
ℎ2
𝑧#
𝑧!
𝑧"
𝑥!
𝑥"
𝑥#
𝑥2
入
力
𝑧#
𝑧!
𝑧"
出
力
×−1
×+1
×+1
ℎ" = 𝑎 +1×3.1 + −1 ×1.5 + 1×2.2 	
  
重みのみを+1/-‐‑‒1の2通りにバイナリ化
Binarized Neural  Network
40
𝑥!
−1
1
1
ℎ!
ℎ"
ℎ#
ℎ2
𝑧#
𝑧!
𝑧"
𝑥!
𝑥"
𝑥#
𝑥2
入
力
𝑧#
𝑧!
𝑧"
出
力
×−1
×+1
×+1
h" = 𝑠𝑖𝑔𝑛 +1 − (−1) + 1 = 𝑠𝑖𝑔𝑛 3 = 1
重み・活性の両⽅方をバイナリ化
概要
p 学習と推論論の両⽅方で、重みと活性両⽅方を
バイナリ化
Ø BinaryConnectでは重みのみのバイナリ化だった
Ø 活性をバイナリ化することで⼤大半の演算をビット
演算に置き換え、省省エネルギーなNNの可能性を
⽰示した
p 重みと活性の両⽅方をバイナリ化しつつ、
浮動⼩小数点NNとほぼ同等の精度度を達成
41
活性をバイナリ化する
42
p バイナリ化すると、勾配情報が消えてしまう
q = Sign 𝑟 , 𝑔~ = 0
p アイデア:hard-‐‑‒tanhを通した勾配を使う
Htanh 𝑥 = max −1, min 1, 𝑥 ,	
  	
  	
  	
   𝑔€ = 1 € •!
学習の流流れ
1.  順伝播
43
重み⾏行行列列をバイナリ化する
バイナリ活性及び重みを乗算
Shift-‐‑‒based BNを実⾏行行 (後述)
活性をバイナリ化
学習の流流れ
2.  逆伝播
44
活性の勾配を計算
ポイント:⼩小さい勾配のみ伝播
Shift-‐‑‒based  BNの逆伝播
重み⾏行行列列の勾配を計算
学習の流流れ
3.  パラメータの更更新
45
BNのパラメタを更更新
重みを更更新して[-‐‑‒1,1]に
クリップする
(BinaryConnectと同様)
Shift based  Batch  Normalization
BinaryConnectでは浮動⼩小数点上で通常のBNを
⾏行行っていたが、BN⾃自体の乗算 (e.g.  ミニバッチ
分散の計算)  が遅かった
→分散の計算と正規化をシフト演算に置き換え
46
乗算→シフト演算
活性のバイナリ化の効果
⼊入⼒力力と重みの演算の組み合わせが4通りに減る
47
⼀一般的な加減算が必要
−1.5
3.1
2.2
ℎ"
ℎ#
ℎ2
×−1
×1
×1
−1
1
1
ℎ"
ℎ#
ℎ2
×−1
×1
×1
活性の
バイナリ化
4通りの組み合わせ演算
でよい
バイナリ乗算とXNORの関係
48
⼊入⼒力力 重み 出⼒力力
1 1 1
1 -‐‑‒1 -‐‑‒1
-‐‑‒1 1 -‐‑‒1
-‐‑‒1 -‐‑‒1 1
バイナリ演算の
全パターン
A B Out
1 1 1
1 0 0
0 1 0
0 0 1
排他的論論理理和の
否定 XNOR
バイナリ乗算とXNORの関係
49
⼊入⼒力力 重み 出⼒力力
1 1 1
1 -‐‑‒1 -‐‑‒1
-‐‑‒1 1 -‐‑‒1
-‐‑‒1 -‐‑‒1 1
バイナリ演算の
全パターン
バイナリ乗算はXNORで置き換えることができる
A B Out
1 1 1
1 0 0
0 1 0
0 0 1
排他的論論理理和の
否定 XNOR
積和演算の並列列化
1 0 1 0 1 1 0 0
50
1 0 1 1 0 0 0 1
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
1 1 1 0 0 0 1 0
XNOR
bitcount
4
⼊入⼒力力 重み
⽴立立っているbitを
数える
積和計算が並列列のビット演算に置き換えられる
BNNの推論論
p 1層⽬目のみバイナリ
ではなく、8bit固定
少数点を⽤用いる
p 2層⽬目以降降はXNOR
演算とShift  based  
BNを繰り返す
51
実験
p データセット
Ø MNIST,  CIFAR-‐‑‒10,  SVHN
p ネットワークの構成
Ø MNIST:4096ユニット隠れ層3段の全結合-‐‑‒SVM
Ø CIFAR-‐‑‒10:畳み込み3層-‐‑‒全結合層-‐‑‒SVM
Ø SVHN:上と同様(ただしユニット数が半分)
p ⽐比較対象
Ø Maxout Networks  [GoodFellow+  2013]
(通常のNN)
52
実験結果
53
浮動⼩小数点のNNとほぼ同等の精度度を達成
MNIST SVHN CIFAR-‐‑‒10
提案⼿手法 0.96% 2.8% 11.40%
Maxout
Networks 0.94% 2.47% 11.68%
BinaryConnect 1.29 ± 0.08% 2.30% 9.90%
重み・活性の両⽅方をバイナリ化しても精度度を維持できた
バイナリNNの種類
重みの
バイナリ化
活性の
バイナリ化
⼤大規模な
データセット
への対応
Binary	
  
Connect
⚪ -­‐ -­‐
Binarized
Neural	
  
Network
⚪ ⚪ -­‐
XNOR-­‐Net ⚪
⚪ ⚪
54
XNOR-‐‑‒Net
M.  Rastegari,  V.  Ordonez,  J.  Redmon,  &  A.  Farhadi.  (2016,  
October).  “Xnor-‐‑‒net:  Imagenet classification  using  binary  
convolutional  neural  networks”.  In European  Conference  on  
Computer  Vision (pp.  525-‐‑‒542).
55
Binarized  Neural  Network  (再掲)
56
𝑥!
−1
1
1
ℎ!
ℎ"
ℎ#
ℎ2
𝑧#
𝑧!
𝑧"
𝑥!
𝑥"
𝑥#
𝑥2
入
力
𝑧#
𝑧!
𝑧"
出
力
×−1
×+1
×+1
𝑡" = 𝑠𝑖𝑔𝑛 +1 − (−1) + 1 = 𝑠𝑖𝑔𝑛 3 = 1
重み・活性の両⽅方をバイナリ化
XNOR-‐‑‒Net
⼤大きなネットワークをバイナリ化したい
57
概要
p BNNは、重みと活性の同時バイナリ化を達成
したものの、その性能検証は⼩小規模データ
セット (~∼10クラス)  に留留まっていた
p バイナリ化の仮定を緩和することによって、
バイナリ化の利利点を⽣生かしつつ⼤大規模データ
セットの性能を確保
→ImageNetのtop-‐‑‒5正解率率率で69.2% (⾼高くはない…)
58
アイデア:バイナリ化の緩和
59
1.5 2.3 2.4
-‐‑‒0.5 -‐‑‒1.4 3.0
2.4 2.0 -‐‑‒1.0
0 0 0.5
0 0.5 0
0.5 0 0
∗ = 1.7
1 1 1
-‐‑‒1 -‐‑‒1 1
1 1 -‐‑‒1
0 0 1
0 1 0
1 0 0
⊕ = 1
1 1 1
-‐‑‒1 -‐‑‒1 1
1 1 -‐‑‒1
0 0 1
0 1 0
1 0 0
⊕ = 1.8× 1.8
実数
畳み込み
バイナリ
畳み込み
提案⼿手法
畳み込みの近似
⽬目標:バイナリ化された重みを維持しつつ、その計
算結果をもとの畳み込みに近づけたい
𝑰	
   ∗ 𝑾	
   ≈ 𝑰	
   ⊕ 𝑩	
   	
   𝛼
最適化問題を解いて、元の畳み込みの計算結果に最
も近づくような係数𝛼∗
を求める
𝛼∗
= argmin‹ ∥ 𝑾	
   − 𝛼𝑩 ∥#
=
1
𝑛
∥ 𝑾 ∥!
わずかな乗算の増加と引き換えに量量⼦子化誤差を軽減
60
画像 重み バイナリ重み
スケーリング係数
XNOR演算に対する畳み込みの近似
前⾴頁では重み⾏行行列列のみをバイナリ化したが、
同様の考え⽅方により重みと活性を同時に
バイナリ化した場合にも対応できる:
𝑰	
   ∗ 𝑾	
   ≈ sign 𝑰 ⊛ sign 𝑾 ⊙ 𝑲𝛼
𝑠. 𝑡. 	
   𝑲 =
∑ 𝑰:,:,’
𝑐
	
  ∗ 𝒌
畳み込み演算が要るが、もとの畳み込み	
   𝑰	
   ∗ 𝑾	
  
と⽐比べると計算回数は⾮非常に少ない
61
その他の⼯工夫
p レイヤの順番の⼊入れ替え
量量⼦子化誤差の発⽣生条件を整理理し、各処理理の順番を
⼊入れ替え
p 学習はBinaryConnectとほぼ同様なので割愛
62
p データセット
Ø ImageNet (1000クラス分類、訓練画像約120万枚)
p ネットワークの構成 (AlexNetベース)
Ø BN-‐‑‒AlexNet (7層CNN,  BNを追加)
Ø XNOR-‐‑‒Net  (重み・活性のバイナリ化+近似)
p ⽐比較対象
Ø BinaryConnect
Ø BNN  (Binarized  Neural  Network)
実験条件
63
Top-‐‑‒1  
正解率率率
Top-‐‑‒5
正解率率率
畳み込みの
計算速度度
(理理想値)
AlexNet 56.6% 80.2% 1倍
XNOR-‐‑‒Net 44.2% 69.2% 最大58倍 (※)
BinaryConnect 35.4% 61.0%
BNN 27.9% 50.4%
XNOR-‐‑‒Net  :  実験結果
64
重みと活性を両⽅方バイナリ化した場合も、ある程度度の性能を維持
※元が浮動⼩小数点
だと更更に速いはず
バイナリNNの数々:まとめ
p BinaryConnect:  重みのみをバイナリ化した
NNの効率率率的な学習を達成
p BNN:  重み及び活性の同時バイナリ化&XNOR-‐‑‒
bitcountを⽤用いた回路路の効率率率化
p XNOR-‐‑‒Net:  近似計算を導⼊入して、良良い性能-‐‑‒
速度度トレードオフを達成
→実験結果そのものは決して良良い結果とは⾔言えないが
(ImageNetの現⾏行行の最⾼高Top-‐‑‒5正解率率率は97%近く)、
実⽤用的なバイナリNNの活路路を開いた
65
⽬目次
1. バイナリ化⼊入⾨門
2. 表現ビット数の限界に迫る:バイナリNNの数々
Ø BinaryConnect
Ø Binarized Neural  Network
Ø XNOR-‐‑‒Net
3. BNNの性能限界を探る:FPGAの視点から
Ø ハードウェアの性能を引き出す
Ø FINN:  Fast,  Scalable  and  Binarized
4. BNNから⾒見見るハードウェアの未来
66
計算機のさまざまなボトルネック
p メモリアクセス(通信時間)
Øチップ内のメモリ(数サイクル)
Øチップ外のメモリ(数百サイクル)
p 演算器の構造
Ø演算器の数(並列列の限界)
Ø演算の遅延(処理理にかかるクロック数)
67
バイナリ化によるメモリ節約と演算の効率率率化
68
1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0
浮動⼩小数点 32  bit
1
バイナリ 1 bit
メモリの節約
XNOR
bitcount
𝑎 +1×3.1 + −1 ×1.5 + 1×2.2
演算の効率率率化
XNOR-‐‑‒bitcount
乗算・加減算
もはや⼤大量量の加算器・乗算器は必要ない
69
p ⼀一⽅方で、⼤大量量のbit演算をCPUで⾏行行うには
若若⼲干の無駄がある
→⼀一般のCPUの演算器の構造・メモリアクセスは
⼤大量量のビット演算に必ずしも最適でない
p 必要な演算器を必要な数だけ⽤用意できないか?
→FPGAだ!
FPGA
Field  (現場で)
Programmable  (書き換え可能な)
Gate  (論論理理ゲートの)
Array  (集合体)
70
ホビーボードPYNQ-­‐Z1	
   スパコンのデータ転送システム
https://www.ccs.tsukuba.ac.jp/pr/interview/reports-­‐vol2-­‐2/
FPGAの構成要素
71
p LUTは⾮非常に簡単な演算器
p FPGAは⼩小さなLUTの集まり
p LUTを組み合わせて、
任意の演算器を構成可能
p 演算器を組み合わせて、任意
の回路路を構成
どうやって必要な演算器を⽤用意するか?
LUTLUTLUT
LUT
LUT LUT LUT
LUTLUT
FPGA上ならばビット演算器をたくさん実装できる
回路路の設計⽅方法
72
1. 元々のプログラムの記述
2. 仕様決め
Ø タイムチャート、状態遷移図、要求性能、回路路
内部のブロック図
3. 動作モデル作成
4. クロックを考えながらスケジューリング
5. 回路路記述
森岡澄夫,	
  “HDLによる高性能ディジタル回路設計”,	
  CQ出版
回路路記述のコスト
p 回路路の記述には、ソフトに⽐比べて余分な
コストがかかる
Ø 記述量量の多さ
Ø 回路路上の時間の流流れの考慮
73
ソフトとハードの記述におけるギャップ (1)
74
記述量量が多い
Y	
  =	
  X.dot(W)+B
Python:1行
C言語:15行
Verilog:50行以上
※イメージ
時間軸⽅方向の流流れがある
75
クロック
ソフトとハードの記述におけるギャップ (2)
演算器 A 演算器 B 演算器 C
76
クロック
ソフトとハードの記述におけるギャップ (2)
演算器 A 演算器 B 演算器 C
時間軸⽅方向の流流れがある
77
クロック
ソフトとハードの記述におけるギャップ (2)
演算器 A 演算器 B 演算器 C
時間軸⽅方向の流流れがある
78
クロック
ソフトとハードの記述におけるギャップ (2)
演算器 A 演算器 B 演算器 C
時間軸⽅方向の流流れがある
複数の回路路の同時に起きる動作パターンを考慮することは難しい
79
そこで高位合成
⾼高位合成とは
p ⾼高位合成
→C⾔言語などの抽象度度の⾼高い記述からハード
ウェア記述⾔言語に変換する技術
p 出⼒力力回路路の最適化
Ø プログラムに指⽰示⼦子を書き加える
Ø 並列列化度度合い・変数のビット幅等を操作
80
1. 元々のプログラムの記述
2. 仕様決め
Ø タイムチャート、状態遷移図、要求性能、回路路
内部のブロック図
3. 動作モデル作成
4. クロックを考えながらスケジューリング
5. 回路路記述
⾼高位合成によって⾃自動化される部分
81
Binarized Neural  Network(再掲)
82
𝑥!
−1
1
1
ℎ!
ℎ"
ℎ#
ℎ2
𝑧#
𝑧!
𝑧"
𝑥!
𝑥"
𝑥#
𝑥2
入
力
𝑧#
𝑧!
𝑧"
出
力
×−1
×+1
×+1
ℎ" = 𝑠𝑖𝑔𝑛 +1 − (−1) + 1 = 𝑠𝑖𝑔𝑛 3 = 1
重み・活性の両⽅方をバイナリ化
⾼高位合成を⽤用いてFPGA上で最適化されたBNNを作る
FINN
Y.  Umuroglu,  N.  J.    Fraser,  G.  Gambardella,  M.  Blott,  P.  Leong,  M.  Jahre,  &  K.  
Vissers,  (2017,  February).  “Finn:  A  framework  for  fast,  scalable  binarized
neural  network  inference”.  In Proceedings  of  the  2017  ACM/SIGDA  
International  Symposium  on  Field-‐‑‒Programmable  Gate  Arrays (pp.  65-‐‑‒74).  
ACM.
83
FINN
p 学習済みBNNモデルに適した回路路を出⼒力力
Ø BNNモデルを⾼高位合成⽤用C++に変換
Ø ⾼高位合成によりC++から半⾃自動で回路路を出⼒力力
p 各種最適化による⾼高速化
Ø 積和演算の並列列化
Ø 閾値処理理によるBatch  Normalizationの代⽤用
p 要求速度度に対応できるフレームワーク
Ø 要求速度度から適切切な並列列度度を決定
Ø BNNでの各演算はライブラリでカバー
84
効率率率的な回路路の実現へ
p チップ内のメモリに重みを全て格納
Ø チップ外へのメモリアクセスは遅いため⾏行行わない
p 各層ごとに専⽤用の演算回路路
Ø 必要な計算量量に合わせて演算器の数を決定
Ø 結果、無駄のない回路路を構成
85
1層
パラメーター
2層
パラメーター
3層
パラメーター
メインメモリ画像 結果 …312021 …
ネットワーク構成の決定
p 重み及び活性の同時バイナリ化
Ø全ての⼊入⼒力力活性・重み・出⼒力力活性を+1/-‐‑‒1にバイナリ化
する
p 活性化関数の前にBatch  Normalization
p 活性化関数は
sign 𝑥 = ?
1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   𝑥 ≥ 0,
−1	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  それ以外.
86
Matrix  Vector  Threshold  Unit
87
層ごとの演算を⾏行行う回路路
隠れユニットを⼀一度度にP個処理理できる
MVTUのProcessing  Element
88
活性への⼊入⼒力力を⼀一度度にS個処理理できる
活性と重みの積和演算をバイナリで⾏行行う回路路
累累算器
閾値メモリ
𝑾 𝒃メモリ
XNOR
bitcount + ≥
活性インデックス
出⼒力力
S
S
S
T T
T
1
PEの計算の流流れ
89
𝑾 𝒃メモリ
XNOR
bitcount
活性インデックス
S
S
S
累累算器
+
T
閾値メモリ
≥ 出⼒力力
T
1T
①バイナリの⼊入⼒力力活性
とバイナリの重みの
積和演算の⼀一部を
XNOR-‐‑‒bitcountに
よって計算
PEの計算の流流れ
90
𝑾 𝒃メモリ
XNOR
bitcount
活性インデックス
S
S
S
累累算器
+
T
閾値メモリ
≥ 出⼒力力
T
1T
①バイナリの⼊入⼒力力活性
とバイナリの重みの
積和演算の⼀一部を
XNOR-‐‑‒bitcountに
よって計算
②積和演算が全て終わる
まで累累積
PEの計算の流流れ
91
𝑾 𝒃メモリ
XNOR
bitcount
活性インデックス
S
S
S
累累算器
+
T
閾値メモリ
≥ 出⼒力力
T
1
①バイナリの⼊入⼒力力活性
とバイナリの重みの
積和演算の⼀一部を
XNOR-‐‑‒bitcountに
よって計算
②積和演算が全て終わる
まで累累積
③閾値と⽐比較することで
BNと活性化を代⽤用
T
ワークフロー
92
FINN シンセサイザー要求速度度
BNNの
トポロジー&
パラメーター
⾼高位合成可能な
BNNのC++記述
高位合成ツール
FIN
ハードウェア
ライブラリー
FPGA⽤用回路路 FPGA
※  緑:ソフトウェア ⻘青:処理理・実⾏行行
MVTUなど
実験
pデータセット
ØMNIST,  CIFAR-‐‑‒10,  SVHN
pネットワークの構成
MNIST
ØSFC:256ユニット隠れ層3段の全結合
ØLFC:1024ユニット隠れ層3段の全結合
CIFAR-‐‑‒10・SVHN
ØCNV:(畳み込み2層-‐‑‒プーリング層)×3段-‐‑‒
-‐‑‒512ユニット隠れ層2段-‐‑‒16bitの⼩小数10個
93
実験
p ハードウェア
Øボード:Xilinx  Zynq-‐‑‒7000  All  programmable  
SoC ZC706Evaluation  Kit
Øチップ:Zynq ZC706
-CPU   :ARM  Cortex  A-‐‑‒9  ×2
-FPGA:218600  LUTs,    545  BRAMs
94
⼆二つの実験シナリオ
⼆二つの実験シナリオでこの⼿手法の柔軟性を⽰示す
p max
Ø回路路リソースの範囲内で最⼤大限の速度度を要求
ØSFC-‐‑‒max・LFC-‐‑‒max・CNV-‐‑‒maxの3種類
p fix
Ø要求速度度は固定で 9000  (9k)  FPS
Ø「30  FPSで送られてくる640×480の映像を、
32×32に分割して処理理する」という想定
Ø
•2–×2—–×"–
"#×"#
= 9000 FPS
95
実験結果:誤答率率率
96
MNIST SVHN CIFAR-‐‑‒10
提案⼿手法 1.60%
[SFCmax]
	
  	
  5.10%
[CNVmax]
19.90%
[CNVmax]
BNN 0.96% 2.8% 11.40%
BinaryConnect 1.29 ± 0.08% 2.30% 9.90%
正規化の近似のためか、誤答率率率の上昇がみられる
実験結果:消費電⼒力力
97
組み込み機器において現実的な消費電⼒力力でNNを使⽤用可能
7.3 8.8
3.6
0.4 0.8 2.3
21.2
22.6
11.7
8.1 7.9 10
0
10
20
30
SFC-­‐max LFC-­‐max CNV-­‐max SFC-­‐fix LFC-­‐fix CNV-­‐fix
P(chip) P(Wall)[W]
Pchip:Chipの消費電⼒力力[W]
Pwall:ボード全体の消費電⼒力力[W]
ボードのアイドル状態での消費電⼒力力は約7  W
実験結果:速度度
98
速度度 :⼀一秒当たりの処理理枚数(FPS)を計測
要求速度度(max):可能な限り⾼高速に
要求速度度(fix)      :9000  (9k)  FPS
maxのシナリオにおいて1000万FPSを実現
12361
1561
21.9 12.2 12.2 11.6
0
5000
10000
15000
SFC-­‐max LFC-­‐max CNV-­‐max SFC-­‐fix LFC-­‐fix CNV-­‐fix
[k	
  FPS]
実験結果:リソース
99
リソース :FPGAの回路路構成要素LUTの数
要求速度度(max):可能な限り⾼高速に
要求速度度(fix)      :9000  (9k)  FPS
以上⼆二つのシナリオに問題なく対応できた
91131 82988
46253
5155 5636
26274
0
50000
100000
SFC-­‐max LFC-­‐max CNV-­‐max SFC-­‐fix LFC-­‐fix CNV-­‐fix
[個]
バイナリNNとハードの関係まとめ
p ⼤大量量のbit演算をCPUで⾏行行うには若若⼲干の無駄が
ある
p バイナリNNのFPGA実装は計算効率率率に優れる
p フレームワークと⾼高位合成を駆使すればFPGAの
利利便便性が⼤大幅に向上する
100
⽬目次
1. バイナリ化⼊入⾨門
2. 表現ビット数の限界に迫る:バイナリNNの数々
Ø BinaryConnect
Ø Binarized Neural  Network
Ø XNOR-‐‑‒Net
3. BNNの性能限界を探る:FPGAの視点から
Ø ハードウェアの性能を引き出す
Ø FINN:  Fast,  Scalable  and  Binarized
4. BNNから⾒見見るハードウェアの未来
101
バイナリ化の限界
p バイナリ化されたNNで現在達成されている
精度度では必ずしも実⽤用に耐えうる性能を
もつとは⾔言えない
p あくまで実験レベルの基礎的な研究にすぎ
ない
→それでも、バイナリNN専⽤用ハードウェアに
は可能性がある!
102
バイナリ化から考える組み込みの未来
バイナリ化やハードレベルの最適化を通じて、
p NNが組み込み機器に浸透する
p 組み込み機器のあり⽅方が変わる
p 我々の⽣生活が豊かになる
103
appendix
104
実験結果
105
乗算と加算の回路路⾯面積
106
Horowitz,	
  “Computing’s	
  Energy	
  Problem	
  (and	
  what	
  we	
  can	
  do	
  about	
  it)”,	
  ISSCC	
  2014
3495
137
0
500
1000
1500
2000
2500
3000
3500
32bit	
  乗算 32bit	
  加算
加算と乗算の回路路⾯面積[μm2]
乗算の約1/25
乗算と加算の回路路⾯面積
107
Horowitz,	
  “Computing’s	
  Energy	
  Problem	
  (and	
  what	
  we	
  can	
  do	
  about	
  it)”,	
  ISSCC	
  2014
3495
137
0
500
1000
1500
2000
2500
3000
3500
32bit	
  乗算 32bit	
  加算
乗算と加算の回路路⾯面積[μm2]
同じ面積で24個
多く実装できる※
※回路路によって多少異異なる

More Related Content

What's hot

CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
cvpaper. challenge
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
Jun Okumura
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
Hideki Tsunashima
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
Deep Learning JP
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
ぱんいち すみもと
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
MasanoriSuganuma
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
 
[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by Factorising[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by Factorising
Deep Learning JP
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
Deep Learning JP
 
Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)
yukihiro domae
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
 
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
Deep Learning JP
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
Yusuke Uchida
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
正志 坪坂
 

What's hot (20)

CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by Factorising[DL輪読会]Disentangling by Factorising
[DL輪読会]Disentangling by Factorising
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
 
Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 

Viewers also liked

Tensorflow on Android
Tensorflow on AndroidTensorflow on Android
Tensorflow on Android
Koan-Sin Tan
 
DeNAの機械学習・深層学習活用した 体験提供の挑戦
DeNAの機械学習・深層学習活用した体験提供の挑戦DeNAの機械学習・深層学習活用した体験提供の挑戦
DeNAの機械学習・深層学習活用した 体験提供の挑戦
Koichi Hamada
 
Deep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the BayDeep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the Bay
Adam Gibson
 
20170721 future of reactive architectures
20170721 future of reactive architectures20170721 future of reactive architectures
20170721 future of reactive architectures
Jamie Allen
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
 
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
Naoki Aoyama
 
iOSエンジニアのためのScala入門
iOSエンジニアのためのScala入門iOSエンジニアのためのScala入門
iOSエンジニアのためのScala入門
Masaya Dake
 
元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。
takako onoue
 
CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…Hiromu Yakura
 
Using Raspberry Pi GPU for DNN
Using Raspberry Pi GPU for DNNUsing Raspberry Pi GPU for DNN
Using Raspberry Pi GPU for DNN
notogawa
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
Mr. Vengineer
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
Seiya Tokui
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
 

Viewers also liked (13)

Tensorflow on Android
Tensorflow on AndroidTensorflow on Android
Tensorflow on Android
 
DeNAの機械学習・深層学習活用した 体験提供の挑戦
DeNAの機械学習・深層学習活用した体験提供の挑戦DeNAの機械学習・深層学習活用した体験提供の挑戦
DeNAの機械学習・深層学習活用した 体験提供の挑戦
 
Deep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the BayDeep Learning with GPUs in Production - AI By the Bay
Deep Learning with GPUs in Production - AI By the Bay
 
20170721 future of reactive architectures
20170721 future of reactive architectures20170721 future of reactive architectures
20170721 future of reactive architectures
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
 
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
 
iOSエンジニアのためのScala入門
iOSエンジニアのためのScala入門iOSエンジニアのためのScala入門
iOSエンジニアのためのScala入門
 
元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。
 
CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…
 
Using Raspberry Pi GPU for DNN
Using Raspberry Pi GPU for DNNUsing Raspberry Pi GPU for DNN
Using Raspberry Pi GPU for DNN
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 

Similar to バイナリニューラルネットとハードウェアの関係

スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
Shogo Muramatsu
 
20170408cvsaisentan6 2 4.3-4.5
20170408cvsaisentan6 2 4.3-4.520170408cvsaisentan6 2 4.3-4.5
20170408cvsaisentan6 2 4.3-4.5
Takuya Minagawa
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Masaya Kaneko
 
ベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-oldベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-old
Naoki Hayashi
 
PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」
Keisuke Sugawara
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
Seiya Tokui
 
グラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdf
グラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdfグラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdf
グラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdf
ToshihiroIto4
 
The review of 'Explaining nonlinear classification decisions with deep Taylor...
The review of 'Explaining nonlinear classification decisions with deep Taylor...The review of 'Explaining nonlinear classification decisions with deep Taylor...
The review of 'Explaining nonlinear classification decisions with deep Taylor...
tetsuo ishigaki
 
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
TakaakiYonekura
 
全体セミナー20180124 final
全体セミナー20180124 final全体セミナー20180124 final
全体セミナー20180124 final
Jiro Nishitoba
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
Yuki Shimada
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
Deep Learning JP
 
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...
Kotaro Yamazaki
 
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
Naoya Chiba
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
 
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
yukihiro domae
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Yuya Unno
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
sleepy_yoshi
 
SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習
SSII
 
PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装
Shohei Taniguchi
 

Similar to バイナリニューラルネットとハードウェアの関係 (20)

スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
20170408cvsaisentan6 2 4.3-4.5
20170408cvsaisentan6 2 4.3-4.520170408cvsaisentan6 2 4.3-4.5
20170408cvsaisentan6 2 4.3-4.5
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
 
ベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-oldベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-old
 
PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」PRML第9章「混合モデルとEM」
PRML第9章「混合モデルとEM」
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
グラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdf
グラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdfグラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdf
グラフデータベースにおけるWorst-case optimal joinの最適化_DEIM2024.pdf
 
The review of 'Explaining nonlinear classification decisions with deep Taylor...
The review of 'Explaining nonlinear classification decisions with deep Taylor...The review of 'Explaining nonlinear classification decisions with deep Taylor...
The review of 'Explaining nonlinear classification decisions with deep Taylor...
 
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
第4回数理モデル勉強会(日本植物学会第84回大会関連集会)
 
全体セミナー20180124 final
全体セミナー20180124 final全体セミナー20180124 final
全体セミナー20180124 final
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
 
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...Paper Introduction "RankCompete:Simultaneous ranking and clustering of info...
Paper Introduction "RankCompete: Simultaneous ranking and clustering of info...
 
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recog...
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習
 
PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装PyTorch, PixyzによるGenerative Query Networkの実装
PyTorch, PixyzによるGenerative Query Networkの実装
 

バイナリニューラルネットとハードウェアの関係