JP2746350B2 - 学習機械シナプス・プロセッサ・システム装置 - Google Patents

学習機械シナプス・プロセッサ・システム装置

Info

Publication number
JP2746350B2
JP2746350B2 JP3510421A JP51042191A JP2746350B2 JP 2746350 B2 JP2746350 B2 JP 2746350B2 JP 3510421 A JP3510421 A JP 3510421A JP 51042191 A JP51042191 A JP 51042191A JP 2746350 B2 JP2746350 B2 JP 2746350B2
Authority
JP
Japan
Prior art keywords
synapse
neuron
matrix
data
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3510421A
Other languages
English (en)
Other versions
JPH04507026A (ja
Inventor
ピチャネック、ジェラルド、ジョージ
ヴァシリデイス、スタマテイス
デルガドーフライアズ、ホセ、グアダルーペ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US07/526,866 external-priority patent/US5065339A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04507026A publication Critical patent/JPH04507026A/ja
Application granted granted Critical
Publication of JP2746350B2 publication Critical patent/JP2746350B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

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)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 [関連出願に対する相互参照] 本出願は優先権を主張し、以下の関連同時係属特許出
願の一部継続出願である。
1990年5月22日出願の"APPARATUS AND METHOD FOR NE
URAL PROCESSOR"と題するS.ヴァッシリアディス(Vassi
liadis)及びG.G.ペチャネク(Pechanek)の米国特許出
願第07/526866号(IBMドケット番号EN9-90-045)("SNA
P"と呼ぶことがある)。
1991年4月8日出願の"A TRIANGULAR SCALABLE NEURA
L ARRAY PROCESSOR"と題するG.G.ペチャネク及びS.ヴァ
ッシリアディスの米国特許出願第07/682785号(IBMドケ
ット番号EN9-91-018)("T−SNAP"と呼ぶことがあ
る)。
1991年4月8日出願の"SPIN:A SEQUENTIAL PIPELINED
NEURO COMPUTER"と題するS.ヴァッシリアディス、G.G.
ペチャネク及びJ.G.デルガード=フリアス(Delgado-Fr
ias)の米国特許出願第07/681842号(IBMドケット番号E
N9-91-026)("SPIN"と呼ぶことがある)。
さらに、以下の関連出願が同時に出願されている。
1991年5月17日出願の"VIRTUAL NEUROCOMPUTER ARCHI
TECTURES FOR NEURAL NETWORKS"と題するG.G.ペチャネ
ク、J.G.デルガード=フリアス及びS.ヴァッシリアディ
スの米国特許出願第07/702260号(IBMドケット番号EN9-
91-053)("VIRTUAL"と呼ぶことがある)。
1991年5月17日出願の"PLAN:PYRAMID LEARNING ARCHI
TECTURE NEUROCOMPUTER"と題するG.G.ペチャネク、S.ヴ
ァッシリアディス及びJ.G.デルガード=フリアスの米国
特許出願第07/702263号(IBMドケット番号EN9-91-055)
("PLAN"と呼ぶことがある)。
1991年5月17日出願の"SCALABLE FLOW VIRTUAL LEARN
ING NEUROCOMPUTER"と題するG.G.ペチャネク、S.ヴァッ
シリアディス及びJ.G.デルガード=フリアスの米国特許
出願第07/702262号(IBMドケット番号EN9-91-054)("S
VLM"と呼ぶことがある)。
これらの同時係属出願及び本出願は同じ譲受人、すな
わち、米国ニューヨーク州アーモンクのインターナショ
ナル・ビジネス・マシーンズ・コーポレーションによっ
て所有されている。
これらの同時係属出願に記載の記述を、この引用によ
って本明細書に合体する。
[技術分野] 本発明はコンピュータ・システムに関し、具体的には
記載されたコンピュータ・システムによって実施できる
例によって例示される後方伝播、ボルツマン様機械、及
びマトリックス処理を提供できる学習機械シナプス・プ
ロセッサ・システム・アーキテクチャに関する。
[発明の検討で使用する参照文献] 本発明者等の諸発明の詳細な検討では、従来技術では
ないが議論を理解する助けとなる本発明者等自身の未発
表研究を含む他の研究を引用する。このような追加の文
献には以下のものがある。
D.E.ルーメルハルト(Rumelhart)、J.L.マックレラ
ンド(McClelland)及びPDMリサーチ・グループ(the P
DP Research Group)の著書"Parallel Distributed Pro
cessing Vol.1:Foundations"、米国マサチューセッツ州
ケンブリッジ、MIP Press、1986年刊(以下では"Rumelh
art 86"と呼ぶ)。
J.N.ホワン(Hwang)、J.A.ヴロンツォス(Vlontzo
s)及びS.Y.クング(Kung)の論文"A Systolic Neural
Network Architecture for Hidden Markov Models"、IE
EE Transactions on Acoustics、Speech,and Signal Pr
ocessing,Vol.37,No12,pp.1967-1979、1989年(以下で
は"Hwang 89"と呼ぶ)。
M.コーディル(Caudill)の論文"Neural Networks Pr
imer-Part",AI Expert,pp.53-59,1988年6月刊(以下で
は"Caudill 88"と呼ぶ。) 1990年5月18日出願の"APPARATUS AND METHOD FOR NE
URAL PROCESSOR"と題するS.ヴァッシリアディス及びG.
G.ペチャネクの米国特許出願第07/526866号(IBMドケッ
ト番号EN9-90-045)(以下では"SNAP"または"Vassiliad
is SNAP 90"と呼ぶことがある)。
1991年4月8日出願の"A TRIANGULAR SCALABLE NEURA
L ARRAY PROCESSOR"と題するG.G.ペチャネク及びS.ヴァ
ッシリアディスの米国特許出願第07/682785号(IBMドケ
ット番号EN9-91-018)(以下では"T−SNAP"と呼ぶこと
がある)。
1991年4月8日出願の"SPIN:A SEQUENTIAL PIPELINED
NEURO COMPUTER"と題するS.ヴァッシリアディス、G.G.
ペチャネク及びJ.G.デルガード=フリアスの米国特許出
願第07/681842号(IBMドケット番号EN9-91-026)(以下
では"SPIN"または"Vassiliadis 91と呼ぶことがあ
る)。
B.ウィドロウ(Widrow)及びM.E.ホッフ(Hoff)の論
文"Adaptive Switching Circuits",IRE WESCON Convent
ion Record,pp.96-104,1960年(以下では"Widrow 60"と
呼ぶ)。
S.グロスベルグ(Grossberg)の論文"Competitive Le
arning:From Interactive Activation to Adaptive Res
onance",Cognitive Science 11,pp.23-63,1987年(以下
では"Grossberg 87"と呼ぶ。) E.B.アイヒェルベルガー(Eichelberger)及びT.W.ウ
ィリアムス(Williams)の論文"A Logic Design Struct
ure for Testability",Proceedings 14th Design Autom
ation Conference,IEEE、1977年(以下では"Eichelberg
er 77"と呼ぶ)。
J.J.ホップフィールド(Hopfield)の論文"Neurons W
ith Graded Response Have Collective Computational
Properties Like Those of Two-State Neurons",Procee
dings of the National Academy of Sciences 81,pp.30
88-3092,1984年5月(以下では"Hopfield 84"と呼
ぶ)。
D.H.アクレイ(Ackley)、G.E.ヒントン(Hinton)及
びT.J.セイノフスキ(Sejnowski)の論文"A Learning A
lgorithm for Boltzmann Machines",Cognitive Science
9,pp.147-169,1985年(以下では"Ackley 85"と呼
ぶ)。
J.L.マックレランド及びD.E.ルーメルハルトの著書"E
xplorations in Parallel Distributed Processing:A H
andbook of Models,Programs and Exercises",米国マサ
チューセッツ州ケンブリッジ、MIT Press,1988年刊(以
下では"McClelland 88"と呼ぶ)。
J.J.ホップフィールドの論文"Neural Networks and P
hysical Systems with Emergent Collective Computati
onal Abilities",Proceedings of the National Academ
y of Sciences 79,pp.2554-2558,1982年(以下では"Hop
field 82と呼ぶ)。
[背景技術] Webster's New Collegiate Dictionaryによれば、”
学習する(learn)”という単語は、「勉強、教育、ま
たは経験によって知識または理解または技能を得るこ
と」を意味する。ニューラル・ネットワークの知識は、
ニューロン間の相互接続の強度または重みによって符号
化される。N個のニューロンからなる完全に接続された
ネットワークでは、学習規則によって修正可能なN2
の相互結合重みが使用可能である。ネットワークが経験
するといわれる「学習」過程は、Websterの定義と類似
の意味で、相互結合重み値の修正を支配する機構または
規則を意味する。このような学習規則の1つは、D.E.ル
ーメルハルト、J.L.マックレランド及びPDPリサーチ・
グループの著書"Parallel Distributed Processing Vo
l.1:Foundations",米国マサチューセッツ州ケンブリッ
ジ、MIT Press,1986年刊(以下では"Rumelhart 86"と呼
ぶ)によって示されるように後方伝播と呼ばれる。後方
伝播学習規則についてまず説明し、その後で学習機械の
実施態様に使用されるシナプス・プロセッサ・アーキテ
クチャについて論じる。次に、入出力エンコーダ・ニュ
ーラル・ネットワークを使用する後方伝播の例を示す。
本発明の主題であるこのシナプス・プロセッサ・アーキ
テクチャは、他のニューラル・ネットワークのモデル
化、及びより一般的なクラスの並列データ・アルゴリズ
ムの実行に適用できるので、以後の一連の例で、この新
しいシステムを用いたボルツマン様機械及びマトリック
ス処理の実施態様を示すことにする。
本発明者等の諸発明の詳細な考察の際、上述したよう
に、我々自身の未発表研究を含む他の研究を引用する。
これらの背景文献は、引用によって本明細書に合体す
る。
[発明の開示] 本発明者等の新しく開発したコンピュータ・システム
は、シナプス処理要素用の新しいアーキテクチャを有す
るニューラル・シナプス・プロセッサ装置として記述す
ることができる。好ましい装置は、命令及びデータ記憶
ユニットを含み、命令及びデータを受け取り、命令を実
行する、シナプス処理ユニットを有するNニューロン構
造をもつ。このNニューロン構造は、通信加算器ツリ
ー、ニューロン活動化関数ユニット、及び通信加算器ツ
リーによって命令、データ、及びニューロン活動化関数
ユニットの出力をすべて入力シナプス処理ユニットに返
送するための配置を含むべきである。
以下で説明する好ましい装置は、N2個のシナプス処
理ユニットを含む。各ユニットは、エミュレートされる
Nニューラル・ネットワーク内の結合重みと関連づけら
れ、対角線セル及び一般セルから構成される対角線に沿
って折り畳まれたN×Xマトリックスの形に配置されて
いる。
好ましいシステムでは、対角線セルは、それぞれ単一
のシナプス処理ユニットを利用し、折り畳まれたN×N
結合重みマトリックスの対角線結合重みと関連づけら
れ、一般セルは、それぞれ合併された2つのシナプス処
理ユニットをもち、折り畳まれたN×N結合重みマトリ
ックスの対称結合重みと関連づけられている。
これらの改良を実施するために我々が知っている最良
の形で以下に記述するシナプス処理要素用の本発明者等
の新しいアーキテクチャを使用すると、後方伝播及びボ
ルツマン様機械アルゴリズムが利用でき、入出力エンコ
ーダ・ニューラル・ネットワークの例について考察する
ように、本発明者等の「汎用学習機械」(GPLM)上で後
方伝播及びボルツマン機械が共に実施でき、かつマトリ
ックス乗算、加算、及びブール演算用のデータ並列アル
ゴリズムがGPLMで実施できる。
上記及びその他の改良は、以下の詳細な説明に記載さ
れている。これらの発明ならびにその利点と特徴をよく
理解するには、本発明者等がこの分野で行った他の開発
に関する同時係属の特許出願を参照しなければならない
こともあろう。しかし、特に本明細書に記載する改良、
利点及び特徴に関しては、添付の図面に沿った説明中で
参照を行なう。
[図面の簡単な説明] 第1図は、多層後方伝播ネットワークの概略図であ
る。
第2図は、3層後方伝播ネットワークの概略図であ
る。
第3図は、重み/Y値乗算構造を2つの部分に分けて示
した概略図である。
第3A図は対角線セルについて、第3B図は一般セルにつ
いての概略図である。
第4図は、本発明の好ましいシナプス・プロセッサ・
アーキテクチャを2つの部分に分けて示した概略図であ
る。
第4A図は対角線シナプス・プロセッサDSYP、第4B図は
一般シナプス・プロセッサGSYPの概略図である。
第5図は、好ましい通信加算器ツリーの概略図であ
る。
第6図は、シナプス・プロセッサ・アーキテクチャを
有する4ニューロン汎用学習機械の概略図である。
第7図は、シナプス・プロセッサによってタグ付けさ
れた命令/データ形式を示す図である。
第8図は、入出力コード化問題用のニューラル・ネッ
トワークの概略図である。
第9図は、GPLM上で実施された本発明のシナプス・プ
ロセッサ・アーキテクチャの概略図である。
(注:図示の都合上、第9−20図は分割することがあ
る。何枚も使用する場合は、慣例に従って、図の上端を
1枚目とし、以下上から順に並べることにする。) 第10図は、本発明のシステムでの初期設定及び第1層
実行の概略図である。
第11図は、本発明のシステムでの第2層実行の概略図
である。
第12図は、本発明のシステムでの第3層実行の概略図
である。
第13図は、本発明のシステムでの第4層実行の概略図
である。
第14図は、学習モード−逆通信E8、E9、E10、E11の概
略図である。
第15図は、学習モード−重み付き誤差総和作成ER4、E
R5、ER6、ER7の概略図である。
第16図は、学習モード−逆通信E4、E5、E6、E7、及び
誤差総和作成ER2の概略図である。
第17図は、学習モード−逆通信E3の概略図である。
第18図は、学習モード−ステップ1重み更新の概略図
である。
第19図は、学習モード−ステップ2重み更新(p=
ρ)の概略図である。
第20図は、学習モード−ステップ3重み更新の概略図
である。
第21図は、マトリックス演算としてのニューロン計算
の概略図である。
第22図は、一般マトリックス乗算の概略図である。
[発明の好ましい実施例] この詳細な説明は、例によって提供される本発明者等
の諸発明の好ましい実施例を説明する一部分である。
後方伝播学習の背景 後方伝播学習アルゴリズムは、通常、フィードフォワ
ード多層ニューラル・ネットワーク上で実施されるが、
再帰的ネットワークへの適用もすでに試みられている。
たとえば、"Rumelhart 86"及び"Hwang 89"を参照された
い。ここでは、フィードフォワード・ネットワークだけ
を考察する。フィードフォワード・ネットワークは、パ
ターン分類機構またはパターン・マップ機構として機能
し、入力パターンが加えられたとき、フィードフォワー
ド・ネットワークはこれらの入力パターンからパターン
の出力セットへのマッピングまたは分類を学習する。ネ
ットワークの「教師」として機能する分類または入出力
マッピングのサブセットは最初に既知であると仮定す
る。分類のサブセットを学習した後は、ネットワーク
は、見えないパターンに応答して、それらのパターンを
すでに学習した分類にマップすることができる。以前に
見たことのないパターンを正しく分類できるネットワー
クの能力は、「一般化」と呼ばれる。ネットワークは、
ニューロンの入力層、出力層、及び1つまたは複数の隠
れ層からなり、入力パターン内の各文字については入力
ニューロン・ユニットによって、出力パターン内の各分
類または文字については出力ニューロン・ユニットによ
ってセットアップされる(第1図)。隠れニューロン層
の数、及び各隠れ層内のニューロンの数はさらに決定が
難しい。コルモゴロフの定理("Caudill 88"参照)は、
m個の入力ニューロン、n個の出力ニューロン、及び2m
+1個の隠れ層ニューロンからなる3層ニューラル・ネ
ットワークが、m個の文字からなる入力パターンをn個
の文字からなる出力パターンにマップできることを示し
ている。ここで、入力文字は0≦値≦1に制約される。
しかし、コルモゴロフの定理は、マッピング問題に対す
るニューラル・ネットワークの最小解を保証しない("C
audill 88"参照)。最適解を得るための隠れユニットの
最小数を選択する方法は知られていない。隠れユニット
の数を選択するには通常、経験、常識、コルモゴロフ定
理の使用、または実験的方法が使用される。層の数と層
当たりのニューロンの数が選択されると、次に接続構造
が決定される。フィードフォワード・ネットワークは通
常、隣接する層同士の間で完全な接続が可能であり、ま
た非隣接層間で接続をもつこともできるが、すべての接
続はフィードフォワード方向だけである。このフィード
フォワード接続の制限は、フィードバック結合重みがな
いこと、及び層内のニューロン同士の間に接続がないこ
とを意味すると思われる。この接続構造では、"Rumelha
rt 86"におけるように、通常、重みは訓練の前にランダ
ムに決定される。
第1図及びその他の図で、以下の記号を使用する。
・全ネットワーク内にN個のニューロン。
・添え字LはK個の層を番号付けするのに使用する。た
だし、1≦L≦K。
・各層内にはML個のニューロンがあり、したがってM1
+M2+...+MK=N。
・重みは二重添え字を付けて示す。Wijは接続されたユ
ニットjからユニットiへの接続の重みを示す。
・外部入力は新しい変数Exiで表す。ただし、1≦i≦
N。各ニューロンは外部入力Exiをもつことができる。
・すべてのニューロン出力はYiで表す。
ニューロン・シグモイド関数を、以前に採用した形か
ら式1の形に変形する(たとえば"Vassiliadis SNAP 9
0"、"T−SNAP"、及び"Vassiliadis SPIN 91"参照)。変
更点は、ニューロン処理要素への外部入力を表す項Exi
を追加したことである。
多くのフィードフォワード・ニューラル・ネットワー
クでは、入力ニューロン層だけが外部入力を使用する。
文献、たとえば"Rumelhart 86"では、フィードフォワー
ド・ネットワークの入力ニューロンは、ニューラル・ネ
ットワーク内の他のニューロンが使用するシグモイド関
数ではなく、識別活動化/出力関数を使用する。この場
合、Y1=Ex1。その代わり、シグモイド関数が入力ニュ
ーロンに使用でき、Exiの範囲を−A≦Exi≦+Aにまで
拡大することによって、すべてのニューロンが同じ活動
化関数をもつことができる。ただし、Exiが1つのニュ
ーロンへの唯一の入力であると仮定すると、−AはYi
=0に等しく、+AはYi=1に等しい。許容可能な誤
差範囲内で、外部入力EXiの使用によって、入力ニュー
ロンを"0"の状態または"1"状態に強制することができ
る。ネットワーク内のその他のニューロンのExiは、必
要でなければ、0に等しくすることができる。
ニューロン活動化関数F(zi)をシグモイド関数に
等しく決定する。その形は、たとえば次の通りである。
上式で、 −e=自然対数(2.71828...) −関数F(zi)について、 −0≦F(zi)≦1 −Tは、所与の1組のzi値に対するシグモイド関数の
勾配を変更するために使用する大域制御パラメータであ
る。
既知の1組の入力/教師パターンが与えられた場合、
既知入力が後方伝播ネットワークに加えられ、そのネッ
トワークは実行モードで実行してある出力を生ずる。次
にネットワークは学習モードに置かれ、ある規則に従っ
て重みが調整される。教師パターンと実際に生じた出力
パターンの不一致度が誤差である。後方伝播学習規則の
背後にある基本概念は、全ネットワーク誤差E(W)を
調整可能な重みの関数としてすべての入力/教師パター
ンについて最小化することである。ネットワーク誤差E
(W)は、教師入力及びネットワーク出力の2次関数と
して選択される("Rumelhart 86"の後方伝播/デルタ規
則方程式): 上式で、 −Qはパターンpの数に等しい。
−出力ユニット上に教師入力tp iがある。
特定のパターンpについて、E(W)pは、 ウィドロウとホフ("Widrow 60")の研究によれば、
連続値出力をもつユニットのシステムではなく単一層線
形しきい値ユニット・システムでは、2次誤差関数をあ
る範囲のネットワーク重みの値に対してプロットした曲
線は、1つの最小値をもつ滑らかな関数となる。平均2
乗誤差を最小化する手順を使用することによって、ネッ
トワークは、誤差面に沿って単一の最小値に達するまで
勾配を下げる。言い替えると、誤差関数が最小になるよ
うに重みが変更される。より具体的には、重み変化を誤
差関数の導関数の負数に比例させることによって勾配降
下が達成される。線形しきい値ニューロンに使用された
この勾配降下の概念が、シグモイド型応答を有するニュ
ーロンに拡張される。
式1及び式2で定義された活動化関数を有するニュー
ロンで平均2乗誤差を最小にするには、重み変化に対す
る誤差関数の導関数を計算しなければならない。重み
は、勾配降下方程式に従って変化しなければならない。
(上式で、ρは比例定数である。) 連鎖律を使用して重みに対する誤差関数(式5)の導
関数をとると、 式7の最初の部分(dEp)/(dzp i)は、第iユニッ
トの入力の変化に対して誤差Epがどのように変化する
かを表す。式7の第2の部分(dzp i)/(dWij)は、特
定の重みWijの変化に対して第i入力がどのように変化
するかを表す。
外部入力Exiはネットワーク実行中一定と仮定される
ので、式7の第2の部分の導関数は次のようになる。
式7の第1部分の導関数は、"Rumelhart 86"によって
解釈された線形ニューロンで使用される元のデルタ規則
アルゴリズムに基づいている。ニューロンが線形である
なら、Yp iは入力zp jまたはその定数倍に等しくなるは
ずである。この線形式と「一貫性」をもつようにするた
め、第1の導関数は、"Rumelhart 86"に従って次のよう
に定義する。
誤差面E上で勾配降下を実施するため、式6に基づく
この学習規則に従って重みを変化させる。
ΔWij=ρδp ip j (10) (上式で、ρは学習速度(比例定数)を表す。) 多層ネットワーク内のすべてのニューロンについてδ
p iを決定することが、後方伝播アルゴリズムの核心であ
る。式9に対して微分連鎖規則を適用すると、次式が得
られる。
第1項(dEp)/(dYp i)は、ニューロンの出力の関
数としての誤差の変化を表し、第2項(dYp i)/(d
zp i)は入力の変化の関数としての出力の変化を表す。
第2項は出力ニューロンと隠れニューロンの両方に有効
である。活動化関数(式2)の導関数は次の通りであ
る。
式11の第1項の計算は、ユニットが出力ニューロンで
あるか、それとも隠れニューロンの1つであるかによっ
て変わる。
出力ユニットの場合は、教育入力が使用可能なので、 かつ、 出力ニューロンに関する式12を式14に代入すると: δp i=(tp i−Yp i)Yp i(1−Yp i) (15) 従って、出力ニューロンについては、式10は次のよう
になる。
ΔWij=ρp j(tp i−Yp i)Yp i(1−Yp i) (16) 出力YiをもちYiがフィードフォワード層に接続され
ている層L内の第iの隠れユニットについて、連鎖律を
使用して(dEp)/(dYp i)を書き直すと、 上式で、m=M1+M2+...+ML 式17は、ニューロンのフィードフォワード層Ym+1,Y
m+2,...,YNに対する層L内のYiの効果を表す。続ける
と、 調べている唯一の効果はYiによるものなので、フィー
ドフォワード層内のすべての入力のYiに対する導関数
は次のようになる。
式9を式19に代入すると: ciは、1つのフィードフォワード層内における隠れ
ユニットiからニューロン・ユニットcへの結合重みで
あると解釈される。式11を整理すると、 式12及び20を式11に代入すると: 次に、式10に基づいて、 層Lの隠れユニットの誤差信号δp iを、Lより前の層に
後方伝播させて、重み修正プロセスを続行することがで
きる。
多層ニューラル・ネットワークでは、式16及び22が後
方伝播学習規則を構成する。すべての重みが、下記の一
般規則に従って更新される。
新しいWij=古いWij+ΔWij (23) いま図を詳細に参照すると、後方伝播は、高水準から
は第2図に示すように見える。第2図は、3層後方伝播
ネットワークを示している。"Grossberg 87"参照。第1
図は、3層F1、F2、F3の後方伝播ネットワーク内に含ま
れる主要な計算ブロックの概略を示す。このネットワー
クへの入力は、3つの層F1、F2、F3を通過して、F3層か
ら実際のネットワーク出力を発生する。ユニットのF1
層、F2層、F3層は、各層内でニューロンの出力を直接生
成する、非線形で、微分可能な、非減少の活動化関数を
もつ。これらの活動化関数は、微分器ブロックF6、F7、
及び誤差信号ブロックF4、F5に送られる。ブロックF6及
びF7は、それぞれ層F3及びF2からの活動化関数を微分
し、対応する誤差ブロックF4及びF5に信号を供給する。
またブロックF4は、層F3からの直接出力と、予想出力と
記された教育入力とを受け取る。ブロックF4は、予想出
力と実際の出力F3の差に実際の出力F3の導関数を掛けた
積に基づく学習信号を作成する(式15)。次に、F3とF2
の間の重みが、学習信号によって修正される(式16及び
23)。隠れ層とも呼ばれる層F2への重みは、多少異なる
規則によって修正される。というのは、教師、すなわち
F2層に対する予想出力が存在しないからである。F5ブロ
ックからの学習信号は式21に等しく、重みは式22及び23
に基づいて更新される。
このネットワークは、2つのフェーズ、すなわち実行
または順方向伝播フェーズと、F3層から出発して重みを
修正し入力層へ後方伝播する、ネットワークを介する後
方伝播である学習フェーズで働く。このサイクル、すな
わち新しい出力を発生する順方向伝播フェーズと、その
後に続く重みを更新する後方伝播フェーズは、実際値と
目標値が一致する、または許容範囲内に入るまで続く。
学習機械シナプス・プロセッサ・アーキテクチャ "T−SNAP"に記述されたTSNAP構造は、TSNAPが重み修
正機構を提供しなかったので、ホスト・プロセッサが、
ニューラル・ネットワーク・モデルが必要とする学習機
能を提供することを必要とした。さらに、TSNAPは、式
1で記述されるニューロン実行機能も提供しない。複数
の学習アルゴリズム及び新しいニューロン定義(式1)
に対応するには、TSNAPアーキテクチャの大きな変更が
必要である。これらの変更は、ニューラル・ネットワー
ク・パラダイムに通常付随する能力を超える能力をもた
らすものである。TSNAPで提供された固定乗算機能の代
わりに、命令を受け取って実行する新しいタイプの計算
要素で乗算要素を置き換えた、より一般的なプロセッサ
・アーキテクチャが使用される。この新しいアーキテク
チャをシナプス・プロセッサ・アーキテクチャ(SPA)
と呼ぶ。ビット直列通信が、システム装置の好ましい実
施例によって実施される以下のアーキテクチャの議論の
基礎となる仮定であるが、このビット直列のSPA実施例
は、ビット直列の実施態様だけに限定されるものではな
く、このアーキテクチャはやはり以下で詳細に説明する
ワード並列形式にも適用できる。
重み/Y値乗算機能は、式1及び2で定義されるよう
に、生物ニューロンとの粗い機能的類推では、入力シナ
プス処理に対応する。拡張された乗算セルまたは「シナ
プス」プロセッサ・アーキテクチャは、重み/Y値乗算機
能及び以下で説明する追加の機能を含む。学習なしのニ
ューラル実行能力、一般セル構造及び対角線セル構造を
実施するには、2つのタイプのプロセッサ「セル」構造
が必要である。
学習なしの基本実行構造、及び学習をサポートする新
しいプロセッサ構造は、第3図及び第4図に示されてい
る。以下の説明で使用する「要素」という用語は、重み
変更能力なしのシナプス処理に必要な最小のアーキテク
チャ機能ユニット、すなわち重みレジスタ、Y値レジス
タ、及びWijjで象徴的に示される乗算器を意味す
る。第1の「セル」(第3A図)は、対角線要素Wii×Y
iと関連し、第2の「セル」、Gセル(第3B図)は残り
の要素Wijjと関連し、上端及び下端配置で示され
た、Gセル内に置かれた2つの要素を含む。基本的ニュ
ーラル実行構造(第3A図及び第3B図)に対する変更点
は、第4A図及び第4B図に示されており、タグ比較機能、
コマンド(CMD)レジスタ、一時(TEMP)レジスタ、各
データ・レジスタ内の条件付き実行ビット(CEB)、デ
ータ経路レジスタ、コマンド経路ビット、セレクタ及び
ディストリビュータ制御構造、及び実行ユニット(EX
U)ブロックで表される乗算以外の拡張機能を追加した
ことである。簡潔に言うと、タグ比較機能により、同報
通信Bビットを用いて個々のシナプス・プロセッサ「要
素」またはすべてのプロセッサを選択することが可能に
なる。コマンド制御命令とデータ経路、ならびに拡張EX
U機能、データ経路レジスタ、コマンド経路ビットはプ
ログラマブルな記憶要素である。一時レジスタは、各要
素内で追加の記憶能力を提供し、セレクタ及びディスト
リビュータ制御構造は、記憶されたデータ/コマンド経
路とコマンドのソース・アドレス及び宛先アドレスとに
基づく内部要素経路の選択を制御する。この新しい形の
プロセッサ・セルは、シナプス・プロセッサ(SYP)と
呼び、対角線セルはDSYP、一般セル(Gセル)はGSYPと
呼ぶ。第3A図及び第3B図を検討して、ニューラル・ネッ
トワーク・モデルにおける完全な接続性をサポートする
SYPセルの本質的かつ新規なアーキテクチャ上の特徴を
簡潔に考察する。たとえば、各処理セル内での乗算を暗
示する、実行モードにあるニューラル・ネットワーク・
モデルでは、対角線セルは、その記憶された重みにその
記憶されたY値を掛け、乗算結果を関連する加算器ツリ
ーに供給する。対角線セルの逆通信モードでは、関連す
る加算器ツリーからY値を受け取って、Y値レジスタに
記憶する。またこの構造の「Gセル」は、重みとY値の
積を生成し、この積を関連する加算器ツリーに供給す
る。これらの「Gセル」の逆通信モードでは、下端の乗
数加算器ツリーから受け取ったYj値は、上端のY値レ
ジスタに記憶され、同様に上端の乗数加算器ツリーから
受け取ったYi値は、下端のY値レジスタに記憶され
る。このY値記憶の切替えは、完全な接続性をサポート
する本質的特徴である。拡張されたセル(第4A図及び第
4B図)では、この経路切替えはプログラマブルであり、
そのために、処理のためのさらに別の独特のアーキテク
チャ上の特徴が可能になる。シナプス・プロセッサのプ
ログラマブル性は、逆通信モードにある関連する加算器
ツリーからシナプス・プロセッサCMDレジスタで受け取
ったコマンドまたは命令を介して得られる。命令を受け
取ると、各SYP要素は、その命令で指定される操作を実
行する。命令のタイプには、データ及びコマンド経路命
令、算術命令、及び論理命令がある。各SYPは、ソース
経路と宛先経路及びEXU機能を指定する、各処理要素用
のコマンド・レジスタを含む。DSYPは、1つのコマンド
・レジスタを含み、GSYPは2つのコマンド・レジスタを
含む。ここで、好ましい重み/Y値乗算構造については第
3図を、このシナプス・プロセッサ・アーキテクチャの
例については第4図を参照されたい。
第5図を参照して通信加算器ツリーの機能("T−SNA
P"参照)について考察する。象徴的加算器ツリーが第5
図の左側に示され、各段の加算器は文字Aで表されてい
る。パイプライン・ラッチは、わかりやすくするために
省略した。使用される通信加算器ツリー構造のより詳細
な表現は第5図の右側に示されている。3つの加算器要
素が、2段パイプライン式ツリー配置で示されている。
加算器要素は、その出力上のブロックである1つのスイ
ッチ1(SW1)、及び加算器をバイパスするブロックで
ある2つのスイッチ2(SW2)をもつ。通信加算器ツリ
ーは、2つのモード、すなわち順方向加算モード及び逆
通信モード(バイパス・モードともいう)のうちの1つ
に置くことができる。ツリーのすべてのノードが同じ関
数を提供することを保証するために、各加算器要素で共
通の制御信号が使用される。ただし、一般的には、ツリ
ー処理ノードは拡張機能能力のものでよく、各ツリー・
ノード内に別々の制御機構を設けることによって処理ノ
ードの制御をより柔軟にすることができる。別々の制御
線の使用、またはツリー処理ノードへのタグ付けされた
コマンドの使用は、ツリーの処理能力を拡張する機構の
2つの例である。ツリー・ノード機能ユニットのより拡
張された機能は、機能の定義によって必要とされる追加
の記憶要素を含むことができる。この説明では、通信加
算器ツリー処理ノードはすべて、中心制御点からイネー
ブル/ディスエーブルされる共通のツリー制御信号を利
用して、その入力データに対して同じ機能、すなわち加
算またはバイパス通信を提供する。ツリー制御信号によ
って指定される機能の1つは加算器バイパスである。ス
イッチSW1とSW2はともにオン/オフ制御機構をもち、
「オフ」状態にあるときはスイッチを開すなわち高イン
ピーダンス状態に保ち、「オン」状態にあるときは加算
器をバイパスして低インピーダンス経路を通る。SW1が
イネーブルされたとき、SW2はディスエーブルされ、逆
も同様である。こうして、加算器ツリーは、たとえばSW
1がオン、SW2がオフの1方向で加算機能を提供すること
ができ、またSW1がオフ、SW2がオンの加算器バイパス・
モードでは本質的に通信経路として機能する。2−1加
算器などの2−1機能要素を使用する加算器ツリーは、
log2N個の段を必要とする。また、すべて同じ要素タイ
プのまたは組み合わせた、3−1、4−1、...、N−
1加算器などの3−1、4−1、...、N−1機能要素
及びそのバイパス・スイッチを用いて、順方向加算器及
び通信経路機能を実施して、指定された関数を生成する
ことができる。通信加算器(第5図)はその論理関数を
表すことに留意されたい。というのは、たとえば、使用
する技術に応じて、「オフ」が高インピーダンス状態に
等しいSW1の機能を、各加算器要素の最終内部段で必要
とされるゲート装置内に組み込むことができ、それによ
って加算機能への遅延を増大させないからである。ま
た、別々の通信ツリー経路を設け、それによってたとえ
ば加算機能の進行中に通信を行なうことができる。
4ニューロンの例を第6図に示す。これは、通信加算
器ツリーとシグモイド生成機構を接続して、汎用学習機
械(GPLM)に使用される修正SPA構造の全体像を提供
し、加算器ツリーの上端−下端結合を象徴的に示すこと
ができる。第6図で、シグモイド生成機構SIGは、式2
及び3で記述される関数を提供し、Y導関数生成機構SI
G′は式12で記述される関数を提供する。ネットワーク
の外部入力Exiは、最終加算器段に供給されてからシグ
モイド生成機構に供給される。学習プロセッサは、シナ
プス・プロセッサのアレイの中心制御点であり、ホスト
・コンピュータとインターフェースする。ホスト・コン
ピュータは、モデル化されたネットワークの結合重み、
ニューロンY値、Y導関数値、「教師」値、及びトレー
ス値を格納する学習プロセッサの内部記憶装置にアクセ
スできる。学習プロセッサがもついくつかの機能は以下
の通りである。
1.すべてのシナプス・プロセッサの初期設定 2.GPLMの始動 3.GPLMの停止 ・モデル化されたネットワークの出力の、所望出力との
比較による、収束検査 ・ホスト指定のR更新サイクルが完了した。
4.通信加算器ツリーの制御 5.シナプス・プロセッサ命令の発行 6.多層ネットワークのシーケンス制御 7.シナプス・プロセッサ・データの発行 8.学習アルゴリズムにおけるすべてのδiの計算 ニューロン入力と関連するシナプス・プロセッサ・レ
ジスタは、LSSD走査のためにシリアル・デイジー・チェ
ーン方式で互いに接続されている("Eichelberger 77"
参照)。LSSD走査は、テスト及びレジスタの初期設定を
サポートする。各ニューロンは、実施技術に応じて1つ
または複数の走査ストリングをもつことができる。たと
えば、各ニューロンごとにただ1つの重みレジスタを含
む1つの独立の走査経路を設けて、学習プロセッサとイ
ンターフェースするN個の重みレジスタ走査経路を得る
ことができる。学習プロセッサは、走査経路を介して重
みレジスタを初期設定し、学習モードでの重み更新はGP
LM構造内で並列に実行される。必要ならば、加算器ツリ
ー構造を介してY値を逆通信することによって、Y値が
初期設定される。ニューロン3に対するニューラル計算
で必要な要素の記憶の例を、ここに記述し、第6図に強
調して示す。
3=F(W3.11+W3.22+W3,33+W3.44) 第6図は、シナプス・プロセッサ・アーキテクチャを
もつ4ニューロン汎用学習機械を示している。各ニュー
ロン出力Yiは、学習プロセッサに接続され、学習プロ
セッサは、加算器ツリーの逆通信経路を介してYiニュ
ーロンのシナプス・プロセッサに命令を発行する。特定
のシナプス・プロセッサ要素とグループ・シナプス・プ
ロセッサの制御は、すべての通信にタグ・ビットと同報
通信"B"ビットを追加すること、及び各シナプス・プロ
セッサ内のタグ及び"B"ビット比較機能によって得るこ
とができる。第7図に、命令及びデータのフォーマット
を示す。"B"ビットは、フィールド内の第1ビットとし
て追加され、B=1の場合は同報通信コマンド/データ
を示し、B=0の場合はタグ付きコマンド/データを示
す。同報通信メッセージ/データは、TAGと独立な特定
のYiニューロンにリンクされたN個のすべてのシナプ
ス・プロセッサに行く。TAGフィールドは、少なくともl
og2Nビットの長さでなければならず、あるニューロン
に属するすべてのシナプス・プロセッサの識別を可能に
する。受け取ったタグは、各シナプス処理要素内に記憶
されたタグとビットごとに比較され、最終タグ・ビット
の比較が完了した後は、後続のコマンド/データが特定
のシナプス・プロセッサ要素によって受け取られるかど
うかが既知となる。タグが一致すると、コマンドまたは
データが受け取られ、一致しないとコマンド/データの
受取りが妨げられる。また、エラー処理のために、第7
図に示すように、Pで表されるパリティ・ビットまたは
エラー訂正ビットをタグ・フィールドに含めることもで
きる。
また逆通信されたコマンドまたはデータは、ビット・
ストリングがデータなのかそれともコマンドなのかを示
す単一のビット(CMD)、特別の自動実行モードを示すA
UTOビット、及びエラー訂正/検出ビット(ECC)を含
む。コマンド・ビットの長さ及びデータ・ビットの長さ
は等しいと仮定されている。表1はシナプス・プロセッ
サ命令セットを含む。
一例として、ホップフィールド・ニューラル・ネット
ワーク・モデル("Hopfield 84"参照)を利用すると、
ネットワーク操作のために自動モードを指定することが
できる。この場合、次のネットワーク・サイクルを開始
するために各ネットワーク実行サイクル後にMPY命令を
繰り返し送ることを必要とせず、新しく計算されたY値
を受け取った後に、自動モードで次の更新サイクルが自
動的に開始することになる。この自動モードは、所望の
コマンド内のAUTOビットを"1"にセットすることによっ
て開始される。たとえば、ホップフィールド・ネットワ
ーク・モデルで使用するMPYは、シナプス・プロセッサ
内で自動モード・フラグをセットする。この最初の操作
は、AUTOビットが"1"にセットされた命令の受け取りに
よって開始される。新しい更新済みデータを受け取る度
にこの命令が繰り返され、NOP命令の受け取りなど新し
いコマンドを受け取った時に処理が停止する。たとえば
MPYAのように、大文字のAが命令ニーモニックに追加さ
れると、自動ビットを"1"にセットすべきことを指示す
る。
ソース・アドレス及び宛先アドレスは、コマンド・レ
ジスタに対する相対なものである。この相対的アドレス
指定を第4B図に示す。図では上端のコマンド・レジスタ
CMD TREGの相対アドレスが、レジスタ・ブロックの右に
ある欄に示され、下端のコマンド・レジスタCMD BREGの
相対アドレスはレジスタ・ブロックの左にある欄に示さ
れている。たとえば、下端のコマンド・レジスタR2は上
端のコマンド・レジスタR5と同じであることに留意され
たい。加算器ツリーから受け取ったビット・ストリング
は、それがコマンドである場合、直列化されて、各Gセ
ル内の2個のCMDレジスタのうちの1個、及び対角線セ
ルの単一CMDレジスタに入れられる。一方、加算器ツリ
ーから受け取ったデータ・ビット・ストリングは、直列
化されて、Gセル内で使用可能な他の6個のレジスタの
うちの1個、及び対角線セル内で使用可能な他の3個の
レジスタのうちの1個に入れられる。DSYPでは、R4ない
しR6及びCR2のソース・アドレスまたは宛先アドレスは
以下のようにマップされる: ・R4→R3 ・R5→R2 ・R6→R1 ・CR2→CR1 たとえば、ソース・アドレスまたは宛先アドレスが3
ビットと仮定する。GSYPに3ビットすべてを使用させ、
DSYPには2つの最下位ビットだけを使用させることによ
って、適切なマッピングを行なうことができる。
・000→CR1 ・001→R1 ・010→R2 ・011→R3 ・100→CR2 ・101→R6 ・110→R5 ・111→R4 宛先レジスタ経路は、PATH命令によって指定されたま
まとなり、データ経路レジスタまたはコマンド経路ビッ
ト・レジスタに記憶される。異なる経路を希望する場合
は、PATHコマンドを再発行しなければならない。コマン
ドが指定されない場合、省略時のレジスタ経路は"T−SN
AP"に記述されているようになる。すべてのシナプス・
プロセッサ・データ・レジスタは、各データ・レジスタ
内に条件付き実行ビットがあるために、長さ(D+1)
ビットである。命令及びデータのフォーマットを示した
第7図を参照のこと。CEBがある命令の宛先レジスタ内
で"0"にセットされている場合、そのコマンドはNOP命令
として扱われる、すなわち宛先レジスタの内容は変更さ
れず、"0"が加算器ツリーに送られる。CEBが"0"にセッ
トされている場合は、レジスタの内容を変更することが
できる。たとえば、このビットを重みレジスタ上で使用
して、結合の有無を識別することができる。というの
は、後で提示するボルツマン様機械の例に見られるよう
に、0の重み値は必ずしもこれを実施するのに十分では
ないからである。加算器ツリーが宛先点でない場合、あ
るいはNOP状況が発生している場合は、必ず”ゼロ”が
加算器ツリーに送られる。CEBは、初期設定時にチップ
の走査機能または経路コマンドを用いてセットすること
ができる。
第1表は、本発明の好ましい命令セット機能を列挙す
る。
第1表のように、PATHコマンドは、加算器ツリー中を
逆通信される情報用のシナプス・プロセッサ内部のデー
タ及びコマンド経路をセットアップし、この経路は、そ
の経路を変更する新しいPATHコマンドを受け取らない限
り、同じままとなる。たとえば、GPLM上のホップフィー
ルド・ネットワーク・モデルでは、省略時の経路が以前
の処理のために変更されていた場合、逆通信モードで、
上端の加算器ツリーがその受け取ったY値を下端のY値
レジスタに結合し、下端加算器ツリーがその受け取った
Y値を上端のY値レジスタに結合することができるよう
になると、PATHコマンドが発行されることになる。ホッ
プフィールド・モデルでは、この経路コマンドは、固定
重み実行モードを仮定すると、ネットワーク実行中ずっ
と有効なままとなる。また、PATHコマンドは、次のコマ
ンドに対する経路の指定を可能にする。これは、ニュー
ロンが、2つの独特なモードで動作できるので、興味深
い新しい機能を意味する。YINMODEと呼ばれる第1のモ
ードでは、すべてのニューロンについて、下端の加算器
ツリーから受け取ったコマンドはCMD BREG(CR1)に送
られ、上端の加算器ツリーから受け取ったコマンドはCM
D TREG(CR1)に送られる。この場合、YINMODEでは、す
べてのニューロン入力SYPがコマンド・フィールドで指
定された通りに機能する。こうして、各ニューロンを、
そのニューロンへのすべての入力に共通な、異なる入力
シナプス処理機能で指定することができる。たとえば、
ニューロン8へのすべての入力は、重みレジスタ値とニ
ューロンY値の乗算によって指定でき、ニューロン7へ
のすべての入力は、一時レジスタ値とニューロンY値の
乗算によって指定できる。すべてのニューロン通信加算
器ツリーは互いに独立なので、異なるニューロンではYI
NMODEで各ニューロン入力機能の実行回数が異なること
があり得るが、このような場合、加算結果が異なる時に
発生し、そのため、処理しなければ学習プロセッサで同
期の問題が発生する可能性があることに留意されたい。
YINMODEを使って、処理すべきニューロンを非同期的に
選択することができる。YOUTMODEと呼ばれる第2のモー
ドでは、すべてのニューロンについて、下端の加算器ツ
リーから受け取ったコマンドは、CMD TREG(CR2)に送
られ、上端の加算器ツリーから受け取ったコマンドは、
CMD BREG(CR2)に送られる。この場合、YOUTMODEで
は、すべてのニューロンY値出力は、その入力宛先SYP
で適用されるのと同じシナプス関数をもつ。こうして、
各ニューロンはその入力SYPで複数の関数をもつことが
できる。たとえば、すべてのY8宛先SYPは、重みレジス
タ値とニューロンY値の乗算によって指定でき、すべて
のY7宛先SYPは、一時レジスタ値とニューロンY値の乗
算によって指定できる。1つのニューロン入力で指定さ
れたすべての関数は、それらの関数が異なっていても同
じ長さの時間で実行しなければならない。一般的に、YI
NMODEとYOUTMODEは、争奪が発生する可能性があるの
で、単一のネットワーク構造内で相互に交換できな
い。"T−SNAP"におけるTSNAPの最初の記載では、これら
のニューロンは、GPLMにおけるYOUTMODEに対応する固定
動作モードで機能し、すべてのニューロンは同じ関数に
よって指定された。入出力エンコーダ問題及びボルツマ
ン様機械の例では、YINMODEを利用する。ボルツマン様
機械の例は、この説明で提示する後方伝播の例の後に挙
げる。
多くの命令は、個々のシナプス・プロセッサにとって
局所である宛先を指定する。この局所処理は、正しく処
理しない場合、同期の問題を発生し得る。GPLM構造全体
に同期機構を拡散させる代わりに、同期の問題が学習プ
ロセッサのニューロン出力点に局在することになる。シ
ナプス・プロセッサからは局所処理完了の通知は生成さ
れない。そうではなくて、操作の安全を保証するため
に、ニューロン出力点に固定されたハードウェア機構が
設けられる。また、この問題をシナプス・プロセッサ位
置にある待ち行列を使って「解決する」ことは望ましく
ない。というのは、そうすると、シナプス・プロセッサ
のサイズが増大し、単一のチップ上に配置できるその数
が制限されるからである。そうせずに、命令発行点で問
題を解決し、すべての危険を回避する。同じシナプス・
プロセッサへのどの局所処理コマンドも、その同じシナ
プス・プロセッサへの次のコマンドから指定されたシナ
プス・プロセッサ命令の実行時間だけ分離しなければな
らない。たとえば、MPYコマンドを完了するのに2Lクロ
ックを要する乗算は、第2のコマンドが送られる前に完
了しなければならない。こうする必要があるのは、コマ
ンド・バッファ・レジスタを必要としないためである。
というのは、各コマンドは、指令された機能の動作中、
シナプス・プロセッサ内で一定のままでなければならな
いからである。非局所命令、すなわち、宛先が加算ツリ
ーである命令は、収束したツリー結果が学習プロセッサ
に届いたとき、動作完了の通知を提供する。非局所命令
では、学習プロセッサは、結果を受け取るまで待ってか
ら、新しい命令をそのツリーに接続されたシナプス・プ
ロセッサに送る。次に、学習プロセッサ内の各ニューロ
ン出力点を同期機構でセットアップして、各シナプスに
命令を最大速度で安全に発行することができる。
最後に、ここに記載した命令セットを使用してプログ
ラム内で宛先争奪が起こらないようにするために、GPLM
コンパイラが必要になる。
後方伝播学習の例 GPLM構造上で後方伝播がどのように使用されるかを実
証するために入出力エンコーダ問題を使用する。第2表
は、入力−出力パターンのコード化問題を示す。"Rumel
hart 86"を参照のこと。
この問題に使用するネットワーク構造を第8図に示
す。第8図は、入出力コード化問題のためのニューラル
・ネットワークを図示している。すべてのニューロン出
力が学習プロセッサに使用可能なので、GPLM構造上にマ
ップされるとき、多層ネットワークにおける隠れユニッ
トのようなものはない。多層ネットワークは、重みレジ
スタの条件付き実行ビットが0にセットされることによ
って未使用の接続経路がゼロの重み値に保たれた、完全
に結合されたネットワーク構造上にマップされる。11ニ
ューロンGPLM構造を必要とする入出力コード化問題では
11個のニューロンが使用される。入出力エンコーダ問題
は、11ニューロンGPLM構造で使用可能なすべての可能な
結合を必要としない。たとえば、ニューロン9に関する
入出力エンコーダ・ネットワーク方程式は次のようにな
る。
9=F(W9.44+W9.55+W9.66+W9.77) 第9図は、一般の11ニューロンGPLMを、完全に結合さ
れた11ニューロン構造の各ニューロンのコマンド、重
み、Y値、及び一時レジスタ値と共に示す。学習プロセ
ッサ、シグモイド、及び導関数ブロックはわかりやすい
ように省略した。必要に応じて、加算器段遅延と等価
な、遅延ブロックを伴うシーリング(log2N)加算器段
が使用される。シーリング関数は、オペランド値の次に
大きな整数をとる。すなわち、シーリング(log211=3.
459...)=4である。
実行モード中、Y値は層ごとに計算される。すなわ
ち、層1が最初に計算され、そのY値結果が層2のため
に使用され、以下最後の層までこれを繰り返す。ニュー
ロンのK個の層がすべて処理された後、ネットワークは
学習モードに置かれる。出力ニューロンは、出力層から
誤差信号を計算し、次いで誤差信号値をツリーを介して
シナプス処理セルに逆通信する。誤差信号の後方伝播
は、出力層から開始し、入力層に向かって次々に層ごと
に実行される。様々なシナプス・プロセッサ内で適切な
命令を実行することによって、後方伝播アルゴリズムを
実行することができる。
順序通り並べられた手順を用いる詳細な例で、GPLM上
にマップされたとき、入出力エンコーダ学習問題が後方
伝播アルゴリズムによってどのように実施されるかを説
明する。
あるパターンp(一般に、肩付き文字pはわかりやす
いように省略する)について、GPLMニューロンコンピュ
ータ内で以下に箇条書きにする手順に従う。「無結合」
重みはわかりやすくするために省略する。コマンド・レ
ジスタに対するレジスタの相対位置は、第9図に示され
ている。
1.GPLMが、第10図に示すように、重みレジスタのCEBビ
ットが"1"にセットされている、重み値の初期セット内
を走査することによって初期設定される。その他の重み
値及びすべてのY値レジスタはゼロ値で走査される。
2.初期設定後GPLMが実行モードに置かれ、入力パターン
(EX1及びEX2)が加えられ、省略時経路が一般シナプス
・プロセッサを通るものとして設定される。具体的に
は、上端のADDツリーから受け取ったコマンドは下端の
コマンド・レジスタCR2に行き、下端のADDツリーから受
け取ったコマンドは上端のコマンド・レジスタCR2に行
く。上端のADDツリーから受け取ったデータはR5Yiレジ
スタに行き、下端のADDツリーから受け取ったデータはR
5Yjレジスタに行く。(相対アドレス指定を仮定す
る。) 3.ニューロン1、2、...、11がMPYA R1*R2→ADD TREE
を発行する。(ADDツリーが加算用に指定される)。ネ
ットワーク実行の各層について乗算命令を再発行する必
要なしに性能を向上させるために自動モードが使用され
る。GPLM構造内のY値レジスタは最初0なので、すべて
の重み×Y値は積0を生じ、したがって加算されると0
の加算値を生ずる。
4.ニューロンの第1層がGPLM構造上で実行されて、第1
層ニューロン出力及びその導関数を生成する(第10
図)。(学習プロセッサは、他のニューロン出力値、す
なわちY3、Y4、...、Y11を無視する。) ・Y1=F(Ex1) ・Y2=F(Ex2) ・Dr1=Y1(1−Y1) ・Dr2=Y2(1−Y2) 5.第1層ニューロン出力が、GPLMにフィードバックさ
れ、ニューロンの第2層が実行されて、ニューロン出力
の第2層及びその導関数を生成する(第11図)。(ニュ
ーロン3だけは、データなしとして応答する。あるい
は、他のニューロンではコマンドは逆通信され、ニュー
ロン3だけは有効重み、重みレジスタCEB=1、及びY
値の積をもつ。) ・Y1及びY2を逆通信する ・Y3=F(W3.11+W3.22) ・Dr3=Y3(1−Y3) 6.すべての層が実行されてネットワーク出力及びそれら
の導関数が得られるまで上記のプロセスが繰り返される
(第12図及び第13図)。
・Y3を逆通信する ・Y4=F(W4.33) ・Y5=F(W5.33) ・Y6=F(W6.33) ・Y7=F(W7.33) ・Dr4=Y4(1−Y4) ・Dr5=Y5(1−Y5) ・Dr6=Y6(1−Y6) ・Dr7=Y7(1−Y7) ・Y4、Y5、Y6、及びY7を逆通信する ・Y8=F(W8.44+W8.55+W8.66+W
8.77) ・Y9=F(W9.44+W9.55+W9.66+W
9.77) ・Y10=F(W10.44+W10.55+W10.66+W
10.77) ・Y11=F(W11.44+W11.55+W11.66+W
11.77) ・Dr8=Y8(1−Y8) ・Dr9=Y9(1−Y9) ・Dr10=Y10(1−Y10) ・Dr11=Y11(1−Y11) 7.11個のニューロン値及びその導関数がすべて計算さ
れ、Y値及びY導関数アレイに入れられた後、GPLMは学
習モードに置かれる。
8.学習プロセッサが、最小指定誤差に収束するかどうか
iを検査する。到達している場合、パターンpについ
ての学習プロセスを停止することができる。収束に達し
ていない場合は、パターンpについての学習が続行され
る。
・収束テストY8=|(t8‐Y8)|≦最小誤差 ・収束テストY9=|(t9‐Y9)|≦最小誤差 ・収束テストY10=|(t10‐Y10)|≦最小誤差 ・収束テストY11=|(t11‐Y11)|≦最小誤差 9.学習プロセッサは、出力ニューロンと前の層内のニュ
ーロンとの間の重みを更新する際に使用するために出力
ニューロンに関するδp iを計算する。
δp i=(tp i‐Yp i)Drp i ・δ8=E8=(t8‐Y8)Dr8 ・δ9=E9=(t9‐Y9)Dr9 ・δ10=E10=(t10‐Y10)Dr10 ・δ11=E11=(t11‐Y11)Dr11 10.データ経路が変更され、次に誤差信号が当該の各乗
数入力セル一時レジスタに逆通信される(第14図)。・
ニューロン1、2、...、11が、PATH R4を発行すること
によってデータ経路を変更する。PATH R4が発行される
と、上記のステップ3で発行されたMPYAによって指定さ
れる自動乗算モードが停止する。受け取り中のデータ
は、GSYP内の相対アドレスR4及びDSYP内のR3一時レジス
タに行く。コマンド経路は変更されないままとなる。
・E8、E9、E10、及びE11が、Y8、Y9、Y10、及びY11
ソース点から逆通信される。
11.誤差信号と適当な重みとを乗算するためのMPY命令を
発行する。積が加算されて、誤差求和合計ERp iを生成す
る。これは、次層後方重み修正プロセスで使用される
(第15図)。コマンド経路、すなわち上端のADDツリー
・コマンドから下端のコマンド・レジスタ(CR2)、及
び下端のADDツリー・コマンドから上端のコマンド・レ
ジスタ(CR2)への経路は変更されなかったので、誤差
信号は受け取ったコマンドに関する一時レジスタ・アド
レスR3内にある。
上式でm=M1+M2+...ML ・ニューロン8、9、10、及び11が、MPY R6*R3→ADD T
REEを発行する。下端のコマンドR6重みレジスタ(下端
のコマンドに関する重みレジスタ)のCEBビットが0に
等しいので、有効な積の和は、GSYPの上端ADDツリーを
介してのみ得られる。
・ER4=W8.48+W9.49+W10.410+W11.411 ・ER5=W8.58+W9.59+W10.510+W11.511 ・ER6=W8.68+W9.69+W10.610+W11.611 ・ER7=W8.78+W9.79+W10.710+W11.711 12.層L内の誤差信号が計算される。これは、新しく計
算された導関数に関する式21、式24、及び誤差求和方程
式25を使用して、Lより前の次の層(が存在する場合、
そこ)で使用される(第16図)。ニューロン3はPATH C
R1を通ってYINMODEに置かれ、次にニューロン3に乗算
コマンドが発行され、最後にニューロン3がPATH CR2を
通ってYOUTMODEに置かれ、GPLM構造内の他のニューロン
と一貫性をもつようになる。
δp i=Drp iERp i (26) ・δ4=E4=Dr4ER4 ・δ5=E5=Dr5ER5 ・δ6=E6=Dr6ER6 ・δ7=E7=Dr7ER7 ・E4、E5、E5、及びE7を当該の各乗数入力セルに逆通信
する。
・PATH CR1 ・ニューロン3がMPY R6*R4→ADD TREEを発行する。
・ER3=W4.34+W5.35+W6.36+W7.37 ・PATH CR2 13.層2について誤差信号(E3)が計算され、構造内に
逆通信される(第17図)。
δp i=Drp iERp i (26) ・δ3=E3=Dr3ER3 ・E3を当該の乗数入力セルに逆通信する。
・第1層内では重みを調整する必要がないので、ここで
後方伝播アルゴリズムを停止することができる。
14.このとき、ニューロンのΔWijは3つの命令ステッ
プで計算することができる。δi=Eiを代入すると、 ΔWij=ρYp jEi p (27) a.ステップ1−ニューロン1、2、...、11が、MPY R5*
R3→R4を発行する(第18図)。
・TEMPREG3.1=Y1E3 ・TEMPREG3.2=Y2E3 ・TEMPREG4.3=Y3E4 ・以下になるまで継続する ・TEMPREG11.7=Y7E11 b.ステップ2−ニューロン1、2、...、11が、MPY R4*
IMD→R4を発行する(第19図)。IMDは学習速度ρを含ん
でいる。
・ΔW3.1=ρTEMPREG3.1 ・ΔW3.2=ρTEMPREG3.2 ・ΔW4.3=ρTEMPREG4.3 ・以下になるまで継続する ・ΔW11.7=ρTEMPREG11.7 c.ステップ3−ニューロン1、2、...、11が、ADD R6
+R4→R6を発行する(新しい重み値がこれで計算され
た)(第20図)。新しい重み値はW′ijで示される。
新Wij=旧Wij+ΔWij すべてのニューロンについて
の式23 ・W′3.1=W3.1+ΔW3.1 ・W′3.2=W3.2+ΔW3.2 ・W′4.3=W4.3+ΔW4.3 ・以下になるまで継続する ・W′11.7=W11.7+ΔW11.7 15.新しい経路コマンドが、次の学習サイクルPATH R2に
備えて送られ、従って新しいY値が適切なレジスタに送
られる。
16.GPLMが実行モードに置かれ、調整された重みによっ
て出力パターンが教育パターンと最小指定誤差で一致す
るまで既存のパターンpが再び加えられる。最小指定誤
差に達するまで、GPLMは実行モードと学習モードに交互
に切り替わる。最小指定誤差に収束した後、新しいパタ
ーンを加え、すべての教育パターンが加えられるまでこ
のプロセスを繰り返すことができる。
フィードフォワード実行及び後方伝播の性能 実行の各種モードのステップを以下に示す。
実行モード: 第1層タイミング: MPYA命令発行:(L−1)+(log2N)δA MPYプラスADDツリー:δM+(log2N)δA+δA シグモイド遅延:δS 第2層タイミング: シグモイド遅延とオーバラップさせたY値の逆通信:
(log2N)δA MPYプラスADDツリー:δM+(log2N)δA+δAシグモ
イド遅延:δS これがK個の層すべてについて繰り返され、従って一般
にK個の層の場合、フィードフォワード実行遅延は下記
のようになる(各層は順次実行されることに留意された
い)。
(L−1)+K(δM+2(log2N)δA+δA+δS) 学習モード: 新しい定義は次のようになる。
・δEi=誤差信号計算遅延 ・δCT2=収束テスト遅延 ・δCMD/ND=(L−1)+(log2N)δAコマンド(CM
D)または別々のオーバーラップしないデータ(ND)を
通信する際の遅延 ・δADD=LδA+1 ・データ・ワード及びコマンド・ワードの長さLビット 入出力エンコーダ・ニューラル・ネットワークと同
様、第1層上に計算する必要のある重み付けされた入力
がなく、かつすべてのY値導関数が利用できるものと仮
定すると、 セットアップ: 収束テスト及びPATHコマンド:δCT+δCMD 第1後方伝播: 誤差信号を計算し、計算された誤差信号を逆通信する: δEi+δND MPY及び誤差信号加算: δCMD+δM+(log2N)δA 第2後方伝播: 誤差信号を計算し、PATHを発行し、計算された誤差信
号:δEi+δNDを逆通信し、PATHを発行する。
MPY及び誤差信号加算:δCMD+δM+(log2N)δAこれ
を、K−2個の類似の後方伝播について繰り返し、従っ
て一般にK個の層の場合、(K−2)(δEi+δND+δ
CMD+δM+2(log2N)δA) 最終後方伝播は前進加算を必要とせず、従って: δEi+δND 最終重み更新は、3個の局所コマンド、すなわち2個の
MPYと1個のADDからなる3つのステップで実行される: 3δCMD+2δM+δADD δCMDとδNDに代入し整理すると、一般にK個の層の場
合の学習モード・タイミング遅延が得られる: δCT+δCMD+(K−2)(δEi+δND+δCMD+δM
2(log2N)δA)+δEi+δND+3δCMD+2δM+δ
ADD δAが1時間単位に等しいと仮定すると、学習モード・
タイミング遅延は次式で与えられる: δCT+(K−1)δEi+KδM+2(K+1)L+(4K
−3)(log2N)−2K Nのサイズが増加するとき、学習遅延はlog2N及び収束
テスト時間及び誤差信号計算遅延時間という小さな量だ
け増加する。たとえば、N=128ニューロン、L=52ビ
ットと仮定すると、学習モード・タイミング遅延は次の
ようになる: δCT(N=128)+(K−1)δEi(N=128)+KδM+130K+8
3 N=1024及びL=58ビットの場合、学習時間は次のよう
になる: δCT(N=1024)+(K−1)δEi(N=1024)+KδM+154K
+86 ボルツマン様機械の学習の例 以下の考察は、ボルツマン機械("Ackley 85"参照)
の紹介を意図したものではなく、ボルツマン・アルゴリ
ズムが("Ackley 85"、"Rumelhart 86"、及び"McClella
nd 88"から)GPLM上にどのようにマップできるかを示す
ものである。
ボルツマン機械は、元のホップフィールド・ネットワ
ーク("Hopfield 82")の場合と全く同様に、完全に結
合された2進しきい値ニューラル・ユニットのネットワ
ークから構成される。ホップフィールドが使用した決定
論的更新規則と組み合わせたランダム及び非同期ニュー
ロン選択の代わりに、非同期的に選択されたニューロン
・ユニットに対しては確率論的更新規則が使用される。
さらに、ニューロンのホップフィールド単一層の代わり
に、入力ユニット、隠れユニット、及び出力ユニットを
もつ多層機械としてボルツマン機械を指定することがで
きる。ただし、入力ユニット及び出力ユニットは「クラ
ンプ」、すなわち所望の値に設定できる。結合重みを修
正するために、すべてのニューロン出力を監視し、それ
らの活動化値の統計を記録しなければならない。という
のは、結合された2つのユニット間の結合重みの変化
は、ネットワークが自由実行モードと「クランプ」モー
ドの双方で「平衡」を達成した後で、この両方のモード
で同時にこれらの結合されたユニットが「オン」となる
確率の差に比例するからである。ボルツマン機械では温
度パラメータTの使用を含むシミュレートされたアニー
リングが重要な役割を演じ、温度の制御によって「平
衡」が得られる。"Ackley 85"に記述された入出力エン
コーダ問題では、使用された「平衡」手順は「...すべ
ての未クランプ・ユニットが等しい確率でランダムに
「オン」または「オフ」にされ(温度を無限に上げるこ
とに対応する)、次いでネットワークが以下の時間の
間、以下の温度で(2@20、2@15、2@12、及び4@
10)走行させられる。このアニーリング・スケジュール
の後、ネットワークは平衡に達したと仮定され、10時間
単位の間、10種の温度で統計を収集する。(注)1時間
単位は、各ユニットに平均して1回その状態を変化させ
る機会を与えるのに必要な時間と定義する。これは、n
個の未クランプ・ユニットがある場合、1時間間隔にn
回のランダム試行が行なわれ、その間にあるユニットが
その状態を変化させる機会を与えられることを意味す
る」というものであった。統計は、ユニット同士の結合
された対がどれだけ頻繁に「平衡」状態で一緒に「オ
ン」になるかに関するものである。
次にGPLM上でモデル化された入出力エンコーダ問題の
ボルツマン様機械による実施態様について説明する。ニ
ューロンのネットワークは3層であり、層1、層2、層
3内にそれぞれM1個、M2個、M3個のニューロンがあ
ると仮定する。層1と層3は、それぞれの層内で完全に
結合されているが、互いには結合されていない。その代
わりに、層1と層3は共に隠れ層2に完全に結合されて
いるが、隠れ層2内では隠れユニット同士は互いに結合
されていない。指示された結合の重みはすべて、最初、
0にセットされ、すべての有効結合重みについて重みCE
Bビットが"1"にセットされる。各ニューロンは2進型
で"0"または"1"の活動状態をとる。第iニューロンにつ
いての「オン」/「オフ」エネルギ差ΔEiは次のよう
に定義される。
指定された結合重みをもつNニューロン入出力エンコ
ーダ・ネットワークがGPLM上で初期設定され、教師とし
て機能できる既知の1組の入出力パターンが存在すると
仮定すると、サイクルを反復可能にするためにランダム
「シード」が指定されている場合、 1.入力ユニット及び出力ユニットを入出力エンコーダ・
パターンの1つに「クランプ」することによって、ネッ
トワーク更新サイクルを開始する。
2.GPLMでは、これは、ネットワーク入力Y値及びネット
ワーク出力Y値を当該の各シナプス・プロセッサに逆通
信し、上端のADDツリー値が下端のY値レジスタに、及
びその逆方向に行くように経路を切り替えることによっ
て達成される。隠れユニットについては「オン」または
「オフ」になる確率が等しいランダムY値を選択し、入
出力Y値と同様に逆通信する。
2.入力/出力ユニットがクランプされているとき、更新
すべき隠れユニット・ニューロンをランダムに選択す
る。
・学習プロセッサは、1とNの間で一様に分布する整数
乱数を発生できる乱数発生器を必要とする。
・選択されたニューロンにPATHコマンドを発行して、切
り替えが起こらないように、すなわち上端のADDツリー
・コマンドが上端コマンド・レジスタに、及び逆方向に
行くようにコマンド経路を変更する。(PATH CR1)(デ
ータ経路は変更されない。) ・MPY R1*R2→ADD TREEを選択されたニューロンに発行
する。
3.選択された第iニューロンの「オン」状態確率OSPを
決定する。
・シグモイド生成機構は、学習プロセッサからロード可
能なTパラメータ入力をもたなければならない。
4.OSPは、選択されたニューロンにMPY R1*R2→ADD TREE
命令が以前に発行されたことによる、選択されたニュー
ロンに関するシグモイド関数の出力である。
5・学習プロセッサは、選択されたニューロンの活動化
値Yを決定する。
IF(乱数≦OSPi)THEN Yi=1 ELSE Yi=0 6.新しく更新されたY値がネットワーク内で逆通信され
る。
7.統計的に有意なニューロン活動度を得るのに十分なサ
イクルが走行され、ネットワークがアニーリング・スケ
ジュールによって、すなわちパラメータTを変化させる
ことによって「平衡」に達するまで、ニューロン選択及
び更新プロセスを続ける。学習プロセッサは、結合され
たニューロンについて、結合されたユニットがどれほど
頻繁に同時に「オン」であったかを示す値を記録する。
8.走行すべきパターンがまだ他にある場合、次の入出力
エンコーダ・パターンを選択し、それをネットワーク上
で「クランプ」し、ステップ2から始めて、上で定義し
たようにネットワークを走行させる。ネットワーク上で
走行されたすべてのパターンに関する統計を取り続け
る。
9.すべてのパターンを走行した後、記録された統計値
は、1対の結合されたニューロンが共に「オン」であっ
た確率を表す。学習プロセッサは「クランプ」された統
計値のアレイを保持する。
10.ネットワークは「未クランプ」であり、すべてのニ
ューロン値はランダム化されて「オン」または「オフ」
である確率が等しくなり、ネットワークはアニーリング
・スケジュールに従って「平衡」に達することができ
る。
11.「クランプ」動作モードの場合と同じ回数のアニー
リングの間「オン」のユニットの対の統計が記録され
る。学習プロセッサは「未クランプ」統計のアレイを保
持する。
12.ネットワーク構造内で結合重みを更新するための2
つの方法は下記の通りである。
a.ΔWij=ρ(pij‐p′ij) b.pij>p′ijの場合 ΔWij=+固定重みステップ pij<p′ijの場合 ΔWij=−固定重みステップ ・上式で、pijは「クランプ」モード対i、jが同時に
「オン」となる平均確率、p′ijは自由走行動作モード
で対i、jが同時に「オン」となる平均確率である。
たとえば、上記の第1の重み更新法は、シナプス・プ
ロセッサYと一時レジスタ、及び以下のようなPASCAL様
擬似コード(括弧内は説明)に基づく手順を使用するこ
とによって達成できる。FORループは、N個のニューロ
ンにまたがるN個の並列操作に変換されることになる。
a.For i=1 to N(次の操作がN個のニューロンすべて
にわたって並列に実行される。) b.−For j=1 to Nシフト・レジスタ、Pijをニューロ
ンiのYレジスタ内に走査する(N個のニューロンにつ
いてN個の値が、並列に実行された1回の操作でYレジ
スタ内に走査される) c.−−For j=1 to Nシフト・レジスタ走査、P′ij
ニューロンiの一時レジスタ内に走査する(N個のニュ
ーロンについてN個の値が、並列に実行された1回の操
作で一時レジスタ内に走査される) d.−−−ADD R2+R3→R3,(Pij‐P′ij)→R3(N個
のADD命令がニューロンごとに1個ずつ並列に発行され
る。) e.−−−MPY R3*IMD1/2→R3,ΔWij→R3(N個のMPY命
令がニューロンごとに1個ずつ並列に発行される。) f.−−−ADD R1+R3→R1,W′ij→R1(N個のADD命令が
ニューロンごとに1個ずつ並列に発行される。) g.−−−END h.−END i.END 13.差pij‐p′ijが指定された最小誤差以下になるま
で上記のプロセスを繰り返す。
並列データ・アルゴリズム マトリックス乗算 積計算のニューロン入力和は、第21図に示すようなi
列及びj行のマトリックス乗算と見ることができる。ニ
ューロン入力マトリックスziは次のように定義され
る。
i=Y1i1+Y2i2+...+YNiN マトリックス演算としてのニューロン計算 ニューロン計算は第21図に示されている。これは、一
般のマトリックス乗算のサブセットである。第22図に示
すようなi列及びj行の2つのN×Nマトリックスを考
える。
一般のマトリックス乗算 第22図に一般のマトリックス乗算を示す。結果マトリ
ックスzの各結果第j行に対してYマトリックスの第j
行を逆通信することにより、Y値マトリックスの1行が
GPLMにロードされると仮定すると、結果マトリックスz
のN個の値が、PASCAL様擬似コードに基づいて下記のよ
うな一般形で並列に計算される。FORループは、N個の
ニューロンにまたがるN個の並列操作に変換される。
1.FOR i=1 to N 2.FOR k=1 to N 3.END FOR 4.END FOR 以下の手順に従う:(括弧内の遅延は、ADDツリー段
遅延δA=1を仮定する。) 1.Wマトリックスをロードする(1ニューロンにつきN
個のW値があり、N個のニューロンのN個のW値を並列
に走査するのに(NL)時間を要すると仮定する) 2.Y値を逆通信することによって最初のY行をロードす
る((L−1)+log2N) 3.MPYA R1*R2→ADD TREE(この場合、ADDツリーが求和
プロセスのために初期設定されている。)((L−1)
+log2N) 4.結果zマトリックスの第1行を計算する。Yレジスタ
及びWレジスタを乗算し、続いて加算器ツリーを乗算す
る(δM+log2N) 5.N個のz値を学習プロセッサに記憶する(δSTORE) 6.第2のY行を逆通信する((L−1)+log2N) 7.新しいY値を受け取ったとき、結果zマトリックスの
第2行を計算する。Yレジスタ及びWレジスタを乗算
し、続いて加算器ツリーを乗算する(δM+log2N) 8.N個のz値を学習プロセッサに記憶する(δSTORE) 9.最後まで行計算を続ける 10.第N番目のY行を逆通信する((L−1)+log
2N) 11.新しいY値を受け取ったとき、結果zマトリックス
の第N行を計算する。Yレジスタ及びWレジスタを乗算
し、続いて加算器ツリーを乗算する(δM+log2N) 12.結果zマトリックスの最終行を学習プロセッサに記
憶する(δSTORE) 13.終了 W値を走査し、記憶操作が次の行のY値の逆通信とオ
ーバーラップできると仮定することによって、Wマトリ
ックスを初期設定した後、N×N2計算の全処理時間は
次のようになる。
N×Nマトリックス乗算=(L−1)+log2N+N(δ
M(L−1)+2log2N)+δSTORE マトリックス加算及びブール演算 第22図に示したものと同じ形のマトリックスを仮定す
ると、YマトリックスとWマトリックスを共にGPLM構造
にロードすることができる。というのは、GPLM構造内に
はN2個の固有なYレジスタ及びWレジスタがあるから
である。Yレジスタ及びWレジスタ上の局所加算または
ブール演算は、GPLM構造内で実行することができ、結果
は一時レジスタに送られる。演算完了時に、元のYマト
リックス及びWマトリックスは、GPLM構造内にそのまま
残り、一時レジスタは結果マトリックスを含むようにな
る。結果は、走査出力し、あるいはシナプス・プロセッ
サ・セルから個別に読み出し、あるいは以後の操作(命
令の連鎖またはリンク)のために使用することができ
る。
以上、本発明の好ましい実施例について説明したが、
当業者ならこれらの論議を理解すれば、現在でも将来で
も下記の特許請求の範囲に含まれる様々な改良及び機能
強化をそれに加えるであろう。この特許請求の範囲は、
最初に開示した諸発明に対する適切な保護を維持するも
のと解釈すべきである。
フロントページの続き (72)発明者 デルガドーフライアズ、ホセ、グアダル ーペ アメリカ合衆国ニューヨーク州ヴェスタ ル、アパートメント11、プラザ・ドライ ブ431番地 (56)参考文献 Cognitive Science Vol.9 No.1 PP147−169 1985 D,H.Ackley,Geo ffrey E.Hinton and T.J.Sejnowski「A L earning Algorithm for Boltzmann Mach ines」 D.E. Rumelhart an d J.L.McClelland e ds. [Parallel Dist ributed Processing ]MIT Press 1986 CHAP TER8 D.E.Rumelhar t,G.E.Hinton and R.J.Williams‘Learn ing Internal Repre sentations by Erro r Propagation’

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】Nが1に等しいかまたは1よりも大きい整
    数であるとして、そのサブセットが、命令およびデータ
    を記憶する手段と、前記命令およびデータを記憶する手
    段に結合され、前記命令およびデータを受信する手段
    と、前記命令およびデータを記憶する手段に結合され、
    前記命令を実行する手段とを含む入力シナプス処理装置
    を含む複数のシナプス処理装置を含むNニューロン構造
    と、 前記Nニューロン構造が、前記シナプス処理装置の出力
    に結合された通信加算器ツリーと、通信加算器ツリーに
    結合され、ニューロン出力を発生するニューロン活動化
    関数ユニットとをさらに含み、 前記通信加算器ツリーがそれぞれ、前記命令、データお
    よび前記ニューロン出力を前記通信加算器ツリーを介し
    て前記入力シナプス処理装置に戻す手段を含み、 前記Nニューロン構造がN2個のシナプス処理装置を含
    み、各前記処理装置が本装置によってエミュレートすべ
    きNニューロン・ネットワーク内の結合重みと関連し、
    前記処理装置がN×Nマトリクスの形に配置され、その
    対角線について対称な位置にあるシナプス処理装置が一
    般セルを形成するように結合され、対角線上のシナプス
    処理装置が対角セルを形成するように結合され、 前記対角セルがそれぞれ、1つの前記シナプス処理装置
    を含み、前記マトリクスの対角線について折り返して対
    角線について対称な位置にあるセルを関連させることに
    より構成される折返しN×Nマトリクスの対角線上に位
    置する対角結合重みと関連し、前記一般セルがそれぞ
    れ、上端シナプス処理装置と下端シナプス処理装置とを
    含み、前記折返しN×Nマトリクスの対称結合重み(前
    記対角結合重み以外の結合重み)と関連し、 上端通信加算器ツリーから受信した命令を下端シナプス
    処理装置の命令記憶装置に送り、下端通信加算器ツリー
    から受信した命令を上端シナプス処理装置の命令記憶装
    置に送り、上端通信加算器ツリーから受信したデータを
    下端シナプス処理装置の指定されたデータ記憶装置に送
    り、下端通信加算器ツリーから受信したデータを上端シ
    ナプス処理装置の指定されたデータ記憶装置に送る手段
    とを含む、ニューラル・シナプス・プロセッサ・アーキ
    テクチャを有するコンピュータ・システム装置。
  2. 【請求項2】Nを1に等しいかまたは1よりも大きい整
    数として、そのサブセットが、命令およびデータを記憶
    する手段と、前記命令およびデータを記憶する手段に結
    合され、前記命令およびデータを受信する手段と、前記
    命令およびデータを記憶する手段に結合され、前記命令
    を実行する手段とを含む入力シナプス処理装置を含む複
    数のシナプス処理装置を含むNニューロン構造と、 前記Nニューロン構造が、前記シナプス処理装置の出力
    に結合された通信加算器ツリーと、通信加算器ツリーに
    結合され、ニューロン出力を発生するニューロン活動化
    関数ユニットとをさらに含み、 前記通信加算器ツリーがそれぞれ、前記命令、データお
    よび前記ニューロン出力を前記通信加算器ツリーを介し
    て前記入力シナプス処理装置に戻す手段を含み、 前記Nニューロン構造がN2個のシナプス処理装置を含
    み、各前記処理装置が本装置によってエミュレートすべ
    きNニューロン・ネットワーク内の結合重みと関連し、
    前記処理装置がN×Nマトリクスの形に配置され、その
    対角線について対称な位置にあるシナプス処理装置が一
    般セルを形成するように結合され、対角線上のシナプス
    処理装置が対角セルを形成するように結合され、 前記一般セルが、2つのシナプス処理装置に接続された
    2つの通信加算器ツリーを介して外部から受信した命令
    およびデータのパスを制御する共通の宛先経路制御機構
    を含む、ニューラル・シナプス・プロセッサ・アーキテ
    クチャを有するコンピュータ・システム装置。
  3. 【請求項3】Nを1に等しいかまたは1よりも大きい整
    数として、そのサブセットが、命令およびデータを記憶
    する手段と、前記命令およびデータを記憶する手段に結
    合され、前記命令およびデータを受信する手段と、前記
    命令およびデータを記憶する手段に結合され、前記命令
    を実行する手段とを含む入力シナプス処理装置を含む複
    数のシナプス処理装置を含むNニューロン構造と、 前記Nニューロン構造が、前記シナプス処理装置の出力
    に結合された通信加算器ツリーと、通信加算器ツリーに
    結合され、ニューロン出力を発生するニューロン活動化
    関数ユニットとをさらに含み、 前記通信加算器ツリーがそれぞれ、前記命令、データお
    よび前記ニューロン出力を前記通信加算器ツリーを介し
    て前記入力シナプス処理装置に戻す手段を含み、 前記Nニューロン構造がN2個のシナプス処理装置を含
    み、各前記処理装置が本装置によってエミュレートすべ
    きNニューロン・ネットワーク内の結合重みと関連し、
    前記処理装置がN×Nマトリクスの形に配置され、その
    対角線について対称な位置にあるシナプス処理装置が一
    般セルを形成するように結合され、対角線上のシナプス
    処理装置が対角セルを形成するように結合され、 前記対角セルおよび前記一般セルがそれぞれ、受信した
    命令によって活動化される動作の実行モード時に有効デ
    ータを受信した際に前に受信した命令を実行し、前記実
    行モードを活動化した後で命令を受信することによって
    実行モードを励起する手段を含む、ニューラル・シナプ
    ス・プロセッサ・アーキテクチャを有するコンピュータ
    ・システム装置。
  4. 【請求項4】シナプス・プロセッサの並列演算によって
    ニューラル・ネットワーク・デバイス上でマトリクス乗
    算を実施する方法であって、 a) シナプス・プロセッサ・アレイに第1のマトリク
    スのマトリクス値をロードするステップと、 b) 第2のマトリクスの第1の行マトリクス値を、第
    1の行マトリクス値を通信加算器ツリーを介して逆伝達
    することによって第2のシナプス・プロセッサ・アレイ
    にロードするステップと、 c) 乗算命令を発行し、合計演算のために通信加算器
    ツリーを初期設定するステップと、 d) 第1のマトリクスのマトリクス値に第2のマトリ
    クスの第1の行マトリクス値を掛け、次いで合計演算を
    実行することによって結果マトリクスの第1の行値を計
    算するステップと、 e) 結果マトリクスの値をプログラム式プロセッサ制
    御装置内に記憶するステップと、 f) もしあれば、第2のマトリクスの次の行マトリク
    ス値を通信加算器ツリーを介して逆伝達することによっ
    てロードするステップと、 g) ステップf)の次の行マトリクス値のローディン
    グを実施した場合、第1のマトリクスのマトリクス値に
    第2のマトリクスの次の行マトリクス値を掛け、次いで
    合計演算を実行することによって結果マトリクスの次の
    行値を計算するステップと、 h) ステップg)の次の行値の計算を実施した場合、
    結果マトリクスの次の行値をプログラム式プロセッサ制
    御装置内に記憶するステップと、 i) 結果マトリクスの最後の行を計算し、記憶するま
    で、ステップf)〜h)を繰り返すステップと、 を含む前記方法。
JP3510421A 1990-05-22 1991-05-17 学習機械シナプス・プロセッサ・システム装置 Expired - Fee Related JP2746350B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US526,866 1990-05-22
US07/526,866 US5065339A (en) 1990-05-22 1990-05-22 Orthogonal row-column neural processor
US68278691A 1991-04-08 1991-04-08
US682,786 1991-04-08

Publications (2)

Publication Number Publication Date
JPH04507026A JPH04507026A (ja) 1992-12-03
JP2746350B2 true JP2746350B2 (ja) 1998-05-06

Family

ID=27062243

Family Applications (4)

Application Number Title Priority Date Filing Date
JP3517778A Expired - Fee Related JP2663996B2 (ja) 1990-05-22 1991-05-17 ニューラル・ネットワーク用の仮想ニューロコンピュータ・アーキテクチュア
JP3510818A Expired - Lifetime JP2502867B2 (ja) 1990-05-22 1991-05-17 Plan―ピラミッド型学習ア―キテクチャ・ニュ―ロコンピュ―タ
JP3509437A Expired - Fee Related JP2663995B2 (ja) 1990-05-22 1991-05-17 スケーラブル・フロー仮想学習ニューロコンピュータ
JP3510421A Expired - Fee Related JP2746350B2 (ja) 1990-05-22 1991-05-17 学習機械シナプス・プロセッサ・システム装置

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP3517778A Expired - Fee Related JP2663996B2 (ja) 1990-05-22 1991-05-17 ニューラル・ネットワーク用の仮想ニューロコンピュータ・アーキテクチュア
JP3510818A Expired - Lifetime JP2502867B2 (ja) 1990-05-22 1991-05-17 Plan―ピラミッド型学習ア―キテクチャ・ニュ―ロコンピュ―タ
JP3509437A Expired - Fee Related JP2663995B2 (ja) 1990-05-22 1991-05-17 スケーラブル・フロー仮想学習ニューロコンピュータ

Country Status (4)

Country Link
US (3) US5509106A (ja)
EP (4) EP0486684A1 (ja)
JP (4) JP2663996B2 (ja)
WO (4) WO1991018349A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2647327B2 (ja) * 1992-04-06 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 大規模並列コンピューティング・システム装置
JP2572522B2 (ja) * 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
US5517667A (en) * 1993-06-14 1996-05-14 Motorola, Inc. Neural network that does not require repetitive training
WO1996008005A1 (en) * 1994-09-07 1996-03-14 Motorola Inc. System for recognizing spoken sounds from continuous speech and method of using same
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5659785A (en) * 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US5799134A (en) * 1995-03-13 1998-08-25 Industrial Technology Research Institute One dimensional systolic array architecture for neural network
US6023753A (en) * 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
JP3413213B2 (ja) * 1997-12-19 2003-06-03 ビーエイイー システムズ パブリック リミテッド カンパニー バイナリーコードコンバーター及びコンパレーター
US7254565B2 (en) * 2001-07-26 2007-08-07 International Business Machines Corporation Method and circuits to virtually increase the number of prototypes in artificial neural networks
JP3987782B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
GB2400201A (en) * 2003-04-05 2004-10-06 Hewlett Packard Development Co Network modelling its own response to a requested action
US8443169B2 (en) * 2005-03-28 2013-05-14 Gerald George Pechanek 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
CN111291873A (zh) * 2014-07-21 2020-06-16 徐志强 预制性突触的模拟方法及装置
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
CN105512724B (zh) * 2015-12-01 2017-05-10 中国科学院计算技术研究所 加法器装置、数据累加方法及数据处理装置
US11308383B2 (en) 2016-05-17 2022-04-19 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
KR102459854B1 (ko) * 2016-05-26 2022-10-27 삼성전자주식회사 심층 신경망용 가속기
CN107688853B (zh) * 2016-08-05 2020-01-10 中科寒武纪科技股份有限公司 一种用于执行神经网络运算的装置及方法
US10534607B2 (en) 2017-05-23 2020-01-14 Google Llc Accessing data in multi-dimensional tensors using adders
US9946539B1 (en) 2017-05-23 2018-04-17 Google Llc Accessing data in multi-dimensional tensors using adders
US10796198B2 (en) 2018-02-08 2020-10-06 Western Digital Technologies, Inc. Adjusting enhancement coefficients for neural network engine
US11164072B2 (en) * 2018-02-08 2021-11-02 Western Digital Technologies, Inc. Convolution engines for systolic neural network processor
US10853034B2 (en) 2018-03-30 2020-12-01 Intel Corporation Common factor mass multiplication circuitry
JP6902000B2 (ja) * 2018-07-10 2021-07-14 株式会社東芝 演算装置
EP4009183A1 (en) 2018-10-18 2022-06-08 Shanghai Cambricon Information Technology Co., Ltd Network-on-chip data processing method and device
CN113569798B (zh) * 2018-11-16 2024-05-24 北京市商汤科技开发有限公司 关键点检测方法及装置、电子设备和存储介质
CN109657788A (zh) * 2018-12-18 2019-04-19 北京中科寒武纪科技有限公司 数据处理方法、装置及相关产品
US11270763B2 (en) 2019-01-18 2022-03-08 Silicon Storage Technology, Inc. Neural network classifier using array of three-gate non-volatile memory cells
US11409352B2 (en) 2019-01-18 2022-08-09 Silicon Storage Technology, Inc. Power management for an analog neural memory in a deep learning artificial neural network
US11023559B2 (en) 2019-01-25 2021-06-01 Microsemi Soc Corp. Apparatus and method for combining analog neural net with FPGA routing in a monolithic integrated circuit
US10720217B1 (en) 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use
US10929058B2 (en) 2019-03-25 2021-02-23 Western Digital Technologies, Inc. Enhanced memory device architecture for machine learning
US11783176B2 (en) 2019-03-25 2023-10-10 Western Digital Technologies, Inc. Enhanced storage device memory architecture for machine learning
US11423979B2 (en) 2019-04-29 2022-08-23 Silicon Storage Technology, Inc. Decoding system and physical layout for analog neural memory in deep learning artificial neural network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796199A (en) * 1987-02-24 1989-01-03 Oregon Graduate Center Neural-model, information-handling architecture and method
US4858147A (en) * 1987-06-15 1989-08-15 Unisys Corporation Special purpose neurocomputer system for solving optimization problems
US5014235A (en) * 1987-12-15 1991-05-07 Steven G. Morton Convolution memory
FR2625347B1 (fr) * 1987-12-23 1990-05-04 Labo Electronique Physique Structure de reseau de neurones et circuit et arrangement de reseaux de neurones
US4953099A (en) * 1988-06-07 1990-08-28 Massachusetts Institute Of Technology Information discrimination cell
DE58906476D1 (de) * 1988-07-05 1994-02-03 Siemens Ag In integrierter Schaltungstechnik ausgeführtes digitales neuronales Netz.
GB2224139A (en) * 1988-10-24 1990-04-25 Philips Electronic Associated Digital data processing apparatus
FR2639461A1 (fr) * 1988-11-18 1990-05-25 Labo Electronique Physique Arrangement bidimensionnel de points memoire et structure de reseaux de neurones utilisant un tel arrangement
EP0377221B1 (en) * 1988-12-29 1996-11-20 Sharp Kabushiki Kaisha Neuro-computer
JPH02287670A (ja) * 1989-04-27 1990-11-27 Mitsubishi Electric Corp 半導体神経回路網
US5148514A (en) * 1989-05-15 1992-09-15 Mitsubishi Denki Kabushiki Kaisha Neural network integrated circuit device having self-organizing function
JP2517410B2 (ja) * 1989-05-15 1996-07-24 三菱電機株式会社 学習機能付集積回路装置
US5148515A (en) * 1990-05-22 1992-09-15 International Business Machines Corp. Scalable neural array processor and method
US5243688A (en) * 1990-05-22 1993-09-07 International Business Machines Corporation Virtual neurocomputer architectures for neural networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cognitive Science Vol.9 No.1 PP147−169 1985 D,H.Ackley,Geoffrey E.Hinton and T.J.Sejnowski「A Learning Algorithm for Boltzmann Machines」
D.E. Rumelhart and J.L.McClelland eds. [Parallel Distributed Processing]MIT Press 1986 CHAPTER8 D.E.Rumelhart,G.E.Hinton and R.J.Williams‘Learning Internal Representations by Error Propagation’

Also Published As

Publication number Publication date
EP0484506A1 (en) 1992-05-13
EP0486635A1 (en) 1992-05-27
EP0486684A1 (en) 1992-05-27
JPH04507027A (ja) 1992-12-03
JP2502867B2 (ja) 1996-05-29
JP2663996B2 (ja) 1997-10-15
EP0484522A1 (en) 1992-05-13
EP0484522A4 (ja) 1994-03-23
WO1991018349A1 (en) 1991-11-28
EP0486684A4 (ja) 1994-03-23
EP0484506A4 (ja) 1994-03-23
WO1991018351A1 (en) 1991-11-28
EP0486635A4 (ja) 1994-03-23
JPH05500429A (ja) 1993-01-28
WO1992001257A1 (en) 1992-01-23
US5542026A (en) 1996-07-30
WO1991018350A1 (en) 1991-11-28
US5509106A (en) 1996-04-16
US5617512A (en) 1997-04-01
JP2663995B2 (ja) 1997-10-15
JPH04505824A (ja) 1992-10-08
JPH04507026A (ja) 1992-12-03

Similar Documents

Publication Publication Date Title
JP2746350B2 (ja) 学習機械シナプス・プロセッサ・システム装置
US5483620A (en) Learning machine synapse processor system apparatus
US5517596A (en) Learning machine synapse processor system apparatus
US5329611A (en) Scalable flow virtual learning neurocomputer
US5784632A (en) Parallel diagonal-fold array processor
CN110674933A (zh) 用于提高神经网络推断准确度的流水线技术
US5604840A (en) Information processing apparatus
US5640586A (en) Scalable parallel group partitioned diagonal-fold switching tree computing apparatus
JPH02193251A (ja) エラー後方伝ぱん法と神経網システム
WO1994001823A1 (en) A tree-like perceptron and a method for parallel distributed training of such perceptrons
US5243688A (en) Virtual neurocomputer architectures for neural networks
Chinn et al. Systolic array implementations of neural nets on the MasPar MP-1 massively parallel processor
Kung et al. Digital VLSI architectures for neural networks
JP2022541144A (ja) ハードウェア・アクセラレータとインターフェースするための方法
JPH05346914A (ja) ニューロプロセッサ
Shams et al. Implementing regularly structured neural networks on the DREAM machine
JPH04237388A (ja) ニューロプロセッサ
Ayoubi et al. Efficient mapping algorithm of multilayer neural network on torus architecture
JPH02178758A (ja) ニューラルネット構成情報処理装置
US20240054330A1 (en) Exploitation of low data density or nonzero weights in a weighted sum computer
JPH05197707A (ja) 情報処理システム
JPH05197702A (ja) 神経回路網シミュレータ装置
Yáñez et al. Backpropagation multilayer perceptron: A modular implementation
Faure et al. A VLSI implementation of multilayered neural networks
Misra et al. Implementation of Sparse Neural Networks on Fixed Size Arrays

Legal Events

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