JPH0690704B2 - ニューロコンピュータ - Google Patents

ニューロコンピュータ

Info

Publication number
JPH0690704B2
JPH0690704B2 JP63330971A JP33097188A JPH0690704B2 JP H0690704 B2 JPH0690704 B2 JP H0690704B2 JP 63330971 A JP63330971 A JP 63330971A JP 33097188 A JP33097188 A JP 33097188A JP H0690704 B2 JPH0690704 B2 JP H0690704B2
Authority
JP
Japan
Prior art keywords
processor
processors
weight
output
cell
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.)
Expired - Fee Related
Application number
JP63330971A
Other languages
English (en)
Other versions
JPH02178757A (ja
Inventor
好司 藤本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP63330971A priority Critical patent/JPH0690704B2/ja
Priority to EP89124130A priority patent/EP0377221B1/en
Priority to DE68927474T priority patent/DE68927474T2/de
Publication of JPH02178757A publication Critical patent/JPH02178757A/ja
Priority to US07/885,239 priority patent/US5170463A/en
Publication of JPH0690704B2 publication Critical patent/JPH0690704B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Image Analysis (AREA)

Description

【発明の詳細な説明】 <産業上の利用分野> 本発明は、神経回路素子モデルに基づいて構成された大
規模な神経回路網を多数のプロセッサーを用いてシミュ
レーションするニューロコンピュータに関するものであ
る。
<従来の技術> 従来、神経回路素子モデルに基づいて構成された大規模
な神経回路網をシミュレーションする方法としては、高
速の汎用コンピュータが用いられているが、小規模な神
経回路網でも学習にかなりの時間が必要であり、中規模
の神経回路網では、数週間の単位の時間が必要となる。
このため、最近では計算の高速化のために、マルチプロ
セッサーによる並列処理が行われている。神経回路網を
構成する神経回路素子のモデルは多数提案されている
が、1つの神経回路網で使われる神経回路素子は1種類
の場合が多く、希に複数個のモデルが使用されることも
ある。このように各神経回路素子に対して同じ計算を行
うので、神経回路網のシミュレーションは、並列計算に
適していると考えられており、汎用の並列コンピュータ
によるシミュレーションが試みられている。大規模な神
経回路網では神経回路素子間の結合が非常に多いため、
多数のプロセッサーでシミュレーションする場合、各プ
ロセッサー間の結合方式が重要な問題である。並列コン
ピュータの結合方式には、メッシュ型(格子型)結合、
クロスバー結合、トリー型結合、多段クロス型結合、キ
ューブ型結合など様々な方式が提案されている。特に、
神経回路素子のシミュレーションにはトリー型結合、多
段クロスバー型結合、キューブ型結合などが適している
と考えられている。しかし、これらの結合方式では、プ
ロセッサーの数が増えると、多数の切換え回路を必要と
したり、伝送路に容量が不足したり、配線の交差が非常
に多くなって実装が非常に複雑になるなど種々の問題を
含んでおり、神経回路網のシミュレーションを効率良く
並列処理するためのプロセッサー間の結合方式は確立さ
れていない。
<発明が解決しようとする課題> 神経回路網は同質の神経回路素子で構成されているの
で、これをシミュレーションする場合に多数のプロセッ
サーによる並列処理によって高速化が期待される。しか
し、大規模な神経回路網においては、神経回路素子間の
神経細胞のシナプスに相当する多数の結合があり、その
数は神経回路素子の数のほぼ2乗に比例して増加する。
したがって、多数の神経回路素子を適当の数のグループ
に分割して、各グループ毎に1つのプロセッサーを割り
付け、多数のプロセッサーによってシミュレーションの
処理をする場合に、各グループに含まれる神経回路素子
の間にも結合があるので、それに対応してプロセッサー
間にも情報を伝達する結合が必要である。そこで、シミ
ュレーションの処理速度を上げるためにプロセッサーの
数を増やしていくと、プロセッサー間の結合の数はプロ
セッサーの数のほぼ2乗に比例して増加する。また、処
理速度の向上のためには、プロセッサー間で情報を高速
に転送する必要があるので、プロセッサー間の結合を並
列化するなどして伝送容量、伝送速度を大きくして行う
必要がある。すなわち、シミュレーションの高速化のた
めにプロセッサーの並列化を高めようとすると、プロセ
ッサー間の結合が膨大になり、実装上実現が不可能にな
ってくる。したがって、プロセッサー間の結合が簡単で
処理の並列度が高い並列処理プロセッサーの構成を如何
に実現するかが本発明の解決すべき課題である。
<課題を解決するための手段> 上記の課題の解決手段として、本発明のニューロコンピ
ュータは、神経回路素子の1つのシナプスに対応する処
理として、1つのシナプスの結合係数に相当する重みの
係数を記憶する機能と、該記憶されている重み係数とそ
の重み係数に対応する入力の値との乗算を行い、伝送さ
れて来た部分和とその乗算結果との加算を行って部分和
を出力する機能および学習においてその重み係数の更新
処理を行う機能を有する重みプロセッサーと、重みプロ
セッサーの機能と、神経回路素子に必要な演算処理の中
で積和演算を除いた、神経回路素子モデルの出力結果と
関連付けられた所定関係の演算処理を行う神経回路素子
の細胞体に対応する演算処理機能を有する細胞プロセッ
サーと、外部装置から入力データを取り込み、該入力デ
ータを重みプロセッサー及び細胞プロセッサーに転送す
る機能を有する入力プロセッサーと、上記細胞プロセッ
サーの出力を取り出し、該出力を外部装置に転送する機
能を有する出力プロセッサーと、上記細胞プロセッサー
から出力を取り出して外部装置に転送する機能および学
習のための教師データを外部装置から取り出し、該教師
データを細胞プロセッサーに転送する機能を有する入出
力プロセッサーとから成り、神経回路網の外部入力の数
をH、神経回路素子の数をJ、重みプロセッサー、細胞
プロセッサー、入力プロセッサー、出力プロセッサー、
入出力プロセッサーを(J+1)行、(H+J)列の格
子状に配列し、第1行目には(H+J)個の入力プロセ
ッサー、出力プロセッサーまたは入出力プロセッサーを
配置し、第2行目から第(J+1)行目までは(H+J
−1)個の重みプロセッサーと1個の細胞プロセッサー
を配置し、各列には多くても1個の細胞プロセッサーし
か存在しないように配置し、個々の重みプロセッサーお
よび細胞プロセッサーは上、下、右、左の重みプロセッ
サーあるいは細胞プロセッサーと格子状に接続され、最
左端の重みプロセッサーおよび細胞プロセッサーは同じ
行の最右端の重みプロセッサーあるいは細胞プロセッサ
ーに接続し、最下端の重みプロセッサーおよび細胞プロ
セッサーはそれぞれ同じ列の最上端の入力プロセッサ
ー、出力プロセッサーまたは入出力プロセッサーに各々
接続し、さらに入力プロセッサー、出力プロセッサーま
たは入出力プロセッサーは外部装置と各々接続すること
により、多数の神経回路素子よりなる神経回路網の計算
を多数のプロセッサーにより並列に行うように構成して
いる。
また、本発明においては、上記重みプロセッサー、細胞
プロセッサー、入力プロセッサー、出力プロセッサーお
よび入出力プロセッサーをすべて仮想プロセッサーとみ
なし、(J+1)行、(H+1)列の格子状に配列され
た仮想プロセッサー群を行方向にP(P<J+1)分
割、列方向にQ(Q<H+J)分割し、分割された矩形
領域に各々1つの実プロセッサーを割り当てることによ
り、P行、Q列の格子状に実プロセッサーの配列を構成
し、各実プロセッサーは、上、下、左、右の実プロセッ
サーと格子状に接続し、最左端の実プロセッサーはそれ
ぞれ同じ行の最右端の実プロセッサーに接続し、最上端
の実プロセッサーはそれぞれ同じ列の最下端の実プロセ
ッサーに接続し、各列には少なくとも1つの実プロセッ
サーには外部装置との入出力機能を持たせ、各実プロセ
ッサーは割り当てられた矩形領域に含まれる複数個の仮
想プロセッサーの演算機能を1つの実プロセッサーで実
行することにより、多数の神経回路素子より成る神経回
路網の計算を多数の実プロセッサーにより並列に実行す
るように構成するのが好ましい。
更に、上記各実プロセッサーの負荷に基づいて上記各実
プロセッサーに割り当てられる矩形領域内の仮想プロセ
ッサーの所定の格子状配列の行の置換、あるいは列の置
換を行うことにより仮想プロセッサーの入れ替えを行
い、上記各実プロセッサーの負荷を均等化するように構
成するのが好ましい。
<作 用> 一般に、従来の並列型ニューロコンピュータの考え方で
は、第11図に示す神経回路素子を単位として、複数個の
神経回路素子のシミュレーションを1つの実プロセッサ
ーに分担させることによって並列処理を行うことが基本
的な考え方になっている。これに対して、本発明では、
1つの神経回路素子の計算処理をさらに細分化して、シ
ナプスの部分と細胞体の部分に分解してそれぞれのシミ
ュレーションに必要な計算処理を単位として、複数の計
算処理をプロセッサーに分担させるものである。これに
より非常に単純な結合方式によって、大規模で複雑な神
経回路網のシミュレーションを多数の実プロセッサーに
より並列に処理することができる。
神経回路素子のモデルは多くの種類が存在するが、一般
に第11図に示すように神経回路素子のモデルは次の式で
表される。
このモデルでは、式(1)がシナプスの機能に相当する
もので、シナプスの結合係数(重み係数)とそれに対応
する入力との積和演算である。そして、式(2)は、細
胞体の機能に対応するもので、一般的な表現をしてお
り、神経回路素子のモデルによって変化する。例えば、
パーセプトロンの場合にはシグモイド関数であり、ホッ
プフィールドモデルでは微分方程式の形で表される。
次に、神経回路網は一般的な形として第12図のように表
される。そして、神経回路網への入力 般に次のように表される。( )は行ベクトルと列ベ
クトル間の転置を示す。
で、〔,〕はベクトルの併置を示す。
で表すと式(1)はベクトルの内積・を使って次のよう
に表すことができる。
式(5)をさらに分解すると、yjiを部分和として、式
(6)の漸化式で表すことができる。
yji=yji-1+wij・vi (6) この神経回路網のモデルでは、式(3)、式(5)、式
(6)が各シナプスの機能に相当するもので、シナプス
の結合係数(重み係数)と神経回路網の入力および細胞
の出力との積和演算である。そして、式(4)が各細胞
体の機能に相当するものである。
本発明では、神経回路網の計算としては最も数の多い積
和演算を並列に行うために、積和演算を分解して部分和
を求める式(6)の演算とこの演算に必要な重み係数の
記憶を重みプロセッサーに分担させるものである。そし
て、細胞体の機能に相当する式(4)の計算を細胞プロ
セッサーに分担させるものである。これらの重みプロセ
ッサーと細胞プロセッサーは格子状に接続され、上下左
右のプロセッサーと情報の交換を行うことができる。例
えば、式(6)の場合には、上の重みプロセッサーから
伝搬されてきた信号viを受け取り、その重みプロセッサ
ーが持っている重み係数wijとの積wij.viを計算し、そ
の結果に左の重みプロセッサーから受け取った部分和yj
i-1を加えて新たな部分和yji=yji-1+wij・viを作る。
最後に、これを右の重みプロセッサーに伝送する。これ
とは別に上の重みプロセッサーから伝搬されてきた信号
viを下の重みプロセッサーに転送する。このように次々
と重みプロセッサーを横方向に経由して部分和を積算
し、各行に配置された細胞プロセッサーに到達したとこ
ろで積和演算が完了する。この積和演算の結果は細胞プ
ロセッサーにおいて式(4)の計算に使用される。計算
された細胞体の出力zjは次の計算のために、下の重みプ
ロセッサーに伝送される。細胞プロセッサーは各列には
多くとも1つしか配置されていないので、細胞プロセッ
サーの出力が他の細胞プロセッサーの出力と重なること
はない。以上の格子状に配列された重みプロセッサーお
よび細胞プロセッサーによる神経回路網モデルの積和演
算は、神経回路網の学習においても同様に行うことがで
きる。
次に、重みプロセッサー、細胞プロセッサー、入力プロ
セッサー、出力プロセッサー、入出力プロセッサーをす
べて仮想プロセッサーと考え、J+1列、H+J列の格
子状に配列された仮想プロセッサー群を縦方向にP分
割、横方向にQ分割し、分割された矩形領域に各々1つ
の実プロセッサーを割り当て、P行、Q列の格子状円環
体に実プロセッサーを接続した場合、各実プロセッサー
は重みプロセッサーが行っていた積割演算を並列に実行
することができる。式(6)を実プロセッサー毎の式に
書き換えると次のようになる。
ここで、Ilq、Iuqはそれぞれ第p行、第q列の実プロセ
ッサーが分担する矩形領域の最初の列番号と最後の列番
号を示す。式(7)の右辺後半の積割演算は各実プロセ
ッサー毎に並列に実行することができる。細胞プロセッ
サーが分担する式(4)の計算はyjの計算が終わらない
と実行することができないが、別々の実プロセッサーに
含まれている細胞プロセッサーについてはyjの計算さえ
終われば、並列に計算を実行することができる。一方yj
qの隣の実プロセッサーへの伝送は、次のyj+1qの計算中
に行なうことができるので、実プロセッサー間の伝送が
隘路になることはない。
<実施例> 本発明の実施例として、多層パーセプトロンのシミュレ
ーションを例に説明する。神経回路素子としてのパーセ
プトロンのモデルは、入力をxi、結合係数をwijとする
と、次の式で表される。
このモデルでは、式(8)がシナプスの機能に相当する
もので、シナプスの結合係数(重み係数)と入力値との
積和演算である。そして、式(9)は、細胞体の機能に
対応するもので、シグモイド関数による閾値処理を行っ
ている。このように、パーセプトロンのモデルにおいて
もシナプスに相当する積和演算と細胞体に相当する演算
処理に分けることができる。
この神経回路素子を使って、第13図に示すような多層パ
ーセプトロンの神経回路網を構成すると、n回目の神経
回路網の入力をxh(n)〔h=1,2,…,H,n=1,2,…,
N〕、そのときの各神経回路素子の出力をzj(n)〔j
=1,2,…,I,…,J,n=1,2,…,N〕、またn回目の学習に
おける神経回路素子の結合係数(重み係数)をwij
(n)(i=1,2,…,H+J,j=1,2,…,J)とすると、多
層パーセプトロンのモデルは次のように表される。
〔中間層の第1層〕 〔中間層の第2層以降と出力層〕 さらに、入力値xh(n)に対して希望する出力値をtj
(n)とすると、式(14)〜(19)に示すエラーバック
プロパゲーションのアルゴリズムにより教師付学習が行
われる。
Δwij(n)=α・δj(n)・xi(n)〔i=1,2,…,H〕(1
4) Δwij(n)=α・δj(n)・zi-H(n) 〔i=H+1,H+
2,…,H+J〕 (15) wij(n+1)=wij(n)+Δwij(n)+β・Δwij(n−
1) (16) 〔出力層〕 δj(n)=f′(yj(n))・(tj(n)‐zj(n)) =〔zj(n)・(1−zj(n))〕・(tj(n)−zj(n))
(17) 〔中間層〕 δj(n+1)=f′(yj(n))・Sj(n) =〔zj(n)・(1−zj(n))〕・Sj(n) (19) ここで、α、βは学習の条件をきめる係数を示す。
以上の学習の演算処理においても式(14)、式(15)、
式(16)および式(18)がシナプスの機能に対応させ、
式(17)および式(19)が細胞体の機能に対応されるこ
とができる。したがって、式(10)、式(12)、式(1
4)、式(15)、式(16)および式(18)を重みプロセ
ッサーに分担させ、式(11)、式(13)、式(17)およ
び式(19)を細胞プロセッサーに分担させることができ
る。
多層パーセプトロンの計算においては、入力層から出力
層に向けて前向きに層毎に逐次的に計算され、また学習
の計算においても、出力層から入力層に向けて逆向きに
層毎に逐次的に計算される。したがって、入力層を除く
層の数をM、L=M−1とし、また、 vi(n,m)=xi(n) 〔i=1,2,…,H〕 (20) として、計算の過程を細分化すると、式(10)〜式(1
9)は次のように表される。
〔前向きの計算〕
zj(n,0)=0 (22) zj(n)=zj(n,M) (25) 〔後向きの学習計算〕 Δwij(n)=α・δj(n,L)・vi(n,M) (26) wij(n+1)=wij(n)+Δwij(n)+β・Δwij(n-1) (27) 〔出力層〕 δj(n,l)=〔zj(n)・(1-zj(n))〕・(tj(n)-zj(n))(28) 〔中間層〕 δj(n,0)=0 (29) δj(n,l+1)=〔zj(n)・(1-zj(n))〕・Sj(n,l) (31) 式(23)をさらに分解すると、yjk(n,m)を部分和とし
て、式(32)の漸化式で表すことができる。
yjk(n,m)=yjk-1(n,m)+wk,j(n)・vk(n,m) 〔k=1,2,…,H+J〕 (32) 同様に、式(30)もSjk(n)を部分和として、式(3
3)の漸化式で表すことができる。
Sjk(n,l)=Sjk-1(n,l)+Sk(n,l)・wjk(n) (33) 以上の準備の下に、格子状円環体に接続された重みプロ
セッサー、細胞プロセッサー、入力プロセッサー、出力
プロセッサーおよび入出力プロセッサーによって、多層
パーセプトロンのシミュレーションを行う方法について
説明する。
まず、重みプロセッサー、細胞プロセッサー、入力プロ
セッサー、出力プロセッサー、および入出力プロセッサ
ーの5種類のプロセッサーによる並列処理システムの構
成を第1図に示しており、同図及び後述する図中におい
て、□は重みプロセッサー、 をそれぞれ示している。
神経回路網の外部入力の数をH、神経回路素子の数をJ
として、これらのプロセッサーを(J+1)行、(H+
J)列の格子状に配列する。第0行目にはH個の入力プ
ロセッサー100〜102、I個の出力プロセッサー103〜10
4、(J−I)個の入出力プロセッサー105〜106を配置
し、第1行目から第J行目までは行毎に(H+J−1)
個の重みプロセッサー110〜112、114〜117、119〜127、
129〜135、137〜139、141〜151、153〜157、160〜165と
1個の細胞プロセッサー113、118、128、136、140、15
2、18、166を配置する。細胞プロセッサーは第1行、第
(H+1)列目から第J行、第(H+J)列目まで対角
線上に配置する。
個々の重みプロセッサーおよび細胞プロセッサーは上、
下、左、右の重みプロセッサーあるいは細胞プロセッサ
ーと格子状に接続する。そして、最右端の重みプロセッ
サー116、133、154および細胞プロセッサー166は同じ行
の最左端の重みプロセッサー110、121、142、160あるい
は細胞プロセッサーに信号線170〜173によって各々接続
し、同時に最下端の重みプロセッサー160〜165および細
胞プロセッサー166はそれぞれ同じ列の入力プロセッサ
ー100〜102、出力プロセッサー103〜104または入出力プ
ロセッサー105〜106に信号線180〜186によって各々接続
する。さらに入力プロセッサー100〜102、出力プロセッ
サー103〜104および入出力プロセッサー105〜106は外部
装置と信号線190〜196によって各々接続する。これらの
接続により重みプロセッサー、細胞プロセッサー、入力
プロセッサー、出力プロセッサーおよび入出力プロセッ
サーは、格子状の円環状(ドーナツ形)を構成する。
次に重みプロセッサーは重み係数が使われているか、否
か、すなわち、接続されているか否かを1ビットの結合
フラグとして記憶し、使われていれば(結合フラグ=
“1"ならば)その重み係数wij(n)を記憶する機能を
持っている。また細胞プロセッサーはその細胞の出力値
zj(n,m)と学習の計算における中間値δj(n,l)を記
憶する機能を持っている。入力プロセッサーは、入力デ
ーターを一時的に保持する機能を持っている。また、入
出力プロセッサーは、教師データーを一時的に保持する
機能を持っている。
多層パーセプトロンのシミュレーションでは、入力信号
に対して出力を計算する前向きの処理と学習をバックプ
ロパゲーションの方法によって行う後向きの処理があ
る。ここでは、前者を基本モードと呼び後者を学習モー
ドと呼ぶことにする。学習モードには、中間値δj
(n)を計算する学習モード1と重み係数を更新する学
習モード2に分かれる。多層パーセプトロンの学習は、
第2図に示すように、入力データの設定、教師データの
設定およびこれら基本モード、学習モード1、学習モー
ド2の計算処理を繰り返し行うことにより実行される。
第2図に示された多層パーセプトロンの学習処理が、第
1図に示す格子状円環体に接続されたプロセッサー群に
よって、どのように実行されるかを以下に示す。
S1重み係数の初期設定 重み係数の初期設定では、重みプロセッサー110〜112、
114〜117、119〜127、129〜135、137〜139、141〜151、
153〜157、160〜165の中で結合係数Fij=1の重みプロ
セッサーが記憶している重み係数wij(n)を乱数によ
って初期化する。
S2入力データの設定 入力データの設定では、入力プロセッサー100〜102が外
部の処理装置から信号線190〜192を通して入力データxh
(n)を受け取り、これをvh(n,m)として保持すると
同時に下の重みプロセッサーにこのデータvh(n,m)を
転送する。
S3基本モードの計算処理 基本モードの計算処理では、まず、細胞プロセッサー11
3、118、128、136、140、152、158、166の出力値zj(n,
0)を式(22)によってすべて零にする。各重みプロセ
ッサーおよび細胞プロセッサーは次の計算処理を行う。
ここでは、第h列、第j行目の重みプロセッサー144,第
j行、第(H+i)列目の重みプロセッサー149と第j
行、第(H+j)列目の細胞プロセッサー152の計算処
理を代表例として示す。出力プロセッサー、入出力プロ
セッサーは、同列の最下行の重みプロセッサーまたは細
胞プロセッサーからvi(n,m)を受け取ると、直ちにす
ぐ下の重みプロセッサーまたは細胞プロセッサーに転送
する。
〔第j行、第h列目の重みプロセッサー144〕 上の重みプロセッサー138から転送されて来た信号v
h(n,m)を受け取り、下の重みプロセッサー155に転送
する。
結合フラグ=“1"ならば、式(32)に示すように、
左の重みプロセッサー143から送られて来た部分和yjh-1
(n,m)に信号vh(n)と記憶している重み係数whj
(n)との積を加えて新しい部分和yjh(n,m)として右
の重みプロセッサー145に伝送する。もし、結合フラグ
=“0"ならば、左の重みプロセッサー143から送られて
来た部分和yjh-1(n,m)をyjh(n,m)として右の重みプ
ロセッサー145に転送する。
〔第j行、第(k=H+i)列目の重みプロセッサー14
9〕 上の重みプロセッサー139から転送されて来た信号v
k(n,m)を受け取り、下の重みプロセッサー156に転送
する。ただし、最下行の重みプロセッサーまたは細胞プ
ロセッサーは信号vk(n,m)を最上行の出力プロセッサ
ーまたは入出力プロセッサーに転送する。
結合フラグ=“1"ならば、式(32)に示すように、
左の重みプロセッサー148から送られた部分和yjk-1(n,
m)に信号vk(n,m)と記憶している重み係数wkj(n)
との積を加えて新しい部分和yjk(n,m)として右の重み
プロセッサー150に伝送する。もし、結合フラグ=“0"
ならば、送られて来た部分和yjk-1(n,m)をyjk(n,m)
として右の重みプロセッサー150に転送する。ただし、
最右列の重みプロセッサーまたは細胞プロセッサーは最
左列の重みプロセッサーまたは細胞プロセッサーにyj
H+J(n,m)をyj0(n,m)として転送する。
〔第j行、第(k=H+j)列目の細胞プロセッサー15
2〕 細胞プロセッサーの出力zj(n,m)をvg(j)(n,
m)として下の重みプロセッサー157に伝送する。
部分和yjk(n,m)=“0"として右の重みプロセッサ
ー153に伝送する。
結合フラグ=“1"ならば、左の重みプロセッサー15
1から送られて来た部分和yjk-1(n,m)に信号vk(n,m)
と記憶している重み係数wkj(n)との積を加えて最終
の積和結果yj(n,m)=yjk(n,m)を得る。もし、結合フ
ラグ=“0"ならば、送られて来た部分和yjk-1(n,m)を
最終の積和結果yj(n,m)=yjk-1(n,m)とする。
式(24)に従って、最終の積和結果yj(n,m)にシ
グモイド関数をかけて、神経細胞の出力zj(n,m+1)
を得る。
上記の計算は入力に近い層から順番に出力値が決まって
行くので中間層、出力層の数、すなわち、M回だけ繰り
返すことにより出力層の細胞プロセッサーの出力zj(n,
M)を得ることができる。
S4教師データの設定 教師データの設定では、細胞プロセッサーの内、外部に
対して結果を出力する細胞プロセッサーについて、対応
する入出力プロセッサー、例えば、105〜106が外部の処
理装置から信号線195〜196を通して教師データtj(n)
を取り込んで下の重みプロセッサーまたは細胞プロセッ
サーに出力する。各重みプロセッサーはこの教師データ
を上の重みプロセッサーから受け取り、下の重みプロセ
ッサーに転送する。そして、各細胞プロセッサーは、上
の重みプロセッサーから受け取った教師データに基づい
て次の計算処理を行い、学習の中間値δj(n,l)の初
期化を行う。
〔第j行、第(k=H+j)列第j行目の細胞プロセッ
サー152(出力層)〕 出力層の細胞プロセッサーでは、上の重みプロセッサー
141から転送されてきた教師データtj(n)を受け取
り、中間値δj(n,0)の初期値を式(28)に従って計
算する。
〔第i行、第(k=H+i)列第i行目の細胞プロセッ
サー128(中間層)〕 中間層の細胞プロセッサーでは、中間値δi(n,0)の
初期値を式(29)に従って零にする。
S5学習モード1の計算処理 学習モード1では、各重みプロセッサー、細胞プロセッ
サーは次の計算処理を行う。ここでは、第j行、第h列
目の重みプロセッサー144,第j行、第(H+i)列目の
重みプロセッサー149、第j行、第(H+j)列目の細
胞プロセッサー152と第i行、第(H+i)列目の細胞
プロセッサー128の計算処理を代表例として示す。出力
プロセッサー、入出力プロセッサーは、同列の最下行の
重みプロセッサーまたは細胞プロセッサーからSjJ (n,l)
を受け取ると、直ちにすぐ下の重みプロセッサーまたは
細胞プロセッサーに転送する。
〔第j行、第h列目の重みプロセッサー144〕 左の重みプロセッサー143から転送されて来た信号
δj(n,l)を受け取り、右の重みプロセッサー145に転
送する。
〔第j行、第(k=H+i)列目の重みプロセッサー14
9〕 左の重みプロセッサー148から転送されて来た信号
δj(n,l)を受け取り、右の重みプロセッサー150に転
送する。ただし、最右列の重みプロセッサーまたは細胞
プロセッサーは最左列の重みプロセッサーまたは細胞プ
ロセッサーに信号δj(n,l)を転送する。
結合フラグ=“1"ならば、式(33)に従って、上の
重みプロセッサー139から送られて来た部分和Sij-1(n,
l)に信号δj(n,l)と記憶している重み係数wkj
(n)との積を加えて新しい部分和Sij(n,l)として下
の重みプロセッサー156に伝送する。もし、結合フラグ
=“0"ならば、送られて来た部分和Sij-1(n,l)をSij
(n,l)として下の重みプロセッサー156に転送する。た
だし、最下行の重みプロセッサーまたは細胞プロセッサ
ーは部分和SiJ(n,l)をSi0(n,l)として最上行の出力
プロセッサーまたは入出力プロセッサーに転送する。
〔第j行、第(k=H+j)列目の細胞プロセッサー
(出力層)152〕 学習の中間値δj(n,l)を右の重みプロセッサー1
53に伝送する。
出力層においては、式(28)から学習の中間値δj
(n,l)はlによっては変化しないので、δj(n,l+
1)=δj(n,l)とする。
〔第i行、第(k=H+i)列目の細胞プロセッサー
(中間層)128〕 学習の中間値δi(n,l)を右の重みプロセッサー129
に転送する。
部分和Sii(n,l)=“0"として下の重みプロセッサー
135に伝送する。
結合フラグ=“1"ならば、式(33)に従って、上の
重みプロセッサー119から送られて来た部分和Sii-1(n,
l)に信号δi(n,l)と記憶している重み係数wki
(n)の積を加えて最終の積和結果Si(n,l)=Sii(n,
l)を得る。もし、結合フラグ=“0"ならば、送られて
来た部分和Sii-1(n,l)を最終の積和結果Si(n,l)=S
ii-1(n,l)とする。
最終の積和結果Si(n,l)と出力値zi(n)から式
(31)に従って、新しい学習の中間値δi(n,l+1)
を計算する。
学習モード1も基本モードと同様に、上記の計算は出力
層から入力層に向かって層毎に順番に行われるので、中
間層の数、すなわち、L=M−1回だけ繰返すことによ
り学習の中間値δj(n,L)を得ることが出来る。
S6学習モード2の計算処理 学習モード2では、各重みプロセッサー、細胞プロセッ
サーは次の計算処理を行う。
ここでは、第0行、第h列目の入力プロセッサー101、
第j行、第h列目の重みプロセッサー144,第j行、第
(H+i)列目の重みプロセッサー149と第i行、第
(H+i)列目の細胞プロセッサー128の計算処理を代
表例として示す。出力プロセッサー、入出力プロセッサ
ーは、同列の最下行の重みプロセッサーまたは細胞プロ
セッサーからvj(n,M)を受け取ると、直ちにすぐ下の
重みプロセッサーまたは細胞プロセッサーに転送する。
〔第0行、第h列目の入力プロセッサー101〕 入力データxh(n)をvh(n,M)として下の重みプ
ロセッサー111に転送する。
〔第j行、第h列目の重みプロセッサー144〕 左の重みプロセッサー143から転送されて来た学習
の中間値δj(n,L)を受け取り、右の重みプロセッサ
ー145に転送する。
上の重みプロセッサー138から転送されて来た信号v
h(n)を受け取り、下の重みプロセッサー145に転送す
る。
結合フラグ=“1"ならば、左の重みプロセッサー14
3から送られて来た学習の中間値δj(n,L)と上の重み
プロセッサー138から送られて来た信号vh(n)から式
(26)に従って、重み係数whj(n)の変更量Δwhj
(n)を計算し、式(27)に従って重み係数whj(n)
を更新する。もし、結合フラグ=“0"ならば、何も行わ
ない。
〔第j行、第(k=H+i)列目の重みプロセッサー14
9〕 左の重みプロセッサー148から転送されて来た学習
の中間値δj(n,L)を受け取り、右の重みプロセッサ
ー150に転送する。ただし最右列の重みプロセッサーま
たは細胞プロセッサーは最左列の重みプロセッサーまた
は細胞プロセッサーに信号δj(n,L)を転送する。
上の重みプロセッサー139から転送されて来た信号v
k(n,M)を受け取り、下の重みプロセッサー156に転送
する。ただし、最下行の重みプロセッサーまたは細胞プ
ロセッサーは信号vk(n,M)を最上行の出力プロセッサ
ーまたは入出力プロセッサーに転送する。
結合フラグ=“1"ならば、左の重みプロセッサー13
9から送られて来た信号vk(n,M)から式(26)に従っ
て、重み係数wkj(n)の変更量Δwkj(n)を計算し、式
(27)に従って重み係数Wkj(n)を更新する。もし、
結合フラグ=“0"ならば、何も行わない。
[第j行、第(k=H+J)列目の細胞プロセッサー15
2] 細胞プロセッサーの学習の中間値δj(n,L)を右
の重みプロセッサー153に転送する。
細胞プロセッサーの出力zj(n,M)をVg(j)(n,
M)として下の重みプロセッサー157に転送する。
結合フラグ=“1"ならば、この細胞プロセッサーが
持っている学習の中間値δj(n,L)と出力信号Vk(n,
M)=Zj(n,M)から式(26)に従って、重み係数Wkj
(n)の変更量ΔWkj(n)を計算し、式(27)に従っ
て重み係数wkj(n)を更新する。もし、結合フラグ=
“0"ならば、何も行わない。
S7学習の収束判定 学習の収束判定では、出力層の細胞プロセッサーの出力
信号と教師データとの誤差ξj=(tj(n)‐zj
(n))の平均値または最大値が所定の値より小さく
なったかどうかを調べて学習の完了を判定する。誤差が
所定の値より小さくなった場合は、学習を終了する。一
方、誤差が所定の値より大きい場合には、S2の処理にも
どって入力データを繰り返し与えることにより学習を継
続する。
以上、多層パーセプトロンを例に神経回路網のシミュレ
ーションを並列に実行するニューロコンピュータの構成
について説明した。
しかし、上記の格子状円環体に結合されたプロセッサー
群より成るニューロコンピュータでは、神経回路網の規
模が大きくなると(J+1)×(H+J)個の極めて多
くのプロセッサーが必要になり現実的ではない。したが
って、本発明では現実的の数のプロセッサーで大規模な
神経回路網をシミュレーションできる手段を上記の格子
状円環体結合を基本として更に提案するものである。
前記の重みプロセッサー、細胞プロセッサー、入力プロ
セッサー、出力プロセッサー、入出力プロセッサーをす
べて仮想プロセッサーと考え、第3図に示すように、J
+1行、H+J列の格子状に配列された仮想プロセッサ
ー群を行方向にP(P<J+1)分割、列方向にQ(Q
<H+J)分割する。
次に、第4図(a)に示すように分割された矩形領域に
各々1つの実プロセッサー(実際のプロセッサー)410
〜434を割り当てることにより、P行、Q列の格子状に
実プロセッサーの配列を構成する。各実プロセッサー
は、上、下、左、右の実プロセッサーと格子状に接続
し、最右端の実プロセッサー414、419、424、429、434
は信号線440〜444によって、それぞれ同じ行の最左端の
実プロセッサー410、415、420、425、430に接続する。
最下端の実プロセッサー430〜434は信号線435〜439によ
って、それぞれ同じ列の最上端の実プロセッサー410〜4
14に接続する。さらに、各列には少なくとも1つの実プ
ロセッサー410〜414に入出力機能を持たせるために、信
号線401〜405によって、ホストコンピュータ400のバス
ライン406にそれぞれ接続する。
入出力機能をもった実プロセッサーは第4図(b)に示
すように、割り当てられた矩形領域に含まれる入力プロ
セッサー、出力プロセッサー、入出力プロセッサー、重
みプロセッサーおよび細胞プロセッサーの演算機能、記
憶機能を分担する。そして、他の実プロセッサーは第4
図(c)に示すように、割り当てられた矩形領域に含ま
れる重みプロセッサーおよび細胞プロセッサーの演算機
能、記憶機能を分担する。実プロセッサーは、重み係
数、細胞の出力値や学習の中間値を記憶するデータメモ
リーと4方向の接続ができる入出力機能をもった通常の
マイクロプロセッサーで良いが、高速の積和演算機能を
持っていることが望ましい。以上のように構成された実
プロセッサー群は仮想プロセッサー群と同様に格子状円
環体に結合された実プロセッサー群を構成する。この実
プロセッサーは格子の接点(交差点)に位置するので、
これをノードプロセッサー(Node Processor略してN
P)と呼ぶことにする。
適切なPとQの値を選んでこの格子状円環体に結合され
たノードプロセッサー群を用いれば、現実的な数のプロ
セッサーで大規模な神経回路網の計算を並列に行うニュ
ーロコンピュータを実現することができる。各ノードプ
ロセッサーは逐次処理を行うが、P×Q台のノードプロ
セッサーが並列に処理を行う。特に、非常に時間のかか
る積和演算については、重みプロセッサーが個々に行っ
ていた部分和の計算を、各ノードプロセッサーが分担す
る矩形領域の中での部分和の計算として各ノードプロセ
ッサーが独立に行うものである。すなわち、式(32)の
積和演算に対しては式(34)、式(35)のように分解さ
れる。
yjq(n,m)=yjq-1(n,m)+Bjq(n,m) (35) ここで、Iuqは矩形領域の最右端の列番号を表わし、Ilq
は最左端の列番号を表わしている。
また、式(33)の積和演算に対しては式(36)、式(3
7)のように分解される。
Sjp(n,l)=Sjp-1(n,l)+Djp(n,l) (37) ここで、Jupは矩形領域の最下端の行番号を表わし、Jlp
は最上端の行番号を表わしている。
したがって、式(34)、式(36)は各ノードプロセッサ
ーにおいて並列に計算され、式(35)、式(37)はノー
ドプロセッサー系列を部分和yjq(n,m)、Sjp(n,l)が
通過していく過程において逐次計算される。
なお、第4図(b)(c)及び後述する図中において はバッファメモリを表わしている。
以上の準備の元に、第4図(a)、第4図(b)及び第
4図(c)を用いて、格子状円環体のニューロコンピュ
ータの並列動作について、重みプロセッサー、細胞プロ
セッサー、入力プロセッサー、出力プロセッサー、入出
力プロセッサーの場合と同様、多層パーセプトロンのシ
ミュレーションを例に第2図に示す処理フローに沿って
説明する。
S1重み係数の初期設定 各ノードプロセッサーは、分担している重みプロセッサ
ーが記憶している重み係数を、逐次、乱数によって初期
化する。各ノードプロセッサーは並列に初期化を行う。
S2入力データの設定 入出力機能を持った各ノードプロセッサー410〜414はホ
ストプロセッサーから分担している各入力プロセッサー
に対して入力データを逐次ホストコンピュータ400から
受け取りこれを入力プロセッサーのバッファ445、446に
保持する。
S3基本モードの計算処理 基本モードの計算処理では、まず、細胞プロセッサーを
分担している各ノードプロセッサーは、細胞プロセッサ
ーの出力値zj(n,0)=vg(j)(n,0)に初期値として式
(22)によって逐次零をあたえる。
次に、m=0として以下の処理を繰り返す。各重みプロ
セッサーおよび細胞プロセッサーの計算処理について、
第p行、第q列目のノードプロセッサー422の計算処理
を例に説明するが、これらの処理は各ノードプロセッサ
ーで同時に並列に実行される。
第p行第q列目のノードプロセッサーが分担してい
る矩形領域内に細胞プロセッサーが存在する列k=g
(i)があれば、vk(n,m)=Zj(n,m)とし、vk(n,
m)を列番号kと一緒に下のノードプロセッサー427に逐
次転送する。また入力プロセッサーが存在する列hがあ
れば、vh(n,m)=xh(n)として、vh(n,m)を列番号
hと一緒に下のノードプロセッサー427に逐次転送す
る。細胞プロセッサー、入力プロセッサーが存在してい
ない列については、上のノードプロセッサー417から転
送されて来た信号vi(n)〔iε{Ilp,Ilp+1,…,Iup
−1,Iup}〕を逐次受け取り、各列毎に出力プロセッサ
ー、入出力プロセッサー448またはバッファ470,473,474
に保持すると同時に、Vi(n,m)を列番号iと一緒に下
のノードプロセッサー427に逐次転送する。またp=P
の場合にはVi(n,m)を列番号iと一緒に最上端のノー
ドプロセッサー412に転送する。
第p行、第q列目のノードプロセッサー422が分担
している仮想プロセッサーの中に細胞プロセッサーが含
まれていたならば、含まれている細胞プロセッサーの総
てに対して、その位置する行番号jと一緒に部分和の初
期値yjq(n,m)=0を右のノードプロセッサー423に逐
次転送する。
第p行、第q列目のノードプロセッサー422が分担
している矩形領域の重みプロセッサーについて各行毎に
式(34)によって矩形領域内の部分和Bjq(n,m)を計算
する。計算が終われば、バッファ456〜460、488〜493に
格納しておく。
左のノードプロセッサー421から部分和yjq-1(n,
m)が行番号jと一緒に送られて来たならば、矩形領域
内の部分和Bjq(n,m)の計算が済んでいるか否かを調
べ、もし、済んでいれば、式(35)によって新しい部分
和yjq(n,m)を計算する。もし、矩形領域内の部分和の
計算がまだ終わっていない場合には、部分割yjq-1(n,
m)を一旦行番号jと一緒にバッファ456〜460、488〜49
2に格納しておき、矩形領域内の部分割Bjq(n,m)の計
算が済むのを待つ。矩形領域内の部分和Bjq(n,m)の計
算が終了すれば直ちに式(35)によって、新しい部分和
yjq(n,m)を計算する。ここで、矩形領域内のj行目に
細胞プロセッサーが含まれているかを調べ、もし、含ま
れていなければ、新しい部分和yjq(n,m)を番号jと一
緒に右のノードプロセッサー423に転送し、q=Qの場
合には、部分和yj0(n,m)=YjQ(n,m)として、最左端
のノードプロセッサー420に番号jと一緒に転送する。
もし、含まれていれば、新しい部分和yjq(n,m)を積和
演算結果yj(n,m)とする。
細胞プロセッサーを含む行については、最終の積和
結果yj(n,m)の計算が終了すれば、式(24)に従っ
て、積和結果yj(n,m)にシグモイド関数をかけて、神
経細胞の出力zj(n,m+1)を計算し、これを細胞プロ
セッサー467〜469、493〜495に対応する記憶領域に格納
する。
上記の計算は入力に近い層から順番に出力値が決まって
行くので、m=m+1としながら中間層、出力層の数、
すなわち、M回だけ繰り返すことにより出力層の細胞プ
ロセッサーの出力zj(n,M)を得ることができる。
S4教師データの設定 教師データの設定では、入出力機能を持つノードプロセ
ッサー410〜414は各細胞プロセッサーが位置する列の
内、出力層に属する細胞プロセッサーの列について、ホ
ストプロセッサーから信号バス406を通して教師データt
j(n)を受け取り下のノードプロセッサーに出力す
る。各ノードプロセッサーはこの教師データを上のノー
ドプロセッサーから受け取り、下のノードプロセッサー
に転送する。そして、各細胞プロセッサーを含むノード
プロセッサーは、式(29)によって学習の中間値δj
(n,l)の初期化を行う。
出力層の細胞プロセッサーを含むノードプロセッサ
ーでは、上のノードプロセッサーから転送されてきた教
師データtj(n)を受け取り、中間値δj(n,0)の初
期値を式(28)に従って計算し、細胞プロセッサーに対
応する記憶領域に格納する。
中間層の細胞プロセッサーを含むノードプロセッサ
ーでは、中間値δj(n,0)の初期値を式(29)に従っ
て零にし、細胞プロセッサーに対応する記憶領域に格納
する。
S5学習モード1の計算処理 学習モード1では、各ノードプロセッサーはl=0とし
て以下の処理を繰り返す。各ノードプロセッサーが分担
する重みプロセッサーおよび細胞プロセッサーの計算処
理について、第p行、第q列目のノードプロセッサー42
2の計算処理を例に説明するが、これらの処理は各ノー
ドプロセッサーで同時に並列に実行される。
第p行、第q列目のノードプロセッサー422が分担し
ている仮想プロセッサーの中に細胞プロセッサーを含む
行jがあれば、学習の中間値δj(n,l)を行番号jと
一緒に右のノードプロセッサー423に転送する。細胞プ
ロセッサーの含まれていない行については、左のノード
プロセッサーから転送されて来た学習の中間値δk(n,
l)〔kε{Ilq,Jlq+1,…,Juq−1,Juq}〕を逐次受け
取り、行毎にバッファ452〜455、478,480,781に保持す
ると同時に、学習の中間値δk(n,l)を行番号kと一
緒に右のノードプロセッサー423に転送する。q=Qの
場合には、学習の中間値δk(n,l)を行番号kと一緒
に最左端のノードプロセッサー420に転送する。
第p行、第q列目のノードプロセッサー422が分担
している仮想プロセッサーの中に細胞プロセッサーが含
まれていれば、含まれている細胞プロセッサーの総てに
対して、その位置する列番号k=g(j)と一緒に部分
和の初期値Sjp(n,l)=0を下のノードプロセッサー42
7に転送する。
第p行、第q例目のノードプロセッサー422が分担
している矩形領域の重みプロセッサーについて各行毎に
式(36)によって矩形領域内の部分和Djp(n,l)を計算
する。計算が終われば、結果を行番号kと一緒にバッフ
ァ461〜466、482〜487に格納しておく。
上のノードプロセッサー417から部分和Sjp-1(n,
l)が列番号kと一緒に送られて来たならば、矩形領域
内の部分和Djp(n,l)の計算が済んでいるか否かを調
べ、もし、済んでいれば、式(37)によって新しい部分
和Sjp(n,l)を計算する。もし、矩形領域内の部分和の
計算がまだ終わっていない場合には、部分和Sjp-1(n,
l)を一旦行番号jと一緒にバッファ461〜466、482〜48
7に格納しておき、矩形領域内の部分和Djp(n,l)の計
算が済むのを待つ。矩形領域内の部分和Djp(n,l)の計
算が終了すれば直ちに式(37)によって、新しい部分和
Sjp(n,l)を計算する。ここで、矩形領域内のk列目に
細胞プロセッサーが含まれているかを調べ、もし、含ま
れていなければ、新しい部分和Sjp(n,l)を列番号kと
一緒に下のノードプロセッサー427に転送し、p=Pの
場合には、部分和Sj0(n,l)=Sjp(n,l)として列番号
kと一緒に最上端のノードプロセッサー412に転送す
る。もし、含まれていれば、新しい部分和Sjp(n,l)を
積和演算結果Sj(n,l)とする。
細胞プロセッサーを含む列k=g(j)について
は、最終の積和結果Sj(n,l)の計算が終了すれば、式
(31)に従って、積和結果Sj(n,l)からδj(n,l+
1)を計算し、これを細胞プロセッサーに対応する記憶
領域に格納する。
学習モード1も基本モードと同様に、上記の計算は出力
層から入力層に向かって層毎に順番に行われるので、中
間層の数、すなわち、L=M−1回だけ繰返すことによ
り学習の中間値δj(n,L)を得ることが出来る。
S6学習モード2の計算処理 学習モード2では、各ノードプロセッサーは以下の処理
を行う。各ノードプロセッサーが分担する重みプロセッ
サーおよび細胞プロセッサーの計算処理について、第p
行、第q列目のノードプロセッサー422の計算処理を例
に説明するが、これらの処理は各ノードプロセッサーで
同時に並列に実行される。
第p行、第q列目のノードプロセッサー422が分担
している矩形領域の仮想プロセッサー群の中に第j行、
第i=g(j)列に細胞プロセッサーを含んでいれば、
学習の中間値δj(n,L)を行番号jと一緒に右のノー
ドプロセッサー423に転送する。同時に、細胞プロセッ
サーの出力zj(n)をvi(n)=zj(n)として、列番
号iと一緒に下のノードプロセッサーに転送する。ま
た、第p行、第q列目のノードプロセッサー422が分担
している仮想プロセッサーの中に入力プロセッサーを含
む列hがあれば、入力信号xh(n)をvh(n)=xh
(n)として、列番号hと一緒に下のノードプロセッサ
ー427に転送する。細胞プロセッサーおよび入力プロセ
ッサーの含まれていない行については、左のノードプロ
セッサー421から転送されて来た学習の中間層δk(n,
L)〔kε{Jlp,Jlp+1,…,Jup−1,Jup}〕を逐次受け
取り、行毎にバッファ451〜455、476〜481に保持すると
同時に、学習の中間値δk(n,L)を行番号kと一緒に
右のノードプロセッサー423に転送する。
q=Qの場合の右のノードプロセッサーへの転送は、最
左端のノードプロセッサーに対して行なわれ、p=Pの
場合の下のノードプロセッサーへの転送は、最上端のノ
ードプロセッサーに対して行なわれる。
第p行、第q列目のノードプロセッサー422が分担
している矩形領域の中の個々の重みプロセッサーについ
て、結合フラグ=“1"ならば左のノードプロセッサー42
1から送られて来た学習の中間値δj(n,L)と上のノー
ドプロセッサーから送られて来た信号vi(n)から式
(26)に従って、重み係数wij(n)の変更量Δwij
(n)を計算し、式(27)に従って重み係数wij(n)
を更新する。もし、結合フラグ=“0"ならば、何も行わ
ない。
S7学習の収束判定 学習の収束判定では、出力層の細胞プロセッサーを含む
ノードプロセッサーは出力信号の教師データとの誤差ε
j=(tj(n)−zj(n))の平均値または最大値が
所定の値より小さくなったかどうかを調べて学習の完了
を判定する。誤差が所定の値より小さくなった場合は、
学習を終了する。一方、誤差が所定の値より大きい場合
には、入力データを繰り返し与えてS2の処理から学習を
繰り返す。
以上、格子状円環体に接続されたノードプロセッサーに
よって、神経回路網のシミュレーションが各ノードプロ
セッサー毎に並列に実行されることを示した。しかし、
次に問題になるのは、各ノードプロセッサーの負荷の不
均衡である。この問題を解決する方法を、第5図に示す
多層パーセプトロンの具体例を用いて説明する。
まず、第5図に対する仮想プロセッサーの構成は第6図
のようになる。この第6図において、 は重みプロセッサーで結合フラグFij=1になっている
ことを示し、 は重みプロセッサーで結合フラグFij=0になっている
ことを示している。結合フラグFij=0になっている重
みプロセッサーでは、部分和の積和演算をする必要がな
く、結合フラグFij=1になっている重みプロセッサー
のみ部分和を積和演算を行う必要がある。一方、細胞プ
ロセッサーの数は少ないが、その処理内容は複雑で、神
経細胞モデルに依存するが重みプロセッサーの処理に比
べて10倍以上の処理内容になるものと推定される。
第7図(a)は結合フラグFij=1と結合フラグFij=0
の重みプロセッサーの配列を分かり易く示したものであ
る。この図から分かるように、多層パーセプトロンでは
結合フラグFij=1の重みプロセッサーから成る矩形領
域700、704と結合フラグFij=0の重みプロセッサーか
ら成る矩形領域702、703と結合フラグFij=0の重みプ
ロセッサーと細胞プロセッサーが混在する矩形領域70
1、705に大きく分かれる。したがって、結合フラグFij
=0の重みプロセッサーをより多く分担したノードプロ
セッサーは負荷が軽く、細胞プロセッサーや結合フラグ
Fij=1の重みプロセッサーをより多く分担したノード
プロセッサーは負荷が重くなる。並列処理を効果的に行
うためには各ノードプロセッサーが同じ時間で処理が終
わる必要がある。もし、1つでも処理の終わる時間が遅
くなると、そのノードプロセッサに処理のフェーズを合
わせなければならず、多くのノードプロセッサーが処理
を待たなければならなくなり、処理効率が悪くなる。
第7図(b)は、これらの重みプロセッサーおよび細胞
プロセッサーの処理を2行、3列の6台のノードプロセ
ッサーで処理することを考えた場合、負荷が出来るだけ
均衡するように行方向、列方向に点線で分割したもので
ある。しかし、第1行、第1列のノードプロセッサーが
分担する矩形領域710には結合フラグFij=1の重みプロ
セッサーが108個存在せるのに対して、第2行、第1列
のノードプロセッサーが分担する矩形領域713には、結
合フラグFij=1の重みプロセッサーが36個存在するだ
けでその他は結合フラグFij=0の重みプロセッサーで
ある。同様に、第2行、第2列のノードプロセッサーが
分担する矩形領域714には、結合フラグFij=1の重みプ
ロセッサーが42個存在するだけでその他は結合フラグFi
j=0の重みプロセッサーである。また、第2行、第3
列のノードプロセッサーが分担する矩形領域715には結
合フラグFij=1の重みプロセッサーが48個と細胞プロ
セッサーが9個存在するのに対して、第1行、第3列の
ノードプロセッサーが分担する矩形領域712には、細胞
プロセッサーが5個存在するだけでその他は結合フラグ
Fij=0の重みプロセッサーである。このように各ノー
ドプロセッサー間でかなりの負荷の不均衡が存在する。
この問題を解決するために、本発明では、仮想プロセッ
サーの行あるいは列の置換(Parmutation)を行う。式
(23)、式(30)の積和演算は、加算の順序には全く影
響されないので、行と行、列と列の置換を行っても全く
同じ計算結果を得ることができる。第8図(a)は第7
図(a)における結合フラグFij=1の重みプロセッサ
ーだけの矩形領域700、704、結合フラグFij=0の重み
プロセッサーだけの矩形領域702、703、細胞プロセッサ
ーと結合フラグFij=0の重みプロセッサーだけの矩形
領域701、705をそれぞれ6分割あるいは12分割したもの
である。この分割を単位に行および列の置換を順次行う
と第8図(b)のような配列に変えることができる。
第8図(b)の配列に変換すれば、容易に負荷の均衡を
保って6分割を行なうことができる。第9図に置換によ
って負荷の均衡化を行った後の重みプロセッサー、細胞
プロセッサー、入力プロセッサー、出力プロセッサー、
入出力プロセッサーによる格子状円環体結合の構成とそ
の分割を示す。さらに、第10図に格子状円環体に結合し
たノードプロセッサーより成るニューロコンピュータシ
ステムの構成とノードプロセッサーの分担の内部構成を
示す。
このように仮想プロセッサーの行および列の置換を行っ
た後でも前に述べた処理手順は、細胞プロセッサーが位
置する行と列の関係を表すg(j)の関数を変更するだ
けで適用することが出来る。ただし、入力プロセッサ
ー、出力プロセッサー、入出力プロセッサーは第0行目
に配置しておく必要がある。
この例では、仮想プロセッサーの行数、列数がノードプ
ロセッサーの行数、列数でそれぞれ割り切れるため全く
同じ負荷になるように分割することができる。しかし、
割り切れない場合でも1行または1列の誤差の範囲内で
均衡を保つことができる。
以上、多層パーセプトロンを例に大規模な神経回路網の
シミュレーションを並列に実行するニューロコンピュー
タとして、現実的な数のプロセッサーを格子状円環体に
結合する構成法と各プロセッサーの負荷を均衡させる方
法について説明した。本発明では、多層パーセプトロン
を例に説明を行ったが、ポップヒィールドモデルなど、
他の神経回路網モデルに対しても容易に適用出来るもの
である。特に、ホップヒィールドの離散モデルについて
は、式(38)、式(39)、式(40)で表されるが、式
(40)をシナプスの機能すなわち重みプロセッサーに対
応させ、式(38)、式(39)を細胞体の機能すなわち細
胞プロセッサーに対応させれば、多層パーセプトロンの
基本モードと同様の処理によってシミュレーションを行
うことができる。
yi(t)−yi(t−1)=−γ・yi(t)+Si (38) zi(t)=F(yi(t)) (39) <発明の効果> 以上のように本発明によれば、多数のプロセッサーを並
列に動作させることにより、大規模な神経回路網のシミ
ュレーションを高速に実行できるニューロコンピュータ
を実現することが出来る。
特に、大規模な神経回路網を多数のプロセッサーで並列
にシミュレーションを行う場合に非常に複雑になること
が予想されるプロセッサー間の結合の問題を格子状円環
体の非常に実装に適した結合方法によって解決してお
り、しかも、多数のプロセッサーの並列処理において
も、行および列の置換により負荷のバランスを取ること
ができ、また、実プロセッサー間の情報の伝送が、行あ
るいは列毎に計算処理とほぼ並行して行うことが出来る
ので、伝送路が隘路になって処理能力を落とすようなこ
ともない。したがって、個々のプロセッサーの能力を十
分に発揮させることができ、ニューロコンピュータの処
理能力をプロセッサーの数にほぼ比例して増大させるこ
とが出来るものである。一方、実装する実プロセッサー
の数が決まっていても、任意の神経回路素子から成る神
経回路網をシミュレーションすることが出来る。ただ
し、シミュレーション出来る神経回路網の大きさは実プ
ロセッサーがもっているメモリーの大きさによって制限
される。これはメモリーを増やせば幾らでも大きな神経
回路網をシミュレーション出来ることを意味し、また、
実プロセッサーの数を増やせば、その数に比例した性能
の向上を実現できることを意味する。また、本発明の結
合方式では、細胞体の処理を一般的な形式で表している
ので、多層パーセプトロン、ホップフィールドモデルを
はじめ、種々の神経回路網モデルに適用することが出来
るものである。
また、本発明により、従来極めて困難の考えられていた
数百萬にも及ぶ神経回路素子から成る大規模な神経回路
網のシミュレーションが容易に実現できるようになっ
た。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示し、重みプロセッ
サー、細胞プロセッサー、入力プロセッサー、出力プロ
セッサー、入出力プロセッサーによる格子状円環体結合
の構成を示す図、第2図は、多層パーセプトロンのシミ
ュレーションの手順を示すフロー図、第3図は、本発明
にしたがって仮想プロセッサー群を矩形領域に分割する
ことを示す図、第4図(a)乃至(c)は、それぞれ格
子状円環体に結合されたノードプロセッサーから成るニ
ューロコンピュータシステムの構成と各ノードプロセッ
サーの仮想的な内部構成を示す図、第5図は、3層のパ
ーセプトロンの具体例を示す図、第6図は、第5図の3
層パーセプトロンのシミュレーションを行うための重み
プロセッサー、細胞プロセッサー、入力プロセッサー、
出力プロセッサー、入出力プロセッサーによる格子状円
環体結合の構成を示す図、第7図(a)及び(b)は、
それぞれ3層パーセプトロンのシミュレーションにおい
て各ノードプロセッサーの負荷の不均衡を示す図、第8
図(a)及び(b)は、それぞれ列の置換によって、負
荷の不均衡を解消する様子を示す図、第9図は、負荷の
均衡化を行った後の重みプロセッサー、細胞プロセッサ
ー、入力プロセッサー、出力プロセッサー、入出力プロ
セッサーによる格子状円環体結合の構成を示す図、第10
図は、2行3列の格子状円環体に結合されたノードプロ
セッサーより成るニューロコンピュータシステムを示す
図、第11図は一般的な神経回路素子のモデルを示す図、
第12図は一般的な神経回路網の構成を示す図、第13図は
多層パーセプトロンの構成を示す図である。 100〜102……入力プロセッサー、103〜104……出力プロ
セッサー、105〜106……入出力プロセッサー、110〜11
2,114〜117,119〜127,129〜135,137〜139,141〜151,153
〜157,160〜165……重みプロセッサー、113,118,128,13
6,140,152,158,166……細胞プロセッサー。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】神経回路素子の1つのシナプスに対応する
    処理として、1つのシナプスの結合係数に相当する重み
    の係数を記憶する機能と、該記憶されている重み係数と
    その重み係数に対応する入力の値との乗算を行い、伝送
    されて来た部分和とその乗算結果との加算を行って部分
    和を出力する機能および学習においてその重み係数の更
    新処理を行う機能を有する重みプロセッサーと、 重みプロセッサーの機能と、神経回路素子に必要な演算
    処理の中で積和演算を除いた、神経回路素子モデルの出
    力結果と関連付けられた所定関係の演算処理を行う神経
    回路素子の細胞体に対応する演算処理機能を有する細胞
    プロセッサーと、 外部装置から入力データを取り込み、該入力データを重
    みプロセッサー及び細胞プロセッサーに転送する機能を
    有する入力プロセッサーと、 上記細胞プロセッサーの出力を取り出し、該出力を外部
    装置に転送する機能を有する出力プロセッサーと、 上記細胞プロセッサーから出力を取り出して外部装置に
    転送する機能および学習のための教師データを外部装置
    から取り込み、該教師データを細胞プロセッサーに転送
    する機能を有する入出力プロセッサーとから成り、 神経回路網の外部入力の数をH、神経回路素子の数を
    J、重みプロセッサー、細胞プロセッサー、入力プロセ
    ッサー、出力プロセッサー、入出力プロセッサーを(J
    +1)行、(H+J)列の格子状に配列し、第1行目に
    は(H+J)個の入力プロセッサー、出力プロセッサー
    または入出力プロセッサーを配置し、第2行目から第
    (J+1)行目までは(H+J−1)個の重みプロセッ
    サーと1個の細胞プロセッサーを配置し、各列には多く
    ても1個の細胞プロセッサーしか存在しないように配置
    し、 個々の重みプロセッサーおよび細胞プロセッサーは上、
    下、右、左の重みプロセッサーあるいは細胞プロセッサ
    ーと格子状に接続され、最左端の重みプロセッサーおよ
    び細胞プロセッサーは同じ行の最右端の重みプロセッサ
    ーあるいは細胞プロセッサーに接続し、最下端の重みプ
    ロセッサーおよび細胞プロセッサーはそれぞれ同じ列の
    最上端の入力プロセッサー、出力プロセッサーまたは入
    出力プロセッサーに各々接続し、さらに入力プロセッサ
    ー、出力プロセッサーまたは入出力プロセッサーは外部
    装置と各々接続することにより、 多数の神経回路素子よりなる神経回路網の計算を多数の
    プロセッサーにより並列に行うことを特徴とするニュー
    ロコンピュータ。
  2. 【請求項2】上記重みプロセッサー、細胞プロセッサ
    ー、入力プロセッサー、出力プロセッサーおよび入出力
    プロセッサーをすべて仮想プロセッサーとみなし、(J
    +1)行、(H+1)列の格子状に配列された仮想プロ
    セッサー群を行方向にP(P<J+1)分割、列方向に
    Q(Q<H+J)分割し、分割された矩形領域に各々1
    つの実プロセッサーを割り当てることにより、P行、Q
    列の格子状に実プロセッサーの配列を構成し、各実プロ
    セッサーは、上、下、左、右の実プロセッサーと格子状
    に接続し、最左端の実プロセッサーはそれぞれ同じ行の
    最右端の実プロセッサーに接続し、最上端の実プロセッ
    サーはそれぞれ同じ列の最下端の実プロセッサーに接続
    し、各列には少なくとも1つの実プロセッサーには外部
    装置との入出力機能を持たせ、各実プロセッサーは割り
    当てられた矩形領域に含まれる複数個の仮想プロセッサ
    ーの演算機能を1つの実プロセッサーで実行することに
    より、多数の神経回路素子より成る神経回路網の計算を
    多数の実プロセッサーにより並列に実行することを特徴
    とする請求項1記載のニューロコンピュータ。
  3. 【請求項3】上記各実プロセッサーの負荷に基づいて上
    記各実プロセッサーに割り当てられる矩形領域内の仮想
    プロセッサーの所定の格子状配列の行の置換、あるいは
    列の置換を行うことにより仮想プロセッサーの入れ替え
    を行い、上記各実プロセッサーの負荷を均等化すること
    を特徴とする請求項2記載のニューロコンピュータ。
JP63330971A 1988-12-29 1988-12-29 ニューロコンピュータ Expired - Fee Related JPH0690704B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP63330971A JPH0690704B2 (ja) 1988-12-29 1988-12-29 ニューロコンピュータ
EP89124130A EP0377221B1 (en) 1988-12-29 1989-12-29 Neuro-computer
DE68927474T DE68927474T2 (de) 1988-12-29 1989-12-29 Neuro-Rechner
US07/885,239 US5170463A (en) 1988-12-29 1992-05-20 Neuro-computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63330971A JPH0690704B2 (ja) 1988-12-29 1988-12-29 ニューロコンピュータ

Publications (2)

Publication Number Publication Date
JPH02178757A JPH02178757A (ja) 1990-07-11
JPH0690704B2 true JPH0690704B2 (ja) 1994-11-14

Family

ID=18238404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63330971A Expired - Fee Related JPH0690704B2 (ja) 1988-12-29 1988-12-29 ニューロコンピュータ

Country Status (1)

Country Link
JP (1) JPH0690704B2 (ja)

Also Published As

Publication number Publication date
JPH02178757A (ja) 1990-07-11

Similar Documents

Publication Publication Date Title
EP0377221B1 (en) Neuro-computer
CN106650922B (zh) 硬件神经网络转换方法、计算装置、软硬件协作系统
JP2663996B2 (ja) ニューラル・ネットワーク用の仮想ニューロコンピュータ・アーキテクチュア
US5506998A (en) Parallel data processing system using a plurality of processing elements to process data and a plurality of trays connected to some of the processing elements to store and transfer data
Tagliarini et al. Optimization using neural networks
KR101686827B1 (ko) 인공 신경망의 뉴로모픽 하드웨어 구현 방법
CN107578098A (zh) 基于脉动阵列的神经网络处理器
EP0505179A2 (en) A parallel data processing system
JP2666830B2 (ja) トライアングル・スケーラブル・ニューラル・アレイ・プロセッサ
US5148515A (en) Scalable neural array processor and method
JPWO2019155910A1 (ja) ニューラル電子回路
JPH05346914A (ja) ニューロプロセッサ
Lu et al. Task decomposition based on class relations: a modular neural network architecture for pattern classification
JP2001117900A (ja) ニューラルネットワーク演算装置
JPH0690704B2 (ja) ニューロコンピュータ
JPH076146A (ja) 並列データ処理システム
JPH04182769A (ja) デジタル・ニューロプロセッサ
Ayoubi et al. Efficient mapping algorithm of multilayer neural network on torus architecture
JPH0736182B2 (ja) ニューロコンピュータ
JP2766858B2 (ja) ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置
JPH06110864A (ja) 学習処理装置
Jin et al. Algorithm for mapping multilayer bp networks onto the spinnaker neuromorphic hardware
EP0435208B1 (en) Neuro-computer
Ayoubi et al. An efficient mapping algorithm of multilayer perceptron on mesh-connected architectures
JPH0784984A (ja) ニューラルネットワーク回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees