JP5393589B2 - Electronic circuit - Google Patents

Electronic circuit Download PDF

Info

Publication number
JP5393589B2
JP5393589B2 JP2010113236A JP2010113236A JP5393589B2 JP 5393589 B2 JP5393589 B2 JP 5393589B2 JP 2010113236 A JP2010113236 A JP 2010113236A JP 2010113236 A JP2010113236 A JP 2010113236A JP 5393589 B2 JP5393589 B2 JP 5393589B2
Authority
JP
Japan
Prior art keywords
data
layer
output
weight
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010113236A
Other languages
Japanese (ja)
Other versions
JP2011242932A (en
Inventor
新次郎 豊田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co 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 Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2010113236A priority Critical patent/JP5393589B2/en
Publication of JP2011242932A publication Critical patent/JP2011242932A/en
Application granted granted Critical
Publication of JP5393589B2 publication Critical patent/JP5393589B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)

Description

本発明は、電子回路に関する。   The present invention relates to an electronic circuit.

脳の構造や機能を模倣した電子回路は、ニューラルネット又はニューロコンピュータと呼ばれ、演算素子である人工ニューロン(以後、混乱する恐れが有る場合を除き、ニューロンと称する)が、多数個同時並列に動作する計算機である。以下、脳の構造や機能を模倣した電子回路、またはソフトウェアによるシミュレータをニューラルネットと称する。   An electronic circuit that mimics the structure and function of the brain is called a neural network or neurocomputer, and many artificial neurons (hereinafter referred to as neurons, unless there is a risk of confusion) are connected in parallel. It is a computer that operates. Hereinafter, an electronic circuit imitating the structure and function of the brain or a software simulator is referred to as a neural network.

ノイマン型計算機は、固定アルゴリズムによる逐次処理に適している。一方、ニューラルネットは脳が持つ特徴を模倣できることから、金属の溶接制御や大規模プラントの運転制御などのように、その制御アルゴリズムを正確に記述することが難しい用途に利用できると考えられている。また、大量かつ曖昧で、欠落や変動幅が大きいデータの並列処理(例えば、画像認識や音声認識など)にも利用できると考えられている。人間の脳並みの規模と機能を持つニューラルネットを実現できれば、ロボットや自動車を大幅に高機能化できるだけでなく、あらゆる機械に人との親和性が高いインターフェース機能を付加したり、過去のデータから未来を予測したりすることもできるようになると期待されている。   The Neumann computer is suitable for sequential processing using a fixed algorithm. On the other hand, since neural networks can mimic the characteristics of the brain, it is thought that they can be used for applications where it is difficult to accurately describe their control algorithms, such as metal welding control and large-scale plant operation control. . It is also considered that it can be used for parallel processing (for example, image recognition, voice recognition, etc.) of a large amount of data that is ambiguous and has a large amount of loss or fluctuation. If a neural network with the same scale and function as a human brain can be realized, not only robots and cars can be greatly enhanced, but also an interface function with high compatibility with humans can be added to all machines, and past data can be used. It is expected to be able to predict the future.

ニューラルネットの主な実現方法は2種類である。1つは、通常のノイマン型コンピュータ上に、ソフトウェアでシミュレータを構築する方法である。この方法では脳研究から得られる知見を生かした精密なモデルを作り、ニューロン及びニューラルネットの内部状態を観察又は制御しながら、ニューラルネットを動作させることができる。しかし、通常のコンピュータを用いたシミュレーション法である為、大規模(10,000ニューロン以上)なニューラルネットを、実時間(全ニューロンが4[ms]程度の時間で演算する)で動かすのは困難である。また、ニューラルネットの特長である、小型/低消費電力というメリットを享受することができない。よって、この方法は小規模なニューラルネットを、主に研究目的で使う場合に適している。   There are two main methods for realizing a neural network. One is a method of building a simulator by software on a normal Neumann computer. In this method, a precise model that makes use of knowledge obtained from brain research can be created, and the neural network can be operated while observing or controlling the internal states of the neurons and the neural network. However, since it is a simulation method using a normal computer, it is difficult to move a large-scale (10,000 neurons or more) neural network in real time (all neurons calculate in about 4 ms). It is. In addition, the advantage of small size / low power consumption, which is a feature of the neural network, cannot be enjoyed. Therefore, this method is suitable when a small-scale neural network is mainly used for research purposes.

もう1つの実現方法は、ニューロンを電子回路でモデル化し、それを多数個実装したハードウェアとして実現する方法である。この方法では、多数(10,000個程度)のニューロンを並列に実時間動作させられる可能性が有る。   The other realization method is a method in which a neuron is modeled by an electronic circuit and is implemented as hardware in which a large number of the neurons are mounted. In this method, there is a possibility that a large number (about 10,000) neurons can be operated in parallel in real time.

従来のニューラルネットの例として、図15を用いてニューラルネットの一部を説明する。図15は、ニューラルネットの一部を表した模式図である。L1層はデータ入力層であり、ここには、例えば4ビット幅の入力データを、4[ms]周期のパルス列に変換するニューロン210(iは1から1,000の整数)が、1,000個存在する。L2層はデータ処理層であり、データを演算処理するニューロン212(jは1から900の整数)が、例えば900個存在する。 As an example of a conventional neural network, a part of the neural network will be described with reference to FIG. FIG. 15 is a schematic diagram showing a part of a neural network. The L1 layer is a data input layer. For example, neurons 210 i (i is an integer from 1 to 1,000) for converting 4-bit input data into a pulse train having a period of 4 [ms] are represented by 1, There are 000. The L2 layer is a data processing layer, and there are, for example, 900 neurons 212 j (j is an integer from 1 to 900) that performs arithmetic processing on data.

各ニューロン210からは1本の出力信号線211が出ている。出力信号線211は、ニューロン212の個数が900なので最大900に分岐し、シナプス結合213i,jを介してニューロン212と接続される。つまり、シナプス結合213i,jは、各ニューロン212に最大1,000個存在する。各信号線211で伝送されるデータa(L1層のi番目のニューロン210の出力)は1ビット信号である。 Each neuron 210 i has one output signal line 211 i . Since the number of neurons 212 j is 900, the output signal line 211 i branches to a maximum of 900 and is connected to the neuron 212 j via the synapse connection 213 i, j . That is, a maximum of 1,000 synapse connections 213 i, j exist in each neuron 212 j . Data a i (output of the i-th neuron 210 i in the L1 layer) transmitted through each signal line 211 i is a 1-bit signal.

各シナプス結合213i,jは、例えば8ビット幅の重みデータwi,j(L1層のニューロン210からの信号を受け取るL2層のj番目のニューロン212のシナプス結合の重み)を保持しており、aとの積a×wi,jを計算する。各ニューロン212では、それぞれに付属するシナプス結合が計算した最大1,000個の積a×wi,jの和を計算する。つまり、積a×wi,jのiについて総和計算をする。 Each synapse connection 213 i, j holds, for example, 8-bit width weight data w i, j (the weight of the synapse connection of the jth neuron 212 j in the L2 layer that receives a signal from the neuron 210 i in the L1 layer). and which calculates the product a i × w i, j and a i. Each neuron 212 j calculates the sum of a maximum of 1,000 products a i × w i, j calculated by the synaptic connections attached to each neuron 212 j . That is, the sum is calculated for i of the products a i × w i, j .

そして、総和の値が予め決められている閾値θを超えると、その出力信号線214を1にし、閾値θを超えない場合は、その出力信号線214を0にする。これら一連の演算は4[ms]以内で終了することが理想である。図15に例示するニューラルネットはニューロン数が1,900と少ないので、当該ニューラルネットをソフトウェアでシミュレートしても、或いは、当該ニューラルネットを電子回路で実装しても、4[ms]以内で動作させることは可能である。 When the total value exceeds a predetermined threshold value θ, the output signal line 214 j is set to 1, and when the total value does not exceed the threshold value θ, the output signal line 214 j is set to 0. Ideally, a series of these operations is completed within 4 [ms]. Since the neural network illustrated in FIG. 15 has a small number of neurons of 1,900, even if the neural network is simulated by software or the neural network is implemented by an electronic circuit, the neural network is within 4 [ms]. It is possible to operate.

以上の説明から明らかなように、L1層の1,000個のニューロン210は、L2層の900個のニューロン212と総当たりでシナプス結合を作成するので、シナプス結合213i,jの個数は最大90万に達し、配線211が配線される箇所の総数も最大90万に達する。 As is clear from the above description, the 1,000 neurons 210 i in the L1 layer create synapse connections in total with the 900 neurons 212 j in the L2 layer, so the number of synapse connections 213 i, j Reaches a maximum of 900,000, and the total number of locations where the wiring 211 i is wired reaches a maximum of 900,000.

ここで、実際のニューラルネットでは使われる用途や、学習の結果などによって不要なシナプス結合が取り除かれるので、各ニューロン210の出力がどのニューロン212とシナプス結合213i,jを作るかは多様である。つまり、ニューロン210が選択的にニューロン212とシナプス結合213i,jを作れる機構が必要であり、これがニューロン間の配線問題をより困難にしている。 Here, since an unnecessary synapse connection is removed depending on an application used in an actual neural network, a learning result, and the like, there are various kinds of neurons 212 j and synapse connections 213 i, j that an output of each neuron 210 i generates. It is. That is, a mechanism is required that allows the neuron 210 i to selectively create the synapse connection 213 i, j with the neuron 212 j , which makes the wiring problem between neurons more difficult.

人間の脳では1個のニューロンが1,000〜10,000個のシナプス結合を持つと言われているので、人工ニューロンの数が増加した時に必要になる配線の数は、ニューロン数が1,000以下では、ほぼ2乗に比例し、10,000以上ではほぼ1乗に比例すると考えられる。従って、脳並みの1億ニューロン規模のニューラルネットを実現しようとすると、1,000億〜1兆本程度の配線が必要になると予測できる。こうした膨大な配線が適当なルール、又は環境の下で適切に行われる必要がある。   In the human brain, it is said that one neuron has 1,000 to 10,000 synaptic connections. Therefore, when the number of artificial neurons increases, the number of wirings required is 1, Below 000, it is considered to be approximately proportional to the square, and above 10,000, it is considered to be approximately proportional to the first power. Therefore, it can be predicted that about 100 billion to 1 trillion wirings will be required to realize a neural network having a brain level of 100 million neurons. Such enormous wiring needs to be appropriately performed under appropriate rules or environments.

大規模ニューラルネットを実現するには、ニューロン間の配線が課題であるという事情から、ニューロン間の配線を減らす方法が既に幾つか考案されている。例えば、特許文献1がある。この技術ではL1層内の全ニューロンの出力データを時分割多重化して1本の共通信号線に送出し、それをL2層内の全ニューロンが受け取って演算に使用している。この方法を用いると、2つの層を結ぶ信号線が1本で済むという顕著な効果がある。   In order to realize a large-scale neural network, several methods for reducing the wiring between neurons have already been devised because wiring between neurons is a problem. For example, there is Patent Document 1. In this technique, the output data of all neurons in the L1 layer are time-division multiplexed and sent to one common signal line, which is received by all neurons in the L2 layer and used for computation. When this method is used, there is a remarkable effect that only one signal line connecting the two layers is required.

一方、中規模(10,000ニューロン程度)のニューラルネットは、回路の安定性や計算精度の観点からデジタル回路で作られることが多い。この規模のニューラルネットではニューロン間のデータ転送に、カリフォルニア工科大学のMead教授のグループが考案したAER(Address Event Representation)が使われることが多い(例えば、非特許文献1)。   On the other hand, a medium-scale (about 10,000 neurons) neural network is often made of a digital circuit from the viewpoint of circuit stability and calculation accuracy. In a neural network of this scale, AER (Address Event Representation) devised by a group of Professor Mead of California Institute of Technology is often used for data transfer between neurons (for example, Non-Patent Document 1).

図16を用いて、AERのフォーマットを説明する。図16は、AERにおいてニューロン間のデータ転送に使うデータフォーマットである。AERではニューロンに番号(Local address)を割り当て、そのニューロンが実装されているLSI(Large Scale Integration)、PCB(Printed―Circuit Board)又は機器等にも番号(Node address)を割り当てる。   The format of AER will be described with reference to FIG. FIG. 16 shows a data format used for data transfer between neurons in AER. In the AER, a number (Local address) is assigned to a neuron, and a number (Node address) is assigned to an LSI (Large Scale Integration), a PCB (Printed-Circuit Board), or a device in which the neuron is mounted.

例えば、L1層として256個のニューロンを内蔵するLSIを4個搭載したPCBを仮定すると、以下の方法で1,024個のニューロンを識別できる。それは、4個のLSIを区別する為の2ビットのNode addressと、各LSI内の256個のニューロンを区別する8ビットのLocal addressとを組み合わせて、10ビットで1,024個のニューロンを識別するというものである。   For example, assuming a PCB on which four LSIs incorporating 256 neurons are mounted as the L1 layer, 1,024 neurons can be identified by the following method. It combines 10 bits to 1,024 neurons by combining 2 bits Node address to distinguish 4 LSIs and 8 bits Local address to distinguish 256 neurons in each LSI. It is to do.

L2層についても同様に、256個のニューロンを内蔵するLSIを4個搭載したPCBを仮定すると、L2層のニューロンは10ビットのアドレス情報で識別できる。
L1層の或るニューロン210から、L2層の或るニューロン212にデータを送る場合を考えると、ニューロン212のアドレス指定に10ビット必要である。Payloadは2通りの使い方ができる。
Similarly for the L2 layer, assuming a PCB on which four LSIs incorporating 256 neurons are mounted, the neurons in the L2 layer can be identified by 10-bit address information.
Considering the case of sending data from a certain neuron 210 i in the L1 layer to a certain neuron 212 j in the L2 layer, 10 bits are required for addressing the neuron 212 j . Payload can be used in two ways.

第1の方法は、ニューロン210の識別番号ID(10[bit])をPayloadとして送信する方法である。ニューロン212では、受け取った識別番号IDをインデックス情報として用いてシナプス結合の重みを格納するメモリにアクセスし、シナプス結合の重みui,jを決定できる。この方法では、一度のデータ伝送にアドレス情報を2つ送ることになるので、1つのデータ量は20[bit](=10[bit]+10[bit])になる。 The first method is a method of transmitting the identification number ID i (10 [bit]) of the neuron 210 i as Payload. The neuron 212 j uses the received identification number ID i as index information to access a memory that stores synapse connection weights , thereby determining the synapse connection weights u i, j . In this method, two pieces of address information are sent for one data transmission, so one data amount is 20 [bit] (= 10 [bit] +10 [bit]).

平均してL1層からL2層の半分のニューロンにデータを送るとすると、全体では20[bit]×(1,024÷2)×1,024=10,485,760[bit]=1.3[MB]のデータ伝送が必要になる。これを4[ms]で実行するには1.3[MB]÷4[ms]=328[MBps]のデータ転送速度が必要である。   On average, if data is sent from the L1 layer to half the neurons in the L2 layer, the total is 20 [bit] × (1,024 ÷ 2) × 1,024 = 10,485,760 [bit] = 1.3. [MB] data transmission is required. In order to execute this in 4 [ms], a data transfer rate of 1.3 [MB] ÷ 4 [ms] = 328 [MBps] is required.

また、L1層ではL2層のどのニューロンにデータを転送するかを記憶していなければならないので、10[bit]×(1,024÷2)×1,024=5,242,880[bit]=655[KB]のメモリが必要になる。   Further, in the L1 layer, it is necessary to store which neuron in the L2 layer to transfer data, so 10 [bit] × (1,024 ÷ 2) × 1,024 = 5,242,880 [bit]. = 655 [KB] memory is required.

第2の方法は、Payloadとしてa×ui,jを計算して送る方法である。aが1ビットでui,jが8ビットの場合、a×ui,jは8ビットになるので、1つのデータ量は18[bit](=10[bit]+8[bit])である。従って、全体のデータ転送量は、18[bit]×(1,024÷2)×1,024=9,437,184[bit]=1.2[MB]である。全体のデータ転送量は、前記第1の方法の転送量よりも若干少なくなる。しかし、L1層に655[KB]のメモリが必要なことは変わらない。 The second method is a method of calculating and sending a i × u i, j as Payload. When a i is 1 bit and u i, j is 8 bits, a i × u i, j is 8 bits, so one data amount is 18 [bit] (= 10 [bit] +8 [bit]). It is. Therefore, the total data transfer amount is 18 [bit] × (1,024 ÷ 2) × 1,024 = 9,437, 184 [bit] = 1.2 [MB]. The total data transfer amount is slightly smaller than the transfer amount of the first method. However, the need for 655 [KB] memory in the L1 layer remains the same.

特公平5−47870号公報Japanese Patent Publication No. 5-47870

Serrano-Gotarredona R, Oster M, Lichtsteiner P, Linares-Barranco A, Paz-Vicente R, Gomez-Rodriguez F, Camunas-Mesa L, Berner R, Rivas-Perez M, Delbruck T, Liu SC, Douglas R, Hafliger P, Jimenez-Moreno G, Civit Ballcels A, Serrano-Gotarredona T, Acosta-Jimenez AJ, Linares-Barranco B, "CAVIAR: a 45k neuron, 5M synapse, 12G connects/s AER hardware sensory-processing- learning-actuating system for high-speed visual object recognition and tracking." , IEEE Transactions on Neural Networks, Vol. 20, No.9, September, pp.1417-38, 2009.Serrano-Gotarredona R, Oster M, Lichtsteiner P, Linares-Barranco A, Paz-Vicente R, Gomez-Rodriguez F, Camunas-Mesa L, Berner R, Rivas-Perez M, Delbruck T, Liu SC, Douglas R, Hafliger P , Jimenez-Moreno G, Civit Ballcels A, Serrano-Gotarredona T, Acosta-Jimenez AJ, Linares-Barranco B, "CAVIAR: a 45k neuron, 5M synapse, 12G connects / s AER hardware sensory-processing- learning-actuating system for high-speed visual object recognition and tracking. ", IEEE Transactions on Neural Networks, Vol. 20, No.9, September, pp.1417-38, 2009.

生体の脳内では日常的に、ニューロンの軸索が伸長して、ターゲットとなるニューロンの樹状突起や細胞体との間に新しいシナプス結合を作ったり、情報伝達に使われなくなったシナプス結合が分解されて消滅したりしている。このように情報処理に有効な神経回路網が形成される過程を、「自己組織化」と呼ぶ。   Within the brain of a living body, neuron axons grow on a daily basis, creating new synaptic connections between the target neurons' dendrites and cell bodies, and synaptic connections that are no longer used for information transmission. It has been disassembled and disappeared. This process of forming a neural network effective for information processing is called “self-organization”.

また、神経回路網で信号が頻繁に通る経路は更に信号が良く通るようになり、そうでない経路は信号が通り難くなることを「学習」と呼ぶ。脳を模倣するニューラルネットを電子回路として実現するには、自己組織化と学習の機構を如何にして実装するかが、重要な技術的課題となっている。   In addition, a route through which a signal frequently passes in a neural network becomes a signal that passes more well, and a route through which the signal does not pass becomes difficult, and this is called “learning”. In order to realize a neural network imitating the brain as an electronic circuit, how to implement a self-organization and learning mechanism is an important technical issue.

自己組織化問題を単純化して言えば、ニューロン間の配線問題である。ニューラルネットには元々、そこに内蔵されるニューロン数が増えると、ニューロン間の配線量が膨大になり、大規模なニューラルネットを実現するのが困難になるという問題がある。そのため、これまで、自己組織化機能を持つ大規模ニューラルネットを、電子回路として実装する方法は示されていなかった。   To simplify the self-organization problem, it is a wiring problem between neurons. A neural network originally has a problem that if the number of neurons incorporated therein increases, the amount of wiring between neurons becomes enormous and it becomes difficult to realize a large-scale neural network. Therefore, until now, no method has been shown for implementing a large-scale neural network having a self-organizing function as an electronic circuit.

そこで本発明は、上記問題に鑑みてなされたものであり、多数のニューロン間を接続するのに必要な配線の数を削減すると同時に、自己組織化機能を持つニューラルネットを実現する電子回路を提供することを課題とする。   Therefore, the present invention has been made in view of the above problems, and provides an electronic circuit that realizes a neural network having a self-organizing function while reducing the number of wirings necessary to connect a large number of neurons. The task is to do.

上記の課題を解決するために、請求項1に記載した発明は、複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層の人工ニューロンとを結びつけるシナプス結合とを有し、前記複数の層のうち第1の層の人工ニューロンの出力データに前記シナプス結合の重み情報を乗じて第2の層の人工ニューロンに出力し、第2の人工ニューロンにおいて情報処理するニューラルネットを実現する電子回路であって、二次元以上の仮想空間において、当該仮想空間に任意の数の任意のポリトープ(例えば、実施形態におけるセルCN)を配置し、前記ポリトープ毎に配置される回路ユニット(例えば、実施形態における回路ユニット10)と、互いに隣接するポリトープに配置された前記回路ユニット間で信号を伝送する配線と、を備え、前記回路ユニットは、第1の層の人工ニューロンの出力データを同一回路ユニット内の第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンへ出力する第1の出力部(例えば、実施形態における第1の出力部1)と、
自身のポリトープに配置された回路ユニットと、自身のポリトープに隣接するポリトープに配置された回路ユニットと、から前記第1の層の人工ニューロンの出力データを受け取る入力部(例えば、実施形態における入力部2)と、第1の層の人工ニューロンから第2の層の人工ニューロンへ情報を伝達する割合を決めるためのシナプス結合の重み情報を保持する重み記憶部(例えば、実施形態における重み記憶部3)と、前記第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を算出する乗算部(例えば、実施形態における乗算部4)と、前記積の総和を算出する加算部(例えば、実施形態における加算部5)と、前記積の総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する比較決定部(例えば、実施形態における比較決定部6)と、前記第2の層の人工ニューロンの出力データを出力する出力部(例えば、実施形態における第2の出力部7)と、前記第1の層の人工ニューロンの出力データと前記第2の層の人工ニューロンの出力データとに基づいて、前記シナプス結合の重み情報を変更する重み変更部(例えば、実施形態における重み変更部8)と、を備えることを特徴とする電子回路である。
In order to solve the above-described problem, the invention described in claim 1 includes a plurality of layers, a plurality of artificial neurons existing in the layer, and a synapse connection that connects the artificial neurons and artificial neurons of other layers. Among the plurality of layers, the output data of the artificial neuron of the first layer is multiplied by the weight information of the synapse connection and output to the artificial neuron of the second layer, and information processing is performed in the second artificial neuron An electronic circuit that realizes a neural network, and in a virtual space of two or more dimensions, an arbitrary number of arbitrary polytopes (for example, the cell CN in the embodiment) are disposed in each of the polytopes. A signal is transmitted between the circuit unit (for example, the circuit unit 10 in the embodiment) and the circuit unit arranged in the polytope adjacent to each other. The circuit unit is configured to output the output data of the first layer artificial neuron to the second layer artificial neuron in the same circuit unit, and a circuit unit arranged in a polytope adjacent to its own polytope. A first output unit (for example, the first output unit 1 in the embodiment) that outputs to the second layer of artificial neurons;
An input unit that receives the output data of the artificial neuron of the first layer from a circuit unit arranged in its own polytope and a circuit unit arranged in a polytope adjacent to its own polytope (for example, the input unit in the embodiment) 2) and a weight storage unit (for example, the weight storage unit 3 in the embodiment) that holds weight information of synapse connections for determining a ratio of transmitting information from the first layer artificial neuron to the second layer artificial neuron. ), The output data of the artificial neurons of the first layer and the weight information of the synapse connection (for example, the multiplication unit 4 in the embodiment), and the addition unit that calculates the sum of the products (For example, the adding unit 5 in the embodiment) and the output data of the artificial neurons of the second layer are determined based on the comparison result between the sum of the products and a predetermined threshold value. A comparison determination unit (for example, the comparison determination unit 6 in the embodiment), an output unit (for example, the second output unit 7 in the embodiment) that outputs the output data of the artificial neurons of the second layer, and the first A weight changing unit (for example, weight changing unit 8 in the embodiment) that changes the weight information of the synaptic connection based on the output data of the artificial neuron of the first layer and the output data of the artificial neuron of the second layer; An electronic circuit comprising:

これにより、隣接するポリトープに出力するデータを時分割多重化することができるので、隣接するポリトープへの出力信号線を1本にすることができる。また、第1のニューロンの出力データと、第2のニューロンの出力データとに基づいて、シナプス結合の重み情報を変更することができる。   Thereby, since the data output to the adjacent polytope can be time-division multiplexed, it is possible to make one output signal line to the adjacent polytope. Further, the weight information of the synapse connection can be changed based on the output data of the first neuron and the output data of the second neuron.

請求項2に記載した発明は、請求項1に記載の発明において、前記加算部は、前記ポリトープに配置された回路ユニット毎に前記第2の層の人工ニューロンの全てのシナプス結合の重み情報の総和を算出し、前記重み変更部は、更に前記シナプス結合の重み情報の総和が第1の所定の値と第2の所定の値の範囲に入るよう、前記シナプス結合の重み情報を変更することを特徴とする。
これにより、シナプス結合の重み情報が所定の範囲で変化するように制御することができる。
According to a second aspect of the present invention, in the first aspect of the present invention, the adder includes weight information on all synaptic connections of the artificial neurons of the second layer for each circuit unit arranged in the polytope. The summation is calculated, and the weight changing unit further changes the weight information of the synapse connection so that the sum of the weight information of the synapse connection falls within a range between a first predetermined value and a second predetermined value. It is characterized by.
Thereby, it is possible to control the weight information of the synapse connection to change within a predetermined range.

