JPH03185553A - 多層型ネットワークの学習装置 - Google Patents
多層型ネットワークの学習装置Info
- Publication number
- JPH03185553A JPH03185553A JP1323721A JP32372189A JPH03185553A JP H03185553 A JPH03185553 A JP H03185553A JP 1323721 A JP1323721 A JP 1323721A JP 32372189 A JP32372189 A JP 32372189A JP H03185553 A JPH03185553 A JP H03185553A
- Authority
- JP
- Japan
- Prior art keywords
- layer
- data processing
- processing means
- processors
- output
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、文字認識などの画像パターン認識装置、ソナ
ーの信号処理、または証券や金融分野での応用が可能な
多層型ニューラル・ネットワークの学習を高速に実行す
る装置と並列計算方法に関する。
ーの信号処理、または証券や金融分野での応用が可能な
多層型ニューラル・ネットワークの学習を高速に実行す
る装置と並列計算方法に関する。
多層型ニューラル・ネットワークの学習は、般に計算回
数が膨大になるため、単一処理装置構成の汎用計算機上
で実行すると長時間の計算が必要である。そもそもニュ
ーラル・ネットワークは並列型計算機と親和性が良く、
学習方法の実装によっては並列度を上げることが可能で
ある。そこで、並列処理にって、高速計算する試みがな
されており、その一つに電子情報通信学会技術研究報告
書、MEとバイオサイバネティックス88−134 (
1989)に報告された試みがある。この試みでは、複
数個の処理装置(D S P : digitalsi
gnal processorとローカルメモリからな
る)をリング状に配置する。一つの処理装置に隣接する
層のノードを一つ以上割合て、あるノードの割合てられ
た処理装置のローカル・メモリ上にそのノードの属する
上位層との重み係数を格納する。入力層から出力層に向
かって前向きに積和計算を実行する時は、ある層に属す
る各処理装置は、各々独立に、ノードの値と上位層への
重みとの積を順順にリングに乗せ、目的とする処理装置
に到達するまで、リング上を回転させる。出力層から入
力層に向かって逆向きに積和計算を実行する時は。
数が膨大になるため、単一処理装置構成の汎用計算機上
で実行すると長時間の計算が必要である。そもそもニュ
ーラル・ネットワークは並列型計算機と親和性が良く、
学習方法の実装によっては並列度を上げることが可能で
ある。そこで、並列処理にって、高速計算する試みがな
されており、その一つに電子情報通信学会技術研究報告
書、MEとバイオサイバネティックス88−134 (
1989)に報告された試みがある。この試みでは、複
数個の処理装置(D S P : digitalsi
gnal processorとローカルメモリからな
る)をリング状に配置する。一つの処理装置に隣接する
層のノードを一つ以上割合て、あるノードの割合てられ
た処理装置のローカル・メモリ上にそのノードの属する
上位層との重み係数を格納する。入力層から出力層に向
かって前向きに積和計算を実行する時は、ある層に属す
る各処理装置は、各々独立に、ノードの値と上位層への
重みとの積を順順にリングに乗せ、目的とする処理装置
に到達するまで、リング上を回転させる。出力層から入
力層に向かって逆向きに積和計算を実行する時は。
各処理装置上に必要な重みが格納されているためリング
上に乗せる必要はないが、出力層からの誤差データは下
位の層に伝える必要があるので、目的とする処理装置に
到達するまでリング上を回転させる。すなわち、N離れ
たノードにデータを転送するには、N回リング上を回転
させる必要がある。従って、処理装置の数が多くなると
、データ転送に要する時間が増加する。このデータ転送
に併うオーバーヘッドをなくすためには、処理装置の結
合形態をリング状からバス状にするのが有効である。バ
ス型結合においては、どれだけ離れていても同じ時間遅
れでデータを転送できる。
上に乗せる必要はないが、出力層からの誤差データは下
位の層に伝える必要があるので、目的とする処理装置に
到達するまでリング上を回転させる。すなわち、N離れ
たノードにデータを転送するには、N回リング上を回転
させる必要がある。従って、処理装置の数が多くなると
、データ転送に要する時間が増加する。このデータ転送
に併うオーバーヘッドをなくすためには、処理装置の結
合形態をリング状からバス状にするのが有効である。バ
ス型結合においては、どれだけ離れていても同じ時間遅
れでデータを転送できる。
バス型結合においては、ある処理装置がバスに乗せたデ
ータを、複数の処理装置が同じ受取ることが可能で、積
和計算が並列に実行できる。下位層への重みを処理装置
が保持する構成とすると、前向き計算時、下位層の処理
装置が順々に、バスに出力を乗せ、上位層の処理装置は
各持続に対応した重みから積和を計算できる。しかし、
逆方向に積和計算を実行する時は、積和を実行する処理
装置上に必要な重みが格納されていないため、重みを上
位層から下位層に転送しなければならない。
ータを、複数の処理装置が同じ受取ることが可能で、積
和計算が並列に実行できる。下位層への重みを処理装置
が保持する構成とすると、前向き計算時、下位層の処理
装置が順々に、バスに出力を乗せ、上位層の処理装置は
各持続に対応した重みから積和を計算できる。しかし、
逆方向に積和計算を実行する時は、積和を実行する処理
装置上に必要な重みが格納されていないため、重みを上
位層から下位層に転送しなければならない。
しかし、上位層と下位層はバスで結合されているためデ
ータを並列に転送できなくなり、処理装置の数に比例し
た速度向上を期待できなくなるという欠点があった。
ータを並列に転送できなくなり、処理装置の数に比例し
た速度向上を期待できなくなるという欠点があった。
上記従来技術は、データを処理装置間で転送する場合に
必要な処理量を軽減する点についての配慮がなされてお
らず、処理装置を複数結合しても高速化できないという
問題があった。
必要な処理量を軽減する点についての配慮がなされてお
らず、処理装置を複数結合しても高速化できないという
問題があった。
本発明は、データ転送をなくし並列処理装置の実行速度
を上げることを目的としている。
を上げることを目的としている。
上記目的を遠戚するために、多層型ネットワークの重み
を、中間層に属する処理装置について、下位層に対する
重みだけでなく、上位層に対する重みも格納したもので
ある。すなわち、ある接続の重みが、その両端に接なか
っている処理装置上に二重に格納したものである。
を、中間層に属する処理装置について、下位層に対する
重みだけでなく、上位層に対する重みも格納したもので
ある。すなわち、ある接続の重みが、その両端に接なか
っている処理装置上に二重に格納したものである。
さらに、多層型ネットワークの学習は、上記の重みの値
を調節することであるから、二重に格納された重みが常
に同一の値になっている必要がある。このために1両端
の処理装置上で必要なデータを転送しあうようにしたも
のである。
を調節することであるから、二重に格納された重みが常
に同一の値になっている必要がある。このために1両端
の処理装置上で必要なデータを転送しあうようにしたも
のである。
さらに、一つの処理装置に重みを格納することができな
い場合、下位層に対する重みを別々の処理装置に分割す
るか、上位層に対する重みを別々にするか、下位層と上
位層に対する重みを別々に分割し格納するようにしたも
のである。
い場合、下位層に対する重みを別々の処理装置に分割す
るか、上位層に対する重みを別々にするか、下位層と上
位層に対する重みを別々に分割し格納するようにしたも
のである。
中間層の処理装置に格納された重みのうち、下位層に対
する重みは、前向き計算時、各々の処理装置で独立にア
クセスすることができる。また。
する重みは、前向き計算時、各々の処理装置で独立にア
クセスすることができる。また。
上位層に対する重みは、逆向き計算機、同様に各各の処
理装置で独立にアクセスすることができる。
理装置で独立にアクセスすることができる。
さらに、二重に格納された重みは、別々の処理装置によ
って同じ値になるように調節されるため、多層型ネット
ワークの学習方法は、単一処理計算機上で実行した結果
と本発明の装置での結果は等しくなる。
って同じ値になるように調節されるため、多層型ネット
ワークの学習方法は、単一処理計算機上で実行した結果
と本発明の装置での結果は等しくなる。
以下、図を用いて本発明の詳細な説明する。
第2図を用いて、多数のプロセッサ(プロセッサとは、
演算ユニットや記憶ユニットなどから構成される装置 た構造を持つシステム(以下の説明では、単にネットワ
ーク用語を用いる)の動作原理を説明する。
演算ユニットや記憶ユニットなどから構成される装置 た構造を持つシステム(以下の説明では、単にネットワ
ーク用語を用いる)の動作原理を説明する。
ネットワークを構成する単位をノード、ノード間のパス
を接続と呼ぶ。その接続に対応したある値のことを重み
と呼ぶ。ノードにおける処理はプロセッサによって実行
される。一つのノードの処理が一つのプロセッサによっ
て実行される構成や、複数のノードの処理が一つのプロ
セッサによって実行される構成や、一つのノードの処理
が複数のプロセッサによって実行される構成が可能であ
る。
を接続と呼ぶ。その接続に対応したある値のことを重み
と呼ぶ。ノードにおける処理はプロセッサによって実行
される。一つのノードの処理が一つのプロセッサによっ
て実行される構成や、複数のノードの処理が一つのプロ
セッサによって実行される構成や、一つのノードの処理
が複数のプロセッサによって実行される構成が可能であ
る。
従って、ノード間の接続は、プロセッサ間の結合であっ
たり、プロセッサ内部のデータ転送であったりする。以
下,ノード間の接続は接続、プロセッサ間の接続は結合
と記す。
たり、プロセッサ内部のデータ転送であったりする。以
下,ノード間の接続は接続、プロセッサ間の接続は結合
と記す。
第2図では、プロセッサが3つの層に配置され、それぞ
れの層間でのみ接続されている。最も左側の層、または
入力層はプロセッサ8から12で構成される。中央の層
、または中間層はプロセッサ4から7で構成される。最
も右側の層、または出力層はプロセッサ1から3で構成
される。この時、層毎には前述したように、入力層から
中間層へ、そして、中間層から出力層への接続が存在す
る。
れの層間でのみ接続されている。最も左側の層、または
入力層はプロセッサ8から12で構成される。中央の層
、または中間層はプロセッサ4から7で構成される。最
も右側の層、または出力層はプロセッサ1から3で構成
される。この時、層毎には前述したように、入力層から
中間層へ、そして、中間層から出力層への接続が存在す
る。
第2図では、出力層のプロセッサ1は中間層のプロセッ
サ4から7と接続lから接続4で接続されている。この
接続の両端のプロセッサの間でのみデータの直接の転送
が可能である。ここでは、層毎のプロセッサは隣接した
層のプロセッサの総てと接続しているが、総てとではな
く部分的な接続でも良い。また、隣接する層とのみ接続
しているが、隣接しない層との接続があっても良い。第
2図における接続lから32は、データを伝達する場合
の重みとして動作する。例えば、プロセッサ4の入力は
、前段のプロセッサ8から12までの出力と、それぞれ
のプロセッサに対応した接続の重みの積和となる。すな
わち、プロセッサiの出力を01、入力をul+プロセ
ッサiとjの間の接続にの重みをWkとすると、例えば
、プロセッサ4の入力u4は、 u4=W13・08+W14・09+W15・O10十
W16・011+W17・012 になる。ulはプロセッサiの内部の処理によってOi
に変換され、プロセッサiの出力として隣接するプロ
セッサに伝達される。
サ4から7と接続lから接続4で接続されている。この
接続の両端のプロセッサの間でのみデータの直接の転送
が可能である。ここでは、層毎のプロセッサは隣接した
層のプロセッサの総てと接続しているが、総てとではな
く部分的な接続でも良い。また、隣接する層とのみ接続
しているが、隣接しない層との接続があっても良い。第
2図における接続lから32は、データを伝達する場合
の重みとして動作する。例えば、プロセッサ4の入力は
、前段のプロセッサ8から12までの出力と、それぞれ
のプロセッサに対応した接続の重みの積和となる。すな
わち、プロセッサiの出力を01、入力をul+プロセ
ッサiとjの間の接続にの重みをWkとすると、例えば
、プロセッサ4の入力u4は、 u4=W13・08+W14・09+W15・O10十
W16・011+W17・012 になる。ulはプロセッサiの内部の処理によってOi
に変換され、プロセッサiの出力として隣接するプロ
セッサに伝達される。
上記の計算がプロセッサ4から7のそれぞれで実行され
る。この時、前段のプロセッサ8から12は、それぞれ
の値を出力している。そして、同様にプロセッサ4から
7は、それぞれの値を出力し、プロセッサ1から3が積
和計算を実行する。
る。この時、前段のプロセッサ8から12は、それぞれ
の値を出力している。そして、同様にプロセッサ4から
7は、それぞれの値を出力し、プロセッサ1から3が積
和計算を実行する。
このようにして、入力層を構成するプロセッサ8から1
2が出力する値は、2度の積和計算の後、出力層を構成
するプロセッサ1から3の出力に変換される。具体的に
は、入力層のパターンデータが画像を表わし、出力層と
してその画像の分類を表わしている場合、例えば入力画
像が文字である場合、文字認識装置として利用できる。
2が出力する値は、2度の積和計算の後、出力層を構成
するプロセッサ1から3の出力に変換される。具体的に
は、入力層のパターンデータが画像を表わし、出力層と
してその画像の分類を表わしている場合、例えば入力画
像が文字である場合、文字認識装置として利用できる。
入力が音声のパターンであったり、経済データのような
時系列データであっても良い。何れの場合でも、与えら
れた入力から、何らかの変換処理によって意味のよい分
かりやすいパターンデータを出力することができる。
時系列データであっても良い。何れの場合でも、与えら
れた入力から、何らかの変換処理によって意味のよい分
かりやすいパターンデータを出力することができる。
入力と出力のパターンは通常何遍りも存在する事から、
同様に入力が与えられても、最適な出力が得られるよう
に、接続の重みを調節しなければならない。この計算を
ネットワークの学習と呼び、その一つにラメルハートら
によって提案されたバック・プロパゲーションと名付け
られた方法がある(Rumelhart、D、E、、H
inton、G、E、、williams、R,J。
同様に入力が与えられても、最適な出力が得られるよう
に、接続の重みを調節しなければならない。この計算を
ネットワークの学習と呼び、その一つにラメルハートら
によって提案されたバック・プロパゲーションと名付け
られた方法がある(Rumelhart、D、E、、H
inton、G、E、、williams、R,J。
: Parallel Distributed Pr
ocessing :Explorations in
the Microstructure ofCog
nition、Volume 1 : Foundat
ions、Chapter 8゜The MIT Pr
ess、Cambridge、Mass (1986)
参照)。
ocessing :Explorations in
the Microstructure ofCog
nition、Volume 1 : Foundat
ions、Chapter 8゜The MIT Pr
ess、Cambridge、Mass (1986)
参照)。
この方法では、従来パーセプトロンと呼ばれた学習方法
(Minsky、M、、Parert、S、 : Pe
rceptrons−AnIntroduction
to Computational Geometry
、 The阿IT Press、Cambridge、
Mass (1969)参照)では、不可能とされた問
題にも適用できることが明らかにされた。
(Minsky、M、、Parert、S、 : Pe
rceptrons−AnIntroduction
to Computational Geometry
、 The阿IT Press、Cambridge、
Mass (1969)参照)では、不可能とされた問
題にも適用できることが明らかにされた。
次に、このバック・プロパゲーション学習方法の概轄を
説明する。各接続の重みを調節することが、この学習の
目的であるから、ランダムな値を重みの初期値とし学習
を開始する。開始した直後は、重みが未調節なため、望
ましい出カバターンは得られない。そこで、得られた出
力値と、望ましい出力値(この場合、望ましい出力値は
予め既知であり、この値のことを教師値と呼ぶ)との差
分を基に各接続の重みを修正する。出力層のプロセッサ
との接続の重みは、中間層の出力値と出力層での出力値
と教師値から、次式によって算出することができる。こ
こで、プロセッサ内部の入力から出力の変換は、シグモ
イド関数と呼ばれる非線形飽和関数が用いられていると
する。
説明する。各接続の重みを調節することが、この学習の
目的であるから、ランダムな値を重みの初期値とし学習
を開始する。開始した直後は、重みが未調節なため、望
ましい出カバターンは得られない。そこで、得られた出
力値と、望ましい出力値(この場合、望ましい出力値は
予め既知であり、この値のことを教師値と呼ぶ)との差
分を基に各接続の重みを修正する。出力層のプロセッサ
との接続の重みは、中間層の出力値と出力層での出力値
と教師値から、次式によって算出することができる。こ
こで、プロセッサ内部の入力から出力の変換は、シグモ
イド関数と呼ばれる非線形飽和関数が用いられていると
する。
ΔWJt(n +1 )= 71δJOJ + aΔW
J 1 (n )δJ=OJ(1oJ)(tt−oJ
) ただし、WJIは中間層のノードiから出力層のノード
jへの重みの値、0.はノードiからの出力値、1.は
教師値である。ηとαはある値を持つ係数であり学習が
効率よく進むように設定される。αは前回の修正値であ
り、学習の安定化、高速化に役立つ。nは学習の繰返し
回数であり、パターンを入力層に提示し得られた出力値
と教師値に基づいて重みを修正する事を一回とする。δ
、はシグモイド関数の導関数と誤差の積から求まる差分
である。毎回、各接続の重みの微少修正量ΔWJsが上
式によって求まるから、次回は、VJt(n +1 )
=ΔWJ1(n +1)+Wai(n)なる重みの値が
使われる。
J 1 (n )δJ=OJ(1oJ)(tt−oJ
) ただし、WJIは中間層のノードiから出力層のノード
jへの重みの値、0.はノードiからの出力値、1.は
教師値である。ηとαはある値を持つ係数であり学習が
効率よく進むように設定される。αは前回の修正値であ
り、学習の安定化、高速化に役立つ。nは学習の繰返し
回数であり、パターンを入力層に提示し得られた出力値
と教師値に基づいて重みを修正する事を一回とする。δ
、はシグモイド関数の導関数と誤差の積から求まる差分
である。毎回、各接続の重みの微少修正量ΔWJsが上
式によって求まるから、次回は、VJt(n +1 )
=ΔWJ1(n +1)+Wai(n)なる重みの値が
使われる。
第2図での例では、係数αの項を省略すると、ΔW1=
lo 1・(1−o 1)・(t 1−o 1)・u4
ΔW2=io 1・(1−o 1)(t 1−o 1)
・u5ΔW3=η・o 1(1−o 1)(t 1−o
1)・u6ΔW4=lo 1(1−o 1)(t 1
−o 1)・u7ΔWl 2 = rt・o 3(1−
o 3)・(t 3−o 3)・u 7なる一連の計算
によって、出力層の重みが修正できる。ここで、を−は
出力層のノードjに対して、あるパターンpを与えたと
きの教師値を示す。簡単化のため添字Pを省いた。
lo 1・(1−o 1)・(t 1−o 1)・u4
ΔW2=io 1・(1−o 1)(t 1−o 1)
・u5ΔW3=η・o 1(1−o 1)(t 1−o
1)・u6ΔW4=lo 1(1−o 1)(t 1
−o 1)・u7ΔWl 2 = rt・o 3(1−
o 3)・(t 3−o 3)・u 7なる一連の計算
によって、出力層の重みが修正できる。ここで、を−は
出力層のノードjに対して、あるパターンpを与えたと
きの教師値を示す。簡単化のため添字Pを省いた。
次に、入力層と中間層との間の重みの修正方法を説明す
る。出力層では、教師値と直接比較できるので差分を算
出できた。しかし、中間層では、どのような値を中間層
のノードが出力すべきか不明である。そこで、出力層で
の差分と、中間層と出力層との接続重みとの積和演算で
一般化された差分を次式で算出する。
る。出力層では、教師値と直接比較できるので差分を算
出できた。しかし、中間層では、どのような値を中間層
のノードが出力すべきか不明である。そこで、出力層で
の差分と、中間層と出力層との接続重みとの積和演算で
一般化された差分を次式で算出する。
δJ=OJ(l OJ)Σ1δkW h Jここで、
δには出力層での差分てあり、W kJは中間層のノー
ドjと出力層のノードにとの間の重みである。このδ、
がその一般化差分と考えることができる。すなわち、出
力層では、実際の出力と教師値との差であり、中間層で
は、重みとの積和値である。入力から出力に向かって、
データが伝わったのとは、逆の方向に出力層での差分が
入力層に向かって伝わる。ここで、ノードjでの一般化
差分の計算に必要な重みは、ノードjから出力される接
続に対応している事に注意を要する。
δには出力層での差分てあり、W kJは中間層のノー
ドjと出力層のノードにとの間の重みである。このδ、
がその一般化差分と考えることができる。すなわち、出
力層では、実際の出力と教師値との差であり、中間層で
は、重みとの積和値である。入力から出力に向かって、
データが伝わったのとは、逆の方向に出力層での差分が
入力層に向かって伝わる。ここで、ノードjでの一般化
差分の計算に必要な重みは、ノードjから出力される接
続に対応している事に注意を要する。
第2図の例では、以下の様に計算される。中間層での一
般化差分δ4からδ7は、出力層での差分δ1から63
を用いて δ4=04・(1−o4)・(δ1・W1+δ2・W5
+δ3・W9)δ5=o 5・(1−o 5)(δ1
・W2+δ2−W6+δ3・WIO)δ6 =o6(1
−o6)(δ1・W3+δ2−W7+δ3・Wll)δ
7=07・(1−o7)・(δ1・W4+δ2・W8+
δ3・W12)で求める。そして、重みは次の様に修正
される。
般化差分δ4からδ7は、出力層での差分δ1から63
を用いて δ4=04・(1−o4)・(δ1・W1+δ2・W5
+δ3・W9)δ5=o 5・(1−o 5)(δ1
・W2+δ2−W6+δ3・WIO)δ6 =o6(1
−o6)(δ1・W3+δ2−W7+δ3・Wll)δ
7=07・(1−o7)・(δ1・W4+δ2・W8+
δ3・W12)で求める。そして、重みは次の様に修正
される。
ΔW13=η・δ4・o8
ΔW17”!’ δ4 ・ o l 2ΔW32=η
・ δ 7 ・ o 工2以上の計算方法では、一般
化差分を算出するときにシグモイド関数の導関数を使い
、また、重みの修正には、ηδJOJを用いた。しかし
、この方法以外の一般的な方法、 A WJI = g (WJI 、 Xl、 Y J)
を使っても、以下に述べる実施例は有効である。
・ δ 7 ・ o 工2以上の計算方法では、一般
化差分を算出するときにシグモイド関数の導関数を使い
、また、重みの修正には、ηδJOJを用いた。しかし
、この方法以外の一般的な方法、 A WJI = g (WJI 、 Xl、 Y J)
を使っても、以下に述べる実施例は有効である。
すなわち、重みの修正は接続の両端のノードの状態から
直接計算する場合に適用可能であり、上記の方法では、
X r = o 1e Y a =δ、なる場合である
。
直接計算する場合に適用可能であり、上記の方法では、
X r = o 1e Y a =δ、なる場合である
。
ここでは、中間層が一層の場合を説明したが、複数の層
がある場合でも同様にして、一般化差分を算出すること
が出来る。
がある場合でも同様にして、一般化差分を算出すること
が出来る。
これまで、ノードと接続は単純に数式上のものとして説
明したが、実際には物理的な構成要素が伴う。ノードの
実現には、プロセッサ上の要素、例えばプロセスやタス
クを用いても良いし、単なるプログラム中の変数として
も良い。この場合、総ての接続の重みを単一のプロセッ
サからアクセスが可能である。しかし、複数のプロセッ
サ(通常、このような構成のネットワークの場合、プロ
セッサ数が多くなる)を用いて構成する場合、接続の重
みの格納場所が技術的な課題となる。すなわち、総ての
重みを同−記憶装置上に格納した場合、複数のプロセッ
サからのアクセスが競合することになり、プロセッサ数
に見合った性能向上が望めない。従って、接続の重みを
プロセッサ個別の記憶装置上に格納する方式を採用する
ことになる。
明したが、実際には物理的な構成要素が伴う。ノードの
実現には、プロセッサ上の要素、例えばプロセスやタス
クを用いても良いし、単なるプログラム中の変数として
も良い。この場合、総ての接続の重みを単一のプロセッ
サからアクセスが可能である。しかし、複数のプロセッ
サ(通常、このような構成のネットワークの場合、プロ
セッサ数が多くなる)を用いて構成する場合、接続の重
みの格納場所が技術的な課題となる。すなわち、総ての
重みを同−記憶装置上に格納した場合、複数のプロセッ
サからのアクセスが競合することになり、プロセッサ数
に見合った性能向上が望めない。従って、接続の重みを
プロセッサ個別の記憶装置上に格納する方式を採用する
ことになる。
プロセッサ毎の重みを格納した例を第1図に示し、本発
明の特徴である同一の重みを異なる場所に複数格納する
という方法を説明する。このネットワークは、Oから7
までの計8個のプロセッサから構成される。lから7ま
では第2図のプロセッサ1から7に対応する。第1図で
のプロセッサ0は第2図では8から12に対応する。こ
こで、入力層では、前述したように出力値を保持してい
るだけなので第1図では一つのプロセッサで構成してい
る。
明の特徴である同一の重みを異なる場所に複数格納する
という方法を説明する。このネットワークは、Oから7
までの計8個のプロセッサから構成される。lから7ま
では第2図のプロセッサ1から7に対応する。第1図で
のプロセッサ0は第2図では8から12に対応する。こ
こで、入力層では、前述したように出力値を保持してい
るだけなので第1図では一つのプロセッサで構成してい
る。
ノード間の接続は、第2図ではそれぞれのプロセッサ毎
の結合で実現されているがプロセッサ数の増加に対し結
合数は2乗の場合で増加するため、第1図ではバス10
,11,12で層間を結合している。これらのバスと各
プロセッサとは100から↓工4のバスで結合されてい
る。また、バス10.11.12はバス切換え21,2
2.23を通じバス13.14で相互に結合されている
。
の結合で実現されているがプロセッサ数の増加に対し結
合数は2乗の場合で増加するため、第1図ではバス10
,11,12で層間を結合している。これらのバスと各
プロセッサとは100から↓工4のバスで結合されてい
る。また、バス10.11.12はバス切換え21,2
2.23を通じバス13.14で相互に結合されている
。
従って、プロセッサ1,2.3に、例えば、教師値をプ
ロセッサ0から供給するには、バス12゜バス切換え2
3.バス14.バス切換え22.バス13.バス切換え
21.バス12を経て、バス100,101または10
2を使用する。プロセッサOは入力および教師パターン
を供給する他、ネットワーク全体を制御する。中間層の
数が2以上では、バス11の様に中間層のプロセッサが
結合しているバスを通じ、制御用のデータを転送する。
ロセッサ0から供給するには、バス12゜バス切換え2
3.バス14.バス切換え22.バス13.バス切換え
21.バス12を経て、バス100,101または10
2を使用する。プロセッサOは入力および教師パターン
を供給する他、ネットワーク全体を制御する。中間層の
数が2以上では、バス11の様に中間層のプロセッサが
結合しているバスを通じ、制御用のデータを転送する。
層毎の積和計算は次の様になる。層間のプロセッサは、
一対一の直接結合を持たない。例えば、プロセッサ4が
出力o4をバス106を通じ、後段の層のプロセッサが
接続されているバス11に出力する。プロセッサ1から
3はバス103゜104.105を通じバス11から出
力04を受は取ることができる。この場合層間の接続が
個別接続ではないため、プロセッサ5から7はアイドル
状態になっている。しかしながら、プロセッサ5がプロ
セッサ4と同時に出力を出したとしても、それを受は取
る後段のプロセッサの積和計算が同時に実行出来なけれ
ば、結局計算待ちになるため、バスを分離して同時に出
力したとしても、同時出力の効果はない。一方で、プロ
セッサ1から3で同時に積和計算が進むため、層に含ま
れる数のプロセッサに比例した速度向上が期待できる。
一対一の直接結合を持たない。例えば、プロセッサ4が
出力o4をバス106を通じ、後段の層のプロセッサが
接続されているバス11に出力する。プロセッサ1から
3はバス103゜104.105を通じバス11から出
力04を受は取ることができる。この場合層間の接続が
個別接続ではないため、プロセッサ5から7はアイドル
状態になっている。しかしながら、プロセッサ5がプロ
セッサ4と同時に出力を出したとしても、それを受は取
る後段のプロセッサの積和計算が同時に実行出来なけれ
ば、結局計算待ちになるため、バスを分離して同時に出
力したとしても、同時出力の効果はない。一方で、プロ
セッサ1から3で同時に積和計算が進むため、層に含ま
れる数のプロセッサに比例した速度向上が期待できる。
バス10,11.12は独立のバスでなくともよい。す
なわち、全てのプロセッサが単一のバスに結合されてい
る構成でも良い。しかし、第1図の様にバスが分離され
ていると1局所的なデータ転送を同時に出来るため、積
和計算を並列に実行したり、層別計算をパイプライン的
に実行することが可能になり、システム全体の性能が向
上する。
なわち、全てのプロセッサが単一のバスに結合されてい
る構成でも良い。しかし、第1図の様にバスが分離され
ていると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は重みWl、W2.W3
.W4を格納している。また、出力o1や差分δ1も格
納している。ここで、異なる場所に格納するとは、例え
ば、Wlと同一の値を持つ記憶領域をプロセッサ4にも
割当てる(W1′なる記憶領域)ことである。この重み
のことを以下、鏡像重みと呼ぶ。さらに、プロセッサ4
には、プロセッサ1と2に格納されている重みW5.W
9と同一の内容W5’ 、W9’も格納される。このよ
うに、重みを二重に格納するのは中間層の属するプロセ
ッサについてのみであり、出力層のプロセッサについて
は必要ない。この図では中間層が一層であるため、鏡像
重みはプロセッサ4から7に存在している。複数の中間
層の場合には、鏡像重みを持つプロセッサが増加する。
いう方法を採用することによって解決できる。すなわち
、第1図においてプロセッサ1は重みWl、W2.W3
.W4を格納している。また、出力o1や差分δ1も格
納している。ここで、異なる場所に格納するとは、例え
ば、Wlと同一の値を持つ記憶領域をプロセッサ4にも
割当てる(W1′なる記憶領域)ことである。この重み
のことを以下、鏡像重みと呼ぶ。さらに、プロセッサ4
には、プロセッサ1と2に格納されている重みW5.W
9と同一の内容W5’ 、W9’も格納される。このよ
うに、重みを二重に格納するのは中間層の属するプロセ
ッサについてのみであり、出力層のプロセッサについて
は必要ない。この図では中間層が一層であるため、鏡像
重みはプロセッサ4から7に存在している。複数の中間
層の場合には、鏡像重みを持つプロセッサが増加する。
すなわち、−殻内には、前後に隣接した層が存在する場
合に鏡像重みが必要になる。
合に鏡像重みが必要になる。
プロセッサからのアクセスが鏡像重みを持つことによっ
て局所化され、アクセスの並列性が保持されることが分
かった。しかし、各プロセッサが独立に鏡像重みを修正
出来なければ、計算の並列性を維持することは出来ない
0次に、重みと鏡像重みがそれぞれ別のプロセッサの記
憶領域にあった場合でも、修正結果の同一性が保証され
る並列学習方法について説明する。
て局所化され、アクセスの並列性が保持されることが分
かった。しかし、各プロセッサが独立に鏡像重みを修正
出来なければ、計算の並列性を維持することは出来ない
0次に、重みと鏡像重みがそれぞれ別のプロセッサの記
憶領域にあった場合でも、修正結果の同一性が保証され
る並列学習方法について説明する。
まず、第3図を用いて、第1図に示した構成のネットワ
ークにおいて、前向きの計算がどのように多数のプロセ
ッサによって分担して進行するかを説明する。横軸は時
刻である。簡単化のためバスを通じて別のプロセッサへ
データを転送するのに必要な時間は1重位時間とする。
ークにおいて、前向きの計算がどのように多数のプロセ
ッサによって分担して進行するかを説明する。横軸は時
刻である。簡単化のためバスを通じて別のプロセッサへ
データを転送するのに必要な時間は1重位時間とする。
また、プロセツサ内部の処理、例えば、状態の初期化や
積和計算などに必要な時間も1重位時間とする。図は、
制御用のプロセッサOの処理の様子、そして、プロセッ
サ1から7までの処理の様子とプロセッサ間のデータ転
送の様子を示している。時刻Oで、プロセッサ4から7
においては、積和を求めるための記憶領域を初期化(ク
リア)する。次に2時刻1で、プロセッサOは入力値0
8をバス114を通じてバス12に乗せる。時刻2でプ
ロセッサ4から7はそれぞれバス12から08を受は取
り、各プロセッサが格納している重みWl3.Wl8゜
W23.W28との積を計算し時刻Oでクリアされてい
る記憶領域に足し込む。時刻3で再びプロセッサOが入
力値09を時刻1と同様にバスに対してブロード・キャ
ストする。このように、プロセッサOからのデータ転送
とプロセッサ4から7までの積和計算が交互に実行され
、時刻11において、中間層での積和が完了する。次に
、中間層から出力層へのデータ転送と積和計算が、時刻
11から同様に始まり、時刻20で出力層からの出力、
すなわち、ネットワークの出力、olから03が得られ
る。
積和計算などに必要な時間も1重位時間とする。図は、
制御用のプロセッサOの処理の様子、そして、プロセッ
サ1から7までの処理の様子とプロセッサ間のデータ転
送の様子を示している。時刻Oで、プロセッサ4から7
においては、積和を求めるための記憶領域を初期化(ク
リア)する。次に2時刻1で、プロセッサOは入力値0
8をバス114を通じてバス12に乗せる。時刻2でプ
ロセッサ4から7はそれぞれバス12から08を受は取
り、各プロセッサが格納している重みWl3.Wl8゜
W23.W28との積を計算し時刻Oでクリアされてい
る記憶領域に足し込む。時刻3で再びプロセッサOが入
力値09を時刻1と同様にバスに対してブロード・キャ
ストする。このように、プロセッサOからのデータ転送
とプロセッサ4から7までの積和計算が交互に実行され
、時刻11において、中間層での積和が完了する。次に
、中間層から出力層へのデータ転送と積和計算が、時刻
11から同様に始まり、時刻20で出力層からの出力、
すなわち、ネットワークの出力、olから03が得られ
る。
第4図は1重みを修正するための逆向きの計算の処理の
流れを示した図である。この図を用いて、鏡像重みの修
正方法を説明するとともに、並列実行の効果も示す。時
刻Oで、プロセッサOは直前の前向き計算で用いた入カ
バターンに対応する教師パターンの一部であるtlをバ
スを通じてプロセッサ1に転送する。時刻1で、プロセ
ッサ1では、前向き計算時に保持しておいた出力値o1
と転送されてきたtlから差分δ1を計算する。時刻2
,3でも、時刻1.2と同様、教師パターンの一部t2
.t3に関する差分δ2.δ3を計算する。次に、時刻
6から14で、プロセッサ1から3の重み(WlからW
l2まで)を修正する。
流れを示した図である。この図を用いて、鏡像重みの修
正方法を説明するとともに、並列実行の効果も示す。時
刻Oで、プロセッサOは直前の前向き計算で用いた入カ
バターンに対応する教師パターンの一部であるtlをバ
スを通じてプロセッサ1に転送する。時刻1で、プロセ
ッサ1では、前向き計算時に保持しておいた出力値o1
と転送されてきたtlから差分δ1を計算する。時刻2
,3でも、時刻1.2と同様、教師パターンの一部t2
.t3に関する差分δ2.δ3を計算する。次に、時刻
6から14で、プロセッサ1から3の重み(WlからW
l2まで)を修正する。
まず1時刻6で、プロセッサ4と接続されている重みを
修正するため、o4をバス106からバス11に乗せ、
プロセッサlから3は独立にこのデータを取込み、それ
ぞれが時刻2,4.6で計算を完了した差分δ1.δ2
.δ3からΔWl。
修正するため、o4をバス106からバス11に乗せ、
プロセッサlから3は独立にこのデータを取込み、それ
ぞれが時刻2,4.6で計算を完了した差分δ1.δ2
.δ3からΔWl。
ΔW5.ΔW9を求め、重みを修正する。時刻8では、
プロセッサ5に接続された重みを同様に修正する。
プロセッサ5に接続された重みを同様に修正する。
次に、時刻14から20において、鏡像重みを修正する
。この場合は、図に示すように出力層の差分を順次バス
に乗せ、プロセッサ4から7が保持している出力値o4
から07によって、重みの修正量が算出される。時刻2
0から27において。
。この場合は、図に示すように出力層の差分を順次バス
に乗せ、プロセッサ4から7が保持している出力値o4
から07によって、重みの修正量が算出される。時刻2
0から27において。
出力層の差分が中間層に伝えられ、積和計算の結果とし
て、中間層での一般化差分が求まる。時刻20で、プロ
セッサ4から7においては、差分の積和を求めるための
記憶領域を初期化(クリア)する。時刻21で、出力層
のプロセッサlは差分δlをバスに乗せる。プロセッサ
4から7では、取込んだ差分と、それぞれが保持してい
る鏡像重みの積を積和用の記憶領域に足し込む。同様に
して、時刻27で中間層での一般化差分δ4.δ5゜δ
6.δ7の計算が完了する。以降、入力層と中間層との
重みは、再び対応する入カバターンをプロセッサOから
順次ブロード・キャストすることによって、Wl3から
W32までが修正される。
て、中間層での一般化差分が求まる。時刻20で、プロ
セッサ4から7においては、差分の積和を求めるための
記憶領域を初期化(クリア)する。時刻21で、出力層
のプロセッサlは差分δlをバスに乗せる。プロセッサ
4から7では、取込んだ差分と、それぞれが保持してい
る鏡像重みの積を積和用の記憶領域に足し込む。同様に
して、時刻27で中間層での一般化差分δ4.δ5゜δ
6.δ7の計算が完了する。以降、入力層と中間層との
重みは、再び対応する入カバターンをプロセッサOから
順次ブロード・キャストすることによって、Wl3から
W32までが修正される。
以上の時間経過に対するプロセッサの処理から、各層の
プロセッサは同時に動作していることが分かる。また、
鏡像重みも、同一の値が保証されることも分かる。
プロセッサは同時に動作していることが分かる。また、
鏡像重みも、同一の値が保証されることも分かる。
重みの値は、学習計算を開始する以前に初期化する必要
があり、通常ランダムな値で初期化される。ランダムな
値は、計算機で発生させる擬似乱数を用いるのが一般的
なので、重みが別のプロセッサの記憶装置に格納されて
いたとしても、独立に同一の初期値に設定することは、
容易である。
があり、通常ランダムな値で初期化される。ランダムな
値は、計算機で発生させる擬似乱数を用いるのが一般的
なので、重みが別のプロセッサの記憶装置に格納されて
いたとしても、独立に同一の初期値に設定することは、
容易である。
第4図では、大きく5つの区間、すなわち、出力層での
差分を求める区間l(時刻Oから6まで)、出力層の重
みを修正する区間2(時刻6から14まで)、中間層で
の鏡像重みを修正する区間3(時刻14から20まで)
、中間層での一般化差分を計算する区間4(時刻20か
ら27まで)、そして、入力層と中間層の間の重みを修
正する区間5(時刻27から37まで)である、これら
の区間の順序は入れ替わっても良い区間や、交錯しても
良い区間がある0例えば、区間2や区間3は入れ替わっ
ても結果は同じ。また、区間1と区間2は交錯して、δ
が求まったら直ぐに重みを修正は可能である。しかし、
区間3と区間4では、同様に出力層の差分をブロード・
キャストしているが、もし、中間層にデータを保持でき
る領域があれば、片方のブロード・キャストは不要にな
り、高速化が可能になる。このように、余分の記憶領域
があれば、区間を入れ替えたり、交錯したりすることに
よって、全体の時間を短縮できる。どの場合でも、鏡像
重み導入の効果はある。
差分を求める区間l(時刻Oから6まで)、出力層の重
みを修正する区間2(時刻6から14まで)、中間層で
の鏡像重みを修正する区間3(時刻14から20まで)
、中間層での一般化差分を計算する区間4(時刻20か
ら27まで)、そして、入力層と中間層の間の重みを修
正する区間5(時刻27から37まで)である、これら
の区間の順序は入れ替わっても良い区間や、交錯しても
良い区間がある0例えば、区間2や区間3は入れ替わっ
ても結果は同じ。また、区間1と区間2は交錯して、δ
が求まったら直ぐに重みを修正は可能である。しかし、
区間3と区間4では、同様に出力層の差分をブロード・
キャストしているが、もし、中間層にデータを保持でき
る領域があれば、片方のブロード・キャストは不要にな
り、高速化が可能になる。このように、余分の記憶領域
があれば、区間を入れ替えたり、交錯したりすることに
よって、全体の時間を短縮できる。どの場合でも、鏡像
重み導入の効果はある。
第5図は、鏡像重みがなく、第1図に示したバス結合型
のネットワークで重みをプロセッサに局在化させた場合
を示す、この場合、上記に述べた中間層での一般化差分
を計算する第4図における区間4の動作が問題になる。
のネットワークで重みをプロセッサに局在化させた場合
を示す、この場合、上記に述べた中間層での一般化差分
を計算する第4図における区間4の動作が問題になる。
第5図に示すように、中間層と出力層のプロセッサはバ
ス11を使い、δWを接続数だけ逆方向に転送しなけれ
ばならないためバス・ネックとなり、動作しているプロ
セッサは一つだけになってしまう。従って、並列化によ
る性能向上は望めない。
ス11を使い、δWを接続数だけ逆方向に転送しなけれ
ばならないためバス・ネックとなり、動作しているプロ
セッサは一つだけになってしまう。従って、並列化によ
る性能向上は望めない。
以上、第2図に示したネットワークを第1図の構成で計
算する場合、すなわち、1ノード当たり1プロセツサの
場合について、!I像重み導入による並列動作の効果を
説明した。一般の場合では、必要なネットワークのノー
ド数とプロセッサ数が一致しないことが多いと考えられ
る。プロセッサ数が少なければ、一つのプロセッサは複
数のノードの計算を担当する。また、逆にプロセッサ数
が多い場合、ノードの接続されている重みを分割し、別
々のプロセッサが分担することになる。さらに、一つの
プロセッサの局所的な記憶領域が、ノードの重みの数に
必要な記憶領域に比べて、小さい場合、重みを分割して
複数のプロセッサに分散しなければならい。
算する場合、すなわち、1ノード当たり1プロセツサの
場合について、!I像重み導入による並列動作の効果を
説明した。一般の場合では、必要なネットワークのノー
ド数とプロセッサ数が一致しないことが多いと考えられ
る。プロセッサ数が少なければ、一つのプロセッサは複
数のノードの計算を担当する。また、逆にプロセッサ数
が多い場合、ノードの接続されている重みを分割し、別
々のプロセッサが分担することになる。さらに、一つの
プロセッサの局所的な記憶領域が、ノードの重みの数に
必要な記憶領域に比べて、小さい場合、重みを分割して
複数のプロセッサに分散しなければならい。
一般のマイクロ・プロセッサを−っのノード処理に用い
た構成の場合、ノード当たりの処理の規模が小さく、か
つ接続されている重みの容量も小さい。例えば、一つの
ノードが1,000 のノードと接続している場合を考
えると、接続重みの必要な記憶領域は、−接続重たり、
Wと前回のΔWをそれぞれ4バイトずつ割り当てたとし
ても、8にバイトである。この容量は1通常のマイクロ
・プロセッサの処理能力に比べて小さい。しかし、ネッ
トワークを構成するノード数が例えば数1.000 以
上になることを考えると、ノードのプロセッサ割り当て
が最適でなく、幾つかのノードを一つのプロセッサに割
当てなければならない。
た構成の場合、ノード当たりの処理の規模が小さく、か
つ接続されている重みの容量も小さい。例えば、一つの
ノードが1,000 のノードと接続している場合を考
えると、接続重みの必要な記憶領域は、−接続重たり、
Wと前回のΔWをそれぞれ4バイトずつ割り当てたとし
ても、8にバイトである。この容量は1通常のマイクロ
・プロセッサの処理能力に比べて小さい。しかし、ネッ
トワークを構成するノード数が例えば数1.000 以
上になることを考えると、ノードのプロセッサ割り当て
が最適でなく、幾つかのノードを一つのプロセッサに割
当てなければならない。
一方、マイクロ・プロセッサの様な単一または複数のL
SIチップと、メモリLSI、そして制御回路によって
プロセッサを構成するのではなく。
SIチップと、メモリLSI、そして制御回路によって
プロセッサを構成するのではなく。
一つのチップの内部にこれらをすべて集積する場合、チ
ップそのものの大きさが歩留まりに影響することから、
チップを大きくすることが出来ず、全体の性能や記憶容
量が限定される。チップを多数個ウェハー上に集積し、
ウェハー全体を複数プロセッサからなるシステムとして
用いる場合、この傾向は顕著になる。従って、容量の制
限から一つのノードを別々のプロセッサが受は持たねば
ならない場合がある。
ップそのものの大きさが歩留まりに影響することから、
チップを大きくすることが出来ず、全体の性能や記憶容
量が限定される。チップを多数個ウェハー上に集積し、
ウェハー全体を複数プロセッサからなるシステムとして
用いる場合、この傾向は顕著になる。従って、容量の制
限から一つのノードを別々のプロセッサが受は持たねば
ならない場合がある。
次に、このようなlノード当たり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などの作業用の記憶領域を確保した
などがある。
プロセッサの最大記憶容量を越えた場合に、複数のプロ
セッサで分担する場合を示した構成である。最大の記憶
容量を越える原因は、中間層のノードが入力層の多数の
ノードと接続しているか、中間層のノードに鏡像重みを
格納したから、ΔWなどの作業用の記憶領域を確保した
などがある。
第9図に、ネットワークの形状とプロセッサの割り当て
を示す。第2図でのノード4は、第9図ではプロセッサ
41,42.4の3つのプロセッサが分担している。入
力層とはプロセッサ41と42で接続される。そして、
2つのプロセッサからの出力値は、プロセッサ4におい
て最終的な和が計算され入力層と中間層の積和計算が完
了する。
を示す。第2図でのノード4は、第9図ではプロセッサ
41,42.4の3つのプロセッサが分担している。入
力層とはプロセッサ41と42で接続される。そして、
2つのプロセッサからの出力値は、プロセッサ4におい
て最終的な和が計算され入力層と中間層の積和計算が完
了する。
同時に、シグモイド関数等を適用し、ノード4の出力値
であるo4がプロセッサ4で計算される。
であるo4がプロセッサ4で計算される。
この時の出力0.差分69重みW、鏡像重みW′の格納
場所を第8図に示す。ノード4でのそれぞれの値は、プ
ロセッサ41が接続重みW13からW16までと差分δ
4、そして積和の中間結果など、プロセッサ42が接続
重みW17からW2Oまでと差分δ4、そして積和の中
間結果など、プロセッサ4がノード4からの出力値o4
そして鏡像重みWl’ 、W5’ 、W9’である。
場所を第8図に示す。ノード4でのそれぞれの値は、プ
ロセッサ41が接続重みW13からW16までと差分δ
4、そして積和の中間結果など、プロセッサ42が接続
重みW17からW2Oまでと差分δ4、そして積和の中
間結果など、プロセッサ4がノード4からの出力値o4
そして鏡像重みWl’ 、W5’ 、W9’である。
第10図は、第8図の場合の各プロセッサの動作を前向
きの計算時について示した図である。時刻Oで、中間層
ノードを分担するプロセッサ全てが初期化を実行する。
きの計算時について示した図である。時刻Oで、中間層
ノードを分担するプロセッサ全てが初期化を実行する。
時刻1から9において、半分に分割した接続重みに対応
する部分積和を実行する。時刻9から17において、も
う片側の部分積和を実行する。そして、時刻17で、プ
ロセッサ41は部分積和値Σ13j8をズハ13に載せ
、プロセッサ4は時刻18に受は取る。時刻19で、プ
ロセッサ42は部分積和値Σ17jOをバス13に乗せ
、プロセッサ4は時刻20に受は取り、時刻18に受は
取っている値との和Σ111jOを計算する。同様の部
分積和からの和が時刻33まで続き、入力層から中間層
への積和計算を完了する。
する部分積和を実行する。時刻9から17において、も
う片側の部分積和を実行する。そして、時刻17で、プ
ロセッサ41は部分積和値Σ13j8をズハ13に載せ
、プロセッサ4は時刻18に受は取る。時刻19で、プ
ロセッサ42は部分積和値Σ17jOをバス13に乗せ
、プロセッサ4は時刻20に受は取り、時刻18に受は
取っている値との和Σ111jOを計算する。同様の部
分積和からの和が時刻33まで続き、入力層から中間層
への積和計算を完了する。
引き続く中間層から出力層への動作は、第3図の場合と
同様である。ここで、バス13が合計12のプロセッサ
に接続しているため1部分積和から和を求めるのに、時
刻17から33までを必要としている。もし、バスがノ
ード毎に分割され独立に動作可能ならば、時刻17から
21で完了する。
同様である。ここで、バス13が合計12のプロセッサ
に接続しているため1部分積和から和を求めるのに、時
刻17から33までを必要としている。もし、バスがノ
ード毎に分割され独立に動作可能ならば、時刻17から
21で完了する。
第11図は、第8図の場合の各プロセッサの動作を逆向
きの計算時について示した図である。時刻27の区間4
までは、第4図の場合と同じである。異なるのは、第1
1−1図の区間5の時刻27から35まで、プロセッサ
4から7まで求まった差分をプロセッサ41.42から
71.72までに転送している。これも、前述したよう
に独立バスがあれば、時間の短縮は可能である。そして
、区間6の時刻35から43まで、半分に分割した接続
重み修正し、時刻43から51で残りの接続重みを修正
する。
きの計算時について示した図である。時刻27の区間4
までは、第4図の場合と同じである。異なるのは、第1
1−1図の区間5の時刻27から35まで、プロセッサ
4から7まで求まった差分をプロセッサ41.42から
71.72までに転送している。これも、前述したよう
に独立バスがあれば、時間の短縮は可能である。そして
、区間6の時刻35から43まで、半分に分割した接続
重み修正し、時刻43から51で残りの接続重みを修正
する。
バス13が部分積和の計算と、差分δの転送に使われた
とき、同時にはプロセッサが動作しなくなる。これは、
プロセッサの分割によって並列動作が可能になったにも
拘らず、バスが共用であるためプロセッサがアイドル状
態になったことが理由である。従って、前述したように
、独立に動作するバスがあれば、この問題は解決される
。例えば、バス14が2系統あり、かつプロセッサOの
替わりに2つのプロセッサOOと01があれば、第12
図の示す様に、前向き計算において、プロセッサのアイ
ドル状態を少なくすることが出来る。
とき、同時にはプロセッサが動作しなくなる。これは、
プロセッサの分割によって並列動作が可能になったにも
拘らず、バスが共用であるためプロセッサがアイドル状
態になったことが理由である。従って、前述したように
、独立に動作するバスがあれば、この問題は解決される
。例えば、バス14が2系統あり、かつプロセッサOの
替わりに2つのプロセッサOOと01があれば、第12
図の示す様に、前向き計算において、プロセッサのアイ
ドル状態を少なくすることが出来る。
本発明によれば、複数の処理装置が同時に動作できるの
で、処理装置の数に比例した速度が得られる効果がある
。
で、処理装置の数に比例した速度が得られる効果がある
。
第1図は本発明の一実施例の多層型ネットワーク装置の
構成図、第2図は多層型ネットワークの概念説明図、第
3図は前向き計算時における処理の流れ図、第4図は逆
向き計算時における処理の流れ図、第5図は従来例での
逆向き計算時における処理の流れ図、第6図は第1図に
示した構成の変形構成図(一つの処理装置が複数ノード
を担当)、第7図は第6図の構成と多層型ネットワーク
の対応図、第8図は第1図に示した構成の変形構成図(
一つのノードを複数処理装置が分担)、第9図は第8図
の構成と多層型ネットワークの対応図、第10図は第8
図の構成の場合における前向き計算時における処理の流
れ図、第11図は第8図の構成の場合における逆向き計
算時における処理の流れ図、第12図は、バスを分離し
た場合の高速化の一例を示す図である。、T−)
構成図、第2図は多層型ネットワークの概念説明図、第
3図は前向き計算時における処理の流れ図、第4図は逆
向き計算時における処理の流れ図、第5図は従来例での
逆向き計算時における処理の流れ図、第6図は第1図に
示した構成の変形構成図(一つの処理装置が複数ノード
を担当)、第7図は第6図の構成と多層型ネットワーク
の対応図、第8図は第1図に示した構成の変形構成図(
一つのノードを複数処理装置が分担)、第9図は第8図
の構成と多層型ネットワークの対応図、第10図は第8
図の構成の場合における前向き計算時における処理の流
れ図、第11図は第8図の構成の場合における逆向き計
算時における処理の流れ図、第12図は、バスを分離し
た場合の高速化の一例を示す図である。、T−)
Claims (1)
- 【特許請求の範囲】 1、複数のデータを入力する手段から構成される入力層
と、データを出力する手段を持つ複数のデータ処理手段
から構成される出力層と、複数のデータ処理手段から構
成される少なくとも1層以上からなる中間層から構成さ
れ、それぞれのデータ処理手段は、入力層により近い下
位層に属する複数のデータ処理手段と接続され、それぞ
れの接続に対応した重み係数を格納する記憶手段を持ち
、下位層からの出力値と、前記の重み係数から計算され
る値を、出力層により近い上位層に属する複数のデータ
処理手段へ出力するように構成され、入力ベクトルと出
力ベクトルの複数組に対して、ある入力ベクトルを入力
層から入力した時、出力層から、前記の入力ベクトルに
対応する出力ベクトルにほぼ等しくなるように、前記デ
ータ処理手段の重み係数を調節し、総ての入力ベクトル
に対して対応する出力ベクトルにほぼ等しいベクトルが
出力層から出力されるまで、前記の重み係数の調節を繰
返す多層型のネットワーク装置において、前記中間層に
属するデータ処理手段のそれぞれの記憶手段は、下位層
からの重み係数と上位層への重み係数とを格納すること
を特徴とする多層型ネットワークの学習装置。 2、特許請求の範囲第1項において、前記中間層のデー
タ処理手段から、上位層への重み係数を前記のデータ処
理手段によつて調節し、かつ上位層でのデータ処理手段
が該記憶手段に格納された下位層への重み係数を調節す
る時、同一の接続に対応する重み係数は両方のデータ処
理手段で同一の値になるように調節することを特徴とす
る多層型ネットワークの学習装置。 3、特許請求の範囲第1項又は第2項において、下位層
への重み係数と上位層への重み係数を異なつたデータ処
理手段の記憶手段に格納することを特徴とする多層型ネ
ットワークの学習装置。 4、特許請求の範囲第2項又は第3項において、隣接す
る層のデータ処理手段の間の結合手段を前記の層間とは
異なる結合手段とを同時に使用することを特徴とする多
層型ネットワークの学習装置。 5、複数のデータを入力する手段から構成される入力層
と、データを出力する手段を持つ複数のデータ処理手段
から構成される出力層と、複数のデータ処理手段から構
成される少なくとも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 true JPH03185553A (ja) | 1991-08-13 |
| JP2810170B2 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 |
| US5040230A (en) * | 1988-01-11 | 1991-08-13 | Ezel Incorporated | 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 |
|---|---|
| JP2810170B2 (ja) | 1998-10-15 |
| 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 | |
| US5544336A (en) | Parallel data processing system which efficiently performs matrix and neurocomputer operations, in a negligible data transmission time | |
| NL192637C (nl) | Stelselprocessor. | |
| US5600843A (en) | Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays | |
| CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
| US5517596A (en) | Learning machine synapse processor system apparatus | |
| US20110161625A1 (en) | Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor | |
| JPH03185553A (ja) | 多層型ネットワークの学習装置 | |
| KR102373802B1 (ko) | 신경망 연산 효율 증대를 위한 신경망 가속기 및 그의 동작 방법 | |
| JPH05108595A (ja) | ニユーラルネツトワークの分散学習装置 | |
| JPH0619862A (ja) | スケーラブル超並列グループ分割対角線折畳みスイッチング・ツリー型コンピューティング装置 | |
| US5872988A (en) | Parallel data processing device having a concatenated data path between elementary processors | |
| CN112970037B (zh) | 用于实施神经网络应用的多芯片系统、适用于多芯片系统的数据处理方法、和非暂时性计算机可读介质 | |
| EP4024205A1 (en) | Scalable neural network accelerator architecture | |
| US5627944A (en) | Parallel data processing system | |
| JPH05159087A (ja) | ニューロプロセッサ | |
| CN112099850B (zh) | 一种多核Hourglass网络加速方法 | |
| JP3517432B2 (ja) | データ処理装置 | |
| US20040216119A1 (en) | Method for load balancing an n-dimensional array of parallel processing elements | |
| JPH06110864A (ja) | 学習処理装置 | |
| US20040216117A1 (en) | Method for load balancing a line of parallel processing elements | |
| KR102574824B1 (ko) | 가변 비트 수를 지원하는 병렬 처리 장치 | |
| JPH07210542A (ja) | ニューロン回路 | |
| JP3271186B2 (ja) | 学習処理装置 | |
| JPH03263164A (ja) | データ並列処理方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |