JPH0784975A - Information processor and learning arithmetic processing method - Google Patents

Information processor and learning arithmetic processing method

Info

Publication number
JPH0784975A
JPH0784975A JP5225450A JP22545093A JPH0784975A JP H0784975 A JPH0784975 A JP H0784975A JP 5225450 A JP5225450 A JP 5225450A JP 22545093 A JP22545093 A JP 22545093A JP H0784975 A JPH0784975 A JP H0784975A
Authority
JP
Japan
Prior art keywords
learning
bits
value
weight value
predetermined number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5225450A
Other languages
Japanese (ja)
Inventor
Hisao Ogata
日佐男 緒方
Masaru Oki
優 大木
Takahiro Sakaguchi
隆宏 坂口
Yuji Toda
裕二 戸田
Yoshihiro Kuwabara
良博 桑原
Keiji Mogi
啓次 茂木
Tatsuo Ochiai
辰男 落合
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
Priority to JP5225450A priority Critical patent/JPH0784975A/en
Publication of JPH0784975A publication Critical patent/JPH0784975A/en
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

PURPOSE:To learn fast learning with high precision by preventing the learning from being delayed since digit omissions are caused as the learning advances because of the small number of bits of a weight value and an inverse propagation error as to a neuro computer which performs fixed point and single- precision arithmetic. CONSTITUTION:For the learning of the neuro computer, the weight value is stored with double precision; and single-precision arithmetic is performed by the output value and inverse propagation error of a neuron 1 are calculated and double-precision arithmetic is performed at the time of addition for correcting the weight value. As the learning advances, the decimal point position of the inverse propagation error is shifted if certain conditions are met. In another way, plural microprograms having inverse propagation errors differing in decimal point position are prepared and a proper program is selected and executed according to a problem to be learnt.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は,音声認識,画像処理,
制御などに利用するニューロコンピュータにおいて,ニ
ューラルネットワーク動作を固定小数点且つ単精度演算
処理で行うニューロコンピュータ内のニューロンにおけ
る演算処理に係り,更に詳しくは,該単精度演算処理に
用いる各演算器を用いて,より高精度な学習演算処理を
可能とする情報処理装置および高精度学習演算処理方法
に関する。
The present invention relates to voice recognition, image processing,
In a neuro computer used for control, etc., the present invention relates to arithmetic processing in a neuron in a neuro computer that performs neural network operation by fixed point and single precision arithmetic processing. More specifically, by using each arithmetic unit used in the single precision arithmetic processing The present invention relates to an information processing device and a high-accuracy learning calculation processing method that enable higher-precision learning calculation processing.

【0002】[0002]

【従来の技術】ニューラルネットワークは認識,知識処
理などの情報処理に応用されている。ニューラルネット
ワークは入力と期待する出力値を与えれば,学習により
自己組織化が可能である。そのため,プログラムを必要
とせず,その応用が期待されている。
2. Description of the Related 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, it does not require a program and its application is expected.

【0003】学習アルゴリズムの一つに日経エレクトロ
ニクス1987.8.10(NO.427)115〜121頁において紹介され
ている”バックプロパゲーション”が知られている。以
下に,バックプロパゲーションを説明する。
As one of learning algorithms, "back propagation" introduced on pages 115 to 121 of Nikkei Electronics 1987. 8.10 (NO.427) is known. The back propagation will be described below.

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

【0005】[0005]

【数1】 [Equation 1]

【0006】[0006]

【数2】 [Equation 2]

【0007】複数のニューロンを結合することによっ
て,ニューラルネットを構成できる。そして,重み値w
ijを変えることによって,様々な情報処理を行うことが
可能である。
A neural net can be constructed by connecting a plurality of neurons. Then, the weight value w
It is possible to perform various information processing by changing ij .

【0008】図3に階層型ニューラルネットを示す。本
図は,入力層,中間層,出力層の3階層から構成されて
いるが,中間層を複数とする構成にしてもよい。入力に
対し,情報処理を行い出力する順方向に動作するモード
と,与えた入力に対して期待する出力値を外部から与
え,出力層側から入力層側へ向かって,重み値wijを修
正していく逆方向に動作するモードを持つ。その時の重
み値wijの修正値Δwijをニューロンjでは
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. A mode in which information is processed and output in the forward direction with respect to the input, and an expected output value for the given input is given from the outside, and the weight value w ij is corrected from the output layer side to the input layer side. It has a mode to operate in the opposite direction. The modified value Δw ij of the weight value w ij at that time is

【0009】[0009]

【数3】 [Equation 3]

【0010】とする。ここで,nは学習の回数,η,α
は定数であり,それぞれ学習係数,モーメント係数と呼
ばれる。また,関数δを以下のように決定する。
[0010] Here, n is the number of learnings, η, α
Are constants, which are called learning coefficient and moment coefficient, respectively. Also, the function δ is determined as follows.

【0011】出力層のニューロンkでは,期待する出力
値をtkとすると,
In the neuron k in the output layer, if the expected output value is t k ,

【0012】[0012]

【数4】 [Equation 4]

【0013】で与えられ,中間層のニューロンjでは,Given by, and in the neuron j of the intermediate layer,

【0014】[0014]

【数5】 [Equation 5]

【0015】と決める。ここで,関数f’は関数fの導
関数である。
And decide. Here, the function f'is a derivative of the function f.

【0016】以上のように修正値Δ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 value of the output layer reaches the expected value.

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

【0018】一方,専用のハードウェアによってニュー
ラルネットを高速に計算させる試みがある。その一つで
ある,”完全ディジタルニューロWSIの基本設計”,
1989年電子情報通信学会春季全国大会講演論文集7
分冊SD-1-5,291〜292ページで発表された方式を図4に
示す。図4において,8はニューロン計算ユニット,9
はバスである。各ニューロン計算ユニット8はバスによ
って結合している。
On the other hand, there is an attempt to calculate a neural network at high speed by using dedicated hardware. One of them, "Basic design of fully digital neuro WSI",
1989 Proceedings of IEICE Spring National Convention 7
Figure 4 shows the method announced on pages 291 to 292 of the separate volume SD-1-5. In FIG. 4, 8 is a neuron calculation unit, 9
Is a bus. Each neuron calculation unit 8 is connected by a bus.

【0019】各ニューロン計算ユニット8のうち一つが
選択され,その出力値をバス9へ次々と出力する。各ニ
ューロン計算ユニット8は,出力しているニューロンに
対する重み値をメモリから読みだして重み付けし,その
積を累積加算する。バス9へ出力するときは,その値を
数1のシグモイド関数によって変換し出力する。重み付
け回路は時分割で動作させる。各ニューロン計算ユニッ
ト8が一通りバス9へ出力すれば,すべてが数2の計算
を行うことができる。以下,これを時分割バス結合方式
と呼ぶ。
One of the neuron calculation units 8 is selected and its output value is output to the bus 9 one after another. Each neuron calculation unit 8 reads the weight value for the output neuron from the memory, weights it, and cumulatively adds the products. When outputting to the bus 9, the value is converted by the sigmoid function of the equation 1 and output. The weighting circuit is operated in time division. If each neuron calculation unit 8 outputs the same to the bus 9, all can perform the calculation of equation 2. Hereinafter, this is referred to as the time division bus coupling method.

【0020】このような時分割バスを用いた汎用学習型
ニューロコンピュータの構成図を図5に示す。ニューロ
コンピュータ10は,ニューラルネット動作を行う複数
のニューロボード12と制御ボード11から構成され
る。また,制御ボード11はニューラルネットワーク制
御装置13とコントロールストレッジ15,グローバル
メモリ16から構成される。
FIG. 5 shows a configuration diagram of a general-purpose learning type neurocomputer using such a time division bus. The neuro computer 10 is composed of a plurality of neuro boards 12 that perform neural network operations and a control board 11. The control board 11 is composed of a neural network control device 13, a control storage 15, and a global memory 16.

【0021】ニューラルネットワーク制御装置13は,
コントロールストレッジ15に格納されるマイクロプロ
グラムコードをデコード,実行することでニューロコン
ピュータ10を制御する。なお,ニューラルネットワー
ク制御装置13は,コントロールストレッジ制御回路1
4a,ワークステーション18とニューロコンピュータ
10の通信手段として外部バスを設け,この外部バスを
制御するニューロン制御回路14cと,入力層ニューロ
ンの値や学習係数などを格納するグローバルメモリ制御
回路14dから構成される。更に,外部バスはメモリ,
CPU,SCSIボードに接続され,SCSIボードは
マイクロプログラムコードを発生させるマイクロジェネ
レータを持つワークステーション18に接続される。
The neural network control device 13 is
The neuro computer 10 is controlled by decoding and executing the micro program code stored in the control storage 15. In addition, the neural network control device 13 is a control storage control circuit 1
4a, an external bus is provided as a communication means between the workstation 18 and the neurocomputer 10, and a neuron control circuit 14c for controlling this external bus and a global memory control circuit 14d for storing the values of the input layer neurons and learning coefficients are constructed. It In addition, the external bus is a memory,
The CPU is connected to a SCSI board, which in turn is connected to a workstation 18 having a microgenerator that generates microprogram code.

【0022】図5のニューロチップ17は生物の脳細胞
に相当する複数のニューロンから構成される。ニューロ
チップ17内の1個のニューロンのブロック図を図1に
示す。ニューロン1へのデータの入出力は入出力バスを
介して行なわれる。また,ニューロン1に対する命令
は,命令バスによりニューロン1に入力され,制御回路
を介して各論理回路へ伝達される。各データの記憶装置
としては,レジスタファイル2,RAM3a,RAM3
bがある。
The neurochip 17 shown in FIG. 5 is composed of a plurality of neurons corresponding to the brain cells of an organism. A block diagram of one neuron in the neurochip 17 is shown in FIG. Input / output of data to / from the neuron 1 is performed via the input / output bus. Further, an instruction for the neuron 1 is input to the neuron 1 via the instruction bus and transmitted to each logic circuit via the control circuit. As a storage device for each data, there are register file 2, RAM3a, RAM3
There is b.

【0023】多段のパイプライン処理を行なうためのフ
リップフロップ(FF)群は,FF4a,FF4b,F
F4c,FF4d,FF4eの5個から構成される。ニ
ューロン1内のバスはA,B,C,D,E,F,Gの7
本のバスから構成される。
Flip-flop (FF) groups for performing multi-stage pipeline processing are FF4a, FF4b, F
It is composed of five F4c, FF4d, and FF4e. The buses in the neuron 1 are 7 of A, B, C, D, E, F and G.
It consists of a book bus.

【0024】ニューラルネットの専用ハードウェアで
は,時分割バス結合方式に加えて,高速に演算を行なう
ため,固定小数点演算方式を採用している。また,上述
したようにハードウェアでは,他のニューロンの出力と
重み値との累積加算が重要である。これに関わる演算器
の内,乗算器5はチップの中でも大きな面積を占める回
路の一つである。そこで,チップのコスト低減や,1チ
ップの中に多くのニューロン計算ユニットを入れて並列
度を上げるために,乗算器5の入力ビット数を制限し
て,チップ面積を小さくする必要がある。これに伴いハ
ードウェアでは乗算器5の入力をそれぞれ16ビットと
10ビットに制限している。ALU6は入力ビット数を
増やしても,チップ面積は乗算器ほど大きくならないの
で,32ビットに設定している。
In the dedicated hardware of the neural network, in addition to the time-division bus connection method, a fixed-point operation method is adopted for high-speed operation. In addition, as described above, in hardware, cumulative addition of the output of another neuron and the weight value is important. Among the arithmetic units involved in this, the multiplier 5 is one of the circuits occupying a large area in the chip. Therefore, in order to reduce the cost of the chip and increase the parallelism by inserting many neuron calculation units in one chip, it is necessary to limit the number of input bits of the multiplier 5 and reduce the chip area. Accordingly, the hardware limits the input of the multiplier 5 to 16 bits and 10 bits, respectively. The ALU 6 is set to 32 bits because the chip area does not become larger than that of the multiplier even if the number of input bits is increased.

【0025】ハードウェアにおける各変数のビット数
は,乗算器5の入力に合わせて,重み値16ビット,ブ
ロードキャストされるニューロンの出力値や逆伝搬誤
差,学習係数等は10ビットである。重み値,出力値,
逆伝搬誤差のフォーマットは図6のようになっている。
The number of bits of each variable in the hardware is 16 bits for the weight value according to the input of the multiplier 5, the output value of the broadcast neuron, the back propagation error, the learning coefficient, etc. is 10 bits. Weight value, output value,
The format of the back propagation error is as shown in FIG.

【0026】次に,ニューロコンピュータ10を用いた
バックプロパゲーション学習の動作を,図1を用いて図
7の処理フローに対応させながら説明する。
Next, the operation of the back propagation learning using the neuro computer 10 will be described with reference to FIG. 1 and in correspondence with the processing flow of FIG.