請求項3に記載した発明は、請求項2に記載の発明において、前記シナプス結合毎に疑似乱数を生成する疑似乱数生成部(例えば、実施形態における疑似乱数生成部70)と、前記重み情報の増減を決定する学習信号生成部(例えば、実施形態における学習信号生成部12)と、を備え、前記学習信号生成部は、前記シナプス結合の重み情報を増加させるか否かの判定基準となる第1の基準値を記憶する第1の記憶部(例えば、実施形態における確率イネーブル信号発生器71のアップダウンカウンター202)と、前記シナプス結合の重み情報を減少させるか否かの判定基準となる第2の基準値を記憶する第2の記憶部(例えば、実施形態における確率イネーブル信号発生器72のアップダウンカウンター202)と、前記重み情報の総和が、前記第1の所定の値以下のときに前記第1の基準値を増加させ、前記重み情報の総和が前記第1の所定の値よりも大きいときに前記第1の基準値を減少させる第1の基準値変更部(例えば、実施形態における確率イネーブル信号発生器71の大小比較器201)と、前記重み情報の総和が前記第2の所定の値以上のときに前記第2の基準値を増加させ、前記重み情報の総和が前記第2の所定の値よりも小さいときに前記第2の基準値を減少させる第2の基準値変更部(例えば、実施形態における確率イネーブル信号発生器72の大小比較器201)と、前記第1の基準値と前記疑似乱数の大小比較結果に基づいて前記シナプス結合の重みの増加を許可する第1の制御信号を生成する第1の大小比較部(例えば、実施形態における確率イネーブル信号発生器71の8ビット大小比較器203)と、前記第2の基準値と前記疑似乱数の大小比較結果に基づいて前記シナプス結合の重みの減少を許可する第2の制御信号を生成する第2の大小比較部(例えば、実施形態における確率イネーブル信号発生器72の8ビット大小比較器203)と、を備え前記学習信号生成部は、前記第1の層の人工ニューロンの出力データと、前記第2の層の人工ニューロンの出力データと、前記第1の制御信号と、前記第2の制御信号と、に基づいて、前記シナプス結合の重み情報の増減を決定することを特徴とする。
これにより、シナプス結合の重み情報の総和が所定の範囲に入るように、確率的にシナプス結合の重み情報を変更することができる。
According to a third aspect of the present invention, in the second aspect of the present invention, a pseudorandom number generation unit (for example, a pseudorandom number generation unit 70 in the embodiment) that generates a pseudorandom number for each synapse connection, and the weight information A learning signal generation unit that determines increase / decrease (for example, the learning signal generation unit 12 in the embodiment), and the learning signal generation unit serves as a criterion for determining whether to increase the weight information of the synapse connection. A first storage unit that stores a reference value of 1 (for example, the up / down counter 202 of the probability enable signal generator 71 in the embodiment) and a determination criterion for determining whether to reduce the weight information of the synapse connection. A second storage unit that stores a reference value of 2 (for example, the up / down counter 202 of the probability enable signal generator 72 in the embodiment), and the sum of the weight information The first reference value is increased when the first predetermined value is less than or equal to the first predetermined value, and the first reference value is decreased when the sum of the weight information is greater than the first predetermined value. 1 reference value changing unit (for example, the magnitude comparator 201 of the probability enable signal generator 71 in the embodiment) and the second reference value when the sum of the weight information is equal to or greater than the second predetermined value. A second reference value changing unit that increases and decreases the second reference value when the sum of the weight information is smaller than the second predetermined value (for example, the probability enable signal generator 72 of the embodiment). A magnitude comparator 201) and a first magnitude comparator (for example, generating a first control signal that permits an increase in the weight of the synapse connection based on the magnitude comparison result of the first reference value and the pseudo-random number (for example, , Probability rice in the embodiment And a second control signal for permitting a decrease in the weight of the synapse connection based on the magnitude comparison result of the second reference value and the pseudo-random number. A second magnitude comparator (e.g., the 8-bit magnitude comparator 203 of the probability enable signal generator 72 in the embodiment), and the learning signal generator includes output data of the artificial neurons of the first layer, The increase / decrease in the weight information of the synapse connection is determined based on the output data of the artificial neurons of the second layer, the first control signal, and the second control signal.
Accordingly, the synaptic connection weight information can be changed probabilistically so that the sum of the synaptic connection weight information falls within a predetermined range.

請求項4に記載した発明は、請求項1から請求項3のいずれかに記載の発明において、前記重み変更部は、前記シナプス結合の重み情報の値が0のとき、前記シナプス結合の重み情報の値を0から所定の値に変更することを特徴とする。
これにより、前記シナプス結合の重み情報を0から所定の値に変更することができるので、新規にシナプス結合を生成することができる。
According to a fourth aspect of the present invention, in the invention according to any one of the first to third aspects, when the value of the weight information of the synapse connection is 0, the weight change unit is weight information of the synapse connection. The value of is changed from 0 to a predetermined value.
As a result, the weight information of the synapse connection can be changed from 0 to a predetermined value, so that a new synapse connection can be generated.

請求項5に記載した発明は、請求項4に記載の発明において、前記重み変更部は、前記ポリトープに配置された回路ユニット毎に前記シナプス結合の重み情報のうちその値が0であるものの個数を計数し、該0の個数が所定の範囲に入るように、前記シナプス結合の重み情報の値を0から所定の値に変更することを特徴とする。
これにより、シナプス結合の重み情報が0である個数を算出し、当該0の個数が所定の範囲に入るように、新規に作成するシナプス結合の数を調節することができる。
According to a fifth aspect of the present invention, in the invention of the fourth aspect, the weight changing unit includes the number of pieces of the synaptic connection weight information whose value is 0 for each circuit unit arranged in the polytope. And the value of the weight information of the synapse connection is changed from 0 to a predetermined value so that the number of 0 falls within a predetermined range.
As a result, the number of synaptic connection weight information 0 is calculated, and the number of newly generated synaptic connections can be adjusted so that the number of 0 falls within a predetermined range.

請求項6に記載した発明は、請求項5に記載の発明において、前記重み変更部は、前記シナプス結合の重み情報を0から所定の値に変更するか否かの判定基準となる第3の基準値を記憶する第3の記憶部(例えば、実施形態における確率イネーブル信号発生器73内のアップダウンカウンター202)と、疑似乱数を生成する疑似乱数生成部(例えば、実施形態における乱数生成部11)と、を備え、前記重み変更部は、前記シナプス結合の重みが0の個数が、第3の所定の値以下のときに前記第3の基準値を増加させ、前記個数が第3の所定の値よりも大きいときに前記第3の基準値を減少させ、前記疑似乱数発生部は、前記シナプス結合毎に疑似乱数を発生する。前記重み変更部は、前記第3の基準値と前記疑似乱数の大小比較結果に基づいて、前記シナプス結合の値を0から所定の値に変更することを許可する第3の制御信号を生成する。
前記重み変更部は、前記シナプス結合の重み情報が0のときに、前記第3の制御信号に基づいて、前記シナプス結合の重み情報を0から所定の値に変更することを特徴とする。
これにより、新規に作成するシナプス結合の数を確率的に調節でき、その確率はシナプス結合の重み情報の0の個数に応じて増減するので、シナプス結合の重み情報の0の個数が第3の所定の値付近になるように調節することができる。
According to a sixth aspect of the present invention, in the fifth aspect of the present invention, the weight changing unit is a third criterion for determining whether to change the weight information of the synapse connection from 0 to a predetermined value. A third storage unit for storing the reference value (for example, the up / down counter 202 in the probability enable signal generator 73 in the embodiment) and a pseudo random number generation unit for generating the pseudo random number (for example, the random number generation unit 11 in the embodiment). The weight changing unit increases the third reference value when the number of synaptic connection weights of 0 is equal to or less than a third predetermined value, and the number is a third predetermined value. The third reference value is decreased when the value is larger than the value of, and the pseudo-random number generator generates a pseudo-random number for each synapse connection. The weight changing unit generates a third control signal that permits the value of the synapse connection to be changed from 0 to a predetermined value based on a magnitude comparison result between the third reference value and the pseudo-random number. .
The weight changing unit changes the synaptic connection weight information from 0 to a predetermined value based on the third control signal when the synaptic connection weight information is zero.
Accordingly, the number of newly created synapse connections can be adjusted stochastically, and the probability increases or decreases according to the number of 0s of synapse connection weight information. Therefore, the number of 0s of synapse connection weight information is the third number. It can be adjusted to be close to a predetermined value.

請求項7に記載した発明は、請求項4に記載の発明において、前記重み変更部は、疑似乱数を生成する疑似乱数生成部(例えば、実施形態における疑似乱数生成部11)を備え、前記重み変更部は、前記ポリトープに配置された回路ユニット毎に前記シナプス結合の重み情報のうちその値が0であるものの個数を計数し、前記0の個数と前記疑似乱数との比較に基づいて、前記シナプス結合の重み情報を0から所定の値に変更することを特徴とする
これにより、シナプス結合の重み情報の値に含まれる0の個数が所定の個数と疑似乱数との比較に基づいてシナプス結合の重み情報を0から所定の値に変更するので、新規に作成するシナプス結合の数を確率的に調節することができる。
The invention described in claim 7 is the invention according to claim 4, wherein the weight changing unit includes a pseudo-random number generating unit (for example, the pseudo-random number generating unit 11 in the embodiment) for generating a pseudo-random number, and the weight The changing unit counts the number of the synaptic connection weight information whose value is 0 for each circuit unit arranged in the polytope, and based on the comparison between the number of 0 and the pseudo-random number, The synapse connection weight information is changed from 0 to a predetermined value. Thus, the number of 0 included in the synapse connection weight information value is determined based on a comparison between the predetermined number and a pseudo-random number. Is changed from 0 to a predetermined value, the number of newly created synapse connections can be adjusted stochastically.

請求項8に記載した発明は、請求項1から請求項7のいずれかに記載の発明において、前記回路ユニットは、前記第2の層の人工ニューロンのシナプス結合において、前記第1の層の人工ニューロンの出力データの入力が不要なシナプス結合の重み情報を0にすることを特徴とする。
これにより、第1の層の人工ニューロンから第2の層の人工ニューロンへの情報伝達が不要なシナプス結合についても、そのシナプス結合に対応する配線を無くすことなく、当該第1の層の人工ニューロンから第2の層の人工ニューロンへの情報伝達を遮断することができる。
According to an eighth aspect of the present invention, in the invention according to any one of the first to seventh aspects, the circuit unit is configured such that the artificial layer of the first layer is a synaptic connection of the artificial neurons of the second layer. The weight information of synapse connection that does not require input of neuron output data is set to 0.
As a result, even for synapse connections that do not require transmission of information from the first layer artificial neurons to the second layer artificial neurons, the first layer artificial neurons can be obtained without losing the wiring corresponding to the synapse connections. To the second layer of artificial neurons can be blocked.

請求項1に記載した発明によれば、ポリトープから出力する信号用の配線を1本にしたまま、隣接するポリトープの人工ニューロンから出力されたデータを受け取ることができることにより、ニューロン間の配線数を少なくすることができる。また、第2のメモリが保持するシナプス結合の重み情報を変更することができるので、ニューラルネットに学習機能と、自己組織化機能を持たせることができる。   According to the first aspect of the present invention, it is possible to receive data output from an artificial neuron of an adjacent polytope while keeping one wiring for a signal output from a polytope, thereby reducing the number of wirings between neurons. Can be reduced. In addition, since the synaptic connection weight information held in the second memory can be changed, the neural network can have a learning function and a self-organizing function.

請求項2に記載した発明によれば、所定の領域毎のシナプス結合の重み情報の総和 が所定の範囲に入るように、各シナプス結合の重み情報の変化を制御することができるので、生体の脳にあるニューロンのシナプス結合の重みの変化を模倣することができる。   According to the second aspect of the present invention, the change in the weight information of each synapse connection can be controlled so that the sum of the weight information of the synapse connection for each predetermined region falls within a predetermined range. It can mimic changes in the weight of synaptic connections of neurons in the brain.

請求項3に記載した発明によれば、シナプス結合の重み情報の総和が所定の範囲に入るように、確率的にシナプス結合の重み情報を変更することができるので、生体の脳にあるニューロンのシナプス結合の重みの変化の揺らぎを模倣することができる。   According to the third aspect of the present invention, the synaptic connection weight information can be changed probabilistically so that the sum of the synaptic connection weight information falls within a predetermined range. It can mimic the fluctuations in the weight of synaptic connections.

請求項4に記載した発明によれば、新規に作成するシナプス結合の数を自律的に調節することができるので、回路ユニットは、外部制御装置によらずにシナプス結合の数を調節することができる。   According to the invention described in claim 4, since the number of newly created synapse connections can be autonomously adjusted, the circuit unit can adjust the number of synapse connections without using an external control device. it can.

請求項5に記載した発明によれば、所定の領域内でシナプス結合が形成される割合を自律的に調節することができるので、回路ユニットは、外部制御装置によらずにシナプス結合の数を調節することができる。   According to the invention described in claim 5, since the rate at which synapse connections are formed within a predetermined region can be autonomously adjusted, the circuit unit can determine the number of synapse connections without using an external control device. Can be adjusted.

請求項に記載した発明によれば、所定の領域内でシナプス結合が形成される割合を、適当な確率条件の下で自律的に調節することができるので、回路ユニットは、外部制御装置によらずにシナプス結合の数を調節することができる。   According to the invention described in the claims, since the rate at which synaptic connections are formed within a predetermined region can be autonomously adjusted under an appropriate probability condition, the circuit unit can be controlled by an external control device. Without adjusting the number of synaptic connections.

請求項7に記載した発明によれば、シナプス結合の重み情報を変更でき、新規に作成するシナプス結合の数を確率的に調節することができるので、回路ユニットは、外部制御装置によらずにシナプス結合の数を調節することができる。   According to the invention described in claim 7, since the weight information of the synapse connection can be changed and the number of newly created synapse connections can be adjusted stochastically, the circuit unit does not depend on the external control device. The number of synaptic connections can be adjusted.

請求項8に記載した発明によれば、シナプス結合がなくなった部分の配線を物理的に無くす必要性がないので、最初に所定の領域内のL1層の全てのニューロンとL2層の全てのニューロンとの組み合わせのシナプス結合に相当する配線を用意しておけば、後で回路を入れ替えるなどのメンテナンスをしなくてよい。   According to the eighth aspect of the present invention, since it is not necessary to physically eliminate the wiring in the portion where the synaptic connection is lost, first, all the neurons in the L1 layer and all the neurons in the L2 layer in the predetermined region If the wiring corresponding to the synaptic connection in combination with is prepared, there is no need to perform maintenance such as replacing the circuit later.

本発明の一実施形態によるニューラルネットの模式図と、L1層のニューロンの出力を時分割多重化した信号を説明するための図である。FIG. 3 is a schematic diagram of a neural network according to an embodiment of the present invention and a diagram for explaining a signal obtained by time-division multiplexing the outputs of neurons in an L1 layer. 本発明の一実施形態による回路ユニット間の配線を説明するための図である。It is a figure for demonstrating the wiring between the circuit units by one Embodiment of this invention. 本発明の一実施形態による仮想平面を分割して、回路ユニット間の配線を説明するための図である。It is a figure for dividing a virtual plane by one embodiment of the present invention, and explaining wiring between circuit units. 本発明の一実施形態による仮想空間を立方体で分割して、回路ユニット間の配線を説明するための図である。It is a figure for divide | segmenting the virtual space by one Embodiment of this invention by a cube, and demonstrating the wiring between circuit units. 本発明の一実施形態による回路ユニット1のブロック構成図である。It is a block block diagram of the circuit unit 1 by one Embodiment of this invention. 本発明の一実施形態による重み変更部8のブロック構成図である。It is a block block diagram of the weight change part 8 by one Embodiment of this invention. 本発明の一実施形態による回路ユニット1を、パルスニューラルネットを用いたニューロン群で模擬した回路ユニット10の回路図である。1 is a circuit diagram of a circuit unit 10 in which a circuit unit 1 according to an embodiment of the present invention is simulated by a neuron group using a pulse neural network. データ変換用メモリが保持するデータ変換テーブルを説明するための図である。It is a figure for demonstrating the data conversion table hold | maintained at the data conversion memory. 1増減回路66の回路図である。1 is a circuit diagram of a 1 increase / decrease circuit 66. FIG. 8ビット疑似乱数発生器(ガロアLFSR)の回路図である。It is a circuit diagram of an 8-bit pseudo random number generator (Galois LFSR). L1層のニューロン20が興奮性ニューロンのときの、学習信号生成部12の回路図である。FIG. 6 is a circuit diagram of the learning signal generation unit 12 when an L1 layer neuron 20 i is an excitatory neuron. 確率イネーブル信号発生回路の回路図である。It is a circuit diagram of a probability enable signal generation circuit. L1層のニューロン20が抑制性ニューロンのときの、学習信号生成部12の回路図である。FIG. 6 is a circuit diagram of the learning signal generation unit 12 when an L1 layer neuron 20 i is an inhibitory neuron. L1層のニューロン20が興奮性ニューロンまたは抑制性ニューロンであるときの、学習信号生成部12の回路図である。FIG. 6 is a circuit diagram of the learning signal generation unit 12 when an L1 layer neuron 20 i is an excitatory neuron or an inhibitory neuron. ニューラルネットの一部を表した模式図である。It is a schematic diagram showing a part of the neural network. AERにおいてニューロン間のデータ転送に使うデータフォーマットを示した図である。It is the figure which showed the data format used for the data transfer between neurons in AER.

以下、本発明の実施形態について、図面を参照して詳細に説明する。まず、本発明のニューラルネットの構成について説明する。図1(a)は、ニューラルネットの構成を表した図である。ニューラルネットは、L1層およびL2層の2つの層から構成されている。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. First, the configuration of the neural network of the present invention will be described. FIG. 1A is a diagram showing the configuration of a neural network. The neural network is composed of two layers, an L1 layer and an L2 layer.

本発明のニューラルネットは、第1の層(L1層)のニューロン20(iは0から4,863の整数)と、第2の層(L2層)のニューロン22(jは0から4,863の整数)と、L1層のニューロン20からL2層のニューロン22への配線21と、L1層のニューロン20の出力がL2層のニューロン22に作るシナプス結合23i,jと、L2層のニューロン22の出力端子24を有する。 The neural network of the present invention includes a first layer (L1 layer) neuron 20 i (i is an integer from 0 to 4,863) and a second layer (L2 layer) neuron 22 j (j is 0 to 4). , an integer) of 863, and the wiring 21 i to neuron 22 j of the L2 layer from the neuron 20 i of the L1 layer, synaptic connections 23 i to the output of the neuron 20 i of the L1 layer is made in the neuron 22 j of the L2 layer, j And the output terminal 24 j of the neuron 22 j in the L2 layer.

シナプス結合には、L1層のニューロンの出力情報を、L2層のニューロンへどの程度の割合で伝えるかというシナプス結合の重み情報wi,jがある。L1層のニューロンとL2層のニューロンとの間では、シナプス結合が一様に形成されるが、L1層の特定ニューロンからL2層の特定ニューロンへの情報伝達が不要なシナプス結合については、そのシナプス結合の重み情報wi,jを0にすることで、実質的に無効化できる。 The synaptic connection includes synaptic connection weight information w i, j indicating how much the output information of the L1 layer neurons is transmitted to the L2 layer neurons. Synaptic connections are uniformly formed between the neurons in the L1 layer and the neurons in the L2 layer, but the synaptic connections that do not require information transmission from the specific neurons in the L1 layer to the specific neurons in the L2 layer By setting the weight information w i, j of the connection to 0, it can be substantially invalidated.

L1層のニューロン20を19個のまとまり(以下、セルと称する)に等分する。そうすると、1つのセルあたりに存在するL1層のニューロン20は256個になる。各セルにおいて、ニューロン20の番号iを振り直し、0から255の整数にする。同様にして、L2層のニューロン22を19個のセルに等分する。そうすると、1つのセルあたりに存在するL2層のニューロン22は256個になる。各セルにおいて、ニューロン22の番号jを振り直し、0から255の整数にする。上記の操作によって、図1(a)のニューラルネットは、19個のセルCN(Nは0から18の整数)で分割される。 The neurons 20 i in the L1 layer are equally divided into 19 groups (hereinafter referred to as cells). Then, the number of L1 layer neurons 20 i existing per cell is 256. In each cell, the number i of the neuron 20 i is reassigned to an integer from 0 to 255. Similarly, the L2 layer neuron 22 j is equally divided into 19 cells. Then, there will be 256 L2 layer neurons 22 j per cell. In each cell, the number j of the neuron 22 j is reassigned to an integer from 0 to 255. By the above operation, the neural network of FIG. 1A is divided into 19 cells CN (N is an integer from 0 to 18).

図1(b)は、セルCNのL1層のニューロンの出力データを、時分割多重化した信号を説明するための図である。セルCNの回路は、自セルのL1層の256個のニューロンの出力データを、図1(b)に示すように時分割多重化して、信号xi,tとしてP0端子から出力する。 FIG. 1B is a diagram for explaining a signal obtained by time-division multiplexing output data of neurons in the L1 layer of the cell CN. The circuit of the cell CN time-division multiplexes the output data of 256 neurons in the L1 layer of its own cell as shown in FIG. 1 (b), and outputs the signal x i, t from the P0 terminal.

信号xi,t(iは0から255の整数)は、i番目のニューロンのt番目(tは0以上の整数)ラウンドの出力である。すなわち、x0,tはニューロン20の出力、x1,tはニューロン20の出力、…,x255,tはニューロン20255の出力である。ここで、ラウンドとはL1層の256個のニューロンの出力データを1回処理する処理単位のことである。1ラウンドの処理時間を4[ms]とすると、256個のデータxi,tを4[ms]で伝送するので、この信号線のデータ伝送速度は64(=256[bit]÷4[ms])[kbps]である。 The signal x i, t (i is an integer from 0 to 255) is the output of the t-th (t is an integer greater than or equal to 0) round of the i-th neuron. That is, x 0, t is the output of neuron 20 0 , x 1, t is the output of neuron 20 1 ,..., X 255, t is the output of neuron 20 255 . Here, a round is a processing unit for processing output data of 256 neurons in the L1 layer once. Assuming that the processing time of one round is 4 [ms], 256 data x i, t are transmitted at 4 [ms], so the data transmission speed of this signal line is 64 (= 256 [bit] ÷ 4 [ms]. ]) [Kbps].

図2は、本発明の一実施形態による、回路ユニット間の配線を説明するための図である。脳内の神経細胞は基本的に、物理的に近くの神経細胞とだけシナプス結合を作っている。この特徴を参考にしてニューロン間の配線問題を解決する。
図2(a)は、仮想平面に複数のセルを配置した図である。図2(a)では、各セルは、正六角形の形状を有する。図2(b)は、セル間の配線を示した図である。各セルには1つの回路ユニットが存在する。
FIG. 2 is a diagram for explaining wiring between circuit units according to an embodiment of the present invention. Neurons in the brain basically make synaptic connections only with physically close neurons. The wiring problem between neurons is solved by referring to this feature.
FIG. 2A is a diagram in which a plurality of cells are arranged on a virtual plane. In FIG. 2A, each cell has a regular hexagonal shape. FIG. 2B is a diagram showing wiring between cells. There is one circuit unit for each cell.

図2(a)ではセルが19個在るので、L1層とL2層にそれぞれ4,864(=256×19)個のニューロン20と22が入っていることになる。各セルには1個の出力端子P0と、6個の入力端子P1〜P6とがある(図2(b))。 Since there are 19 cells in FIG. 2A, there are 4,864 (= 256 × 19) neurons 20 i and 22 j in the L1 layer and the L2 layer, respectively. Each cell has one output terminal P0 and six input terminals P1 to P6 (FIG. 2B).

図2(b)に示すように、或るセルCNの回路ユニットの出力端子P0は、隣接するセル(以下、隣接セルと称する)の回路ユニットの入力端子とだけ接続される。また、或る回路ユニットの入力端子と、その入力端子に接続される回路ユニットの位置とには、一定の規則がある。ここでは、セルC0を例に説明する。図2(b)に示すように、セルC0の入力端子P1は、セルC0の真上の隣接セルC1の出力端子P0と接続される。   As shown in FIG. 2B, an output terminal P0 of a circuit unit of a certain cell CN is connected only to an input terminal of a circuit unit of an adjacent cell (hereinafter referred to as an adjacent cell). Further, there are certain rules regarding the input terminal of a certain circuit unit and the position of the circuit unit connected to the input terminal. Here, the cell C0 will be described as an example. As shown in FIG. 2B, the input terminal P1 of the cell C0 is connected to the output terminal P0 of the adjacent cell C1 directly above the cell C0.

同様にして、セルC0の入力端子P2は、セルC0の右上の隣接セルC2の出力端子P0と接続される。セルC0の入力端子P3は、セルC0の右下の隣接セルC3の出力端子P0と接続される。セルC0の入力端子P4は、セルC0の真下の隣接セルC4の出力端子P0と接続される。セルC0の入力端子P5は、セルC0の左下の隣接セルC5の出力端子P0と接続される。セルC0の入力端子P6は、セルC0の左上の隣接セルC6の出力端子P0と接続される。   Similarly, the input terminal P2 of the cell C0 is connected to the output terminal P0 of the adjacent cell C2 on the upper right side of the cell C0. The input terminal P3 of the cell C0 is connected to the output terminal P0 of the adjacent cell C3 on the lower right side of the cell C0. The input terminal P4 of the cell C0 is connected to the output terminal P0 of the adjacent cell C4 directly below the cell C0. The input terminal P5 of the cell C0 is connected to the output terminal P0 of the adjacent cell C5 at the lower left of the cell C0. The input terminal P6 of the cell C0 is connected to the output terminal P0 of the upper left adjacent cell C6 of the cell C0.

すなわち、或る回路ユニットの入力端子P1が受け取るデータは、真上に隣接する回路ユニットの出力端子P0から出力されたデータである。同様にして、或る回路ユニットの入力端子P2が受け取るデータは、右上に隣接する回路ユニットの出力端子P0から出力されたデータである。或る回路ユニットの入力端子P3が受け取るデータは、右下に隣接する回路ユニットの出力端子P0から出力されたデータである。或る回路ユニットの入力端子P4が受け取るデータは、真下に隣接する回路ユニットの出力端子P0から出力されたデータである。或る回路ユニットの入力端子P5が受け取るデータは、左下に隣接する回路ユニットの出力端子P0から出力されたデータである。或る回路ユニットの入力端子P6端子が受け取るデータは、左上に隣接する回路ユニットの出力端子P0から出力されたデータである。   That is, the data received by the input terminal P1 of a certain circuit unit is the data output from the output terminal P0 of the circuit unit adjacent immediately above. Similarly, data received by the input terminal P2 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the upper right. Data received by the input terminal P3 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the lower right. The data received by the input terminal P4 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent immediately below. Data received by the input terminal P5 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the lower left. The data received by the input terminal P6 of a certain circuit unit is data output from the output terminal P0 of the circuit unit adjacent to the upper left.

或るセルのL2層では、当該セルのL1層から入力される信号と、隣接セルから入力端子P1〜P6に入力される6本の信号とを使って、当該セル及び隣接セルのL1層の全てのニューロンとシナプス結合を作る。つまり、例えば図2(a)のセルC0のL2層の各ニューロンは、セルC0及び隣接する6個のセルC1〜C6のL1層の1,792(=256×7)個のニューロンと、シナプス結合を作る。   In the L2 layer of a certain cell, the signals input from the L1 layer of the cell and the six signals input from the adjacent cells to the input terminals P1 to P6 are used to Create synaptic connections with all neurons. That is, for example, each neuron in the L2 layer of the cell C0 in FIG. 2A is synaptic with 1,792 (= 256 × 7) neurons in the L1 layer of the cell C0 and six adjacent cells C1 to C6. Make a bond.

同様に、例えばセルC1のL2層の各ニューロンは、セルC1及び隣接する6個のセルC8、C9、C2、C0、C6、C7のL1層の全てのニューロンとシナプス結合を作る。このようにセルCNのL2層の各ニューロンは、自セル及び隣接セルのL1層の1,792個のニューロンとシナプス結合を作れるが、その中には不要なものも含まれる。   Similarly, for example, each neuron in the L2 layer of the cell C1 forms a synaptic connection with all the neurons in the L1 layer of the cell C1 and six adjacent cells C8, C9, C2, C0, C6, and C7. As described above, each neuron in the L2 layer of the cell CN can make a synapse connection with 1,792 neurons in the L1 layer of its own cell and adjacent cells, but some of them are unnecessary.

L2層の各ニューロンは仮想平面内で、自セル及び隣接セルのL1層のニューロン、即ちL2層の近傍のニューロンとシナプス結合を作るので、不要なシナプス結合は少なく、従ってシナプス結合の重み情報wi,jを0にする箇所は少ないと考えられる。 Each neuron in the L2 layer forms a synapse connection with the neurons in the L1 layer of its own cell and adjacent cells, that is, the neurons in the vicinity of the L2 layer, in the virtual plane, so there are few unnecessary synapse connections, and thus the synaptic connection weight information w There are few places where i and j are set to 0.

図1の実施例では、1つのセルに含まれるL1層及びL2層のニューロン数を256としたが、本発明はこれに制限されるものではなく、一般的に2以上の任意の数でも適用できる。また、L1層とL2層のニューロン数が同数である必要は無い。本実施例では、図1(a)に示すように、ニューラルネットの階層数を2とする。なお、本発明はこれに制限されるものではなく、3層以上に拡張することも可能である。   In the embodiment shown in FIG. 1, the number of neurons in the L1 layer and the L2 layer included in one cell is 256. However, the present invention is not limited to this, and any number of 2 or more is generally applicable. it can. Further, the number of neurons in the L1 layer and the L2 layer need not be the same. In the present embodiment, as shown in FIG. In addition, this invention is not restrict | limited to this, It is also possible to extend to three or more layers.

本実施例では、ニューロンを並べる仮想平面に、正六角形のセルを配置したが、本発明はこれに制限されるものではない。図3は、本発明の一実施形態による、仮想平面に正六角形以外のセルを配置して、回路ユニット間の配線を説明するための図である。例えば、図3(a)に示すように正方形を配置することも可能であるし、正三角形を配置することも可能である。   In this embodiment, regular hexagonal cells are arranged on a virtual plane on which neurons are arranged. However, the present invention is not limited to this. FIG. 3 is a diagram for explaining wiring between circuit units by arranging cells other than regular hexagons on a virtual plane according to an embodiment of the present invention. For example, squares can be arranged as shown in FIG. 3A, and equilateral triangles can be arranged.

また、同一の多角形を並べるのではなく、図3(b)に示すように、複数種類の多角形を並べることも可能である。更に、仮想平面は仮想的なものなので、多角形同士にオーバーラップが生じたり、或いは多角形間に隙間が生じたりしても特に問題はない。信号が入力されない入力端子はグランドに接続する。   Further, instead of arranging the same polygons, it is possible to arrange a plurality of types of polygons as shown in FIG. Furthermore, since the virtual plane is virtual, there is no particular problem even if the polygons overlap each other or a gap is generated between the polygons. Connect the input terminal to which no signal is input to the ground.

