Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPH07101415B2 - Information processing apparatus and learning method thereof - Google Patents
[go: Go Back, main page]

JPH07101415B2 - Information processing apparatus and learning method thereof - Google Patents

Information processing apparatus and learning method thereof

Info

Publication number
JPH07101415B2
JPH07101415B2 JP2284235A JP28423590A JPH07101415B2 JP H07101415 B2 JPH07101415 B2 JP H07101415B2 JP 2284235 A JP2284235 A JP 2284235A JP 28423590 A JP28423590 A JP 28423590A JP H07101415 B2 JPH07101415 B2 JP H07101415B2
Authority
JP
Japan
Prior art keywords
output
value
layer
input
functional block
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 - Lifetime
Application number
JP2284235A
Other languages
Japanese (ja)
Other versions
JPH03206549A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH03206549A publication Critical patent/JPH03206549A/en
Publication of JPH07101415B2 publication Critical patent/JPH07101415B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Feedback Control In General (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、音声認識、画像処理、制御などに利用するニ
ューラルネットを高速に学習することができる情報処理
装置に関する。特に、ウェハスケール集積回路(WSI)
上に構成するのに好都合で、高速な学習機能付きの大規
模なニューラルネットをコンパクトでかつ低価格で提供
する情報処理装置に及びその学習方法に関する。
TECHNICAL FIELD The present invention relates to an information processing apparatus capable of learning a neural network used for voice recognition, image processing, control, etc. at high speed. In particular, wafer scale integrated circuits (WSI)
The present invention relates to an information processing apparatus which is convenient to be configured above and which provides a large-scale neural network with a high-speed learning function in a compact size and at a low price, and a learning method thereof.

[従来の技術] ニューラルネットは認識、知識処理などの情報処理に応
用されている。ニューラルネットは入力と期待する出力
値を与えれば、学習により自己組織化が可能である。そ
のため、プログラムを必要とせず、その応用が期待され
ている。
[Prior Art] Neural networks are applied to information processing such as recognition and knowledge processing. Neural networks can self-organize by learning if they are given inputs and expected output values. Therefore, the program is not required and its application is expected.

学習アルゴリズムの1つに、ランメルハート(Rumelhar
t)らによるパラレル ディストリビューティド プロ
セスィング(Rarallel Distribed Processing)第8章3
18〜362頁及び日経エレクトロニクス1987.8.10(No.42
7)115〜121ページに紹介されている。“バックプロパ
ゲーションが知られている。以下に、このバックプロバ
ゲーションを説明する。
One of the learning algorithms is Rumelhar
t) et al. Parallel distributed processing (Chapter 8 3)
Pages 18-362 and Nikkei Electronics 1987.8.10 (No.42)
7) Introduced on pages 115-121. "Backpropagation is known. This backpropagation will be described below.

第2図にニューラルネットを構成するニューロンのモデ
ルを示す。ニューロンは他のニューロンから入力xiを入
力する。そして、それぞれの入力xiに対し重み値wji
重み付けを行い、その総和である内部エネルギー(内
積)ujを計算する。この値を例えばシグモイド関数fに
よって変換し、出力xjを出力する。ここで、重みw
jiは、ニューロンjにおいて、入力するニューロンiに
対する重み値である。
FIG. 2 shows a model of a neuron that constitutes a neural network. A neuron inputs input x i from another neuron. Then, each input x i is weighted with the weight value w ji , and the total internal energy (inner product) u j is calculated. This value is converted by, for example, a sigmoid function f, and the output x j is output. Where the weight w
ji is a weight value for the input neuron i in the neuron j.

wj=f(uj) (1) uj=Σiwji・xi (2) 複数のニューロンを結合することによって、ニューラル
ネットを構成できる。そして、重み値wjiを変えること
によって、いろいろな情報処理を行うことが可能であ
る。
w j = f (u j ) (1) u j = Σ i w ji · x i (2) A neural network can be constructed by connecting a plurality of neurons. Then, various information processing can be performed by changing the weight value w ji .

第3図に階層型ニューラルネットを示す。本図は、入力
層、中間層、出力層の3階層から構成されているが、中
間層を複数とする構成にしてもよい。入力に対し、情報
処理を行なって出力する順方向に動作するモードと、与
えた入力に対して期待する出力値を外部から与え、出力
層側から入力層側へ向かって、重み値wjiを修正してい
く逆方向に動作するモードを持つ。そのときの重み値w
jiの修正値Δwjiをニューロンjでは Δwji n+1=ηδjxi+αΔwji n (3) とする。ここで、nは学習の回数、α、ηは定数であ
る。また、関数δを以下のように決定する。
FIG. 3 shows a hierarchical neural network. Although this figure is composed of three layers of an input layer, an intermediate layer, and an output layer, it may be configured to have a plurality of intermediate layers. For the input, the mode that operates in the forward direction to perform information processing and output and the expected output value for the given input are given from the outside, and the weight value w ji is set from the output layer side to the input layer side. It has a mode that works in the opposite direction to correct. Weight value w at that time
a correction value [Delta] w ji of ji and the neuron j Δw ji n + 1 = ηδ j x i + αΔw ji n (3). Here, n is the number of times of learning, and α and η are constants. Further, the function δ is determined as follows.

出力層のニューロンkでは、期待する出力値をtkとする
と、 δ=(tk−xk)f′(uk) (4) とし、中間層のニューロンjでは、 δ=f′(uj)Σδkwji (5) と決める。ここで、関数f′は関数fの導関数である。
In the neuron k in the output layer, if the expected output value is t k , then δ k = (t k −x k ) f ′ (u k ) (4), and in the neuron j in the intermediate layer, δ j = f ′ (U j ) Σ k δ k w ji (5). Here, the function f'is a derivative of the function f.

以上のように修正値Δwを決定し、重み値wを修正して
いく。そして、出力層の出力が期待するものとなるま
で、以上の学習を繰り返す。
The correction value Δw is determined as described above, and the weight value w is corrected. Then, the above learning is repeated until the output of the output layer is as expected.

一般に、ニューラルネットの解明及びその応用の研究で
は、遂次型計算機上でソフトウェアによるシミュレーシ
ョンによって行っている。しかし、非常に多くの、例え
ば数千あるいは数万個のニューロンで構成する大規模な
ニューラルネットの学習を行うには、膨大な計算時間が
必要なる。また一般に、学習には非常に多くの反復を必
要とする場合が多い。そのため、大規模なニューラルネ
ットの能力はよくわかっていないのが現状である。
In general, research on the elucidation of a neural network and its application is carried out by software simulation on a sequential computer. However, in order to learn a large-scale neural network composed of a large number of neurons, for example, thousands or tens of thousands of neurons, enormous calculation time is required. Also, in general, learning often requires a large number of iterations. Therefore, at present, the capabilities of large-scale neural networks are not well understood.

一方、専用のハードウェアによってニューラルネットを
高速に計算させる試みがある。その一つである、“完全
ディジタルニューロWSIの基本設計”、1989年電子情報
通信学会 春季全国大会講演論文集7冊分SD−1−5,29
1〜292ページで発表された方式を第4図に示す。ここで
WSIとは、ウェハスケール インテグレーション(Wafer
Scale Integration)のことである。
On the other hand, there is an attempt to calculate a neural network at high speed with dedicated hardware. One of them, “Basic Design of Completely Digital Neuro-WSI”, Proceedings of the 1989 IEICE Spring National Convention, 7 volumes SD-1-5,29
Figure 4 shows the method announced on pages 1-292. here
WSI stands for Wafer Scale Integration (Wafer
Scale Integration).

第4図において、201はニューロン計算ユニット、210は
バスである。各ニューロン計算ユニット201はバスによ
って結合している。各ニューロン計算ユニット201のう
ち一つが選択され、その出力値をバス210へ、次々と出
力する。各ニューロン計算ユニット201は、出力してい
るニューロンに対する重み値をメモリに保持しており、
バス210から遂次入力する値に、それに対する重み値を
メモリから読みだして重み付けし、その積を累積加算す
る。バス210へ出力するときは、その値を(1)式のシ
グモイド関数によって変換して出力する。重み付け回路
は時分割に動作させる。各ニューロン計算ユニット201
が一通りバス210へ出力すれば、すべてが(2)式の計
算を行うことができる。以下、時分割バス結合方式と呼
ぶ。
In FIG. 4, 201 is a neuron calculation unit and 210 is a bus. Each neuron calculation unit 201 is connected by a bus. One of the neuron calculation units 201 is selected, and its output value is sequentially output to the bus 210. Each neuron calculation unit 201 holds the weight value for the output neuron in the memory,
The value successively input from the bus 210 is weighted by reading the weight value corresponding to the value from the memory, and the product is cumulatively added. When outputting to the bus 210, the value is converted by the sigmoid function of Expression (1) and output. The weighting circuit operates in a time division manner. Each neuron calculation unit 201
Can be output to the bus 210, all can perform the calculation of the equation (2). Hereinafter, this is referred to as a time division bus coupling method.

以上の動作を行うことによって、(1)(2)式のニュ
ーロンモデルを高速に演算することができる。もう1つ
の特徴は、第4図をWSI上で実現することである。時分
割バス結合方式によれば、重み付け回路を時分割に使用
して、1つのニューロン計算ユニット201の面積を大幅
に低減することができる。このように、1計算ユニット
の面倒をできる限り小さくし、1計算ユニットあたり歩
留まりを向上させ、欠陥によって動作不能となるニュー
ロン計算ユニット201の割合を低下させることで、WSI化
に成功している。WSI化することにより、以前に比して
大規模なニューラルネットを高速にかつコンパクトに実
現することが可能となる。
By performing the above operation, the neuron model of equations (1) and (2) can be calculated at high speed. Another feature is to realize Fig. 4 on WSI. According to the time division bus coupling method, the weighting circuit can be used for time division, and the area of one neuron calculation unit 201 can be significantly reduced. In this way, the WSI has been successfully achieved by reducing the trouble of one calculation unit as much as possible, improving the yield per one calculation unit, and reducing the ratio of the neuron calculation unit 201 which becomes inoperable due to a defect. By adopting WSI, it becomes possible to realize a large-scale neural network faster and more compactly than before.

ニューロン間が完全結合しているニューラルネットで
は、ニューロン数をNとすると、1回の(1)式、
(2)式の計算を行うのに必要な重み付けの回数は約N2
個となる。時分割バス結合方式では、N個の重み付け回
路が同時に動作するため、計算時間はO(N)となり、
高速に大規模なニューラルネットを計算することができ
る。
In a neural network in which neurons are completely connected, assuming that the number of neurons is N, one equation (1),
The number of times of weighting required to calculate equation (2) is about N 2
It becomes an individual. In the time division bus combination method, N weighting circuits operate simultaneously, so the calculation time becomes O (N),
A large-scale neural network can be calculated at high speed.

[発明が解決しようとする問題点] 従来の技術で述べた時分割バス結合方式において、前述
のバックプロパゲーションを行おうとした場合、逆方向
の(3)〜(5)式の計算では、関数δを計算するの
に、ニューロンの出力先における重み値が必要である。
例えば、中間層のニューロンjのδを計算するには、
出力層のニューロンkにおけるニューロンjに対する重
み値wkjが必要である。しかし、前述のようにニューロ
ンjを計算する計算ユニット201は、入力層のニューロ
ンiに対する重み値wjiしか、保持していない。そのた
め、(5)式を並列に計算することができず、δkwkj
1個ずつ遂次に計算することになる。そのため、順方向
を行うのに要する時間はO(N)となるにもかかわら
ず、逆方向の計算に要する時間がO(N2)となり、学習
を高速に行えない問題がある。
[Problems to be Solved by the Invention] In the time-division bus coupling method described in the related art, when the above-mentioned backpropagation is attempted, in the calculation of the backward expressions (3) to (5), the function To calculate δ, the weight value at the output destination of the neuron is necessary.
For example, to calculate δ j of neuron j in the hidden layer,
The weight value w kj for the neuron j in the neuron k in the output layer is required. However, as described above, the calculation unit 201 that calculates the neuron j holds only the weight value w ji for the neuron i in the input layer. Therefore, it will be calculated (5) can not be the computing in parallel formula, sequential and [delta] k w kj one by one. Therefore, although the time required to perform the forward direction is O (N), the time required to calculate the backward direction is O (N 2 ), and there is a problem that learning cannot be performed at high speed.

本発明の目的は、高速学習可能なニューラルネットによ
り構成される情報処理装置を実現することであり、特に
時分割バス結合方式とバックプロパゲーションを組み合
わせた情報処理装置及びその学習方法を実現することに
ある。
An object of the present invention is to realize an information processing apparatus configured by a neural network capable of high-speed learning, and particularly to realize an information processing apparatus and a learning method thereof that combine a time division bus coupling method and back propagation. It is in.

本発明の他の目的は、以下の詳細な説明から明らかにな
るであろう。
Other objects of the invention will be apparent from the detailed description below.

[問題点を解決するための手段] 本発明は、順方向の計算を行う第1のネットワークと逆
方向のδの計算を行う第2のネットワークと相互の通信
を行なう手段とを設ける。
[Means for Solving the Problems] The present invention is provided with a first network that performs forward calculation and a second network that calculates δ in the reverse direction, and means for mutual communication.

また、各ネットワークには、それぞれの計算を並列に行
うのに都合が良いように重み値を保持する。そのため、
同一の重み値が2重に保持されることになるが、その修
正はそれぞれのネットワークで行い、修正した結果は同
じ値となる。
Further, each network holds a weight value so that it is convenient to perform each calculation in parallel. for that reason,
The same weight value is held twice, but the correction is performed in each network, and the corrected result has the same value.

[作用」 本発明は、バックプロパゲーション学習アルゴリズムの
ような、順方向と逆方向の計算を行うニューラルネット
の学習を高速に行う専用計算機に好適である。本発明で
は、(1)(2)式の計算を順方向ネットワークで、
(4)(5)式の計算を逆方向ネットワークで行なう。
各ニューロン間の重み値は、2つのネットワークで同一
の値で保持されている。また、(3)式の修正値を計算
するために必要な値は、それぞれのネットワークで計算
された値のどちらも必要である。本発明では、2つのネ
ットワーク間に通信手段を設けることによって、それぞ
れの各ネットワークを構成するユニットが重み値を修正
するのに必要な値を得ることができ、それぞれが重み値
を同一の値に修正することを可能としている。順方向ネ
ットワークでは、(1)(2)式を並列に計算するのに
好都合に構成し、逆方向ネットワークでは(4)(5)
式を並列に計算するのに好都合に構成している。また、
(3)式の計算も各ネットワークの各ユニットにおい
て、並列に計算する。そのため、本発明を用いれば、前
述の学習をO(N)の計算時間で実行できる。
[Operation] The present invention is suitable for a dedicated computer such as a back-propagation learning algorithm that performs learning of a neural network that performs forward and backward calculations at high speed. In the present invention, the calculation of equations (1) and (2) is performed in the forward network,
The calculation of equations (4) and (5) is performed in the reverse network.
The weight value between the neurons is held at the same value in the two networks. Further, both the values calculated in each network are necessary as the values necessary for calculating the corrected value of the equation (3). In the present invention, by providing the communication means between the two networks, it is possible to obtain the value necessary for the unit constituting each respective network to correct the weight value, and each of the weight values has the same value. It is possible to modify. In the forward network, the equations (1) and (2) are conveniently configured to be calculated in parallel, and in the backward network, (4) and (5).
It is conveniently constructed for computing expressions in parallel. Also,
Equation (3) is also calculated in parallel in each unit of each network. Therefore, according to the present invention, the learning described above can be executed in O (N) calculation time.

また、順方向と逆方向の計算をそれぞれ別のネットワー
クにおいて計算するため、各計算ユニットを小面積で実
現できる。そのため、WSI化した場合、1つの計算ユニ
ットあたりの歩留まりを高くすることができる。
In addition, since the forward and backward calculations are performed in different networks, each computing unit can be implemented in a small area. Therefore, in the case of WSI, the yield per calculation unit can be increased.

また、順方向の計算を行う計算ユニットと逆方向の計算
を行う計算ユニットは同一の回路構成とすることも可能
で、設計工数を低減することができる。そのときは、ど
ちらの計算ユニットとして動作するかは、制御信号によ
って決めることになる。そのため、WSI化した場合も、
一種類のWSIを設計し、製作すれば良いので、低価格化
できる。また、複数のWSIを容易し、それらを接続すれ
ば、より大規模なニューラルネットを簡単に構成するこ
とができる。
Further, the calculation unit that performs the forward calculation and the calculation unit that performs the backward calculation can have the same circuit configuration, and the number of design steps can be reduced. In that case, which of the calculation units operates will be determined by the control signal. Therefore, even if WSI is used,
It is only necessary to design and manufacture one type of WSI, so the cost can be reduced. If multiple WSIs are facilitated and they are connected, a larger-scale neural network can be easily constructed.

[実施例] 以下に、実施例を用いて本発明の詳細を説明する。[Examples] Hereinafter, the details of the present invention will be described using examples.

第1図は本発明の一実施例を示す図である。図におい
て、120F,121F,120B,121Bは計算ユニットで、123,124は
制御回路である。各計算ユニットは制御回路123あるい
は制御回路124と接続されている。130は制御信号発生回
路で、制御信号142〜145に制御信号を出力する。各制御
回路123,124は制御信号線142から制御信号を入力する。
140は出力バスである。128はバッファで、各計算ユニッ
トの出力値を出力バス140に出力するか、出力バス140か
ら分離するか、制御回路123,124によって制御する。131
は関数変換回路で、出力バス140から入力する値に対し
て(1)式のシグモイド関数fで変換を行い出力する。
132は関数変換回路で、出力バス140から入力する値に対
して、シグモイド関数fの導関数f′に従って変換し、
出力する。125はセレクタで、制御信号線145の制御信号
によって、出力バス140または関数変換回路131の出力ま
たは関数変換回路132の出力のうち1つを出力する。160
は乗算器で、セレクタ125の出力に対し、定数ηを掛け
て、出力する。127はセレクタで、制御信号線144の制御
信号によって、セレクタ125の出力または乗算器160の出
力を出力する。150は外部入力端子で、141は入力バスで
ある。126はセレクタで、制御信号線143の制御信号によ
って、セレクタ127の出力または外部入力端子150から入
力する信号を入力バス141に出力する。各計算ユニット
は入力バス141と接続し、入力バス141に出力される信号
を入力することができる。また151は外部出力端子で、
入力バス141に出力される値を外出する。
FIG. 1 is a diagram showing an embodiment of the present invention. In the figure, 120F, 121F, 120B and 121B are calculation units, and 123 and 124 are control circuits. Each calculation unit is connected to the control circuit 123 or the control circuit 124. A control signal generation circuit 130 outputs control signals to the control signals 142 to 145. Each of the control circuits 123 and 124 inputs a control signal from the control signal line 142.
140 is an output bus. Reference numeral 128 denotes a buffer that outputs the output value of each calculation unit to the output bus 140, separates it from the output bus 140, or controls it by the control circuits 123 and 124. 131
Is a function conversion circuit, which converts the value input from the output bus 140 by the sigmoid function f of the equation (1) and outputs it.
Reference numeral 132 is a function conversion circuit, which converts the value input from the output bus 140 according to the derivative f ′ of the sigmoid function f,
Output. Reference numeral 125 denotes a selector which outputs one of the output of the output bus 140 or the function conversion circuit 131 or the output of the function conversion circuit 132 according to the control signal of the control signal line 145. 160
Is a multiplier, which multiplies the output of the selector 125 by a constant η and outputs the result. A selector 127 outputs the output of the selector 125 or the output of the multiplier 160 according to the control signal of the control signal line 144. Reference numeral 150 is an external input terminal, and 141 is an input bus. Reference numeral 126 denotes a selector which outputs the output of the selector 127 or a signal input from the external input terminal 150 to the input bus 141 according to the control signal of the control signal line 143. Each calculation unit is connected to the input bus 141 and can input a signal output to the input bus 141. 151 is an external output terminal,
The value output to the input bus 141 goes out.

第1図は、(1)〜(5)式の演算を高速に行う本発明
の構成を示すものである。各計算ユニットの詳細につい
ては、第7図、第8図、第9図、を用いて、後に述べ
る。第5図に第1図の構成の動作を詳しく示す。まず、
第5図を用いて、本発明の動作についてニューロンjの
動作を中心に以下に説明する。なお、入力層は単に入力
データを一時的に記憶する層として構成してもよいし、
また第5図に示されるようにニューロモーデルの計算ユ
ニットとして構成してもよい。第5図の各計算ユニット
は第1図の各計算ユニットに対応しており、第1図の計
算ユニット120F,121F,120B,121Bは第5図のそれぞれと
対応している。計算ユニット120F,121Fは順方向の動作
を行う順方向ネットワークを構成しており、計算ユニッ
ト120B,121Bは逆方向の動作を行う逆方向ネットワーク
を構成している。ここで、順方向ネットワークは(1)
(2)式の計算を行うネットワークのことであり、逆方
向ネットワークとは(4)(5)式の計算を行うネット
ワークのことである。また、(3)式は各ネットワーク
において計算する。
FIG. 1 shows the configuration of the present invention for performing the calculations of equations (1) to (5) at high speed. Details of each calculation unit will be described later with reference to FIGS. 7, 8, and 9. FIG. 5 shows the operation of the configuration of FIG. 1 in detail. First,
The operation of the present invention will be described below with reference to FIG. 5, focusing on the operation of the neuron j. Note that the input layer may simply be configured as a layer for temporarily storing input data,
Further, as shown in FIG. 5, it may be configured as a neuromodel calculation unit. Each calculation unit in FIG. 5 corresponds to each calculation unit in FIG. 1, and the calculation units 120F, 121F, 120B, 121B in FIG. 1 correspond to each in FIG. The calculation units 120F and 121F form a forward network that performs a forward operation, and the calculation units 120B and 121B form a reverse network that performs a backward operation. Here, the forward network is (1)
The network for calculating the equation (2) is a network for performing the calculation for the equations (4) and (5). The equation (3) is calculated in each network.

順方向ネットワークの中間層の計算ユニットでは、入力
層のニューロンi対する重み値wjiを保持しており、出
力層の計算ユニットでは、中間層のニューロンjに対す
る重み値wkjを保持している。中間層の計算ユニット120
Fは、重み値wjiを保持している。また、逆方向ネットワ
ークの中間層の計算ユニットでは、順方向ネットワーク
における出力層の計算ユニットが中間層のニューロンj
対し持っている重み値wkjを保持しており、逆方向ネッ
トワークの入力層の計算ユニットでは、順方向ネットワ
ークにおける中間層の計算ユニットが入力層のニューロ
ンに対して持っている重み値wjiを保持している。中間
層の計算ユニット120Bは、重み値wkjを保持している。
順方向ネットワークが保持する重み値wji,wkjと、逆方
向ネットワークが保持する重み値wji,wkjは対応してお
り、同じ値である。
The calculation unit in the middle layer of the forward network holds the weight value w ji for the neuron i in the input layer, and the calculation unit in the output layer holds the weight value w kj for the neuron j in the middle layer. Calculation unit 120 for the middle tier
F holds the weight value w ji . Further, in the calculation unit of the middle layer of the backward network, the calculation unit of the output layer of the forward network is the neuron j of the middle layer.
Holds the weight value w kj have contrast, in the calculation unit of the input layer of the backward network, a weight value w ji the calculation unit of the intermediate layer in the forward network has on neurons of the input layer keeping. The calculation unit 120B in the middle layer holds the weight value w kj .
Weight value w ji forward network held, and w kj, weights w ji of backward network holds, w kj corresponds, the same value.

順方向ネットワークでは、入力層から中間層、出力層と
各計算ユニットの出力xi,xj,xkが決定していく。計算ユ
ニット120Fは入力層の出力xiを入力し、それに対する重
み値wxjiで重み付けを行い、内部エネルギーujを計算
し、さらに非線形変換を行い、出力値xjを出力する。次
に、順方向ネットワークの出力層の計算ユニットは中間
層の出力xjを入力し、それに対する重み値wkjで重み付
けを行い、内部エネルギーukを計算し、さらに非線形変
換を行い、出力値xkを出力する。順方向ネットワークの
各計算ユニットはそれぞれに対応する逆方向ネットワー
クの計算ユニットへそれぞれの出力値xi,xj,xkを送信す
る。計算ユニット120Fは、計算ユニット120Bへ、その出
力値xjを送信する。次に、順方向ネットワークの中間層
と出力層の各計算ユニットはそれぞれに対応する逆方向
ネットワークの計算ユニットへそれぞれの出力値xj,xk
の部分微分xj′,xk′を送信する。計算ユニット120Fは
出力値xjの微分xj′(=f′(uj))を計算ユニット12
0Bへ出力する。
In the forward network, the input layer to the intermediate layer, the output layer, and the outputs x i , x j , and x k of each calculation unit are determined. The calculation unit 120F inputs the output x i of the input layer, weights it with the weight value wx ji , calculates the internal energy u j , further performs nonlinear conversion, and outputs the output value x j . Next, the calculation unit of the output layer of the forward network inputs the output x j of the hidden layer, weights it with the weight value w k j , calculates the internal energy u k , further performs the nonlinear transformation, and outputs the output value. Output x k . Each computing unit of the forward network sends a respective output value x i , x j , x k to the corresponding computing unit of the reverse network. The calculation unit 120F sends its output value x j to the calculation unit 120B. Then, each calculation unit of the middle layer and the output layer of the forward network outputs its output value x j , x k to the corresponding calculation unit of the backward network.
The partial differential x j ′, x k ′ of is transmitted. The calculation unit 120F calculates the derivative x j ′ (= f ′ (u j )) of the output value x j.
Output to 0B.

次に、順方向ネットワークの出力層の出力値xkが期待し
た値tkと異なる場合、重み値を修正する必要がある。そ
の動作を以下に説明する。
Then, if the output value x k of the output layer of the forward network is different from the expected value t k , the weight value needs to be modified. The operation will be described below.

逆方向ネットワークの出力層において、(4)式に従
い、δを計算し、逆方向ネットワークの中間層の各計
算ユニットへ出力する。(4)式を計算するのに必要な
xk′は既に入力している。逆方向ネットワークは中間層
の各計算ユニットは、δを入力すると、その値を用い
て(3)式に従い、修正値Δwkjを計算し、重み値wkj
変更する。また、逆方向ネットワークの出力層の各計算
ユニットはそれぞれに対応する順方向ネットワークの出
力層の計算ユニットへそれぞれの出力値δを送信す
る。それにより、順方向ネットワークの出力層の計算ユ
ニットは、(3)式により修正値Δwkjを計算し、重み
値wkjを変更することがきる。
In the output layer of the backward network, δ k is calculated according to the equation (4), and is output to each calculation unit in the intermediate layer of the backward network. Required to calculate equation (4)
You have already entered x k ′. When the calculation unit in the middle layer of the backward network inputs δ k , the correction value Δw kj is calculated according to the equation (3) using that value, and the weight value w kj is changed. In addition, each calculation unit of the output layer of the backward network sends the respective output value δ k to the corresponding calculation unit of the output layer of the forward network. As a result, the calculation unit in the output layer of the forward network can change the weight value w kj by calculating the correction value Δw kj by the equation (3).

次に、逆方向ネットワークの出力層の各計算ユニットの
出力δを出力し、それを入力する逆方向ネットワーク
の中間層の計算ユニットはδと重み値wkjとの乗算を
行い、(5)式に従って、δを決定し、出力する。
(5)式を計算するのに必要なxj′は計算ユニット120F
から、既に入力している。逆方向ネットワークは入力層
の各計算ユニットは、δを入力すると、その値を用い
て(3)式に従い、の修正値Δwkjを計算し、重み値wkj
を変更する。また、逆方向ネットワークの中間層の各計
算ユニットはそれぞれに対応する順方向ネットワークの
中間層の計算ユニットへそれぞれのδを送信する。順
方向ネットワークの中間層の計算ユニットは、(3)式
により修正値Δwkjを計算し、重み値wkjを変更すること
ができる。
Next, the output δ k of each calculation unit in the output layer of the reverse direction network is output, and the calculation unit in the middle layer of the reverse direction network which inputs it outputs δ k and the weight value w kj, and (5 ), Δ j is determined and output.
X j ′ required to calculate equation (5) is the calculation unit 120F
Already entered. In the backward network, when each calculation unit in the input layer inputs δ j , the value is used to calculate a modified value Δw kj of and the weight value w kj
To change. Also, each computation unit in the middle layer of the reverse network sends a respective δ j to the corresponding computation unit in the middle layer of the forward network. The calculation unit in the middle layer of the forward network can change the weight value w kj by calculating the correction value Δw kj according to the equation (3).

本発明は、以上に述べたように、(1)(2)(4)
(5)式におけるx,x′(=f′(u))をそれを高速
に計算するのに好都合な順方向ネットワークにおいて計
算し、(4)(5)式におけるδをそれを高速に計算す
るのに好都合な逆方向ネットワークにおいて計算する。
そして、(3)式におけるΔwは各ネットワークの各計
算ユニットにおいて、それぞれが保持している重み値w
に対して計算する。順方向のネットワークの計算ユニッ
トでは、修正値Δwを計算するために、δが必要でお
り、逆方向ネットワークの計算ユニットでは、ε及びΔ
Wを計算するためにx,x′が必要である。そのために、
それぞれのネットワークで対応している計算ユニット間
では、データの通信が必要であるが、その通信するデー
タ量はニューロン数に対応しており、それに要する転送
時間はO(N)であり、短時間で行うことができる。
As described above, the present invention provides (1) (2) (4)
Compute x, x '(= f' (u)) in equation (5) in a forward network convenient for calculating it at high speed, and compute δ in equation (4) (5) at high speed. Compute in a reverse network that is convenient to do.
Then, Δw in the equation (3) is the weight value w held by each calculation unit of each network.
Calculate against. In the calculation unit of the forward network, δ is needed to calculate the correction value Δw, and in the calculation unit of the reverse network ε and Δ
We need x, x 'to compute W. for that reason,
Data communication is required between the calculation units supported by each network, but the amount of data to be communicated corresponds to the number of neurons, and the transfer time required for this is O (N), which is a short time. Can be done at.

本図では、中間層を1層として説明したが、複数の中間
層から構成されるニューラルネットに対しても、同様に
学習を行うことができる。
Although the intermediate layer has been described as one layer in this figure, learning can be similarly performed for a neural network including a plurality of intermediate layers.

次に、第1図を用いて、以上の動作のハードウェア上で
の実現方法について説明する。第6図は、以上の動作の
流れを示す演算フロー図で、順方向ネットワークと逆方
向ネットワークの計算ユニットの演算手順を示してい
る。順方向ネットワークの計算ユニットjは第1図及び
第5図の計算ユニット120Fであり、逆方向ネットワーク
の計算ユニットjは第1図及び第5図の計算ユニット12
0Bである。以下、第6図に従い、第1図を説明する。
Next, a method of realizing the above operation on hardware will be described with reference to FIG. FIG. 6 is a calculation flow chart showing the flow of the above operation, and shows the calculation procedure of the calculation units of the forward network and the backward network. The calculation unit j of the forward network is the calculation unit 120F of FIGS. 1 and 5, and the calculation unit j of the reverse network is the calculation unit 12 of FIGS. 1 and 5.
It is 0B. Hereinafter, FIG. 1 will be described with reference to FIG.

各計算ユニットは入力するニューロンに対する重み値を
メモリに保持している。初めに、重み値wの初期値を各
計算ユニットに書き込む。計算ユニット120Fには、入力
層のニューロンiに対する重み値wjiを書き込む。計算
ユニット120Bには、旬方向ネットワークの出力層の計算
ユニットkが保持する中間層のニューロンjに対する重
み値と同じである重み値wjiを書き込む。−動作1 次に、セレクタ126を外部入力端子150側を入力バス141
に出力するように設定し、外部入力端子150から順方向
ネットワークの入力層の各計算ユニットiへ入力値を書
き込む。−動作2 制御信号発生回路130は、セレクタ125を出力バス140を
出力するように設定し、セレクタ127をセレクタ125の出
力を出力するように設定し、セレクタ16をセレクタ127
の出力を出力するように、制御信号線143〜145に制御信
号を出力する。次に、制御信号発生回路130は制御信号
線142に、順方向ネットワークの入力層の計算ユニット
iのアドレスを出力する。制御回路123はアドレスをデ
コードし、もし、アドレスがその計算ユニットのアドレ
スと一致すれば、バッファ128をイネーブル状態し、順
方向ネットワークの入力層の計算ユニットiの出力値xi
を出力バス140に出力する。順方向ネットワークの入力
層の計算ユニットiは入力値を出力するだけである。順
方向ネットワークの中間層の計算ユニットjは入力バス
141から順方向ネットワークの入力層の出力xiを遂次入
力し、それに対する重み値wjiで重み付けを行い、その
積を累積加算していく。制御信号発生回路130が順方向
ネットワークの入力層の計算ユニットiのアドレスをす
べて指定すると中間層の各計算ユニットでは(2)式の
計算を行うことができ、その出力値ujが決定する。
Each calculation unit holds the weight value for the input neuron in the memory. First, the initial value of the weight value w is written in each calculation unit. The weight value w ji for the neuron i in the input layer is written in the calculation unit 120F. A weight value w ji that is the same as the weight value for the neuron j in the intermediate layer held by the calculation unit k in the output layer of the seasonal network is written in the calculation unit 120B. -Operation 1 Next, the selector 126 is connected to the external input terminal 150 side by the input bus 141.
Output from the external input terminal 150 to write the input value to each calculation unit i in the input layer of the forward network. -Operation 2 The control signal generation circuit 130 sets the selector 125 to output the output bus 140, the selector 127 to output the output of the selector 125, and the selector 16 to the selector 127.
The control signal is output to the control signal lines 143 to 145 so as to output the output. Next, the control signal generation circuit 130 outputs the address of the calculation unit i in the input layer of the forward network to the control signal line 142. The control circuit 123 decodes the address, and if the address matches the address of the calculation unit, it enables the buffer 128 and outputs the output value x i of the calculation unit i of the input layer of the forward network.
Is output to the output bus 140. The calculation unit i in the input layer of the forward network only outputs the input value. The computation unit j in the middle layer of the forward network is the input bus
The input x i of the input layer of the forward network is sequentially input from 141, weighted by the weight value w ji , and the products are cumulatively added. When the control signal generation circuit 130 specifies all addresses of the calculation unit i of the input layer of the forward network, each calculation unit of the intermediate layer can perform the calculation of the equation (2), and the output value u j thereof is determined.

次に、制御信号発生回路130はセレクタ125を関数変換回
路131の出力を出力するように設定した後、順方向ネッ
トワークの中間層の計算ユニットのアドレスを制御信号
線142に出力する。アドレスを指定された計算ユニット
はその出力値ujを出力バス140に出力する。非線形変換
回路131は(1)式の変換を行い、xj(=f(uj))を
出力する。xjは入力バス141によって、順方向ネットワ
ークの出力層の計算ユニットkにブロードキャストされ
る。出力層の計算ユニットkは入力バス141から中間層
の出力xjを遂次入力し、それに対する重み値xkjで重み
付けを行い、その後を累積加算していく。制御信号発生
回路130が順方向ネットワークの中間層の計算ユニット
jのアドレスをすべて指定すると出力層の各計算ユニッ
トkでは(2)式の計算を行うことができ、その出力値
ukが決定する。−動作3 次に、制御信号発生回路130が順方向ネットワークの出
力層の計算ユニットkのアドレスを制御信号線142に出
力する。アドレスを指定された計算ユニットはその出力
値ukを出力バス140に出力する。その後、非線形変換回
路131によってxk(=f(uk))に変換され、セレクタ1
25、セレクタ127、セレクタ126を通って、入力バス141
に出力される。外部出力端子151から、その出力結果を
読むことができる。そして、出力層の出力値xkが期待す
る出力値tkと一致していれば、学習を終了する。一致し
ないときは、以下の動作を行なう。−動作4 制御信号発生回路130は、セレクタ125の出力を出力バス
140側とし、また、セレクタ127の出力を乗算器160側と
するように設定する。セレクタ127を乗算器160側に設定
し、セレクタ126をセレクタ127の出力を出力する。次
に、制御信号発生回路130は制御信号線142に、順方向ネ
ットワークの入力層の計算ユニットiのアドレスを出力
する。アドレスを指定された計算ユニットiの出力xi
セレクタ125を通り、乗算器160に出力され、定数ηを掛
けて、η・xiに変換する。そして、セレクタ127、セレ
クタ126を通り、入力バス141へη・xiを出力する。逆方
向ネットワークの入力層の計算ユニットiはそれに対応
するη・xiが入力バス141へ出力されたとき、その値を
取り込む。次に、制御信号発生回路130は、セレクタ125
の出力を関数変換回路131側とし、また、セレクタ127の
出力を乗算器160側とするように設定する。制御信号発
生回路130は、制御信号142に順方向ネットワークの中間
層の計算ユニットjのアドレスを出力する。アドレスを
指定された計算ユニットjの出力ujは関数変換回路131
によってxjに変換され、セレクタ125を通り、乗算器160
に出力され、定数ηを掛けて、η・xjに変換する。そし
て、セレクタ127、セレクタ126を通り、入力バス141へ
η・xjを出力する。逆方向ネットワークの中間層の計算
ユニットjはそれに対応するη・xjを入力する。例え
ば、計算ユニット120Fの出力値ujは、関数変換回路131
と乗算器160によって、η・xjに変換され、入力バス141
に出力される。そのときに、計算ユニット120Bは、η・
xjを取り込む。−動作5 次に、制御信号発生回路130は、セレクタ125の出力を関
数変換回路132側とし、また、セレクタ127の出力をセレ
クタ125側とするように設定する。制御信号発生回路130
は、制御信号142に順方向ネットワークの中間層の計算
ユニットjと出力層の計算ユニットkのアドレスを出力
する。アドレスを指定された計算ユニットの出力uj,uk
は関数変換回路132によってuj′,uk′に変換し、セレク
タ125、セレクタ127、セレクタ126を通り、入力バス141
へ出力する。逆方向ネットワーク中間層と出力層の計算
ユニットはそれに対応するxj′,xk′を入力することが
できる。例えば、計算ユニット120Fの出力値ujは、関数
変換回路132xj′に変換され、入力バス141に出力され
る。そのときに、計算ユニット120Bは、xj′を取り込
む。−動作6 次の動作では、逆方向ネットワークの出力層の計算ユニ
ットへ期待する出力値tkと先ほどの出力値xkの差(tk
xk)をネットワークの外部からセットする。それは、ホ
ストコンピュータが行ってもよいし、(tk−xk)を計算
する回路を設けてもよい。逆方向ネットワークの出力層
の計算ユニットkは、(4)式のδの計算を行なう。
一動作7 次に、制御信号発生回路130は、出力バス140の出力を乗
算器160によって、η倍し、入力バス141に出力するよう
に、セレクタ125〜127を設定する。そして、逆方向ネッ
トワークの出力層の計算ユニットkのアドレスを制御信
号142へ出力する。アドレスを指定された各計算ユニッ
トの出力δが乗算器160によってη倍され、入力バス1
41にη・δが出力される。このとき、順方向ネットワ
ークの出力層の計算ユニットkは、入力バス141に自分
に対応する逆方向ネットワークの計算ユニットの出力η
・δが出力されれば、内部に取り込む。−動作8 次に、制御信号発生回路130は、出力バス140の値が関数
変換回路131を通り、入力バス141に出力されるように、
セレクタ125〜127を設定した後、順方向ネットワークの
中間層の計算ユニットjのアドレスを制御信号142に出
力する。アドレスを指定された計算ユニットjは既に計
算済みの内部エネルギー値ujを出力する。その結果、入
力バス141には、関数変換された値xjが出力される。順
方向ネットワークの出力層の各計算ユニットでは、入力
する値xjに対する重み値wkjの修正値Δwkjを(3)式に
従って、計算し、重み値wkjを修正する。−動作9 次に、制御信号発生回路130は出力バス140の値がそのま
ま入力バス141に出力されるように、セレクタ125〜127
を設定した後、逆方向ネットワークの出力層の計算ユニ
ットkのアドレスを制御信号142に出力する。アドレス
を指定された計算ユニットは既に計算済みのδを出力
する。その結果、δは出力バス140、セレクタ125、セ
レクタ127、セレクタ126を通り、入力バス141に出力さ
れる。逆方向ネットワークの中間層の各計算ユニットで
は、入力する値δに対する重み値wkjの修正値Δwkj
(3)式に従って、計算し、重み値wkjを修正する。−
動作10 次に、制御信号発生回路130が逆方向ネットワークの出
力層の計算ユニットkのアドレスを指定する。アドレス
設定された計算ユニットは既に計算済みのδを出力す
る。その結果、δは出力バス140、セレクタ125、セレ
クタ127、セレクタ126を通り、入力バス141に出力され
る。逆方向ネットワークの中間層の各計算ユニットで
は、動作10において、修正された重み値wkjを用い、
(5)式に従い、δは計算する。−動作11 次に、制御信号発生回路130は、出力バス140の出力を乗
算器160によって、η倍し、入力バス141に出力するよう
に、セレクタ125〜127を設定する。そして、逆方向ネッ
トワークの中間層の計算ユニットのアドレスを制御信号
142へ出力する。アドレスを指定された各計算ユニット
の出力δが乗算器160によってη倍され、セレクタ12
7、セレクタ126を通り、入力バス141にη・δが出力
される。このとき、順方向ネットワークの中間層の計算
ユニットjは、入力バス141に自分に対応する逆方向ネ
ットワークの計算ユニットjの出力η・δが出力され
れば、内部に取り込む。−動作12 次に、制御信号発生回路130は出力バス140の値が、入力
バス141に出力されるように、セレクタ125〜127を設定
した後、順方向ネットワークの入力層の計算ユニットi
のアドレスを制御信号142に出力する。アドレスを設定
された計算ユニットはxiを出力する。その結果、入力バ
ス141には、xiが出力される。順方向ネットワークの中
間層の各計算ユニットでは、入力する値xiに対する重み
値wjiの修正値Δwkiを(3)式に従って、計算し、重み
値wkjを修正する。−動作13 次に、制御信号発生回路130は出力バス140の値がそのま
ま入力バス14に出力されるように、セレクタ125〜127を
設定した後、逆方向ネットワークの中間層の計算jのア
ドレスを制御信号142に出力する。アドレスを指定され
た計算ユニットは既に計算済みのδを出力する。その
結果、δは出力バス140、セレクタ125、セレクタ12
7、セレクタ126を通り、入力バス141に出力される。逆
方向ネットワークの入力層iの各計算ユニットでは、入
力する値δに対する重み値wjiの修正値Δwjiを(3)
式に従って、計算し、重み値wkjを修正する。−動作14 その後、入力に対し、出力層の出力値xkが期待する値tk
となるまで、以上の学習を繰り返す。
Next, the control signal generation circuit 130 sets the selector 125 to output the output of the function conversion circuit 131, and then outputs the address of the calculation unit in the middle layer of the forward network to the control signal line 142. The addressed computing unit outputs its output value u j to the output bus 140. The non-linear conversion circuit 131 performs the conversion of the equation (1) and outputs x j (= f (u j )). x j is broadcast by the input bus 141 to the computing unit k in the output layer of the forward network. The calculation unit k of the output layer successively inputs the output x j of the intermediate layer from the input bus 141, weights it with the weight value x kj , and cumulatively adds the weighted values. When the control signal generation circuit 130 specifies all the addresses of the calculation unit j in the middle layer of the forward network, each calculation unit k in the output layer can perform the calculation of the equation (2) and the output value thereof.
u k is determined. -Operation 3 Next, the control signal generation circuit 130 outputs the address of the calculation unit k in the output layer of the forward network to the control signal line 142. The addressed computing unit outputs its output value u k to the output bus 140. After that, it is converted into x k (= f (u k )) by the non-linear conversion circuit 131, and the selector 1
25, selector 127, selector 126, input bus 141
Is output to. The output result can be read from the external output terminal 151. Then, if the output value x k of the output layer matches the expected output value t k , the learning ends. If they do not match, the following operation is performed. -Operation 4 The control signal generation circuit 130 outputs the output of the selector 125 to the output bus.
It is set to the 140 side and the output of the selector 127 is set to the multiplier 160 side. The selector 127 is set on the multiplier 160 side, and the selector 126 outputs the output of the selector 127. Next, the control signal generation circuit 130 outputs the address of the calculation unit i in the input layer of the forward network to the control signal line 142. The output x i of the address-specified calculation unit i passes through the selector 125, is output to the multiplier 160, is multiplied by the constant η, and is converted into η · x i . Then, it outputs η · x i to the input bus 141 through the selector 127 and the selector 126. The calculation unit i of the input layer of the backward network takes in the value of the corresponding η · x i when it is output to the input bus 141. Next, the control signal generation circuit 130 operates the selector 125.
Is set to the function conversion circuit 131 side, and the output of the selector 127 is set to the multiplier 160 side. The control signal generation circuit 130 outputs the address of the calculation unit j in the middle layer of the forward network as the control signal 142. The output u j of the address-specified calculation unit j is the function conversion circuit 131.
Is converted to x j by and passes through selector 125 and multiplier 160
Is output to and is multiplied by a constant η and converted into η · x j . Then, it outputs η · x j to the input bus 141 through the selector 127 and the selector 126. The calculation unit j in the middle layer of the backward network inputs the corresponding η · x j . For example, the output value u j of the calculation unit 120F is the function conversion circuit 131
Is converted to η · x j by the
Is output to. At that time, the calculation unit 120B is
Take in x j . -Operation 5 Next, the control signal generation circuit 130 sets the output of the selector 125 to the function conversion circuit 132 side and the output of the selector 127 to the selector 125 side. Control signal generation circuit 130
Outputs the address of the calculation unit j of the middle layer and the calculation unit k of the output layer of the forward network to the control signal 142. The output of the addressed calculation unit u j , u k
Is converted into u j ′, u k ′ by the function conversion circuit 132, passes through the selector 125, the selector 127, and the selector 126, and the input bus 141
Output to. The calculation units in the reverse network middle layer and the output layer can input the corresponding x j ′, x k ′. For example, the output value u j of the calculation unit 120F is converted into the function conversion circuit 132x j ′ and output to the input bus 141. At that time, the calculation unit 120B takes in x j ′. -Operation 6 In the next operation, the difference (t k −) between the output value t k expected from the calculation unit in the output layer of the reverse direction network and the output value x k obtained earlier
x k ) from outside the network. It may be performed by the host computer, or a circuit for calculating (t k −x k ) may be provided. The calculation unit k in the output layer of the backward network calculates δ k in the equation (4).
Operation 7 Next, the control signal generation circuit 130 sets the selectors 125 to 127 so that the output of the output bus 140 is multiplied by η by the multiplier 160 and output to the input bus 141. Then, the address of the calculation unit k in the output layer of the reverse network is output to the control signal 142. The output δ k of each addressed calculation unit is multiplied by η by a multiplier 160 to obtain the input bus 1
Η · δ k is output to 41. At this time, the output network calculation unit k of the forward network outputs the output η of the reverse network calculation unit corresponding to itself to the input bus 141.
・ If δ k is output, take it in. -Operation 8 Next, the control signal generation circuit 130 causes the value of the output bus 140 to be output to the input bus 141 through the function conversion circuit 131.
After setting the selectors 125 to 127, the address of the calculation unit j in the middle layer of the forward network is output to the control signal 142. The addressed calculation unit j outputs the already calculated internal energy value u j . As a result, the function-converted value x j is output to the input bus 141. In each calculation unit of the output layer of the forward network, the correction value Δw kj of the weight value w kj for the input value x j is calculated according to the equation (3), and the weight value w kj is corrected. -Operation 9 Next, the control signal generation circuit 130 causes the selectors 125 to 127 to output the value of the output bus 140 to the input bus 141 as it is.
, And outputs the address of the calculation unit k of the output layer of the reverse direction network to the control signal 142. The addressed calculation unit outputs the already calculated δ k . As a result, δ k passes through the output bus 140, the selector 125, the selector 127, and the selector 126 and is output to the input bus 141. In each calculation unit of the intermediate layer of the backward network, the correction value Δw kj of the weight value w kj for the input value δ k is calculated according to the equation (3), and the weight value w kj is corrected. −
Operation 10 Next, the control signal generation circuit 130 specifies the address of the calculation unit k in the output layer of the reverse network. The addressed computing unit outputs the already computed δ k . As a result, δ k passes through the output bus 140, the selector 125, the selector 127, and the selector 126 and is output to the input bus 141. In each computation unit of the middle layer of the reverse network, in operation 10, the modified weight value w kj is used,
Δ j is calculated according to the equation (5). -Operation 11 Next, the control signal generation circuit 130 sets the selectors 125 to 127 so that the output of the output bus 140 is multiplied by η by the multiplier 160 and output to the input bus 141. And the control signal to the address of the calculation unit in the middle layer of the reverse network.
Output to 142. The output δ j of each addressed calculation unit is multiplied by η by the multiplier 160 and the selector 12
7, η · δ j is output to the input bus 141 through the selector 126. At this time, the calculation unit j of the middle layer of the forward network takes in the output η · δ j of the calculation unit j of the backward network corresponding to itself, if it is output to the input bus 141. -Operation 12 Next, the control signal generating circuit 130 sets the selectors 125 to 127 so that the value of the output bus 140 is output to the input bus 141, and then the calculation unit i of the input layer of the forward network.
The address of is output to the control signal 142. The addressed computing unit outputs x i . As a result, x i is output to the input bus 141. In each calculation unit in the middle layer of the forward network, the correction value Δw ki of the weight value w ji for the input value x i is calculated according to the equation (3), and the weight value w kj is corrected. -Operation 13 Next, the control signal generation circuit 130 sets the selectors 125 to 127 so that the value of the output bus 140 is output to the input bus 14 as it is, and then sets the address of the calculation j of the intermediate layer of the backward network. Output to the control signal 142. The addressed computing unit outputs the already computed δ j . As a result, δ j is output bus 140, selector 125, selector 12
7, output to the input bus 141 through the selector 126. In each calculation unit of the input layer i of the backward network, the correction value Δw ji of the weight value w ji for the input value δ j is calculated by (3)
Calculate and correct the weight value w kj according to the formula. -Operation 14 Then, for the input, the value t k that the output value x k of the output layer expects
The above learning is repeated until.

