nn系学習済みモデルをfpgaに実装してみた
TRANSCRIPT
NN系の学習済みモデルをFPGAへ実装してみた
機械学習の勉強会(仮)6th-Apr-2017
Michihiro Imaoka今岡 通博
https://www.facebook.com/[email protected],@imaoca
http://www.itmedia.co.jp/author/208685/
今岡 通博 imaoka michihiro@imaoca今岡⼯学事務所 個⼈事業主代表⼗数年前は現役のプログラマーでした。当時は呼吸をするようにコードを書いていました。FPGAのコーディングもSMDの半⽥付けも得意でした。最近は⽼眼も進み原稿書きへ転進を図っている最中です。物書きで凌げるか暗中模索の毎⽇です。
愛媛県松⼭市在住
・最近は原稿を書いていることが多い・セキュリティ・キャンプの講師とか・ハードウエアスタートアップ⽀援
背景
• AI FPGA神 Intel • 型 限界• 推論 並列化 高速化 余地 • 低消費電力/高速化• 学習済 化 • AI 化 組込 家電
概要
5X5の⼿書き⽂字を認識する学習済みモデルのFPGA実装を試みました。もともとPythonで書かれたサンプルを参考にしています。先ずはPythonからCに書き換えて、Cソースコード上でFPGAに実装しやすいよう最適化します。並列化箇所を⾒極め推論エンジンをハードウエア記述⾔語のひとつVerilog-HDLへ移植します。学習はCのコードで⾏い、学習済みモデルをVerilog-HDLで吐き出しFPGAに実装します。
環境
• ubutu Sserver(Azure Iass )• Python V2.7.1 with pandas• gcc• Quartus II 13.0sp1 Web Edition• Verilog-HDL• Intel(Altera) Cyclone IV
手順■5X5の⼿書き⽂字を認識する学習済みモデルを⽤意。 もともとPythonで書かれたサンプルを参考にしました。「Neural Networkを平易に解説してみる」http://enakai00.hatenablog.com/entry/20150108/1420719651
■Cソースコード上でFPGAに実装しやすいよう最適化します。 ・1,-1を1,0に変換 ・量⼦化調整(32/64bit整数は必要ない) ・乗算を省きます(乗算はハードウエアには負担)
■並列化箇所を⾒極め推論エンジンをVerilog-HDLへ移植
学習はCのコードで⾏い、学習済みモデルをVerilog-HDLで吐き出します
ホップフィールド・ネットワーク (英: Hopfield network) は、ニューラルネットワークの⼀モデルである。アメリカ合衆国の物理学者であるジョン・ホップフィールド (J.J. Hopfield) が提唱した[1]。ユニット(ニューロン)間に対称的な相互作⽤がある⾮同期型ネットワークであり、⾃然な操作によってネットワークのエネルギーが極⼩値をとる。元はスピンの安定条件をもとめるモデルとして発想されたものであったが、ネットワークによる連想記憶のモデルとして歓迎され、ニューラルネットブームの⽕付け役の⼀つとなり、また後のボルツマンマシンの元ともなった。これは統計的な変動をもちいて、エネルギーが極⼩値ではなく最⼩値をとることを⽬指すモデルである。出典 https://ja.wikipedia.org/wiki/
構成
学習 gcc
学習済
推論 Verilog-HDL
Quotus II FPGA
教師
imaoca@ubuntServer:~/neural$ ./a.outlearing
#### # # # # # # ###
##### # ## ####
####### ####
# ### ### # ## ## #
example
### # # # ### ###
recognition
#### # # # # # # ###imaoca@ubuntServer:~/neural$
Quartus II 64-Bit Version 13.0.1 Build 232 06/12/2013 SP 1 SJ Web EditionFamily Cyclone IV E
Device EP4CE6E22C8
### # # # ### ###
0111000011100101001001110
#### # # # # # # ###
0111010010100101001001111
0
1
234
5 6
7
推論 実行時間
• 5X5の⽂字認識をFPGAで実装• 推論エンジンを実装
–現在はマニュアル)• 学習済みモデルのHDLは⾃動⽣成
–Neuro Chip Compiler• ロジックアナライザーで計算スピードを
実測 10nS• Cyclone IVの24%のリソースを消費• 25クロックを要する実装では7%
–これは6502と同じHW規模
告知
• NN系機械学習 情報交換• FPGA 主宰
– https://fpgastartup.connpass.com/event/• TensorFlow 学習済 実装(todo)• FPGA 実装 的 探
• 化 可能性 探 頂
• 4月18日 在京
【ご清聴ありがとうございました】
NN系の学習済みモデルをFPGAへ実装してみた
1st-Apr-2017Michihiro Imaoka
今岡 通博
https://www.facebook.com/[email protected],@imaoca
http://www.itmedia.co.jp/author/208685/