【0027】ステップ30では,各層のニューロンの出
力値を計算する。図8にステップ30の詳細を示す。ス
テップ33では,前層の各ニューロンの出力値とそのニ
ューロンにつながるシナプスの重み値とを掛け合わせ
て,累積加算をとり内部エネルギーを計算する。すなわ
ち,前層の各ニューロンがマシンサイクル毎に出力値を
ブロードキャストする。該層の各ニューロンは,パイプ
ライン処理によりブロードキャストされた出力値を取り
込み,RAM3a,RAM3bに格納してある重み値を
読みだし,出力値との累積加算を行なう。ステップ34
では,内部エネルギーをシグモイド変換により変換して
出力値を計算する。ここで,シグモイド変換はチェビシ
ェフ近似などの多項式近似により計算を行なう。計算さ
れた出力値は各ニューロンのレジスタファイル2に格納
される。以上のステップ30の処理の結果,各層のニュ
ーロンの出力値が計算される。
In step 30, the output value of the neuron in each layer is calculated. FIG. 8 shows details of step 30. In step 33, the output value of each neuron in the previous layer is multiplied by the weight value of the synapse connected to that neuron, and cumulative addition is performed to calculate the internal energy. That is, each neuron in the previous layer broadcasts the output value every machine cycle. Each neuron in the layer takes in the output value broadcast by the pipeline processing, reads out the weight value stored in the RAM 3a, RAM 3b, and performs cumulative addition with the output value. Step 34
Then, the internal energy is converted by the sigmoid transformation to calculate the output value. Here, the sigmoid transform is calculated by polynomial approximation such as Chebyshev approximation. The calculated output value is stored in the register file 2 of each neuron. As a result of the processing in step 30 above, the output value of the neuron in each layer is calculated.

【0028】ステップ31では,各層のニューロンの逆
伝搬誤差を計算する。図9にステップ31の詳細フロー
を示す。ステップ35では,出力層ニューロンの逆伝搬
誤差を計算する。図10にステップ35の詳細フローを
示す。ステップ37では,レジスタファイル2から出力
値を読みだし,出力層ニューロンの出力値の微分値を計
算する。ステップ38では,レジスタファイル2から出
力値を読みだし,入力バスより教師信号を取り込み,各
出力層ニューロンの出力値と教師信号の誤差を計算す
る。ステップ39では,ステップ37で計算した出力値
の微分値とステップ38で計算した誤差を掛け合わせて
逆伝搬誤差を計算する。ステップ40では,ステップ3
9で計算した逆伝搬誤差をレジスタファイル2に格納す
る。以上のステップ35の処理の結果,出力層の逆伝搬
誤差が計算されレジスタファイル2に格納される。
In step 31, the back propagation error of the neuron in each layer is calculated. FIG. 9 shows a detailed flow of step 31. In step 35, the back propagation error of the output layer neuron is calculated. FIG. 10 shows a detailed flow of step 35. In step 37, the output value is read from the register file 2 and the differential value of the output value of the output layer neuron is calculated. In step 38, the output value is read from the register file 2, the teacher signal is fetched from the input bus, and the error between the output value of each output layer neuron and the teacher signal is calculated. In step 39, the back propagation error is calculated by multiplying the differential value of the output value calculated in step 37 and the error calculated in step 38. In Step 40, Step 3
The back propagation error calculated in 9 is stored in the register file 2. As a result of the processing in step 35, the back propagation error of the output layer is calculated and stored in the register file 2.

【0029】ステップ36では,中間層ニューロンの逆
伝搬誤差を計算する。図11にステップ36の詳細フロ
ーを示す。ステップ41では,レジスタファイル2から
出力値を読みだし,中間層ニューロンの出力値の微分値
を計算する。ステップ42では,出力層側の各ニューロ
ンの逆伝搬誤差と,そのニューロンにつながるシナプス
の重み値とを掛け合わせて累積加算をとる。すなわち,
出力層側の各ニューロンが,マシンサイクル毎に逆伝搬
誤差をブロードキャストする。該層の各ニューロンは,
パイプライン処理によりブロードキャストされた逆伝搬
誤差を取り込み,RAM3a,RAM3bに格納してあ
る重み値を読みだし,逆伝搬誤差との累積加算を行な
う。ステップ43では,ステップ41で計算した出力値
の微分値と,ステップ42で計算した重み値と逆伝搬誤
差の累積加算を掛け合わせ,逆伝搬誤差を計算する。ス
テップ44では,ステップ43で計算した逆伝搬誤差を
レジスタファイル2に格納する。以上のステップ36の
処理の結果,中間層の逆伝搬誤差が計算されレジスタフ
ァイル2に格納される。中間層が複数ある場合は,ステ
ップ36の処理を中間層の数だけ繰り返す。
In step 36, the back propagation error of the hidden layer neuron is calculated. FIG. 11 shows the detailed flow of step 36. In step 41, the output value is read from the register file 2 and the differential value of the output value of the hidden layer neuron is calculated. In step 42, the back propagation error of each neuron on the output layer side is multiplied by the weight value of the synapse connected to that neuron to perform cumulative addition. That is,
Each neuron on the output layer side broadcasts a backpropagation error every machine cycle. Each neuron in the layer is
The backpropagation error broadcast by the pipeline processing is fetched, the weight value stored in the RAMs 3a and 3b is read out, and cumulative addition with the backpropagation error is performed. In step 43, the differential value of the output value calculated in step 41 is multiplied by the weight value calculated in step 42 and the cumulative addition of the back propagation error to calculate the back propagation error. In step 44, the back propagation error calculated in step 43 is stored in the register file 2. As a result of the processing in step 36, the back propagation error of the intermediate layer is calculated and stored in the register file 2. When there are a plurality of intermediate layers, the process of step 36 is repeated for the number of intermediate layers.

【0030】以上のステップ31の処理の結果,各ニュ
ーロンの逆伝搬誤差が計算される。
As a result of the above processing in step 31, the back propagation error of each neuron is calculated.

【0031】ステップ32では,ステップ30で計算し
た出力値とステップ31で計算した逆伝搬誤差を用い
て,各ニューロンのRAM3a,RAM3bに格納して
ある重み値を修正する。簡単のためにモーメント係数は
0であるとする。図12にステップ32の詳細フローを
示す。ステップ45では,まずレジスタファイル2から
逆伝搬誤差を読みだし,入力バスより前の層のニューロ
ンの出力値を取り込む。そして,それらを掛けて数3に
基づき重み値の修正値を計算する。ステップ46では,
RAM3a,RAM3bに格納してある重み値を読みだ
し,ステップ45で計算した修正値を加えて,重み値を
修正する。ステップ47では,ステップ46で修正した
重み値を,RAM3a,RAM3b再度格納する。以上
のステップ32の処理により,RAM3a,RAM3b
に格納してある重み値の修正が行なわれる。各層毎にス
テップ32を繰り返し,全ての層について重み値を修正
する。
In step 32, the output value calculated in step 30 and the back propagation error calculated in step 31 are used to correct the weight value stored in the RAM 3a, RAM 3b of each neuron. For the sake of simplicity, it is assumed that the moment coefficient is 0. FIG. 12 shows the detailed flow of step 32. In step 45, the back propagation error is first read from the register file 2 and the output value of the neuron in the layer before the input bus is fetched. Then, they are multiplied to calculate the correction value of the weight value based on the equation 3. In step 46,
The weight value stored in the RAM 3a, RAM 3b is read out, and the weight value is corrected by adding the correction value calculated in step 45. In step 47, the weight values corrected in step 46 are stored again in the RAMs 3a and 3b. As a result of the processing in step 32 above, the RAM 3a, RAM 3b
The weight value stored in is corrected. Repeat step 32 for each layer to modify the weight values for all layers.

【0032】図1のニューロンブロック図を用いて,学
習処理をマシンサイクル毎の動作に区切って説明する。
出力層,中間層の逆伝搬誤差の計算については,それぞ
れ図10,図11のPADに対応させて,重み値修正に
ついては図12のPADに対応させて詳細に説明する。
なお,データなどの流れは,図1を基に説明する。ま
た,以下個条書された文は,マイクロプログラムコード
に対応したもので,文頭の数字はスタートした時点から
の,マシンサイクル数を表す。
The learning process will be described by dividing it into operations for each machine cycle using the neuron block diagram of FIG.
The back propagation error calculation of the output layer and the intermediate layer will be described in detail with reference to the PADs of FIGS. 10 and 11, and the weight value correction will be described with reference to the PAD of FIG.
The flow of data will be described with reference to FIG. In addition, the sentences described below correspond to the micro program code, and the number at the beginning of the sentence represents the number of machine cycles from the start.

【0033】まず図10の出力層の逆伝搬誤差の計算に
ついて説明する。ステップ37では,出力値の微分値を
計算する。これをマシンサイクル0から3までの処理に
より行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP(NO OPERATION:ニューロン1
に何も命令を与えない状態)。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
First, the calculation of the back propagation error in the output layer of FIG. 10 will be described. In step 37, the differential value of the output value is calculated. This is performed by the processing of machine cycles 0 to 3. 0. Store the output value from register file 2 in FF4b.
Store the output value from register file 2 in FF4b. 1. NOP (NO OPERATION: Neuron 1
State to give nothing to). 2. Store the output value from register file 2 in FF4b.
The shifter 7 shifts the value of FF4e to the left by 0 bit. Store the shift result in FF4d. 3. ALU6 subtracts the FF4d value from the FF4b value. Store the subtraction result in register file 2. As a result of the above processing of machine cycles 0 to 3, the differential value of the output value is calculated.

【0034】ステップ38では,出力値と教師信号の誤
差を計算する。これをマシンサイクル4から5の処理に
より行なう。 4.FF4bに教師信号を格納。レジスタファイル2か
ら出力値を読み出し,FF4cに格納。 5.ALU6にてFF4bの値からFF4c値の減算を
実行。減算結果をレジスタファイル30に格納。 以上のマシンサイクル4から5の処理の結果,出力値の
微分値が計算される。
In step 38, the error between the output value and the teacher signal is calculated. This is performed by the processing of machine cycles 4 to 5. 4. Store the teacher signal in FF4b. Read the output value from register file 2 and store it in FF4c. 5. ALU6 subtracts the FF4c value from the FF4b value. Store the subtraction result in the register file 30. As a result of the above processing of machine cycles 4 to 5, the differential value of the output value is calculated.

【0035】ステップ39では,ステップ37で計算し
た微分値と,ステップ38で計算した誤差を掛け合わせ
て逆伝搬誤差を計算する。但し,図6の逆伝搬誤差のビ
ットフォーマットにあわせるため,逆伝搬誤差を計算し
た後は3ビットシフトする。以上をマシンサイクル6か
ら9の処理により行なう。 6.レジスタファイル2から出力値の微分値をFF4b
に格納。レジスタファイル2から出力値の誤差をFF4
cに格納。 7.NOP。 8.シフタ7にてFF4eの値を左に3ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル6から9の処理の結果,逆伝搬誤
差が計算される。
In step 39, the back propagation error is calculated by multiplying the differential value calculated in step 37 and the error calculated in step 38. However, in order to match the bit format of the back propagation error in FIG. 6, the back propagation error is calculated and then shifted by 3 bits. The above is performed by the processing of machine cycles 6 to 9. 6. The differential value of the output value from the register file 2 is FF4b
Stored in. The error of the output value from the register file 2 is FF4
Stored in c. 7. NOP. 8. The shifter 7 shifts the value of FF4e left by 3 bits.
Store the shift result in FF4c. Store a 10-bit mask in FF4b. As a result of the processing of the above machine cycles 6 to 9, the back propagation error is calculated.

【0036】ステップ40では,ステップ39で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル9の処理により行なう。 9.ALU6にてFF4bの値とFF4c値のANDを
実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から9の結果,出力層の逆伝搬
誤差が計算されて格納される。
In step 40, the back propagation error calculated in step 39 is stored. However, since the input / output bus is 10 bits when calculating the back propagation error of the middle layer,
A 10-bit mask is applied and stored. This is performed by the processing of the machine cycle 9. 9. The AND of the FF4b value and the FF4c value is executed by the ALU6. Store AND result in register file 2. As a result of the above machine cycles 0 to 9, the back propagation error in the output layer is calculated and stored.

【0037】次に図11の中間層の逆伝搬誤差の計算に
ついて説明する。ステップ41では,出力値の微分値を
計算する。これをマシンサイクル0から3までの処理に
より行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
Next, the calculation of the back propagation error of the intermediate layer in FIG. 11 will be described. In step 41, the differential value of the output value is calculated. This is performed by the processing of machine cycles 0 to 3. 0. Store the output value from register file 2 in FF4b.
Store the output value from register file 2 in FF4b. 1. NOP. 2. Store the output value from register file 2 in FF4b.
The shifter 7 shifts the value of FF4e to the left by 0 bit. Store the shift result in FF4d. 3. ALU6 subtracts the FF4d value from the FF4b value. Store the subtraction result in register file 2. As a result of the above processing of machine cycles 0 to 3, the differential value of the output value is calculated.

【0038】ステップ42では,出力層側ニューロンの
逆伝搬誤差と重み値との積和を計算する。 4.FF4bに逆伝搬誤差を格納。RAM3a,RAM
3bから重み値を16ビット読み出し,FF4cに格
納。 5.FF4dをリセット。 6.ALU6にてFF4dとFF4eを加算。加算結果
をFF4dに格納。 以上のマシンサイクル4から6の結果,出力層側ニュー
ロンの逆伝搬誤差と重み値との積和が計算される。出力
層側ニューロンが複数ある場合は,マシンサイクル4及
び6の処理をパイプラインにより繰り返す。
At step 42, the product sum of the back propagation error of the output layer side neuron and the weight value is calculated. 4. Store the back propagation error in FF4b. RAM3a, RAM
16-bit weight value is read from 3b and stored in FF4c. 5. Reset FF4d. 6. Add FF4d and FF4e in ALU6. Store the addition result in FF4d. As a result of the above machine cycles 4 to 6, the product sum of the back propagation error of the output layer side neuron and the weight value is calculated. When there are multiple output layer side neurons, the processing of machine cycles 4 and 6 is repeated by the pipeline.

【0039】ステップ43では,ステップ41で計算し
た出力値の微分値と,ステップ42で計算した逆伝搬誤
差と重み値の積和を掛けて,中間層の逆伝搬誤差を計算
する。但し,積和の計算ではFF4eからALU6への
入力は26ビット下詰めとなるので,小数点の位置を合
わせるため7ビットシフトする。更に,図6の逆伝搬誤
差のビットフォーマットにあわせるため,逆伝搬誤差を
計算した後は3ビットシフトする。以上をマシンサイク
ル4から6の処理により行なう。 7.シフタ7にてFF4dの値を左に7ビットシフト。
シフト結果をFF4bに格納。レジスタファイル2から
出力値の微分値を読み出し,FF4cに格納。 8.NOP。 9.シフタ7にてFF4eの値を左に3ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル7から9の処理により逆伝搬誤差
が計算される。
In step 43, the differential value of the output value calculated in step 41 is multiplied by the product sum of the back propagation error calculated in step 42 and the weight value to calculate the back propagation error of the intermediate layer. However, in the calculation of the sum of products, the input from the FF 4e to the ALU 6 is 26 bits lower justified, so that 7 bits are shifted to match the position of the decimal point. Further, in order to match the bit format of the back-propagation error in FIG. 6, after the back-propagation error is calculated, it is shifted by 3 bits. The above is performed by the processing of machine cycles 4 to 6. 7. The shifter 7 shifts the value of FF4d to the left by 7 bits.
Store the shift result in FF4b. Read the differential value of the output value from the register file 2 and store it in FF4c. 8. NOP. 9. The shifter 7 shifts the value of FF4e left by 3 bits.
Store the shift result in FF4c. Store a 10-bit mask in FF4b. The back-propagation error is calculated by the processing of the above machine cycles 7 to 9.

【0040】ステップ44では,ステップ43で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル10の処理により行なう。 10.ALU6にてFF4bの値とFF4c値のAND
を実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から10の結果,中間力層の逆
伝搬誤差が計算されて格納される。
In step 44, the back propagation error calculated in step 43 is stored. However, since the input / output bus is 10 bits when calculating the back propagation error of the middle layer,
A 10-bit mask is applied and stored. This is performed by the processing of the machine cycle 10. 10. AND of FF4b value and FF4c value in ALU6
Run. Store AND result in register file 2. As a result of the above machine cycles 0 to 10, the back propagation error of the intermediate force layer is calculated and stored.

【0041】次に図12の重み値の修正について説明す
る。ステップ45では,重み値の修正値を計算する。こ
れをマシンサイクル0から4までの処理により行なう。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。 1.NOP。 2.FF4bに学習係数を格納。シフタ7にてFF4e
の値を左に0ビットシフト。シフト結果をFF4cに格
納。 3.NOP。 4.FF4eの結果を0ビットシフト。シフト結果をレ
ジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
Next, the correction of the weight value shown in FIG. 12 will be described. In step 45, the correction value of the weight value is calculated. This is performed by the processing of machine cycles 0 to 4. 0. The output value of the neuron in the previous layer is stored in FF4b, FF
Store backpropagation error in 4c. 1. NOP. 2. The learning coefficient is stored in FF4b. FF4e with shifter 7
Shift the value of 0 to the left. Store the shift result in FF4c. 3. NOP. 4. Shift the result of FF4e by 0 bits. Store the shift result in register file 2. The weight value correction value is calculated by the above processing from machine cycle 0 to 4.

【0042】ステップ46では,16ビットの重み値を
読みだし,それを修正する。これをマシンサイクル5か
ら6までの処理により行なう。 5.RAM3a,RAM3bから重み値16ビットを読
みだし,FF4cに格納。レジスタファイル2から重み
値修正値を読みだし,FF4bに格納。 6.ALU6にてFF4bとFF4cの値を加算。その
結果をFF4aに格納。 以上のマシンサイクル5から6までの処理により,重み
値修正が行なわれる。
In step 46, the 16-bit weight value is read out and corrected. This is performed by the processing of machine cycles 5 to 6. 5. 16-bit weight value is read from RAM3a and RAM3b and stored in FF4c. The weight value correction value is read from register file 2 and stored in FF4b. 6. Add the values of FF4b and FF4c in ALU6. The result is stored in FF4a. The weight value correction is performed by the above processing of the machine cycles 5 to 6.

【0043】ステップ47では,修正した重み値を格納
する。これをマシンサイクル7の処理により行なわれ
る。 7.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル0から7の処理により,16ビッ
トの重み値読みだしと,その修正,そして修正された重
み値の格納が行なわれる。このように固定小数点かつパ
イプライン処理を行なうニューロコンピュータによっ
て,高速な学習が可能になる。
In step 47, the corrected weight value is stored. This is performed by the processing of machine cycle 7. 7. Store the value of FF4a in RAM3a, RAM3b. Through the above-described processing of machine cycles 0 to 7, the 16-bit weight value is read, its correction is performed, and the corrected weight value is stored. A neurocomputer that performs fixed-point and pipeline processing in this way enables high-speed learning.

【0044】[0044]

【発明が解決しようとする課題】ハードウェアで実現さ
れたニューロコンピュータでは,チップの中で大きな面
積を占める乗算器の回路規模が拡大するのを防ぐため
に,乗算器の入力ビット幅を16ビットと10ビットに
制限している。これに伴い,重み値や逆伝搬誤差のビッ
ト数がそれぞれ16ビット,10ビットに制限されてい
る。このビット数制限の結果,高精度な学習が困難であ
るという問題が生じる。
In a neuro computer realized by hardware, the input bit width of the multiplier is set to 16 bits in order to prevent the circuit scale of the multiplier occupying a large area in the chip from expanding. It is limited to 10 bits. Accordingly, the number of bits of the weight value and the back propagation error is limited to 16 bits and 10 bits, respectively. As a result of this bit number limitation, there arises a problem that it is difficult to perform highly accurate learning.

【0045】すなわち,ニューラルネットワークの学習
では,学習が進むにつれて逆伝搬誤差が次第に小さくな
る。学習が進行すると出力層の出力値が教師信号に近づ
くため,出力値と教師信号の誤差が小さくなる。さら
に,学習が進行すると一般的に出力値が0や1に近づく
ニューロンが増えるため,出力値の微分値が小さくなる
傾向がある。結果として,数4に示す出力層の逆伝搬誤
差や,数5に示す中間層の逆伝搬誤差が小さくなる。
That is, in the learning of the neural network, the back propagation error gradually becomes smaller as the learning progresses. As the learning progresses, the output value of the output layer approaches the teacher signal, so the error between the output value and the teacher signal becomes smaller. Furthermore, as learning progresses, the number of neurons whose output value approaches 0 or 1 generally increases, so the differential value of the output value tends to decrease. As a result, the back propagation error of the output layer shown in Formula 4 and the back propagation error of the intermediate layer shown in Formula 5 are reduced.

【0046】逆伝搬誤差が非常に小さくなった場合,数
3で示す重み値の修正値も非常に小さくなる。そのた
め,たとえ修正値がゼロでない値を取ったとしても,図
6で示す16ビットの重み値に修正値を加算したときに
は,小数点以下のビット数が足りないために,修正後の
重み値が全く変わらない状況が生じる。
When the back-propagation error becomes very small, the correction value of the weight value shown in equation 3 also becomes very small. Therefore, even if the correction value takes a non-zero value, when the correction value is added to the 16-bit weight value shown in FIG. An unchanging situation arises.

【0047】図6で示す逆伝搬誤差の最小値は,2のマ
イナス12乗であり,出力値の最小値は2のマイナス9
乗である。伝搬誤差と出力値を掛けた値は2のマイナス
21乗であり,これに対して重み値の最小値は2のマイ
ナス11乗である。これは2の10乗の開き、すなわ
ち、約1000倍も大きさに開きがある。学習係数をか
けて修正値を計算しても,学習係数の最大値は高々9程
度であるので,重み値の最小値よりも小さくなる。その
結果,重み値に修正値を加算しても,16ビットに丸め
た後は修正前と変わらないという状況が生じる。
The minimum value of the back propagation error shown in FIG. 6 is 2 minus 12 and the minimum output value is 2 minus 9.
It is the square. The value obtained by multiplying the propagation error and the output value is 2 to the 21st power, while the minimum weight value is 2 to the 11th power. This is a difference of 2 to the 10th power, that is, there is a difference in size of about 1000 times. Even if the correction value is calculated by multiplying the learning coefficient, the maximum value of the learning coefficient is about 9 at most, and therefore, it becomes smaller than the minimum value of the weight values. As a result, even if the correction value is added to the weight value, there is a situation in which after the rounding to 16 bits, it is the same as before the correction.

【0048】一方,逆伝搬誤差そのものも,上述した理
由により学習が進むと2のマイナス12乗よりも小さく
なり,桁落ちが生じるようになる。
On the other hand, the back-propagation error itself becomes smaller than 2 minus the 12th power as the learning progresses for the above-mentioned reason, and the digit cancellation occurs.

【0049】仮に,重み値の桁落ちや逆伝搬誤差の桁落
ちを防ぐために,それぞれのビット数を増やして演算を
行なおうとすると,乗算器等の回路規模が拡大してチッ
プ面積が広がり,チップコストの増大が考えられる。ま
たは,図1で示す回路を用いてビット数を増やした重み
値や逆伝搬誤差の乗算などの演算を行なった場合,例え
ば,1回の重み値と逆伝搬誤差の乗算は,複数回の乗算
に分けて行なう必要がある。このため,パイプライン処
理に基づくハードウェアの高速性が生かされなくなる。
If it is attempted to increase the number of bits for each operation in order to prevent the cancellation of the weight value and the cancellation of the back-propagation error, the circuit scale of the multiplier or the like is expanded and the chip area is expanded. An increase in chip cost can be considered. Alternatively, when an operation such as multiplication of a weight value with an increased number of bits or a back propagation error is performed using the circuit shown in FIG. 1, for example, one multiplication of the weight value and the back propagation error requires a plurality of multiplications. It is necessary to divide into two. For this reason, the high speed of hardware based on pipeline processing cannot be utilized.

【0050】本発明は,このように回路規模を拡張する
ことなく,高速高精度な学習のための演算処理を行なう
ことができる高精度学習演算処理方法と,この演算処理
方法が実現できる情報処理装置を提供することである。
The present invention provides a high-accuracy learning arithmetic processing method capable of performing arithmetic processing for high-speed and high-accuracy learning without expanding the circuit scale as described above, and information processing that can be realized by this arithmetic processing method. It is to provide a device.

【0051】[0051]

【課題を解決するための手段】重み値を単精度の16ビ
ットから倍精度の32ビットに増やした場合に,図1の
回路で演算に非常に時間を必要とする演算器は乗算器で
ある。一方,学習が進行した時に,桁落ちのために修正
しても重み値が変わらなくなるのは,修正後に重み値を
16ビットに丸めるためである。
When the weight value is increased from 16 bits of single precision to 32 bits of double precision, the arithmetic unit that requires a very long time for the operation in the circuit of FIG. 1 is a multiplier. . On the other hand, when the learning progresses, the weight value does not change even if the weight value is corrected due to cancellation of digits because the weight value is rounded to 16 bits after the correction.

【0052】これらのことを考慮し,一つの重み値は3
2ビットで保存しておき,ニューロンの出力値の計算に
おける重み値と他のニューロンの出力値の累積加算,及
び,逆伝搬誤差の計算における重み値と他のニューロン
の逆伝搬誤差の累積加算の場合には,重み値の上位16
ビットを用いて演算を行なう。一方,重み値の修正時に
は倍精度の32ビット全体を読み出し,修正を行なう。
すなわち,第1の発明として,所定のビット数を用いて
固定小数点の乗算を行なう乗算器,及び加算器を備え,
所定のビット数の重み値,出力値,逆伝搬誤差を用いて
所望のニューラルネット演算を行なうニューロコンピュ
ータにおいて,重み値の学習時に上記所定のビット数よ
りも多いビット数の重み値を格納しておき,ニューロン
出力値計算時,及び逆伝搬誤差計算時には格納された重
み値から所定のビット数分を読み出して演算に用いるス
テップと,重み値の修正時には,上記所定のビット数よ
りも多いビット数を読み出して演算に用いるステップに
より実現できる。
Considering these things, one weight value is 3
It is stored in 2 bits, and the weight value in the calculation of the output value of the neuron and the cumulative addition of the output value of other neurons, and the weight value in the calculation of the back propagation error and the cumulative addition of the back propagation error of other neurons are calculated. In this case, the top 16 weight values
Perform operations using bits. On the other hand, when correcting the weight value, the entire 32-bit double precision is read out and corrected.
That is, as a first invention, a multiplier for performing fixed-point multiplication using a predetermined number of bits and an adder are provided,
In a neurocomputer that performs a desired neural network operation using a weight value of a predetermined number of bits, an output value, and backpropagation error, a weight value of a number of bits larger than the predetermined number of bits is stored when learning the weight value. Every time a neuron output value is calculated and a backpropagation error is calculated, a step of reading a predetermined number of bits from the stored weight value and using it in the calculation, and a number of bits larger than the predetermined number of bits when correcting the weight value Can be realized by the steps of reading out and using for calculation.

【0053】更に,学習がある程度進行した状態では,
逆伝搬誤差が非常に小さくなり,桁落ちが生じる。そこ
で,第2の発明として,所定のビット数を用いて固定小
数点の乗算を行なう乗算器,及び加算器を備え,所定の
ビット数の重み値,出力値,逆伝搬誤差を用いて所望の
ニューラルネット演算を行なうニューロコンピュータに
おいて,小数点位置が違う複数の学習用マイクロプログ
ラムを格納するステップと,学習に用いるマイクロプロ
グラムを学習の過程で切り替えるための条件を格納する
ステップと,学習の過程で上記切り替える条件が満たさ
れた場合には,複数のマイクロプログラムの中から一つ
を選択し,それを学習に用いるステップにより実現でき
る。
Furthermore, in the state where learning has progressed to some extent,
The back-propagation error becomes very small, and digit cancellation occurs. Therefore, as a second invention, a multiplier for performing fixed-point multiplication using a predetermined number of bits and an adder are provided, and a desired neural network is obtained by using a weight value of a predetermined number of bits, an output value, and a back propagation error. In a neurocomputer that performs net operation, a step of storing a plurality of learning microprograms having different decimal point positions, a step of storing a condition for switching a microprogram used for learning in the learning process, and the above switching in the learning process When the condition is satisfied, it can be realized by selecting one from a plurality of microprograms and using it for learning.

【0054】さらに,第3の発明として,所定のビット
数を用いて固定小数点の乗算を行なう乗算器,及び加算
器を備え,所定のビット数の重み値,出力値,逆伝搬誤
差を用いて所望のニューラルネット演算を行なうニュー
ロコンピュータにおいて,小数点位置が違う複数の学習
用マイクロプログラムを用意するステップと,学習を開
始する前に,ユーザが複数のマイクロプログラムの中か
ら,学習させる問題に合わせて一つを選択するステップ
と,選択したプログラムをニューロコンピュータに格納
し,学習を行なうステップにより実現できる。
Further, as a third invention, a multiplier for performing fixed point multiplication using a predetermined number of bits, and an adder are provided, and a weight value of a predetermined number of bits, an output value, and a back propagation error are used. In a neurocomputer that performs a desired neural network operation, a step of preparing a plurality of learning microprograms having different decimal point positions, and, before starting learning, according to the problem to be learned by the user from the plurality of microprograms This can be realized by the step of selecting one and the step of learning by storing the selected program in a neuro computer.

【0055】[0055]

【作用】第1の発明により,以下の4つの作用がある。
まず第1に,重み値を倍精度の32ビットにするので,
その修正において桁落ちが防げるようになり,修正前と
修正後の重み値が同じ値になることがなくなる。第2
に,重み値の桁落ちのために学習が進行しなくなること
を防ぐことができる。すなわち,ニューロンの出力値の
計算における重み値と他のニューロンの出力値の累積加
算,及び,逆伝搬誤差の計算における重み値と他のニュ
ーロンの逆伝搬誤差の累積加算の場合には,重み値の上
位16ビットを用いて演算を行なう。しかし,学習の過
程で何度も重み値を修正するので,一回の修正が上位1
6ビットよりも小さいとしても,いずれは累積されその
結果が上位16ビットにも影響を与えるようになる。こ
れらの結果,重み値の桁落ちのために学習が進行しなく
なることを防ぐことができる。第3に,高精度な重み値
修正の学習が行なわれるにも関わらず,高速な演算が可
能になる。乗算器を用いる重み値と他のニューロンの出
力値の累積加算や,他のニューロンの逆伝搬誤差の累積
加算では,従来通り重み値は単精度の16ビットしか使
用しないので,1回の乗算を複数回に分ける必要がな
い。その結果,従来と同様な高速演算を行なうことが可
能である。第4に,回路規模が大きくなる乗算器のチッ
プ面積の増加を防ぐことができる。従来通り,乗算では
単精度演算を行なうので,入力ビット数を増やす必要が
なく,チップで大きな面積を占める乗算器の回路規模
を,縮小することが可能になる。結果として,チップコ
ストの増大を防ぐこともできるようになる。
According to the first invention, there are the following four actions.
First of all, since the weight value is set to double precision 32 bits,
It is possible to prevent digit cancellation in the modification, and the weight values before and after modification will not be the same value. Second
In addition, it is possible to prevent the learning from stopping due to the cancellation of the weight value. That is, in the case of the cumulative addition of the weight value in the calculation of the output value of the neuron and the output value of the other neuron, and the cumulative addition of the weight value in the calculation of the back propagation error and the back propagation error of the other neuron, the weight value Calculation is performed using the upper 16 bits of. However, since the weight value is modified many times during the learning process, one modification is the top 1
Even if it is smaller than 6 bits, it will eventually be accumulated and the result will also affect the upper 16 bits. As a result, it is possible to prevent the learning from stopping due to the cancellation of the weight value. Thirdly, high-speed calculation is possible even though highly accurate weight value correction learning is performed. In the cumulative addition of the weight value using the multiplier and the output value of the other neuron, and the cumulative addition of the back propagation error of the other neuron, since the weight value uses only 16 bits of single precision as in the conventional case, one multiplication is required. There is no need to divide it into multiple times. As a result, it is possible to perform high-speed calculation similar to the conventional one. Fourth, it is possible to prevent an increase in the chip area of the multiplier, which increases the circuit scale. As in the past, since the multiplication is performed in the single precision operation, it is not necessary to increase the number of input bits, and the circuit scale of the multiplier occupying a large area in the chip can be reduced. As a result, it becomes possible to prevent an increase in chip cost.

【0056】第2の発明により次の作用がある。学習が
進行すると逆伝搬誤差が小さくなる。しかし,学習の進
行に合わせて逆伝搬誤差の小数点位置をずらすので,限
られたビット数にも関わらず,逆伝搬誤差の桁落ちを防
ぐことができる。結果として学習の進行が停滞すること
なく,高速な学習が行なわれるようになる。
The second invention has the following effects. The back propagation error becomes smaller as the learning progresses. However, since the decimal point position of the back-propagation error is shifted according to the progress of learning, it is possible to prevent the back-propagation error from being canceled even though the number of bits is limited. As a result, high-speed learning can be performed without slowing the progress of learning.

【0057】第3の発明により,次の作用がある。ユー
ザは学習させる問題に応じて,逆伝搬誤差の小数点位置
が違うマイクロプログラムを選択することができる。そ
のため,高精度な学習が必要な場合には,小数点位置が
小さい逆伝搬誤差を使ったマイクロプログラムを使うこ
とができる。そのため,学習が途中で停滞することがな
くなり,高速な学習と高精度な学習を両立することが可
能になる。
According to the third invention, there are the following effects. The user can select a microprogram with a different back-propagation error decimal point position depending on the problem to be learned. Therefore, when highly accurate learning is required, a microprogram that uses back propagation error with a small decimal point position can be used. Therefore, learning does not become stagnant on the way, and it is possible to achieve both high-speed learning and highly accurate learning.

【0058】[0058]

【実施例】本発明の第1の実施例を図1,図7,図1
2,図13を用いて説明する。図1はニューロンのブロ
ック図を示しており、図7はバックプロパゲーション学
習のPADを示しており、図12は図7のステップ32
の詳細を示すPADであり、図13は本発明の実施例の
重み値と逆伝搬誤差のビットのフォーマットである。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A first embodiment of the present invention is shown in FIGS.
2, it demonstrates using FIG. 1 shows a block diagram of a neuron, FIG. 7 shows a PAD for backpropagation learning, and FIG. 12 shows step 32 of FIG.
13 is a PAD showing the details of FIG. 13, and FIG. 13 is a format of a bit of a weight value and a back propagation error according to the embodiment of the present invention.

【0059】本発明の第1の実施例における図1のニュ
ーロンの動作を,図7を用いて説明する。本実施例で
は,重み値のビットのフォーマットは図13に示すよう
に32ビットであり,それを上位16ビット,下位16
ビットに分けて,RAM3a,RAM3bに格納する。
図7においてステップ32が本発明の特徴である。
The operation of the neuron shown in FIG. 1 in the first embodiment of the present invention will be described with reference to FIG. In this embodiment, the bit format of the weight value is 32 bits as shown in FIG.
The data is divided into bits and stored in the RAM 3a and RAM 3b.
In FIG. 7, step 32 is a feature of the present invention.

【0060】ステップ30では,従来技術で説明したこ
とと同様な処理により,RAM3a,RAM3bから重
み値の上位16ビットを読み出し,各ニューロンの出力
値を計算する。ステップ31では,従来技術で説明した
ことと同様な処理により,RAM3a,RAM3bから
重み値の上位16ビットを読み出し,各ニューロンの逆
伝搬誤差を計算する。ステップ32では,ステップ30
で計算した出力値と,ステップ31で計算した逆伝搬誤
差を用いて,各ニューロンのRAM3a,RAM3bに
格納されている重み値を修正する。簡単のためにモーメ
ント係数は0であるとする。
In step 30, the upper 16 bits of the weight value are read from the RAM 3a, RAM 3b and the output value of each neuron is calculated by the same processing as described in the prior art. In step 31, the upper 16 bits of the weight value are read from the RAM 3a and RAM 3b and the back propagation error of each neuron is calculated by the same processing as described in the conventional technique. In step 32, step 30
Using the output value calculated in step 3 and the back propagation error calculated in step 31, the weight value stored in the RAM 3a, RAM 3b of each neuron is corrected. For the sake of simplicity, it is assumed that the moment coefficient is 0.

【0061】図12にステップ32の詳細を示す。ステ
ップ45では,まずレジスタファイル2から逆伝搬誤差
を読み出し,入力バスより前層のニューロンの出力値を
取り込む。そして,それらを掛けて数3の重み値修正値
を計算する。ステップ46では,RAM3a,RAM3
bに格納されている重み値を,16ビットずつ読み出
し,ステップ45で計算した修正値を加えて,重み値を
修正する。ステップ47では,ステップ46で修正した
32ビットの重み値を,RAM3a,RAM3bに16
ビットずつ再度格納する。以上ステップ32の処理によ
り,RAM3a,RAM3bに格納されている32ビッ
トの重み値が修正される。ステップ32を各層毎に繰り
返すことで,全ての層について重み値が修正される。
FIG. 12 shows the details of step 32. In step 45, the back propagation error is first read from the register file 2 and the output value of the neuron in the previous layer is fetched from the input bus. Then, they are multiplied to calculate the weight value correction value of Equation 3. In step 46, RAM3a, RAM3
The weight value stored in b is read in 16-bit units, and the correction value calculated in step 45 is added to correct the weight value. In step 47, the 32-bit weight value corrected in step 46 is stored in the RAM 3a and RAM 3b in 16 bits.
Store bit by bit again. By the processing of step 32, the 32-bit weight value stored in the RAM 3a, RAM 3b is modified. By repeating step 32 for each layer, the weight value is corrected for all layers.

【0062】次に,図1のニューロンのブロック図を用
いて,ステップ47の倍精度の重み値修正の処理をマシ
ンサイクル毎の動作に区切り,図12の重み値修正のP
ADに対応させて詳細に説明する。なお,データなどの
流れは,図1を基に説明する。また,以下個条書された
文は,マイクロプログラムコードに対応したもので,文
頭の数字は高精度学習処理がスタートした時点からの,
マシンサイクル数を表す。
Next, using the block diagram of the neuron of FIG. 1, the process of double-precision weight value correction in step 47 is divided into operations for each machine cycle, and the weight value correction P of FIG. 12 is performed.
It will be described in detail in association with AD. The flow of data will be described with reference to FIG. Also, the sentences written below correspond to the micro program code, and the numbers at the beginning of the sentence are from the time when the high-accuracy learning process starts,
Indicates the number of machine cycles.

【0063】ステップ45では,重み値修正値を計算す
る。これを,マシンサイクル0から4までの処理により
行なう。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。
At step 45, the weight value correction value is calculated. This is performed by the processing of machine cycles 0 to 4. 0. The output value of the neuron in the previous layer is stored in FF4b, FF
Store backpropagation error in 4c.

【0064】1.NOP(NO OPERATION:
ニューロン20に何も命令を与えない状態)。 2.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をFF4cに格納。 3.NOP。 4.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をレジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
1. NOP (NO OPERATION:
(No state is given to the neuron 20). 2. Shifter 7 shifts the result of FF4e by 0 bits. Store the shift result in FF4c. 3. NOP. 4. Shifter 7 shifts the result of FF4e by 0 bits. Store the shift result in register file 2. The weight value correction value is calculated by the above processing from machine cycle 0 to 4.

【0065】ステップ46では,32ビットの重み値を
読みだし,それを修正する。これをマシンサイクル5か
ら9までの処理により行なう。 5.RAM3a,RAM3bから重み値下位ワードを読
み出し,FF4cに格納。 6.ALU6にてFF4cの値をスループット。その結
果をFF4bに格納。
In step 46, the 32-bit weight value is read out and corrected. This is performed by the processing of machine cycles 5 to 9. 5. The lower word of the weight value is read from RAM3a and RAM3b and stored in FF4c. 6. Throughput the value of FF4c in ALU6. The result is stored in FF4b.

【0066】RAM3a,RAM3bから重み値上位ワ
ードを読み出し,FF4cに格納。 7.シフタ7にてFF4bの値を右に16ビットシフ
ト。シフト結果をFF4dに格納。ALU6にてFF4
cの値をスループット。その結果をFF4bに格納。 8.ALU6にてFF4bの値とFF4d値のORを実
行。OR結果をFF4cに格納。レジスタファイル2か
ら重み値の修正値を読みだし,FF4bに格納。 9.ALU6にてFF4bの値とFF4cの値を加算。
加算結果をFF4dに格納。 以上のマシンサイクル5から9までの処理により,32
ビットの重み値読みだしと,その修正が行なわれる。
The upper word of the weight value is read from the RAM 3a, RAM 3b and stored in the FF 4c. 7. The shifter 7 shifts the value of FF4b to the right by 16 bits. Store the shift result in FF4d. FF4 with ALU6
The value of c is the throughput. The result is stored in FF4b. 8. ALU6 executes the OR of the value of FF4b and the value of FF4d. Store the OR result in FF4c. The modified value of the weight value is read from the register file 2 and stored in FF4b. 9. ALU6 adds the value of FF4b and the value of FF4c.
Store the addition result in FF4d. 32 by the above processing of machine cycles 5 to 9
The bit weight value is read and the correction is performed.

【0067】ステップ47では修正された重み値を格納
する。これをマシンサイクル10から12までの処理に
より行なう。 10.シフタ7にてFF4dの値を0ビットシフト。シ
フト結果をFF4aに格納。 11.シフタ7にてFF4dの値を16ビットシフト。
シフト結果をFF4aに格納。FF4aの値をRAM3
a,RAM3bに格納。 12.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル10から12までの処理により,
修正された32ビットの重み値が格納される。このよう
に固定小数点かつ単精度演算処理を行なうニューロコン
ピュータにおいて,図1に示したニューロンブロック図
と,上述した重み値修正法を用いることで,高精度学習
が可能になる。
In step 47, the corrected weight value is stored. This is performed by the processing of machine cycles 10 to 12. 10. Shifter 7 shifts the value of FF4d by 0 bits. Store the shift result in FF4a. 11. Shifter 7 shifts the value of FF4d by 16 bits.
Store the shift result in FF4a. The value of FF4a is stored in RAM3
a, stored in RAM3b. 12. Store the value of FF4a in RAM3a, RAM3b. By the above processing from machine cycle 10 to 12,
The modified 32-bit weight value is stored. In a neurocomputer that performs fixed-point and single-precision arithmetic processing in this way, high-accuracy learning becomes possible by using the neuron block diagram shown in FIG. 1 and the above-described weight value correction method.

【0068】次に,本発明の第2の実施例を,図1,図
5,図13,図14を用いて説明する。図5はニューロ
コンピュータの構成図である。ニューロコンピュータ1
0は,ニューラルネット動作を行う複数のニューロボー
ド12と制御ボード11から構成される。また,制御ボ
ード11はニューラルネットワーク制御装置13とコン
トロールストレッジ15,グローバルメモリ16から構
成される。ニューラルネットワーク制御装置13は,コ
ントロールストレッジ15に格納されるマイクロプログ
ラムコードをデコード,実行することでニューロコンピ
ュータ10を制御する。なお,ニューラルネットワーク
制御装置13は,コントロールストレッジ制御回路14
a,ワークステーション18とニューロコンピュータ1
0の通信手段として外部バスを設け,この外部バスを制
御するニューロン制御回路14cと,入力層ニューロン
の値などを格納するグローバルメモリ制御回路14dか
ら構成される。更に,外部バスはメモリ,CPU,SC
SIボードに接続され,SCSIボードはマイクロプロ
グラムコードを発生させるマイクロジェネレータを持つ
ワークステーション18に接続される。
Next, a second embodiment of the present invention will be described with reference to FIGS. 1, 5, 13 and 14. FIG. 5 is a block diagram of a neuro computer. Neuro Computer 1
Reference numeral 0 is composed of a plurality of neuro boards 12 and a control board 11 which perform a neural network operation. The control board 11 is composed of a neural network control device 13, a control storage 15, and a global memory 16. The neural network control device 13 controls the neuro computer 10 by decoding and executing the micro program code stored in the control storage 15. The neural network control device 13 includes a control storage control circuit 14
a, workstation 18 and neuro computer 1
An external bus is provided as a communication means for 0, and it comprises a neuron control circuit 14c for controlling this external bus and a global memory control circuit 14d for storing the values of the input layer neurons and the like. Furthermore, the external bus is memory, CPU, SC
Connected to the SI board, the SCSI board is connected to a workstation 18 having a microgenerator that generates microprogram code.

【0069】図14は第2の実施例の処理のPADを示
す図である。第2の実施例では,第1の実施例における
32ビットの重み値の修正に加えて,逆伝搬誤差の小数
点位置を学習の過程で変更することを説明する。
FIG. 14 is a diagram showing the PAD of the processing of the second embodiment. In the second embodiment, in addition to the modification of the 32-bit weight value in the first embodiment, changing the decimal point position of the back propagation error in the learning process will be described.

【0070】第2の実施例における図1のニューロンの
動作を,図14を用いて説明する。ステップ50では,
従来技術で説明したことと同様な処理により,RAM3
a,RAM3bから重み値の上位16ビットを読み出
し,各ニューロンの出力値を計算する。ステップ51で
は,従来技術で説明したことと同様な処理により,RA
M3a,RAM3bから重み値の上位16ビットを読み
出し,各ニューロンの逆伝搬誤差を計算する。逆伝搬誤
差のビットのフォーマットは図6に示す。ステップ52
では,第1の実施例で説明したことと同様な処理によ
り,ステップ50で計算した出力値と,ステップ51で
計算した逆伝搬誤差を用いて,各ニューロンのRAM3
a,RAM3bに格納されている重み値を修正する。ス
テップ53では,ステップ50からステップ52を,一
定の回数Ncだけ繰り返す。ステップ54では,平均自
乗誤差を計算し,それが基準値よりも小さければ,ステ
ップ55を実行する。ステップ55では,現在使用して
いるマイクロプログラムから,小数点位置の違う図13
のフォーマットの逆伝搬誤差を用いるマイクロプログラ
ムに変更する。ステップ56では,ステップ53,ステ
ップ54を一定の回数Mc回繰り返す。
The operation of the neuron shown in FIG. 1 in the second embodiment will be described with reference to FIG. In step 50,
The RAM 3 is processed by the same processing as that described in the related art.
a, the upper 16 bits of the weight value are read from the RAM 3b, and the output value of each neuron is calculated. In step 51, RA processing is performed by the same processing as that described in the related art.
The upper 16 bits of the weight value are read from M3a and RAM3b, and the back propagation error of each neuron is calculated. The format of the bit of the back propagation error is shown in FIG. Step 52
Then, by the same processing as that described in the first embodiment, the output value calculated in step 50 and the back-propagation error calculated in step 51 are used, and the RAM 3 of each neuron is
a, the weight value stored in the RAM 3b is corrected. In step 53, steps 50 to 52 are repeated a fixed number of times Nc. In step 54, the mean square error is calculated, and if it is smaller than the reference value, step 55 is executed. In step 55, the position of the decimal point differs from that of the currently used microprogram.
Change to a microprogram that uses the back-propagation error of the format. In step 56, steps 53 and 54 are repeated Mc times a fixed number of times.

【0071】次に,ステップ55を実行した後の,ステ
ップ51の処理を図1,図9,図10,図11を用いて
説明する。図9は図14のステップ51の詳細を示すP
ADであり、図10は図9のステップ35の詳細を示す
PADであり、図11は図9のステップ36の詳細を示
すPADである。
Next, the processing of step 51 after execution of step 55 will be described with reference to FIGS. 1, 9, 10, and 11. FIG. 9 shows details of step 51 in FIG.
10 is a PAD showing the details of step 35 in FIG. 9, and FIG. 11 is a PAD showing the details of step 36 in FIG.

【0072】図1のニューロンブロック図を用いて,ス
テップ51の処理をマシンサイクル毎の動作に区切って
説明する。出力層,中間層の逆伝搬誤差の計算について
は,それぞれ図10,図11のPADに対応させて,重
み値修正については図12のPADに対応させて詳細に
説明する。なお,データなどの流れは,図1を基に説明
する。また,以下個条書された文は,マイクロプログラ
ムコードに対応したもので,文頭の数字はスタートした
時点からの,マシンサイクル数を表す。
The processing of step 51 will be described by dividing it into operations for each machine cycle using the neuron block diagram of FIG. The back propagation error calculation of the output layer and the intermediate layer will be described in detail with reference to the PADs of FIGS. 10 and 11, and the weight value correction will be described with reference to the PAD of FIG. The flow of data will be described with reference to FIG. In addition, the sentences described below correspond to the micro program code, and the number at the beginning of the sentence represents the number of machine cycles from the start.

【0073】まず図9のステップ35,すなわち,図1
0の出力層の逆伝搬誤差の計算について説明する。ステ
ップ37では,出力値の微分値を計算する。これをマシ
ンサイクル0から3までの処理により行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP(NO OPERATION:ニューロン1
に何も命令を与えない状態)。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
First, step 35 in FIG. 9, that is, FIG.
The calculation of the back propagation error in the output layer of 0 will be described. In step 37, the differential value of the output value is calculated. This is performed by the processing of machine cycles 0 to 3. 0. Store the output value from register file 2 in FF4b.
Store the output value from register file 2 in FF4b. 1. NOP (NO OPERATION: Neuron 1
State to give nothing to). 2. Store the output value from register file 2 in FF4b.
The shifter 7 shifts the value of FF4e to the left by 0 bit. Store the shift result in FF4d. 3. ALU6 subtracts the FF4d value from the FF4b value. Store the subtraction result in register file 2. As a result of the above processing of machine cycles 0 to 3, the differential value of the output value is calculated.

【0074】ステップ38では,出力値と教師信号の誤
差を計算する。これをマシンサイクル4から5の処理に
より行なう。 4.FF4bに教師信号を格納。レジスタファイル2か
ら出力値を読み出し,FF4cに格納。 5.ALU6にてFF4bの値からFF4c値の減算を
実行。減算結果をレジスタファイル30に格納。 以上のマシンサイクル4から5の処理の結果,出力値の
微分値が計算される。
In step 38, the error between the output value and the teacher signal is calculated. This is performed by the processing of machine cycles 4 to 5. 4. Store the teacher signal in FF4b. Read the output value from register file 2 and store it in FF4c. 5. ALU6 subtracts the FF4c value from the FF4b value. Store the subtraction result in the register file 30. As a result of the above processing of machine cycles 4 to 5, the differential value of the output value is calculated.

【0075】ステップ39では,ステップ37で計算し
た微分値と,ステップ38で計算した誤差を掛け合わせ
て逆伝搬誤差を計算する。但し,図14の逆伝搬誤差の
ビットフォーマットにあわせるため,逆伝搬誤差を計算
した後は6ビットシフトする。以上をマシンサイクル6
から9の処理により行なう。 6.レジスタファイル2から出力値の微分値をFF4b
に格納。レジスタファイル2から出力値の誤差をFF4
cに格納。 7.NOP。 8.シフタ7にてFF4eの値を左に6ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。 以上のマシンサイクル6から9の処理の結果,逆伝搬誤
差が計算される。
In step 39, the back propagation error is calculated by multiplying the differential value calculated in step 37 and the error calculated in step 38. However, in order to match the bit format of the back propagation error in FIG. 14, 6 bits are shifted after the back propagation error is calculated. Machine cycle 6
The process from 9 to 9 is performed. 6. The differential value of the output value from the register file 2 is FF4b
Stored in. The error of the output value from the register file 2 is FF4
Stored in c. 7. NOP. 8. The shifter 7 shifts the value of FF4e to the left by 6 bits.
Store the shift result in FF4c. Store a 10-bit mask in FF4b. As a result of the processing of the above machine cycles 6 to 9, the back propagation error is calculated.

【0076】ステップ40では,ステップ39で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル9の処理により行なう。 9.ALU6にてFF4bの値とFF4c値のANDを
実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から9の結果,出力層の逆伝搬
誤差が計算されて格納される。
In step 40, the back propagation error calculated in step 39 is stored. However, since the input / output bus is 10 bits when calculating the back propagation error of the middle layer,
A 10-bit mask is applied and stored. This is performed by the processing of the machine cycle 9. 9. The AND of the FF4b value and the FF4c value is executed by the ALU6. Store AND result in register file 2. As a result of the above machine cycles 0 to 9, the back propagation error in the output layer is calculated and stored.

【0077】次に図9のステップ36,すなわち,図1
1の中間層の逆伝搬誤差の計算について説明する。ステ
ップ41では,出力値の微分値を計算する。これをマシ
ンサイクル0から3までの処理により行なう。 0.レジスタファイル2から出力値をFF4bに格納。
レジスタファイル2から出力値をFF4bに格納。 1.NOP。 2.レジスタファイル2から出力値をFF4bに格納。
シフタ7にてFF4eの値を左に0ビットシフト。シフ
ト結果をFF4dに格納。 3.ALU6にてFF4bの値からFF4d値の減算を
実行。減算結果をレジスタファイル2に格納。 以上のマシンサイクル0から3の処理の結果,出力値の
微分値が計算される。
Next, step 36 in FIG. 9, that is, FIG.
The calculation of the backpropagation error of the intermediate layer 1 will be described. In step 41, the differential value of the output value is calculated. This is performed by the processing of machine cycles 0 to 3. 0. Store the output value from register file 2 in FF4b.
Store the output value from register file 2 in FF4b. 1. NOP. 2. Store the output value from register file 2 in FF4b.
The shifter 7 shifts the value of FF4e to the left by 0 bit. Store the shift result in FF4d. 3. ALU6 subtracts the FF4d value from the FF4b value. Store the subtraction result in register file 2. As a result of the above processing of machine cycles 0 to 3, the differential value of the output value is calculated.

【0078】ステップ42では,出力層側ニューロンの
逆伝搬誤差と重み値との積和を計算する。 4.FF4bに逆伝搬誤差を格納。RAM3a,RAM
3bから重み値を16ビット読み出し,FF4cに格
納。 5.FF4dをリセット。 6.ALU6にてFF4dとFF4eを加算。加算結果
をFF4dに格納。 以上のマシンサイクル4から6の結果,出力層側ニュー
ロンの逆伝搬誤差と重み値との積和が計算される。出力
層側ニューロンが複数ある場合は,マシンサイクル4及
び6の処理をパイプラインにより繰り返す。
In step 42, the product sum of the back propagation error of the output layer side neuron and the weight value is calculated. 4. Store the back propagation error in FF4b. RAM3a, RAM
16-bit weight value is read from 3b and stored in FF4c. 5. Reset FF4d. 6. Add FF4d and FF4e in ALU6. Store the addition result in FF4d. As a result of the above machine cycles 4 to 6, the product sum of the back propagation error of the output layer side neuron and the weight value is calculated. When there are multiple output layer side neurons, the processing of machine cycles 4 and 6 is repeated by the pipeline.

【0079】ステップ43では,ステップ41で計算し
た出力値の微分値と,ステップ42で計算した逆伝搬誤
差と重み値の積和を掛けて,中間層の逆伝搬誤差を計算
する。但し,積和の計算ではFF4eからALU6への
入力は26ビット下詰めとなるので,小数点の位置を合
わせるため7ビットシフトする。更に,図14の逆伝搬
誤差のビットフォーマットにあわせるため,逆伝搬誤差
を計算した後は6ビットシフトする。以上をマシンサイ
クル4から6の処理により行なう。 7.シフタ7にてFF4dの値を左に7ビットシフト。
シフト結果をFF4bに格納。レジスタファイル2から
出力値の微分値を読み出し,FF4cに格納。 8.NOP。 9.シフタ7にてFF4eの値を左に6ビットシフト。
シフト結果をFF4cに格納。FF4bに10ビットマ
スクを格納。
In step 43, the differential value of the output value calculated in step 41 is multiplied by the product sum of the back propagation error and the weight value calculated in step 42 to calculate the back propagation error of the intermediate layer. However, in the calculation of the sum of products, the input from the FF 4e to the ALU 6 is 26 bits lower justified, so that 7 bits are shifted to match the position of the decimal point. Further, in order to match the bit format of the back-propagation error in FIG. 14, after the back-propagation error is calculated, it is shifted by 6 bits. The above is performed by the processing of machine cycles 4 to 6. 7. The shifter 7 shifts the value of FF4d to the left by 7 bits.
Store the shift result in FF4b. Read the differential value of the output value from the register file 2 and store it in FF4c. 8. NOP. 9. The shifter 7 shifts the value of FF4e to the left by 6 bits.
Store the shift result in FF4c. Store a 10-bit mask in FF4b.

【0080】以上のマシンサイクル7から9の処理によ
り逆伝搬誤差が計算される。
The back-propagation error is calculated by the processing in the above machine cycles 7 to 9.

【0081】ステップ44では,ステップ43で計算し
た逆伝搬誤差を格納する。但し,中間層の逆伝搬誤差を
計算するときに,入出力バスが10ビットであるので,
10ビットのマスクを施して格納する。これをマシンサ
イクル10の処理により行なう。 10.ALU6にてFF4bの値とFF4c値のAND
を実行。AND結果をレジスタファイル2に格納。 以上のマシンサイクル0から10の結果,中間力層の逆
伝搬誤差が計算されて格納される。
In step 44, the back propagation error calculated in step 43 is stored. However, since the input / output bus is 10 bits when calculating the back propagation error of the middle layer,
A 10-bit mask is applied and stored. This is performed by the processing of the machine cycle 10. 10. AND of FF4b value and FF4c value in ALU6
Run. Store AND result in register file 2. As a result of the above machine cycles 0 to 10, the back propagation error of the intermediate force layer is calculated and stored.

【0082】次に図12の重み値の修正について説明す
る。ステップ45では,重み値修正値を計算する。これ
を,マシンサイクル0から4までの処理により行なう。
但し,逆伝搬誤差は図14に示すビットフォーマットで
あるので,第1の実施例で説明したときよりも,小数点
位置が3ビット分左にずれている。そのため,重み値の
修正値を計算した後は,重み値の小数点位置にあわせる
ために,修正値を3ビット右にずらす。 0.FF4bに前層のニューロンの出力値を格納,FF
4cに逆伝搬誤差を格納。 1.NOP(NO OPERATION:ニューロン2
0に何も命令を与えない状態)。 2.シフタ7にてFF4eの結果を0ビットシフト。シ
フト結果をFF4cに格納。学習係数をFF4bに格
納。 3.NOP。 4.シフタ7にてFF4eの結果を3ビットシフト。シ
フト結果をレジスタファイル2に格納。 以上のマシンサイクル0から4までの処理により,重み
値修正値が計算される。
Next, the correction of the weight value shown in FIG. 12 will be described. In step 45, the weight value correction value is calculated. This is performed by the processing of machine cycles 0 to 4.
However, since the back-propagation error has the bit format shown in FIG. 14, the decimal point position is shifted to the left by 3 bits as compared with the case described in the first embodiment. Therefore, after the correction value of the weight value is calculated, the correction value is shifted to the right by 3 bits in order to match the decimal point position of the weight value. 0. The output value of the neuron in the previous layer is stored in FF4b, FF
Store backpropagation error in 4c. 1. NOP (NO OPERATION: Neuron 2
(A state where no command is given to 0). 2. Shifter 7 shifts the result of FF4e by 0 bits. Store the shift result in FF4c. The learning coefficient is stored in FF4b. 3. NOP. 4. The shifter 7 shifts the result of FF4e by 3 bits. Store the shift result in register file 2. The weight value correction value is calculated by the above processing from machine cycle 0 to 4.

【0083】ステップ46では,32ビットの重み値を
読みだし,それを修正する。これをマシンサイクル5か
ら9までの処理により行なう。 5.RAM3a,RAM3bから重み値下位ワードを読
み出し,FF4cに格納。 6.ALU6にてFF4cの値をスループット。その結
果をFF4bに格納。
In step 46, the 32-bit weight value is read out and corrected. This is performed by the processing of machine cycles 5 to 9. 5. The lower word of the weight value is read from RAM3a and RAM3b and stored in FF4c. 6. Throughput the value of FF4c in ALU6. The result is stored in FF4b.

【0084】RAM3a,RAM3bから重み値上位ワ
ードを読み出し,FF4cに格納。
The weight value upper word is read from the RAM 3a and RAM 3b and stored in the FF 4c.

【0085】7.シフタ7にてFF4bの値を右に16
ビットシフト。シフト結果をFF4dに格納。ALU6
にてFF4cの値をスループット。その結果をFF4b
に格納。 8.ALU6にてFF4bの値とFF4d値のORを実
行。OR結果をFF4cに格納。レジスタファイル2か
ら重み値の修正値を読みだし,FF4bに格納。 9.ALU6にてFF4bの値とFF4cの値を加算。
加算結果をFF4dに格納。 以上のマシンサイクル5から9までの処理により,32
ビットの重み値読みだしと,その修正が行なわれる。
7. Shifter 7 shifts the value of FF4b to the right by 16
Bit shift. Store the shift result in FF4d. ALU6
The value of FF4c is throughput. The result is FF4b
Stored in. 8. ALU6 executes the OR of the value of FF4b and the value of FF4d. Store the OR result in FF4c. The modified value of the weight value is read from the register file 2 and stored in FF4b. 9. ALU6 adds the value of FF4b and the value of FF4c.
Store the addition result in FF4d. 32 by the above processing of machine cycles 5 to 9
The bit weight value is read and the correction is performed.

【0086】ステップ47では修正された重み値を格納
する。これをマシンサイクル10から12までの処理に
より行なう。 10.シフタ7にてFF4dの値を0ビットシフト。シ
フト結果をFF4aに格納。 11.シフタ7にてFF4dの値を16ビットシフト。
シフト結果をFF4aに格納。FF4aの値をRAM3
a,RAM3bに格納。 12.FF4aの値をRAM3a,RAM3bに格納。 以上のマシンサイクル10から12までの処理により,
修正された32ビットの重み値が格納される。
In step 47, the corrected weight value is stored. This is performed by the processing of machine cycles 10 to 12. 10. Shifter 7 shifts the value of FF4d by 0 bits. Store the shift result in FF4a. 11. Shifter 7 shifts the value of FF4d by 16 bits.
Store the shift result in FF4a. The value of FF4a is stored in RAM3
a, stored in RAM3b. 12. Store the value of FF4a in RAM3a, RAM3b. By the above processing from machine cycle 10 to 12,
The modified 32-bit weight value is stored.

【0087】このように固定小数点かつ単精度演算処理
を行なうニューロコンピュータにおいて,図1に示した
ニューロンブロック図と,上述した逆伝搬誤差の小数点
位置を学習過程でずらすことにより,高精度学習が可能
になる。
In the neurocomputer that performs fixed-point and single-precision arithmetic processing in this way, high-precision learning is possible by shifting the neuron block diagram shown in FIG. 1 and the decimal point position of the above-mentioned back-propagation error in the learning process. become.

【0088】なお,図14のステップ54における条件
は,平均自乗誤差に限るものではなく,一定の学習回数
に達したときに逆伝搬誤差の小数点位置をずらすとして
もよい。あるいは,逆伝搬誤差の値をチェックして,例
えば逆伝搬誤差の中で一定の値以下の逆伝搬誤差の割合
がある一定値以上であれば,小数点をずらすとしてもよ
い。
The condition in step 54 of FIG. 14 is not limited to the mean squared error, and the decimal point position of the back propagation error may be shifted when a certain number of learning times is reached. Alternatively, the value of the back-propagation error may be checked, and the decimal point may be shifted if, for example, the ratio of the back-propagation error of a certain value or less among the back-propagation error is a certain value or more.

【0089】次に第3の実施例を図5を用いて説明す
る。ワークステーション18には,それぞれ小数点位置
が違う逆伝搬誤差を含む複数のマイクロプログラムを生
成するマイクロジェネレータが格納されている。ユーザ
は,マイクロジェネレータを用いて,学習させる問題に
応じて,適当な小数点位置の逆伝搬誤差を含むマイクロ
プログラムを生成する。そして,それをSCSIを通し
てニューロコンピュータのコントロールストレッジに格
納して学習を行なう。
Next, a third embodiment will be described with reference to FIG. The workstation 18 stores a micro-generator that generates a plurality of micro-programs including back-propagation errors each having a different decimal point position. The user uses a microgenerator to generate a microprogram including a back propagation error at an appropriate decimal point position according to the problem to be learned. Then, it is stored in the control storage of the neuro computer through SCSI and learning is performed.

【0090】これにより,学習させる問題に応じた精度
の学習が実現することができる。すなわち,通常であれ
ば逆伝搬誤差が桁落ちして,学習が進まないような高精
度演算が要求されるような学習に対しても,ユーザがそ
れに応じたマイクロプログラムを選択することで対応す
ることができる。
As a result, it is possible to realize accuracy learning according to the problem to be learned. That is, the user selects a microprogram corresponding to the learning that requires high-precision calculation that normally causes the back propagation error to be canceled and the learning does not proceed. be able to.

【0091】[0091]

【発明の効果】第1の発明により,以下の3つの効果が
ある。まず第1に,重み値を倍精度の32ビットにする
ので,その修正において桁落ちが防げるようになり,桁
落ちによる学習進行の停滞が免れられる。すなわち,ニ
ューロンの出力値の計算における重み値と他のニューロ
ンの出力値の累積加算,及び,逆伝搬誤差の計算におけ
る重み値と他のニューロンの逆伝搬誤差の累積加算の場
合には,重み値の上位16ビットを用いて演算を行な
う。しかし,学習の過程で何度も重み値を修正するの
で,一回の修正が上位16ビットよりも小さいとして
も,いずれは累積されその結果が上位16ビットにも影
響を与えるようになる。これらの結果,重み値の桁落ち
のために学習が進行しなくなることが防がれる。第2
に,高精度な重み値修正の学習が行なわれるにも関わら
ず,従来と同様な高速な演算が可能になる。乗算器を用
いる重み値と他のニューロンの出力値の累積加算や,他
のニューロンの逆伝搬誤差の累積加算では,従来通り重
み値は単精度の16ビットしか使用しないので,1回の
乗算を複数回に分ける必要がない。その結果,従来と同
様な高速演算を行なうことが可能である。第3に,回路
規模が大きくなる乗算器のチップ面積の増加を防ぐこと
ができる。従来通り,乗算では単精度演算を行なうの
で,入力ビット数を増やす必要がなく,チップで大きな
面積を占める乗算器の回路規模を,縮小することが可能
になる。結果として,チップコストの増大を防ぐことも
できるようになる。図15に重み値が16ビットの場合
と,32ビットの場合の学習曲線のグラフを示す。16
ビットでは学習回数が1000回を超えると誤差は全く
減少しなくなるが,32ビットでは1000回以上でも
徐々に減少して学習が進行するのが分かる。
The first invention has the following three effects. First of all, since the weight value is set to double-precision 32 bits, it is possible to prevent the digit loss in the correction, and to avoid the delay of the learning progress due to the digit loss. That is, in the case of the cumulative addition of the weight value in the calculation of the output value of the neuron and the output value of the other neuron, and the cumulative addition of the weight value in the calculation of the back propagation error and the back propagation error of the other neuron, the weight value Calculation is performed using the upper 16 bits of. However, since the weight value is modified many times during the learning process, even if one modification is smaller than the upper 16 bits, it is eventually accumulated and the result also affects the upper 16 bits. As a result, it is possible to prevent the learning from stopping due to the cancellation of the weight value. Second
In addition, although high-precision weight value correction learning is performed, the same high-speed calculation as in the past becomes possible. In the cumulative addition of the weight value using the multiplier and the output value of the other neuron, and the cumulative addition of the back propagation error of the other neuron, since the weight value uses only 16 bits of single precision as in the conventional case, one multiplication is required. There is no need to divide it into multiple times. As a result, it is possible to perform high-speed calculation similar to the conventional one. Third, it is possible to prevent an increase in the chip area of the multiplier, which increases the circuit scale. As in the past, since the multiplication is performed in the single precision operation, it is not necessary to increase the number of input bits, and the circuit scale of the multiplier occupying a large area in the chip can be reduced. As a result, it becomes possible to prevent an increase in chip cost. FIG. 15 shows a graph of a learning curve when the weight value is 16 bits and when the weight value is 32 bits. 16
It can be seen that the error does not decrease at all when the number of times of learning exceeds 1000 in the case of bits, but gradually decreases and the learning progresses even after 1000 times in the case of 32 bits.

【0092】第2の発明により次の効果がある。学習が
進行すると逆伝搬誤差が小さくなる。しかし,学習の進
行に合わせて逆伝搬誤差の小数点位置をずらすので,限
られたビット数にも関わらず,逆伝搬誤差の桁落ちを防
ぐことができる。結果として,逆伝搬誤差のビット数を
増やすことなく学習の停滞を防止でき,高速な学習が行
なわれるようになる。
The second invention has the following effects. The back propagation error becomes smaller as the learning progresses. However, since the decimal point position of the back-propagation error is shifted according to the progress of learning, it is possible to prevent the back-propagation error from being canceled even though the number of bits is limited. As a result, stagnation of learning can be prevented without increasing the number of bits of back propagation error, and high-speed learning can be performed.

【0093】第3の発明により,次の効果がある。ユー
ザは学習させる問題に応じて,逆伝搬誤差の小数点位置
が違うマイクロプログラムを選択することができる。そ
のため,高精度な学習が必要な場合には,小数点位置が
小さい逆伝搬誤差を使ったマイクロプログラムを使うこ
とができる。そのため,学習が途中で停滞することがな
くなり,高速な学習と高精度な学習を両立することが可
能になる。
The third invention has the following effects. The user can select a microprogram with a different back-propagation error decimal point position depending on the problem to be learned. Therefore, when highly accurate learning is required, a microprogram that uses back propagation error with a small decimal point position can be used. Therefore, learning does not become stagnant on the way, and it is possible to achieve both high-speed learning and highly accurate learning.

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

【図1】ニューロンブロック図を示す図。FIG. 1 is a diagram showing a neuron block diagram.

【図2】ニューラルネットを構成するニューロンモデル
を示す図。
FIG. 2 is a diagram showing a neuron model forming a neural net.

【図3】3層の階層型ニューラルネットを示す図。FIG. 3 is a diagram showing a three-layer hierarchical neural network.

【図4】ニューラルネットを高速に計算する専用ハード
ウェアの原理を示す図。
FIG. 4 is a diagram showing the principle of dedicated hardware that calculates a neural network at high speed.

【図5】ニューロコンピュータの構成を示す図。FIG. 5 is a diagram showing a configuration of a neuro computer.

【図6】ニューロコンピュータの演算で用いる各変数の
ビットのフォーマットを示す図。
FIG. 6 is a diagram showing a bit format of each variable used in the operation of the neurocomputer.

【図7】バックプロパゲーション法の処理のPADを示
す図。
FIG. 7 is a diagram showing a PAD of processing by the back propagation method.

【図8】図7のステップ30の詳細を示す図。8 is a diagram showing details of step 30 in FIG. 7. FIG.

【図9】図7のステップ31の詳細を示す図。9 is a diagram showing details of step 31 in FIG. 7. FIG.

【図10】図9のステップ35の詳細を示す図。FIG. 10 is a diagram showing details of step 35 in FIG. 9;

【図11】図9のステップ36の詳細を示す図。FIG. 11 is a diagram showing details of step 36 in FIG. 9;

【図12】図7のステップ32の詳細を示す図。12 is a diagram showing details of step 32 in FIG.

【図13】本発明の実施例における重み値と逆伝搬誤差
のビットのフォーマットを示す図。
FIG. 13 is a diagram showing a bit format of a weight value and a back propagation error in the embodiment of the present invention.

【図14】本発明の第2の実施例の処理フローを示す
図。
FIG. 14 is a diagram showing a processing flow of the second embodiment of the present invention.

【図15】重み値ビット数が16ビットと32ビットの
場合の学習曲線の比較を示す図。
FIG. 15 is a diagram showing comparison of learning curves when the number of weight value bits is 16 bits and 32 bits.

【符号の説明】[Explanation of symbols]

1……ニューロン,2……レジスタファイル,3a…R
AM,3b…RAM,4a…フリップフロップ,4b…
フリップフロップ,4c…フリップフロップ,4d…フ
リップフロップ,4e…フリップフロップ,5……乗算
器,6……ALU,7……シフタ,8……ニューロン計
算ユニット,9……バス,10…ニューロコンピュー
タ,11…制御ボード,12…ニューロボード,13…
ニューラルネットワーク制御装置,15…コントロール
ストレッジ,16…グローバルメモリ,17…ニューロ
チップ。
1 ... Neuron, 2 ... Register file, 3a ... R
AM, 3b ... RAM, 4a ... Flip-flop, 4b ...
Flip-flop, 4c ... Flip-flop, 4d ... Flip-flop, 4e ... Flip-flop, 5 ... Multiplier, 6 ... ALU, 7 ... Shifter, 8 ... Neuron calculation unit, 9 ... Bus, 10 ... Neurocomputer , 11 ... Control board, 12 ... Neuro board, 13 ...
Neural network controller, 15 ... Control storage, 16 ... Global memory, 17 ... Neurochip.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂口 隆宏 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内 (72)発明者 戸田 裕二 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 桑原 良博 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 茂木 啓次 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 落合 辰男 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Takahiro Sakaguchi 5-20-1 Kamimizuhoncho, Kodaira-shi, Tokyo Inside Hiritsu Cho-LS Engineering Co., Ltd. (72) Inventor Yuji Toda Kokubunji, Tokyo 1-280 Higashi-Kengokubo, Higashi-Kita Central Research Laboratory, Hitachi, Ltd. (72) Yoshihiro Kuwahara, 5-22-1 Kamisuihoncho, Kodaira-shi, Tokyo Hitachi Microcomputer System Co., Ltd. (72) Keiji Mogi, Keiji Mogi, Tokyo 5-22-1 Kamimizuhonmachi, Hitachi, Ltd. Inside Hitachi Microcomputer System Co., Ltd. (72) Inventor Tatsuo Ochiai 5-22-1 Kamuimizuhoncho, Kodaira-shi, Tokyo Inside Hitachi Microcomputer System Co., Ltd.

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて所望のニュー
ラルネット演算を行なうニューロコンピュータにおい
て,ニューラルネットワークの重み値の学習時に,上記
所定のビット数よりも多いビット数の重み値を格納して
おく手段と,学習におけるニューロン出力値計算時,及
び逆伝搬誤差計算時には格納された重み値から所定のビ
ット数分を読み出して演算に用いる手段と,重みの修正
時には,上記所定のビット数よりも多いビット数を読み
出して演算に用いる手段と,を有するニューロコンピュ
ータとして構成したことを特徴とする情報処理装置。
1. A desired neural network operation comprising a multiplier for performing fixed-point multiplication using a predetermined number of bits, and an adder, and using a weight value of a predetermined number of bits, an output value, and back propagation error. In the neuro computer that performs the above, when the weight value of the neural network is learned, a means for storing the weight value of the number of bits larger than the predetermined number of bits, and a neuron output value calculation in the learning and a back propagation error calculation are performed. Configured as a neurocomputer having means for reading out a predetermined number of bits from the stored weight value and using it for calculation, and means for reading out a number of bits larger than the predetermined number of bits and using it for calculation when correcting the weight An information processing device characterized by the above.
【請求項2】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いてマイクロプロ
グラムの制御により所望のニューラルネット演算を行な
うニューロコンピュータにおいて,それぞれ小数点位置
が違う逆伝搬誤差を含む学習を行なうためのマイクロプ
ログラムを複数格納する手段と,学習に用いるマイクロ
プログラムを学習の途中で切り替えるための条件を格納
する手段と,学習の過程で上記切り替える条件が満たさ
れた場合には,複数のマイクロプログラムから別の一つ
を選択し,それを学習に用いる手段と,を有するニュー
ロコンピュータとして構成したことを特徴とする情報処
理装置。
2. A multiplier for performing fixed-point multiplication using a predetermined number of bits, and an adder, wherein a microprogram is controlled by using a weight value of a predetermined number of bits, an output value, and a back propagation error. In a neurocomputer that performs a desired neural network operation, a means for storing a plurality of microprograms for performing learning including back propagation errors with different decimal point positions, and a condition for switching between the microprograms used for learning It is configured as a neurocomputer having means for storing and means for selecting another one from a plurality of microprograms and using it for learning when the above-mentioned switching condition is satisfied in the course of learning. A characteristic information processing device.
【請求項3】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて所望のニュー
ラルネット演算を行なうニューロコンピュータにおい
て,重み値の学習の過程で,逆伝搬誤差の小数点位置を
変更するための条件を格納する手段と,学習の過程で上
記変更する条件が満たされた場合には,逆伝搬誤差の小
数点位置を変更する手段と,上記変更した小数点位置の
逆伝搬誤差を用いて学習を継続する手段と,を有するニ
ューロコンピュータとして構成したことを特徴とする情
報処理装置。
3. A desired neural network operation using a multiplier for performing fixed point multiplication using a predetermined number of bits, and an adder, and using a weight value of a predetermined number of bits, an output value, and back propagation error. In the neurocomputer that performs, the means for storing the condition for changing the decimal point position of the back-propagation error in the process of learning the weight value, and the back-propagation when the condition for changing is satisfied in the process of learning. An information processing device comprising a neuro computer having means for changing a decimal point position of an error and means for continuing learning by using the back propagation error of the changed decimal point position.
【請求項4】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて,マイクロプ
ログラムの制御により所望のニューラルネット演算を行
なうニューロコンピュータにおいて,それぞれ小数点位
置が違う逆伝搬誤差を含むマイクロプログラムを複数記
憶する手段と,重み値の学習を始める前に,学習に用い
るマイクロプログラムを上記複数のプログラムの中から
選択する手段と,選択したマイクロプログラムを用いて
重み値の学習を行なう手段と,を有するニューロコンピ
ュータとして構成したことを特徴とする情報処理装置。
4. A microprogram control, comprising: a multiplier for performing fixed point multiplication using a predetermined number of bits; and an adder, and using a weight value of a predetermined number of bits, an output value, and a back propagation error. In a neurocomputer for performing a desired neural network operation by means of means for storing a plurality of microprograms including back propagation errors each having a different decimal point position, and before starting the learning of weight values, the microprograms used for learning are An information processing apparatus configured as a neurocomputer having means for selecting from among the above and means for learning a weight value using the selected microprogram.
【請求項5】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,及び逆伝搬誤差を用いて所望のニュー
ラルネット演算を行なうニューロコンピュータにおい
て,逆伝搬誤差の小数点位置を変更する手段と,学習を
始める前に上記変更手段を用いて複数の小数点位置か
ら,一つの小数点位置を選択する手段と,選択した小数
点位置の逆伝搬誤差を用いて重み値の学習を行なう手段
と,を有するニューロコンピュータとして構成したこと
を特徴とする情報処理装置。
5. A desired neural network operation comprising a multiplier for performing fixed point multiplication using a predetermined number of bits, and an adder, and using a weight value of a predetermined number of bits, an output value, and back propagation error. In the neurocomputer that performs, the means for changing the decimal point position of the back-propagation error, the means for selecting one decimal point position from a plurality of decimal point positions by using the changing means before starting the learning, and the means for selecting the selected decimal point position An information processing apparatus configured as a neurocomputer having means for learning a weight value using a back propagation error.
【請求項6】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,逆伝搬誤差を用いて所望のニューラル
ネット演算を行なうニューロコンピュータの学習演算処
理方法であって,ニューラルネットワークの重み値の学
習時に,上記所定のビット数よりも多いビット数の重み
値を格納しておくステップと,学習におけるニューロン
出力値計算時,及び逆伝搬誤差計算時には格納された重
み値から所定のビット数分を読み出して演算に用いるス
テップと,重みの修正時には,上記所定のビット数より
も多いビット数を読み出して演算に用いるステップと,
を有することを特徴とする学習演算処理方法。
6. A multiplier for performing fixed-point multiplication using a predetermined number of bits, and an adder, and a desired neural network operation using a weight value, an output value, and a back propagation error of a predetermined number of bits. A method for performing a learning calculation processing of a neuro computer, comprising storing a weight value of a number of bits larger than the predetermined number of bits at the time of learning a weight value of a neural network, and calculating a neuron output value at the time of learning, And a step of reading a predetermined number of bits from the stored weight value for calculation in the back propagation error calculation, and a step of reading a number of bits larger than the predetermined number of bits for calculation in correcting the weight,
A learning calculation processing method comprising:
【請求項7】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,逆伝搬誤差を用いて,マイクロプログ
ラムの制御により所望のニューラルネット演算を行なう
ニューロコンピュータの学習演算処理方法であって,そ
れぞれ小数点位置が違う逆伝搬誤差を含む学習を行なう
ためのマイクロプログラムを複数記憶するステップと,
学習に用いるマイクロプログラムを学習の過程で切り替
えるための条件を記憶するステップと,学習の過程で上
記切り替える条件が満たされた場合には,複数のマイク
ロプログラムから別の一つを選択し,それを学習に用い
るステップと,を有することを特徴とする学習演算処理
方法。
7. A multiplier provided for performing fixed-point multiplication using a predetermined number of bits, and an adder, using a weight value of a predetermined number of bits, an output value, and a back-propagation error to control a microprogram. A learning operation processing method for a neurocomputer that performs a desired neural network operation, the method comprising: storing a plurality of microprograms for performing learning including back-propagation errors each having a different decimal point position;
The step of memorizing the condition for switching the microprogram used for learning and the condition for switching in the learning process are selected, and another one is selected from a plurality of microprograms and A learning operation processing method comprising: a step used for learning.
【請求項8】所定のビット数を用いて固定小数点の乗算
を行なう乗算器,及び加算器を備え,所定のビット数の
重み値,出力値,逆伝搬誤差を用いて,マイクロプログ
ラムの制御により所望のニューラルネット演算を行なう
ニューロコンピュータの学習演算処理方法であって,そ
れぞれ小数点位置が違う逆伝搬誤差を含むマイクロプロ
グラムを複数記憶するステップと,重み値の学習を始め
る前に,学習に用いるマイクロプログラムを上記複数の
プログラムの中から選択するステップと,選択したマイ
クロプログラムを用いて重み値の学習を行なうステップ
と,を有することを特徴とする学習演算処理方法。
8. A multiplier provided for performing fixed-point multiplication using a predetermined number of bits, and an adder, using a weight value of a predetermined number of bits, an output value, and a back-propagation error to control a microprogram. A learning operation processing method of a neurocomputer for performing a desired neural network operation, which comprises a step of storing a plurality of microprograms including back propagation errors each having a different decimal point position, and a microprogram used for learning before starting weight value learning. A learning operation processing method comprising: a step of selecting a program from the plurality of programs; and a step of learning a weight value using the selected microprogram.
JP5225450A 1993-09-10 1993-09-10 Information processor and learning arithmetic processing method Pending JPH0784975A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5225450A JPH0784975A (en) 1993-09-10 1993-09-10 Information processor and learning arithmetic processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5225450A JPH0784975A (en) 1993-09-10 1993-09-10 Information processor and learning arithmetic processing method

Publications (1)

Publication Number Publication Date
JPH0784975A true JPH0784975A (en) 1995-03-31

Family

ID=16829545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5225450A Pending JPH0784975A (en) 1993-09-10 1993-09-10 Information processor and learning arithmetic processing method

Country Status (1)

Country Link
JP (1) JPH0784975A (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018124681A (en) * 2017-01-30 2018-08-09 富士通株式会社 Arithmetic processing device, information processing device, method, and program
JP2019074951A (en) * 2017-10-17 2019-05-16 富士通株式会社 Computation processing circuit, computation processing unit including computation processing circuit, information processing device including computation processing unit, and method
JP2019079535A (en) * 2017-10-23 2019-05-23 三星電子株式会社Samsung Electronics Co.,Ltd. Method and apparatus for processing parameters
JP2019148972A (en) * 2018-02-27 2019-09-05 富士通株式会社 Arithmetic processing device, information processing device, information processing method, and program
CN110428042A (en) * 2018-05-01 2019-11-08 国际商业机器公司 Scale connection weight and the input value of neuron reciprocally to defeat hardware limitation
CN110689109A (en) * 2018-07-04 2020-01-14 三星电子株式会社 Neural network method and apparatus
WO2020065874A1 (en) * 2018-09-27 2020-04-02 株式会社ソシオネクスト Network quantization method, inference method, and network quantization device
CN111160550A (en) * 2018-11-07 2020-05-15 富士通株式会社 Training method, information processing apparatus, and non-transitory computer-readable storage medium
EP3716043A1 (en) 2019-03-29 2020-09-30 Fujitsu Limited Information processor, information processing method, and program
EP3742283A1 (en) 2019-05-21 2020-11-25 Fujitsu Limited Arithmetic processing device, method for controlling arithmetic processing device, and program for controlling arithmetic processing device
EP3748491A1 (en) 2019-06-07 2020-12-09 Fujitsu Limited Arithmetic processing apparatus and control program
EP3764217A1 (en) 2019-07-11 2021-01-13 Fujitsu Limited Arithmetic processing apparatus, control method, and control program
JP2021043596A (en) * 2019-09-09 2021-03-18 株式会社ソシオネクスト Quantization parameter optimization method and quantization parameter optimization device
EP3798929A1 (en) 2019-09-30 2021-03-31 Fujitsu Limited Information processing apparatus, information processing method, and information processing program
US11043962B2 (en) 2018-02-26 2021-06-22 Fujitsu Limited Information processing apparatus, information processing method, and recording medium
JP2022502724A (en) * 2019-08-28 2022-01-11 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd Methods, equipment, and related products for processing data
WO2022009449A1 (en) * 2020-07-10 2022-01-13 富士通株式会社 Information processing device, information processing method, and information processing program
EP4109352A1 (en) 2021-06-23 2022-12-28 Fujitsu Limited Computer-readable recording medium, information processing method, and information processing apparatus

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018124681A (en) * 2017-01-30 2018-08-09 富士通株式会社 Arithmetic processing device, information processing device, method, and program
JP2019074951A (en) * 2017-10-17 2019-05-16 富士通株式会社 Computation processing circuit, computation processing unit including computation processing circuit, information processing device including computation processing unit, and method
JP2019079535A (en) * 2017-10-23 2019-05-23 三星電子株式会社Samsung Electronics Co.,Ltd. Method and apparatus for processing parameters
US11043962B2 (en) 2018-02-26 2021-06-22 Fujitsu Limited Information processing apparatus, information processing method, and recording medium
JP2019148972A (en) * 2018-02-27 2019-09-05 富士通株式会社 Arithmetic processing device, information processing device, information processing method, and program
CN110428042A (en) * 2018-05-01 2019-11-08 国际商业机器公司 Scale connection weight and the input value of neuron reciprocally to defeat hardware limitation
CN110428042B (en) * 2018-05-01 2023-04-18 国际商业机器公司 Reciprocally scaling neuron connection weights and input values to defeat hardware limitations
CN110689109B (en) * 2018-07-04 2024-04-12 三星电子株式会社 Neural network method and device
CN110689109A (en) * 2018-07-04 2020-01-14 三星电子株式会社 Neural network method and apparatus
JP2020009444A (en) * 2018-07-04 2020-01-16 三星電子株式会社Samsung Electronics Co.,Ltd. Method and apparatus of processing parameter in neural network
WO2020065874A1 (en) * 2018-09-27 2020-04-02 株式会社ソシオネクスト Network quantization method, inference method, and network quantization device
JPWO2020065874A1 (en) * 2018-09-27 2021-08-30 株式会社ソシオネクスト Network quantization method, inference method and network quantization device
US11593620B2 (en) 2018-11-07 2023-02-28 Fujitsu Limited Training program, training method, and information processing apparatus
EP3657397A1 (en) 2018-11-07 2020-05-27 Fujitsu Limited Training program, training method, and information processing apparatus
CN111160550A (en) * 2018-11-07 2020-05-15 富士通株式会社 Training method, information processing apparatus, and non-transitory computer-readable storage medium
EP3716043A1 (en) 2019-03-29 2020-09-30 Fujitsu Limited Information processor, information processing method, and program
US11551087B2 (en) 2019-03-29 2023-01-10 Fujitsu Limited Information processor, information processing method, and storage medium
EP3742283A1 (en) 2019-05-21 2020-11-25 Fujitsu Limited Arithmetic processing device, method for controlling arithmetic processing device, and program for controlling arithmetic processing device
EP3748491A1 (en) 2019-06-07 2020-12-09 Fujitsu Limited Arithmetic processing apparatus and control program
US11514320B2 (en) 2019-06-07 2022-11-29 Fujitsu Limited Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program
US11410036B2 (en) 2019-07-11 2022-08-09 Fujitsu Limited Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program
EP3764217A1 (en) 2019-07-11 2021-01-13 Fujitsu Limited Arithmetic processing apparatus, control method, and control program
JP2022502724A (en) * 2019-08-28 2022-01-11 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd Methods, equipment, and related products for processing data
JP2021043596A (en) * 2019-09-09 2021-03-18 株式会社ソシオネクスト Quantization parameter optimization method and quantization parameter optimization device
EP3798929A1 (en) 2019-09-30 2021-03-31 Fujitsu Limited Information processing apparatus, information processing method, and information processing program
WO2022009433A1 (en) * 2020-07-10 2022-01-13 富士通株式会社 Information processing device, information processing method, and information processing program
WO2022009449A1 (en) * 2020-07-10 2022-01-13 富士通株式会社 Information processing device, information processing method, and information processing program
EP4109352A1 (en) 2021-06-23 2022-12-28 Fujitsu Limited Computer-readable recording medium, information processing method, and information processing apparatus

Similar Documents

Publication Publication Date Title
JPH0784975A (en) Information processor and learning arithmetic processing method
US6539368B1 (en) Neural processor, saturation unit, calculation unit and adder circuit
US5600843A (en) Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays
JPH04293151A (en) Parallel data processing system
CN108897716B (en) Data processing device and method for reducing calculation amount through memory read-write operation
JPS6125188B2 (en)
CN109144469B (en) Pipeline structure neural network matrix operation architecture and method
US11341400B1 (en) Systems and methods for high-throughput computations in a deep neural network
US20220108150A1 (en) Method and apparatus for processing data, and related products
US11853897B2 (en) Neural network training with decreased memory consumption and processor utilization
US10853037B1 (en) Digital circuit with compressed carry
US5422836A (en) Circuit arrangement for calculating matrix operations in signal processing
CN111045728A (en) Computing device and related product
US11507813B2 (en) Modulo operation unit
CN112784951A (en) Winograd convolution operation method and related product
JPH076146A (en) Parallel data processing system
JPH04316153A (en) Neuro-processor
CN112766473B (en) Computing device and related product
CN111198714B (en) Retraining method and related product
US10831445B1 (en) Multimodal digital multiplication circuits and methods
Dey et al. An application specific processor architecture with 3D integration for recurrent neural networks
JP2825133B2 (en) Parallel data processing method
CN113536219B (en) Operation method, processor and related products
CN112632464B (en) Processing device for processing data
CN115481713A (en) Method for improving convolution neural network to calculate