JPH036769A - ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置 - Google Patents
ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置Info
- Publication number
- JPH036769A JPH036769A JP14255889A JP14255889A JPH036769A JP H036769 A JPH036769 A JP H036769A JP 14255889 A JP14255889 A JP 14255889A JP 14255889 A JP14255889 A JP 14255889A JP H036769 A JPH036769 A JP H036769A
- Authority
- JP
- Japan
- Prior art keywords
- layer
- units
- weights
- unit
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
本発明は、パタン識別、音声認識などに利用されている
ニューラルネット学習アルゴリズムにおける各ユニット
間の結合の修正を並列処理によって、極めて短い時間で
行わせる方法及びそれに用いる装置に関する。
ニューラルネット学習アルゴリズムにおける各ユニット
間の結合の修正を並列処理によって、極めて短い時間で
行わせる方法及びそれに用いる装置に関する。
先ず、従来提案されている階層構造のネットワークにお
ける学習アルゴリズムであるバックプロパゲーションを
、第1図を伴って、簡単のため、中間層が1個、各層で
のユニット数が3個である場合の例て、以下に、簡単に
説明する。 なお、中間層が2個以上である場合でも、また、各層に
おけるユニット数が4以上である場合についても、以下
述べるところに準じている。 ネットワークは、第1図に示すように、階層構造を用い
ており、入力層、中間層及び出力層は、入力層から中間
層の方向に、次でその中間層から出力層の方向にという
単方向結合をしているが、各層内でのユニット間結合は
なく、また、出力層から入ノ〕層へと向かう方向の結合
もない。 その詳細にライては、D、 F、 Ru5e Ihar
t、 EGeoffery、and R,J、 Wil
lioams、 ”LearningInternat
ional Presentations by Er
rorPropagation、 ” In Para
llel DistributedProcessln
g:Exploration in the Hicr
ostructures of Cognitio
n (Vol、1 、pp、318−362.HI
丁Press、 Caa+bridge、 Hassa
chusettes、 1986を参照されたい。 バックプロパゲーション(後向き伝送)アルゴリズムは
、多層ネットワークにおける誤差関数の極小値を求める
学園アルゴリズムである。 データは、入力層から中間層を通って、出力層に伝搬す
る。 前向き伝播処理においては、第1番目の層のユニットの
出力値は、そのユニットと結合されている、第(IL−
1)層の全てのユニットの重み付き和に、微分可能な関
数(例えばシグモイド(s i gmo i d)関数
)を適用して得られる。 前向き伝搬処理では、このような処理を、各層において
、繰返し行う。 L個の層から成るネットワークにおける第込番目の層の
ユニットの入出力関係は、以下のように示される。 u、−ΣW= (1)a、 (0−1)+
1J J(1) a −f (u・ (1))・・・・・・・・・・・
・・・・(2)1≦i≦N・ 1≦1≦L 後向き伝搬処理では、出力層から入力層に向って、前層
での誤差の重み付き和を計算しながら、順に誤差勾配を
求め、誤差を小さくするように小みの修正を行う。 すなわち、ネットワークに、あるパタンを与えた時の各
重みの変化 八W ’Jは、△W・・=δ ・ 0・
・・・・・・・・・・・・・・・・・・ (3)
IJ J ぐある。 ここて、01はユニットiから、ユニットjへの入力値
を示す。 δ は、ユニットjが出カニニットであるか中間ユニッ
トであるかによって異なる。 ユニットjが出カニニットである場合、δ。
ける学習アルゴリズムであるバックプロパゲーションを
、第1図を伴って、簡単のため、中間層が1個、各層で
のユニット数が3個である場合の例て、以下に、簡単に
説明する。 なお、中間層が2個以上である場合でも、また、各層に
おけるユニット数が4以上である場合についても、以下
述べるところに準じている。 ネットワークは、第1図に示すように、階層構造を用い
ており、入力層、中間層及び出力層は、入力層から中間
層の方向に、次でその中間層から出力層の方向にという
単方向結合をしているが、各層内でのユニット間結合は
なく、また、出力層から入ノ〕層へと向かう方向の結合
もない。 その詳細にライては、D、 F、 Ru5e Ihar
t、 EGeoffery、and R,J、 Wil
lioams、 ”LearningInternat
ional Presentations by Er
rorPropagation、 ” In Para
llel DistributedProcessln
g:Exploration in the Hicr
ostructures of Cognitio
n (Vol、1 、pp、318−362.HI
丁Press、 Caa+bridge、 Hassa
chusettes、 1986を参照されたい。 バックプロパゲーション(後向き伝送)アルゴリズムは
、多層ネットワークにおける誤差関数の極小値を求める
学園アルゴリズムである。 データは、入力層から中間層を通って、出力層に伝搬す
る。 前向き伝播処理においては、第1番目の層のユニットの
出力値は、そのユニットと結合されている、第(IL−
1)層の全てのユニットの重み付き和に、微分可能な関
数(例えばシグモイド(s i gmo i d)関数
)を適用して得られる。 前向き伝搬処理では、このような処理を、各層において
、繰返し行う。 L個の層から成るネットワークにおける第込番目の層の
ユニットの入出力関係は、以下のように示される。 u、−ΣW= (1)a、 (0−1)+
1J J(1) a −f (u・ (1))・・・・・・・・・・・
・・・・(2)1≦i≦N・ 1≦1≦L 後向き伝搬処理では、出力層から入力層に向って、前層
での誤差の重み付き和を計算しながら、順に誤差勾配を
求め、誤差を小さくするように小みの修正を行う。 すなわち、ネットワークに、あるパタンを与えた時の各
重みの変化 八W ’Jは、△W・・=δ ・ 0・
・・・・・・・・・・・・・・・・・・ (3)
IJ J ぐある。 ここて、01はユニットiから、ユニットjへの入力値
を示す。 δ は、ユニットjが出カニニットであるか中間ユニッ
トであるかによって異なる。 ユニットjが出カニニットである場合、δ。
【J、
δ、−(t、−0,)f’ (net= )J
JJ J
・・・・・・・・・・・・・・・・・・ (4)である
。 ここて、t、は、教師信号(望ましい値)を示し、また
、n e t Jは、 net −ΣW・・0 ・ J JI J ・・・・・・・・・・・・・・・ (4) ′ぐある。 ユニットjが中間ユニットである場合、δ・は、 δ、 −f’ (net−)ΣδjWkJJ
J ・・・・・・・・・・・・・・・・・・(5)である。 バックプロパゲーションアルゴリズムにおける具体的な
処理は、次のとおりである。 (1)前向き伝搬処理 (a)入力値または前層のユニットの出力値を該当する
重みに伝える。 (b)この値と重みの積を計算する。 (C)次の層の同じユニットに接続されている重みごと
に重み付き和を計算する。 (d)この値に関数fを適用する。 (11)後向き伝搬処理 <a)該当するΦみに誤差を伝える。 (b)誤差と重みの積を計算する。 (C)前層(出力に近い方)のユニットからのこれらの
値の和を計→する。 (d)関数fの微分を計算する。 (e)誤差勾配に従って重みを修正する。 上述した処理を、収束するまで繰返す。 従来、このような処理は、逐次処理型の汎用計0機上で
行われていた。 この場合の上述した処理には、相隣る層のユニットが、
それぞれm個及びn個の個数を有するとき、m×nのユ
ニット間結合があるため、学習に、多数回の繰返しが必
要である。 このため、nの値が大きなニューラルネットにおいては
、上述した処理に膨大な時間を必要としでいた。 【本発明の目的】 本発明は、上述したバックプロパゲーションアルゴリズ
ムを、高い並列度で処理することによって、処理を高速
化することを目的としている。
JJ J
・・・・・・・・・・・・・・・・・・ (4)である
。 ここて、t、は、教師信号(望ましい値)を示し、また
、n e t Jは、 net −ΣW・・0 ・ J JI J ・・・・・・・・・・・・・・・ (4) ′ぐある。 ユニットjが中間ユニットである場合、δ・は、 δ、 −f’ (net−)ΣδjWkJJ
J ・・・・・・・・・・・・・・・・・・(5)である。 バックプロパゲーションアルゴリズムにおける具体的な
処理は、次のとおりである。 (1)前向き伝搬処理 (a)入力値または前層のユニットの出力値を該当する
重みに伝える。 (b)この値と重みの積を計算する。 (C)次の層の同じユニットに接続されている重みごと
に重み付き和を計算する。 (d)この値に関数fを適用する。 (11)後向き伝搬処理 <a)該当するΦみに誤差を伝える。 (b)誤差と重みの積を計算する。 (C)前層(出力に近い方)のユニットからのこれらの
値の和を計→する。 (d)関数fの微分を計算する。 (e)誤差勾配に従って重みを修正する。 上述した処理を、収束するまで繰返す。 従来、このような処理は、逐次処理型の汎用計0機上で
行われていた。 この場合の上述した処理には、相隣る層のユニットが、
それぞれm個及びn個の個数を有するとき、m×nのユ
ニット間結合があるため、学習に、多数回の繰返しが必
要である。 このため、nの値が大きなニューラルネットにおいては
、上述した処理に膨大な時間を必要としでいた。 【本発明の目的】 本発明は、上述したバックプロパゲーションアルゴリズ
ムを、高い並列度で処理することによって、処理を高速
化することを目的としている。
本発明は、最大の層内のユニット数がnである時、n×
nの2次元格子状に配列されているf−夕の授受が可能
な演算要素群上て、第(−1)層の全てのユニットから
の第1層のユニットへの重み付き入力の計算を同時に行
い、行方向あるいは列方向にデータ転送及び演(1を繰
返すことて、各ユニットへの入力値の総和が並列に計算
でき、同様の処理を繰返すことて、入力に対して正しい
出力がiqられるように、各ユニット間の結合の修正が
各演算要素上で同時に計算できるように、k個のユニッ
トから成る第1番目の層と、m1llのユニットから成
る第(+1)番目の層間の最大k×m個の重みを、第1
層の第j番目のユニットから第(i+1)層の全てのユ
ニット間の重みを演算要素群の第1列に順に対応させ、
第(i −)−1)層の第j番目のユニットから第(i
+2)lidの全てのユニット間への重みを演算要素群
の第1行に順に対応させて、学習を並列に行う。 次に、このような処理を、前半のため第1図に示すネッ
トワークモデルをもとに、具体例で説明すれば、次のと
おりである。 なJ5、中間層の数や、各層におけるユニットの数が、
第1図の場合から増加しても、下記の説明に準じた処理
を行わせることができる。 あらかじめ、全ての重みの初期値、入力値、教師信号(
望ましいff1)を求めておく。 これらのデータを、第2図に示すように、各プロセッサ
PEに送る。 以上の処理の後、次の手順に従って処理を行う。 (1)前向き伝Wj処理(第3図A) (1)各プロセッサPEて、入力値と、入力層と中間層
との間の重みの値との乗 nを行わせる。 (ii)(i)上で得られた乗算結果の値を、例えば各
行ごとに、右(または左)か ら順に加鼻を繰返しながら左(または 右)方向に値を転送し、左端プロセッ サ列PEに、上述した(1)式の] C71山を格納さ
ぼる。 (iii )左(または右)端ブ0tl−ッサPEの列
において、この値に関数fを適用し た上述した(2)式の結果を、各行ご とに右(または左)方向に放送させる。 (iv)各プロセッサーPEて、(1〉の場合と同様に
、(iii )で得られた値と、次の層の重みの値との
乗算を行わせる。 (v)<iv)で得られた乗算結果の値を、例えば各列
ごとに、上(または下)か ら順に加算を繰返しながら、下(また は上)方向に値を放送し、下(または 上)端プロセッサPEの行に、上述し た(1)式の計口値を格納させる。 (Vi)下(または上)端プロセッサ行において、この
値に関数fを適用した上述 した(2)式の結果を、各列ごとに、 上(または下)方向に放送させる。 (vj )以上の処理を繰返すことによって、出力層に
出ノJを得、その出力値を、各列ごとに、下(または上
)方向に放送 させる。 (2)後向き伝搬処理(第3図B) (1)各プロセッサPEにおいて、上述した(4)式の
値を計算させる。このと き、各プロセッサPEの列て、同じ計 算を行なわせる。 (ii )各プロセッサにおいて、上述した(3)式の
給を計算させ、各プロセッ サPEにvj当てられている重みを更新させる。 (iii)各プロセッサPEの行ごとに、例えば行方向
に加算を繰返すことて、上述 した(5)式の値を求めさせる。 (iv )各プロセッサPEにおいて、上述した(3)
式の値を計算させ、各プロセ ッサPEにvj当てられている重みを更新させる。 (V)転送方向を行方向及び列方向に交互に変化させな
がら、上述した( iii )及び(iv )の処理を
、入力層に達するよ′C続けさせる。 本発明は、以上のように、重みを各プロセッサに割当て
、行方向及び列方向のデータ転送、演算を繰返し行わせ
ることて、演算だけでなく、データ転送においても、高
い並列度で学習を行わUることを特徴としている。
nの2次元格子状に配列されているf−夕の授受が可能
な演算要素群上て、第(−1)層の全てのユニットから
の第1層のユニットへの重み付き入力の計算を同時に行
い、行方向あるいは列方向にデータ転送及び演(1を繰
返すことて、各ユニットへの入力値の総和が並列に計算
でき、同様の処理を繰返すことて、入力に対して正しい
出力がiqられるように、各ユニット間の結合の修正が
各演算要素上で同時に計算できるように、k個のユニッ
トから成る第1番目の層と、m1llのユニットから成
る第(+1)番目の層間の最大k×m個の重みを、第1
層の第j番目のユニットから第(i+1)層の全てのユ
ニット間の重みを演算要素群の第1列に順に対応させ、
第(i −)−1)層の第j番目のユニットから第(i
+2)lidの全てのユニット間への重みを演算要素群
の第1行に順に対応させて、学習を並列に行う。 次に、このような処理を、前半のため第1図に示すネッ
トワークモデルをもとに、具体例で説明すれば、次のと
おりである。 なJ5、中間層の数や、各層におけるユニットの数が、
第1図の場合から増加しても、下記の説明に準じた処理
を行わせることができる。 あらかじめ、全ての重みの初期値、入力値、教師信号(
望ましいff1)を求めておく。 これらのデータを、第2図に示すように、各プロセッサ
PEに送る。 以上の処理の後、次の手順に従って処理を行う。 (1)前向き伝Wj処理(第3図A) (1)各プロセッサPEて、入力値と、入力層と中間層
との間の重みの値との乗 nを行わせる。 (ii)(i)上で得られた乗算結果の値を、例えば各
行ごとに、右(または左)か ら順に加鼻を繰返しながら左(または 右)方向に値を転送し、左端プロセッ サ列PEに、上述した(1)式の] C71山を格納さ
ぼる。 (iii )左(または右)端ブ0tl−ッサPEの列
において、この値に関数fを適用し た上述した(2)式の結果を、各行ご とに右(または左)方向に放送させる。 (iv)各プロセッサーPEて、(1〉の場合と同様に
、(iii )で得られた値と、次の層の重みの値との
乗算を行わせる。 (v)<iv)で得られた乗算結果の値を、例えば各列
ごとに、上(または下)か ら順に加算を繰返しながら、下(また は上)方向に値を放送し、下(または 上)端プロセッサPEの行に、上述し た(1)式の計口値を格納させる。 (Vi)下(または上)端プロセッサ行において、この
値に関数fを適用した上述 した(2)式の結果を、各列ごとに、 上(または下)方向に放送させる。 (vj )以上の処理を繰返すことによって、出力層に
出ノJを得、その出力値を、各列ごとに、下(または上
)方向に放送 させる。 (2)後向き伝搬処理(第3図B) (1)各プロセッサPEにおいて、上述した(4)式の
値を計算させる。このと き、各プロセッサPEの列て、同じ計 算を行なわせる。 (ii )各プロセッサにおいて、上述した(3)式の
給を計算させ、各プロセッ サPEにvj当てられている重みを更新させる。 (iii)各プロセッサPEの行ごとに、例えば行方向
に加算を繰返すことて、上述 した(5)式の値を求めさせる。 (iv )各プロセッサPEにおいて、上述した(3)
式の値を計算させ、各プロセ ッサPEにvj当てられている重みを更新させる。 (V)転送方向を行方向及び列方向に交互に変化させな
がら、上述した( iii )及び(iv )の処理を
、入力層に達するよ′C続けさせる。 本発明は、以上のように、重みを各プロセッサに割当て
、行方向及び列方向のデータ転送、演算を繰返し行わせ
ることて、演算だけでなく、データ転送においても、高
い並列度で学習を行わUることを特徴としている。
次に、第4図を伴って、本発明の実施例を述べよう。
、本発明の一例構成を示し、前処理部1と、インターフ
ェイス部2と、アレイ部4と、制御部5とを有する。 前処理部1は、アレイ部4及びインターフェイス部2を
制御する制御部5を制御するとともに、各重みの初II
値、学習をさせる各種パタン(入力パタン)及びそれら
に対応する望ましい出力信号(教師信号)を準罰する処
理を行い、逐次型計障機で構成されている。 第5図は、第4図に示されているアレイ部4の一例構成
を示し、本図において、PEはプロセッサ、6はv制御
信号線を示す。 第6図は、第5図に示す各プロセッサPEを示し、本図
において、301〜304は選択回路、305はレジス
タ、306はアキュムレータ、307は演算器、308
はレジスタファイル、309は制御レジスタである。 この場合、選択回路301は、相隣るプロセッサPEと
通信を行う場合、データを上下左右のどの隣接するプロ
セッサPEから受は取るかを選択する機能を有する。 また、選択回路302は、レジスタ305にどのデータ
を格納するかを選択する機能を有する。 さらに、選択回路303は、隣接するプロセッサPEと
通信を行う場合、どのデータを出力するかを選択する機
能を有する。 ここて、選択回路301の出力を選択すれば、隣接する
プロセッサPEからのf−夕が、レジスタ305などの
記憶素子に格納されることなしに、そのまま出力される
。 また、この選択回路303は、制御部5から全てのプロ
セッサPEに送られる制御11信号6によって、全ての
ブロセッ’+PEを通じて、同一の動きをするだけでな
く、プロセッサPE内の制御レジスタ309に格納され
ているデータによって、各プロセッサPEで個別に出力
信号を選択できる機能を有する。 さらに、選択回路304は、演算器307の入力の片側
ボートに入力するデータを選択する機能を有する。 第5図に示すアレイ部4において、プロセッサPE間の
通信を行う場合は、各プロセッサPEのレジスタ305
をシフトレジスタのように動作させ、各プロセッサPE
が、データを、−斉に、上(または下、もしくは左、ま
たは右)に隣接しているプロセッサPEにシフト転送さ
せることができる。 また、プロセッサPEにおける制御レジスタ309を適
当に設定し、選択回路303を適当に制御すれば、ある
プロセッサPEでは演算器307の出力、あるいはレジ
スタ305の出力を、そのプロセッサPEに隣接してい
る他のプロセッサPEに出力しくこのプロセッサPEを
、発振プロセッサPEと呼ぶ)、別のプロセッサPEで
は他のブロセッ1tPEからのデータを、レジスタ30
5に書き込むと同時に、選択回路303を経て出力する
(このプロセッサPEを受信プロセッサPEと呼ぶ)こ
とができる。このような機能を、リップル転送と称す。 第4図に示す本発明による装置を動作させるには、前処
理部1′C″、各ユニット間の重みの初期値、学習をさ
せる各種パタン(入力パタン)及びそれらに対応する望
ましい出力信号(教師信号)を作成し、インタフェイス
部2を介して、第3図に示すように、各プロセッサPE
にデータが割当てられるように、アレイ部4に送る。 このとき、教師信号、及び入力パタンについては、各プ
ロセッサPEの列(または行)て、同一データであるの
て、上述したリップル転送を用いて、データを送る。 重みの所期値については、各プロセッサPEによって異
なる値をhするのて、通常のシフト転送を行わせる。 各プロセッサPEにおいて、データは、レジスタ305
から演算器307を介して、レジスタファイル308の
適当なアドレスに格納される。 第4図に示されている制御部5は、前処理部1からのi
l制御信号に従って、以後の処理を行うようなインター
フェイス部2、アレイ部4を制器する命令群を、逐次生
成する。 先ず、入力パタンあるいは重みをレジスタファイル30
8から読出して、アキュムレータ306に格納した後、
入力パタンと重みの積の演算を演算器307で行い、そ
の演算結果を、アキュムレータ306に格納し、その後
、レジスタファイル308に格納する。 各プロセッサPEの行(または列)毎に、上述したリッ
プル転送を用いた加算(リップル加算)を用いて、これ
らの値を順に加qさせ、各プロセッサPEの行(または
列)における端のプロセッサPEに、行(または列)ご
との結果を格納する。 上述したリップル加算を行うには、選択回路301の出
力を選択し、演W7!I307て、レジスタファイル3
08のデータと加算を行うととbに、選択回路302が
、選択回路301の出力を選択し、それを、隣接してい
るプロセッサPEからのデータを格納することで行われ
る。 以上のようにして、次の層の各ユニットの入力データが
、並列に求められたことになる。 この各プロセッサの行(または列)における端のプロセ
ッサPEに格納された重み付き和の結果を、各行(また
は列)ごとの他のブロセツ’tPEに、リップル転送を
用いて放送し、各プロセッサPEて、この値を入力とし
て、シグモイド関数の値を計算する。 この場合、各プロセッサの行(または列)にJ5ける端
のプロセッサρ[において、シグモイド関数J数の計p
を行った後、1テ(または列)ごとに、リップル転送を
用いて放送しても良い。 次に、上述したシグモイド関数の値を、次の層のユニツ
1〜の入力データとして、上述したと同様な処理を行う
。 ただし、この場合、前述したように、データの転送方向
が、列(または行)方向になる。 そして、上述したと同様の処理を、中間層の数に応じた
回数だけ行う。 また、後方の伝搬処理についても、詳細説明は省略する
が、上述したと同様の方法て、行わせることができる。 なお、各層のユニットの数が一致しない場合は、接続関
係のない重みを常にOにするように制器することて、フ
ィードバックのない任意の階層型ネットワーク構造に適
応可能である。 また、各層のユニット数が、2次元プロセッサPEアレ
イの一辺のプロセッサPEの数を超えるときは、単純に
一問題のアレイを、物理アレイに格納できる大きさに折
畳む、すなわち、プロセッサPE内のレジスタファイル
あるいは、各プロセッサPEから直接アクセス可能なロ
ーカルメモリの深さ方向に折畳んだデータを格納し、実
プロセツサPEアレイごとに、シリアルに処理すること
で適用可能である。 c本発明の効果】 上述したところから明らかなように、本発明によれば、
プロセッサPEの数を増やすことによって、それに応じ
て並列度が向上し、大規模なネットワークのシミュレー
ションを高速化できる。 また−全体の処理時間のほとんどを占める学習処理を行
うプロセッサPEアレイ部が、単純な同一構成のプロセ
ッサPEを規則正しく2次元状に接続している構成を有
するのて、容易にLSI化でき、同一ハードウエア品で
は、通常の32ピッ1−プロセッサに比べて、多くのプ
ロセッサが搭載できるのて、大規模なネットワークのシ
ミュレーションにとって好適である。 また、層ごとの重みのHIR,fftみ付ぎ和の計算、
シグモイド関数の計口を、全て並列に行うのて、極めて
^速に学習を行うことができる。 法人は、本発明を実際に実現した時のシミュレーション
速度と、汎用計算機上で行った従来アルゴリズムによる
シミュレーション速度の比較を示している。 出力ニューロン数−256、学習回数=100回の場合
である。 上表から明らかなように、本発明によれば。 大型汎用計算機上のシミュレーション速度に比べて約4
5倍の学習速度が得られる。 さらに、本発明によれば、文字認識処理に適用した18
合、学習溜みの文字パタンだけでなく、未知のパタンに
ついても、丈でに学習済みのパタンの中から選択して答
を出力するネットワークのΦみの値を、極めて短vf間
で1qることができる。
ェイス部2と、アレイ部4と、制御部5とを有する。 前処理部1は、アレイ部4及びインターフェイス部2を
制御する制御部5を制御するとともに、各重みの初II
値、学習をさせる各種パタン(入力パタン)及びそれら
に対応する望ましい出力信号(教師信号)を準罰する処
理を行い、逐次型計障機で構成されている。 第5図は、第4図に示されているアレイ部4の一例構成
を示し、本図において、PEはプロセッサ、6はv制御
信号線を示す。 第6図は、第5図に示す各プロセッサPEを示し、本図
において、301〜304は選択回路、305はレジス
タ、306はアキュムレータ、307は演算器、308
はレジスタファイル、309は制御レジスタである。 この場合、選択回路301は、相隣るプロセッサPEと
通信を行う場合、データを上下左右のどの隣接するプロ
セッサPEから受は取るかを選択する機能を有する。 また、選択回路302は、レジスタ305にどのデータ
を格納するかを選択する機能を有する。 さらに、選択回路303は、隣接するプロセッサPEと
通信を行う場合、どのデータを出力するかを選択する機
能を有する。 ここて、選択回路301の出力を選択すれば、隣接する
プロセッサPEからのf−夕が、レジスタ305などの
記憶素子に格納されることなしに、そのまま出力される
。 また、この選択回路303は、制御部5から全てのプロ
セッサPEに送られる制御11信号6によって、全ての
ブロセッ’+PEを通じて、同一の動きをするだけでな
く、プロセッサPE内の制御レジスタ309に格納され
ているデータによって、各プロセッサPEで個別に出力
信号を選択できる機能を有する。 さらに、選択回路304は、演算器307の入力の片側
ボートに入力するデータを選択する機能を有する。 第5図に示すアレイ部4において、プロセッサPE間の
通信を行う場合は、各プロセッサPEのレジスタ305
をシフトレジスタのように動作させ、各プロセッサPE
が、データを、−斉に、上(または下、もしくは左、ま
たは右)に隣接しているプロセッサPEにシフト転送さ
せることができる。 また、プロセッサPEにおける制御レジスタ309を適
当に設定し、選択回路303を適当に制御すれば、ある
プロセッサPEでは演算器307の出力、あるいはレジ
スタ305の出力を、そのプロセッサPEに隣接してい
る他のプロセッサPEに出力しくこのプロセッサPEを
、発振プロセッサPEと呼ぶ)、別のプロセッサPEで
は他のブロセッ1tPEからのデータを、レジスタ30
5に書き込むと同時に、選択回路303を経て出力する
(このプロセッサPEを受信プロセッサPEと呼ぶ)こ
とができる。このような機能を、リップル転送と称す。 第4図に示す本発明による装置を動作させるには、前処
理部1′C″、各ユニット間の重みの初期値、学習をさ
せる各種パタン(入力パタン)及びそれらに対応する望
ましい出力信号(教師信号)を作成し、インタフェイス
部2を介して、第3図に示すように、各プロセッサPE
にデータが割当てられるように、アレイ部4に送る。 このとき、教師信号、及び入力パタンについては、各プ
ロセッサPEの列(または行)て、同一データであるの
て、上述したリップル転送を用いて、データを送る。 重みの所期値については、各プロセッサPEによって異
なる値をhするのて、通常のシフト転送を行わせる。 各プロセッサPEにおいて、データは、レジスタ305
から演算器307を介して、レジスタファイル308の
適当なアドレスに格納される。 第4図に示されている制御部5は、前処理部1からのi
l制御信号に従って、以後の処理を行うようなインター
フェイス部2、アレイ部4を制器する命令群を、逐次生
成する。 先ず、入力パタンあるいは重みをレジスタファイル30
8から読出して、アキュムレータ306に格納した後、
入力パタンと重みの積の演算を演算器307で行い、そ
の演算結果を、アキュムレータ306に格納し、その後
、レジスタファイル308に格納する。 各プロセッサPEの行(または列)毎に、上述したリッ
プル転送を用いた加算(リップル加算)を用いて、これ
らの値を順に加qさせ、各プロセッサPEの行(または
列)における端のプロセッサPEに、行(または列)ご
との結果を格納する。 上述したリップル加算を行うには、選択回路301の出
力を選択し、演W7!I307て、レジスタファイル3
08のデータと加算を行うととbに、選択回路302が
、選択回路301の出力を選択し、それを、隣接してい
るプロセッサPEからのデータを格納することで行われ
る。 以上のようにして、次の層の各ユニットの入力データが
、並列に求められたことになる。 この各プロセッサの行(または列)における端のプロセ
ッサPEに格納された重み付き和の結果を、各行(また
は列)ごとの他のブロセツ’tPEに、リップル転送を
用いて放送し、各プロセッサPEて、この値を入力とし
て、シグモイド関数の値を計算する。 この場合、各プロセッサの行(または列)にJ5ける端
のプロセッサρ[において、シグモイド関数J数の計p
を行った後、1テ(または列)ごとに、リップル転送を
用いて放送しても良い。 次に、上述したシグモイド関数の値を、次の層のユニツ
1〜の入力データとして、上述したと同様な処理を行う
。 ただし、この場合、前述したように、データの転送方向
が、列(または行)方向になる。 そして、上述したと同様の処理を、中間層の数に応じた
回数だけ行う。 また、後方の伝搬処理についても、詳細説明は省略する
が、上述したと同様の方法て、行わせることができる。 なお、各層のユニットの数が一致しない場合は、接続関
係のない重みを常にOにするように制器することて、フ
ィードバックのない任意の階層型ネットワーク構造に適
応可能である。 また、各層のユニット数が、2次元プロセッサPEアレ
イの一辺のプロセッサPEの数を超えるときは、単純に
一問題のアレイを、物理アレイに格納できる大きさに折
畳む、すなわち、プロセッサPE内のレジスタファイル
あるいは、各プロセッサPEから直接アクセス可能なロ
ーカルメモリの深さ方向に折畳んだデータを格納し、実
プロセツサPEアレイごとに、シリアルに処理すること
で適用可能である。 c本発明の効果】 上述したところから明らかなように、本発明によれば、
プロセッサPEの数を増やすことによって、それに応じ
て並列度が向上し、大規模なネットワークのシミュレー
ションを高速化できる。 また−全体の処理時間のほとんどを占める学習処理を行
うプロセッサPEアレイ部が、単純な同一構成のプロセ
ッサPEを規則正しく2次元状に接続している構成を有
するのて、容易にLSI化でき、同一ハードウエア品で
は、通常の32ピッ1−プロセッサに比べて、多くのプ
ロセッサが搭載できるのて、大規模なネットワークのシ
ミュレーションにとって好適である。 また、層ごとの重みのHIR,fftみ付ぎ和の計算、
シグモイド関数の計口を、全て並列に行うのて、極めて
^速に学習を行うことができる。 法人は、本発明を実際に実現した時のシミュレーション
速度と、汎用計算機上で行った従来アルゴリズムによる
シミュレーション速度の比較を示している。 出力ニューロン数−256、学習回数=100回の場合
である。 上表から明らかなように、本発明によれば。 大型汎用計算機上のシミュレーション速度に比べて約4
5倍の学習速度が得られる。 さらに、本発明によれば、文字認識処理に適用した18
合、学習溜みの文字パタンだけでなく、未知のパタンに
ついても、丈でに学習済みのパタンの中から選択して答
を出力するネットワークのΦみの値を、極めて短vf間
で1qることができる。
第1図は、3層構造の階層型ネットワークを示す図であ
る。 第2図は、プロセッサPEへの各種データのマツピング
を承り図である。 第3図Δは、前向き伝搬処理時の処理を示ず図である。 第3図Bは、後向き伝WI処理時の処理を示す図である
。 第4図は、本発明の一例構成を示す図である。 第5図は、そのアレイ部の一例構成を示す図である。 第6図は、そのプロセッサPEの一例構成を示す図であ
る。
る。 第2図は、プロセッサPEへの各種データのマツピング
を承り図である。 第3図Δは、前向き伝搬処理時の処理を示ず図である。 第3図Bは、後向き伝WI処理時の処理を示す図である
。 第4図は、本発明の一例構成を示す図である。 第5図は、そのアレイ部の一例構成を示す図である。 第6図は、そのプロセッサPEの一例構成を示す図であ
る。
Claims (1)
- 【特許請求の範囲】 1、複数の入力値の総和に、非線形で微分可能な関数を
作用させて生じる値を出力値とする複数のユニットと、
それらユニット間に、それらを接続して、入力値に対し
て適当な重みを課した出力を伝搬させる階層的ネットワ
ークから成るニューラルネットワーク上で、複数の入力
パタンに対してそれぞれ望ましい出力値に近ずくように
、ユニット間の重みを修正することによつて行われる学
習(自己組織化)を並列に処理する方法において、 最大の層内でのユニット数をnとする時、 演算要素が、n×nの2次元格子状に配置され、 少なくとも隣接する演算要素間においてデータの授受が
可能である演算要素群上で、第(i−1)層における全
てのユニットからの第i層のユニットへの重み付き入力
の計算を同時的に行い、行方向あるいは列方向にデータ
転送及び演算を繰り返すことで、各ユニツトへの入力値
の総和を並列に計算し、各ユニット間の結合の修正を各
演算要素上で同時に計算し、同様の処理を繰り返すこと
で、入力に対して正しい出力が得られるように、k個の
ユニットから成る第i番目の層と、m個のユニットから
成る第(i+1)番目の層間の最大k×m個の重みを、
第i層の第j番目のユニットから第(i+1)層の全て
のユニット間の重みを演算要素群の第j列に順に対応さ
せ、第(i+1)層の第j番目のユニットから第(i+
2)層の全てのユニット間へ重みを演算要素群の第j行
に順に対応させて、学習を並列に行なれることを特徴と
するニューラルネット並列シミュレーション方法。 2、複数の入力値の総和に、非線形で微分可能な関数を
作用させて生じる値を出力値とする複数のユニットと、
それらの間に、それらを接続し入力値に対して適当な重
みを課した出力を伝搬させる階層的ネットワークから成
るニューラルネットワーク上で、複数の入力パタンに対
してそれぞれ望ましい出力値に近ずくようにユニット間
の重みを修正することによつて行われる学習(自己組織
化)を並列に処理するニューラルネットワーク並列シミ
ュレーション装置において、 (イ)論理演算・加減算・乗算の演算が行える演算回路
を有する演算要素をn×nの2次元状に相互接続して配
され、行または列ごとにリップル転送を行いながら加算
または、データ転送を行う機能を有するとともに、適当
な距離だけ離れた演算要素と直接接続されているバイパ
スデータ転送路とを有し、リップル転送を用いて行また
は列方向のデータの各演算要素への放送が可能なプロセ
ッサアレイと、 (ロ)これを制御する制御部とを有し、 (ハ)k個のユニットから成る第i番目の層とm個のユ
ニットから成る第(i+1)番目の層間の最大k×m個
の重みを、各演算要素に、行方向あるいは列方向にデー
タ転送及び演算を繰返すことで、各ユニットへの入力値
の総和が並列に計算できるように、第i層の第j番目の
ユニットから、第(i+1)層の全てのユニット間の重
みを演算要素群の第j列に順に対応させて割当て、且つ
第(i+1)層の第j番目のユニットから、第(i+2
)層の全てのユニット間へ重みを演算要素群の第j行に
順に対応させて割当て、 (ニ)一の層のユニットと、それと隣る層のユニットと
の間における重み付き入力の計算、結合の修正を、全演
算要素上で同時に行わせ、 (ホ)上記処理を他の入力パタンについて、繰返すこと
で学習を並列に行わせるようにしたことを特徴とするニ
ューラルネット並列シミュレーション装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14255889A JP2766858B2 (ja) | 1989-06-05 | 1989-06-05 | ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14255889A JP2766858B2 (ja) | 1989-06-05 | 1989-06-05 | ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH036769A true JPH036769A (ja) | 1991-01-14 |
| JP2766858B2 JP2766858B2 (ja) | 1998-06-18 |
Family
ID=15318133
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14255889A Expired - Fee Related JP2766858B2 (ja) | 1989-06-05 | 1989-06-05 | ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2766858B2 (ja) |
-
1989
- 1989-06-05 JP JP14255889A patent/JP2766858B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2766858B2 (ja) | 1998-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6654730B1 (en) | Neural network arithmetic apparatus and neutral network operation method | |
| KR950008840B1 (ko) | 뉴로 칩(neuro chip) | |
| US20160196488A1 (en) | Neural network computing device, system and method | |
| US5604840A (en) | Information processing apparatus | |
| JPH04293151A (ja) | 並列データ処理方式 | |
| JPH04507026A (ja) | 学習機械シナプス・プロセッサ・システム装置 | |
| CN110858504B (zh) | 产生化学结构的方法、神经网络设备和非瞬时计算机可读的记录介质 | |
| EP0484507A1 (en) | Spin: a sequential pipelined neurocomputer | |
| WO1994001823A1 (en) | A tree-like perceptron and a method for parallel distributed training of such perceptrons | |
| US5630020A (en) | Learning method and neural network structure | |
| JP2001117900A (ja) | ニューラルネットワーク演算装置 | |
| JPH076146A (ja) | 並列データ処理システム | |
| JPH04316153A (ja) | ニューロプロセッサ | |
| JPH036769A (ja) | ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置 | |
| JPH07210534A (ja) | ニューラルネットワーク | |
| JPH04237388A (ja) | ニューロプロセッサ | |
| JPH05159087A (ja) | ニューロプロセッサ | |
| JPH05128285A (ja) | ニユーロプロセツサ | |
| JPH05197707A (ja) | 情報処理システム | |
| CN110163352B (zh) | 电路规划结果产生方法与系统 | |
| JPH05128082A (ja) | 階層ネツトワーク構成データ処理装置とその学習処理方法 | |
| JP2877413B2 (ja) | 余剰ニューロン決定処理方式 | |
| JPH06139218A (ja) | ディジタル集積回路を用いて神経回路網を完全に並列にシミュレートするための方法及び装置 | |
| WO2020213670A1 (ja) | ニューラル計算装置、および、ニューラル計算方法 | |
| JPH07101415B2 (ja) | 情報処理装置及びその学習方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |