JPH0484358A - ニユーラルネットの並列計算処理方法 - Google Patents
ニユーラルネットの並列計算処理方法Info
- Publication number
- JPH0484358A JPH0484358A JP2200456A JP20045690A JPH0484358A JP H0484358 A JPH0484358 A JP H0484358A JP 2200456 A JP2200456 A JP 2200456A JP 20045690 A JP20045690 A JP 20045690A JP H0484358 A JPH0484358 A JP H0484358A
- Authority
- JP
- Japan
- Prior art keywords
- coefficient matrix
- weighting coefficient
- partial
- layer
- processor
- 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.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野〕
本発明は、入力層、隠れ層、および、出力層からなる三
層階層型ニューラルネットのパックプロパゲーション(
B ackpropagation)学習を、パス結合
型プロセッサを用いて、並列に計算処理する技術に係り
、特に、パックプロパゲーション学習を対象とする並列
計算を高速に行なうのに好適なニューラルネットの並列
計算処理方法に関するものである。
層階層型ニューラルネットのパックプロパゲーション(
B ackpropagation)学習を、パス結合
型プロセッサを用いて、並列に計算処理する技術に係り
、特に、パックプロパゲーション学習を対象とする並列
計算を高速に行なうのに好適なニューラルネットの並列
計算処理方法に関するものである。
近年、ニューラルネットを、パターン認識、信号処理、
知識処理に応用する研究が進んでいる。
知識処理に応用する研究が進んでいる。
ニューラルネットとは、人間の脳を真似たネットワーク
である。ネットワークの個々の構成要素、ニューロン(
ユニット)は、人間の神経細胞と似た機能を持つ。
である。ネットワークの個々の構成要素、ニューロン(
ユニット)は、人間の神経細胞と似た機能を持つ。
ニューラルネットには、その構造から、パターン連想型
と自動連想型の2種類に、大きく分けられる。
と自動連想型の2種類に、大きく分けられる。
パターン連想型は、入カバターンを、ある出カバターン
に変換するユニットのネットワークであり、自動連想型
は、複数のパターンをネットワークに格納し、入カバタ
ーンに最も近いパターンを出力するネットワークである
。
に変換するユニットのネットワークであり、自動連想型
は、複数のパターンをネットワークに格納し、入カバタ
ーンに最も近いパターンを出力するネットワークである
。
特に、パターン連想型は、1986年のパックプロパゲ
ーション学習という、ニューラルネットを学習させるア
ルゴリズムの開発により、専門家以外の者でも、ニュー
ラルネットを学習させることができるようになった。
ーション学習という、ニューラルネットを学習させるア
ルゴリズムの開発により、専門家以外の者でも、ニュー
ラルネットを学習させることができるようになった。
このパックプロパゲーション学習の進め方は、まず、入
力を与え、ネットワークの出力を調べる。
力を与え、ネットワークの出力を調べる。
その出力が、正しくなければ、正しい出力をネットワー
クに教える。すると、ネットワークは、正しい出力を出
すように、内部の構造、すなわち、ネットワークの接続
の重みを変える。これを繰り返して学習を行なう。
クに教える。すると、ネットワークは、正しい出力を出
すように、内部の構造、すなわち、ネットワークの接続
の重みを変える。これを繰り返して学習を行なう。
このような、ニューラルネットに関しては、「日経エレ
クトロニクス 1987 8−10(no、427)J
(1987年、日経マグロウヒル社発行)のpp、1
15〜124に記載されている。
クトロニクス 1987 8−10(no、427)J
(1987年、日経マグロウヒル社発行)のpp、1
15〜124に記載されている。
さらに、パターン連想型ニューラルネットに分類される
階層型ニューラルネットに関して、詳しく説明する。
階層型ニューラルネットに関して、詳しく説明する。
第6図は、階層型ニューラルネットの構造を示す説明図
である。
である。
ニューラルネットは、ニューロン61〜69を、それぞ
れ、入力層、中間層、出力層という階層に分けた構造を
とる。この中間層は、隠れ層(Hidden L a
yer)という。
れ、入力層、中間層、出力層という階層に分けた構造を
とる。この中間層は、隠れ層(Hidden L a
yer)という。
各ニューロン61〜69間は、入力層から、出力層に向
かって結合している。各層内での結合はない。
かって結合している。各層内での結合はない。
入カバターンは、入力層から、出力層へ伝わり、一方、
学習は、出力層から、入力層に向がって進む。
学習は、出力層から、入力層に向がって進む。
各二ニーロンへの入力は、シナプス(図中、Wと記載)
という結合部を介して行なわれる。シナプスには、それ
ぞれ可変の重みを付け、結合の強さを表わす、この値を
変えるとネットワークの構造が変わる。
という結合部を介して行なわれる。シナプスには、それ
ぞれ可変の重みを付け、結合の強さを表わす、この値を
変えるとネットワークの構造が変わる。
ネットワークの学習とは、このシナプスの重みの値を変
えることである。
えることである。
このように、階層型ニューラルネットは、多数の入力値
を合計し、この合計値に、シグモイド(S igmoi
d)関数、f(x)=1/ (1+exp (−X))
などの非線形関数を適用して出力値を得るニューロンを
、階層型に配置したものであり、隣接する層間を1重み
係数を持ったシナプスで接続したニューラルネットであ
る。
を合計し、この合計値に、シグモイド(S igmoi
d)関数、f(x)=1/ (1+exp (−X))
などの非線形関数を適用して出力値を得るニューロンを
、階層型に配置したものであり、隣接する層間を1重み
係数を持ったシナプスで接続したニューラルネットであ
る。
各層のニューロンは、前の層のニューロン出力に、この
ニューロン間を接続するシナプスの重み係数を掛は合わ
せた値を、その入力として、上述の計算を行ない、出力
を求める。
ニューロン間を接続するシナプスの重み係数を掛は合わ
せた値を、その入力として、上述の計算を行ない、出力
を求める。
ここで、ニューラルネットに対する入力が、出力層に向
かって、層間を計算されつつ伝播し、最終的な出力が得
られるため、この計算過程は、前向き伝播と呼ばれる。
かって、層間を計算されつつ伝播し、最終的な出力が得
られるため、この計算過程は、前向き伝播と呼ばれる。
また、ニューラルネットは、前向き伝播により得られた
出力と、期待される出力(これを教師信号と呼ぶ)との
誤差に基づいて、直前の階層と接続しているシナプスの
重み係数を、より期待値に近い値が得られるように更新
した後、前層ニューロンの出力期待値を計算し、それに
基づき、さらに、前層のシナプス重み係数を更新する。
出力と、期待される出力(これを教師信号と呼ぶ)との
誤差に基づいて、直前の階層と接続しているシナプスの
重み係数を、より期待値に近い値が得られるように更新
した後、前層ニューロンの出力期待値を計算し、それに
基づき、さらに、前層のシナプス重み係数を更新する。
このように誤差値を後向きに伝播させて、シナプスの重
み係数を修正することを、後向き伝播と呼ぶ。そして、
この後向き伝播を用いて、ニューラルネットに、期待す
る振舞を学習させることをパックプロパゲーション学習
と呼ぶ。
み係数を修正することを、後向き伝播と呼ぶ。そして、
この後向き伝播を用いて、ニューラルネットに、期待す
る振舞を学習させることをパックプロパゲーション学習
と呼ぶ。
以下、パックプロパゲーション学習に関して、より詳細
に説明する。
に説明する。
入力層と、隠れ層、および、出力層の三層で構成される
階層型ニューラルネットにおいて、入力層と、隠れ層、
および、出力層のニューロン個数を、それぞれ、rJJ
個、rK4個、rMJ個とし、入力層の第「j」番目の
ニューロンから、隠れ層の第「kJ番目のニューロンへ
接続されたシナプスの重みを「vkJ」、隠れ層の第「
kJ番目のニューロンから、・出力層の第r m J番
目のニューロンへ接続されたシナプスの重みを「W□」
と表記する。
階層型ニューラルネットにおいて、入力層と、隠れ層、
および、出力層のニューロン個数を、それぞれ、rJJ
個、rK4個、rMJ個とし、入力層の第「j」番目の
ニューロンから、隠れ層の第「kJ番目のニューロンへ
接続されたシナプスの重みを「vkJ」、隠れ層の第「
kJ番目のニューロンから、・出力層の第r m J番
目のニューロンへ接続されたシナプスの重みを「W□」
と表記する。
前向き伝播の場合、個々のニューロンでは、段前の層を
構成するニューロンの出力と、シナプスの重み係数との
積を総和し、その総和値をシグモイド関数などの非線形
関数に適用した値を、出力とする。すなわち、隠れ層の
第「k」番目のニューロンでは、以下の計算が行なわれ
、出力r x * k’が決定される。
構成するニューロンの出力と、シナプスの重み係数との
積を総和し、その総和値をシグモイド関数などの非線形
関数に適用した値を、出力とする。すなわち、隠れ層の
第「k」番目のニューロンでは、以下の計算が行なわれ
、出力r x * k’が決定される。
y、に=ΣV□X、、 ・ ・ ・ (1)ト
x、に=f (y□) ・ ・ ・ (2)但し、「
xlJ」は、入力要部「JJ番目のニューロンの出力、
また、 rf(xl+は、非線形関数である。
xlJ」は、入力要部「JJ番目のニューロンの出力、
また、 rf(xl+は、非線形関数である。
同様に、出力層第rmJ番目のニューロンの出力「X、
」は、以下の式で計算される。
」は、以下の式で計算される。
y1=Σw、kx□ ・ ・ ・ (3)択一
)(、、xf(3’@II) ・ ・ ・ (4)
このようにして計算された’X*mJが、階層型ニュー
ラルネット全体の出力となる。
このようにして計算された’X*mJが、階層型ニュー
ラルネット全体の出力となる。
後向き伝播においては、前向き伝播により得られた出力
と、教師信号との誤差に基づいて、ニューラルネット出
力が、より教師信号に近づくように、重み係数を変化さ
せる。
と、教師信号との誤差に基づいて、ニューラルネット出
力が、より教師信号に近づくように、重み係数を変化さ
せる。
教師信号を「dIl」と表記すると、出力層との誤差「
δ、」は、次の式で定義される。
δ、」は、次の式で定義される。
δm= (cps X、、)f ’ (y−m)
・・・ (5)rf’(x)Jは、非線形間数rf(
x)」の−次導関数である。また、隠れ層での誤差「γ
工」は、以下の式で定義される。
・・・ (5)rf’(x)Jは、非線形間数rf(
x)」の−次導関数である。また、隠れ層での誤差「γ
工」は、以下の式で定義される。
γh=f’(y、k) Σδl1wエ ・ ・ ・
(6)これらの誤差を用いて、隠れ要部rkJ番目のニ
ューロンから、出力要部「m」番目のニューロンへ接続
されたシナプスの新しい重み係数「W′、k」は、以下
の式で計算される。
(6)これらの誤差を用いて、隠れ要部rkJ番目のニ
ューロンから、出力要部「m」番目のニューロンへ接続
されたシナプスの新しい重み係数「W′、k」は、以下
の式で計算される。
W″、に*w、1+y)δlIX、l ’ ” ・(
7)ここで、「η」は、小さな値である。上と同様に、
入力要部「jJ番目のニューロンから隠れ要部「k」番
目のニューロンへ接続されたシナプスの新しい重み係数
’ V ’ *aJは、以下の式で計算される。
7)ここで、「η」は、小さな値である。上と同様に、
入力要部「jJ番目のニューロンから隠れ要部「k」番
目のニューロンへ接続されたシナプスの新しい重み係数
’ V ’ *aJは、以下の式で計算される。
V kJ=vkJ”77kx+J HHH(8)
上述の前向き伝播と後向き伝播を、多数の入力データと
教師信号に対して繰り返すことにより、ニューラルネッ
トの学習が行なわれる。
上述の前向き伝播と後向き伝播を、多数の入力データと
教師信号に対して繰り返すことにより、ニューラルネッ
トの学習が行なわれる。
尚、階層型ニューラル、および、パックプロパゲーショ
ン学習の、より詳細な説明に関しては、麻生英樹著[ニ
ューラルネットワーク情報処理J(産業図書発行)に記
載されている。
ン学習の、より詳細な説明に関しては、麻生英樹著[ニ
ューラルネットワーク情報処理J(産業図書発行)に記
載されている。
さぞ、上述のパックプロパゲーション学習を高速処理す
ることを目的として、前向き伝播、および、後向き伝播
を並列計算する方法が、従来がら考案されている。
ることを目的として、前向き伝播、および、後向き伝播
を並列計算する方法が、従来がら考案されている。
例えば、バス結合型並列プロセッサを用いて、一つのニ
ューロンから、次の層へ至るシナプスの重み係数を、全
て同一の要素プロセッサに割り付けて、前向き伝播、お
よび、後向き伝播を並列に計算する方法である。
ューロンから、次の層へ至るシナプスの重み係数を、全
て同一の要素プロセッサに割り付けて、前向き伝播、お
よび、後向き伝播を並列に計算する方法である。
以下、バス結合型並列プロセッサを用いた従来の計算方
法を説明する。
法を説明する。
第7図は、パックプロパゲーション学習に係る計算処理
を行なうバス結合型並列プロセッサの構成を示す構成図
である。
を行なうバス結合型並列プロセッサの構成を示す構成図
である。
第7図において、1〜7は要素プロセッサ、8はバスで
ある。
ある。
本構成のバス結合型並列プロセッサによるニューラルネ
ット並列計算方法に関して、以下、説明する。
ット並列計算方法に関して、以下、説明する。
特に、ニューラルネット計算の中心となる上記(3)式
、および、(6)式に主眼をおいて説明する。
、および、(6)式に主眼をおいて説明する。
(3)式および(6)式は、それぞれ、以下の様に行列
形式で表わすことができる。
形式で表わすことができる。
式中の「M行×に列」の行列は、重み係数行列とよばれ
るわ 従来方法では、これらの式中の重み係数行列を、行方向
に分割して、個々の要素プロセッサに割り付ける。
るわ 従来方法では、これらの式中の重み係数行列を、行方向
に分割して、個々の要素プロセッサに割り付ける。
すなわち、仮に、第7図における要素プロセッサ1〜7
の数をrPJ個とすれば、−行目からrM/PJ行目ま
でを、第1番目の要素プロセッサ1に割り付け、r (
M/P)+IJ行目からr2x (M/P)J行目まで
を、第2の要素プロセッサ2に割り付ける。以下同様に
繰返し、F(M/P)X (P−1)+IJ行目からr
M」行目までを、第「PJ番目の要素プロセッサ7に割
り付ける。
の数をrPJ個とすれば、−行目からrM/PJ行目ま
でを、第1番目の要素プロセッサ1に割り付け、r (
M/P)+IJ行目からr2x (M/P)J行目まで
を、第2の要素プロセッサ2に割り付ける。以下同様に
繰返し、F(M/P)X (P−1)+IJ行目からr
M」行目までを、第「PJ番目の要素プロセッサ7に割
り付ける。
前向き伝播の場合、まず前層のニューロンの出力[x、
1〜XIKJが、全要素プロセッサに転送され、その後
、(9)式が計算される。
1〜XIKJが、全要素プロセッサに転送され、その後
、(9)式が計算される。
重み係数行列の同一行は、同一の要素プロセッサに割り
付けられているため、重み係数行列の各行毎に、前層ニ
ューロンの出力との積和演算を行なう(9)式は1個々
の要素プロセッサ1〜7が、データ転送なしに、計算を
行なうことができる。
付けられているため、重み係数行列の各行毎に、前層ニ
ューロンの出力との積和演算を行なう(9)式は1個々
の要素プロセッサ1〜7が、データ転送なしに、計算を
行なうことができる。
後向き伝播の場合も同様に、まず、次層の誤差「61〜
δ。」が、全要素プロセッサに転送され、その後、 (
10)式が計算される。
δ。」が、全要素プロセッサに転送され、その後、 (
10)式が計算される。
しかし、 (10)式は、(9)式と興なり、重み係数
行列の各々の列毎に、次層の誤差との積和演算を行なう
必要があるにのため、各要素プロセッサ1〜7は、自プ
ロセッサに割り付けられた重み係数に対する部分積和を
計算し、その結果を、他のプロセッサに転送し、その後
、転送されてきた部分積和を累計し、最終的な結果を得
る。
行列の各々の列毎に、次層の誤差との積和演算を行なう
必要があるにのため、各要素プロセッサ1〜7は、自プ
ロセッサに割り付けられた重み係数に対する部分積和を
計算し、その結果を、他のプロセッサに転送し、その後
、転送されてきた部分積和を累計し、最終的な結果を得
る。
ここで、要素プロセッサ1〜7に割り付けられた部分重
み係数行列は、全ての列を含むので、各々の要素プロセ
ッサ1〜7において、列の数、すなわち、「K」個の部
分積和が計算され、これらが、全て、他の要素プロセッ
サに転送されることになる。そして、バス8では、−時
に、一つの要素プロセッサしか転送できないため、部分
積和の転送は、rKxPj回行なわれることになる。
み係数行列は、全ての列を含むので、各々の要素プロセ
ッサ1〜7において、列の数、すなわち、「K」個の部
分積和が計算され、これらが、全て、他の要素プロセッ
サに転送されることになる。そして、バス8では、−時
に、一つの要素プロセッサしか転送できないため、部分
積和の転送は、rKxPj回行なわれることになる。
[発明が解決しようとする課題]
以上、説明したように、従来のニューラルネット並列計
算方法では、前向き伝播時には、データ転送が不要な反
面、後向き伝播時には、「隠れ層ニューロン数×要素プ
ロセッサ総数」回のデータ転送が必要となる。
算方法では、前向き伝播時には、データ転送が不要な反
面、後向き伝播時には、「隠れ層ニューロン数×要素プ
ロセッサ総数」回のデータ転送が必要となる。
パックプロパゲーション学習では、前向き伝播と、後向
き伝播が交互に繰り返されるため、全体として、後向き
伝播に必要な転送回数に比例した通信オーバヘッドが生
じることになる。
き伝播が交互に繰り返されるため、全体として、後向き
伝播に必要な転送回数に比例した通信オーバヘッドが生
じることになる。
このため、従来方法には、並列処理による計算時間の短
縮効果が大きい大ニューロン数、大プロセッサ数におい
て、通信オーバヘッドが著しく大きくなり、十分な速度
向上効果が得られないという問題があった。
縮効果が大きい大ニューロン数、大プロセッサ数におい
て、通信オーバヘッドが著しく大きくなり、十分な速度
向上効果が得られないという問題があった。
本発明の目的は、これら従来技術の課題を解決し、バス
結合型並列プロセッサによるバックプロパゲーション学
習の並列計算において、データ転送回数を大幅に削減し
て、通信オーバヘッドを軽減し、高速の計算を可能とす
るニューラルネットの並列計算処理方法を提供すること
である。
結合型並列プロセッサによるバックプロパゲーション学
習の並列計算において、データ転送回数を大幅に削減し
て、通信オーバヘッドを軽減し、高速の計算を可能とす
るニューラルネットの並列計算処理方法を提供すること
である。
上記目的を達成するため、本発明のニューラルネットの
並列計算処理方法は、(1)入力層と、隠れ層、および
、出力層からなる三層階層型ニューラルネットの、シナ
プスの重み係数を変更するバックプロパゲーション学習
の前向き伝播および後向き伝播の処理を、同報転送機能
を持つバス結合並列プロセッサを構成するP個の要素プ
ロセッサに、シナプスの重み係数行列を割り付けて、並
列に行ない、さらに、入力層から隠れ層に至るシナプス
の重み係数行列を行方向にP個に分割して、第1の部分
重み係数行列とし、第1の部分重み係数行列を、P個の
要素プロセッサのそれぞれに割り付け、そして、Q≧2
、R≧2、かつ、P=Q×Rである整数Qおよび整数R
を選択し、隠れ層から出力層に至るシナプスの重み係数
行列を、行方向にQ分割、列方向にR分割して、第2の
部分重み係数行列とし、任意の第n行目を含む第1の部
分重み係数行列を割り付けた要素プロセッサに、第n列
目を含む第2の部分重み係数行列を割り付けることを特
徴とする。
並列計算処理方法は、(1)入力層と、隠れ層、および
、出力層からなる三層階層型ニューラルネットの、シナ
プスの重み係数を変更するバックプロパゲーション学習
の前向き伝播および後向き伝播の処理を、同報転送機能
を持つバス結合並列プロセッサを構成するP個の要素プ
ロセッサに、シナプスの重み係数行列を割り付けて、並
列に行ない、さらに、入力層から隠れ層に至るシナプス
の重み係数行列を行方向にP個に分割して、第1の部分
重み係数行列とし、第1の部分重み係数行列を、P個の
要素プロセッサのそれぞれに割り付け、そして、Q≧2
、R≧2、かつ、P=Q×Rである整数Qおよび整数R
を選択し、隠れ層から出力層に至るシナプスの重み係数
行列を、行方向にQ分割、列方向にR分割して、第2の
部分重み係数行列とし、任意の第n行目を含む第1の部
分重み係数行列を割り付けた要素プロセッサに、第n列
目を含む第2の部分重み係数行列を割り付けることを特
徴とする。
また、 (2)上記(])に記載のニューラルネット並
列計算処理方法において、バスを任意の個数のセグメン
トに分割するセグメント分割部を付与し、第n行目を含
む第1の部分重み係数行列を割り付けた要素プロセッサ
への第n列目を含む第2の部分重み係数行列の割り付け
と共に、同一の列を含む第2の部分重み係数行列を、同
一セグメントに属する要素プロセッサに割り付け、後向
き伝播の処理時に、要素プロセッサのそれぞれが、自プ
ロセッサに割り付けられた第2の部分重み係数行列を用
いて、出力層のニューロン誤差値との部分積和を計算し
た後に、この計算した部分積和を、セグメント分割部を
用いて分割したセグメントの同一セグメント内の要素プ
ロセッサに同報転送することを特徴とする。
列計算処理方法において、バスを任意の個数のセグメン
トに分割するセグメント分割部を付与し、第n行目を含
む第1の部分重み係数行列を割り付けた要素プロセッサ
への第n列目を含む第2の部分重み係数行列の割り付け
と共に、同一の列を含む第2の部分重み係数行列を、同
一セグメントに属する要素プロセッサに割り付け、後向
き伝播の処理時に、要素プロセッサのそれぞれが、自プ
ロセッサに割り付けられた第2の部分重み係数行列を用
いて、出力層のニューロン誤差値との部分積和を計算し
た後に、この計算した部分積和を、セグメント分割部を
用いて分割したセグメントの同一セグメント内の要素プ
ロセッサに同報転送することを特徴とする。
本発明においては、入力層から隠れ層に至るシナプスの
重み係数行列を、行方向に分割し、そして、隠れ層から
出力層に至るシナプスの重み係数行列を、メツシュ状に
分割することを特徴としている。
重み係数行列を、行方向に分割し、そして、隠れ層から
出力層に至るシナプスの重み係数行列を、メツシュ状に
分割することを特徴としている。
さらに、入力層から隠れ層に至るシナプスの部分重み係
数行列を、第1の部分重み係数行列、また、隠れ層から
出力層に至る部分重み係数行列を第2の部分重み係数行
列としたときに、第rnJ行目を含む第1の部分重み係
数行列が割り付けられた要素プロセッサに、第rnJ列
目を含む第2の部分重み係数行列を割り付けることを特
徴とする。
数行列を、第1の部分重み係数行列、また、隠れ層から
出力層に至る部分重み係数行列を第2の部分重み係数行
列としたときに、第rnJ行目を含む第1の部分重み係
数行列が割り付けられた要素プロセッサに、第rnJ列
目を含む第2の部分重み係数行列を割り付けることを特
徴とする。
すなわち、入力層から隠れ層に至るシナプスの重み係数
行列を行方向に「P」 (「P」は要素プロセッサ数)
分割し、隠れ層から出力層に至るシナプスの重み係数行
列を、列方向に「R」分割、行方向に「Q」分割する。
行列を行方向に「P」 (「P」は要素プロセッサ数)
分割し、隠れ層から出力層に至るシナプスの重み係数行
列を、列方向に「R」分割、行方向に「Q」分割する。
ここで、rP=RXQJとする。従って、各要素プロセ
ッサは、rK/P行XJ列」の第1の部分重み係数行列
と、rM/Q行x K / R列」の大きさの第2の部
分重み係数行列を持つことになる。
ッサは、rK/P行XJ列」の第1の部分重み係数行列
と、rM/Q行x K / R列」の大きさの第2の部
分重み係数行列を持つことになる。
上述の重み係数行列の割り付けのもとての前向き伝播の
計算、すなわち(9)式の計算は、各要素プロセッサで
、前層のニューロン出力と、自プロセッサに割り付けら
れた部分重み係数行列との行方向の部分積和を計算し、
この部分積和の計算結果を、他の要素プロセッサに、互
いに転送して累計することにより結果を得ることになる
。
計算、すなわち(9)式の計算は、各要素プロセッサで
、前層のニューロン出力と、自プロセッサに割り付けら
れた部分重み係数行列との行方向の部分積和を計算し、
この部分積和の計算結果を、他の要素プロセッサに、互
いに転送して累計することにより結果を得ることになる
。
各要素プロセッサでは、部分重み係数行列の行の数だけ
の部分積和が計算されるため、rM/Q」個の部分積和
結果が得られ、この部分積和全てを、各々の要素プロセ
ッサが、他の要素プロセッサに転送するため、r (M
/Q)XP=Mx・J回のデータ転送が行なわれる。
の部分積和が計算されるため、rM/Q」個の部分積和
結果が得られ、この部分積和全てを、各々の要素プロセ
ッサが、他の要素プロセッサに転送するため、r (M
/Q)XP=Mx・J回のデータ転送が行なわれる。
一方、後向き伝播の計算、すなわち、(10)式の計算
では、次層の誤差値と、自プロセッサに割り付けられた
部分重み係数行列との列方向の部分積和を計算し、この
部分積和の計算結果を、他の要素プロセッサに、互いに
転送して累計し、自プロセッサに割り付けられた重み係
数の修正値を得ることになる。各要素プロセッサに割り
当てられた部分重み係数行列の列数は、rK/RJであ
るため、部分積和は、 r K / RJ個ずつ各要素
プロセッサ上に存在する。この部分積和全てを、各々の
要素プロセッサが、他の要素プロセッサに転送するため
、r (K/R)XP=KXQJ回のデータ転送が行な
われることになる。
では、次層の誤差値と、自プロセッサに割り付けられた
部分重み係数行列との列方向の部分積和を計算し、この
部分積和の計算結果を、他の要素プロセッサに、互いに
転送して累計し、自プロセッサに割り付けられた重み係
数の修正値を得ることになる。各要素プロセッサに割り
当てられた部分重み係数行列の列数は、rK/RJであ
るため、部分積和は、 r K / RJ個ずつ各要素
プロセッサ上に存在する。この部分積和全てを、各々の
要素プロセッサが、他の要素プロセッサに転送するため
、r (K/R)XP=KXQJ回のデータ転送が行な
われることになる。
部分積和の転送は、同一の列を含む部分重み係数行列を
持った要素プロセッサのみに対して行なえば良いので、
セグメント分割可能なバスを用いた場合には、バスをセ
グメントに分割することで、各セグメントごとに独立し
て、並列に転送を行なうことができる。この場合、部分
積和を、rJ個のセグメントで、並列に「Q」個ずつの
要素プロセッサが行なうので、r (K/R)XQJ回
のデータ転送が行なわれることになる。
持った要素プロセッサのみに対して行なえば良いので、
セグメント分割可能なバスを用いた場合には、バスをセ
グメントに分割することで、各セグメントごとに独立し
て、並列に転送を行なうことができる。この場合、部分
積和を、rJ個のセグメントで、並列に「Q」個ずつの
要素プロセッサが行なうので、r (K/R)XQJ回
のデータ転送が行なわれることになる。
以上のことから、バックプロパゲーション学習における
各1回の前向き伝播と後向き伝播は、rMR+KQJ
、あるいは、rMR+KQ/RJ回のデータ伝送で、計
算できることになる。
各1回の前向き伝播と後向き伝播は、rMR+KQJ
、あるいは、rMR+KQ/RJ回のデータ伝送で、計
算できることになる。
ここで、rK、M、Q、R≧O」であり、一般に、「K
≧M」であるため、 MR+KQ/R≦MR+KQ≦KR+KQ≦K(R+Q
)≦K (RXQ)=KP となる。
≧M」であるため、 MR+KQ/R≦MR+KQ≦KR+KQ≦K(R+Q
)≦K (RXQ)=KP となる。
このように、本発明におけるニューラルネット並列計算
処理方法は、ニューラルネットの隠れ層から、出力層に
至るシナプスの重み係数行列を、メツシュ状に分割する
ことにより、通常のバスを用いた場合でも、セグメント
分割可能なバスを用いた場合でも、従来の方法より少な
い転送回数で並列計算を行なうことができる。
処理方法は、ニューラルネットの隠れ層から、出力層に
至るシナプスの重み係数行列を、メツシュ状に分割する
ことにより、通常のバスを用いた場合でも、セグメント
分割可能なバスを用いた場合でも、従来の方法より少な
い転送回数で並列計算を行なうことができる。
以下、本発明の実施例を、図面により詳細に説明する。
第1r!IJは、本発明を施したバス結合並列プロセッ
サの構成および本発明に係る割り付けのMlの実施例を
示す説明図である。
サの構成および本発明に係る割り付けのMlの実施例を
示す説明図である。
本第1図は、特に、シナプスの重み係数行列全体を分割
し、バス結合並列プロセッサの各要素プロセッサへ割り
付ける様子を示すものである。
し、バス結合並列プロセッサの各要素プロセッサへ割り
付ける様子を示すものである。
バス8により結合され、前向き伝播および後向き伝播を
並列に計算するrPJ iIIからなる要素プロセッサ
(図中、PE、〜PE、と記載)1〜7がら構成された
バス結合並列プロセッサに、入力層から隠れ層へ至るシ
ナプスの重み係数行列全体である第1の重み係数行列1
1と、隠れ層から出力層へ至るシナプスの重み係数行列
全体である第2の重み係数行列15が、分割され、それ
ぞれ、要素プロセッサ1〜7に割り付けられている。
並列に計算するrPJ iIIからなる要素プロセッサ
(図中、PE、〜PE、と記載)1〜7がら構成された
バス結合並列プロセッサに、入力層から隠れ層へ至るシ
ナプスの重み係数行列全体である第1の重み係数行列1
1と、隠れ層から出力層へ至るシナプスの重み係数行列
全体である第2の重み係数行列15が、分割され、それ
ぞれ、要素プロセッサ1〜7に割り付けられている。
このような構成の、バス結合並列プロセッサにより、第
1の重み係数行列11、すなわち、入力層から隠れ層へ
至るシナプスの重み係数行列全体と、第2の重み係数行
列15、すなわち、隠れ層から出力層へ至るシナプスの
重み係数行列全体に対する計算が行なわれる。
1の重み係数行列11、すなわち、入力層から隠れ層へ
至るシナプスの重み係数行列全体と、第2の重み係数行
列15、すなわち、隠れ層から出力層へ至るシナプスの
重み係数行列全体に対する計算が行なわれる。
第1図(a)は、入力層から隠れ層に至るシナプスの重
み係数行列の分割方法と、各要素プロセッサ1〜7への
割り付けを、また、第1図(b)は、隠れ層から出力層
に至るシナプスの重み係数行列の分割方法と、各要素プ
ロセッサ1〜7への割り付けを、それぞれ示している。
み係数行列の分割方法と、各要素プロセッサ1〜7への
割り付けを、また、第1図(b)は、隠れ層から出力層
に至るシナプスの重み係数行列の分割方法と、各要素プ
ロセッサ1〜7への割り付けを、それぞれ示している。
第1図(11)において、破隷で囲まれた部分は、第1
の重み係数行列11を分割した重み係数行列、すなわち
、入力層から隠れ暦へ至るシナプスの部分重み係数行列
を表わす第1の部分重み係数行列12〜14を示してい
る。
の重み係数行列11を分割した重み係数行列、すなわち
、入力層から隠れ暦へ至るシナプスの部分重み係数行列
を表わす第1の部分重み係数行列12〜14を示してい
る。
また、第1111(a)では、入力層ニューロン数をr
JJ 、 11!れ層ニューロン数を「K」、出力層ニ
ューロン数を「M」、そして、要素プロセッサ1〜7の
総数なrPJで表わしている。
JJ 、 11!れ層ニューロン数を「K」、出力層ニ
ューロン数を「M」、そして、要素プロセッサ1〜7の
総数なrPJで表わしている。
そして、第1図(a)では、各要素プロセッサ1〜7に
は、それぞれ、r(KlP行)x(J列)Jの部分重み
係数行列が割り付けられる。
は、それぞれ、r(KlP行)x(J列)Jの部分重み
係数行列が割り付けられる。
また、第1図(b)において、破線で囲まれた部分は、
第2の重み係数行列15を分割した重み係数行列、すな
わち、隠れ層から出力層へ至るシナプスの部分重み係数
行列を表わす第2の部分重み係数行列16〜18である
。
第2の重み係数行列15を分割した重み係数行列、すな
わち、隠れ層から出力層へ至るシナプスの部分重み係数
行列を表わす第2の部分重み係数行列16〜18である
。
第1図(b)中、メツシュ分割の分割行数、および、分
割列数を、それぞれ、「Q」、rJで表わしている。こ
こで、rP=QXRJとする。
割列数を、それぞれ、「Q」、rJで表わしている。こ
こで、rP=QXRJとする。
この割り付けに際しては、各要素プロセッサ】〜7には
、r(M/Q行)x(K/R列)」の部分重み係数行列
が割り付けられることになる。この際、第1図(a)に
おいて割り付けた部分重み係数行列12〜I4の行番号
と、同一の列番号を含む部分重み係数行列16〜18が
、同一の要素プロセッサに割り付けられなければならな
い。尚、本発明において、部分係数行列の割り付けは、
必ずしも、本実施例と同一である必要はなく、上述の条
件を淘たすならば、どのような割り付けを行なっても良
い。
、r(M/Q行)x(K/R列)」の部分重み係数行列
が割り付けられることになる。この際、第1図(a)に
おいて割り付けた部分重み係数行列12〜I4の行番号
と、同一の列番号を含む部分重み係数行列16〜18が
、同一の要素プロセッサに割り付けられなければならな
い。尚、本発明において、部分係数行列の割り付けは、
必ずしも、本実施例と同一である必要はなく、上述の条
件を淘たすならば、どのような割り付けを行なっても良
い。
さて、このように、本実施例においては、入力層から隠
れ層に至るシナプスの重み係数行列を、行方向に分割し
、そして、隠れ層から出力層に至るシナプスの重み係数
行列を、メツシュ状に分割することを特徴としている。
れ層に至るシナプスの重み係数行列を、行方向に分割し
、そして、隠れ層から出力層に至るシナプスの重み係数
行列を、メツシュ状に分割することを特徴としている。
さらに、入力層から隠れ層に至るシナプスの部分重み係
数行列を、第1の部分重み係数行列、また、隠れ層から
出力層に至る部分重み係数行列を第2の部分重み係数行
列としたときに、第「n」行目を含む第1の部分重み係
数行列が割り付けられた要素プロセッサに、第rnJ列
目を含む第2の部分重み係数行列を割り付けることを特
徴とする。
数行列を、第1の部分重み係数行列、また、隠れ層から
出力層に至る部分重み係数行列を第2の部分重み係数行
列としたときに、第「n」行目を含む第1の部分重み係
数行列が割り付けられた要素プロセッサに、第rnJ列
目を含む第2の部分重み係数行列を割り付けることを特
徴とする。
すなわち、入力層から隠れ層に至るシナプスの重み係数
行列を行方向にrPJ (rPJは要素プロセッサ数
)分割し、隠れ層から出力層に至るシナプスの重み係数
行列を、列方向にrRJ分割、行方向にrQJ分割する
(P=RxQ)、従って、各要素プロセッサは、rK/
P行xJ列」の第1の部分重み係数行列と、rM/Q行
XK/R列」の大きさの第2の部分重み係数行列を持つ
ことになる。
行列を行方向にrPJ (rPJは要素プロセッサ数
)分割し、隠れ層から出力層に至るシナプスの重み係数
行列を、列方向にrRJ分割、行方向にrQJ分割する
(P=RxQ)、従って、各要素プロセッサは、rK/
P行xJ列」の第1の部分重み係数行列と、rM/Q行
XK/R列」の大きさの第2の部分重み係数行列を持つ
ことになる。
上述の重み係数行列の割り付けのもとての前向き伝播の
計算、すなわち(9)式の計算は、各要素プロセッサで
、前層のニューロン出力と、自プロセッサに割り付けら
れた部分重み係数行列との行方向の部分積和を計算し、
この部分積和の計算結果を、他の要素プロセッサに、互
いに転送して累計することにより結果を得ることになる
。
計算、すなわち(9)式の計算は、各要素プロセッサで
、前層のニューロン出力と、自プロセッサに割り付けら
れた部分重み係数行列との行方向の部分積和を計算し、
この部分積和の計算結果を、他の要素プロセッサに、互
いに転送して累計することにより結果を得ることになる
。
各要素プロセッサでは、部分重み係数行列の行の数だけ
の部分積和が計算されるため、rM/QJ個の部分積和
結果が得られ、この部分積和全てを、各々の要素プロセ
ッサが、他の要素プロセッサに転送するため、r(M/
Q)XP=MXRJ回のデータ転送が行なわれる。
の部分積和が計算されるため、rM/QJ個の部分積和
結果が得られ、この部分積和全てを、各々の要素プロセ
ッサが、他の要素プロセッサに転送するため、r(M/
Q)XP=MXRJ回のデータ転送が行なわれる。
一方、後向き伝播の計算、すなわち、 (10)式の計
算では、次層の誤差値と、自プロセッサに割り付けられ
た部分重み係数行列との列方向の部分積和を計算し、こ
の部分積和の計算結果を、他の要素プロセッサに、互い
に転送して累計し、自プロセッサに割り付けられた重み
係数の修正値を得ることになる。
算では、次層の誤差値と、自プロセッサに割り付けられ
た部分重み係数行列との列方向の部分積和を計算し、こ
の部分積和の計算結果を、他の要素プロセッサに、互い
に転送して累計し、自プロセッサに割り付けられた重み
係数の修正値を得ることになる。
各要素プロセッサに割り当てられた部分重み係数行列の
列数は、rK/RJであるため、部分積和は、rK/R
J個ずつ各要素プロセッサ上に存在する。この部分積和
全てを、各々の要素プロセッサが、他の要素プロセッサ
に転送するため、r(K/R)xP=KxQJ 回0)
デー’)転送が行ftわれることになる。
列数は、rK/RJであるため、部分積和は、rK/R
J個ずつ各要素プロセッサ上に存在する。この部分積和
全てを、各々の要素プロセッサが、他の要素プロセッサ
に転送するため、r(K/R)xP=KxQJ 回0)
デー’)転送が行ftわれることになる。
以上のことから、パックプロパゲーション学習における
各1回の前向き伝播と後向き伝播は、rMxR+KXQ
J回のデータ転送で計算できることになる。
各1回の前向き伝播と後向き伝播は、rMxR+KXQ
J回のデータ転送で計算できることになる。
ここで、K、M、Q、R≧0であり、一般に、K≧Mで
あるため、 MR+KQ/R≦MR+KQSKR+KQ≦に(R+Q
)≦K(RXQ)=KP となる。
あるため、 MR+KQ/R≦MR+KQSKR+KQ≦に(R+Q
)≦K(RXQ)=KP となる。
rKPJは、従来のニューラルネットの並列計算処理方
法によるデータ転送回数である。
法によるデータ転送回数である。
このように、本第1の実施例におけるニューラルネット
並列計算処理方法は、ニューラルネットの隠れ層から、
出力層に至るシナプスの重み係数行列を、メツシュ状に
分割することにより、従来の方法より少ない転送回数で
並列計算を行なうことができる。
並列計算処理方法は、ニューラルネットの隠れ層から、
出力層に至るシナプスの重み係数行列を、メツシュ状に
分割することにより、従来の方法より少ない転送回数で
並列計算を行なうことができる。
以下、第1111におけるバス結合並列プロセッサによ
る本発明に係るパックプロパゲーション学習における並
列処理を、さらに、詳しく説明する。
る本発明に係るパックプロパゲーション学習における並
列処理を、さらに、詳しく説明する。
第2図は、第1図におけるバス結合並列プロセッサによ
る本発明に係る処理の一実施例を示す説明図である。
る本発明に係る処理の一実施例を示す説明図である。
特に、バックプロパゲーション学習における並列処理の
流れ図であり、従来技術の項で述べたバックプロパゲー
ション学習の計算式である(1)〜(8)式を用いて、
その計算動作を説明する。
流れ図であり、従来技術の項で述べたバックプロパゲー
ション学習の計算式である(1)〜(8)式を用いて、
その計算動作を説明する。
第2図において、四辺形で示される処理は、第1図の各
要素プロセッサ1〜7での計算処理を表わし、長円形で
示される処理は、第1図の要素プロセッサ1〜7閏での
データ転送処理を表わしている。また、矢印は、データ
の転送方向を示す。
要素プロセッサ1〜7での計算処理を表わし、長円形で
示される処理は、第1図の要素プロセッサ1〜7閏での
データ転送処理を表わしている。また、矢印は、データ
の転送方向を示す。
まず、ニューラルネットに入力データが入力されると、
入力層のニューロンは、この入力データをそのまま、あ
るいは、シグモイド関数に適用して、この入力層の出力
「x1□」を得る。
入力層のニューロンは、この入力データをそのまま、あ
るいは、シグモイド関数に適用して、この入力層の出力
「x1□」を得る。
この入力層の出力は、図中の転送処理201により、全
要素プロセッサに転送される。
要素プロセッサに転送される。
各要素プロセッサは、このデータを受信した後、計算処
理202〜203において、上述の(1)式、および、
(2)式を計算し、それぞれ、隠れ層の出力’ X *
j Jを求める。
理202〜203において、上述の(1)式、および、
(2)式を計算し、それぞれ、隠れ層の出力’ X *
j Jを求める。
この計算により、各要素プロセッサには、「K/PJ個
の隠れ層ニューロン出力が得られる。
の隠れ層ニューロン出力が得られる。
隠れ層の出力が得られた後、各要素プロセッサは、この
出力を、転送処理204〜205により、全ての他の要
素プロセッサに対して転送する。
出力を、転送処理204〜205により、全ての他の要
素プロセッサに対して転送する。
さらに、隠れ層の出力を受信した各要素プロセッサは、
計算処理206〜207において、(3)式のうちの自
要素プロセッサに創り付けられた部分重み係数行列に対
する部分積和を、この受信した隠れ層出力値を用いて計
算する。
計算処理206〜207において、(3)式のうちの自
要素プロセッサに創り付けられた部分重み係数行列に対
する部分積和を、この受信した隠れ層出力値を用いて計
算する。
各要素プロセッサは、r(M/Q行)X (K/R列)
」の部分重み係数行列を持っているため、rM/Q」個
の部分積和が求まることになる。
」の部分重み係数行列を持っているため、rM/Q」個
の部分積和が求まることになる。
要素プロセッサは、部分積和を計算した後、転送処理2
08〜209において、全ての部分積和を、他の要素プ
ロセッサに転送し、これを受信した各要素プロセッサは
、計算処理210〜2】】において、自プロセッサに割
り付けられた出力層ニューロンに対応する部分積和を累
計して、(4)式を計算し、出力層ニューロンの出力値
「xl」を得る。この出力層ニューロンの出力値は、そ
のままニューラルネットの出力となる。
08〜209において、全ての部分積和を、他の要素プ
ロセッサに転送し、これを受信した各要素プロセッサは
、計算処理210〜2】】において、自プロセッサに割
り付けられた出力層ニューロンに対応する部分積和を累
計して、(4)式を計算し、出力層ニューロンの出力値
「xl」を得る。この出力層ニューロンの出力値は、そ
のままニューラルネットの出力となる。
以上の動作により、パックプロパゲーション学習のうち
の前向き伝播の計算が終了し、後向き伝播の計算に移行
する。
の前向き伝播の計算が終了し、後向き伝播の計算に移行
する。
まず、計算処理212〜213において、ニューラルネ
ット出力値と、教師信号との誤差「δ、」が計算される
。
ット出力値と、教師信号との誤差「δ、」が計算される
。
各要素プロセッサは、rM/PJ個の出力値を持ってお
り、この出力値の各々に対して誤差が計算されるため、
要素プロセッサ当り、rM/P」個の誤差値が求まるこ
とになる。
り、この出力値の各々に対して誤差が計算されるため、
要素プロセッサ当り、rM/P」個の誤差値が求まるこ
とになる。
計算されたそれぞれの誤差値は、転送処理214〜21
5において、全て、他の要素プロセッサに転送される。
5において、全て、他の要素プロセッサに転送される。
誤差値を受信した各要素プロセッサは、計算処理2〕6
〜217において、(6)式のうちの自要素プロセッサ
に割り付けられた部分重み係数行列に対応する部分積和
を計算する。
〜217において、(6)式のうちの自要素プロセッサ
に割り付けられた部分重み係数行列に対応する部分積和
を計算する。
部分重み係数行列は、r(M/Q行)x (K/R列)
」の大きさを持ち、(6)式は、列方向の積和計算を意
味するから、要素プロセッサ毎に、「K/RJ個の部分
積和が求まることになる。
」の大きさを持ち、(6)式は、列方向の積和計算を意
味するから、要素プロセッサ毎に、「K/RJ個の部分
積和が求まることになる。
計算された部分積和は、転送処理218〜219におい
て、他の要素プロセッサに転送される。
て、他の要素プロセッサに転送される。
転送処理の後、各要素プロセッサは、計算処理220〜
221において、自プロセッサが持つ重み係数「V□」
に係る誤差値「γ8」を、受信した部分積和を累計する
ことにより計算する。
221において、自プロセッサが持つ重み係数「V□」
に係る誤差値「γ8」を、受信した部分積和を累計する
ことにより計算する。
そして、最後に、計算処理222〜223において、自
プロセッサに割り付けられた重み係数「w、k」および
「■。」を更新し、1回のバックプロパゲーション学習
を終了する。
プロセッサに割り付けられた重み係数「w、k」および
「■。」を更新し、1回のバックプロパゲーション学習
を終了する。
以上、説明した本実施例における1回のバックプロパゲ
ーション学習の計算では、転送処理20】においてrJ
J回、転送処理204〜205においてに回、転送処理
208〜209においてr(M/Q)XPJ回、転送処
理214〜215においてrMJ回、そして、転送処理
218〜219においてr(K/R)xP」回のデータ
転送が行なわれることになる。
ーション学習の計算では、転送処理20】においてrJ
J回、転送処理204〜205においてに回、転送処理
208〜209においてr(M/Q)XPJ回、転送処
理214〜215においてrMJ回、そして、転送処理
218〜219においてr(K/R)xP」回のデータ
転送が行なわれることになる。
上記の転送の中で、本発明における並列計算方法が、本
質的に、従来の方法と異なる部分は、転送処理208〜
209と転送処理218〜219における転送である。
質的に、従来の方法と異なる部分は、転送処理208〜
209と転送処理218〜219における転送である。
転送処理208〜209および転送処理218〜219
での転送回数の合計「C0」は、「C0=((M/Q)
xP) +((K/R)xP) J回であるが、この合
計「C1」は、要素プロセッサ総数「P」が一定だとし
ても、メツシュ分割の大きさ、すなわち、分割列数rR
J と分割行数rQJの選び方により変化する。
での転送回数の合計「C0」は、「C0=((M/Q)
xP) +((K/R)xP) J回であるが、この合
計「C1」は、要素プロセッサ総数「P」が一定だとし
ても、メツシュ分割の大きさ、すなわち、分割列数rR
J と分割行数rQJの選び方により変化する。
転送処理208〜209および転送処理218〜219
での転送回数の合計「C0」を極小とするような分割列
数rRJは、 clc、/dR=0 となるrRJを計算することにより得られ、R=fla
r下 となる。
での転送回数の合計「C0」を極小とするような分割列
数rRJは、 clc、/dR=0 となるrRJを計算することにより得られ、R=fla
r下 となる。
分割行数rcHに関しては、rP=QxJの関係がある
から、「P」と「R」から付随的に決まり、 Q=(σ[7T「r となる。
から、「P」と「R」から付随的に決まり、 Q=(σ[7T「r となる。
また、このときの転送回数合計’Cmiゎ」は、Cmt
n= (M× ) + <KX(てVアゴじ[丁) = FvXτ+(WT’C=2 FM玉x f]「とな
る。
n= (M× ) + <KX(てVアゴじ[丁) = FvXτ+(WT’C=2 FM玉x f]「とな
る。
以上のようにして、並列計算の対象となるニューラルネ
ットの規模と、要素プロセッサの総数から、転送回数を
最小とするメツシュ分割の大きさを見つけることができ
る。
ットの規模と、要素プロセッサの総数から、転送回数を
最小とするメツシュ分割の大きさを見つけることができ
る。
但し、本発明の並列計算方法においては、如何なるメツ
シュ分割サイズを選ぼうとも、転送回数は、従来の方法
の転送回数以下であり、メツシュ分割サイズは5必ずし
も上述した値に規定されるものではない。
シュ分割サイズを選ぼうとも、転送回数は、従来の方法
の転送回数以下であり、メツシュ分割サイズは5必ずし
も上述した値に規定されるものではない。
次に、本発明の第2の実施例を説明する。
M3図は、本発明を施したバス結合並列プロセッサの第
2の実施例を示す構成図である。
2の実施例を示す構成図である。
本実施例は、第1図のバス結合並列プロセッサにおいて
、各要素プロセッサ1〜7を結合するバス8に、各要素
プロセッサ1〜7をセグメント分割するためのスイッチ
31〜32を設けて構成されている。
、各要素プロセッサ1〜7を結合するバス8に、各要素
プロセッサ1〜7をセグメント分割するためのスイッチ
31〜32を設けて構成されている。
このような構成により、特定の要素プロセッサ、例えば
、最左端の要素プロセッサ1が、このスイッチ31〜3
2を投入・開放することにより、斉転送モードと、セグ
メント内転送モードを切り換えることができる。
、最左端の要素プロセッサ1が、このスイッチ31〜3
2を投入・開放することにより、斉転送モードと、セグ
メント内転送モードを切り換えることができる。
このスイッチ31〜32の制御を、特定の要素プロセッ
サが行なう構成となっているのは、本実施例において、
−斉転送と、セグメント内転送の切り換えの契機が、全
要素プロセッサにとって、同時期だからである。もちろ
ん、第3図でのスイッチ制御機構は、一実施例であり、
本発明において、本質的に規定されるものではない。よ
り複雑な構成となることを否まなければ、全ての要素プ
ロセッサの各々が、スイッチ切り換え支持を出せる構成
としても良い。また、第3図では、rJ個の要素プロセ
ッサに対して一つの割合で、スイッチを設け、rRJ個
のセグメントに分割しているが、各プロセッサ毎にスイ
ッチを設け、スイッチを選択的に投入・開放して、任意
のセグメントに分割できるような構成も考えられる。
サが行なう構成となっているのは、本実施例において、
−斉転送と、セグメント内転送の切り換えの契機が、全
要素プロセッサにとって、同時期だからである。もちろ
ん、第3図でのスイッチ制御機構は、一実施例であり、
本発明において、本質的に規定されるものではない。よ
り複雑な構成となることを否まなければ、全ての要素プ
ロセッサの各々が、スイッチ切り換え支持を出せる構成
としても良い。また、第3図では、rJ個の要素プロセ
ッサに対して一つの割合で、スイッチを設け、rRJ個
のセグメントに分割しているが、各プロセッサ毎にスイ
ッチを設け、スイッチを選択的に投入・開放して、任意
のセグメントに分割できるような構成も考えられる。
第4図は、第3図におけるバス結合並列プロセッサの本
発明に係る割り付けの一実施例を示す説明図である。
発明に係る割り付けの一実施例を示す説明図である。
その構成は、第1図のバス結合並列プロセッサにセグメ
ント分割するためのスイッチ31〜32を設けたもので
あり、第1図のバス結合並列プロセッサにおけるシナプ
スの重み係数行列の分割方法と、各要素プロセッサへの
割り付けと同じである。しかし、第4図(b)において
、同一の列番号を含む部分重み係数行列16〜】8は、
同一のセグメントに属する要素プロセッサ1〜7に割り
付けなければならない。
ント分割するためのスイッチ31〜32を設けたもので
あり、第1図のバス結合並列プロセッサにおけるシナプ
スの重み係数行列の分割方法と、各要素プロセッサへの
割り付けと同じである。しかし、第4図(b)において
、同一の列番号を含む部分重み係数行列16〜】8は、
同一のセグメントに属する要素プロセッサ1〜7に割り
付けなければならない。
すなわち、第4図(a)は、入力層から隠れ層に至るシ
ナプスの重み係数行列の分割方法と、各要素プロセッサ
への割り付けを、また、第4図(b)は、隠れ層から出
力層に至るシナプスの重み係数行列の分割方法と各要素
プロセッサへの割り付けを、それぞれ示している。
ナプスの重み係数行列の分割方法と、各要素プロセッサ
への割り付けを、また、第4図(b)は、隠れ層から出
力層に至るシナプスの重み係数行列の分割方法と各要素
プロセッサへの割り付けを、それぞれ示している。
第4図(a)、(b)において、rJJ、rKJrMJ
、rPJなど、第1図(a)、(b)と同じ記号は、同
一のものを表わし、第1の実施例と同一の意味を持って
いる。
、rPJなど、第1図(a)、(b)と同じ記号は、同
一のものを表わし、第1の実施例と同一の意味を持って
いる。
図中、メツシュ分割する場合の分割行数、および、分割
列数は、それぞれ、「Q」、rRJであるが、これは、
同一セグメント内の要素プロセッサ数およびセグメント
数と、それぞれ、等しい。
列数は、それぞれ、「Q」、rRJであるが、これは、
同一セグメント内の要素プロセッサ数およびセグメント
数と、それぞれ、等しい。
割り付けにおける条件も、第1図における第1の実施例
と同様に、本第4図における割り付けられた部分重み係
数行列12〜14の行番号と同一の列番号を含む部分重
み係数行列16〜18が、同一の要素プロセッサ1〜7
に割り付けられなければならない。
と同様に、本第4図における割り付けられた部分重み係
数行列12〜14の行番号と同一の列番号を含む部分重
み係数行列16〜18が、同一の要素プロセッサ1〜7
に割り付けられなければならない。
それに加えて、木簡2の実施例では、同一の列番号を含
む部分重み係数行列16〜18は、同一のセグメントに
属する要素プロセッサ1〜7に割り付けられなければな
らない。
む部分重み係数行列16〜18は、同一のセグメントに
属する要素プロセッサ1〜7に割り付けられなければな
らない。
このような割り付けを行ない、かつ、セグメント分けを
行なうことにより、第1の実施例で行なった後向き伝播
の計算におけるrKxQJ回のデー・夕転送回数を、さ
らに、減少させることができる。
行なうことにより、第1の実施例で行なった後向き伝播
の計算におけるrKxQJ回のデー・夕転送回数を、さ
らに、減少させることができる。
すなわち、部分積和の転送は、同一の列を含む部分重み
係数行列を持った要素プロセッサのみに対して行なえば
良いので、セグメント分割可能なバスを用いた場合には
、バスをセグメントに分割することで、各セグメントご
とに独立して、並列に転送を行なうことができる。この
場合、部分積和を、rRJ個のセグメントで、並列に「
Q」個ずつの要素プロセッサが行なうので、r(K/R
)XQJ回のデータ転送が行なわれることになる。
係数行列を持った要素プロセッサのみに対して行なえば
良いので、セグメント分割可能なバスを用いた場合には
、バスをセグメントに分割することで、各セグメントご
とに独立して、並列に転送を行なうことができる。この
場合、部分積和を、rRJ個のセグメントで、並列に「
Q」個ずつの要素プロセッサが行なうので、r(K/R
)XQJ回のデータ転送が行なわれることになる。
このことから、木簡2の実施例においては、パックプロ
パゲーション学習における各1回の前向き伝播と後向き
伝播は、rMR+(KQ/R)4回のデータ伝送で、計
算できることになる。
パゲーション学習における各1回の前向き伝播と後向き
伝播は、rMR+(KQ/R)4回のデータ伝送で、計
算できることになる。
ここで、K、M、Q、R2Oであり、一般に、K≧Mで
あるため、 MR十(KQ/R)≦MR+KQSKR+KQ≦K (
R+Q)≦K (RXQ)=KPとなる。
あるため、 MR十(KQ/R)≦MR+KQSKR+KQ≦K (
R+Q)≦K (RXQ)=KPとなる。
二のように、木簡2の実施例におけるニューラルネット
並列計算処理方法は、ニューラルネットの隠れ層から、
出力層に至るシナプスの重み係数行列をメツシュ状に分
割し、かつ、セグメント分割可能なバスを用いることに
よ番ハ従来の方法より、さらに、少ない転送回数で並列
計算を行なうことができる。
並列計算処理方法は、ニューラルネットの隠れ層から、
出力層に至るシナプスの重み係数行列をメツシュ状に分
割し、かつ、セグメント分割可能なバスを用いることに
よ番ハ従来の方法より、さらに、少ない転送回数で並列
計算を行なうことができる。
以下、第4図におけるバス結合並列プロセッサによる本
発明に係るバックプロパゲーション学習を対象とした第
2の並列処理動作を説明する。
発明に係るバックプロパゲーション学習を対象とした第
2の並列処理動作を説明する。
第5図は、第4図におけるバス結合並列プロセッサによ
る本発明に係る処理の一実施例を示す説明図である。
る本発明に係る処理の一実施例を示す説明図である。
本第5図においては、第2図で示された第1の並列処理
動作における転送処理218〜219以降の処理を説明
している。すなわち、木簡2の実施例は、隠れ層誤差の
部分積和の転送処理218〜219以外の処理は、第2
図における第1の実施例での対応する処理と全く同じで
ある。
動作における転送処理218〜219以降の処理を説明
している。すなわち、木簡2の実施例は、隠れ層誤差の
部分積和の転送処理218〜219以外の処理は、第2
図における第1の実施例での対応する処理と全く同じで
ある。
第2図と同様に、四辺形で示される処理、第3図の各要
素プロセッサ1〜7での計算処理を表わし、長円形で示
される処理は、第3図の各要素プロセッサ1〜7間での
データ転送処理を表わしている。また、矢印は、データ
の転送方向を示す。
素プロセッサ1〜7での計算処理を表わし、長円形で示
される処理は、第3図の各要素プロセッサ1〜7間での
データ転送処理を表わしている。また、矢印は、データ
の転送方向を示す。
約述したように、本第5図の第2の実施例においては、
隠れ層誤差の部分積和の転送処理218〜219以外の
処理は、第2図における第1の実施例での対応する処理
と全く同じであり、省略している。
隠れ層誤差の部分積和の転送処理218〜219以外の
処理は、第2図における第1の実施例での対応する処理
と全く同じであり、省略している。
本節2の実施例では、隠れ層誤差の部分積和の転送処理
218〜219の際に、第3図におけるバス8に設けら
れたセグメント分割スイッチ31を開放し、同一セグメ
ント内にのみ、データが転送されるようにする これは、部分積和が含む列と同一の列を含む部分重み係
数行列が割り付けられた要素プロセッサにのみ、この部
分関和が転送されれば十分なためである。このセグメン
ト分割スイッチ31を開放した転送においては、rJ個
のセグメントで、それぞれ異なったデータが、同時に転
送される。
218〜219の際に、第3図におけるバス8に設けら
れたセグメント分割スイッチ31を開放し、同一セグメ
ント内にのみ、データが転送されるようにする これは、部分積和が含む列と同一の列を含む部分重み係
数行列が割り付けられた要素プロセッサにのみ、この部
分関和が転送されれば十分なためである。このセグメン
ト分割スイッチ31を開放した転送においては、rJ個
のセグメントで、それぞれ異なったデータが、同時に転
送される。
本節2の実施例における1回のパックプロパゲーション
学習の計算では、隠れ層誤差の部分積和転送処理218
〜219における転送回数のみが第1の実施例と興なり
、r(K/R)XQJ回となる。
学習の計算では、隠れ層誤差の部分積和転送処理218
〜219における転送回数のみが第1の実施例と興なり
、r(K/R)XQJ回となる。
この場合は、転送処理208〜209および転送処理2
18〜219での転送回数合計「C0」は、rc、=
((M/Q)xP)+ ((K/R)XQ) J回とな
り、転送回数合計「C0」を極小とするセグメント数「
R」は、 R=” MXP となる。
18〜219での転送回数合計「C0」は、rc、=
((M/Q)xP)+ ((K/R)XQ) J回とな
り、転送回数合計「C0」を極小とするセグメント数「
R」は、 R=” MXP となる。
また、
Q=”(コ17T下ゴマ了1
であり、このときの転送回数合計’Cm、、Jは、C,
、= (Mx’ x ) +(Kxs
2KXP)X”FvフT丁KxP) X (AFX五XF) =1.89x”F:1vフゴ:)x”f壬−となる。
、= (Mx’ x ) +(Kxs
2KXP)X”FvフT丁KxP) X (AFX五XF) =1.89x”F:1vフゴ:)x”f壬−となる。
以上、第1図〜第5図を用いて説明したように、本節1
および第2の実施例によれば、隠れ層ニューロン数を「
Kノ、出力ニューロン数を「M」、そして、要素プロセ
ッサ数をrPJとしたとき、重み係数行列の列分割数r
RJを、通常のバス結合系列プロセッサの場合には、 R=〜F下で7M丁フ了 に、また、セグメント分割可能なバス結合並列プロセッ
サの場合には、 R=’ M XP に選べば、従来の方式では、要素プロセッサ総数に比例
して増加していた転送回数を、それぞれ、要素プロセッ
サ総数の平行様、および、3乗根に比例する値にまで削
減することができ、要素プロセッサ総数が多い場合でも
、通信オーバヘッドが、あまり増加せず、十分な速度の
向上が得られる。
および第2の実施例によれば、隠れ層ニューロン数を「
Kノ、出力ニューロン数を「M」、そして、要素プロセ
ッサ数をrPJとしたとき、重み係数行列の列分割数r
RJを、通常のバス結合系列プロセッサの場合には、 R=〜F下で7M丁フ了 に、また、セグメント分割可能なバス結合並列プロセッ
サの場合には、 R=’ M XP に選べば、従来の方式では、要素プロセッサ総数に比例
して増加していた転送回数を、それぞれ、要素プロセッ
サ総数の平行様、および、3乗根に比例する値にまで削
減することができ、要素プロセッサ総数が多い場合でも
、通信オーバヘッドが、あまり増加せず、十分な速度の
向上が得られる。
【発明の効果]
本発明によれば、バス結合型並列プロセッサによるパッ
クプロパゲーション学習の並列計算において、データ転
送回数を大幅に削減することができ、通信オーバl\ツ
ドを軽減し、計算速度の高速化が可能である。
クプロパゲーション学習の並列計算において、データ転
送回数を大幅に削減することができ、通信オーバl\ツ
ドを軽減し、計算速度の高速化が可能である。
第1図は本発明を施したバス結合並列プロセッサの構成
および本発明に係る割り付けの第1の実施例を示す説明
図、第2図は第1図におけるバス結合並列プロセッサに
よる本発明に係る処理の一実施例を示す説明図、第3図
は本発明を施したバス結合並列プロセッサの第2の実施
例を示す構成図、第4図は第3図におけるバス結合並列
プロセッサの本発明に係る割り付けの一実施例を示す説
明図、第5図は第4図におけるバス結合並列プロセッサ
による本発明に係る処理の一実施例を示す説明図、第6
図は階層型ニューラルネットの構造を示す説明図、第7
図は従来のパックプロパゲーション学習に係る計算処理
を行なうバス結合型並列プロセッサの構成を示す説明図
である。 1〜7:要素プロセッサ、8:パス、11:第1の重み
係数行列、12〜14:第1の部分重み係数行列、15
:第2の重み係数行列、16〜工8:第2の部分重み係
数行列、31〜32:スイッチ、61〜69:ニューロ
ン、201:入力層の出力の転送処理、202〜203
:l!!九層の出力’ X + t Jの計算処理、
204〜205:隠れ層の出力の転送処理、206〜2
07:部分積和の計算処理、208〜209:部分積和
の転送処理。 210〜211:出力層の出力値「xl」の計算処理、
212〜213.出力値と教師信号との誤差「δ、」の
計算処理、214〜215:誤差値の転送処理、216
〜2]7:部分積和の計算処理。 218〜219:g3分積和の転送処理、220〜22
1・重み係数に係る誤差値「γ8」の計算処理。 222〜223:重み係数の更新計算処理。 第 図(その2) (その1) 第 図(その1) (a) 第 図 教師 ↓ 望ましく・出力 釘 入力パターン
および本発明に係る割り付けの第1の実施例を示す説明
図、第2図は第1図におけるバス結合並列プロセッサに
よる本発明に係る処理の一実施例を示す説明図、第3図
は本発明を施したバス結合並列プロセッサの第2の実施
例を示す構成図、第4図は第3図におけるバス結合並列
プロセッサの本発明に係る割り付けの一実施例を示す説
明図、第5図は第4図におけるバス結合並列プロセッサ
による本発明に係る処理の一実施例を示す説明図、第6
図は階層型ニューラルネットの構造を示す説明図、第7
図は従来のパックプロパゲーション学習に係る計算処理
を行なうバス結合型並列プロセッサの構成を示す説明図
である。 1〜7:要素プロセッサ、8:パス、11:第1の重み
係数行列、12〜14:第1の部分重み係数行列、15
:第2の重み係数行列、16〜工8:第2の部分重み係
数行列、31〜32:スイッチ、61〜69:ニューロ
ン、201:入力層の出力の転送処理、202〜203
:l!!九層の出力’ X + t Jの計算処理、
204〜205:隠れ層の出力の転送処理、206〜2
07:部分積和の計算処理、208〜209:部分積和
の転送処理。 210〜211:出力層の出力値「xl」の計算処理、
212〜213.出力値と教師信号との誤差「δ、」の
計算処理、214〜215:誤差値の転送処理、216
〜2]7:部分積和の計算処理。 218〜219:g3分積和の転送処理、220〜22
1・重み係数に係る誤差値「γ8」の計算処理。 222〜223:重み係数の更新計算処理。 第 図(その2) (その1) 第 図(その1) (a) 第 図 教師 ↓ 望ましく・出力 釘 入力パターン
Claims (2)
- (1)入力層と、隠れ層、および、出力層からなる三層
階層型ニューラルネツトの、シナプスの重み係数を変更
するバックプロパゲーシヨン学習の前向き伝播および後
向き伝播の処理を、同報転送機能を持つバス結合並列プ
ロセッサを構成するP個の要素プロセッサに、上記シナ
プスの重み係数行列を割り付けて、並列に行なうニュー
ラルネットの並列計算処理方法において、上記入力層か
ら上記隠れ層に至る上記シナプスの重み係数行列を行方
向にP個に分割して、第1の部分重み係数行列とし、該
第1の部分重み係数行列を、上記P個の要素プロセッサ
のそれぞれに割り付け、そして、Q≧2、R≧2、かつ
、P=Q×Rである整数Qおよび整数Rを選択し、上記
隠れ層から上記出力層に至る上記シナプスの重み係数行
列を、行方向にQ分割、列方向にR分割して、第2の部
分重み係数行列とし、任意の第n行目を含む上記第1の
部分重み係数行列を割り付けた上記要素プロセッサに、
上記第n列目を含む上記第2の部分重み係数行列を割り
付けることを特徴とするニューラルネットの並列計算処
理方法。 - (2)請求項1に記載のニューラルネット並列計算処理
方法において、上記バスを任意の個数のセグメントに分
割するセグメント分割手段を付与し、上記第n行目を含
む上記第1の部分重み係数行列を割り付けた上記要素プ
ロセッサへの上記第n列目を含む上記第2の部分重み係
数行列の割り付けと共に、同一の列を含む上記第2の部
分重み係数行列を、同一セグメントに属する上記要素プ
ロセッサに割り付け、上記後向き伝幡の処理時に、上記
要素プロセッサのそれぞれが、自プロセッサに割り付け
られた上記第2の部分重み係数行列を用いて、上記出力
層のニユーロン誤差値との部分積和を計算した後に、該
計算した部分積和を、上記セグメント分割手段を用いて
分割したセグメントの同一セグメント内の要素プロセッ
サに同報転送することを特徴とするニユーラルネット並
列計算処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2200456A JPH0484358A (ja) | 1990-07-27 | 1990-07-27 | ニユーラルネットの並列計算処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2200456A JPH0484358A (ja) | 1990-07-27 | 1990-07-27 | ニユーラルネットの並列計算処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0484358A true JPH0484358A (ja) | 1992-03-17 |
Family
ID=16424606
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2200456A Pending JPH0484358A (ja) | 1990-07-27 | 1990-07-27 | ニユーラルネットの並列計算処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0484358A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022502733A (ja) * | 2018-10-11 | 2022-01-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現 |
-
1990
- 1990-07-27 JP JP2200456A patent/JPH0484358A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022502733A (ja) * | 2018-10-11 | 2022-01-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現 |
| US12182687B2 (en) | 2018-10-11 | 2024-12-31 | International Business Machines Corporation | Data representation for dynamic precision in neural network cores |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5544336A (en) | Parallel data processing system which efficiently performs matrix and neurocomputer operations, in a negligible data transmission time | |
| 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 | |
| US5131072A (en) | Neurocomputer with analog signal bus | |
| US6654730B1 (en) | Neural network arithmetic apparatus and neutral network operation method | |
| US20160196488A1 (en) | Neural network computing device, system and method | |
| Wang et al. | A fast multilayer neural-network training algorithm based on the layer-by-layer optimizing procedures | |
| DE69032259T2 (de) | Paralleldatenverarbeitungsanlage | |
| US4912653A (en) | Trainable neural network | |
| KR0170505B1 (ko) | 다층퍼셉트론 신경회로망의 n비트 데이타 표현에 의한 학습방법 | |
| JPH05346914A (ja) | ニューロプロセッサ | |
| JP2001117900A (ja) | ニューラルネットワーク演算装置 | |
| JPH0484358A (ja) | ニユーラルネットの並列計算処理方法 | |
| CN114266387A (zh) | 一种输变电工程工期预测方法、系统、设备及存储介质 | |
| Theeten et al. | The Lneuro-chip: a digital VLSI with on-chip learning mechanism | |
| JPH04182769A (ja) | デジタル・ニューロプロセッサ | |
| JPH04237388A (ja) | ニューロプロセッサ | |
| JPH06110864A (ja) | 学習処理装置 | |
| JP2825133B2 (ja) | 並列データ処理方式 | |
| Ghorbani et al. | Incremental communication for multilayer neural networks | |
| TW305998B (en) | Weighted sum type of artificial neural network with reconfigurable structure and bit-serial I/O mode | |
| JPH04112355A (ja) | 自己学習型アナログ方式ニューロン回路 | |
| JP2766858B2 (ja) | ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置 | |
| Krikelis et al. | Implementing neural networks with the associative string processor | |
| CN117332824A (zh) | 基于加权和同步抖动算法的忆阻神经网络全电路 | |
| JPH0264880A (ja) | パイプライン処理を用いたニューラルアーキテクチュア |