次に、本発明に係る第1実施形態及び第2実施形態について、図面に基づいてそれぞれ説明する。なお以下に説明する第1実施形態等は、人の脳機能をモデル化したニューラルネットワークを電子的な回路で実現したニューラルネットワーク回路について本発明を適用した場合の実施形態等である。
(I)第1実施形態
初めに、本発明に係る第1実施形態について、図1乃至図7を用いて説明する。なお、図1は第1実施形態に係るニューラルネットワークを説明する図であり、図2は第1実施形態に係るニューラルネットワーク回路を示す図であり、図3は当該ニューラルネットワーク回路の細部構成を示す図である。また、図4は第1実施形態に係るニューラルネットワーク集積回路の第1例を示す図であり、図5は当該ニューラルネットワーク集積回路の第2例を示す図であり、図6は当該ニューラルネットワーク集積回路の第3例を示す図であり、図7は当該ニューラルネットワーク集積回路の第4例を示す図である。
(A)ニューラルネットワークについて
先ず、上記脳機能をモデル化したニューラルネットワークについて、一般的に図1を用いて説明する。
一般に人の脳の中には、多数のニューロン(神経細胞)が存在しているとされている。脳の中で各ニューロンは、多数の他のニューロンからの電気信号を受信し、また更に他の多数のニューロンへ電気信号を送信している。そして脳は、各ニューロン間のこれら電気信号の流れによって、様々な情報処理を行っているとされている。このとき、各ニューロン間における電気信号の送受信は、シナプスと呼ばれる細胞を介して行われる。そして、脳における上記ニューロン間の電気信号の送受信をモデル化してコンピュータ内に脳機能を実現しようとしたものが、ニューラルネットワークである。
より具体的にニューラルネットワークでは図1(a)に例示するように、外部から入力される複数の入力データI1、入力データI2、…、入力データIn(nは自然数。以下同様。)のそれぞれに対する乗算処理、加算処理及び活性化関数の適用処理を一つのニューロンNRで実行し、その結果を出力データOとすることで、脳機能における一つのニューロンに対する上記電気信号の送受信をモデル化する。なお以下の説明において、上記活性化関数の適用処理を、単に「活性化処理」と称する。このとき一つのニューロンNRでは、複数の入力データI1、入力データI2、…、入力データInそれぞれに対応して予め設定された(つまり既定の)重み付け係数W1、重み付け係数W2、…、重み付け係数Wnを当該入力データI1、入力データI2、…、入力データInに対してそれぞれ乗算することで上記乗算処理が実行される。その後当該ニューロンNRは、各入力データI1、入力データI2、…、入力データInに対する上記乗算処理の結果のそれぞれを加算する上記加算処理を実行する。そして当該ニューロンNRは次に、上記加算処理の結果に既定の活性化関数Fを適用する上記活性化処理を実行し、その結果を上記出力データOとして他の一又は複数のニューロンにNRに出力する。上述した一連の乗算処理、加算処理及び活性化処理を数式で表すと、図1(a)に示す式(1)となる。このとき、重み付け係数W1、重み付け係数W2、…、重み付け係数Wnを入力データI1、入力データI2、…、入力データInにそれぞれ乗算する乗算処理が、ニューロンNR間の上記電気信号のやり取りにおける上記シナプスの作用に相当する。そして図1(b)に例示されるように、図1(a)に例示する一つのニューロンNRが多数集まってシナプスにより互いに接続されることにより、脳全体がニューラルネットワークSSとしてモデル化される。なお以下の説明において、入力データI1乃至入力データIn又は入力データIm(mは自然数。以下同様。)に共通の事項を説明する場合、単に「入力データI」と称する。また同様に、出力データO1乃至出力データOn又は出力データOmに共通の事項を説明する場合、単に「出力データO」と称する。更に同様に、重み付け係数W1乃至重み付け係数Wn又は重み付け係数Wmに共通の事項を説明する場合、単に「重み付け係数W」と称する。
そして、以下に説明する第1実施形態等に係るニューラルネットワーク回路又はニューラルネットワーク集積回路は、図1を用いて説明した一般的なニューラルネットワークを、上記非特許文献1又は非特許文献2に記載されている手法によりバイナリ化したニューラルネットワーク回路又はニューラルネットワーク集積回路によりモデル化するものである。
(B)第1実施形態に係るニューラルネットワーク回路について
次に、第1実施形態に係るニューラルネットワーク回路について、図2及び図3を用いて例示しつつ説明する。
図2(a)に示すように、当該ニューラルネットワーク回路に相当するニューラルネットワークSでは、一つのニューロンNRに対して例えば四つの他のニューロンNRから1ビットの入力データIがそれぞれ入力され、それに対応する出力データOが当該ニューロンNRから出力される。このとき入力データIは、その出力元のニューロンNRから見れば1ビットの出力データOとなる。また1ビットの出力データOは、その出力先のニューロンNRから見ると1ビットの入力データIとなる。上記の通り入力データI及び出力データOはそれぞれ1ビットであるため、入力データIの値及び出力データOの値は、いずれも「0」又は「1」のいずれかである。そして、図2(a)において四つの入力データIが入力されているニューロンNR(図2(a)においてハッチングで示される)において実行される上記乗算処理等に相当する上記式(1)は、上記式(1)においてn=4とした場合の式である。即ち上記ニューラルネットワークSは、並列多入力−一出力型の一段ニューラルネットワークである。
次に、図2(a)に示すニューラルネットワークSにおいてハッチングで示されるニューロンNRに相当する第1実施形態に係るニューラルネットワーク回路の構成を、図2(b)にニューラルネットワーク回路CSとして示す。当該ニューラルネットワーク回路CSは、各々が1ビットの入力データI1乃至入力データI4にそれぞれ対応する四つのメモリセル1と、多数判定回路2と、により構成される。このとき、各メモリセル1が本発明に係る「第1回路部」の一例、「記憶部」の一例及び「出力部」の一例に、それぞれ相当する。また上記多数判定回路2が、本発明に係る「第2回路部」の一例に相当する。この構成において各メモリセル1は、「1」、又は「0」、或いは「NC(Not Connected(接続なし))」を意味する所定値の三つのいずれか一つを記憶値として記憶すると共に、比較機能を有する三値のメモリセルである。そして各メモリセル1は、それぞれへの入力データIの値と、それぞれの記憶値と、に応じた値を有する出力データE1乃至出力データE4を、多数判定回路2にそれぞれ出力する。
ここで、メモリセル1の記憶値の一つである上記所定値が意味する上記「NC」は、第1実施形態に係るニューラルネットワークSにおける二つのニューロンNR間に接続がない状態である。即ち、そのメモリセル1が対応している二つのニューロンNR(即ち入力ニューロンと出力ニューロン)が接続されていない場合、そのメモリセル1の記憶値は上記所定値に設定される。一方、メモリセル1の他の記憶値(「1」又は「0」)のいずれをそのメモリセル1に記憶させておくかは、そのメモリセル1が対応している接続により接続される二つのニューロンNR間の当該接続における重み係数Wに基づいて設定される。ここで各メモリセル1にどのような記憶値を記憶させておくかは、ニューラルネットワークSとしてどのような脳機能をモデル化するか(より具体的には、例えばニューラルネットワークSを構成するニューロンNR間の接続状態等)等に基づいて予め設定されている。なお以下の説明において、出力データE1乃至出力データEnに共通の事項を説明する場合、単に「出力データE」と称する。
そして、各メモリセル1における上記記憶値及びそれぞれに入力される入力データIの値と、各メモリセル1から出力される出力データEの値と、の間の関係は、図2(c)に真理値表を示す関係とされる。即ち各メモリセル1は、当該各メモリセル1の記憶値と入力データIの値との排他的否定論理和を当該各メモリセル1から出力データEとして出力する。また各メモリセル1の記憶値が上記所定値である場合、そのメモリセル1からは、入力データIがいずれの値であっても当該所定値が出力データEとして多数判定回路2に出力される。なお、各メモリセル1の細部構成については、後ほど図3(a)を用いて説明する。
次に多数判定回路2は、各メモリセル1からの出力データEの値に基づき、値「1」の出力データEの数が値「0」の出力データEの数より大きい場合にのみ値「1」の出力データOを出力し、それ以外の場合に値「0」の出力データOを出力する。このとき、値「1」の出力データEの数が値「0」の出力データEの数より大きい場合以外の場合とは、具体的には、いずれかのメモリセル1から値「NC」が出力されている場合、又は各メモリセル1からの値「1」の出力データEの数が値「0」の出力データEの数以下の場合、のいずれかである。なお多数判定回路2及び各メモリセル1を含むニューラルネットワーク回路CSの細部構成については、後ほど図3(b)を用いて説明する。
ここでニューラルネットワーク回路CSは上述したように、図2(a)においてハッチングで示されるニューロンNRにおける上記乗算処理、加算処理及び活性化処理をモデル化した回路である。そして、各メモリセル1からの上記排他的否定論理和としての出力データEの出力が上記重み付け係数Wを用いた上記乗算処理に相当する。また多数判定回路2は、値「1」の出力データEの数と値「0」の出力データEの数とを比較する比較処理の前提として、値「1」の出力データEの数を加算してその合計値を算出すると共に、値「0」の出力データEの数を加算してその合計値を算出する。これらの加算が上記加算処理に相当する。そして多数判定回路2において、値「1」の出力データE及び値「0」の出力データEそれぞれの数の上記合計値を比較し、前者の数から後者の数を減じた値が予め設定された多数判定閾値以上の場合にのみ、値「1」の出力データOを多数判定回路2から出力する。一方それ以外の場合、即ち値「1」の出力データEの数の合計値から値「0」の出力データEの数の合計値を減じた値が多数判定閾値未満の場合に値「0」の出力データOを多数判定回路2から出力する。このとき、出力データEが上記所定値の場合に多数判定回路2は、当該出力データEを、値「1」の出力データEの数及び値「0」の出力データEの数のいずれにも加算しない。
ここで、多数判定回路2における上記多数判定閾値を用いた処理について、より具体的に説明する。なお図2に例示するニューラルネットワーク回路CSでは、値「1」の出力データEの数と値「0」の出力データEの数との総数は「4」であるが、説明の明確化のため、当該総数が「10」である場合の上記処理について説明する。
即ち、例えば多数判定閾値が「0」であり、値「1」の出力データEの数と値「0」の出力データEの数が共に「5」であるとすると、値「1」の出力データEの数から値「0」の出力データEの数を減じた値は「0」であり、これは当該多数判定閾値と等しい。よってこの場合に多数決判定回路2は、値「1」の出力データOを出力する。これに対して、多数判定閾値が「0」であり、値「1」の出力データEの数が「4」であり、値「0」の出力データEの数が「6」であるとすると、値「1」の出力データEの数から値「0」の出力データEの数を減じた値は「−2」であり、これは当該多数判定閾値より小さい。よってこの場合に多数決判定回路2は、値「0」の出力データOを出力する。
他方、例えば多数判定閾値が「−2」であり、値「1」の出力データEの数と値「0」の出力データEの数が共に「5」であるとすると、値「1」の出力データEの数から値「0」の出力データEの数を減じた値「0」は当該多数判定閾値より大きい。よってこの場合に多数決判定回路2は、値「1」の出力データOを出力する。これに対して、多数判定閾値が「−2」であり、値「1」の出力データEの数が「4」であり、値「0」の出力データEの数が「6」であるとすると、値「1」の出力データEの数から値「0」の出力データEの数を減じた値「−2」は当該多数判定閾値と等しい。よってこの場合も多数決判定回路2は、値「1」の出力データOを出力する。
以上具体的に説明した多数判定回路2における処理が上記活性化処理に相当する。以上の通り、図2(b)に示すニューラルネットワーク回路CSにより、図2(a)においてハッチングで示されるニューロンNRとしての各処理がモデル化される。
次に、各メモリセル1の細部構成について、図3(a)を用いて説明する。図3(a)に示すように、各メモリセル1のそれぞれは、トランジスタT1乃至トランジスタT14と、インバータIV1乃至インバータIV4と、により構成されている。なお図3に示す各トランジスタT1等のそれぞれは、例えばMOSFET(Metal Oxide semiconductor Field Effected Transistor)等により構成されている。そしてこれらの素子が、入力データInに相当する接続線LIn及び接続線/LIn、ワード(Word)信号に相当する接続線W1及び接続線W2、並びにマッチ(match)信号に相当するマッチ線M及び反転マッチ線/Mにより図3(a)に示す態様で接続されて、一つのメモリセル1が構成されている。このとき、トランジスタT1及びトランジスタT2、並びにインバータIV1及びインバータIV2により例えばSRAM(static random access memory)としての一のメモリCL1が構成され、トランジスタT3及びトランジスタT4、並びにインバータIV3及びインバータIV4により例えばSRAMとしての一のメモリCL2が構成される。また、トランジスタT5乃至トランジスタT9によりXNORゲートG1が構成され、トランジスタT10乃至トランジスタT14によりXORゲートG2が構成される。
次に、多数判定回路2及び各メモリセル1を含むニューラルネットワーク回路CSの細部構成について、図3(b)を用いて説明する。なお図3(b)は、図2(a)に対応して入力データIが四つである(即ち、メモリセル1を四つ備える)ニューラルネットワーク回路CSの細部構成について示している。また図3(b)に例示するニューラルネットワーク回路CSでは、上記多数判定閾値が「0」である場合について説明する。
図3(b)に示すようにニューラルネットワーク回路CSは、四つのメモリセル1と、多数判定回路2を構成するトランジスタT20乃至トランジスタT30(図3(b)破線参照)と、により構成されている。このとき、図3(b)において一点鎖線で示されるように、トランジスタT25乃至トランジスタT28により、フリップフロップ型のセンスアンプSAが構成されている。そしてこれらの素子が、四つのメモリセル1に共通の上記接続線W1及び接続線W2並びに上記マッチ線M及び反転マッチ線/M、及び出力データOに相当する接続線LO及び接続線/LOにより図3(b)に示す態様で接続されて、一つのニューラルネットワーク回路CSが構成されている。また図3(b)に示すニューラルネットワーク回路CSには、当該ニューラルネットワーク回路CSとしての処理を規定するための予め設定されたタイミング信号φ1、タイミング信号φ2及びタイミング信号/φ2並びにタイミング信号φ3が外部から入力されている。このとき、タイミング信号φ1はトランジスタT20乃至トランジスタT22のゲート端子にそれぞれ入力され、タイミング信号φ2及びタイミング信号/φ2はトランジスタT29及びトランジスタT30のゲート端子にそれぞれ入力され、タイミング信号φ3はトランジスタT23及びトランジスタT24のゲート端子にそれぞれ入力されている。以上の構成において、タイミング信号φ1に基づいてそれぞれプリチャージされた各メモリセル1のマッチ線Mと反転マッチ線/Mとでは、入力データIの値並びにメモリCL1及びメモリCL2の記憶値に応じて、当該プリチャージされた電荷が引き抜かれるタイミングが異なる。そしてセンスアンプSAは、これらマッチ線M又は反転マッチ線/Mのどちらがより早く当該プリチャージされた電荷を引き抜かれるかを検出し、更に当該マッチ線Mと反転マッチ線/Mとの間の電圧差を増幅することにより、当該検知結果を接続線LO及び接続線/LOに出力する。ここで、接続線LOにおける値が「1」であることが、ニューラルネットワーク回路CSとしての出力データOの値「1」であることを意味することになる。以上の構成及び動作によりニューラルネットワーク回路CSは、上記タイミング信号φ1等に基づいて、図2(a)においてハッチングで示されるニューロンNRとしての各処理をモデル化した処理を実行し、上記出力データOを出力する。
(C)第1実施形態に係るニューラルネットワーク集積回路の第1例について
次に、第1実施形態に係るニューラルネットワーク集積回路の第1例について、図4を用いて説明する。なお図4において、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
以下の図4乃至図7を用いてそれぞれ説明する第1実施形態に係るニューラルネットワーク集積回路は、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路を複数集積した集積回路である。そしてこれらのニューラルネットワーク集積回路は、より多くのニューロンNRからなる複雑なニューラルネットワークをモデル化するためのものである。
先ず、図4(a)に例示するニューラルネットワークS1をモデル化するための第1実施形態に係るニューラルネットワーク集積回路の第1例について説明する。当該ニューラルネットワークS1は、図4(a)においてハッチングで示されるm個のニューロンNRのそれぞれに対してn個のニューロンNRから1ビットの出力データOがそれぞれ出力されることにより、当該ハッチングで示されるニューロンNRから1ビットの出力データOがそれぞれ出力されるニューラルネットワークである。即ち上記ニューラルネットワークS1は、並列多入力−並列多出力型の一段ニューラルネットワークである。ここで図4(a)においては、各ニューロンNRの全てが入力信号I又は出力信号Oにより接続されている場合を示しているが、モデル化しようとする脳機能に応じて、各ニューロンNRのいずれかの間が接続されていなくてもよい。そしてこのことが、当該接続されていないニューロンNR間の接続に対応するメモリセル1の記憶値として上記所定値が記憶されていることにより表現される。なおこの点は、以降に図5(a)、図6(a)又は図7(a)を用いてそれぞれ説明するニューラルネットワークの場合においても同様である。
上記ニューラルネットワークS1をモデル化する場合、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路CSにおいて、1ビットの入力データIをn個とする。このとき、当該n個の入力データIが入力されるニューラルネットワーク回路CSのそれぞれが、図4(a)においてハッチングで示されるニューロンNRの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。なお以下の図4乃至図7を用いた説明においては、上記n個の入力データIが入力されるニューラルネットワーク回路CSを、「ニューラルネットワーク回路CS1」、「ニューラルネットワーク回路CS2」、…、と称する。そして第1実施形態に係るニューラルネットワーク集積回路の第1例としては、当該n個の入力データIが入力されるニューラルネットワーク回路CS1等をm個集積する。
即ち図4(b)に示すように、第1実施形態に係るニューラルネットワーク集積回路の第1例であるニューラルネットワーク集積回路C1は、各1ビットのn個の入力データI1乃至入力データInがそれぞれ共通的に入力されるm個のニューラルネットワーク回路CS1乃至ニューラルネットワーク回路CSmが集積されて構成されている。そして、ニューラルネットワーク回路CS1乃至ニューラルネットワーク回路CSmのそれぞれには、上記タイミング信号φ1等がタイミング生成回路TGから共通的に入力される。このときタイミング生成回路TGは、予め設定された基準クロック信号CLKに基づいて上記タイミング信号φ1等を生成してニューラルネットワーク回路CS1乃至ニューラルネットワーク回路CSmに出力する。そしてニューラルネットワーク回路CS1乃至ニューラルネットワーク回路CSmの各々は、上記入力データI1乃至入力データInと、タイミング信号φ1等と、に基づいて、各1ビットの出力データO1、出力データO2、…、出力データOmをそれぞれ出力する。
以上説明した構成を備えるニューラルネットワーク集積回路C1において、m個のニューロンNRに対してn個のニューロンNRからそれぞれ出力データOが出力されることにより、m個のニューロンNRから出力データOが合計m個出力される図4(a)のニューラルネットワークS1がモデル化される。
(D)第1実施形態に係るニューラルネットワーク集積回路の第2例について
次に、第1実施形態に係るニューラルネットワーク集積回路の第2例について、図5を用いて説明する。なお図5において、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
第1実施形態に係るニューラルネットワーク集積回路の第2例は、図5(a)に例示するニューラルネットワークSS1をモデル化するためのニューラルネットワーク集積回路である。当該ニューラルネットワークSS1は、図4(a)を用いて説明したニューラルネットワークS1においてn=mとした場合に相当する。即ちニューラルネットワークSS1は、図5(a)においてハッチングで示される3×n個のニューロンNRのそれぞれに対して相隣接する列の(n個の)ニューロンNRから出力データOがそれぞれ出力されることにより、図5(a)右端列のn個のニューロンNRから出力データOがそれぞれ出力されるニューラルネットワークである。上記ニューラルネットワークSS1は、並列多入力−並列多出力型の多段ニューラルネットワークである。
上記ニューラルネットワークSS1をモデル化する場合も、図4を用いて説明したニューラルネットワークS1と同様に、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路CSにおいて、1ビットの入力データIをn個とする。このとき、当該n個の入力データIが入力されるニューラルネットワーク回路CSのそれぞれが、図5(a)においてハッチングで示されるニューロンNRの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。そして第1実施形態に係るニューラルネットワーク集積回路の第2例としては、当該n個の入力データIが入力されるニューラルネットワーク回路CS11等を直列に接続して計3×n個集積する。
即ち図5(b)に示すように、第1実施形態に係るニューラルネットワーク集積回路の第2例であるニューラルネットワーク集積回路CC1は、各1ビットのn個の入力データI1乃至入力データInがそれぞれ共通的に入力されるn個のニューラルネットワーク回路CS11乃至ニューラルネットワーク回路CS1nが集積されて一のニューラルネットワーク集積回路C1が構成される(図4(b)参照)。そして、ニューラルネットワーク集積回路C1を構成するニューラルネットワーク回路CS11乃至ニューラルネットワーク回路CS1nのそれぞれは、各1ビットの出力データO11乃至出力データO1nを出力し、それらが次段のn個のニューラルネットワーク回路CS21乃至ニューラルネットワーク回路CS2nに共通的に入力される。これらニューラルネットワーク回路CS21乃至ニューラルネットワーク回路CS2nにより、他の一のニューラルネットワーク集積回路C2が構成される。そして、ニューラルネットワーク集積回路C2を構成するニューラルネットワーク回路CS21乃至ニューラルネットワーク回路CS2nのそれぞれは、各1ビットの出力データO21乃至出力データO2nを出力し、それらが次段のn個のニューラルネットワーク回路CS31乃至ニューラルネットワーク回路CS3nに共通的に入力される。これらニューラルネットワーク回路CS31乃至ニューラルネットワーク回路CS3nにより、更に一のニューラルネットワーク集積回路C3が構成される。ここで、各ニューラルネットワーク回路CS11等に対しては、図4(a)に示す場合と同様に上記タイミング信号φ1等が共通的に入力されているが、説明の簡略化のために図5(b)では図示を省略している。そしてニューラルネットワーク集積回路C1は上記入力データI1乃至入力データInと、タイミング信号φ1等と、に基づいて、出力データO11、出力データO12、…、出力データO1nをそれぞれ生成し、これらを次段のニューラルネットワーク集積回路C2に共通的に出力する。次にニューラルネットワーク集積回路C2は上記出力データO12乃至出力データO1nと、タイミング信号φ1等と、に基づいて、出力データO21、出力データO22、…、出力データO2nをそれぞれ生成し、これらを次段のニューラルネットワーク集積回路C3に共通的に出力する。最後にニューラルネットワーク集積回路C3は上記出力データO21乃至出力データO2nと、タイミング信号φ1等と、に基づいて、最終的な出力データO31、出力データO32、…、出力データO3nをそれぞれ生成して出力する。
以上説明した構成を備えるニューラルネットワーク集積回路CC1において、n個のニューロンNRから次段のn個のニューロンNRに対してそれぞれが1ビットの出力データOがそれぞれ出力されることが段階的に繰り返されることにより、最終的に出力データOが合計n個出力される図5(a)のニューラルネットワークSS1がモデル化される。
(E)第1実施形態に係るニューラルネットワーク集積回路の第3例について
次に、第1実施形態に係るニューラルネットワーク集積回路の第3例について、図6を用いて説明する。なお図6において、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
第1実施形態に係るニューラルネットワーク集積回路の第3例は、図6(a)に例示するニューラルネットワークSS2をモデル化するためのニューラルネットワーク集積回路の例である。当該ニューラルネットワークSS2は、それぞれが図6(a)においてハッチングで示されるm個のニューロンNRからなる複数の組により構成され、これらのニューロンNRのそれぞれに対して共通のn個のニューロンNR(図6(a)において破線で示される)から1ビットの出力データOがそれぞれ出力されることにより、図6(a)においてハッチングで示される各ニューロンNRから各1ビットで合計m×組数個の出力データOが出力されるニューラルネットワークである。このニューラルネットワークSS2の場合、図6(a)においてハッチングで示される各ニューロンNRは、各1ビットで同じ数(n個)の出力データOをそれぞれ受信することになる。即ち上記ニューラルネットワークSS2は、並列多入力−並列多出力型の一段ニューラルネットワークである。
上記ニューラルネットワークSS2をモデル化する場合も、図4を用いて説明したニューラルネットワークS1と同様に、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路CSにおいて、1ビットの入力データIをn個とする。このとき、当該n個の入力データIが入力されるニューラルネットワーク回路CSのそれぞれが、図6(a)においてハッチングで示されるニューロンNRの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。そして第1実施形態に係るニューラルネットワーク集積回路の第3例としては、当該n個の入力データIが入力されるニューラルネットワーク回路CS11等を並列に接続して上記組数分集積する。
即ち図6(b)に示すように、第1実施形態に係るニューラルネットワーク集積回路の第3例であるニューラルネットワーク集積回路CC2は、各1ビットのn個の入力データI1乃至入力データInがそれぞれ共通的に入力されるm個のニューラルネットワーク回路CS11乃至ニューラルネットワーク回路CS1mが集積されて、一のニューラルネットワーク集積回路C1が構成される(図4(b)参照)。また同じn個の入力データI1乃至入力データInがそれぞれ並列的且つ共通的に入力されるm個のニューラルネットワーク回路CS21乃至ニューラルネットワーク回路CS2mが集積されて、他の一のニューラルネットワーク集積回路C2が構成される(図4(b)参照)。これ以降、同様にn個の入力データI1乃至入力データInがそれぞれ並列的且つ共通的に入力されるm個のニューラルネットワーク回路が集積されて、図6(b)において図示を省略する他のニューラルネットワーク集積回路がそれぞれ構成される。ここで、各ニューラルネットワーク回路CS11等に対しては、図5を用いて説明した場合と同様に、図4(a)に示す場合と同様の上記タイミング信号φ1等が共通的に入力されているが、説明の簡略化のために図6(b)では図示を省略している。そしてニューラルネットワーク集積回路C1は上記入力データI1乃至入力データInと、タイミング信号φ1等と、に基づいて、各1ビットの出力データO11、出力データO12、…、出力データO1mをそれぞれ生成して出力する。一方ニューラルネットワーク集積回路C2は、同じ入力データI1乃至入力データInと、タイミング信号φ1等と、に基づいて、各1ビットの出力データO21、出力データO22、…、出力データO2mをそれぞれ生成して出力する。これ以降、図示を省略する他のニューラルネットワーク集積回路も、それぞれにm個の出力データを出力する。
以上説明した構成を備えるニューラルネットワーク集積回路CC2において、m×組数分のニューロンNRから並行的にそれぞれ出力データOが出力されることにより、最終的に出力データOが合計m×組数分出力される図6(a)のニューラルネットワークSS2がモデル化される。
(F)第1実施形態に係るニューラルネットワーク集積回路の第4例について
最後に、第1実施形態に係るニューラルネットワーク集積回路の第4例について、図7を用いて説明する。なお図7において、図2及び図3を用いて説明した第1実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
第1実施形態に係るニューラルネットワーク集積回路の第4例は、図7(a)に例示するニューラルネットワークSS3をモデル化するためのニューラルネットワーク集積回路の例である。当該ニューラルネットワークSS3は、これまで説明してきた第1実施形態に係るニューラルネットワークS1等に対して、ニューロンNRの数及びニューロンNR間の接続の態様についての自由度を更に向上させたニューラルネットワークである。なお図7(a)には、段階的に各1ビットの出力データO(入力データI)が授受されるニューロン群(図7(a)破線参照)に属するニューロンNRの数が相互に異なるニューラルネットワークSS3について例示している。
上記ニューラルネットワークSS3をモデル化する場合、図2乃至図3を用いて説明した第1実施形態に係るニューラルネットワーク回路CSにおいて、1ビットの入力データIを例えばn個とする。このとき、当該n個の入力データIが入力されるニューラルネットワーク回路CSのそれぞれが、図7(a)に示す各ニューロンNRの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。そして第1実施形態に係るニューラルネットワーク集積回路の第4例としては、当該n個の入力データIが入力されるニューラルネットワーク回路CS11等をそれぞれに複数備えたニューラルネットワーク集積回路を複数備え、当該各ニューラルネットワーク集積回路を、後述する複数のスイッチ及びそれらを切り換えるスイッチボックスにより接続して集積する。
即ち図7(b)に示すように、第1実施形態に係るニューラルネットワーク集積回路の第4例であるニューラルネットワーク集積回路CC3は、各1ビットのn個の入力データI1乃至入力データInがそれぞれ共通的に入力されるn個のニューラルネットワーク回路CS11乃至ニューラルネットワーク回路CS1nが集積されて一のニューラルネットワーク集積回路C1が構成される(図4(b)参照)。そして同様に、例えばm個のニューラルネットワーク回路CS21乃至ニューラルネットワーク回路CS2mが集積されて一のニューラルネットワーク集積回路C2が、ニューラルネットワーク回路CS31乃至ニューラルネットワーク回路CS3p(pは2以上の自然数。以下、同様。)が集積されて一のニューラルネットワーク集積回路C3が、ニューラルネットワーク回路CS41乃至ニューラルネットワーク回路CS4q(qは2以上の自然数。以下、同様。)が集積されて一のニューラルネットワーク集積回路C4が、それぞれ構成される。また、ニューラルネットワーク集積回路C1乃至ニューラルネットワーク集積回路C4のそれぞれは、図7(b)に例示するようにスイッチSW1乃至スイッチSW4を介して、相互に各1ビットの入力データI及び出力データOの授受が可能とされている。そして、ニューラルネットワーク集積回路C1乃至ニューラルネットワーク集積回路C4間における入力データI及び出力データOの授受の態様(即ちニューラルネットワーク集積回路C1乃至ニューラルネットワーク集積回路C4間の接続態様)が、スイッチSW1乃至スイッチSW4を介してスイッチボックスSB1乃至スイッチボックスSB4により切り換えられる。このとき、上記スイッチSW1乃至スイッチSW4及びスイッチボックスSB1乃至スイッチボックスSB4が、本発明に係る「スイッチ部」の一例に相当する。
次に、上記スイッチボックスSB1乃至スイッチボックスSB4の細部構成について、図7(c)を用いて説明する。なお、スイッチボックスSB1乃至スイッチボックスSB4はいずれも同様の構成を備えるので、図7(c)では、これらを纏めてスイッチボックスSBとして説明する。
図7(c)に示すように、ニューラルネットワーク集積回路CC3における各1ビットの入力データI又は出力データOの接続態様、及び結果的に有効なニューロンNRの数を制御するスイッチボックスSBは、セレクタM1乃至セレクタM5が図7(c)に示す態様により接続されて構成されている。この図7(c)に示すスイッチボックスSBの構成においては、上述してきた入力データIに対応する信号は図7(c)中左から入力される信号であり、上記出力データOに対応する信号は図7(c)中の上方及び下方からそれぞれ入力される信号である。そしてニューラルネットワーク集積回路C1乃至ニューラルネットワーク集積回路C4に対する入力データI等の切り換えは、当該切り換えを制御する切換制御信号Sc1乃至切換制御信号Sc5が外部からそれぞれ入力されるセレクタM1乃至セレクタM5により、実行される。
以上説明したように、入力データIに対応する出力データOを生成して出力する図7(a)のニューラルネットワークSS3が、図7(c)に示す構成を備えるスイッチボックスSB1乃至スイッチボックスSB4により各スイッチSW1乃至スイッチSW4が切り換えられる、図7(b)に示す構成のニューラルネットワーク集積回路CC3によりモデル化される。
以上それぞれ説明したように、第1実施形態に係るニューラルネットワーク回路CS及びニューラルネットワーク集積回路C1等の構成及び動作によれば、図2及び図3に例示するように、対応すべき脳機能に基づいてその数が既定されているメモリセル1のそれぞれが、記憶値として「NC」を意味する所定値或いは「1」又は「0」のいずれかを記憶し、1ビットの入力データIの値と記憶値とが等しい場合に入力データIの入力に対応して「1」を出力し、入力データIの値と記憶値とが等しくない場合に入力データIの入力に対応して「0」を出力し、上記所定値が記憶されている場合にいずれの値の入力データIが入力されても当該所定値を出力する。そして多数判定回路2が、値「1」を出力するメモリセル1の総数と、値「0」を出力するメモリセル1の総数と、の差に基づいて出力データOとして「1」又は「0」を出力する。より具体的な一例として多数判定回路2が、値「1」を出力するメモリセル1の総数が値「0」を出力するメモリセル1の総数より大きい場合に値「1」を出力データOとして出力し、値「1」を出力するメモリセル1の総数が値「0」を出力するメモリセル1の総数以下の場合に「0」を出力データOとして出力する。よって、メモリセル1においてニューラルネットワーク回路としての乗算処理を行い、一の多数判定回路2によりニューラルネットワーク回路としての加算処理及び活性化処理を行うので、回路規模及びそれに対応するコストを大幅に縮小しつつ、ニューラルネットワーク回路を効率的に実現することができる。
また図4(b)に例示するように、それぞれが1ビットのn個の入力データIにそれぞれ対応してメモリセル1の数がnであるニューラルネットワーク回路CSをm個備え、各ニューラルネットワーク回路CSに対してn個の入力データIが並列且つ共通的に入力され、各ニューラルネットワーク回路CSから出力データOをそれぞれ出力させる場合は、図4(a)に例示するニューラルネットワークS1をモデル化し且つ入力がn個であり出力がm個であるn×mのニューラルネットワーク集積回路C1を、回路規模及びそれに対応するコストを大幅に縮小しつつ効率的に実現することができる。更にこの場合に、図4(a)においてハッチングで示されるm個のニューロンNRと、当該m個に対して出力データOをそれぞれ出力するn個のニューロンNRと、の間に多様な接続のパターンがあっても、ニューラルネットワーク集積回路C1においてニューロンNR間に接続がない場合に対応するメモリセル1の記憶値として上記所定値を用いることで、ニューラルネットワーク集積回路C1をより効率的に実現することができる。更に図4に例示する場合には、n個の入力データIを各ニューラルネットワーク回路CSに対して並列且つ共通的に入力し、それに基づくm個の出力データOを並列に出力させることができるため、入力データI及び出力データOを逐次的に入出力させなければならない場合と比べて処理の大幅な高速化が可能となる。
更にまた図5に例示するように、上記「n」と上記「m」とが等しいニューラルネットワーク集積回路C1等を直列に接続し、一のニューラルネットワーク集積回路C1(又はニューラルネットワーク集積回路C2)からの出力データOを、当該ニューラルネットワーク集積回路C1(又はニューラルネットワーク集積回路C2)の直後に接続された他のニューラルネットワーク集積回路C2(又はニューラルネットワーク集積回路C3)における入力データIとする場合は、入力及び出力が共に並列型であるニューラルネットワーク集積回路CC1を、回路規模及びそれに対応するコストを大幅に縮小しつつ効率的に実現することができる。
また図6に例示するように、各ニューラルネットワーク集積回路CSに対してn個の入力データIが並列且つ共通に入力され、各ニューラルネットワーク集積回路CSからm個の出力データOを並列にそれぞれ出力する場合は、入力及び出力が共に並列型であり且つ出力データOの数が入力データIの数より多いニューラルネットワーク集積回路CC2を、回路規模及びそれに対応するコストを大幅に縮小しつつ効率的に実現することができる。
また図7に例示するように、ニューラルネットワーク集積回路C1等を複数備え、各ニューラルネットワーク集積回路C1等をアレイ状に且つ相互に接続するスイッチSW1等により、各ニューラルネットワーク集積回路C1等に対する入力データI及び出力データOが切り換える場合には、スイッチSW1等における切換動作が、対応すべき脳機能に基づいて既定されていれば、大規模なニューラルネットワーク集積回路CC3を、対応するコストを大幅に縮小しつつ効率的に実現することができる。
(II)第2実施形態
次に、本発明に係る第2実施形態について、図8乃至図16を用いて説明する。なお、図8及び図9は第2実施形態に係るニューラルネットワーク集積回路の第1例をそれぞれ示す図であり、図10は第2実施形態に係るニューラルネットワーク回路の第1例を示す図であり、図11は第2実施形態に係るニューラルネットワーク集積回路の第2例を示す図である。また、図12は当該ニューラルネットワーク集積回路の第3例を示す図であり、図13は当該ニューラルネットワーク集積回路の第4例を示す図であり、図14は当該第4例の細部構成を示す図であり、図15は第2実施形態に係るニューラルネットワーク集積回路の第5例を示す図であり、図16は当該ニューラルネットワーク集積回路の第6例等の構成を示すブロック図である。
以下に説明する第2実施形態は、図1乃至図7を用いて上述してきたニューラルネットワークS等のモデル化の構成又は手法とは異なる構成又は手法により、当該ニューラルネットワークS等をモデル化しようとするものである。
(A)第2実施形態に係るニューラルネットワーク集積回路の第1例について
初めに、第2実施形態に係るニューラルネットワーク集積回路の第1例について、図8及び図9を用いて説明する。なお、図8は当該第1例としての上記乗算処理を行う当該第1例の一部を示す図であり、図9は当該第1例全体を示す図である。このとき、当該乗算処理が本発明に係る「乗算機能」の一例に相当する。
図8(a)に例示するように、当該第1例の一部によりモデル化されるネットワークS’では、一つのニューロンNRから1ビットの出力データO(換言すれば入力データI)が入力される。そして、入力データIの出力先となる図示しない複数の他のニューロンにそれぞれ対応する異なった重み付け係数W1乃至重み付け係数W4のうちの一つが当該入力データIに乗算され、上記図示しない他のニューロンに対して、出力データE1乃至出力データE4としてそれぞれ出力される。そしてこのときの出力データEは、入力データIと同様に1ビットの信号である。よって、図8に示す入力データIの値、各重み付け係数Wの値及び出力データEの値は、いずれも「0」又は「1」のいずれかである。
次に、第2実施形態に係るニューラルネットワーク集積回路の第1例における図8(a)に示すネットワークS’に相当する部分の構成を、図8(b)にネットワーク回路CS’として示す。当該ネットワーク回路CS’は、各々が図8(a)に示す出力データE1乃至出力データE4にそれぞれ対応する四組のメモリセル10及びメモリセル11と、各々が出力データE(換言すれば、上記図示しない他のニューロンの入力データI)にそれぞれ対応する四つの多数判定入力回路12と、により構成される。このとき、一つのメモリセル10と一つのメモリセル11からなるメモリセル対の数及びそれらに対応する多数判定入力回路12の数(図8に例示する場合は共に四つ)は、第2実施形態に係るニューラルネットワーク集積回路の第1例として所望される出力データOの数に等しい。なお以下の図8の説明において、出力データOの数分の上記メモリセル対を、纏めて「メモリセルブロック15」(図8(b)破線参照)と称する。また、メモリセル10が本発明に係る「第1記憶部」の一例に相当し、メモリセル11が本発明に係る第2記憶部の一例に相当し、多数判定入力回路12が本発明に係る「第1回路部」の一例に相当する。
以上の構成において各メモリセルブロック15内のメモリセル10は、ネットワーク回路CS’を含む第2実施形態に係るニューラルネットワーク集積回路の第1例が対応すべき脳機能に基づいて予め設定された1ビットの重み付け係数Wをそれぞれに記憶している。これに対して各メモリセルブロック15内のメモリセル11は、上記脳機能に基づいて予め設定された1ビットの接続有無情報をそれぞれに記憶している。ここで当該接続有無情報は、上記第1実施形態におけるメモリセル1の記憶値「NC」に相当するものであり、第2実施形態に係るニューラルネットワークにおける二つのニューロンNR間に接続がある状態であるか、又は当該接続がない状態であるか、のいずれかを表すための記憶値である。なお、各メモリセル10及びメモリセル11にどのような記憶値を記憶させておくかは、例えば、ネットワークS’を含む第2実施形態に係るニューラルネットワーク集積回路の第1例としてどのような脳機能をモデル化するか等に基づいて予め設定されていればよい。
そして各メモリセル10は、それぞれの記憶値を、重み付け係数W1、重み付け係数W2、重み付け係数W3及び重み付け係数W4として多数判定入力回路12にそれぞれ出力する。このとき各メモリセル10は、それぞれの記憶値を、重み付け係数W1乃至重み付け係数W4として同時に多数判定入力回路12に出力する。なおこの同時出力の構成は、以下の図9乃至図16を用いてそれぞれ説明するニューラルネットワーク回路及びニューラルネットワーク集積回路における各メモリセル10においても同様である。一方各メモリセル11も、それぞれの記憶値を、接続有無情報C1、接続有無情報C2、接続有無情報C3及び接続有無情報C4として多数判定入力回路12にそれぞれ出力する。このとき各メモリセル11は、それぞれの記憶値を、接続有無情報C1乃至接続有無情報C4として同時に多数判定入力回路12に出力する。また各メモリセル11は、上記各メモリセル10からの記憶値の出力に対して例えば一サイクル前又は後にずらして、それぞれの記憶値を同時に多数判定入力回路12に出力する。なおこの同時出力の構成及び各メモリセル10からの記憶値の出力のタイミングとの関係は、以下の図9乃至図14を用いてそれぞれ説明するニューラルネットワーク回路及びニューラルネットワーク集積回路における各メモリセル11においても同様である。更に以下の説明において、接続有無情報C1、接続有無情報C2、接続有無情報C3、…、に共通の事項を説明する場合、単に「接続有無情報C」と称する。
他方各多数判定入力回路12には、図8(b)において図示しない他のノードNR(図8(a)参照)からの1ビットの入力データIが共通的に入力されている。そして各多数判定入力回路12は、対応するメモリセル11から出力される上記接続有無情報を、そのまま接続有無情報C1乃至接続有無情報C4としてそれぞれ出力する。
これらに加えて各多数判定入力回路12は、対応するメモリセル10から出力される重み付け係数W1、重み付け係数W2、重み付け係数W3及び重み付け係数W4と上記入力データIとの排他的否定論理和(XNOR)を算出し、上記出力データE1、出力データE2、出力データE3及び出力データE4としてそれぞれ出力する。このとき、対応するメモリセル11の記憶値(重み付け係数W)と、入力データIの値と、多数判定入力回路12から出力される出力データEの値と、の間の関係は、図8(c)に真理値表を示す関係となる。なお図8(c)には、上記排他的否定論理和(XNOR)を算出する前提としての排他的論理和(XOR)についても記載している。
ここで、図2を用いて説明した第1実施形態に係るニューラルネットワーク回路CSに対応する真理値表(図2(c)参照)と、上記図8(c)に示す真理値表とを比較する。このとき、メモリセル10における記憶値及び入力データIの値をそれぞれ図2(c)に示した真理値表のものと同じとした場合、図8(b)に示す出力データEの値は図2(b)に示す出力データEの値と同一となる。これらにより、図8(b)に示すネットワーク回路CS’は、図2(b)に示したニューラルネットワーク回路CSにおける上記乗算処理と同様の論理により、図8(a)に示すネットワークS’における上記乗算処理をモデル化した回路となる。即ち、各メモリセル10から出力されてくる各々の記憶値(重み付け係数W)と入力データIの値との間の排他的論理和を多数判定入力回路12において算出することが上記乗算処理に相当する。以上の通り、図8(b)に示すネットワーク回路CS’により、図8(a)に示すネットワークS’における乗算処理がモデル化される。
次に、第2実施形態に係るニューラルネットワーク集積回路の第1例の全体について図9を用いて説明する。なお図9において、図8を用いて説明した第2実施形態に係るネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
図9を用いてその全体を説明する第2実施形態に係るニューラルネットワーク集積回路の第1例は、図8を用いて説明した第2実施形態に係るネットワーク回路CS’を複数集積した集積回路である。第2実施形態に係るニューラルネットワーク集積回路の第1例では、当該ネットワーク回路CS’に相当する上記乗算処理に加えて、上記加算処理及び上記活性化処理が実行される。このとき、当該加算処理及び活性化処理が本発明に係る「加算/適用機能」の一例に相当する。
先ず、第2実施形態に係るニューラルネットワーク集積回路の第1例によりモデル化されるニューラルネットワークの全体について、図9(a)を用いて説明する。図9(a)に示す当該ニューラルネットワークS1’は、図8を用いて説明したネットワークS’をm個のニューロンNR分含んでいる。当該ニューラルネットワークS1’では、図9(a)においてハッチングで示されるn個のニューロンNRのそれぞれに対して、それぞれが上記ネットワークS’を構成するm個のニューロンNRからそれぞれ1ビットの出力データO(換言すれば入力データI)が出力される。そしてこれにより、各出力データOが出力データEとなって上記ハッチングで示されるn個のニューロンNRのそれぞれに入力され、当該ハッチングで示されるニューロンNRから出力データOが一つずつ合計n個並列的に出力される。即ち上記ニューラルネットワークS1’は、直列(m)入力−並列(n)出力型の一段ニューラルネットワークである。
上記ニューラルネットワークS1’をモデル化した第2実施形態に係るニューラルネットワーク集積回路の第1例は、図9(b)に示すニューラルネットワーク集積回路C1’となる。当該ニューラルネットワーク集積回路C1’は、上記メモリセル対及び多数判定入力回路12をそれぞれにn個ずつ含む第2実施形態に係るニューラルネットワーク回路CS’(図8参照)をm個備えると共に、各多数判定入力回路12及びメモリセル対に対応させてn個の直列多数判定回路13を備えている。このとき、直列多数判定回路13が本発明に係る「第2回路部」の一例に相当する。そして図9(b)に示すように、n×m個の上記メモリセル対(換言すれば、m個のメモリセルブロック15)により、メモリセルアレイMC1が構成されている。またニューラルネットワーク集積回路C1’では、図9(b)に示すメモリセルアレイMC1における横一行(m個)のメモリセル対で一つの多数判定入力回路12を共用する。なお、メモリセルアレイMC1、各多数判定入力回路12及び各直列多数判定回路13には、それぞれ上記タイミング信号φ1等が共通的に入力されているが、説明の簡略化のために図9(b)では図示を省略している。
以上の構成において、それぞれのニューラルネットワーク回路CS’を構成するメモリセルブロック15のメモリセル10からは、上記重み付け係数Wが、一のメモリセルブロック15に含まれる各メモリセル10について同時に、且つm個のメモリセルブロック15について順次に(即ちシリアル形式で)、それぞれ出力される。そして、これらの重み付け係数Wと、対応するタイミングによりシリアル形式で入力されるm個の入力データI(各1ビットの入力データI)と、の上記排他的論理和を、上記共有する多数判定入力回路12において時分割的に演算し、それを出力データEとして、対応する直列多数判定回路13にシリアル形式で出力する。一方、それぞれのニューラルネットワーク回路CS’を構成するメモリセルブロック15のメモリセル11からは、上記接続有無情報Cが、一のメモリセルブロック15に含まれる各メモリセル11について同時に、且つm個のメモリセルブロック15について順次に(即ちシリアル形式で)、それぞれ出力される。そしてこれらの接続有無情報Cが、上記共有する多数判定入力回路12を介し、各入力データIの入力タイミングに対応したシリアル形式で、対応する直列多数判定回路13に出力される。なお、各メモリセルブロック15からの上記各重み付け係数Wの出力タイミングの態様、及び各メモリセルブロック15からの上記各接続有無情報Cの出力タイミングの態様のそれぞれは、以下の図10乃至図14を用いてそれぞれ説明するニューラルネットワーク集積回路における各メモリセル11においても同様である。また図9(b)では、図面としての明確化及びその説明の簡略化のため、メモリセル10から出力される上記重み付け係数Wnと、それに対応するメモリセル11から出力される上記接続有無情報Cnと、を、合わせて一本の実線で示している。この点は、以下に説明する図11乃至図14において同様である。
次に、各多数判定入力回路12から出力データE及び接続有無情報Cがそれぞれ入力されるn個の直列多数判定回路13はそれぞれ、同じタイミングで入力された接続有無情報Cが「接続あり」を示している最大m個の出力データEについて、値「1」の当該出力データEの数を加算してその合計値を算出すると共に、値「0」の出力データEの数を加算してその合計値を算出する。これらの加算が上記加算処理に相当する。そして各直列多数判定回路13はそれぞれ、値「1」の出力データE及び値「0」の出力データEそれぞれの数の上記合計値を比較し、前者の数から後者の数を減じた値が、第1実施形態に係る上記多数判定閾値と同様にして予め設定された多数判定閾値以上の場合にのみ、値「1」の出力データOを出力する。一方それ以外の場合、即ち値「1」の出力データEの数の合計値から値「0」の出力データEの数の合計値を減じた値が上記多数判定閾値未満の場合に各直列多数判定回路13はそれぞれ、値「0」の出力データOを出力する。これらの各直列多数判定回路13における処理が上記活性化処理に相当すると共に、各出力データOは1ビットとなる。ここで、同じタイミングで出力される上記接続有無情報Cが「接続なし」を示している場合、直列多数判定回路13は、出力データEを、値「1」の出力データEの数及び値「0」の出力データEの数のいずれにも加算しない。そして各直列多数決回路13は、上述した各処理により1ビットの出力データOを出力することを、入力データIが入力されるタイミングに合わせて繰り返す。このときの出力データOは、結果的に各直列多数決回路13から並列的に出力される。この場合、出力データOの総数はn個となる。以上の通り、図9(a)においてハッチングで示される一つのニューロンNRに対応する上記乗算処理、加算処理及び活性化処理のそれぞれは、図9(b)に示すメモリセルアレイMC1における横一行分のメモリセル対と、それらに対応する多数判定入力回路12及び直列多数判定回路13と、により実行されることになる。
以上説明したように、図9(a)においてハッチングで示されるn個のニューロンNRに対してm個のニューロンNRから1ビットの出力データOがそれぞれ出力され、これらにより当該n個のニューロンNRから出力データOが合計n個出力されるニューラルネットワークS1’が、図9(b)に示す構成を備えるニューラルネットワーク集積回路C1’によりモデル化される。
より具体的に、人の脳機能に対応し且つ各1ビットの入力データI及び出力データOがそれぞれ入出力されるニューラルネットワーク集積回路C1’の構成によれば、上記乗算処理をメモリセル10、メモリセル11及び多数判定入力回路12により実行し、上記加算処理及び活性化処理を直列多数判定回路13により実行するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、人の脳機能に対応したニューラルネットワークS1’を効率的に実現することができる。
また、上記ニューラルネットワーク集積回路C1’の構成によれば、入力データIの数が一であり、出力データO、メモリセル10、メモリセル11、多数判定入力回路12及び直列多数判定回路13それぞれの数が、対応すべき脳機能に基づいた既定の二以上の数とされており、重み付け係数W及び接続有無情報Cのそれぞれが脳機能に対応した値とされている。そして各多数判定入力回路12が、各出力データOにそれぞれ対応する重み付け係数Wと入力データIとの排他的論理和を出力データOごとにそれぞれ生成し、各直列多数判定回路13が、(値「1」である出力データEの総数−値「0」である出力データEの総数≧多数判定閾値)であるとき値「1」を出力データOとして出力し、(値「1」である出力データEの総数−値「0」である出力データEの総数<多数判定閾値)であるとき値「0」を出力データOとして出力する。よって、各メモリセル10、各メモリセル11及び各多数判定入力回路12により出力データOごとに乗算処理を実行し、更に各直列多数判定回路13により出力データOごとに加算処理及び活性化処理を実行するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、いわゆる直列入力−並列出力型のニューラルネットワークS1’を効率的に実現することができる。
(B)第2実施形態に係るニューラルネットワーク回路の第1例について
次に、第2実施形態に係るニューラルネットワーク回路の第1例について、図10を用いて説明する。
図10(a)に例示するように、当該第1例に相当するニューラルネットワークSは、基本的には図2(a)に例示した第1実施形態に係るニューラルネットワークSと同一の構成である。但し図10(a)に示す例では、図10(a)においてハッチングで示される一つのニューロンNRに対して他の三つのニューロンNRから1ビットの入力データI(当該他のニューロンNRから見ると出力データO)が並列的に入力され、それに対応する出力データOが当該ニューロンNRからシリアル形式で一つ出力される構成となっている。このときの出力データOも、各入力データIと同様に1ビットの信号である。よって、図10に示す入力データIの値及び出力データOの値は、いずれも「0」又は「1」のいずれかである。そして、図10(a)に示すニューロンNRにおいて実行される上記乗算処理等に相当する上記式(1)は、上記式(1)においてn=3とした場合の式である。即ち上記ニューラルネットワークSは、並列入力−直列出力型の一段ニューラルネットワークである。
次に、図10(a)においてハッチングで示したニューロンNRに相当する第2実施形態に係るニューラルネットワーク回路の第1例の構成を、図10(b)にニューラルネットワーク回路CCS’として示す。当該ニューロンNRに相当する第2実施形態に係るニューラルネットワーク回路CCS’は、各々が図10(a)に例示する入力データIにそれぞれ対応する三組のメモリセル10及びメモリセル11と、各入力データIが入力される並列多数判定回路20と、により構成される。このとき、一つのメモリセル10と一つのメモリセル11からなるメモリセル対の数(図10に例示する場合は共に三つ)は、図10(a)に示すニューラルネットワークSとして所望される入力データIの数に等しい。なお以下の図10の説明において、入力データIの数分の上記メモリセル対はそれぞれメモリセルブロック15と示されている(図10(b)破線参照)。
以上の構成において各メモリセルブロック15内のメモリセル10は、ニューラルネットワーク回路CCS’が対応すべき脳機能に基づいて予め設定された1ビットの重み付け係数Wをそれぞれに記憶している。これに対して各メモリセルブロック15内のメモリセル11は、上記脳機能に基づいて予め設定された1ビットの接続有無情報をそれぞれに記憶している。ここで当該接続有無情報は、図8及び図9を用いて説明した第2実施形態に係るニューラルネットワーク回路の第1例における接続有無情報Cnと同一の情報であるので、細部の説明は省略する。また、各メモリセル10及びメモリセル11にどのような記憶値を記憶させておくかは、例えば、図10(a)に示すニューラルネットワークSとしてどのような脳機能をモデル化するか等に基づいて予め設定されていればよい。
そして各メモリセル10は、それぞれの記憶値を、図8(b)に示す各メモリセル10と同様のタイミングで、重み付け係数W1、重み付け係数W2及び重み付け係数W3として並列多数判定回路20にそれぞれ出力する。一方各メモリセル11も、それぞれの記憶値である接続有無情報Cを、図8(b)に示す各メモリセル11と同様のタイミングで並列多数判定回路20にそれぞれ出力する。
他方並列多数判定回路20には、上述したように入力データI1、入力データI2及び入力データI3(各1ビット)が並列的に入力されている。そして並列多数判定回路20は、図9を用いて説明した一組の多数判定入力回路12及び直列多数判定回路13と同様の動作を含む動作(即ち、上記乗算処理、上記加算処理及び上記活性化処理)を行う。具体的に並列多数判定回路20は先ず、対応する接続有無情報Cが「接続あり」を示している場合に、それぞれが1ビットの各入力データIと、それらに対応する重み付け係数Wと、の上記排他的論理和を当該各入力データIについて演算する。次に並列多数判定回路20は、各上記演算結果について、値「1」の当該演算結果の数を加算してその合計値を算出すると共に、値「0」の当該演算結果の数を加算してその合計値を算出する。そして並列多数判定回路20は、値「1」の当該演算結果及び値「0」の当該演算結果それぞれの数の上記合計値を比較し、前者の数から後者の数を減じた値が、第1実施形態に係る上記多数判定閾値と同様にして予め設定された多数判定閾値以上の場合にのみ、値「1」の出力データOをシリアル形式で出力する。一方それ以外の場合、即ち値「1」の出力データEの数の合計値から値「0」の出力データEの数の合計値を減じた値が上記多数判定閾値未満の場合に並列多数判定回路20は値「0」の出力データOをシリアル形式で出力する。この場合に出力データOは1ビットとなる。ここで、対応する接続有無情報Cが「接続なし」を示している場合、並列多数判定回路20は上記排他的論理和を演算しない。なお、各入力データIと、対応する重み付け係数Wと、の上記排他的論理和を全ての入力データIについて一旦演算し、対応する接続有無情報Cが「接続なし」を示している場合に、その演算結果を値「1」の演算結果の数及び値「0」の演算結果の数のいずれにも加算しないように構成してもよい。そして並列多数判定回路20は、上述した各処理により1ビットの出力データOをシリアル形式で出力することを、並列的に入力されている各入力データIの数ごとに繰り返す。以上の各処理により、図10(b)に示すニューラルネットワーク回路CCS’は、図10(a)においてハッチングで示されるニューロンNRにおける上記乗算処理、加算処理及び活性化処理をモデル化した回路となる。
(C)第2実施形態に係るニューラルネットワーク集積回路の第2例について
次に、第2実施形態に係るニューラルネットワーク集積回路の第2例について、図11を用いて説明する。なお図11において、図10を用いて説明した第2実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
図11を用いて説明する第2実施形態に係るニューラルネットワーク集積回路の第2例は、図10を用いて説明した第2実施形態に係るニューラルネットワーク回路CCS’を複数集積した集積回路であり、より多くのニューロンNRからなる複雑なニューラルネットワークをモデル化するためのものである。
先ず、第2実施形態に係るニューラルネットワーク集積回路の第2例によりモデル化されるニューラルネットワークについて、図11(a)を用いて説明する。図11(a)に示す当該ニューラルネットワークS2’は、図11(a)においてハッチングで示されるm個のニューロンNRのそれぞれに対してn個のニューロンNRから1ビットの出力データO(m個のニューロンNRから見た場合は入力データI)が並列的にそれぞれ入力され、それらに対応する出力データOが当該ニューロンNRからシリアル形式で出力される構成となっている。このときの出力データOも、各入力データIと同様に1ビットの信号である。よって、図11に示す入力データIの値及び出力データOの値は、いずれも「0」又は「1」のいずれかである。即ち上記ニューラルネットワークS2’は、並列入力−直列出力型の一段ニューラルネットワークである。
上記ニューラルネットワークS2’をモデル化した第2実施形態に係るニューラルネットワーク集積回路の第2例は、図11(b)に示すニューラルネットワーク集積回路C2’となる。当該ニューラルネットワーク集積回路C2’は、上記メモリセル対をそれぞれにn個ずつ含む第2実施形態に係るニューラルネットワーク回路CCS’(図10参照)をm個備えると共に、上記並列多数判定回路20を備えている。そして図11(b)に示すように、n×m個の上記メモリセル対(換言すれば、m個のメモリセルブロック15)により、メモリセルアレイMC2が構成されている。またニューラルネットワーク集積回路C2’では、一つの並列多数判定回路20を図11(b)に示すメモリセルアレイMC2における横一行(m個)のメモリセル対で共用する。なお、メモリセルアレイMC2及び並列多数判定回路20には、それぞれ上記タイミング信号φ1等が共通的に入力されているが、説明の簡略化のために図11(b)では図示を省略している。
以上の構成において、それぞれのニューラルネットワーク回路CCS’を構成するメモリセルブロック15のメモリセル10からは、上記重み付け係数Wが、図9(b)に示す各メモリセル10及び各メモリセルブロック15と同様のタイミングで並列多数判定回路20に出力される。一方、それぞれのニューラルネットワーク回路CCS’を構成するメモリセルブロック15のメモリセル11からは、上記接続有無情報Cが、図9(b)に示す各メモリセル11及び各メモリセルブロック15と同様のタイミングで並列多数判定回路20に出力される。
そして並列多数判定回路20は、メモリセルアレイMC2から出力されてくる重み付け係数W及び接続有無情報Cと、それらに対応する入力データIと、に基づき、接続有無情報Cが「接続あり」を示している重み付け係数W及び入力データIを用いた上記排他的論理和の演算処理、その演算結果に基づく値「1」の演算結果及び値「0」の演算結果それぞれの数の加算処理、その加算結果に基づく上記合計数の比較処理(図10(b)参照)、及びその比較結果に基づく出力データOの生成処理を、メモリセルアレイMC2における横一行(m個)についてそれぞれ行う。また並列多数判定回路20は、上記横一行についての演算処理、加算処理、比較処理及び生成処理を、各入力データIについて、メモリブロック15ごとにシリアル形式で実行し、それぞれの実行結果としての出力データOをシリアル形式で出力する。ここで、対応する接続有無情報Cが「接続なし」を示している場合、並列多数判定回路20は上記演算処理、加算処理、比較処理及び生成処理を行わない。
以上説明したように、図11(a)においてハッチングで示されるm個のニューロンNRに対してn個のニューロンNRからそれぞれ出力データOが出力され、これらにより当該m個のニューロンNRから1ビットの出力データOがシリアル形式で出力されるニューラルネットワークS2’が、図11(b)に示す構成を備えるニューラルネットワーク集積回路C2’によりモデル化される。
より具体的に、ニューラルネットワーク集積回路C2’の構成によれば、出力データO及び並列多数判定回路20の数がそれぞれ一であり、入力データI、メモリセル10及びメモリセル11それぞれの数が、対応すべき脳機能に基づいた既定の二以上の数とされており、重み付け係数W及び接続有無情報Cのそれぞれが脳機能に対応した値とされている。そして並列多数判定回路20が、各入力データIにそれぞれ対応する重み付け係数Wと当該各入力データIとの排他的論理和を入力データIごとにそれぞれ生成し、更に、(値「1」である排他的論理和の総数−値「0」である排他的論理和の総数≧多数判定閾値)であるとき値「1」を出力データOとして出力し、(値「1」である排他的論理和の総数−値「0」である排他的論理和の総数<多数判定閾値)であるとき値「0」を出力データOとして出力する。よって、各メモリセル10、各メモリセル11及び一の並列多数判定回路20により入力データIごとに乗算処理を実行し、更に並列多数判定回路20により入力データIごとに加算処理及び活性化処理を実行するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、いわゆる並列入力−直列出力型のニューラルネットワークS2’を効率的に実現することができる。
(D)第2実施形態に係るニューラルネットワーク集積回路の第3例について
次に、第2実施形態に係るニューラルネットワーク集積回路の第3例について、図12を用いて説明する。なお図12において、図8及び図10を用いてそれぞれ説明した第2実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
図12を用いて説明する第2実施形態に係るニューラルネットワーク集積回路の第3例は、図9を用いて説明した第2実施形態に係るニューラルネットワーク集積回路C1’と、図11を用いて説明した第2実施形態に係るニューラルネットワーク集積回路C2’と、を組み合わせた集積回路である。ここで、上記ニューラルネットワーク集積回路C1’は上述した通り直列入力−並列出力型の一段ニューラルネットワークS1’をモデル化したニューラルネットワーク回路である。一方上記ニューラルネットワーク集積回路C2’は、上述した通り並列入力−直列出力型の一段ニューラルネットワークS2’をモデル化したニューラルネットワーク回路である。そしてこれらを組み合わせた第2実施形態に係るニューラルネットワーク集積回路の第3例は、全体として直列入力−並列処理−直列出力型の多段ニューラルネットワークをモデル化したニューラルネットワーク集積回路であり、更に多くのニューロンNRからなる複雑なニューラルネットワークをモデル化するためのものである。
先ず、第2実施形態に係るニューラルネットワーク集積回路の第3例によりモデル化されるニューラルネットワークについて、図12(a)を用いて説明する。図12(a)に示す当該ニューラルネットワークS1−2は、図12(a)において45度のハッチングで示されるn個のニューロンNRのそれぞれに対してm個のニューロンNRからそれぞれ1ビットの出力データOがシリアル形式で出力され、当該45度のハッチングで示されるニューロンNRと図11(a)において135度のハッチングで示されるm個のニューロンNRとの間で出力データO及び入力データIの授受が行われ、結果的に135度のハッチングで示されるm個のニューロンNRからそれぞれ出力データOがシリアル形式で出力されるニューラルネットワークである。なお上記ニューラルネットワークS1−2は、全体として、図4を用いて説明したニューラルネットワークS1を複数並べたニューラルネットワークに相当する。
上記ニューラルネットワークS1−2をモデル化した第2実施形態に係るニューラルネットワーク集積回路の第3例は、図12(b)に示すニューラルネットワーク集積回路C1−2となる。当該ニューラルネットワーク集積回路C1−2は、図9を用いて説明したニューラルネットワーク集積回路C1’の各出力データO(並列的に出力される各出力データO)を、図11を用いて説明したニューラルネットワーク集積回路C2’における並列多数判定回路20への入力データ(即ち図11(b)に示す入力データI)とし、これにより、当該並列多数判定回路20から上記出力データOをシリアル形式で出力する構成を備える。このように、上記ニューラルネットワーク集積回路C1’とニューラルネットワーク集積回路C2’とを組み合わせることにより、結果的に、図9(a)に例示するニューラルネットワークS1’と、図11(a)に例示するニューラルネットワークS2’と、が組み合わされた上記ニューラルネットワークS1−2がモデル化される。なお、ニューラルネットワークS1−2に含まれる上記ニューラルネットワーク集積回路C1’及びニューラルネットワーク集積回路C2’それぞれの動作は、図9及び図11を用いてそれぞれ説明した動作と同様となる。なお図12(b)に示すニューラルネットワーク集積回路C1−2では、並列多数判定回路20に対応する直列多数判定回路16が、破線で示される一組の多数判定入力回路12及び直列多数判定回路13により、それぞれ構成されていることになる。
以上説明したように、図12(a)に示すニューラルネットワークS1−2が、図12(b)に示す直列入力−並列処理−直列出力型の構成を備えるニューラルネットワーク集積回路C1−2によりモデル化される。
より具体的に、ニューラルネットワーク集積回路C1−2の構成によれば、ニューラルネットワーク集積回路C1’とニューラルネットワーク集積回路C2’とを備え、一の入力データIが入力されるニューラルネットワーク集積回路C1’から出力される各出力データOがそれぞれ、ニューラルネットワーク集積回路C2’における各入力データIとされており、ニューラルネットワーク集積回路C2’から一の出力データOが出力される。よって、ニューラルネットワーク集積回路C1’とニューラルネットワーク集積回路C2’とを接続することで、回路規模及びそれに対応するコストを大幅に縮小しつつ、多様な脳機能に対応可能なニューラルネットワークS1−2を効率的に実現することができる。
(E)第2実施形態に係るニューラルネットワーク集積回路の第4例について
次に、第2実施形態に係るニューラルネットワーク集積回路の第4例について、図13及び図14を用いて説明する。なお図13及び図14において、図9及び図11並びに図12を用いてそれぞれ説明した第2実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
図13を用いて説明する第2実施形態に係るニューラルネットワーク集積回路の第4例は、図13(a)に示すように、図12を用いて説明した第2実施形態に係るニューラルネットワーク集積回路C1−2において、それを構成する上記ニューラルネットワーク集積回路C1’と上記ニューラルネットワーク集積回路C2’との間にパイプラインレジスタ21を介在させた構成を備えたニューラルネットワーク集積回路C1−3である。このパイプラインレジスタ21が、本発明に係る「レジスタ部」の一例に相当する。そしてパイプラインレジスタ21は、メモリセルアレイMC1のビット幅に相当する数のデータを一時的に記憶すると共に、外部からのイネーブル信号ENにより、その出力動作が制御される。このイネーブル信号ENは、予め設定された基準クロック信号のうちの偶数基準クロックに相当するタイミング信号である。そしてニューラルネットワーク集積回路C1−3は、図13(b)に示すように全体として、ニューラルネットワーク集積回路C1’におけるメモリセルアレイMC1と、ニューラルネットワーク集積回路C2’におけるメモリセルアレイMC2と、の間に、1ビットの入力データIが例えばm個シリアル形式で入力されると共に上記イネーブル信号ENが入力され、これらに対応した1ビットの出力データOが例えばm個シリアル形式で出力される並列演算器PPを介在させた構成を備える。このとき、メモリセルアレイMC1及びメモリセルアレイMC2はそれぞれ、例えば256ビット幅で512ワード(Word)分の規模を備えており、アドレス指定用の例えば8ビットのアドレスデータADがそれぞれに入力される。そしてこの場合の並列演算器PPは、256ビット分の多数判定入力回路12及び直列多数判定回路13と、上記パイプラインレジスタ21と、256ビットに対応する並列多数判定回路20と、により構成される。
以上の構成において、ニューラルネットワークS1−3に含まれる上記ニューラルネットワーク集積回路C1’及びニューラルネットワーク集積回路C2’それぞれの動作は、図9及び図11を用いて説明した動作と同様となる。一方パイプラインレジスタ21は、例えば、ニューラルネットワーク集積回路C2’のメモリセルアレイMC2から読み出した重み付け係数W及び接続有無情報Cに基づいて並列多数判定回路20において出力データOの生成/出力処理を行っているタイミングでニューラルネットワーク集積回路C1’のメモリセルアレイMC1から読み出した出力データOを一時的に記憶する。そして、上記重み付け係数W及び接続有無情報Cに基づく並列多数判定回路20の処理が完了したタイミングで、メモリセルアレイMC1から読み出して記憶していた出力データOを並列多数判定回路20に出力してそれに基づいた出力データOの生成/出力処理を行わせる。この処理により、見かけ上はメモリセルアレイMC1からの出力データOの読み出しと、メモリセルアレイMC2からの重み付け係数W及び接続有無情報Cの読み出しと、を同時に行わせることができ、結果的に、図12を用いて説明したニューラルネットワークS1−2に対して略二倍の処理速度を実現させることができる。
次に、図13に示すニューラルネットワーク集積回路C1−3における特に並列演算器PPの細部構成について、図14を用いて説明する。
先ず図14(a)に示すように並列演算器PPは、メモリセルアレイMC1のビット幅に相当する数の上記多数判定入力回路12及び上記直列多数判定回路13からなる直列多数判定回路16と、メモリセルアレイMC1のビット幅に相当する上記パイプラインレジスタ21と、出力フリップフロップ回路22を介して出力データOを出力する上記並列多数判定回路20と、により構成されている。この構成においてパイプラインレジスタ21は図14(a)に示すように、メモリセルアレイMC1のビット幅に相当する出力レジスタ21U及び入力レジスタ21Lにより構成されており、上記イネーブル信号ENが入力レジスタ21Lに入力される。そして入力レジスタ21Lは、イネーブル信号ENが入力されるタイミングでそれに記憶(ラッチ)されているデータを並列多数判定回路20に出力すると共に、当該タイミングで出力レジスタ21Uに記憶されているデータを引き出して(即ちシフトさせて)記憶(ラッチ)する。またこれにより出力レジスタ21Uは、入力レジスタ21Lによりそのデータが引き出されたタイミングで、次の出力データOを記憶(ラッチ)する。以上の入力レジスタ21L及び出力レジスタ21Uの動作が繰り返されることにより、上述したパイプラインレジスタ21としての動作が実現される。
次に、上記多数判定入力回路12及び直列多数判定回路13の細部構成について、図14(b)を用いて説明する。図14(b)に示すように一の直列多数判定回路16内の多数判定入力回路12は、排他的否定論理和回路12Aと、マスクフリップフロップ回路12Bと、により構成されている。この構成において排他的否定論理和回路12Aには、メモリセルアレイMC1からの重み付け係数Wと、1ビットの入力データIと、が入力され、これらの排他的否定論理和の結果を上記出力データEとして直列多数決回路13に出力する。またマスクフリップフロップ回路12Bは、メモリセルアレイMC1からの接続有無情報Cと、上記イネーブル信号ENと、が入力され、イネーブル信号ENが入力されたタイミングで上記接続有無情報Cを直列多数決回路13に出力する。そして直列多数決回路13は、上記出力データE及び上記接続有無情報Cに基づいた上述した動作により出力データOを生成して、パイプラインレジスタ21の出力レジスタ21Uに出力する。このとき、上記既定の多数判定閾値を直列多数決回路13内の図示しないレジスタ内に保持してそれを参照することで、上述した直列多数決回路13としての動作を実現できる。
次に、上記並列多数判定回路20の細部構成について、図14(c)を用いて説明する。図14(c)に示すように並列多数判定回路20は、入力データIの数と同数の排他的否定論理和回路20A及びマスクフリップフロップ回路20Bと、並列多数決回路20Cと、により構成されている。この構成において排他的否定論理和回路20Aには、メモリセルアレイMC2からの1ビットの重み付け係数Wと、パイプラインレジスタ21の入力レジスタ21Lからの1ビットの出力データOと、が入力され、これらの排他的論理和の結果を並列多数決回路20Cに出力する。またマスクフリップフロップ回路20Bは、メモリセルアレイMC2からの接続有無情報Cと、上記イネーブル信号ENと、が入力され、イネーブル信号ENが入力されたタイミングで上記接続有無情報Cを並列多数決回路20Cに出力する。そして並列多数決回路20Cは、メモリセルアレイMC2からの一組の重み付け係数W及び接続有無情報Cに対応する排他的否定論理和回路12A及びマスクフリップフロップ回路20Bそれぞれからの出力に基づいた上述した動作をメモリセルアレイMC1からの出力データOの数(図13及び図14に例示する場合は256)だけ繰り返し、出力フリップフロップ回路22を介してシリアル形式で出力データOとして出力する。そして、上記既定の多数判定閾値を並列多数決回路20C内の図示しないレジスタ内に保持してそれを参照することで、上述した並列多数決回路20としての動作を実現できる。
このとき、上述したパイプラインレジスタ21の動作により並列演算器PPでは、例えば図14(d)に示すように、メモリセルアレイMC1からの256ビット分の出力データOに対する処理(図14(d)において「メモリセルブロック15U1」と示す)が終了すると、次にメモリセルアレイMC1からの次の256ビット分の出力データOに対する処理(図14(d)において「メモリセルブロック15U2」と示す)と、メモリセルアレイMC2からの256ビット分の重み付け係数W及び接続有無情報Cに対する処理(図14(d)において「メモリセルブロック15L1」と示す)と、が、見かけ上同時並列的に実行される。そして、メモリセルブロック15U2に対応する出力データO並びにメモリセルブロック15L1に対応する重み付け係数W及び接続有無情報Cに対する処理が終了すると、次にメモリセルアレイMC1からの更に次の256ビット分の出力データOに対する処理(図14(d)において「メモリセルブロック15U3」と示す)と、メモリセルアレイMC2からの次の256ビット分の重み付け係数W及び接続有無情報Cに対する処理(図14(d)において「メモリセルブロック15L2」と示す)と、が、見かけ上同時並列的に実行される。以降は、メモリセルアレイMC1及びメモリセルアレイMC2それぞれからの256ビット分の出力データO並びに重み付け係数W及び接続有無情報Cに対して、逐次的且つ同時並列的な処理が実行される。
なお、図14(b)に示す多数判定入力回路12及び直列多数判定回路13の細部構成、並びに図14(c)に示す並列多数判定回路20の細部構成は、図8以降に示す各メモリセル11からの上記接続有無情報Cの出力タイミングが、図8以降に示す各メモリセル10からの上記重み付け係数Wの出力タイミングよりも例えば一サイクル早いことを前提とした構成である。この出力タイミングのずれを吸収するのが、図14(b)及び図14(c)にそれぞれ示すマスクフリップフロップ回路12B及びマスクフリップフロップ回路20Bの機能である。一方、上記重み付け係数Wの出力タイミングと上記接続有無情報Cの出力タイミングとを同時並行的とすることも可能である。そしてこの場合、図14(b)及び図14(c)にそれぞれ示すマスクフリップフロップ回路12B及びマスクフリップフロップ回路20Bは、多数判定入力回路12及び並列多数判定回路20としては不要となる。
以上説明したように、図13及び図14に示すニューラルネットワーク集積回路C1−3によれば、図12(a)に示すニューラルネットワークS1−2を、約二倍の処理速度をもってモデル化することができる。なお図14を用いて説明した直列多数判定回路16の細部構成は、図12を用いて説明したニューラルネットワーク集積回路C1−2に含まれる直列多数判定回路16の細部構成として適用することもできる。
より具体的に、ニューラルネットワーク集積回路C1−3によれば、ニューラルネットワーク集積回路C1’とニューラルネットワーク集積回路C2’との間に備えられたパイプラインレジスタ21により、ニューラルネットワーク集積回路C1’から出力される各出力データOを一基準クロック分だけバッファリングして、ニューラルネットワーク集積回路C2’における各入力データIとして当該ニューラルネットワーク集積回路C2’に出力する。よって、ニューラルネットワーク集積回路C2’における並列多数判定回路20における見かけ上の並列処理が可能となり、多様な脳機能に対応可能なニューラルネットワークS1−2を効率的且つ高速化して実現することができる。
(F)第2実施形態に係るニューラルネットワーク集積回路の第5例について
次に、第2実施形態に係るニューラルネットワーク集積回路の第5例について、図15を用いて説明する。なお図15において、図13及び図14を用いてそれぞれ説明した第2実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
図15を用いて説明する第2実施形態に係るニューラルネットワーク集積回路の第5例は、図15(a)に示すように、図13及び図14を用いて説明した第2実施形態に係るニューラルネットワーク集積回路C1−3を例えば四つ備え、これらの動作を制御部CTにより制御する構成を備えたニューラルネットワーク集積回路CPである。より具体的にニューラルネットワーク集積回路CPは、図15(a)に示すように、メモリブロックMA上に集積された四つのニューラルネットワーク集積回路C1−3と、各ニューラルネットワーク集積回路C1−3に対応した四つの入力セレクタISと、入力制御用でFIFO(First In First Out)形式のメモリM1と、出力制御用でFIFO形式のメモリM2と、制御部CTと、バスBと、により構成されている。
この構成において1ビットの入力データIは、書き込みストローブWSにより制御されるメモリM1を介してバスBにシリアル形式で出力される。これにより各ニューラルネットワーク集積回路C1−3のそれぞれは、対応する入力セレクタISを介して入力データIをシリアル形式で読み込み、上述してきた処理を施し、1ビットの出力データOを生成してシリアル形式でバスBに出力する。そして、各ニューラルネットワーク集積回路C1−3からの出力データOは、入力セレクタISを介してメモリM2に読み込まれる。その後、当該読み込まれた出力データOは、読み出しストローブRSにより制御されるメモリM2を介して外部に出力される。このとき制御部CTは、外部からの実行信号RNに基づいて、各ニューラルネットワーク集積回路C1−3のメモリセルアレイMC1及びメモリセルアレイMC2にそれぞれ送信されるアドレスデータAD及びイネーブル信号EN(図13参照)と、スタート信号STと、を生成して各ニューラルネットワーク集積回路C1−3に出力する。
次に、上記制御部CTの細部構成について、図15(b)を用いて説明する。
図15(b)に示すように制御部CTは、アップカウンタ251乃至アップカウンタ255と、サイクリックカウンタ26と、アップカウンタ251乃至アップカウンタ255にそれぞれ対応するレジスタ271乃至レジスタ275と、サイクリックカウンタ26に対応するレジスタ27mと、により構成されている。
この構成においてサイクリックカウンタ26は、上記実行信号RNとレジスタ27mに記憶されているカウント値に基づいて上記スタート信号STを生成し、各ニューラルネットワーク集積回路C1−3及びアップカウンタ251乃至アップカウンタ255にそれぞれ出力する。これによりアップカウンタ251は、図示しないFIFO型の入力メモリと最初のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1宛のアドレスデータAD及びイネーブル信号ENを生成し、当該入力メモリと最初のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1に出力する。次にアップカウンタ252は、最初のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び第2のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1宛のアドレスデータAD及びイネーブル信号ENを生成し、当該最初のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び第2のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1に出力する。次にアップカウンタ253は、第2のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び第3のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1宛のアドレスデータAD及びイネーブル信号ENを生成し、当該第2のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び第3のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1に出力する。次にアップカウンタ254は、第3のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び第4のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1宛のアドレスデータAD及びイネーブル信号ENを生成し、当該第3のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び第4のニューラルネットワーク集積回路C1−3のメモリセルアレイMC1に出力する。最後にアップカウンタ255は、第4のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び図示しないFIFO型の出力メモリ宛のアドレスデータAD及びイネーブル信号ENを生成し、当該第4のニューラルネットワーク集積回路C1−3のメモリセルアレイMC2及び出力メモリに出力する。これらにより各ニューラルネットワーク集積回路C1−3は、上記スタート信号ST、上記アドレスデータAD及びイネーブル信号ENに基づき、例えば図14(d)に例示する態様で上述した動作をシリアル形式で実行し、最終的に出力データOがメモリM2を介して出力される。なお制御部CTは、モデル化すべきニューラルネットワークの態様(例えば、ニューロンNRの数やそれらの間の接続態様等)を変更すべき場合、上記アドレスAD及びイネーブル信号ENの内容又は出力先を変更することで、当該態様の変更に対応させてニューラルネットワーク集積回路CPの動作を変更する。
以上説明したように、図15に示すニューラルネットワーク集積回路CPによれば、更に大規模なニューラルネットワークを、その構成の自由度を高めつつモデル化することができる。
(G)第2実施形態に係るニューラルネットワーク集積回路の第6例等について
次に、第2実施形態に係るニューラルネットワーク集積回路の第6例及び第7例について、図16を用いて説明する。なお図16において、図12を用いて説明した第2実施形態に係るニューラルネットワーク回路C1−2と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
先ず、第2実施形態に係るニューラルネットワーク集積回路の第6例を、図16(a)を用いて説明する。当該第6例は図16(a)に示すように、図12を用いて説明した第2実施形態に係るニューラルネットワーク集積回路C1−2を例えば三つ備え、これらが直列的に接続された構成を備えるニューラルネットワーク集積回路である。このときニューラルネットワーク集積回路C1−2は、上述した通り直列入力−並列処理−直列出力型の多段ニューラルネットワークをモデル化したニューラルネットワーク集積回路である。また図16(a)に示す構成は、図5を用いて説明した第1実施形態に対応する態様で上記ニューラルネットワーク集積回路C1−2を直列的に接続したニューラルネットワーク集積回路である。よってこの場合、一つのニューラルネットワーク集積回路C1−2の出力データOの数(シリアル形式で出力される出力データOの数)は、次段に接続されるニューラルネットワーク集積回路C1−2の入力データIの数(シリアル形式で出力される入力データIの数)に相当している必要がある。
次に、第2実施形態に係るニューラルネットワーク集積回路の第7例を、図16(b)を用いて説明する。当該第7例は図16(b)に示すように、図12を用いて説明した第2実施形態に係るニューラルネットワーク集積回路C1−2を例えば三つ備え、共通の入力データIによりこれらが並列的に接続された構成を備えるニューラルネットワーク集積回路である。この図16(b)に示す構成は、図6を用いて説明した第1実施形態に対応する態様で上記ニューラルネットワーク集積回路C1−2を並列的に接続したニューラルネットワーク集積回路である。よってこの場合、図16(a)に示したニューラルネットワーク集積回路の場合のような出力データO及び入力データIそれぞれにおけるビット数についての制限はない。
以上説明したように、図16に示す各ニューラルネットワーク集積回路によれば、更に大規模なニューラルネットワークをモデル化することができる。
より具体的に、図16(a)に示す各ニューラルネットワーク集積回路によれば、複数のニューラルネットワーク集積回路C1−2が直列に接続されており、一のニューラルネットワーク集積回路C1−2からの一の出力データOが、直後段のニューラルネットワーク集積回路C1−2への一の入力データIとされているので、より多様な脳機能に対応可能なニューラルネットワークを効率的に実現することができる。また図16(b)に示す各ニューラルネットワーク集積回路によれば、複数のニューラルネットワーク集積回路C1−2のそれぞれに対して一の入力データIが共通に入力されており、当該複数のニューラルネットワーク集積回路C1−2からそれぞれ別個に出力データOが一ずつ出力されるので、より多様な脳機能に対応可能なニューラルネットワークを効率的に実現することができる。
以上それぞれ説明したように、第2実施形態に係るニューラルネットワーク回路CCS’及びニューラルネットワーク集積回路C1−2等の構成及び動作によれば、第1実施形態に係るニューラルネットワーク回路CS及びニューラルネットワーク集積回路C1等の構成及び動作と同様に、回路規模及びそれに対応するコストを大幅に縮小しつつ、ニューラルネットワーク回路を効率的に実現することができる。
(III)変形形態
次に、本発明に係る上述した第1実施形態及び第2実施形態を変形した変形形態について、図17及び図18を用いて説明する。なお、図17は変形形態に係るニューラルネットワークを説明する図等であり、図18は変形形態に係るニューラルネットワーク集積回路の細部構成を示す図である。
以下に説明する変形形態は、上記第1実施形態及び上記第2実施形態としてそのモデル化を説明してきたニューラルネットワークに対して、脳機能をより一般的にモデル化する手法として、新たに「傾向係数」の概念を追加するものである。なお以下の説明において、特に図1及び図14を用いて説明した構成に含まれる部材等と同じ部材等については、同様の部材等の番号を付して細部の説明は省略する。
先ず、上記傾向係数の概念を追加してモデル化したニューラルネットワークについて図17を用いて説明する。
上述した第1実施形態及び第2実施形態において説明したニューラルネットワークのニューロンNRでは、外部から入力される複数の入力データIのそれぞれに対する上記乗算処理、上記加算処理及び上記活性化処理を当該ニューロンNRで実行し、その結果を出力データOとしていた。これに対し、変形形態に係るニューラルネットワークでは、各入力データIに対する上記乗算処理及び上記加算処理の結果に対して、当該ニューラルネットワークによりモデル化される脳機能に基づいて予め設定された、当該脳機能としての傾向をニューロンごとに示す上記傾向係数を更に加算する。そして変形形態に係るニューラルネットワークでは、当該傾向係数の加算結果に対して上記活性化処理を適用し、その結果を、変形形態に係る出力データとして出力する。即ち変形形態に係るニューラルネットワークの場合、「加算処理」とは、上述した第1実施形態及び第2実施形態それぞれに係るニューラルネットワークにおける加算処理に対して上記傾向係数の加算処理を更に加えることを含む。この変形形態に係る傾向係数は、上述したように脳機能としての傾向をニューロンごとに示し且つ予め設定された係数であり、その絶対値は、当該ニューロンに入力される入力データの数n以下の任意の整数である。ここで、上記「傾向」とは、例えば、モデル化の対象である脳機能においてニューロンごとの調整機能としてその存在が認められる、脳機能等の傾向をいう。更に上記傾向係数は、一般には「バイアス値(Bias value)」と称される場合もある。この傾向係数としての具体的な値は、そのニューロンについての上記傾向に対応して、上記入力データIの数以下の整数として、ニューロンごとに予め設定されている。より具体的に例えば、一つのニューロンに対して三つの入力データIが入力されるとすると、上記傾向係数として取り得る値は、「−3」乃至「3」の七つ(「0」を含む)である。ここで、傾向係数が「0」の場合が、上述してきた第1実施形態及び第2実施形態に係るニューラルネットワークであることになる(図1(a)参照)。
そして、上述した変形形態に係るニューラルネットワークとしての一連の乗算処理、加算処理(傾向係数の加算処理を含む。以下、変形形態において同じ。)及び活性化処理を数式で表すと、図17(a)に示す式(2)となる。このとき、第1実施形態及び第2実施形態の場合と同様に各重み付け係数Wを各入力データIにそれぞれ乗算する乗算処理が、変形形態に係るニューロンNRR間の電気信号のやり取りにおけるシナプスの作用に相当する。そして図17(a)に例示するように、変形形態に係る加算処理後の値全体に対して活性化関数Fを適用して出力データOを出力することが、変形形態に係る活性化処理に相当する。
なお、入力データIと重み付け係数Wとの各乗算結果の加算結果に対する変形形態に係る傾向係数Bnの更なる加算処理を回路的に実現する場合、以下に説明する変形形態では、「1」を分割単位として当該傾向係数Bnを分割(分解)し、上記各乗算結果のそれぞれに対して「1」を加算又は減算する処理を、傾向係数Bnの値に等しい数の乗算結果について行う。即ち、例えば傾向係数Bnの値が「2」である場合、図17(a)に示す例えば入力データI1と重み付け係数W1の乗算結果に「1」を加算すると共に、入力データI2と重み付け係数W2の乗算結果にも「1」を加算し、これらを含めて活性化関数Fを適用させる。また、例えば傾向係数Bnの値が「−3」である場合、図17(a)に示す例えば入力データI1と重み付け係数W1の乗算結果及び入力データI2と重み付け係数W2の乗算結果からそれぞれ「1」を減算し、更に入力データI3と重み付け係数W3の乗算結果からも「1」を減算し、これらを含めて活性化関数Fを適用させる。このとき、いずれの乗算結果に対して「1」の加算又は減算を行うかは、モデル化される脳機能に対応して予め設定されている。
ここで変形形態に係る加算処理等を回路的に実現する場合、上記接続有無情報Cの意味(定義)が、上記第1実施形態及び上記第2実施形態とは異なってくる。即ち図17(b)に示すように、変形形態に係る傾向係数Bnの値が「0」である場合は、上記第1実施形態及び上記第2実施形態の構成に相当する。そしてこの場合は、変形形態に係るニューロンNRR間であっても、当該ニューロンNRR間について接続有無情報Cが「接続あり」を示している(図17(b)において「1」とされている)場合のみ、対応する入力データIと重み付け係数Wとの乗算結果が一方のニューロンNRRに入力される(図17(b)最上段及び上から二段目参照)。このとき、上記活性化処理後の出力データの値は、「0」又は「1」となる。そしてその後、そのニューロンNRRにおける第1実施形態及び第2実施形態と同様の加算処理及び活性化処理に供される。
これに対し、変形形態に係る傾向係数Bnが「0」でない場合、当該傾向係数Bnを分割した結果を加算又は減算する対象の乗算結果(入力データIと重み付け係数Wとの乗算結果)について、接続有無情報Cが「1」とされている(即ち「接続あり」を示している)場合には、正の値である傾向係数Bnを分解した値としての「1」が当該乗算結果に「加算」されて、一方のニューロンNRRに入力される(図17(b)最下段参照)。一方、接続有無情報Cが「0」とされている(即ち「接続なし」を示している)場合には、負の値である傾向係数Bnを分解した値としての「−1」が上記乗算結果に加算(即ち「1」が減算)されて、一方のニューロンNRRに入力される(図17(b)下から二段目参照)。この場合、上記活性化処理後の出力データの値は、「−2」又は「0」(傾向係数Bnが負の値である場合。図17(b)下から二段目参照。)、或いは、「2」又は「0」(傾向係数Bnが正の値である場合。図17(b)最下段参照。)となる。そしてその後、そのニューロンNRRにおける変形形態としての加算処理及び活性化処理に供される。
次に、図13に示すニューラルネットワーク集積回路C1−3に対して変形形態を適用した場合の、特に並列演算器(図13符号PP参照)の細部構成について、図14を参照しつつ、図18を用いて説明する。
先ず図18(a)に示すように変形形態に係る並列演算器PPPは、メモリセルアレイMC1のビット幅に相当する数の変形形態に係る多数判定入力回路12’及び上記直列多数判定回路13からなる直列多数判定回路16’と、ニューラルネットワーク集積回路C1−3と同様のパイプラインレジスタ21と、ニューラルネットワーク集積回路C1−3と同様の出力フリップフロップ回路22を介して出力データOを出力する変形形態に係る並列多数判定回路20’と、により構成されている。この構成においてパイプラインレジスタ21は、図14(a)を用いて説明した場合と同様の構成を備え、同様の動作を実現する。また変形形態に係る並列演算器PPPにおいては、重み付け係数Wと接続有無情報Cとが一サイクル異なったタイミングで入力される第2実施形態に係る並列演算器PPの場合と異なり、重み付け係数W、接続有無情報C及び傾向係数Bnは、メモリセルアレイMC1又はメモリセルアレイMC2から、それぞれ相互に同時並行的に並列演算器PPPに入力される。
次に、変形形態に係る多数判定入力回路12’の細部構成について、図18(b)を用いて説明する。図18(b)に示すように一の直列多数判定回路16’内の多数判定入力回路12’は、排他的論理和回路25Aと、セレクタ25B及びセレクタ25Fと、反転増幅回路25C及び反転増幅回路25Eと、論理積回路25Dと、加算回路25Gと、により構成されている。このとき、重み付け係数W、接続有無情報C及び傾向係数Bnが同時並行的に並列演算器PPPに入力されるため、図14(b)に例示したマスクフリップフロップ回路12Bは不要となる。以上の構成において排他的論理和回路25Aには、メモリセルアレイMC1からの重み付け係数Wと、1ビットの入力データIと、が入力され、これらの排他的論理和の結果をセレクタ25Bの「0」端子に出力する。一方論理積回路25Dには、メモリセルアレイMC1からの接続有無情報Cと、傾向係数Bnを分割した1ビットのデータを反転増幅回路25Cにより反転したデータと、が入力され、それらの論理積の結果がセレクタ25Bの制御端子に出力される。これによりセレクタ25Bは、接続有無情報C及び傾向係数Bnに基づき、上記排他的論理和の結果又は0データのいずれか一方を選択し、加算回路25Gの一方の端子に出力する。次にセレクタ25Fの制御端子には上記傾向係数Bnを分割した1ビットのデータが入力され、更にセレクタ25Fの「1」端子には、接続有無情報Cを反転増幅回路25Eにより反転したデータが入力される。これによりセレクタ25Fは、傾向係数Bnに基づき、上記反転増幅回路25Eからの出力データ又は0データのいずれか一方を選択し、加算回路25Gの他方の端子に出力する。これらにより加算回路25Gは、セレクタ25B及びセレクタ25Fからの出力データを加算し、出力データOPnとして直列多数決回路13に出力する。このとき当該出力データOPnの取り得る値は、図17(b)に示すように「−2」、「−1」、「0」、「1」又は「2」の五種類となるため、出力データOPnは3ビットのデータとなる。そして直列多数決回路13は、出力データOPnに対して図14に例示した場合と同様の活性化処理に相当する処理を行い、その結果を出力データOOnとして(図17(a)参照)、パイプラインレジスタ21の出力レジスタ21Uに出力する。このとき、上記既定の多数判定閾値を直列多数決回路13内の図示しないレジスタ内に保持してそれを参照することで、上述した直列多数決回路13としての動作を実現できる点は、図14に例示した直列多数決回路13と同様である。
次に、変形形態に係る並列多数判定回路20’の細部構成について、図18(c)を用いて説明する。図18(c)に示すように並列多数判定回路20’は、図18(b)を用いて構成等を説明した多数判定入力回路12’と同様の構成等を備え且つメモリセルアレイMC2のビット幅に相当する数の多数判定入力回路12’と、並列多数決回路30と、により構成されている。この構成において多数判定入力回路12’には、メモリセルアレイMC2からの1ビットの重み付け係数W及び接続有無情報C並びに傾向係数Bnと、パイプラインレジスタ21の入力レジスタ21Lからの1ビットの出力データOと、が入力される。そして各多数判定入力回路12’は、重み付け係数W、接続有無情報C並びに傾向係数Bn及び入力レジスタ21Lからの1ビットの出力データOに対して図18(b)を用いて説明した動作と同様の動作を実行した結果を、並列多数決回路30に出力する。そして並列多数決回路30は、メモリセルアレイMC2からの一組の重み付け係数W及び接続有無情報C並びに傾向係数Bnに対応する各多数判定入力回路12’それぞれからの出力データOPnに基づいた上述した多数決動作を、メモリセルアレイMC1からの出力データOの数(例えば図13及び図14で例示した場合と同様の256)だけ繰り返し、出力フリップフロップ回路22を介してシリアル形式で出力データOとして出力する。このとき、変形形態に係る並列多数決回路30の構成として具体的には、例えば、隣接するビットに対応する出力データOPn同士を加算するための加算回路を階層的に備え、その最終的な加算結果の符号ビットを上記出力フリップフロップ回路22に出力する構成が考えられる。また、上記既定の多数判定閾値を並列多数決回路30内の図示しないレジスタ内に保持してそれを参照することで、上述した並列多数決回路30としての動作を実現できる点は、図14に例示した並列多数決回路20Cと同様である。
また、パイプラインレジスタ21の動作によりメモリセルアレイMC1及びメモリセルアレイMC2それぞれからの256ビット分の出力データO、重み付け係数W及び接続有無情報C並びに傾向係数Bnに対して、逐次的且つ同時並列的な処理が実行されることは、図14に示す並列演算器PPと同様である。
以上説明したように、図17及び図18に示す変形形態によれば、傾向係数Bnを加味した例えば図12(a)に示すニューラルネットワークS1−2を、約二倍の処理速度をもってモデル化することができる。
更に、変形形態に係るニューラルネットワーク集積回路に含まれる並列演算器PPPの構成及び動作によれば、変形形態に係るニューラルネットワーク(図17参照)をモデル化したニューラルネットワーク集積回路として、回路規模及びそれに対応するコストを大幅に縮小することができる。
より具体的に、変形形態に係るニューラルネットワーク集積回路に含まれる並列演算器PPPの構成及び動作によれば、脳機能に基づく既定の傾向係数Bnが各乗算処理の加算結果に対して更に加算されるべき場合、当該傾向係数Bnの絶対値に等しい数のいずれかの多数判定入力回路12’に当該傾向係数Bnが分けて入力される。そして上記接続有無情報Cに応じて、各乗算処理の加算結果に対する当該傾向係数Bnの更なる加算結果が多数判定入力回路12’から並列多数決回路30に出力される。これらにより並列多数決回路30は、結果的に、傾向係数Bnの更なる加算結果を各多数判定入力回路12’について加算した合計値が正又は0であるとき値「1」を出力データOとして出力し、当該合計値が負であるとき値「0」を出力データOとして出力する。よって、脳機能に基づく既定の傾向係数Bnが導入されるべき場合であっても、回路規模及びそれに対応するコストを大幅に縮小しつつ、人の脳機能に対応したニューラルネットワークを効率的に実現することができる。
なお、上述した変形形態においては、「1」を分割単位として変形形態に係る傾向係数Bnを分割(分解)し、上記入力データIと上記重み付け係数Wとの各乗算結果のそれぞれに対して「1」を加算又は減算する処理を、傾向係数Bnの値に等しい数の乗算結果について行ったが、これ以外に、傾向係数Bnを分割することなく図示しないメモリ内に予め一つの値として記憶しておき、上記各乗算結果を加算した結果に対して当該傾向係数Bnを加算又は減算するように構成してよい。この場合、当該図示しないメモリが本発明に係る傾向係数記憶部の一例に相当する。
また、上述してきた第1実施形態並びに第2実施形態及び変形形態においては、出力データO、入力データI、重み付け係数W等において、それらの値を「1」又は「0」等とする場合について説明したが、これ以外に、回路設計上の便宜等により、上記値「0」を値「−1」として各ニューラルネットワーク回路又はニューラルネットワーク集積回路を構成してもよい。