JP2810170B2 - 多層型ネットワークの学習装置 - Google Patents
多層型ネットワークの学習装置Info
- Publication number
- JP2810170B2 JP2810170B2 JP1323721A JP32372189A JP2810170B2 JP 2810170 B2 JP2810170 B2 JP 2810170B2 JP 1323721 A JP1323721 A JP 1323721A JP 32372189 A JP32372189 A JP 32372189A JP 2810170 B2 JP2810170 B2 JP 2810170B2
- Authority
- JP
- Japan
- Prior art keywords
- layer
- data processing
- processing means
- output
- connection
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、文字認識などの画像パターン認識装置,ソ
ナーの信号処理、または証券や金融分野での応用が可能
な多層型ニユーラル・ネツトワークの学習を高速に実行
する装置と並列計算方法に関する。
ナーの信号処理、または証券や金融分野での応用が可能
な多層型ニユーラル・ネツトワークの学習を高速に実行
する装置と並列計算方法に関する。
多層型ニユーラル・ネツトワークの学習は、一般に計
算回数が膨大になるため、単一処理装置構成の汎用計算
機上で実行すると長時間の計算が必要である。そもそも
ニユーラル・ネツトワークは並列型計算機と親和性が良
く、学習方法の実装によつては並列度を上げることが可
能である。そこで、並列処理につて、高速計算する試み
がなされており、その一つに電子情報通信学会技術研究
報告書,MEとバイオサイバネテイツクス88−134(1989)
に報告された試みがある。この試みでは、複数個の処理
装置(DSP:digital signal processorとローカルメモリ
からなる)をリング状に配置する。一つの処理装置に隣
接する層のノードを一つ以上割合て、あるノードの割合
てられた処理装置のローカル・メモリ上にそのノードの
属する上位層との重み係数を格納する。入力層から出力
層に向かつて前向きに積和計算を実行する時は、ある層
に属する各処理装置は、各々独立に、ノードの値と上位
層への重みとの積を順順にリングに乗せ、目的とする処
理装置に到達するまで、リング上を回転させる。出力層
から入力層に向かつて逆向きに積和計算を実行する時
は、各処理装置上に必要な重みが格納されているためリ
ング上に乗せる必要はないが、出力層からの誤差データ
は下位の層に伝える必要があるので、目的とする処理装
置に到達するまでリング上を回転させる。すなわち、N
離れたノードにデータを転送するには、N回リング上を
回転させる必要がある。従つて、処理装置の数が多くな
ると、データ転送に要する時間が増加する。このデータ
転送に伴うオーバーヘツドをなくすためには、処理装置
の結合形態をリング状からバス状にするのが有効であ
る。バス型結合においては、どれだけ離れていても同じ
時間遅れでデータを転送できる。
算回数が膨大になるため、単一処理装置構成の汎用計算
機上で実行すると長時間の計算が必要である。そもそも
ニユーラル・ネツトワークは並列型計算機と親和性が良
く、学習方法の実装によつては並列度を上げることが可
能である。そこで、並列処理につて、高速計算する試み
がなされており、その一つに電子情報通信学会技術研究
報告書,MEとバイオサイバネテイツクス88−134(1989)
に報告された試みがある。この試みでは、複数個の処理
装置(DSP:digital signal processorとローカルメモリ
からなる)をリング状に配置する。一つの処理装置に隣
接する層のノードを一つ以上割合て、あるノードの割合
てられた処理装置のローカル・メモリ上にそのノードの
属する上位層との重み係数を格納する。入力層から出力
層に向かつて前向きに積和計算を実行する時は、ある層
に属する各処理装置は、各々独立に、ノードの値と上位
層への重みとの積を順順にリングに乗せ、目的とする処
理装置に到達するまで、リング上を回転させる。出力層
から入力層に向かつて逆向きに積和計算を実行する時
は、各処理装置上に必要な重みが格納されているためリ
ング上に乗せる必要はないが、出力層からの誤差データ
は下位の層に伝える必要があるので、目的とする処理装
置に到達するまでリング上を回転させる。すなわち、N
離れたノードにデータを転送するには、N回リング上を
回転させる必要がある。従つて、処理装置の数が多くな
ると、データ転送に要する時間が増加する。このデータ
転送に伴うオーバーヘツドをなくすためには、処理装置
の結合形態をリング状からバス状にするのが有効であ
る。バス型結合においては、どれだけ離れていても同じ
時間遅れでデータを転送できる。
バス型結合においては、ある処理装置がバスに乗せた
データを、複数の処理装置が同じ受取ることが可能で、
積和計算が並列に実行できる。下位層への重みを処理装
置が保持する構成とすると、前向き計算時、下位層の処
理装置が順々に、バスに出力を乗せ、上位層の処理装置
は各持続に対応した重みから積和を計算できる。しか
し、逆方向に積和計算を実行する時は、積和を実行する
処理装置上に必要な重みが格納されていないため、重み
を上位層から下位層に転送しなければならない。しか
し、上位層と下位層はバスで結合されているためデータ
を並列に転送できなくなり、処理装置の数に比例した速
度向上を期待できなくなるという欠点があつた。
データを、複数の処理装置が同じ受取ることが可能で、
積和計算が並列に実行できる。下位層への重みを処理装
置が保持する構成とすると、前向き計算時、下位層の処
理装置が順々に、バスに出力を乗せ、上位層の処理装置
は各持続に対応した重みから積和を計算できる。しか
し、逆方向に積和計算を実行する時は、積和を実行する
処理装置上に必要な重みが格納されていないため、重み
を上位層から下位層に転送しなければならない。しか
し、上位層と下位層はバスで結合されているためデータ
を並列に転送できなくなり、処理装置の数に比例した速
度向上を期待できなくなるという欠点があつた。
上記従来技術は、データを処理装置間で転送する場合
に必要な処理量を軽減する点についての配慮がなされて
おらず、処理装置を複数結合しても高速化できないとい
う問題があつた。
に必要な処理量を軽減する点についての配慮がなされて
おらず、処理装置を複数結合しても高速化できないとい
う問題があつた。
本発明は、データ転送をなくし並列処理装置の実行速
度を上げることを目的としている。
度を上げることを目的としている。
上記目的を達成するために、多層型ネツトワークの重
みを、中間層に属する処理装置について、下位層に対す
る重みだけでなく、上位層に対する重みも格納したもの
である。すなわち、ある接続の重みが、その両端に接な
がつている処理装置上に二重に格納したものである。
みを、中間層に属する処理装置について、下位層に対す
る重みだけでなく、上位層に対する重みも格納したもの
である。すなわち、ある接続の重みが、その両端に接な
がつている処理装置上に二重に格納したものである。
さらに、多層型ネツトワークの学習は、上記の重みの
値を調節することであるから、二重に格納された重みが
常に同一の値になつている必要がある。このために、両
端の処理装置上で必要なデータを転送しあうようにした
ものである。
値を調節することであるから、二重に格納された重みが
常に同一の値になつている必要がある。このために、両
端の処理装置上で必要なデータを転送しあうようにした
ものである。
さらに、一つの処理装置に重みを格納することができ
ない場合、下位層に対する重みを別々の処理装置に分割
するか、上位層に対する重みを別々にするか、下位層と
上位層に対する重みを別々に分割し格納するようにした
ものである。
ない場合、下位層に対する重みを別々の処理装置に分割
するか、上位層に対する重みを別々にするか、下位層と
上位層に対する重みを別々に分割し格納するようにした
ものである。
中間層の処理装置に格納された重みのうち、下位層に
対する重みは、前向き計算時、各々の処理装置で独立に
アクセスすることができる。また、上位層に対する重み
は、逆向き計算機、同様に各各の処理装置で独立にアク
セスすることができる。
対する重みは、前向き計算時、各々の処理装置で独立に
アクセスすることができる。また、上位層に対する重み
は、逆向き計算機、同様に各各の処理装置で独立にアク
セスすることができる。
さらに、二重に格納された重みは、別々の処理装置に
よつて同じ値になるように調節されるため、多層型ネツ
トワークの学習方法は、単一処理計算機上で実行した結
果と本発明の装置での結果は等しくなる。
よつて同じ値になるように調節されるため、多層型ネツ
トワークの学習方法は、単一処理計算機上で実行した結
果と本発明の装置での結果は等しくなる。
以下、図を用いて本発明の実施例を説明する。第2図
を用いて、多数のプロセツサ(プロセツサとは、演算ユ
ニツトや記憶ユニツトなどから構成される処理装置を意
味する)が、相互に接続された構造を持つシステム(以
下の説明では、単にネツトワーク用語を用いる)の動作
原理を説明する。ネツトワークを構成する単位をノー
ド、ノード間のパスを接続と呼ぶ。その接続に対応した
ある値のことを重みと呼ぶ。ノードにおける処理はプロ
セツサによつて実行される。一つのノードの処理が一つ
のプロセツサによつて実行される構成や、複数のノード
の処理が一つのプロセツサによつて実行される構成や、
一つのノードの処理が複数のプロセツサによつて実行さ
れる構成が可能である。従つて、ノード間の接続は、プ
ロセツサ間の結合であつたり、プロセツサ内部のデータ
転送であつたりする。以下、ノード間の接続は接続、プ
ロセツサ間の接続は結合と記す。
を用いて、多数のプロセツサ(プロセツサとは、演算ユ
ニツトや記憶ユニツトなどから構成される処理装置を意
味する)が、相互に接続された構造を持つシステム(以
下の説明では、単にネツトワーク用語を用いる)の動作
原理を説明する。ネツトワークを構成する単位をノー
ド、ノード間のパスを接続と呼ぶ。その接続に対応した
ある値のことを重みと呼ぶ。ノードにおける処理はプロ
セツサによつて実行される。一つのノードの処理が一つ
のプロセツサによつて実行される構成や、複数のノード
の処理が一つのプロセツサによつて実行される構成や、
一つのノードの処理が複数のプロセツサによつて実行さ
れる構成が可能である。従つて、ノード間の接続は、プ
ロセツサ間の結合であつたり、プロセツサ内部のデータ
転送であつたりする。以下、ノード間の接続は接続、プ
ロセツサ間の接続は結合と記す。
第2図では、プロセツサが3つの層に配置され、それ
ぞれの層間でのみ接続されている。最も左側の層、また
は入力層はプロセツサ8から12で構成される。中央の
層、または中間層はプロセツサ4から7で構成される。
最も右側の層、または出力層はプロセツサ1から3で構
成される。この時、層毎には前述したように、入力層か
ら中間層へ、そして、中間層から出力層への接続が存在
する。第2図では、出力層のプロセツサ1は中間層のプ
ロセツサ4から7と接続1から接続4で接続されてい
る。この接続の両端のプロセツサの間でのみデータの直
接の転送が可能である。ここでは、層毎のプロセツサは
隣接した層のプロセツサの総てと接続しているが、総て
とではなく部分的な接続でも良い。また、隣接する層と
のみ接続しているが、隣接しない層との接続があつても
良い。第2図における接続1から32は、データを伝達す
る場合の重みとして動作する。例えば、プロセツサ4の
入力は、前段のプロセツサ8から12までの出力と、それ
ぞれのプロセツサに対応した接続の重みの積和となる。
すなわち、プロセツサiの出力をoi、入力をui、プロセ
ツサiとjの間の接続kの重みをWkとすると、例えば、
プロセツサ4の入力u4は、 u4=W13・08+W14・09+W15・010+W16・011+W17・012 になる。uiはプロセツサiの内部の処理によつてoiに変
換され、プロセツサiの出力として隣接するプロセツサ
に伝達される。
ぞれの層間でのみ接続されている。最も左側の層、また
は入力層はプロセツサ8から12で構成される。中央の
層、または中間層はプロセツサ4から7で構成される。
最も右側の層、または出力層はプロセツサ1から3で構
成される。この時、層毎には前述したように、入力層か
ら中間層へ、そして、中間層から出力層への接続が存在
する。第2図では、出力層のプロセツサ1は中間層のプ
ロセツサ4から7と接続1から接続4で接続されてい
る。この接続の両端のプロセツサの間でのみデータの直
接の転送が可能である。ここでは、層毎のプロセツサは
隣接した層のプロセツサの総てと接続しているが、総て
とではなく部分的な接続でも良い。また、隣接する層と
のみ接続しているが、隣接しない層との接続があつても
良い。第2図における接続1から32は、データを伝達す
る場合の重みとして動作する。例えば、プロセツサ4の
入力は、前段のプロセツサ8から12までの出力と、それ
ぞれのプロセツサに対応した接続の重みの積和となる。
すなわち、プロセツサiの出力をoi、入力をui、プロセ
ツサiとjの間の接続kの重みをWkとすると、例えば、
プロセツサ4の入力u4は、 u4=W13・08+W14・09+W15・010+W16・011+W17・012 になる。uiはプロセツサiの内部の処理によつてoiに変
換され、プロセツサiの出力として隣接するプロセツサ
に伝達される。
上記の計算がプロセツサ4から7のそれぞれで実行さ
れる。この時、前段のプロセツサ8から12は、それぞれ
の値を出力している。そして、同様にプロセツサ4から
7は、それぞれの値を出力し、プロセツサ1から3が積
和計算を実行する。このようにして、入力層を構成する
プロセツサ8から12が出力する値は、2度の積和計算の
後、出力層を構成するプロセツサ1から3の出力に変換
される。具体的には、入力層のパターンデータが画像を
表わし、出力層としてその画像の分類を表わしている場
合、例えば入力画像が文字である場合、文字認識装置と
して利用できる。入力が音声のパターンであつたり、経
済データのような時系列データであつても良い。何れの
場合でも、与えられた入力から、何らかの変換処理によ
つて意味のよい分かりやすいパターンデータを出力する
ことができる。
れる。この時、前段のプロセツサ8から12は、それぞれ
の値を出力している。そして、同様にプロセツサ4から
7は、それぞれの値を出力し、プロセツサ1から3が積
和計算を実行する。このようにして、入力層を構成する
プロセツサ8から12が出力する値は、2度の積和計算の
後、出力層を構成するプロセツサ1から3の出力に変換
される。具体的には、入力層のパターンデータが画像を
表わし、出力層としてその画像の分類を表わしている場
合、例えば入力画像が文字である場合、文字認識装置と
して利用できる。入力が音声のパターンであつたり、経
済データのような時系列データであつても良い。何れの
場合でも、与えられた入力から、何らかの変換処理によ
つて意味のよい分かりやすいパターンデータを出力する
ことができる。
入力と出力のパターンは通常何通りも存在する事か
ら、同様に入力が与えられても、最適な出力が得られる
ように、接続の重みを調節しなければならない。この計
算をネツトワークの学習と呼び、その一つにラメルハー
トらによつて提案されたバツク・プロパゲーシヨンと名
付けられた方法がある(Rumelhart,D.E.,Hinton,G.E.,W
illiams,R.J.:Parallel Distributed Processing:Explo
rations in the Microstructure of Cognition.Volume
1:Foundations,Chapter 8,The MIT Press,Cambridge,Ma
ss(1986)参照)。この方法では、従来パーセプトロン
と呼ばれた学習方法(Minsky,M.,Parert,S.:Perceptron
s−An Introduction to Computational Geometry、The
MIT Press,Cambridge,Mass(1969)参照)では、不可能
とされた問題にも適用できることが明らかにされた。
ら、同様に入力が与えられても、最適な出力が得られる
ように、接続の重みを調節しなければならない。この計
算をネツトワークの学習と呼び、その一つにラメルハー
トらによつて提案されたバツク・プロパゲーシヨンと名
付けられた方法がある(Rumelhart,D.E.,Hinton,G.E.,W
illiams,R.J.:Parallel Distributed Processing:Explo
rations in the Microstructure of Cognition.Volume
1:Foundations,Chapter 8,The MIT Press,Cambridge,Ma
ss(1986)参照)。この方法では、従来パーセプトロン
と呼ばれた学習方法(Minsky,M.,Parert,S.:Perceptron
s−An Introduction to Computational Geometry、The
MIT Press,Cambridge,Mass(1969)参照)では、不可能
とされた問題にも適用できることが明らかにされた。
次に、このバツク・プロパゲーシヨン学習方法の概略
を説明する。各接続の重みを調節することが、この学習
の目的であるから、ランダムな値を重みの初期値とし学
習を開始する。開始した直後は、重みが未調節なため、
望ましい出力パターンは得られない。そこで、得られた
出力値と、望ましい出力値(この場合、望ましい出力値
は予め既知であり、この値のことを教師値と呼ぶ)との
差分を基に各接続の重みを修正する。出力層のプロセツ
サとの接続の重みは、中間層の出力値と出力層での出力
値と教師値から、次式によつて算出することができる。
ここで、プロセツサ内部の入力から出力の変換は、シグ
モイド関数と呼ばれる非線形飽和関数が用いられている
とする。
を説明する。各接続の重みを調節することが、この学習
の目的であるから、ランダムな値を重みの初期値とし学
習を開始する。開始した直後は、重みが未調節なため、
望ましい出力パターンは得られない。そこで、得られた
出力値と、望ましい出力値(この場合、望ましい出力値
は予め既知であり、この値のことを教師値と呼ぶ)との
差分を基に各接続の重みを修正する。出力層のプロセツ
サとの接続の重みは、中間層の出力値と出力層での出力
値と教師値から、次式によつて算出することができる。
ここで、プロセツサ内部の入力から出力の変換は、シグ
モイド関数と呼ばれる非線形飽和関数が用いられている
とする。
ΔWji(n+1)=ηδjoj+αΔWji(n) δj=oj(1−oj)(ti−oj) ただし、Wjiは中間層のノードiから出力層のノード
jへの重みの値、oiはノードiからの出力値、tjは教師
値である。ηとαはある値を持つ係数であり学習が効率
よく進むように設定される。αは前回の修正値であり、
学習の安定化,高速化に役立つ。nは学習の繰返し回数
であり、パターンを入力層に提示し得られた出力値と教
師値に基づいて重みを修正する事を一回とする。δjは
シグモイド関数の導関数と誤差の積から求まる差分であ
る。毎回、各接続の重みの微少修正量ΔWjiが上式によ
つて求まるから、次回は、 Wji(n+1)=ΔWji(n+1)+Wji(n) なる重みの値が使われる。
jへの重みの値、oiはノードiからの出力値、tjは教師
値である。ηとαはある値を持つ係数であり学習が効率
よく進むように設定される。αは前回の修正値であり、
学習の安定化,高速化に役立つ。nは学習の繰返し回数
であり、パターンを入力層に提示し得られた出力値と教
師値に基づいて重みを修正する事を一回とする。δjは
シグモイド関数の導関数と誤差の積から求まる差分であ
る。毎回、各接続の重みの微少修正量ΔWjiが上式によ
つて求まるから、次回は、 Wji(n+1)=ΔWji(n+1)+Wji(n) なる重みの値が使われる。
第2図での例では、係数αの項を省略すると、 なる一連の計算によつて、出力層の重みが修正できる。
ここで、tjは出力層のノードjに対して、あるパターン
pを与えたときの教師値を示す。簡単化のため添字pを
省いた。
ここで、tjは出力層のノードjに対して、あるパターン
pを与えたときの教師値を示す。簡単化のため添字pを
省いた。
次に、入力層と中間層との間の重みの修正方法を説明
する。出力層では、教師値と直接比較できるので差分を
算出できた。しかし、中間層では、どのような値を中間
層のノードが出力すべきか不明である。そこで、出力層
での差分と、中間層と出力層との接続重みとの積和演算
で一般化された差分を次式で算出する。
する。出力層では、教師値と直接比較できるので差分を
算出できた。しかし、中間層では、どのような値を中間
層のノードが出力すべきか不明である。そこで、出力層
での差分と、中間層と出力層との接続重みとの積和演算
で一般化された差分を次式で算出する。
δj=oj(1−oj)ΣkδkWkj ここで、δkは出力層での差分であり、Wkjは中間層
のノードjと出力層のノードkとの間の重みである。こ
のδjがその一般化差分と考えることができる。すなわ
ち、出力層では、実際の出力と教師値との差であり、中
間層では、重みとの積和値である。入力から出力に向か
つて、データが伝わつたのとは、逆の方向に出力層での
差分が入力層に向かつて伝わる。ここで、ノードjでの
一般化差分の計算に必要な重みは、ノードjから出力さ
れる接続に対応している事に注意を要する。
のノードjと出力層のノードkとの間の重みである。こ
のδjがその一般化差分と考えることができる。すなわ
ち、出力層では、実際の出力と教師値との差であり、中
間層では、重みとの積和値である。入力から出力に向か
つて、データが伝わつたのとは、逆の方向に出力層での
差分が入力層に向かつて伝わる。ここで、ノードjでの
一般化差分の計算に必要な重みは、ノードjから出力さ
れる接続に対応している事に注意を要する。
第2図の例では、以下の様に計算される。中間層での
一般化差分δ4からδ7は、出力層での差分δ1からδ
3を用いて δ4=o4・(1−o4)・(δ1・W1+δ2・W5+δ3・
W9) δ5=o5・(1−o5)・(δ1・W2+δ2・W6+δ3・
W10) δ6=o6・(1−o6)・(δ1・W3+δ2・W7+δ3・
W11) δ7=o7・(1−o7)・(δ1・W4+δ2・W8+δ3・
W12) で求める。そして、重みは次の様に修正される。
一般化差分δ4からδ7は、出力層での差分δ1からδ
3を用いて δ4=o4・(1−o4)・(δ1・W1+δ2・W5+δ3・
W9) δ5=o5・(1−o5)・(δ1・W2+δ2・W6+δ3・
W10) δ6=o6・(1−o6)・(δ1・W3+δ2・W7+δ3・
W11) δ7=o7・(1−o7)・(δ1・W4+δ2・W8+δ3・
W12) で求める。そして、重みは次の様に修正される。
以上の計算方法では、一般化差分を算出するときにシ
グモイド関数の導関数を使い、また、重みの修正には、
ηδjojを用いた。しかし、この方法以外の一般的な方
法、 ΔWji=g(Wji,Xi,Yj) を使つても、以下に述べる実施例は有効である。すなわ
ち、重みの修正は接続の両端のノードの状態から直接計
算する場合に適用可能であり、上記の方法では、Xi=
oi,Yj=δjなる場合である。ここでは、中間層が一層
の場合を説明したが、複数の層がある場合でも同様にし
て、一般化差分を算出することが出来る。
グモイド関数の導関数を使い、また、重みの修正には、
ηδjojを用いた。しかし、この方法以外の一般的な方
法、 ΔWji=g(Wji,Xi,Yj) を使つても、以下に述べる実施例は有効である。すなわ
ち、重みの修正は接続の両端のノードの状態から直接計
算する場合に適用可能であり、上記の方法では、Xi=
oi,Yj=δjなる場合である。ここでは、中間層が一層
の場合を説明したが、複数の層がある場合でも同様にし
て、一般化差分を算出することが出来る。
これまで、ノードと接続は単純に数式上のものとして
説明したが、実際には物理的な構成要素が伴う。ノード
の実現には、プロセツサ上の要素、例えばプロセスやタ
スクを用いても良いし、単なるプログラム中の変数とし
ても良い。この場合、総ての接続の重みを単一のプロセ
ツサからアクセスが可能である。しかし、複数のプロセ
ツサ(通常、このような構成のネツトワークの場合、プ
ロセツサ数が多くなる)を用いて構成する場合、接続の
重みの格納場所が技術的な課題となる。すなわち、総て
の重みを同一記憶装置上に格納した場合、複数のプロセ
ツサからのアクセスが競合することになり、プロセツサ
数に見合つた性能向上が望めない。従つて、接続の重み
をプロセツサ個別の記憶装置上に格納する方式を採用す
ることになる。
説明したが、実際には物理的な構成要素が伴う。ノード
の実現には、プロセツサ上の要素、例えばプロセスやタ
スクを用いても良いし、単なるプログラム中の変数とし
ても良い。この場合、総ての接続の重みを単一のプロセ
ツサからアクセスが可能である。しかし、複数のプロセ
ツサ(通常、このような構成のネツトワークの場合、プ
ロセツサ数が多くなる)を用いて構成する場合、接続の
重みの格納場所が技術的な課題となる。すなわち、総て
の重みを同一記憶装置上に格納した場合、複数のプロセ
ツサからのアクセスが競合することになり、プロセツサ
数に見合つた性能向上が望めない。従つて、接続の重み
をプロセツサ個別の記憶装置上に格納する方式を採用す
ることになる。
プロセツサ毎の重みを格納した例を第1図に示し、本
発明の特徴である同一の重みを異なる場所に複数格納す
るという方法を説明する。このネツトワークは、0から
7までの計8個のプロセツサから構成される。1から7
までは第2図のプロセツサ1から7に対応する。第1図
でのプロセツサ0は第2図では8から12に対応する。こ
こで、入力層では、前述したように出力値を保持してい
るだけなので第1図では一つのプロセツサで構成してい
る。
発明の特徴である同一の重みを異なる場所に複数格納す
るという方法を説明する。このネツトワークは、0から
7までの計8個のプロセツサから構成される。1から7
までは第2図のプロセツサ1から7に対応する。第1図
でのプロセツサ0は第2図では8から12に対応する。こ
こで、入力層では、前述したように出力値を保持してい
るだけなので第1図では一つのプロセツサで構成してい
る。
ノード間の接続は、第2図ではそれぞれのプロセツサ
毎の結合で実現されているがプロセツサ数の増加に対し
結合数は2乗の場合で増加するため、第1図ではバス1
0,11,12で層間を結合している。これらのバスと各プロ
セツサとは100から114のバスで結合されている。また、
バス10,11,12はバス切換え21,22,23を通じバス13,14で
相互に結合されている。従つて、プロセツサ1,2,3に、
例えば、教師値をプロセツサ0から供給するには、バス
12,バス切換え23,バス14,バス切換え22,バス13,バス切
換え21,バス12を経て、バス100,101または102を使用す
る。プロセツサ0は入力および教師パターンを供給する
他、ネツトワーク全体を制御する。中間層の数が2以上
では、バス11の様に中間層のプロセツサが結合している
バスを通じ、制御用のデータを転送する。
毎の結合で実現されているがプロセツサ数の増加に対し
結合数は2乗の場合で増加するため、第1図ではバス1
0,11,12で層間を結合している。これらのバスと各プロ
セツサとは100から114のバスで結合されている。また、
バス10,11,12はバス切換え21,22,23を通じバス13,14で
相互に結合されている。従つて、プロセツサ1,2,3に、
例えば、教師値をプロセツサ0から供給するには、バス
12,バス切換え23,バス14,バス切換え22,バス13,バス切
換え21,バス12を経て、バス100,101または102を使用す
る。プロセツサ0は入力および教師パターンを供給する
他、ネツトワーク全体を制御する。中間層の数が2以上
では、バス11の様に中間層のプロセツサが結合している
バスを通じ、制御用のデータを転送する。
層毎の積和計算は次の様になる。層間のプロセツサ
は、一対一の直接結合を持たない。例えば、プロセツサ
4が出力o4をバス106を通じ、後段の層のプロセツサが
接続されているバス11に出力する。プロセツサ1から3
はバス103,104,105を通じバス11から出力o4を受け取る
ことができる。この場合層間の接続が個別接続ではない
ため、プロセツサ5から7はアイドル状態になつてい
る。しかしながら、プロセツサ5がプロセツサ4と同時
に出力を出したとしても、それを受け取る後段のプロセ
ツサの積和計算が同時に実行出来なければ、結局計算待
ちになるため、バスを分離して同時に出力したとして
も、同時出力の効果はない。一方で、プロセツサ1から
3で同時に積和計算が進むため、層に含まれる数のプロ
セツサに比例した速度向上が期待できる。
は、一対一の直接結合を持たない。例えば、プロセツサ
4が出力o4をバス106を通じ、後段の層のプロセツサが
接続されているバス11に出力する。プロセツサ1から3
はバス103,104,105を通じバス11から出力o4を受け取る
ことができる。この場合層間の接続が個別接続ではない
ため、プロセツサ5から7はアイドル状態になつてい
る。しかしながら、プロセツサ5がプロセツサ4と同時
に出力を出したとしても、それを受け取る後段のプロセ
ツサの積和計算が同時に実行出来なければ、結局計算待
ちになるため、バスを分離して同時に出力したとして
も、同時出力の効果はない。一方で、プロセツサ1から
3で同時に積和計算が進むため、層に含まれる数のプロ
セツサに比例した速度向上が期待できる。
バス10,11,12は独立のバスでなくともよい。すなわ
ち、全てのプロセツサが単一のバスに結合されている構
成でも良い。しかし、第1図の様にバスが分離されてい
ると、局所的なデータ転送を同時に出来るため、積和計
算を並列に実行したり、層別計算をパイプライン的に実
行することが可能になり、システム全体の性能が向上す
る。
ち、全てのプロセツサが単一のバスに結合されている構
成でも良い。しかし、第1図の様にバスが分離されてい
ると、局所的なデータ転送を同時に出来るため、積和計
算を並列に実行したり、層別計算をパイプライン的に実
行することが可能になり、システム全体の性能が向上す
る。
次に、重みの格納方法について説明する。第2図にお
ける中間層と出力層の重みを考える。例えば、プロセツ
サ1はプロセツサ4から7と接続されており、それぞれ
の接続重みは接続1から4である。この重みをプロセツ
サ1の記憶装置上に格納すると、入力層から出力層へ前
向きに計算する場合、プロセツサ1における積和計算に
必要な重みが同一プロセツサ内でアクセス可能になる。
しかし、一般化差分を出力層から入力層に向かつて逆方
向に伝える場合、例えばプロセツサ4においては、接続
重み1,5,9にアクセスする必要がある。これらの重み
は、プロセツサ4には存在しないため、存在するプロセ
ツサ1,2,3からデータを転送しなければならない。この
ことは、各プロセツサでの積和計算が前向き計算時に
は、同時に実行が可能であるにも拘らず、逆向き計算時
には同時には実行できないことを意味する。
ける中間層と出力層の重みを考える。例えば、プロセツ
サ1はプロセツサ4から7と接続されており、それぞれ
の接続重みは接続1から4である。この重みをプロセツ
サ1の記憶装置上に格納すると、入力層から出力層へ前
向きに計算する場合、プロセツサ1における積和計算に
必要な重みが同一プロセツサ内でアクセス可能になる。
しかし、一般化差分を出力層から入力層に向かつて逆方
向に伝える場合、例えばプロセツサ4においては、接続
重み1,5,9にアクセスする必要がある。これらの重み
は、プロセツサ4には存在しないため、存在するプロセ
ツサ1,2,3からデータを転送しなければならない。この
ことは、各プロセツサでの積和計算が前向き計算時に
は、同時に実行が可能であるにも拘らず、逆向き計算時
には同時には実行できないことを意味する。
この問題は、同一の重みを異なる場所に複数格納する
という方法を採用することによつて解決できる。すなわ
ち、第1図においてプロセツサ1は重みW1,W2,W3,W4を
格納している。また、出力o1や差分δ1も格納してい
る。ここで、異なる場所に格納するとは、例えば、W1と
同一の値を持つ記憶領域をプロセツサ4にも割当てる
(W1′なる記憶領域)ことである。この重みのことを以
下、鏡像重みと呼ぶ。さらに、プロセツサ4には、プロ
セツサ1と2に格納されている重みW5,W9と同一の内容W
5′,W9′も格納される。このように、重みを二重に格納
するのは中間層の属するプロセツサについてのみであ
り、出力層のプロセツサについては必要ない。この図で
は中間層が一層であるため、鏡像重みはプロセツサ4か
ら7に存在している。複数の中間層の場合には、鏡像重
みを持つプロセツサが増加する。すなわち、一般的に
は、前後に隣接した層が存在する場合に鏡像重みが必要
になる。
という方法を採用することによつて解決できる。すなわ
ち、第1図においてプロセツサ1は重みW1,W2,W3,W4を
格納している。また、出力o1や差分δ1も格納してい
る。ここで、異なる場所に格納するとは、例えば、W1と
同一の値を持つ記憶領域をプロセツサ4にも割当てる
(W1′なる記憶領域)ことである。この重みのことを以
下、鏡像重みと呼ぶ。さらに、プロセツサ4には、プロ
セツサ1と2に格納されている重みW5,W9と同一の内容W
5′,W9′も格納される。このように、重みを二重に格納
するのは中間層の属するプロセツサについてのみであ
り、出力層のプロセツサについては必要ない。この図で
は中間層が一層であるため、鏡像重みはプロセツサ4か
ら7に存在している。複数の中間層の場合には、鏡像重
みを持つプロセツサが増加する。すなわち、一般的に
は、前後に隣接した層が存在する場合に鏡像重みが必要
になる。
プロセツサからのアクセスが鏡像重みを持つことによ
つて局所化され、アクセスの並列性が保持されることが
分かつた。しかし、各プロセツサが独立に鏡像重みを修
正出来なければ、計算の並列性を維持することは出来な
い。次に、重みと鏡像重みがそれぞれ別のプロセツサの
記憶領域にあつた場合でも、修正結果の同一性が保証さ
れる並列学習方法について説明する。
つて局所化され、アクセスの並列性が保持されることが
分かつた。しかし、各プロセツサが独立に鏡像重みを修
正出来なければ、計算の並列性を維持することは出来な
い。次に、重みと鏡像重みがそれぞれ別のプロセツサの
記憶領域にあつた場合でも、修正結果の同一性が保証さ
れる並列学習方法について説明する。
まず、第3図を用いて、第1図に示した構成のネツト
ワークにおいて、前向きの計算がどのように多数のプロ
セツサによつて分担して進行するかを説明する。横軸は
時刻である。簡単化のためバスを通じて別のプロセツサ
へデータを転送するのに必要な時間は1単位時間とす
る。また、プロセツサ内部の処理、例えば、状態の初期
化や積和計算などに必要な時間も1単位時間とする。図
は、制御用のプロセツサ0の処理の様子、そして、プロ
セツサ1から7までの処理の様子とプロセツサ間のデー
タ転送の様子を示している。時刻0で、プロセツサ4か
ら7においては、積和を求めるための記憶領域を初期化
(クリア)する。次に、時刻1で、プロセツサ0は入力
値o8をバス114を通じてバス12に乗せる。時刻2でプロ
セツサ4から7はそれぞれバス12からo8を受け取り、各
プロセツサが格納している重みW13,W18,W23,W28との積
を計算し時刻0でクリアされている記憶領域に足し込
む。時刻3で再びプロセツサ0が入力値o9を時刻1と同
様にバスに対してブロード・キヤストする。このよう
に、プロセツサ0からのデータ転送とプロセツサ4から
7までの積和計算が交互に実行され、時刻11において、
中間層での積和が完了する。次に、中間層から出力層へ
のデータ転送と積和計算が、時刻11から同様に始まり、
時刻20で出力層からの出力、すなわち、ネツトワークの
出力、o1からo3が得られる。
ワークにおいて、前向きの計算がどのように多数のプロ
セツサによつて分担して進行するかを説明する。横軸は
時刻である。簡単化のためバスを通じて別のプロセツサ
へデータを転送するのに必要な時間は1単位時間とす
る。また、プロセツサ内部の処理、例えば、状態の初期
化や積和計算などに必要な時間も1単位時間とする。図
は、制御用のプロセツサ0の処理の様子、そして、プロ
セツサ1から7までの処理の様子とプロセツサ間のデー
タ転送の様子を示している。時刻0で、プロセツサ4か
ら7においては、積和を求めるための記憶領域を初期化
(クリア)する。次に、時刻1で、プロセツサ0は入力
値o8をバス114を通じてバス12に乗せる。時刻2でプロ
セツサ4から7はそれぞれバス12からo8を受け取り、各
プロセツサが格納している重みW13,W18,W23,W28との積
を計算し時刻0でクリアされている記憶領域に足し込
む。時刻3で再びプロセツサ0が入力値o9を時刻1と同
様にバスに対してブロード・キヤストする。このよう
に、プロセツサ0からのデータ転送とプロセツサ4から
7までの積和計算が交互に実行され、時刻11において、
中間層での積和が完了する。次に、中間層から出力層へ
のデータ転送と積和計算が、時刻11から同様に始まり、
時刻20で出力層からの出力、すなわち、ネツトワークの
出力、o1からo3が得られる。
第4図は、重みを修正するための逆向きの計算の処理
の流れを示した図である。この図を用いて、鏡像重みの
修正方法を説明するとともに、並列実行の効果も示す。
時刻0で、プロセツサ0は直前の前向き計算で用いた入
力パターンに対応する教師パターンの一部であるt1をバ
スを通じてプロセツサ1に転送する。時刻1で、プロセ
ツサ1では、前向き計算時に保持しておいた出力値o1と
転送されてきたt1から差分δ1を計算する。時刻2,3で
も、時刻1,2と同様、教師パターンの一部t2,t3に関する
差分δ2,δ3を計算する。次に、時刻6から14で、プロ
セツサ1から3の重み(W1からW12まで)を修正する。
まず、時刻6で、プロセツサ4と接続されている重みを
修正するため、o4をバス106からバス11に乗せ、プロセ
ツサ1から3は独立にこのデータを取込み、それぞれが
時刻2,4,6で計算を完了した差分δ1,δ2,δ3からΔW1,
ΔW5,ΔW9を求め、重みを修正する。時刻8では、プロ
セツサ5に接続された重みを同様に修正する。
の流れを示した図である。この図を用いて、鏡像重みの
修正方法を説明するとともに、並列実行の効果も示す。
時刻0で、プロセツサ0は直前の前向き計算で用いた入
力パターンに対応する教師パターンの一部であるt1をバ
スを通じてプロセツサ1に転送する。時刻1で、プロセ
ツサ1では、前向き計算時に保持しておいた出力値o1と
転送されてきたt1から差分δ1を計算する。時刻2,3で
も、時刻1,2と同様、教師パターンの一部t2,t3に関する
差分δ2,δ3を計算する。次に、時刻6から14で、プロ
セツサ1から3の重み(W1からW12まで)を修正する。
まず、時刻6で、プロセツサ4と接続されている重みを
修正するため、o4をバス106からバス11に乗せ、プロセ
ツサ1から3は独立にこのデータを取込み、それぞれが
時刻2,4,6で計算を完了した差分δ1,δ2,δ3からΔW1,
ΔW5,ΔW9を求め、重みを修正する。時刻8では、プロ
セツサ5に接続された重みを同様に修正する。
次に、時刻14から20において、鏡像重みを修正する。
この場合は、図に示すように出力層の差分を順次バスに
乗せ、プロセツサ4から7が保持している出力値o4から
o7によつて、重みの修正量が算出される。時刻20から27
において、出力層の差分が中間層に伝えられ、積和計算
の結果として、中間層での一般化差分が求まる。時刻20
で、プロセツサ4から7においては、差分の積和を求め
るための記憶領域を初期化(クリア)する。時刻21で、
出力層のプロセツサ1は差分δ1をバスに乗せる。プロ
セツサ4から7では、取込んだ差分と、それぞれが保持
している鏡像重みの積を積和用の記憶領域に足し込む。
同様にして、時刻27で中間層での一般化差分δ4,δ5,δ
6,δ7の計算が完了する。以降、入力層と中間層との重
みは、再び対応する入力パターンをプロセツサ0から順
次ブロード・キヤストすることによつて、W13からW32ま
でが修正される。以上の時間経過に対するプロセツサの
処理から、各層のプロセツサは同時に動作していること
が分かる。また、鏡像重みも、同一の値が保証されるこ
とも分かる。
この場合は、図に示すように出力層の差分を順次バスに
乗せ、プロセツサ4から7が保持している出力値o4から
o7によつて、重みの修正量が算出される。時刻20から27
において、出力層の差分が中間層に伝えられ、積和計算
の結果として、中間層での一般化差分が求まる。時刻20
で、プロセツサ4から7においては、差分の積和を求め
るための記憶領域を初期化(クリア)する。時刻21で、
出力層のプロセツサ1は差分δ1をバスに乗せる。プロ
セツサ4から7では、取込んだ差分と、それぞれが保持
している鏡像重みの積を積和用の記憶領域に足し込む。
同様にして、時刻27で中間層での一般化差分δ4,δ5,δ
6,δ7の計算が完了する。以降、入力層と中間層との重
みは、再び対応する入力パターンをプロセツサ0から順
次ブロード・キヤストすることによつて、W13からW32ま
でが修正される。以上の時間経過に対するプロセツサの
処理から、各層のプロセツサは同時に動作していること
が分かる。また、鏡像重みも、同一の値が保証されるこ
とも分かる。
重みの値は、学習計算を開始する以前に初期化する必
要があり、通常ランダムな値で初期化される。ランダム
な値は、計算機で発生させる擬似乱数を用いるのが一般
的なので、重みが別のプロセツサの記憶装置に格納され
ていたとしても、独立に同一の初期値に設定すること
は、容易である。
要があり、通常ランダムな値で初期化される。ランダム
な値は、計算機で発生させる擬似乱数を用いるのが一般
的なので、重みが別のプロセツサの記憶装置に格納され
ていたとしても、独立に同一の初期値に設定すること
は、容易である。
第4図では、大きく5つの区間、すなわち、出力層で
の差分を求める区間1(時刻0から6まで)、出力層の
重みを修正する区間2(時刻6から14まで)、中間層で
の鏡像重みを修正する区間3(時刻14から20まで)、中
間層での一般化差分を計算する区間4(時刻20から27ま
で)、そして、入力層と中間層の間の重みを修正する区
間5(時刻27から37まで)である。これらの区間の順序
は入れ替わつても良い区間や、交錯しても良い区間があ
る。例えば、区間2や区間3は入れ替わつても結果は同
じ。また、区間1と区間2は交錯して、δが求まつたら
直ぐに重みを修正は可能である。しかし、区間3と区間
4では、同様に出力層の差分をブロード・キヤストして
いるが、もし、中間層にデータを保持できる領域があれ
ば、片方のブロード・キヤストは不要になり、高速化が
可能になる。このように、余分の記憶領域があれば、区
間を入れ替えたり、交錯したりすることによつて、全体
の時間を短縮できる。どの場合でも、鏡像重み導入の効
果はある。
の差分を求める区間1(時刻0から6まで)、出力層の
重みを修正する区間2(時刻6から14まで)、中間層で
の鏡像重みを修正する区間3(時刻14から20まで)、中
間層での一般化差分を計算する区間4(時刻20から27ま
で)、そして、入力層と中間層の間の重みを修正する区
間5(時刻27から37まで)である。これらの区間の順序
は入れ替わつても良い区間や、交錯しても良い区間があ
る。例えば、区間2や区間3は入れ替わつても結果は同
じ。また、区間1と区間2は交錯して、δが求まつたら
直ぐに重みを修正は可能である。しかし、区間3と区間
4では、同様に出力層の差分をブロード・キヤストして
いるが、もし、中間層にデータを保持できる領域があれ
ば、片方のブロード・キヤストは不要になり、高速化が
可能になる。このように、余分の記憶領域があれば、区
間を入れ替えたり、交錯したりすることによつて、全体
の時間を短縮できる。どの場合でも、鏡像重み導入の効
果はある。
第5図は、鏡像重みがなく、第1図に示したバス結合
型のネツトワークで重みをプロセツサに局在化させた場
合を示す。この場合、上記に述べた中間層での一般化差
分を計算する第4図における区間4の動作が問題にな
る。第5図に示すように、中間層と出力層のプロセツサ
はバス11を使い、δWを接続数だけ逆方向に転送しなけ
ればならないためバス・ネツクとなり、動作しているプ
ロセツサは一つだけになつてしまう。従つて、並列化に
よる性能向上は望めない。
型のネツトワークで重みをプロセツサに局在化させた場
合を示す。この場合、上記に述べた中間層での一般化差
分を計算する第4図における区間4の動作が問題にな
る。第5図に示すように、中間層と出力層のプロセツサ
はバス11を使い、δWを接続数だけ逆方向に転送しなけ
ればならないためバス・ネツクとなり、動作しているプ
ロセツサは一つだけになつてしまう。従つて、並列化に
よる性能向上は望めない。
以上、第2図に示したネツトワークを第1図の構成で
計算する場合、すなわち、1ノード当たり1プロセツサ
の場合について、鏡像重み導入による並列動作の効果を
説明した。一般の場合では、必要なネツトワークのノー
ド数とプロセツサ数が一致しないことが多いと考えられ
る。プロセツサ数が少なければ、一つのプロセツサは複
数のノードの計算を担当する。また、逆にプロセツサ数
が多い場合、ノードの接続されている重みを分割し、別
々のプロセツサが分担することになる。さらに、一つの
プロセツサの局所的な記憶領域が、ノードの重みの数に
必要な記憶領域に比べて、小さい場合、重みを分割して
複数のプロセツサに分散しなければならない。
計算する場合、すなわち、1ノード当たり1プロセツサ
の場合について、鏡像重み導入による並列動作の効果を
説明した。一般の場合では、必要なネツトワークのノー
ド数とプロセツサ数が一致しないことが多いと考えられ
る。プロセツサ数が少なければ、一つのプロセツサは複
数のノードの計算を担当する。また、逆にプロセツサ数
が多い場合、ノードの接続されている重みを分割し、別
々のプロセツサが分担することになる。さらに、一つの
プロセツサの局所的な記憶領域が、ノードの重みの数に
必要な記憶領域に比べて、小さい場合、重みを分割して
複数のプロセツサに分散しなければならない。
一般のマイクロ・プロセツサを一つのノード処理に用
いた構成の場合、ノード当たりの処理の規模が小さく、
かつ接続されている重みの容量も小さい。例えば、一つ
のノードが1,000のノードと接続している場合を考える
と、接続重みの必要な記憶領域は、一接続当たり、Wと
前回のΔWをそれぞれ4バイトずつ割り当てたとして
も、8Kバイトである。この容量は、通常のマイクロ・プ
ロセツサの処理能力に比べて小さい。しかし、ネツトワ
ークを構成するノード数が例えば数1,000以上になるこ
とを考えると、ノードのプロセツサ割り当てが最適でな
く、幾つかのノードを一つのプロセツサに割当てなけれ
ばならない。
いた構成の場合、ノード当たりの処理の規模が小さく、
かつ接続されている重みの容量も小さい。例えば、一つ
のノードが1,000のノードと接続している場合を考える
と、接続重みの必要な記憶領域は、一接続当たり、Wと
前回のΔWをそれぞれ4バイトずつ割り当てたとして
も、8Kバイトである。この容量は、通常のマイクロ・プ
ロセツサの処理能力に比べて小さい。しかし、ネツトワ
ークを構成するノード数が例えば数1,000以上になるこ
とを考えると、ノードのプロセツサ割り当てが最適でな
く、幾つかのノードを一つのプロセツサに割当てなけれ
ばならない。
一方、マイクロ・プロセツサの様な単一または複数の
LSIチツプと、メモリLSI、そして制御回路によつてプロ
セツサを構成するのではなく、一つのチツプの内部にこ
れらをすべて集積する場合、チツプそのものの大きさが
歩留まりに影響することから、チツプを大きくすること
が出来ず、全体の性能や記憶容量が限定される。チツプ
を多数個ウエハー上に集積し、ウエハー全体を複数プロ
セツサからなるシステムとして用いる場合、この傾向は
顕著になる。従つて、容量の制限から一つのノードを別
々のプロセツサが受け持たねばならない場合がある。
LSIチツプと、メモリLSI、そして制御回路によつてプロ
セツサを構成するのではなく、一つのチツプの内部にこ
れらをすべて集積する場合、チツプそのものの大きさが
歩留まりに影響することから、チツプを大きくすること
が出来ず、全体の性能や記憶容量が限定される。チツプ
を多数個ウエハー上に集積し、ウエハー全体を複数プロ
セツサからなるシステムとして用いる場合、この傾向は
顕著になる。従つて、容量の制限から一つのノードを別
々のプロセツサが受け持たねばならない場合がある。
次に、このような1ノード当たり1プロセツサではな
い構成を持つたネツトワークの場合について説明する。
第6図は、一つのプロセツサが複数のノードを担当して
いる場合である。第7図にこの時のプロセツサ割当てを
示す。点線で囲つたノードが同じプロセツサ内部で処理
される。プロセツサ1が第2図の出力層のノードを全
て、プロセツサ2と3で中間層のノードを受け持つ。こ
の場合も、第1図の構成とプロセツサの数を除いてバス
構成等は同じである。出力,差分そして鏡像重みの格納
場所は、第6図に示す通りである。前向き処理は、第3
図に比べて、第3図でプロセツサ1から3が行なつてい
た並列処理が第6図でのプロセツサ1の内部の逐次処理
になる。逆向き処理においても、鏡像重みの修正と差分
の積和が同様に逐次処理になる。
い構成を持つたネツトワークの場合について説明する。
第6図は、一つのプロセツサが複数のノードを担当して
いる場合である。第7図にこの時のプロセツサ割当てを
示す。点線で囲つたノードが同じプロセツサ内部で処理
される。プロセツサ1が第2図の出力層のノードを全
て、プロセツサ2と3で中間層のノードを受け持つ。こ
の場合も、第1図の構成とプロセツサの数を除いてバス
構成等は同じである。出力,差分そして鏡像重みの格納
場所は、第6図に示す通りである。前向き処理は、第3
図に比べて、第3図でプロセツサ1から3が行なつてい
た並列処理が第6図でのプロセツサ1の内部の逐次処理
になる。逆向き処理においても、鏡像重みの修正と差分
の積和が同様に逐次処理になる。
第8図は、中間層の一つのノードの接合重みが、一つ
のプロセツサの最大記憶容量を越えた場合に、複数のプ
ロセツサで分担する場合を示した構成である。最大の記
憶容量を越える原因は、中間層のノードが入力層の多数
のノードと接続しているか、中間層のノードに鏡像重み
を格納したから、ΔWなどの作業用の記憶領域を確保し
たなどがある。第9図に、ネツトワークの形状とプロセ
ツサの割り当てを示す。第2図でのノード4は、第9図
ではプロセツサ41,42,4の3つのプロセツサが分担して
いる。入力層とはプロセツサ41と42で接続される。そし
て、2つのプロセツサからの出力値は、プロセツサ4に
おいて最終的な和が計算され入力層と中間層の積和計算
が完了する。同時に、シグモイド関数等を適用し、ノー
ド4の出力値であるo4がプロセツサ4で計算される。こ
の時の出力o,差分δ,重みW,鏡像重みW′の格納場所を
第8図に示す。ノード4でのそれぞれの値は、プロセツ
サ41が接続重みW13からW16までと差分δ4、そして積和
の中間結果など、プロセツサ42が接続重みW17からW20ま
でと差分δ4、そして積和の中間結果など、プロセツサ
4がノード4からの出力値o4そして鏡像重みW1′,W5′,
W9′である。
のプロセツサの最大記憶容量を越えた場合に、複数のプ
ロセツサで分担する場合を示した構成である。最大の記
憶容量を越える原因は、中間層のノードが入力層の多数
のノードと接続しているか、中間層のノードに鏡像重み
を格納したから、ΔWなどの作業用の記憶領域を確保し
たなどがある。第9図に、ネツトワークの形状とプロセ
ツサの割り当てを示す。第2図でのノード4は、第9図
ではプロセツサ41,42,4の3つのプロセツサが分担して
いる。入力層とはプロセツサ41と42で接続される。そし
て、2つのプロセツサからの出力値は、プロセツサ4に
おいて最終的な和が計算され入力層と中間層の積和計算
が完了する。同時に、シグモイド関数等を適用し、ノー
ド4の出力値であるo4がプロセツサ4で計算される。こ
の時の出力o,差分δ,重みW,鏡像重みW′の格納場所を
第8図に示す。ノード4でのそれぞれの値は、プロセツ
サ41が接続重みW13からW16までと差分δ4、そして積和
の中間結果など、プロセツサ42が接続重みW17からW20ま
でと差分δ4、そして積和の中間結果など、プロセツサ
4がノード4からの出力値o4そして鏡像重みW1′,W5′,
W9′である。
第10図は、第8図の場合の各プロセツサの動作を前向
きの計算時について示した図である。時刻0で、中間層
ノードを分担するプロセツサ全てが初期化を実行する。
時刻1から9において、半分に分割した接続重みに対応
する部分積和を実行する。時刻9から17において、もう
片側の部分積和を実行する。そして、時刻17で、プロセ
ツサ41は部分積和値Σ13_16をズハ13に載せ、プロセツ
サ4は時刻18に受け取る。時刻19で、プロセツサ42は部
分積和値Σ17_20をバス13に乗せ、プロセツサ4は時刻2
0に受け取り、時刻18に受け取つている値との和Σ13_20
を計算する。同様の部分積和からの和が時刻33まで続
き、入力層から中間層への積和計算を完了する。引き続
く中間層から出力層への動作は、第3図の場合と同様で
ある。ここで、バス13が合計12のプロセツサに接続して
いるため、部分積和から和を求めるのに、時刻17から33
までを必要としている。もし、バスがノード毎に分割さ
れ独立に動作可能ならば、時刻17から21で完了する。
きの計算時について示した図である。時刻0で、中間層
ノードを分担するプロセツサ全てが初期化を実行する。
時刻1から9において、半分に分割した接続重みに対応
する部分積和を実行する。時刻9から17において、もう
片側の部分積和を実行する。そして、時刻17で、プロセ
ツサ41は部分積和値Σ13_16をズハ13に載せ、プロセツ
サ4は時刻18に受け取る。時刻19で、プロセツサ42は部
分積和値Σ17_20をバス13に乗せ、プロセツサ4は時刻2
0に受け取り、時刻18に受け取つている値との和Σ13_20
を計算する。同様の部分積和からの和が時刻33まで続
き、入力層から中間層への積和計算を完了する。引き続
く中間層から出力層への動作は、第3図の場合と同様で
ある。ここで、バス13が合計12のプロセツサに接続して
いるため、部分積和から和を求めるのに、時刻17から33
までを必要としている。もし、バスがノード毎に分割さ
れ独立に動作可能ならば、時刻17から21で完了する。
第11図は、第8図の場合の各プロセツサの動作を逆向
きの計算時について示した図である。時刻27の区間4ま
では、第4図の場合と同じである。異なるのは、第11−
1図の区間5の時刻27から35まで、プロセツサ4から7
まで求まつた差分をプロセツサ41,42から71,72までに転
送している。これも、前述したように独立バスがあれ
ば、時間の短縮は可能である。そして、区間6の時刻35
から43まで、半分に分割した接続重み修正し、時刻43か
ら51で残りの接続重みを修正する。
きの計算時について示した図である。時刻27の区間4ま
では、第4図の場合と同じである。異なるのは、第11−
1図の区間5の時刻27から35まで、プロセツサ4から7
まで求まつた差分をプロセツサ41,42から71,72までに転
送している。これも、前述したように独立バスがあれ
ば、時間の短縮は可能である。そして、区間6の時刻35
から43まで、半分に分割した接続重み修正し、時刻43か
ら51で残りの接続重みを修正する。
バス13が部分積和の計算と、差分δの転送に使われた
とき、同時にはプロセツサが動作しなくなる。これは、
プロセツサの分割によつて並列動作が可能になつたにも
拘らず、バスが共用であるためプロセツサがアイドル状
態になつたことが理由である。従つて、前述したよう
に、独立に動作するバスがあれば、この問題は解決され
る。例えば、バス14が2系統あり、かつプロセツサ0の
替わりに2つのプロセツサ00と01があれば、第12図の示
す様に、前向き計算において、プロセツサのアイドル状
態を少なくすることが出来る。
とき、同時にはプロセツサが動作しなくなる。これは、
プロセツサの分割によつて並列動作が可能になつたにも
拘らず、バスが共用であるためプロセツサがアイドル状
態になつたことが理由である。従つて、前述したよう
に、独立に動作するバスがあれば、この問題は解決され
る。例えば、バス14が2系統あり、かつプロセツサ0の
替わりに2つのプロセツサ00と01があれば、第12図の示
す様に、前向き計算において、プロセツサのアイドル状
態を少なくすることが出来る。
本発明によれば、複数の処理装置が同時に動作できる
ので、処理装置の数に比例した速度が得られる効果があ
る。
ので、処理装置の数に比例した速度が得られる効果があ
る。
第1図は本発明の一実施例の多層型ネツトワーク装置の
構成図、第2図は多層型ネツトワークの概念説明図、第
3図は前向き計算時における処理の流れ図、第4図は逆
向き計算時における処理の流れ図、第5図は従来例での
逆向き計算時における処理の流れ図、第6図は第1図に
示した構成の変形構成図(一つの処理装置が複数ノード
を担当)、第7図は第6図の構成と多層型ネツトワーク
の対応図、第8図は第1図に示した構成の変形構成図
(一つのノードを複数処理装置が分担)、第9図は第8
図の構成と多層型ネツトワークの対応図、第10図は第8
図の構成の場合における前向き計算時における処理の流
れ図、第11図は第8図の構成の場合における逆向き計算
時における処理の流れ図、第12図は、バスを分離した場
合の高速化の一例を示す図である。
構成図、第2図は多層型ネツトワークの概念説明図、第
3図は前向き計算時における処理の流れ図、第4図は逆
向き計算時における処理の流れ図、第5図は従来例での
逆向き計算時における処理の流れ図、第6図は第1図に
示した構成の変形構成図(一つの処理装置が複数ノード
を担当)、第7図は第6図の構成と多層型ネツトワーク
の対応図、第8図は第1図に示した構成の変形構成図
(一つのノードを複数処理装置が分担)、第9図は第8
図の構成と多層型ネツトワークの対応図、第10図は第8
図の構成の場合における前向き計算時における処理の流
れ図、第11図は第8図の構成の場合における逆向き計算
時における処理の流れ図、第12図は、バスを分離した場
合の高速化の一例を示す図である。
Claims (6)
- 【請求項1】複数のデータを入力する手段から構成され
る入力層と、データを出力する手段を持つ複数のデータ
処理手段とから構成される出力層と、複数のデータ処理
手段から構成される少なくとも1層以上からなる中間層
から構成され、 それぞれのデータ処理手段は、入力層により近い下位層
に属する複数のデータ処理手段と接続され、それぞれの
接続に対応した重み係数を格納する記憶手段を持ち、下
位層からの出力値と、前記の重み係数から計算される値
を、出力層により近い上位層に属する複数のデータ処理
装置へ出力するように構成され、 入力ベクトルと出力ベクトルの複数組に対して、ある入
力ベクトルを入力層から入力した時、出力層から、前記
の入力ベクトルに対応する出力ベクトルにほぼ等しくな
るように、前記データ処理手段の重み係数を調節して、
総ての入力ベクトルに対して対応する出力ベクトルにほ
ぼ等しいベクトルが出力層から出力されるまで、前記の
重み係数の調節を繰り返す多層型ネットワークの学習装
置において、 前記中間層の中の特定中間層に着目した場合、着目した
中間層に属するデータ処理手段のそれぞれの記憶手段
は、着目した中間層から見て下位層に属する複数のデー
タ処理手段からの接続に対応した重み係数と、着目した
中間層から見て上位層に属する複数のデータ処理手段へ
の接続に対応した重み係数とを格納し、着目した中間層
とその上位層の間の接続に対応した重み係数を、着目し
た中間層およびその上位層それぞれに属するデータ処理
手段が重複して格納することを特徴とする多層型ネット
ワークの学習装置。 - 【請求項2】特許請求の範囲第1項において、特定の中
間層に着目した場合、着目した中間層の上位層に属する
複数のデータ処理手段が、そこに格納された着目してい
る中間層に属する複数のデータ処理手段との接続に対応
する重み係数を調整し、着目している中間層に属する複
数のデータ処理手段が、そこに格納されている上位層に
属する複数のデータ処理手段との接続に対応する重み係
数を調整する時に、 上位層に属するデータ処理手段に格納された、着目して
いる中間層に属する複数のデータ処理手段との接続に対
応する重み係数と、着目している中間層に属する複数の
データ処理手段に格納された、上位層に属する複数のデ
ータ処理手段との接続に対応する重み係数の中で、同一
の接続関係を表す接続に対応する重み係数は、着目して
いる中間層、およびその上位層それぞれに属するデータ
処理手段の中で、同一の値になるように調整することを
特徴とする多層型ネットワークの学習装置。 - 【請求項3】特許請求の範囲第1項または第2項におい
て、特定の中間層のデータ処理手段に着目した場合、着
目した中間層から見て上位層へのデータ処理手段に接続
する接続の重み係数と、その上位層に属するデータ処理
手段から着目した中間層に属するデータ処理手段に接続
する接続の重み係数それぞれを、異なったデータ処理手
段の記憶手段に格納することを特徴とする多層型ネット
ワークの学習装置。 - 【請求項4】特許請求の範囲第2項又は第3項におい
て、隣接する層間のデータ処理手段を接続する接続とは
別に、任意のデータ処理手段を接続する結合手段を有す
ることを特徴とする多層型ネットワークの学習装置。 - 【請求項5】複数のデータを入力する手段から構成され
る入力層と、データを出力する手段を持つ複数のデータ
処理手段とから構成される出力層と、複数のデータ処理
手段から構成される少なくとも1層以上からなる中間層
から構成され、 それぞれのデータ処理手段は、入力層により近い下位層
に属する複数のデータ処理手段と接続され、それぞれの
接続に対応した重み係数を格納する記憶手段を持ち、下
位層からの出力値と、前記の重み係数から計算される値
を、出力層により近い上位層に属する複数のデータ処理
装置へ出力するように構成され、 前記1層以上からなる中間層の中の特定中間層に着目し
た場合、着目した中間層に属するデータ処理手段のそれ
ぞれの記憶手段は、着目した中間層から見て下位層に属
する複数のデータ処理への接続に対応した重み係数と、
着目した中間層から見て上位層に属する複数のデータ処
理手段への接続に対応した重み係数とを格納し、着目し
た中間層とその上位層の間の接続に対応した重み係数を
着目した中間層、及びその上位層それぞれの属するデー
タ処理手段が重複して格納することを特徴とする多層型
ネットワーク装置。 - 【請求項6】特許請求の範囲第5項において、前記着目
した中間層、または、着目した出力層から見て下位の層
に属するデータ処理手段に、それぞれが有している記憶
手段に格納されている重み係数の一部と同じ重み係数
が、着目した層に属するデータ処理手段それぞれが有し
ている記憶手段に格納されていることを特徴とする多層
型ネットワーク装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1323721A JP2810170B2 (ja) | 1989-12-15 | 1989-12-15 | 多層型ネットワークの学習装置 |
US07/625,166 US5212767A (en) | 1989-12-15 | 1990-12-10 | Multi-layer network and learning method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1323721A JP2810170B2 (ja) | 1989-12-15 | 1989-12-15 | 多層型ネットワークの学習装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03185553A JPH03185553A (ja) | 1991-08-13 |
JP2810170B2 true JP2810170B2 (ja) | 1998-10-15 |
Family
ID=18157866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1323721A Expired - Fee Related JP2810170B2 (ja) | 1989-12-15 | 1989-12-15 | 多層型ネットワークの学習装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5212767A (ja) |
JP (1) | JP2810170B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5214747A (en) * | 1990-12-24 | 1993-05-25 | Eastman Kodak Company | Segmented neural network with daisy chain control |
US5402520A (en) * | 1992-03-06 | 1995-03-28 | Schnitta; Bonnie S. | Neural network method and apparatus for retrieving signals embedded in noise and analyzing the retrieved signals |
JPH05268470A (ja) * | 1992-03-19 | 1993-10-15 | Hitachi Ltd | 画像信号処理装置 |
JPH06195322A (ja) * | 1992-10-29 | 1994-07-15 | Hitachi Ltd | 汎用型ニューロコンピュータとして用いられる情報処理装置 |
US5453933A (en) * | 1993-09-08 | 1995-09-26 | Hurco Companies, Inc. | CNC control system |
US5835633A (en) * | 1995-11-20 | 1998-11-10 | International Business Machines Corporation | Concurrent two-stage multi-network optical character recognition system |
US5966460A (en) * | 1997-03-03 | 1999-10-12 | Xerox Corporation | On-line learning for neural net-based character recognition systems |
GB0717031D0 (en) | 2007-08-31 | 2007-10-10 | Raymarine Uk Ltd | Digital radar or sonar apparatus |
US7814038B1 (en) | 2007-12-06 | 2010-10-12 | Dominic John Repici | Feedback-tolerant method and device producing weight-adjustment factors for pre-synaptic neurons in artificial neural networks |
US8429107B2 (en) * | 2009-11-04 | 2013-04-23 | International Business Machines Corporation | System for address-event-representation network simulation |
JP6702390B2 (ja) * | 2018-10-09 | 2020-06-03 | トヨタ自動車株式会社 | 車両用駆動装置の制御装置、車載電子制御ユニット、学習済みモデル、機械学習システム、車両用駆動装置の制御方法、電子制御ユニットの製造方法及び出力パラメータ算出装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988010474A1 (en) * | 1987-06-18 | 1988-12-29 | University Of West Virginia | State analog neural network and method of implementing same |
FR2625347B1 (fr) * | 1987-12-23 | 1990-05-04 | Labo Electronique Physique | Structure de reseau de neurones et circuit et arrangement de reseaux de neurones |
EP0327817B1 (en) * | 1988-01-11 | 1996-08-28 | Yozan Inc. | Associative pattern conversion system and adaptation method thereof |
US4941122A (en) * | 1989-01-12 | 1990-07-10 | Recognition Equipment Incorp. | Neural network image processing system |
US4974169A (en) * | 1989-01-18 | 1990-11-27 | Grumman Aerospace Corporation | Neural network with memory cycling |
US5046019A (en) * | 1989-10-13 | 1991-09-03 | Chip Supply, Inc. | Fuzzy data comparator with neural network postprocessor |
-
1989
- 1989-12-15 JP JP1323721A patent/JP2810170B2/ja not_active Expired - Fee Related
-
1990
- 1990-12-10 US US07/625,166 patent/US5212767A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH03185553A (ja) | 1991-08-13 |
US5212767A (en) | 1993-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
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 | |
NL192637C (nl) | Stelselprocessor. | |
EP3669304B1 (en) | Systolic neural network engine with crossover connection optimization | |
US5544336A (en) | Parallel data processing system which efficiently performs matrix and neurocomputer operations, in a negligible data transmission time | |
Ramacher | SYNAPSE—A neurocomputer that synthesizes neural algorithms on a parallel systolic engine | |
US6654730B1 (en) | Neural network arithmetic apparatus and neutral network operation method | |
JP2810170B2 (ja) | 多層型ネットワークの学習装置 | |
US5600843A (en) | Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays | |
US4740894A (en) | Computing processor with memoryless function units each connected to different part of a multiported memory | |
US5799134A (en) | One dimensional systolic array architecture for neural network | |
JPH064507A (ja) | ニューラルネット | |
EP0557997A2 (en) | Information processing apparatus and information processing system | |
JPH04232562A (ja) | コンピユータ装置 | |
JPH05282272A (ja) | ニューラルネットワーク並列分散処理装置 | |
US5872988A (en) | Parallel data processing device having a concatenated data path between elementary processors | |
JPH05108595A (ja) | ニユーラルネツトワークの分散学習装置 | |
JP2001117900A (ja) | ニューラルネットワーク演算装置 | |
US5627944A (en) | Parallel data processing system | |
CN112970037A (zh) | 用于实施神经网络应用的多芯片***、适用于多芯片***的数据处理方法、和非暂时性计算机可读介质 | |
JPH04344970A (ja) | ニューラルネット処理装置 | |
WO2021197657A1 (en) | Control of data transfer between processing nodes | |
JP3271186B2 (ja) | 学習処理装置 | |
Suzuki et al. | A study of regular architectures for digital implementation of neural networks | |
JPH06110864A (ja) | 学習処理装置 | |
JP7487334B2 (ja) | 処理ノード動作の制御 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |