...

A Technique for Hardware Implementation of

by user

on
Category: Documents
6

views

Report

Comments

Transcript

A Technique for Hardware Implementation of
社団法人 電子情報通信学会
信学技報
THE INSTITUTE OF ELECTRONICS,
INFORMATION AND COMMUNICATION ENGINEERS
TECHNICAL REPORT OF IEICE.
FPGA のためのニューラルネット ワークの
ハード ウェア化手法
田中 愛久
黒柳 奨
岩田 彰
名古屋工業大学 電気情報工学科
〒 466-0061 名古屋市昭和区御器所町
E-mail : [email protected]
あらまし
大規模ニューラルネットワークを家電製品のレベルでシステムとして組み込むことを考えた場合、組み込みプロセッ
サ上でのソフトウェアとしてでは実時間応答が困難であることが予想される。そこで、ニューラルネットワークをハー
ド ウェア化することで、低コストでの高速化を実現する。また FPGA を用いることで動的なネットワーク構造の変化を
目指した。低コストでの実現を目指し、ネットワーク全体の回路規模を抑えるために 1 ニューロンあたりの回路規模を
抑えるハード ウェア化手法で回路設計を行い、非常に小型のニューロンを設計できた。また、独立したシステムとして
の運用のため、ニューラルネットワーク最大の特徴である学習のハード ウェア化も行った。
キーワード
パルスニューロン、デジタル回路、FPGA 、学習則
A Technique for Hardware Implementation of
Neural Networks using FPGA
Yoshihisa TANAKA and Susumu KUROYANAGI and Akira IWATA
Dept. of Electrical and Computer Eng., Nagoya Institute of Technology
Gokiso-cho, Showa-ku, Nagoya, 466-0061, Japan
Abstract
It has been constantly studied to implement the McCulloch-Pitts type neuron model as an digital circuit.
However, the neuron model is based on the computation of inner products of input vectors by weight vectors.
Therefore it needs large scale hardware resources for implementation. In this paper, we proposed a novel hardware
implementation method of a neuron model which is based on a pulsed neuron model. In the pulsed neuron model,
pulses are regarded as the input and output signals, and there is no multiplier.
implementation for the learning system of the neuron model.
key words
Pulsed Neuron,Degital Circuit,FPGA,Learning Rule
We also showed a hardware
1
はじめに
局所膜電位
入力パルス列
これまで様々なニューラルネットワークの研究を行わ
内部電位
(時定数τで減衰)
i1
(局所電位の総和)
w1
れ、、多くの成果を上げられている。今後これらを家電製
op(t)
出力パルス列
品などの組み込み用システムとして利用することを考え
w2
たとき、大規模なモデルを現状の組み込み用プロセッサ
I(t)
f(I,th,t)
教師パルス列
上でのソフトウェアとして実装したのでは、実時間応答
i2
が困難になることが予想される。これは、ニューラルネッ
wn
トワークの情報処理が膨大な量の乗算と加算の繰り返し
tp(t)
によって行われるためである。ニューラルネットワーク
ip (t)
p (t)
n
n
の特徴の一つとして高い並列実効性が挙げられる。しか
in
し、シングルプロセッサ上でソフトウェアとして実行し
ていたのでは、並列動作がシーケンシャルな処理に置き
図
換えられるため並列実効性が全く活かされていないこと
1: パルスニューロンモデル
になる。並列実効性を活かすための一般的な手段として
は複数のプロセッサを用いたマルチプロセッサ処理や分
散処理があるが、これらの手法は非常に複雑で高コスト
なシステムになりがちなため、組み込み用のシステムと
しては現実的とはいえない。
そこで、我々はニューラルネットワークの低コストでの
2
パルスニューロンモデル
McCulloch-Pitts モデル(以下 MP モデル)[1] は従来
からよく使われているモデルで、最も一般的なニューロ
MP モデルは以下の式で表される。
ンモデルである。
u
高速化を目指してニューラルネットワークをソフトウェ
アとしてではなく、ハード ウェアとして実装することを
y
行った。
また、ハード ウェア化すなわちデジタル回路化するに
FPGA をデバイスとして想定している。FPGA
X
n
=
wi 1 xi
i
= f (u)
(1)
(2)
式中の xi は入力を、wi はそれに対応した結合重みを表
際して、
す。x と w の積の総和を閾値関数 f に通し、出力 y を得
ならば、動的に内部構造の変更が可能なため、機能拡張
るのである。
やより優れたアルゴリズムへの変更が可能となる。これ
によって将来的には、ニューラルネットワークのネット
ワーク造の変更などにより、機能変更、改善を行う一種
1
1
MP モデルはハード ウェア化には適していな
い。それは、MP タイプのニューロンモデルが入力とそ
しかし、
れに対応した結合重みを連続した実数で表すからである。
のリ コンフィギュアブル コンピューティングの実現を目
このため、内部ポテンシャルを求めるためには多ビット
指す。
同士の乗算を回路上で実現しなければならない。一般的
FPGA とは Field Programmable Gate Array の略で、
にデジタル回路上での乗算は、回路規模、速度ともにデ
その名が示す通り内部構造の動的な変更が可能であり、
メリットが大きい。また、入力が多ビットであるから、
搭載する回路をプログラムするごとく書き換えることが
各ニューロン間の結合も多ビットとなり、全体のバス幅
可能な半導体デバイスである。
が非常に大きくなってしまう。このことから、
MP モデ
FPGA そのものは目新しい技術というわけではない。
以前は搭載可能な回路規模や動作速度が ASIC と比べる
と目劣りするものだったため、主に ASIC 開発や研究目
デル
的のテスト、デバッグ用のデバイスとしての側面が強かっ
ね備えている。
た。しかし、近年の半導体技術の進歩により大規模、高
速化が進んでおり、製品ベースとしての注目を集めてい
ASIC がその製法上、少量生産が難しいのに
FPGA は少量生産が容易である。
しかし、FPGA は 、搭載可能な回路規模が ASIC と
る。また、
ルはハード ウェア化するには不向きなモデルと言える。
(
これに対して、パルスニューロンモデル 以下
PN モ
)[2][3] は、非常にハード ウェア化に適した特徴を兼
PN モデルの模式図を図 1 に示す。
PN モデルは入出力をパルス列で表し、パルスの頻度
で伝達する情報が表される。パルス列は瞬間的に見れば
を小さくする必要がある。我々はハード ウェア化された
0 か 1 の 2 値であり、これはデジタルの世界そのもので
0 1 の 2 値と実数値の乗算は回路からみれば、
論理積 (AND) か、パルス列を選択信号としたマルチプ
レクサ (MUX) で実現でき、乗算を実装するよりもはる
ニューラルネットワークの回路規模を抑えるため、ネッ
かに小型で高速な回路で実現できることが期待できる。
対して、
比較すると小さくなるのが現状のため、極力、回路規模
トワークを構成するニューロンを小型化することに重点
を置いた。
ある。 か
PN モデルは時刻 t を連続値にとってもそのまま適用
できるが、本研究ではデジタル回路化することを考え、
時刻は離散値としその最小単位時間を dt とする。また
1dt を回路の動作周波数 1clock とする。
PN モデルの処理過程は以下の通りである。
1. 各シナプスの局所膜電位 p(t) は時間経過によって減
衰し静止電位(本モデルでは静止電位は 0 とする)
という方法で、非常に簡潔にハード ウェア上で実現す
ることができる。
4.
しかし、 の時定数 による減衰だけはそのままでは
簡潔には実装することができない。そこで、減衰の仕組
みを実装するのに適した方法に変更することを考える。
に戻ろうとする。つまり、減衰の時定数を ( sec )
3.1
とすると
pn (t) = e0dt= 1 pn (t 0 dt)
(3)
減衰は生体の神経細胞の動作に基づいた
P (t)
P (t)
dt
2. 各シナプスにおいて、i(t) が 1 、つまりその時刻に
おいてパルスがあれば、その膜電位が結合重み分だ
け上昇(抑制性の結合の場合は下降)する。これは
神経細胞における時間加重に相当する。
総和で与えられ、神経細胞における空間加重に相当
I (t) =
X p (t)
n
i
=1
i
(4)
と同様の処理を行うことが可能なニューロンモデルとし
て用いている。
ハード ウェアモデル
PN モデルをハード ウェア化の対
象とすることで、小型化が期待できる。そこで、実際に
回路設計を行った。
PN モデルをハード ウェア化するのに必要な処理は、
1. 入力値と、それに対応した結合重みの乗算
2. 1. で得られた局所膜電位の総和を求める
3. 総膜電位(ポテンシャル)と閾値を比較し、上回っ
4.
(5)
処理の最初単位時間
時定数
となり、デジタル回路上で表現するには、不向きな処
てみる、減衰は一定時間ごとに、ポテンシャルを何分の
2
1かにするということである。値を 分の1にするため
にはビットシフトで実現できる。
過去の黒柳等の実験結果により、時定数は最小パルス
1clock とする)の 10 倍程度とするのが望
ましいことが、わかっている [2][3][4] 。また、時定数 を
間隔(これを
用いた指数関数的な減衰の場合、 後の値は、
e0=
= e01 = 0:368
(6)
となる。また、ポテンシャルが 1/2 になるのは log 2 後
である。つまり、時定数 の約 70% の時間で値は 1/2 に
なるから、時定数が 10cock に相当するとすると、7clock
に 1 回値を 1/2 にすればいいことになる。しかし、これで
は減衰の精度が悪くなってしまう。そこで値を 3clock に
1 回 3/4 にするとすると、10clock で (3=4)10=3 = 0:383
となり、式 6 に近くなる。3/4 にするためには、1/4 を減
算すればよく、この 1/4 は 2 ビットシフトで求められる。
これらから、減衰の機構を減算器(加算器)とシフト
レジスタで実現できることになる。
ていれば1を出力する。
時定数 でポテンシャルを減衰する。
1
3 については、
1. 入力値と重み値の論理積( AND )をとる。または、
入力値を選択信号としてマルチプレクサ( MUX )を
となる、このうち から
2.
3.
P (t 0 dt) 1 e0dt=
時刻 t におけるポテンシャル
そこで、何らかの方法で近似的に処理する方法を考え
4. 内部ポテンシャル I (t) が発火の閾値 th を超えれば、
その PN は発火し時刻 t における出力は 1 となる。
PN モデルは黒柳等 [4] が示したように時系列情報処理
に適するという固有の特徴も持つが、今回は MP モデル
前節で述べたように
=
:
:
:
理である事がわかる。
するものである。
3
PN モデルの
大きな特徴の一つであるが、これを数式で表現すると、
で減衰する。
3. PN の内部ポテンシャル I (t) は各局所膜電位 p(t) の
減衰
加算器を構築し、処理する
とする
モデルの構造
SRAM 型の FPGA はその構造上 DFF( D-フリップフ
[5]。このため、DFF を多
ロップ )を多く搭載している
く使用するパイプライン構造などのデータパス系の回路
の実装に適し、逆に演算回路などの大規模な組み合わせ
構築する
比較器(
3.2
comparator )を構築し、比較結果を出力
FPGA 内のリソースの使用に無
駄が生じやすい。そこで、FPGA 上に搭載するのに適し
回路は苦手としており、
たアーキテクチャを考案した。
初期化
1
2
減衰
count=0
n
count<n
1
(1
図
NOP
2: ハード ウェアモデルのブロック図
2
図
count=n
入力
count++
3: モデルの状態遷移図
図 にモデルのブロック図を示す。
減衰は前で述べたように
3 サイクルに 1 回、4 分の 3
にポテンシャルを減少させるという手法で近似的に行う。
減衰の実行、不実行はこれを制御する減衰信号で決定す
1 ならば減衰値であるポテンシャルの 4
分の 1 をポテンシャルに加算し、0 ならば 0 を加算する。
これは、結合重み値が入力パルス信号が 0 か 1 かによっ
る。減衰信号が
て加算されるのと同じである。そこで、減衰信号を入力
図
の一つとし、減衰値は減衰信号という入力に対応した結
4: モデルの実行タイミングチャート
合重みであると考える。これによって、ポテンシャルへ
の結合重みの加重と、ポテンシャルの減衰の機構をを明
ている時、加算ユニットからの入力を閾値と比較し
示的に分ける必要がなくなり、回路の簡単化につながる。
て、閾値を上回っていれば発火する。
また、入力信号と重み値の論理積や加重を行う加算器は
3
そこで、これらの数を一つに固定し時間で多重化する。
ニューロンの持つ機能を
示す。
4 つの小ブロックに分割し、
サイクルは減衰から始まり、次に入力を処理する。
最後の
パイプライン的に絶え間なく各ユニットで処理が行われ
る。各ユニットは前段からの入力と制御信号に基づいて
出力を決定する。各ユニットによる処理は以下のように
1
図 に、n 入力のモデルの サイクルの状態遷移図を
入力ごとに必要となるが、それぞれの機能は変わらない。
NOP という状態は No Operation を意味し、何
も行わない事を意味する。これは、最後の入力分の重み
1clock 後には減衰の状態
値を加算したポテンシャルは、
に移行しなければならないが、重み値ユニットを経由し
なる。
1. 入力ユニットには入力と減衰信号が並列に入力され、
それらが制御信号に従って順に出力される。つまり、
-
入力ユニットはパラレル シリアル変換を行っている
ことになる。
2. 重み値ユニットは入力と重み値の論理積を出力する
ユニットで、入力ユニットからの入力が 1 なら、制
て加算ユニットへ減衰値が送られるためにフィード バッ
クを間に合わせるための時間稼ぎが必要だからである。
CPU などのマイクロ命令での NOP は文字通り何も行わ
ないが、モデルの NOP は 0 を出力する。これは最初の
入力ユニットの出力が 0 ならば、それ以後のユニットは
0 を出力して 0 を加算するので、結果として何も行わな
いことになるからである。
入力が の時はそのまま を出力する。また、この
0
1 つのユニットが 1 サイクル分の処理を行うのには、
入力数 +2clock が必要になる。各ユニットはパイプライ
ユニットは次の加算ユニットからフィード バックさ
ン式に動作するので、位相が一つずつずれることになる。
れてくる減衰値(ポテンシャルの
最終段の発火ユニットは入力ユニットと比べて
御信号により入力に対応した結合重み値を出力する。
0
1/4 の符号を反転
したもの)も出力する。
3. 加算ユニットは前段から送られてくる値をレジスタ
れているから、最初の発火は入力数
とになるが、実際には最後の
るので、入力数
テンシャルの
数
ド バックする。
4. 発火ユニットは発火を制御する発火信号が入力され
+5clock で起きるこ
NOP を待たずに発火でき
+4clock で発火する。最初以降は、入力
+2clock ごとに発火する。
図 4 に、入力数 3 の場合のタイミングチャートを示す。
に保持してある値に加算する。また、減算分の、ポ
1/4 を 2 の補数表現に変換してフィー
3clock 遅
これを見ると、最初の位相遅れ以外は全ユニットが休み
ば
無く稼動していることがわかる。
153 個載せることができる。乗算を必要としない PN
モデルがいかに小規模な回路で実現可能であるかがわか
3.3
る。川島等のモデルも
回路規模
MP モデルと比べると非常に小型
だが、我々のモデルはそれをさらに下回った回路規模で
モデルを回路化し回路規模の比較を行った。回路の設
実現されている。
また、同じ
計は以下の環境で行った。
VHDL による言語設計
動作シュミレーション ModelSim(Model Technology)
論理合成 FPGA Express( Synopsys )
配置配線 MAX PLUS-II(ALTERA)
デバイス FLEX10K シリーズ (ALTERA)
設計
PN モデルであるパイプライン有のものと
パイプライン無のものでも比較すると差がついているこ
3,5 入力ではパイプライン無のもののほうが
とがわかる。
下回るという結果が出た。これは、入力数が少ないと演
算器の多重化による効果よりも、多重化した演算器を制
御する信号を発生する部分の大きさが上回っているから
10 入力では逆転し、入力数 20 では倍近い差が
である。
ついた。演算器の多重化が有効であることを示している。
また 、多重化の効果は両者の増加率の差にも現れて
いる。
パイプラインを基にしたモデルが小型に実現できるこ
MP モデルのニューロンとで比較を行っ
PN モデルは前述の手法によるものと、減衰は同じ
だが、パイプライン手法を用いていないものの 2 つを行
なった。MP モデルは乗算を用い、パイプラインなどの
手法は用いていない。それぞれ、入力数 3,5,10,20 のもの
を比較している。重み値は全て 8bit としてある。また、
川島等のモデル [6] とも比較している。川島等は入出力
とを示すため、
た。
をパルスで表現し、情報をパルスの位相差で表している。
1
結果を表 に示す。
4
ハード ウェア化を前提とした学習機構
学習による機能獲得は、ニューラルネットワークの持
つ特徴の1つである。ニューラルネットワークのハード
2
ウェア化を考えたとき、学習を含めるかどうかで つに
分類できる。
学習をハード ウェア化に含めない場合は、回路が簡単
化する。しかし、別に学習用のシステムを用意し、そこ
で行った学習の結果をハード ウェアモデルに読み込ませ
ることで学習を行わなければならない。これに対し、学
1: 入力数に対する回路規模の比較
入力数
3 5 10 20
MP モデル
455 766 1544 3099
川島等のモデル
485 PN モデル (パイプライン無) 39 48 70 110
PN モデル (パイプライン有) 45 47 54 65
単位:LCs(ロジックセル)
表
LCs は使用するロジックセルの個数を示す。
ロジックセルは FPGA を構成するリソースで、FLEX10K
の場合 8 個の LC で 100∼600 ゲートの論理回路が構成
できるとされている [5] 。
表からわかるよ うに 、MP モデルと PN モデルを比
較すると MP モデルが非常に大規模なモデルであるこ
とがわかる。20 万ゲートの論理回路が搭載可能とされ
る ALTERA 社の FLEX10K200E というデバイスの搭
載 LC 数が 9984 個であるから、単純計算でも、20 入力
の MP モデルは 3 個しか載らないことになる。これで
表中の単位
習も含めてハード ウェア化を行えば、回路が複雑化し回
路規模が増加することになるが、独立した単体のシステ
ムとして機能できるようになる。
一般的にニューラルネットワークの学習則は、非常に
複雑な演算処理が必要であり、中には微積分のようにデ
ジタル回路として実装するには不向きな演算も含まれる。
しかし、一方で、ソフトウェア上でのシュミレーションと
しての学習に要する時間は膨大なものになりがちであり、
学習の高速化はニューラルネットワークを応用目的で使
用するための課題の一つでもある。学習動作も、認識動
作同様、高い並列実行性を持っており、ハード ウェア化に
よる高速化は可能であると考えられる。また、学習を含
まないと、別途に学習にためのシステムを設ける必要が
あり、非効率であるのに対して、学習を含めれば、単独
で機能できるようになる。家電製品のレベルでニューラ
ルネットワークを組み込む事を考えた場合、不便なアッ
プデート作業が不要になることは、非常に有益であろう。
そこで我々は、ハード ウェア化を前提とした学習機構
は有益なアプ リケーションを構築するのは到底不可能で
PN モデルを基にしたハー
ド ウェアモデルが学習するものである。PN モデルの学
習則は既に黒柳等 [4][7] によるものが存在しているが、
ある。これに対して、パイプライン無の
この学習則は階層型ネットワークの学習に対応していな
じ
PN モデルは同
FLEX10K200E に 92 個、パイプライン有のものなら
を考案した。この学習機構は
い。本論文の学習則は、より一般的な問題への適応のた
め、階層型ネットワークが学習可能となるよう誤差伝搬
(
学習法 以下
BP 法) をハード ウェア化に適した形で PN
量子化した値
O*(1-O)
0.25
モデルに適用することを考える。
0.1875
4.1
誤差伝搬学習法の適用
一般的な
0.125
BP 法による学習は、
Ih:
入力層の h 番目のニューロンからの出力
Hi :
中間層の i 番目のニューロンからの出力
Oj :
出力層の j 番目のニューロンからの出力
Tj :
出力層の
0.0625
0
0.11
0.2
0.37
0.5
0.64
図
5: O(1 0 O) の量子化
図
6: 出力層の学習の流れ
図
7: 中間層の学習の流れ
0.81
0.9
1
j 番目のニューロンからの望ましい出力
(教師信号)
1wj;i(t) = (Oj (t) 0 Tj (t))Oj (t)(1 0 Oj (t))Hj (t)
(7)
= j (t)Hj (t) 中間層-入力層間の結合重み wi;h は、
1wi;h = f j (t)wj;i(t)gHi (t)(1 0 Hi(t))Ih (t) (8)
とすると、出力層 中間層間の結合重み wj;i の修正量は、
X
j
重み値の修正は、
wn+1 = wn + 1wn
という数式で表される
(9)
[1]。式 (9) 中の は学習係数で
0.1 という値が用いられる。
(7) と式 (8) から分かるように、BP 則のアルゴリズ
あり、一般に
式
ム中には多くの乗算が用いられている。デジタル回路上
での乗算が好ましくないのは前にも述べた通りである。
そこで、乗算を用いずに実装する方法としてシフト演算
2
があるが、シフト演算を行うためには乗数が の階上の
値でなければならない。そこで、量子化によってシフト
演算可能な値に変換する。
例として、式
5
(7) 中の O(1 0 O) を量子化した様子を
示したのが図 である。
曲線が元の
O(1 0 O) を示したもので 、ステップ関
数で 示し たの が量子 化後 の値 であ る 。量子 化し た値
は、0.0625(204 ),0.125(203 ),0.25(204 ) と 0.1875 である。
0.1875 は 2 の階乗ではないが 0.125+0.0625=0.1875 なの
で、3bit シフトしたものと 4bit シフトしたものを加算す
ることで 0.1875 倍は実現できる。グラフ中の O(1 0 O)
は O = 0 と O = 1 で 0 となっているが、実際には O
は 0,1 に限りなく近づくが、決して 0,1 はとらないので
O(1 0 O も 0 をとることはない。したがって、量子化の
値として 0 はとらない。
量子化とシフト演算を基本として、構成した学習則の
6
7
流れを示したのが図 および図 である。パルス
100clock
1
0
1 の範囲に相当するものとする。すなわち、パルス 50 発
が 0.5 に相当し、100 発全てが発火すれば 1 に相当する。
分で つの情報を表すものとし、その頻度を実数の から
出力層での学習は、カウンタは出力パルスの数をカウ
ントし、逆カウンタでは最初に教師信号 T をロードして
おき、出力パルスを感知すると、1ずつ減算して教師信
( 0 O) をカウントする。この後の
号 T と出力 O の差、 T
学習はこの
(T 0 O) の値のシフト演算を加えることで進
めていく。
カウンタからの出力
O
は 、O
(1 0 O)
を表す
0.25,0.1875,0.125,0.0625 の 4 段階に量子化され、この値
0.25
なら (T 0 O ) を 2bit シフトし、0.1875 では、3bit シフ
ト +4bit シフト、0.125 で 3bit シフト ,0.0625 では 4bit シ
を制御信号として用いてシフト演算を行う。O が
フトを行う。この結果が
(T 0 O)O(1 0 O) となる。この
値は接続されている中間層ニューロンの結合重みとの乗
二
乗
誤
差
0.45
0.4
算が行われ、中間層へフィード バックされる。回路規模
を考えた場合、乗算を用いるべきではないが、今回はこ
0.35
の部分にだけ乗算を用いている。最後に、ニューロンへ
の入力パルス H もカウントされ、これも量子化されてシ
0.3
フト演算を行う。これで出力層の重み修正値が求まる。
0.25
中間層も出力層のものと考え方は同じだが、異なる点
0.2
は出力層からのフィード バックが接続されている出力層
ニューロンの数だけ入ってくるので、これを全て足し合
0.15
0
10
20
30
40
50
60
70
80
90
最終的に結合重みに修正値を加える際には、修正値を
3bit シフトし、0.125 倍した。また、最初のカウンタか
らの出力 (T 0 O) が 0 から 100 の範囲の値であるのを、
0 から 1 の値に正規化する際に、小数点の位置をずらす
ことで 128 で割っている。この際に約 0.78 倍されている
ことになるため、最終的には 0:78 2 0:125 で 0.0975 倍さ
れていることになる。これは学習係数 0.1 にほぼ等しい。
100
学習回数
わせ、これをシフト演算することで重みの修正値とする。
図
二
乗
誤
差
8: 重み値 12bit での二乗誤差平均の推移
0.4
0.35
0.3
0.25
0.2
5
学習シュミレーション
0.15
考案した学習則で問題が学習可能であることを示すた
めに学習シュミレーションを行う。学習する問題は
XOR
問題を選んだ。
100clock を 1 単位とし、0 を表す入力にはパルスを一
切与えず、1 を表す入力には 100 発のパルスを与える。
1clock で与えられるパルスは 1 発であるから、最大で
100 発のパルスが入力されることになる。
学習法は、00,01,10,11 の 4 つのデータセットを順に与
えていき、1 セット分の学習が終わると学習 1 回分とす
0.1
0.05
0
0
200
400
600
800
1000
1200
1400
学習回数
図
9: 重み値 16bit での二乗誤差平均の推移
小数点以下
8bit で表現できる値は 208 = 0:00390625
る。学習の進行具合を図る目安としては二乗誤差の平均
刻みであるが、これは学習を行うには十分な数値ではな
をとる。
いことがわかった。
12bit としてシュミレーションを行っ
た。整数 4bit 、小数点以下 8bit である。その結果を図 8
まず、結合重みを
のグラフに示す。グラフの横軸は学習回数を示し、縦軸
は二乗誤差を示している。
12bit ではビット数が不足していることを踏まえ、次
に、結合重みを 16 ビットに拡張してしてシュミレーショ
ンを行った。整数 4 ビット、小数点以下 12 ビットであ
る。結果を図 9 のグラフに示す。
結果はグラフを見ると分かるように、学習の初期の段
グラフから、順調に二乗誤差が降下を続け、学習が一応
階から、縦幅の大きな振動を起こしている。その後、細
収束に向かっていることがわかる。学習則は正しく動作し
かな振動が続いた後、二乗誤差
ていると言えるだろう。しかし、一定の方向に収束しよう
0.2877 に収束している。
収束した段階では 4 つのパターンのうち 1 つしか正確に
としているものの、最後の部分で細かな振動が起きてい
認識できておらず、全く学習できていないという結果に
る。これは、学習後半になると、最終的な重み修正量や、
なった。また、これでは正常に学習が行われているかど
計算の途中結果が非常に小さな値となるが、現行の
うかも判断できない。
このような結果になったのは、小数点以下の数値を表
では、まだ不足しているために起きる現象であった。二
0.0054 で、この段階で 4 つのパターン
現するのにビット数が不足していたためである。学習の
乗誤差の最小値は
途中経過を見てみると、学習初期段階から、非常に小さ
をほぼ正確に分類している。
な値でしか重み値の修正が進んでおらず、ある程度学習
が進むと、シフト演算による切捨てのために修正値が
になってしまっていた。
0
16
ビットの値で表現できる最小値 2012 = 0:000244140625
そこで、重みを
19 ビット(整数 4 ビット、小数点以下
15 ビット )に拡張を行った。これにより、表現できる最
小値が 2015 = 0:000030517578125 となり、より詳細な
た。そのためには、できるだけ回路規模を抑えることが
0.4
二
乗
誤 0.35
差
必要であると考え、小規模回路でのニューラルネットワー
1
0.3
クの実現を目指した。このため、 ニューロンあたりの
0.25
回路規模を小さく抑えることでネットワークの小型化を
PN モデルを基にしたハード
目指した。本編において、
0.2
ウェアニューロンモデルを提案し、これにより非常に小
0.15
型のニューロンを設計できた。
0.1
また、学習の高速化と独立したシステムとしての運用を
0.05
可能にする目的で、誤差伝搬学習法を基にしたハードウェ
0
0
200
400
600
800
1000
1200
1400
学習回数
図
10: 重み値 19bit での二乗誤差平均の推移
ア化のための学習を提案した。本モデルを用いて
XOR
問題の学習シュミレーションを行うことで、本モデルが
正しく動作することを示した。
今後は、学習則の回路規模の減少と、何らかの実問題
に適応したアプ リケーションの構築が課題となる。
なお、本研究の一部は名古屋産業科学研究所「創発型
表現が可能となった。
その結果が図
10 に示すグラフである。
ビット幅の拡張の効果により、振動の幅が小さくなり、
0.0054 から、0.004525 まで落ちた。
また、微細な数値の変更が可能になったことにより、16
ビットでは収束に 1000 回以上要していたのに対し、500
収束する最小値も、
回前後で収束を始めるようになった。さらにビット幅を
ソフトコンピュータ開発」による。
参考文献
[1]
[2]
[3]
る際に、それぞれのアプリケーションに応じたビット幅
の決定が必要になると考えられる。
5.1
学習機能の付加による回路規模の増加
学習機能を付けたことでどの程度回路規模が増すかを
調べるために、認識動作のみの
BP 問題のニューラルネッ
[4]
[5]
トワークモデルを作成して回路規模を調べた結果、この学
106LCs であった。これに対して 19bit
版の学習機能付きのモデルは 1765LCs となった。これは
学習機能無しのものに比べて約 17 倍の大きさである。ま
習無しのモデルは
[6]
た、学習鵜機能付きのモデルから乗算部分だけを抜き出
346LCs であった。すな
わち、学習機能付きのモデルの約 5 分の 1 は乗算器で構
して回路規模を調べたところ、
成されていることになる。
この結果から、今回一カ所で用いた乗算を何らかの方
法で近似的に簡潔に実装できれば、回路規模は大きく改
善されるものと思われる。
6
まとめ
我々はニューラルネットワークの高速化をマルチプロ
セッサや分散処理を用いるよりも低コストで実現するた
めに、ニューラルネットワークのハード ウェア化を行っ
,
:"
", コロナ社
,
:"
ITD,LTD の脳内マッピングの実現,"電子情報通
信学会論文誌情報システム VolJ79-D-II NO.2(1996)
黒柳奨, 岩田彰:"Auditory Pulse Neural Network
Model to Extract the Inter-Aural Time and Level
Dierence for Sound Localization", 電子情報通信
学会英文論文誌 (D) E77-D, No.4(1995)
坂口晋也, 黒柳奨, 岩田彰:"環境把握のための音源識
別システム", 信学技報 NC99-69(1999)
"FLEX 10KE Embedded Programmable Logic
Family Data Sheet Ver.2",ALTERA Corpora
tion(1999)
川島毅, 石黒章夫, 大熊繁:"小規模で実現可能なニュー
ラルネットワークのハード ウェア化手法", 信学技報
NC99-90(2000)
黒柳奨, 岩田彰:"パルスニューロンモデルのための
教師あり学習則", 信学技報 NC97-151(1998)
黒柳奨 岩田彰 音源方向定位聴覚神経系モデルによ
る
であろうが、回路規模、配線容量と学習精度がトレード
うべきとはいえない。実際のアプ リケーションを実装す
,
ニューラルネットワーク
拡張することにより、良好な結果が得られるようになる
オフの関係にあるため、いちがいにビット幅に拡張を行
,
臼井支朗 岩田彰 久間和生 淺川和雄 基礎と実践
[7]
Fly UP