本発明によれば、順方向及び逆方向のx及びδの計算は
各層において並列に動作し、それに要するデータの通信
量もNに比例しているため、O(N)の時間で、高速に
学習することが可能である。
According to the present invention, forward and backward calculations of x and δ operate in parallel in each layer, and the amount of data communication required therefor is proportional to N. It is possible to learn.

次に、第7図、第8図を用いて、順方向ネットワーク及
び逆方向ネットワークを構成する計算ユニットの詳細に
ついて、説明する。
Next, the details of the calculation units constituting the forward network and the backward network will be described with reference to FIGS. 7 and 8.

第7図は順方向ネットワークを構成する計算ユニットを
示す図である。第7図において、501は重み値wji
(3)式におけるαΔwji nを記憶しおく、メモリであ
る。503、504は加算器、502は乗算器である。511,512は
ラッチである。520は(3)式における前回の修正値Δw
ji nをα倍する乗算器である。531〜534はセレクタであ
る。540は入力バス141への接続端子である。550〜557は
制御回路123が出力する制御信号の制御信号線で、それ
ぞれは、セレクタ534、メモリ501,ラッチ511、セレクタ
531、セレクタ533、セレクタ532、ラッチ512、バッファ
128を制御する。541は出力バス140への接続端子であ
る。接続関係を以下に説明する。
FIG. 7 is a diagram showing a calculation unit forming a forward network. In FIG. 7, 501 is a memory for storing the weight value w ji and αΔw ji n in the equation (3). Reference numerals 503 and 504 are adders, and 502 is a multiplier. 511 and 512 are latches. 520 is the previous correction value Δw in equation (3)
the ji n is multiplied by the multiplier α. 531 to 534 are selectors. Reference numeral 540 is a connection terminal to the input bus 141. Reference numerals 550 to 557 are control signal lines for control signals output from the control circuit 123. Each of them is a selector 534, a memory 501, a latch 511, and a selector.
531, selector 533, selector 532, latch 512, buffer
Control 128. 541 is a connection terminal to the output bus 140. The connection relationship will be described below.

ラッチ511は入力バス接続端子540から入力する信号を保
持する。セレクタ531はメモリ501の出力である重み値w
jiとラッチ511の出力を入力している。乗算器502はセレ
クタ531の出力と入力バス接続端子540を入力している。
加算器503は乗算器502の出力とメモリ501の出力である
αΔwji nを入力する。セレクタ532は乗算器502の出力と
加算器503の出力を入力する。加算器504はセレクタ532
の出力とセレクタ533の出力を入力する。ラッチ512は加
算器504の出力を保持する。バッファ128はラッチ512の
出力を入力し、出力バス接続端子541に出力する。セレ
クタ533はラッチ512の出力とメモリ501の出力である重
み値wjiを入力する。乗算器520は加算器503の出力を入
力する。セレクタ534は入力バス接続端子540から入力す
る信号と加算器504の出力を入力する。メモリ501はセレ
クタ534の出力を重み値wji側、乗算器520の出力をαΔw
ji n側書き込みデータとして入力する。また、メモリ501
はアクセス時のアドレスを制御回路123から入力する。
The latch 511 holds a signal input from the input bus connection terminal 540. The selector 531 outputs the weight value w output from the memory 501.
The output of ji and the latch 511 is input. The multiplier 502 inputs the output of the selector 531 and the input bus connection terminal 540.
The adder 503 inputs the αΔw ji n which is the output of the output memory 501 of the multiplier 502. The selector 532 inputs the output of the multiplier 502 and the output of the adder 503. Adder 504 is selector 532
Input the output of and the output of the selector 533. The latch 512 holds the output of the adder 504. The buffer 128 inputs the output of the latch 512 and outputs it to the output bus connection terminal 541. The selector 533 inputs the output of the latch 512 and the weight value w ji that is the output of the memory 501. The multiplier 520 inputs the output of the adder 503. The selector 534 inputs the signal input from the input bus connection terminal 540 and the output of the adder 504. The memory 501 outputs the output of the selector 534 to the weight value w ji side and the output of the multiplier 520 to αΔw
Input as write data on ji n side. Also, the memory 501
Inputs the address at the time of access from the control circuit 123.

動作1の重み値wjiの初期値を書き込むときは、入力バ
ス接続端子540に初期値を与え、セレクタ534の出力を入
力バス接続端子540側とすれば、メモリ501に書き込むこ
とができる。
When the initial value of the weight value w ji of operation 1 is written, the initial value is given to the input bus connection terminal 540, and the output of the selector 534 is on the input bus connection terminal 540 side, which can be written in the memory 501.

(2)式の計算を行なうときは、以下のように行なう。
セレクタ531の出力をメモリ501の重み値wji出力側とす
る。入力バス接続端子540に入力する入力値xiを入力す
る。乗算器502によって、積wjixiを行なう。セレクタ53
2は乗算器502側を出力する。セレクタ533はラッチ512側
を出力する。加算器504はそれまで累積加算結果である
ラッチ512の出力と積wjixiを加算し、ラッチ512に書き
込む。以上の動作を次々と、入力バス接続端子540に入
力する入力値xiに対して重み値wjiを変えて行なえば、
(2)式を計算することができる。
The calculation of equation (2) is performed as follows.
The output of the selector 531 is the weight value w ji output side of the memory 501. Input the input value x i input to the input bus connection terminal 540. The product w ji x i is performed by the multiplier 502. Selector 53
2 outputs on the multiplier 502 side. The selector 533 outputs the latch 512 side. The adder 504 adds the output of the latch 512, which has been the cumulative addition result, and the product w ji x i , and writes the result in the latch 512. If the above operation is performed one after another by changing the weight value w ji for the input value x i input to the input bus connection terminal 540,
Equation (2) can be calculated.

逆方向ネットワークから入力するηδは入力バス接続
端子540から入力してラッチ511に書き込む。
The ηδ j input from the reverse network is input from the input bus connection terminal 540 and written in the latch 511.

(3)式の計算を行なうときは、以下のように行なう。
セレクタ531はラッチ511側を出力する。入力バス接続端
子540に入力する入力値xiを入力する。乗算器502によっ
て、ηδjxiを計算する。加算器503によって、メモリ50
1の出力αΔwji nと乗算器502の出力ηδjxiの加算を行
ない、修正値Δwji n ) 1を計算する。セレクタ532は加算
器503側を出力する。セレクタ533はメモリ501の重み値w
ji出力側を出力する。加算器504はセレクタ533の出力の
前回の重みwji nとセレクタ532の出力Δwji n ) 1を加算
し、修正した重み値wji n ) 1を出力する。セレクタ534は
加算器504側を出力する。また、加算器503の出力Δwji n
) 1は乗算器520によってα倍する。そして、メモリ501に
セレクタ534の出力の修正した重み値wji n ) 1と乗算器520
の出力αΔwji n ) 1を書き込む。以上の動作を次々と、入
力バス接続端子540に入力する入力値xiに対して行なえ
ば、すべての重み値wji n ) 1を修正することができる。
The calculation of formula (3) is performed as follows.
The selector 531 outputs the latch 511 side. Input the input value x i input to the input bus connection terminal 540. The multiplier 502 calculates ηδ j x i . The memory 50 by the adder 503
The output αΔw ji n of 1 and the output ηδ j x i of the multiplier 502 are added to calculate the correction value Δw ji n ) 1 . The selector 532 outputs the adder 503 side. The selector 533 is the weight value w of the memory 501.
ji Output side is output. The adder 504 adds the previous weight w ji n of the output of the selector 533 and the output Δw ji n ) 1 of the selector 532 and outputs a corrected weight value w ji n ) 1 . The selector 534 outputs the adder 504 side. Also, the output of the adder 503 Δw ji n
) 1 is multiplied by α by the multiplier 520. Then, the corrected weight value w ji n ) 1 of the output of the selector 534 and the multiplier 520 are stored in the memory 501.
Write the output of α Δw ji n ) 1 . All the weight values w ji n ) 1 can be corrected by successively performing the above operation for the input value x i input to the input bus connection terminal 540.

第8図は逆方向ネットワークを構成する計算ユニットを
示す図である。第8図において、601は重みwkj(3)式
におけるαΔwkj nを記憶しておく、メモリである。60
3、604は加算器、602は乗算器である。611〜615はラッ
チである。620は(3)式における前回の修正値Δwkj n
をα倍する乗算器である。631〜634,636はセレクタであ
る。640は入力バス接続端子である。650〜659、661、66
2は制御回路124が出力する制御信号の制御信号線で、そ
れぞれは、セレクタ636、ラッチ613、ラッチ613、ラッ
チ612、ラッチ611、メモリ601、セレクタ631、セレクタ
632、セレクタ634、セレクタ633、ラッチ614、ラッチ61
5、バッファ128を制御する。641は出力バス接続端子で
ある。接続関係を以下に説明する。ラッチ611〜613は入
力バス接続端子640から入力する信号を入力する。セレ
クタ631はメモリ601の重み値wkj出力とラッチ611の出力
とラッチ612の出力を入力している。セレクタ632は入力
バス接続端子640から入力する信号とラッチ613の出力と
ラッチ614の出力を入力する。乗算器602はセレクタ631
の出力とセレクタ632の出力を入力する。加算器603はメ
モリ601のαΔwkj n出力と乗算器602の出力を入力する。
セレクタ633は加算器603の出力と乗算器602の出力を入
力する。加算器604はセレクタ634の出力とセレクタ633
の出力を入力する。ラッチ614は加算器604の出力を入力
する。セレクタ634はラッチ614の出力とメモリ601の重
み値wkj出力を入力している。乗算器620は加算器603の
入力する。セレクタ636は入力バス接続端子640から入力
する信号と加算器604の出力を入力する。メモリ601はセ
レクタ636の出力を重み値wkj側、乗算器620の出力をα
Δwkj n側書き込みデータとして入力する。また、メモリ
601はアクセス時のアドレスを制御回路124から入力す
る。ラッチ615は乗算器602の出力を入力する。バッファ
128はラッチ615の出力を入力し、出力バス接続端子641
に出力する。
FIG. 8 is a diagram showing a calculation unit forming a reverse network. In FIG. 8, 601 is a memory for storing αΔw kj n in the weight w kj (3). 60
Reference numerals 3 and 604 are adders, and 602 is a multiplier. 611 to 615 are latches. 620 is the previous correction value Δw kj n in equation (3)
Is a multiplier for multiplying by. 631 to 634,636 are selectors. 640 is an input bus connection terminal. 650 ~ 659, 661, 66
Reference numeral 2 is a control signal line for a control signal output from the control circuit 124.
632, selector 634, selector 633, latch 614, latch 61
5, control the buffer 128. 641 is an output bus connection terminal. The connection relationship will be described below. The latches 611 to 613 input the signal input from the input bus connection terminal 640. The selector 631 inputs the weight value w kj output of the memory 601, the output of the latch 611, and the output of the latch 612. The selector 632 inputs the signal input from the input bus connection terminal 640, the output of the latch 613, and the output of the latch 614. Multiplier 602 is selector 631
Input and the output of selector 632 are input. The adder 603 inputs the αΔw kj n output of the memory 601 and the output of the multiplier 602.
The selector 633 inputs the output of the adder 603 and the output of the multiplier 602. The adder 604 is the output of the selector 634 and the selector 633.
Input the output of. The latch 614 inputs the output of the adder 604. The selector 634 inputs the output of the latch 614 and the weight value w kj output of the memory 601. The multiplier 620 is input to the adder 603. The selector 636 inputs the signal input from the input bus connection terminal 640 and the output of the adder 604. The memory 601 outputs the output of the selector 636 to the weight value w kj side and outputs the output of the multiplier 620 to α
Input as write data on the Δw kj n side. Also memory
601 inputs the address at the time of access from the control circuit 124. The latch 615 inputs the output of the multiplier 602. buffer
128 inputs the output of latch 615, and output bus connection terminal 641
Output to.

重み値wkjの初期値を書き込むときは、入力バス接続端
子640に初期値を与え、セレクタ636の出力を入力バス接
続端子640側とすれば、書き込むことができる。
When writing the initial value of the weight value w kj , the initial value can be given to the input bus connection terminal 640 and the output of the selector 636 can be written on the input bus connection terminal 640 side.

逆方向ネットワークから入力するηxjは入力バス接続端
子640から入力してラッチ611に巻き込む。xj′(=f′
(uj))も入力バス接続端子640から入力してラッチ612
に書き込む。
Η x j input from the reverse direction network is input from the input bus connection terminal 640 and wound into the latch 611. x j ′ (= f ′
(U j )) is also input from the input bus connection terminal 640 and latched 612
Write in.

また、出力層の計算ユニットとして動作させるときに必
要な出力値と期待する出力値の差(tk−xk)は入力バス
接続端子640から入力してラッチ613に書き込む。出力層
の計算ユニットでは、δを計算するのに以下の動作を
行なう。
The difference (t k −x k ) between the output value required when operating as the calculation unit of the output layer and the expected output value is input from the input bus connection terminal 640 and written in the latch 613. The output layer calculation unit performs the following operations to calculate δ k .

セレクタ631はラッチ612側を出力する。セレクタ632は
ラッチ613側を出力する。乗算器602ではラッチ612の出
力値xk′(=f′(uk))とラッチ613の出力値(tk−x
k)の乗算を行ない、(4)式のδを出力する。ラッ
チ615は乗算器602の出力δを取り込み、バッファ128
へ出力する。出力バス接続端子641には、δが出力さ
れる。
The selector 631 outputs the latch 612 side. The selector 632 outputs the latch 613 side. In the multiplier 602, the output value x k ′ (= f ′ (u k )) of the latch 612 and the output value (t k −x) of the latch 613
k ) is multiplied and δ k in equation (4) is output. The latch 615 captures the output δ k of the multiplier 602 and outputs it to the buffer 128.
Output to. Δ k is output to the output bus connection terminal 641.

出力層の計算ユニットでは、(5)式のδを計算する
のに以下の動作を行なう。
The calculation unit of the output layer performs the following operation to calculate δ k in the equation (5).

セレクタ631はメモリ601の重み値wkj側を出力する。セ
レクタ632は入力バス接続端子640側を出力する。入力バ
ス接続端子640に出力層の出力δを入力する。乗算器6
02によって積δkwkjを出力する。セレクタ633は乗算器6
02側を出力する。セレクタ634はラッチ614側を出力す
る。加算器604はそれまでの累積加算効果であるラッチ6
14の出力と積δkwkjを加算し、ラッチ614に書き込む。
以上の動作を次々と、入力バス接続端子640に入力する
値δに対して行なえば、(2)式のΣδkwkjを計算す
ることができる。次にセレクタ631はラッチ612側を出力
する。セレクタ632はラッチ614側を出力する。乗算器60
2はラッチ612の出力xj′(=f′(uj))とラッチ614
の出力Σδkwkjの乗算を行ない、δを出力する。ラッ
チ615は乗算器602の出力δを取り込み、バッファ128
へ出力する。出力バス接続端子641には、δが出力さ
れる。
The selector 631 outputs the weight value w kj side of the memory 601. The selector 632 outputs the input bus connection terminal 640 side. The output δ k of the output layer is input to the input bus connection terminal 640. Multiplier 6
The product δ k w kj is output by 02. Selector 633 is multiplier 6
The 02 side is output. The selector 634 outputs the latch 614 side. The adder 604 is the latch 6 which is the cumulative addition effect so far.
The output of 14 and the product δ k w kj are added and written to the latch 614.
One after another above operation, if performed for a value [delta] k applied to the input bus connection terminal 640 can calculate the Sigma] [Delta] k w kj (2) below. Next, the selector 631 outputs the latch 612 side. The selector 632 outputs the latch 614 side. Multiplier 60
2 is the output x j ′ (= f ′ (u j )) of the latch 612 and the latch 614.
The output Σδ k w kj is multiplied, and δ j is output. The latch 615 captures the output δ j of the multiplier 602 and outputs it to the buffer 128.
Output to. Δ j is output to the output bus connection terminal 641.

(3)式の計算を行なうときは、逆方向ネットワークの
中間層では以下のように行なう。セレクタ631はラッチ6
11側を出力する。入力バス接続端子640に入力する入力
値δを入力する。乗算器602によって、ηxjδを計
算する。加算器603によって、メモリ601の出力αΔwkj n
と乗算器602の出力ηxjδの加算を行ない、修正値Δw
ji n ) 1を計算する。セレクタ633は加算器603側を出力す
る。セレクタ634はメモリ601の重み値wkj出力側を出力
する。加算器604はセレクタ634の出力の前回の重み値w
kj nとセレクタ633の出力wji n ) 1を加算し、修正した重み
値wji n ) 1を出力する。セレクタ636は加算器604側を出力
する。また、加算器603の出力Δwji n ) 1は乗算器620によ
ってα倍する。そして、メモリ601にセレクタ626の出力
の修正した重み値wkj n ) 1と乗算器620の出力αΔwkj n ) 1
を書き込む。以上の動作を次々と、入力バス接続端子64
0に入力する入力値δに対して行なえば、すべての重
み値wkj n ) 1を修正することができる。逆方向ネットワー
クの入力層においても、同様に重み値wjiを修正するこ
とができる。
When the equation (3) is calculated, it is performed as follows in the middle layer of the backward network. Selector 631 has latch 6
Output 11 side. The input value δ k input to the input bus connection terminal 640 is input. The multiplier 602 calculates η x j δ k . The output of the memory 601 α Δw kj n is calculated by the adder 603.
And the output η x j δ k of the multiplier 602 are added, and the corrected value Δw
ji n ) 1 is calculated. The selector 633 outputs the adder 603 side. The selector 634 outputs the weight value w kj output side of the memory 601. The adder 604 uses the previous weight value w of the output of the selector 634.
kj n and the output w ji n ) 1 of the selector 633 are added and the corrected weight value w ji n ) 1 is output. The selector 636 outputs the adder 604 side. The output Δw ji n ) 1 of the adder 603 is multiplied by α by the multiplier 620. Then, the corrected weight value w kj n ) 1 of the output of the selector 626 and the output αΔw kj n ) 1 of the multiplier 620 are stored in the memory 601.
Write. The above operation is repeated one after another with the input bus connection terminal 64
All weight values w kj n ) 1 can be modified if the input value δ k is input to 0. The weight value w ji can be similarly corrected in the input layer of the backward network.

以上のように、本発明は、順方向ネットワークの出力層
の計算ユニットと逆方向ネットワークの中間層の計算ユ
ニットは同じ重み値wkj nを持つが、その修正はその重み
値を持つ計算ユニットがそれぞれで行なう。修正を行な
った重み値wkj n ) 1は同じ値となる。同様に、順方向ネッ
トワークの中間層の計算ユニットと逆方向ネットワーク
の入力層の計算ユニットは同じ重み値wji nを持つが、そ
の修正はその重みを持つ計算ユニットがそれぞれが行な
う。修正を行なった重み値wji n ) 1は同じ値となる。
As described above, according to the present invention, the calculation unit of the output layer of the forward network and the calculation unit of the middle layer of the reverse network have the same weight value w kj n , but the modification is performed by the calculation unit having the weight value. Do each one. The modified weight value w kj n ) 1 becomes the same value. Similarly, the calculation unit in the middle layer of the forward network and the calculation unit in the input layer of the reverse network have the same weight value w ji n , but the correction is performed by each calculation unit having that weight. The modified weight value w ji n ) 1 becomes the same value.

