JP5436327B2 - Electronic circuit and wiring system - Google Patents
Electronic circuit and wiring system Download PDFInfo
- Publication number
- JP5436327B2 JP5436327B2 JP2010113234A JP2010113234A JP5436327B2 JP 5436327 B2 JP5436327 B2 JP 5436327B2 JP 2010113234 A JP2010113234 A JP 2010113234A JP 2010113234 A JP2010113234 A JP 2010113234A JP 5436327 B2 JP5436327 B2 JP 5436327B2
- Authority
- JP
- Japan
- Prior art keywords
- layer
- data
- neuron
- output
- memory
- 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
- Logic Circuits (AREA)
Description
本発明は、電子回路及び配線方式に関する。 The present invention relates to an electronic circuit and a wiring system.
脳の構造や機能を模倣した電子回路はニューラルネット又はニューロコンピュータと呼ばれ、演算素子である人工ニューロン(以後、混乱する恐れが有る場合を除き、ニューロンと称する)が、多数個同時並列に動作する計算機である。以下、脳の構造や機能を模倣した電子回路またはソフトウェアによるシミュレータをニューラルネットと称する。 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 otherwise confused) operate in parallel. It is a computer to do. Hereinafter, an electronic circuit or software simulator that mimics the structure and function of the brain 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 features of the brain, they can be used for applications where it is difficult to accurately describe their control algorithms, such as welding control of metals and operation control of large-scale plants. Yes. 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 mainly two ways to implement 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.
従来のニューラルネットワークの例として、図21を用いてニューラルネットの一部を説明する。図21は、ニューラルネットの一部を表した模式図である。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. 21 is a schematic diagram showing a part of a neural network. The L1 layer is a data input layer. For example, a neuron 210 i (i is an integer from 1 to 1,000) that converts 4-bit wide input data into a pulse train having a period of 4 [ms] is 1 There are 1,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) for processing data.
各ニューロン210iからは1本の出力信号線211iが出ている。出力信号線211iは、ニューロン212jの個数が900なので最大900に分岐し、シナプス結合213i,jを介してニューロン212jと接続される。従って、シナプス結合213i,jはニューロン212j1個当たり最大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の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]以内で終了することが理想である。上記のニューラルネットはニューロン数が1,900と少ないので、当該ニューラルネットをソフトウェアでシミュレーションする場合でも、当該ニューラルネットを電子回路で実装する場合でも、4[ms]でL2層のニューロン212jそれぞれが、前記一連の演算を1回行うことが可能である。
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 a use used in an actual neural network and a learning result, it is various which
人間の脳では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, If it is less than 000, it is almost proportional to the square, and if it is 10,000 or more, it is considered to be almost proportional to the first power. Therefore, it can be estimated that about 100 billion to 1 trillion wirings are required to realize a neural network having a brain level of 100 million neurons. It is necessary to appropriately carry out such an enormous amount of wiring under appropriate rules or environments.
大規模なニューラルネットを実現する際に、ニューロン間の配線が問題になるという事情から、ニューロン間の配線を減らす方法が既に幾つか考案されている。例えば、特許文献1がある。この技術ではL1層内の全ニューロンの出力データを時分割多重化して1本の共通信号線に送出し、それをL2層内の全ニューロンが受け取って演算に使用している。この方法を用いると、2つの層を結ぶ信号線が1本で済むという顕著な効果がある。
In order to realize a large-scale neural network, several methods for reducing wiring between neurons have already been devised because wiring between neurons becomes 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).
図22を用いて、AERのフォーマットを説明する。図22は、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. 22 shows a data format used for data transfer between neurons in the 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.
Consider a case in which data is sent 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 in which 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 of 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] = A memory of 655 [KB] 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, since a i × u i, j is 8 bits, one data amount is 18 [bit] (= 10 [bit] +8 [bit]). .
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.
ニューラルネットにはニューロン数が多くなると、ニューロン間の配線が膨大になるという基本的な問題が有る為に、従来技術では数万ニューロン程度を実現するのが限界であり、人間の脳並みの規模(100億から1000億ニューロン)を実現する見通しは全く立っていない。 The neural network has the basic problem that the wiring between neurons becomes enormous when the number of neurons increases, so the conventional technology has a limit of realizing about tens of thousands of neurons, and the scale of a human brain There is no prospect of realizing (10 billion to 100 billion neurons).
人間の脳には100億から1,000億のニューロンがあるが、実際に使われているのはその数%と言われているので、人工ニューロンの個数が1億以上あれば、少なくとも脳機能の一部(図形認識や言語認識など)をかなり正確に模倣できると思われる。 There are 10 to 100 billion neurons in the human brain, but it is said that only a few percent are actually used, so if there are more than 100 million artificial neurons, at least brain function It seems that it can imitate a part of (such as figure recognition and language recognition) fairly accurately.
しかしながら、次に述べる問題により、特許文献1の技術を用いて脳を模倣する1億ニューロン規模のニューラルネットを構築することは困難である。
第1の問題点は、L1層とL2層の結合形式が、全てのニューロン対全てのニューロンに固定されている点である。シナプス結合を作りたくないところは、シナプス結合の重みを0にすることで、実質的に結合をなくすことができるとされているが、このままでは非常に無駄が多い。
However, due to the problems described below, it is difficult to construct a 100 million neuron-scale neural network that mimics the brain using the technique of
The first problem is that the connection form of the L1 layer and the L2 layer is fixed to all neurons versus all neurons. Where it is not desired to create synaptic connections, it is said that the synaptic connection weight can be substantially eliminated by setting the synaptic connection weight to 0, but this is very wasteful.
1億ニューロンのニューラルネットを例えば、大脳皮質のモデルとして用いられる6層構造で実現し、各層に同数のニューロンを割り振るとすると、1層当たり約1,700万ニューロンになる。このデータを受け取るL2層中の1個のニューロンにとっては、約1,700万個中の1万個以下のデータにだけ意味があり、残りの約1,699万個のデータを無視しなければならない。無視すべきデータはL2層のニューロン毎に異なるので、この為に膨大な回路及び、L2層だけで8[bit]×1,699万×1,700万=289[TB]ものメモリが必要になる。 For example, if a neural network of 100 million neurons is realized by a six-layer structure used as a model of the cerebral cortex and the same number of neurons is allocated to each layer, the number of neurons is approximately 17 million neurons. For one neuron in the L2 layer that receives this data, only less than 10,000 of the approximately 17 million data are meaningful, and the remaining approximately 16,699,000 data must be ignored. Don't be. Since the data that should be ignored differs for each neuron of the L2 layer, a huge circuit and a memory of 8 [bit] × 16.99 million × 17 million = 289 [TB] are required only for the L2 layer. Become.
第2の問題点は、共通信号線のファンイン(入力数)とファンアウト(出力数)が膨大になる点である。第1の問題点と同様に1億ニューロンのニューラルネットを6層構造で実現したとすると1層当たり約1,700万ニューロンになる。つまり、共通バスのファンインは約1,700万であり、ファンアウトも約1,700万ということである。これを電子回路で実現するのは非常に難しい。 The second problem is that the fan-in (number of inputs) and fan-out (number of outputs) of the common signal line become enormous. As in the first problem, if a neural network of 100 million neurons is realized with a six-layer structure, there are about 17 million neurons per layer. That is, the fan-in of the common bus is about 17 million and the fan-out is about 17 million. It is very difficult to realize this with an electronic circuit.
また、約1,700万個のデータを作りだす回路部は物理的にかなり大きくなるので、無理に1本に纏めようとすると数段階に分けて纏め処理をしなければならず、その回路が膨大になる。共通信号線を1本ではなく数本にすることも考えられるが、そうすると共通線毎にどのニューロンを属させるかが問題となる。また異なる共通線を跨ぐ通信をどうするかも大きな問題になり、それを解決するのは困難である。 In addition, since the circuit unit that generates about 17 million pieces of data is physically quite large, if it is forced to combine it into one, it must be divided into several stages and the circuit is enormous. become. Although it is conceivable to use several common signal lines instead of one, it becomes a problem which neuron belongs to each common line. In addition, how to communicate over different common lines becomes a big problem, and it is difficult to solve it.
これらの問題から特許文献1の技術は、数十から数百ニューロン程度の小規模ニューラルネットには適しているが、数千ニューロン以上のニューラルネットへの適用は難しい。
Because of these problems, the technique of
一方、AER法ではニューロン間の接続に大量のデータ伝送が必要であり、更に送信元に宛先アドレスを記憶するメモリが必要になる。中規模ニューラルネットでは、伝送すべきデータ量がニューロン数のほぼ2乗に比例し、またアドレスのビット数も増える。 On the other hand, the AER method requires a large amount of data transmission for connection between neurons, and further requires a memory for storing a destination address in the transmission source. In a medium-scale neural network, the amount of data to be transmitted is proportional to the square of the number of neurons, and the number of bits of the address increases.
例えばL1層とL2層がそれぞれ10,000ニューロンになると、アドレスが14ビット以上必要になるので通信速度は、(14[bit]+8[bit])×5,000×10,000÷4[ms]=34.4[GB/s]必要になる。また、L1層には(14[bit]+8[bit])×5,000×10,000=138[MB]のメモリが必要になる。
このような事情から、AER法は数万ニューロン程度かつ、各ニューロンが数百個程度のシナプス結合を持つニューラルネットまでしか適用できなかった。
For example, if the L1 layer and the L2 layer each have 10,000 neurons, an address of 14 bits or more is required, so the communication speed is (14 [bit] +8 [bit]) × 5,000 × 10,000 ÷ 4 [ms. ] = 34.4 [GB / s] is required. Further, the memory of (14 [bit] +8 [bit]) × 5,000 × 10,000 = 138 [MB] is required for the L1 layer.
For this reason, the AER method can be applied only to a neural network having about several tens of thousands of neurons and each neuron having several hundred synaptic connections.
そこで本発明は、上記問題に鑑みてなされたものであり、ニューロン間の配線数を少なくする電子回路及び配線方式を提供することを課題とする。 Therefore, the present invention has been made in view of the above problems, and an object thereof is to provide an electronic circuit and a wiring system that reduce the number of wirings between neurons.
上記の課題を解決するために、請求項1に記載した発明は、複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層に存在する人工ニューロンとを結びつけるシナプス結合とを有し、前記複数の層のうち第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を計算し、前記積を累積した結果に応じた出力を第2の層の人工ニューロンが出力するニューラルネットワークを実現する電子回路であって、二次元以上の仮想空間において当該仮想空間を任意の数の任意のポリトープ(例えば、実施形態における正六角形のセルCN)で分割し、前記ポリトープ毎に配置される回路ユニット(例えば、実施形態における回路ユニット10)と、隣接するポリトープに配置された前記回路ユニット間で、前記第1の層の人工ニューロンの出力データを送信する配線と、を備え、
前記回路ユニットは、第1の層に属する複数の人工ニューロンと第2の層に属する複数の人工ニューロンとを実装し、第1の層の人工ニューロンは、自身の出力データを時分割多重化し、該時分割多重化したデータを同一回路ユニット内の第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンとへ出力し、前記同一回路ユニット内の第2の層の人工ニューロンは、同一回路ユニット内の第1の層の人工ニューロンが出力した出力データと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第1の層の人工ニューロンが出力した出力データとを入力データとして処理することを特徴とする電子回路である。
これにより、前記ニューロン間の配線に必要な信号線を、1つのポリトープ当り自身のポリトープに隣接するポリトープへの出力信号線1本にすることができる。
In order to solve the above problem, the invention described in
The circuit unit implements a plurality of artificial neurons belonging to the first layer and a plurality of artificial neurons belonging to the second layer, and the first layer artificial neurons time-division multiplex their output data, The time division multiplexed data is output to the second layer artificial neuron in the same circuit unit and the second layer artificial neuron of the circuit unit arranged in the polytope adjacent to its own polytope. The artificial neurons of the second layer in the circuit unit include the output data output from the artificial neurons of the first layer in the same circuit unit and the first layer of the circuit unit arranged in the polytope adjacent to its own polytope. In this electronic circuit, the output data output from the artificial neuron is processed as input data.
As a result, a signal line necessary for wiring between the neurons can be one output signal line to a polytope adjacent to its own polytope per one polytope.
請求項2に記載した発明は、請求項1に記載の発明において、前記回路ユニットは、前記第1の層の人工ニューロンの出力データを入力する必要がないシナプス結合では、その重み情報を0にすることを特徴とする。
これにより、第1の層の人工ニューロンの出力データを受けとる必要性の有無に拘わらず、第2の層の人工ニューロンに共通に前記第1の人工ニューロンからの出力データを与えることができ、前記第1の層の人工ニューロンからの情報が不要な前記第2の層の人工ニューロンへの配線をなくすことなく、当該第1の層の人工ニューロンから第2の層の人工ニューロンへの入力を遮断することができる。
In the invention described in
Thereby, the output data from the first artificial neuron can be given in common to the second layer artificial neuron regardless of the necessity of receiving the output data of the first layer artificial neuron, The input from the first layer artificial neuron to the second layer artificial neuron is blocked without losing the wiring to the second layer artificial neuron that does not require information from the first layer artificial neuron. can do.
請求項3に記載した発明は、請求項1または請求項2に記載の発明において、前記仮想空間は仮想二次元平面で構成し、前記ポリトープは正六角形で構成し、前記仮想二次元平面を任意の個数の前記正六角形で分割することを特徴とする。
これにより、仮想二次元平面を正六角形で隙間なく埋めることができる。また、仮想二次元平面内で各人工ニューロンは、ほぼ等距離内の人工ニューロンとの間でシナプス結合を作ることができる。
The invention described in
As a result, the virtual two-dimensional plane can be filled with regular hexagons without gaps. In addition, each artificial neuron in the virtual two-dimensional plane can form a synaptic connection with an artificial neuron within approximately the same distance.
請求項4に記載した発明は、請求項1から請求項3のいずれかに記載の発明において、前記回路ユニットは、第2の層の人工ニューロンの出力データを第2の層または第1の層の人工ニューロンへの入力データとすることを特徴とする。
これにより、或る層のニューロンの出力データを同じ層または該層より前の層のニューロンへフィードバックすることができる。
According to a fourth aspect of the present invention, in the invention according to any one of the first to third aspects, the circuit unit outputs the output data of the artificial neuron of the second layer to the second layer or the first layer. It is characterized by being input data to the artificial neuron.
Thereby, the output data of a neuron in a certain layer can be fed back to the neuron in the same layer or a layer before the layer.
請求項5に記載した発明は、請求項1から請求項4のいずれかに記載の発明において、前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部(例えば、実施形態におけるメモリ21)と、前記シナプス結合の重み情報を保持する第2の記憶部(例えば、実施形態におけるメモリ25)と、前記第1の層の人工ニューロンが前記入力データを時分割多重化して出力データとして同一回路ユニット内の第2の層の人工ニューロンに出力し、前記出力データを隣接するポリトープに配置された回路ユニット内の第2の層の人工ニューロンに出力する出力回路(例えば、実施形態におけるパルス列変調回路22)と、前記出力データと前記重み情報との積を算出する乗算回路(例えば、実施形態における乗算器50)と、前記積を一方の入力信号としてその総和を算出する加算器(例えば、実施形態における加算器27)と、前記総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する大小比較器(例えば、実施形態における大小比較器29)と、を備えることを特徴とする。
これにより、第1の層に入力された情報に基づくデータ処理を、高速に実行することができる。
According to a fifth aspect of the present invention, in the invention according to any one of the first to fourth aspects, the circuit unit includes a first storage unit that holds input data of the first layer of artificial neurons (for example, The memory 21) in the embodiment, the second storage unit (for example, the
Thereby, the data processing based on the information input to the first layer can be executed at high speed.
請求項6に記載した発明は、請求項1から請求項5のいずれかに記載の発明において、前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部(例えば、実施形態におけるメモリ21)と、前記シナプス結合の重み情報を保持する第2の記憶部(例えば、実施形態におけるメモリ25)と、前記第1の層の人工ニューロンの出力データと前記重み情報との積を算出する乗算回路(例えば、実施形態におけるアンドゲート26)と、前記乗算回路が算出した積のうち所定の第1の層の人工ニューロンに対応する積を定数倍した値を算出する演算回路(例えば、実施形態における1ビット左シフタ36)と、前記定数倍した値を一方の入力信号としてその総和を算出する加算器(例えば、実施形態における加算器27)と、前記総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロン群の出力データを決定する大小比較器(例えば、実施形態における大小比較器29)と、を備えることを特徴とする。
これにより、通常のニューロンと通常のニューロンの2のべき乗倍の影響力を持つパワーニューロンとが混在するニューラルネットを実現するに際し、シナプス結合の重みの分解能を落とすことなく、シナプス結合の重み格納メモリに必要な容量を大幅に削減できる。
According to a sixth aspect of the present invention, in the invention according to any one of the first to fifth aspects, the circuit unit includes a first storage unit that holds input data of the first layer of artificial neurons (for example, , Memory 21) in the embodiment, a second storage unit (for example,
As a result, when realizing a neural network in which a normal neuron and a power neuron having an influence that is a power of two times that of a normal neuron are mixed, a synaptic connection weight storage memory is obtained without reducing the resolution of the synaptic connection weight. The required capacity can be greatly reduced.
請求項7に記載した発明は、請求項5または請求項6のいずれかに記載の発明において、前記回路ユニットは、前記総和に所定の減衰量を乗算する乗算器(例えば、実施形態における乗算器52)と、前記乗算された乗算結果を保持する第3の記憶部(例えば、実施形態におけるメモリ53)とを更に備え、前記加算器は、前記第3の記憶部に保持した前記乗算結果を他方の入力信号とすることを特徴とする。
これにより、所定の時間までに加算器が出力した総和を所定の時定数で減衰させながら、当該加算器が総和計算を行う際の初期入力データとすることができる。
According to a seventh aspect of the present invention, in the invention according to the fifth or sixth aspect, the circuit unit is a multiplier that multiplies the sum by a predetermined attenuation amount (for example, the multiplier in the embodiment). and 52), a third storage unit for holding the multiplied multiplication result (e.g., memory 53) and further comprising a in the embodiment, the adder, the multiplication result held in the third storage unit The other input signal is used.
As a result, it is possible to obtain initial input data when the adder performs the summation calculation while attenuating the sum total output by the adder by a predetermined time constant.
請求項8に記載した発明は、請求項1から請求項7のいずれかに記載の発明において、前記回路ユニットは、第1の層の人工ニューロンの入力データを保持する第1の記憶部(例えば、実施形態におけるメモリ21)と、シナプス結合の重みの絶対値を保持する第2の記憶部(例えば、実施形態におけるメモリ25)と、前記第1の層の人工ニューロンの出力データと前記重みの絶対値との積を算出する乗算回路(例えば、実施形態におけるアンドゲート26)と、第1の層のニューロンが興奮性か抑制性かを表す前記シナプス結合の重みの符号情報を出力する符号情報出力回路(例えば、実施形態における符号格納器33、大小比較器34またはアンドゲート34B)と、前記符号情報に基づいて、前記積の値または前記積の負の値を一方の入力信号としてその総和を算出する加算器(例えば、実施形態における加減算器32)と、前記算出した総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する大小比較器(例えば、実施形態における大小比較器29)と、を備えることを特徴とする。
これにより、興奮性と抑制性のニューロンが混在するニューラルネットを実現するに際し、シナプス結合の符合情報を格納するメモリに必要な容量を大幅に削減できる。
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 includes a first storage unit that holds input data of the first layer of artificial neurons (for example, , The memory 21) in the embodiment, the second storage unit (for example, the
As a result, when realizing a neural network in which excitatory and inhibitory neurons are mixed, the capacity required for a memory for storing synaptic connection code information can be greatly reduced.
請求項9に記載した発明は、請求項1から請求項8のいずれかに記載の発明において、第2の層の人工ニューロン毎に予め定められた所定の値を保持し、更に前記人工ニューロン毎に疑似乱数を算出し、前記第2の層の人工ニューロンに共通に定められた所定の閾値に前記所定の値と前記疑似乱数を加算する閾値算出回路(例えば、実施形態における閾値算出回路38)を更に備えることを特徴とする。
これにより、前記人工ニューロンの閾値に、前記人工ニューロン毎に予め定められた所定の値を加算できるので、前記人工ニューロン毎に閾値を変更することができる。また、前記人工ニューロンの閾値に、前記人工ニューロン毎に算出した前記疑似乱数を加算できるので、前記人工ニューロン毎に閾値を疑似ランダムに変化させることができる。
The invention according to
As a result, since a predetermined value predetermined for each artificial neuron can be added to the threshold value of the artificial neuron, the threshold value can be changed for each artificial neuron. Moreover, since the pseudo random number calculated for each artificial neuron can be added to the threshold value of the artificial neuron, the threshold value can be changed pseudo-randomly for each artificial neuron.
請求項10に記載した発明は、上記の課題を解決するために、複数の層と、前記層に存在する複数の人工ニューロンと、前記人工ニューロンと他の層に存在する人工ニューロンとを結びつけるシナプス結合を有し、前記複数の層のうち第1の層の人工ニューロンの出力データと前記シナプス結合の重み情報との積を計算し、前記積を累積した結果に応じた出力を第2の層の人工ニューロンが出力するニューラルネットワークを実現する配線方式であって、二次元以上の仮想空間において当該仮想空間を任意の数の任意のポリトープで分割し、前記ポリトープ毎に回路ユニットを配置し、隣接するポリトープに配置された前記回路ユニット間で前記第1の層の出力データを含む信号を送信するよう配置された第1の配線と、第1の層に属する複数の人工ニューロンと第2の層に属する複数の人工ニューロンとを実装し、第1の層の人工ニューロンは、自身の出力データを時分割多重化し、該時分割多重化したデータを、同一回路ユニットの第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンとへ出力し、前記同一回路ユニットの第2の層の人工ニューロンは、自身のポリトープに隣接するポリトープに配置された回路ユニットの第1の層の人工ニューロンが出力した出力データを入力するよう配線された第2の配線と、を有することを特徴とする配線方式である。
これにより、ニューラルネットを構成する人工ニューロン間の配線を、ポリトープ毎に1本のデータ出力線を用いて隣接するポリトープと接続できるので、ポリトープを追加しても既存のポリトープ間の通信は影響を受けない。したがって、人工ニューロン間のデータ通信速度を一定に保ったまま、任意の数の人工ニューロン間を配線できる。
In order to solve the above problem, the invention described in
As a result, the wiring between the artificial neurons constituting the neural network can be connected to the adjacent polytope using one data output line for each polytope, so that the communication between existing polytopes is not affected even if a polytope is added. I do not receive it. Therefore, any number of artificial neurons can be wired while keeping the data communication speed between the artificial neurons constant.
請求項1に記載した発明によれば、ニューロン間の配線を低速で少ない数の配線で行う電子回路を実現できる。 According to the first aspect of the present invention, it is possible to realize an electronic circuit in which wiring between neurons is performed at a low speed with a small number of wirings.
請求項2に記載した発明によれば、実質的にシナプス結合を無効にできるので、後からシナプス結合が無くなった部分の配線を物理的に無くす必要性がない。また、シナプス結合の重みが0の箇所は、必要に応じて新たにシナプス結合を発生することができる。 According to the second aspect of the present invention, the synapse connection can be substantially invalidated, so that it is not necessary to physically eliminate the wiring in the portion where the synapse connection is lost later. In addition, a synapse connection can be newly generated at a location where the weight of the synapse connection is 0 as necessary.
請求項3に記載した発明によれば、仮想二次元平面を正六角形で分割するので、各回路ユニットに含まれる各ニューロンは、仮想平面内でほぼ等距離内のニューロンとシナプス結合を作ることができる。
According to the invention described in
請求項4に記載した発明によれば、第2の層の人工ニューロンの出力データを第2の層または第1の層へフィードバックできるので、信号の帰還回路が在るニューラルネットワークを電子回路で実装できる。
According to the invention described in
請求項5に記載した発明によれば、第1の層が興奮性ニューロンである大規模ニューラルネットワークを電子回路で実装できる。
According to the invention described in
請求項6に記載した発明によれば、通常の影響力を次層のニューロンに与える通常ニューロンと、通常ニューロンよりも大きな影響力を次層のニューロンに与えるパワーニューロンが混在するニューラルネットを電子回路で実装するに際し、シナプス結合の重み格納メモリに必要な容量を大幅に削減することができる。
According to the invention described in
請求項7に記載した発明によれば、シナプス結合から受け取るデータの総和計算を行い、その結果ニューロンが発火しなかった場合に、前記総和計算結果を所定の時定数で減衰させて、次回の総和計算の初期値とするので、時間履歴を扱えるニューラルネットを電子回路で実装できる。 According to the seventh aspect of the present invention, the sum total calculation of the data received from the synapse connection is performed. As a result, when the neuron does not fire, the sum total calculation result is attenuated by a predetermined time constant, and the next sum total is calculated. Since it is the initial value of the calculation, a neural network that can handle the time history can be implemented with an electronic circuit.
請求項8に記載した発明によれば、符号情報を格納するメモリ手段を使うことにより、ニューラルネットワークを実装する電子回路は、興奮性人工ニューロンと抑制性人工ニューロンを模擬することができる。また、シナプス結合毎ではなくニューロン毎に符号情報をメモリに格納することにより、メモリ容量を削減することができる。 According to the eighth aspect of the invention, by using the memory means for storing the code information, the electronic circuit that implements the neural network can simulate the excitatory artificial neuron and the inhibitory artificial neuron. Further, the memory capacity can be reduced by storing the code information in the memory for each neuron instead of for each synapse connection.
請求項9に記載した発明によれば、第2の層の人工ニューロン毎に閾値の値を変更することができるので、第2の層の人工ニューロン毎に異なる閾値をもつニューラルネットワークを電子回路に実装できる。また、第2の層の人工ニューロン毎に閾値を疑似ランダムに変化させることができるので、ニューラルネットに学習させる際に、ローカルミニマムの状態に落ち込むのを防ぐことができる。
According to the invention described in
請求項10に記載した発明によれば、ニューロン間のデータ転送速度を一定に保ったまま、任意の数のニューロン間を配線できる。
According to the invention described in
以下、本発明の実施形態について、図面を参照して詳細に説明する。まず、本発明のニューラルネットワークの構成について説明する。図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と、配線21iに対応したL2層のニューロン22jのシナプス結合23i,jと、L2層のニューロン22jの出力端子24jとを有する。
The neural network 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,863). an integer), the
シナプス結合には、L1層のニューロンの出力をL2層のニューロンへどの程度の割合で伝えるかというシナプス結合の重みwi,jがある。不要な結合についてはシナプス結合の重みwi,jを0にすることで、実質的にシナプス結合を無効にできる。 The synaptic connection includes a weight w i, j of the synaptic connection that determines how much the output of the neurons in the L1 layer is transmitted to the neurons in the L2 layer. For unnecessary connections, the synaptic connection weight w i, j can be set to 0 to substantially invalidate the synaptic connection.
L1層のニューロン20iを同数ずつ19個のまとまり(以下、セルと称する)に分ける。そうすると、1つのセルあたりに存在するL1層のニューロン20iは256個である。同様にして、L2層のニューロン22jを19個のセルに分ける。そうすると、1つのセルあたりに存在するL2層のニューロン22jは256個である。従って、図1(a)のニューラルネットワークは、19個のセルCN(Nは0から18までの整数)で分割される。
The same number of
図1(b)は、L1層の出力を時分割多重化した信号を説明するための図である。セルCNのL1層内の256個のニューロンの出力データは、図1(b)に示すように時分割多重化して、信号xi,tとしてP0端子から出力する。 FIG. 1B is a diagram for explaining a signal obtained by time-division multiplexing the output of the L1 layer. The output data of 256 neurons in the L1 layer of the cell CN is time-division multiplexed as shown in FIG. 1B, and is output from the P0 terminal as signals x i, t .
xi,tはL1層のi番目(iは0から255の整数)のニューロンの、t番目(tは0以上の整数)ラウンドの出力である。すなわち、x0,tはニューロン200の出力、x1,tはニューロン201の出力,…,x255,tはニューロン20255の出力である。ここで、ラウンドとは256個のニューロンのデータを1回処理する処理単位のことである。
x i, t is the output of the t-th (t is an integer greater than or equal to 0) round of the i-th (i is an integer from 0 to 255) neuron in the L1 layer. That is, x 0, t is the output of the
図2は、本発明の一実施形態による回路ユニット間の配線を説明するための図である。脳内の神経細胞は基本的に、物理的に近くの神経細胞とシナプス結合を作っている。この特徴を参考にしてニューロン間の配線問題を解決する。 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 with physically close neurons. The wiring problem between neurons is solved by referring to this feature.
図2(a)は、仮想平面を複数のセルに分割した図である。図2(a)では、各セルは、正六角形の形状を有する。図2(b)は、セル間の配線を示した図である。各セル内に1つの回路ユニットが存在する。 FIG. 2A is a diagram in which the virtual plane is divided into a plurality of cells. In FIG. 2A, each cell has a regular hexagonal shape. FIG. 2B is a diagram showing wiring between cells. There is one circuit unit in each cell.
図1ではセルが19個在るので、L1層とL2層にそれぞれ256×19=4,864個のニューロン20i、22jが入っていることになる。各セルには1個の出力端子P0と、6個の入力端子P1〜P6とがある(図2(b))。セルの配置と入力端子への配線とには一定の規則がある。
Since there are 19 cells in FIG. 1, there are 256 × 19 = 4,864
図2(b)に示すように、或るセルの出力端子P0は隣接するセルとだけ接続する。また、各入力端子と、その入力端子に接続する信号を出力するセルの配置に一定の規則がある。ここでは、セルC0を例に説明する。図2(b)に示すように、セルC0の入力端子P1は、セルC0の真上に隣接するセルC1の出力端子P0と接続する。 As shown in FIG. 2B, an output terminal P0 of a certain cell is connected only to an adjacent cell. Further, there is a certain rule in the arrangement of each input terminal and a cell that outputs a signal 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 cell C1 adjacent immediately 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 cell C2 adjacent to the upper right of the cell C0. The input terminal P3 of the cell C0 is connected to the output terminal P0 of the cell C3 adjacent to the lower right of the cell C0. The input terminal P4 of the cell C0 is connected to the output terminal P0 of the cell C4 adjacent immediately below the cell C0. The input terminal P5 of the cell C0 is connected to the output terminal P0 of the cell C5 adjacent to the lower left of the cell C0. The input terminal P6 of the cell C0 is connected to the output terminal P0 of the cell C6 adjacent to the upper left of the cell C0.
すなわち、或る回路ユニットの入力端子P1が受けとる入力データは、真上に隣接する回路ユニットの出力端子P0が出力したデータである。同様にして、或る回路ユニットの入力端子P2が受けとる入力データは、右上に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P3が受けとる入力データは、右下に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P4が受けとる入力データは、真下に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P5が受けとる入力データは、左下に隣接する回路ユニットの出力端子P0が出力したデータである。或る回路ユニットの入力端子P6端子が受けとる入力データは、左上に隣接する回路ユニットの出力端子P0が出力したデータである。 That is, the input 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, the input 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. The input 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 input data received by the input terminal P4 of a certain circuit unit is the data output from the output terminal P0 of the circuit unit adjacent immediately below. The input 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 input 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層の256×7=1,792個のニューロンとシナプス結合を作る。 In the L2 layer of a certain cell, the signal input from the L1 layer of the cell and the six signals input to the input terminals P1 to P6 from the adjacent cell are used to transmit the L1 layer in the cell and the adjacent cell. Create synaptic connections with all neurons. That is, each neuron in the L2 layer of the cell C0 in FIG. 2A forms a synaptic connection with the cell C0 and 256 × 7 = 1,792 neurons in the L1 layer in the six adjacent cells C1 to C6. .
同様に、例えばセルC1内のL2層の各ニューロンは、セルC1及び隣接する6個のセルC8、C9、C2、C0、C6、C7内のL1層の全ニューロンとシナプス結合を作る。L2層の各ニューロンは、L1層の1,792個のニューロンとシナプス結合を作れるが、その中には不要なものも含まれる。 Similarly, for example, each neuron of the L2 layer in the cell C1 forms a synaptic connection with all the neurons of the L1 layer in the cell C1 and six adjacent cells C8, C9, C2, C0, C6, and C7. Each neuron in the L2 layer can make a synaptic connection with 1,792 neurons in the L1 layer, and some of them are unnecessary.
一般的に、L1層の各ニューロンは自セル及び仮想平面内で隣接するセル内のL2層のニューロンとのみ結合されているので、シナプス結合が不要な箇所は少なく、シナプス結合の重みWを0にする箇所は少ないと考えられる。 In general, since each neuron in the L1 layer is connected only to its own cell and the neuron in the L2 layer in the adjacent cell in the virtual plane, there are few places where the synapse connection is unnecessary, and the weight W of the synapse connection is 0. It is thought that there are few places to make.
図1の実施例ではL1層及びL2層に含まれるニューロン数を256としたが、本発明はこれに制限されるものではなく、一般的に2以上の任意の数でも適用できる。また、L1層とL2層のニューロン数が同数である必要は無い。本実施例では、図1(a)に示すように、ニューラルネットの階層数を2とする。なお、本発明はこれに制限されるものではなく、3層以上に拡張することも可能である。 In the embodiment of FIG. 1, the number of neurons included in the L1 layer and the L2 layer is 256. However, the present invention is not limited to this, and any number of 2 or more is generally applicable. 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, the virtual plane on which neurons are arranged is divided into regular hexagons, but the present invention is not limited to this. FIG. 3 is a diagram for explaining wiring between circuit units by dividing a virtual plane according to an embodiment of the present invention. For example, as shown in FIG. 3A, it can be divided into squares, or can be divided into equilateral triangles.
また、同一の多角形を並べるのではなく、図3(b)に示すように複数種類(3種類)の多角形で分割することも可能である。更に、仮想平面は仮想的なものなので多角形間にオーバーラップが生じたり、或いは多角形間に隙間が生じたりしても特に問題はない。信号が入力されない入力端子はグランド電位に接続する。 Further, instead of arranging the same polygons, it is also possible to divide into a plurality of types (three types) of polygons as shown in FIG. Further, since the virtual plane is virtual, there is no particular problem even if overlap occurs between polygons or a gap occurs between polygons. The input terminal to which no signal is input is connected to the ground potential.
多角形の形状は1つのニューロンが形成できるシナプス結合の最大数に関係している。例えば正六角形の場合は隣接セルが6個なので、1個のセルのL1層に256個のニューロン含まれるとすると、L2層のニューロンでは最大256×7=1,792個のシナプス結合を形成する。 The shape of the polygon is related to the maximum number of synaptic connections that one neuron can form. For example, in the case of a regular hexagon, since there are six adjacent cells, assuming that 256 neurons are included in the L1 layer of one cell, a maximum of 256 × 7 = 1,792 synaptic connections are formed in the neurons of the L2 layer. .
一方、図3(a)の場合は隣接セルが8個になるので、最大256×9=2,304個のシナプス結合を形成する。図3(b)の場合は、最大シナプス結合数が異なる3種類の回路ユニットが混在していると解釈することもできるし、正五角形以外の隙間を無視することもできる。更に言えば、仮想平面を正多角形ではなく、任意形状の図形で分割しても、本発明を同様に適用できる。 On the other hand, in the case of FIG. 3A, since there are eight adjacent cells, a maximum of 256 × 9 = 2,304 synapse connections are formed. In the case of FIG. 3B, it can be interpreted that three types of circuit units having different maximum synapse coupling numbers are mixed, and a gap other than a regular pentagon can be ignored. Furthermore, the present invention can be similarly applied even if the virtual plane is divided by a figure of an arbitrary shape 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 dividing a virtual space according to an embodiment of the present invention into cubes. For example, as shown in FIG. 4, a virtual three-dimensional space is divided into cubes, and neurons in the L1 layer of an arbitrary cube make synaptic connections with neurons in the L2 layer in the cube adjacent to the cube.
図4に示すように、1つのセル毎に出力端子は上部に1個、入力端子は各面に1個存在する。あるセルに隣接するセルは前後上下左右方向に面で隣接する合計6個のセルである。或るセルの前後上下左右の面に1個ずつ存在する入力端子は、隣接するセルの出力端子と接続する。 As shown in FIG. 4, there is one output terminal at the top and one input terminal on each surface for each cell. 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個、入力端子は各面に1個(合計6個)、各辺に1個(合計12個)、各角に1個(合計8個)すなわち合計26個存在する。セルに隣接するセルは面、辺、角で隣接する合計26個のセルである。あるセルに存在する26個の入力端子は、それぞれ隣接する26個のセルの出力端子と接続する。 As another example, one output terminal per cell, one input terminal on each side (6 in total), 1 on each side (12 in total), 1 on each corner (8 in total), that is, 26 in total. A cell adjacent to a cell is a total of 26 cells adjacent to each other by a face, a side, and a corner. The 26 input terminals existing in a certain cell are connected to the output terminals of 26 adjacent cells, respectively.
また、三次元空間を立方体ではなく、一般的に任意の多面体で分割することもできる。このように、本発明は一般的に、二次元以上の任意の次数の空間を、任意のポリトープで分割する場合に適用可能である。なお、ポリトープとは、二次元の場合は多角形を表し、三次元の場合は多面体を表し、四次元以上の場合はポリトープを表す。一般的には、ポリトープは、二次元の多角形、三次元の多面体を一般次元へ一般化した図形である。但し、四次元以上の空間の場合に関しては、図示することができないので図を省略する。 Further, the three-dimensional space can be divided not by a cube but generally by an arbitrary polyhedron. As described above, the present invention is generally applicable to a case where an arbitrary degree space of two or more dimensions is divided by an arbitrary polytope. 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. In general, a polytope is a figure obtained by generalizing a two-dimensional polygon or a 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の説明>
次に、本発明の回路ユニットの第1の実施例について説明する。図5は、本発明の一実施形態による回路ユニットをパルスニューラルネットワークで用いるニューロン群を模擬した回路図である。図5の回路ユニット10全体が、図2(a)で示す1つのセルに存在する回路ユニット対応している。本実施例では各ニューロンは個別の電子回路ではなく、仮想の興奮性ニューロンとして層毎に256個のニューロンを纏めて実装している。
<Description of Example 1 of Circuit Unit>
Next, a first embodiment of the circuit unit of the present invention will be described. FIG. 5 is a circuit diagram simulating a neuron group using a circuit unit according to an embodiment of the present invention in a pulse neural network. The
各層に256個のニューロンを実装する方法は、以下の通りである。L1層の256個のニューロンの入力データ(4[bit]データ)は、メモリ21に格納されている。L2層のニューロンのシナプス結合の重み(8[bit]データ)は、メモリ25に保存されている。一方、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は、L1層に属する8ビットカウンター20と、メモリ21と、パルス列変調回路22と、L2層に属する8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、加算器27と、アンドゲート28と、大小比較器29と、ラッチ30と、カウンター31とを用いて構成されている。
The
8ビットカウンター20は入力端子41にカウントアップ信号が入力される毎に、カウント値を1ずつ増加させ、当該カウント値をメモリ21に出力する。8ビットカウンター20は図示しないリセット信号によって予め0になっており、255までカウントアップすると、次のカウントアップタイミングで0に戻る。
Each time the count-up signal is input to the
メモリ21はL1層のニューロン20iの入力データを記憶している。L1層からは1ビット信号としてL2層へデータを送るので、4ビット幅のデータを15ビットのビット列に変換し、15ラウンドかけて転送する。ここで、値1は、ニューロンが発火することに相当する。1つの回路ユニットに含まれるL1層のニューロン20iの個数は256個なので、メモリ21は4[bit]×256=1,024[bit]の容量を持つ。L1層のi番目のニューロンの入力データは、メモリ21のi番地に格納されている。
The
メモリ21は、8ビットカウンター20のカウント値が示す番地から4ビットデータを読み出して、当該データをパルス列変調回路22に送る。
The
パルス列変調回路22は、メモリ21が読みだした4ビットデータを15ビットのパルス列に変換する。パルス列変調回路22は、データ変換テーブルを格納しているデータ変換用メモリを備えている。図6は、データ変換テーブルを説明するための図である。図6において、左側の4ビットデータとは、パルス列変調回路22が受け取るデータであり、データ変換用メモリへのアドレス信号になる。上部の15ビットデータとは、データ変換用メモリが記憶しているデータである。
The pulse
パルス列変調回路22は、当該15ビットのデータ列のうちLSB(Least Siginificant bit)から順に、自セルのメモリ24Aと24Bに後述するラウンド毎に出力する。また、パルス列変調回路22は、P0端子を介して、当該データを隣接するセルの入力端子P1からP6に出力する。その後、自セル及び隣接セルにおいて、メモリ24Aと24Bを後述するラウンド毎に切り替えて、当該データを格納する。
The pulse
パルス列変調回路22は、ラウンド数が増えるごとに、送信するビット位置を1ずつ増やし、当該ビット位置のデータを出力する。
ラウンド14で、前記15ビットデータのうち最上位ビットのデータを自セルのメモリ24Aと隣接するセルのメモリ24Aに転送が終わると、メモリ21に入っているデータのパルス列への変換と、その転送処理が終わる。
Each time the number of rounds increases, the pulse
In round 14, when the most significant bit data of the 15-bit data is transferred to the
なお、本実施例では、最下位ビットから順にデータを出力したが、任意のビット位置から始めてもよい。また、出力するビット位置の順序も適当に決めてよい。L1層のニューロンの出力情報は、パルス列中に1が現れる頻度で表されるので、データが出力される順番は関係ないからである。 In this embodiment, data is output in order from the least significant bit, but it may start from an arbitrary bit position. Further, the order of the output bit positions may be determined appropriately. This is because the output information of the L1 layer neuron is represented by the frequency with which 1 appears in the pulse train, so the order in which the data is output is not relevant.
L2層に属する8ビットカウンター23Aの端子42Aと、8ビットカウンター23Bの端子42Bには、メモリ24Aまたはメモリ24Bにデータを書き込む際は、8ビットカウンター20の端子41に入力されるカウントアップ信号と、同一周波数のカウントアップ信号が入力される。8ビットカウンター23Aと8ビットカウンター23Bは、当該カウントアップ信号が入力される毎に、カウント値を1ずつ増加させ、当該カウント値をメモリ24Aまたはメモリ24Bに出力する。8ビットカウンター23Aと8ビットカウンター23Bは図示しない8ビットカウンター20のリセット信号と同一のリセット信号によって予め0になっており、255までカウントアップすると、次のカウントアップタイミングで0に戻る。
When data is written to the
メモリ24Aとメモリ24B(それぞれ7[bit]×256[個]の容量)は、7本の信号線で伝送されてきたデータを、ラウンド毎に交互に格納する。ここで、端子P0に入力されたデータは、自セルのパルス列変調回路22が出力したデータである。また、端子P1からP6までに入力されたデータは、隣接セルのパルス列変調回路22が出力したデータである。
The
8ビットカウンター23Aと8ビットカウンター23Bは、メモリ24Aまたはメモリ24Bからデータを読み出す際は、64[kHz]×256=16.384[MHz]の周波数でカウントアップする。メモリ24Aとメモリ24Bは、記憶している7ビット幅のデータを16.384[MHz]で読み出し、更に当該データを並直変換して7倍の114.7[MHz]の1ビット信号a´i,p,qにする。ここで、iは0から255までの整数、pはビット位置を表す0から14までの整数、qは入(出)力端子番号を表す0から6までの整数である。但し、1ラウンド中にiとqは変化するが、pは一定である。pはラウンドが変わる度に変化(本実施例では0から始まり1ずつ増加)する。当該1ビット信号a´i,p,qは1本の信号線により、アンドゲート26に送られる。
When reading data from the
カウンター31は、端子47に8ビットカウンター20の端子41に入力されるカウントアップ信号の7×256=1,792倍(114.7[MHz])のカウントアップ信号が入力する毎に、カウント値を1ずつ増加する。カウンター31のカウント値は、メモリ25のアドレス入力Aに入る。メモリ25は、当該カウント値に応じた番地から、シナプス結合の重みw´i,q,jを読みだす。jは0から255までの整数でL2層のニューロン番号を表す。添え字はiとqが先に変化し、1,792個のw´i,q,jを読みだす度に、jが1ずつ増加する。
カウンター31は、図示しない8ビットカウンター20のリセット信号と同一のリセット信号によって予め0になっている。
The counter 31 counts each time a count-up signal of 7 × 256 = 1,792 times (114.7 [MHz]) the count-up signal input to the
The
メモリ25の記憶容量は、8[bit]×256×7×256=459[KB]である。L1層のi番目のニューロンからL2層のj番目のニューロンへのシナプス結合の重み
w´i,q,jは、図示しない回路によって、メモリ25の端子Iを通して予め格納されている。
The storage capacity of the
メモリ25は、後述するCLK1の周波数である114.7[MHz]でシナプス結合の重みw´i,q,jを読みだし、アンドゲート26に送る。
The
アンドゲート26は、メモリ24Aまたはメモリ24Bが読み出した1ビット信号a´i,p,qと、メモリ25が読み出した8ビット信号w´i,q,jとの乗算を行う。アンドゲート26は、乗算結果yi,p,q,j=a´i,p,q×w´i,q,jを加算器27に送る。
The AND
加算器27は、アンドゲート26の出力データyi,p,q,jを受け取り、L2層のj番目のニューロン毎に、iとqに関する総和を計算する。総和計算を行う際に、加算器27は、後述するCLK1の周波数である114.7[MHz]で順次、yi,p,q,jをその前のCLK1までに計算された部分和に加算する。部分和は、アンドゲート28が供給する。
加算器27は、L2層のj番目のニューロンの、yi,p,q,jのiとqに関する総和Yp,jを計算し終えると、当該和Yp,jを大小比較器29に送る。
The
The
アンドゲート28は、L2層のj番目のニューロンの総和計算の最初に端子44に制御信号0が入力されると、0を加算器27の片側入力へ出力し、部分和が0の状態から総和計算が始まるように制御する。
When the
大小比較器29は、加算器27で計算された前記総和Yp,jを受け取り、端子43から図示しないレジスタまたは外部から供給される閾値データθよりも当該総和Yp,jが大きい場合に、1を出力する。大小比較器29は、それ以外の場合は、0を出力する。
The
ラッチ30は大小比較器29が出力した信号を受け取り、端子45から入力されたタイミング信号が0から1に変化したときに、当該出力信号を記憶する。ラッチ30は記憶した当該信号を端子46から出力し、当該出力信号は、L2層のニューロンの出力信号となる。
The
なお、シナプス結合の重みには正負があるが、本発明の効果に影響しないので、本実施例では正のデータだけとして説明する。 Although the weight of the synapse connection is positive or negative, it does not affect the effect of the present invention. Therefore, in this embodiment, only the positive data will be described.
続いて、本実施例の動作を説明する。図5のニューラルネットでの処理が始まる前に、図示しない任意の方法によって、予めL1層のニューロンの入力データがメモリ21に格納されており、シナプス結合の重みデータもメモリ25に格納されている。また、カウンター20とカウンター23Aとカウンター23Bとカウンター31は図示しないリセット信号によって予め0になっている。
Subsequently, the operation of the present embodiment will be described. Before the processing in the neural network of FIG. 5 starts, the input data of the neurons of the L1 layer is stored in the
初めに、カウンター20のカウント値が0なので、メモリ21のアドレス入力が0になる。メモリ21はアドレス入力が0なので、0番地から(L1層の0番目のニューロンの)4ビットデータを読み出し、パルス列変調回路22に送る。
First, since the count value of the
パルス列変調回路22は、メモリ21から受け取った当該4ビットデータを15ビットデータに変換する。パルス列変調回路22は、当該15ビットデータの適当なビット位置のデータを選択し、自セルのメモリ24Aまたは24Bに出力する。同時に、P0端子を介して、当該選択したデータを隣接セルのメモリ24Aまたは24Bに出力する。
The pulse
次にデータの処理方法について、説明する。加算器27でa´i,p,q×w´i,q,jの総和を計算するに際して、データのビット位置pと、L2層のニューロンの番号であるjを固定し、L1層の番号iと入力端子の番号qについての総和を計算する。そのために、L2層に於いて端子P0〜P6から入力されるデータを一旦、メモリ24A又はメモリ24Bに格納し、最初のラウンド(ラウンド0)が終了した時点からL2層での処理に用いる。
ここで、ラウンドとは、L1層の0番から255番までのニューロンの各1つのデータ(1[bit]データ)をメモリ24Aまたは24Bに格納する一連の処理の単位である。
Next, a data processing method will be described. When the sum of a ′ i, p, q × w ′ i, q, j is calculated by the
Here, the round is a unit of a series of processing for storing each piece of data (1 [bit] data) of
続いて、データフローを説明する。図7は、図5に示す回路の動作を説明するためのタイミングチャートである。図7(a)において、一番上段は、64[kHz]で動作するクロックCLK0であり、4[ms]間のラウンド内に、256回オン、オフする。 Next, the data flow will be described. FIG. 7 is a timing chart for explaining the operation of the circuit shown in FIG. In FIG. 7A, the uppermost stage is a clock CLK0 operating at 64 [kHz], which is turned on and off 256 times within a round of 4 [ms].
2段目は、出力端子P0に出力される信号xi,k(iは0から255までの整数であり、L1層のニューロンの番号を表す。kは整数であり、ラウンド番号を表す)であり、ラウンドkにおける、i番目のニューロンの出力信号を表している。例えば、ラウンド0のクロック番号2では、端子P0から出力される信号はx2,0である。
The second stage is a signal x i, k (i is an integer from 0 to 255 and represents the number of a neuron in the L1 layer . K is an integer and represents a round number) output to the output terminal P0. Yes, it represents the output signal of the i-th neuron in round k. For example, in the
3段目は、メモリ24Aに格納されたデータを表す。「Valid」は、1,792個の有効な値がメモリ24A中に揃ったことを表している。つまり、ラウンドが偶数番目の1番目のCLK0から次のラウンドにおける1番目のCLK0がオンになるまでに、入(出)力端子P0〜P6から入力されて、メモリ24Aに書き込まれたデータである。
The third row represents data stored in the
4段目は、メモリ24Bに格納されたデータを表す。「Valid」は、1,792個の有効な値がメモリ24B中に揃ったことを表している。つまり、ラウンドが奇数番目の1番目のCLK0から次のラウンドにおける1番目のCLK0がオンになるまでに、入(出)力端子P0〜P6から入力されて、メモリ24Bに書き込まれたデータである。
The fourth row represents data stored in the
図7(a)のタイミングチャートにおいて、ラウンド0では、パルス列変調回路22は、図6に示す15ビットデータのLSB、すなわちビット0を出力するよう制御する。パルス列変調回路22は、当該LSBを出力端子P0から隣接するセルに出力するとともに、当該パルス列変調回路22が属するセルのメモリ24Aに出力する。
In the timing chart of FIG. 7A, in
なお、本実施例では、ラウンド0ではパルス列変調回路22は、毎CLK0の立ち上がりで、L1層の各ニューロンのデータを変換した15ビットデータのLSBを出力する。
In this embodiment, in
隣接セルのメモリ24Aでは、前記端子P0から出力されたデータを受信する。自セルのメモリ24Aでは、セルの配置が対称なので、入力端子P1〜P6から隣接セルのパルス列変調回路22が出力したデータを受信する。ここで、自セルのパルス列変調回路22の出力データと端子P1〜P6から入力されるデータとを合わせて7ビットのデータとし、メモリ24Aは、当該7ビットデータを0番地に格納する。
The
図7(b)のタイミングチャートは、ラウンド1においてCLK0の1番目のクロックの時間幅を拡大したものである。図7(b)において、一番上段は、114.7[MHz]で動作するクロックCLK1であり、15.6[μs](=4[ms]÷256)中に、1,792回オン、オフする。
In the timing chart of FIG. 7B, the time width of the first clock of CLK0 in
2段目は、端子42Aに入力されるカウントアップ信号である。15.6[μs]中に、256回オン、オフする。
3段目は、カウンター23Aが出力するデータQ−23Aである。端子42Aに入力されるカウント信号が立ち上がる度に1ずつ増加する。
The second stage is a count-up signal input to the terminal 42A. Turns on and off 256 times during 15.6 [μs].
The third level is data Q-23A output from the
4段目は、メモリ24Aまたはメモリ24Bが出力する信号a´i,p,qである。
The fourth level is signals a ′ i, p, q output from the
5段目は、メモリ25が出力するシナプス結合の重みw´i,q,jである。
The fifth row shows synaptic connection weights w ′ i, q, j output from the
6段目は、加算器27の出力である。Σyi,qはyi,qのiとqに関する和である。ここで、yi,qは、あるCLK1の直前のクロックで出力されたa´i,p,qとw’i,q,jの積である。任意のL2層のニューロン22jについての総和計算を行う間はpとjが一定なので、タイミングチャートを見やすくする為に、添え字pと添え字jの表示を省略している。
The sixth stage is the output of the
加算器27は、アンドゲート26が出力したyi,qを受け取り、直前のクロックまでに算出したyi,qの部分和に、当該yi,qを加算する。従って、加算器27は、CLK1が1,792回オンすると、L2層のj番目のニューロンに入力される信号であるyi,qのiとqに関する和Yjを算出する。ここで、添え字pの表示を省略している。
7段目は、ラッチ30が出力する端子46の信号を表している。「Valid」は、有効な値を表している。端子46の信号は、L2層のj番目のニューロンの出力を表している。ラッチ30は、L2層のj番目のニューロンの出力を端子46に15.6[μs]間出力する。
The
The seventh row represents the signal of the terminal 46 output from the
端子41に入力される信号と端子42Aに入力される信号が立ち上がり、8ビットカウンター20と8ビットカウンター23Aのカウント値がu(uは整数)になると、メモリ21は、u番地のデータを読みだし、パルス列変調回路22に出力する。
パルス列変調回路22は、メモリ21が出力した当該データを受け取り、15ビットデータに変換する。
When the signal input to the terminal 41 and the signal input to the terminal 42A rise and the count values of the 8-
The pulse
そして、パルス列変調回路22は、当該15ビットデータのうち、LSBだけをメモリ24Aに出力するとともに、端子P0を介して隣接するセルのメモリ24Aへ出力する。そして、メモリ24Aは、端子P0から出力されるデータと端子P1〜P6から入力されるデータとを合わせた7ビットのデータを、u番地に格納する。
このようにして、カウンター20とカウンター23Aが255を超えて0に戻るまで、データの転送が行われるとラウンド0が終了する。
Then, the pulse
In this way, the
L1層からL2層へ256個(256ビット)のデータを4[ms]で転送するので、一連の処理速度は64[kHz]である。次のラウンド1では、パルス列変調回路22は15ビットデータのうち、最下位ビットから1ビット上位のデータをメモリ24Bに出力する。
Since 256 (256 bits) data is transferred from the L1 layer to the L2 layer in 4 [ms], a series of processing speeds is 64 [kHz]. In the
メモリ24Bは、自セルのパルス列変調回路22が出力したデータと隣接したセルのパルス列変調回路22が出力したデータとを受け取り、当該データを格納する。
この様にして、ラウンドが切り替わるごとに、メモリ24Aと24Bが交互に使われる。
The
In this way, the
ラウンド14で、パルス列変調回路22が、前記15ビットデータのうち最上位ビットのデータを自セルのメモリ24Aと隣接するセルのメモリ24Aに転送し終わると、メモリ21に入っているデータの処理が終わる。更に、ニューラルネットでの処理を継続する場合は、図示していない外部回路により、メモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にして、ニューラルネットでの処理と並行して、外部回路により次のデータを書き込んでおく。ここまでで、L1層のニューロンの動作についての説明を終了する。
When the pulse
次に、L2層のニューロンの動作について説明する。図7(a)において、ラウンド0が終わり、メモリ24Aに1,792(=256[ニューロン]×7[セル])個のaiが揃うと、ラウンド1における1番目のCLK0の立ち上がりから、L2層のニューロンにおける処理が始まる。
Next, the operation of the L2 layer neuron will be described. In FIG. 7A, when
L2層側では1個のニューロン当たり、1,792回の積和演算をしなければならないので、図7(b)に示すようにL1層側の1,792倍のスピード即ち、114.7[MHz]で処理する。 On the L2 layer side, 1,792 product-sum operations must be performed for each neuron, so as shown in FIG. 7B, the speed is 1,792 times that of the L1 layer side, that is, 114.7 [ [MHz].
メモリ24Aは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、当該7ビットデータを並直変換して7倍の114.7[Mbps]の1ビット信号a´i,p,qにする(図7(b)4段目)。この動作とともに、メモリ25は、対応する8ビットのシナプス結合の重みデータw´i,q,jを114.7[MHz]で読み出し、アンドゲート26に出力する(図7(b)5段目)。
The
アンドゲート26は、入力されたa´i,p,qとw´i,q,jが揃うと、当該入力同士を乗算して、8ビットのyi,q(=a´i,p,q×w´i,q,j)を算出する。ここで、L2層の1個のニューロンについての総和計算の間はpとjは一定なので、これらの表記を省略している。アンドゲート26は、算出したyi,qを加算器27に出力する。
When the input a ′ i, p, q and w ′ i, q, j are aligned, the AND
加算器27は、順次yi,qを、前のCLK1までに算出された部分和に加算して、次のCLK1の立ち上がりでiとqに関するyi,qの次の部分和を算出する(図7(b)6段目)。総和計算の最初に、端子44に0が入力され、加算器27の片側に入力されるデータが0になることによって、部分和が初期化される。
The
総和計算が終わると、大小比較器29は、当該総和Yjを閾値θと比較し、総和Yjが閾値θよりも大きければ出力を1にし、小さければ出力を0にする。この出力は114.7[MHz]のパルス状に出る。しかし、そのままの出力ではその後の処理の際に扱いづらい。
When the summation calculation is completed, the
そこで、ラッチ30は、端子45から入力されるタイミング信号によって、大小比較器29が出力したデータを保持し、64[Kbps]の信号にして出力する。
例えば、Hebbの学習則によってメモリ25の内容を変化させる場合は、ラッチ30をメモリに置き換えて、L2層の出力データを当該メモリに記録する。
Therefore, the
For example, when the contents of the
なお、シナプス結合の重みwi,jを格納するメモリ25は、自セルのL1層のニューロンについての重み情報と、隣接セルのニューロンについての重み情報とを混在して格納している。これが不便な場合は、端子P0〜P6毎にメモリ25を7個に分割することも可能である。そして、アンドゲート26と、加算器27と、アンドゲート28をそれぞれ7回路分用意すれば、メモリ25の内容が扱い易くなるだけでなく、加算器27の計算速度を1/7の16.4[MHz]にできる。
Note that the
本実施例では、L1層からL2層へはパルス列によって情報が伝わる、所謂パルスニューラルネットについて説明したが、本発明はこれに制限されるものではなく、情報を複数ビットによって伝えるニューラルネットでも同様に適用できる。その適用例を図8に示す。 In this 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 a neural network that transmits information by a plurality of bits is similarly used. Applicable. An example of the application is shown in FIG.
図8は、本発明の一実施形態による回路ユニットを信号が複数ビットで表されるニューラルネットワークで用いるニューロン群を模擬した回路図である。図8の回路は、L1層からL2層へ伝える信号a´i,qを1ビットから4ビットに変更した回路である。それに伴い、図8の回路では、図5のアンドゲート26を乗算器50に置換し、端子P0〜P6からメモリ24Aまたはメモリ24Bへの配線を7本から28本に増加させ、メモリ24Aまたはメモリ24Bから乗算器50への配線を1本から4本に増加させたものである。
FIG. 8 is a circuit diagram simulating a neuron group that uses a circuit unit according to an embodiment of the present invention in a neural network in which a signal is represented by a plurality of bits. The circuit of FIG. 8 is a circuit in which the signals a ′ i, q transmitted from the L1 layer to the L2 layer are changed from 1 bit to 4 bits. Along with this, in the circuit of Figure 8, by replacing the
図8の回路のうち、図5の回路と異なる点についてのみ、以下で説明する。
本実施例ではパルス列変調回路が不要なので、メモリ21から読み出したデータをそのまま、メモリ24A、メモリ24B及び出力端子P0に出力する。
Only the differences of the circuit of FIG. 8 from the circuit of FIG. 5 will be described below.
In this embodiment, since the pulse train modulation circuit is unnecessary, the data read from the
メモリ24Aとメモリ24Bは、28本の信号線を介して、4ビット幅の端子P0と入力端子P1〜P6から入力されるデータとを合わせて28ビット幅のデータとし、それらを順次格納する。従って、メモリ24Aとメモリ24Bの記憶容量はそれぞれ4倍(28[bit]×256)必要になる。
乗算器50は、メモリ24Aまたはメモリ24Bが読みだしたa´i,qと、メモリ25が読みだしたシナプス結合の重みw´i,q,jを乗算し、加算器27に出力する。このように、パルスニューラルネット以外でも、本発明は適用できる。
The
The
上記例の場合、端子P0から出力される情報は64[kbps]という低速な4本の信号線で送られることになり、それを受け取るP1〜P6の入力端子はそれぞれ4ビット幅になる。一般的に、LSIの端子やPCB上の配線などを増設することはコストを高めるので、これでは無駄である。 In the case of the above example, the information output from the terminal P0 is sent through four low-speed signal lines of 64 [kbps], and the input terminals of P1 to P6 that receive it have a 4-bit width. In general, adding an LSI terminal or a wiring on a PCB increases costs, and this is useless.
そこで、メモリ21の出力部に並直変換器を入れてデータ伝送速度が4倍の1本の信号線にすれば、隣接セル間を1本の信号線で接続できる。並直変換された信号を受け取る側では、それをそのまま7ビットの信号として4倍の速度でメモリ24Aまたはメモリ24Bに書き込むこともできるし、或いは直並変換し直して、28ビット幅のデータとして書き込むこともできる。
Therefore, if a parallel-to-parallel converter is inserted in the output section of the
また、図5および図8の本発明の実施例では、L2層の仮想ニューロンは前のラウンドでの処理結果を無視するものとして説明したが、時間履歴を考慮した処理をしてもよい。
図9は、総和計算結果の時間履歴を考慮するニューロンを実現するための回路図である。例えば、図8の回路の乗算器50から大小比較器29までの回路を図9の回路で置換した回路によって、加算器27が算出した総和が適当に減衰されて、次のラウンドでの総和計算の初期値になる。
In the embodiments of the present invention shown in FIGS. 5 and 8, the virtual neuron in the L2 layer has been described as ignoring the processing result in the previous round, but processing may be performed in consideration of the time history.
FIG. 9 is a circuit diagram for realizing a neuron that considers the time history of the summation calculation result. For example, the sum calculated by the
図9に示す総和計算結果の時間履歴を考慮する回路は、乗算器50と、加算器27と、大小比較器29と、乗算器52と、メモリ53と、累積加算の最初にメモリ53のデータを加える為のセレクタ51とを用いて構成されている。乗算器50と、大小比較器29とは図8と同じであるため、説明を省略する。
The circuit considering the time history of the sum calculation result shown in FIG. 9 includes a
メモリ53は、図示しない回路によって、初めに全てのアドレスに0が格納されている。メモリ53は、L2層のj番目のニューロンの総和計算の最初に、そのj番地に格納されている前回のラウンドでの総和計算結果が減衰されて格納されたデータを読みだして、セレクタ51のA入力へ送る。
セレクタ51は、L2層のj番目のニューロンの総和計算の最初に、端子48から入る信号が0になり、メモリ53から受けとった当該データを、端子Yに出力する。その後は、端子48から入る信号が1になり、加算器27が出力する部分和を端子Yに出力する。
加算器27は、L2層のj番目のニューロンの総和計算の最初にセレクタ51を介して、メモリ53に格納されている前回のラウンドでの総和計算結果が減衰されたデータを受け取り、別の入力から入るa´0,0×w´0,0,jとの部分和を計算する。その後セレクタ51は加算器27が算出する部分和を出力するので、順次a´i,q×w´i,q,jを累積加算する
乗算器52は、加算器27が計算した総和に、端子49から入力される図示しないレジスタ又は外部から供給される一定時間後の減衰率を与える信号を乗算し、当該乗算結果をメモリ53に出力する。但し、大小比較器29の出力が1になる場合は、即ちニューロンが発火したので、次回の総和計算を0から始める為に、乗算器52は、図示しない回路によってその出力を0にし、当該0をメモリ53へ送る。
In the
At the beginning of the sum calculation of the j-th neuron in the L2 layer, the
The
メモリ53は、乗算器52が出力した減衰された総和計算結果を受け取り、当該データをj番地に書き込む。
The
セレクタ51は、端子48に入力された信号Sによって、メモリ53から入力された信号Aと加算器27から入力された信号を切り替え、当該切り替えた信号を端子Yから加算器27に出力する。
The
図9に示す出力の時間履歴を考慮する回路を用いると、前のラウンドで計算された総和に減衰率を掛けたデータを加算器27の片方の入力端子に入力させることができる。これによって、時間履歴を考慮した処理をさせることができる。
If the circuit considering the time history of the output shown in FIG. 9 is used, data obtained by multiplying the sum calculated in the previous round by the attenuation factor can be input to one input terminal of the
図5の実施例では、L2層に於いて、端子P0〜P6から入力されたデータを一旦、メモリ24A又はメモリ24Bに格納し、1回目のラウンドが終了した時点からL2層での処理に用いていた。これはL2層のj番目のニューロンに対するΣ(a´i,p,q×w´i,q,j)の計算を行うに際して、L2層のニューロンの番号であるjを固定し、L1層の番号iと端子番号qについての総和を一度に計算する為である。ところで、a´i,p,qが7個(a´i,p,0〜a´i,p,6)到着する度にa´i,p,q×w´i,q,jを全てのjについて計算し、それを前回のa´i―1,p,qが到着した時点までに計算した、L2層のニューロン毎の部分和に加算して新たな部分和とし、当該部分和を一旦メモリに格納し、次の、a´i+1,p,qが到着した時に前記メモリから当該部分和を読み出して新たな部分和の計算に用いる、という手順によって総和を計算することも可能である。
In the embodiment of FIG. 5, in the L2 layer, the data input from the terminals P0 to P6 is temporarily stored in the
その回路例を図10に示す。図10は、本発明の一実施形態による回路ユニットをパルスニューラルネットワークで用いるニューロン群を模擬した別の回路図である。図5の回路と比較して、メモリ24Aとメモリ24Bの代わりに、端子P0〜P6とアンドゲート26の間に並直変換回路54が挿入されており、アンドゲート28の代わりに、セレクタ51とメモリ55が挿入されている。図5の回路と異なる点についてのみ以下で説明する。
An example of the circuit is shown in FIG. FIG. 10 is another circuit diagram simulating a neuron group using a circuit unit according to an embodiment of the present invention in a pulse neural network. Compared with the circuit of FIG. 5, instead of the
並直変換回路54は端子P0〜P6から入力された7ビットのデータを並直変換し、1ビット信号a´i,p,qとしてアンドゲート26に出力する。
加算器27は、アンドゲート26が出力したデータとセレクタ51が出力したデータを受け取り、当該2つのデータを加算し、当該加算したデータをセレクタ51とメモリ55と大小比較器29に出力する。
The parallel-to-
The
メモリ55は、加算器27が出力したj番目のニューロンの総和計算途中の部分和を受け取り、それを一時的にj番地に格納する。また、メモリ55は、図示されていない回路から端子Aに入力された信号に応じて、データを読み出してセレクタ51に出力する。
セレクタ51は、その入力端子48が0の場合は0を加算器27に送り、入力端子48が1の場合はメモリ55が出力したデータを加算器27に送り、入力端子48が2の場合は加算器27が出力したデータを加算器27に送る。
The
When the
続いて、図10の回路の処理の流れを説明する。まず、L1層から0番目のニューロンのデータa´0,0,q(qは0〜6の整数)が7個到着すると、メモリ25はL2層のニューロン番号0の、端子P0からの信号に対応するシナプス結合の重みデータw´0,0,0から端子P6からの信号に対応するシナプス結合の重みデータデータw´0,6,0を順に読み出す。
Next, the process flow of the circuit of FIG. 10 will be described. First, when seven pieces of data a ′ 0,0, q (q is an integer of 0 to 6) of the zeroth neuron arrive from the L1 layer, the
次に、アンドゲート26は、並直変換器54が出力したa´0,0,qとメモリ25が出力した重みデータw´0,q,0を乗算し、加算器27に出力するという処理を、qが0から6まで繰り返す。
セレクタ51の入力端子48は、qが0のタイミング即ち、a´0,0,0×w´0,0,0が加算器27に入る時に0になり、総和計算の初期値を0にする。その後、qが1から6のタイミングでは2になり、加算器27の出力a´0,0,q×w´0,q,0の累算を行う。
加算器27が、a´0,0,6×w´0,6,0までの累算を行うと、その計算結果(部分和)を、メモリ55が0番地に格納する。
以下同様にして、L2層のニューロン番号255まで同様の計算を行い、メモリ55が255番地に部分和を格納するまで、処理を繰り返す。
Next, the AND
The
When the
Similarly, the same calculation is performed up to the
次に、L1層から1番目のニューロンのデータa´1,0,qが7個到着すると、同様に計算するが、前回の処理でセレクタ51の端子48が0になったタイミングで、端子48に入る信号は1になる。同時にメモリ55が、格納している部分和を読み出してセレクタ51に送る。そして、L1層の0番目のニューロンからの出力に応じて計算した部分和に、新たにL1層の1番目のニューロンからの出力に応じて計算したデータ(a´1,0,q×w´1,q,j)を加算し、その結果をメモリ55のj番地に記憶する。
以下、同様の操作をL1層の255番目のニューロンまで繰り返す。
Next, when seven pieces of data a ′ 1, 0, q of the first neuron arrive from the L1 layer, the same calculation is performed, but at the timing when the terminal 48 of the
Thereafter, the same operation is repeated up to the 255th neuron in the L1 layer.
このように処理することで、L1層から255番目のデータが到着した時点で、L2層の全ての処理が終了する。なお、並直変換回路54は後段のアンドゲート26や加算器27などを7回路分用意すれば省略可能である。また、メモリ55は図9の実施例に於けるメモリ53と共用できる。また、L1層の255番目のデータまでの部分和は、即ち総和になる。当該総和が計算された時点で、コンパレータ29は当該総和と閾値θを比較し、当該比較結果をラッチ30に出力する。ラッチ30は、当該比較結果を図示しない回路から端子45に供給されるタイミング信号によってラッチし、当該ラッチした信号を端子46から出力する。従って、L2層の出力となる端子46の出力信号は、L1層の出力信号の256倍の速度でバースト的に出ることになる。ラッチ30を1[bit]×256のメモリに置き換え、大小比較器29のデータを前記メモリに一旦格納し、L1層の出力データと同じ速度で前記メモリからデータを読み出して出力することで、L1層と同じ速度でL2層から出力データを出力することもできる。
By processing in this way, when the 255th data arrives from the L1 layer, all the processing in the L2 layer is completed. Note that the parallel-to-
以上、説明したように本発明の別の実施例では、L1層からのデータを一時的に格納するメモリ24Aと24Bを省略できるが、計算途中のデータを格納するメモリ55が必要になる。加算器27がオーバーフローしない為には16ビット以上必要であるから、メモリ55の容量は16[bit]×256になる。
As described above, in another embodiment of the present invention, the
一方、メモリ24Aと24Bの容量はそれぞれ7[bit]×256である。メモリ24Aと24Bのワード数はL1層のニューロン数に比例し、メモリ55のワード数はL2層のニューロン数に比例する。L1層とL2層のニューロン数に応じて、図5の実施例か図10の実施例の、必要なメモリ量が少ない方を選ぶことができる。
On the other hand, the capacities of the
<実施例1の効果>
本実施例1の方法によれば、或るセルのL1層のニューロンが出力する出力データを、その出力信号が供給されるL2層の全てのニューロンが共有するので、データを受け取るL2層のニューロンを識別する必要がない。従って、出力データと一緒に、AER法で必要であった宛先アドレス情報を送る必要がなくなる。また、L1層とL2層間で同期してデータ転送を行い、L2層ではデータを受け取った時刻からL1層のニューロンの番号を識別するので、AER法でPayloadとして送っていた送信元アドレス情報も不要になる。L1層からL2層へ256[bit]のデータを4[ms]で送るとすると、データ転送速度は256[bit]÷4[ms]=64[Kbps]と非常に低速であるので、実装が容易である。
<Effect of Example 1>
According to the method of the first embodiment, the output data output by the L1 layer neuron of a certain cell is shared by all the neurons of the L2 layer to which the output signal is supplied. There is no need to identify. Therefore, it is not necessary to send the destination address information required by the AER method together with the output data. In addition, data is transferred synchronously between the L1 layer and the L2 layer, and the L2 layer identifies the number of the neuron in the L1 layer from the time when the data is received, so the source address information sent as Payload by the AER method is also unnecessary become. If 256 [bit] data is sent from the L1 layer to the L2 layer at 4 [ms], the data transfer rate is very low at 256 [bit] ÷ 4 [ms] = 64 [Kbps]. Easy.
また、L1層に必要であった宛先アドレス情報を記憶する為のメモリも不要になる。図2(b)から明らかなように、セル間の配線は隣接セルとの間のローカル配線であり、セルが配置されていない外周部に新たにセルを追加しても、既存の配線には全く影響を与えない。つまり、必要に応じてセルが追加可能であり、隣接するセル間でのみ配線するので、セル数を増加しても、既存のセル間に配線が増加することはない。ゆえに、セル間の通信速度及びセル内にある各ニューロンの演算速度は一定に保たれる。 Further, a memory for storing destination address information necessary for the L1 layer is also unnecessary. As is clear from FIG. 2 (b), the wiring between cells is a local wiring between adjacent cells. Even if a new cell is added to the outer periphery where no cell is arranged, the existing wiring No effect at all. That is, cells can be added as necessary, and wiring is performed only between adjacent cells. Therefore, even if the number of cells is increased, wiring does not increase between existing cells. Therefore, the communication speed between cells and the operation speed of each neuron in the cell are kept constant.
以上説明したように、本実施例の技術を使うと、1つのセル当たりL1層とL2層の間を1本の低速でローカルな信号線で接続することにより、L2層の1ニューロン当たり最大1,792個のシナプス結合を持つニューラルネットを容易に構成できる。1ニューロン当たりの最大シナプス結合数を増減したい場合には、セルの各層に存在するニューロン数を増減すれば良い。 As described above, when the technology of this embodiment is used, a maximum of 1 per neuron in the L2 layer can be obtained by connecting the L1 layer and the L2 layer per cell with one low-speed local signal line. , 792 neural networks having synaptic connections can be easily constructed. In order to increase or decrease the maximum number of synaptic connections per neuron, the number of neurons existing in each layer of the cell may be increased or decreased.
例えば、1個のセルのL1層とL2層にそれぞれ1,024個のニューロンを含めれば、L2層の1ニューロン当たり最大7,168(=1、024×7)個のシナプス結合が作れる。但し、L1層とL2層を接続する信号に必要なデータ転送速度は、L1層に含まれるニューロンの数に比例するので4倍の256[Kbps]になり、シナプス結合の重みを格納するメモリ25はL1層に含まれるニューロンの数と、L2層に含まれるニューロンの数の両方に比例するので、16倍の7[MB](=8[bit]×1,024×7×1,024)になる。
For example, if 1,024 neurons are included in each of the L1 layer and the L2 layer of one cell, a maximum of 7,168 (= 1, 024 × 7) synaptic connections can be made per neuron in the L2 layer. However, since the data transfer rate required for the signal connecting the L1 layer and the L2 layer is proportional to the number of neurons included in the L1 layer, the data transfer rate is 256 [Kbps], which is four times the
また、メモリ25や加算器27等は16倍で動作させなければならないが、既に述べたようにメモリを分割し、加算器27等を複数個用意することで、回路の動作速度を低下させることができる。
In addition, the
本実施例では一回のデータ転送時間(若しくは計算時間)を4[ms]としたが、本発明はこれに制限されるものではなく、任意の時間を設定できる。セル間を結ぶ信号線におけるデータ転送速度は低速であるので、当該速度を上げることにより、システム全体を更に高速化することが可能である。 In this embodiment, one data transfer time (or calculation time) is 4 [ms], but the present invention is not limited to this, and an arbitrary time can be set. Since the data transfer speed on the signal line connecting the cells is low, the entire system can be further increased by increasing the speed.
ニューロンを仮想的な平面に並べ、その平面を正六角形(セル)で分割し、各セルに入るニューロンの個数を、例えば256(入力層L1)+256(中間層L2)とする。或るセルのL1層の出力は、そのセル及びそのセルに隣接する6個のセルのL2層のニューロンとだけ、且つL2層の全てのニューロンとシナプス結合を作る。 The neurons are arranged in a virtual plane, the plane is divided into regular hexagons (cells), and the number of neurons entering each cell is, for example, 256 (input layer L1) +256 (intermediate layer L2). The output of the L1 layer of a cell makes a synaptic connection only with the L2 layer neuron of that cell and the six cells adjacent to that cell, and with all the neurons of the L2 layer.
このように決めることで、L1層の1個のニューロンからは1ビットのデータをL2層に転送すればよい。L2層では7[bit]×256のメモリを2個用意し、L1層のニューロンからのデータ出力に同期して、このメモリに格納する。このアーキテクチャにより、従来のAER技術で必要であったアドレス情報を送る必要がなくなり、L1層の256個のニューロンから256ビットのデータを伝送するだけでよい。 By determining in this way, 1-bit data may be transferred to the L2 layer from one neuron in the L1 layer. In the L2 layer, two 7 [bit] × 256 memories are prepared and stored in this memory in synchronization with the data output from the neurons in the L1 layer. With this architecture, it is not necessary to send address information required in the conventional AER technology, and only 256-bit data needs to be transmitted from 256 neurons in the L1 layer.
1億ニューロンを持つニューラルネットを構築するには、例えば、L1層(512個)、L2層(512個)、L3層(512個)、L4(64個)の4階層のニューラルネットを用意し、L1層はニューロン数に数えないとすると、1セル当たり1,088ニューロンとなるので、約9万個のセルを連結すればよい。この場合、セル間を接続する信号線はL1層、L2層、L3層からの出力データを時分割多重化し、1,536(=512[bit]×3)ビットのデータを転送する。 To construct a neural network with 100 million neurons, for example, prepare a four-layer neural network of L1 layer (512), L2 layer (512), L3 layer (512), and L4 (64). If the L1 layer is not counted in the number of neurons, there are 1,088 neurons per cell, so it is sufficient to connect approximately 90,000 cells. In this case, the signal lines connecting the cells time-division-multiplex the output data from the L1, L2, and L3 layers, and transfer 1,536 (= 512 [bit] × 3) bit data.
図5の実施例から明らかなように、L2層の出力信号はL1層の出力信号と同じデータレートなので、時分割多重化は容易である。これを4[ms]で行う場合は、データ転送速度を384[Kbps]にする。つまり、この場合も1本の低速な信号線だけでセル間を接続でき、仮想ニューロン回路自体も少数の加算器とメモリで実現できるので、実時間で並列動作する大規模ニューラルネットを実現することができる。 As is clear from the embodiment of FIG. 5, the output signal of the L2 layer is the same data rate as the output signal of the L1 layer, so that time division multiplexing is easy. When this is performed at 4 [ms], the data transfer rate is set to 384 [Kbps]. That is, in this case as well, cells can be connected with only one low-speed signal line, and the virtual neuron circuit itself can be realized with a small number of adders and memories, so that a large-scale neural network that operates in parallel in real time can be realized. Can do.
本発明の技術ではシナプス結合の重みデータを格納するメモリの、数%から数10%に0を格納することになりメモリを多用することになるが、メモリを多用する代わりに演算部やデータ通信部を低速にすることができる。これまで、半導体のプロセス技術の進歩により、トランジスタの幅が一定ならば、ゲート長が短くなるのにほぼ反比例して、電流駆動能力が上昇してきた。そして、トランジスタの電流駆動能力の上昇にほぼ比例して、トランジスタのスイッチング速度が上がり、その結果、回路の動作速度も向上した。 In the technology of the present invention, 0 is stored in several percent to several tens of percent of memory for storing synaptic connection weight data, and the memory is used extensively. The part can be slowed down. Up to now, with the progress of semiconductor process technology, if the width of a transistor is constant, the current drive capability has increased in inverse proportion to the reduction in gate length. Then, the switching speed of the transistor increased substantially in proportion to the increase of the current driving capability of the transistor, and as a result, the operation speed of the circuit also improved.
しかし、最近ではトランジスタの電流駆動能力に比べて配線容量が相対的に大きくなり、プロセス技術が進歩しても回路の動作速度は向上し難くなっている。一方、トランジスタのサイズはゲート長の2乗にほぼ反比例するので、今後も使用できるメモリ量の増大が期待できる。従って、本発明のアーキテクチャは、これからの半導体の進歩による恩恵を受けられると考える。 However, recently, the wiring capacity is relatively larger than the current driving capability of the transistor, and it is difficult to improve the operation speed of the circuit even if the process technology advances. On the other hand, since the transistor size is almost inversely proportional to the square of the gate length, an increase in the amount of memory that can be used in the future can be expected. Thus, we believe that the architecture of the present invention can benefit from future semiconductor advances.
なお、特許第3586464号には、或るセルから近接するセルと同心円状に接続する方法が記されているが、この特許でいうセルは1個のニューロンに相当しているので、本発明で説明したセルとは全く異なる。この特許ではニューロン間を直接接続しているので、大規模なニューラルネットを構築することは困難である。 Patent No. 3586464 describes a method of concentrically connecting a certain cell to a neighboring cell. Since the cell in this patent corresponds to one neuron, It is completely different from the cell described. In this patent, since neurons are directly connected, it is difficult to construct a large-scale neural network.
<回路ユニットの実施例2の課題>
次に、本発明の回路ユニットの第2の実施例について、興奮性ニューロン群と抑制性ニューロン群の混在を実現する回路ユニット(セル)について説明する。図5に示す実施例1の回路では、メモリ25に格納されているシナプス結合の重みの値w´i,q,jは、アンドゲート26によってL1層からの信号a´i,p,qと乗算されてa´i,p,q×w´i,q,jとなり加算器27に入力される。この従来技術のままで抑制性ニューロンを実現するには、重みデータメモリ25に格納されている値w´i,q,jに符号情報を持たせる方法が一般的である。
<Problem of
Next, a circuit unit (cell) that realizes a mixture of excitatory and inhibitory neuron groups will be described for a second embodiment of the circuit unit of the present invention. In the circuit of the first embodiment shown in FIG. 5, the synaptic connection weight values w ′ i, q, j stored in the
しかし、その方法ではメモリ25に必要な記憶容量が増大し、製造コストが上がってしまうという欠点がある。例えばメモリ25のビット幅を8とし、興奮性ニューロンとのシナプス結合の重みを表す正又は0の数に限定すれば、この8ビットデータを0〜255と解釈できるのでデータの分解能は1/255になる。
However, this method has the disadvantage that the storage capacity required for the
一方、重み情報が正負の値を持ち、負の数が2の補数で表されるとすると、この8ビットデータは−128〜127と解釈される。従って、興奮性ニューロンとのシナプス結合の重みを表す正又は0の値は0〜127となり、分解能が半分になってしまう。メモリ25のビット幅を8のままとすれば製造コストは増大しないが、シナプス結合の重みの分解能が半分になり、ニューラルネットとしての計算精度や記憶精度が低下してしまう。
On the other hand, if the weight information has a positive / negative value and the negative number is represented by 2's complement, the 8-bit data is interpreted as -128 to 127. Therefore, the value of positive or 0 indicating the weight of synaptic connection with the excitatory neurons is 0 to 127, and the resolution is halved. If the bit width of the
そこで、シナプス結合の重みデータの分解能を1/255に維持しようとすると、メモリ25のビット幅を9にしなければならず、9[bit]×256×7×256のメモリが必要になり、必要な記憶容量が458,752ビット分(12.5%分)増加してしまう。
Therefore, in order to maintain the resolution of the synaptic connection weight data at 1/255, the bit width of the
本実施例2の回路は、ニューラルネットの計算精度や記憶精度の低下を抑えるとともに、製造コストの増加も極力抑えながら、抑制性ニューロンやパワーニューロンを実現する方法を提供するものである。ここでパワーニューロンとは、通常のニューロンに比べて2倍、4倍と大きな影響を、次段のニューロンに与えるニューロンのことである。 The circuit of the second embodiment provides a method for realizing an inhibitory neuron and a power neuron while suppressing a decrease in calculation accuracy and storage accuracy of a neural network and suppressing an increase in manufacturing cost as much as possible. Here, the power neuron is a neuron that has a large influence on the next-stage neuron, which is twice or four times as large as that of a normal neuron.
或るニューロンが興奮性であるか抑制性であるかは、ニューラルネットの構造を決定した時点で決まる。また、或るニューロンがパワーニューロンであるか通常のニューロンであるかは、ニューラルネットの構造を決定した時点で決めることとする。これらはニューラルネットの学習や自己組織化によって変化することはない。この事実を利用して、抑制性ニューロンやパワーニューロンを実現する際に必要なトランジスタ数の増加を抑えることとする。 Whether a certain neuron is excitable or inhibitory is determined when the structure of the neural network is determined. Whether a certain neuron is a power neuron or a normal neuron is determined when the structure of the neural network is determined. These do not change with neural network learning or self-organization. By utilizing this fact, an increase in the number of transistors required to realize an inhibitory neuron or a power neuron is suppressed.
<回路ユニットの実施例2の説明>
図11は、本発明の第2の実施例である興奮性ニューロン群と抑制性ニューロン群の混在した回路ユニットの回路図である。図5の興奮性ニューロンだけを模擬した回路と同じ個所には同じ番号が振られている。図5の回路と比較すると、図11の回路は、図5の回路に8ビットカウンター23Cと符号格納器33とが追加され、図5の加算器27が加減算器32に置き換えられている。
<Description of Example 2 of Circuit Unit>
FIG. 11 is a circuit diagram of a circuit unit in which an excitatory neuron group and an inhibitory neuron group are mixed according to the second embodiment of the present invention. The same number is assigned to the same part as the circuit simulating only the excitatory neuron of FIG. Compared with the circuit of FIG. 5, the circuit of FIG. 11 has an 8-
符号格納器33は、L1層の各ニューロンに対応した符号情報(1[bit]×256のデータ)を記憶する。L1層の或る抑制性ニューロンがL2層のニューロン上に作るシナプス結合は、全て抑制性のシナプス結合になる。L1層の1個の抑制性ニューロンが、L2層の1,792個のニューロンと抑制性シナプス結合を作るとし、その重みデータ毎に符合ビットを持たせると、1,792ビットのデータが必要になる。一方、L1層の当該ニューロンが抑制性であるという情報を記憶すれば、1ニューロン当り1ビット記憶すれば良い。符号格納器33は、カウンター23Cが出力したデータに基づいて、そのデータに対応するアドレスにあるニューロンの符号情報を加減算器32へ出力する。
加減算器32は、符号格納器33が出力したニューロンの符号情報を受け取る。当該符号情報が0の場合、L1層のニューロンを興奮性ニューロンとみなして、加算器として動作し、アンドゲート26から受け取ったデータとアンドゲート28から受け取ったデータを加算し、加算後のデータをアンドゲート28と大小比較器29へ出力する。
The
The adder /
当該符号情報が1の場合、抑制性ニューロンとみなして、減算器として処理し、アンドゲート28から受け取ったデータから、アンドゲート26から受け取ったデータを減算し、減算後の値をアンドゲート28と大小比較器29へ出力する。
When the sign information is 1, it is regarded as an inhibitory neuron, processed as a subtractor, subtracts the data received from the AND
続いて、図11の回路の動作について説明する。L1層のニューロンは仮想的に256個のニューロン分が纏めて実現されており、ニューロン番号毎に興奮性か抑制性かが決まっている。そこで、ニューラルネットでの処理が始まる前に、ニューロン番号iに応じて興奮性の場合はsiを0に、抑制性の場合はsiを1に、図示しない任意の方法によって予め符号格納器33に書き込んでおく。全てのセルのニューロンは同一構造をとるとしているので、隣接セルのL1層の情報を別途持つ必要はない。 Subsequently, the operation of the circuit of FIG. 11 will be described. The neurons in the L1 layer are virtually realized by combining 256 neurons, and excitability or inhibition is determined for each neuron number. Therefore, before the processing in the neural network starts, s i is set to 0 in the case of excitability according to the neuron number i, s i is set to 1 in the case of inhibition, and the code storage unit is previously stored by an arbitrary method (not shown). Write to 33. Since the neurons of all cells have the same structure, it is not necessary to separately have information on the L1 layer of adjacent cells.
L1層のニューロンの入力データがメモリ21に、シナプス結合の重みデータがメモリ25に、それぞれ図示しない任意の方法によって予め格納されている。カウンター20とカウンター23Aとカウンター23Bとカウンター23Cとは、図示しないリセット信号によって予め0になっている。なお、メモリ25に格納されているのは重みデータの絶対値|w´i,q,j|である。
The input data of the L1 layer neurons is stored in the
計算が始まると、まずカウンター20がカウント値0をメモリ21に出力する。次に、メモリ21は、カウンター20から0のデータを受け取ると、0番地から4ビットデータを読み出してパルス列変調回路22へ出力する。
When the calculation starts, the
パルス列変調回路22は、メモリ21から4ビットデータを受け取り、当該4ビットデータを15ビットデータに変換し、当該15ビットデータをラウンド毎にLSBから順次、出力端子P0経由で、メモリ24Aまたはメモリ24Bに出力する。
The pulse
最初のラウンド0では、図6に示すデータのLSBだけを転送する。このデータは出力端子P0から外部に出力されると同時に、メモリ24Aに送られる。端子P0から出たデータは隣接セルで受信される。回路は対称なので、自分自身のセルは、入力端子P1〜P6で隣接セルが出力するデータを受信する。
In the
そこで、パルス列変調回路22の出力データと端子P1〜P6からのデータとを束ねて7ビットのデータとし、当該データをメモリ24Aの0番地に格納する。その後、端子41に入力される信号と端子42Aに入力される信号がアクティブになりカウンター20とカウンター23Aが1になると、メモリ21は1番地のデータを読み出し、パルス列変調回路22に出力する。
Therefore, the output data of the pulse
パルス列変調回路22は、メモリ21から1番地のデータを受け取り、当該データを15ビットデータに変換する。そして、パルス列変調回路22は、当該15ビットデータのうち、LSBをメモリ24Aへ出力する。また、その動作とともに、出力端子P0を介して、隣接するセルのメモリ24Aへ当該LSBを出力する。
The pulse
そして、メモリ24Aは、パルス列変調回路22からのデータと端子P1〜P6からのデータとを束ねて7ビットのデータとして、メモリ24Aの1番地に格納する。このようにして、カウンター20とカウンター23Aのカウント値が255を超えて0に戻るまでデータの転送が行われると、ラウンド0が終了する。
Then, the
L1層からL2層へ256個(256[bit])のデータを4[ms]で転送するので、一連の処理速度は64[kHz]である。次のラウンド1では、パルス列変調回路22はビット1のデータを送出し、転送されたデータはメモリ24Bに書き込まれる。この様にして、メモリ24Aとメモリ24Bを交互に使いながら処理を行う。ラウンド14でビット14の転送が終わると、メモリ21に入っているデータの処理が終わる。
Since 256 (256 [bit]) data is transferred from the L1 layer to the L2 layer in 4 [ms], a series of processing speeds is 64 [kHz]. In the
更に、ニューラルネットでの処理を継続する場合は、図示していない外部回路により、メモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にして、ニューラルネットでの処理と並行して、外部回路が次のデータを書き込んでおく。ここまでで、L1層のニューロンの動作についての説明を終了する。
Further, when the processing in the neural network is continued, new data is written into the
次に、L2層のニューロンの動作について説明する。ラウンド0が終わりメモリ24Aに1,792個のa´i,p,qが揃うとL2層で計算が始まる。L2層側では1個のニューロン当たり1,792回の積和演算をしなければならないので、L1層側の1,792倍の速度即ち、114.7[MHz]で処理する。L2層のj番目の仮想ニューロンではΣ(a´i,p,q×w´i,q,j)を計算することとする。ここでΣはiとqについての総和を表している。
Next, the operation of the L2 layer neuron will be described. When
メモリ24Aは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号a´i,p,qにし、当該信号a´i,p,qをアンドゲート26に出力する。またそれと同じタイミングでメモリ25は、シナプス結合の8ビットの重みデータ|w´i,q,j|を114.7[MHz]で読み出し、アンドゲート26に出力する。
The
アンドゲート26は、メモリ24Aが出力した信号a´i,p,qとメモリ25が出力した重みデータ|w´i,q,j|を受け取り、これらを乗算して、8ビットの0又は|w´i,q,j|し、加減算器32へ出力する。
更に、符号格納器33は、16.384[MHz]で1ビットの符号データ符号siを読み出し、それを加減算器32へ出力する。siはiが同一でqが0から6の7個のデータ|w´i,q,j|に対して共通に使う。
The AND
Further, the
符号siが0の場合は、加減算器32は、それまでに計算された部分和(アンドゲート28の出力)に当該a´i,p,q×|w´i,q,j|を足す。一方、符号siが1の場合は、それまで計算された部分和から当該a´i,p,q×|w´i,q,j|を引く。このようにして、jを固定して、iとqに対するa´i,p,q×w´i,q,jの和が計算される。
When the sign s i is 0, the adder /
総和計算の最初にはアンドゲート28の端子44に入力される信号が0になり、加減算器32の片側入力端子に入力されるデータが0になる。iとqについての1,792回の総和計算が終わると、加減算器32は、当該総和を大小比較器29に出力する。
At the beginning of the summation calculation, the signal input to the
大小比較器29は、加減算器32が出力した総和を受け取り、当該総和を閾値θと比較し、総和が閾値θよりも大きければ出力を1にし、小さければ出力を0にする。この出力は114.7[MHz]の周波数で、256クロック毎に1クロック幅のパルス状に出るので、そのままでは使い難い。そこで、ラッチ30の端子45に64[kHz]立ち上がりパルスを印加し、ラッチ30に大小比較器29が出力した当該比較結果を保持し、64[Kbps]の信号にして端子46に出力する。
The
以上説明したように、本発明の第2の実施例を用いると、シナプス結合の重みデータを格納するメモリ25の容量を増やさずに、興奮性ニューロンと抑制性ニューロンが混在するニューラルネットを実現できる。但し、L1層のニューロンの符号情報を格納するメモリ33が新たに必要になる。
As described above, when the second embodiment of the present invention is used, a neural network in which excitatory neurons and inhibitory neurons are mixed can be realized without increasing the capacity of the
メモリ33は256(=1[bit]×256)ビットなので、シナプス結合の重みを符号情報まで含めてメモリ25に格納する場合に比べて、増加するメモリの容量は1/1,792である。また、加算器27を加減算器32にする必要があるが、ここに必要なのは8ビット分のイクシクルーシブOR回路であり、増加するトランジスタ数はニューラルネット全体に必要なトランジスタ数に比べて極めて僅かである。
Since the
図12(a)に本発明の第2の実施例の変形例1である回路ユニットの回路図を示す。図11の回路で示した第2の実施例と同じ素子には、同じ番号が振ってある。図11の回路と比較すると、図12の回路は、符号格納器33の代わりに、大小比較器34を挿入したものである。
FIG. 12A shows a circuit diagram of a circuit unit which is a
大小比較器34は、カウンター23Cが出力するL1層のニューロン番号i(8ビット)を受け取り、図示しないレジスタ又は外部から供給される値α(8ビット)を端子47bで受けとる。大小比較器34は、iとαを比較し、iがαよりも小さい場合に、出力sを1にして加減算器32に出力し、iがαより大きいか等しい場合に、出力sを0にして加減算器32に出力する。これによって、ニューロン番号iがαよりも小さい場合に、当該ニューロン番号を付されたニューロンは抑制性ニューロンとなる。
The
本発明の第2の実施例では、L1層の任意の番号のニューロンを抑制性ニューロンに設定できる。しかし、ニューロンの番号は仮想的なものなので、それ自体に意味はない。そこで、L1層のニューロンの番号がαより小さいものは全て抑制性のニューロンであるとしても、ニューラルネットの動作として不都合を生じない。大小比較器34の出力信号sは、カウンター23Cの値即ちL1層のニューロンの番号がαより小さい場合に1になり、加減算器32で減算が行われる。回路の詳細な動作説明は省略する。
In the second embodiment of the present invention, any number of neurons in the L1 layer can be set as inhibitory neurons. However, since the neuron number is virtual, it has no meaning in itself. Therefore, even if all the neurons in the L1 layer whose number is smaller than α are inhibitory neurons, there is no inconvenience as the operation of the neural network. The output signal s of the
図12(b)には、本発明の第2の実施例の変形例2である回路ユニットの回路の一部を示す。図12(b)の回路は、図12(a)の大小比較器34の代わりに、アンドゲート34Bを挿入することとする。この例では、アンドゲート34Bは、カウンター23Cが出力する8ビットデータの最下位ビット(第0ビット)と最下位から1つ左に行ったビット(第1ビット)とを受け取り、アンドを取って、その結果を符号sとして、加減算器32に出力する。従って、番号が3、7、11、、、と、飛び飛びの番号のニューロンが抑制性になる。
FIG. 12B shows a part of a circuit of a circuit unit that is a second modification of the second embodiment of the present invention. In the circuit of FIG. 12B, an AND
なお、このアンドゲート34Bは必要に応じて、3入力や4入力にもできるし、アンドを取るビット位置を変更することもできる。或いは、L1層の半数を抑制性にする場合はアンドゲート34Bを省略し、カウンター23の出力の任意の1ビットを符号sとすることもできる。
カウンター23Cの使われないビットは実装する必要がない。具体的には、図12(b)に示す例では、8ビットカウンター23Cのビット2〜ビット7は使われないので、これらを実装する必要はなく、2ビットカウンターとして実装すれば十分である。
The AND
The unused bits of the
本発明の実施例2、実施例2の変形例1および実施例2の変形例2では、L1層からL2層へはパルス列によって情報が伝わる、所謂パルスニューラルネットについて説明したが、本発明はこれに制限されるものではなく、情報を複数ビットによって伝えるニューラルネットでも同様に適用できる。 In the second embodiment of the present invention, the first modification of the second embodiment, and the second modification of the second 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. The present invention is not limited to this, and the present invention can be similarly applied to a neural network that transmits information by a plurality of bits.
パルスニューラルネット以外で、抑制性ニューロン群を実現する回路例を図13に示す。L1層の各ニューロンの4ビットデータは4[bit]×256のメモリ21に蓄えられており、順次メモリ21から読みだされて4ビット幅の出力端子P0から出力される。その動作とともに、4ビット幅の入力端子P1〜P6から入力されるデータと合わせて28ビット幅のデータとし、28[bit]×256のメモリ24Aまたはメモリ24Bに格納する。
FIG. 13 shows an example of a circuit that realizes an inhibitory neuron group other than the pulse neural network. The 4-bit data of each neuron in the L1 layer is stored in the 4 [bit] × 256
メモリ24Aまたはメモリ24Bから読みだしたa´i,qと、シナプス結合の重みメモリ25から読みだした|w´i,q,j|を乗算器50によって乗算し、当該乗算結果を加減算器32によって累積する。このように、パルスニューラルネット以外でも本発明は適用できる。
The a ′ i, q read from the
<回路ユニットの実施例2の効果>
従来技術では、興奮性か抑制性かに拘わらず、ニューロンからの信号を受け取るシナプス結合の重み情報は、全てシナプス結合の重みデータを記憶するメモリに格納されていた。1個のニューロンの出力は1,000〜10,000個のシナプス結合を作り、これらのシナプス結合の重みは基本的に異なるので、1,000〜10,000個の重み情報を格納するメモリが必要である。
<Effect of
In the prior art, regardless of excitability or inhibition, all the synaptic connection weight information for receiving signals from neurons is stored in a memory for storing synaptic connection weight data. Since the output of one neuron creates 1,000 to 10,000 synapse connections, and the weights of these synapse connections are basically different, a memory for storing 1,000 to 10,000 weight information is provided. is necessary.
ところが、興奮性ニューロンから出る軸索は全て興奮性のシナプス結合を作り、抑制性ニューロンから出る軸索は全て抑制性のシナプス結合を作るので、1,000〜10,000個の重み情報の符号は全て同じである。従って、シナプス結合の重み情報を「符号」と「絶対値」に分けることで、符号情報を格納するメモリの容量を大幅に削減できる。本発明の第2の実施例では、この考えの下に符号情報を格納するメモリの容量を1/1,792に削減している。 However, since all axons coming out of excitatory neurons make excitatory synaptic connections, and all axons coming out of inhibitory neurons make inhibitory synaptic connections, the sign of 1,000 to 10,000 weight information Are all the same. Therefore, by dividing the synapse connection weight information into “code” and “absolute value”, the capacity of the memory for storing the code information can be greatly reduced. In the second embodiment of the present invention, the capacity of the memory for storing the code information is reduced to 1/1, 792 based on this idea.
本発明では、ニューロンを仮想ニューロンとして実装している。従って、個々のニューロンの番号に物理的な意味はない。従って、ニューラルネット全体の何割が抑制性ニューロンであるかという情報だけを使って、シナプス結合の符号情報を決定できる。本発明の実施例2の変形例1、実施例2の変形例2では、この考えの下に符号情報を格納するメモリそのものを省略することができる。これによって、回路面積を小さくすることができる。 In the present invention, neurons are implemented as virtual neurons. Therefore, the number of individual neurons has no physical meaning. Therefore, it is possible to determine the code information of synaptic connections using only information indicating what percentage of the entire neural network is inhibitory neurons. In the first modification of the second embodiment of the present invention and the second modification of the second embodiment, the memory itself for storing the code information can be omitted based on this idea. As a result, the circuit area can be reduced.
<回路ユニットの実施例3固有の課題>
次に、L1層の特定ニューロン(パワーニューロンと呼ぶ)が通常のニューロンに比べて、例えば2倍の影響力をL2層のニューロンに与える場合について考える。影響力を別の言い方をすれば、L1層の通常のニューロンがL2層のニューロンと作るシナプス結合の重みは0〜255であるが、 L1層のパワーニューロンがL2層のニューロンと作るシナプス結合の重みは、0から511まで取り得るということである。これを単純に実現する方法は、シナプス結合の重みデータメモリ25のビット幅を9にし、通常のニューロンが作るシナプス結合では、その重みの最大値を255に制限すれば良い。
<Problems Specific to Circuit Unit Example 3>
Next, consider a case where a specific neuron (referred to as a power neuron) in the L1 layer gives, for example, twice as much influence to a neuron in the L2 layer as compared to a normal neuron. In other words, the weight of the synaptic connection that the normal neurons in the L1 layer make with the neurons in the L2 layer is 0 to 255, but the synaptic connection that the power neurons in the L1 layer make with the neurons in the L2 layer The weight can be from 0 to 511. A method of simply realizing this is to set the bit width of the synaptic connection
しかし、それでは抑制性ニューロンの場合と同様に、必要なメモリ容量が増大してニューラルネットの製造コストが増大してしまう。パワーニューロンの個数は全体の10%程度で十分であるので、この為にシナプス結合の重みメモリ全体が肥大化するのは不都合である。逆に、メモリ25のビット幅を8ビットに保ち、パワーニューロンについてのシナプス結合の重みを0〜255にすることもできるが、そうすると通常のニューロンの重みデータが0〜127となり、ニューラルネットとしての計算精度や記憶精度が低下してしまう。
However, as in the case of the inhibitory neuron, the necessary memory capacity increases and the manufacturing cost of the neural network increases. Since about 10% of the number of power neurons is sufficient, it is inconvenient for the entire weight memory for synaptic connections to enlarge. On the contrary, the bit width of the
<回路ユニットの実施例3の説明>
図14は、本発明の第3の実施例であるパワーニューロン群を模擬した回路ユニットの回路図である。図5と同じ素子には同じ番号が振られている。図5の通常ニューロン群だけを模擬した回路に比べ、図14の回路では、8ビットカウンター23Cとメモリ35と、1ビット左シフタ36が追加されている。第3の実施例では、入力信号を定数倍した値を算出する演算回路として、1ビット左シフタ36を用いる。なお、その演算回路は、1ビット左シフタ36に限らず、入力信号を定数倍して出力する回路であればよい。
<Description of
FIG. 14 is a circuit diagram of a circuit unit simulating a power neuron group according to the third embodiment of the present invention. The same elements as those in FIG. 5 are given the same numbers. Compared to the circuit simulating only the normal neuron group in FIG. 5, an 8-bit counter 23C, a
カウンター23Cは、L1層のニューロン番号i(8ビットデータ)を生成し、メモリ35に出力する。
メモリ35は、L1層のニューロン毎のシフト情報(1[bit]×256)を記憶する。また、メモリ35は、カウンター23Cが出力するL1層のニューロン番号iを受け取り、i番地からシフトデータsfti(1ビットデータ)を読み出して、1ビット左シフタ36に出力する。
The
The
1ビット左シフタ36は、アンドゲート26が出力するデータと、メモリ35が出力するシフトデータsftiとを受け取る。1ビット左シフタ36は、前記シフトデータが0ならば、アンドゲート26が出力するデータをそのまま加算器27に出力する。また、1ビット左シフタ36は、前記シフトデータがならば、アンドゲート26が出力するデータを1ビット左にシフトして、当該シフトしたデータを加算器27に出力する。
The 1-bit
L2層での計算が始まると、メモリ24Aは16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号a’i,p,qにし、アンドゲート26へ出力する。その動作とともに、シナプス結合の重みメモリ25は、対応する8ビットの重みデータw’i,q,jを114.7[MHz]で読み出し、アンドゲート26へ出力する。アンドゲート26は、当該1ビット信号a’i,p,qと当該8ビットの重みデータw’i,q,jを乗算して8ビットの0又はw’i,q,jにし、当該8ビットデータを左シフタ36に出力する。
When the calculation in the L2 layer starts, the
更に、メモリ35から16.384[MHz]で1ビットのシフトデータsftiを読み出し、左シフタ36に出力する。左シフタ36に入ったアンドゲート26の出力データは、シフトデータsftiが1であると1ビット左シフト、即ち2倍にされ、シフトデータsftiが0であるとそのままで、加算器27に出力される。このようにして、通常のニューロンの2倍の影響力をもつニューロンを実現できる。なお、各セルの回路は同一なので、シフトデータsftiはa’i,p,0〜a’i,p,6に共通である。
Further, 1-bit shift data sft i is read out from the
以上説明したように、本発明の第3の実施例を用いると、シナプス結合の重みデータを格納するメモリ25の容量を増やさずに、パワーニューロンと通常ニューロンが混在するニューラルネットを作製できる。シフト情報を格納するメモリ35が新たに必要になるが、これは256(=1[bit]×256)ビットなので、重みデータメモリ25を9ビット幅にする場合に比べて、必要なメモリのサイズは1/1,792である。また、8ビットカウンター23Cと、左シフタ36が必要になるが、これらによって増加するトランジスタ数はニューラルネット全体に必要なトランジスタ数に比べて極めて僅かである。
As described above, by using the third embodiment of the present invention, it is possible to produce a neural network in which power neurons and normal neurons are mixed without increasing the capacity of the
なお、ここではパワーニューロンは通常のニューロンの最大2倍の影響力を持つとしたので、シフト情報は1ビットであり、シフタも1ビット左シフタを用いた。しかし、例えばシフト情報を2ビットにし、シフタを2ビット左バレルシフタにすれば、通常の1倍、2倍、4倍、8倍の影響力を持つニューロンを混在させることが可能である。 Here, since the power neuron has an influence twice as large as that of a normal neuron, the shift information is 1 bit, and the shifter is a 1-bit left shifter. However, for example, if the shift information is 2 bits and the shifter is a 2 bit left barrel shifter, it is possible to mix neurons having influences that are 1 ×, 2 ×, 4 ×, and 8 × the normal.
図15は、本発明の第3の実施例の変形例である回路ユニットの回路図である。図15(a)に本発明の実施例3の変形例1である回路ユニットの回路図を示す。図14に示す実施例3の回路と同じ素子には、同じ番号が振ってある。図14の回路と比べて、図15(a)の回路では、メモリ35に代わりに、大小比較器37が挿入されている。
FIG. 15 is a circuit diagram of a circuit unit which is a modification of the third embodiment of the present invention. FIG. 15A shows a circuit diagram of a circuit unit which is a first modification of the third embodiment of the present invention. The same elements as those in the circuit of the third embodiment shown in FIG. Compared with the circuit of FIG. 14, in the circuit of FIG. 15A, a
大小比較器37は、カウンター23Cが出力するL1層のニューロン番号を示すデータiと、図示しないレジスタ又は外部から供給される値αとを受け取る。さらに、大小比較器37は、前記データiと前記αとを比較し、iがαよりも小さい場合に、その出力sftを1にし、当該sftを1ビット左シフタ36に出力する。
The
本発明の実施例3の変形例1では、L1層の任意の番号のニューロンをパワーニューロンに設定できる。しかし、ニューロンの番号は仮想的なものなので、それ自体に意味はない。つまり、L1層のニューロンの番号がαより小さいものは全てパワーニューロンであるとしても、ニューラルネットの動作として不都合は生じない。大小比較器37の出力sftは、カウンター23Cの値即ちニューロンの番号iがαより小さい場合に1になる。左シフタ36は、そのsft入力に1が入力されると、アンドゲート26が出力したデータの値を2倍にし、当該2倍にしたデータを加算器27に出力する。回路の詳細な動作説明は省略する。
In the first modification of the third embodiment of the present invention, any number of neurons in the L1 layer can be set as the power neuron. However, since the neuron number is virtual, it has no meaning in itself. That is, even if all of the neurons in the L1 layer whose number is smaller than α are power neurons, there is no inconvenience as the operation of the neural network. The output sft of the
図15(b)には、本発明の実施例3の変形例2である回路ユニットの回路の一部を示す。図15(b)の回路は、図15(a)の大小比較器37の代わりに、アンドゲート37Bが挿入されたものである。この例では、アンドゲート37Bは、カウンター23Cの出力の第0ビットと第1ビットのアンドをとって、当該アンドを取った値をシフトデータsftとして、1ビット左シフタ36に出力する。
FIG. 15B shows a part of a circuit of a circuit unit that is a second modification of the third embodiment of the present invention. In the circuit of FIG. 15B, an AND
従って、番号が3、7、11、、、と、飛び飛びの番号のニューロンがパワーニューロンになる。アンドゲート37Bは必要に応じて、3入力や4入力にもできる。或いは、L1層の半数を抑制性にする場合は、アンドゲートを省略し、カウンター23Cの出力の任意の1ビットを符号sftにしても良い。
カウンター23Cの使われないビットは実装する必要がない。具体的には、図12(b)に示す例では、8ビットカウンター23Cのビット2〜ビット7は使われないので、これらを実装する必要はなく、2ビットカウンターとして実装すれば十分である。
Therefore, the neurons with the
The unused bits of the
<回路ユニットの実施例3の効果>
パワーニューロンであるか否かという情報を、シナプス結合の重みデータを記憶するメモリに格納するのではなく、別のメモリに格納することで必要なメモリ量の増加を抑えることができる。本発明の実施例3の変形例1では、この考えの下にパワーニューロン情報を格納するメモリの容量を、シナプス結合の重みメモリに格納する場合の1/1,792に削減している。
<Effect of
By storing information on whether or not it is a power neuron in a memory that stores weight data of synapse connections, it is possible to suppress an increase in the required memory amount. In the first modification of the third embodiment of the present invention, the capacity of the memory storing the power neuron information is reduced to 1/1, 792 in the case of storing in the synaptic connection weight memory based on this idea.
また、実施例3では個々のニューロン毎にパワーニューロンであるか否かを設定しているが、単に割合だけで設定しても問題ない場合は、本発明の実施例3の変形例1、実施例3の変形例2に示すように、パワーニューロン情報を格納するメモリそのものを省略し、大小比較器又はアンドゲートで代用できる。
Further, in the third embodiment, whether or not each neuron is a power neuron is set. However, if there is no problem even if only setting a ratio, the first modification of the third embodiment of the present invention, the implementation As shown in
本発明の実施例2と実施例3では、抑制性ニューロンとパワーニューロンを別々に実装しているが、これらを混在させて実現することもできる。また、抑制性で且つパワーニューロンというニューロンも容易に実現できる。 In the second and third embodiments of the present invention, the inhibitory neuron and the power neuron are separately mounted. However, they can be realized by mixing them. In addition, an inhibitory and neuron called a power neuron can be easily realized.
本発明の実施例では、実施例1を元に隣接セルとだけ結合を作る、フィードフォーワード型のニューラルネットを元に説明したが、後述する実施例5に示すフィードバックループを有するニューラルネットにも適用できる。 The embodiment of the present invention has been described based on a feedforward type neural network that creates a connection only with neighboring cells based on the first embodiment. However, the neural network having a feedback loop shown in the fifth embodiment, which will be described later, may also be used. Applicable.
<回路ユニットの実施例4固有の課題>
脳内のニューロンは、シナプス結合で受け取った情報をシナプス近傍の細胞膜の電位変化に変換し、多数のシナプス結合によるローカルな電位変化を細胞膜全体で加算し、その結果として軸索小丘付近の膜電位が閾値を超えると発火する。この過程は細胞膜に埋め込まれているイオンチャネル蛋白質やイオンポンプ蛋白質と、そこを通過するイオンの量と細胞膜内外のイオン濃度差などによって支配されている。
<Problems Specific to
Neurons in the brain convert the information received at the synaptic connection into potential changes in the plasma membrane near the synapse, and add local potential changes due to numerous synaptic connections across the cell membrane, resulting in the membrane near the axon hill. Fires when the potential exceeds the threshold. This process is governed by the ion channel protein and ion pump protein embedded in the cell membrane, the amount of ions passing therethrough, and the ion concentration difference inside and outside the cell membrane.
従って、この過程には本質的に揺らぎがあり、全く同じ情報をシナプス結合で受け取ったとしても、シナプス近傍の膜電位変化や、多数の膜電位変化の合成である軸索小丘付近の膜電位、及び発火の閾値などが揺らいでいるため、発火するかどうかは一定ではない。また、脳のごく狭い領域内に存在する同一機能のニューロンでも、軸索小丘の形状や、そこに存在するイオンチャネル蛋白質等の数や分布などが異なるので、閾値も多様である。 Therefore, this process is inherently fluctuating, and even if exactly the same information is received through synaptic connections, the membrane potential changes near the synapse and the membrane potential near the axon hill, which is a combination of many membrane potential changes. Because the firing threshold is fluctuating, whether or not to ignite is not constant. Even in neurons of the same function that exist in a very narrow region of the brain, the axon hill shape, the number and distribution of ion channel proteins, etc. present in the axon mound are different, so the thresholds are also diverse.
ところが、従来のニューラルネットのハードウェアでは、これらの状態を模倣することができず、閾値は全てのニューロンで同一の固定値であった。その為、ニューラルネットの規模(ニューロン数とシナプス結合の数)を大きくしていくと、学習の過程でローカルミニマムに落ち込み易くなり、学習が進み難くなるという問題があった。 However, conventional neural network hardware cannot imitate these states, and the threshold value is the same fixed value for all neurons. Therefore, if the scale of the neural network (the number of neurons and the number of synapse connections) is increased, there is a problem that it becomes easy to fall into a local minimum during the learning process, and learning becomes difficult to proceed.
本発明の実施例4では、ニューロン毎にその閾値に適当なオフセット値を与えられるようにし、且つニューロン毎に閾値が揺らぐようにすることで、学習途中でローカルミニマムに落ち込むことが少ない、1億ニューロン程度の大規模ニューラルネットを実現できるようにすることを課題とする。 In the fourth embodiment of the present invention, an appropriate offset value is given to each threshold value for each neuron, and the threshold value fluctuates for each neuron. An object is to realize a large-scale neural network of a neuron level.
実施例1の図5で示した回路ユニットを使った場合、ニューロン間の配線問題を解決でき、大規模なニューラルネットを構築できるが、閾値θが一定であり、しかもL2層の全てのニューロンについて閾値θが同一になってしまうという問題がある。 When the circuit unit shown in FIG. 5 of the first embodiment is used, the wiring problem between neurons can be solved and a large-scale neural network can be constructed. However, the threshold θ is constant and all the neurons in the L2 layer are used. There is a problem that the threshold value θ becomes the same.
そこで、本発明の実施例4では、L2層のj番目のニューロンの閾値θjが、θj=θ0+δj+rj,vと表せるようになるハードウェア技術を提供する。ここで、θ0は閾値のベース値、δjはj番目のニューロン毎のオフセット量、rj,vはj番目のニューロン毎の揺らぎであり、適当な周期V(v=[0:V−1])で疑似ランダムに変化する量である。 Therefore, in the fourth embodiment of the present invention, a hardware technique is provided in which the threshold θ j of the j-th neuron in the L2 layer can be expressed as θ j = θ 0 + δ j + r j, v . Here, θ 0 is a threshold base value, δ j is an offset amount for each j-th neuron, r j, v are fluctuations for each j-th neuron, and an appropriate period V (v = [0: V− 1]) is a pseudo-random amount.
<回路ユニットの実施例4の説明>
図16は、本発明の第4の実施例である、閾値にオフセットと揺らぎを持たせたニューロン群を模擬した回路ユニットの回路図である。図5と同じ素子には、図5と同じ番号が振られている。
<Description of
FIG. 16 is a circuit diagram of a circuit unit simulating a neuron group having a threshold value having an offset and fluctuation, according to a fourth embodiment of the present invention. The same elements as in FIG. 5 are given the same numbers as in FIG.
閾値に揺らぎを持たせたニューロン群を模擬した回路ユニットは、8ビットカウンター20と、メモリ21と、パルス列変調回路22と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、19ビット加算器27と、アンドゲート28と、大小比較器29と、大小比較器29の結果を保持するラッチ30と、19ビットカウンター31と、閾値算出回路38とを用いて構成されている。
A circuit unit that simulates a group of neurons having fluctuations in threshold values includes an 8-
従って、閾値にオフセットと揺らぎを持たせたニューロン群を模擬した回路ユニットは、図5の回路に、閾値算出回路38が追加されたものである。
閾値算出回路38は、8ビットカウンター56と、閾値のオフセット量を記憶する8[bit]×256のメモリ57と、12ビット加算器58と、13ビット加算器59と、8ビット疑似乱数発生器60とを用いて構成されている。
Therefore, the circuit unit simulating the neuron group in which the threshold value has the offset and fluctuation is obtained by adding the threshold
The
8ビットカウンター56は、端子48bでカウントアップ信号を受け取るごとに、カウント値jを1ずつ増加させ、当該カウント値jをメモリ57へ出力する。
メモリ57は、L2層のニューロン毎の閾値のオフセット量を保持する。メモリ57は、カウンター56が出力するカウント値jを受け取り、当該カウント値jに対応する番地から、L2層のニューロンの閾値のオフセット量δjを読み出し、当該オフセット量δjを12ビット加算器58に出力する。
Each time the 8-
The
12ビット加算器58は、メモリ57が出力したj番目のニューロンのオフセット量δjを受け取り、当該オフセット量δjと片側に入力された閾値のベース値θbとを加算し、当該加算後のデータ(12ビットデータ)を13ビット加算器59へ出力する。
13ビット加算器59は、12ビット加算器58が出力したデータと、8ビット疑似乱数発生器が出力した疑似乱数rj,vとを受け取り、当該データと当該疑似乱数rj,vを加算し、加算後のデータを閾値θjとして、大小比較器29に出力する。
The 12-
The 13-
8ビット疑似乱数発生器60は、端子48bでカウント信号を受け取り、信号ckとして用いる。また、8ビット疑似乱数発生器60は、端子49bで固定化信号を受け取り、信号fixとして用いる。8ビット疑似乱数発生器60は、前記ckとfixとを用いて、擬似乱数rj,vを発生させ、当該擬似乱数rj,vを13ビット加算器59へ出力する。
The 8-bit pseudo
8ビット疑似乱数発生器60の内部回路の例として、図17にガロア型LFSR(Linear Feedback Shift Register)を示す。この回路は0以外の初期値から出発すると、255回のck入力の立ち上がりで、1〜255の値が各1回だけ疑似乱数的に発生して初期値に戻る。
As an example of the internal circuit of the 8-bit
図17の回路例では信号fixが1になると最上位ビットはリセットされ、他のビットはセットされるのでx’7F’に初期化される。信号fixは2通りの目的で1になる。1つは、0以外の初期値を設定する為である。もう1つは、閾値を変動させたくない場合に、rj,vを変動幅のほぼ中間値であるx’7F’に固定する為である。後者については後で説明する。この疑似乱数発生器が255回で一巡することも重要であるが、それについても後で説明する。この回路自体は疑似乱数発生用に従来から使われているものなので、ここでは詳細な説明を省略する。 In the circuit example of FIG. 17, when the signal fix becomes 1, the most significant bit is reset and the other bits are set, so that they are initialized to x′7F ′. The signal fix becomes 1 for two purposes. One is to set an initial value other than zero. The other is to fix r j, v to x′7F ′, which is an approximately intermediate value of the fluctuation range , when it is not desired to change the threshold value. The latter will be described later. It is also important that this pseudo random number generator makes a round in 255 times, which will be described later. Since this circuit itself has been conventionally used for generating pseudo-random numbers, a detailed description thereof is omitted here.
本発明の動作を実施例に沿って説明する。計算が始まる前に図示しないリセット信号によって、カウンター20、カウンター23A、カウンター23B、カウンター31、及びカウンター56は0になっており、信号fixも一旦1になり疑似乱数発生器60の出力値がx’7F’に初期化されている。また、図示しない任意の手段によって、メモリ21にL1層の入力データが、メモリ25にシナプス結合の重みデータが、メモリ57にL2層のニューロンの閾値のオフセット量が、それぞれ格納されているものとする。
The operation of the present invention will be described with reference to examples. Before the calculation starts, the
計算が始まるとカウンター20が0なので、メモリ21の0番地(L1層の0番のニューロン)から4ビットデータを読み出し、パルス列変調回路22に送り、15ビットデータに変換する。この変換は、例えばメモリ21から送られて来たデータをアドレスとして、図6に示すデータが書き込まれているメモリから、15ビットのデータを読み出して行う。
Since the
最初のラウンド0では、15ビットデータ中のビット0を転送する。このデータを出力端子P0から外部へ出力すると、その動作とともに、メモリ24Aに送る。
In the
端子P0から出力されたデータは隣接セルで受信されるが、回路は対称なので、その動作とともに、入力端子P1〜P6から隣接セルのデータを受信できる。そこで、パルス列変調回路22からのデータと端子P1〜P6からのデータとを束ねて7ビットデータとし、メモリ24Aの0番地に格納する。
Although the data output from the terminal P0 is received by the adjacent cell, the circuit is symmetrical, so that the data of the adjacent cell can be received from the input terminals P1 to P6 together with the operation. Therefore, the data from the pulse
その後、端子41に入力される信号がアクティブになると、カウンター20は1をメモリ21に出力する。メモリ21は、1番地のデータを読み出して、当該データをパルス列変調回路22に出力する。パルス列変調回路22は、メモリ21が出力したデータを15ビットデータに変換し、当該15ビットデータのビット0を端子P0へ送る。
Thereafter, when the signal input to the terminal 41 becomes active, the
端子41に入力される信号がアクティブになると同時に、端子42Aに入力される信号がアクティブになると、カウンター23Aは1をメモリ24Aに出力する。メモリ24Aは、パルス列変調回路22が出力したデータと端子P1〜P6から入力されたデータとを束ねて7ビットデータにし、当該7ビットデータを1番地に格納する。
When the signal input to the terminal 41 becomes active and the signal input to the terminal 42A becomes active, the
この様に、カウンター20と23Aが255を超えて0に戻るまでデータ転送を行うと、ラウンド0が終了する。L1層からL2層へ256個のデータを4[ms]で転送するので、一連の処理速度は64[kHz]であり、P0端子から出る信号(1ビット)のデータレートは64[Kbps]である。
次のラウンド1では、パルス列変調回路22は15ビットデータ中のビット1を送出し、転送したデータはメモリ24Bに書き込む。
In this way, when data transfer is performed until the
In the
メモリ24Aと24Bをラウンド毎に交互に使ってデータ転送を続け、ラウンド14でビット14の転送が終わると、メモリ21に入っているデータの転送が終わる。ニューラルネットでの処理を継続したい場合は、メモリ21に新たなデータを書き込むか、又はメモリ21をダブルバッファ構造にしてニューラルネットでの処理と並行して次のデータを用意しておく。
Data transfer is continued by alternately using the
次に、L2層のニューロンの動作について説明する。ラウンド0が終わり、メモリ24Aに1,792個のa´i,0,qが揃うと、ラウンド1からL2層での処理が始まる。L2層のj番目のニューロンは、Σ(a´i,0,q×w´i,q,j)を計算する。ここでΣはiとqについての1,792回の総和計算を表している。
Next, the operation of the L2 layer neuron will be described. When
L2層には256個のニューロンが存在するので、結局458,752(=1,792×256)回の積和演算を4[ms]間でしなければならない。従って、この部分の回路は114.7[MHz]で動作させる。 Since there are 256 neurons in the L2 layer, 458,752 (= 1,792 × 256) product-sum operations must be performed in 4 [ms] after all. Therefore, the circuit of this part is operated at 114.7 [MHz].
ラウンド1になりL2層で計算が始まると、端子42Aに入力する信号を16.384[MHz]でアクティブにしてカウンター23Aをカウントアップし、メモリ24Aから16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の速度の114.7[Mbps]の1ビット信号a´i,0,qにする。
When the calculation starts in the L2 layer in
その動作とともに、端子47に入力する信号を114.7[MHz]でアクティブにしてカウンター31を114.7[MHz]でカウントアップし、メモリ25から8ビットのシナプス結合の重みデータw´i,q,jを出力するよう制御する。アンドゲート26は入力されたa´i,0,qとw´i,q,jとを乗算して8ビットのデータ(0又はw´i,q,j)を算出し、当該データを加算器27へ出力する。
Along with this operation, the signal input to the terminal 47 is made active at 114.7 [MHz], the
加算器27は、アンドゲート28からデータを受け取り、当該データにアンドゲート26が出力した当該8ビットデータを加算してΣ(a´i,0,q×w´i,q,j)を算出する。総和計算の最初にアンドゲート28の端子44を0にし、加算器27が出力してその片側入力に戻す部分和を0にする。iとqについての1,792回の総和計算が終わると、当該総和を大小比較器29に出力する。
The
大小比較器29は、当該総和を閾値θjと比較し、総和が閾値θjよりも大きければ比較結果を1にし、小さければ比較結果を0にする。大小比較器29は、比較結果を114.7[MHz]のパルス状に出力するので、そのままでは後段で使い難い。そこで、大小比較器29の出力が出るタイミングでラッチ30の端子45に入力する信号を1にし、ラッチ30に比較結果を保持する。この結果、L2層の出力は64[Kbps]の信号になる。
The
最後に、閾値θjの生成部について説明する。ラウンド1の初めに、カウンター56がカウント値0をメモリ57に出力する。メモリ57は、当該カウント値0を受け取り、0番地のデータ即ち、L2層の0番のニューロンの閾値のオフセット量δ0を読み出す。メモリ57は、当該オフセット量δ0を、加算器58に出力する。
加算器58は、前記メモリ57が出力したオフセット量δ0と、図示されないレジスタ又は外部から供給された閾値のベース値θbとを受け取る。
Finally, the generation unit for the threshold θ j will be described. At the beginning of
The
加算器58は、前記オフセット量δ0と前記ベース値θbとを加算し、当該加算した値を加算器59に出力する。ここで、ベース値θbは12ビット幅であり、オフセット値δ0は8ビット幅としている。両者のビット幅の差を4にする理由は、ベース値の1/16程度までのオフセット量を与えられるようにする為である。
The
一方、疑似乱数発生器60は疑似乱数r0,v(vはラウンド数)を生成し、当該疑似乱数r0,vを加算器59に出力する。
加算器59は、疑似乱数発生器60が出力した疑似乱数r0,vと、加算器58が出力したベース値θbとオフセット量δ0との和を受け取る。
On the other hand, the pseudo
The
加算器59は、前記疑似乱数r0,vとベース値θbとオフセット量δ0との和を加算し、加算した値θ0を大小比較器29に出力する。
大小比較器29で比較が終わるタイミング即ち、64[kHz]で図示しない回路から端子48bに入力する信号が立ち上がり、疑似乱数発生器60が新たな疑似乱数r1,vを生成する。
The
A signal input to the terminal 48b from a circuit (not shown) rises at the timing when the comparison by the large /
その動作とともに、カウンター56がカウントアップし、閾値のオフセット量格納メモリ57が新しいオフセット量δ1を読み出す。このようにして、L2層のニューロン毎にオフセット量δjと疑似乱数rj,vを更新する。
Along with its operation, the
ここで、疑似乱数rj,vの添え字vについて説明する。既に説明したように、図17の疑似乱数発生回路はck入力が255回アクティブになると、1〜255の値を各1回だけ疑似ランダムに生成し、256回目に初期値に戻る。この疑似乱数列をR0、R1、R2、R3、、、、R254とする。
Here, the subscript v of the pseudo random numbers r j, v will be described. As described above, when the ck input becomes active 255 times, the pseudo random number generation circuit of FIG. 17 generates the
ラウンド1でL2層の0番のニューロンの閾値に、最初に加算される値は初期値R0である。L2層には256個のニューロンが在るので、端子48bに入力される信号は256回アクティブになり、ラウンド1の最後に255番のニューロンの閾値に加算される値もR0になる。
The value initially added to the threshold value of the 0th neuron in the L2 layer in
従って、次のラウンド2で0番のニューロンの閾値に加算される値はR1である。結局、0番のニューロンの閾値に加算される疑似乱数を観察すると、255ラウンドでR0〜R254の値が一巡する。
Therefore, the value added to the threshold value of the 0th neuron in the
他のニューロンの閾値に加算される疑似乱数についても同様である。1回のラウンドについてみると、0番と255番のニューロンでは同じ値が使われるが、その他では重複しない1〜255の値が各1回だけ使われ、1個のニューロンについてみると、255ラウンドで1〜255の値が疑似乱数的に使われることになる。 The same applies to pseudorandom numbers added to the thresholds of other neurons. In the case of one round, the same value is used in the 0th and 255th neurons, but in other cases, the non-overlapping values of 1 to 255 are used only once each, and if one neuron is viewed, there are 255 rounds. Thus, a value of 1 to 255 is used pseudo-randomly.
このようにして、各ニューロンの閾値にほぼ重複しない(0番と255番のニューロンでは重複する)、疑似ランダムな揺らぎを与えることができる。0番と255番のニューロンで疑似乱数が重複しないようにするには、疑似乱数発生器に9ビット以上のガロアLFSRを用いるか、或いはL2層に含まれるニューロンの数を254個以下にするなどして、疑似乱数発生器が一巡する周期よりもL2層のニューロンの個数を少なくし、かつ両者の間のずれ量が、疑似乱数発生器が一巡する周期の約数にならないように設定すればよい。 In this way, it is possible to give a pseudo-random fluctuation that does not substantially overlap with the threshold value of each neuron (it overlaps with neurons No. 0 and No. 255). To prevent the pseudo-random numbers from overlapping between the 0th and 255th neurons, use a 9-bit or more Galois LFSR for the pseudo-random number generator, or reduce the number of neurons included in the L2 layer to 254 or less. Thus, if the number of neurons in the L2 layer is made smaller than the cycle of the pseudo random number generator and the shift amount between the two is set not to be a divisor of the cycle of the pseudo random number generator. Good.
閾値に揺らぎを与える主な目的は、学習過程においてシナプス結合の重みを変化させる際に、ローカルミニマムの状態に落ち込むのを防ぐ為である。また、学習を終了した後に、閾値に揺らぎを持ったままニューラルネットを使用することもできるが、そうすると全く同じ入力データに対して出力が同じにならない可能性がある。この現象を避けるには信号fixを1に固定し、閾値の揺らぎをほぼ平均値のx’7F’に固定すれば良い。 The main purpose of giving fluctuations to the threshold is to prevent falling into the local minimum state when changing the weight of the synaptic connection in the learning process. Further, after learning is completed, the neural network can be used with the threshold value fluctuated, but in this case, the output may not be the same for the same input data. In order to avoid this phenomenon, the signal fix may be fixed at 1 and the threshold fluctuation may be fixed at approximately the average value x'7F '.
また、閾値のオフセット量δjを全てのニューロンで同じにしたい場合は、メモリ57に書き込むデータを全て同じにするか、或いは端子48bに入力する信号をノンアクティブのまま保持すれば良い。
If it is desired to make the threshold offset amount δ j the same for all neurons, all the data written to the
次に、加算器58、加算器59、オフセットメモリ57及び、大小比較器29のビット幅について説明する。既に説明したように本実施例では、疑似乱数発生器のビット幅は8以上が望ましい。閾値θjに与える揺らぎの割合を例えば最大10%程度とすると、θbのビット幅を疑似乱数発生器のビット幅よりも、3〜4ビット多くする必要がある。そこで、本実施例4ではθbを12ビット幅とした。
Next, the bit widths of the
次に、閾値θjに最大10%程度のオフセットを与えるとして、メモリ57のビット幅を8とした。以上のような仮定により、本実施例では加算器58のビット幅を12、加算器59のビット幅は13、大小比較器29のビット幅は13とした。一方、加算器27の出力は19ビット幅なので、その上位13ビットか又は、総和として現れる最大の数を表せる最小のビット幅の、上位13ビットを大小比較器29のA入力に入れることとする。
Next, assuming that an offset of about 10% at maximum is given to the threshold θ j , the bit width of the
或いは、大小比較器29で必用とされる分解能を先に決め、それを基に疑似乱数発生器60のビット幅などを決めることもできる。その場合、疑似乱数発生器60に8ビット幅よりも小さいものを使うことができるが、例えば7ビットのものを使うとL2層のニューロンの約半分ずつが、同じ揺らぎを持つことになる。
Alternatively, the resolution required by the
本発明の実施例4では、閾値のオフセット量を暗黙の内に正又は0としたが、本発明はこれに制限されるものではなく、オフセットデータメモリ57のデータを2の補数表現として解釈し、加算器58を加減算器に変更すれば、閾値に正負のオフセット量を与えることができる。
本発明の実施例4では、閾値のオフセット量をL2層のニューロン毎に設定できるとしたが、本発明はこれに制限されるものではなく、オフセット量が同じ幾つかのグループでL2層のニューロンを分類すれば、メモリ57に必要なデータ数を前記グループの数分まで減らすことができる。
In the fourth embodiment of the present invention, the threshold offset amount is implicitly positive or zero, but the present invention is not limited to this, and the data in the offset
In the fourth embodiment of the present invention, the threshold offset amount can be set for each L2 layer neuron. However, the present invention is not limited to this, and the L2 layer neuron in several groups having the same offset amount. , It is possible to reduce the number of data required for the
本発明の実施例4では、大小比較器29で総和と閾値θjを比較する度に端子48bに入力する信号をアクティブにするとしたが、本発明はこれに制限されるものではなく、端子48bに入力する信号を一定値に保つことにより、全てのニューロンのオフセット量と揺らぎ量を同一にすることができる。
In Example 4 of the present invention, a signal to be inputted each time comparing the sum with a threshold value theta j in
本発明の実施例4では、疑似乱数の値を暗黙の内に正又は0としたが、本発明はこれに制限されるものではなく、疑似乱数を2の補数表現として解釈し、加算器59を加減算器に変更すれば、閾値に正負の揺らぎを与えることができる。
In the fourth embodiment of the present invention, the value of the pseudo random number is implicitly set to positive or 0. However, the present invention is not limited to this, and the pseudo random number is interpreted as a two's complement expression, and the
本発明の実施例4では、fix信号が1になった時に疑似乱数発生器60の値がx’7F’になるとしたが、本発明はこれに制限されるものではなく、0以外の任意の値を初期値として設定できる。或いは、リセット信号入力を追加して、リセット信号がアクティブになった際に0以外の初期値になるようにすれば、fix信号が1になる際には0を含めた任意の値に固定することができる。また、疑似乱数の値を2の補数として解釈する場合は、揺らぎの中心が0に近い値になるので、fix信号が1になった時の初期値をx‘01’など、0に近い値にすることができる。
In the fourth embodiment of the present invention, the value of the pseudo
本発明の実施例4では、疑似乱数発生器60として8ビットガロアLFSRを用いたが、本発明はこれに制限されるものではなく、任意のビット幅の任意の方式の疑似乱数発生器を用いても、同様に閾値に揺らぎを与えることができる。
In the fourth embodiment of the present invention, the 8-bit Galois LFSR is used as the
本発明の実施例4では、暗黙の内にL1層のニューロンが全て興奮性ニューロンであるとして説明したが、本発明はこれに制限されるものではなく、例えばシナプス結合の重みデータメモリ25のデータを2の補数表現として解釈し、加算器27を加減算器に置き換えれば、興奮性ニューロンと抑制性ニューロンが混在するニューラルネットに対しても、同様に閾値にオフセットと揺らぎを与えることができる。
In the fourth embodiment of the present invention, it has been described that all the neurons of the L1 layer are implicitly excitatory neurons, but the present invention is not limited to this. For example, the data in the synaptic connection
また、本発明の実施例3で説明したパワーニューロンに対しても、同様に閾値にオフセットと揺らぎを与えることができる。例えば、図14のパワーニューロンを模擬した回路ユニットにおいて、大小比較器29の入力端子43に、図16の閾値算出回路38の加算器59の出力端子を接続すれば、実現できる。
Similarly, an offset and fluctuation can be given to the threshold value for the power neuron described in the third embodiment of the present invention. For example, in the circuit unit simulating the power neuron of FIG. 14, this can be realized by connecting the output terminal of the
本発明の実施例4では、1個のセルに含まれるニューロン数をL1層、L2層ともに256としたが、本発明はこれに制限されるものではなく、各層に2個以上のニューロンが存在すれば同様に適用できる。また、L1層とL2層のニューロン数が同数である必要はない。 In the fourth embodiment of the present invention, the number of neurons included in one cell is 256 in both the L1 layer and the L2 layer, but the present invention is not limited to this, and there are two or more neurons in each layer. It can be applied similarly. Further, the number of neurons in the L1 layer and the L2 layer need not be the same.
本発明の実施例では、ニューラルネットが2層の層構造を持つとしたが、本発明はこれに制限されるものではなく、3層以上のニューラルネットに対しても、第2層以降の各層に同様に適用できる。
本発明の実施例では、L1層のニューロンの入力データを4ビット幅としたが、本発明はこれに制限されるものではなく、任意のビット幅を持つニューラルネットに適用できる。
In the embodiment of the present invention, the neural network has a two-layer structure. However, the present invention is not limited to this, and each layer after the second layer is also applied to a neural network having three or more layers. Applicable to as well.
In the embodiment of the present invention, the input data of the L1 layer neuron is 4 bits wide, but the present invention is not limited to this, and can be applied to a neural network having an arbitrary bit width.
本発明の実施例では、1ラウンドが4[ms]であるとして説明したが、本発明はこれに制限されるものではなく、任意の時間を設定できる。
本発明の実施例では、パルスニューラルネットであるとして説明したが、本発明はこれに制限されるものではなく、パルスニューラルネット以外のニューラルネットにも同様に適用できる。
In the embodiment of the present invention, it is described that one round is 4 [ms]. However, the present invention is not limited to this, and an arbitrary time can be set.
In the embodiments of the present invention, the pulse neural network has been described. However, the present invention is not limited to this, and can be similarly applied to a neural network other than the pulse neural network.
<回路ユニットの実施例4の効果>
本発明の実施例4の技術を使うと、大規模なニューラルネット内の各ニューロンの閾値に、個別に任意のオフセット量と疑似ランダムな揺らぎを与えることができ、ニューロンに多様性を持たせられるとともに、学習時にローカルミニマムに落ち込んで学習が進み難くなるのを防止する効果が有る。
<Effect of
By using the technique according to the fourth embodiment of the present invention, an arbitrary offset amount and pseudo-random fluctuation can be individually given to the threshold value of each neuron in a large-scale neural network, and the neuron can have diversity. At the same time, there is an effect of preventing the learning from becoming difficult due to the local minimum during learning.
また、全く同じ入力データに対して、一定範囲内で揺らぎの有る反応を返すニューラルネットを実現できる。或いは、この揺らぎを無くして常に同じ反応を返すニューラルネットを実現することもできる。 Further, it is possible to realize a neural network that returns a response with fluctuation within a certain range with respect to exactly the same input data. Alternatively, it is possible to realize a neural network that eliminates this fluctuation and always returns the same reaction.
<回路ユニットの実施例5固有の課題>
本発明の実施例5では、ニューロン数が1億以上で、信号経路にフィードバックループが存在し、しかも実時間動作するニューラルネットを実現する為の回路ユニットを提供することを課題とする。
<Issues unique to the fifth embodiment of the circuit unit>
例として、フィードバックループを持つ3層構造のパルスニューラルネットを、図23を用いて説明する。図23は、フィードバックループを持つニューラルネットの一部を表した模式図である。L1層はデータ入力層であり、ここには例えば4ビット幅の入力データを、例えば4[ms]周期のパルス列に変換するニューロン230i(iは1から1,000までの整数)が、例えば1,000個存在する。L2層は中間データ処理層であり、データを演算処理するニューロン232j(jは1から900までの整数)が、例えば900個存在する。 As an example, a three-layer pulse neural network having a feedback loop will be described with reference to FIG. FIG. 23 is a schematic diagram showing a part of a neural network having a feedback loop. The L1 layer is a data input layer. Here, for example, a neuron 230 i (i is an integer from 1 to 1,000) that converts input data having a width of 4 bits into a pulse train having a period of 4 [ms], for example, There are 1,000. The L2 layer is an intermediate data processing layer, and there are, for example, 900 neurons 232 j (j is an integer from 1 to 900) for processing data.
L3層はデータ出力層であり、データを演算処理するニューロン236m(mは1から200までの整数)が、例えば200個存在する。L1層の各ニューロン230iからは1本の出力信号線231i(神経細胞の軸索に相当)が出ている。出力信号線231iは多数箇所(ニューロン232jの個数が900なので最大900)に分岐して、シナプス結合233i,jを介してL2層のj番目のニューロン232jに接続する。
The L3 layer is a data output layer, and there are, for example, 200 neurons 236 m (m is an integer from 1 to 200) that processes data. From each
L2層のk番目のニューロン232kからは1本の出力信号線235kが出ており、その先は分岐してL2層のニューロン232jへのフィードバック信号と、L3層のニューロン236mへの入力信号となる。出力信号線235kは、シナプス結合234k,jを介してL2層のj番目のニューロン232jと接続する。また、出力信号線235kは、シナプス結合237k,mを介してL3層のm番目のニューロン236mと接続する。従って、L2層のニューロン232jのシナプス結合の数はニューロン毎に最大1,900(=1,000+900)個存在する。
One
信号線231iで伝送されるデータaiは1ビット信号である。シナプス結合233i,jは、例えば8ビット幅の重みデータwi,jを保持しており、aiとの積ai×wi,jを計算する。
Data a i transmitted through the
信号線235kで伝送されるデータbkは1ビット信号である。シナプス結合234k,jは8ビット幅の重みデータwk,jを保持しており、bkとの積bk×wk,jを計算する。
The data b k transmitted through the
ニューロン232jは、そこに付属する全てのシナプス結合で計算した最大1,000個のai×wi,jと最大900個のbk×wk,jとの総和を計算する。そして、ニューロン232jは、総和の値が予め決められている閾値θを超えると、その出力信号線235jに1を出力し、閾値θを超えない場合は、出力信号線235jに0を出力する。
The
L2層の各ニューロン232kからL3層に向かう信号線235kは、多数箇所(ニューロン236mの個数が200なので最大200)に分岐する。信号線235kは、シナプス結合237kmを介してニューロン236mと接続する。従って、シナプス結合237k,mはニューロン236mひとつ当たり最大900個存在する。
シナプス結合237k,mは、例えば8ビット幅の重みデータwk,mを保持しており、bkとの積bk×wk,mを計算する。各ニューロン236mでは、そこに付属するシナプスで計算された最大900個のbk×wk,mのkについての総和を計算する。
Synaptic connections 237 k, m, for example the weight data w k of 8 bits wide, holds m, product b k × w k with b k, to calculate the m. In each
そして、総和の値が予め決められている閾値θを超えると、ニューロン236mは、その出力信号線238mに1を出力し、閾値θを超えない場合は、出力信号線238mに0を出力する。これら一連の演算は4[ms]以内で終了する。
When the sum value exceeds a predetermined threshold value θ, the
以上の説明から明らかなように、L1層の1,000個のニューロンはL2層の900個のニューロンと基本的に総当たりで結合し、L2層の900個のニューロンもL2層の900個のニューロンと基本的に総当たりで結合するので、これらの結合に使われるシナプス結合の総数は最大171万個(=1,900 ×900)に達し、これらのシナプス結合へ行く配線の総数も最大171万本に達する。 As is apparent from the above description, the 1,000 neurons in the L1 layer are basically connected to 900 neurons in the L2 layer, and the 900 neurons in the L2 layer are also 900 neurons in the L2 layer. Since the connection is basically brute force with neurons, the total number of synaptic connections used for these connections reaches a maximum of 1.71 million (= 1,900 × 900), and the total number of wires going to these synaptic connections is also a maximum of 171. Reach 10,000.
同様に、L2層の900個のニューロンはL3層の200個のニューロンと基本的に総当たりで結合するので、これらの結合に使われるシナプス結合の総数は最大18万個(=900×200)に達し、これらのシナプス結合へ行く配線の総数も最大18万本に達する。実際のニューラルネットではその用途や、学習結果によって不要なシナプス結合が取り除かれるので、各ニューロン230iやニューロン232kの出力が、どのニューロン232jやニューロン236mとシナプス結合を作るかは多様である。
Similarly, since 900 neurons in the L2 layer basically connect with 200 neurons in the L3 layer, the total number of synaptic connections used for these connections is a maximum of 180,000 (= 900 × 200). The total number of wires going to these synaptic connections also reaches 180,000. In an actual neural network, unnecessary synapse connections are removed depending on the use and learning results, so the output of each
つまり、ニューロン230iが選択的にニューロン232jとシナプス結合を作れ、ニューロン232kも選択的にニューロン236mとシナプス結合を作れ、更にニューロン232kの出力を選択的にニューロン232jヘフィードバックできる機構が技術的に可能でなければならない。
That is, the
高々ニューロン数2,100(=1,000+900+200)のニューラルネットでさえ、必要な配線の数が最大189万本(=171万+18万)に達し、しかもそれらを選択的に行う必要がある。人間の脳には100億から1000億のニューロンが存在し、各ニューロンは1,000個〜10,000個のシナプス結合を持つと言われている。人間の脳並みの1億程度のニューロン数を持ち、それらのニューロン間にフィードバックループが在るニューラルネットを構築するには膨大な配線が必要であり、この技術的課題を解決できなければ脳並みの規模と機能を持つニューラルネットを実現することはできない。 Even in a neural network having at most 2,100 neurons (= 1,000 + 900 + 200), the number of necessary wirings reaches a maximum of 1.89 million (= 171,000 + 180,000), and it is necessary to selectively perform them. There are 10 to 100 billion neurons in the human brain, and each neuron is said to have 1,000 to 10,000 synaptic connections. To build a neural network that has about 100 million neurons as many as the human brain and that has feedback loops between those neurons, a huge amount of wiring is required. A neural network with the scale and function cannot be realized.
この配線問題を解決する為に、図5で実施例1の回路ユニットを説明した。しかし、実施例1では所謂フィードフォーワード型のニューラルネットは実現できるが、本実施例5が対象としているフィードバックループを含むニューラルネットは実現できないという問題がある。そこで、本実施例5は、前述の実施例1を拡張することにより、フィードバックループを持つ超大規模ニューラルネットを構築できるようにするための回路ユニットを提供する。 In order to solve this wiring problem, the circuit unit of the first embodiment has been described with reference to FIG. However, in the first embodiment, a so-called feedforward type neural network can be realized, but there is a problem that a neural network including a feedback loop targeted in the fifth embodiment cannot be realized. Therefore, the fifth embodiment provides a circuit unit for extending the above-described first embodiment so that an ultra large-scale neural network having a feedback loop can be constructed.
<回路ユニットの実施例5の説明>
前述の実施例1の回路ユニット(図5)は、例えばL1層からL2層への配線に関するものであるが、L2層からL3層への配線にも適用可能なことは容易に推測できる。この場合にL1層からL2層への配線と、L2層からL3層への配線とを別々の出力端子に出すことも可能であるが、そうすると出力端子が2個、入力端子も2倍の12個必要になる。
<Description of Example 5 of Circuit Unit>
The circuit unit (FIG. 5) of the first embodiment described above relates to the wiring from the L1 layer to the L2 layer, for example, but it can be easily estimated that it can be applied to the wiring from the L2 layer to the L3 layer. In this case, the wiring from the L1 layer to the L2 layer and the wiring from the L2 layer to the L3 layer can be output to separate output terminals, but in that case, the number of output terminals is two and the number of input terminals is doubled to 12 I need one.
近年の半導体技術の発展により、論理素子(トランジスタ)は安価に作れるが、素子間を接続する配線は相対的に素子よりも高価になる場合が多い。ここで対象としている回路では、2つの出力端子から出る信号が64[Kbps]と低速であるので、2つの信号を時分割多重化して、1本の信号線で伝送することにしても技術的な問題は生じない。信号の時分割多重化と、それを元に戻すためには余計なトランジスタが必要になるが、信号の時分割多重化によって配線数を減らす方がコスト的に有利である。 With recent developments in semiconductor technology, logic elements (transistors) can be made at low cost, but wirings connecting the elements are relatively more expensive than elements. In the circuit under consideration here, since the signals coming out from the two output terminals are as low as 64 [Kbps], it is technical even if the two signals are time-division multiplexed and transmitted through one signal line. No problem arises. An extra transistor is required to time-division-multiplex the signal and to restore it, but it is advantageous in terms of cost to reduce the number of wires by the time-division multiplexing of the signal.
図18(a)は、或るセルにおける本発明の実施例5におけるニューラルネットワークの模式図である。1つのセルは、L1層に属する256個のニューロン180i(iは0から255の整数)と、L2層に属する256個のニューロン182j(jは0から255の整数)と、L3層に属する32個のニューロン186m(mは0から31の整数)とを有する。
FIG. 18A is a schematic diagram of a neural network according to the fifth embodiment of the present invention in a certain cell. One cell consists of 256
更に、前記セルは、L1層のニューロン180iからL2層のニューロン182jへの配線181iと、L1層のニューロン180iからL2層のニューロン182jへのシナプス結合183i,jと、L2層のニューロン182k(kは0から255の整数)からL2層のニューロン182jへの配線185kと、L2層のニューロン182kからL2層のニューロン182jへのシナプス結合184k,jと、L2層のニューロン182kからL3層のニューロン186mへのシナプス結合187k,mと、L3層のニューロン186mの出力端子188mとを有する。
Further, the cell includes a
図18(b)と図18(c)は、層間を流れる信号のフォーマットを説明するための図である。図18(b)に示すようにL1層からL2層へのデータzi,t(iは0から255までの整数)と、L2層からL3層へのデータyk,t(kは0から255までの整数)を時分割多重化した信号Sとして、出力端子P0から出力することにする。
ここで、zi,tはL1層のi番目のニューロンのt番目(tは0以上の整数)のラウンドの出力である。yk,tはL2層のk番目のニューロンのt番目のラウンドの出力である。
FIG. 18B and FIG. 18C are diagrams for explaining the format of a signal flowing between layers. As shown in FIG. 18B, data z i, t from the L1 layer to the L2 layer (i is an integer from 0 to 255) and data y k, t from the L2 layer to the L3 layer (k is from 0). (Integer up to 255) is output from the output terminal P0 as a signal S obtained by time division multiplexing.
Here, z i, t is the t-th (t is an integer equal to or greater than 0) round output of the i-th neuron of the L1 layer. y k, t is the output of the t th round of the k th neuron of the L2 layer.
或いは、L2層の出力データを一旦メモリに格納しておき、図18(c)に示すようにL1層のデータを2[ms]で出力し終えた後で、L2層のデータを纏めて出力することもできる。いずれにしても信号Sのデータ転送速度は(256[bit]+256[bit])÷4[ms]=128[Kbps]と2倍になるが、これでもかなり低速なので通常の銅配線で接続可能である。 Alternatively, the L2 layer output data is temporarily stored in the memory, and after the L1 layer data is output in 2 [ms] as shown in FIG. 18C, the L2 layer data is output together. You can also In any case, the data transfer rate of the signal S is doubled as (256 [bit] +256 [bit]) ÷ 4 [ms] = 128 [Kbps]. It is.
本発明は、L1層からL2層へ送られるデータと、L2層からL3層へ送られるデータとを時分割多重化して1本の信号線で伝送し、L2層からL3層へ送られるデータを、L2層からL2層へのフィードバックデータとしても利用することを特徴とする、ニューロン間の配線方式である。
なお、今後の説明では図18(b)の信号フォーマットを念頭に置くが、図18(c)の信号フォーマットでも同様に本発明を適用できる。
In the present invention, the data sent from the L1 layer to the L2 layer and the data sent from the L2 layer to the L3 layer are time-division multiplexed and transmitted through one signal line, and the data sent from the L2 layer to the L3 layer is transmitted. The inter-neuron wiring system is also used as feedback data from the L2 layer to the L2 layer.
In the following description, the signal format of FIG. 18B is taken into consideration, but the present invention can be similarly applied to the signal format of FIG. 18C.
図19は、本発明の第5の実施例である、L2層のニューロン群の出力をL2層のニューロン群へフィードバックするニューラルネットの回路ユニットの回路図である。図19の回路全体が、図2(a)中の1個の正六角形(セル)に対応している。本実施例では各ニューロンは個別の電子回路ではなく、仮想ニューロンとしてL1層(256個のニューロン)、L2層(256個のニューロン)、L3層(32個のニューロン)を、それぞれ纏めて実装している。 FIG. 19 is a circuit diagram of a circuit unit of a neural network that feeds back the output of the L2 layer neuron group to the L2 layer neuron group according to the fifth embodiment of the present invention. The entire circuit of FIG. 19 corresponds to one regular hexagon (cell) in FIG. In this embodiment, each neuron is not an individual electronic circuit, but a L1 layer (256 neurons), an L2 layer (256 neurons), and an L3 layer (32 neurons) are mounted together as virtual neurons. ing.
図19の回路ユニットは、L1層に属する8ビットカウンター20と、メモリ21と、パルス列変調回路22と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、加算器27と、アンドゲート28と、メモリ69Aと、メモリ69Bと、メモリ70と、アンドゲート71と、加算器72と、アンドゲート73と、加算器74と、大小比較器75と、ラッチ76と、マルチプレクサ77と、メモリ78と、アンドゲート79と、加算器80と、アンドゲート81と、大小比較器82と、ラッチ83と、アンドゲート84と、を用いて構成されている。
The circuit unit of FIG. 19 includes an 8-
8ビットカウンター20と、メモリ21と、パルス列変調回路22と、8ビットカウンター23Aと、8ビットカウンター23Bと、メモリ24Aと、メモリ24Bと、メモリ25と、アンドゲート26と、加算器27と、アンドゲート28は、図5の回路と同じであるので、説明を省略する。なお、メモリ25にアドレスを供給するカウンター31は表示を省略している。
8-
メモリ69Aとメモリ69Bは、端子P0〜P6を介して伝送されて来たL2層の出力データb´k,q(7[bit]×256)を格納する。ここで、qは入(出)力端子番号を表す0から6までの整数である。メモリ69Aと69Bは交互に使われる。
メモリ70はL2層からのフィードバック信号を受けるシナプス結合の重みw´k,q,j(8[bit]×256×7×256)を格納する。
The
The
アンドゲート71はアンドゲート84が出力したb´k,qと、メモリ70が出力したw´k,q,jを受け取り、当該b´k,qとw´k,q,jを乗算し、乗算後の値b´k,q×w´k,q,jを加算器72に出力する。
The AND
加算器72は、L2層のニューロンj毎に、アンドゲート71が出力したb´k,q×w´k,q,jのkとqに関する総和を算出し、当該総和を加算器74に出力する。総和計算の途中では、加算器72は、部分和をアンドゲート73に出力する。
アンドゲート73は、L2層の1個分のニューロンの総和計算の最初に、加算器72に入る部分和を0にする。
The
The AND
加算器74は、L2層のニューロンj毎に、加算器27が出力したL1層からのデータを基にした総和と、加算器72が出力したL2層からのフィードバックデータを基にした総和とを受け取り、当該L1層からのデータの総和と当該L2層からのフィードバックデータの総和とを加算し、加算後のデータを大小比較器75に出力する。
For each neuron j in the L2 layer, the
大小比較器75は、加算器74が出力したデータを受け取り、当該データが端子64から入力された閾値θよりも大きい場合に、1をラッチ76に出力する。一方、大小比較器75は、前記加算器74が出力したデータが、前記閾値θ以下の場合に、0をラッチ76に出力する。
The
ラッチ76は、大小比較器75が出力したデータを受け取り、端子65に入力された信号が立ち上がるときに前記データを保持する。
マルチプレクサ77はL1層の出力データa´i,pとL2層の出力データb´jとを交互に選択し、図18(b)に示すように時分割多重化する。
The
The
メモリ78はL2層からの信号を受け取るL3層のニューロンのシナプス結合の重みw´k,q,m(8[bit]×256×7×32)を格納する。また、メモリ78は、図示されていないカウンターからの信号を受け取ると、当該信号に対応したシナプス結合の重みw´k,q,mを読み出して、当該重みをアンドゲート79に出力する。
The
アンドゲート79は、アンドゲート84が出力したデータb´k,qと、メモリ78が出力したシナプス結合の重みw´k,q,mとを受け取り、当該b´k,qとw´k,q,mを乗算し、乗算後の値b´k,q×w´k,q,mを加算器80へ出力する。
The AND
加算器80は、アンドゲート79が出力したb´k,q×w´k,q,mを、それまでのステップで計算した部分和に加算することで、Σ(b´k,q×w´k,q,m)のkとqに関する総和を算出し、当該総和を大小比較器82に出力する。また、加算器80は、計算途中の部分和をアンドゲート81に出力する。
アンドゲート81は、L3層の1個分のニューロンの総和計算の最初に加算器80の片側入力を0にする。
The
The AND
大小比較器82は、加算器80が出力した総和と、端子64から入力される閾値θを受け取り、前記総和が閾値θよりも大きい場合に、1をラッチ83に出力する。一方、大小比較器82は、前記総和が閾値θ以下の場合に、0をラッチ83に出力する。
ラッチ83は大小比較器82が出力したデータを受け取り、端子65に入力される信号が立ち上がるときに前記データを保持し、その値を端子67に出力する。
The
The
なお、シナプス結合の重みには正負があるが、本発明の効果に影響しないので、本実施例では正のデータだけとして説明する。また、ニューロン間の接続が無い箇所については、そこに対応するシナプス結合の重みw´i,q,j、w´k,q,j及びw´k,q,mは0になっているとする。 Although the weight of the synapse connection is positive or negative, it does not affect the effect of the present invention. Therefore, in this embodiment, only the positive data will be described. In addition, for a portion where there is no connection between neurons, the weights w ′ i, q, j , w ′ k, q, j and w ′ k, q, m corresponding to the synapse connection are 0. To do.
次に、本実施例の動作について説明する。図19のニューラルネットでの処理が始まる前に、図示しない任意の方法によって、予めL1層のニューロンの入力データがメモリ21に格納されており、シナプス結合の重みデータがメモリ25、メモリ70及び、メモリ78に格納されているとする。また、カウンター20とカウンター23Aとカウンター23Bは図示しないリセット信号によって予め0になっている。
Next, the operation of this embodiment will be described. Before the processing in the neural network of FIG. 19 is started, the input data of the neurons of the L1 layer is stored in advance in the
計算が始まるとカウンター20が0なので、メモリ21は、0番地の4ビットデータを読み出してパルス列変調回路22に送り、パルス列変調回路22は当該データを15ビットデータに変換する。この変換は、例えばメモリ21から送られて来るデータをアドレス情報として、図6に示すデータが書き込まれたメモリからデータを読み出すことで実現できる。
Since the
最初のラウンド0では、図6に示す15ビットデータのLSBだけを転送する。このデータa´0,0をL2層の出力データb´0と時分割多重し、図18(b)に示すフォーマットで出力端子P0から出力するが、ラウンド0ではL2層の出力データb´0は不定である。
In the
端子P0から出るデータは隣接セルで受信されるが、図2(b)に示すように回路は対称なので、その動作とともに、入力端子P1〜P6から隣接セルのデータを受信できる。メモリ24Aは、端子P0〜P6から入力されたL1層からのデータa´0,0,qをメモリ24Aの0番地に格納する。メモリ69Aは、L2層からのデータb´0、qをメモリ69Aの0番地に格納するが、ラウンド0では前記b´0、qは不定である。
Although the data output from the terminal P0 is received by the adjacent cell, since the circuit is symmetrical as shown in FIG. 2B, the data of the adjacent cell can be received from the input terminals P1 to P6 together with the operation. The
その後、端子41に入力される信号と端子42Aに入力される信号がアクティブになりカウンター20とカウンター23Aが1になると、メモリ21の1番地のデータが読み出されてパルス列変調回路22に送られて15ビットデータに変換され、そのLSBだけが端子P0へ送られる。
Thereafter, when the signal input to the terminal 41 and the signal input to the
そして、端子P0〜P6からのデータが束ねられて7ビット幅のデータになり、L1層からのデータa´1,0,qがメモリ24Aの1番地に、L2層からのデータb´1、qがメモリ69Aの1番地に、それぞれ格納される。このようにして、カウンター20と23Aが255を超えて0に戻るまで、データの転送が行われるとラウンド0が終了する。
Then, the data from the terminals P0 to P6 are bundled to become 7-bit data, the data a ′ 1, 0, q from the L1 layer are stored in the first address of the
次のラウンド1では、パルス列変調回路22は15ビットデータのビット1のデータを送出し、転送されたデータはL1層のデータはメモリ24Bに書き込まれ、L2層の出力データはメモリ69Bに書き込まれる。この様にメモリ24Aと24B、及びメモリ69Aと69Bをそれぞれ交互に使ってデータ転送を行う。
In the
ラウンド14でビット14の転送が終わるとメモリ21に入っているデータの処理が終わる。ニューラルネットでの処理を継続したい場合は、メモリ21に新たなデータを書き込むか、メモリ21をダブルバッファ構造にしてニューラルネットでの処理と並行して次のデータを用意しておくか、或いはメモリ21の同じデータを使って処理を繰り返す。
When the transfer of bit 14 is completed in round 14, the processing of the data stored in
次に、L2層のニューロンの動作について説明する。ラウンド0ではメモリ24Aのデータが不定なので、このデータを使って演算したL2層の出力は不定である。ラウンド0が終わりメモリ24Aに1,792個のa´i,0,qが揃うと、次のラウンド1でL2層のデータ処理を行う。
Next, the operation of the L2 layer neuron will be described. Since the data in the
しかし、ラウンド0でL2層の出力が不定であったので、これを格納したメモリ69Aの内容は不定である。従って、この状態でL2層の演算を行うと、L2層の出力が再び不定になってしまう。これを防ぐためにラウンド1の間、端子68を0にして、アンドゲート84の出力を0に固定し、L2層からのフィードバック情報を無視する。L1層からのデータに関してL2層では1ニューロン当たり1,792回の積和演算をしなければならないので、L1層側の1,792倍のスピード即ち、114.7[MHz]で計算する。L2層のj番目の仮想ニューロンではΣ(a´i,0,q×w´i,q,j)を計算する。ここでΣはiとqに関する総和を表している。
However, since the output of the L2 layer was indefinite at
メモリ24Aは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号a´i,0,qにする。その動作とともに、シナプス結合の重みメモリ25から、対応する8ビットの重みデータw´i,q,jを114.7[MHz]で読み出し、アンドゲート26でa´i,0,qと乗算して8ビットの0又はw´i,q,jにする。
The
こうして得られたa´i,0,q×w´i,q,jを加算器27に入力し、Σ(a´i,0,q×w´i,q,j)を計算する。総和計算の最初に端子63に入力される信号が0になり、加算器27の片側入力は0になる。iとqについての1,792回の総和計算が終わると、加算器74を介して当該総和を大小比較器75へ送り、そこで閾値θと比較し、総和が閾値θよりも大きければ出力を1にし、小さければ出力を0にする。
The a ′ i, 0, q × w ′ i, q, j thus obtained is input to the
この出力は114.7[MHz]のパルス状に出るので、そのままでは使い難い。そこで、これを適当なタイミング信号65によってラッチ76に保持し64[Kbps]の信号b´jにする。つまり、ラウンド1では64[Kbps]のスピードでL2層のデータが生成され、P0端子から出力されてメモリ69Bに保存される。
Since this output appears in the form of a pulse of 114.7 [MHz], it is difficult to use as it is. Therefore, this is held in the
ラウンド2ではメモリ69Bに格納されているL2層の出力データが有効である。そこで、端子68に入力する信号を1にし、L2層からのフィードバック情報を有効にする。メモリ69Bは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号b´k,qにする。
In
その動作とともに、フィードバックループを形成するシナプス結合の重みメモリ70から、対応する8ビットの重みデータw´k,q,jを114.7[MHz]で読み出し、アンドゲート71でb´k,qと乗算して8ビットの0又はw´k,q,jにする。アンドゲート71は、算出したb´k,q×w´k,q,jを加算器72に出力する。
Along with this operation, the corresponding 8-bit weight data w ′ k, q, j is read out at 114.7 [MHz] from the synaptic
加算器72は、アンドゲート71から当該b´k,q×w´k,q,jを受け取り、kとqに関する総和Σ(b´k,q×w´k,q,j)を計算する。ここで、総和計算の最初に端子63に入力される信号が0になり、アンドゲート73の出力が0になり、その結果、加算器72の片側入力データは0になる。加算器72は、kとqについての1,792回の総和計算が終わると、当該総和を加算器74へ出力する。
The
加算器74は、L2層からのフィードバック情報である加算器72の出力と、L1層からのデータの総和計算をした加算器27の出力とを加算し、加算後の和を大小比較器75へ出力する。
The
大小比較器75は、加算器74から前記和を受け取り、当該和を閾値θと比較し、和が閾値θよりも大きければ出力を1にし、小さければ出力を0にする。大小比較器75の出力は、端子65に入力されるタイミング信号によりラッチ76に保持され、64[Kbps]の信号b´jとして、セレクタ77に出力する。
ラウンド3以降は、メモリ24Aとメモリ24B、及びメモリ69Aとメモリ69Bをそれぞれ交互に使いながら、ラウンド2と同様の動作をする。
The
In
次に、L3層のニューロンの動作について説明する。ラウンド0及びラウンド1ではメモリ69A、69Bとも値が不定なので、L3層では演算処理ができない。ラウンド1でL2層のニューロンの出力b´jが確定し、それがメモリ69Bに格納されるので、ラウンド2からL3層でのデータ処理が可能になる。
Next, the operation of the L3 layer neuron will be described. Since the values of the
L2層からのデータに関してL3層では1ニューロン当たり1,792回の積和演算をしなければならないが、L3層のニューロン数はL2層の1/8(= 32/256)なので、L2層のデータ出力速度の224倍(= 1,792/8)の14.4MHzで積和演算をすれば良い。 For the data from the L2 layer, the L3 layer must perform 1,792 product-sum operations per neuron, but the number of neurons in the L3 layer is 1/8 (= 32/256) of the L2 layer. The product-sum operation may be performed at 14.4 MHz, which is 224 times the data output speed (= 1, 792/8).
しかし、メモリ69A、69BのデータはL2層へのフィードバック信号として114.7[MHz]でアンドゲート71に供給されるので、それと異なる速度でデータを読み出すのは不都合である。そこで、L3層の処理も114.7[MHz]で行うことにする。
However, since the data in the
ラウンド2になると、メモリ69Bは、64[kHz]の256倍の16.384[MHz]で7ビットのデータを読み出し、それを並直変換して7倍の114.7[Mbps]の1ビット信号b´k,qにし、アンドゲート79に出力する。この信号はL2層へフィードバック信号として供給されるものと同じである。その動作とともに、L3層のシナプス結合の重みメモリ78は、対応するシナプス結合の重みデータw´k,q,mを114.7[MHz]で読み出し、アンドゲート79に出力する。アンドゲート79はL2層の出力データb´k,qとシナプス結合の重みデータw´k,q,mを乗算して8ビットの0又はw´k,q,mにする。
In
アンドゲート79は、こうして得られたb´k,q×w´k,q,mを加算器80に出力する。加算器80は受け取ったデータb´k,q×w´k,q,mのkとqに関する総和Σ(b´k,q×w´k,q,m)を計算する。総和計算の最初に端子63に入力される信号が0になり、アンドゲート81の出力が0になり、加算器80の片側入力データが0になる。kとqについての1,792回の総和計算が終わると、加算器80は、当該総和を大小比較器82へ出力する。
The AND
大小比較器82は、加算器80から当該総和を受け取り、当該総和と閾値θと比較する。大小比較器82は、前記総和が閾値θよりも大きければ、ラッチ83に1を出力し、前記総和が閾値θよりも小さければ、ラッチ83に0を出力する。
The
ラッチ83は、大小比較器82が出力した値を、端子65に入力されるタイミング信号により保持し、64[Kbps]でL3層のm番目のニューロンの出力信号を端子67に出力する。但し、L3層のニューロン数は32なので、ラウンドの初めから32ビット目までのデータが有効である。ラウンド3以降はラウンド2と同様の動作になる。
The
以上説明したように、L1層の出力データとL2層の出力データを時分割多重化し、1本の信号線を用いて隣接するセル間でデータ転送することにより、フィードバックループを持つ3層構造の大規模ニューラルネットを実現できる。その際に、L2層からL3層へ送るデータと、L2層からL2層へのフィードバックデータとを共通化できる。 As described above, the output data of the L1 layer and the output data of the L2 layer are time-division multiplexed, and the data is transferred between adjacent cells using one signal line, thereby having a three-layer structure having a feedback loop. A large-scale neural network can be realized. At that time, data sent from the L2 layer to the L3 layer and feedback data from the L2 layer to the L2 layer can be made common.
本実施例ではニューラルネットが3層構造であるとしたが、本発明はこれに制限されるものではなく、一般的に2層以上のニューラルネットに適用できる。その場合は図18(b)又は図18(c)に示すように、信号線Sに中間層又は出力層のニューロンからの出力データを時分割多重化すれば良い。 In this embodiment, the neural network has a three-layer structure. However, the present invention is not limited to this, and can be generally applied to a neural network having two or more layers. In that case, the output data from the neurons in the intermediate layer or the output layer may be time-division multiplexed on the signal line S as shown in FIG.
また、本実施例ではL2層からの出力データを同じL2層へフィードバックするとして説明したが、本発明はこれに制限されるものではない。一般的に或る層Aからの出力データが次段の層Bの入力になるとともに、層Cへのフィードバックデータとなる場合でも同様に適用できる。 In this embodiment, the output data from the L2 layer is described as being fed back to the same L2 layer, but the present invention is not limited to this. In general, output data from a certain layer A becomes input to the next layer B and also becomes feedback data to the layer C.
更に、本実施例ではフィードバックループが、一系統だけ(L2層からL2層へ)存在するとして説明したが、本発明はこれに制限されるものではない。一般的に複数系統のフィードバックループ(例えばL2層からL2層へと、L4層からL3層へ)を持つニューラルネット、或いは一つの層に複数の層からのフィードバックループ(例えばL2層とL3層からL2層へ)が有るニューラルネット、或いは1つの層から複数の層へのフィードバックループ(例えばL3層からL2層とL3層へ)が有るニューラルネットにも適用できる。 Furthermore, in the present embodiment, the feedback loop is described as having only one system (from the L2 layer to the L2 layer), but the present invention is not limited to this. Generally, a neural network having a plurality of feedback loops (for example, from the L2 layer to the L2 layer and from the L4 layer to the L3 layer), or a feedback loop from a plurality of layers in one layer (for example, from the L2 layer and the L3 layer) The present invention can also be applied to a neural network having (to the L2 layer) or a neural network having a feedback loop from one layer to a plurality of layers (for example, from the L3 layer to the L2 layer and the L3 layer).
また、本発明の実施例ではパルスニューラルネットについて説明したが、本発明はこれに制限されるものではない。
なお、図19では、L1層からの信号の総和計算結果と、L2層からのフィードバックの総和計算結果を加えるために加算器74を用いているが、例えば加算器27と加算器72の動作速度を114.7[MHz]ではなく、その1,793/1,792倍以上とすれば、加算器74を省略して加算器27で代行できる。
In the embodiments of the present invention, the pulse neural network has been described. However, the present invention is not limited to this.
In FIG. 19, the
<回路ユニットの実施例5の変形例>
図20は、本発明の実施例5の変形例である、L3層のニューロン群の出力をL2層のニューロン群へフィードバックするニューラルネットの回路ユニットの回路図である。図19の回路と同じ素子には同じ番号が振ってある。図19の2入力セレクタ77を3入力セレクタ90に置き換え、出力端子P0からL1層の出力a´i,pとL2層の出力b´jとL3層の出力c´mを時分割多重化して出力する。また、7[bit]×32のメモリ91Aとメモリ92Bとアンドゲート92とを追加し、L2層へフィードバックするL3層の出力データc´m,qと、L3層への入力となるL2層の出力データb´k,qとを分離する。動作の詳細な説明については省略する。
<Modification of Example 5 of Circuit Unit>
FIG. 20 is a circuit diagram of a circuit unit of a neural network that is a modification of the fifth embodiment of the present invention and feeds back the output of the L3 layer neuron group to the L2 layer neuron group. The same elements as those in the circuit of FIG. The 2-
<回路ユニットの実施例5の効果>
ニューラルネット内の各人工ニューロンは、仮想空間内で近傍のニューロンとだけシナプス結合を作ると仮定することで、ニューロン間の配線がローカルな少数の信号線だけで行えるようになり、人間の脳のような超大規模なニューラルネットを実現する際の配線問題を解決できる。
<Effect of
Assuming that each artificial neuron in the neural network forms a synaptic connection only with neighboring neurons in the virtual space, wiring between neurons can be performed with only a small number of local signal lines. It can solve the wiring problem when realizing such a super large-scale neural network.
更に、そのニューラルネットが多層構造と、異なる層間又は同一層へのフィードバックループ持つ場合でも、中間層の出力データを前述のローカルな信号線に時分割多重化することで、容易に配線問題を解決できる。
中間層ニューロンからの出力データは、次の層への入力データになるとともに、自分自身と同じ層又は他の層へのフィードバックデータになるが、これらを別々に伝送する必要はなく、伝送したデータは共通に利用可能である。
Furthermore, even when the neural network has a multi-layer structure and feedback loops to different layers or the same layer, the output problem of the intermediate layer is time-division multiplexed onto the local signal lines described above, so that the wiring problem can be easily solved. it can.
The output data from the intermediate layer neuron becomes the input data to the next layer and the feedback data to the same layer as itself or to other layers, but it is not necessary to transmit these separately, and the transmitted data Are commonly available.
また、シナプス結合の重みデータとの乗算回路に入るフィードバック信号は1ビット幅のデータなので、幾つかの層からの信号をセレクタによって容易に切り替えられる。例えば、L1層、L2層、L3層、L4層の4層構造のニューラルネットにおいて、或る用途ではL2層からL2層へのフィードバックが必要であり、別の用途ではL3層からL2層へのフィードバックが必要であるとする。 Further, since the feedback signal that enters the multiplication circuit with the synapse weight data is 1-bit width data, signals from several layers can be easily switched by the selector. For example, in a four-layer neural network of L1, L2, L3, and L4 layers, feedback from the L2 layer to the L2 layer is required in some applications, and from the L3 layer to the L2 layer in other applications. Suppose that feedback is needed.
この層構造を実現する為にはL1層、L2層、L3層の出力データを、図18(b)の信号Sを拡張する形で時分割多重化して1本の信号線として隣接セル間の配線に用いる。すると自分自身のセル及び、隣接セル内のL1層、L2層、L3層のデータが全て自セルのメモリに揃い、これらは1ビット幅の信号としてメモリから読み出される。 In order to realize this layer structure, the output data of the L1, L2, and L3 layers are time-division multiplexed in such a manner as to extend the signal S in FIG. Used for wiring. Then, the data of the own cell and the L1, L2, and L3 layers in the adjacent cells are all aligned in the memory of the own cell, and these are read from the memory as a 1-bit width signal.
そこで、L2層からのデータとL3層からのデータを切り替える1ビットセレクタを一つ用意し、これをニューラルネット内のレジスタ又は外部信号で制御すれば、フィードバック経路を容易に切り替えることができる。L4層が無い3層構造の場合でも、出力層L3のデータを隣接セル間の信号線に時分割多重化して出力し、その信号を受け取るメモリを用意すれば、同様にフィードバックループを切り替えることができる。 Therefore, if one 1-bit selector for switching data from the L2 layer and data from the L3 layer is prepared and controlled by a register in the neural network or an external signal, the feedback path can be easily switched. Even in the case of a three-layer structure without the L4 layer, the feedback loop can be switched in the same manner by preparing a memory for time division multiplexing and outputting the data of the output layer L3 to the signal line between adjacent cells and receiving the signal. it can.
なお、前述のセレクタを静的に制御してL2層からのフィードバックか、或いはL3層からのフィードバックかを二者択一で決定することもできるが、これを動的に制御し、L2層からフィードバックとL3層からのフィードバックを例えば半分ずつにする、ということも容易に実現できる。 Note that the above-mentioned selector can be controlled statically to determine whether feedback from the L2 layer or feedback from the L3 layer is an alternative, but this is dynamically controlled from the L2 layer. For example, the feedback and the feedback from the L3 layer can be easily halved.
また、本発明の実施例5のL2層のニューロンまたはL3層のニューロンの閾値にオフセットと揺らぎを与えることができる。例えば、図19の回路ユニットにおいて、大小比較器75の入力端子64に、図16の閾値算出回路38の加算器59の出力端子を接続すれば、L2層のニューロンの閾値にオフセットと揺らぎを与えることができる。
Further, an offset and fluctuation can be given to the threshold value of the L2 layer neuron or the L3 layer neuron of the fifth embodiment of the present invention. For example, in the circuit unit of FIG. 19, if the output terminal of the
<全実施例共通の変形例>
なお、本発明の実施例2から実施例5でも、図9に示す時間履歴を考慮する回路を挿入して、時間履歴を考慮したニューラルネットを実現することができる。
<Modification common to all embodiments>
In the second to fifth embodiments of the present invention, it is possible to realize a neural network considering the time history by inserting the circuit considering the time history shown in FIG.
なお、本発明の実施例では、シナプス結合の重みデータを8ビット幅としたが、本発明はこれに制限されるものではなく、任意のビット幅の重みデータを持つニューラルネットに適用できる。
本発明の実施例では、L1層のニューロンの入力データを4ビット幅としたが、本発明はこれに制限されるものではなく、任意のビット幅の入力データを扱うニューラルネットに適用できる。
In the embodiment of the present invention, the synapse connection weight data is 8 bits wide. However, the present invention is not limited to this, and can be applied to a neural network having weight data of an arbitrary bit width.
In the embodiment of the present invention, the input data of the neurons in the L1 layer has a 4-bit width, but the present invention is not limited to this, and can be applied to a neural network that handles input data having an arbitrary bit width.
本発明の実施例では、1個のセルに含まれるL1層のニューロン数とL2層のニューロン数をともに256としたが、本発明はこれに制限されるものではなく、L1層、L2層とも2以上の任意の数のニューロンを含むニューラルネットに適用できる。 In the embodiment of the present invention, the number of neurons in the L1 layer and the number of neurons in the L2 layer included in one cell are both 256, but the present invention is not limited to this, and both the L1 layer and the L2 layer The present invention can be applied to a neural network including an arbitrary number of two or more neurons.
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 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 セル(ポリトープ)
10 回路ユニット
20 8ビットカウンター
21 メモリ(第1の記憶部)
22 パルス列変調回路(出力回路)
23A 8ビットカウンター
23B 8ビットカウンター
23C 8ビットカウンター
24A メモリ
24B メモリ
25 メモリ(第2の記憶部)
26 アンドゲート(乗算回路)
27 加算器(加算器)
28 アンドゲート
29 大小比較器
30 ラッチ
31 カウンター
32 加減算器(加算器)
33 符号格納器(符号情報出力回路)
34 大小比較器(符号情報出力回路)
34B アンドゲート(符号情報出力回路)
35 メモリ(パワーニューロン情報出力回路)
36 1ビット左シフタ(演算回路)
37 大小比較器(パワーニューロン情報出力回路)
37B アンドゲート(パワーニューロン情報出力回路)
38 閾値算出回路
50 乗算器(乗算回路)
51 セレクタ
52 乗算器
53 メモリ(第3の記憶部)
54 並直変換回路
55 メモリ(第4の記憶部)
56 8ビットカウンター
57 メモリ(閾値オフセット量記憶部)
58 12ビット加算器
59 13ビット加算器
60 8ビット疑似乱数発生器
69A メモリ
69B メモリ
70 メモリ(第5の記憶部)
71 アンドゲート(乗算回路)
72 加算器
73 アンドゲート
74 加算器
75 大小比較器
76 ラッチ
77 2入力マルチプレクサ
78 メモリ(第6の記憶部)
79 アンドゲート(乗算回路)
80 加算器
81 アンドゲート
82 大小比較器
83 ラッチ
84 アンドゲート
90 3入力マルチプレクサ
91A メモリ
91B メモリ
92 アンドゲート
CN cell (polytope)
10
22 Pulse train modulation circuit (output circuit)
23A 8-bit counter 23B 8-bit counter 23C 8-bit
26 ANDGATE (multiplication circuit)
27 Adder (Adder)
28 AND
33 Code storage (code information output circuit)
34 Large / small comparator (sign information output circuit)
34B AND gate (code information output circuit)
35 Memory (Power neuron information output circuit)
36 1-bit left shifter (arithmetic circuit)
37 Size comparator (power neuron information output circuit)
37B ANDGATE (power neuron information output circuit)
38
51
54 Parallel-to-
56 8-
58 12-
71 ANDGATE (multiplier circuit)
72
79 AND GATE (Multiplier circuit)
80
Claims (10)
二次元以上の仮想空間において当該仮想空間を任意の数の任意のポリトープで分割し、前記ポリトープ毎に配置される回路ユニットと、隣接するポリトープに配置された前記回路ユニット間で、前記第1の層の人工ニューロンの出力データを含む信号を送受信する配線と、を備え、
前記回路ユニットは、第1の層に属する複数の人工ニューロンと第2の層に属する複数の人工ニューロンとを実装し、第1の層の人工ニューロンは、自身の出力データを時分割多重化し、該時分割多重化したデータを、同一回路ユニット内の第2の層の人工ニューロンと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第2の層の人工ニューロンとへ出力し、
前記同一回路ユニット内の第2の層の人工ニューロンは、同一回路ユニット内の第1の層の人工ニューロンが出力した出力データと、自身のポリトープに隣接するポリトープに配置された回路ユニットの第1の層の人工ニューロンが出力した出力データとを入力データとして処理することを特徴とする電子回路。 A plurality of layers, a plurality of artificial neurons existing in the layer, and a synapse connection that connects the artificial neurons and a plurality of artificial neurons existing in another layer, and the first layer of the plurality of layers This is an electronic circuit that realizes a neural network in which a product of the output data of the artificial neuron and the weight information of the synapse connection is calculated, and an output according to a result of accumulating the product is output by the artificial neuron of the second layer. And
In the virtual space of two or more dimensions, the virtual space is divided by an arbitrary number of arbitrary polytopes, and between the circuit units arranged for each polytope and the circuit units arranged in adjacent polytopes, the first Wiring for transmitting and receiving signals including output data of the artificial neurons of the layer,
The circuit unit implements a plurality of artificial neurons belonging to the first layer and a plurality of artificial neurons belonging to the second layer, and the first layer artificial neurons time-division multiplex their output data, Outputting the time-division multiplexed data to the second layer artificial neuron in the same circuit unit and the second layer artificial neuron of the circuit unit arranged in the polytope adjacent to its own polytope;
The second layer of artificial neurons in the same circuit unit includes the output data output from the first layer of artificial neurons in the same circuit unit and the first of the circuit units arranged in the polytope adjacent to its own polytope. An electronic circuit characterized by processing output data output from an artificial neuron in a layer as input data.
前記第1の層の人工ニューロンが前記入力データを時分割多重化して出力データとして同一回路ユニット内の第2の層の人工ニューロンに出力し、前記出力データを隣接するポリトープに配置された回路ユニット内の第2の層の人工ニューロンに出力する出力回路と、
前記出力データと前記重み情報との積を算出する乗算回路と、
前記積を一方の入力信号としてその総和を算出する加算器と、
前記総和と所定の閾値との比較結果に基づいて、第2の層の人工ニューロンの出力データを決定する大小比較器と、
を備えることを特徴とする請求項1から請求項4のいずれかに記載の電子回路。 The circuit unit includes: a first storage unit that holds input data of a first layer artificial neuron; a second storage unit that holds weight information of the synapse connection;
The first layer artificial neuron time-division-multiplexes the input data and outputs it as output data to the second layer artificial neuron in the same circuit unit, and the output data is arranged in an adjacent polytope. An output circuit for outputting to the second layer of artificial neurons,
A multiplication circuit for calculating a product of the output data and the weight information;
An adder for calculating the sum of the products as one input signal;
A magnitude comparator for determining output data of the artificial neurons of the second layer based on a comparison result between the sum and a predetermined threshold;
The electronic circuit according to claim 1, further comprising:
前記加算器は、前記第3の記憶部に保持した前記乗算結果を他方の入力信号とすることを特徴とする請求項5または請求項6のいずれかに記載の電子回路。 The circuit unit further includes a multiplier that multiplies the sum by a predetermined attenuation amount, and a third storage unit that holds the multiplied multiplication result.
The electronic circuit according to claim 5 , wherein the adder uses the multiplication result held in the third storage unit as the other input signal.
二次元以上の仮想空間において、当該仮想空間を任意の数の任意のポリトープで分割し、前記ポリトープ毎に回路ユニットを配置し、隣接するポリトープに配置された前記回路ユニット間で前記第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 connecting the artificial neuron and an artificial neuron existing in another layer, and the first layer of the plurality of artificial neurons a wiring system of the product of the output data and the weight information of the synaptic connections to calculate, an output corresponding to a result obtained by accumulating the product artificial neurons of the second layer to realize a neural network output,
In a two-dimensional or more virtual space, the virtual space is divided by an arbitrary polytope any number of circuit units arranged in each of the polytope, the first layer among the circuit units arranged in adjacent polytope A first wiring arranged to transmit a signal including the output data of:
A plurality of artificial neurons belonging to the first layer and a plurality of artificial neurons belonging to the second layer are mounted. The artificial neurons of the first layer time-division-multiplex their own output data, and the time-division multiplexing Output the obtained data to a second layer artificial neuron in the same circuit unit and a second layer artificial neuron in a circuit unit arranged in a polytope adjacent to its own polytope,
The second layer artificial neuron in the same circuit unit is a second wired to input output data output from the first layer artificial neuron of the circuit unit arranged in the polytope adjacent to its own polytope. And a wiring system characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010113234A JP5436327B2 (en) | 2010-05-17 | 2010-05-17 | Electronic circuit and wiring system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010113234A JP5436327B2 (en) | 2010-05-17 | 2010-05-17 | Electronic circuit and wiring system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011242930A JP2011242930A (en) | 2011-12-01 |
JP5436327B2 true JP5436327B2 (en) | 2014-03-05 |
Family
ID=45409526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010113234A Expired - Fee Related JP5436327B2 (en) | 2010-05-17 | 2010-05-17 | Electronic circuit and wiring system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5436327B2 (en) |
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 JP2010113234A patent/JP5436327B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011242930A (en) | 2011-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6654730B1 (en) | Neural network arithmetic apparatus and neutral network operation method | |
JP6912491B2 (en) | Energy-saving multiple neural core circuits, methods and neurosynaptic systems | |
US10140571B2 (en) | Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity | |
CN107918794A (en) | Neural network processor based on computing array | |
JPH05505268A (en) | Neural network with daisy chain control | |
US10650301B2 (en) | Utilizing a distributed and parallel set of neurosynaptic core circuits for neuronal computation and non-neuronal computation | |
KR101803409B1 (en) | Computing Method and Device for Multilayer Neural Network | |
JP6250054B2 (en) | Neural core circuit | |
US9239984B2 (en) | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network | |
US9373073B2 (en) | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation | |
JP6050105B2 (en) | Working memory device based on spike neurons | |
JP5393589B2 (en) | Electronic circuit | |
TW202022644A (en) | Operation device and operation method | |
US20160196488A1 (en) | Neural network computing device, system and method | |
CN107533667A (en) | Vector calculation unit in neural network processor | |
KR102588838B1 (en) | Superconducting neuromorphic core | |
CN104145281A (en) | Neural network computing apparatus and system, and method therefor | |
GB2287820A (en) | Neural network | |
KR930020288A (en) | Digital Neurons, Digital Neural Networks, and Digital Neural Network Learning Methods | |
CN104854602B (en) | Neural network unit and relevant system and method | |
JP2019537093A (en) | Scalable Stream Synapse Supercomputer for Extreme Throughput Neural Networks | |
JP5436327B2 (en) | Electronic circuit and wiring system | |
JP5393588B2 (en) | Electronic circuit and wiring system | |
JP2001117900A (en) | Neural network arithmetic device | |
CN205827367U (en) | Data processing equipment and server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130917 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131008 |
|
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: 20131112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131210 |
|
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 |