• 検索結果がありません。

VHDL による学習可能な階層型ニューラルネットワークのハードウェア実装

N/A
N/A
Protected

Academic year: 2021

シェア "VHDL による学習可能な階層型ニューラルネットワークのハードウェア実装"

Copied!
5
0
0

読み込み中.... (全文を見る)

全文

(1)

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 )

式で表 され る.

(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】 .

(3)

図 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 一

ttIt

l l l l l t

l

l l l

+Jb

I ‑‑ 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

(4)

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

言語 によるシ ミュ レー シ ョンで学習後 の出力債 に若干 の誤差が生 じた. これ は,VHDL

W 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)

5 おわ りに

本研 究 で は, 学 習 可能 なハ ー ドウェア ニ ュー ラ ル ネ ッ トワー クを

VHDL

に よ り設 計 した .Xi

l i nx

社製 合成 ツー ル

Fo unda t i onI SE

を用 い て,2入 力

・ XoR

問題 を学習す るニ ュー ラル ネ ッ トワー クにつ い て回路合 成 を行 った ところ,使 用 したセ ル数 は

11 7, 876

とな り,Xi

l 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出版

( 1 9 95 )

図 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

参照

関連したドキュメント

ところで、モノ、ヒト、カネの境界を越え た自由な往来は、地球上の各地域の関係性に

スライダは、Microchip アプリケーション ライブラリ で入手できる mTouch のフレームワークとライブラリ を使って実装できます。 また

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

定可能性は大前提とした上で、どの程度の時間で、どの程度のメモリを用いれば計

b)工場 シミュ レータ との 連携 工場シ ミュ レータ は、工場 内のモ ノの流 れや 人の動き をモ デル化 してシ ミュレ ーシ ョンを 実 行し、工程を 最適 化する 手法で

しかし , 特性関数 を使った証明には複素解析や Fourier 解析の知識が多少必要となってくるため , ここではより初等的な道 具のみで証明を実行できる Stein の方法

層の項目 MaaS 提供にあたっての目的 データ連携を行う上でのルール MaaS に関連するプレイヤー ビジネスとしての MaaS MaaS

体長は大きくなっても 1cm くらいで、ワラジム シに似た形で上下にやや平たくなっている。足 は 5