次に第9図を説明する。第9図は第8図の計算ユニット
にセレクタ635とそれを制御する制御線660を加えたもの
である。122は制御回路である。セレクタ635はラッチ61
4の出力と乗算器602の出力を入力する。ラッチ615はセ
レクタ635の出力を入力する。その他は第8図と同じで
ある。セレクタ635の出力を乗算器602側とすれば、第7
図と同様の動作が可能であり、逆方向ネットワークの計
算ユニットとすることができる。また、セレクタ635の
出力をラッチ614側と設定し、第7図における、ラッチ5
11、セレクタ531、乗算器502、加算器503、セレクタ53
2、加算器504、ラッチ512、セレクタ533、乗算器520、
セレクタ534、メモリ501を第9図のラッチ611、セレク
タ631、乗算器602、加算器603、セレクタ633、加算器60
4、ラッチ614、セレクタ634、乗算器620、セレクタ63
6、メモリ601に対応させれば、順方向ネットワークの計
算ユニットとすることができる。即ち、本発明を実施例
するのに、第7図と第8図の2つの計算ユニットを設計
する必要はなく、第9図の計算ユニットを設計すればよ
い。そのような場合、設計口数を大幅に低減することが
できる。
Next, FIG. 9 will be described. FIG. 9 shows the calculation unit of FIG. 8 with a selector 635 and a control line 660 for controlling it. 122 is a control circuit. Selector 635 has latch 61
Input the output of 4 and the output of the multiplier 602. The latch 615 inputs the output of the selector 635. Others are the same as in FIG. If the output of the selector 635 is on the multiplier 602 side,
The same operation as in the figure is possible and it can be a computing unit of the reverse network. Further, the output of the selector 635 is set to the latch 614 side, and the latch 5 shown in FIG.
11, selector 531, multiplier 502, adder 503, selector 53
2, adder 504, latch 512, selector 533, multiplier 520,
The selector 534, the memory 501, the latch 611, the selector 631, the multiplier 602, the adder 603, the selector 633, and the adder 60 shown in FIG.
4, latch 614, selector 634, multiplier 620, selector 63
6. If it corresponds to the memory 601, it can be used as a forward network computing unit. That is, in order to implement the present invention, it is not necessary to design the two calculation units shown in FIGS. 7 and 8, but the calculation unit shown in FIG. 9 may be designed. In such a case, the number of design units can be significantly reduced.

以上のように、本発明の一実施例によれば、集積回路上
で実現することができるため、高速に学習するニューラ
ルネットを実現することができる。
As described above, according to one embodiment of the present invention, since it can be realized on an integrated circuit, it is possible to realize a neural network that learns at high speed.

次に、第10図を説明する。第10図において、1、2はウ
ェハ、700は機能ブロックである。710〜712はセレクタ
である。701は制御信号発生回路であり、第1図の制御
信号発生回路130の機能にセレクタ710〜712を制御する
機能を加えている。720は入力端子、730は出力端子であ
る。721〜725は制御信号線である。機能ブロック700は
第9図で構成することができる。ウェハ1、2内のネッ
トワークは第1図に対応している。セレクタ711はウェ
ハ1の第1図における外部出力端子151と入力端子720の
入力する信号を入力し、ウェハ2の第1図における外部
入力端子150に出力する。セレクタ710は入力端子720の
入力する信号とウェハ2の第1図における外部出力端子
151を入力し、ウェハ1の第1図における外部入力端子1
50に出力する。セレクタ712はウェハ1の外部出力端子1
51とウェハ2の外部出力端子151を入力し、外部出旅端
子730に出力する。制御信号発生回路701は制御信号線72
3〜725を通して、セレクタ710〜712へ制御信号を出力す
る。また、制御信号線721、722によって、ウェハ1、2
を制御する。ウェハ1の入力バス141の信号はセレクタ7
11を通して、ウェハ2の入力バス141へ送ることができ
る。同様にウェハ2からウェハ1へ送ることもできる。
また、外部入力端子720に入力する信号をセレクタ710,7
11を通して、ウェハ1、2の入力ガス141へ送ることが
できる。
Next, FIG. 10 will be described. In FIG. 10, 1 and 2 are wafers and 700 is a functional block. 710 to 712 are selectors. Reference numeral 701 denotes a control signal generation circuit, which has a function of controlling the selectors 710 to 712 added to the function of the control signal generation circuit 130 of FIG. 720 is an input terminal and 730 is an output terminal. 721 to 725 are control signal lines. The functional block 700 can be configured in FIG. The network in wafers 1 and 2 corresponds to FIG. The selector 711 inputs the signals input from the external output terminal 151 and the input terminal 720 of the wafer 1 in FIG. 1 and outputs the signals to the external input terminal 150 of the wafer 2 in FIG. The selector 710 is a signal input from the input terminal 720 and the external output terminal of the wafer 2 in FIG.
Input 151, and enter the external input terminal 1 in FIG.
Output to 50. The selector 712 is the external output terminal 1 of the wafer 1.
51 and the external output terminal 151 of the wafer 2 are input and output to the external outgoing terminal 730. The control signal generation circuit 701 uses the control signal line 72
Control signals are output to selectors 710-712 through 3-725. Further, the control signal lines 721 and 722 allow the wafers 1 and 2 to be connected.
To control. The signal on the input bus 141 of the wafer 1 is the selector 7
Via 11 to the input bus 141 of the wafer 2. Similarly, the wafer 2 can be sent to the wafer 1.
In addition, the signals input to the external input terminal 720 are input to the selectors 710, 7
Through 11, it can be delivered to the input gas 141 of the wafers 1, 2.

以上のようにウェハ間を簡単に接続することでき、非常
に大規模なニューラルネットを高速に学習することがで
きる。
As described above, the wafers can be easily connected, and a very large-scale neural network can be learned at high speed.

また、ウェハ1で順方向ネットワークを構成し、ウェハ
2で逆方向ネットワークを構成することにより、(3)
式における重み値の修正を各ネットワークで同時に行な
うことができるため、より、高速に学習を行える。
Further, by configuring the forward network with the wafer 1 and the backward network with the wafer 2, (3)
Since the weight value in the equation can be corrected in each network at the same time, learning can be performed faster.

また、本図では、2枚のウェハの接続を示す図である
が、3枚以上の接続も簡単な修正で行なうことができ
る。
Further, in this figure, the connection of two wafers is shown, but the connection of three or more wafers can also be made by a simple correction.

また、第1図の構成をそのままウェハ上に構成してもよ
い。また、さらに複数のウェハにより、各ネットワーク
を構成することもできる。
Further, the configuration of FIG. 1 may be directly configured on the wafer. Further, each network can be configured by a plurality of wafers.

次に、第11図を説明する。第1図において、880,890は
機能ブロックである。801〜803,812〜814はセレクタで
ある。機能ブロック880を第7図で、機能ブロック890を
第8図で構成することができる。また、機能ブロック88
0,890は第9図で構成することができる。850,860は出力
バス、851,861は入力バスである。160a,160bは乗算器で
ある。本図では左側のネットワークは順方向ネットワー
クを、右側は逆方向ネットワーク対応している。
Next, FIG. 11 will be described. In FIG. 1, 880 and 890 are functional blocks. 801 to 803 and 812 to 814 are selectors. The function block 880 can be configured in FIG. 7 and the function block 890 can be configured in FIG. Also, the function block 88
0,890 can be configured in FIG. 850 and 860 are output buses, and 851 and 861 are input buses. 160a and 160b are multipliers. In the figure, the network on the left corresponds to the forward network, and the network on the right corresponds to the reverse network.

本図には制御信号発生回路及び制御信号を明記しない
が、第1図、第10図と同様な構成とすることで、各機能
ブロックや各セレクタを制御することができる。
Although a control signal generation circuit and a control signal are not shown in this figure, each functional block and each selector can be controlled by using the same configuration as in FIGS. 1 and 10.

順方向ネットワークでは、各機能ブロック880の出力は
出力バス850に出力される。関数変換回路131、132は出
力バス850を入力し、それぞれにおいて関数変換し、出
力する。セレクタ801は出力バス850の出力と関数変換回
路131、132の出力を入力し、そのうち1つを出力する。
セレクタ802はセレクタ801の出力と逆方向ネットワーク
の出力バス860を入力する。乗算器160aはセレクタ802の
出力を入力し、定数η倍して出力する。セレクタ803は
セレクタ801の出力と乗算器160の出力を入力し、入力バ
ス851に出力する。各機能ブロック880は入力バス851に
出力される値を入力することができる。逆方向ネットワ
ークでは、各機能ブロック890の出力は出力バス860に出
力される。セレクタ812は出力バス860と順方向ネットワ
ークのセレクタ801の出力を入力する。乗算器160bはセ
レクタ812の出力を入力し、定数η倍して出力する。セ
レクタ814はセレクタ812の出力と乗算器160bの出力を入
力する。セレクタ813は出力バス860とセレクタ814の出
力を入力し、入力バス861に出力する。
In the forward network, the output of each functional block 880 is output on output bus 850. The function conversion circuits 131 and 132 input the output bus 850, perform function conversion in each of them, and output. The selector 801 inputs the output of the output bus 850 and the outputs of the function conversion circuits 131 and 132, and outputs one of them.
The selector 802 inputs the output of the selector 801 and the output bus 860 of the reverse network. The multiplier 160a receives the output of the selector 802, multiplies it by a constant η, and outputs it. The selector 803 inputs the output of the selector 801 and the output of the multiplier 160 and outputs them to the input bus 851. Each function block 880 can input the value output to the input bus 851. In the reverse network, the output of each functional block 890 is output to output bus 860. The selector 812 inputs the output bus 860 and the output of the forward network selector 801. The multiplier 160b receives the output of the selector 812, multiplies it by a constant η, and outputs it. The selector 814 inputs the output of the selector 812 and the output of the multiplier 160b. The selector 813 inputs the output of the output bus 860 and the output of the selector 814 and outputs it to the input bus 861.

本図の構成では、順方向ネットワークを構成する機能ブ
ロック880は乗算器160aによって、逆方向ネットワーク
の出力バス860の値をη倍して取り込むことができる。
同様に、逆方向ネットワークを構成する機能ブロック89
0は乗算器160bによって順方向ネットワークの出力バス8
50の値をη倍して取り込むことができる。そのため、第
6図における動作5の順方向ネットワークから逆方向ネ
ットワークへηxjを通信する動作を動作3において行う
ことができる。動作3において、各機能ブロックが他の
機能ブロックへ出力xjをブロードキャストするときに、
同時に乗算器160bによってη倍し、逆方向ネットワーク
の入力バス861へ出力することができる。同様に、動作
8、12の逆方向ネットワークから順方向ネットワークへ
ηδを通信する動作を動作7、11において行うことがで
きる。以上のように、他方のネットワークのバスへの出
力値を盗み取ることにより、第6図における動作5、
8、12に要する時間を省くことができる。そのため、よ
り高速に学習を行うことができる。
In the configuration of the figure, the functional block 880 forming the forward network can take in the value of the output bus 860 of the backward network multiplied by η by the multiplier 160a.
Similarly, functional block 89 that constitutes the reverse network.
0 is forward bus output bus 8 by multiplier 160b
The value of 50 can be captured by multiplying it by η. Therefore, the operation of communicating η x j from the forward network to the reverse network of operation 5 in FIG. 6 can be performed in operation 3. In operation 3, when each functional block broadcasts the output x j to other functional blocks,
At the same time, it can be multiplied by η by the multiplier 160b and output to the input bus 861 of the reverse network. Similarly, the act of communicating ηδ from the reverse network to the forward network of acts 8 and 12 can be performed in acts 7 and 11. As described above, by stealing the output value to the bus of the other network, the operation 5 in FIG.
The time required for 8 and 12 can be saved. Therefore, learning can be performed at higher speed.

次に、本発明によるニューロコンピューティングシステ
ムについて説明する。以下の実施例は、今まで述べてき
た情報処理装置を実用レベルまで追求した一態様であ
る。まず、第12図〜第19図を用い、構成について一通り
説明した後、その動作とそのために必要な制御につい
て、第20図〜第26図を用いて説明する。尚、今まで説明
してきた実施例と重複する箇所もあるが、一通り説す
る。
Next, the neurocomputing system according to the present invention will be described. The following embodiment is one mode in which the information processing apparatus described so far is pursued to a practical level. First, the configuration is described in full using FIG. 12 to FIG. 19, and then the operation and the control necessary therefor are described using FIG. 20 to FIG. It should be noted that although there are some points that overlap with those of the above-described embodiments, they will be described once.

第12図はシステム全体を示す図である。第12図におい
て、1000はホストコンピュータ、1001はディジタイザで
ホストコンピュータ1000の入力装値の一つである。1003
はコントロールボードを示す。1030はWSIボード、1031
はWSI基板、1050はウェハで、ウェハ1050はWSI基板1031
と接着し、さらにWSI基板1031をWSIボード上と接続する
ことにより、ウェハ1050の電源給電及び外部との信号の
入出力を可能とする。1080はモード信号線、1081はアド
レス信号線、1082はクロック信号線、1083は入力データ
線、1084は出力データ線を示す。コントロールボード10
03と各WSIボード1030とは、1080〜1084の内部バス1020
によって接続する。コントロールボード1003上の1010は
入力層メモリ、1011は出力層メモリ、1012は教師信号メ
モリ、1013はシーケンスRAM、1002はクロック発振器を
示す。1021は外部バスを示す。ホストコンピュータ1000
はコトロールボード1003上の1010〜1013の各メモリに外
部バス1021を通して、アクセスが可能で任意に読みだ
し、書き込みを行うことができる。1085はデコーダ、10
40は出力バッファ、1041は入力バッファを示す。入力層
メモリ1010、教師信号メモリ1012は、それぞれ、アドレ
ス信号線1081を入力し、出力バッファ1040を通して、メ
モリの内容を入力データ線1083へ送ることが可能である
また、それぞれの出力バッファ1040はデコーダ1085によ
り、制御される。デコーダ1085モード信号線1080とアド
レス信号線1081を入力し、デコードする。シーケンスRA
M1013はモード信号及びアドレス信号を発生する。1086
はポインタで、パルスジェネレータ1002からクロック信
号線1082により送られるクロックを入力して、出力を1
づつ増やす。それを繰返し、シーケンスRAM1013に書き
込まれている命令のアドレスを指定する。シーケンスRA
M1013の各アドレスには、予め、実行するモード信号及
びアドレス信号の命令を順々に書き込んでおく。また、
1051はセレクタでシーケンスRAM1013または外部バス102
1から出力される命令をモード信号線1080及びアドレス
信号線1081へ出力する。1052は、セレクタで出力データ
線1084または外部バス1021から出力される値を入力デー
タ線1083へ出力する。
FIG. 12 is a diagram showing the entire system. In FIG. 12, 1000 is a host computer and 1001 is a digitizer, which is one of the input values of the host computer 1000. 1003
Indicates a control board. 1030 is WSI board, 1031
Is a WSI substrate, 1050 is a wafer, and wafer 1050 is a WSI substrate 1031
By bonding the WSI substrate 1031 to the WSI board and connecting the WSI substrate 1031 to the WSI board, it is possible to supply power to the wafer 1050 and input / output signals to / from the outside. Reference numeral 1080 is a mode signal line, 1081 is an address signal line, 1082 is a clock signal line, 1083 is an input data line, and 1084 is an output data line. Control board 10
03 and each WSI board 1030 is an internal bus 1020 of 1080 to 1084
Connect by. On the control board 1003, 1010 is an input layer memory, 1011 is an output layer memory, 1012 is a teacher signal memory, 1013 is a sequence RAM, and 1002 is a clock oscillator. 1021 indicates an external bus. Host computer 1000
Is accessible to each memory 1010 to 1013 on the control board 1003 through the external bus 1021, and can be arbitrarily read and written. 1085 is a decoder, 10
40 is an output buffer and 1041 is an input buffer. The input layer memory 1010 and the teacher signal memory 1012 can each receive the address signal line 1081 and send the contents of the memory to the input data line 1083 through the output buffer 1040. Controlled by 1085. The decoder 1085 mode signal line 1080 and the address signal line 1081 are input and decoded. Sequence RA
M1013 generates a mode signal and an address signal. 1086
Is a pointer, which inputs the clock sent from the pulse generator 1002 through the clock signal line 1082 and outputs 1
Increase by one. By repeating this, the address of the instruction written in the sequence RAM 1013 is designated. Sequence RA
Instructions of a mode signal and an address signal to be executed are sequentially written in advance in each address of M1013. Also,
1051 is a selector for sequence RAM 1013 or external bus 102
The command output from 1 is output to the mode signal line 1080 and the address signal line 1081. 1052 is a selector which outputs the value output from the output data line 1084 or the external bus 1021 to the input data line 1083.

教師信号メモリ1012には出力層の教師信号を書き込んで
おく、入力層メモリ1010は、入力層ニューロンの役目を
行っており、入力層ニューロンの値を書き込んでおく。
出力層メモリ1011は入力バッファ1041を通して出力デー
タ線1084とアドレス信号線1081を入力し、出力層ニュー
ロンの出力を取り込む。
The teacher signal of the output layer is written in the teacher signal memory 1012. The input layer memory 1010 functions as an input layer neuron, and the value of the input layer neuron is written therein.
The output layer memory 1011 inputs the output data line 1084 and the address signal line 1081 through the input buffer 1041 and takes in the output of the output layer neuron.

WSIボード1030はモード信号線1080、アドレス信号線108
1、クロック信号線1082、入力データ線1083を入力バッ
ファ1041を通して、ウェハ1050へ接続し、ウェハ1050か
ら出力される信号をデコーダ 1085により制御する出力バッファ1040を通して、出力デ
ータ線1084に出力する。また、このデコーダ1085はモー
ド信号線1080とアドレス信号線1081により、デコードを
行う。また、ホストコンピュータ1000からウェハ1050内
のラッチ、メモリ等に書き込む場合、自分のボードアド
レスが指定されているときに行う第13図はウェハ1050の
構成を示す図である。ウェハ1050は、1060のNブロッ
ク、1061のIOブロック、1062のBブロック、1063のPブ
ロックから構成する。各ブロックは等間隔で縦(列)方
向横(行)方向に配列する。ウェハ1050の中央の列の下
辺には、IOブロック1061を配置し、その他の中央の列に
は7個のBブロック1062を配置する。外部との入出力は
下辺のIOブロック1061が行う。中央の列以外には、Nブ
ロック1060を配置し、周辺部にPブロック1063を配置す
る。Pブロック1063はウェハの半導体プロセスにおける
品質管理を行うためのものである。Nブロク1060には、
ニューロンブロックを搭載し、Bブロック1062には、関
数変換テーブルを搭載する。IOブロック1061はBブロッ
ク1062の機能の他に外部との入出力を行うための機能も
持つ。IOブロック1061、Bブロック1062、Nブロック10
60の詳細については、第16図、第17図を用いて説明す
る。
WSI board 1030 has mode signal line 1080 and address signal line 108
1. The clock signal line 1082 and the input data line 1083 are connected to the wafer 1050 through the input buffer 1041, and the signal output from the wafer 1050 is output to the output data line 1084 through the output buffer 1040 controlled by the decoder 1085. Further, the decoder 1085 performs decoding using the mode signal line 1080 and the address signal line 1081. Further, when writing data from the host computer 1000 to the latch, memory, etc. in the wafer 1050, FIG. 13 performed when the own board address is specified is a diagram showing the configuration of the wafer 1050. The wafer 1050 is composed of 1060 N blocks, 1061 IO blocks, 1062 B blocks, and 1063 P blocks. The blocks are arranged at equal intervals in the vertical (column) direction and the horizontal (row) direction. IO blocks 1061 are arranged on the lower side of the central row of the wafer 1050, and seven B blocks 1062 are arranged on the other central rows. Input / output to / from the outside is performed by the IO block 1061 on the lower side. N blocks 1060 are arranged other than the central row, and P blocks 1063 are arranged in the peripheral portion. The P block 1063 is for performing quality control in the semiconductor process of the wafer. N block 1060 has
A neuron block is installed, and a function conversion table is installed in the B block 1062. The IO block 1061 has a function of performing input / output with the outside in addition to the function of the B block 1062. IO block 1061, B block 1062, N block 10
Details of 60 will be described with reference to FIGS. 16 and 17.

第14図はウエハ1050内の信号線の構成と配置を示す図で
ある。1201はボンディングパッドでIOブロック1061の下
辺に設け、ボンディングワイヤーにより信号線を外部と
接続する。各Nブロック1060への信号線は、IOブロック
1061、各Bブロック1062において、まず、縦方向に信号
が伝わり、さらに、各横方向へ信号を送る。Nブロック
1060内のニューロンブロックの出力は、まず、その行の
IOブロック1061、Bブロック1062に集められ、そこで関
数変換を行い、入出力を行う下辺のIOブロック1061へ送
り、外部へ出力する。
FIG. 14 is a diagram showing the structure and arrangement of signal lines in the wafer 1050. A bonding pad 1201 is provided on the lower side of the IO block 1061, and a signal wire is connected to the outside by a bonding wire. The signal line to each N block 1060 is an IO block.
In 1061 and each B block 1062, first, a signal is transmitted in the vertical direction, and further, a signal is transmitted in each horizontal direction. N block
The output of the neuron block in 1060 is
It is collected in the IO block 1061 and the B block 1062, and function conversion is performed there, and it is sent to the IO block 1061 on the lower side for input / output and output to the outside.

第15図に、ウェハ1050の各ブロック1060〜1062への電源
給電方法及びWSI基板1031の構成を示す。第15図におい
て、1301〜1303はボンディングパッド1304はボンディン
グワイヤー1305はコネクタを示す。1310は各ブロック10
60〜1062へ電源を給電するための電源バスである。コネ
クタ1305はWSIボード1030と接続することにより、電源
及び信号線のWSI基板1031への接続を行う。電源線をボ
ンディングパッド1301、1304からWSI基板1031内を通
り、コレクタ1305へ引き出す。また、信号線をボンディ
ングパッド1303からコネクタ1305へ引き出す。ウェハ10
50内では、各ブロック1060〜1062の間に格子状に電源バ
ス1310を設け、各ブロック1060〜1062を電源バス1310と
接続する。電源バス1310の終端には、ボンディングパッ
ド1302を設ける。ウェハ1050上のボンディングパッド13
02とWSI基板1031上のボンディングパッド1301、1304を
ボンディングワイヤー1304により接続することにより、
各ブロック1060〜1062へ電源を給電することができる。
また、ウェハ1050上の第14図のボンディングパッド1201
とWSI基板1031上のボンディングパッド1303をボンディ
ングワイヤー1304により、接続することにより、第12図
の内部ハス1020とIOブロック1061と接続することができ
る。
FIG. 15 shows a method of supplying power to the blocks 1060 to 1062 of the wafer 1050 and the configuration of the WSI substrate 1031. In FIG. 15, 1301 to 1303 are bonding pads 1304 and bonding wires 1305 are connectors. 1310 is each block 10
It is a power supply bus for supplying power to 60 to 1062. By connecting the connector 1305 to the WSI board 1030, the power and signal lines are connected to the WSI board 1031. The power supply line is drawn from the bonding pads 1301 and 1304 through the WSI substrate 1031 to the collector 1305. In addition, the signal line is pulled out from the bonding pad 1303 to the connector 1305. Wafer 10
Within the block 50, power supply buses 1310 are provided in a grid pattern between the blocks 1060 to 1062, and the blocks 1060 to 1062 are connected to the power supply bus 1310. A bonding pad 1302 is provided at the end of the power supply bus 1310. Bonding pad 13 on wafer 1050
02 and the bonding pads 1301 and 1304 on the WSI substrate 1031 are connected by the bonding wire 1304,
Power can be supplied to each of the blocks 1060 to 1062.
Also, the bonding pad 1201 of FIG.
By connecting the bonding pad 1303 on the WSI substrate 1031 with the bonding wire 1304, the internal lotus 1020 and the IO block 1061 shown in FIG. 12 can be connected.

第16図にBブロック1062を示す。IOブロック1061はBブ
ロック図1062の機能の他に外部との入出力機能を持つ。
第16図において、1070は変換テーブル、1071は制御回
路、1072〜1076はセレクタである。IOブロック1061、B
ブロク1062は、下辺に接続される外部またはIOブロック
1061またはBブロック1062からモード信号線1080、アド
レス信号線1081、クロック信号線1082を入力し、上辺に
接続されるBブロック1062とサイドに接続されるNブロ
ック1060へ出力する。入力データ線1083は、下辺から入
力し、セレクタ1073、変換テーブル1070、セレクタ107
4、セレクタ1076を通り左右辺へ出力するパスを持つ。
また、変換テーブル1070を通らずに、セレクタ1076のみ
を通り、左右辺へ出力することもできる。左右に接続さ
れるNブロック1060から入力する出力データセン1084は
セレクタ1072セレクタ1073、変換テーブル1070、セレク
タ1074、セレクタ1075を通り、下辺に接続されるBブロ
ック1062またはIOブロック1061または外部へ出力するパ
スを持つ。また、左右から入力する出力データ線1084は
セレクタ1072、セレクタ1075を通り、下辺の出力するこ
ともできる。セレクタ1072〜1076は、制御回路1071によ
って、制御される。制御回路1071はモード信号線1080と
アドレス信号1081を入力し、セレクタ1072〜1075の制御
信号を発生する。制御回路1071の構成については、第21
図は用いて、後に説明する。また、変換テーブル1070
は、書き込みのため、アドレス信号線1081、入力データ
線1083と接続する。
FIG. 16 shows the B block 1062. The IO block 1061 has an input / output function with the outside in addition to the function of the B block diagram 1062.
In FIG. 16, 1070 is a conversion table, 1071 is a control circuit, and 1072 to 1076 are selectors. IO block 1061, B
Block 1062 is an external or IO block connected to the bottom side
The mode signal line 1080, the address signal line 1081, and the clock signal line 1082 are input from 1061 or the B block 1062, and output to the B block 1062 connected to the upper side and the N block 1060 connected to the side. Input data line 1083 is input from the lower side, selector 1073, conversion table 1070, selector 107
4. Has a path that outputs to the left and right sides through the selector 1076.
Further, it is possible to output only to the left and right sides through the selector 1076 without passing through the conversion table 1070. The output data sensor 1084 input from the N block 1060 connected to the left and right passes through the selector 1072 selector 1073, the conversion table 1070, the selector 1074, and the selector 1075, and outputs to the B block 1062 or IO block 1061 connected to the lower side or the outside. Have a path. Further, the output data line 1084 input from the left and right passes through the selector 1072 and the selector 1075, and can also be output from the lower side. The selectors 1072 to 1076 are controlled by the control circuit 1071. The control circuit 1071 inputs the mode signal line 1080 and the address signal 1081 and generates control signals for the selectors 1072 to 1075. For the configuration of the control circuit 1071, see
It will be described later using the figure. Also, the conversion table 1070
Is connected to the address signal line 1081 and the input data line 1083 for writing.

第17図にNブロック1060を示す。第17図に示すNブロッ
ク1060はウェハ1050において、中心より右側に配置する
ものである。左側に配置するNブロック1060は横方向に
対象なものとなる。第17図において、1100はニューロン
ブロックを示す。1101、1103はセレクタ、1102は制御回
路を示す。各Nブロック1060内にはニューロンブロック
1100を6個づつ搭載する。各ニューロンブロック1100
に、モード信号線1080、アドレス信号線1081、クロック
信号線1082、入力データ線1083を接続する、制御回路11
02はアドレス信号線1081をデコードし、セレクタ1101に
より、Nブロック1060内の6個のニューロンブロック11
00の出力から1つを選択心、セレクタ1103へ出力する。
セレクタ1103の入力のもう1つは右側に接続されている
Nブロック1060から出力される出力データ線1084であ
る。セレクタ1103の出力は左側に接続されるNブロック
1060またはBブロック1062またはIOブロック1061と接続
する。セレクタ1103の制御は制御回路1102が行う。
FIG. 17 shows the N block 1060. The N block 1060 shown in FIG. 17 is arranged on the wafer 1050 on the right side of the center. The N block 1060 located on the left side is laterally symmetrical. In FIG. 17, reference numeral 1100 indicates a neuron block. Reference numerals 1101 and 1103 denote selectors, and 1102 denotes a control circuit. Neuron block in each N block 1060
Six 1100s are installed. Each neuron block 1100
The mode signal line 1080, the address signal line 1081, the clock signal line 1082, and the input data line 1083 are connected to the control circuit 11
02 decodes the address signal line 1081 and the selector 1101 selects the six neuron blocks 11 in the N block 1060.
One of the outputs of 00 is selected and output to the selector 1103.
The other input of the selector 1103 is the output data line 1084 output from the N block 1060 connected to the right side. The output of the selector 1103 is an N block connected to the left side.
Connect to 1060 or B block 1062 or IO block 1061. The control circuit 1102 controls the selector 1103.

第18図にニューロンブロック1100の詳細を示す。本図は
第9図に示したものとほぼ同様の構成となっている。第
18図において、1121〜1125はラッチを示す。1130は乗算
器、1131はα乗算器、1132はη乗算器を示す。1140〜11
41は加算器を示す。
FIG. 18 shows details of the neuron block 1100. This figure has almost the same configuration as that shown in FIG. First
In FIG. 18, reference numerals 1121 to 1125 denote latches. Reference numeral 1130 is a multiplier, 1131 is an α multiplier, and 1132 is an η multiplier. 1140 ~ 11
41 indicates an adder.

1150〜1152はセレクタを示す。1160はメモリ、1161はメ
モリのアドレスを指すポインタを示す。メモリ1160に
は、結合元のニューロンブロック1100のアドレスとそれ
結合係数wと前回の修正値Δwを記憶する。1170は制御
回路を示す。ラッチ1121は逆方向ネットワーク側として
動作するときにのみ使用し、入力データ線1083から送ら
れる(4)(5)式における、f′(u)を取り込む。
ラッチ1122順方向ネットワーク側として動作するとき
は、入力データ線1083から送られる(3)式における学
習信号δを取り込み、逆方向ネットワーク側として動作
するときは、入力データ線1083から送られる(3)式に
おけるxを取り込む。ラッチ1123は逆方向ネットワーク
の出力層として動作するときにのみ使用し、入力データ
線1083から送られる(4)式における教師信号tを取り
込む。セレクタ1150はメモリ1160の結合係数w,入力デー
タ線1083、ラッチ1121、ラッチ1122、ラッチ1124を入力
し、そのうち2つを選び、乗算器1130へ出力する。乗算
器1130は入力した値を乗算し、入力する。セレクタ1151
は、η乗算器1132、メモリ1160の結合係数w、乗算器11
30、ラッチ1122、ラッチ1123、ラッチ1124を入力し、そ
のうち2つを選択し、加算器1140へ出力する。加算器11
40は入力する値を加算または減算し、出力する。ラッチ
1024は加算器1140の出力を取り込む。セレクタ1152は、
ラッチ1124、乗算器1130を入力し、そのうち1つを選択
し、ラッチ1125へ出力する。ラッチ1125は第17図のセレ
クタ1101、1103を通して、出力データ線1084へ出力す
る。α乗算器1131はメモリ1160の前回の修正値Δwを入
力し、定数α倍し、出力する。加算器1141はα乗算器11
31、乗算器1130を入力し、加算して出力する。η乗算器
1132は加算器1141の出力を定数η倍して、出力する。メ
モリ1160は、加算器1140の出力の修正した結合係数w
と、加算器1141の出力の修正値Δwを取り込む。制御回
路1170はモード信号線1080、アドレス信号線1081、クロ
ック信号線1082を入力し、ニューロンブロック1100内の
セレクタの制御及びラッチ、メモリの書き込みの制御を
行う。以上のWSIによる構成について説明したが、第19
図に示すように、チップによっても、構成することがで
きる。第19図において、1400はチップボード、1401はN
チップ、1403はBチップ、1404はコネクタを示す。チッ
プボード1400を第12図におけるWSIボード1030と差し替
えることにより、同様にニューロンコンピューティング
システムを構成することができる。また、チップとWSI
の混在による構成も可能である。Nチップ1401はNブロ
ック1060と同じ機能を持ち、Bチップ1403はBブロック
1062と同じ機能を有する。NチップとBチップをチップ
ボード1400上でウェハ1050と同様となる接続を行えばよ
い。
Reference numerals 1150 to 1152 denote selectors. 1160 is a memory, and 1161 is a pointer that points to the address of the memory. The memory 1160 stores the address of the neuron block 1100 of the connection source, its connection coefficient w, and the previous correction value Δw. Reference numeral 1170 represents a control circuit. The latch 1121 is used only when operating as the reverse network side, and captures f ′ (u) in the equations (4) and (5) sent from the input data line 1083.
Latch 1122 When operating as the forward network side, it takes in the learning signal δ in equation (3) sent from the input data line 1083, and when operating as the reverse network side it is sent from the input data line 1083 (3). Take x in the expression. The latch 1123 is used only when it operates as the output layer of the backward network, and captures the teacher signal t in the equation (4) sent from the input data line 1083. The selector 1150 inputs the coupling coefficient w of the memory 1160, the input data line 1083, the latch 1121, the latch 1122, and the latch 1124, selects two of them, and outputs them to the multiplier 1130. The multiplier 1130 multiplies the input value and inputs it. Selector 1151
Is the η multiplier 1132, the coupling coefficient w of the memory 1160, the multiplier 11
30, latch 1122, latch 1123, and latch 1124 are input, and two of them are selected and output to the adder 1140. Adder 11
40 adds or subtracts the input value and outputs it. latch
1024 takes in the output of the adder 1140. Selector 1152
The latch 1124 and the multiplier 1130 are input, one of them is selected and output to the latch 1125. The latch 1125 outputs to the output data line 1084 through the selectors 1101 and 1103 in FIG. The α multiplier 1131 inputs the previous correction value Δw of the memory 1160, multiplies it by a constant α, and outputs it. The adder 1141 is an α multiplier 11
31 and the multiplier 1130 are input, added, and output. η multiplier
1132 multiplies the output of the adder 1141 by a constant η and outputs the result. The memory 1160 contains the modified coupling coefficient w of the output of the adder 1140.
And the corrected value Δw of the output of the adder 1141 is fetched. The control circuit 1170 inputs the mode signal line 1080, the address signal line 1081, and the clock signal line 1082, and controls the selector and latch in the neuron block 1100 and the memory writing control. The WSI configuration has been described above.
As shown in the figure, it can also be constituted by a chip. In FIG. 19, 1400 is a chip board and 1401 is N
A chip, 1403 is a B chip, and 1404 is a connector. By replacing the chip board 1400 with the WSI board 1030 shown in FIG. 12, a neuron computing system can be similarly constructed. Also chips and WSI
It is also possible to use a mixture of the two. N chip 1401 has the same function as N block 1060, B chip 1403 is B block
It has the same function as 1062. The N chip and the B chip may be connected on the chip board 1400 in the same manner as the wafer 1050.

以上に説明した第12図のシステムの構成がいろいろな動
作を繰り返すことにより、学習を行う。
Learning is performed by repeating various operations in the system configuration of FIG. 12 described above.

第25図は第12図のモード信号線1080に出力するモード信
号の一部を示す図である。各モード信号における簡単な
動作内容について示した。
FIG. 25 is a diagram showing a part of the mode signal output to the mode signal line 1080 of FIG. The simple operation contents for each mode signal are shown.

第12図のシステムは本図のモード信号に従い、いろいろ
な動作を行う。モード信号線1080を1,3,5,8,9,11,13,1
5,17,19に設定することにより、各ラッチ、メモリの初
期値を書き込むことができ。学習動作は時はモード信号
24〜32を使用する。設定する順番に関しては後に第26図
を用いて、説明する。
The system of FIG. 12 performs various operations according to the mode signal of this figure. Mode signal line 1080 1,3,5,8,9,11,13,1
By setting 5,17,19, the initial value of each latch and memory can be written. Learning operation is mode signal when
Use 24 to 32. The order of setting will be described later with reference to FIG.

第25図に従い、第12図のシステムがどのように動作する
か説明し、それに伴い、第12図のシーケンスRAM1013、
第16図の制御回路1071、第17図の制御回路1102、第18図
の制御回路1170の機能についても説明することとする。
According to FIG. 25, how the system of FIG. 12 operates will be explained, and accordingly, the sequence RAM 1013 of FIG.
The functions of the control circuit 1071 in FIG. 16, the control circuit 1102 in FIG. 17, and the control circuit 1170 in FIG. 18 will also be described.

まず、第20図を用いて、IOブロック1061、Bブロック10
62、Nブロック1060及びNブロック1060内のニューロン
ブロック1100にアクセスするためのアドレスについて説
明する。学習動作時の各ニューロンブロック1100のアド
レスは相対アドレスで動作する。WSIでは、欠陥によ
り、全てのニューロンブロック1100を使用することがで
きない可能性が高い。また、本発明では、順方向ネット
ワークと逆方向ネットワークを構成するニューロンブロ
ック1100は1対1に対応している。そのため、各ニュー
ロンブロック1100は、任意の相対アドレスに設定できる
ようにする。相対アドレスを設定するときは、絶対アド
レスによりアクセスする。第20図(a)にウェハ1050内
の各ブロックの絶対アドレスを示す。また、第20図
(b)に絶対アドレスのビット構成を示す。ウェハ1050
内に全部で288個のニューロンブロック1100があるの
で、ウェハ内の絶対アドレスは9ビットとする。また、
それに、ボードアドレス4ビットを加える。なお、ボー
ドアドレスは第12図のデコード1085必要なもので、ウェ
ハ1050内へ送る必要はない。多くのボードを接続する場
合は、ボードアドレスのビットを増やせばよい。ウェハ
ナ内絶対アドレスのうち、3ビットは行アドレス、1ビ
ットは右/左アドレス、2ビットは列アドレス、3ビッ
トはNブロック内ニューロンブロックアドレスを示す。
行アドレスとは、ウェハ1050の下段からの0〜7行を示
す。右/左アドレスは、中心より、右か左かを示す。列
アドレスはどの列かを示す。Nブロック内ニューロンブ
ロックアドレスはNブロック1060内の6個のニューロン
ブロックのうちどれかを示す。Nブロック内アドレスの
ニューロンブロックアドレスを第20図(b)に示す。ま
た、第20図(c)に、チップボード1400内の絶対アドレ
スを示す。
First, referring to FIG. 20, IO block 1061, B block 10
62, N block 1060 and addresses for accessing the neuron block 1100 in the N block 1060 will be described. The address of each neuron block 1100 during the learning operation operates with a relative address. WSI is likely to be unable to use all neuron blocks 1100 due to defects. Further, in the present invention, the neuron blocks 1100 forming the forward network and the backward network have a one-to-one correspondence. Therefore, each neuron block 1100 can be set to any relative address. When setting a relative address, access with an absolute address. FIG. 20A shows the absolute address of each block in the wafer 1050. Further, FIG. 20 (b) shows the bit structure of the absolute address. Wafer 1050
Since there are a total of 288 neuron blocks 1100 inside, the absolute address within the wafer is 9 bits. Also,
Add 4 bits to the board address. The board address is necessary for decoding 1085 in FIG. 12 and need not be sent to the wafer 1050. When connecting many boards, increase the bits of the board address. Of the absolute address within the wafer, 3 bits indicate the row address, 1 bit indicates the right / left address, 2 bits indicate the column address, and 3 bits indicate the neuron block address in the N block.
The row address indicates rows 0 to 7 from the lower stage of the wafer 1050. The right / left address indicates right or left with respect to the center. The column address indicates which column. The neuron block address in the N block indicates any one of the 6 neuron blocks in the N block 1060. The neuron block address of the address in the N block is shown in FIG. 20 (b). Further, FIG. 20 (c) shows an absolute address in the chip board 1400.

第21図に第16図の制御回路1071を示す。また、第22図に
第17図の制御回路1102を第23図に第18図の制御回路1170
を示す。まず、この3つの図を用い、アドレスのデコー
ド方法について説明する。
FIG. 21 shows the control circuit 1071 of FIG. Further, FIG. 22 shows the control circuit 1102 of FIG. 17 and FIG. 23 shows the control circuit 1170 of FIG.
Indicates. First, the address decoding method will be described with reference to these three figures.

第21図において、1501は絶対アドレスの列アドレスをデ
コードする列デコードである。
In FIG. 21, reference numeral 1501 is a column decode for decoding the column address of the absolute address.

1502は絶対アドレスの行アドレスをデコードする行デコ
ーダ示す。1503はモード信号線をデコードするデコーダ
を示す。1506〜1507はラッチを示す。1504はインバータ
回路、1505はアンド回路を示す。1511〜1512は引き算回
路で、アドレス信号線1081に送られる相対アドレスとラ
ッチ1506、1507に予め書き込まれてい値と引き算を行
い、その結果の符号を出力する。
Reference numeral 1502 denotes a row decoder which decodes an absolute address row address. Reference numeral 1503 denotes a decoder for decoding the mode signal line. Reference numerals 1506 to 1507 denote latches. Reference numeral 1504 represents an inverter circuit, and 1505 represents an AND circuit. Reference numerals 1511 to 1512 denote subtraction circuits, which subtract the relative address sent to the address signal line 1081 and the values previously written in the latches 1506 and 1507, and output the sign of the result.

1509〜1510はセレクタで、絶対アドレスによるデコーダ
の結果と相対アドレスによるデコードの結果のいずれか
を選択し、出力する。デコーダ1503よりセレクタ1509、
1510に接続される制御線は絶対アドレスか相対アドレス
かを選択するものである。1520はNブロックセレクト線
を示す。
Reference numerals 1509 to 1510 denote selectors for selecting and outputting either the result of the decoder by the absolute address or the result of the decoding by the relative address. Selector 1509 from decoder 1503,
The control line connected to the 1510 selects either an absolute address or a relative address. Reference numeral 1520 indicates an N block select line.

第22図において、1607はモード信号線1080をデコードす
るデコーダである。
In FIG. 22, 1607 is a decoder for decoding the mode signal line 1080.

1604はラッチで、入力データ線1083の出力を取り込むこ
とができる。その制御はデコーダ1607が行う。1603は引
き算回路で、アドレス信号線1081に送られる相対アドレ
スとラッチ1604に予め書き込まれている値と引き算を行
い、その結果の符号を出力する。1601〜1602はセレクタ
を示す。セレクタ1601は、列アドレスの絶対アドレスの
デコード結果であるNブロックセレクト線1520と相対ア
ドレスによるデコード結果のいずれかを選択し、出力す
る。セレクタ1602は、Nブロック内の絶対アドレスのデ
コード結果と相対アドレスのデコード結果を選択するも
のである。デコード1607よりセレクタ1601、1602に接続
される制御線は絶対アドレスか相対アドレスかを選択す
るものである。また、Nブロックセレクト線1520を捻じ
り、隣りのブロックと接続するのは、各列のNブロック
1060を同一パターンとすることができるからである。そ
れにより、半導体マスク設計工数を低減することができ
る。1605はデコーダでアドレス信号線1081のうち、絶対
アドレスのNブロック内アドレスをデコードする。
1604 is a latch, which can capture the output of the input data line 1083. The control is performed by the decoder 1607. Reference numeral 1603 denotes a subtraction circuit, which subtracts the relative address sent to the address signal line 1081 and the value previously written in the latch 1604, and outputs the sign of the result. Reference numerals 1601 to 1602 denote selectors. The selector 1601 selects and outputs either the N block select line 1520 which is the decoding result of the absolute address of the column address or the decoding result of the relative address. The selector 1602 selects the decoding result of the absolute address and the decoding result of the relative address in the N block. The control line connected to the selectors 1601 and 1602 from the decode 1607 selects an absolute address or a relative address. The N block select line 1520 is twisted and connected to the adjacent block is the N block in each row.
This is because 1060 can have the same pattern. As a result, the man-hours for designing the semiconductor mask can be reduced. A decoder 1605 decodes the address in the N block of the absolute address on the address signal line 1081.

1606はエンコーダで6個の各ニューロンブロック1100に
おいて、アドレスをデコードされた結果を入力する。
An encoder 1606 inputs the result of decoding the address in each of the six neuron blocks 1100.

第23図において、1701はラッチで、入力データ線1083に
出力される自分の相対アドレスを取り込む。また、相対
アドレスの他、自分が順方向ネットワーク側として動作
するのか、逆方向ネットワーク側で動作するのか、ま
た、逆方向ネットワーク側で動作する場合は、さらに、
中間層なのか、出力層なのかを示す情報も取り込む。17
03は比較回路で、アドレス信号線1081に出力される相対
アドレスと予め書き込まれているラッチ1701の自分の相
対アドレスを比較し、一致しているかどうをデコーダ17
02へ送る。また、その結果は第22図のデコーダ1605へも
出力する。1704は比較回路で、第18図のメモリ1160の結
合元アドレスとアドレス信号線1081に出力される相対ア
ドレスを比較する。1702はデコーダで、比較回路1703、
ラッチ1701、モード1081、第22図のデコーダ1605、クロ
ック4信号線1082、比較回路1704、第22図のセレクタ16
01を入力し、ニューロンブロック1100内のセレクタ、ラ
ッチ、メモリ、ポインタ、またラッチ1701の制御を行
う。
In FIG. 23, reference numeral 1701 denotes a latch which takes in its own relative address output to the input data line 1083. In addition to the relative address, whether it operates as the forward network side, the reverse network side, or the reverse network side, further,
Information indicating whether it is the middle layer or the output layer is also fetched. 17
Reference numeral 03 is a comparison circuit, which compares the relative address output to the address signal line 1081 with the relative address of the latch 1701 that has been written in advance and determines whether or not they match.
Send to 02. The result is also output to the decoder 1605 shown in FIG. Reference numeral 1704 is a comparison circuit, which compares the connection source address of the memory 1160 of FIG. 18 with the relative address output to the address signal line 1081. 1702 is a decoder, which is a comparison circuit 1703,
Latch 1701, mode 1081, decoder 1605 in FIG. 22, clock 4 signal line 1082, comparison circuit 1704, selector 16 in FIG.
Input 01 to control the selector, latch, memory, pointer, and latch 1701 in the neuron block 1100.

第25図には、動作を説明するのに必要な事項のみ示した
が、検査のために、ラッチ、メモリなどの書き込み読み
出しなどを行うためのモード信号も設定する。
Although only the items necessary for explaining the operation are shown in FIG. 25, a mode signal for performing writing / reading of a latch, a memory, etc. is also set for inspection.

まず、初期設定として絶対アドレスにより、相対アドレ
スと、順方向ネットワークまたは逆方向ネットワーク、
また、中間層または出力層を示す情報の2ビットを各ニ
ューロンブロク110の第23図の制御回路1170のラッチ170
1に書き込む。ホストコンピュータ1000により、第12図
のセレクタ1051、1052を外部バス1021側とする。モード
信号線1080を17に設定し、アクセスするニューロンブロ
ック1100の絶対アドレスをアドレス信号線1081に設定す
る。書き込みたい値を入力データ線1083に設定する。WS
Iボード1030では、デコーダ1085により、ボードアドレ
スをデコードし、自分のアドレスのときのみ、ウェハ10
50のラッチ、メモリ等の書き込みを行うように制御す
る。
First, the relative address and the forward network or the reverse network,
In addition, 2 bits of information indicating the intermediate layer or the output layer is set to the latch 170 of the control circuit 1170 of each neuron block 110 of FIG.
Write to 1. The host computer 1000 sets the selectors 1051 and 1052 in FIG. 12 to the external bus 1021 side. The mode signal line 1080 is set to 17 and the absolute address of the neuron block 1100 to be accessed is set to the address signal line 1081. The value to be written is set in the input data line 1083. WS
In the I board 1030, the decoder 1085 decodes the board address, and the wafer 10
Control to write 50 latches, memory, etc.

絶対アドレスによる動作では、第21図の行デコーダ1502
により、行アドレスをデコードし、もし、その行が選択
されているかどうかがわかる。また、列デコーダ1501に
より、列アドレスを選択し、1〜4個その行方向にある
Nブロック1060のうち1個をそれに接続されているNブ
ロックセレクト線1520により選択するまた、右/左ビッ
トにより、右側または左側のNブロック1060かを選択す
る。行デコーダ1502の結果と右/左アドレスをアンド回
路1505によりアンドし、左側のデコーダ1501のイネーブ
ル信号にする。また、行デコーダ1502の結果と右/左ア
ドレスをインバータ回路1504により論理反転したものと
をアンド回路1505によりアンドし、その結果をデコーダ
1501のイネーブル信号とする。選択されたNブロック10
60内においては、第22図のデコーダ1605により、Nブロ
ック内アドレスをデコードし、各ニューロンブロック11
00内の第23図の制御回路1170へその結果を出力する。ま
た、セレクタ1601のNブロックの選択結果も制御回路11
70へ出力する。セレクト線制御回路1170のデコーダ1702
の制御より、モード信号が17でかつ自分が選択されてい
れば、そのラッチ1701に入力信号線1083に出力されてい
る値を取り込む。以上の動作により全てのニューロンブ
ロック1100のラッチ1701へ書き込む。ただし、同一のウ
ェハ内における相対アドレスは絶対アドレスの小さなも
のから多きなものに向かって増やす。空番号が存在して
もよい。これは、次に説明する出力データ線1084の制御
方法にかかわってくる。
For absolute address operation, the row decoder 1502 of FIG.
Will decode the row address and will tell if the row is selected. Further, the column decoder 1501 selects a column address, and one to four N blocks 1060 in the row direction are selected by an N block select line 1520 connected to the column address. , N block 1060 on the right or left side is selected. The result of the row decoder 1502 and the right / left address are ANDed by the AND circuit 1505 to be the enable signal of the left decoder 1501. Further, the result of the row decoder 1502 and the logical inversion of the right / left address by the inverter circuit 1504 are ANDed by the AND circuit 1505, and the result is decoded by the AND circuit 1505.
This is the enable signal for 1501. Selected N blocks 10
In the 60, the decoder 1605 shown in FIG.
The result is output to the control circuit 1170 in FIG. 23 in 00. The selection result of the N block of the selector 1601 is also the control circuit 11.
Output to 70. Decoder 1702 of select line control circuit 1170
Under the control of (1), if the mode signal is 17 and the self is selected, the value output to the input signal line 1083 is fetched in the latch 1701. By the above operation, data is written in the latches 1701 of all neuron blocks 1100. However, relative addresses within the same wafer are increased from smaller absolute addresses to larger relative addresses. There may be an empty number. This is related to the control method of the output data line 1084 described below.

次に、全てのNブロック1060の第22図のラッチ1604を設
定する。モード信号を15に設定しラッチ1604にはそのN
ブロック1060内のニューロンブロック1100に設定されさ
相対アドレスの最も大きな値を書き込む。ホストコンピ
ュータ1000によりモード信号線1080を15に設定し、アク
セスするNブロック1060の絶対アドレスをアドレス信号
線1081に設定する。Nブロック内ニューロンブロックア
ドレスの設定は不要である。書き込みたい値を入力デー
タ線1083に設定する。相対アドレスによる動作時のNブ
ロック1060における出力データ線1084の制御、即ち、第
17図にのセレクタ1103の制御は第22図の引き算回路1603
により、アドレス信号線1081からラッチ1604を引いた結
果の符号ビットにより行う。ラッチ1604には、そのNブ
ロック1060内のニューロンブロック1100の最大の相対ア
ドレスが書き込まれているので、そのNブロック1060よ
り外側のニューロンブロック1100は、ラッチ1604に書き
込まれた値より大きな相対アドレス設定されている。そ
のため、アドレス信号線1081がラッチ1604より大きな値
となる場合には、第17図のセレクタ1103を隣のNブロッ
ク1060に接続されている出力データ線1084を選択する。
Next, the latches 1604 of FIG. 22 of all N blocks 1060 are set. Set the mode signal to 15 and set the latch 1604 to N
The largest value of the relative addresses set in the neuron block 1100 in the block 1060 is written. The mode signal line 1080 is set to 15 by the host computer 1000, and the absolute address of the N block 1060 to be accessed is set to the address signal line 1081. It is not necessary to set the neuron block address in the N block. The value to be written is set in the input data line 1083. Control of the output data line 1084 in the N block 1060 during operation by the relative address, that is,
The selector 1103 shown in FIG. 17 is controlled by the subtraction circuit 1603 shown in FIG.
Thus, it is performed by the sign bit of the result of subtracting the latch 1604 from the address signal line 1081. Since the maximum relative address of the neuron block 1100 in the N block 1060 is written in the latch 1604, the neuron block 1100 outside the N block 1060 has a relative address set larger than the value written in the latch 1604. Has been done. Therefore, when the address signal line 1081 has a value larger than that of the latch 1604, the selector 1103 in FIG. 17 selects the output data line 1084 connected to the adjacent N block 1060.

次に、全てのIOブロック1061、Bブロック1062の第21図
のラッチ1507にその行のニューロブロック1100に設定さ
れた最大の相対アドレスを書き込む。ホストコンピュー
タ1000により、モード信号線1080を11に設定し、アクセ
スするIOブロック1061またはBブロック1062の絶対アド
レスの行アドレスをアドレス信号線1081に設定する。右
/左アドレス、列アドレス、Nブロック内アドレスの設
定は不要である。書き込む値を入力データ線1083に設定
する。
Next, the maximum relative address set in the neuro block 1100 of that row is written in the latches 1507 of FIG. 21 of all IO blocks 1061 and B blocks 1062. The mode signal line 1080 is set to 11 by the host computer 1000, and the absolute address row address of the IO block 1061 or B block 1062 to be accessed is set to the address signal line 1081. It is not necessary to set right / left addresses, column addresses, and addresses within N blocks. The value to be written is set in the input data line 1083.

IOブロック1061,Bブロック1062における出力データセン
1084の制御、即ち、第16図のセレクタ1075の制御は第21
図の引き算回路1512により、アドレス信号線1081からラ
ッチ1507をいた結果の符号ビットにより行う。ラッチ15
07には、その行にあるニューロンブロック1100の最大の
相対アドレスが書き込まれているので、そのブロックよ
り上方のニューロンブロック1100には、ラッチ1507の値
より大きな相対アドレスが設定されている。そのため、
アドレス信号線1081がラッチ1507より大きな値となる場
合には、第16図のセレクタ1075を上方のBブロック1062
に接続されている出力データ線1084を選択する。
Output data sensor in IO block 1061 and B block 1062
The control of 1084, that is, the control of the selector 1075 of FIG.
The subtraction circuit 1512 shown in the figure performs the operation according to the sign bit of the result obtained by the latch 1507 from the address signal line 1081. Latch 15
Since the maximum relative address of the neuron block 1100 in that row is written in 07, the neuron block 1100 above that block is set with a relative address larger than the value of the latch 1507. for that reason,
When the address signal line 1081 has a value larger than that of the latch 1507, the selector 1075 shown in FIG.
Select the output data line 1084 connected to.

次に、全てのIOブロック1061、Bブロック1062の第21図
のラッチ1506にその行の右側のリューロンブロック1100
に設定された最大の相対アドレスを書き込む。ホストコ
ンピュータ1000により、モード信号線1080を13に設定
し、アクセスするIOブロック1061またはBブロック1062
の絶対アドレスの行アドレスをアドレス信号線1081に設
定する。右/左アドレス、列アドレス、Nブロック内ア
ドレスの設定は不要である。書き込む値を入力データセ
ン1083に設定する。第16図のセレクタ1072の制御は第21
図の引き算回路1511により、アドレス信号線1081からラ
ッチ1506を引きた結果の符号ビットにより行う。ラッチ
1506には、その行の右側にあるニューロンブロック1100
の最大の相対アドレスが書き込まれているので、左側の
ニューロンブロック1100には、ラッチ1506の値よりも大
きな相対アドレスが設定されている。そのため、アドレ
ス信号線1081がラッチ1506より大きな値となる場合に
は、第16図のセレクタ1072は左側と接続されている出力
データセン1084を選択する。
Next, for all IO blocks 1061 and B blocks 1062, the latch 1506 in FIG.
Write the maximum relative address set in. The mode signal line 1080 is set to 13 by the host computer 1000, and the IO block 1061 or B block 1062 is accessed.
The row address of the absolute address of is set to the address signal line 1081. It is not necessary to set right / left addresses, column addresses, and addresses within N blocks. The value to be written is set in the input data center 1083. The control of selector 1072 in FIG.
The subtraction circuit 1511 shown in the figure performs the operation based on the sign bit of the result obtained by subtracting the latch 1506 from the address signal line 1081. latch
1506 contains the neuron block 1100 to the right of that row.
Since the maximum relative address of is written, a relative address larger than the value of the latch 1506 is set in the left neuron block 1100. Therefore, when the address signal line 1081 has a value larger than that of the latch 1506, the selector 1072 in FIG. 16 selects the output data sensor 1084 connected to the left side.

次に、IOブロック図1061、Bブロック1062の第16図の変
換テーブル1070の書き込みを行う。順方向ネットワーク
を構成するウェハ1050の変換テーブル1070は(1)式は
のf変換を、また、逆方向ネットワークを構成するウェ
ハ1050の変換テーブル1070は(4)(5)式のf′変換
を行う。
Next, the conversion table 1070 of FIG. 16 of the IO block diagram 1061 and B block 1062 is written. The conversion table 1070 of the wafer 1050 forming the forward network uses the f conversion of equation (1), and the conversion table 1070 of the wafer 1050 forming the reverse network uses the f ′ conversion of equations (4) and (5). To do.

ホストコンピュータ1000により、モード信号線1080を9
に設定し、アドレス号線1081にアクセスするIOブロック
1061、Bブロック1062の絶対アドレスの行アドレスを設
定する右/左アドレス、列アドレス、Nブロック内アド
レスのビットに変換テーブル1070のアクセスしたいアド
レスを設定する。もし、7ビットで不足する場合は、ア
ドレス信号線1081のビット数を増やす。入力データ線10
83に書き込みたい値を設定する。IOブロック1061、各B
ブロック1062では、第21図の行デコーダ1502により、行
アドレスをデコードし、自分が選択されていれば、入力
データ線1083に出力されている値を変換テーブル1070に
書き込む。
The mode signal line 1080 is set to 9 by the host computer 1000.
I / O block to access address line 1081
1061 and B block 1062 sets the absolute address row address, and sets the right / left address, column address, and bit in the N block address to the address to be accessed in the conversion table 1070. If 7 bits are insufficient, the number of bits of the address signal line 1081 is increased. Input data line 10
Set the value you want to write in 83. IO block 1061, each B
In block 1062, the row decoder 1502 shown in FIG. 21 decodes the row address, and if the row address is selected, the value output to the input data line 1083 is written in the conversion table 1070.

次に、第12図の入力層メモリ1010に入力層ニューロンの
出力を教師信号メモリ1012に教師信号を書き込む。一般
に、ニューラルネットは、いろいろなパターンを学習さ
せるので、入力層メモリ1010は各パターンごとにセグメ
ント化する。同様に、各パターンに対応する教師信号を
書き込む教師信号メモリ1012もセグメント化する。各パ
ターンごとにアクセスするセグメントを変える。ホスト
コンピュータ1000により、それぞれ、モード信号を1、
3に設定し、アドレス信号を線1081に信号線1081にアド
レスを設定し、各メモリに値を書き込む。
Next, the output of the input layer neuron is written in the input layer memory 1010 of FIG. 12 and the teacher signal is written in the teacher signal memory 1012. In general, since the neural network trains various patterns, the input layer memory 1010 is segmented for each pattern. Similarly, the teacher signal memory 1012 for writing the teacher signal corresponding to each pattern is also segmented. Change the segment to be accessed for each pattern. The host computer 1000 sends a mode signal of 1,
3, the address signal is set to the line 1081, the address is set to the signal line 1081, and the value is written in each memory.

次に、使用するニューロンブロック1100のメモリ1160に
結合係数の初期値を書き込む。モード信号を19に設定
し、まず、アドレス信号線1081にアクセスするニューロ
ンブロック1100のアドレスを設定し、その後アドレス信
号線1081にメモリ1160の書き込むアドレスを設定し、入
力データ線1083に書き込む値を設定する。このように、
アドレス信号線1081を時分割に使用してもよいし、始め
ポインタ1161を0にして、アドレス0から書き込み、順
次ポインタを1づつ進めて、メモリ1160にき込むことも
できる。メモリ1160には、結合するニューロンブロック
110の相対アドレスと、それとの結合係数wと、前回の
修正値Δwを書き込む。ただし、Δwの初期値は0でよ
い。また、学習動作を途中で中断し、途中結果をホスト
コンピュータ1000に読み出し、また、学習を再開すると
きなどは、それに応じて、必要な値を書き込むことにな
る。また、順方向ネットワークと逆方向ネットワークの
対応している結合係数の初期値は同じ値にする必要があ
る。
Next, the initial value of the coupling coefficient is written in the memory 1160 of the neuron block 1100 to be used. Set the mode signal to 19, first set the address of the neuron block 1100 that accesses the address signal line 1081, then set the write address of the memory 1160 to the address signal line 1081 and set the value to write to the input data line 1083. To do. in this way,
The address signal line 1081 may be used in a time division manner, or the pointer 1161 may be set to 0 at the beginning to write from address 0, and the pointer may be sequentially advanced by 1 to be written into the memory 1160. In memory 1160, connect neuron blocks
The relative address of 110, the coupling coefficient w with it, and the previous correction value Δw are written. However, the initial value of Δw may be 0. Further, when the learning operation is interrupted halfway, the intermediate result is read to the host computer 1000, and when the learning is restarted, the necessary value is written accordingly. Also, the initial values of the corresponding coupling coefficients of the forward network and the backward network must be the same.

次に、第24図に示すようにシーケンスRAM1013に学習を
行うための一連のモード信号と出力を行うニューロンブ
ロック1100の相対アドレスを書き込む。
Next, as shown in FIG. 24, a series of mode signals for learning and a relative address of the neuron block 1100 for outputting are written in the sequence RAM 1013.

第26図にその例を示す。第26図では、入力層ニューロン
数3、中間層ニューロン数2、出力層ニューロン数2の
ニューラルネットの学習を行うためのシーケンスRAM101
3の例である。第26図には、1パターンの学習を示す
が、2パターン以上ある場合は、パターンを変えるごと
に、入力層メモリ、教師信号メモリのセグメントを変え
る必要がある。
Figure 26 shows an example. In FIG. 26, a sequence RAM 101 for learning a neural network having three input layer neurons, two intermediate layer neurons, and two output layer neurons.
Here is an example of 3. FIG. 26 shows learning of one pattern, but when there are two or more patterns, it is necessary to change the segments of the input layer memory and the teacher signal memory each time the pattern is changed.

以下に、学習動作を第26図に従い、説明する。入力層ニ
ューロンの相対アドレスを0〜2、中間層ニューロンの
相対アドレスを3〜4、出力層ニューロンの相対アドレ
スを5〜6とする。順方向ネットワークを構成するボー
ドアドレスを3、逆方向ネットワークを構成するボード
アドレスを4とし、2枚のボードを使用している。
The learning operation will be described below with reference to FIG. The relative address of the input layer neuron is 0 to 2, the relative address of the intermediate layer neuron is 3 to 4, and the relative address of the output layer neuron is 5 to 6. Two boards are used, where the board address forming the forward network is 3, the board address forming the reverse network is 4.

逆方向ネットワークは入力層ニューロンを必要としない
ので、全部で8個のニューロンブロック1100を使用す
る。入力層メモリ、教師信号メモリはボードアドレスを
それぞれ0、1である。
The backward network does not require input layer neurons, so a total of eight neuron blocks 1100 are used. The board addresses of the input layer memory and the teacher signal memory are 0 and 1, respectively.

まず、ポンプ1086をリセットする。シーケンスRAM1013
はアドレス0に書き込まれている命令とアドレスをそれ
ぞれ、モード信号線1080、アドレス信号線1081に出力す
る。それより、モード信号線1080を24に設定し、アドレ
ス信号線にアドレス5を設定する。また、ボードアドレ
スを1に設定する。デコーダ1085によりボードアドレス
をデコードシ、教師信号メモリ1012の出力を入力データ
線1083へ出力バッファ1040を通して、出力させる。教師
信号メモリ1012は、アドレス信号線1081に指定されるア
ドレス5の値を出力をする。逆方向ネットワーク側の出
力層の相対アドレスが5のニューロンブロック1100は入
力データ線1083に出力されている自分の教師信号を第18
図のラッチ1123に取り込む。同様に相対アドレスが6の
逆方向ネットワークの出力層のニューロンブロック100
に対しても行う。
First, the pump 1086 is reset. Sequence RAM 1013
Outputs the command and the address written in the address 0 to the mode signal line 1080 and the address signal line 1081, respectively. Therefore, the mode signal line 1080 is set to 24 and the address 5 is set to the address signal line. Also, the board address is set to 1. The decoder 1085 decodes the board address and outputs the output of the teacher signal memory 1012 to the input data line 1083 through the output buffer 1040. The teacher signal memory 1012 outputs the value of the address 5 designated by the address signal line 1081. The neuron block 1100 having a relative address of 5 in the output layer on the backward network side outputs its own teacher signal output to the input data line 1083 to the eighteenth signal.
Capture in latch 1123 as shown. Similarly, the neuron block 100 in the output layer of the backward network with relative address 6
Also to.

ここで、ラッチ、メモリ等に書き込むには、アドレスの
ホールド時間や書き込むデータのホールド時間が必要で
ある。そのため、クロック信号線1082のクロック信号に
より、それらへのライトイネーブル信号のタイミングを
作る。
Here, in order to write data in a latch, a memory, etc., an address hold time or write data hold time is required. Therefore, the timing of the write enable signal to them is generated by the clock signal of the clock signal line 1082.

次に、ポインタ1086はクロック信号線1082よりクロック
を入力すると、第12図のポインタ1086は1つ進み、次の
命令に移る。モード信号線1080を25に設定し、第18図の
ポインタ1161をリセットする。また、第18図のニューロ
ンブロック110内のラッチ1124の内容もリセットする。
Next, when the pointer 1086 inputs a clock from the clock signal line 1082, the pointer 1086 in FIG. 12 advances by 1 and moves to the next instruction. The mode signal line 1080 is set to 25, and the pointer 1161 in FIG. 18 is reset. Also, the contents of the latch 1124 in the neuron block 110 of FIG. 18 are reset.

次の命令では、順方向動作を行う。モード信号線1080を
26に設定し、アドレス信号線は、入力層から出力層に向
かって、相対アドレスの小さい順にニューロンブロック
1100が指定する。ボードアドレスは入力層ではボードア
ドレス0を、そして、中間層、出力層ではボードアドレ
ス3を設定する。指定された入力層メモリ1010は入力デ
ータ線1083へ、その値を出力し、全てのニューロンブロ
ック1100へブロードキャストする。ニューロンブロック
1100では、26に設定されているモード信号線1080を第23
図のデコーダ1702でデコードし、第18図のニューロンブ
ロック1100の各セレクタを制御する。セレクタ1150はメ
モリ1160の結合係数wと入力データ線1083を乗算器1130
へ出力する。乗算器1130により、結合係数wとニューロ
ンの出力xとのシナプス演算、即ち、乗算を行う。セレ
クタ1151は乗算器1130とラッチ1124を加算器1140へ出力
するラッチ1124に加算器1140の出力を書き込む。セレク
タ1152はセレクタ114を選択する。ラッチ1125はその値
を取り込む。第23図の制御回路1170の比較回路1704によ
り、メモリ1160の結合元アドレスとアドレス信号線1081
に出力されているアドレスを比較し、一致しているとき
に、ラッチ1124と乗算器1130の出力を加算し、その結果
をラッチ1124に書き込む。そして、第18図のポイン1161
の値を1つ進める。このように、順次、アドレス信号線
1081に送られる出力元の相対アドレスと入力データ線10
83に送られるその出力を入力し、累積加算を行う。メモ
リ1160には、結合元アドレスの小さい順に書き込んでお
く。また、アドレス信号線1081と第23図のラッチ1701の
書き込まれた自分の相対アドレスを比較回路1703によ
り、比較し、一致していれば累積加算の結果、即ち、ラ
ッチ1125の内部エネルギー値uを第17図のセレクタ110
1、1103、出力データ線1084を通して、第16図のセレク
タ1072に送られる。IOブロック1061、Bブロック1062の
第21図のデコーダ1503は、モード信号が26に設定されて
いるとき、セレクタ1073はセレクタ1072側を選択し、セ
レクタ1074は変換テーブル1070を選択する。また、セレ
クタ1076は下側から送られる入力データ線1083をそのま
ま、サイドのNブロック1060に送るように、入力データ
線1083側を選択する。セレクタ1072、1075はアドレス信
号線1081を前述の方法により、制御する。これにより、
相対アドレスを指定されたニューロンブロック1100の出
力である内部エネルギー値uはその行の変換テーブル10
70に送られ、ニューロンの出力xに変換され、出力デー
タ線1084により、第12図のコントロールボード1003へ送
られる。第12図のセレクタ1052は、出力データ線1084の
値を、そのまま、入力データ線1083へ出力する。
The next instruction performs a forward operation. Mode signal line 1080
26, the address signal lines are connected to the neuron blocks from the input layer to the output layer in ascending order of relative address.
1100 specifies. As the board address, board address 0 is set in the input layer, and board address 3 is set in the intermediate layer and the output layer. The designated input layer memory 1010 outputs the value to the input data line 1083 and broadcasts it to all neuron blocks 1100. Neuron block
In the 1100, the mode signal line 1080 set to 26
The decoder 1702 shown in the figure decodes and controls each selector of the neuron block 1100 shown in FIG. The selector 1150 multiplies the coupling coefficient w of the memory 1160 and the input data line 1083 by the multiplier 1130.
Output to. The multiplier 1130 performs a synapse operation, that is, a multiplication between the coupling coefficient w and the output x of the neuron. The selector 1151 writes the output of the adder 1140 into the latch 1124 which outputs the multiplier 1130 and the latch 1124 to the adder 1140. The selector 1152 selects the selector 114. Latch 1125 captures that value. By the comparison circuit 1704 of the control circuit 1170 of FIG. 23, the connection source address of the memory 1160 and the address signal line 1081
The outputs of the latch 1124 and the multiplier 1130 are added, and the results are written in the latch 1124. Then, the point 1161 shown in FIG.
Advances the value of by one. In this way, the address signal lines are sequentially
Output source relative address sent to 1081 and input data line 10
The output sent to 83 is input and cumulative addition is performed. The memory 1160 is written in the ascending order of the source address. Further, the address signal line 1081 and its own relative address written in the latch 1701 of FIG. 23 are compared by the comparison circuit 1703. Selector 110 in FIG. 17
It is sent to the selector 1072 of FIG. 16 through 1, 1103 and the output data line 1084. In the decoder 1503 of FIG. 21 of the IO block 1061 and the B block 1062, when the mode signal is set to 26, the selector 1073 selects the selector 1072 side and the selector 1074 selects the conversion table 1070. Further, the selector 1076 selects the input data line 1083 side so that the input data line 1083 sent from the lower side is sent to the side N block 1060 as it is. The selectors 1072 and 1075 control the address signal line 1081 by the method described above. This allows
The internal energy value u which is the output of the neuron block 1100 whose relative address is specified is the conversion table 10 of that row.
It is sent to 70, converted into the output x of the neuron, and sent to the control board 1003 of FIG. 12 through the output data line 1084. The selector 1052 in FIG. 12 outputs the value of the output data line 1084 as it is to the input data line 1083.

また、このモードにおける逆方向ネットワーク側では、
第18図において、アドレス信号線1081に自分の相対アド
レスが出力されたときに、入力データ線1083の値をラッ
チ1122に取り込む。
Also, on the reverse network side in this mode,
In FIG. 18, when the relative address of itself is output to the address signal line 1081, the value of the input data line 1083 is taken into the latch 1122.

次の動作では、モード信号線1080を27に設定し、中間層
と出力層の相対アドレスをアドレス信号1081に順次設定
していく。相対アドレスを指定された順方向ネットワー
クのニューロンブロック1100は再び第18のラッチ1125の
内容、即ち、内部エネルギー値uを第16図のIOブロック
1061、Bブロック1062へ送る。モード27において、IOブ
ロック1061、Bブロック1062のセレクタ1074はセレクタ
1072を選択する。そのため、内部エネルギー値uがその
まま下側の出力データ線1084へ出力する。アドレス信号
線1081のデコード方法に関しては、モード26と同様であ
る。内部エネルギー値uは、第12図のコントロールボー
ドを通り、出力データ線1084へ出力される。一方、逆方
向ネットワークのIOブロック1061、Bブロック1062で
は、セレクタ1073を入力データセン1083側に、セレクタ
1074を変換テーブル1071側に、セレクタ1076をセレクタ
1074側に設定する。入力データ線1083により送られる内
部エネルギー値uは、変換テーブル1071により、f′変
換して、f′(u)となり、サイドのNブロック1060へ
入力データ線1083により出力する。逆方向ネットワーク
の第18図のニューロンブロック1100では、アドレス信号
線1081に出力されるアドレスと自分の相対アドレス一致
すれば、入力データ線1083に出力されいるf′(u)を
ラッチ1121に取り込む。
In the next operation, the mode signal line 1080 is set to 27, and the relative addresses of the intermediate layer and the output layer are sequentially set to the address signal 1081. The neuron block 1100 of the forward network specified with the relative address again returns the contents of the 18th latch 1125, that is, the internal energy value u to the IO block of FIG.
1061, B block 1062. In mode 27, the selector 1074 of the IO block 1061 and B block 1062 is a selector
Select 1072. Therefore, the internal energy value u is output to the lower output data line 1084 as it is. The decoding method of the address signal line 1081 is the same as in mode 26. The internal energy value u passes through the control board of FIG. 12 and is output to the output data line 1084. On the other hand, in the reverse direction IO block 1061 and B block 1062, the selector 1073 is set to the input data sensor 1083 side,
1074 is the conversion table 1071 side, selector 1076 is the selector
Set on the 1074 side. The internal energy value u sent through the input data line 1083 is converted into f ′ (u) by the conversion table 1071 and becomes f ′ (u), which is output to the side N block 1060 through the input data line 1083. In the reverse direction network neuron block 1100 of FIG. 18, if the address output to the address signal line 1081 and its own relative address match, f ′ (u) output to the input data line 1083 is taken into the latch 1121.

次にモード信号線1080を28に設定する。逆方向ネットワ
ークの出力層のニューロンブロック1100はセレクタを次
のように設定する。第18図において、セレクタ1151はラ
ッチ1122とラッチ1123を加算消1140に出力する。加算器
1140により(t−x)を計算し、ラッチ1124へ書き込
む。セレクタ1150はラッチ1124とラッチ1121を乗算器11
30へ出力する。乗算器1130により、ラッチ1124の(t−
x)とラッチ1121のf′(u)の乗算を行い出力層の学
習信号δを計算する。セレクタ1152は乗算器1130の出力
をラッチ1125へ出力する。ラッチ1125に学習信号δを書
き込む。
Next, the mode signal line 1080 is set to 28. The neuron block 1100 in the output layer of the backward network sets the selector as follows. In FIG. 18, the selector 1151 outputs the latch 1122 and the latch 1123 to the addition and subtraction 1140. Adder
Calculate (t−x) by 1140 and write to latch 1124. Selector 1150 multiplies latch 1124 and latch 1121 by multiplier 11
Output to 30. The multiplier 1130 causes the latch 1124 (t−
x) is multiplied by f ′ (u) of the latch 1121 to calculate the learning signal δ of the output layer. The selector 1152 outputs the output of the multiplier 1130 to the latch 1125. The learning signal δ is written in the latch 1125.

次の命令では、モード信号線1080を25に設定し、第18図
のポインタ1161をリセットする。また、第18図のニュー
ロンブロック1100内のラッチ1124をリセットする。
In the next instruction, the mode signal line 1080 is set to 25, and the pointer 1161 in FIG. 18 is reset. Also, the latch 1124 in the neuron block 1100 in FIG. 18 is reset.

次の命令では、モード信号線1080を29に設定し、出力層
の相対アドレスをアドレ信号線1081に小さい順に設定し
ていく。相対アドレスを指定された逆方向ネットワーク
の第18図のニューロンブロック1100はラッチ1125の内
容、即ち、出力層の学習信号δを第16図のIOブロック10
61、Bブロック1062へ送る。モード29において、IOブロ
ック1061、Bブロック1062の第16図のセレクタ1074はセ
レクタ1072を選択するので、学習信号δがそのまま出力
データ線1084へ出力される。アドレス信号線1081のデコ
ードに関しては、モード26と同様である。学習信号δ
は、第12図のコントロールボード1003を通り、入力デー
タ線1083へ出力される。順方向ネットワークのIOブロッ
ク1061、Bブロック1062では、第16図のセレクタ1076を
下側と接続されている入力データ線1083側に設定する。
逆方向ネットワークから送られる学習信号δは、サイド
のNブロック1060へ出力される。順方向ネットワークの
第18図のニューロンブロック110では、アドレス信号線1
081に出力されるアドレスと自分の相対アドレス一致す
れば、入力データ線1083に出力されている学習信号δを
ラッチ1122に取り込む。
In the next instruction, the mode signal line 1080 is set to 29, and the relative address of the output layer is set to the address signal line 1081 in ascending order. The neuron block 1100 in FIG. 18 of the reverse network with relative addresses specifies the contents of the latch 1125, that is, the learning signal δ of the output layer, in the IO block 10 in FIG.
61, B block 1062. In mode 29, the selector 1074 in FIG. 16 of the IO block 1061 and B block 1062 selects the selector 1072, so the learning signal δ is output to the output data line 1084 as it is. The decoding of the address signal line 1081 is the same as in mode 26. Learning signal δ
Is output to the input data line 1083 through the control board 1003 shown in FIG. In the IO block 1061 and B block 1062 of the forward network, the selector 1076 of FIG. 16 is set to the input data line 1083 side connected to the lower side.
The learning signal δ sent from the reverse network is output to the side N block 1060. In the neuron block 110 of FIG. 18 of the forward network, the address signal line 1
If the address output to 081 matches its own relative address, the learning signal δ output to the input data line 1083 is captured in the latch 1122.

また、逆方向ネットワークの中間層のニューロンブロッ
ク1100では、セレクタ1150はメモリ1160の結合係数wと
入力データ線1083を乗算器1130へ出力する。乗算器1130
により、係合係数wと学習信号δとの乗算を行う。セレ
クタ1151は乗算器1130とラッチ1124を加算器1140へ出力
する。ラッチ124は加算器1140の出力を取り込む。第23
図の比較回路1704により、メモリ1160が出力する結合元
アドレスとアドレス信号線1081を比較し、一致している
ときに、ラッチ1124と乗算器1130の出力を加算し、ラッ
チ1124に書き込む。そして、ポインタ1161の値を1つ進
める。このように、順次、アドレス信号線1081と入力デ
ータ線1083に送られてくる。出力元のニューロンブロッ
ク1100の相対アドレスとその出力を入力し、Σw・δの
累積加算を行う。
In the middle layer neuron block 1100 of the reverse network, the selector 1150 outputs the coupling coefficient w of the memory 1160 and the input data line 1083 to the multiplier 1130. Multiplier 1130
Thus, the engagement coefficient w is multiplied by the learning signal δ. The selector 1151 outputs the multiplier 1130 and the latch 1124 to the adder 1140. The latch 124 captures the output of the adder 1140. 23rd
The comparison circuit 1704 in the figure compares the coupling source address output from the memory 1160 with the address signal line 1081, and when they match, the outputs of the latch 1124 and the multiplier 1130 are added and written to the latch 1124. Then, the value of the pointer 1161 is advanced by one. In this way, they are sequentially sent to the address signal line 1081 and the input data line 1083. The relative address of the output neuron block 1100 and its output are input, and Σw · δ is cumulatively added.

次の命令では、モード信号線1080を30に設定する。逆方
向ネットワークの出力層のニューロンブロック1100はセ
レクタを次のように設定する。第18図において、セレク
タ1150はラッチ1124とラッチ1121を乗算器1130へ出力す
る乗算器1130により、ラッチ1124のΣw・δとf′
(u)の乗算を行い中間層の学習信号δを計算する。セ
レクタ1152は乗算器1130の出力をラッチ1125へ出力す
る。ラッチ1125に学習信号δを書き込む。
The next instruction sets the mode signal line 1080 to 30. The neuron block 1100 in the output layer of the backward network sets the selector as follows. In FIG. 18, a selector 1150 outputs a latch 1124 and a latch 1121 to a multiplier 1130 by a multiplier 1130.
(U) is multiplied to calculate the learning signal δ of the intermediate layer. The selector 1152 outputs the output of the multiplier 1130 to the latch 1125. The learning signal δ is written in the latch 1125.

次に、モード信号線1080を29に設定し、中間層の学習信
号δを全ニューロンブロック1100にブロドキャストす
る。順方向ネットワークのニューロンブロック1100は、
アドレス信号線1081の値と第23図のラッチ1701に書き込
まれた自分の相対アドレス比較回路1703により、比較
し、一致していれば、学習信号δをラッチ1122に取り込
む。
Next, the mode signal line 1080 is set to 29, and the learning signal δ of the intermediate layer is broadcasted to all the neuron blocks 1100. The forward network neuron block 1100
The value of the address signal line 1081 is compared with the own relative address comparison circuit 1703 written in the latch 1701 shown in FIG.

中間層が2層以上あるいは場合は、この後、再びモード
30の命令を行い、学習信号δを計算し、その後モード29
により順方向ネットワークへ送ればよい。
If there are two or more intermediate layers, or if the mode is
30 commands, calculate learning signal δ, and then mode 29
To send to the forward network.

次の命令では、モード信号線1080を25に設定し、第18図
のポインタ1161をリセットする。
In the next instruction, the mode signal line 1080 is set to 25, and the pointer 1161 in FIG. 18 is reset.

次に、モード信号線1080を、31に設定し、アドレス信号
線1081を入力層から中間層に向かって相対アドレスの小
さい順に指定する。入力層に関しては、入力層メモリ10
10から出力する。中間層に関して、順方向ネットワーク
の中間層のニューロンブロック1100はその内部エネルギ
ー値uをIOブロク1061、Bブロッック1062の変換テーブ
ル1070でf変換し、その値をブロードキャストする。順
方向ネットワークの第18図のニューロンブロック1100の
各セレクタを次のように制御する。セレクタ1150はラッ
チ1122と入力データ線1083を乗算器1130へ出力する。乗
算器1130により、ラッチ1122の学習信号δとニューロン
の出力xの乗算を行う。セレクタ1151はメモリ1160の結
合係数wとη乗算機1132を加算器1140へ出力する。ま
た、α乗算機1131はメモリ1160の前回の修正値Δw′を
入力し、α倍し、αΔw′を出力する。加算器1141は乗
算器1130の出力δ・xとα乗算器1131の出力αΔw′を
入力し、加算してη乗算器1132に出力する。η乗算器11
32の出力は、修正値である。メモリ1160のΔw′には、
ηを掛ける前の値を書き込む。
Next, the mode signal line 1080 is set to 31, and the address signal lines 1081 are designated from the input layer toward the intermediate layer in ascending order of relative address. Regarding the input layer, the input layer memory 10
Output from 10. With respect to the intermediate layer, the neuron block 1100 in the intermediate layer of the forward network f-converts the internal energy value u of the conversion table 1070 of the IO block 1061 and the B block 1062, and broadcasts the value. Each selector of the neuron block 1100 in FIG. 18 of the forward network is controlled as follows. The selector 1150 outputs the latch 1122 and the input data line 1083 to the multiplier 1130. The multiplier 1130 multiplies the learning signal δ of the latch 1122 by the output x of the neuron. The selector 1151 outputs the coupling coefficient w of the memory 1160 and the η multiplier 1132 to the adder 1140. Further, the α multiplier 1131 inputs the previous correction value Δw ′ in the memory 1160, multiplies it by α, and outputs αΔw ′. The adder 1141 inputs the output δ · x of the multiplier 1130 and the output αΔw ′ of the α multiplier 1131, adds them, and outputs them to the η multiplier 1132. η multiplier 11
The 32 output is the modified value. In Δw ′ of memory 1160,
Write the value before multiplying by η.

wji n+1=wji η+η・Δw′ji n+1 (6) Δw′ji n+1=δ・xi+α・Δw′ji n+1 (7) 定数ηは広範囲な値となるのでこのようにすることによ
り、メモリ1160へ書き込むΔw′のビット数を節約する
ことができる。加算器1140により、結合係数wを修正
し、メモリ1160にその修正結果を書き込む。また、以上
の修正動作は、第23図の比較回路1704により、メモリ11
60の結合元のアドレスとアドレス信号線1081が一致して
いるときに行う。
w ji n + 1 = w ji η + η · Δw ′ ji n + 1 (6) Δw ′ ji n + 1 = δ j · x i + α · Δw ′ ji n + 1 (7) The constant η has a wide range of values. By doing so, the number of bits of Δw ′ written in the memory 1160 can be saved. The adder 1140 corrects the coupling coefficient w and writes the correction result in the memory 1160. Further, the above correction operation is performed by the comparison circuit 1704 in FIG.
This is performed when the address of the connection source of 60 and the address signal line 1081 match.

次に、モード信号線1080を25に設定し、第18図のポイン
タ1161をリセットする。
Next, the mode signal line 1080 is set to 25, and the pointer 1161 in FIG. 18 is reset.

次に、モード信号線1080を32に設定し、逆方向ネットワ
ークの出力層のニューロンブロック1100の相対アドレス
をアドレス信号線1081に設定し、学習信号δをブロード
キャストする。もし、中間層が2層以上ある場合は、中
間層の学習信号δもブロードキャストする。逆方向ネッ
トワークの第18図のニューロンブロック1100の各セレク
タをモード31の順方向ネットワークの結合係数wの修正
とと同じように設定する。乗算器1130により、ラッチ11
22のニューロンの出力xと入力データ線1083に出力され
る学習信号δの乗算を行い、η乗算器1132、加算器114
0、α乗算器1131、加算器1141により、修正値Δw′お
よび修正した結合係数wを計算し、メモリ1160に書き込
む。
Next, the mode signal line 1080 is set to 32, the relative address of the neuron block 1100 in the output layer of the backward network is set to the address signal line 1081, and the learning signal δ is broadcast. If there are two or more intermediate layers, the learning signal δ of the intermediate layer is also broadcast. Each selector of the neuron block 1100 of FIG. 18 of the backward network is set in the same manner as the correction of the coupling coefficient w of the forward network of mode 31. Latch 11 by multiplier 1130
The output x of the 22 neurons and the learning signal δ output to the input data line 1083 are multiplied to obtain the η multiplier 1132 and the adder 114.
The corrected value Δw ′ and the corrected coupling coefficient w are calculated by 0, the α multiplier 1131 and the adder 1141 and written in the memory 1160.

以上の動作を各パターンごとに、入力層メモリ、教師信
号メモリのセグメントを変えて行うことにより、学習動
作を行うことができる。また、出力層メモリ1011は、出
力データ線1084に出力される順方向ネットワークの出力
層ニューロンの出力を取り込む。ホストコンピュータ10
00は出力層メモリ1011を外部バス1021から読み出し、期
待する出力となっているか調べることができる。第12図
のアプリケーションの例として、例えば、第12図のディ
ジタイザー1001により、手書き文字を入力し、ホストコ
ンピュータ1000により入力した文字の座標を正規化し、
ニューラルネットの入力とし、手書き文字を認識するシ
ステムを作ることができる。第12図のシステムにおい
て、入力層p個、中間層q個、出力層r個の階層型ニュ
ーラルネットの1パターン1回の学習に要する時間は、
1回に要する累積加算の時間をtとすると、ほぼ、 (2p+4q+5r)・t(s) (8) となる。例えば、手書き文字認識にpを256(16ドット
×16ドット)、qを100、rを26、tを100msとすると、
1パターンの1回の学習を約0.1msで行うことができ
る。1文字の学習に1000回の繰り返しが必要としても、
10文字パターンの学習をわずか1秒で行うことができ
る。
The learning operation can be performed by changing the segments of the input layer memory and the teacher signal memory for each pattern for each pattern. Further, the output layer memory 1011 captures the output of the output layer neuron of the forward network output to the output data line 1084. Host computer 10
00 can read the output layer memory 1011 from the external bus 1021 and check whether the output is as expected. As an example of the application of FIG. 12, for example, by the digitizer 1001 of FIG. 12, input handwritten characters, normalize the coordinates of the characters input by the host computer 1000,
A system for recognizing handwritten characters can be created as an input of a neural network. In the system shown in FIG. 12, the time required for learning once for each pattern of a hierarchical neural network of p input layers, q intermediate layers, and r output layers is
When the cumulative addition time required for one time is t, it is approximately (2p + 4q + 5r) · t (s) (8). For example, if p is 256 (16 dots x 16 dots), q is 100, r is 26, and t is 100 ms for handwritten character recognition,
One pattern can be learned once in about 0.1 ms. Even if it takes 1000 times to learn one character,
You can learn 10-character patterns in just 1 second.

[発明の効果] 本発明によれば、ニューラルネットを高速に学習させる
ことができる。また、ウェハスケール集積回路で構成す
るのに好都合で、複数のウェハで構成することも可能で
ある。また、その設計工数も少ない。そのため、大規模
なニューラルネットを高速に計算ができ、かつコンパク
トなニューロコンピュータ用のウェハスケール集積回路
を製造することができる。
[Effect of the Invention] According to the present invention, a neural network can be learned at high speed. Further, it is convenient to form a wafer scale integrated circuit, and it is also possible to form a plurality of wafers. Also, the number of designing steps is small. Therefore, a large-scale neural network can be calculated at high speed, and a compact wafer-scale integrated circuit for a neurocomputer can be manufactured.

【図面の簡単な説明】[Brief description of drawings]

第1図は本発明の一実施例を示す図、第2図はニューラ
ルネットを構成するニューロンモデルを示す図、第3図
は3層の階層型ニューラルネットを示す図、第4図はニ
ューラルネットを高速に計算する専用ハードウェハを示
す図、第5図は本発明の動作の詳細について説明する
図、第6図は本発明による演算の流れを示す図、第7
図、第8図、第9図はそれぞれ本発明で用いる機能ブロ
ックの一例の詳細を示す図、第10図、第11図はそれぞれ
本発明の他の一実施例を示す図、第12図は本発明ニュー
ロコンピューティングシステムの全体を示す図、第13図
は本発明のニューロコンピューティングシステムのウェ
ハの構成を示す図、第14図はウェハの信号線の構成と配
置を示す図、第15図はウェハの各ブロックへの電源供給
方法およびWSI基板の構成を示す図、第16図はBブロッ
ク(IOブロック)を示す図、第17図はNブロックを示す
図、第18図はニューロンブロックの詳細を示す図、第19
図は本発明のシステムをチップにより構成した場合につ
いて説明する図、第20図はIOブロック、Bブロック、N
ブロック、Nブロック内のニューロンブロックにアクセ
スするためのアドレスについ説明する図、第21図は第16
図のの制御回路を示す図、第22図は第17図の制御回路を
示す図、第23図は第18図の制御回路を示す図、第24図は
シーケンスRAMについて説明する図、第25図はモード信
号とその動作の一例を示す図、第26図は第24図のシーケ
ンスRAMに書き込む命令の一例を示す図である。 符号の説明 120F,121F,120B,121B……計算ユニット、123,124……制
御回路、125〜127……セレクタ、128……バッファ、130
……制御信号発生回路、131,132……関数変換回路、140
……出力バス、141……入力バス、142〜145……制御信
号線、150……外部入力端子、151……外部出力端子、16
0……乗算器。
FIG. 1 is a diagram showing an embodiment of the present invention, FIG. 2 is a diagram showing a neuron model constituting a neural network, FIG. 3 is a diagram showing a three-layer hierarchical neural network, and FIG. 4 is a neural network. FIG. 5 is a diagram showing a dedicated hardware wafer for fast calculation, FIG. 5 is a diagram explaining the details of the operation of the present invention, FIG. 6 is a diagram showing the flow of calculation according to the present invention, and FIG.
FIG. 8, FIG. 8 and FIG. 9 are diagrams showing details of an example of functional blocks used in the present invention, FIG. 10 and FIG. 11 are diagrams showing another embodiment of the present invention, and FIG. FIG. 13 is a diagram showing the entire neuro-computing system of the present invention, FIG. 13 is a diagram showing the structure of a wafer of the neuro-computing system of the present invention, FIG. 14 is a diagram showing the structure and arrangement of signal lines on the wafer, and FIG. Shows the method of supplying power to each block of the wafer and the structure of the WSI substrate, FIG. 16 shows the B block (IO block), FIG. 17 shows the N block, and FIG. 18 shows the neuron block. Figure showing details, No. 19
FIG. 20 is a diagram for explaining the case where the system of the present invention is configured by a chip, and FIG. 20 is an IO block, B block, N
FIG. 21 is a diagram for explaining addresses for accessing neuron blocks in blocks and N blocks, and FIG.
FIG. 22 is a diagram showing the control circuit of FIG. 22, FIG. 22 is a diagram showing the control circuit of FIG. 17, FIG. 23 is a diagram showing the control circuit of FIG. 18, FIG. 24 is a diagram explaining a sequence RAM, and FIG. FIG. 26 is a diagram showing an example of a mode signal and its operation, and FIG. 26 is a diagram showing an example of an instruction to write to the sequence RAM of FIG. Explanation of symbols 120F, 121F, 120B, 121B …… Computing unit, 123,124 …… Control circuit, 125-127 …… Selector, 128 …… Buffer, 130
...... Control signal generation circuit, 131,132 …… Function conversion circuit, 140
...... Output bus, 141 …… Input bus, 142 to 145 …… Control signal line, 150 …… External input terminal, 151 …… External output terminal, 16
0 …… Multiplier.

