VHD L
による学習可能 な階層型ニュー ラルネ ッ トワー クのハー ドウェア実装
山森 一人
1 )
・石 田二郎2)
・吉原 郁 夫3)
Ha r dwa r el mpl e me nt a t i ono f
Tr a i na bl eMul t i ‑ La ye rNe ur alNe t wor kbyVHDL
Kuni hi t oYAMAMOR Il ) , J i r oI SHI DA 2) ,I kuoYOSHI HARA 3 )
Abst r act
Ne u ra lne t wo r k ha sbe e n us e d ma ny a p pl i c a t i o ns ,s uc h a spa t t e m o ri ma ge r e c og nl t l O n,r o bo tc o n t r ol ,o pt l mi z a t i o npr o bl e m a nds oo n.Ho we ve r ,r e a l ‑ wo r l d p r o bl e msne e dl a r g es c a l ene u r a lne t wo r ks ,a nd也e yl e a de no m o usc o mput a t i o n・ t i me f o rt r a i nmgpr oc e s sofne u r a lne t wo r
k.Tor e du c et he. C O mPu t a t i o n、 t i me ,Wet r yt o i mpl e me n tne u r a lne t wo r k i n aFPGA de vi c e .I nt hi spa pe r
,wedi s c us so n‑ t he pe r f o r ma nc eofha r d wa r ene u r a lne t wo r kf ro m t heyi e wpol ntOft hepr o c e s s l ngS P e e d a ndt hes c a l eoft hec i r c ui
t.Thet r a i na bl eha r d wa r ene u r a lne t wo r kus e d11 7, 8 76c e l l s i
nFPGA, a ndi tc o ul dt r a i nt hef o urt r a i nmgpa t t e r nSi n8 00 nso nt heXORpr o bl e m.
Ke yWo r ds :
Ne u r a l ne t wo r k, VHDL, Ha r d wa r ei mpl e me nt a t i o n, Tr a i nmg 1 .
は じめにニ ュー ラルネ ッ トワー ク
( Ne u r a l Ne t wo r k )
は,パ ター ン認識 , ロボ ッ ト制御 ,最適化 問題,画像認 識 な ど様 々な分野に応用 され てい る. しか し,大 規模 なニュー ラルネ ッ トワー クでは,学習に膨大 な計算時間が必要 となる問題 が指摘 され ている.計算時間を短縮す るため,演算 を並列処理で行 う 方法や,ニュー ラルネ ッ トワー クをハー ドウェア 上 に直接実装す る方法が挙 げ られ る
[ 1 日2] .
しか し, 並列処理では複数の計算機 を組み合わせ るため, マ シンコス トや プロセ ッサ間の通信時にオーバー‑ ツ ドが生 じる点に問題 がある.
1 ) 工学部情報 システム工学科助教授
2) 工学部情報 システム工学科学部学生 ( 現職,株式会社テ クシア)
3) 工学部情報 システム工学科教授
本研究では,ハー ドウェア上に学習可能なニュ ー ラルネ ッ トワークを実装 し,処理性能 と回路規 模 を明 らかにす ることを 目的 とす る.
2.
階層型ニュー ラルネ ッ トワーク2.1 ニュー ロン
ニュー ラルネ ッ トワー クとは,多数 のニュー ロン と呼ばれ る神経細胞が組み合わ さって構成 されて い る生物 の脳神経系の機能 をモデル化 した もので ある.生物のニュー ロンが持つ情報伝達の特性 を モデル化 した ものを図 1に示す.図 1で,
Xj
(
j‑1,‑,n)をニュー ロンへの入力信号,Wj ( j‑1 , ‑n)
をニュー ロン間の結合係数, Sを入 力信号 と結合係数の加重和,ニュー ロンの出力 を Zと表す とき,ニュー ロンの入出力関係 は(1)式, 及び(2 )
式で表 され る.3 5 6
宮 崎 大 学 工 学 部 紀 要 第3 3
号図
1
ニ ュー ロンモデル図
2
ニ ュー ラルネ ッ トワー クの構造J 7
S‑ ∑ WjXj , ノ = 1
Z‑∫( ∫)‑
1 +e ‑S
( 1 )
( 2)
2. 2
階層型ニュー ラルネ ッ トワー クの構造 階層型 ニ ュー ラルネ ッ トワー クは,図2
に示す よ うにい くつ か のニ ュー ロンが入力層 か ら出力層 に向か って順 方 向に結合 して い るネ ッ トワー クで あ る.階層型 ニ ュー ラル ネ ッ トワー クは入力層 , 中間層 , 出力層 の3
層 を もち,各層 のニ ュー ロン 数及 び 中間層数 は任 意 で あ る.各層 間のニ ュー ロ ンは全結合 してお り,層 内の ニ ュー ロン間 には結 合 はない.2. 3
誤差逆伝搬法階層型 ニ ュー ラルネ ッ トワー クの代表的 な学習 法 として誤差逆伝搬法
( Ba c kp r o p a g a t i o n B
p法)があ る
[ 3 ] .BP
法 は,ニュー ラルネ ッ トワー クにあ る入力デー タを与 えた ときに得 られ る出力 と教 師 信 号 との二乗誤 差 が小 さくな るよ う,最急 降下法 に よ り結 合係 数 の修 正 を繰 り返 し最適 な結 合係 数 を決定す る方法 である.3 .
ニューラルネ ッ トワークの・ハー ドウエア設計
3. 1 F P G A
設 計 した い論 理 回路 を,設 計現場 で即座 に実装 で き るハー ドウェア を
P LD ( P r o g r a mma b l eLo g i c De vi c e )
と呼ぶ .ハー ドウェアで機 能 を実現 す る 理 由 と して,高速処理 ,小型 化 ,低 消費電 力 の三 つが挙 げ られ る.FP GA ( Fi e l dPr o g r a mma b l eGa t eAr r a y )
は,PLD
の一種 であ る.一般 に
LS I
中の回路 は製 造後 に変 更す る こ とはで きないが,F PGA
は容易 に 内部 の 回路 を書 き換 え る こ とがで きる.そ のため,近年 ではLS
lの試 作 ・検証や ,携帯電話 な どの規格変 更が早い製 品な どに多 く使用 され てい る.FP GA
上 の回路 を設計す る場 合,回路 図 を直接記 述 す る スケマ チ ック設 計 とハ ー ドウェア記 述 言 語( H
DL) で‑‑ ドウェアの動作 を記述す る設 計の2
種類 があ る.
3. 2 V H DL
‑ ‑ ドウェア を設計す る際 に,現在 で はハ ー ド ウェア記述 言 語
( HDL)
が多 く用 い られ る.スケ マチ ック設計 に対 してHDL
による設計の利点 とし て次の よ うな ものが挙げ られ る.・ テキス トで簡単に入力できる
・ 複雑 な論理式 を求める必要がない
・ 回路変更が容易である
・ 回路 の動作 を理解 しやす い
本研 究では回路設計に
HDL
の一つであるVHDL ( VHSI C HDL )
を用 いた.VHDL
は, ア メ リカ合 衆 国 防 省 のVHS I C ( Ve r yHi g hS pe e dI n t e g r a t e d Ci r c u i t )
委員会 で1 9 81
年 に提唱 され たHDL
であ り,1 9 8 7
年 にI EEE (Th ei n s t i t u t eo fEl e c t r i c a la n d
El e c t r o n i c sEn g i n e e r s,I n c )
で承認 され ,世界標 準 のHDL
として広 く普及 してい る.高度 なデ ィジタ ル 回路 の設 計や解析 ,複雑 な制御 回路 な どをモデ ル化 し, システ ム全体 を抽象 度 の高 い レベ ル で記 述で きるな ど柔軟 な設計 を可能 としてい る[4】 .
図 4 数値 の表現方法
6 b i t s 1 4 b i t s
図 5 ニュー ロンでの乗算 3. 3 V H D L による B P 法の実装
vHDLでは通常,符号 な しの整数値 しか扱 うこ とができない.BP法では実数値 を用い るため,本 研究では入力や結合係数 を 21 ビッ トの固定小数点 形式で表す こととし,図 4 に示すよ うに MSBを符 号 ビッ ト,整数部に 6 ビッ ト,小数部 に 1 4 ビッ ト を割 り当てた.符号 ビッ トはプ ラスな ら
0,マイ ナスな ら1 をとり,負数は 2 の補数で表現す る.
21 ビッ トで表 現 され る数値 の乗算 を行 うと, VHDLの仕様上符号 ビッ トを除き 4 0ビッ トの乗算 結果が出力 され る.4 0 ビッ トの乗算結果 をそのま ま以降の計算 に用い ると,回路規模 が大 き くな り 実装が困難 になる.そ こで,図 5に示 した操作 を 行い,演算結果 を 21 ビッ トに収 めることに した.
まず,符号 はそれぞれ の入力値 の符号 ビッ トの
XoRをとることによ り求 めた.次に,乗算結果の 整数部 1 2 ビッ トの うち上位 6 ビッ ト全てが Oの と き,整数部下位 6ビッ トの値 を乗算結果の整数部 として とる.乗算結果の小数部下位 1 4 ビッ トは後 の演算 に微 小な影響 しか及 ぼ さない と考 えて切 り 捨て,小数部上位 1 4 ビッ トの値 をとることとした.
乗算結果の整数部上位
6ビッ トの うち 1 ビッ ト で も 1となっていた ときには,最終的な乗算結果 となる 2 0ビッ トの全ての ビッ トを 1とし,表せ る 数値の最大値 とした.
r(
L L J L I J bl I f
A J
S■
).. ‑ I ; l l l l l l I l l l l l l l " r 一
ttItl l l l l t
ll l l ■
■ +JbI ‑‑ L f J
l l l l l l l l l
l l l l I l l
図 6 ステ ップ関数 とその微分
これ らの操作 によ り,符号
1ビッ ト,整数部下 位の 6 ビッ ト,少数部上位の 1 4 ビッ トの 21 ビッ
トが乗算結果 として出力 され る.
3. 3. 1 活性化関数
( 2) 式のシグモイ ド関数 は非線形 関数であ り,そ のままハー ドウェア上で実現す る と回路が複雑 に な り回路規模 が大 き くな る.そ こで,シグモイ ド 関数の演算結果 をあ らか じめ適 当な刻み幅 で値 を 求め,入力 S に応 じて次式に示す近似値 を とるス テ ップ関数 を作成 し ,( 2) 式の代替 とした.
(
∫<
‑5)( 15 ≦S ≦5 , 0. 25 刻み
( ∫ >5 )
BP 法 では,結合係数 の更新量 を求める とき上式 の導関数が必要 とな るが,ステ ップ関数 は不連続 関数であ り微分不可能である.そ こで,図6 のよ う にステ ップ幅 の 中点 と中点 を結ぶ直線 の傾 きをス テ ップ関数 の微 分値 として次式で求め,結合係数 の更新量計算に用い ることとした.
l
l o f P s・0 i 0. 25 , ‑/( g ,
4.
実験( S <‑ 5 , S
>5 ) ( ‑5 ≦S ≦5 , 0. 25 刻み)
4. 1 動作環境
回路合成,及び シ ミュ レー シ ョンは以下の環境 で行 った.
・ p c:pe n t i u m Ⅲ 7 00 MH z
主記憶6 4 0 MB
・ OS: Wi n d o wsXP
358
宮 崎 大 学 工 学 部 紀 要第 3 3
号表
1
初期結合係数図
7 XOR問題用ニュー ラルネ ッ トワー ク
言語 :
VHDL
C言語(
比較 シ ミュ レー シ ョン用) 回路合成 :Xi l i nxFounda t i onI SE
回路 シ ミュ レーシ ョン :
Mod e lTe c honol ogy Mo de l s i m SE
4/2 シ ミュ レー シ ョンによる動作検証 ・
2入 力 の排他 的論理 和 ( XOR)
につ い て, 図7
の よ うな階層型 ニ ュー ラルネ ッ トワー クモ デル を 構成 した.図7
で入 力を持 たないニ ュー ロンは し きい値 ニ ュー ロンであ り,常 に‑1を出力す る.初
期 結 合 係 数 と して ラ ン ダ ム な値 を与 え た上 で,XoR問題 を学習す る回路 を VHDLに よ り設計 し,
シ ミュ レー シ ョンによ り動作検証 を行 った.
B P法 のパ ラメー タは,以 下の よ うに設 定 した.
・ 慣性係数 :
0. 9
・ 学習係数
:0 . 3
・ 学習回数 :
l oo
°回検 証 に用 いた初期結 合係 数 を表
1
,学習 に よ り 得 られ た結合係数 を表2に示す.表 1
,表2中の
wll 〜 W33
は,図7
の結合係 数wl l〜 W33
に対応 し てい る.表
2
の結合係数 を用いて2
入力XOR問題 の 4
パ ター ン( ( 0, 0) ,( 0, 1 )
,(1 , 0)
,(1 , 0) )を与 えた ときのニ
ュー ラルネ ッ トワー クの出力値 を表3
に示す.ま た,3.3. 1
節 で述べた活性化 関数 を使 ってPC上 で
シ ミュ レーシ ョンを行 った ときの,各パ ター ンで の出力 も表3
に示 した.pC上 でのシ ミュ レー シ ョ ン時の初期結合係数 は,VHDLでのシ ミュ レー シ ョン時 と同 じ値 と した.与 え られ た入 力に対 して,VHDL
,C言語 でのシ ミュ レー シ ョンそれ ぞれ で正しい出力が得 られ てい ることが分か る.一方,同 じパ ラメー タを用 いて学習 してい るに も関わ らず ,
VHDLと C
言語 によるシ ミュ レー シ ョンで学習後 の出力債 に若干 の誤差が生 じた. これ は,VHDLW 1
1=‑0. 6 404 W2
1 =‑0. 028 6 W31 =‑0. 65 06 WI 2 =0. 85 02 W22
=‑0. 5678 W3 2 =0. 9 6 48
表
2
学習後 の結 合係数W I
J=‑5. 3385 W21=‑3. 75 7 0 W31 =‑6. 98 75 W1 2 =‑5379 2 W22=‑3. 758 7 W3 2 =6. 5 7 98 W1 3 =1 . 796 3 W23 =5 . 261 0 W33 =‑2. 8 77 4
表
3
学習後の 出力( 0, 0)
(0 ‑ , 1 ) ( 1 , 0 ) .
(1
,1)VHDL o̲ 0879 : 0. 8859 〉 0ー 89 48 0. 09 57
表
4
初期結合係数 を変化 させ た時の 学習後 の出力1 VHDL 0. 0875 0. 9249 0. 9 248 0ー 0804 C
言語0̲ 0936 0̲ 8832 0. 88 01 0. 11 83 2 VHDL 0. 081 8 0̲ 9076 0̲ 9 062 0̲ 081 8 C
.言 語0. 0890 0. 8859 0. 867 5 0. 0968 3 VHDL 0. 0843 0̲ 9293 0̲ 9 294 0. 0879 C
言語0̲ 1. 1 63 0ー 891 6 0. 8898 0. 1 089 4 VHDL . 0̲ 0876 0̲ 9076 0. 9 048 0. 0878 C
言語.0. 0879 0. 8592 0̲ 86 97 0̲ 09 03 5 VHDL 0. 091 0 0̲ 8960 0. 9 029 I . 0. 1 073
では固定小数点形式 を用いてい るのに対 して,C 言語 によるシ ミュ レー シ ョンでは浮動小数点形式 を用いてお り,演算精度 が異 なっているため と考 え られ る.
初期荷重係数 を変化 させ て行 った
5
回の シ ミュ レー シ ョンでの,各 人カパ ター ンに対す るニ ュー ラル ネ ッ トワー クの出力 を表4
に示す.表4
か ら 分か るよ うに,初期荷重係数 を変化 させ た5
回の シ ミュ レー シ ョンすべての場合で正 しい出力 を出 す よ うな結合係数 の組 を得 ることができた.5 おわ りに
本研 究 で は, 学 習 可能 なハ ー ドウェア ニ ュー ラ ル ネ ッ トワー クを
VHDL
に よ り設 計 した .Xil i nx
社製 合成 ツー ルFo unda t i onI SE
を用 い て,2入 力・ XoR
問題 を学習す るニ ュー ラル ネ ッ トワー クにつ い て回路合 成 を行 った ところ,使 用 したセ ル数 は11 7, 876
とな り,Xil i nx
社製 のFPGA
で あ るVi r t e x XCV3 200
な どに実装 可能 な規模 で あ る こ とが分 かっ た. シ ミュ レー シ ョンを行 った とこ ろ,
4
つ の 学 習パ ター ンをそれ ぞれ1
回ず つ 学 習 す るの に要 した時間 は8 0 0ns
とな り, これ は1
秒 間 に1 25
万 回 の学習処理 に相 当す る.PC上 でC言語 を用いた
シ ミュ レー シ ョンでは, 同様 の処理 に23 0 ms
を要 してお り,‑ ‑ ドウェア化 に よ り大幅 な高速化 が 期 待 で き る. また,双 方 の学 習 シ ミュ レー シ ョン 後 に得 られ た結 合係 数 に よ り,正 しい 出力 が得 ら れ るこ とを確認 で きた.今 後 の課 題 と して は設 計 した ニ ュー ラル ネ ッ ト ワー クを
FPGA
上 に実装 し,動 作検 証 を行 うこ と が挙 げ られ る.参考 文献
[1]平井有三,落合辰 男,安永守利 :
"1 0 00
ニ ュー ロン1 0 0
万 シナ プスで構成 され たニ ュー ラル ネ ッ トワー ク‑ ‑ ドウェア システ ム", 電子 情 報 通 信 学 会 論 文 誌 ,vo l . J 8 4‑ D‑Ⅱ , No. 6 , pp. 1 1 8 5 ‑ 1 1 93 ( 2 0 01 )
[ 2]川 島毅 ,石果章夫,大熊繁 : "
小規模 回路で実 現 可能 なニ ュー ラル ネ ッ トワー クのハ ー ドウ ェア化 手法",信学技報(NC‑99‑90),電子情報 通信 学会( 2 0 00
)[ 3]
船橋誠 寿,吉原郁 夫著 :システ ム制御 のための 知 的情報 処理 ,朝倉書店( 1 9 99)
[4]長谷川裕恭 :vHDLに よるハー ドウェア設計入 門,CQ出版