JP5393589B2 - Electronic circuit - Google Patents
Electronic circuit Download PDFInfo
- 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
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]周期のパルス列に変換するニューロン210i(iは1から1,000の整数)が、1,000個存在する。L2層はデータ処理層であり、データを演算処理するニューロン212j(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.
各ニューロン210iからは1本の出力信号線211iが出ている。出力信号線211iは、ニューロン212jの個数が900なので最大900に分岐し、シナプス結合213i,jを介してニューロン212jと接続される。つまり、シナプス結合213i,jは、各ニューロン212jに最大1,000個存在する。各信号線211iで伝送されるデータai(L1層のi番目のニューロン210iの出力)は1ビット信号である。
Each
各シナプス結合213i,jは、例えば8ビット幅の重みデータwi,j(L1層のニューロン210iからの信号を受け取るL2層のj番目のニューロン212jのシナプス結合の重み)を保持しており、aiとの積ai×wi,jを計算する。各ニューロン212jでは、それぞれに付属するシナプス結合が計算した最大1,000個の積ai×wi,jの和を計算する。つまり、積ai×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
そして、総和の値が予め決められている閾値θを超えると、その出力信号線214jを1にし、閾値θを超えない場合は、その出力信号線214jを0にする。これら一連の演算は4[ms]以内で終了することが理想である。図15に例示するニューラルネットはニューロン数が1,900と少ないので、当該ニューラルネットをソフトウェアでシミュレートしても、或いは、当該ニューラルネットを電子回路で実装しても、4[ms]以内で動作させることは可能である。
When the total value exceeds a predetermined threshold value θ, the
以上の説明から明らかなように、L1層の1,000個のニューロン210iは、L2層の900個のニューロン212jと総当たりでシナプス結合を作成するので、シナプス結合213i,jの個数は最大90万に達し、配線211iが配線される箇所の総数も最大90万に達する。
As is clear from the above description, the 1,000
ここで、実際のニューラルネットでは使われる用途や、学習の結果などによって不要なシナプス結合が取り除かれるので、各ニューロン210iの出力がどのニューロン212jとシナプス結合213i,jを作るかは多様である。つまり、ニューロン210iが選択的にニューロン212jとシナプス結合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
人間の脳では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
一方、中規模(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層の或るニューロン210iから、L2層の或るニューロン212jにデータを送る場合を考えると、ニューロン212jのアドレス指定に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
第1の方法は、ニューロン210iの識別番号IDi(10[bit])をPayloadとして送信する方法である。ニューロン212jでは、受け取った識別番号IDiをインデックス情報として用いてシナプス結合の重みを格納するメモリにアクセスし、シナプス結合の重み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
平均して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としてai×ui,jを計算して送る方法である。aiが1ビットでui,jが8ビットの場合、ai×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.
生体の脳内では日常的に、ニューロンの軸索が伸長して、ターゲットとなるニューロンの樹状突起や細胞体との間に新しいシナプス結合を作ったり、情報伝達に使われなくなったシナプス結合が分解されて消滅したりしている。このように情報処理に有効な神経回路網が形成される過程を、「自己組織化」と呼ぶ。 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
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
これにより、隣接するポリトープに出力するデータを時分割多重化することができるので、隣接するポリトープへの出力信号線を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
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
請求項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
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
請求項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
請求項5に記載した発明によれば、所定の領域内でシナプス結合が形成される割合を自律的に調節することができるので、回路ユニットは、外部制御装置によらずにシナプス結合の数を調節することができる。
According to the invention described in
請求項に記載した発明によれば、所定の領域内でシナプス結合が形成される割合を、適当な確率条件の下で自律的に調節することができるので、回路ユニットは、外部制御装置によらずにシナプス結合の数を調節することができる。 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
請求項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.
以下、本発明の実施形態について、図面を参照して詳細に説明する。まず、本発明のニューラルネットの構成について説明する。図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層)のニューロン20i(iは0から4,863の整数)と、第2の層(L2層)のニューロン22j(jは0から4,863の整数)と、L1層のニューロン20iからL2層のニューロン22jへの配線21iと、L1層のニューロン20iの出力がL2層のニューロン22jに作るシナプス結合23i,jと、L2層のニューロン22jの出力端子24jを有する。
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
シナプス結合には、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層のニューロン20iを19個のまとまり(以下、セルと称する)に等分する。そうすると、1つのセルあたりに存在するL1層のニューロン20iは256個になる。各セルにおいて、ニューロン20iの番号iを振り直し、0から255の整数にする。同様にして、L2層のニューロン22jを19個のセルに等分する。そうすると、1つのセルあたりに存在するL2層のニューロン22jは256個になる。各セルにおいて、ニューロン22jの番号jを振り直し、0から255の整数にする。上記の操作によって、図1(a)のニューラルネットは、19個のセルCN(Nは0から18の整数)で分割される。
The
図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はニューロン200の出力、x1,tはニューロン201の出力、…,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
図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)個のニューロン20iと22jが入っていることになる。各セルには1個の出力端子P0と、6個の入力端子P1〜P6とがある(図2(b))。
Since there are 19 cells in FIG. 2A, there are 4,864 (= 256 × 19)
図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
The
第1の出力部1は、L1層のニューロン20iの入力データを保持する。ここで、当該入力データは、L1層のニューロン20iの発火頻度を表すデータである。例えば、入力データは4ビットで表され、その値が小さいほどL1層のニューロン20iの発火頻度が低く、その値が大きいほどL1層のニューロン20iの発火頻度が高いことを示す。
The
第1の出力部1は、L1層のニューロン20iの入力データを、当該発火頻度を表すデータから、発火状態の時系列を表すパルス列へ変換し、当該パルス列を順次出力する。例えば、発火状態の時系列を表すデータとは、1ビットデータが15個並んだ15ビットのデータで表され、当該1ビットデータがL1層のニューロン20iの発火状態を表す。即ち、1ビットデータが0ならばL1層のニューロン20iは発火しておらず、1ビットデータが1ならばL1層のニューロン20iが発火していることを示す。
The
第1の出力部1は、L1層のニューロン20iが順番に出力するように、各ニューロン20iの前記変換したデータから、1ビットずつ選択して入力部2へ出力する。例えば、第1の出力部1は、L1層のニューロン20iの前記15ビットデータの特定ビット位置の256個のデータを、順次入力部2へ出力する。そして、前記256個のデータを出力し終わると、前記15ビットデータの特定ビット位置を変更し、異なる256個のデータを入力部2へ出力する、という動作を繰り返す。
入力部2は、第1の出力部1が出力した変換後の出力データを受け取る。入力部2は、当該受け取った出力データを、乗算部4と重み変更部8へ出力する。また、入力部2は、前記出力データの代わりに、常に1のデータを乗算部4へ出力する。
The
The
重み記憶部3は、L1層のニューロン20iからL2層のニューロン22jへのシナプス結合の重み情報を保持する。重み記憶部3は、図示されていない外部装置からクロック信号を受け取る。重み記憶部3は、当該クロック信号からカウント値を算出し、当該カウント値の番地に保持されているシナプス結合の重み情報を読み出す。重み記憶部3は、当該シナプス結合の重み情報を、乗算部4と重み変更部8へ出力する。
The
また、重み記憶部3は、重み変更部8が出力する新たなシナプス結合の重み情報を受け取る。重み記憶部3は、前記カウント値の番地に保持されているシナプス結合の重み情報を、当該新たなシナプス結合の重み情報に変更する。
Further, the
乗算部4は、入力部2が出力した第1の出力部の出力データまたは常に1のデータと、重み記憶部3が出力したシナプス結合の重み情報と、を受け取る。乗算部4は、前記出力データまたは常に1のデータと、前記シナプス結合の重み情報とを乗じて、それらの積を算出する。乗算部4は、当該積を加算部5へ出力する。
The
加算部5は、乗算部4が出力した前記積を受け取る。加算部5は、入力部2が前記第1の出力部の出力データを出力した場合は、L2層のニューロン22j毎に当該積を加算して総和を算出し、当該総和を比較決定部6へ出力する。加算部5は、入力部2が常に1のデータを出力した場合は、当該積の全データについて加算して総和を算出し、当該総和を重み変更部8へ出力する。
比較決定部6は、加算部5が出力した前記総和と、図示されていない外部装置から入力された閾値θと、を受け取る。ここで、発火データを、L2層のニューロン22jが発火したことを示すデータ(例えば、1ビットデータで1)またはL2層のニューロン22jが発火しなかったことを示すデータ(例えば、1ビットデータで0)と定義する。
The
The
比較決定部6は、当該総和が閾値θよりも大きい場合は、L2層のニューロン22jが発火したことを示すデータとして1を、第2の出力部7へ出力する。一方、比較決定部6は、当該総和が閾値θ以下の場合、L2層のニューロン22jが発火しなかったことを示すデータとして0を、出力部7へ出力する。
When the sum is larger than the threshold θ, the
第2の出力部7は、比較決定部6が出力した発火データを受け取る。第2の出力部7は、当該発火データを保持する。第2の出力部7は、当該発火データをL2層のニューロン22jの出力データとして、図示されていない外部装置と重み変更部8へ出力する。
The
重み変更部8は、図示されていない外部装置から入力されたクロック信号と、入力部2が出力した出力データと、重み記憶部3が出力した重みデータと、加算部5が出力した総和と、第2の出力部7が出力した発火データと、を受け取る。
重み変更部8は、前記重みデータから重み記憶部3に記憶されている重みが0のデータ数を係数し、当該係数結果から、重みが0のデータを0以外に変更する確率を増減する。また、重み変更部8は、当該総和に応じて重みデータを増加する確率を増減する。また、重み変更部8は、当該総和に応じてその重みデータを減少する確率を増減する。
重み変更部8は、クロック信号を受信する毎に、当該重みデータが0の場合は、前記重みデータを0以外に変更する確率に従って新たなシナプス結合の重み情報を0以外にする。重み変更部8は、クロック信号を受信する毎に、当該重みデータが0以外の場合は、当該出力データと当該発火データと前記重みデータを増加する確率と前記重みデータを減少する確率と、に基づいて、新たなシナプス結合の重み情報を生成する。重み変更部8は、当該新たなシナプス結合の重み情報を重み記憶部3へ出力する。
The
The
Whenever the weight data is 0, the
重み変更部8は、重み記憶部3が現在保持しているシナプス結合の重み情報を当該新たなシナプス結合の重み情報に変更するよう制御することにより、重み記憶部3に保持されたシナプス結合の重み情報を変更することができる。即ち、ニューラルネットの学習と自己組織化ができる。
The
図6は、本発明の一実施形態による重み変更部8のブロック構成図である。重み変更部8は、疑似乱数生成部11と、学習信号生成部12と、重み増減部13と、シナプス作成指令部14と、切替部15と、を用いて構成されている。
FIG. 6 is a block diagram of the
疑似乱数生成部11は、図示されていない外部装置からクロック信号を受け取る。疑似乱数生成部11は、当該クロック信号に基づいて疑似乱数を生成し、当該疑似乱数を学習信号生成部12と、シナプス作成指令部14と、へ出力する。なお、疑似乱数生成部11が生成する疑似乱数は、予め決められた所定の範囲の数のうち、それぞれの数の出現頻度が同一確率でなくてもよい。
学習信号生成部12は、入力部2が出力した出力データと、加算部5が出力した総和と、第2の出力部7が出力した発火データと、疑似乱数生成部11が出力した疑似乱数と、を受け取る。
The
The learning
学習信号生成部12は、当該総和が第1の所定の範囲内にあるか否かを判定し、当該判定結果に応じてシナプス結合の重み増加用カウント値を変更する。学習信号生成部12は、当該増加用カウント値と当該疑似乱数との比較結果に基づいて、シナプス結合の重み増加可否信号を出力する。学習信号生成部12は、当該増加可否信号と、前記出力データと、前記発火データと、に基づいて、シナプス結合の重み増加指示信号を生成する。学習信号生成部12は、当該重み増加指示信号を重み増減部13へ出力する。
The learning
同様にして、学習信号生成部12は、当該総和が第2の所定の範囲内にあるか否かを判定し、当該判定結果に応じてシナプス結合の重み減少用カウント値を変更する。学習信号生成部12は、当該減少用カウント値と当該疑似乱数との比較結果に基づいて、シナプス結合の重み減少可否信号を出力する。学習信号生成部12は、当該減少可否信号と、前記出力データと、前記発火データと、に基づいて、シナプス結合の重み減少指示信号を生成する。学習信号生成部12は、当該重み減少指示信号を重み増減部13へ出力する。
Similarly, the learning
重み増減部13は、学習信号生成部12が出力した当該重み増加指示信号と、当該重み減少指示信号と、重み記憶部3が出力した当該重み情報と、を受け取る。重み増減部13は、当該重み増加指示信号と当該重み減少指示信号とに基づいて、当該重み情報から変更したシナプス結合の重み情報を生成する。
The weight increase /
具体的には、重み増減部13は、当該重み増加指示信号が1のときに、当該シナプス結合の重み情報を一定量増加し、変更したシナプス結合の重み情報とする。重み増減部13は、当該重み減少指示信号が1のときに、当該シナプス結合の重み情報を一定量減少し、変更したシナプス結合の重み情報とする。重み増減部13は、当該重み増加指示信号と当該重み減少指示信号がともに0のときは、当該シナプス結合の重み情報を、そのまま変更したシナプス結合の重み情報とする。重み増減部13は、前記変更したシナプス結合の重み情報を切替部15へ出力する。
Specifically, when the weight increase instruction signal is 1, the weight increasing / decreasing
シナプス作成指令部14は、前記重み記憶部3が出力したシナプス結合の重み情報と、前記疑似乱数生成部11が出力した疑似乱数と、を受け取る。シナプス作成指令部14は、当該シナプス結合の重み情報と、当該疑似乱数と、に基づいて、シナプス作成指示信号を生成する。
具体的には、シナプス作成指令部14は、シナプス結合の重み情報を検査し、その値が0のときにゼロ判定信号を1にする。シナプス作成指令部14は、前記ゼロ判定信号が1になる回数をカウントする。シナプス作成指令部14は、当該カウント値が第3の所定の範囲内にあるか否かを判定し、当該判定結果に応じて、シナプス作成指示用カウント値を変更する。シナプス作成指令部14、当該シナプス作成指示用カウント値と、当該疑似乱数との比較結果に基づいて、シナプス作成可否信号を出力する。
The synapse
Specifically, the synapse
シナプス作成指令部14は、当該作成可否信号と、前記ゼロ判定信号とに基づいて、シナプス作成指示信号を生成する。例えば、シナプス作成指令部14は、作成可否信号が1で、ゼロ判定信号が1のときに、シナプス作成指示信号を1とする。シナプス作成指令部14は、当該シナプス作成指示信号を切替部15へ出力する。
The synapse
切替部15は、重み増減部13が出力した変更したシナプス結合の重み情報と、シナプス作成指令部14が出力したシナプス作成指示信号と、を受け取る。切替部15は、当該シナプス作成指示信号に基づいて、所定の固定値データか、または前記変更したシナプス結合の重み情報か、のいずれかを選択する。
The switching
具体的には、例えば、シナプス作成指示信号が1のときは、切替部15は、前記所定の固定値データを選択する。一方、シナプス作成指示信号が0のときは、切替部15は、前記変更したシナプス結合の重み情報を選択する。切替部15は、前記選択した情報を重み記憶部3へ出力する。
Specifically, for example, when the synapse creation instruction signal is 1, the switching
図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
各層に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
回路ユニット10は、図7に示すように、第1の出力部1と、入力部2と、重み記憶部3と、乗算部4と、加算部5と、比較決定部6と、第2の出力部7と、重み変更部8と、を用いて構成されている。
第1の出力部1は、8ビットカウンター20と、メモリ21と、パルス列変調回路22と、を用いて構成されている。
As shown in FIG. 7, the
The
入力部2は、出力端子P0と、入力端子Pq(qは1から6の整数)と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、ORゲート60と、を用いて構成されている。
重み記憶部3は、19ビットカウンター64と、メモリ65と、を用いて構成されている。
The
The
乗算部4は、ANDゲート26を用いて構成されている。
加算部5は、加算器27と、ANDゲート28と、を用いて構成されている。
比較決定部6は、大小比較器29を用いて構成されている。
第2の出力部7は、8ビットカウンター61と、メモリ62と、を用いて構成されている。
The
The
The
The
重み変更部8は、疑似乱数生成部11と、学習信号生成部12と、重み増減部13と、シナプス作成指令部14と、切替部15と、を用いて構成されている。
疑似乱数生成部11は、疑似乱数発生器70を用いて構成されている。
重み増減部13は、1増減回路66を用いて構成されている。
シナプス作成指令部14は、ゼロ検出器68と、19ビットカウンター69と、確率イネーブル信号発生器73と、を用いて構成されている。
切替部15は、3入力セレクター63を用いて構成されている。
The
The pseudo
The weight increase /
The synapse
The switching
8ビットカウンター20は、入力端子41にカウントアップ信号が入力される毎に、カウント値である端子Qの値を1ずつ増加させ、当該カウント値をメモリ21に出力する。8ビットカウンター20は、前記カウント値を255までカウントアップすると、次のカウントアップ信号が入力されたときに、前記カウント値を0に戻す。
8ビットカウンター20は、図示しないリセット信号が入力されると、前記カウント値を0にする。
Each time the count-up signal is input to the
The 8-
メモリ21は、L1層のニューロンの入力データを記憶する。メモリ21に格納されているL1層のニューロンのデータは、0から15までの数である。L1層のニューロン数が256なので、メモリ21は1,024(=4[bit]×256)[bit]の容量を持つ。L1層のi番目のニューロンの入力データは、メモリ21のi番地に格納されている。
The
メモリ21は、8ビットカウンター20が出力したカウント値が示す番地の4ビットデータを読み出して、当該データをパルス列変調回路22に出力する。例えば、メモリ21は、入力されたカウント値が0のとき、メモリ21の0番地のデータを読み出して、当該データをパルス列変調回路22に出力する。
The
パルス列変調回路22は、メモリ21が出力した当該4ビットデータを15ビットのパルス列に変換する。パルス列変調回路22は、データ変換用メモリを備え、データ変換テーブルを前記データ変換用メモリに保持する。図8は、データ変換用メモリが保持するデータ変換テーブルを説明するための図である。図8において、4ビットデータとは、データ変換用メモリが受け取るデータである。15ビットデータとは、データ変換用メモリが出力するデータである。16種類の4ビットデータそれぞれに、15ビットデータが1つ対応付けられている。パルス列変調回路22は、図8に示すデータ変換テーブルを格納するデータ変換用メモリを用いて、メモリ21が出力した当該4ビットデータを、対応している15ビットデータに変換する。
The pulse
パルス列変調回路22は、前記15ビットのデータ列のLSB(Least Siginificant bit)だけを、自セルのメモリ24Aとメモリ24Bに出力する。前述の操作を、カウンター20のカウント値が255になるまで繰り返す。この一連の処理をラウンドと呼ぶ。
前述のように、パルス列変調回路22の出力データ速度が64[kbps]なので、カウンター20のカウントアップ信号は64[kHz]である。
The pulse
As described above, since the output data rate of the pulse
また、パルス列変調回路22は、出力端子P0を介して、隣接セルの入力端子Pqに、前記データを出力する。その後、隣接セルにおいて、当該データは、端子Pqからメモリ24Aと24Bに出力される。
In addition, the pulse
パルス列変調回路22は、ラウンド数が増える毎に、前記15ビットのデータ列から取り出すデータのビット位置を1ずつ増やし、当該ビット位置のデータxiを出力する。
ラウンド14で、パルス列変調回路22は、前記15ビットデータの最上位ビットのデータを、自セルのメモリ24Aとメモリ24Bと隣接セルの入力端子Pqに出力し終わると、メモリ21に入っているデータの転送処理が終わる。
Each time the number of rounds increases, the pulse
In
なお、本実施例では、前記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
The
Similarly, when writing data into the
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
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ビットデータsiにする。ここで、添え字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ビットデータsiにする。
メモリ24Aとメモリ24Bは、ラウンド毎にデータの書き込み動作と、読み出し動作を交互に行う。例えば、或るラウンドでメモリ24Aが書き込み動作を行っているときは、メモリ24Bは読み出し動作を行っている。メモリ24Aとメモリ24Bは、前記読み出したデータsiを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
Since the count value output from the
Similarly, when the 8-bit counter 23B reads data from the
The
The
ORゲート60は、メモリ24Aまたはメモリ24Bが出力した前記データsiと、端子80に制御信号と、を受け取る。ラウンドの前半では、端子80に0が入力されるので、ORゲート60は前記データsiを出力する。ラウンドの後半では、端子80に1が入力されるので、ORゲート60は常に1をANDゲート26に出力する。
The
19ビットカウンター64は、その端子84に229.4[MHz]のカウントアップ信号が入力される。カウンター64は、前記カウントアップ信号が入力されると、カウント値を1増加する。カウンター64は、前記カウント値をメモリ65に出力する。
カウンター64は、そのカウント値が458,751(=256×7×256−1)のときにカウントアップ信号が入力されると、カウント値を0に戻す。カウンター64は、図示しないリセット信号が入力されると、カウント値を0にする。
The 19-
When the count value is 458,751 (= 256 × 7 × 256-1) and the count value is input, the
メモリ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が出力した前記データsiと、それに対応するシナプス結合の重みデータwi,jとの積をとり、当該積yi,j(=si×wi,j)を加算器27に出力する。
ラウンドの後半では、ANDゲート26は、ORゲート60が出力した前記データ1と、シナプス結合の重みデータwi,jとの積をとり、当該積wi,jを加算器27に出力する。
The memory 65 receives the count value output from the
The AND
In the first half of the round, the AND
In the second half of the round, the AND
ラウンドの前半では、加算器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についての総和Yj(=Σyi,j)が計算される。加算器27は、総和Yjを計算し終わると、当該総和Yjを大小比較器29に出力する。
In the first half of the round, the
Since the AND
ラウンドの後半では、加算器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
Since the AND
大小比較器29は、加算器27が出力した前記総和Yjを受け取り、当該総和Yjを、図示しないレジスタまたは外部から端子43に供給される閾値データθと比較し、前記閾値データθよりも当該総和Yjが大きい場合に、1をメモリ62に出力する。大小比較器29は、それ以外の場合は、0をメモリ62に出力する。
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-
The 8-
メモリ62は、ラウンドの前半では、大小比較器29が出力した前記1ビットデータと、8ビットカウンター61が出力した前記カウント値とを受け取る。メモリ62は、前記1ビットデータを、前記カウント値の番地に格納する。これによって、メモリ62は、L2層のニューロンの出力(合計256[bit]=1[bit]×256)を記憶する。
メモリ62は、ラウンドの後半では、8ビットカウンター61が出力したカウント値を受け取る。メモリ62は、前記カウント値のアドレスから1ビットデータbjを読み出し、当該1ビットデータbjを端子46と学習信号生成部に出力する。
The
The
3入力セレクター63は、ニューラルネットでの計算処理を始める前に、端子83に入力される信号が1になると、入力I2を選択する。当該選択後、3入力セレクター63は、DBバスから供給されるデータを選択し、当該データをメモリ65に出力する。これによって、シナプス結合の重みデータの初期値を、図示しない外部回路がDBバスを通して、メモリ65に予め書き込むことができる。
The 3-
3入力セレクター63は、ANDゲート67が出力した信号Conを受け取る。また、3入力セレクター63は、1増減回路66の出力信号を受け取る。
3入力セレクター63は、前記信号Conが0のとき、入力I0を選択する。当該選択後、3入力セレクター63は、1増減回路66の出力であるシナプス結合の重みデータの更新値を選択し、当該更新値をメモリ65に出力する。
The 3-
The 3-
3入力セレクター63は、前記信号Conが1のとき、入力I1を選択する。当該選択後、3入力セレクター63は、図示しないレジスタ又は外部から供給される固定値’D0’を選択し、当該固定値’D0’をメモリ65に出力する。
The 3-
メモリ65は、19ビットカウンター64が出力したカウント値と、3入力セレクター63が出力したデータとを受け取る。
ラウンドの前半では、メモリ65は、当該カウント値のアドレスのデータを読み出して、当該データをANDゲート26とゼロ検出器68とに出力する。
The memory 65 receives the count value output from the 19-
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
ラウンドの後半では、メモリ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
続いて、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 /
When the input terminal D is 1, the 1 increase /
When both the input terminal I and the input terminal D are 0, the 1 increase /
図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 /
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 ′
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 ′
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
換言すると、3入力ANDゲート103は、端子Aのデータが0でも255でもなく、かつ端子Iの信号が1の場合に、1をORゲート105に出力する。
In other words, the 3-input AND
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
The OR
加減算器106は、ANDゲート104が出力した信号を、端子mの入力信号として受け取る。また、加減算器106は、端子Aのデータを、自身の端子Aの入力データとして受け取る。また、加減算器106は、ORゲート105が出力したデータを、端子Bの入力データとして受け取る。
The adder /
加減算器106は、端子mの入力信号が0の場合、端子Aのデータと端子Bのデータとを加算する。また、加減算器106は、端子mの入力信号が1の場合、端子Aのデータから端子Bのデータを減算する。加減算器106は、前記加算値または前記減算値を端子Sのデータとして出力する。前記端子Sのデータは、1増減回路66の端子Yの出力データになる。
The adder /
1増減回路66は、メモリ65が出力した前記シナプス結合の重みデータwi,jを、入力端子Aで受け取る。1増減回路66は、学習信号生成部12が出力した信号Incを入力端子Iで受け取る。また、1増減回路66は、学習信号生成部12が出力した信号Decを入力端子Dで受け取る。
The 1 increase /
次に、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 /
端子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 ′
端子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 ′
端子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 '
When the data w i, j at the terminal A is x'FF 'or x'00', the output F of the x'FF '
次に、端子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
ゼロ検出器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
When the w i, j is other than 0, the zero
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-
When the 19-bit counter 69 finishes counting the number of synaptic connection weight data w i, j being 0, the 19-
疑似乱数発生器70は、端子84に入力されるクロック信号を、端子ckで受け取る。疑似乱数発生器70は、前記クロック信号が入力される度に新たな疑似乱数を発生し、当該疑似乱数を確率イネーブル信号発生器71と、確率イネーブル信号発生器72と、確率イネーブル信号発生器73とへ出力する。すなわち、疑似乱数発生器70は、メモリ65が新たなwi,jを出力する毎に、新しい疑似乱数を発生して出力する。
The
図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
図10において、疑似乱数発生器70は、リセット入力Rがアクティブになった時に、最上位ビット7を1とする。これは初期状態として、全てのビットが0になるのを避ける為であるので、ビット7以外の任意のビットを1にしても良い。
或いは、回路設計時の便宜を考えて、ビット7以外のフリップフロップにセット入力、又はリセット入力を付加し、リセット入力Rがアクティブになった時に、全てのビットが適当な固定値に初期化されるようにしても良い。
In FIG. 10, the pseudo
Alternatively, for convenience in circuit design, when a set input or reset input is added to a flip-flop other than
いずれにしても、初期値そのものは本発明の効果に何ら影響を与えない。ここで重要なことは、この疑似乱数発生器が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
The probability enable
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
Specifically, the AND
When the output of the AND
図11は、興奮性ニューロンの学習信号生成部の回路図である。学習信号生成部12は、L1層のニューロン20iが興奮性ニューロンの場合は、図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
確率イネーブル信号発生器71と、確率イネーブル信号発生器72と、確率イネーブル信号発生器73は、回路構成が同じであり、図12を用いて回路構成を説明する。
図12は、確率イネーブル信号発生回路の回路図である。図12において、確率イネーブル信号発生回路は、大小比較器201と、8ビットアップダウンカウンター202と、8ビット大小比較器203と、を用いて構成されている。
The probability enable signal generator 71, the probability enable
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
大小比較器201は、端子Aのデータと端子Bのデータとを受け取る。大小比較器201は、端子Bのデータが端子Aのデータ以上の場合には、1をアップダウンカウンター202へ出力する。大小比較器201は、端子Bのデータが端子Aのデータよりも小さい場合には、0をアップダウンカウンター202へ出力する。
The large /
ここで、大小比較器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 /
しかし、そこまでの分解能は不要なので、ここではΣ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
一方、確率イネーブル信号発生器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
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
When the output of the
アップダウンカウンター202は、大小比較器201の出力が0の場合は、クロック入力Neが1になると、端子Qの値を1減少させ、当該端子Qの値を出力データpとして大小比較器203に出力する。但し、アップダウンカウンター202の端子Qの値が0の場合は、それよりも減少させない。
When the output of the
大小比較器203は、アップダウンカウンター202が出力した前記データpと、疑似乱数発生器70が出力した擬似乱数Rnを受け取る。大小比較器203は、前記データpが前記疑似乱数Rn以上の場合は、1を出力信号Enとして出力する。大小比較器203は、前記データpが前記疑似乱数Rnよりも小さい場合には、0を出力信号Enとして出力する。
The
ここで、データ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
The probability enable signal generator 71 receives the pseudo random number output from the pseudo
確率イネーブル信号発生器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
The probability enable
確率イネーブル信号発生器73は、ラウンドの後半の最後に、カウンター69が出力した計数値と、入力データγ(第3の所定の値)を受け取る。そして、端子85の信号がアクティブになると、前記計数値と前記γ(第3の所定の値)との大小関係に応じて、確率イネーブル信号発生器73内の確率変数pの値を更新する。
確率イネーブル信号発生器73は、ラウンドの後半で、疑似乱数発生器70が出力する疑似乱数を受け取り、前記確率変数pと比較し、前記確率変数pの値に応じた確率で、第3の制御信号Enを1にし、当該第3の制御信号EnをANDゲート67に出力する。
The probability enable
The probability enable
ANDゲート74は、確率イネーブル信号発生器71が出力した第1の制御信号Enと、メモリ24Aまたは24Bが出力したL1層のニューロンの出力siと、メモリ62が出力したL2層のニューロンの出力bjとを受け取る。
ANDゲート74は、前記第1の制御信号Enと前記siと前記bjの全てが1の場合に、Inc信号として1を1増減回路66へ出力する。それ以外の場合は、ANDゲート74は、Inc信号として0を1増減回路66へ出力する。
AND
The AND
インバーター76は、メモリ62が出力したL2層のニューロンの出力bjを受け取る。インバーター76は、当該bjを反転させた信号b´jを生成する。インバーター76は、前記信号b´jをANDゲート75へ出力する。
The
ANDゲート75は、確率イネーブル信号発生器72が出力した第2の制御信号Enと、メモリ24Aまたは24Bが出力したL1層のニューロンの出力siと、インバーター76が出力した信号b´jとを受け取る。
ANDゲート75は、前記第2の制御信号Enと前記siと前記b´jの全てが1の場合に、Dec信号として1を1増減回路66へ出力する。それ以外の場合は、ANDゲート75は、Dec信号として0を1増減回路66へ出力する。
AND
The AND
<実施例の学習則の説明>
図7はL1層のニューロン20iが、興奮性ニューロンだけである場合の実施例である。本発明の技術を用いて、抑制性ニューロンも同様に実装でき、両者を混在できる。L1層のニューロン20iに抑制性ニューロンがある場合については、後で説明する。
<Description of the learning rules of the embodiment>
FIG. 7 shows an example in which the
本発明では、学習即ちシナプス結合の重みの変化に、ニューラルネットの学習則として有名な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層のニューロン22jの、全てのシナプス結合の重みの総和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
また、確率イネーブル信号発生器72は、総和Wがβ(第2の所定の値)よりも小さい状態では、Hebbの学習則によってシナプス結合の重みが減る確率を徐々に減少させる。一方、総和Wがβ(第2の所定の値)よりも大きい状態では、Hebbの学習則によってシナプス結合の重みが減る確率を徐々に増大させる。
Further, the probability enable
つまり、確率イネーブル信号発生器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
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
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
Subsequently, the operation of the
更に、図示しないリセット信号が入力されると、確率イネーブル信号発生器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
計算が始まると、カウンター20は、そのカウント値0をメモリ21に出力する。メモリ21は0番地から4ビットデータを読み出し、パルス列変調器22に出力する。パルス列変調器22は、当該4ビットデータを15ビットのデータ列に変換する。
この変換は、例えばメモリ21から送られて来るデータをアドレス情報として、図8に示すデータが書き込まれているメモリからデータを読み出すことで実現する。
When the calculation starts, the
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
パルス列変調器22は、最初のラウンド0では、図8に示すデータのうちLSBだけをメモリ24Aに出力する。その動作とともに、パルス列変調器22は、当該データを出力端子P0から隣接セルへ出力する。
In the
隣接セルのメモリ24Aは、端子P0が出力したデータを受信する。回路は対称なので、それとともに、自セルのメモリ24Aは、入力端子P1〜P6を介して、隣接セルが出力したデータを受信する。メモリ24Aは、自セルのパルス列変調器22の出力データと、端子P1〜P6から入力されたデータとを7ビットのデータに変換し、当該7ビットデータをメモリ24Aの0番地に格納する。
The
その後、カウンター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
When the clock signal input to the terminal 41 becomes 1, the
そして、端子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
In this way, when the processing is performed until the count values of the
次のラウンド1では、パルス列変調器22は、15ビットデータの中のビット位置1のデータをメモリ24Bに出力する。
In the
この様にして、データ格納器24Aと24Bは、交互にデータを受信し、ラウンド14でビット14の転送が終わると、メモリ21に入っているデータの転送処理が終わる。回路ユニット10の処理を継続する場合は、図示しない外部装置がメモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にし、ニューラルネットでの処理と並行して、前記外部装置が次のデータをメモリ21へ書き込む。
以上で、L1層のニューロン20iの処理の説明を終了する。
In this manner, the
This is the end of the description of the processing of the
次に、L2層のニューロン22jの処理について説明する。ラウンド0で、メモリ24Aにデータが用意できると、次のラウンド1からL2層での処理が始まる。L2層では1ラウンドの期間4[ms]を2分割し、前半の2[ms]でL2層のニューロンの演算を実行し、後半の2[ms]で学習と自己組織化を行う。
ラウンドの前半では、ORゲート60は、端子80に入力される信号が0なので、メモリ24A又はメモリ24Bが出力したデータsiを、ANDゲート26に出力する。
Next, processing of the
In the first half of the round, since the signal input to the terminal 80 is 0, the
データsiの添え字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番目のニューロンでは、Σ(si×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
ラウンド1の前半では、メモリ24Aはデータ読み出しモードになっている。端子42Aに32.768[MHz]のクロック信号が入力すると、カウンター23Aはカウント値をカウントアップし、当該カウント値をメモリ24Aに出力する。これによって、メモリ24Aは32.768[MHz]で7ビットのデータを読み出す。メモリ24Aは当該データを並直変換して7倍の229.4[Mbps]の1ビット信号siに変換する。
In the first half of
その処理と共に、端子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
ANDゲート26は、前記siと前記wi,jを乗算して、乗算結果の8ビットの0又はwi,jを加算器27に出力する。加算器27は、L2層のj番目のニューロン毎に、Σ(si×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
The magnitude comparator 29
Since the count-up signal input to the terminal 82 is 128 [kHz], the
ラウンドの後半では、メモリ62は読み出しモードになる。カウンター61が128[kHz]でカウントアップするので、メモリ62は、前記格納したデータを128[kHz]で読み出し、当該読み出したデータを端子46に出力する。従って、L2層のニューロンの256個の出力データは、ラウンドの後半に128[kbps]で出力される。
In the second half of the round, the
<自己組織化の処理の説明>
次に、ラウンド後半の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-
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
ゼロ検出器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
When S0 becomes 0, the 3-
前記重み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
確率イネーブル信号発生器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
The 3-
ゼロ検出器68が1を出力し、かつ確率イネーブル信号発生器73から出力された第3の制御信号Enが1の場合は、ANDゲート67は、出力Conを1とし、3入力セレクター63へ出力する。3入力セレクター63は、入力S0が1になるので入力I1を選択し、固定値‘D0’をメモリ65に出力する。メモリ65は受け取った当該固定値‘D0’を書き込む。
When the zero
結局、ジナプス結合の重み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-
19ビットカウンター69は、自己組織化モードの最初に、図示しないリセット信号によりカウント値が0になる。19ビットカウンター69は、信号Zeroが1になる度にカウントアップする。従って、自己組織化モードが終わり、メモリ65から全てのデータを読み出し終えた時に、19ビットカウンター69は、メモリ65に格納されていた重みwi,jが0の個数を保持している。
The 19-
19ビットカウンター69は、当該カウント値を確率イネーブル信号発生器73へ出力する。確率イネーブル信号発生器73は、19ビットカウンター69からカウント値を受け取り、当該カウント値を端子Aの信号とする。
図示しないレジスタ又は外部装置が、固定値γ(第3の所定の値)を確率イネーブル信号発生器73へ出力する。確率イネーブル信号発生器73は、レジスタ又は外部装置から固定値γ(第3の所定の値)を受け取り、当該固定値γ(第3の所定の値)を端子Bの信号とする。
The 19-
A register or an external device (not shown) outputs a fixed value γ (third predetermined value) to the probability enable
自己組織化モードの終わりに、確率イネーブル信号発生器73は、図示しない外部装置が出力するデータ更新信号を端子85で受け取り、当該更新信号を入力Neとする。確率イネーブル信号発生器73内のアップダウンカウンター202は、当該入力Neを受け取る。
At the end of the self-organization mode, the probability enable
前記アップダウンカウンター202は、前記入力Neを受け取ったときに、大小比較器201から受け取る信号が1の場合は、端子Qの信号を1増加させて、当該端子Qの信号を大小比較器203に出力する。
一方、前記アップダウンカウンター202は、前記入力Neを受け取ったときに、大小比較器201から受け取る信号が0の場合は、端子Qの信号を1減少させて、当該端子Qの信号を大小比較器203に出力する。
以上で、ラウンドの後半で行う自己組織化モードについての説明を終了する。
When the up / down
On the other hand, if the up / down
This is the end of the description of the self-organization mode performed in the second half of the round.
<シナプス結合の重みの変更>
次に、ラウンドの後半で行う、シナプス結合の重みの変更(すなわちニューラルネットにおける学習)の処理(以下、学習モードと称する)について説明する。学習モードでは、L2層の256個のニューロンの出力bjと、L1層の1,792個のニューロンの出力siとの関係を、網羅的に調べる。
<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層のニューロンの出力bjを、128[kHz]で読み出す。
In the learning mode, the
メモリ62は、前記読み出した出力bjを、ANDゲート74とインバーター76に出力する。
インバーター76は、前記出力bjを受け取り、当該出力bjを反転させb´jとする。インバーター76は、当該b´jをANDゲート75に出力する。
The
一方、メモリ24A又はメモリ24Bは、格納しているL1層の出力データを32.768[MHz]で読み出し、当該出力データを並直変換して7倍の229.4[Mbps]の1ビットデータsiに変換する。メモリ24A又はメモリ24Bは、当該siをANDゲート74と75に出力する。
On the other hand, the
端子84から疑似乱数発生器70のck入力に入力される信号は、メモリ24A又はメモリ24Bが出力するデータsiのデータ転送レートと同じ229.4[MHz]である。従って、確率イネーブル信号発生器71は、データsiがANDゲート74に入力される毎に、新たな第1の制御信号EnをANDゲート74へ出力する。また、確率イネーブル信号発生器72は、データsiがANDゲート75に入力される毎に、新たな第2の制御信号EnをANDゲート75とへ出力する。
Signal input from the terminal 84 to the ck input of the
ここで、確率イネーブル信号発生器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
ANDゲート74は、前記データsiと、前記データbjと、確率イネーブル信号発生器71が出力した第1の制御信号Enと、を受け取る。ANDゲート74は、前記データsiが1で、前記データbjが1で、前記第1の制御信号Enが1の場合に、Inc信号を1とし、当該Inc信号を1増減回路66へ出力する。
The AND
ANDゲート75は、前記データsiと、前記データb´jと、確率イネーブル信号発生器72が出力した第2の制御信号Enと、を受け取る。ANDゲート75は、前記データsiが1で、前記データb´jが1(つまり前記データbjが0)で、前記第2の制御信号Enが1の場合に、Dec信号を1とし、当該Dec信号を1増減回路66へ出力する。
アンドゲート75が受け取るデータb´jは、アンドゲート74が受け取るデータbjの反転データなので、Inc信号とDec信号が同時に1になることはない。
The AND
Since the data b ′ j received by the AND
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 /
When the Dec signal is 1, the 1 increment /
3入力セレクター63は、1増減回路66が出力した変更後のwi,jを受け取る。3入力セレクター63は、当該変更後のwi,jを選択し、メモリ65に出力する。メモリ65は、当該変更後のwi,jを書き込む。
このようにして、Hebbの学習則に確率を組み合わせて、シナプス結合の重みwi,jを変更することができる。これによって、回路ユニット10で、ニューラルネットの、いわゆる学習を実現できる。
The 3-
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
ここで、学習モードでは、端子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
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
学習モードの間に、加算器27はΣwi,jを算出する。ここで、Σは458,752個の全てのシナプス結合の重みについての総和を表している。加算器27は、当該総和計算結果を、確率型イネーブル信号発生器71の端子Aと、確率型イネーブル信号発生器72の端子Bに出力する。
During the learning mode, the
確率イネーブル信号発生器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
学習モードの終わりに、図示しないレジスタ又は外部装置から、端子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
When the data update signal becomes active, the probability enable signal generator 71 and the probability enable
以上説明したように、図7に示す回路ユニット10では、ニューラルネットに自己組織化と、変形したHebb則を用いた学習を行わせることができる。
As described above, the
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
図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
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層のニューロン20iに抑制性ニューロンが存在する場合において、抑制性ニューロンの学習信号を生成する学習信号生成回路77Bについて説明する。
まず、L1層に抑制性ニューロンのみが存在する場合について、説明する。
<Description of Example 2>
Next, a learning
First, a case where only inhibitory neurons exist in the L1 layer will be described.
図13は、L1層のニューロン20iが抑制性ニューロンのときの、学習信号生成部12の回路図である。
抑制性ニューロンの学習信号生成回路77Bは、確率イネーブル信号発生器71Bと、確率イネーブル信号発生器72Bと、ANDゲート74Bと、ANDゲート75Bと、インバーター76Bと、を用いて構成されている。
FIG. 13 is a circuit diagram of the learning
The inhibitory neuron learning
L1層の抑制性ニューロン20iが出力する信号を受け取るL2層のニューロンのシナプス結合では、L1層のニューロンが発火し、L2層のニューロンが発火しなかった場合に、そのシナプス結合の重みを増やす。
従って、図13に示すように、メモリ62が出力したデータbjをANDゲート74Bに入力する前に、当該データbjを反転させる。
In the synaptic connection of the L2 layer neuron that receives the signal output from the
Therefore, as shown in FIG. 13, before the data b j output from the
インバーター76Bは、メモリ62が出力した信号bjを受け取り、当該データbjを反転させ、反転させたデータb´jをANDゲート74Bへ出力する。
逆に、L1層の抑制性ニューロン20iが発火し、L2層のニューロン22jが発火した場合に、そのシナプス結合の重みを減らす。
従って、図13に示すように、メモリ62が出力したデータbjを、ANDゲート75Bへそのまま入力する。
Conversely, when the
Therefore, as shown in FIG. 13, the data b j output from the
興奮性ニューロンが出力した信号を受け取るシナプス結合の学習速度と、抑制性ニューロンが出力した信号を受け取るシナプス結合の学習速度とは異なるので、シナプス結合の重み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
同様に、確率イネーブル信号発生器72Bは、図示しない外部回路またはレジスタから供給される値εを、端子Bで受け取る。確率イネーブル信号発生器72Bは、第2の制御信号に相当する信号EnをANDゲート75Bへ出力する。信号確率イネーブル信号発生器72Bの内部の処理は、確率イネーブル信号発生器72の内部の処理と同じなので、説明は省略する。
Similarly, the probability enable
ANDゲート74Bは、前記データb´jと、前記データsiと、信号確率イネーブル信号発生器71Bが出力した第1の制御信号に相当する信号Enを受け取る。ANDゲート74Bは、前記データb´jと前記データsiと前記第1の制御信号に相当する信号Enの論理積を算出する。ANDゲート74Bは、当該論理積を信号Incとして、1増減回路の端子Iに出力する。
The AND
ANDゲート75Bは、前記データbjと、前記データsiと、信号確率イネーブル信号発生器72Bが出力した第2の制御信号に相当する信号Enを受け取る。ANDゲート75Bは、前記データbjと前記データsiと前記信号発生器72Bが出力した第2の制御信号に相当する信号Enの論理積を算出する。ANDゲート75Bは、当該論理積を信号Decとして、1増減回路の端子Dに出力する。
The AND
以上により、L1層に抑制性ニューロンのみが存在していても、L1層のニューロン20iからL2層へのニューロン22jへのシナプス結合の重みを、変形したHebbの学習則を用いて変化させることができる。
As described above, even when only inhibitory neurons exist in the L1 layer, the weight of the synaptic connection from the
<実施例3の説明>
次に、L1層のニューロン20iの中に、興奮性ニューロンと抑制性ニューロンの両方が含まれる場合について説明する。図14は、L1層のニューロン20iの中に、興奮性ニューロンと抑制性ニューロンの両方が含まれる場合の、学習信号生成部12の回路図である。
<Description of Example 3>
Next, a case where both the excitatory neurons and the inhibitory neurons are included in the
混在型学習信号生成回路78は、興奮性ニューロンの学習信号生成回路77Aと、抑制性ニューロンの学習信号生成回路77Bと、セレクター79Aと、セレクター79Bと、を用いて構成されている。
The mixed learning
セレクター79Aは、興奮性ニューロンの学習信号生成回路77AのANDゲート74の出力信号IncAと、抑制性ニューロンの学習信号生成回路77BのANDゲート74Bの出力信号IncBと、図示しない回路から供給される抑制性ニューロン識別信号INHiとを受け取る。抑制性ニューロン識別信号INHiは、L1層のニューロン20iが興奮性の場合に0、抑制性の場合に1になる。
セレクター79Aは、前記識別信号INHiが0の場合に、前記信号IncAをInc信号として1増減回路の端子Iに出力する。セレクター79Aは、前記識別信号INHiが1の場合は、前記信号IncBをInc信号として1増減回路の端子Iに出力する。
The
セレクター79Bは、興奮性ニューロンの学習信号生成回路77AのANDゲート75の出力信号DecAと、抑制性ニューロンの学習信号生成回路77BのANDゲート75Bの出力信号DecBと、前記識別信号INHiとを受け取る。
セレクター79Bは、前記識別信号INHiが0の場合に、前記信号DecAをDec信号として1増減回路の端子Dに出力する。セレクター79Bは、前記識別信号INHiが1の場合は、前記信号DecBをDec信号として1増減回路の端子Dに出力する。
The
以上により、L1層に興奮性ニューロンと抑制性ニューロンとが混在していても、L1層のニューロン20iからL2層へのニューロン22jへのシナプス結合の重み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
本実施例では、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
本発明の実施例では、確率イネーブル信号発生回路内のアップダウンカウンター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
Claims (8)
二次元以上の仮想空間において、当該仮想空間に任意の数の任意のポリトープを配置し、前記ポリトープ毎に配置される回路ユニットと、互いに隣接するポリトープに配置された前記回路ユニット間で信号を伝送する配線と、を備え、
前記回路ユニットは、第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.
前記学習信号生成部は、前記シナプス結合の重み情報を増加させるか否かの判定基準となる第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の個数が、第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.
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)
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)
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)
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 |
-
2010
- 2010-05-17 JP JP2010113236A patent/JP5393589B2/en not_active Expired - Fee Related
Cited By (3)
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 |