フロントページの続き (72)発明者 柳生 正義 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 山田 稔 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 柴田 克成 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭60−219837(JP,A)Front page continued (72) Inventor Masayoshi Yagyu 1-280, Higashi Koikekubo, Kokubunji, Tokyo Inside Central Research Laboratory, Hitachi, Ltd. (72) Minoru Yamada 1-280, East Koikekubo, Kokubunji, Tokyo Inside Central Research Center, Hitachi Ltd. (72) Inventor Katsunari Shibata 1-280, Higashi Koigokubo, Kokubunji, Tokyo, Central Research Laboratory, Hitachi, Ltd. (56) Reference JP-A-60-219837 (JP, A)

Claims (18)

【特許請求の範囲】[Claims] 【請求項1】少なくとも1つの計算ユニットによって構
成され、外部からの信号が入力される入力層、該入力層
の出力を入力し入力値に対応した出力値を出力する中間
層、及び上記入力層または中間層の出力を入力し入力値
に対応した出力値を出力する出力層を備えた階層型ネッ
トワークであって、入力層から出力層に向かって順方向
に出力値を決定する第1のネットワークと、 少なくとも1つの計算ユニットによって構成され上記第
1のネットワークに対応して少なくとも中間層及び該中
間層に接続された出力層を備えた階層型ネットワークで
あって、出力層から中間層に向かって逆方向に出力値を
決定する第2ネットワークと、 上記第1及び第2のネットワーク間を相互に通信して上
記各々のネットワークの計算ユニットの出力値を修正値
を修正する手段と、 を有することを特徴とする情報処理装置。
1. An input layer configured by at least one calculation unit, to which a signal from the outside is input, an intermediate layer which inputs an output of the input layer and outputs an output value corresponding to the input value, and the input layer. Or a first hierarchical network having an output layer for inputting the output of the middle layer and outputting an output value corresponding to the input value, wherein the first network determines the output value in the forward direction from the input layer toward the output layer. A hierarchical network comprising at least an intermediate layer and an output layer connected to the intermediate layer, the hierarchical network being configured by at least one calculation unit and corresponding to the first network. The second network that determines the output value in the opposite direction and the first and second networks communicate with each other to modify the output value of the calculation unit of each network. The information processing apparatus characterized by comprising means for modifying the value, the.
【請求項2】上記計算ユニットは、他の計算ユニットか
ら入力し、該入力値に重み付けした値の総和を計算し、
該総和層に対応して出力値を決定するニューロン計算ユ
ニットで構成される請求項1記載の情報処理装置。
2. The calculation unit calculates a sum of values input from another calculation unit, weighting the input values,
The information processing apparatus according to claim 1, comprising a neuron calculation unit that determines an output value corresponding to the summation layer.
【請求項3】上記第1のネットワークの入力層は、外部
からの入力信号を記憶する機能を有する請求項1記載の
情報処理装置。
3. The information processing apparatus according to claim 1, wherein the input layer of the first network has a function of storing an input signal from the outside.
【請求項4】上記中間層または出力層を構成する複数の
計算ユニットは、1枚のウェハスケール集積回路上に集
積される請求項1記載の情報処理装置。
4. The information processing apparatus according to claim 1, wherein the plurality of calculation units forming the intermediate layer or the output layer are integrated on one wafer scale integrated circuit.
【請求項5】上記第1のネットワークは、少なくとも1
枚の第1のウェハスケール集積回路上に集積され、上記
第2のネットワークは、少なくとも1枚の第2のウェハ
スケール集積回路上に集積される請求項1記載の情報処
理装置。
5. The first network comprises at least one
The information processing apparatus according to claim 1, wherein the information processing apparatus is integrated on one first wafer scale integrated circuit, and the second network is integrated on at least one second wafer scale integrated circuit.
【請求項6】上記第1のネットワークの入力層は第1の
機能ブロックとして、上記第1のネットワークの中間層
及び出力層は第2の機能ブロックとして構成され、上記
第2のネットワークの中間層及び出力層は第3の機能ブ
ロックとして構成される請求項1記載の情報処理装置。
6. An input layer of the first network is configured as a first functional block, an intermediate layer and an output layer of the first network are configured as a second functional block, and an intermediate layer of the second network. The information processing apparatus according to claim 1, wherein the output layer and the output layer are configured as a third functional block.
【請求項7】少なくとも1つのデータパスを有し、上記
第1の機能ブロックと上記第2の機能ブロック間の通信
と、上記第2の機能ブロック間の通信と、上記第3の機
能ブロック間の通信と、上記第2の機能ブロックと上記
第3の機能ブロック間の通信を上記データパスによって
行う請求項6記載の情報処理装置。
7. A communication between the first functional block and the second functional block, a communication between the second functional blocks, and a third functional block having at least one data path. 7. The information processing apparatus according to claim 6, wherein the communication between the second functional block and the third functional block is performed by the data path.
【請求項8】上記第2の機能ブロックと上記第3の機能
ブロックは、同一の回路で構成される請求項4記載の情
報処理装置。
8. The information processing apparatus according to claim 4, wherein the second functional block and the third functional block are configured by the same circuit.
【請求項9】少なくとも1つの計算ユニットによって構
成され、外部からの信号が入力される入力層、該入力層
の出力を入力し入力値に対応した出力値を出力する中間
層、及び上記入力層または中間層の出力を入力し入力値
に対応した出力値を出力する出力層を備えた階層型ネッ
トワークであって、入力層は第1の機能ブロックとし
て、中間層及び出力層は第2の機能ブロックとして構成
され、上記第1機能ブロック及び上記第2の機能ブロッ
クは入力層側の出力値に対する重み値を保持し、入力層
から出力層に向かって順方向に上記第1の機能ブロック
及び上記第2の機能ブロックの出力値を決定する第1の
ネットワークと、 少なくとも1つの計算ユニットによって構成され、上記
第1のネットワークに対応して少なくとも中間層及び該
中間層に接続された出力層を備えた階層型ネットワーク
であって、中間層及び出力層は上記第2の機能ブロック
に対応して第3の機能ブロックから構成され、上記第3
の機能ブロックは出力層側の出力に対する重み値を保持
し、出力層から中間層に向かって逆方向に上記第3の機
能ブロックの出力値を決定する第2のネットワークと、 上記第2の機能ブロックと上記第3の機能ブロックとを
相互に通信する手段とを有し、 上記第2の機能ブロックの保持する重み値と上記第3の
機能ブロックの保持する重み値を1対1に対応させ、同
一の値に修正することを特徴とする情報処理装置。
9. An input layer comprising at least one calculation unit, to which a signal from the outside is input, an intermediate layer which inputs an output of the input layer and outputs an output value corresponding to the input value, and the input layer. Or a hierarchical network having an output layer for inputting an output of the middle layer and outputting an output value corresponding to the input value, wherein the input layer is a first functional block and the middle layer and the output layer are a second function. The first functional block and the second functional block hold weight values for output values on the input layer side, and the first functional block and the second functional block are arranged in a forward direction from the input layer to the output layer. A first network for determining an output value of a second functional block, and at least one calculation unit, corresponding to the first network, at least an intermediate layer and A hierarchical network having an output layer connected to an inter-layer, wherein an intermediate layer and an output layer are composed of a third functional block corresponding to the second functional block.
The second functional block holds a weight value for the output on the output layer side and determines the output value of the third functional block in the reverse direction from the output layer to the intermediate layer, and the second function. A block and means for communicating the third functional block with each other, and the weight value held by the second functional block and the weight value held by the third functional block are made to correspond one-to-one. , An information processing device characterized by modifying the same value.
【請求項10】少なくとも1つのデータバスを有し、上
記第1の機能ブロックと上記第2の機能ブロック間の通
信と、上記第2の機能ブロック間の通信と、上記第3の
機能ブロック間の通信と、上記第2の機能ブロックと上
記第3の機能ブロック間の通信を上記データバスによっ
て行う請求項9記載の情報処理装置。
10. A communication between the first functional block and the second functional block, a communication between the second functional blocks, and a third functional block having at least one data bus. 10. The information processing apparatus according to claim 9, wherein the communication and the communication between the second functional block and the third functional block are performed by the data bus.
【請求項11】少なくとも1つの第1のデータバスと少
なくとも1つの第2のデータバスに接続された複数の機
能ブロックと、 上記機能ブロックから第1のデータバスへ出力される値
を関数により変換し、上記第2のデータバスへ出力する
第1の関数計算手段と、 上記機能ブロックから第1のデータバスへ出力される値
を上記関数の導関数により変換し、上記第2のデータバ
スへ出力する第2の関数計算手段と、 上記機能ブロックから第1のデータバスへの出力を制御
する手段とを有し、 上記機能ブロックは、入力値に重み付した値の総和を計
算し、該総和値に対応して出力値を決定するニューロン
モデルを計算する手段、当該機能ブロックの出力を上記
第1のデータバスへ出力する手段、及び上記第1又は上
記第2の関数計算手段にて上記第2のデータバスに出力
される値を入力する手段を備えたことを特徴とする情報
処理装置。
11. A plurality of functional blocks connected to at least one first data bus and at least one second data bus, and a value converted from the functional block to the first data bus by a function. Then, the first function calculating means for outputting to the second data bus and the value output from the functional block to the first data bus are converted by the derivative of the above function to the second data bus. It has a second function calculating means for outputting and a means for controlling the output from the functional block to the first data bus, and the functional block calculates the sum of the values weighted to the input value, A means for calculating a neuron model for determining an output value corresponding to the sum value, a means for outputting the output of the functional block to the first data bus, and a means for calculating the first or second function. An information processing apparatus comprising means for inputting a value output to the second data bus.
【請求項12】少なくとも1つの計算ユニットによって
構成され、入力層、中間層及び出力層を備えた階層型ネ
ットワークであって、入力層は第1の機能ブロックとし
て、中間層及び出力層は第2の機能ブロックとして構成
され、上記第1の機能ブロックは第1のデータバスと接
続され、上記第2の機能ブロックは上記第1のデータバ
スと第2のデータバスと接続され、入力層から出力層に
向かって順方向に上記第1の機能ブロック及び上記第2
の機能ブロックの出力値を決定する第1のネットワーク
と、 少なくとも1つの計算ユニットによって構成され、上記
第1のネットワークに対応して少なくとも中間層及び出
力層を備えた階層型ネットワークであって、中間層及び
出力層は上記第2の機能ブロックに対応して第3の機能
ブロックから構成され、上記第3の機能ブロックは上記
第1のデータバスと上記第2のデータバスに接続され、
出力層から中間層に向かって逆方向に上記第3の機能ブ
ロックの出力値を決定する第2のネットワークと、 第2のデータバスへ出力される値を関数により変換して
上記第1のデータバスへ出力する第1の関数計算手段
と、上記第2のデータバスへ出力される値を直接上記第
1のデータバスへ出力する手段と、上記第2のデータバ
スへ出力される値を上記関数の導関数により変換して上
記第1のデータバスへ出力する第2の関数計算手段とを
有し、 上記第2の機能ブロックは、入力値に重み付けするため
のニューロンモデルの重み値を記憶する手段、上記重み
付けされた入力値の総和を計算してニューロンモデルの
内積演算を行う手段、及び上記重み値を書き換えて修正
する手段を備え、 上記第3の機能ブロックは、上記ニューロンモデルの重
み値を保持する手段、上記重み値を修正するために必要
な値を計算する手段、及び上記重み値を書き換えて修正
する手段を備え、 上記第2の機能ブロックは対応する上記第3の機能ブロ
ックと相互に通信し、上記第2の機能ブロックと上記第
3の機能ブロックはそれぞれが保持する上記重み値を対
応する重み値と同一の値に修正することを特徴とする情
報処理装置。
12. A hierarchical network comprising at least one calculation unit, comprising an input layer, an intermediate layer and an output layer, wherein the input layer is a first functional block and the intermediate layer and the output layer are a second functional block. The first functional block is connected to the first data bus, the second functional block is connected to the first data bus and the second data bus, and is output from the input layer. The first functional block and the second functional block in the forward direction toward the layer.
A first network for determining output values of the functional blocks of, and a hierarchical network comprising at least one calculation unit and having at least an intermediate layer and an output layer corresponding to the first network, The layer and the output layer are composed of a third functional block corresponding to the second functional block, and the third functional block is connected to the first data bus and the second data bus,
A second network that determines the output value of the third functional block in the reverse direction from the output layer to the intermediate layer, and the value output to the second data bus is converted by a function to generate the first data. A first function calculating means for outputting to the bus; a means for directly outputting the value to be output to the second data bus to the first data bus; and a value to be output to the second data bus. And a second function calculating means for converting by a derivative of a function and outputting to the first data bus, wherein the second functional block stores a weight value of a neuron model for weighting an input value. Means for calculating the total sum of the weighted input values to perform inner product calculation of the neuron model, and means for rewriting and correcting the weight value, wherein the third functional block is Means for holding a weight value, means for calculating a value necessary to correct the weight value, and means for rewriting and modifying the weight value, and the second functional block corresponds to the third function. An information processing apparatus, wherein the second functional block and the third functional block communicate with each other and modify the weight values held by the second functional block and the third functional block to the same value as the corresponding weight value.
【請求項13】上記中間層または出力層を構成する複数
の計算ユニットは、1枚のウェハスケール集積回路上に
集積される請求項12記載の情報処理措置。
13. The information processing device according to claim 12, wherein the plurality of calculation units forming the intermediate layer or the output layer are integrated on one wafer-scale integrated circuit.
【請求項14】上記第1のネットワークは、少なくとも
1枚の第1のウェハスケール集積回路上に集積され、上
記第2のネットワークは、少なくとも1枚の第2のウェ
ハスケール集積回路上に集積される請求項12記載の情報
処理装置、
14. The first network is integrated on at least one first wafer-scale integrated circuit, and the second network is integrated on at least one second wafer-scale integrated circuit. An information processing apparatus according to claim 12,
【請求項15】上記第1のウェハスケール集積回路と上
記第2のウェハスケール集積回路は同一の回路で構成さ
れる請求項14記載の情報処理装置。
15. The information processing apparatus according to claim 14, wherein the first wafer scale integrated circuit and the second wafer scale integrated circuit are configured by the same circuit.
【請求項16】上記第1の機能ブロックと上記第2の機
能ブロックを同一の回路構成とする請求項13記載の情報
処理装置。
16. The information processing apparatus according to claim 13, wherein the first functional block and the second functional block have the same circuit configuration.
【請求項17】入力層、中間層、及び出力層を備えた階
層型ネットワークを有する情報処理装置の学習方法にお
いて、 上記入力層から上記出力層に向かって順方向に出力層に
向かって順方向に出力値を決定し、 上記中間層及び上記出力層は入力層側の出力値に対する
第1の重み値を保持し、 学習時には、上記出力層から入力層に向かって逆方向に
学習信号値を決定し、 上記入力層及び上記中間層は出力層側の学習信号値に対
する第2の重みを保持し、 上記第1の重み値と第2の重み値は、上記学習によって
同一の値に修正することを特徴とする情報処理装置の学
習方法。
17. A learning method for an information processing apparatus having a hierarchical network including an input layer, an intermediate layer, and an output layer, the method comprising: a forward direction from the input layer to the output layer; a forward direction to the output layer. The output value is determined in the above, and the intermediate layer and the output layer hold the first weight value for the output value on the input layer side. The input layer and the intermediate layer retain the second weight for the learning signal value on the output layer side, and the first weight value and the second weight value are corrected to the same value by the learning. A learning method for an information processing device, comprising:
【請求項18】第1のデータバス(140)と、 情報処理装置の外部からのデータの入力と外部へのデー
タの出力をおこなうための第2のデータバス(141)
と、 ニューロンモデルの重み値を保持し、上記第2のデータ
バス(141)からデータを入力して、入力された各々の
データに上記保持されているニューロンモデルの重み値
に従って重み付けし、重み付けしたデータの総和を計算
してニューロンモデルの内積を計算し、該内積に対応し
た出力を上記第1のデータバス(140)へ出力する第1
の計算ユニット(120F)、第2の計算ユニット(121
F)、第3の計算ユニット(121B)、及び第4の計算ユ
ニット(120B)と、 上記第1の計算ユニット(120F)及び上記第2の計算ユ
ニット(121F)によって計算されたニューロンモデルの
内積を、上記第1のデータバス(140)から入力して、
関数により変換し、上記第2のデータバス(141)に出
力する第1の関数計算手段(131)と、 上記第1の計算ユニット(120F)及び上記第2の計算ユ
ニット(121F)によって計算されたニューロンモデルの
内積を、上記第1のデータバスから入力して、上記関数
により変換して、上記第2のデータバス(141)に出力
する第2の関数計算手段(132)と、 上記第1の計算ユニット(120F)、上記第2の計算ユニ
ット(121F)、上記第3の計算ユニット(121B)、上記
第4の計算ユニット(120F)、上記第1の関数計算手段
(131)、及び上記第2の関数計算手段を制御するため
の制御手段(130,125,126,127)とを備えた情報処理装
置の学習方法であって、 上記情報処理装置が、外部からデータを入力して、上記
第1の計算ユニット(120F)、上記第2の計算ユニット
(121F)、及び上記第1の関数計算手段(131)を有す
る順方向ネットワークによって計算を行うことにより、
上記順方向ネットワークの出力値を決定し、 与えられた入力に対して期待される出力値を入力し、上
記第3の計算ユニット(121B)、及び上記第4の計算ユ
ニット(120B)を有する逆方向ネットワークと、上記第
2の関数計算手段(132)によって計算をおこなうこと
により、上記逆方向ネットワークの学習信号値を決定
し、 上記第1乃至第4の各計算ユニットの出力値と上記学習
信号値の積に比例した値をニューロンモデルの重み値に
加算することにより、上記重み値を修正することを特徴
とする情報処理装置の学習方法。
18. A first data bus (140) and a second data bus (141) for inputting data from outside the information processing apparatus and outputting data to the outside.
And holding the weight value of the neuron model, inputting data from the second data bus (141), weighting each input data according to the weight value of the held neuron model, and weighting A first that outputs the output corresponding to the inner product to the first data bus (140) by calculating the sum of data to calculate the inner product of the neuron model
Calculation unit (120F), second calculation unit (121
F), the third calculation unit (121B), and the fourth calculation unit (120B), and the inner product of the neuron models calculated by the first calculation unit (120F) and the second calculation unit (121F) From the first data bus (140),
It is calculated by a first function calculating means (131) for converting by a function and outputting to the second data bus (141), the first calculating unit (120F) and the second calculating unit (121F). And a second function calculating means (132) for inputting the inner product of the neuron model from the first data bus, converting the inner product by the function, and outputting the second product to the second data bus (141). One calculation unit (120F), the second calculation unit (121F), the third calculation unit (121B), the fourth calculation unit (120F), the first function calculation means (131), and A learning method for an information processing apparatus, comprising: a control means (130, 125, 126, 127) for controlling the second function calculation means, wherein the information processing apparatus inputs data from the outside to perform the first calculation. Unit (120F), second calculation unit above (121F) and a forward network having the first function calculating means (131),
Determining the output value of the forward network, inputting the expected output value for a given input, the inverse having the third computing unit (121B) and the fourth computing unit (120B) The learning signal value of the backward network is determined by performing calculation by the directional network and the second function calculating means (132), and the output value of each of the first to fourth calculation units and the learning signal. A learning method for an information processing apparatus, characterized in that the weight value is corrected by adding a value proportional to the product of the values to the weight value of the neuron model.
JP2284235A 1989-10-25 1990-10-24 Information processing apparatus and learning method thereof Expired - Lifetime JPH07101415B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-275834 1989-10-25
JP27583489 1989-10-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP4209163A Division JPH05197707A (en) 1992-08-05 1992-08-05 Information processing system

Publications (2)

Publication Number Publication Date
JPH03206549A JPH03206549A (en) 1991-09-09
JPH07101415B2 true JPH07101415B2 (en) 1995-11-01

Family

ID=17561080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2284235A Expired - Lifetime JPH07101415B2 (en) 1989-10-25 1990-10-24 Information processing apparatus and learning method thereof

Country Status (1)

Country Link
JP (1) JPH07101415B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652139A (en) * 1992-07-31 1994-02-25 Mikuni Corp Data structure for neural network
KR102692218B1 (en) * 2018-12-19 2024-08-05 에스케이하이닉스 주식회사 Neuromorphic system performing supervised training using error back propagation
JP6946364B2 (en) * 2019-03-18 2021-10-06 株式会社東芝 Neural network device

Also Published As

Publication number Publication date
JPH03206549A (en) 1991-09-09

Similar Documents

Publication Publication Date Title
US5604840A (en) Information processing apparatus
US12147359B2 (en) AI accelerator apparatus using in-memory compute chiplet devices for transformer workloads
US5138695A (en) Systolic array image processing system
US4044243A (en) Information processing system
US12493778B2 (en) Method and apparatus for performing a neural network operation
JPH04293151A (en) Parallel data processing system
US5781702A (en) Hybrid chip-set architecture for artificial neural network system
EP0557997A2 (en) Information processing apparatus and information processing system
CN113157248A (en) In-memory Processing (PIM) system and method of operating PIM system
US12260223B2 (en) Generative AI accelerator apparatus using in-memory compute chiplet devices for transformer workloads
CN112559046A (en) Data processing device and artificial intelligence processor
JPH05282272A (en) Neural network parallel distribution processor
CN114003198A (en) Inner product processing unit, arbitrary precision calculation device, method, and readable storage medium
JP3177996B2 (en) Neuroprocessor
JP2001117900A (en) Neural network arithmetic device
JPH07101415B2 (en) Information processing apparatus and learning method thereof
JPH05197707A (en) Information processing system
JPH076146A (en) Parallel data processing system
US20210208885A1 (en) Processing-in-memory (pim) device for implementing a quantization scheme
JPH05159087A (en) Neuro Processor
JPH10134017A (en) Fuzzy Logic Neural Network Modular Architecture
JPH05128285A (en) Nyuro Processor
JP2765903B2 (en) Information processing device
CN110163352B (en) Method and system for generating circuit planning results
JP2825133B2 (en) Parallel data processing method