多角形の形状は、L2層の1個のニューロンが形成できるシナプス結合の最大数に関係している。例えば、正六角形の場合は隣接セルの個数が6なので、1個のセルのL1層に256個のニューロンが含まれるとすると、L2層のニューロンでは最大256×7個のシナプス結合が形成される。   The polygonal shape is related to the maximum number of synaptic connections that one neuron in the L2 layer can form. For example, in the case of a regular hexagon, since the number of adjacent cells is 6, if 256 neurons are included in the L1 layer of one cell, a maximum of 256 × 7 synaptic connections are formed in the neurons of the L2 layer. .

一方、図3(a)の場合は隣接セルの個数が8なので、最大256×9個のシナプス結合が形成される。図3(b)の場合は、最大シナプス結合数が異なる3種類のセルが混在していると解釈することもできるし、正五角形以外の隙間を無視することもできる。更に言えば、仮想平面に正多角形ではなく、任意形状の図形を配置しても、本発明を同様に適用できる。   On the other hand, in the case of FIG. 3A, since the number of adjacent cells is 8, a maximum of 256 × 9 synapse connections are formed. In the case of FIG. 3B, it can be interpreted that three types of cells having different maximum synapse coupling numbers are mixed, and gaps other than regular pentagons can be ignored. Furthermore, the present invention can be similarly applied even when an arbitrarily shaped figure is arranged on the virtual plane instead of a regular polygon.

本実施例の説明では、仮想二次元平面を考えて、そこにニューロンを分散配置するとして説明したが、本発明はこれに制限されるものではない。人間の脳を模倣する場合は二次元平面で十分だが、これを超える構造として三次元空間でも同様に本発明を適用できる。   In the description of the present embodiment, the virtual two-dimensional plane is considered and the neurons are distributed and arranged there. However, the present invention is not limited to this. When imitating the human brain, a two-dimensional plane is sufficient, but the present invention can be similarly applied to a three-dimensional space as a structure exceeding this.

図4は、本発明の一実施形態による仮想空間に立方体を配置して、回路ユニット間の配線を説明するための図である。例えば、図4に示すように、仮想三次元空間に立方体を配置し、任意の立方体のL1層のニューロンは、当該立方体及びその立方体に隣接する立方体内の、L2層のニューロンとシナプス結合を作ることにする。   FIG. 4 is a diagram for explaining wiring between circuit units by arranging cubes in a virtual space according to an embodiment of the present invention. For example, as shown in FIG. 4, a cube is arranged in a virtual three-dimensional space, and an L1 layer neuron of an arbitrary cube makes a synaptic connection with an L2 layer neuron in the cube and a cube adjacent to the cube. I will decide.

図4に示すように、セル毎に出力端子が立方体の上部に1個、入力端子が各面に1個存在する。或るセルに隣接するセルは、前後上下左右方向に面で隣接する合計6個のセルである。或るセルの前後上下左右の面に1個ずつ存在する入力端子が、隣接するセルの出力端子と接続されている。   As shown in FIG. 4, for each cell, there is one output terminal on the top of the cube and one input terminal on each surface. A cell adjacent to a certain cell is a total of six cells adjacent in a front-back, up-down, left-right direction. One input terminal on each of the front, back, top, bottom, left and right surfaces of a cell is connected to the output terminal of an adjacent cell.

他の実施例としては、セル毎に出力端子が立方体の上部に1個、入力端子が各面に1個(合計6個)、各辺に1個(合計12個)、各角に1個(合計8個)すなわち合計26個存在する。或るセルに隣接するセルは面、辺、角で隣接する合計26個のセルである。或るセルに存在する26個の入力端子が、それぞれ隣接する26個のセルの出力端子と接続されている。   In another embodiment, there is one output terminal for each cell on the top of the cube, one input terminal on each side (6 in total), 1 on each side (12 in total), and 1 on each corner. (8 in total), that is, 26 in total. A cell adjacent to a certain cell is a total of 26 cells adjacent to each other in terms of surface, side, and corner. Twenty-six input terminals existing in a certain cell are connected to output terminals of twenty-six adjacent cells, respectively.

また、立方体ではなく、三次元空間に任意の多面体を配置することもできる。このように、本発明は一般的に、二次元以上の任意の次数の空間に、任意のポリトープを配置する場合に適用可能である。なお、ポリトープとは、二次元の場合は多角形を表し、三次元の場合は多面体を表し、四次元以上の場合はポリトープを表す。ポリトープとは、二次元の多角形、三次元の多面体を、一般次元へ一般化した図形である。但し、四次元以上の空間の場合に関しては、図示することができないので図を省略する。   In addition, an arbitrary polyhedron can be arranged in a three-dimensional space instead of a cube. As described above, the present invention is generally applicable when an arbitrary polytope is arranged in a space of an arbitrary order of two or more dimensions. The polytope represents a polygon in the case of two dimensions, a polyhedron in the case of three dimensions, and a polytope in the case of four dimensions or more. A polytope is a figure obtained by generalizing a two-dimensional polygon or three-dimensional polyhedron into a general dimension. However, in the case of a four-dimensional or larger space, the illustration is omitted because it cannot be illustrated.

<回路ユニットの実施例1の説明>
生体の脳のように常に学習や自己組織化が起こる状況を、ニューラルネットで実現する為には、ニューラルネットの動作中にシナプス結合の重みwi,jを、適切な規則の下で変化させ続けなければならない。この操作を例えばCPU(Central Processing Unit)を追加してソフトウェアで行うのは、ニューラルネットの規模が大きくなるとデータ処理時間が著しく長くなり、ニューラルネットを動作させながら学習させることが非常に困難になる。また、高速なCPUを追加すると、消費電力が多大になってしまうという問題が有った。
<Description of Example 1 of Circuit Unit>
In order to realize a situation where learning and self-organization always occur like the brain of a living body with a neural network, the weight w i, j of the synapse connection is changed under an appropriate rule during the operation of the neural network. I must continue. If this operation is performed by software by adding, for example, a CPU (Central Processing Unit), the data processing time becomes significantly longer as the scale of the neural network increases, making it very difficult to learn while operating the neural network. . In addition, when a high-speed CPU is added, there is a problem that power consumption increases.

本発明は、適切な規則の下でシナプス結合の重みwi,jを、変化させるハードウェア技術を提供することで、消費電力の増大を抑えながら、実時間で学習や自己組織化を行うニューラルネットを実現することを目的としている。 The present invention provides a hardware technology that changes the weights w i, j of synapse connections under appropriate rules, thereby suppressing the increase in power consumption and performing neural learning and self-organization in real time. The purpose is to realize the Internet.

次に、本発明の回路ユニットの実施例について説明する。図5は、本発明の一実施形態による、回路ユニット10のブロック構成図である。回路ユニット10全体が、図1に示す1個のセルCNに対応する。
回路ユニット10は、第1の出力部1と、入力部2と、重み記憶部3と、乗算部4と、加算部5と、比較決定部6と、第2の出力部7と、重み変更部8と、を用いて構成されている。
Next, an embodiment of the circuit unit of the present invention will be described. FIG. 5 is a block diagram of the circuit unit 10 according to an embodiment of the present invention. The entire circuit unit 10 corresponds to one cell CN shown in FIG.
The circuit unit 10 includes a first output unit 1, an input unit 2, a weight storage unit 3, a multiplication unit 4, an addition unit 5, a comparison determination unit 6, a second output unit 7, and a weight change. And the unit 8.

第1の出力部1は、L1層のニューロン20の入力データを保持する。ここで、当該入力データは、L1層のニューロン20の発火頻度を表すデータである。例えば、入力データは4ビットで表され、その値が小さいほどL1層のニューロン20の発火頻度が低く、その値が大きいほどL1層のニューロン20の発火頻度が高いことを示す。 The first output unit 1 holds input data of the neurons 20 i in the L1 layer. Here, the input data is data representing the firing frequency of the neuron 20 i in the L1 layer. For example, the input data is represented by 4 bits, and indicates that the smaller the value L1 layer low firing rates of neurons 20 i of the firing rates of neurons 20 i of the larger the value of the L1 layer high.

第1の出力部1は、L1層のニューロン20の入力データを、当該発火頻度を表すデータから、発火状態の時系列を表すパルス列へ変換し、当該パルス列を順次出力する。例えば、発火状態の時系列を表すデータとは、1ビットデータが15個並んだ15ビットのデータで表され、当該1ビットデータがL1層のニューロン20の発火状態を表す。即ち、1ビットデータが0ならばL1層のニューロン20は発火しておらず、1ビットデータが1ならばL1層のニューロン20が発火していることを示す。 The first output unit 1 converts the input data of the neurons 20 i in the L1 layer from data representing the firing frequency into a pulse train representing a time series of firing states, and sequentially outputs the pulse train. For example, the data representing the time series of the firing state is represented by 15-bit data in which 15 pieces of 1-bit data are arranged, and the 1-bit data represents the firing state of the neuron 20 i in the L1 layer. That is, if the 1-bit data is 0, the L1 layer neuron 20 i is not fired, and if the 1-bit data is 1, the L1 layer neuron 20 i is fired.

第1の出力部1は、L1層のニューロン20が順番に出力するように、各ニューロン20の前記変換したデータから、1ビットずつ選択して入力部2へ出力する。例えば、第1の出力部1は、L1層のニューロン20の前記15ビットデータの特定ビット位置の256個のデータを、順次入力部2へ出力する。そして、前記256個のデータを出力し終わると、前記15ビットデータの特定ビット位置を変更し、異なる256個のデータを入力部2へ出力する、という動作を繰り返す。
入力部2は、第1の出力部1が出力した変換後の出力データを受け取る。入力部2は、当該受け取った出力データを、乗算部4と重み変更部8へ出力する。また、入力部2は、前記出力データの代わりに、常に1のデータを乗算部4へ出力する。
The first output unit 1 selects one bit at a time from the converted data of each neuron 20 i and outputs it to the input unit 2 so that the neurons 20 i in the L1 layer output in order. For example, the first output unit 1 sequentially outputs 256 pieces of data at specific bit positions of the 15-bit data of the neurons 20 i in the L1 layer to the input unit 2. When the 256 pieces of data are output, the operation of changing the specific bit position of the 15-bit data and outputting different 256 pieces of data to the input unit 2 is repeated.
The input unit 2 receives the converted output data output from the first output unit 1. The input unit 2 outputs the received output data to the multiplication unit 4 and the weight change unit 8. The input unit 2 always outputs 1 data to the multiplication unit 4 instead of the output data.

重み記憶部3は、L1層のニューロン20からL2層のニューロン22へのシナプス結合の重み情報を保持する。重み記憶部3は、図示されていない外部装置からクロック信号を受け取る。重み記憶部3は、当該クロック信号からカウント値を算出し、当該カウント値の番地に保持されているシナプス結合の重み情報を読み出す。重み記憶部3は、当該シナプス結合の重み情報を、乗算部4と重み変更部8へ出力する。 The weight storage unit 3 holds weight information of synapse connection from the neuron 20 i in the L1 layer to the neuron 22 j in the L2 layer. The weight storage unit 3 receives a clock signal from an external device (not shown). The weight storage unit 3 calculates a count value from the clock signal, and reads the synaptic connection weight information held at the address of the count value. The weight storage unit 3 outputs the weight information of the synapse connection to the multiplication unit 4 and the weight change unit 8.

また、重み記憶部3は、重み変更部8が出力する新たなシナプス結合の重み情報を受け取る。重み記憶部3は、前記カウント値の番地に保持されているシナプス結合の重み情報を、当該新たなシナプス結合の重み情報に変更する。   Further, the weight storage unit 3 receives new synapse connection weight information output from the weight change unit 8. The weight storage unit 3 changes the weight information of the synapse connection held at the address of the count value to the new synapse connection weight information.

乗算部4は、入力部2が出力した第1の出力部の出力データまたは常に1のデータと、重み記憶部3が出力したシナプス結合の重み情報と、を受け取る。乗算部4は、前記出力データまたは常に1のデータと、前記シナプス結合の重み情報とを乗じて、それらの積を算出する。乗算部4は、当該積を加算部5へ出力する。   The multiplication unit 4 receives the output data of the first output unit output from the input unit 2 or always 1 data, and the synaptic connection weight information output from the weight storage unit 3. The multiplication unit 4 multiplies the output data or always 1 data by the synaptic connection weight information and calculates a product of them. The multiplying unit 4 outputs the product to the adding unit 5.

加算部5は、乗算部4が出力した前記積を受け取る。加算部5は、入力部2が前記第1の出力部の出力データを出力した場合は、L2層のニューロン22毎に当該積を加算して総和を算出し、当該総和を比較決定部6へ出力する。加算部5は、入力部2が常に1のデータを出力した場合は、当該積の全データについて加算して総和を算出し、当該総和を重み変更部8へ出力する。
比較決定部6は、加算部5が出力した前記総和と、図示されていない外部装置から入力された閾値θと、を受け取る。ここで、発火データを、L2層のニューロン22が発火したことを示すデータ(例えば、1ビットデータで1)またはL2層のニューロン22が発火しなかったことを示すデータ(例えば、1ビットデータで0)と定義する。
The adder 5 receives the product output from the multiplier 4. When the input unit 2 outputs the output data of the first output unit, the adder unit 5 adds the products for each neuron 22 j in the L2 layer, calculates a sum, and compares the sum with the comparison determination unit 6. Output to. When the input unit 2 always outputs 1 data, the adding unit 5 adds all the data of the product to calculate the sum, and outputs the sum to the weight changing unit 8.
The comparison determination unit 6 receives the sum output from the addition unit 5 and the threshold value θ input from an external device (not shown). Here, the firing data is data indicating that the L2 layer neuron 22 j has fired (for example, 1 for 1-bit data) or data indicating that the L2 layer neuron 22 j has not been fired (for example, 1 bit). It is defined as 0) in the data.

比較決定部6は、当該総和が閾値θよりも大きい場合は、L2層のニューロン22が発火したことを示すデータとして1を、第2の出力部7へ出力する。一方、比較決定部6は、当該総和が閾値θ以下の場合、L2層のニューロン22が発火しなかったことを示すデータとして0を、出力部7へ出力する。 When the sum is larger than the threshold θ, the comparison determination unit 6 outputs 1 to the second output unit 7 as data indicating that the neuron 22 j in the L2 layer has fired. On the other hand, when the sum is equal to or smaller than the threshold θ, the comparison determination unit 6 outputs 0 to the output unit 7 as data indicating that the neuron 22 j in the L2 layer has not fired.

第2の出力部7は、比較決定部6が出力した発火データを受け取る。第2の出力部7は、当該発火データを保持する。第2の出力部7は、当該発火データをL2層のニューロン22の出力データとして、図示されていない外部装置と重み変更部8へ出力する。 The second output unit 7 receives the ignition data output from the comparison determination unit 6. The second output unit 7 holds the ignition data. The second output unit 7 outputs the firing data as output data of the L2 layer neuron 22 j to an external device (not shown) and the weight changing unit 8.

重み変更部8は、図示されていない外部装置から入力されたクロック信号と、入力部2が出力した出力データと、重み記憶部3が出力した重みデータと、加算部5が出力した総和と、第2の出力部7が出力した発火データと、を受け取る。
重み変更部8は、前記重みデータから重み記憶部3に記憶されている重みが0のデータ数を係数し、当該係数結果から、重みが0のデータを0以外に変更する確率を増減する。また、重み変更部8は、当該総和に応じて重みデータを増加する確率を増減する。また、重み変更部8は、当該総和に応じてその重みデータを減少する確率を増減する。
重み変更部8は、クロック信号を受信する毎に、当該重みデータが0の場合は、前記重みデータを0以外に変更する確率に従って新たなシナプス結合の重み情報を0以外にする。重み変更部8は、クロック信号を受信する毎に、当該重みデータが0以外の場合は、当該出力データと当該発火データと前記重みデータを増加する確率と前記重みデータを減少する確率と、に基づいて、新たなシナプス結合の重み情報を生成する。重み変更部8は、当該新たなシナプス結合の重み情報を重み記憶部3へ出力する。
The weight changing unit 8 includes a clock signal input from an external device (not shown), output data output from the input unit 2, weight data output from the weight storage unit 3, and a sum total output from the adding unit 5. The ignition data output by the second output unit 7 is received.
The weight changing unit 8 calculates the number of data having a weight of 0 stored in the weight storage unit 3 from the weight data, and increases or decreases the probability of changing the data having a weight of 0 to other than 0 from the coefficient result. Further, the weight changing unit 8 increases or decreases the probability of increasing the weight data according to the sum. Further, the weight changing unit 8 increases or decreases the probability of decreasing the weight data according to the sum.
Whenever the weight data is 0, the weight changing unit 8 changes the weight information of the new synapse connection to a value other than 0 according to the probability of changing the weight data to a value other than 0 every time the clock signal is received. Each time the weight change unit 8 receives a clock signal, if the weight data is other than 0, the weight change unit 8 increases the output data, the ignition data, the probability of increasing the weight data, and the probability of decreasing the weight data. Based on this, new synaptic connection weight information is generated. The weight changing unit 8 outputs the new synaptic connection weight information to the weight storage unit 3.

重み変更部8は、重み記憶部3が現在保持しているシナプス結合の重み情報を当該新たなシナプス結合の重み情報に変更するよう制御することにより、重み記憶部3に保持されたシナプス結合の重み情報を変更することができる。即ち、ニューラルネットの学習と自己組織化ができる。   The weight changing unit 8 controls to change the weight information of the synapse connection currently held in the weight storage unit 3 to the weight information of the new synapse connection, so that the synapse connection held in the weight storage unit 3 is changed. Weight information can be changed. In other words, neural network learning and self-organization are possible.

図6は、本発明の一実施形態による重み変更部8のブロック構成図である。重み変更部8は、疑似乱数生成部11と、学習信号生成部12と、重み増減部13と、シナプス作成指令部14と、切替部15と、を用いて構成されている。   FIG. 6 is a block diagram of the weight changing unit 8 according to an embodiment of the present invention. The weight changing unit 8 includes a pseudo random number generating unit 11, a learning signal generating unit 12, a weight increasing / decreasing unit 13, a synapse creation command unit 14, and a switching unit 15.

疑似乱数生成部11は、図示されていない外部装置からクロック信号を受け取る。疑似乱数生成部11は、当該クロック信号に基づいて疑似乱数を生成し、当該疑似乱数を学習信号生成部12と、シナプス作成指令部14と、へ出力する。なお、疑似乱数生成部11が生成する疑似乱数は、予め決められた所定の範囲の数のうち、それぞれの数の出現頻度が同一確率でなくてもよい。
学習信号生成部12は、入力部2が出力した出力データと、加算部5が出力した総和と、第2の出力部7が出力した発火データと、疑似乱数生成部11が出力した疑似乱数と、を受け取る。
The pseudorandom number generator 11 receives a clock signal from an external device not shown. The pseudo random number generation unit 11 generates a pseudo random number based on the clock signal, and outputs the pseudo random number to the learning signal generation unit 12 and the synapse creation command unit 14. Note that the pseudo-random numbers generated by the pseudo-random number generator 11 may not have the same probability of appearance frequency of each number out of a predetermined number of predetermined ranges.
The learning signal generation unit 12 outputs the output data output from the input unit 2, the sum total output from the addition unit 5, the firing data output from the second output unit 7, and the pseudo random number output from the pseudo random number generation unit 11. Receive.

学習信号生成部12は、当該総和が第1の所定の範囲内にあるか否かを判定し、当該判定結果に応じてシナプス結合の重み増加用カウント値を変更する。学習信号生成部12は、当該増加用カウント値と当該疑似乱数との比較結果に基づいて、シナプス結合の重み増加可否信号を出力する。学習信号生成部12は、当該増加可否信号と、前記出力データと、前記発火データと、に基づいて、シナプス結合の重み増加指示信号を生成する。学習信号生成部12は、当該重み増加指示信号を重み増減部13へ出力する。   The learning signal generation unit 12 determines whether the sum is within the first predetermined range, and changes the count value for increasing the weight of the synapse connection according to the determination result. The learning signal generation unit 12 outputs a synaptic weight increase / decrease signal based on the comparison result between the increase count value and the pseudo random number. The learning signal generation unit 12 generates a synaptic weight increase instruction signal based on the increase / decrease signal, the output data, and the firing data. The learning signal generation unit 12 outputs the weight increase instruction signal to the weight increase / decrease unit 13.

同様にして、学習信号生成部12は、当該総和が第2の所定の範囲内にあるか否かを判定し、当該判定結果に応じてシナプス結合の重み減少用カウント値を変更する。学習信号生成部12は、当該減少用カウント値と当該疑似乱数との比較結果に基づいて、シナプス結合の重み減少可否信号を出力する。学習信号生成部12は、当該減少可否信号と、前記出力データと、前記発火データと、に基づいて、シナプス結合の重み減少指示信号を生成する。学習信号生成部12は、当該重み減少指示信号を重み増減部13へ出力する。   Similarly, the learning signal generation unit 12 determines whether or not the sum is within the second predetermined range, and changes the synaptic connection weight reduction count value according to the determination result. The learning signal generation unit 12 outputs a weight reduction enable / disable signal for synapse connection based on the comparison result between the decrease count value and the pseudo random number. The learning signal generation unit 12 generates a weight reduction instruction signal for synaptic connection based on the decrease enable / disable signal, the output data, and the firing data. The learning signal generation unit 12 outputs the weight reduction instruction signal to the weight increase / decrease unit 13.

重み増減部13は、学習信号生成部12が出力した当該重み増加指示信号と、当該重み減少指示信号と、重み記憶部3が出力した当該重み情報と、を受け取る。重み増減部13は、当該重み増加指示信号と当該重み減少指示信号とに基づいて、当該重み情報から変更したシナプス結合の重み情報を生成する。   The weight increase / decrease unit 13 receives the weight increase instruction signal output from the learning signal generation unit 12, the weight decrease instruction signal, and the weight information output from the weight storage unit 3. Based on the weight increase instruction signal and the weight decrease instruction signal, the weight increase / decrease unit 13 generates weight information of the synapse connection changed from the weight information.

具体的には、重み増減部13は、当該重み増加指示信号が1のときに、当該シナプス結合の重み情報を一定量増加し、変更したシナプス結合の重み情報とする。重み増減部13は、当該重み減少指示信号が1のときに、当該シナプス結合の重み情報を一定量減少し、変更したシナプス結合の重み情報とする。重み増減部13は、当該重み増加指示信号と当該重み減少指示信号がともに0のときは、当該シナプス結合の重み情報を、そのまま変更したシナプス結合の重み情報とする。重み増減部13は、前記変更したシナプス結合の重み情報を切替部15へ出力する。   Specifically, when the weight increase instruction signal is 1, the weight increasing / decreasing unit 13 increases the weight information of the synapse connection by a certain amount to obtain the changed weight information of the synapse connection. When the weight decrease instruction signal is 1, the weight increase / decrease unit 13 decreases the weight information of the synapse connection by a certain amount to obtain the changed synapse connection weight information. When both the weight increase instruction signal and the weight decrease instruction signal are 0, the weight increase / decrease unit 13 sets the weight information of the synapse connection as the weight information of the synapse connection that is changed as it is. The weight increase / decrease unit 13 outputs the changed synaptic connection weight information to the switching unit 15.

シナプス作成指令部14は、前記重み記憶部3が出力したシナプス結合の重み情報と、前記疑似乱数生成部11が出力した疑似乱数と、を受け取る。シナプス作成指令部14は、当該シナプス結合の重み情報と、当該疑似乱数と、に基づいて、シナプス作成指示信号を生成する。
具体的には、シナプス作成指令部14は、シナプス結合の重み情報を検査し、その値が0のときにゼロ判定信号を1にする。シナプス作成指令部14は、前記ゼロ判定信号が1になる回数をカウントする。シナプス作成指令部14は、当該カウント値が第3の所定の範囲内にあるか否かを判定し、当該判定結果に応じて、シナプス作成指示用カウント値を変更する。シナプス作成指令部14、当該シナプス作成指示用カウント値と、当該疑似乱数との比較結果に基づいて、シナプス作成可否信号を出力する。
The synapse creation command unit 14 receives the weight information of the synapse connection output from the weight storage unit 3 and the pseudo random number output from the pseudo random number generation unit 11. The synapse creation instruction unit 14 generates a synapse creation instruction signal based on the weight information of the synapse connection and the pseudo random number.
Specifically, the synapse creation command unit 14 checks the weight information of the synapse connection, and sets the zero determination signal to 1 when the value is 0. The synapse creation command unit 14 counts the number of times the zero determination signal becomes 1. The synapse creation command unit 14 determines whether or not the count value is within a third predetermined range, and changes the synapse creation instruction count value according to the determination result. The synapse creation command unit 14 outputs a synapse creation enable / disable signal based on a comparison result between the synapse creation instruction count value and the pseudo-random number.

シナプス作成指令部14は、当該作成可否信号と、前記ゼロ判定信号とに基づいて、シナプス作成指示信号を生成する。例えば、シナプス作成指令部14は、作成可否信号が1で、ゼロ判定信号が1のときに、シナプス作成指示信号を1とする。シナプス作成指令部14は、当該シナプス作成指示信号を切替部15へ出力する。   The synapse creation command unit 14 generates a synapse creation instruction signal based on the creation permission / inhibition signal and the zero determination signal. For example, the synapse creation instruction unit 14 sets the synapse creation instruction signal to 1 when the creation enable / disable signal is 1 and the zero determination signal is 1. The synapse creation command unit 14 outputs the synapse creation instruction signal to the switching unit 15.

切替部15は、重み増減部13が出力した変更したシナプス結合の重み情報と、シナプス作成指令部14が出力したシナプス作成指示信号と、を受け取る。切替部15は、当該シナプス作成指示信号に基づいて、所定の固定値データか、または前記変更したシナプス結合の重み情報か、のいずれかを選択する。   The switching unit 15 receives the changed weight information of the synapse connection output from the weight increase / decrease unit 13 and the synapse creation instruction signal output from the synapse creation command unit 14. Based on the synapse creation instruction signal, the switching unit 15 selects either predetermined fixed value data or the changed synapse connection weight information.

具体的には、例えば、シナプス作成指示信号が1のときは、切替部15は、前記所定の固定値データを選択する。一方、シナプス作成指示信号が0のときは、切替部15は、前記変更したシナプス結合の重み情報を選択する。切替部15は、前記選択した情報を重み記憶部3へ出力する。   Specifically, for example, when the synapse creation instruction signal is 1, the switching unit 15 selects the predetermined fixed value data. On the other hand, when the synapse creation instruction signal is 0, the switching unit 15 selects the changed weight information of the synapse connection. The switching unit 15 outputs the selected information to the weight storage unit 3.

図7は、本発明の一実施形態による回路ユニットを、パルスニューラルネットで用いるニューロン群で模擬した回路図である。図7の回路ユニット10全体が、図2(a)で示す1つの正六角形に対応している。本実施例では各ニューロンは個別の電子回路ではなく、仮想の興奮性ニューロンとして、各層毎に256個のニューロンが纏めて実装されている。   FIG. 7 is a circuit diagram simulating a circuit unit according to an embodiment of the present invention with a group of neurons used in a pulse neural network. The entire circuit unit 10 in FIG. 7 corresponds to one regular hexagon shown in FIG. In this embodiment, each neuron is not an individual electronic circuit, but is a virtual excitatory neuron, and 256 neurons are mounted together for each layer.

各層に256個のニューロンを実装する方法は、以下の通りである。L1層の256個のニューロンの入力データ(4[bit]データ)は、メモリ21に格納されている。L1層のニューロンからL2層のニューロンへのシナプス結合の重みのデータ(8[bit]データ)は、メモリ65に保存されている。一方、端子46に出力されるL2層の256個のニューロンの出力データは、0か1の1[bit]信号として表される。   A method for implementing 256 neurons in each layer is as follows. Input data (4 [bit] data) of 256 neurons in the L1 layer is stored in the memory 21. Weight data (8 [bit] data) of the synaptic connection from the L1 layer neuron to the L2 layer neuron is stored in the memory 65. On the other hand, the output data of 256 neurons in the L2 layer output to the terminal 46 is represented as a 1 [bit] signal of 0 or 1.

回路ユニット10は、図7に示すように、第1の出力部1と、入力部2と、重み記憶部3と、乗算部4と、加算部5と、比較決定部6と、第2の出力部7と、重み変更部8と、を用いて構成されている。
第1の出力部1は、8ビットカウンター20と、メモリ21と、パルス列変調回路22と、を用いて構成されている。
As shown in FIG. 7, the circuit unit 10 includes a first output unit 1, an input unit 2, a weight storage unit 3, a multiplication unit 4, an addition unit 5, a comparison determination unit 6, and a second determination unit 6. The output unit 7 and the weight changing unit 8 are used.
The first output unit 1 is configured using an 8-bit counter 20, a memory 21, and a pulse train modulation circuit 22.

入力部2は、出力端子P0と、入力端子Pq(qは1から6の整数)と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、ORゲート60と、を用いて構成されている。
重み記憶部3は、19ビットカウンター64と、メモリ65と、を用いて構成されている。
The input unit 2 includes an output terminal P0, an input terminal Pq (q is an integer from 1 to 6), an 8-bit counter 23A, an 8-bit counter 23B, a memory 24A, a memory 24B, and an OR gate 60. It is configured using.
The weight storage unit 3 includes a 19-bit counter 64 and a memory 65.

乗算部4は、ANDゲート26を用いて構成されている。
加算部5は、加算器27と、ANDゲート28と、を用いて構成されている。
比較決定部6は、大小比較器29を用いて構成されている。
第2の出力部7は、8ビットカウンター61と、メモリ62と、を用いて構成されている。
The multiplication unit 4 is configured using an AND gate 26.
The adder 5 is configured using an adder 27 and an AND gate 28.
The comparison determination unit 6 is configured using a size comparator 29.
The second output unit 7 is configured using an 8-bit counter 61 and a memory 62.

重み変更部8は、疑似乱数生成部11と、学習信号生成部12と、重み増減部13と、シナプス作成指令部14と、切替部15と、を用いて構成されている。
疑似乱数生成部11は、疑似乱数発生器70を用いて構成されている。
重み増減部13は、1増減回路66を用いて構成されている。
シナプス作成指令部14は、ゼロ検出器68と、19ビットカウンター69と、確率イネーブル信号発生器73と、を用いて構成されている。
切替部15は、3入力セレクター63を用いて構成されている。
The weight changing unit 8 includes a pseudo random number generating unit 11, a learning signal generating unit 12, a weight increasing / decreasing unit 13, a synapse creation command unit 14, and a switching unit 15.
The pseudo random number generator 11 is configured using a pseudo random number generator 70.
The weight increase / decrease unit 13 is configured using a 1 increase / decrease circuit 66.
The synapse creation command unit 14 includes a zero detector 68, a 19-bit counter 69, and a probability enable signal generator 73.
The switching unit 15 is configured using a three-input selector 63.

8ビットカウンター20は、入力端子41にカウントアップ信号が入力される毎に、カウント値である端子Qの値を1ずつ増加させ、当該カウント値をメモリ21に出力する。8ビットカウンター20は、前記カウント値を255までカウントアップすると、次のカウントアップ信号が入力されたときに、前記カウント値を0に戻す。
8ビットカウンター20は、図示しないリセット信号が入力されると、前記カウント値を0にする。
Each time the count-up signal is input to the input terminal 41, the 8-bit counter 20 increments the value of the terminal Q, which is a count value, by 1 and outputs the count value to the memory 21. When the count value is counted up to 255, the 8-bit counter 20 returns the count value to 0 when the next count-up signal is input.
The 8-bit counter 20 sets the count value to 0 when a reset signal (not shown) is input.

メモリ21は、L1層のニューロンの入力データを記憶する。メモリ21に格納されているL1層のニューロンのデータは、0から15までの数である。L1層のニューロン数が256なので、メモリ21は1,024(=4[bit]×256)[bit]の容量を持つ。L1層のi番目のニューロンの入力データは、メモリ21のi番地に格納されている。   The memory 21 stores input data of the L1 layer neurons. The L1 layer neuron data stored in the memory 21 is a number from 0 to 15. Since the number of neurons in the L1 layer is 256, the memory 21 has a capacity of 1,024 (= 4 [bit] × 256) [bit]. The input data of the i-th neuron in the L1 layer is stored at address i of the memory 21.

メモリ21は、8ビットカウンター20が出力したカウント値が示す番地の4ビットデータを読み出して、当該データをパルス列変調回路22に出力する。例えば、メモリ21は、入力されたカウント値が0のとき、メモリ21の0番地のデータを読み出して、当該データをパルス列変調回路22に出力する。   The memory 21 reads the 4-bit data at the address indicated by the count value output by the 8-bit counter 20 and outputs the data to the pulse train modulation circuit 22. For example, when the input count value is 0, the memory 21 reads the data at address 0 in the memory 21 and outputs the data to the pulse train modulation circuit 22.

パルス列変調回路22は、メモリ21が出力した当該4ビットデータを15ビットのパルス列に変換する。パルス列変調回路22は、データ変換用メモリを備え、データ変換テーブルを前記データ変換用メモリに保持する。図8は、データ変換用メモリが保持するデータ変換テーブルを説明するための図である。図8において、4ビットデータとは、データ変換用メモリが受け取るデータである。15ビットデータとは、データ変換用メモリが出力するデータである。16種類の4ビットデータそれぞれに、15ビットデータが1つ対応付けられている。パルス列変調回路22は、図8に示すデータ変換テーブルを格納するデータ変換用メモリを用いて、メモリ21が出力した当該4ビットデータを、対応している15ビットデータに変換する。   The pulse train modulation circuit 22 converts the 4-bit data output from the memory 21 into a 15-bit pulse train. The pulse train modulation circuit 22 includes a data conversion memory, and holds a data conversion table in the data conversion memory. FIG. 8 is a diagram for explaining a data conversion table held in the data conversion memory. In FIG. 8, 4-bit data is data received by the data conversion memory. The 15-bit data is data output from the data conversion memory. One 15-bit data is associated with each of the 16 types of 4-bit data. The pulse train modulation circuit 22 converts the 4-bit data output from the memory 21 into corresponding 15-bit data using a data conversion memory that stores the data conversion table shown in FIG.

パルス列変調回路22は、前記15ビットのデータ列のLSB(Least Siginificant bit)だけを、自セルのメモリ24Aとメモリ24Bに出力する。前述の操作を、カウンター20のカウント値が255になるまで繰り返す。この一連の処理をラウンドと呼ぶ。
前述のように、パルス列変調回路22の出力データ速度が64[kbps]なので、カウンター20のカウントアップ信号は64[kHz]である。
The pulse train modulation circuit 22 outputs only the LSB (Least Significant bit) of the 15-bit data train to the memory 24A and the memory 24B of its own cell. The above operation is repeated until the count value of the counter 20 reaches 255. This series of processing is called round.
As described above, since the output data rate of the pulse train modulation circuit 22 is 64 [kbps], the count-up signal of the counter 20 is 64 [kHz].

また、パルス列変調回路22は、出力端子P0を介して、隣接セルの入力端子Pqに、前記データを出力する。その後、隣接セルにおいて、当該データは、端子Pqからメモリ24Aと24Bに出力される。   In addition, the pulse train modulation circuit 22 outputs the data to the input terminal Pq of the adjacent cell via the output terminal P0. Thereafter, in the adjacent cell, the data is output from the terminal Pq to the memories 24A and 24B.

パルス列変調回路22は、ラウンド数が増える毎に、前記15ビットのデータ列から取り出すデータのビット位置を1ずつ増やし、当該ビット位置のデータxを出力する。
ラウンド14で、パルス列変調回路22は、前記15ビットデータの最上位ビットのデータを、自セルのメモリ24Aとメモリ24Bと隣接セルの入力端子Pqに出力し終わると、メモリ21に入っているデータの転送処理が終わる。
Each time the number of rounds increases, the pulse train modulation circuit 22 increases the bit position of the data extracted from the 15-bit data train by 1, and outputs data x i at the bit position.
In round 14, when the pulse train modulation circuit 22 finishes outputting the most significant bit data of the 15-bit data to the memory 24A, the memory 24B of its own cell and the input terminal Pq of the adjacent cell, the data stored in the memory 21 The transfer process ends.

なお、本実施例では、前記15ビットデータの最下位ビットから昇順にデータを出力したが、最上位ビットから降順に出力してもよい。また、任意のビット位置からランダムに出力してもよい。或いは、最下位ビットから昇順に出力するとしたままで、図8に示すテーブルデータを適当に変更しても良い。L1層のニューロンの出力情報は、前記15ビットのデータ列中に存在する1の頻度で表されるので、データが出力される順番は関係ないからである。   In this embodiment, data is output in ascending order from the least significant bit of the 15-bit data, but may be output in descending order from the most significant bit. Moreover, you may output at random from arbitrary bit positions. Alternatively, the table data shown in FIG. 8 may be appropriately changed while outputting in ascending order from the least significant bit. This is because the output information of the neurons in the L1 layer is represented by the frequency of 1 existing in the 15-bit data string, and therefore the order in which the data is output does not matter.

L2層に属する8ビットカウンター23Aは、メモリ24Aにデータを書き込むときは、端子42Aに端子41に入力されるカウントアップ信号と同一のカウントアップ信号(64[kHz])が入力される。カウンター23Aは、当該カウントアップ信号が入力される毎に、カウント値を1ずつ増加させ、当該カウント値をメモリ24Aに出力する。カウンター23Aは、255までカウントアップすると、次のカウントアップ信号で、そのカウント値を0に戻す。
カウンター23Aは、図示しないリセット信号が入力されると、カウント値を0にする。
同様に、カウンター23Bは、メモリ24Bにデータを書き込むときは、端子42Bに端子41に入力されるカウントアップ信号と同一のカウントアップ信号が入力される。カウンター23Bは、当該カウントアップ信号が入力される毎に、カウント値を1ずつ増加させ、当該カウント値をメモリ24Bに出力する。カウンター23Bは、255までカウントアップすると、次のカウントアップ信号で、そのカウント値を0に戻す。
カウンター23Bは、図示しないリセット信号が入力されると、カウント値を0にする。
When the 8-bit counter 23A belonging to the L2 layer writes data to the memory 24A, the count-up signal (64 [kHz]) identical to the count-up signal input to the terminal 41 is input to the terminal 42A. Each time the count-up signal is input, the counter 23A increases the count value by 1 and outputs the count value to the memory 24A. When the counter 23A counts up to 255, it returns the count value to 0 with the next count-up signal.
The counter 23A sets the count value to 0 when a reset signal (not shown) is input.
Similarly, when writing data into the memory 24B, the counter 23B receives the same count-up signal as the count-up signal input to the terminal 41 at the terminal 42B. Each time the count-up signal is input, the counter 23B increases the count value by 1 and outputs the count value to the memory 24B. When the counter 23B counts up to 255, it returns the count value to 0 with the next count-up signal.
The counter 23B sets the count value to 0 when a reset signal (not shown) is input.

メモリ24Aとメモリ24B(それぞれ7[bit]×256の容量)は、7本の信号線で伝送されてきた端子P0から端子P6が出力したデータを、ラウンド毎に交互に格納する。ここで、端子P0が出力したデータとは、自セルのパルス列変調回路22が出力したデータである。また、端子Pqが出力したデータとは、6個の隣接セルのパルス列変調回路22が出力したデータである。   The memory 24A and the memory 24B (each 7 [bit] × 256 capacity) alternately store the data output from the terminal P0 to the terminal P6 transmitted through the seven signal lines for each round. Here, the data output from the terminal P0 is data output from the pulse train modulation circuit 22 of its own cell. The data output from the terminal Pq is data output from the pulse train modulation circuit 22 of six adjacent cells.

L2層側では、1ラウンドの時間である4[ms]を2等分し、前半の2[ms]でL2層のニューロンの出力データを算出し、後半の2[ms]でL2層のニューロンの学習と自己組織化を行う。
8ビットカウンター23Aは、メモリ24Aからデータを読み出すときは、端子42Aに端子41に入力されるカウントアップ信号の512倍即ち、32.768(=64[kHz]×512)[MHz]のカウントアップ信号が入力される。
メモリ24Aは、カウンター23Aが出力するカウント値が32.768[MHz]で増加するので、格納した7ビットのデータを32.768[MHz]の速度で読み出す。メモリ24Aは、当該読み出したデータを並直変換して7倍の229.4[Mbps]の1ビットデータsにする。ここで、添え字iは0から1,792(=256×7−1)までの整数である。
同様にして、8ビットカウンター23Bは、メモリ24Bからデータを読み出すときは、端子42Bに32.768[MHz]のカウントアップ信号が入力される。
メモリ24Bは、カウンター23Bが出力するカウント値が32.768[MHz]で増加するので、格納した7ビットのデータを32.768[MHz]で読み出す。メモリ24Bは、当該読み出したデータを並直変換して7倍の229.4[Mbps]の1ビットデータsにする。
メモリ24Aとメモリ24Bは、ラウンド毎にデータの書き込み動作と、読み出し動作を交互に行う。例えば、或るラウンドでメモリ24Aが書き込み動作を行っているときは、メモリ24Bは読み出し動作を行っている。メモリ24Aとメモリ24Bは、前記読み出したデータsをORゲート60と学習信号生成部12に出力する。
On the L2 layer side, 4 [ms], which is the time of one round, is divided into two equal parts, the output data of the L2 layer neurons is calculated in the first half [ms], and the L2 layer neurons in the second half [ms] Learning and self-organizing.
When reading data from the memory 24A, the 8-bit counter 23A counts up to 512 times the count-up signal input to the terminal 41 at the terminal 42A, that is, 32.768 (= 64 [kHz] × 512) [MHz]. A signal is input.
Since the count value output from the counter 23A increases at 32.768 [MHz], the memory 24A reads the stored 7-bit data at a speed of 32.768 [MHz]. Memory 24A is a 1-bit data s i of 229.4 [Mbps] of 7 times the read data is parallel-serial conversion. Here, the subscript i is an integer from 0 to 1,792 (= 256 × 7-1).
Similarly, when the 8-bit counter 23B reads data from the memory 24B, a count-up signal of 32.768 [MHz] is input to the terminal 42B.
The memory 24B reads the stored 7-bit data at 32.768 [MHz] because the count value output from the counter 23B increases at 32.768 [MHz]. Memory 24B is set to 1-bit data s i of 229.4 [Mbps] of 7 times the read data is parallel-serial conversion.
The memory 24A and the memory 24B alternately perform a data write operation and a read operation for each round. For example, when the memory 24A performs a write operation in a certain round, the memory 24B performs a read operation. The memory 24A and the memory 24B output the read data s i to the OR gate 60 and the learning signal generation unit 12.

ORゲート60は、メモリ24Aまたはメモリ24Bが出力した前記データsと、端子80に制御信号と、を受け取る。ラウンドの前半では、端子80に0が入力されるので、ORゲート60は前記データsを出力する。ラウンドの後半では、端子80に1が入力されるので、ORゲート60は常に1をANDゲート26に出力する。 The OR gate 60 receives the data s i output from the memory 24A or the memory 24B and a control signal at the terminal 80. In the first half of the round, 0 is input to the terminal 80, so the OR gate 60 outputs the data s i . In the second half of the round, since 1 is input to the terminal 80, the OR gate 60 always outputs 1 to the AND gate 26.

19ビットカウンター64は、その端子84に229.4[MHz]のカウントアップ信号が入力される。カウンター64は、前記カウントアップ信号が入力されると、カウント値を1増加する。カウンター64は、前記カウント値をメモリ65に出力する。
カウンター64は、そのカウント値が458,751(=256×7×256−1)のときにカウントアップ信号が入力されると、カウント値を0に戻す。カウンター64は、図示しないリセット信号が入力されると、カウント値を0にする。
The 19-bit counter 64 receives a count up signal of 229.4 [MHz] at its terminal 84. The counter 64 increases the count value by 1 when the count-up signal is input. The counter 64 outputs the count value to the memory 65.
When the count value is 458,751 (= 256 × 7 × 256-1) and the count value is input, the counter 64 returns the count value to zero. The counter 64 sets the count value to 0 when a reset signal (not shown) is input.

メモリ65は、前記カウンター64が出力したカウント値を受け取る。前記カウント値が229.4[MHz]で増加するので、メモリ65は、シナプス結合の重みデータwi,jを229.4[MHz]で読み出す。メモリ65は、当該読み出した重みデータwi,jを、ANDゲート26と重み増減部13とシナプス作成司令部14と、に出力する。
ANDゲート26は、ORゲート60が出力したデータと、メモリ65が出力したシナプス結合の重みデータwi,jとを受け取る。
ラウンドの前半では、ANDゲート26は、ORゲート60が出力した前記データsと、それに対応するシナプス結合の重みデータwi,jとの積をとり、当該積yi,j(=s×wi,j)を加算器27に出力する。
ラウンドの後半では、ANDゲート26は、ORゲート60が出力した前記データ1と、シナプス結合の重みデータwi,jとの積をとり、当該積wi,jを加算器27に出力する。
The memory 65 receives the count value output from the counter 64. Since the count value increases at 229.4 [MHz], the memory 65 reads the synapse connection weight data w i, j at 229.4 [MHz]. The memory 65 outputs the read weight data w i, j to the AND gate 26, the weight increase / decrease unit 13, and the synapse creation command unit 14.
The AND gate 26 receives the data output from the OR gate 60 and the weight data w i, j of the synapse connection output from the memory 65.
In the first half of the round, the AND gate 26 takes the product of the data s i output from the OR gate 60 and the corresponding weight data w i, j of the synapse connection , and the product y i, j (= s i). Xwi , j ) is output to the adder 27.
In the second half of the round, the AND gate 26 takes the product of the data 1 output from the OR gate 60 and the synaptic connection weight data w i, j and outputs the product w i, j to the adder 27.

ラウンドの前半では、加算器27は、ANDゲート26が出力した前記yi,jを受け取り、L2層のj番目のニューロンに毎にΣyi,jのiに対する総和を計算する。この場合の総和記号Σは256×7回の計算を表している。
ANDゲート26がデータy0,jを加算器27に出力すると同時に、ANDゲート28の端子44に入力される信号が0になるので、ANDゲート28は、加算器27の片側の入力端子に0を出力する。これによってΣyi,jの総和計算の初期値が0になる。ANDゲート26がデータy0,jを加算器27に出力するとき以外は、端子44に入力される信号が1になるので、加算器27において、L2層のj番目のニューロンに毎に、Σyi,jのiについての総和Y(=Σyi,j)が計算される。加算器27は、総和Yを計算し終わると、当該総和Yを大小比較器29に出力する。
In the first half of the round, the adder 27 receives the y i, j output from the AND gate 26 and calculates the sum of Σy i, j with respect to i for each j-th neuron in the L2 layer. In this case, the summation symbol Σ represents 256 × 7 calculations.
Since the AND gate 26 outputs the data y 0, j to the adder 27, the signal input to the terminal 44 of the AND gate 28 becomes 0, so that the AND gate 28 has 0 at the input terminal on one side of the adder 27. Is output. As a result , the initial value of the sum calculation of Σy i, j becomes zero. Since the signal input to the terminal 44 becomes 1 except when the AND gate 26 outputs the data y 0, j to the adder 27, the adder 27 performs Σy every j-th neuron of the L2 layer. i, the sum of i of j Y j (= Σy i, j) is calculated. When the adder 27 finishes calculating the sum Yj , the adder 27 outputs the sum Yj to the magnitude comparator 29.

ラウンドの後半では、加算器27は、ANDゲート26が出力した前記wi,jを受け取り、全てのiと全てのjに対する総和Σwi,jを計算する。この場合の総和記号Σは256×7×256回の計算を表している。つまり、Σwi,jは、L2層の全ニューロンの全シナプス結合の重みデータの和である。
ANDゲート26がデータy0,0を加算器27に出力すると同時に、ANDゲート28の端子44に入力される信号が0になるので、ANDゲート28は、加算器27の片側の入力端子に0を出力する。これによってΣwi,jの総和計算の初期値が0になる。ANDゲート26がデータy0,0を加算器27に出力するとき以外は、端子44に入力される信号は1になる。加算器27は、総和Σwi,jを計算し終わると、当該総和Σwi,jを学習信号生成部12に出力する。
In the second half of the round, the adder 27 receives the w i, j output from the AND gate 26 and calculates the sum Σw i, j for all i and all j. The sum symbol Σ in this case represents 256 × 7 × 256 calculations. That is, Σw i, j is the sum of weight data of all synapse connections of all neurons in the L2 layer.
Since the AND gate 26 outputs the data y 0,0 to the adder 27, the signal input to the terminal 44 of the AND gate 28 becomes 0, so that the AND gate 28 has 0 at the input terminal on one side of the adder 27. Is output. As a result , the initial value of the total calculation of Σwi , j becomes zero. The signal input to the terminal 44 becomes 1 except when the AND gate 26 outputs the data y 0,0 to the adder 27. When the adder 27 finishes calculating the sum Σwi , j , the adder 27 outputs the sum Σwi , j to the learning signal generator 12.

大小比較器29は、加算器27が出力した前記総和Yを受け取り、当該総和Yを、図示しないレジスタまたは外部から端子43に供給される閾値データθと比較し、前記閾値データθよりも当該総和Yが大きい場合に、1をメモリ62に出力する。大小比較器29は、それ以外の場合は、0をメモリ62に出力する。 Magnitude comparator 29 receives the sum Y j to the adder 27 is output, the sum Y j, is compared with a threshold value data θ supplied from the register or an external (not shown) to the terminal 43, than the threshold data θ When the sum Yj is large, 1 is output to the memory 62. The size comparator 29 outputs 0 to the memory 62 in other cases.

8ビットカウンター61は、端子82に128[kHz]のカウントアップ信号が入力されると、カウント値を1増加させる。8ビットカウンター61は、カウント値が255のときに端子82にカウントアップ信号が入力されると、カウント値を0に戻す。8ビットカウンター61は、前記カウント値をメモリ62に出力する。
8ビットカウンター61は、図示しないリセット信号が入力されると、カウント値を0にする。
When the count up signal of 128 [kHz] is input to the terminal 82, the 8-bit counter 61 increases the count value by one. The 8-bit counter 61 resets the count value to 0 when a count-up signal is input to the terminal 82 when the count value is 255. The 8-bit counter 61 outputs the count value to the memory 62.
The 8-bit counter 61 sets the count value to 0 when a reset signal (not shown) is input.

メモリ62は、ラウンドの前半では、大小比較器29が出力した前記1ビットデータと、8ビットカウンター61が出力した前記カウント値とを受け取る。メモリ62は、前記1ビットデータを、前記カウント値の番地に格納する。これによって、メモリ62は、L2層のニューロンの出力(合計256[bit]=1[bit]×256)を記憶する。
メモリ62は、ラウンドの後半では、8ビットカウンター61が出力したカウント値を受け取る。メモリ62は、前記カウント値のアドレスから1ビットデータbを読み出し、当該1ビットデータbを端子46と学習信号生成部に出力する。
The memory 62 receives the 1-bit data output by the magnitude comparator 29 and the count value output by the 8-bit counter 61 in the first half of the round. The memory 62 stores the 1-bit data at the address of the count value. Thereby, the memory 62 stores the outputs of the neurons in the L2 layer (total 256 [bit] = 1 [bit] × 256).
The memory 62 receives the count value output from the 8-bit counter 61 in the second half of the round. The memory 62 reads the 1-bit data b j from the address of the count value, and outputs the 1-bit data b j to the terminal 46 and the learning signal generation unit.

3入力セレクター63は、ニューラルネットでの計算処理を始める前に、端子83に入力される信号が1になると、入力I2を選択する。当該選択後、3入力セレクター63は、DBバスから供給されるデータを選択し、当該データをメモリ65に出力する。これによって、シナプス結合の重みデータの初期値を、図示しない外部回路がDBバスを通して、メモリ65に予め書き込むことができる。   The 3-input selector 63 selects the input I2 when the signal input to the terminal 83 becomes 1 before starting the calculation process in the neural network. After the selection, the 3-input selector 63 selects data supplied from the DB bus and outputs the data to the memory 65. As a result, the initial value of the synaptic connection weight data can be written in the memory 65 in advance by an external circuit (not shown) through the DB bus.

3入力セレクター63は、ANDゲート67が出力した信号Conを受け取る。また、3入力セレクター63は、1増減回路66の出力信号を受け取る。
3入力セレクター63は、前記信号Conが0のとき、入力I0を選択する。当該選択後、3入力セレクター63は、1増減回路66の出力であるシナプス結合の重みデータの更新値を選択し、当該更新値をメモリ65に出力する。
The 3-input selector 63 receives the signal Con output from the AND gate 67. The 3-input selector 63 receives the output signal of the 1 increase / decrease circuit 66.
The 3-input selector 63 selects the input I0 when the signal Con is 0. After the selection, the three-input selector 63 selects an update value of the synapse connection weight data, which is an output of the 1 increase / decrease circuit 66, and outputs the update value to the memory 65.

3入力セレクター63は、前記信号Conが1のとき、入力I1を選択する。当該選択後、3入力セレクター63は、図示しないレジスタ又は外部から供給される固定値’D0’を選択し、当該固定値’D0’をメモリ65に出力する。   The 3-input selector 63 selects the input I1 when the signal Con is 1. After the selection, the three-input selector 63 selects a fixed value 'D0' supplied from a register (not shown) or from the outside, and outputs the fixed value 'D0' to the memory 65.

メモリ65は、19ビットカウンター64が出力したカウント値と、3入力セレクター63が出力したデータとを受け取る。
ラウンドの前半では、メモリ65は、当該カウント値のアドレスのデータを読み出して、当該データをANDゲート26とゼロ検出器68とに出力する。
The memory 65 receives the count value output from the 19-bit counter 64 and the data output from the 3-input selector 63.
In the first half of the round, the memory 65 reads the data at the address of the count value and outputs the data to the AND gate 26 and the zero detector 68.

ラウンドの後半では、メモリ65は、当該カウント値のアドレスのデータを読み出して、当該データをANDゲート26と1増減回路66とゼロ検出器68とに出力する。更に、メモリ65は、3入力セレクター63が出力した前記更新値を、新たなシナプス結合の重みとして、前記カウント値のアドレスに格納する。   In the second half of the round, the memory 65 reads the data at the address of the count value and outputs the data to the AND gate 26, the 1 increase / decrease circuit 66, and the zero detector 68. Further, the memory 65 stores the updated value output from the three-input selector 63 at the address of the count value as a new synaptic connection weight.

続いて、1増減回路66について説明する。1増減回路66は、入力端子Iが1のときは、入力端子Aの値を1増やし、当該増やした値を出力端子Yから出力する。但し、入力端子Aの値が255の場合は、1増加させると0になってしまうので、255のまま出力する。また、入力端子Aの値が0の場合は、1増加させると1となり、新たにシナプス結合が生成されてしまうので、0のまま出力する。
1増減回路66は、入力端子Dが1のときは、入力端子Aの値を1減らし、当該減らした値を出力端子Yから出力する。但し、入力端子Aの値が0の場合は、1減少させると255になってしまうので、0のまま出力する。
1増減回路66は、入力端子Iと入力端子Dの両方が0のときは、入力端子Aの値を、そのまま出力端子Yから出力する。
Next, the 1 increase / decrease circuit 66 will be described. When the input terminal I is 1, the 1 increase / decrease circuit 66 increases the value of the input terminal A by 1 and outputs the increased value from the output terminal Y. However, when the value of the input terminal A is 255, if it is increased by 1, it becomes 0, so that it is output as 255. Further, when the value of the input terminal A is 0, if it is increased by 1, it becomes 1, and a new synaptic connection is generated, so that 0 is output as it is.
When the input terminal D is 1, the 1 increase / decrease circuit 66 decreases the value of the input terminal A by 1 and outputs the reduced value from the output terminal Y. However, when the value of the input terminal A is 0, if it is decreased by 1, it becomes 255, so that it is output as 0.
When both the input terminal I and the input terminal D are 0, the 1 increase / decrease circuit 66 outputs the value of the input terminal A as it is from the output terminal Y.

図9は、1増減回路66の回路図である。図9において、1増減回路66は、x’FF’検出器101と、x’00’検出器102と、3入力ANDゲート103と、ANDゲート104と、ORゲート105と、8ビット加減算器106と、を用いて構成される。   FIG. 9 is a circuit diagram of the 1 increase / decrease circuit 66. In FIG. 9, the 1 increase / decrease circuit 66 includes an x′FF ′ detector 101, an x′00 ′ detector 102, a 3-input AND gate 103, an AND gate 104, an OR gate 105, and an 8-bit adder / subtractor 106. And is configured using.

