(57)【特許請求の範囲】
【請求項１】
ディジタル電子回路として実現される階層型ニューラルネットワークの構成単位となる、神経細胞をモデル化したニューロンであって、
所定数の入力パルスからなる入力パルス列が、複数、入力信号として入力されると共に、前記入力パルス列を構成する各入力パルスに対応した前記所定数の基準パルスからなる基準パルス列が生成され、前記各入力パルス列は、該入力パルス列を構成する各入力パルスの、対応する前記基準パルスからの遅延時間が、平均ｘの正規分布に従うものであって、該複数の入力パルス列毎に、対応する結合係数ｗが記憶されており、
前記各入力パルス列毎に設けられるものであって、一様乱数発生器を有し、該入力パルス列を構成する入力パルス毎に、該入力パルスの前記遅延時間に比例した回数だけ前記一様乱数発生器にて乱数を生成し、該生成した前記回数分の乱数の各々について該入力パルス列に対応した前記結合係数ｗの値と比較することにより前記乱数よりも前記結合係数ｗの絶対値が大きくなる回数を計数して、前記結合係数ｗの値が正数である場合は該計数した回数をそのまま該入力パルスに対応した乗算相当値として算出し、該結合係数ｗの値が負数である場合は該計数した回数を絶対値とする負の回数を前記乗算相当値として算出する、乗算相当値算出手段と、
前記基準パルス毎に、前記各入力パルス列における該基準パルスに対応した各入力パルスに対してそれぞれ前記乗算相当値算出手段により算出された前記各乗算相当値を加算する加算手段と、
前記加算手段によって得られた加算値の中の正数値の個数を、前記複数の入力パルス列に対する非線形演算値として計数する非線形演算手段と、
前記基準パルス列を構成する各基準パルスに対応した前記所定数の出力パルスからなる出力パルス列を生成するものであって、前記各出力パルスの、対応する前記基準パルスからの遅延時間が、前記非線形演算手段にて計数された前記非線形演算値に比例するように決定される遅延時間を平均値とする正規分布に従うように、前記出力パルス列を生成する、出力パルス列生成手段とを備えること
を特徴とするニューロン。
【請求項２】
請求項１に記載のニューロンにおいて、
前記基準パルスを生成する基準パルス生成手段を備えていること
を特徴とするニューロン。
【請求項３】
請求項１又は２に記載のニューロンにおいて、
前記出力パルス列生成手段は、
前記基準パルス列を構成する各基準パルスに対応した前記所定数の基本パルスからなる基本パルス列であって、対応する前記基準パルスからの前記各基本パルスの遅延時間が平均０の正規分布に従うような基本パルス列を生成する基本パルス列生成手段と、
該基本パルス列生成手段にて生成された前記各基本パルスを、前記非線形演算手段による前記非線形演算値に比例するように決定される遅延時間だけ遅延させる遅延手段とを備えていること
を特徴とするニューロン。
【請求項４】
請求項３に記載のニューロンにおいて、
前記基本パルス列生成手段は、
複数の一様乱数発生器と、
生成すべき前記基本パルス毎に、該一様乱数発生器にて生成される乱数を加算する乱数加算手段と、
生成すべき前記基本パルス毎に、対応する前記基準パルスを前記乱数加算手段による対応する前記加算結果の値に比例した時間だけ遅延させたパルスを、前記基本パルスとして出力するパルス出力手段とを備えていること
を特徴とするニューロン。
【請求項５】
請求項４に記載のニューロンにおいて、
前記基本パルス列生成手段は、
前記一様乱数発生器を４個備えており、
前記乱数加算手段は、加算値データの下位２ビットを除くデータを前記加算結果として出力すること
を特徴とするニューロン。
【請求項６】
請求項１〜５のいずれかに記載のニューロンにおいて、
外部から入力される前記入力パルス列の前記各入力パルスは、対応する前記基準パルスよりも遅れて発生し、
前記出力パルス列生成手段は、前記各出力パルスが対応する前記基準パルスよりも遅れた前記出力パルス列を生成すること
を特徴とするニューロン。
【請求項７】
請求項１〜６のいずれかに記載のニューロンを機能単位とする階層型ニューラルネットワーク。
【請求項８】
ディジタル電子回路として実現される３層階層型ニューラルネットワークの出力層の構成単位となる、神経細胞をモデル化したニューロンであって、
所定数の入力パルスからなる入力パルス列が、複数、入力信号として入力されると共に、前記入力パルス列を構成する各入力パルスに対応した前記所定数の基準パルスからなる基準パルス列が生成され、前記各入力パルス列は、該入力パルス列を構成する各入力パルスの、対応する前記基準パルスからの遅延時間が、平均ｘの正規分布に従うものであって、該複数の入力パルス列毎に、対応する結合係数ｗkが記憶されており、
前記各入力パルス列毎に設けられるものであって、一様乱数発生器を有し、該入力パルス列を構成する入力パルス毎に、該入力パルスの前記遅延時間に比例した回数だけ前記一様乱数発生器にて乱数を生成し、該生成した前記回数分の乱数の各々について当該入力パルス列に対応した前記結合係数ｗkの値と比較することにより前記乱数よりも前記結合係数ｗkの絶対値が大きくなる回数を計数して、前記結合係数ｗkの値が正数である場合は該計数した回数をそのまま該入力パルスに対応した乗算相当値として算出し、該結合係数ｗkの値が負数である場合は該計数した回数を絶対値とする負の回数を前記乗算相当値として算出する、乗算相当値算出手段と、
前記基準パルス毎に、前記各入力パルス列における該基準パルスに対応した各入力パルスに対してそれぞれ前記乗算相当値算出手段により算出された前記各乗算相当値を加算する加算手段と、
前記基準パルス毎に前記加算手段によって得られた加算値の中の正数値の個数を、前記複数の入力パルス列に対する非線形演算値として計数する非線形演算手段と、
前記基準パルス列を構成する各基準パルスに対応した前記所定数の出力パルスからなる出力パルス列を生成するものであって、前記各出力パルスの、対応する前記基準パルスからの遅延時間が、前記非線形演算手段にて計数された前記非線形演算値に比例するように決定される遅延時間を平均値とする正規分布に従うように、前記出力パルス列を生成する、出力パルス列生成手段と、
前記加算手段によって得られた加算値の中の０の個数を微分相当値として計数する微分相当値演算手段と、
前記非線形演算手段にて計数される非線形演算値に基づく信号と教師信号との差分を、当該ニューロンにおける学習としての前記結合係数ｗkの更新のために必要な学習使用値として算出する出力層用学習使用値算出手段と、
一様乱数発生器を有し、前記出力層用学習使用値算出手段にて算出された前記学習使用値と前記微分相当値演算手段にて計数された前記微分相当値との乗算を行うことによりその乗算値を求め、更に、前記入力信号である前記入力パルス列を構成する各入力パルスの前記遅延時間に比例した回数だけ該一様乱数発生器にて乱数を生成し、該生成した前記回数分の乱数の各々について該乗算値と比較することにより該乱数よりも該乗算値が大きくなる回数を計数して、該乗算値が正数である場合は該計数した回数をそのまま、該乗算値が負数である場合は該計数した回数を絶対値とする負の回数を、該入力パルス列に対応した前記結合係数ｗkに加算することにより、該結合係数ｗkを更新する、結合係数更新手段とを備えていること
を特徴とするニューロン。
【請求項９】
ディジタル電子回路として実現される３層階層型ニューラルネットワークの中間層の構成単位となる、神経細胞をモデル化したニューロンであって、
前記３層階層型ニューラルネットワークの出力層の構成単位となるニューロンは、請求項８に記載のニューロンであり、
当該中間層の構成単位となるニューロンは、
所定数の入力パルスからなる入力パルス列が、複数、入力信号として入力されると共に、前記入力パルス列を構成する各入力パルスに対応した前記所定数の基準パルスからなる基準パルス列が生成され、前記各入力パルス列は、該入力パルス列を構成する各入力パルスの、対応する前記基準パルスからの遅延時間が、平均ｘの正規分布に従うものであって、該複数の入力パルス列毎に、対応する結合係数ｗjが記憶されており、
前記各入力パルス列毎に設けられるものであって、一様乱数発生器を有し、該入力パルス列を構成する入力パルス毎に、該入力パルスの前記遅延時間に比例した回数だけ前記一様乱数発生器にて乱数を生成し、該生成した前記回数分の乱数の各々について当該入力パルス列に対応した前記結合係数ｗjの値と比較することにより前記乱数よりも前記結合係数ｗjの絶対値が大きくなる回数を計数して、前記結合係数ｗjの値が正数である場合は該計数した回数をそのまま該入力パルスに対応した乗算相当値として算出し、該結合係数ｗjの値が負数である場合は該計数した回数を絶対値とする負の回数を前記乗算相当値として算出する、乗算相当値算出手段と、
前記基準パルス毎に、前記各入力パルス列における該基準パルスに対応した各入力パルスに対してそれぞれ前記乗算相当値算出手段により算出された前記各乗算相当値を加算する加算手段と、
前記基準パルス毎に前記加算手段によって得られた加算値の中の正数値の個数を、前記複数の入力パルス列に対する非線形演算値として計数する非線形演算手段と、
前記基準パルス列を構成する各基準パルスに対応した前記所定数の出力パルスからなる出力パルス列を生成するものであって、前記各出力パルスの、対応する前記基準パルスからの遅延時間が、前記非線形演算手段にて計数された前記非線形演算値に比例するように決定される遅延時間を平均値とする正規分布に従うように、前記出力パルス列を生成する、出力パルス列生成手段と、
前記加算手段によって得られた加算値の中の０の個数を微分相当値として計数する微分相当値演算手段と、
前記出力層の構成単位となるニューロンが有する前記非線形演算手段にて計数される非線形演算値に基づく信号と教師信号との差分と、前記出力層のニューロンから出力される微分相当値と、当該ニューロンと前記出力層のニューロンとの結合係数ｗkと、の積を、当該ニューロンにおける学習としての前記結合係数ｗjの更新のために必要な学習使用値として算出する中間層用学習使用値算出手段と、
一様乱数発生器を有し、前記中間層用学習使用値算出手段にて算出された前記学習使用値と前記微分相当値演算手段にて計数された前記微分相当値との乗算を行うことによりその乗算値を求め、更に、前記入力信号である前記入力パルス列を構成する各入力パルスの前記遅延時間に比例した回数だけ該一様乱数発生器にて乱数を生成し、該生成した前記回数分の乱数の各々について該乗算値と比較することにより該乱数よりも該乗算値が大きくなる回数を計数して、該乗算値が正数である場合は該計数した回数をそのまま、該乗算値が負数である場合は該計数した回数を絶対値とする負の回数を、該入力パルス列に対応した前記結合係数ｗjに加算することにより、該結合係数ｗjを更新する、結合係数更新手段とを備えていること
を特徴とするニューロン。
【請求項１０】
ディジタル電子回路として実現される階層型ニューラルネットワークの構成単位となる、神経細胞をモデル化したニューロンの内部で、２つの信号の乗算値を算出するために用いられる乗算回路であって、
一様乱数発生器を備え、
一方の信号の値に比例した回数だけ前記一様乱数発生器にて乱数を生成し、該生成した前記回数分の乱数の各々について他方の信号の値と大小比較することにより、前記乱数よりも前記他方の信号の絶対値が大きくなる回数を計数して、前記他方の信号の値が正数である場合は該計数した回数をそのまま前記乗算値として算出し、前記他方の信号の値が負数である場合は該計数した回数を絶対値とする負の回数を前記乗算値として算出するよう構成されており、
前記他方の信号の値を表すビット数と、前記一様乱数発生器にて生成される乱数のビット数とが、同一であること
を特徴とする乗算回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字や図形の認識、連想記憶、多入出力非線形マッピングなどに応用されるニューラルコンピュータ等の信号処理装置に関する。
【０００２】
【従来の技術及び発明が解決しようとする課題】
従来、生体で行われている情報処理をモデル化したニューラルネットワーク（神経細胞回路網）が知られている。このニューラルネットワークでは、神経細胞（ニューロン）を機能単位とし、複数のニューロンをネットワーク状に配置して情報処理を行う。このようなニューラルネットワークは、従来のノイマン型コンピュータではなかなか達成できない文字や図形の認識、連想記憶、多入出力非線形マッピング等の情報処理に好適である。
【０００３】
次に、本発明に対する理解を容易にするため、ニューラルネットワークについて説明する。
最初にニューラルネットワークの概要構成を説明する。
上述したように、ニューラルネットワークはニューロンをネットワーク状に配置して構成される。例えば図１５に示す如くである。図１５に示したニューラルネットワークは３層階層型ニューラルネットワークと呼ばれ、入力層、中間層（隠れ層）、出力層を備えている。
【０００４】
なお、信号は入力層から入力され、中間層、出力層と順に伝播し、出力層から出力される。ニューラルネットワークの技術分野では周知であるが、入力層は入力信号を中間層に伝播させるのみであり、中間層や出力層のような演算を行わない。そのため、中間層及び出力層を構成する機能単位をニューロンと呼ぶ。中間層と出力層にはそれぞれ少なくとも１つのニューロンが含まれる。
【０００５】
図１５に示すように、入力層は中間層の各ニューロンと結合され、同様に、中間層の各ニューロンは出力層の各ニューロンと結合されている。そして、上述したように、ニューラルネットワークの入力層に対して入力された信号は中間層に伝播し、中間層に含まれるニューロン内で後述するような所定の演算が行われ、その出力値がさらに出力層へ伝播する。出力層に含まれるニューロンにおいても同様の演算が行われ、その出力値がネットワークの最終出力となる。
【０００６】
この一連の動作が順伝播（フォワード処理）と呼ばれるニューラルネットワークの情報処理であり、中間層に含まれるニューロンを十分多くとると、任意の入出力が実現される。
なお、図１５に示したニューラルネットワークは、一の中間層を有する３層構造のネットワークであるが、２以上の中間層を有するネットワークも提案されている。
【０００７】
続いて、ニューラルネットワークの構成単位であるニューロンについて説明する。
図１６は、図１５中に記号ｊで示したｊ番目のニューロンの模式図である。ニューロンは、外部からの入力値を入力する入力部、それら入力値を演算する演算部、及び演算結果を出力する出力部から構成されている。
【０００８】
外部からの各入力値をｘi （ｉ＝１，２，３，・・・，ｎ）で示せば、演算部は、対応する結合係数ｗji（ｉ＝１，２，３，・・・，ｎ）を各入力値ｘi に乗じ、それらの和ｙj を計算する。次の式１に示す如くである。
ｙj ＝Σｗjiｘi                                           …式１
なお、記号Σはｉについての和記号である。また、結合係数ｗjiは、ニューロン間の結合の強さを表すものであり、ｊ番目のニューロンとｉ番目のニューロンとの結合係数をｗjiで表す。
【０００９】
さらに演算部は、求めた和ｙj に対して非線形演算ｆを行って出力値ｚj とする。次の式２に示す如くである。
ｚj ＝ｆ（ｙj ）                                          …式２
非線形関数ｆとしては、シグモイド関数が用いられることが多い。それは、次に述べる学習機能の実現において必要となる非線形関数ｆの微分値ｆ’が、ｆ’＝ｆ・（１−ｆ）というように非線形関数ｆ自体を用いて表現され、演算量を減らすことができるからである。また、非線形関数ｆとしてステップ関数（階段関数）を用いることもある。ただし、これらの関数には限られず、飽和特性を持つ単調増加関数であればよい。
【００１０】
このようなニューロンを構成単位とするニューラルネットワークの特徴として、学習機能を備えていることが挙げられる。そこでさらに続けて、この学習機能について説明する。
ニューラルネットワークにおける学習は、上述した各ニューロンの結合係数の更新によって実現される。すなわち、結合係数ｗの値を逐次的に適切な値に更新し、入力層への入力信号の組（入力パターン）ｐを与えたときに、出力層から所望の出力信号ｚが得られるようにすることである。
【００１１】
学習を行う場合、入力信号ｐと共に、その入力信号ｐに対応した所望の出力信号ｔを与える。この出力信号ｔを教師信号と呼ぶ。図１５に示した階層型ニューラルネットワークでは、バックプロパゲーション（ＢＰ）アルゴリズムと呼ばれる学習方法が一般的に用いられる。
【００１２】
バックプロパゲーション（ＢＰ）について具体的に説明する。
ある入力信号ｐを与えたとき、ｋ番目の出力層のニューロンの出力値ｚk と教師信号値ｔk の二乗誤差を次の式で定義する。
Ｅk ＝（ｔk −ｚk ）2 ／２                                  …式３
学習では、この二乗誤差Ｅk を減らすように、全ての結合係数の大きさを更新していく。
【００１３】
中間層のｊ番目のニューロンと出力層のｋ番目のニューロンとの結合係数ｗkjを更新したとき、二乗誤差Ｅk の変動分は次のようになる。
∂Ｅk ／∂ｗkj＝−（ｔk −ｚk ）・ｆ’（ｙk ）・ｚj         …式４
ここでｚj は中間層のｊ番目のニューロンの出力であり、ｆ’はニューロンの非線形関数の微分である。また、ｙk は出力層のｋ番目のニューロンについての上記式１で示される入力和である。
【００１４】
また、入力層のｉ番目のニューロンと中間層のｊ番目のニューロンとの結合係数ｗjiを更新したとき、二乗誤差Ｅk の変動分は次のようになる。
∂Ｅk ／∂ｗji＝−｛Σ（ｔk −ｚk ）・ｆ’（ｙk ）・ｗkj｝・ｆ’（ｙj ）・ｚi                                                       …式５
ここで記号Σはｋについての和記号である。また、ｚi は入力層のｉ番目のニューロンの出力であり、ｙj は中間層のｊ番目のニューロンについての上記式１で示される入力和である。
【００１５】
したがって、二乗誤差を減らすための結合係数の更新量Δｗkj及びΔｗjiは、次の式で示される。
Δｗkj＝ｗkj（ｔ＋１）−ｗkj（ｔ）＝−η・∂Ｅk ／∂ｗkj    …式６
Δｗji＝ｗji（ｔ＋１）−ｗji（ｔ）＝−η・∂Ｅk ／∂ｗji    …式７
なお、ここでｔは時刻を示している。また、ηは更新重みと呼ばれる正数であり、通常０．１〜０．５の範囲で実験的に決められる。
【００１６】
以上ニューラルネットワークの概要について詳述したが、ニューラルネットワークを構成するにあたっては、上述したニューロンの機能を如何にして実現するかが問題となる。
従来、ノイマン型コンピュータを用い、ソフトウェア処理にてニューロンの機能を実現する手法を用いることが多かった。しかし、この場合、複数のニューロンにおける処理をＣＰＵが時分割で実行することになるため、本来の並列情報処理がなされない。
【００１７】
そのため、ハードウェアを用いてニューロンを構成する技術が提案されている。ハードウェアを用いて実現する手法は、２つに大別される。アナログ回路を用いる手法と、ディジタル回路を用いる手法である。
アナログ回路を用いて構成すると、ニューロンの面積を小さくできるため、ニューラルネットワークの集積度を大きくでき、また、信号処理速度が速いというメリットを享受できる。その反面、各信号の値を電位や電流等のアナログ量で表し、各演算も増幅器等のアナログ素子により実行するため、温度特性によるばらつき、素子形成上のプロセスのばらつきが問題となり、結果として、各素子の応答特性を同一にすることができず所望の出力値が得られないことがあるというデメリットがあった。
【００１８】
一方、ディジタル回路を用いて構成すると、ニューロンの面積がアナログ回路に比べ大きくなるため、ニューラルネットワークの集積度を挙げられないといったデメリットはあるが、温度特性や素子形成上のプロセスのばらつきによる影響を受けず、回路を形成することも比較的容易で、信頼性が高くなるというメリットを享受できる。
【００１９】
従来、ディジタル回路を用いてニューロンを構成する技術として、特開平７−１１４５２４号公報に開示されたものがある。この技術では、ニューロンの機能をディジタル回路で実現するにあたり、パルス密度という概念を採用した。
しかし、パルス密度を用いた場合には、次に示すような問題がある。
【００２０】
それは、ニューラルネットワークのニューロン間の結合には興奮性結合と抑制性結合があり、数学的には結合関数の正負符号によって表現されるが、パルス密度を用いた場合は両者を区別することができない。すなわち、特開平７−１１５２４号公報には、パルス密度で「０〜１」を表現できる構成となっているが、ニューラルネットワークのニューロン間の結合を表現するためには「−１〜１」に相当する信号を表現する必要がある。そのため、この技術では、結合係数の正負によって各結合を興奮性結合と抑制性結合の２つのグループに分けている。その結果、特開平７−１１４５２４号公報でいうところのシナプス回路から細胞体回路への信号線が２系統必要となってくる。
【００２１】
本発明は、上述した課題を解決するためになされたものであり、ディジタル電子回路でニューラルネットワークを構成するにあたり、ニューロンにて処理される信号にパルス密度ではなくパルス遅延時間という概念を採用することによって、当該一の信号にて興奮性結合と抑制性結合とを表現可能にし、ニューラルネットワークの回路面積の縮小に寄与することを目的とする。
【００２２】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項１に記載のニューロンは、
ディジタル電子回路として実現される階層型ニューラルネットワークの構成単位となる。本ニューロンは、生体の神経細胞（ニューロン）をモデル化したものである。
【００２３】
本ニューロンには、所定数の入力パルスからなる入力パルス列が、複数、外部から入力信号として入力される。また、入力パルス列を構成する各入力パルスに対応した前記所定数の基準パルスからなる基準パルス列が生成される。そして、この入力パルス列中の各入力パルスの遅延時間は、平均ｘの正規分布に従う。各入力パルスの遅延時間というのは、基準パルス列中の対応する基準パルスからの遅延時間である。そして、複数の入力パルス列毎に、対応する結合係数ｗが記憶されている。
【００２４】
例えば図２には、入力信号（入力１）としてのパルス列ｘ1 を示した。パルス列ｘ1 は、ｍ個（所定数）のパルスｓ11，ｓ12，・・・，ｓ1mからなる。そして、基準パルス列中の基準パルスＴ1 ，Ｔ2 ，・・・，Ｔm に対する各パルスの遅延時間ｄ11，ｄ12，ｄ1mが平均ｘ1 の正規分布に従う。
【００２５】
なお、ここでいう「遅延時間」はマイナスの値を取り得る。例えばｄ1k（ｋ＝１，２，３，・・・，ｍ）がマイナスの値となるのは、パルス列ｘ1 のパルスｓ1kが、対応する基準パルスＴk に先行するときである。
この基準パルスは一定時間間隔であることが考えられるが、基準パルスは一定時間間隔でなくても差し支えない。また、基準パルスは、本ニューロンの外部にて生成され、本ニューロンへ入力されるようにしてもよいが、請求項２に示すように、基準パルス生成手段を備える構成とし、ニューロンの内部にて基準パルスを生成するようにしてもよい。
【００２６】
なお、以下の説明で単に「パルスの遅延時間」という場合、上述したような、対応する基準パルスからの遅延時間をいうものとする。
このような性質を有する入力信号としての入力パルス列が入力されると、本発明のニューロンは以下のように動作する。
【００２７】
まず、乗算相当値算出手段が、乗算相当値を求める。乗算相当値算出手段は、各入力パルス列毎に設けられるものであって、一様乱数発生器を有し、該入力パルス列を構成する入力パルス毎に、該入力パルスの遅延時間に比例した回数だけ一様乱数発生器にて乱数を生成し、該生成した回数分の乱数の各々について該入力パルス列に対応した結合係数ｗの値と比較することにより乱数よりも結合係数ｗの絶対値が大きくなる回数を計数して、結合係数ｗの値が正数である場合は該計数した回数をそのまま該入力パルスに対応した乗算相当値として算出し、該結合係数ｗの値が負数である場合は該計数した回数を絶対値とする負の回数を乗算相当値として算出する。
続いて、加算手段が、基準パルス毎に、各入力パルス列における該基準パルスに対応した各入力パルスに対してそれぞれ乗算相当値算出手段により算出された各乗算相当値を加算する。ここで加算手段は、各乗算相当値の集合から一の乗算相当値を重複しないように取り出して加算する。例えば乗算相当値算出手段によって乗算相当値が時系列に求められるのであれば、加算手段は、時系列の乗算相当値列における同列の値を加算していくという具合である。
【００２８】
したがって、入力信号としてｍ個の入力パルス列が入力された場合に、各入力パルスの遅延時間が平均ｘi （ｉ＝１，２，３，・・・，ｍ：以下同じ）の正規分布に従う入力パルス列であれば、各入力パルス列に対応する結合係数をｗi とすると、加算手段による加算値の分布は、平均Σｗi ｘi の正規分布に従うことになる。
【００２９】
この乗算相当値算出手段及び加算手段による演算が、上記式１に示す演算に相当する。
そして、非線形演算手段が、加算手段によって得られた加算値の中の正数値の個数を、複数の入力パルス列に対する非線形演算値として計数する。ここでいう正数値には「０」を含めてもよいし、「０」を含めなくてもよい。つまり、境界値「０」を含めるか否かは、計数値全体からみればほとんど影響しないからである。この個数は、平均Σｗi ｘi の正規分布の確率密度を加算値（各入力パルスの遅延時間の演算値）が正数値となる部分について積分したものである。したがって、非線形性を生じる。この非線形演算手段による演算が、上記式２に示す演算に相当する。
【００３０】
そして、出力パルス列生成手段は、基準パルス列を構成する各基準パルスに対応した上記所定数の出力パルスからなる出力パルス列を生成する。この出力パルス列の各出力パルスの、対応する基準パルスからの遅延時間は、非線形演算手段にて計数された非線形演算値に比例するように決定される遅延時間を平均値とする正規分布に従う。
本発明によれば、ディジタル回路を用いた場合のメリット、つまり、完全な並列処理が可能となると共に、温度特性や素子形成上のプロセスのばらつきによる影響を受けず、回路を形成することも比較的容易で、信頼性が高くなるというメリットを享受できることは言うまでもない。
【００３１】
そして、さらに本発明では、ニューロンにて処理される１つの信号を各パルスの遅延時間を用いて表現する。その結果、以下に示すような効果を奏する。
上述した特開平７−１１５２４号公報に開示されるようなパルス密度を用いた場合は、興奮性結合と抑制性結合とを区別することができない。そのため、この技術では、結合係数の正負によって各結合を興奮性結合と抑制性結合の２つのグループに分けている。その結果、公報でいうところのシナプス回路と神経回路とが２系統の信号線で接続されることになっていた。
【００３２】
これに対して、本発明では、パルスの遅延時間を用い、このパルスの遅延時間をマイナスと見なすことによって、興奮性結合と抑制性結合とを一の信号で表現することができる。したがって、本ニューロンを用いて階層型ネットワークを構成すれば、従来のようにパルス密度を用いた構成と比べて信号線を削減できる。特に、従来の装置におけるシナプス回路と神経回路との接続部分に相当する配線は半分になる。
【００３３】
なお、図２に例示したパルス列ｘ1 のパルスｓ1kが対応する基準パルスＴk に先行するときに、「遅延時間」がマイナスの値を取り得ることは既に述べた。しかしながら、本発明の技術思想では、ニューロン間の信号であるパルス列の遅延時間がマイナスの値をとらなくても、ニューロンの内部で「遅延時間」をマイナス値として処理できればよい。すなわち、結合係数ｗがマイナスであった場合に、その結合係数ｗとの乗算相当値がマイナス値を含めて計算できればよい。したがって、請求項６に示すように、外部から入力される入力パルス列の各入力パルスが基準パルスよりも遅れて発生するという前提の下、出力パルス列生成手段は、各出力パルスが基準パルスよりも遅れた出力パルス列を生成するようにしてもよい。
【００３４】
このようにしても、上述した効果と同様の効果が得られる。すなわち、興奮性結合と抑制性結合とを一の信号で表現することができ、従来のようにパルス密度を用いた構成と比べて信号線を削減できる。具体的には、従来の装置におけるシナプス回路と神経回路との接続部分に相当する配線が半分になる。そして、この場合には、ニューロン間を伝達されるパルス列の各パルスが必ず基準パルスよりも後に発生するため、入力パルスが基準パルスに先行して入力される場合を考慮しなくてもよい。その結果、ニューロンを構成する回路が簡略化される点で有利である。
【００３５】
また、従来のようにパルス密度を用いた場合、上述した非線形演算手段に相当する手段は複数パルスのＡＮＤ演算により実現できるが、反面、演算の正確さの観点からは期待できない。
そこで、本発明では、正規分布を積分した分布関数が飽和型の単調増加関数になることに着目した。この点に着目することによって、非線形演算手段は、計数手段として例えばカウンタにて構成できる。したがって、この非線形演算手段に相当する回路面積が比較的小さくなると共に演算の正確さを確保できる点で有利である。
【００３６】
ところで、ニューロンの回路面積をなるべく小さくするという観点からは、上述した乗算相当値算出手段を工夫することが考えられる。パルス密度を用いた場合、乗算もＡＮＤ演算により実現できるが、精度の点でやはり正確さを期待できない。
【００３７】
本発明では、乗算相当値算出手段は、入力パルス列にそれぞれ対応する結合係数ｗを用いて乗算相当値を求める。乗算相当値の分布は平均ｗｘの正規分布である。したがって、この乗算相当値算出手段は、最も簡単には乗算回路を用いて構成することが考えられる。つまり、乗算回路を用い、結合係数ｗと各遅延時間とを乗じた値を乗算相当値とすればよい。しかし、一般に乗算回路は回路面積が大きくなるという欠点がある。
【００３８】
そこで本発明（請求項１）では、入力パルス列毎に設けられる乗算相当値算出手段を、一様乱数発生器を備える構成とし、該入力パルス列を構成する入力パルス毎に、各入力パルスの遅延時間に比例した回数だけ一様乱数発生器にて乱数を生成し、当該生成した回数分の乱数の各々について該入力パルス列に対応した結合係数ｗの値とを比較し、当該比較結果に基づき乗算相当値を算出するようにしている。
【００３９】
これは二項分布の正規分布近似を応用したものである。二項分布の正規分布近似とは、二項分布に従うｎ回の試行において、ｎを大きくすると、二項分布は平均値ｎ・Ｐの正規分布に近づくという性質である。ここでＰは、一回の試行において結果が「成功」する確率である。この性質を使いＰ＝ｗ，ｎ＝ｘとすれば、ｘ回の試行で「成功」する確率の分布は平均ｗｘの正規分布に従う。
【００４０】
したがって、遅延時間に応じ一様乱数発生器にて乱数を生成し、この乱数ｒよりも結合係数ｗの絶対値が大きくなる回数を計数し、この計数値及び結合係数ｗの符号（正数又は負数のいずれであるか）に基づき乗算相当値を算出すれば、平均ｗｘの正規分布に従う乗算相当値を算出することができる。このようにすれば、乗算回路を用いた場合と比較して、ニューロンの回路面積が大幅に削減される。そして、パルス密度を用いた場合に比べ、演算の正確さが達成される。
【００４１】
ところで、上述した出力パルス列生成手段は、具体的には請求項３に示すように、基本パルス列生成手段と遅延手段とを備える構成とすることが考えられる。
基本パルス列生成手段は、基準パルス列を構成する各基準パルスに対応した上記所定数の基本パルスからなる基本パルス列であって、対応する基準パルスからの各基本パルスの遅延時間が平均０の正規分布に従うような基本パルス列を生成する。遅延手段は、この基本パルス列生成手段にて生成された基本パルス列の各基本パルスを非線形演算手段による演算結果に比例するように決定される遅延時間だけ遅延させる。
【００４２】
つまり、まず最初に平均０の正規分布に従う基本パルス列を生成しておき、次にその基本パルス列中の各基本パルスを一定時間だけ遅らせれば、その遅らせた時間を平均値とする正規分布に従うパルス列（即ち出力パルス列）を生成することができる。この一定時間は、非線形演算手段による演算結果から決定される時間である。このようにすれば、各出力パルスの遅延時間の平均を任意に設定でき、正規分布に従う出力パルス列を簡単に生成することができる。
【００４３】
なお、各基本パルスの遅延時間の平均が０となる正規分布に従う基本パルス列は、一様乱数発生器を用いて生成することができる。
したがって、基本パルス列生成手段は、例えば請求項４に示すように構成することが考えられる。その構成は、複数の一様乱数発生器と、生成すべき基本パルス毎に、一様乱数発生器にて生成される乱数を加算する乱数加算手段と、生成すべき基本パルス毎に、対応する基準パルスを乱数加算手段による対応する加算結果の値に比例した時間だけ遅延させたパルスを、基本パルスとして出力するパルス出力手段とを備えるものである。
【００４４】
分布が有限な乱数を多数加えると、中心極限定理により正規分布に近づくことが知られている。例えば一様乱数Ｕ（０≦Ｕ＜１）を１２個加えて６引いた値の分布は、Ｎ（０，１）の正規分布となる。
この場合、乱数加算手段は、複数の一様乱数発生器にて生成される乱数を加算する。この加算結果は正規分布に従う。そのため、パルス出力手段がこの加算結果に基づき基本パルスを出力すれば、各基本パルスはランダムに出力されるが、基本パルス列全体としては、遅延時間が正規分布に従うタイミングで出力されることになる。
【００４５】
ここで複数の一様乱数発生器を用いるのであるが、上述したように１２個の一様乱数発生器を用意すれば、その加算値は確率的に精度良く正規分布に従うことになる。しかし、本発明において各基本パルスの遅延時間の分布が正規分布となるようにする理由は、上述した非線形演算を可能にするためである。そして、遅延時間がそれほど精度よく正規分布に従わなくても、ニューロンの機能を損なうことはない。
【００４６】
そのため、例えば請求項５に示すように、４つの一様乱数発生器を用いて基本パルス列生成手段を構成することが考えられる。この場合、各乱数を加算した加算値データの下位２ビットを除くデータを加算結果として出力するように乱数加算手段を構成する。
【００４７】
一様乱数Ｕ（０≦Ｕ＜１）を複数個足せば、その後、除算回路等を用いて［０，１］区間の乱数に変換する必要がある。上述のように４つの一様乱数を足し合わせれば「４」で除する必要があるが、除算回路を用いて「４」で除する代わりに、加算値データの下位２ビットを除けばよい。これによって、回路面積の縮小に寄与できる。
【００５９】
以上、ニューロンの構成を説明してきたが、請求項７に示すように、上述したニューロンを機能単位とする階層型ニューラルネットワークの発明として実現することもできる。
【００６０】
ところで、ニューラルネットワークにおける学習は、各ニューロンの結合係数の更新によって実現されることは上述した。すなわち、学習とは、結合係数ｗの値を逐次的に適切な値に更新し、入力層への入力信号の組（入力パターン）ｐを与えたときに、出力層から所望の出力信号ｚが得られるようにすることである。
しかしながら、この学習を可能にする手段を上述したニューロン自体が必ずしも備えている必要はない。なぜなら、別のコンピュータシステム等にて最適な結合係数を予め計算して記憶することも考えられるからであり、製品等に組み込んだ後に学習を行う必要がない場合があるからである。
一方、製品等に組み込んだ後に学習を行う必要がある場合には、上述したニューロンを、さらに学習を可能にする手段を備える構成とすることが考えられる。
その構成は、請求項８，９に示すように、さらに、微分相当値演算手段、学習使用値算出手段（詳しくは、請求項８では出力層用学習使用値算出手段、請求項９では中間層用学習使用値算出手段）、及び結合係数更新手段を備えるものである。
後述するように、学習使用値算出手段にて算出される学習使用値は、ニューロンの構成する階層によって変わってくる。したがって、例えば３階層ニューラルネットワークを考えた場合、中間層のニューロンと出力層のニューロンとを別個の構成とすることが考えられる。
【００６１】
そこで、請求項８には、ディジタル電子回路として実現される３層階層型ニューラルネットワークの出力層の構成単位となるニューロンの構成を示した。一方、請求項９には、ディジタル電子回路として実現される３層階層型ニューラルネットワークの中間層の構成単位となるニューロンの構成を示した。
【００６２】
請求項８に記載のニューロンは、ディジタル電子回路として実現される３層階層型ニューラルネットワークの出力層の構成単位となる、神経細胞をモデル化したニューロンであって、所定数の入力パルスからなる入力パルス列が、複数、入力信号として入力されると共に、入力パルス列を構成する各入力パルスに対応した上記所定数の基準パルスからなる基準パルス列が生成され、各入力パルス列は、該入力パルス列を構成する各入力パルスの、対応する基準パルスからの遅延時間が、平均ｘの正規分布に従うものであって、該複数の入力パルス列毎に、対応する結合係数ｗkが記憶されており、各入力パルス列毎に設けられた乗算相当値算出手段と、加算手段と、非線形演算手段と、出力パルス列生成手段と、微分相当値演算手段と、出力層用学習使用値算出手段と、結合係数更新手段とを備えている。
請求項９に記載のニューロンは、ディジタル電子回路として実現される３層階層型ニューラルネットワークの中間層の構成単位となる、神経細胞をモデル化したニューロンであって、３層階層型ニューラルネットワークの出力層の構成単位となるニューロンは、請求項８に記載のニューロンである。そして、当該中間層の構成単位となるニューロンは、所定数の入力パルスからなる入力パルス列が、複数、入力信号として入力されると共に、入力パルス列を構成する各入力パルスに対応した上記所定数の基準パルスからなる基準パルス列が生成され、各入力パルス列は、該入力パルス列を構成する各入力パルスの、対応する基準パルスからの遅延時間が、平均ｘの正規分布に従うものであって、該複数の入力パルス列毎に、対応する結合係数ｗjが記憶されており、各入力パルス列毎に設けられた乗算相当値算出手段と、加算手段と、非線形演算手段と、出力パルス列生成手段と、微分相当値演算手段と、中間層用学習使用値算出手段と、結合係数更新手段とを備えている。
いずれのニューロンも、乗算相当値算出手段、加算手段、非線形演算手段、出力パルス列生成手段、及び微分相当値演算手段については同様の構成となっている。そして、これら各手段のうち、微分相当値演算手段を除く各手段についての説明は、上述したニューロンの備える同一名称の手段の説明と同様となるため省略する。
微分相当値演算手段は、加算手段によって得られた加算値の中の０の個数を微分相当値として計数する。従来技術として述べたように、結合係数の更新量を計算するときには、非線形関数ｆの微分値ｆ’が必要になってくる。上述した非線形演算手段にて計数される非線形演算値は、平均Σｗi ｘi の正規分布の確率密度を、加算値（各入力パルスの遅延時間の演算値）が正数値となる部分について積分したものであった。したがって、ｆ’は、平均Σｗi ｘi の正規分布の確率密度０の値となる。そのため、加算値の中の０の個数を微分相当値として計数するのである。
ただし、ここでいう「０の個数」には、加算値が真に０の場合だけでなく、加算値が０に近い場合を含むようにしてもよい。計算誤差を含むためである。例えば加算値データが２の補数表現にて表されている場合には、加算値データの下位２ビットを除く上位ビットが「０」又は「１」の場合を検出するという具合である。この場合、絶対値が「７」以下の加算値データが「０」として計数される。
【００６３】
一方、請求項８のニューロンと請求項９のニューロンとで異なるのは、請求項８の、出力層の構成単位となるニューロンが、出力層用学習使用値算出手段を備えているのに対し、請求項９の、中間層の構成単位となるニューロンが、中間層用学習使用値算出手段を備えていること、及び、結合係数更新手段の構成である。
請求項８の、出力層の構成単位となるニューロンでは、出力層用学習使用値算出手段が、非線形演算手段にて計数される非線形演算値に基づく信号と教師信号との差分を、当該ニューロンにおける学習としての前記結合係数ｗkの更新のために必要な学習使用値として算出する。すなわち、出力層用学習使用値算出手段は、上記式４中の（ｔk −ｚk ）に相当する演算を行う。ここで、「非線形演算値に基づく信号」としたのは、非線形演算値そのものを用いてもよいし、非線形演算値に基づきパルス生成手段にて生成されるパルス信号を用いてもよいためである。この場合、結合係数更新手段は、出力層用学習使用値算出手段にて算出された学習使用値を用いて、結合係数を更新する。
即ち、請求項８のニューロンにおける結合係数更新手段は、一様乱数発生器を有し、出力層用学習使用値算出手段にて算出された学習使用値と微分相当値演算手段にて計数された微分相当値との乗算を行うことによりその乗算値を求め、更に、入力信号である入力パルス列を構成する各入力パルスの遅延時間に比例した回数だけ該一様乱数発生器にて乱数を生成し、該生成した回数分の乱数の各々について該乗算値と比較することにより該乱数よりも該乗算値が大きくなる回数を計数して、該乗算値が正数である場合は該計数した回数をそのまま、該乗算値が負数である場合は該計数した回数を絶対値とする負の回数を、該入力パルス列に対応した結合係数ｗkに加算することにより、該結合係数ｗkを更新する。
上記式４で言えば、微分相当値がｆ’（ｙk ）に相当し、入力パルス列がｚj'に相当する。つまり、請求項８のニューロンにおける結合係数更新手段は、例えば３層階層型のニューラルネットワークを考えた場合、上記式４に相当する演算を行い、更新量Δｗを計算して結合係数ｗkを更新する手段である。
なお、学習使用値と微分相当値との乗算は、回路面積を削減するという観点からは、上述した乗算相当値算出手段と同様に、二項分布の正規分布近似を応用して乗算値を求める回路を用いるようにしてもよい。このことは請求項９における学習使用値と微分相当値との乗算についても同様である。このようにすれば、学習使用値算出手段及び結合係数更新手段の回路面積を極力小さくすることができる。
【００６４】
また、請求項９の、中間層の構成単位となるニューロンでは、中間層用学習使用値算出手段が、ニューラルネットワークの出力となる信号と教師信号との差分と、ニューラルネットワークの構成単位となる出力層のニューロンから出力される微分相当値及び結合係数ｗkとを用い、学習に必要な学習使用値を算出する。すなわち、中間層用学習使用値算出手段は、上記式５中の｛Σ（ｔk −ｚk ）・ｆ’（ｙk ）・ｗkj｝に相当する演算を行う。ここでニューラルネットワークの出力となる信号は、パルス信号に限定されず、非線形演算の値を示す信号であってもよい。この場合、結合係数更新手段は、中間層学習使用値算出手段にて算出された学習使用値を用いて、結合係数ｗjを更新する。
即ち、請求項９のニューロンにおける中間層用学習使用値算出手段は、出力層の構成単位となるニューロンが有する非線形演算手段にて計数される非線形演算値に基づく信号と教師信号との差分と、出力層のニューロンから出力される微分相当値と、当該ニューロンと出力層のニューロンとの結合係数ｗkと、の積を、当該ニューロンにおける学習としての結合係数ｗjの更新のために必要な学習使用値として算出する。
そして、結合係数更新手段は、一様乱数発生器を有し、前記中間層用学習使用値算出手段にて算出された前記学習使用値と前記微分相当値演算手段にて計数された前記微分相当値との乗算を行うことによりその乗算値を求め、更に、前記入力信号である前記入力パルス列を構成する各入力パルスの前記遅延時間に比例した回数だけ該一様乱数発生器にて乱数を生成し、該生成した前記回数分の乱数の各々について該乗算値と比較することにより該乱数よりも該乗算値が大きくなる回数を計数して、該乗算値が正数である場合は該計数した回数をそのまま、該乗算値が負数である場合は該計数した回数を絶対値とする負の回数を、該入力パルス列に対応した前記結合係数ｗjに加算することにより、該結合係数ｗjを更新する。
上記式５で言えば、微分相当値がｆ’（ｙj ）に相当し、入力パルス列がｚi'に相当する。つまり、請求項９のニューロンにおける結合係数更新手段は、例えば３層階層型のニューラルネットワークを考えた場合、上記式５に相当する演算を行い、更新量Δｗを計算して結合係数ｗｊを更新する手段である。
【００６５】
このように、３層階層型ニューラルネットワークの中間層及び出力層のニューロンを別個に構成するようにすれば、学習使用値を算出する回路が個別のものとなるため、ニューロンの回路面積をより削減できるという効果を奏する。なお、ここでは、３層階層型のニューラルネットワークについて述べたが、例えば４層以上の階層型のニューラルネットワークについても、学習使用値を算出する回路を個別にすることによってニューロンの回路面積を削減できる。
請求項１０に記載の発明は、ディジタル電子回路として実現される階層型ニューラルネットワークの構成単位となる、神経細胞をモデル化したニューロンの内部で、２つの信号の乗算値を算出するために用いられる乗算回路であって、一様乱数発生器を備え、一方の信号の値に比例した回数だけ一様乱数発生器にて乱数を生成し、該生成した回数分の乱数の各々について他方の信号の値と大小比較することにより、乱数よりも他方の信号の絶対値が大きくなる回数を計数して、他方の信号の値が正数である場合は該計数した回数をそのまま乗算値として算出し、他方の信号の値が負数である場合は該計数した回数を絶対値とする負の回数を乗算値として算出するよう構成されている。また、他方の信号の値を表すビット数と、一様乱数発生器にて生成される乱数のビット数とは同一である。
【００６９】
【発明の実施の形態】
以下、本発明を具体化した実施例を図面を参照して説明する。なお、本発明は以下の実施例に何等限定されることなく、発明の技術的範囲に属する限り種々の実施形態を取り得ることは言うまでもない。
［第１実施例］
図１は、階層型ニューラルネットワークの機能単位となるニューロンの模式図である。
【００７０】
ニューロン１０は、図１５に模式的に示した階層型ニューラルネットワークのｊ番目のニューロンを例示したものである。
ニューロン１０は、図１５に示すように、ニューラルネットワークの入力層からの信号（以下「入力信号」という。）を入力し、所定の演算を行い、さらに、出力層のニューロンへ信号（以下「出力信号」という。）を出力する。なお、中間層及び出力層に含まれるニューロンは全て、同様の構成となっている。出力層に含まれるニューロンは、中間層のニューロンからの入力信号に基づく演算を行い、ニューラルネットワークの出力信号を生成する。
【００７１】
図１に示すように、ニューロン１０には、ｎ本のパルス列ｘ1 ，ｘ2 ，・・・，ｘn が入力信号として入力される。そして、ニューロン１０は、パルス列ｚj'を出力信号として出力する。パルス列ｘ1 〜ｘn ，ｚj はそれぞれ、ｍ個のパルスｓ1 ，ｓ2 ，ｓ3 ，・・・，ｓm からなる。
【００７２】
そして、ニューロン１０の内部では、一定時間間隔の基準パルスを生成し、この基準パルスＴ1 ，Ｔ2 ，・・・，Ｔm からの遅延時間に基づき信号処理を行うことを特徴としている。
ここで遅延時間について説明する。例えば入力信号ｘ1 のｍ個のパルスｓ11〜ｓ1mの遅延時間を図２に示した。遅延時間とは、ｍ個の各パルスｓ11〜ｓ1mの、対応する基準パルスＴ1 〜Ｔm からの遅れをいう。図２に示すように、各パルスｓ11〜ｓ1mのそれぞれの遅延時間をｄ11〜ｄ1mと表す。なお、例えば入力信号ｘ1 のパルスｓ11が基準パルスＴ1 よりも先行した場合、この遅延時間ｄ11はマイナスの値として扱われることになる。
【００７３】
本実施例のニューロン１０はこの遅延時間に基づき信号処理を行うため、上述した入力信号ｘi （ｉ＝１，２，３，・・・，ｎ）に入力されるパルス列の遅延時間ｄi1〜ｄimの平均を、入力信号を示す記号と同一の記号を用い、ｘi で表すことにする。このとき、遅延時間ｄi1〜ｄimはＮ（ｘi ，１）の正規分布に従う。また、同様に、出力信号ｚj'であるパルス列の遅延時間ｄj1〜ｄjmの平均をｚj で表すと、遅延時間ｄj1〜ｄjmはＮ（ｚj ，１）の正規分布に従う。
【００７４】
図１に示すようにニューロン１０は、パルス列ｘ1 〜ｘn のそれぞれに対応する結合係数ｗj1，ｗj2，・・・，ｗjnを記憶している。そして、入力信号ｘi に対し、従来技術の説明中に述べた式１及び式２に相当する演算を行う。そして、式２の演算結果に基づいて、パルス列である出力信号ｚj'を出力する。
【００７５】
次に、ニューロン１０の構成及び動作を説明する。
図３は、ニューロン１０の機能ブロック図である。ニューロン１０は、乗算ブロック２０と、加算ブロック３０と、非線形演算ブロック４０と、基本パルス生成ブロック５０と、パルス遅延ブロック６０とを備えている。
【００７６】
上述したように、入力信号ｘi の各パルスの遅延時間は、Ｎ（ｘi ，１）の正規分布に従っている。
まず乗算ブロック２０では、ｍ個のパルスの遅延時間に基づき、入力信号ｘi に対応する結合係数ｗjiを用いて、Ｎ（ｗjiｘi ，１）の正規分布に従うｍ個の数値を算出する。結合係数ｗjiは、各乗算ブロック２０毎に設けられたレジスタ（不図示）に記憶されている。次に加算ブロック３０では、各乗算ブロック２０にて算出された数値を順次加算する。この乗算ブロック２０及び加算ブロック３０での演算が、上記式１の演算に相当する。
【００７７】
そして、非線形関数ブロック４０では、加算ブロック３０による加算値の中の正数値の個数を計数する。この非線形関数ブロック４０での演算が、上記式２の演算に相当する。
基本パルス生成ブロック５０は、各パルスの遅延時間が平均０の正規分布に従うパルス列を生成する。また、この基本パルス生成ブロック５０では、一定時間間隔の基準パルスＴからなる基準パルス列も生成する。この基準パルスＴは、他のブロック２０，３０，４０，６０へも出力される。そして、パルス遅延ブロック６０は、非線形演算ブロック４０の演算結果に基づき、基本パルス生成ブロック５０にて生成されたパルス列の各パルスを遅延させた出力信号ｚj'を生成し、ニューロン１０の出力信号とする。
【００７８】
以上ニューロン１０を機能ブロック単位で大まかに説明した。次に、各ブロックについての構成及び動作を詳細に説明する。
最初に乗算ブロック２０について説明する。
図４は、乗算ブロック２０の構成を示す回路図である。乗算ブロック２０は、遅延時間計時部２１、一様乱数発生器である線形シフトレジスタ（以下「ＬＦＳＲ」という。）２２、反転スイッチ部２３、比較器２４、アップダウンスイッチ部２５、アップダウンカウンタ２６、及びＸＯＲゲート２７を備えている。
【００７９】
遅延時間計時部２１は、Ｄフリップフロップ（以下「ＤＦ／Ｆ」という。）２１ａ、ＳＲフリップフロップ（以下「ＳＲＦ／Ｆ」という。）２１ｂ、２入力のＯＲゲート２１ｃ、反転ゲート２１ｄ及び２入力のＡＮＤゲート２１ｅを備えている。
【００８０】
ＯＲゲート２１ｃの２つの入力端子にはそれぞれ、基本パルス生成ブロック５０からの基準パルスＴと、入力信号としてのパルス列ｘi とが入力される。ＯＲゲート２１ｃの出力端子は、ＤＦ／Ｆ２１ａのクロック入力端子に接続されている。ＤＦ／Ｆ２１ａの反転出力端子（Ｑ−）は、ＤＦ／Ｆ２１ａのデータ端子（Ｄ）へ結線され、ＤＦ／Ｆ２１ａの出力端子（Ｑ）は、ＡＮＤゲート２１ｅの一方の入力端子と結線されている。外部からのクロック信号（ＣＬＫ）は反転ゲート２１ｄへ入力されており、反転ゲート２１ｄの出力端子はＡＮＤゲート２１ｅの他方の入力端子と結線されている。そして、ＡＮＤゲート２１ｅの出力端子は、ＬＦＳＲ２２のクロック端子と結線されている。
【００８１】
また、ＳＲＦ／Ｆ２１ｂのリセット端子（Ｒ）へは基準パルスＴが入力され、セット端子（Ｓ）へは入力信号ｘi が入力されている。ＳＲＦ／Ｆの出力端子（Ｑ）は、ＸＯＲゲート２７の一方の入力端子に結線されている。
ＬＦＳＲ２２は、クロック端子へパルスが入力される毎に、ｍビット［ｍ−１：０］で示される一様乱数ｒを生成する。ＬＦＳＲ２２にて生成された乱数ｒは、比較器２４の入力端子（Ｌ）へ入力される。
【００８２】
一方、比較器２４の他方の入力端子（Ｒ）には、結合係数ｗが入力される。結合係数ｗは、上述したように各乗算ブロック２０に対応するレジスタから取得される。結合係数ｗは、ｍ＋１ビット［ｍ：０］の数値であり、２の補数表現を用い、興奮性結合である場合にはプラスの値として示され、一方、抑制性結合である場合にはマイナスの値として示される。
【００８３】
この結合係数ｗの最上位ビット［ｍ］が、上述したＸＯＲゲート２７の他方の入力端子へ出力されると共に、反転スイッチ部２３へ出力される。
反転スイッチ部２３は、結合係数ｗの最上位ビット［ｍ］が「０」であれば、スイッチを「０」側に切り換える。一方、最上位ビットｍが「１」であれば、スイッチを「１」側へ切り換える。これによって、スイッチが「０」側に切り換えられたときは、最上位ビット［ｍ］を除くｍビット［ｍ−１：０］の数値がそのまま比較器の入力端子（Ｒ）へ入力される。一方、スイッチが「１」側に切り換えられたときは、最上位ビット［ｍ］を除くｍビット［ｍ−１：０］の各ビットが反転ゲート２３ａにて反転され、ｍビットの数値として比較器２４の入力端子（Ｒ）へ入力される。これによって、２の補数表現となっていたマイナスの結合係数ｗの絶対値が比較器２４へ入力されることになる。なお、厳密には、２の補数表現を用いた場合には反転した後に「１」を加算することが必要となるが、ニューロンの処理精度に特に影響を及ぼすことがないため、本実施例ではハードウェアの削減を図る意味で加算していない。
【００８４】
上述したように、比較器２４の入力端子（Ｌ）へはＬＦＳＲ２２にて生成された乱数ｒが入力される。一方、入力端子（Ｒ）へは結合係数ｗの絶対値が入力される。比較器２４は、両方の入力値を比較し、結合係数ｗが乱数ｒよりも大きくなるとパルスを出力する。この比較器２４からの出力が、アップダウンスイッチ部２５を介し、アップダウンカウンタ２６のアップ側の入力端子又はダウン側の入力端子のいずれか一方へ入力される。
【００８５】
アップダウンスイッチ部２５には、ＸＯＲゲート２７の出力端子が結線されている。アップダウンスイッチ部２５は、ＸＯＲゲート２７の出力が「０」であればスイッチを「０」側に切り換え、一方、「１」であればスイッチを「１」側に切り換える。
【００８６】
アップダウンカウンタ２６は、ｎ＋２ビット［ｎ＋１：０］のカウンタであり、アップ側の端子にパルスが入力される度に「０」→「１」→「２」→・・・という具合にカウントを行う。一方、ダウン側の端子にパルスが入力される度に「０」→「−１」→「−２」→・・・という具合にカウントを行う。
【００８７】
このように構成された乗算ブロック２０の動作を図４の回路図及び図５のタイミングチャートに基づき説明する。
図５に示すように時刻ｔ１で基準パルスＴが入力されると、遅延時間計時部２１のＯＲゲート２１ｃの出力端子からパルスが出力される。これによって、ＤＦ／Ｆ２１ａのＱ端子がＨレベルへ反転する。したがって、クロック信号ＣＬＫを反転させた反転ゲート２１ｄからの信号が、アンドゲート２１ｅから出力される。その結果、ＬＦＳＲ２２を動作させるクロック信号出力が開始される。
【００８８】
その後、時刻ｔ２で入力信号ｘi のパルスが入力されると、遅延時間計時部２１のＯＲゲート２１ｃの出力端子からパルスが出力される。これによって、ＤＦ／Ｆ２１ａのＱ端子がＬレベルへ反転する。そのため、アンドゲート２１ｅの出力がＬレベルに保持され、ＬＦＳＲ２２を動作させるクロック信号出力が停止する。
【００８９】
したがって、ＬＦＳＲ２２へのクロック信号は、図４中に示すように時刻ｔ１〜ｔ２の期間、すなわちパルスの遅延時間ｄirに応じて出力される。
また、時刻ｔ１で基準パルスＴが入力されると、ＳＲＦ／Ｆ２１ｂのＲ端子にパルスが入力されるため、ＳＲＦ／Ｆ２１ｂのＱ端子はＬレベルに保持される。そして、時刻ｔ２で入力信号ｘi のパルスが入力されるまで、すなわち、時刻ｔ１〜ｔ２の期間内はＳＲＦ／Ｆ２１ｂのＱ端子はＬレベルに保持される。これは、基準パルスに対して入力信号ｘi のパルスが遅れていること、すなわちこのパルスの遅延時間ｄirがプラスであることを意味する。図５中には「ｄの符号」として示した。
【００９０】
また図５に示すように、結合係数ｗの符号はプラスであり、結合係数ｗ（レジスタｗ）＝６であるとして、以下の説明を続ける。
２の補数表現を用いた結合係数ｗがプラスの値であるとき、ｍ＋１ビット［ｍ：０］のレジスタの最上位ビット［ｍ］は「０」である。したがって、反転スイッチ部２３は、スイッチを「０」側に切り換える。そのため、ｍ＋１ビットのレジスタの最上位ビット［ｍ］を除くｍビット［ｍ−１：０］の数値が比較器２４へ入力される。
【００９１】
また、結合係数の最上位ビットが「０」であり、遅延時間計時部２１のＳＲＦ／Ｆ２１ｂのＱ端子の出力も「０」であるため、ＸＯＲゲート２７の出力は「０」（プラス）となる。これを「ＸＯＲ出力」として図５中に示した。したがって、アップダウンスイッチ部２５は、スイッチを「０」側へ切り換える。すなわち、比較器２４からの出力がアップダウンカウンタ２６のアップ側の端子へ入力されるようにスイッチを切り換える。
【００９２】
ＬＦＳＲ２２へのクロック信号は、時刻ｔ１〜ｔ２の期間に出力されることは上述した。図５に示すように、時刻ｔ１〜ｔ２の期間にクロック信号として４個のパルスが出力されている。ＬＦＳＲ２２は、クロック信号としてのパルスが入力される毎に、ｍビット［ｍ−１：０］の乱数ｒを発生する。そして、この乱数ｒが比較器２４のＬ端子に出力される。
【００９３】
比較器２４では、結合係数ｗ＞乱数ｒとなると、アップダウンカウンタ２６へパルスを出力する。図５では、結合係数ｗ＞乱数ｒとなったのが一回であったため、アップダウンカウンタ２６では「０」→「１」とカウントされている。
一方、図５に示す時刻ｔ３〜ｔ４の期間の動作も、上述した時刻ｔ１〜ｔ２の期間の動作と同様となる。ただし、時刻ｔ４で入力される基準パルスに先行して、時刻ｔ３で入力信号ｘi のパルスが入力されている。そこで、この場合、遅延時間ｄir+1をマイナスとして扱う。ここで遅延時間ｄir+1をマイナスとして扱うときの動作について説明する。
【００９４】
このときは、時刻ｔ３で入力信号ｘi のパルスが入力されると、ＳＲＦ／Ｆ２１ｂのＳ端子にパルスが入力されるため、時刻ｔ４で基準パルスが入力されるまで、ＳＲＦ／Ｆ２１ｂのＱ端子はＨレベル「１」に保持される。これは、基準パルスに対して入力信号ｘi のパルスが進んでいること、すなわちこのパルスの遅延時間ｄir+1がマイナスであることを意味する。図５中に「ｄの符号」として示す如くである。
【００９５】
結合係数ｗの符号はプラス（０）であるため、ＸＯＲゲート２７の出力は「１」となる。したがって、アップダウンスイッチ部２５は、スイッチを「１」側へ切り換える。すなわち、比較器２４からの出力がアップダウンカウンタ２６のダウン側の端子へ入力されるようにスイッチを切り換える。
【００９６】
そのため、遅延時間ｄir+1に応じたＬＦＳＲ２２へのクロック信号によって乱数ｒが生成され、比較器２４によるパルス出力によってアップダウンカウンタ２６は、「０」→「−１」→「−２」→「−３」とカウントする。
なお、ここでは結合係数ｗの符号がプラスであるとして説明したが、アップダウンカウンタ２６は、結合係数ｗ及び遅延時間ｄが共にプラスあるいはマイナスの場合はアップカウントを行い、結合係数ｗ又は遅延時間ｄのいずれか一方がマイナスとなるとダウンカウントを行うことになる。
【００９７】
これによって、基準パルスに対して入力信号ｘi のパルスが先行している場合は、この乗算ブロック２０にてマイナスの数値に変換されることになる。
ここで、この乗算ブロック２０のアップダウンカウンタ２６の出力値の集合、すなわち、遅延時間ｄirに対応する「１」、遅延時間ｄir+1に対応する「−３」という数値の分布が、Ｎ（ｗｘ，１）の正規分布となることを説明する。
【００９８】
この乗算ブロック２０は、二項分布の正規分布近似を応用したものである。二項分布の正規分布近似とは、二項分布に従うｎ回の試行において、ｎを大きくすると、二項分布は平均値ｎ・Ｐの正規分布に近づくという性質である。ここでＰは、一回の試行において結果が「成功」する確率である。この性質を使いＰ＝ｗ，ｎ＝ｄとすれば、ｄ回の試行で「成功」する確率は平均ｗｄ、すなわち遅延時間ｄの平均をｘとすれば平均ｗｘの正規分布に従う。つまり、上記乗算ブロック２０では、遅延時間ｄに応じた試行がＬＦＳＲ２２による乱数ｒの発生であり、比較器２４からのパルス出力が「成功」した回数であって、アップダウンカウンタ２６にて計数される。すなわち、アップダウンカウンタ２６の出力値（絶対値）がｄ回の試行で「成功」した回数となっている。結果として、アップダウンカウンタ２６の出力値の集合は、平均ｗｘの正規分布に従うことになる。
【００９９】
続いて加算ブロック３０について説明する。
図６は、加算ブロック３０の構成を示す回路図である。加算ブロック３０は、加算器３１及び符号検出部３２を備えている。
加算器３１は、ｎ＋３ビット［ｎ＋２：０］である。この加算器３１には、各乗算ブロック２０のアップダウンカウンタ２６からの出力値ｗ・ｘが出力される。図３に示す各乗算ブロック２０からの出力値をｗ1 ・ｘ1 ，ｗ2 ・ｗ2 ，ｗ3 ・ｘ3 と記述する。出力値ｗ・ｘは、２の補数表現にて示されるため、最上位ビット［ｎ＋２］は符号ビットとなっている。
【０１００】
符号検出部３２は、反転ゲート３２ａ、フリップフロップ（以下「Ｆ／Ｆ」という。）３２ｂ及び２入力のＡＮＤゲート３２ｃを備えている。
反転ゲート３２ａには、加算器３１の最上位ビット［ｎ＋２］が入力される。反転ゲート３２ａの出力端子は、Ｆ／Ｆ３２ｂの入力端子へ結線されている。また、Ｆ／Ｆ３２ｂのクロック端子へは、外部からのクロック信号が入力される。そして、Ｆ／Ｆ３２ｂの出力端子がＡＮＤゲート３２ｃの一方の入力端子へ接続されており、ＡＮＤゲート３２ｃの他方の入力端子へは基準パルスＴが入力される。そして、ＡＮＤゲート３２ｃからの出力信号は、パルス信号ｓｉｇｎΣとして出力される。ここでＡＮＤゲート３２ｃの出力は、加算器３１の加算結果の符号となる。
【０１０１】
以上のように構成された加算ブロック３０の動作を、図６の回路図及び図７のタイミングチャートに基づき説明する。
加算器３１には、上述したように各乗算ブロック２０からの出力値ｗ・ｘが入力される。加算器３１では、各乗算ブロック２０から時系列に出力される数値列の同列のものを加算する。図７に「加算器」と示した欄を参照されたい。
【０１０２】
図６に示したように、加算器３１の最上位ビット［ｎ＋２］は符号検出部３２へ入力される。加算器３１の最上位ビットは、反転ゲート３２ａを介してＦ／Ｆ３２ｂに入力される。したがって、加算結果がプラスであればＦ／Ｆ３２ｂの出力端子がＨレベル「１」となり、逆に加算結果がマイナスであればＦ／Ｆ３２ｂの出力端子がＬレベル「０」となる。そして、基準パルスが入力されると、Ｆ／Ｆ３２ｂの出力がＡＮＤゲート３２ｃの出力となる。
【０１０３】
つまり、図７中の時刻ｔ５では、加算器３１の最上位ビットが「０」（プラス）であるため、Ｆ／Ｆ３２ｂの出力は「１」（プラス）となっている。そのため、時刻ｔ５で基準パルスが入力されると、ＡＮＤゲート３２ｃから加算結果Σｗ・ｘがプラスであることを示すパルスが出力される。一方、時刻ｔ６では、加算器の最上位ビットが「１」（マイナス）であるため、Ｆ／Ｆ３２ｂの出力は「０」（マイナス）となっている。そのため、時刻ｔ６で基準パルスが入力されても、ＡＮＤゲート３２ｃからのパルスは出力されない。
【０１０４】
続いて非線形演算ブロック４０について説明する。
図８は、非線形演算ブロック４０の構成を示す回路図である。非線形演算ブロック４０は、ｎ＋１ビット［ｎ：０］のカウンタ４１を備えている。このカウンタ４１のクロック端子（ＣＬＫ）には、上述した加算ブロック３０の符号検出部３２から信号ｓｉｇｎΣが入力される。この信号は、上述したように、パルスであり、基準パルスが加算ブロック３０へ入力された時点で、加算ブロック３０の加算結果が正数値であれば出力される。
【０１０５】
したがって、カウンタ４１では、加算結果の中の正数値の個数が計数されることになる。カウンタ４１からは、ｎ＋１ビット［ｎ：０］の数値ｚj が出力される。
ここでｚj を図面に対応させて説明する。
【０１０６】
以上のように各パルスの遅延時間がＮ（ｘi ，１）の正規分布に従う入力信号ｘi が入力されると、乗算ブロック２０にて、結合係数ｗi を用い、Ｎ（ｗi ｘi ，１）の正規分布に従う数値を算出した。そして、加算ブロック３０にて、これら数値を加算した。
【０１０７】
したがって、加算ブロック３０における加算値の分布は、Ｎ（Σｗjiｘi ，１）の正規分布となる。図９に示す如くである。すなわち、上述した数値ｚj は、図９中の加算値（各Ｔからの遅延時間）の中の正数値の個数に相当し、ハッチングを施した領域に相当することになる。なお、この領域の面積は正規分布曲線を積分したものであり、この面積には非線形性が生じる。
【０１０８】
続いて基本パルス生成ブロック５０について説明する。
図１０は、基本パルス生成ブロック５０の構成を示す回路図である。基本パルス生成ブロック５０は、ｎ＋１ビット［ｎ：０］のカウンタ５１、４つの一様乱数発生器であるＬＦＳＲ５２、加算器５３及び比較器５４を備えている。
【０１０９】
カウンタ５１のクロック端子には、外部からのクロック信号（ＣＬＫ）が入力されている。カウンタ５１は、クロック信号（ＣＬＫ）の入力に従いカウントアップする。例えばｎ＝６であれば、０〜１２７（＝２7 −１）までを繰り返しカウントするという具合である。
【０１１０】
このカウンタ５１は、カウント値を出力すると共に、カウント値が「０」，「２n 」となったことを判断するとパルスを出力する。カウント値が「０」のときに出力されるパルスを基準パルスＴ’とし、カウント値が「２n 」のときに出力されるパルスを基準パルスＴとして区別する。カウント値が「０」のときに出力される基準パルスＴ’は、４つの各ＬＦＳＲ５２のクロック端子へ入力される。
【０１１１】
ＬＦＳＲ５２は、クロック端子へパルスが入力されると、ｎ＋１ビット［ｎ：０］の乱数を生成する。したがって、カウンタ５１が「０」となる毎に、各ＬＦＳＲ５２において、ｎ＋１ビット［ｎ：０］の乱数が生成される。ｎ＝６であれば、各ＬＦＳＲ５２にて１〜１２７（２7 −１）の範囲の数値がランダムに生成されるという具合である。
【０１１２】
各ＬＦＳＲ５２にて生成された乱数は、加算器５３にて加算される。そして、加算器５３の上位ｎ＋１ビット［ｎ＋２：２］が比較器５４の一方の入力端子へ出力される。比較器５４の他方の入力端子へは、カウンタ５１のｎ＋１ビット［ｎ：０］のカウント値が入力される。比較器５４は、両方の入力端子へ入力されたｎ＋１ビットの数値が一致すると、パルスｘ０を出力する。
【０１１３】
このような構成を有する基本パルス生成ブロック５０の動作を、図１０の回路図及び図１１のタイミングチャートに基づいて説明する。なお、図１１に示したタイミングチャートは、図１０中の回路図におけるｎが「６」である場合を示している。したがって、ｎ＝６として以下の説明を続ける。
【０１１４】
カウンタ５１は、カウント値が「０」となると（図１１中の時刻ｔ７，ｔ１０）、基準パルスＴ’を出力するため、４つの各ＬＦＳＲ５２にて１〜１２７の乱数が出力され、加算器５３に入力される。したがって、加算器５３による加算値は４〜５０８（＝１２７×４）のランダムな数値となるが、加算器５３の出力は上位７ビット［８：２］であるため、比較器５４へは１〜１２７までの正規分布に従うランダムな数値が入力される。つまり、加算値を４で除した値が加算結果として比較器５４の一方の入力端子へ入力される。
【０１１５】
例えば図１１では、加算器５３による加算結果を４で除した値が時刻ｔ７では「７０」となり、時刻ｔ１０では「５８」となった様子が示されている。したがって、時刻ｔ７では比較器５４へ「７０」が出力され、時刻ｔ１０では比較器５４へ「５８」が出力される。
【０１１６】
比較器５４の他方の入力端子へは、カウンタ５１のカウント値が入力される。したがって、時刻ｔ７で比較器５４へ加算器５３からの出力がなされた後、カウンタ５１のカウント値が「７０」となった時点（図１１中の時刻ｔ９）で比較器５４からパルスｘ０が出力される。また、時刻ｔ１０で比較器５４へ加算器５３からの出力がなされた後、カウント５１のカウント値が「５８」となった時点（時刻ｔ１１）で比較器５４からパルスｘ０が出力される。
【０１１７】
一方、カウンタ５１は、カウント値が「６４（＝２6 ）」となると、基準パルスＴを出力する。したがって、時刻ｔ９において比較器５４から出力されるパルスｘ０は、時刻ｔ８にて出力される基準パルスから時間ｅjrだけ遅延したものとなる。逆に、時刻ｔ１１において比較器５４から出力されるパルスｘ０は、時刻１２で出力される基準パルスに時間ｅjr+1だけ先行したものとなる。
【０１１８】
比較器５４の出力であるパルスｘ０の各基準パルスＴからの遅延時間をｅj とすれば、この遅延時間ｅj の分布は、Ｎ（０，１）の正規分布に従う。これについて説明する。
分布が有限な乱数を多数加えると、中心極限定理により正規分布に近づくことが知られている。例えば一様乱数Ｕ（０≦Ｕ＜１）を１２個加えて６引いた値の分布は、Ｎ（０，１）の正規分布となる。
【０１１９】
そのため、本実施例において、ＬＦＳＲ５２にて生成される乱数の加算器５３による加算結果１〜１２７の分布は、Ｎ（６４，１）の正規分布にほぼ従う。したがって、カウント値「６４」で出力される基準パルスからの遅延時間ｅj の分布もまた、Ｎ（０，１）の正規分布にほぼ従うことになる。
【０１２０】
実際に上述した基本パルス生成ブロック５０の比較器による遅延時間ｅj の分布をプロットしたものを図１２に示した。
続いてパルス遅延ブロック６０について説明する。
図１３は、パルス遅延ブロック６０の構成を示す回路図である。パルス遅延ブロック６０は、ｎビット［ｎ−１：０］のレジスタ６１、ｎビット［ｎ−１：０］のカウンタ６２及び比較器６３を備えている。レジスタ６１の値が比較器６３の一方の入力端子へ入力され、カウンタ６２のカウント値が比較器６３の他方の入力端子へ入力されている。
【０１２１】
レジスタ６１には、上述した非線形演算ブロック４０からの出力値ｚj が格納される。また、カウンタ６２のクロック端子には、外部からのクロック信号（ＣＬＫ）が入力され、カウンタ６２は、このクロック信号に従いカウントアップする。また、カウンタ６２のリセット端子には、上述した比較器５４からのパルスｘ０が入力され、カウンタ６２は、このパルスｘ０でリセットされて「０」となる。比較器６３は、両方の入力端子への入力値が一致するとパルスを出力する。
【０１２２】
このように構成されたパルス遅延ブロック６０の動作を、図１３の回路図及び図１４のタイミングチャートに基づいて説明する。なお、図１４のタイミングチャートは、図１３の回路図中のｎが「６」である場合を例示するため、ｎ＝６として以下の説明を続ける。
【０１２３】
図１４に示すように、レジスタ６１に格納されたｚj は「６」である。したがって、比較器６３の一方の入力端子には「６」が入力される。
時刻ｔ９で、基本パルス生成ブロック５０の比較器５４からパルスｘ０が出力されると、カウンタ６２がリセットされて「０」となる。したがって、カウンタ６２は、時刻ｔ９からカウントアップしていく。そして、時刻１３で、カウント値が「６」となるため、比較器６３からパルスが出力される。
【０１２４】
また、時刻ｔ１１で、上述した基本パルス生成ブロック５０の比較器５４からパルスｘ０が出力されると、カウンタ６２がリセットされて「０」となる。したがって、カウンタ６２は時刻ｔ１１から再びカウントアップしていく。そして、時刻１４で、カウント値が「６」となるため、比較器６３からパルスが出力される。
【０１２５】
図１４に示す比較器６３から出力される２つのパルスの遅延時間は、基準パルスＴが時刻ｔ８及び時刻ｔ１２で生成されているため、それぞれｔ８〜ｔ１３の期間ｄjr及び時刻ｔ１４〜ｔ１２の期間ｄjr+1に相当する。
そして、比較器６３から出力されるパルス列ｚj の各パルスは、基本パルス生成ブロック５０の比較器５４から出力される各パルスｘ０をｚj だけ遅延させて生成したものである。したがって、パルス列ｚj の各パルスの遅延時間ｄj は、Ｎ（ｚj ，１）の正規分布に従う。
【０１２６】
そして、このパルス遅延ブロック６０からのパルス列ｚj がｊ番目のニューロン１０の出力信号として外部へ出力される。なお、本実施例の乗算ブロック２０が「乗算相当値算出手段」に相当し、加算ブロック３０が「加算手段」に相当し、非線形演算ブロック４０が「非線形演算手段」に相当し、基本パルス生成ブロック５０及びパルス遅延ブロック６０が「出力パルス列生成手段」に相当する。また、基本パルス生成ブロック５０が「基準パルス生成手段」及び「基本パルス列生成手段」に相当し、パルス遅延ブロック６０が「遅延手段」に相当する。
【０１２７】
そして、基本パルス生成ブロック５０のＬＦＳＲ５２が「一様乱数発生器」に相当し、加算器５３が「乱数加算手段」に相当し、比較器５４が「パルス出力手段」に相当する。
次に、本実施例のニューロン１０の発揮する効果を説明する。
【０１２８】
本実施例のニューロン１０を用いてニューラルネットワークを構成すれば、ディジタル回路を用いた場合のメリット、つまり、完全な並列処理が可能となると共に、温度特性や素子形成上のプロセスのばらつきによる影響を受けず、回路を形成することも比較的容易で、信頼性が高くなるというメリットを享受できる。
【０１２９】
しかも、本実施例のニューロン１０では、処理対象の信号値を各パルスの遅延時間を用いて表現する。その結果、以下に示すような効果を奏する。
上述した特開平７−１１５２４号公報に開示されるようにニューロンの信号にパルス密度を利用した場合は、興奮性結合と抑制性結合とを区別することができない。そのため、この技術では、結合係数の正負によって各結合を興奮性結合と抑制性結合の２つのグループに分けている。その結果、公報でいうところのシナプス回路と神経回路とが２系統の信号線で接続されることになっていた。
【０１３０】
これに対して、本発明では、パルスの遅延時間を用いたので、基準パルスに先行するパルスの遅延時間をマイナスと見なすことによって、興奮性結合と抑制性結合とを一の信号で表現することができる。したがって、本ニューロン１０を用いて階層型ネットワークを構成すれば、従来のようにパルス密度を用いた構成と比べて信号線を削減できる。特に、従来の装置におけるシナプス回路と神経回路との接続部分に相当する配線は半分になる。
【０１３１】
また、本実施例のニューロン１０では、正規分布の分布関数が飽和型の単調増加関数になることを利用しているため、非線形演算ブロック４０を図８に示すような一のカウンタ４１にて構成した。したがって、非線形演算を行う回路の面積が比較的小さくなるという点においても有利である。
【０１３２】
さらにまた、本実施例のニューロン１０では、二項分布の正規分布近似を利用することによって、乗算ブロック２０がいわゆる加算回路からなる乗算回路を用いることなく構成されている（図４参照）。これによって、本願出願人が乗算回路を用いて乗算ブロックを構成したときと回路面積を比較したところ、約１／１１の回路面積で乗算ブロック２０を構成することができ、ニューロン１０の回路面積が大幅に削減できる。
【０１３３】
また、本実施例のニューロン１０では、基本パルス生成ブロック５０にて、各パルスの遅延時間がＮ（０，１）の正規分布に従うパルス列を生成し、これをパルス遅延ブロック６０にて遅延させてニューロン１０の出力信号としてのパルス列を生成している。したがって、正規分布に従う遅延時間のパルスを有するパルス列を簡単に生成することができる。
【０１３４】
そして、基本パルス生成ブロック５０では、パルスの遅延時間がＮ（０，１）の正規分布に従うパルス列を生成するにあたり、一様乱数発生器であるＬＦＳＲ５２を用い（図１０参照）、中心極限定理を応用してパルス列を生成する。そのため、比較的簡単な回路構成でパルス列の生成が実現される。
【０１３５】
さらにこのとき、一様乱数Ｕ（０≦Ｕ＜１）を複数個足せば、その後、除算回路等を用いて加算値を除する必要が生じるが、図１０に示すように４つの一様乱数発生器５２からの乱数を足し合わせ、加算値データの下位２ビットを除くことによって除算を実行している。したがって、この点においても、除算回路を用いないことでニューロン１０の回路面積の縮小に寄与できる。
［第２実施例］
上記第１実施例のニューロン１０では、出力信号であるパルス列ｚj'の各パルスｚj が基準パルスＴに先行する場合があった。しかしながら、パルスｚj が必ず基準パルスに遅れて出力されるようニューロンを構成することもできる。
【０１３６】
本発明の特徴の一つは、上述したようにパルスの遅延時間を用い、興奮性結合と抑制性結合を一の信号で表現することであった。これは、パルスの遅延時間を用いれば、結合係数との乗算相当値が内部的にマイナス値として処理できるからである。そして、内部的にマイナス値として処理できれば十分である。したがって、ニューロン１００の信号であるパルスの遅延時間が常にプラスとなるように、すなわち基準パルスに遅れてパルスが発生するようにすることもできる。
【０１３７】
そこで、本第２実施例では、ニューロンへの入力信号及び出力信号を基準パルスに遅らせて発生させる構成を示す。
また、本第２実施例では、学習のための構成を付加したニューロンについて説明する。このため、本第２実施例のニューロンは、３層階層型のニューラルネットワークを構成するものとした。さらに、各ニューロン１０の内部で生成していた基準パルスＴをニューロンの外部で生成する構成を示す。
【０１３８】
本第２実施例のニューロンも、図１の模式図に示されるような、階層型（詳しくは３層階層型の）ニューラルネットワークの機能単位となるものであり、ニューロンに対する入出力信号は、上述したニューロン１０と同様となっている。したがって、各信号に対する説明は省略する。
【０１３９】
ただし、上述したように、図１中にニューロン内で発生するとした基準パルスは、ニューロン外部で生成される。また、ニューロン間の信号となるパルス列の各パルスが基準パルスに先行することはない。図２で言えば、例えば入力信号ｘ1 のパルスｓ11が基準パルスＴ1 よりも先行することはない。
【０１４０】
以下、第２実施例のニューロンについて詳細に説明する。
図１７は、本第２実施例のニューロン１００の機能ブロック図である。ニューロン１００は、乗算ブロック１２０と、加算ブロック１３０と、非線形演算ブロック１４０と、パルス生成ブロック１５０と、結合係数更新ブロック１６０を備えている。なお、基準パルス生成ブロック２００は、外部に設けられ、ニューラルネットワークを構成する各ニューロン１００に対し、所定の信号を供給する。
【０１４１】
上記第１実施例と同様に、入力信号ｘi の各パルスの遅延時間は、Ｎ（ｘi ，１）の正規分布に従っている。
まず乗算ブロック１２０では、ｍ個のパルスの遅延時間に基づき、入力信号ｘi に対応する結合係数ｗjiを用いて、Ｎ（ｗjiｘi ，１）の正規分布に従うｍ個の数値を算出する。結合係数ｗjiは、各乗算ブロック１２０毎に設けられたレジスタ（不図示）に記憶されている。次に加算ブロック１３０では、各乗算ブロック１２０にて算出された数値を順次加算する。この乗算ブロック１２０及び加算ブロック１３０での演算が、上記式１の演算に相当する。
【０１４２】
そして、非線形関数ブロック１４０では、加算ブロック１３０による加算値の中の正数値の個数を計数する。この非線形関数ブロック１４０での演算が、上記式２の演算に相当する。
パルス生成ブロック１５０は、各パルスの遅延時間が平均０の正規分布に従うパルス列を生成し、非線形演算ブロック１４０の演算結果に基づき、生成したパルス列の各パルスを遅延させた出力信号ｚj'を生成して、ニューロン１００の出力信号とする。
【０１４３】
また、ニューロン１００に対し外部から教師信号ｔが入力されると、結合係数更新ブロック１６０が、乗算ブロック１２０のレジスタに記憶された結合係数ｗjiを更新する。この結合係数更新ブロック１６０での演算が、上記式６及び７の演算に相当する。なお、結合係数更新ブロック１６０には各種信号が入力されるが、煩雑になることを避ける意味で図１７には示していない。結合係数更新ブロック１６０への入力信号については後述する。
【０１４４】
これら各ブロック１２０，１３０，１４０，１５０，１６０は、基準パルス生成ブロック２００からの信号に基づき動作する。なお、パルス列Ｔは、上記第１実施例と同様の基準パルスＴである。一方、パルス列Ｓは、所定数の基準パルスＴに対して出力されるものである。
【０１４５】
以上ニューロン１００を機能ブロック単位で大まかに説明した。次に、各ブロックについての構成及び動作を詳細に説明する。
最初に乗算ブロック１２０について説明する。
図１８は、乗算ブロック１２０の構成を示す回路図である。乗算ブロック１２０は、遅延時間計時部１２１、一様乱数発生器であるＬＦＳＲ１２２、反転スイッチ部１２３、比較器１２４、アップダウンスイッチ部１２５及びアップダウンカウンタ１２６を備えている。
【０１４６】
この乗算ブロック１２０は、上記第１実施例の乗算ブロック２０とほぼ同様の構成となっているため、ここでは異なる部分のみを説明する。
遅延時間計時部１２１は、ＳＲフリップフロップ（以下「ＳＲＦ／Ｆ」という。）１２１ａ及び２入力のＡＮＤゲート１２１ｂを備えている。
【０１４７】
また、ＳＲＦ／Ｆ１２１ａのリセット端子（Ｒ）へは入力信号ｘi が入力され、セット端子（Ｓ）へは基準パルスＴが入力されている。ＳＲＦ／Ｆの出力端子は、ＡＮＤゲート１２１ｂの一方の入力端子に結線されている。また、ＡＮＤゲート１２１ｂの他方の入力端子には、外部からのクロック信号（ＣＬＫ）が入力される。そして、ＡＮＤゲート１２１ｂの出力端子が、ＬＦＳＲ１２２のクロック端子に結線されている。
【０１４８】
ＬＦＳＲ１２２、反転スイッチ部１２３、比較器１２４、アップダウンスイッチ部１２５及びアップダウンカウンタ１２６は、基本的に上記第１実施例と同様に構成されている。ただし、結合係数ｗの最上位ビット［ｍ］が、反転スイッチ部１２３及びアップダウンスイッチ部１２５へ入力される。
【０１４９】
反転スイッチ部１２３は、結合係数ｗの最上位ビット［ｍ］が「０」であれば、スイッチを「０」側に切り換える。一方、最上位ビットｍが「１」であれば、スイッチを「１」側へ切り換える。結合係数ｗは、２の補数表現を用いて表現されており、スイッチが「１」側へ切り換えられると、反転ゲート１２３ａにて反転され絶対値として比較器１２４の入力端子（Ｒ）へ入力される。なお、この反転後、厳密には「１」を加算することが必要となるが、本実施例においても、ハードウェアの削減を図る意味で加算処理は省略している。
【０１５０】
また、アップダウンスイッチ部１２５は、結合係数ｗの最上位ビット［ｍ］が「０」であればスイッチを「０」側に切り換え、一方、「１」であればスイッチを「１」側に切り換える。これによって、結合係数ｗがマイナス値として２の補数表現で示されている場合にはダウンカウントすることになる。
【０１５１】
このように構成された乗算ブロック１２０の動作を図１８の回路図及び図１９のタイミングチャートに基づき説明する。
図１９に示すように時刻ｔ１で基準パルスＴがＳＲＦ／Ｆ１２１ａに入力されると、ＳＲＦ／Ｆ１２１ａの出力がＨレベルへ反転する。したがって、クロック信号ＣＬＫが、ＡＮＤゲート１２１ｂから出力される。その結果、ＬＦＳＲ１２２を動作させるクロック信号出力が開始される。
【０１５２】
その後、時刻ｔ２で入力信号ｘi のパルスがＳＲＦ／Ｆ１２１ａに入力されると、ＳＲＦ／Ｆ１２１ａの出力がＬレベルへ反転する。そのため、アンドゲート１２１ｂの出力がＬレベルに保持され、ＬＦＳＲ１２２を動作させるクロック信号出力が停止される。
【０１５３】
したがって、ＬＦＳＲ１２２へのクロック信号は、図１９中に示すように時刻ｔ１〜ｔ２の期間、すなわちパルスの遅延時間ｄirに応じて出力される。
また図１９に示すように、このとき結合係数ｗの符号はプラスであり、結合係数ｗ（レジスタｗ）＝６０であるとして、以下の説明を続ける。
【０１５４】
２の補数表現を用いた結合係数ｗがプラスの値であるとき、ｍ＋１ビット［ｍ：０］のレジスタの最上位ビット［ｍ］は「０」である。したがって、反転スイッチ部１２３は、スイッチを「０」側に切り換える。そのため、ｍ＋１ビットのレジスタの最上位ビット［ｍ］を除くｍビット［ｍ−１：０］の数値が比較器１２４のＲ端子へ入力される。
【０１５５】
また、結合係数の最上位ビットが「０」であるため、アップダウンスイッチ部１２５は、スイッチを「０」側へ切り換える。すなわち、比較器１２４からの出力がアップダウンカウンタ１２６のアップ側の端子へ入力されるようにスイッチを切り換える。
【０１５６】
ＬＦＳＲ１２２へのクロック信号は、時刻ｔ１〜ｔ２の期間に出力されることは上述した。図１９に示すように、時刻ｔ１〜ｔ２の期間にＬＦＳＲ１２２へのクロック信号が出力されている。ＬＦＳＲ１２２は、クロック信号としてのパルスが入力される毎に、ｍビット［ｍ−１：０］の乱数ｒを発生する。そして、この乱数ｒが比較器１２４のＬ端子に出力される。
【０１５７】
比較器１２４では、結合係数ｗ＞乱数ｒとなると、アップダウンカウンタ１２６へパルスを出力する。図１９では、結合係数ｗ＞乱数ｒとなったのが１５２回であったため、アップダウンカウンタ１２６は、「１５２」までカウントしている。
【０１５８】
一方、図１９に示す時刻ｔ３〜ｔ４の期間の動作も、上述した時刻ｔ１〜ｔ２の期間の動作と同様となる。ただし、結合係数ｗの符号がマイナスであり、結合係数ｗ（レジスタｗ）＝−１２となっているため、アップダウンスイッチ部１２５は、スイッチを「１」側へ切り換える。すなわち、比較器１２４からの出力がアップダウンカウンタ１２６のダウン側の端子へ入力されるようにスイッチを切り換える。
【０１５９】
そのため、遅延時間ｄir+1に応じたＬＦＳＲ１２２へのクロック信号によって乱数ｒが生成され、比較器１２４によるパルス出力によってアップダウンカウンタ１２６は、「０」→「−１」→「−２」→「−３」とカウントする。図１９では、アップダウンカウンタ１２６は「−２１」までカウントしている。
【０１６０】
これによって、結合係数がマイナス値である場合は、この乗算ブロック１２０にて遅延時間がマイナスの数値に変換されたことになる。
ここで、この乗算ブロック１２０のアップダウンカウンタ１２６の出力値の集合、すなわち、遅延時間ｄirに対応する「１５２」、遅延時間ｄir+1に対応する「−２１」という数値の分布は、Ｎ（ｗｘ，１）の正規分布となる。これは上記第１実施例と同様、乗算ブロック１２０が、二項分布の正規分布近似を応用したものだからである。
【０１６１】
続いて加算ブロック１３０について説明する。
図２０は、加算ブロック１３０の構成を示す回路図である。加算ブロック１３０は、加算器１３１、符号検出部１３２及びゼロ検出部１３３を備えている。
加算器１３１は、ｎ＋５ビット［ｎ＋４：０］である。この加算器１３１には、各乗算ブロック１２０のアップダウンカウンタ１２６からの出力値ｗ・ｘが出力される。図１７に示す各乗算ブロック１２０からの出力値をｗ1 ・ｘ1 ，ｗ2 ・ｗ2 ，ｗ3 ・ｘ3 と記述する。出力値ｗ・ｘは、２の補数表現にて示されるため、最上位ビット［ｎ＋２］は符号ビットとなっている。
【０１６２】
符号検出部１３２は、反転ゲート１３２ａ、フリップフロップ（以下「Ｆ／Ｆ」という。）１３２ｂ及び２入力のＡＮＤゲート１３２ｃを備えている。
反転ゲート１３２ａには、加算器１３１の最上位ビット［ｎ＋２］が入力される。反転ゲート１３２ａの出力端子は、Ｆ／Ｆ１３２ｂの入力端子へ結線されている。また、Ｆ／Ｆ１３２ｂのクロック端子へは、基準パルスＴが入力される。基準パルスＴは、ＡＮＤゲート１３２ｃの一方の入力端子にも入力される。そして、Ｆ／Ｆ１３２ｂの出力端子がＡＮＤゲート１３２ｃの他方の入力端子へ接続されている。そして、ＡＮＤゲート１３２ｃの出力がパルス信号ｓｉｇｎΣとして外部へ出力される。ここでＡＮＤゲート１３２ｃの出力は、加算器１３１の加算結果の符号となる。なお、上記第１実施例における符号検出部３２（図６参照）では、Ｆ／Ｆ３２ｂのクロック端子へ外部からのクロック信号ＣＬＫを入力する構成となっていたが、出力される信号は同じになる。
【０１６３】
ゼロ検出部１３３は、上記第１実施例にない構成である。これは加算器１３１の加算結果がほぼ「０」に等しくなったことを検出するための構成であり、後述する学習制御に用いられるパルス信号を生成するものである。ゼロ検出部１３３は、ｎ＋２入力のＡＮＤゲート１３３ａ、ｎ＋２入力のＮＡＮＤゲート１３３ｂ、２入力のＯＲゲート１３３ｃ、Ｆ／Ｆ１３３ｄ及び２入力のＡＮＤゲート１３３ｅを備えている。
【０１６４】
ＡＮＤゲート１３３ａ及びＮＡＮＤゲート１３３ｂのｎ＋２の入力端子には、加算器１３１の上位ｎ＋２ビット［ｎ＋４：３］が入力される。これら両ゲート１３３ａ，１３３ｂの出力端子は、ＯＲゲート１３３ｃの２つの入力端子にそれぞれ接続されている。そして、ＯＲゲート１３３ｃの出力端子が、Ｆ／Ｆ１３３ｄの入力端子へ結線されている。また、Ｆ／Ｆ１３３ｄのクロック端子及び２入力のＡＮＤゲート１３３ｅの一方の入力端子には基準パルスＴが入力され、さらに、ＡＮＤゲート１３３ｅの他方の入力端子へＦ／Ｆ１３３ｄの出力端子が結線されている。
【０１６５】
以上のように構成された加算ブロック１３０の動作を、図２０の回路図及び図２１のタイミングチャートに基づき説明する。
加算器１３１には、上述したように各乗算ブロック１２０からの出力値ｗ・ｘが入力される。加算器１３１では、各乗算ブロック１２０から時系列に出力される数値列の同列のものを加算する。図２１に「加算器」と示した欄を参照されたい。
【０１６６】
図２０に示したように、加算器１３１の最上位ビット［ｎ＋４］は符号検出部１３２へ入力される。加算器１３１の最上位ビットは、反転ゲート１３２ａを介してＦ／Ｆ１３２ｂに入力される。したがって、加算結果がプラスであればＦ／Ｆ１３２ｂの出力端子がＨレベル「１」となり、逆に加算結果がマイナスであればＦ／Ｆ１３２ｂの出力端子がＬレベル「０」となる。そして、基準パルスが入力されると、Ｆ／Ｆ１３２ｂの出力がＡＮＤゲート１３２ｃの出力となる。
【０１６７】
つまり、図２１中に黒の矢印で示すように、時刻ｔ５直前では加算器１３１の加算結果が「４１０」（プラス）であるため、時刻ｔ５で基準パルスが入力されると、ＡＮＤゲート１３２ｃから加算結果Σｗ・ｘがプラスであることを示すパルスが出力される。一方、時刻ｔ６直前では加算器１３１の加算結果がマイナス（−７）であるため、時刻ｔ６で基準パルスが入力されても、ＡＮＤゲート１３２ｃからパルスは出力されない。
【０１６８】
また、ゼロ検出部１３３では、加算器の上位ｎ＋２ビットが全て「０」又は「１」となったときに、ＯＲゲート１３３ｃの出力が「１」となる。これは、加算結果の絶対値が「７」以下になった場合である。
ＯＲゲート１３３ｃの出力がＦ／Ｆ１３３ｄの出力となり、基準パルスが入力されると、Ｆ／Ｆ１３３ｄの出力がＡＮＤゲート１３３ｅの出力となる。したがって、図２１では、時刻ｔ６直前で加算器１３１の加算結果が「−７」であるため、時刻ｔ６にてパルスが出力される。
【０１６９】
続いて非線形演算ブロック１４０について説明する。
図２２は、非線形演算ブロック１４０の構成を示す回路図である。非線形演算ブロック１４０は、ｎ＋１ビット［ｎ：０］のカウンタ１４１及びｎ＋１ビット［ｎ：０］のレジスタ１４２を備えている。このカウンタ１４１の入力端子には、上述した加算ブロック１３０の符号検出部１３２からパルス信号ｓｉｇｎΣが入力される。この信号は上述したように、基準パルスが加算ブロック１３０へ入力された時点で加算ブロック１３０の加算結果が正数値であれば、出力される。
【０１７０】
したがって、カウンタ１４１では、加算結果の中の正数値の個数が計数されることになる。カウンタ１４１のカウント値であるｎ＋１ビット［ｎ：０］の数値は、レジスタ１４２のクロック信号となるパルスＳが入力されたタイミングでレジスタ１４２に保持され、非線形演算ブロック１４０の出力値ｚj となる。
【０１７１】
上述した加算ブロック１３０における加算値の分布がＮ（Σｗjiｘi ，１）の正規分布となるのは上記第１実施例と同じである。すなわち、加算値の分布は、図９に示す如くとなり、非線形演算ブロック１４０のレジスタ１４２の出力値ｚj は、図９中の加算値（各Ｔからの遅延時間）の中の正数値の個数に相当し、ハッチングを施した領域に相当する。
【０１７２】
以上のように構成された非線形演算ブロック１４０の動作を、図２２の回路図及び図２３のタイミングチャートに基づき説明する。
本実施例では、後述する基準パルス生成ブロック２００から、２５６の基準パルスＴに対して１つのパルスＳが出力される。基準パルスに説明上「０」，「１」，「２」，・・・，「２５５」という番号を付けると、図２３に示すように、パルスＳは「０」番目の基準パルスＴの直前のタイミングで出力される。したがって、「０」番目の基準パルスから「２５５」番目までの基準パルスに対応するパルス信号ｓｉｇｎΣのパルスをカウントしたものが出力値ｚj となる。例えば図２３では、時刻ｔ７においてパルスＳが入力された時点のカウンタ１４１のカウント値「１８９」がレジスタ１４２に保持されて出力値ｚj となっている。また、時刻ｔ８においてパルスＳが入力された時点のカウンタ１４１のカウント値「２００」がレジスタ１４２に保持されて出力値ｚj となっている。
【０１７３】
なお、本第２実施例において非線形演算ブロック１４０は、カウンタ１４１と共にレジスタ１４２を備える構成とし、パルスＳの入力タイミングでカウント値を保持するようにした。これは非線形演算ブロック１４０の出力値ｚj を明確に示すためであり、上記第１実施例の非線形演算ブロック４０（図８参照）と同様に、非線形ブロック１４０をカウンタ１４１だけで構成し、カウント値をそのまま出力するようにしてもよい。
【０１７４】
続いて基準パルス生成ブロック２００について説明する。
図２４は、基準パルス生成ブロック２００の構成を示す回路図である。基準パルス生成ブロック２００は、２ｎ＋３ビット［２ｎ＋２：０］のカウンタ２０１、Ａｌｌ０検出部２０２及びＡｌｌ１検出部２０３を備えている。
【０１７５】
カウンタ２０１のクロック信号として、外部からのクロック信号（ＣＬＫ）が入力される。したがってカウンタ２０１は、クロック信号（ＣＬＫ）に同期し、「０」から「２2n+3−１」までのカウントを繰り返す。
Ａｌｌ０検出部２０２は、ｎ＋２入力の反転ゲート２０２ａ及び２入力のＡＮＤゲート２０２ｂで構成されている。反転ゲート２０２ａのｎ＋２本の入力端子には、カウンタ２０１の下位ｎ＋２ビット［ｎ＋１：０］がそれぞれ入力される。そして、反転ゲート２０２ａの出力端子が、ＡＮＤゲート２０２ｂの一方の入力端子へ結線されている。また、ＡＮＤゲート２０２ｂの他方の入力端子には、外部クロック信号（ＣＬＫ）が入力される。したがって、反転ゲート２０２ａの出力は、カウンタ２０１の下位ｎ＋２ビット［ｎ＋１：０］が全て「０」となったときに「１」となる。この反転ゲート２０２ａの出力は、外部クロック信号（ＣＬＫ）の入力タイミングでＡＮＤゲート２０２ｂから出力される。このＡｌｌ０検出部２０２からの信号が上述した基準パルスＴである。
【０１７６】
一方、Ａｌｌ１検出部２０３は、２ｎ＋４入力のＡＮＤゲート２０３ａで構成されている。ＡＮＤゲート２０３ａの２ｎ＋４本の入力端子には、カウンタ２０１の２ｎ＋３ビット［２ｎ＋２：０］がそれぞれ入力されると共に、外部クロック信号（ＣＬＫ）が入力される。したがって、ＡＮＤゲート２０３ａの出力は、外部クロック信号（ＣＬＫ）の入力タイミングで、カウンタ２０１の２ｎ＋３ビットが全て「１」となったときに「１」となる。このＡｌｌ１検出部２０３からの信号が上述したパルスＳである。
【０１７７】
次にパルス生成ブロック１５０について説明する。
図２５は、パルス生成ブロック１５０の構成を示す回路図である。パルス生成ブロック１５０は、一様乱数発生器である４つのＬＦＳＲ１５１、第１の加算器１５２、第２の加算器１５３及び比較器１５４を備えている。
【０１７８】
４つの各ＬＦＳＲ１５１のクロック端子は、基準パルスＴが入力される。ＬＦＳＲ１５１は、クロック端子へパルスが入力されると、ｎ＋１ビット［ｎ：０］の乱数を生成する。したがって、ｎ＝７であれば、各ＬＦＳＲ１５１にて１〜２２５（２8 −１）の範囲の数値がランダムに生成される。
【０１７９】
各ＬＦＳＲ１５１にて生成された乱数は、第１の加算器１５２にて加算される。そして、第１の加算器１５２の上位ｎ＋１ビット［ｎ＋２：２］と、非線形演算ブロック１４０の出力値ｚj とが、第２の加算器１５３にて加算される。そして、第２の加算器１５３のｎ＋２ビット［ｎ＋１：０］の加算結果が、比較器１５４の一方の入力端子へ出力される。比較器１５４の他方の入力端子へは、基準パルス生成ブロック２００（図２４参照）のカウンタ２０１の下位ｎ＋２ビット［ｎ＋１：０］が入力される。比較器１５４は、両方の入力端子へ入力されたｎ＋２ビットの数値が一致するとパルスを出力する。この比較器１５４からの信号が出力信号ｚj'である。
【０１８０】
このような構成を有するパルス生成ブロック１５０の動作を、図２５の回路図及び図２６のタイミングチャートに基づいて説明する。なお、図２６に示したタイミングチャートは、図１０中の回路図におけるｎが「７」である場合を示している。したがって、ｎ＝７として以下の説明を続ける。
【０１８１】
ｎ＋２ビットのカウント値（Ｃｏｕｎｔ）が「０」となると（図２６中の時刻ｔ９，ｔ１１）、基準パルスＴが入力されるため、４つの各ＬＦＳＲ１５１にて１〜２５５の乱数が出力され、第１の加算器１５２に入力される。したがって、第１の加算器１５２による加算値は４〜１０２０（＝２５５×４）のランダムな数値となるが、第１の加算器１５２の出力は上位８ビット［９：２］であるため、第２の加算器１５３へは、１〜２５５までのランダムな数値が入力される。つまり、加算値を４で除した値が加算結果として第２の加算器１５３へ入力される。このランダムな数値の分布は、上述したように中心極限定理によって正規分布に従うものとなる。
【０１８２】
例えば図２６では、第１の加算器１５２による加算結果を４で除した値が時刻ｔ９では「１２６」となり、時刻ｔ１１では「８６」となった様子が示されている。このとき、非線形演算ブロック１４０の出力値ｚj は「２００」となっている。したがって、時刻ｔ９では第２の加算器１５３の加算結果が「３２６」となり、時刻ｔ１１では第２の加算器１５３の加算結果が「２８６」となる。この加算結果がそれぞれ、比較器１５４の一方の入力端子へ出力される。
【０１８３】
比較器１５４の他方の入力端子へは、０〜５１１のカウント値（Ｃｏｕｎｔ）が入力される。したがって、カウント値（Ｃｏｕｎｔ）が「３２６」となった時点（図２６中の時刻ｔ１０）で比較器１５４からパルスが出力される。また、カウント値（Ｃｏｕｎｔ）が「２８６」となった時点（時刻ｔ１２）で比較器１５４からパルスが出力される。
【０１８４】
したがって、時刻ｔ１０において比較器１５４から出力されるパルスは、時刻ｔ９にて出力される基準パルスＴから時間ｄjr（３２６クロック分）だけ遅延したものとなる。また、時刻ｔ１２において比較器１５４から出力されるパルスｚj'は、時刻１１で出力される基準パルスＴから時間ｄjr+1（２８６クロック分）だけ遅延したものとなる。
【０１８５】
比較器１５４の出力である各パルスの各基準パルスＴからの遅延時間の平均をｚj とすれば、この遅延時間の分布は、Ｎ（ｚj ，１）の正規分布に従う。
これは上記第１実施例で説明した通り、分布が有限な乱数を多数加えると、中心極限定理により正規分布に近づくからである。そのため、本実施例において、加算器１５２による加算結果の分布は、正規分布にほぼ従う。さらに、この加算結果の正規分布に非線形演算ブロック１４０の出力値ｚj を加えることで、ｚj 分だけパルスを遅延させている。したがって、パルス列ｚj'の各パルスの遅延時間ｄj は、Ｎ（ｚj ，１）の正規分布に従うことになる。
【０１８６】
そして、このパルス生成ブロック１５０からのパルス列ｚj'がｊ番目のニューロン１００の出力信号として外部へ出力される。
例として図２５に示したパルス生成ブロック１５０における出力パルス列ｚj'の発生分布を図３１に示す。横軸は入力値ｚj を表し、縦軸はｚj'の発生分布を示している。図３１はｚj ＝２００、パルス数２００００、ｎ＝７の場合であり、図３１からは、発生分布がｚj ＋（２n −１）を平均値とする正規分布をなすことが分かる。
【０１８７】
なお、上記第１実施例では、図３に示した基本パルス生成ブロック５０にてＮ（０，１）の正規分布に従うパルス列ｘ０を生成し、パルス遅延ブロック６０にて、そのパルス列ｘ０を非線形ブロック４０の結果ｚj に従い遅延させて、パルス列ｚj'を生成していた。このような処理を、本実施例では、パルス生成ブロック１５０にてまとめて行うようにした。
【０１８８】
続いて、結合係数更新ブロック１６０について説明する。なお、上述した本ニューロン１００は、図１５に例示した中間層の構成単位となるｊ番目のニューロンであるとして説明してきた。ただし、結合係数更新ブロック１６０に入力される信号は、ニューロン１００が中間層の構成単位となる場合と出力層の構成単位となる場合とで異なる。したがって、この結合係数更新ブロック１６０の説明に限り、中間層のｊ番目のニューロン１００（以下「ニューロンｊ」という。）の備える結合係数更新ブロック１６０の動作と、出力層のｋ番目のニューロン１００（以下「ニューロンｋ」という。）の備える結合係数更新ブロック１６０の動作とを分けて説明する。また、以下の説明において、入力層のｉ番目のニューロンをニューロンｉと記述する。
【０１８９】
最初に結合係数更新ブロック１６０の構成を説明する。
結合係数更新ブロック１６０は、Ａ〜Ｅの５つの乗算器１６１，１６２、ｎ＋１ビット［ｎ：０］のカウンタ１６３、比較器１６４、反転スイッチ部１６５、反転ゲート１６６、及び減算器１６７を備えている。なお、Ａ〜Ｅの５つの乗算器１６１，１６２の構成については後述するが、Ａ〜Ｄの４つの乗算器１６１は同様の構成となっているため同一の符号を用いて示した。
【０１９０】
Ａ乗算器１６１には、ニューロンｋの結合係数ｗk とニューロンｊの加算ブロック１３０から出力されるパルス信号ｚｅｒｏΣj が入力される。Ａ乗算器１６１のｎ＋２ビット［ｎ＋１：０］の出力端子は、Ｂ乗算器１６１の一方の入力端子に結線されている。そして、Ｂ乗算器１６１の他方の入力端子には、ニューロンｉからの出力信号ａを表すパルス信号が入力される。そして、Ｂ乗算器１６１のｎ＋３ビット［ｎ＋２：０］の出力データは、Ｅ乗算器１６２の一方の入力端子に入力されている。また、Ｂ乗算器１６１の出力データの最上位ビット［ｎ＋２］が符号ビットとしてＥ乗算器１６２へ入力されている。
【０１９１】
また、カウンタ１６３のクロック端子には、基準パルスＴが入力される。そして、基準パルスＴに基づくカウンタ１６３のカウント値が比較器１６４の一方の入力端子（Ｃ）へ入力される。
減算器１６７には、ｎ＋１ビット［ｎ：０］の教師信号ｔと、ニューロンｋの非線形演算ブロック１４０からの非線形演算値ｚk が入力される。減算器１６７の出力端子は、Ｃ乗算器１６１の一方の入力端子に結線されている。そして、Ｃ乗算器１６１の他方の入力端子には、ニューロンｋの加算ブロック１３０からのパルス信号ｚｅｒｏΣk が入力される。Ｃ乗算器１６１のｎ＋２ビット［ｎ＋１：０］の出力端子は、Ｄ乗算器１６１の一方の入力端子に結線されると共に、反転スイッチ部１６５を介して、上述した比較器１６４の他方の入力端子（Ｓ）に結線されている。また、Ｃ乗算器１６１の出力データの最上位ビット［ｎ＋１］が反転スイッチ部１６５及びＥ乗算器１６２に入力される。また、上述したＤ乗算器１６１の他方の入力端子には、ニューロンｊの加算ブロック１３０からのパルス信号ｓｉｇｎΣj が入力されている。
【０１９２】
反転スイッチ部１６５は、Ｃ乗算器１６１の出力データの最上位ビット［ｎ＋１］が「０」（プラス）であれば、スイッチを「０」側に切り換える。一方、最上位ビットが「１」（マイナス）であれば、スイッチを「１」側に切り換える。スイッチが「１」側に切り換えられると、Ｃ乗算器１６１からの出力データは、反転ゲート１６６にて反転されて、比較器１６４へ入力される。つまり、比較器１６４へは、Ｃ乗算器１６１の出力データの絶対値が入力されることになる。なお、上述した乗算ブロック１２０と同様に、厳密にはビットを反転した後に「１」を加算する必要があるが、回路削減のために加算処理はしていない。
【０１９３】
上述したように比較器１６４の一方の入力端子（Ｃ）には、カウンタ１６３のカウント値が入力される。そして、比較器１６４は、Ｃ乗算器１６１からの出力データの絶対値がカウンタ１６３のカウント値よりも大きくなると（入力端子Ｓ＞入力端子Ｃ）、パルス信号をＥ乗算器１６２の他方の入力端子へ出力する。
【０１９４】
Ｅ乗算器１６２は、ニューロンｊの結合係数ｗj の更新データΔｗj を出力する。一方、Ｄ乗算器１６１は、ニューロンｋの結合係数ｗk の更新データΔｗk を出力する。その後、ここには図示していないが、結合係数更新ブロック１６０内の回路にて、更新データ量Δｗが結合係数ｗに加算されて結合係数ｗが更新される。
【０１９５】
次に、Ａ〜Ｄの乗算器１６１の構成を図２８に基づいて、また、Ｅ乗算器１６２の構成を図２９に基づいて説明する。
Ａ〜Ｄの乗算器１６１もＥ乗算器１６２も、基本的に上述した乗算ブロック１２０と同様に、一様乱数発生器であるＬＦＳＲ、反転スイッチ部、比較器、アップダウンスイッチ部、及びアップダウンカウンタを中心に構成されている。そして、それらの結線も同様であり、反転スイッチ部を介して入力されるデータの絶対値とＬＦＳＲの出力データとが比較器へ入力される。そして、比較器の出力が、アップダウンスイッチ部を介してアップダウンカウンタへ入力されアップカウントあるいはダウンカウントされる。
【０１９６】
乗算器１６１，１６２は、２つの信号の乗算を行うのであるが、一方の信号は信号値をパルス信号に変換した形式で（図２８，２９中に「ｐｕｌｓｅ」と示した）入力される。そして、二項分布の正規分布近似を応用した乗算を行う。
Ａ〜Ｄの乗算器１６１とＥ乗算器１６２の違いは、パルス信号（「ｐｕｌｓｅ」）の符号を考慮するか否かの点である。Ａ〜Ｄの乗算器では、図中に「ｖａｌｕｅ」として示した一方の入力信号のみがマイナス値をとり得るため、アップダウンスイッチ部は、この入力信号の最上位ビットが「０」であるか「１」であるかによってスイッチを「０」側又は「１」側に切り換える。一方、Ｅ乗算器１６２では、２つの入力信号のそれぞれがマイナス値をとり得るため、ＸＯＲゲートを備えており、入力信号の最上位ビットが共に「０」又は「１」の場合にスイッチを「０」側に切り換え、そうでない場合にスイッチを「１」側に切り換える。
【０１９７】
そして、乗算器１６１，１６２のアップダウンカウンタのカウント値は、図示しない外部からのパルス信号Ｓが入力されるタイミングでレジスタに保持されて出力データ（「ｒｅｓｕｌｔ」）となる。
以上のように構成された結合係数更新ブロック１６０の動作を、図２７の回路図及び図３０のタイミングチャートに基づき説明する。
【０１９８】
図３０では、１層目のニューロン（厳密にはニューロンでない）の出力信号をａとして示し、２層目のニューロンｊの加算ブロック１３０からのパルス信号をｚｅｒｏΣ1 ，ｓｉｇｎΣ1 、非線形ブロック１４０による非線形演算値をｚ1 として示した。また、３層目のニューロンｋの加算ブロック１３０からのパルス信号をｚｅｒｏΣ3 ，ｓｉｇｎΣ3 、非線形ブロック１４０の非線形演算値をｚ3 として示した。さらに、ニューロンｊとニューロンｋの結合係数をｗ31と示した。
【０１９９】
▲１▼  ニューロンｊの場合
この場合は、図２７に示す最下段の信号ｓｉｇｎΣj を除く信号、すなわち、ニューロンｋの結合係数ｗk 、ｚｅｒｏΣj 、ニューロンｉの出力データａを表すパルス信号、基準パルスＴ、教師信号ｔ、ニューロンｋの非線形演算値ｚk 及びニューロンｋの加算ブロック１３０からのパルス信号ｚｅｒｏΣk が入力される。
【０２００】
これは、図３０中の結合係数ｗ31、ｚｅｒｏΣ1 、ａを表すパルス信号、基準パルスＴ、教師信号ｔ、非線形演算値ｚ3 、ｚｅｒｏΣ3 にそれぞれ対応している。
Ａ乗算器１６１には、結合係数ｗ31及びパルス信号ｚｅｒｏΣ1 が入力される。したがって、時刻ｔ１３では、Ａ乗算器１６１のレジスタにデータｚｅｒｏΣ1 ×ｗ31が保持される。これによって、Ｂ乗算器１６１には、ｚｅｒｏΣ1 ×ｗ31が出力される。そして、その後、ａを表すパルス信号がＢ乗算器１６１に入力され、時刻ｔ１５にて、Ｂ乗算器１６１のレジスタにａ×ｚｅｒｏΣ1 ×ｗ31が保持される。その結果、Ｅ乗算器１６２には、ａ×ｚｅｒｏΣ1 ×ｗ31が出力されることになる。
【０２０１】
一方、ニューロンｋの加算ブロック１３０からのパルス信号ｓｉｇｎΣ3 に基づき、非線形演算ブロック１４０にて非線形演算値ｚ3 が算出されると（時刻ｔ１４）、減算器１６７の出力は、ｔ−ｚ3 となる。そして、ｚｅｒｏΣ3 もｓｉｇｎΣ3 と同一のタイミングで加算ブロック１３０から出力されるため、時刻ｔ１５にてＣ乗算器１６１のレジスタには、ｚｅｒｏΣ3 ×（ｔ−ｚ3 ）が保持される。Ｃ乗算器１６１のレジスタの値は、比較器１６４にてパルス信号に変換されてＥ乗算器１６２へ入力される。
【０２０２】
そして、Ｂ乗算器１６１の出力データａ×ｚｅｒｏΣ1 ×ｗ31と、Ｃ乗算器１６１の出力データｚｅｒｏΣ3 ×（ｔ−ｚ3 ）とが、Ｅ乗算器１６２にて掛け合わされる。したがって、時刻ｔ１６において、Ｅ乗算器１６２のレジスタにデータａ×ｚｅｒｏΣ1 ×ｗ31×ｚｅｒｏΣ3 ×（ｔ−ｚ3 ）が保持される。このデータが、Ｅ乗算器１６２の出力データΔｗ11であり、上記式５に対応したものとなっている。結合係数更新ブロック１６０は、このΔｗ11を用い、結合係数ｗ11を更新する。
【０２０３】
▲２▼  ニューロンｋの場合
この場合は、図２７の下段に示す教師信号ｔ、ニューロンｋの非線形演算値ｚk 、ニューロンｋの加算ブロック１３０からのパルス信号ｚｅｒｏΣk 及びニューロンｊの加算ブロック１３０からのパルス信号ｓｉｇｎΣj が入力される。
【０２０４】
これは、図３０中の教師信号ｔ、非線形演算値ｚ3 、ｚｅｒｏΣ3 、ｓｉｇｎΣ1 にそれぞれ対応している。
ニューロンｋの加算ブロック１３０からのパルス信号ｓｉｇｎΣ3 に基づき、非線形演算ブロック１４０にて非線形演算値ｚ3 が算出されると（時刻ｔ１４）、減算器１６７の出力は、ｔ−ｚ3 となる。そして、ｚｅｒｏΣ3 もｓｉｇｎΣ3 と同一のタイミングで加算ブロック１３０から出力されるため、時刻ｔ１５にてＣ乗算器１６１のレジスタには、ｚｅｒｏΣ3 ×（ｔ−ｚ3 ）が保持される。Ｃ乗算器１６１のレジスタの値は、Ｄ乗算器１６１へ入力される。
【０２０５】
そして、ｓｉｇｎΣ1 と、Ｃ乗算器１６１の出力データｚｅｒｏΣ3 ×（ｔ−ｚ3 ）とが、Ｄ乗算器１６１にて掛け合わされる。したがって、時刻ｔ１６において、Ｄ乗算器１６１のレジスタにデータｓｉｇｎΣ1 ×ｚｅｒｏΣ3 ×（ｔ−ｚ3 ）が保持される。このデータが、Ｄ乗算器１６１の出力データΔｗ31であり、上記式４に対応したものとなっている。その後、結合係数更新ブロック１６０は、このΔｗ31を用い、結合係数ｗ31を更新する。
【０２０６】
なお、上記式４はニューロンｊの出力信号ｚj （本実施例で言えばパルス列ｚj'）を用いた式となっているが、ニューロンｊの出力信号であるパルス列ｚj'と、ニューロンｊの加算ブロック１３０からのパルス列ｓｉｇｎΣj は、同一の平均遅延時間を有するパルス列であるため、同様に用いることができる。本実施例では、更新タイミング等を考慮してｓｉｇｎΣj （ｓｉｇｎΣ1 ）を用いた。
【０２０７】
なお、本実施例の乗算ブロック１２０が「乗算相当値算出手段」に相当し、加算ブロック１３０が「加算手段」及び「微分相当値算出手段」に相当し、非線形演算ブロック１４０が「非線形演算手段」に相当し、パルス列生成ブロック１５０が「出力パルス列生成手段」に相当し、結合係数更新ブロック１６０が「出力層用学習使用値算出手段」、「中間層用学習使用値算出手段」、及び「結合係数更新手段」に相当する。
【０２０８】
次に、本実施例のニューロン１００の発揮する効果を説明する。
本実施例のニューロン１００を用いて３層階層型のニューラルネットワークを構成すれば、上記第１実施例のニューロン１０を用いて構成する場合と同様の効果が得られることは言うまでもない。
【０２０９】
すなわち、完全な並列処理が可能となると共に、温度特性や素子形成上のプロセスのばらつきによる影響を受けず、回路を形成することも比較的容易で、信頼性が高くなるというメリットを享受できる。しかも、処理対象の信号値を各パルスの遅延時間を用いて表現する。その結果、遅延時間をマイナスと見なすことによって、興奮性結合と抑制性結合とを一の信号で表現することができる。したがって、従来のようにパルス密度を用いた構成と比べて信号線を削減できる。特に、従来の装置におけるシナプス回路と神経回路との接続部分に相当する配線は半分になる。
【０２１０】
また、本実施例のニューロン１００でも、正規分布の分布関数が飽和型の単調増加関数になることを利用しているため、非線形演算ブロック１４０は、図２２に示すようなカウンタ１４１及びレジスタ１４２にて構成できる。したがって、非線形演算を行う回路の面積が比較的小さくなるという点で有利である。
【０２１１】
さらにまた、本実施例のニューロン１００でも、二項分布の正規分布近似を利用することによって、乗算ブロック１２０がいわゆる加算回路からなる乗算回路を用いることなく構成されている（図１８参照）。これによって、上記第１実施例と同様に、約１／１１の回路面積で乗算ブロック１２０を構成することができる。また、本実施例では、入力信号であるパルス列の各パルスが基準パルスよりも遅れて発生することを前提とした。したがって、上記第１実施例の乗算ブロック２０の遅延時間計時部２１と比較すると、本実施例の遅延時間計時部１２１は、さらに構成が簡単になっている。
【０２１２】
そして、結合係数更新ブロック１６０のＡ〜Ｅの乗算器１６１，１６２も、二項分布の正規分布近似を利用することによって、いわゆる加算回路からなる乗算回路を用いることなく構成されている（図２８、図２９参照）。これによって、結合係数更新ブロック１６０は、５つの乗算器１６１，１６２を備える構成となるにもかかわらず、回路面積が極端に小さくなる。
【０２１３】
このような乗算ブロック１２０及び結合係数更新ブロック１６０の構成における乗算の工夫によって、ニューロン１００の回路面積は大幅に削減できる。
また、本実施例のニューロン１００でも、パルス生成ブロック１５０にて、各パルスの遅延時間が正規分布に従うパルス列を生成し、これをパルスを遅延させてニューロン１００の出力信号としてのパルス列を生成している。したがって、正規分布に従う遅延時間を有するパルス列を簡単に生成することができる。
【０２１４】
さらに、パルス生成ブロック１５０では、パルスの遅延時間が正規分布に従うパルス列を生成するにあたり、一様乱数発生器であるＬＦＳＲ１５１を用い（図２５参照）、中心極限定理を応用してパルス列を生成する。そのため、比較的簡単な回路構成でパルス列の生成が実現される。
【０２１５】
このとき、一様乱数Ｕ（０≦Ｕ＜１）を複数個足せば、その後、除算回路等を用いて加算値を除する必要が生じるが、図２５に示すように４つの一様乱数発生器１５１からの乱数を足し合わせ、加算値データの下位２ビットを除くことによって除算を実行している。したがって、この点においても、除算回路を用いないことでニューロン１００の回路面積の縮小に寄与できる。
【０２１６】
また、本実施例のニューロン１００は、図２７に示したような結合係数更新ブロック１６０にて結合係数ｗを更新するためのΔｗを、教師信号ｔに基づいて計算する。したがって、ニューロン１００自らが、出力信号に基づく学習を行うことができる。そして、結合係数更新ブロック１６０は、入力信号によって、出力層の結合係数ｗk の更新データΔｗk 又は中間層の結合係数ｗj の更新データΔｗj のいずれをも計算可能である。したがって、ニューロン１００は、出力層の構成単位とも、また、中間層の構成単位ともなり得、ニューロン１００の量産を考えた場合に有利である。
［その他］
上記第２実施例では、結合係数更新ブロック１６０を、入力信号によって出力層の結合係数ｗk の更新データΔｗk 、中間層の結合係数ｗj の更新データΔｗj のいずれをも計算可能としたが、どちらか一方の更新データΔｗを計算可能な構成としてもよい。この場合、出力層のニューロンと中間層のニューロンとが別個の構成となり、量産という観点からは幾分不利ではあるが、ニューラルネットワークの回路面積を削減するという点では有効となる。
【図面の簡単な説明】
【図１】  実施例のニューロンの模式図である。
【図２】  遅延時間を示す説明図である。
【図３】  第１実施例のニューロンを示す機能ブロック図である。
【図４】  第１実施例の乗算ブロックの構成を示す回路図である。
【図５】  第１実施例の乗算ブロックの動作を示すタイミングチャートである。
【図６】  第１実施例の加算ブロックの構成を示す回路図である。
【図７】  第１実施例の加算ブロックの動作を示すタイミングチャートである。
【図８】  第１実施例の非線形演算ブロックの構成を示す回路図である。
【図９】  加算値の数学的な意味を示すための説明図である。
【図１０】  基本パルス生成ブロックの構成を示す回路図である。
【図１１】  基本パルス生成ブロックの動作を示すタイミングチャートである。
【図１２】  乱数に基づき生成されるパルスの遅延時間の分布を示す説明図である。
【図１３】  パルス遅延ブロックの構成を示す回路図である。
【図１４】  パルス遅延ブロックの動作を示すタイミングチャートである。
【図１５】  階層型ニューラルネットワークを説明するための模式図である。
【図１６】  一般的なニューロンを説明するための模式図である。
【図１７】  第２実施例のニューロンを示す機能ブロック図である。
【図１８】  第２実施例の乗算ブロックの構成を示す回路図である。
【図１９】  第２実施例の乗算ブロックの動作を示すタイミングチャートである。
【図２０】  第２実施例の加算ブロックの構成を示す回路図である。
【図２１】  第２実施例の加算ブロックの動作を示すタイミングチャートである。
【図２２】  第２実施例の非線形演算ブロックの構成を示す回路図である。
【図２３】  第２実施例の非線形演算ブロックの動作を示すタイミングチャートである。
【図２４】  基準パルス生成ブロックの構成を示す回路図である。
【図２５】  パルス生成ブロックの構成を示す回路図である。
【図２６】  パルス生成ブロックの動作を示すタイミングチャートである。
【図２７】  第２実施例の結合係数更新ブロックの構成を示す回路図である。
【図２８】  第２実施例の結合係数更新ブロックの乗算器を示す回路図である。
【図２９】  第２実施例の結合係数更新ブロックの乗算器を示す回路図である。
【図３０】  第２実施例の結合係数更新ブロックの動作を示すタイミングチャートである。
【図３１】  第２実施例のパルス生成ブロックの出力例を示す説明図である。
【符号の説明】
１０，１００…ニューロン
２０，１２０…乗算ブロック
２１，１２１…遅延時間計時部
２１ａ…Ｄフリップフロップ
２１ｂ，１２１ａ…ＳＲフリップフロップ
２１ｃ…ＯＲゲート
２１ｄ…反転ゲート
２１ｅ，１２１ｂ…ＡＮＤゲート
２２，１２２…線形シフトレジスタ
２３，１２３…反転スイッチ部
２３ａ，１２３ａ…反転ゲート
２４，１２４…比較器
２５，１２５…アップダウンスイッチ部
２６，１２６…アップダウンカウンタ
３０，１３０…加算ブロック
３１，１３１…加算器
３２，１３２…符号検出部
３２ａ，１３２ａ…反転ゲート
３２ｂ，１３２ｂ…フリップフロップ
３２ｃ，１３２ｃ…ＡＮＤゲート
１３３…ゼロ検出部
１３３ａ…ＡＮＤゲート
１３３ｂ…ＮＡＮＤゲート
１３３ｃ…ＯＲゲート
１３３ｄ…フロップフロップ
１３３ｅ…ＡＮＤゲート
４０，１４０…非線形演算ブロック
４１，１４１…カウンタ
１４２…レジスタ
５０…基本パルス生成ブロック
５１…カウンタ
５２…線形シフトレジスタ
５３…加算器
５４…比較器
６０…パルス遅延ブロック
６１…レジスタ
６２…カウンタ
１５０…パルス生成ブロック
１５１…線形シフトレジスタ
１５２…第１の加算器
１５３…第２の加算器
１５４…比較器
１６０…結合係数更新ブロック
１６１，１６２…乗算器
１６３…カウンタ
１６４…比較器
１６５…反転スイッチ部
１６６…反転ゲート
１６７…減算器
２００…基準パルス生成ブロック
２０１…カウンタ
２０２…Ａｌｌ０検出部
２０２ａ…反転ゲート
２０２ｂ…ＡＮＤゲート
２０３…Ａｌｌ１検出部
２０３ａ…ＡＮＤゲート
【図１】
0004392089.tif 000002
【図２】
0004392089.tif 000003
【図３】
0004392089.tif 000004
【図４】
0004392089.tif 000005
【図５】
0004392089.tif 000006
【図６】
0004392089.tif 000007
【図７】
0004392089.tif 000008
【図８】
0004392089.tif 000009
【図９】
0004392089.tif 000010
【図１０】
0004392089.tif 000011
【図１１】
0004392089.tif 000012
【図１２】
0004392089.tif 000013
【図１３】
0004392089.tif 000014
【図１４】
0004392089.tif 000015
【図１５】
0004392089.tif 000016
【図１６】
0004392089.tif 000017
【図１７】
0004392089.tif 000018
【図１８】
0004392089.tif 000019
【図１９】
0004392089.tif 000020
【図２０】
0004392089.tif 000021
【図２１】
0004392089.tif 000022
【図２２】
0004392089.tif 000023
【図２３】
0004392089.tif 000024
【図２４】
0004392089.tif 000025
【図２５】
0004392089.tif 000026
【図２６】
0004392089.tif 000027
【図２７】
0004392089.tif 000028
【図２８】
0004392089.tif 000029
【図２９】
0004392089.tif 000030
【図３０】
0004392089.tif 000031
【図３１】
0004392089.tif 000032