ニューラルネットの1bit化 / 1bit-neural-network
by
shun74
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ニューラルネットの1bit化 B4 shun sato
Slide 2
Slide 2 text
本日のお話 ● ニューラルネットとは ● ニューラルネットの1bit化 ● 1bit化のメリット ● FPGAによる爆速化
Slide 3
Slide 3 text
ニューラルネットとは ● 人間のシナプス結合を模倣 ● 掛け算足し算をたくさんやる ● 出力と答えの誤差を微分して学習 ニューラルネット内の数値表現 ● 入力 :float32, int32, uint8… ● 重み :float32 ● バイアス :float32 ● 出力・答え :float32, int32, uint8… シナプス結合 ニューラルネット(多層パーセプトロン)
Slide 4
Slide 4 text
ニューラルネットの1bit化 内部の表現をいろいろと1bit化する 式: ⇢⇢⇢ 1bit化 重み・活性化関数・正則化などが1bit化可能 ※ここでいう1bitとは{-1, 1}のことです
Slide 5
Slide 5 text
1bit化のメリット ● メモリ大幅削減! float32 ⇢ 1bitでメモリ消費が1/32になる ● 計算の単純化 ⇢ 高速化・省電力 ● FPGAによる爆速化 (次のスライド) 1bitの掛け算はXNORと同じ ⇢ ALUを使わなくても計算可能 足し算もbit countで高速に処理
Slide 6
Slide 6 text
FPGAによる爆速化 FPGA = Field Programmable Gate Array (その場で書き換え可能な集積論理回路) ⇠こういうやつ 高位合成でプログラムするのが一般的 HDLでもプログラム可能 LUT(Look up table)を使った高速な計算が可能 浮動小数点演算 :速くて40クロックぐらい LUT+FFによる演算 :数クロック LUTで数値を取り出してFFに入力
Slide 7
Slide 7 text
FPGAの実験 ⇠ FPGAのみの実験結果 ネットワークの大きさはSFC
Slide 8
Slide 8 text
デメリットもあるよね? ● 普通に1bit化すると大幅な精度低下 ● ニューラルネットの1bit化について様々な研究が存在 ● Binary Connect:BC (CVPR 2015) https://arxiv.org/abs/1511.00363 NNの重みを1bit化した初のモデル ● Binarized Neural Network:BNN (NIPS 2016) https://arxiv.org/abs/1602.02830 BCの活性化関数を1bit化 計算のボトルネックになるBatchNormalizationをシフト演算化 ● XNOR-Net (CVPR 2016) https://arxiv.org/abs/1603.05279 BNNの演算に係数をつけて大規模データセットにも対応 畳み込みブロックの順序を変えて精度を向上
Slide 9
Slide 9 text
参考文献 ● ニューラルネット https://sinhrks.hatenablog.com/entry/2014/11/30/192940 ● 1bit化とハードウェア https://www.slideshare.net/kentotajiri/ss-77136469 ● 演算のクロック数 http://rakasaka.fc2web.com/delphi/numop.html ● FPGAの大手企業 Xilinx https://xilinx.com/