x’FF’検出器101は、例えば8入力NANDゲートである。x’FF’検出器101は、端子Aの信号を受け取り、端子Inの入力とする。x’FF’検出器101は、端子Inの信号の全ビットが1の場合に、端子Fの信号を0とし、当該信号0を3入力ANDゲート103に出力する。x’FF’検出器101は、端子Inの信号の少なくとも1ビットが0の場合は、端子Fの信号を1にする。   The x′FF ′ detector 101 is, for example, an 8-input NAND gate. The x′FF ′ detector 101 receives the signal at the terminal A and inputs it to the terminal In. When all the bits of the signal at the terminal In are 1, the x′FF ′ detector 101 sets the signal at the terminal F to 0 and outputs the signal 0 to the 3-input AND gate 103. The x′FF ′ detector 101 sets the signal at the terminal F to 1 when at least one bit of the signal at the terminal In is 0.

x’00’検出器102は、例えば8入力ORゲートである。x’00’検出器102は、端子Aの信号を受け取り、端子Inの入力とする。x’00’検出器102は、端子Inの信号の全ビットが0の場合に、端子Zの信号を0とし、当該信号0を3入力ANDゲート103とANDゲート104に出力する。x’00’検出器102は、端子Inの信号の少なくとも1ビットが1の場合は、端子Zの信号を1にする。   The x′00 ′ detector 102 is, for example, an 8-input OR gate. The x′00 ′ detector 102 receives the signal at the terminal A and uses it as an input at the terminal In. When all bits of the signal at the terminal In are 0, the x′00 ′ detector 102 sets the signal at the terminal Z to 0 and outputs the signal 0 to the 3-input AND gate 103 and the AND gate 104. The x′00 ′ detector 102 sets the signal at the terminal Z to 1 when at least one bit of the signal at the terminal In is 1.

3入力ANDゲート103は、x’FF’検出器101が出力した端子Fの信号と、x’00’検出器102が出力した端子Zの信号と、端子Iの信号とを受け取る。3入力ANDゲート103は、前記端子Fの信号と、前記端子Zの信号と、前記端子Iの信号が全て1のとき、1をORゲート105に出力する。3入力ANDゲート103は、他の場合には、0をORゲート105に出力する。   The 3-input AND gate 103 receives the signal at the terminal F output from the x′FF ′ detector 101, the signal at the terminal Z output from the x′00 ′ detector 102, and the signal at the terminal I. The 3-input AND gate 103 outputs 1 to the OR gate 105 when the signal of the terminal F, the signal of the terminal Z, and the signal of the terminal I are all 1. The 3-input AND gate 103 outputs 0 to the OR gate 105 in other cases.

換言すると、3入力ANDゲート103は、端子Aのデータが0でも255でもなく、かつ端子Iの信号が1の場合に、1をORゲート105に出力する。   In other words, the 3-input AND gate 103 outputs 1 to the OR gate 105 when the data at the terminal A is neither 0 nor 255 and the signal at the terminal I is 1.

ANDゲート104は、前記端子Zの信号と、端子Dの信号とを受け取る。ANDゲート104は、前記端子Zの信号と、前記端子Dの信号がともに1のとき、1をORゲート105と加減算器106に出力する。ANDゲート104は、他の場合には、0をORゲート105と加減算器106に出力する。
ORゲート105は、ANDゲート103が出力した信号と、ANDゲート104が出力した信号とを受け取る。ORゲート105は、前記2つの信号の論理和をとり、当該論理和を加減算器106へ出力する。
The AND gate 104 receives the signal at the terminal Z and the signal at the terminal D. The AND gate 104 outputs 1 to the OR gate 105 and the adder / subtracter 106 when the signal at the terminal Z and the signal at the terminal D are both 1. In other cases, the AND gate 104 outputs 0 to the OR gate 105 and the adder / subtractor 106.
The OR gate 105 receives the signal output from the AND gate 103 and the signal output from the AND gate 104. The OR gate 105 calculates the logical sum of the two signals and outputs the logical sum to the adder / subtractor 106.

加減算器106は、ANDゲート104が出力した信号を、端子mの入力信号として受け取る。また、加減算器106は、端子Aのデータを、自身の端子Aの入力データとして受け取る。また、加減算器106は、ORゲート105が出力したデータを、端子Bの入力データとして受け取る。   The adder / subtractor 106 receives the signal output from the AND gate 104 as an input signal of the terminal m. Further, the adder / subtractor 106 receives the data of the terminal A as input data of its own terminal A. Further, the adder / subtractor 106 receives the data output from the OR gate 105 as input data of the terminal B.

加減算器106は、端子mの入力信号が0の場合、端子Aのデータと端子Bのデータとを加算する。また、加減算器106は、端子mの入力信号が1の場合、端子Aのデータから端子Bのデータを減算する。加減算器106は、前記加算値または前記減算値を端子Sのデータとして出力する。前記端子Sのデータは、1増減回路66の端子Yの出力データになる。   The adder / subtracter 106 adds the data of the terminal A and the data of the terminal B when the input signal of the terminal m is 0. The adder / subtractor 106 subtracts the data of the terminal B from the data of the terminal A when the input signal of the terminal m is 1. The adder / subtractor 106 outputs the added value or the subtracted value as data of the terminal S. The data of the terminal S becomes output data of the terminal Y of the 1 increase / decrease circuit 66.

1増減回路66は、メモリ65が出力した前記シナプス結合の重みデータwi,jを、入力端子Aで受け取る。1増減回路66は、学習信号生成部12が出力した信号Incを入力端子Iで受け取る。また、1増減回路66は、学習信号生成部12が出力した信号Decを入力端子Dで受け取る。 The 1 increase / decrease circuit 66 receives the weight data w i, j of the synapse connection output from the memory 65 at the input terminal A. The 1 increase / decrease circuit 66 receives the signal Inc output from the learning signal generator 12 at the input terminal I. The 1 increase / decrease circuit 66 receives the signal Dec output from the learning signal generation unit 12 at the input terminal D.

次に、1増減回路66の動作について説明する。後で説明するように、端子Iと端子Dの信号が、両方同時に1になることはない。そこで、端子Iの信号が0で端子Dの信号が1の場合と、端子Iの信号が1で端子Dの信号が0の場合と、端子Iの信号が0で端子Dの信号が0の場合、の3通りの場合について説明する。   Next, the operation of the 1 increase / decrease circuit 66 will be described. As will be described later, the signals at the terminals I and D do not both become 1 at the same time. Therefore, when the signal at terminal I is 0 and the signal at terminal D is 1, when the signal at terminal I is 1 and the signal at terminal D is 0, the signal at terminal I is 0 and the signal at terminal D is 0. The three cases will be described.

端子Iの信号が0で端子Dの信号が1の場合、について説明する。端子Aのデータwi,jが0以外の場合、x’00’検出器102の出力Zは1である。x’00’検出器102の出力Zが1であり、端子Dの信号が1なので、ANDゲート104の出力が1になる。ANDゲート104の出力が1になると、ORゲート105の出力が1になる。従って、加減算器106の端子mが1に、端子Bが1になるので、加減算器106は、端子Aのデータwi,jから1を引いた値を端子Sに出力する。 A case where the signal at the terminal I is 0 and the signal at the terminal D is 1 will be described. When the data w i, j at the terminal A is other than 0, the output Z of the x′00 ′ detector 102 is 1. Since the output Z of the x′00 ′ detector 102 is 1 and the signal at the terminal D is 1, the output of the AND gate 104 is 1. When the output of the AND gate 104 becomes 1, the output of the OR gate 105 becomes 1. Accordingly, since the terminal m of the adder / subtracter 106 becomes 1 and the terminal B becomes 1, the adder / subtractor 106 outputs a value obtained by subtracting 1 from the data w i, j of the terminal A to the terminal S.

端子Aのデータwi,jが0の場合、x’00’検出器102の出力Zは0である。x’00’検出器102の出力Zが0なので、ANDゲート103とANDゲート104の出力はともに0になり、ORゲート105の出力も0になる。従って、加減算器106の端子mが0、端子Bが0になるので、加減算器106は、端子Aのデータwi,jに0を足した値、即ち端子Aの入力値0を(そのまま)端子Sに出力する。 When the data w i, j at the terminal A is 0, the output Z of the x′00 ′ detector 102 is 0. Since the output Z of the x′00 ′ detector 102 is 0, the outputs of the AND gate 103 and the AND gate 104 are both 0, and the output of the OR gate 105 is also 0. Accordingly, since the terminal m of the adder / subtracter 106 is 0 and the terminal B is 0, the adder / subtracter 106 adds the value wi , j of the terminal A to 0, that is, the input value 0 of the terminal A (as it is). Output to terminal S.

端子Iの信号が1で端子Dの信号が0の場合、について説明する。端子Aのデータwi,jがx’FF’以外かつx’00’以外の場合、x’FF’検出器101の出力Fと、x’00’検出器102の出力Zはともに1になるので、ANDゲート103の出力が1になる。ANDゲート103の出力が1になるので、ORゲート105の出力が1になる。一方、端子Dの信号が0なので、ANDゲート104の出力は0になる。従って、加減算器106の端子mが0、端子Bが1になるので、加減算器106は、端子Aのデータwi,jに1を足した値を端子Sに出力する。
端子Aのデータwi,jがx’FF’またはx’00’の場合、x’FF’検出器101の出力Fまたはx’00’検出器102の出力Zが0になるので、ANDゲート103の出力は0になる。ANDゲート103の出力が0なので、ORゲート105の出力も0になる。従って、加減算器106の端子mが0、端子Bが0になるので、加減算器106は、端子Aのデータwi,jに0を足した値、即ち端子Aの入力値x’FF’または0を(そのまま)端子Sに出力する。
A case where the signal at the terminal I is 1 and the signal at the terminal D is 0 will be described. When the data w i, j at the terminal A is other than x'FF 'and other than x'00', the output F of the x'FF 'detector 101 and the output Z of the x'00' detector 102 are both 1. Therefore, the output of the AND gate 103 becomes 1. Since the output of the AND gate 103 becomes 1, the output of the OR gate 105 becomes 1. On the other hand, since the signal at the terminal D is 0, the output of the AND gate 104 becomes 0. Accordingly, since the terminal m of the adder / subtracter 106 is 0 and the terminal B is 1, the adder / subtractor 106 outputs a value obtained by adding 1 to the data w i, j of the terminal A to the terminal S.
When the data w i, j at the terminal A is x'FF 'or x'00', the output F of the x'FF 'detector 101 or the output Z of the x'00' detector 102 is 0, so that the AND gate The output of 103 becomes 0. Since the output of the AND gate 103 is 0, the output of the OR gate 105 is also 0. Accordingly, since the terminal m of the adder / subtracter 106 is 0 and the terminal B is 0, the adder / subtracter 106 is a value obtained by adding 0 to the data w i, j of the terminal A, that is, the input value x′FF ′ of the terminal A or 0 is output to the terminal S (as it is).

次に、端子Iの信号が0で端子Dの信号が0の場合、について説明する。端子Iの信号が0なので、ANDゲート103の出力は0になる。端子Dの信号が0なので、ANDゲート104の出力は0になる。ANDゲート103の出力と、ANDゲート104の出力がともに0なので、ORゲート105の出力は0になる。従って、加減算器106の端子mが0、端子Bが0になるので、加減算器106は、端子Aのデータwi,jに0を足した値、即ち端子Aの入力値wi,jを、そのまま端子Sに出力する。 Next, the case where the signal at the terminal I is 0 and the signal at the terminal D is 0 will be described. Since the signal at terminal I is 0, the output of AND gate 103 is 0. Since the signal at the terminal D is 0, the output of the AND gate 104 becomes 0. Since both the output of the AND gate 103 and the output of the AND gate 104 are 0, the output of the OR gate 105 becomes 0. Therefore, since the terminal m of the adder / subtractor 106 is 0 and the terminal B is 0, the adder / subtracter 106 adds the value obtained by adding 0 to the data w i, j of the terminal A, that is, the input value w i, j of the terminal A. , Output to the terminal S as it is.

ゼロ検出器68は、入力端子Inのデータが0か否かを検出する検出器であり、例えば、8入力NORゲートで構成されている。ゼロ検出器68は、メモリ65が出力したシナプス結合の重みデータwi,jを受け取る。ゼロ検出器68は、前記wi,jが0のときに、端子Zの信号を1にし、ANDゲート67と19ビットカウンター69に1を出力する。
ゼロ検出器68は、前記wi,jが0以外のときは、端子Zの信号を0にし、ANDゲート67と19ビットカウンター69に0を出力する。
The zero detector 68 is a detector that detects whether or not the data at the input terminal In is 0, and includes, for example, an 8-input NOR gate. The zero detector 68 receives the weight data w i, j of the synapse connection output from the memory 65. The zero detector 68 sets the signal at the terminal Z to 1 when w i, j is 0, and outputs 1 to the AND gate 67 and the 19-bit counter 69.
When the w i, j is other than 0, the zero detector 68 sets the signal at the terminal Z to 0 and outputs 0 to the AND gate 67 and the 19-bit counter 69.

19ビットカウンター69は、ラウンドの初めに図示しないリセット信号が入力されて、0に初期化される。19ビットカウンター69は、ラウンドの前半で、ゼロ検出器68が出力する信号Zeroを受け取る。19ビットカウンター69は、当該信号Zeroが1のときに、端子Qの値を1増やし、当該信号Zeroが0のときに、端子Qの値を変化させない。つまり、19ビットカウンター69は、ラウンドの前半で、シナプス結合の重みデータwi,jが0の個数を計数する。
19ビットカウンター69は、シナプス結合の重みデータwi,jが0の個数を計数し終えると、当該計数値を確率イネーブル信号発生器73へ出力する。
The 19-bit counter 69 is initialized to 0 by receiving a reset signal (not shown) at the beginning of the round. The 19-bit counter 69 receives the signal Zero output from the zero detector 68 in the first half of the round. The 19-bit counter 69 increases the value of the terminal Q by 1 when the signal Zero is 1, and does not change the value of the terminal Q when the signal Zero is 0. In other words, the 19-bit counter 69 counts the number of synaptic connection weight data w i, j being zero in the first half of the round.
When the 19-bit counter 69 finishes counting the number of synaptic connection weight data w i, j being 0, the 19-bit counter 69 outputs the count value to the probability enable signal generator 73.

疑似乱数発生器70は、端子84に入力されるクロック信号を、端子ckで受け取る。疑似乱数発生器70は、前記クロック信号が入力される度に新たな疑似乱数を発生し、当該疑似乱数を確率イネーブル信号発生器71と、確率イネーブル信号発生器72と、確率イネーブル信号発生器73とへ出力する。すなわち、疑似乱数発生器70は、メモリ65が新たなwi,jを出力する毎に、新しい疑似乱数を発生して出力する。 The pseudorandom number generator 70 receives the clock signal input to the terminal 84 at the terminal ck. The pseudo random number generator 70 generates a new pseudo random number every time the clock signal is input, and the pseudo random number is generated as a probability enable signal generator 71, a probability enable signal generator 72, and a probability enable signal generator 73. Output to. That is, the pseudo random number generator 70 generates and outputs a new pseudo random number every time the memory 65 outputs a new wi , j .

図10は、疑似乱数発生器70を構成する、8ビットガロアLFSR(Linear Feedback Shift Register)の回路図である。8ビットガロアLFSRは、0以外の初期値から出発すると、254回のck入力の立ち上がりで、1〜255の値が各1回だけ疑似乱数的に発生し、前記発生した値を端子Rnから出力する。8ビットガロアLFSRは、255回目のck入力の立ち上がりで、端子Rnの値を初期値に戻す。つまり、初期状態を0回目と数えると、255回目の値は初期値と同じになる。   FIG. 10 is a circuit diagram of an 8-bit Galois LFSR (Linear Feedback Shift Register) constituting the pseudo random number generator 70. When the 8-bit Galois LFSR starts from an initial value other than 0, the value of 1 to 255 is generated pseudo-randomly once every 254 times of rising of the ck input, and the generated value is output from the terminal Rn. To do. The 8-bit Galois LFSR returns the value of the terminal Rn to the initial value at the 255th rise of the ck input. That is, when the initial state is counted as the 0th time, the value at the 255th time is the same as the initial value.

図10において、疑似乱数発生器70は、リセット入力Rがアクティブになった時に、最上位ビット7を1とする。これは初期状態として、全てのビットが0になるのを避ける為であるので、ビット7以外の任意のビットを1にしても良い。
或いは、回路設計時の便宜を考えて、ビット7以外のフリップフロップにセット入力、又はリセット入力を付加し、リセット入力Rがアクティブになった時に、全てのビットが適当な固定値に初期化されるようにしても良い。
In FIG. 10, the pseudo random number generator 70 sets the most significant bit 7 to 1 when the reset input R becomes active. Since this is to prevent all bits from becoming 0 as an initial state, any bit other than bit 7 may be set to 1.
Alternatively, for convenience in circuit design, when a set input or reset input is added to a flip-flop other than bit 7 and the reset input R becomes active, all bits are initialized to appropriate fixed values. You may make it.

いずれにしても、初期値そのものは本発明の効果に何ら影響を与えない。ここで重要なことは、この疑似乱数発生器が255回のck入力で一巡することであるが、これについては後述する。この回路は疑似乱数を発生する目的で、従来から使われているものなので、詳細な説明は省略する。   In any case, the initial value itself does not affect the effect of the present invention. What is important here is that this pseudo-random number generator makes a round with 255 ck inputs, which will be described later. Since this circuit has been used for the purpose of generating pseudo-random numbers, a detailed description thereof will be omitted.

確率イネーブル信号発生器73は、カウンター69が出力した前記計数値と、疑似乱数発生器70が出力した前記疑似乱数と、図示しないレジスタ又は外部から供給されるγ(第3の所定の値)と、端子85のクロックと、を受け取る。確率イネーブル信号発生器73の回路構成については、後で説明する。
確率イネーブル信号発生器73は、前記計数値と前記γ(第3の所定の値)とを比較し、前記端子85がアクティブになった時に、前記比較結果に基づいて内部状態変数を1増加又は1減少する。確率イネーブル信号発生器73は、ラウンドの後半において、前記内部変数の値と前記疑似乱数とを比較し、その比較結果に基づいて、その第3の制御信号Enを1または0にする。確率イネーブル信号発生器73は、第3の制御信号EnをANDゲート67に出力する。
The probability enable signal generator 73 includes the count value output from the counter 69, the pseudo random number output from the pseudo random number generator 70, a register (not shown) or γ (third predetermined value) supplied from the outside. , And the clock of the terminal 85 are received. The circuit configuration of the probability enable signal generator 73 will be described later.
The probability enable signal generator 73 compares the count value with the γ (third predetermined value), and when the terminal 85 becomes active, increases the internal state variable by 1 based on the comparison result. Decrease by 1. The probability enable signal generator 73 compares the value of the internal variable with the pseudorandom number in the second half of the round, and sets the third control signal En to 1 or 0 based on the comparison result. The probability enable signal generator 73 outputs the third control signal En to the AND gate 67.

ANDゲート67は、ゼロ検出器68の出力信号Zeroと、確率イネーブル信号発生器73の第3の制御信号Enとを受け取る。ANDゲート67は、前記信号Zeroと前記第3の制御信号Enとの論理積Conを算出し、当該論理積Conを3入力セレクター63に出力する。
具体的には、ANDゲート67は、メモリ65が出力した前記wi,jが0の場合に、確率イネーブル信号発生器73が発生する確率で、Con信号として1を3入力セレクター63に出力する。これによって、3入力セレクター63は、前記確率で入力I1を選択し、前記I1を選択した場合は、固定値‘D0’をメモリ65へ出力する。つまり、メモリ65が出力した前記wi,jが0の場合は、前記確率で0以外の値にメモリ65の内容が更新され、新たなシナプス結合が生成される。
ANDゲート67の出力が0の場合は、3入力セレクター63は、1増減回路66が出力した値をメモリ65へ出力する。
The AND gate 67 receives the output signal Zero of the zero detector 68 and the third control signal En of the probability enable signal generator 73. The AND gate 67 calculates a logical product Con of the signal Zero and the third control signal En, and outputs the logical product Con to the 3-input selector 63.
Specifically, the AND gate 67 outputs 1 as a Con signal to the 3-input selector 63 with the probability that the probability enable signal generator 73 is generated when the w i, j output from the memory 65 is 0. . Accordingly, the three-input selector 63 selects the input I1 with the probability, and outputs the fixed value “D0” to the memory 65 when the I1 is selected. That is, when the w i, j output from the memory 65 is 0, the content of the memory 65 is updated to a value other than 0 with the probability, and a new synapse connection is generated.
When the output of the AND gate 67 is 0, the 3-input selector 63 outputs the value output from the 1 increase / decrease circuit 66 to the memory 65.

図11は、興奮性ニューロンの学習信号生成部の回路図である。学習信号生成部12は、L1層のニューロン20が興奮性ニューロンの場合は、図11の学習信号生成回路77Aで表される。学習信号生成回路77Aは、確率イネーブル信号発生器71と、確率イネーブル信号発生器72と、3入力ANDゲート74と、3入力ANDゲート75と、インバーター76と、を用いて構成されている。 FIG. 11 is a circuit diagram of a learning signal generation unit of excitatory neurons. When the L1 layer neuron 20 i is an excitatory neuron, the learning signal generation unit 12 is represented by a learning signal generation circuit 77A in FIG. The learning signal generation circuit 77A includes a probability enable signal generator 71, a probability enable signal generator 72, a 3-input AND gate 74, a 3-input AND gate 75, and an inverter 76.

確率イネーブル信号発生器71と、確率イネーブル信号発生器72と、確率イネーブル信号発生器73は、回路構成が同じであり、図12を用いて回路構成を説明する。
図12は、確率イネーブル信号発生回路の回路図である。図12において、確率イネーブル信号発生回路は、大小比較器201と、8ビットアップダウンカウンター202と、8ビット大小比較器203と、を用いて構成されている。
The probability enable signal generator 71, the probability enable signal generator 72, and the probability enable signal generator 73 have the same circuit configuration, and the circuit configuration will be described with reference to FIG.
FIG. 12 is a circuit diagram of the probability enable signal generation circuit. In FIG. 12, the probability enable signal generation circuit is configured using a magnitude comparator 201, an 8-bit up / down counter 202, and an 8-bit magnitude comparator 203.

大小比較器201は、端子Aのデータと端子Bのデータとを受け取る。大小比較器201は、端子Bのデータが端子Aのデータ以上の場合には、1をアップダウンカウンター202へ出力する。大小比較器201は、端子Bのデータが端子Aのデータよりも小さい場合には、0をアップダウンカウンター202へ出力する。   The large / small comparator 201 receives the data of the terminal A and the data of the terminal B. The size comparator 201 outputs 1 to the up / down counter 202 when the data at the terminal B is equal to or greater than the data at the terminal A. The magnitude comparator 201 outputs 0 to the up / down counter 202 when the data at the terminal B is smaller than the data at the terminal A.

ここで、大小比較器201のビット幅は比較対象と、そこに必要な分解能に応じて適当に決定する。例えば、図11の確率イネーブル信号発生器71では、端子Aに入力されるデータΣwi,jと、端子Bに入力されるデータα(第1の所定の値)とを比較する。Σwi,jは、メモリ65に格納されているシナプス結合の全ての重みデータwi,jの総和である。シナプス結合の重みwi,jが8ビットであり、重みデータの個数が256×7×256個なので、Σwi,jを正確に表すには27(=8+8+3+8)ビット必要である。 Here, the bit width of the large / small comparator 201 is appropriately determined according to the comparison target and the necessary resolution. For example, the probability enable signal generator 71 in FIG. 11 compares the data Σwi , j input to the terminal A with the data α (first predetermined value) input to the terminal B. Σw i, j is the sum of all the weight data w i, j of the synapse connections stored in the memory 65. Since the weight w i, j of the synapse connection is 8 bits and the number of weight data is 256 × 7 × 256, 27 (= 8 + 8 + 3 + 8) bits are required to accurately represent Σw i, j .

しかし、そこまでの分解能は不要なので、ここではΣwi,jの上位12ビットだけを使うことにし、確率イネーブル信号発生器71と72の大小比較器201を12ビット幅とする。従って、確率イネーブル信号発生器71に入力されるα(第1の所定の値)と確率イネーブル信号発生器72に入力されるβ(第2の所定の値)は、本来の値を右に15ビットシフト即ち、1/32,768にした値にする。 However, since the resolution up to that point is unnecessary, only the upper 12 bits of Σwi , j are used here, and the magnitude comparator 201 of the probability enable signal generators 71 and 72 is set to a 12-bit width. Therefore, α (first predetermined value) input to the probability enable signal generator 71 and β (second predetermined value) input to the probability enable signal generator 72 are 15 to the right of the original values. Bit shift, that is, 1 / 32,768.

一方、確率イネーブル信号発生器73では、シナプス結合の重みwi,jが0の個数をγ(第3の所定の値)と比較している。シナプス結合の重みデータの個数は256×7×256個なので、ここには本来19(=8+3+8)ビット必要であるが、ここも上位12ビットだけを使うことにし、大小比較器201を12ビット幅とする。従って、γ(第3の所定の値)は本来の値を右に7ビットシフト即ち、1/128にした値にする。 On the other hand, the probability enable signal generator 73 compares the number of synaptic connection weights w i, j of 0 with γ (a third predetermined value). Since the number of synaptic connection weight data is 256 × 7 × 256, 19 (= 8 + 3 + 8) bits are originally required here, but only the upper 12 bits are used here, and the magnitude comparator 201 is 12 bits wide. And Therefore, γ (third predetermined value) is a value obtained by shifting the original value to the right by 7 bits, ie, 1/128.

8ビットアップダウンカウンター202は、図示しないリセット信号を受け取ると、端子Qの値即ち、カウント値を適当な値、例えば半値のx’7F’にする。
アップダウンカウンター202は、大小比較器201の出力が1の場合は、クロック入力Neが1になると、端子Qの値を1増加させて、当該端子Qの値を出力データpとして大小比較器203に出力する。但し、アップダウンカウンター202の端子Qの値がx’FF’の場合は、それを超えては増加させない。
When the 8-bit up / down counter 202 receives a reset signal (not shown), the value of the terminal Q, that is, the count value is set to an appropriate value, for example, a half value x′7F ′.
When the output of the magnitude comparator 201 is 1, the up / down counter 202 increments the value of the terminal Q by 1 when the clock input Ne becomes 1, and the magnitude comparator 203 uses the value of the terminal Q as output data p. Output to. However, when the value of the terminal Q of the up / down counter 202 is x'FF ', it is not increased beyond that.

アップダウンカウンター202は、大小比較器201の出力が0の場合は、クロック入力Neが1になると、端子Qの値を1減少させ、当該端子Qの値を出力データpとして大小比較器203に出力する。但し、アップダウンカウンター202の端子Qの値が0の場合は、それよりも減少させない。   When the output of the magnitude comparator 201 is 0, the up / down counter 202 decreases the value of the terminal Q by 1 when the clock input Ne becomes 1, and outputs the value of the terminal Q to the magnitude comparator 203 as output data p. Output. However, when the value of the terminal Q of the up / down counter 202 is 0, the value is not further reduced.

大小比較器203は、アップダウンカウンター202が出力した前記データpと、疑似乱数発生器70が出力した擬似乱数Rnを受け取る。大小比較器203は、前記データpが前記疑似乱数Rn以上の場合は、1を出力信号Enとして出力する。大小比較器203は、前記データpが前記疑似乱数Rnよりも小さい場合には、0を出力信号Enとして出力する。   The magnitude comparator 203 receives the data p output from the up / down counter 202 and the pseudo random number Rn output from the pseudo random number generator 70. The magnitude comparator 203 outputs 1 as the output signal En when the data p is greater than or equal to the pseudo-random number Rn. The magnitude comparator 203 outputs 0 as the output signal En when the data p is smaller than the pseudo-random number Rn.

ここで、データpは0〜255の整数値を取り、疑似乱数Rnは1〜255の整数値を取り得る。従って、データpが一定の条件下で端子Rnのデータが変化すると、出力信号Enの値はp/255の確率で1になる。つまり、データpが増加すると、出力信号Enの値が1になる確率が増大し、データpが減少すると、出力信号Enの値が1になる確率が減少する。
以上で、確率イネーブル信号発生回路の説明を終了する。
Here, the data p can take an integer value of 0 to 255, and the pseudorandom number Rn can take an integer value of 1 to 255. Therefore, when the data at the terminal Rn changes under the condition that the data p is constant, the value of the output signal En becomes 1 with a probability of p / 255. That is, when the data p increases, the probability that the value of the output signal En becomes 1 increases, and when the data p decreases, the probability that the value of the output signal En becomes 1 decreases.
This is the end of the description of the probability enable signal generation circuit.

確率イネーブル信号発生器71は、ラウンドの後半の最後に、加算器27が出力するΣwi,jと、入力データα(第1の所定の値)を受け取る。そして、端子85の信号がアクティブになると、前記Σwi,jと前記α(第1の所定の値)との大小関係に応じて、確率イネーブル信号発生器71の確率変数pの値を更新する。
確率イネーブル信号発生器71は、ラウンドの後半で、疑似乱数発生器70が出力する疑似乱数を受け取り、前記確率変数pと比較し、前記確率変数pの値に応じた確率で、第1の制御信号Enを1にし、当該第1の制御信号EnをANDゲート74に出力する。
The probability enable signal generator 71 receives Σwi , j output from the adder 27 and the input data α (first predetermined value) at the end of the second half of the round. When the signal at the terminal 85 becomes active, the value of the random variable p of the probability enable signal generator 71 is updated according to the magnitude relationship between the Σwi , j and the α (first predetermined value). .
The probability enable signal generator 71 receives the pseudo random number output from the pseudo random number generator 70 in the second half of the round, compares it with the random variable p, and performs the first control with the probability according to the value of the random variable p. The signal En is set to 1, and the first control signal En is output to the AND gate 74.

確率イネーブル信号発生器72は、ラウンドの後半の最後に、加算器27が出力したΣwi,jと、入力データβ(第2の所定の値)を受け取る。そして、端子85の信号がアクティブになると、前記Σwi,jと前記β(第2の所定の値)との大小関係に応じて、確率イネーブル信号発生器72の確率変数pの値を更新する。
確率イネーブル信号発生器72は、ラウンドの後半で、疑似乱数発生器70が出力する疑似乱数を受け取り、前記確率変数pと比較し、前記確率変数pの値に応じた確率で、第2の制御信号Enを1にし、当該第2の制御信号EnをANDゲート75に出力する。
The probability enable signal generator 72 receives Σwi , j output from the adder 27 and input data β (second predetermined value) at the end of the second half of the round. When the signal at the terminal 85 becomes active, the value of the random variable p of the probability enable signal generator 72 is updated according to the magnitude relationship between the Σwi , j and the β (second predetermined value). .
The probability enable signal generator 72 receives the pseudo random number output from the pseudo random number generator 70 in the second half of the round, compares it with the random variable p, and performs the second control with a probability corresponding to the value of the random variable p. The signal En is set to 1, and the second control signal En is output to the AND gate 75.

確率イネーブル信号発生器73は、ラウンドの後半の最後に、カウンター69が出力した計数値と、入力データγ(第3の所定の値)を受け取る。そして、端子85の信号がアクティブになると、前記計数値と前記γ(第3の所定の値)との大小関係に応じて、確率イネーブル信号発生器73内の確率変数pの値を更新する。
確率イネーブル信号発生器73は、ラウンドの後半で、疑似乱数発生器70が出力する疑似乱数を受け取り、前記確率変数pと比較し、前記確率変数pの値に応じた確率で、第3の制御信号Enを1にし、当該第3の制御信号EnをANDゲート67に出力する。
The probability enable signal generator 73 receives the count value output from the counter 69 and the input data γ (third predetermined value) at the end of the second half of the round. When the signal at the terminal 85 becomes active, the value of the random variable p in the probability enable signal generator 73 is updated according to the magnitude relationship between the count value and the γ (third predetermined value).
The probability enable signal generator 73 receives the pseudo random number output from the pseudo random number generator 70 in the second half of the round, compares it with the random variable p, and performs the third control with the probability according to the value of the random variable p. The signal En is set to 1, and the third control signal En is output to the AND gate 67.

ANDゲート74は、確率イネーブル信号発生器71が出力した第1の制御信号Enと、メモリ24Aまたは24Bが出力したL1層のニューロンの出力sと、メモリ62が出力したL2層のニューロンの出力bとを受け取る。
ANDゲート74は、前記第1の制御信号Enと前記sと前記bの全てが1の場合に、Inc信号として1を1増減回路66へ出力する。それ以外の場合は、ANDゲート74は、Inc信号として0を1増減回路66へ出力する。
AND gate 74 has a first control signal En to the probability enable signal generator 71 outputs the output s i of neurons of the L1 layer which memory 24A or 24B is output, the output of the neuron of the L2 layer memory 62 is output b j .
The AND gate 74 outputs 1 to the 1 increase / decrease circuit 66 as an Inc signal when all of the first control signal En, the s i, and the b j are 1. In other cases, the AND gate 74 outputs 0 as the Inc signal to the 1 increment / decrement circuit 66.

インバーター76は、メモリ62が出力したL2層のニューロンの出力bを受け取る。インバーター76は、当該bを反転させた信号b´を生成する。インバーター76は、前記信号b´をANDゲート75へ出力する。 The inverter 76 receives the output b j of the L2 layer neuron output from the memory 62. The inverter 76 generates a signal b ′ j obtained by inverting the b j . The inverter 76 outputs the signal b ′ j to the AND gate 75.

ANDゲート75は、確率イネーブル信号発生器72が出力した第2の制御信号Enと、メモリ24Aまたは24Bが出力したL1層のニューロンの出力sと、インバーター76が出力した信号b´とを受け取る。
ANDゲート75は、前記第2の制御信号Enと前記sと前記b´の全てが1の場合に、Dec信号として1を1増減回路66へ出力する。それ以外の場合は、ANDゲート75は、Dec信号として0を1増減回路66へ出力する。
AND gate 75, a second control signal En outputted probability enable signal generator 72, the output s i of neurons of the L1 layer which memory 24A or 24B is output, the signal b'j the inverter 76 has output receive.
The AND gate 75 outputs 1 to the 1 increase / decrease circuit 66 as a Dec signal when all of the second control signal En, the s i, and the b ′ j are 1. In other cases, the AND gate 75 outputs 0 to the 1 increment / decrement circuit 66 as the Dec signal.

<実施例の学習則の説明>
図7はL1層のニューロン20が、興奮性ニューロンだけである場合の実施例である。本発明の技術を用いて、抑制性ニューロンも同様に実装でき、両者を混在できる。L1層のニューロン20に抑制性ニューロンがある場合については、後で説明する。
<Description of the learning rules of the embodiment>
FIG. 7 shows an example in which the neurons 20 i in the L1 layer are only excitable neurons. Using the technology of the present invention, inhibitory neurons can be implemented in the same way, and both can be mixed. The case where there is an inhibitory neuron in the L1 layer neuron 20 i will be described later.

本発明では、学習即ちシナプス結合の重みの変化に、ニューラルネットの学習則として有名なHebbのアルゴリズムを変形して用いる。Hebbのアルゴリズムでは、或るニューロンのシナプス結合に、前段のニューロンが発火したとの入力があり、且つそのニューロンが発火した場合に、そのシナプス結合の重みを増し、逆に前段のニューロンが発火したとの入力があったにも拘わらず、そのニューロンが発火しなかった場合は、そのシナプス結合の重みを減らす、という操作により学習を進める。   In the present invention, the Hebb algorithm, which is well-known as a learning rule for a neural network, is used by modifying the learning, that is, the change in the weight of the synapse connection. In the Hebb algorithm, there is an input that a neuron in the previous stage has fired at a synaptic connection of a certain neuron, and when that neuron fires, the weight of the synaptic connection is increased, and conversely, the neuron in the previous stage fires. If the neuron does not fire despite the input, the learning is advanced by the operation of reducing the weight of the synapse connection.

このアルゴリズムでは、学習初期にたまたま重みが増したシナプス結合の重みが増え易くなるので、初めに覚えさせたことの学習は速く進むが、次第に他のことの学習が困難になるという欠点がある。また、学習が進み過ぎると、初期に学習したことを過剰に学習してしまい、類似のことを同一と判定する汎化性能が劣化してしまうという欠点がある。
そこで、重みを増減する過程に確率を導入し、その確率を、一定領域内に存在するシナプス結合の重みの総和Wによって増減するようにする。
In this algorithm, the weight of the synapse connection that happens to have increased in the early stages of learning is likely to increase, so that the learning of the first learning proceeds faster, but the learning of other things gradually becomes difficult. In addition, if learning progresses too much, there is a disadvantage that the learning is excessively learned at the initial stage, and the generalization performance for determining that similar things are the same deteriorates.
Therefore, a probability is introduced into the process of increasing / decreasing the weight, and the probability is increased / decreased by the total sum W of the weights of the synapse connections existing in the certain region.

具体的には、図2(a)の1個のセル内に存在する全てのL2層のニューロン22の、全てのシナプス結合の重みの総和Wに、或る目標値α(第1の所定の値)とβ(第2の所定の値)を設定する。確率イネーブル信号発生器71は、総和Wがα(第1の所定の値)よりも小さい状態では、Hebbの学習則によってシナプス結合の重みが増える確率を、徐々に増大させる。一方、確率イネーブル信号発生器71は、総和Wがα(第1の所定の値)よりも大きい状態では、シナプス結合の重みが増える確率を徐々に減少させる。 Specifically, a certain target value α (first predetermined value) is added to the sum W of all synaptic connection weights of all the L2 layer neurons 22 j existing in one cell of FIG. Value) and β (second predetermined value). The probability enable signal generator 71 gradually increases the probability that the weight of the synapse connection is increased by the Hebb learning rule in a state where the total sum W is smaller than α (first predetermined value). On the other hand, the probability enable signal generator 71 gradually decreases the probability that the weight of the synapse connection increases when the total sum W is larger than α (first predetermined value).

また、確率イネーブル信号発生器72は、総和Wがβ(第2の所定の値)よりも小さい状態では、Hebbの学習則によってシナプス結合の重みが減る確率を徐々に減少させる。一方、総和Wがβ(第2の所定の値)よりも大きい状態では、Hebbの学習則によってシナプス結合の重みが減る確率を徐々に増大させる。   Further, the probability enable signal generator 72 gradually decreases the probability that the weight of the synaptic connection is reduced by the Hebb learning rule in a state where the total sum W is smaller than β (second predetermined value). On the other hand, in a state where the total sum W is larger than β (second predetermined value), the probability that the weight of the synapse connection is reduced by the Hebb learning rule is gradually increased.

つまり、確率イネーブル信号発生器71は、総和Wがα(第1の所定の値)よりも小さいと重みが増える確率を徐々に増大させ、確率イネーブル信号発生器72は、総和Wがβ(第2の所定の値)よりも大きいと重みが減る確率を徐々に増大させる。
図示されていない外部装置またはレジスタは、α(第1の所定の値)とβ(第2の所定の値)の値がα>βとなるように、確率イネーブル信号発生器71の端子Bにα(第1の所定の値)を出力し、確率イネーブル信号発生器72の端子Aにβ(第2の所定の値)を出力する。
これにより、総和Wはα(第1の所定の値)とβ(第2の所定の値)の間の適当な値の近傍で揺らぐ。この揺らぎが生体の脳を模倣する。
That is, the probability enable signal generator 71 gradually increases the probability that the weight increases when the sum W is smaller than α (first predetermined value), and the probability enable signal generator 72 has the sum W of β (first). If the value is larger than a predetermined value (2), the probability that the weight is reduced is gradually increased.
An external device or register not shown is connected to the terminal B of the probability enable signal generator 71 so that the values of α (first predetermined value) and β (second predetermined value) are α> β. α (first predetermined value) is output, and β (second predetermined value) is output to the terminal A of the probability enable signal generator 72.
Thereby, the total sum W fluctuates in the vicinity of an appropriate value between α (first predetermined value) and β (second predetermined value). This fluctuation mimics the living brain.

次に、本発明の自己組織化のアルゴリズムについて説明する。自己組織化は、それまでシナプス結合が存在しなかった箇所に新しくシナプス結合を作り、逆に、それまで存在していたシナプス結合を削除することで行われる。シナプス結合の新規作成には、学習と同様に確率を導入する。   Next, the self-organization algorithm of the present invention will be described. Self-organization is performed by creating a new synapse connection at a place where no synapse connection has existed until then and deleting the existing synapse connection. To create a new synapse connection, probability is introduced as in learning.

図2(a)の1個のセル内に在るL2層の全てのニューロンの、シナプス結合の重みが0の個数、即ち未接続のシナプス結合の個数に或る目標値γ(第3の所定の値)を設定し、未接続シナプス数がγ(第3の所定の値)よりも小さい状態では、新規接続を行う確率を徐々に減少させ、未接続シナプス数がγ(第3の所定の値)よりも大きい状態では、新規接続を行う確率を徐々に増大させる。   A target value γ (third predetermined value) is set to the number of synaptic connection weights of all the neurons in the L2 layer in one cell of FIG. 2A, that is, the number of unconnected synaptic connections. In the state where the number of unconnected synapses is smaller than γ (third predetermined value), the probability of newly connecting is gradually decreased, and the number of unconnected synapses is γ (third predetermined value). In a state larger than (value), the probability of making a new connection is gradually increased.

新規接続を作る場合は、適当な0以外の固定値‘D0’を重みメモリ65に書き込む。
一方、シナプス結合の削除は学習に任せる。つまり、ランダムに新規シナプス結合が生成されるが、一旦生成されても使われないと、その結合の重みが徐々に減少し、最後は消滅する。このアルゴリズムにより、情報処理に使われるシナプス結合が徐々に増え、情報処理に使われないシナプス結合は徐々に消滅して、有用なニューラルネットが自律的に構築される。
When creating a new connection, an appropriate fixed value 'D0' other than 0 is written in the weight memory 65.
On the other hand, deletion of synaptic connections is left to learning. That is, a new synapse connection is generated at random, but once generated, if not used, the weight of the connection gradually decreases and finally disappears. With this algorithm, synaptic connections used for information processing gradually increase, and synaptic connections not used for information processing gradually disappear, and useful neural networks are autonomously constructed.

<回路ユニット10の動作>
続いて、本実施例の回路ユニット10の動作を説明する。図7に示すニューラルネットの回路ユニット10の処理が始まる前に、図示しない任意の方法によって、L1層の入力データを予めメモリ21に書き込んでおく。また、端子83への入力信号を1にして、セレクター63が入力I2を選択するようにする。その後、図示しない所定の装置が、DBバスを通して、シナプス結合の重みデータの初期値をメモリ65に予め書き込む。
<Operation of Circuit Unit 10>
Subsequently, the operation of the circuit unit 10 of this embodiment will be described. Before the processing of the circuit unit 10 of the neural network shown in FIG. 7 starts, input data of the L1 layer is written in the memory 21 in advance by an arbitrary method not shown. Further, the input signal to the terminal 83 is set to 1 so that the selector 63 selects the input I2. Thereafter, a predetermined device (not shown) writes the initial value of the synapse connection weight data in the memory 65 in advance through the DB bus.

更に、図示しないリセット信号が入力されると、確率イネーブル信号発生器71、72、73内のアップダウンカウンター202は、例えばx’7F’に初期化される。8ビットカウンター20、23A、23B,61及び19ビットカウンター64は、そのカウント値を全て0にする。   Further, when a reset signal (not shown) is input, the up / down counter 202 in the probability enable signal generators 71, 72, 73 is initialized to, for example, x'7F '. The 8-bit counters 20, 23A, 23B, 61 and 19-bit counter 64 all set their count values to zero.

計算が始まると、カウンター20は、そのカウント値0をメモリ21に出力する。メモリ21は0番地から4ビットデータを読み出し、パルス列変調器22に出力する。パルス列変調器22は、当該4ビットデータを15ビットのデータ列に変換する。
この変換は、例えばメモリ21から送られて来るデータをアドレス情報として、図8に示すデータが書き込まれているメモリからデータを読み出すことで実現する。
When the calculation starts, the counter 20 outputs the count value 0 to the memory 21. The memory 21 reads 4-bit data from address 0 and outputs it to the pulse train modulator 22. The pulse train modulator 22 converts the 4-bit data into a 15-bit data train.
This conversion is realized by, for example, reading data from the memory in which the data shown in FIG. 8 is written using the data sent from the memory 21 as address information.

パルス列変調器22は、最初のラウンド0では、図8に示すデータのうちLSBだけをメモリ24Aに出力する。その動作とともに、パルス列変調器22は、当該データを出力端子P0から隣接セルへ出力する。   In the first round 0, the pulse train modulator 22 outputs only the LSB of the data shown in FIG. 8 to the memory 24A. Along with this operation, the pulse train modulator 22 outputs the data from the output terminal P0 to the adjacent cell.

隣接セルのメモリ24Aは、端子P0が出力したデータを受信する。回路は対称なので、それとともに、自セルのメモリ24Aは、入力端子P1〜P6を介して、隣接セルが出力したデータを受信する。メモリ24Aは、自セルのパルス列変調器22の出力データと、端子P1〜P6から入力されたデータとを7ビットのデータに変換し、当該7ビットデータをメモリ24Aの0番地に格納する。   The memory 24A of the adjacent cell receives the data output from the terminal P0. Since the circuit is symmetrical, the memory 24A of its own cell receives data output from the adjacent cell via the input terminals P1 to P6. The memory 24A converts the output data of the pulse train modulator 22 of its own cell and the data input from the terminals P1 to P6 into 7-bit data, and stores the 7-bit data at address 0 of the memory 24A.

その後、カウンター20とカウンター23Aのカウント値が255になるまで、以下の処理を繰り返す。
端子41に入力されるクロック信号が1になると、カウンター20はカウント値を1つ増加させ、当該カウント値をメモリ21に出力する。メモリ21は、当該カウント値の番地のデータを読み出し、当該データをパルス列変調器22に出力する。パルス列変調器22は、当該データを15ビットデータに変換し、そのLSBを端子P0へ出力する。
Thereafter, the following processing is repeated until the count values of the counter 20 and the counter 23A reach 255.
When the clock signal input to the terminal 41 becomes 1, the counter 20 increases the count value by one and outputs the count value to the memory 21. The memory 21 reads the data at the address of the count value and outputs the data to the pulse train modulator 22. The pulse train modulator 22 converts the data into 15-bit data, and outputs the LSB to the terminal P0.

そして、端子42Aに入力されるクロック信号が1になると、カウンター23Aはカウント値を1つ増加させ、当該カウント値をメモリ24Aに出力する。メモリ24Aは、自セルのパルス列変調器22からのデータと端子P1〜P6からのデータとを7ビットデータに変換し、当該7ビットデータをメモリ24Aの前記カウント値の番地に格納する。
このようにして、カウンター20とカウンター23Aのカウント値が255を超えて0に戻るまで処理を行うと、ラウンド0が終了する。
When the clock signal input to the terminal 42A becomes 1, the counter 23A increases the count value by 1, and outputs the count value to the memory 24A. The memory 24A converts the data from the pulse train modulator 22 of its own cell and the data from the terminals P1 to P6 into 7-bit data, and stores the 7-bit data at the address of the count value in the memory 24A.
In this way, when the processing is performed until the count values of the counter 20 and the counter 23A exceed 255 and return to 0, the round 0 ends.

次のラウンド1では、パルス列変調器22は、15ビットデータの中のビット位置1のデータをメモリ24Bに出力する。   In the next round 1, the pulse train modulator 22 outputs the data at bit position 1 in the 15-bit data to the memory 24B.

この様にして、データ格納器24Aと24Bは、交互にデータを受信し、ラウンド14でビット14の転送が終わると、メモリ21に入っているデータの転送処理が終わる。回路ユニット10の処理を継続する場合は、図示しない外部装置がメモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にし、ニューラルネットでの処理と並行して、前記外部装置が次のデータをメモリ21へ書き込む。
以上で、L1層のニューロン20の処理の説明を終了する。
In this manner, the data stores 24A and 24B alternately receive data, and when the transfer of bit 14 is completed in round 14, the transfer process of the data stored in the memory 21 is completed. When the processing of the circuit unit 10 is continued, an external device (not shown) writes new data in the memory 21 or the memory 21 is formed in a double buffer structure, and in parallel with the processing in the neural network, the external device Are written to the memory 21.
This is the end of the description of the processing of the neuron 20 i in the L1 layer.

次に、L2層のニューロン22の処理について説明する。ラウンド0で、メモリ24Aにデータが用意できると、次のラウンド1からL2層での処理が始まる。L2層では1ラウンドの期間4[ms]を2分割し、前半の2[ms]でL2層のニューロンの演算を実行し、後半の2[ms]で学習と自己組織化を行う。
ラウンドの前半では、ORゲート60は、端子80に入力される信号が0なので、メモリ24A又はメモリ24Bが出力したデータsを、ANDゲート26に出力する。
Next, processing of the L2 layer neuron 22 j will be described. When data is prepared in the memory 24A in round 0, processing in the L2 layer starts from the next round 1. In the L2 layer, the period 4 [ms] of one round is divided into two, the operation of the neurons in the L2 layer is executed in the first half 2 [ms], and learning and self-organization are performed in the second half 2 [ms].
In the first half of the round, since the signal input to the terminal 80 is 0, the OR gate 60 outputs the data s i output from the memory 24A or the memory 24B to the AND gate 26.

データsの添え字iは本来2つ必要である。1つはL1層のニューロンの個数が256なので0〜255の値をとり、もう1つは自セルと隣接セルの合計セル数が7なので0〜6の値をとる。しかし、それでは表記が煩雑になるので、ここでは1つにして0〜1,791の値をとることにする。 Two subscripts i of data s i are originally required. One has a value of 0 to 255 because the number of neurons in the L1 layer is 256, and the other takes a value of 0 to 6 because the total number of cells of its own cell and adjacent cells is 7. However, this makes the notation complicated, and here, it is assumed that the value is set to 0 to 1,791.

L2層のj番目のニューロンでは、Σ(s×wi,j)を計算する。ここでΣはiについての総和を表している。L2層では1ニューロン当たり最大1,792(=256×7)個のシナプス結合が形成されるので、1,792回の積和計算を行う。 In the j-th neuron of the L2 layer, Σ (s i × w i, j ) is calculated. Here, Σ represents the total sum for i. Since a maximum of 1,792 (= 256 × 7) synaptic connections are formed per neuron in the L2 layer, 1,792 product-sum calculations are performed.

また、L2層には256個のニューロンが存在する。従って、L2層のニューロン全体では、458,752(=1,792×256)回の積和計算を行うことになる。これらの計算を2[ms]で実行するので、加算器27等は229.4[MHz]で動作する。   In addition, there are 256 neurons in the L2 layer. Accordingly, in the entire L2 layer neuron, the product-sum calculation is performed 458,752 (= 1,792 × 256) times. Since these calculations are executed at 2 [ms], the adder 27 and the like operate at 229.4 [MHz].

ラウンド1の前半では、メモリ24Aはデータ読み出しモードになっている。端子42Aに32.768[MHz]のクロック信号が入力すると、カウンター23Aはカウント値をカウントアップし、当該カウント値をメモリ24Aに出力する。これによって、メモリ24Aは32.768[MHz]で7ビットのデータを読み出す。メモリ24Aは当該データを並直変換して7倍の229.4[Mbps]の1ビット信号sに変換する。 In the first half of round 1, the memory 24A is in a data read mode. When a clock signal of 32.768 [MHz] is input to the terminal 42A, the counter 23A counts up the count value and outputs the count value to the memory 24A. As a result, the memory 24A reads 7-bit data at 32.768 [MHz]. The memory 24A converts the data into parallel and converts it into a 1-bit signal s i of 229.4 [Mbps], which is seven times.

その処理と共に、端子84に229.4[MHz]でクロック信号が入力すると、19ビットカウンター64はカウント値をカウントアップし、当該カウント値をメモリ65に出力する。これによって、メモリ65は、シナプス結合の重みデータwi,jを229.4[MHz]で読み出し、ANDゲート26に出力する。 At the same time, when a clock signal is input to the terminal 84 at 229.4 [MHz], the 19-bit counter 64 counts up the count value and outputs the count value to the memory 65. As a result, the memory 65 reads the synapse connection weight data w i, j at 229.4 [MHz] and outputs it to the AND gate 26.

ANDゲート26は、前記sと前記wi,jを乗算して、乗算結果の8ビットの0又はwi,jを加算器27に出力する。加算器27は、L2層のj番目のニューロン毎に、Σ(s×wi,j)のiに対する総和を計算する。総和計算の最初に信号44が0になり、加算器27の出力から加算器27の片側入力に戻るデータが0になる。iについての1,792回の総和計算が終わると、加算器27は、当該総和計算結果を大小比較器29に出力する。
大小比較器29は、当該総和計算結果が閾値θよりも大きければ、1をメモリ62へ出力し、当該総和計算結果が閾値θ以下であれば 0をメモリ62へ出力する。
端子82に入力されるカウントアップ信号は128[kHz]であるので、カウンター61は128[kHz]でそのカウント値をカウントアップし、前記カウント値をメモリ62に出力する。従って、ラウンドの前半では、メモリ62は、前記大小比較器29が出力したデータを受け取り、順次、当該データを前記カウント値の番地に格納する。
The AND gate 26 multiplies the s i by the w i, j and outputs an 8-bit 0 or w i, j of the multiplication result to the adder 27. The adder 27 calculates the sum of Σ (s i × w i, j ) for i for each j-th neuron in the L2 layer. At the beginning of the sum calculation, the signal 44 becomes 0, and the data returned from the output of the adder 27 to the one-side input of the adder 27 becomes 0. When the 1,792 sum total calculation for i is completed, the adder 27 outputs the sum calculation result to the magnitude comparator 29.
The magnitude comparator 29 outputs 1 to the memory 62 if the sum calculation result is larger than the threshold θ, and outputs 0 to the memory 62 if the sum calculation result is equal to or less than the threshold θ.
Since the count-up signal input to the terminal 82 is 128 [kHz], the counter 61 counts up the count value at 128 [kHz] and outputs the count value to the memory 62. Therefore, in the first half of the round, the memory 62 receives the data output from the magnitude comparator 29 and sequentially stores the data at the address of the count value.

ラウンドの後半では、メモリ62は読み出しモードになる。カウンター61が128[kHz]でカウントアップするので、メモリ62は、前記格納したデータを128[kHz]で読み出し、当該読み出したデータを端子46に出力する。従って、L2層のニューロンの256個の出力データは、ラウンドの後半に128[kbps]で出力される。   In the second half of the round, the memory 62 is in a read mode. Since the counter 61 counts up at 128 [kHz], the memory 62 reads the stored data at 128 [kHz] and outputs the read data to the terminal 46. Therefore, 256 pieces of output data of the neurons in the L2 layer are output at 128 [kbps] in the second half of the round.

<自己組織化の処理の説明>
次に、ラウンド後半の2[ms]で行う自己組織化の処理(以下、自己組織化モードと称する)について説明する。ここで、自己組織化とは、シナプス結合の重みwi,jを0から固定値‘D0’に変更する処理と、シナプス結合の重みwi,jを0以外の値から0にすることである。シナプス結合の重みwi,jを、0以外の値から0にする過程は、後で説明する学習で行う。ここでは、シナプス結合の重みwi,jを、0から固定値‘D0’に変更する処理について説明する。
自己組織化モードにおいて、メモリ65はデータの読み出し動作と書き込み動作を同時に行う2ポートモードになっている。端子84から229.4[MHz]でクロック信号が入力されると、19ビットカウンター64は、そのカウント値をカウントアップする。19ビットカウンター64は、当該カウント値をメモリ65へ出力する。
メモリ65は、229.4[MHz]でシナプス結合の重みwi,jを1つ読み出し、当該重みwi,jをゼロ検出器68に出力する。
<Description of self-organization processing>
Next, self-organization processing (hereinafter referred to as self-organization mode) performed in 2 [ms] in the latter half of the round will be described. Here, self-organization means changing the synaptic connection weight w i, j from 0 to a fixed value 'D0' and changing the synaptic connection weight w i, j from a value other than 0 to 0. is there. The process of changing the weight w i, j of the synapse connection from a value other than 0 to 0 is performed by learning described later. Here, a process of changing the weight w i, j of the synapse connection from 0 to a fixed value “D0” will be described.
In the self-organizing mode, the memory 65 is in a 2-port mode in which data reading and writing operations are performed simultaneously. When a clock signal is input from the terminal 84 at 229.4 [MHz], the 19-bit counter 64 counts up the count value. The 19-bit counter 64 outputs the count value to the memory 65.
The memory 65 reads out one synaptic connection weight w i, j at 229.4 [MHz] and outputs the weight w i, j to the zero detector 68.

ゼロ検出器68は、受け取った重みwi,jが0かどうかを判別する。当該重みwi,jが0以外の場合は、ゼロ検出器68は、0(信号Zeroが0)をANDゲート67に出力するので、ANDゲート67は、0を3入力セレクター63に出力する。
3入力セレクター63は、S0が0になると、入力信号として入力I0を選択する。これによって、3入力セレクター63は、1増減回路66が出力したデータを、メモリ65に出力して、メモリ65に格納されたwi,jを変更するよう制御する。
The zero detector 68 determines whether or not the received weight w i, j is zero. When the weights w i, j are other than 0, the zero detector 68 outputs 0 (the signal Zero is 0) to the AND gate 67, so that the AND gate 67 outputs 0 to the 3-input selector 63.
When S0 becomes 0, the 3-input selector 63 selects the input I0 as an input signal. As a result, the 3-input selector 63 outputs the data output from the 1 increase / decrease circuit 66 to the memory 65 and controls to change w i, j stored in the memory 65.

前記重みwi,jが0の場合は、ゼロ検出器68は、1をANDゲート67に出力する。疑似乱数発生器70は、端子84に入力される229.4[MHz]のクロック信号を受け取る。疑似乱数発生器70は、シナプス結合の重みwi,j毎に新しい疑似乱数を発生し、当該擬似乱数を確率イネーブル信号発生器73に出力する。 When the weights w i, j are 0, the zero detector 68 outputs 1 to the AND gate 67. The pseudo random number generator 70 receives a 229.4 [MHz] clock signal input to the terminal 84. The pseudo-random number generator 70 generates a new pseudo-random number for each synaptic connection weight w i, j and outputs the pseudo-random number to the probability enable signal generator 73.

確率イネーブル信号発生器73は、内部のカウンター202の状態に応じた確率で第3の制御信号Enを1にし、当該信号をANDゲート67に出力する。第3の制御信号Enが0の場合、ANDゲート67は、出力信号Conを0とし、当該0を3入力セレクター63へ出力する。
3入力セレクター63は、当該0を受け取り、1増減回路66が出力したデータを選択する。既に説明した様に、1増減回路66は、その入力Aに0が入力された場合、その出力Yは常に0である。従って、この場合は、3入力セレクター63は、0をメモリ65に出力し、メモリ65は当該0を書き込むので、重みwi,jは0のままで変化しない。
The probability enable signal generator 73 sets the third control signal En to 1 with a probability corresponding to the state of the internal counter 202, and outputs the signal to the AND gate 67. When the third control signal En is 0, the AND gate 67 sets the output signal Con to 0 and outputs the 0 to the 3-input selector 63.
The 3-input selector 63 receives the 0 and selects the data output from the 1 increase / decrease circuit 66. As already described, when the input / output circuit 66 receives 0 as its input A, its output Y is always 0. Therefore, in this case, the 3-input selector 63 outputs 0 to the memory 65, and the memory 65 writes the 0, so that the weight w i, j remains 0 and does not change.

ゼロ検出器68が1を出力し、かつ確率イネーブル信号発生器73から出力された第3の制御信号Enが1の場合は、ANDゲート67は、出力Conを1とし、3入力セレクター63へ出力する。3入力セレクター63は、入力S0が1になるので入力I1を選択し、固定値‘D0’をメモリ65に出力する。メモリ65は受け取った当該固定値‘D0’を書き込む。   When the zero detector 68 outputs 1 and the third control signal En output from the probability enable signal generator 73 is 1, the AND gate 67 sets the output Con to 1 and outputs it to the 3-input selector 63. To do. The 3-input selector 63 selects the input I1 because the input S0 becomes 1, and outputs the fixed value “D0” to the memory 65. The memory 65 writes the received fixed value “D0”.

結局、ジナプス結合の重みwi,jが0の場合は、信号発生器73のアップダウンカウンター202の状態に応じた確率で、メモリ65に格納されている重みwi,jが固定値‘D0’に書き替えられる。これによって、重みwi,jの値が0から固定値‘D0’となり、新たなシナプス結合が形成されたことになる。 After all, if Jinapusu coupling weights w i, j is 0, with a probability corresponding to the state of the up-down counter 202 of signal generator 73, the weights w i that is stored in the memory 65, j is a fixed value 'D0 It is rewritten as'. As a result, the value of the weight w i, j is changed from 0 to the fixed value “D0”, and a new synapse connection is formed.

19ビットカウンター69は、自己組織化モードの最初に、図示しないリセット信号によりカウント値が0になる。19ビットカウンター69は、信号Zeroが1になる度にカウントアップする。従って、自己組織化モードが終わり、メモリ65から全てのデータを読み出し終えた時に、19ビットカウンター69は、メモリ65に格納されていた重みwi,jが0の個数を保持している。 The 19-bit counter 69 has a count value of 0 by a reset signal (not shown) at the beginning of the self-organization mode. The 19-bit counter 69 counts up whenever the signal Zero becomes 1. Therefore, when the self-organization mode ends and all data is read from the memory 65, the 19-bit counter 69 holds the number of weights w i, j stored in the memory 65 being zero.

19ビットカウンター69は、当該カウント値を確率イネーブル信号発生器73へ出力する。確率イネーブル信号発生器73は、19ビットカウンター69からカウント値を受け取り、当該カウント値を端子Aの信号とする。
図示しないレジスタ又は外部装置が、固定値γ(第3の所定の値)を確率イネーブル信号発生器73へ出力する。確率イネーブル信号発生器73は、レジスタ又は外部装置から固定値γ(第3の所定の値)を受け取り、当該固定値γ(第3の所定の値)を端子Bの信号とする。
The 19-bit counter 69 outputs the count value to the probability enable signal generator 73. The probability enable signal generator 73 receives the count value from the 19-bit counter 69 and uses the count value as a signal at the terminal A.
A register or an external device (not shown) outputs a fixed value γ (third predetermined value) to the probability enable signal generator 73. The probability enable signal generator 73 receives a fixed value γ (third predetermined value) from a register or an external device, and uses the fixed value γ (third predetermined value) as a signal at the terminal B.

自己組織化モードの終わりに、確率イネーブル信号発生器73は、図示しない外部装置が出力するデータ更新信号を端子85で受け取り、当該更新信号を入力Neとする。確率イネーブル信号発生器73内のアップダウンカウンター202は、当該入力Neを受け取る。   At the end of the self-organization mode, the probability enable signal generator 73 receives a data update signal output from an external device (not shown) at a terminal 85, and uses the update signal as an input Ne. The up / down counter 202 in the probability enable signal generator 73 receives the input Ne.

前記アップダウンカウンター202は、前記入力Neを受け取ったときに、大小比較器201から受け取る信号が1の場合は、端子Qの信号を1増加させて、当該端子Qの信号を大小比較器203に出力する。
一方、前記アップダウンカウンター202は、前記入力Neを受け取ったときに、大小比較器201から受け取る信号が0の場合は、端子Qの信号を1減少させて、当該端子Qの信号を大小比較器203に出力する。
以上で、ラウンドの後半で行う自己組織化モードについての説明を終了する。
When the up / down counter 202 receives the input Ne and the signal received from the large / small comparator 201 is 1, the up / down counter 202 increments the signal at the terminal Q by 1 and sends the signal at the terminal Q to the large / small comparator 203. Output.
On the other hand, if the up / down counter 202 receives the input Ne and the signal received from the magnitude comparator 201 is 0, the up / down counter 202 decrements the signal at the terminal Q by 1 and sends the signal at the terminal Q to the magnitude comparator. It outputs to 203.
This is the end of the description of the self-organization mode performed in the second half of the round.

<シナプス結合の重みの変更>
次に、ラウンドの後半で行う、シナプス結合の重みの変更(すなわちニューラルネットにおける学習)の処理(以下、学習モードと称する)について説明する。学習モードでは、L2層の256個のニューロンの出力bと、L1層の1,792個のニューロンの出力sとの関係を、網羅的に調べる。
<Change of synaptic connection weight>
Next, a process of changing synaptic connection weights (that is, learning in a neural network) (hereinafter referred to as a learning mode) performed in the second half of the round will be described. In the learning mode, the relationship between the outputs b j of 256 neurons in the L2 layer and the outputs s i of 1,792 neurons in the L1 layer is comprehensively examined.

学習モードでは、カウンター61は、図示されていない外部装置が出力する128[kHz]のカウントアップ信号を端子82で受け取る。カウンター61は、端子82から前記信号を受け取るたびに、カウント値を1増加させる。カウンター61は、当該カウント値をメモリ62に出力する。メモリ62は、カウンター61から当該カウント値を受け取り、カウント値の番地に格納されたL2層のニューロンの出力bを、128[kHz]で読み出す。 In the learning mode, the counter 61 receives a count-up signal of 128 [kHz] output from an external device (not shown) at the terminal 82. Each time the counter 61 receives the signal from the terminal 82, the counter 61 increments the count value by one. The counter 61 outputs the count value to the memory 62. The memory 62 receives the count value from the counter 61, and reads the output b j of the L2 layer neuron stored at the address of the count value at 128 [kHz].

メモリ62は、前記読み出した出力bを、ANDゲート74とインバーター76に出力する。
インバーター76は、前記出力bを受け取り、当該出力bを反転させb´とする。インバーター76は、当該b´をANDゲート75に出力する。
The memory 62 outputs the read output b j to the AND gate 74 and the inverter 76.
Inverter 76 receives the output b j, and b'j inverts the output b j. The inverter 76 outputs the b ′ j to the AND gate 75.

一方、メモリ24A又はメモリ24Bは、格納しているL1層の出力データを32.768[MHz]で読み出し、当該出力データを並直変換して7倍の229.4[Mbps]の1ビットデータsに変換する。メモリ24A又はメモリ24Bは、当該sをANDゲート74と75に出力する。 On the other hand, the memory 24A or the memory 24B reads the stored output data of the L1 layer at 32.768 [MHz], converts the output data into parallel, and seven times 229.4 [Mbps] 1-bit data. Convert to s i . Memory 24A or memory 24B outputs the s i and the 75 the AND gate 74.

端子84から疑似乱数発生器70のck入力に入力される信号は、メモリ24A又はメモリ24Bが出力するデータsのデータ転送レートと同じ229.4[MHz]である。従って、確率イネーブル信号発生器71は、データsがANDゲート74に入力される毎に、新たな第1の制御信号EnをANDゲート74へ出力する。また、確率イネーブル信号発生器72は、データsがANDゲート75に入力される毎に、新たな第2の制御信号EnをANDゲート75とへ出力する。 Signal input from the terminal 84 to the ck input of the pseudo-random number generator 70 is the same 229.4 [MHz] as the data transfer rate of the data s i of the memory 24A or the memory 24B is output. Therefore, the probability enable signal generator 71, each time the data s i are input to the AND gate 74, and outputs the new first control signal En to the AND gate 74. Also, the probability enable signal generator 72, each time the data s i are input to the AND gate 75 outputs the new second control signal En to the AND gate 75..

ここで、確率イネーブル信号発生器71と、確率イネーブル信号発生器72のそれぞれから出力される第1の制御信号と第2の制御信号とは、それぞれの信号発生器の内部にあるアップダウンカウンター202の状態に応じた確率で1になる。   Here, the first control signal and the second control signal output from each of the probability enable signal generator 71 and the probability enable signal generator 72 are an up / down counter 202 in each signal generator. It becomes 1 with the probability according to the state of.

ANDゲート74は、前記データsと、前記データbと、確率イネーブル信号発生器71が出力した第1の制御信号Enと、を受け取る。ANDゲート74は、前記データsが1で、前記データbが1で、前記第1の制御信号Enが1の場合に、Inc信号を1とし、当該Inc信号を1増減回路66へ出力する。 The AND gate 74 receives the data s i , the data b j, and the first control signal En output from the probability enable signal generator 71. When the data s i is 1, the data b j is 1, and the first control signal En is 1, the AND gate 74 sets the Inc signal to 1 and outputs the Inc signal to the 1 increase / decrease circuit 66. To do.

ANDゲート75は、前記データsと、前記データb´と、確率イネーブル信号発生器72が出力した第2の制御信号Enと、を受け取る。ANDゲート75は、前記データsが1で、前記データb´が1(つまり前記データbが0)で、前記第2の制御信号Enが1の場合に、Dec信号を1とし、当該Dec信号を1増減回路66へ出力する。
アンドゲート75が受け取るデータb´は、アンドゲート74が受け取るデータbの反転データなので、Inc信号とDec信号が同時に1になることはない。
The AND gate 75 receives the data s i , the data b ′ j, and the second control signal En output from the probability enable signal generator 72. The AND gate 75 sets the Dec signal to 1 when the data s i is 1, the data b ′ j is 1 (that is, the data b j is 0), and the second control signal En is 1. The Dec signal is output to the 1 increment / decrement circuit 66.
Since the data b ′ j received by the AND gate 75 is the inverted data of the data b j received by the AND gate 74, the Inc signal and the Dec signal never become 1 at the same time.

1増減回路66は、前記Inc信号と前記Dec信号を受け取る。前記Inc信号が1の場合、1増減回路66は、メモリ65から受け取ったwi,jの値を1増やし、当該1増やした値を3入力セレクター63へ出力する。
1増減回路66は、前記Dec信号が1の場合、メモリ65から受け取ったwi,jの値を1減らし、当該1減らした値を3入力セレクター63へ出力する。
The 1 increase / decrease circuit 66 receives the Inc signal and the Dec signal. When the Inc signal is 1, the 1 increment / decrement circuit 66 increments the value of wi, j received from the memory 65 by 1 and outputs the incremented value to the 3-input selector 63.
When the Dec signal is 1, the 1 increment / decrement circuit 66 decrements the value of wi, j received from the memory 65 by 1 and outputs the value decremented by 1 to the 3-input selector 63.

3入力セレクター63は、1増減回路66が出力した変更後のwi,jを受け取る。3入力セレクター63は、当該変更後のwi,jを選択し、メモリ65に出力する。メモリ65は、当該変更後のwi,jを書き込む。
このようにして、Hebbの学習則に確率を組み合わせて、シナプス結合の重みwi,jを変更することができる。これによって、回路ユニット10で、ニューラルネットの、いわゆる学習を実現できる。
The 3-input selector 63 receives the changed w i, j output from the 1 increase / decrease circuit 66. The 3-input selector 63 selects the changed w i, j and outputs it to the memory 65. The memory 65 writes w i, j after the change.
In this way, the weight w i, j of the synapse connection can be changed by combining the probability with the learning rule of Hebb. Thereby, the so-called learning of the neural network can be realized by the circuit unit 10.

ここで、学習モードでは、端子80に入力される信号が1なので、ORゲート60が出力する信号は常に1となり、ANDゲート26は常にメモリ65が出力したデータwi,jを出力する。
また、端子44に入力される信号は、学習モードに入った最初に一度だけ0になる。これによって、加算器27の出力は、学習モードに入った最初に、0に初期化される。
Here, in the learning mode, since the signal input to the terminal 80 is 1, the signal output from the OR gate 60 is always 1, and the AND gate 26 always outputs the data w i, j output from the memory 65.
The signal input to the terminal 44 becomes 0 only once at the beginning of the learning mode. As a result, the output of the adder 27 is initialized to 0 at the beginning of the learning mode.

学習モードの間に、加算器27はΣwi,jを算出する。ここで、Σは458,752個の全てのシナプス結合の重みについての総和を表している。加算器27は、当該総和計算結果を、確率型イネーブル信号発生器71の端子Aと、確率型イネーブル信号発生器72の端子Bに出力する。 During the learning mode, the adder 27 calculates Σw i, j . Here, Σ represents the sum total of the weights of all 458,752 synaptic connections. The adder 27 outputs the sum calculation result to the terminal A of the stochastic enable signal generator 71 and the terminal B of the stochastic enable signal generator 72.

確率イネーブル信号発生器71は、図示しないレジスタ又は外部装置からα(第1の所定の値)を受け取り、端子Bの信号とする。同様に、確率イネーブル信号発生器72は、図示しないレジスタ又は外部装置からβ(第2の所定の値)を受け取り、端子Aの信号とする。   The probability enable signal generator 71 receives α (first predetermined value) from a register (not shown) or an external device and uses it as a signal at the terminal B. Similarly, the probability enable signal generator 72 receives β (second predetermined value) from a register (not shown) or an external device and uses it as a signal at the terminal A.

学習モードの終わりに、図示しないレジスタ又は外部装置から、端子85にデータ更新信号を出力する。確率イネーブル信号発生器71及び確率イネーブル信号発生器72は、前記データ更新信号を受け取り、それぞれ端子Neの信号とする。
確率イネーブル信号発生器71及び確率イネーブル信号発生器72は、前記データ更新信号がアクティブになると、それぞれの内部にあるアップダウンカウンター202のカウント値を更新する。
At the end of the learning mode, a data update signal is output to the terminal 85 from a register (not shown) or an external device. The probability enable signal generator 71 and the probability enable signal generator 72 receive the data update signal and use it as a signal at the terminal Ne.
When the data update signal becomes active, the probability enable signal generator 71 and the probability enable signal generator 72 update the count value of the up / down counter 202 in each of them.

以上説明したように、図7に示す回路ユニット10では、ニューラルネットに自己組織化と、変形したHebb則を用いた学習を行わせることができる。   As described above, the circuit unit 10 shown in FIG. 7 can cause the neural network to perform self-organization and learning using the modified Hebb rule.

L2層の処理では、メモリ65からのデータ読み出し速度や、加算器27の演算速度が 229.4[MHz]と高速である。この動作速度を達成するのが難しい場合は、メモリ65を1個の8[bit]×256×7×256のメモリではなく、例えば7個の8[bit]×256×256のメモリに分割してもよい。その場合、加算器27等も7個並列にして、その動作速度を32.8[MHz]にすればよい。   In the processing of the L2 layer, the data reading speed from the memory 65 and the calculation speed of the adder 27 are as high as 229.4 [MHz]. If it is difficult to achieve this operation speed, the memory 65 is divided into, for example, seven 8 [bit] × 256 × 256 memories instead of one 8 [bit] × 256 × 7 × 256 memory. May be. In that case, seven adders 27 and the like may be arranged in parallel, and the operation speed may be set to 32.8 [MHz].

図10に示す8ビット疑似乱数発生器は、そのck入力にクロック信号が255回入力されると値が一巡する。一方、シナプス結合の重みメモリに格納されているデータの個数は、256×7×256である。従って、1回のラウンドが終わって次のラウンドに入ると、最初のシナプス結合のデータについて観測すると、疑似乱数の順番が7ずれる。   The 8-bit pseudo random number generator shown in FIG. 10 makes a round when the clock signal is inputted 255 times to its ck input. On the other hand, the number of data stored in the weight memory for synapse connection is 256 × 7 × 256. Accordingly, when one round is over and the next round is entered, the order of pseudorandom numbers is shifted by 7 when the first synaptic connection data is observed.

255と7の最小公倍数は255×7であるから、7ずつずれていくと元の値に戻るのに255ラウンドかかる。つまり、最初のシナプス結合のデータについて、そのシナプス結合に対応して発生する疑似乱数を観測すると、255ラウンドで1〜255の値が1回ずつ現れることになる。
同じことが全てのシナプス結合のデータについても言えるので、全てのシナプス結合の重みが同じ確率で増減されることになる。また、シナプス結合の重みが0の場合は、どのシナプス結合の重みも同じ確率で、新たな固定値‘D0’が設定される。
Since the least common multiple of 255 and 7 is 255 × 7, it takes 255 rounds to return to the original value when they are shifted by 7. That is, when the pseudo-random number generated corresponding to the synapse connection is observed for the first synapse connection data, the values of 1 to 255 appear once every 255 rounds.
The same can be said for all the synaptic connection data, so the weight of all the synaptic connections is increased or decreased with the same probability. When the synaptic connection weight is 0, a new fixed value “D0” is set with the same probability for every synaptic connection weight.

ここで、同じ確率というのは、確率イネーブル信号発生器内のアップダウンカウンター202の値が、もしも一定であれば等しい確率になるという意味である。実際には、ラウンド毎に、前記アップダウンカウンター202の値は、更新されていく。
本発明の実施例では、疑似乱数発生器に8ビットガロアLFSRを用いたが、本発明はこれに制限されるものではなく、フィボナッチLFSRなど、他の方式の疑似乱数発生器を用いることもできる。また、本発明の実施例では、疑似乱数発生器が8ビットなので、確率の分解能は1/255である。本発明はこれに制限されるものではなく、ガロアLFSRを例えば9ビットにして、確率の分解能を上げることもできる。
Here, the same probability means that if the value of the up / down counter 202 in the probability enable signal generator is constant, the probability is equal. Actually, the value of the up / down counter 202 is updated every round.
In the embodiment of the present invention, the 8-bit Galois LFSR is used as the pseudo-random number generator. However, the present invention is not limited to this, and other types of pseudo-random number generators such as Fibonacci LFSR can be used. . In the embodiment of the present invention, since the pseudo random number generator is 8 bits, the probability resolution is 1/255. The present invention is not limited to this, and the Galois LFSR can be set to 9 bits, for example, to increase the probability resolution.

但し、疑似乱数が一巡する回数と、シナプス結合の重みデータの個数との関係には注意が必要であり、全てのシナプス結合の重みデータが、同じ確率で変更されるようにすることが望ましい。   However, it is necessary to pay attention to the relationship between the number of rounds of the pseudorandom number and the number of synaptic connection weight data, and it is desirable that all synaptic connection weight data be changed with the same probability.

<実施例2の説明>
次に、L1層のニューロン20に抑制性ニューロンが存在する場合において、抑制性ニューロンの学習信号を生成する学習信号生成回路77Bについて説明する。
まず、L1層に抑制性ニューロンのみが存在する場合について、説明する。
<Description of Example 2>
Next, a learning signal generation circuit 77B that generates a learning signal for an inhibitory neuron when an inhibitory neuron exists in the neuron 20 i in the L1 layer will be described.
First, a case where only inhibitory neurons exist in the L1 layer will be described.

図13は、L1層のニューロン20が抑制性ニューロンのときの、学習信号生成部12の回路図である。
抑制性ニューロンの学習信号生成回路77Bは、確率イネーブル信号発生器71Bと、確率イネーブル信号発生器72Bと、ANDゲート74Bと、ANDゲート75Bと、インバーター76Bと、を用いて構成されている。
FIG. 13 is a circuit diagram of the learning signal generation unit 12 when the L1 layer neuron 20 i is an inhibitory neuron.
The inhibitory neuron learning signal generation circuit 77B includes a probability enable signal generator 71B, a probability enable signal generator 72B, an AND gate 74B, an AND gate 75B, and an inverter 76B.

L1層の抑制性ニューロン20が出力する信号を受け取るL2層のニューロンのシナプス結合では、L1層のニューロンが発火し、L2層のニューロンが発火しなかった場合に、そのシナプス結合の重みを増やす。
従って、図13に示すように、メモリ62が出力したデータbをANDゲート74Bに入力する前に、当該データbを反転させる。
In the synaptic connection of the L2 layer neuron that receives the signal output from the inhibitory neuron 20 i of the L1 layer, when the L1 layer neuron fires and the L2 layer neuron does not fire, the weight of the synaptic connection is increased. .
Therefore, as shown in FIG. 13, before the data b j output from the memory 62 is input to the AND gate 74B, the data b j is inverted.

インバーター76Bは、メモリ62が出力した信号bを受け取り、当該データbを反転させ、反転させたデータb´をANDゲート74Bへ出力する。 Inverter 76B receives the signal b j memory 62 has output inverts the data b j, and outputs the obtained by inverting the data b'j to AND gate 74B.

逆に、L1層の抑制性ニューロン20が発火し、L2層のニューロン22が発火した場合に、そのシナプス結合の重みを減らす。
従って、図13に示すように、メモリ62が出力したデータbを、ANDゲート75Bへそのまま入力する。
Conversely, when the inhibitory neuron 20 i in the L1 layer fires and the neuron 22 j in the L2 layer fires, the weight of the synapse connection is reduced.
Therefore, as shown in FIG. 13, the data b j output from the memory 62 is input to the AND gate 75B as it is.

興奮性ニューロンが出力した信号を受け取るシナプス結合の学習速度と、抑制性ニューロンが出力した信号を受け取るシナプス結合の学習速度とは異なるので、シナプス結合の重みwi,jが変化する確率を別にしなければならない。 Since the learning speed of the synaptic connection that receives the signal output from the excitatory neuron is different from the learning speed of the synaptic connection that receives the signal output from the inhibitory neuron , the probability that the weight w i, j of the synaptic connection changes is different. There must be.

従って、図13において、確率イネーブル信号発生器71Bは、図示しない外部回路またはレジスタから供給される値δを、端子Bで受け取る。確率イネーブル信号発生器71Bは、第1の制御信号に相当する信号EnをANDゲート74Bへ出力する。信号確率イネーブル信号発生器71Bの内部の処理は、確率イネーブル信号発生器71の内部の処理と同じなので、説明は省略する。   Accordingly, in FIG. 13, the probability enable signal generator 71 </ b> B receives the value δ supplied from an external circuit or register (not shown) at the terminal B. The probability enable signal generator 71B outputs a signal En corresponding to the first control signal to the AND gate 74B. Since the internal processing of the signal probability enable signal generator 71B is the same as the internal processing of the probability enable signal generator 71, description thereof is omitted.

同様に、確率イネーブル信号発生器72Bは、図示しない外部回路またはレジスタから供給される値εを、端子Bで受け取る。確率イネーブル信号発生器72Bは、第2の制御信号に相当する信号EnをANDゲート75Bへ出力する。信号確率イネーブル信号発生器72Bの内部の処理は、確率イネーブル信号発生器72の内部の処理と同じなので、説明は省略する。   Similarly, the probability enable signal generator 72B receives a value ε supplied from an external circuit or a register (not shown) at the terminal B. The probability enable signal generator 72B outputs a signal En corresponding to the second control signal to the AND gate 75B. Since the internal processing of the signal probability enable signal generator 72B is the same as the internal processing of the probability enable signal generator 72, description thereof is omitted.

ANDゲート74Bは、前記データb´と、前記データsと、信号確率イネーブル信号発生器71Bが出力した第1の制御信号に相当する信号Enを受け取る。ANDゲート74Bは、前記データb´と前記データsと前記第1の制御信号に相当する信号Enの論理積を算出する。ANDゲート74Bは、当該論理積を信号Incとして、1増減回路の端子Iに出力する。 The AND gate 74B receives the data b ′ j , the data s i, and the signal En corresponding to the first control signal output from the signal probability enable signal generator 71B. The AND gate 74B calculates a logical product of the data b ′ j , the data s i, and the signal En corresponding to the first control signal. The AND gate 74B outputs the logical product as a signal Inc to the terminal I of the 1 increase / decrease circuit.

ANDゲート75Bは、前記データbと、前記データsと、信号確率イネーブル信号発生器72Bが出力した第2の制御信号に相当する信号Enを受け取る。ANDゲート75Bは、前記データbと前記データsと前記信号発生器72Bが出力した第2の制御信号に相当する信号Enの論理積を算出する。ANDゲート75Bは、当該論理積を信号Decとして、1増減回路の端子Dに出力する。 The AND gate 75B receives the data b j , the data s i, and a signal En corresponding to the second control signal output from the signal probability enable signal generator 72B. The AND gate 75B calculates the logical product of the data b j , the data s i, and the signal En corresponding to the second control signal output from the signal generator 72B. The AND gate 75B outputs the logical product as a signal Dec to the terminal D of the 1 increase / decrease circuit.

以上により、L1層に抑制性ニューロンのみが存在していても、L1層のニューロン20からL2層へのニューロン22へのシナプス結合の重みを、変形したHebbの学習則を用いて変化させることができる。 As described above, even when only inhibitory neurons exist in the L1 layer, the weight of the synaptic connection from the neuron 20 i in the L1 layer to the neuron 22 j in the L2 layer is changed using the modified Hebb learning rule. be able to.

<実施例3の説明>
次に、L1層のニューロン20の中に、興奮性ニューロンと抑制性ニューロンの両方が含まれる場合について説明する。図14は、L1層のニューロン20の中に、興奮性ニューロンと抑制性ニューロンの両方が含まれる場合の、学習信号生成部12の回路図である。
<Description of Example 3>
Next, a case where both the excitatory neurons and the inhibitory neurons are included in the neurons 20 i in the L1 layer will be described. FIG. 14 is a circuit diagram of the learning signal generation unit 12 when both the excitatory neuron and the inhibitory neuron are included in the L1 layer neuron 20 i .

混在型学習信号生成回路78は、興奮性ニューロンの学習信号生成回路77Aと、抑制性ニューロンの学習信号生成回路77Bと、セレクター79Aと、セレクター79Bと、を用いて構成されている。  The mixed learning signal generation circuit 78 includes an excitatory neuron learning signal generation circuit 77A, an inhibitory neuron learning signal generation circuit 77B, a selector 79A, and a selector 79B.

セレクター79Aは、興奮性ニューロンの学習信号生成回路77AのANDゲート74の出力信号IncAと、抑制性ニューロンの学習信号生成回路77BのANDゲート74Bの出力信号IncBと、図示しない回路から供給される抑制性ニューロン識別信号INHとを受け取る。抑制性ニューロン識別信号INHは、L1層のニューロン20が興奮性の場合に0、抑制性の場合に1になる。
セレクター79Aは、前記識別信号INHが0の場合に、前記信号IncAをInc信号として1増減回路の端子Iに出力する。セレクター79Aは、前記識別信号INHが1の場合は、前記信号IncBをInc信号として1増減回路の端子Iに出力する。
The selector 79A includes an output signal IncA of the AND gate 74 of the excitatory neuron learning signal generation circuit 77A, an output signal IncB of the AND gate 74B of the inhibitory neuron learning signal generation circuit 77B, and a suppression supplied from a circuit (not shown). The sex neuron identification signal INH i is received. The inhibitory neuron identification signal INH i becomes 0 when the neuron 20 i in the L1 layer is excitable and becomes 1 when it is inhibitory.
Selector 79A, the identification signal INH i is in the case of 0, and outputs to the terminal I 1 decrease circuit the signal IncA as Inc signals. Selector 79A, the identification when the signal INH i is 1, and outputs the signal IncB to terminal I 1 decrease circuit as Inc signals.

セレクター79Bは、興奮性ニューロンの学習信号生成回路77AのANDゲート75の出力信号DecAと、抑制性ニューロンの学習信号生成回路77BのANDゲート75Bの出力信号DecBと、前記識別信号INHとを受け取る。
セレクター79Bは、前記識別信号INHが0の場合に、前記信号DecAをDec信号として1増減回路の端子Dに出力する。セレクター79Bは、前記識別信号INHが1の場合は、前記信号DecBをDec信号として1増減回路の端子Dに出力する。
The selector 79B receives the output signal DecA of the AND gate 75 of the excitatory neuron learning signal generation circuit 77A, the output signal DecB of the AND gate 75B of the learning signal generation circuit 77B of the inhibitory neuron, and the identification signal INH i. .
Selector 79B, the identification signal INH i is in the case of 0, and outputs to the terminal D of 1 increasing or decreasing circuit of the signal DecA as Dec signal. Selector 79B, the identification when the signal INH i is 1, and outputs to the terminal D of 1 increasing or decreasing circuit of the signal DecB as Dec signal.

以上により、L1層に興奮性ニューロンと抑制性ニューロンとが混在していても、L1層のニューロン20からL2層へのニューロン22へのシナプス結合の重みwi,jを、変形したHebbの学習則を用いて変化させることができる。 As described above, even if excitatory neurons and inhibitory neurons are mixed in the L1 layer, the weights w i, j of the synaptic connections from the neurons 20 i in the L1 layer to the neurons 22 j in the L2 layer are transformed into the Hebb Can be changed using the following learning rules.

本実施例では、L1層からL2層へパルス列によって情報が伝わる、所謂パルスニューラルネットについて説明したが、本発明はこれに制限されるものではなく、情報を複数ビットによって伝えるニューラルネットでも同様に適用できる。
本発明の実施例では、確率イネーブル信号発生回路内のコンパレータ201のビット幅を12としたが、本発明はこれに制限されるものではなく、必用な分解能に応じて任意のビット幅のコンパレータを使用できる。
In the present embodiment, a so-called pulse neural network in which information is transmitted from the L1 layer to the L2 layer by a pulse train has been described. However, the present invention is not limited to this, and the same applies to a neural network that transmits information by a plurality of bits. it can.
In the embodiment of the present invention, the bit width of the comparator 201 in the probability enable signal generation circuit is set to 12. However, the present invention is not limited to this, and a comparator having an arbitrary bit width can be used depending on the necessary resolution. Can be used.

本発明の実施例では、確率イネーブル信号発生回路内のアップダウンカウンター202の初期値をx’7F’としたが、本発明はこれに制限されるものではなく、任意の初期値を設定できる。
本発明の実施例では、1個のセルに含まれるニューロン数をL1層、L2層ともに256としたが、本発明はこれに制限されるものではなく、各層に1個以上のニューロンが存在すれば同様に適用できる。また、L1層とL2層のニューロン数が同数である必要はない。
In the embodiment of the present invention, the initial value of the up / down counter 202 in the probability enable signal generation circuit is x'7F ', but the present invention is not limited to this, and an arbitrary initial value can be set.
In the embodiment of the present invention, the number of neurons included in one cell is 256 in both the L1 layer and the L2 layer. However, the present invention is not limited to this, and one or more neurons exist in each layer. The same applies. Further, the number of neurons in the L1 layer and the L2 layer need not be the same.

本発明の実施例では、フィードフォーワード型のニューラルネットで説明したが、フィードバックループの有るニューラルネットでも同様に本発明を適用できる。
本発明の実施例では、ニューラルネットが2層の層構造を持つとしたが、本発明はこれに制限されるものではなく、3層以上に拡張しても、各層毎に適用できる。
In the embodiments of the present invention, the feedforward type neural network has been described. However, the present invention can be similarly applied to a neural network having a feedback loop.
In the embodiment of the present invention, the neural network has a two-layer structure, but the present invention is not limited to this, and can be applied to each layer even if it is expanded to three or more layers.

本発明の実施例では、仮想空間を考え、そこに正六角形を配置し、その中に各層のニューロンを分割して配置する構成で説明したが、本発明はこれに制限されるものではなく、 2次元以上の多次元空間を考え、そこに任意の多面体を配置し、その中に各層のニューロンを分割して配置する構成であっても、同様に適用できる。  In the embodiment of the present invention, a virtual space is considered, a regular hexagon is disposed therein, and a neuron of each layer is divided and disposed therein, but the present invention is not limited to this, The present invention can be similarly applied to a configuration in which a multi-dimensional space of two or more dimensions is considered, an arbitrary polyhedron is arranged therein, and neurons of each layer are divided and arranged therein.

本発明の実施例では、α(第1の所定の値)、β(第2の所定の値)、γ(第3の所定の値)(抑制性ニューロンが混在する場合はδ、εも含む)などの値は、図示されないレジスタ又は外部から供給される固定値として説明したが、 本発明はこれに制限されるものではなく、これらの値を、学習や自己組織化の時定数よりも大きな時定数で変動する変数としても良い。  In the embodiment of the present invention, α (first predetermined value), β (second predetermined value), γ (third predetermined value) (when inhibitory neurons are mixed, δ and ε are also included. However, the present invention is not limited to this, and these values are larger than the time constant for learning and self-organization. It may be a variable that varies with a time constant.

例えば、非常に遅い周波数(例えば0.0001Hz)でカウントダウンする12ビットカウンターを用意し、その出力をγとする。このカウンターの初期値をx‘FFF’に近い値として、殆ど全部のシナプス結合が直ぐに有効になる状態を作り出し、その後、γを少しずつ小さくしながら学習を進めることで、有効な信号伝達経路だけが残る自己組織化を早く進めることができる。  For example, a 12-bit counter that counts down at a very slow frequency (for example, 0.0001 Hz) is prepared, and its output is γ. By setting the initial value of this counter to a value close to x'FFF ', creating a state in which almost all synaptic connections become effective immediately, and then proceeding with learning while gradually decreasing γ, only the effective signal transmission path Can be quickly promoted.

<本発明の効果>
本発明の技術を使うと、大規模なニューラルネットを構築でき、それに自己組織化と変形したHebb則を用いた学習を、生体の神経回路網の動作速度と同等の速度で行わせることができる。自己組織化に於ける新規シナプス結合の生成は、確率によって制御される。この確率は未接続シナプス結合の数が或る設定値γよりも多い場合は増大し、未接続シナプス結合の数が或る設定値γよりも少ない場合は減少する。従って、未接続シナプス結合の数は、設定値γの周りで揺らぎ、生体の脳に近い構造が得られる。
<Effect of the present invention>
By using the technology of the present invention, a large-scale neural network can be constructed, and self-organization and learning using the modified Hebb rule can be performed at a speed equivalent to the operation speed of a biological neural network. . The generation of new synaptic connections in self-organization is controlled by probability. This probability increases when the number of unconnected synapse connections is greater than a certain set value γ, and decreases when the number of unconnected synapse connections is less than a certain set value γ. Accordingly, the number of unconnected synaptic connections fluctuates around the set value γ, and a structure close to the brain of a living body is obtained.

また、変形したHebb則を用いた学習では、一定領域(実施例では1個のセル)内のシナプス結合の重みの総和を計算し、この値を設定値α(第1の所定の値)及びβ(第2の所定の値)と比較し、その大小関係に応じてシナプス結合の重みを増やす確率や、減らす確率を増減するので、ニューラルネットの安定性が増し、更に過剰な学習による汎化能力の低下を防ぐ効果がある。  In the learning using the modified Hebb rule, the sum of the weights of synapse connections in a certain region (one cell in the embodiment) is calculated, and this value is set as a set value α (first predetermined value) and Compared with β (second predetermined value), the probability of increasing or decreasing the weight of the synapse connection is increased or decreased depending on the magnitude relationship, so the stability of the neural network increases and generalization by excessive learning It has the effect of preventing a decline in ability.

本発明の技術では、α(第1の所定の値)、β(第2の所定の値)、γ(抑制性ニューロンが混在する場合はδ、εも含む)などの値は、全てのセルに共通に供給される情報である。また、自己組織化や学習に必要な情報は、全て一定領域内(セル内)で完結している。つまり、セル間で情報をやりとりする必要が無いので、セルの数を増やしてニューラルネットの規模を増大しても、セル間の情報通信が問題になることは無い。  In the technique of the present invention, values such as α (first predetermined value), β (second predetermined value), and γ (including δ and ε when inhibitory neurons are mixed) are set for all cells. This information is supplied in common. Also, all the information necessary for self-organization and learning is completed within a certain area (in a cell). That is, since there is no need to exchange information between cells, even if the number of cells is increased and the scale of the neural network is increased, information communication between cells does not become a problem.

従って、図2(b)で示したセル間の配線と組み合わせることにより、原理的に幾らでも大きなニューラルネットを構築でき、そのニューラルネットに実際の神経回路網の動作速度と同等の速度で、自己組織化と学習をする機能を持たせることができる。  Accordingly, in principle, any number of large neural networks can be constructed by combining with the wiring between cells shown in FIG. 2B, and the neural network can be self-assembled at a speed equivalent to the operation speed of the actual neural network. It can have the function of organizing and learning.

以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 As mentioned above, although embodiment of this invention was explained in full detail with reference to drawings, the concrete structure is not restricted to this embodiment, The design etc. of the range which does not deviate from the summary of this invention are included.

CN セル(ポリトープ)
1 第1の出力部
2 入力部
3 重み記憶部
4 乗算部
5 加算部
6 比較決定部
7 第2の出力部
8 重み変更部
10 回路ユニット
11 疑似乱数生成部
12 学習信号生成部
13 重み増減部
14 シナプス作成指令部
15 切替部
20 8ビットカウンター
21 メモリ
22 パルス列変調回路
23A 8ビットカウンター
23B 8ビットカウンター
24A メモリ
24B メモリ
26 ANDゲート
27 加算器
28 ANDゲート
29 大小比較器
60 ORゲート
61 カウンター
62 メモリ
63 3入力セレクター
64 19ビットカウンター
65 メモリ
66 1増減回路
67 ANDゲート
68 検出器
69 19ビットカウンター
70 疑似乱数発生器
71 確率イネーブル信号発生器
72 確率イネーブル信号発生器
73 確率イネーブル信号発生器
74 ANDゲート
74B ANDゲート
75 ANDゲート
75B ANDゲート
76 インバーター
76B インバーター
77A 興奮性ニューロンの学習信号生成回路
77B 抑制性ニューロンの学習信号生成回路
78 混在型学習信号生成回路
79A セレクター
79B セレクター
101 x’FF’検出器
102 x’00’検出器
103 3入力ANDゲート
104 ANDゲート
105 ORゲート
106 8ビット加減算器
201 大小比較器
202 アップダウンカウンター
203 8ビット大小比較器
CN cell (polytope)
DESCRIPTION OF SYMBOLS 1 1st output part 2 Input part 3 Weight storage part 4 Multiplication part 5 Addition part 6 Comparison determination part 7 2nd output part 8 Weight change part 10 Circuit unit 11 Pseudorandom number generation part 12 Learning signal generation part 13 Weight increase / decrease part 14 synapse creation command unit 15 switching unit 20 8-bit counter 21 memory 22 pulse train modulation circuit 23A 8-bit counter 23B 8-bit counter 24A memory 24B memory 26 AND gate 27 adder 28 AND gate 29 large / small comparator 60 OR gate 61 counter 62 memory 63 3-input selector 64 19-bit counter 65 Memory 66 1 Increase / decrease circuit 67 AND gate 68 Detector 69 19-bit counter 70 Pseudo random number generator 71 Probability enable signal generator 72 Probability enable signal generator 73 Probability enable signal generator 74 AND gate 74B AND gate 75 AND gate 75B AND gate 76 Inverter 76B Inverter 77A Excitatory neuron learning signal generation circuit 77B Inhibitory neuron learning signal generation circuit 78 Mixed learning signal generation circuit 79A Selector 79B Selector 101 x'FF 'detector 102 x'00 'detector 103 3-input AND gate 104 AND gate 105 OR gate 106 8-bit adder / subtractor 201 magnitude comparator 202 up / down counter 203 8-bit magnitude comparator

Claims (8)

複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層の人工ニューロンとを結びつけるシナプス結合とを有し、前記複数の層のうち第1の層の人工ニューロンの出力データに前記シナプス結合の重み情報を乗じて第2の層の人工ニューロンに出力し、第2の人工ニューロンにおいて情報処理ニューラルネットを実現する電子回路であって、
二次元以上の仮想空間において、当該仮想空間に任意の数の任意のポリトープを配置し、前記ポリトープ毎に配置される回路ユニットと、互いに隣接するポリトープに配置された前記回路ユニット間で信号を伝送する配線と、を備え、
前記回路ユニットは、第1の層の人工ニューロンの出力データを同一回路ユニット内の第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンへ出力する第1の出力部と、自身のポリトープに配置された回路ユニットと、自身のポリトープに隣接するポリトープに配置された回路ユニットと、から前記第1の層の人工ニューロンの出力データを受け取る入力部と、第1の層の人工ニューロンから第2の層の人工ニューロンへ情報を伝達する割合を決めるためのシナプス結合の重み情報を保持する重み記憶部と、前記第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を算出する乗算部と、前記積の総和を算出する加算部と、前記積の総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する比較決定部と、前記第2の層の人工ニューロンの出力データを出力する第2の出力部と、前記第1の層の人工ニューロンの出力データと前記第2の層の人工ニューロンの出力データとに基づいて、前記シナプス結合の重み情報を変更する重み変更部と、を備えることを特徴とする電子回路。
A plurality of layers, a plurality of artificial neurons existing in the layer, and a synaptic connection that connects the artificial neuron to another layer of artificial neurons. An electronic circuit that multiplies the output data by the weight information of the synapse connection and outputs it to a second layer artificial neuron, and realizes an information processing neural network in the second artificial neuron,
In a virtual space of two or more dimensions, an arbitrary number of arbitrary polytopes are arranged in the virtual space, and signals are transmitted between the circuit units arranged for each polytope and the circuit units arranged in adjacent polytopes. Wiring to be provided, and
The circuit unit outputs the output data of the first layer artificial neuron to the second layer artificial neuron in the same circuit unit and the second layer artificial neuron arranged in the polytope adjacent to its own polytope. Output data of the artificial neuron of the first layer from a first output unit that outputs to a neuron, a circuit unit arranged in its own polytope, and a circuit unit arranged in a polytope adjacent to its own polytope A receiving input unit; a weight storage unit holding weight information of a synapse connection for determining a ratio of transmitting information from the first layer artificial neuron to the second layer artificial neuron; and the first layer artificial A multiplier for calculating a product of neuron output data and the synaptic connection weight information; an adder for calculating a sum of the products; and a sum of the products and a predetermined value Based on the comparison result with the threshold value, a comparison / determination unit that determines output data of the second layer of artificial neurons, a second output unit that outputs the output data of the second layer of artificial neurons, and the second layer An electronic circuit comprising: a weight changing unit that changes weight information of the synaptic connection based on output data of the artificial neuron of the first layer and output data of the artificial neuron of the second layer.
前記加算部は、前記ポリトープに配置された回路ユニット毎に前記第2の層の人工ニューロンの全てのシナプス結合の重み情報の総和を算出し、前記重み変更部は、前記重み情報の総和が第1の所定の値と第2の所定の値の範囲になるよう、前記回路ユニット毎に前記シナプス結合の重み情報を変更することを特徴とする請求項1に記載の電子回路。   The adding unit calculates a sum of weight information of all the synapse connections of the artificial neurons of the second layer for each circuit unit arranged in the polytope, and the weight changing unit calculates the sum of the weight information. 2. The electronic circuit according to claim 1, wherein weight information of the synapse connection is changed for each of the circuit units so as to be in a range between a predetermined value of 1 and a second predetermined value. 前記重み変更部は、前記シナプス結合毎に疑似乱数を生成する疑似乱数生成部と、前記重み情報の増減を決定する学習信号生成部と、を備え、
前記学習信号生成部は、前記シナプス結合の重み情報を増加させるか否かの判定基準となる第1の基準値を記憶する第1の記憶部と、前記シナプス結合の重み情報を減少させるか否かの判定基準となる第2の基準値を記憶する第2の記憶部と、前記重み情報の総和が、前記第1の所定の値以下のときに前記第1の基準値を増加させ、前記重み情報の総和が前記第1の所定の値よりも大きいときに前記第1の基準値を減少させる第1の基準値変更部と、前記重み情報の総和が前記第2の所定の値以上のときに前記第2の基準値を増加させ、前記重み情報の総和が前記第2の所定の値よりも小さいときに前記第2の基準値を減少させる第2の基準値変更部と、前記第1の基準値と前記疑似乱数の大小比較結果に基づいて前記シナプス結合の重みの増加を許可する第1の制御信号を生成する第1の大小比較部と、前記第2の基準値と前記疑似乱数の大小比較結果に基づいて前記シナプス結合の重みの減少を許可する第2の制御信号を生成する第2の大小比較部と、を備え
前記学習信号生成部は、前記第1の層の人工ニューロンの出力データと、前記第2の層の人工ニューロンの出力データと、前記第1の制御信号と、前記第2の制御信号と、に基づいて、前記シナプス結合の重み情報の増減を決定することを特徴とする請求項2に記載の電子回路。
The weight changing unit includes a pseudo random number generating unit that generates a pseudo random number for each synapse connection, and a learning signal generating unit that determines increase or decrease of the weight information,
The learning signal generation unit is configured to store a first reference value as a criterion for determining whether to increase the weight information of the synapse connection, and to decrease the weight information of the synapse connection. A second storage unit that stores a second reference value serving as a determination criterion, and when the sum of the weight information is equal to or less than the first predetermined value, the first reference value is increased, A first reference value changing unit that decreases the first reference value when a sum of weight information is larger than the first predetermined value; and a sum of the weight information is greater than or equal to the second predetermined value A second reference value changing unit that sometimes increases the second reference value and decreases the second reference value when the sum of the weight information is smaller than the second predetermined value; 1 based on the comparison result of the reference value of 1 and the pseudo-random number, the weight of the synapse connection A first magnitude comparison unit that generates a first control signal that permits addition, and a second magnitude that permits a decrease in weight of the synapse connection based on a magnitude comparison result between the second reference value and the pseudo-random number. A second magnitude comparator for generating a control signal, wherein the learning signal generator is output data of the first layer of artificial neurons, output data of the second layer of artificial neurons, and the first layer 3. The electronic circuit according to claim 2, wherein increase / decrease in weight information of the synapse connection is determined based on one control signal and the second control signal.
前記重み変更部は、前記シナプス結合の重み情報の値が0のとき、前記シナプス結合の重み情報の値を0から所定の値に変更することを特徴とする請求項1から請求項3のいずれかに記載の電子回路。   The weight change unit changes the value of the weight information of the synapse connection from 0 to a predetermined value when the value of the weight information of the synapse connection is zero. An electronic circuit according to the above. 前記重み変更部は、前記ポリトープに配置された回路ユニット毎に前記シナプス結合の重み情報のうちその値が0であるものの個数を計数し、該0の個数が所定の範囲に入るように、前記シナプス結合の重み情報の値を0から所定の値に変更することを特徴とする請求項4に記載の電子回路。   The weight changing unit counts the number of synaptic connection weight information whose value is 0 for each circuit unit arranged in the polytope, and the number of 0 falls within a predetermined range. 5. The electronic circuit according to claim 4, wherein the value of the synaptic connection weight information is changed from 0 to a predetermined value. 前記重み変更部は、前記シナプス結合の重み情報を0から所定の値に変更するか否かの判定基準となる第3の基準値を記憶する第3の記憶部と、疑似乱数を生成する疑似乱数生成部と、を備え、
前記重み変更部は、前記シナプス結合の重みが0の個数が、第3の所定の値以下のときに前記第3の基準値を増加させ、前記個数が前記第3の所定の値よりも大きいときに前記第3の基準値を減少させ、
前記疑似乱数発生部は、前記シナプス結合毎に疑似乱数を発生し、前記第3の基準値と前記疑似乱数の大小比較結果に基づいて前記シナプス結合の値を0から所定の値に変更することを許可する第3の制御信号を生成し、
前記重み変更部は、前記シナプス結合の重み情報が0のときに、前記第3の制御信号に基づいて、前記シナプス結合の重み情報を0から所定の値に変更することを特徴とする請求項5に記載の電子回路。
The weight changing unit includes a third storage unit that stores a third reference value serving as a determination criterion for determining whether or not to change the weight information of the synapse connection from 0 to a predetermined value, and a pseudo-random number that generates a pseudo-random number. A random number generator,
The weight changing unit increases the third reference value when the number of synaptic connection weights equal to or smaller than a third predetermined value, and the number is greater than the third predetermined value. Sometimes the third reference value is decreased,
The pseudo-random number generator generates a pseudo-random number for each synapse connection, and changes the value of the synapse connection from 0 to a predetermined value based on a comparison result between the third reference value and the pseudo-random number. A third control signal that permits
The weight changing unit, when the synaptic connection weight information is 0, changes the synaptic connection weight information from 0 to a predetermined value based on the third control signal. 5. An electronic circuit according to 5.
前記重み変更部は、擬似乱数を生成する擬似乱数生成部を備え、
前記重み変更部は、前記ポリトープに配置された回路ユニット毎に前記シナプス結合の重み情報のうちその値が0であるものの個数を計数し、前記0の個数と前記擬似乱数との比較に基づいて、前記シナプス結合の重み情報を0から所定の値に変更することを特徴とする請求項4に記載の電子回路。
The weight changing unit includes a pseudo random number generating unit that generates pseudo random numbers,
The weight changing unit counts the number of synaptic connection weight information whose value is 0 for each circuit unit arranged in the polytope, and based on a comparison between the number of 0 and the pseudorandom number 5. The electronic circuit according to claim 4, wherein the weight information of the synapse connection is changed from 0 to a predetermined value.
前記回路ユニットは、前記第2の層の人工ニューロンのシナプス結合において、前記第1の層の人工ニューロンの出力データの入力が不要なシナプス結合の重み情報を0にすることを特徴とする請求項1から請求項7に記載の電子回路。   The synaptic connection weight information which does not require input of output data of the first-layer artificial neuron is set to 0 in the synaptic connection of the second-layer artificial neuron. The electronic circuit according to claim 1.
JP2010113236A 2010-05-17 2010-05-17 Electronic circuit Expired - Fee Related JP5393589B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010113236A JP5393589B2 (en) 2010-05-17 2010-05-17 Electronic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010113236A JP5393589B2 (en) 2010-05-17 2010-05-17 Electronic circuit

Publications (2)

Publication Number Publication Date
JP2011242932A JP2011242932A (en) 2011-12-01
JP5393589B2 true JP5393589B2 (en) 2014-01-22

Family

ID=45409528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010113236A Expired - Fee Related JP5393589B2 (en) 2010-05-17 2010-05-17 Electronic circuit

Country Status (1)

Country Link
JP (1) JP5393589B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949737B2 (en) 2016-07-13 2021-03-16 Samsung Electronics Co., Ltd. Method for neural network and apparatus performing same method

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6367631B2 (en) * 2014-07-19 2018-08-01 学校法人早稲田大学 Artificial brain system
KR101806833B1 (en) 2015-12-31 2017-12-11 인천대학교 산학협력단 Method and apparatus of exploiting sparse activation in neural networks to reduce power consumption of synchronous integrated circuits
KR102039054B1 (en) * 2017-11-30 2019-10-31 한국생산기술연구원 Apparatus and Method for predicting of welding strength
SE544261C2 (en) 2020-06-16 2022-03-15 IntuiCell AB A computer-implemented or hardware-implemented method of entity identification, a computer program product and an apparatus for entity identification
WO2023163637A1 (en) * 2022-02-23 2023-08-31 IntuiCell AB A data processing system comprising a network, a method, and a computer program product
SE2250397A1 (en) * 2022-02-23 2023-08-24 IntuiCell AB A data processing system comprising a network, a method, and a computer program product

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282960A (en) * 1990-03-30 1991-12-13 Mamoru Tanaka Associative neural network
JP2951382B2 (en) * 1990-09-14 1999-09-20 株式会社エヌ・ティ・ティ・データ Feature extraction method and its implementation device
JP4750313B2 (en) * 2001-05-31 2011-08-17 キヤノン株式会社 Signal processing circuit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949737B2 (en) 2016-07-13 2021-03-16 Samsung Electronics Co., Ltd. Method for neural network and apparatus performing same method
US12008461B2 (en) 2016-07-13 2024-06-11 Samsung Electronics Co., Ltd. Method for determining neuron events based on cluster activations and apparatus performing same method
US12056597B2 (en) 2016-07-13 2024-08-06 Samsung Electronics Co., Ltd. Method for recurrent neural network parameter calculations for utilization of sparsity and apparatus performing same method

Also Published As

Publication number Publication date
JP2011242932A (en) 2011-12-01

Similar Documents

Publication Publication Date Title
JP5393589B2 (en) Electronic circuit
US11055609B2 (en) Single router shared by a plurality of chip structures
US11410017B2 (en) Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching
US9489622B2 (en) Event-driven universal neural network circuit
US20200034687A1 (en) Multi-compartment neurons with neural cores
US8874498B2 (en) Unsupervised, supervised, and reinforced learning via spiking computation
CN104641385B (en) Neural core circuit and the method preserving neural meta-attribute for multiple neurons
US8521673B2 (en) Parallel processing device and parallel processing method
JP5963315B2 (en) Methods, devices, and circuits for neuromorphic / synaptronic spiking neural networks with synaptic weights learned using simulation
CN107918794A (en) Neural network processor based on computing array
KR20150016089A (en) Neural network computing apparatus and system, and method thereof
JP2001188767A (en) Neutral network arithmetic unit and method
KR930020288A (en) Digital Neurons, Digital Neural Networks, and Digital Neural Network Learning Methods
JPH06203005A (en) High speed partitioned neural network and building-up method thereof
JP5436327B2 (en) Electronic circuit and wiring system
Yaakob et al. Double-layered hybrid neural network approach for solving mixed integer quadratic bilevel problems
CN110598835A (en) Automatic path-finding method for trolley based on Gaussian variation genetic algorithm optimization neural network
Nakayama et al. A simultaneous learning method for both activation functions and connection weights of multilayer neural networks
Kordík et al. Modified GMDH method and models quality evaluation by visualization
Huang et al. Evolution of Proxy Use in Neural Network Controllers for Crowd Modeling
Domen et al. Implementation of Massive Artificial Neural Networks with Field-programmable Gate Arrays
Lopez Aligué et al. A high order neural model
Teo et al. Software verification of redundancy in neuro-evolutionary robotics
Goyal ALGORITHM OF BACK PROPAGATION NETWORK IMPLEMENTATION IN VHDL
Snowdon Neural Algorithms that Exploit Optical Hardware Characteristics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131015

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees