(57)【特許請求の範囲】
【請求項１】
ディジタル電子回路として実現される階層型ニューラルネットワークの構成単位となる、神経細胞をモデル化したニューロンであって、
基準パルスに対し入力信号としてのパルスが入力されると、対応する結合係数に基づく乗算値を求める乗算手段と、
該乗算手段にて前記パルスのそれぞれに対して求められる乗算値を加算する加算手段と、
該加算手段による加算値を平均値とする確率分布に従う乱数を生成し、当該乱数の累積分布を求めることによって非線形演算値を求める非線形演算手段と、
を備え、
前記非線形演算手段は、
平均値を「０」とする確率分布に従う乱数を生成し、当該乱数に前記加算手段による加算値を加えることによって、前記加算手段による加算値を平均値とする確率分布に従う乱数を生成する乱数生成手段と、
該乱数生成手段によって生成された乱数の中の正数値の個数を、前記非線形演算値として計数する非線形変換手段と、
を備えること
を特徴とするニューロン。
【請求項２】
請求項１に記載のニューロンにおいて、
前記乱数生成手段は、一様乱数発生器と、当該一様乱数発生器にて生成された乱数を加算する加算器とを用いて構成されていること
を特徴とするニューロン。
【請求項３】
ディジタル電子回路として実現される階層型ニューラルネットワークの構成単位となる、神経細胞をモデル化したニューロンであって、
基準パルスに対し入力信号としてのパルスが入力されると、対応する結合係数に基づく乗算値を求める乗算手段と、
該乗算手段にて前記パルスのそれぞれに対して求められる乗算値を加算する加算手段と、
該加算手段による加算値を平均値とする確率分布に従う乱数を生成し、当該乱数の累積分布を求めることによって非線形演算値を求める非線形演算手段と、
を備え、
前記非線形演算手段は、
前記加算手段による加算値を平均値とする確率分布に従う乱数を生成する乱数生成手段と、
該乱数生成手段によって生成された乱数の中の正数値の個数を、前記非線形演算値として計数する非線形変換手段と、
を備え、
前記乱数生成手段は、一様乱数発生器と、当該一様乱数発生器にて生成された乱数を加算する加算器とを用いて構成されていること
を特徴とするニューロン。
【請求項４】
請求項１〜３のいずれかに記載のニューロンであって、
前記乗算手段は、基準パルスに対し入力信号としてのパルスが入力されると、基準パルスからの当該パルスの遅延時間に、対応する結合係数を乗じて前記乗算値を求めること
を特徴とするニューロン。
【請求項５】
請求項１〜４のいずれかに記載のニューロンであって、
前記非線形演算手段にて求められた前記非線形演算値に基づき、基準パルスに対する出力信号としてのパルスを生成するパルス生成手段を備えること
を特徴とするニューロン。
【請求項６】
請求項５に記載のニューロンにおいて、
前記パルス生成手段は、前記基準パルスよりも遅れたパルスを生成すること
を特徴とするニューロン。
【請求項７】
請求項１〜６のいずれかに記載のニューロンにおいて、
前記パルスが前記基準パルスよりも遅れて入力されることを前提として、前記各手段を構成したこと
を特徴とするニューロン。
【請求項８】
請求項１〜７のいずれかに記載のニューロンにおいて、
さらに、前記基準パルスを生成する基準パルス生成手段を備えていること
を特徴とするニューロン。
【請求項９】
請求項１〜８のいずれかに記載のニューロンにおいて、
前記基準パルスは、一定時間間隔で生成されること
を特徴とするニューロン。
【請求項１０】
請求項１〜９のいずれかに記載のニューロンにおいて、
前記乗算手段は、
一様乱数発生器を備えており、
前記パルスの遅延時間に応じた回数だけ前記一様乱数発生器にて乱数を生成し、当該生成した乱数と結合係数との値を比較し、当該比較結果に基づき前記乗算値を求めること
を特徴とするニューロン。
【請求項１１】
請求項１〜１０のいずれかに記載のニューロンにおいて、
前記非線形演算手段にて生成される前記確率分布に従う乱数は、正規分布に従う乱数（正規乱数）であること
を特徴とするニューロン。
【請求項１２】
請求項１〜１０のいずれかに記載のニューロンにおいて、
前記非線形演算手段にて生成される前記確率分布に従う乱数は、三角分布に従う乱数（三角乱数）であること
を特徴とするニューロン。
【請求項１３】
請求項１〜１２のいずれかに記載のニューロンを機能単位とする階層型ニューラルネットワーク。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字や図形の認識、連想記憶、多入出力非線形マッピングなどに応用される階層型ニューラルネットワークに関する。
【０００２】
【従来の技術】
従来、生体で行われている情報処理をモデル化したニューラルネットワーク（神経細胞回路網）が知られている。このニューラルネットワークでは、神経細胞（ニューロン）を機能単位とし、複数のニューロンをネットワーク状に配置して情報処理を行う。このようなニューラルネットワークは、従来のノイマン型コンピュータではなかなか達成できない文字や図形の認識、連想記憶、多入出力非線形マッピング等の情報処理に好適である。
【０００３】
次に、本発明に対する理解を容易にするため、ニューラルネットワークについて説明する。
最初にニューラルネットワークの概要構成を説明する。
上述したように、ニューラルネットワークはニューロンをネットワーク状に配置して構成される。例えば図１３に示す如くである。図１３に示したニューラルネットワークは３層階層型ニューラルネットワークと呼ばれ、入力層、中間層（隠れ層）、出力層を備えている。
【０００４】
なお、信号は入力層から入力され、中間層、出力層と順に伝播し、出力層から出力される。ニューラルネットワークの技術分野では周知であるが、入力層は入力信号を中間層に伝播させるのみであり、中間層や出力層のような演算を行わない。そのため、中間層及び出力層を構成する機能単位をニューロンと呼ぶ。中間層と出力層にはそれぞれ、少なくとも１つのニューロンが含まれる。
【０００５】
図１３に示すように、入力層は中間層の各ニューロンと結合され、同様に、中間層の各ニューロンは出力層の各ニューロンと結合されている。そして、上述したように、ニューラルネットワークの入力層に対して入力された信号は中間層に伝播し、中間層に含まれるニューロン内で後述するような所定の演算が行われ、その出力値がさらに出力層へ伝播する。出力層に含まれるニューロンにおいても同様の演算が行われ、その出力値がネットワークの最終出力となる。
【０００６】
この一連の動作が順伝播（フォワード処理）と呼ばれるニューラルネットワークの情報処理であり、中間層に含まれるニューロンを十分多くとると、任意の入出力が実現される。
なお、図１３に示したニューラルネットワークは、１つの中間層を有する３層構造のネットワークであるが、２以上の中間層を有するネットワークも提案されている。
【０００７】
続いて、ニューラルネットワークの構成単位であるニューロンについて説明する。
図１４は、図１３中に記号ｊで示したｊ番目のニューロンの模式図である。ニューロンは、外部からの入力値を入力する入力部、それら入力値を演算する演算部、及び演算結果を出力する出力部から構成されている。
【０００８】
外部からの各入力値をｘi （ｉ＝１，２，３，・・・，ｎ）で示せば、演算部は、対応する結合係数ｗji（ｉ＝１，２，３，・・・，ｎ）を各入力値ｘi に乗じ、それらの和ｙj を計算する。次の式１に示す如くである。
ｙj ＝Σｗjiｘi                                           …式１
なお、記号Σはｉについての和記号である。また、結合係数ｗjiは、ニューロン間の結合の強さを表すものであり、ｊ番目のニューロンとｉ番目のニューロンとの結合の強さを示す。
【０００９】
さらに演算部は、求めた和ｙj に対して非線形演算ｆを行って出力値ｚj とする。次の式２に示す如くである。
ｚj ＝ｆ（ｙj ）                                          …式２
非線形関数ｆとしては、シグモイド関数が用いられることが多い。それは、学習機能の実現において必要となる非線形関数ｆの微分値ｆ’が、ｆ’＝ｆ・（１−ｆ）というように非線形関数ｆ自体を用いて表現され、演算量を減らすことができるからである。また、非線形関数ｆとしてステップ関数（階段関数）を用いることもある。ただし、これらの関数には限られず、飽和特性を持つ単調増加関数であればよい。
【００１０】
このようなニューロンを構成単位とするニューラルネットワークの特徴として、学習機能を備えていることが挙げられる。
以上ニューラルネットワークの概要について詳述したが、ニューラルネットワークを構成するにあたっては、上述したニューロンの機能を如何にして実現するかが問題となる。
【００１１】
従来、ノイマン型コンピュータを用い、ソフトウェア処理にてニューロンの機能を実現する手法を用いることが多かった。しかし、この場合、複数のニューロンにおける処理をＣＰＵが時分割で実行することになるため、本来の並列情報処理がなされない。
【００１２】
従来、ディジタル回路を用いてニューロンを構成する技術として、特開平７−１１４５２４号公報に開示されたものがある。この技術では、ニューロンの機能をディジタル回路で実現するにあたり、パルス密度という概念を採用した。
しかし、パルス密度を用いた場合には、次に示すような問題がある。
【００１３】
それは、ニューラルネットワークのニューロン間の結合には興奮性結合と抑制性結合があり、数学的には結合関数の正負符号によって表現されるが、パルス密度を用いた場合は両者を区別することができない。すなわち、特開平７−１１４５２４号公報には、パルス密度で「０〜１」を表現できる構成となっているが、ニューラルネットワークのニューロン間の結合を表現するためには「−１〜１」に相当する信号を表現する必要がある。そのため、この技術では、結合係数の正負によって各結合を興奮性結合と抑制性結合の２つのグループに分けている。その結果、この公報でいうところのシナプス回路から細胞体回路への信号線が２系統必要となってくる。
【００１４】
このような課題を解決するため、本出願人は、特願平１１−３２８３１２号において、パルスの遅延時間を用いてニューロンの機能を実現した。これによれば、１つの信号にて興奮性結合と抑制性結合とを表現可能にし、パルス密度を用いた場合の信号線を１系統にすることができ、ニューラルネットワークの回路面積の縮小が図られる。
【００１５】
【発明が解決しようとする課題】
ところが、次のような点においてはさらに改良の余地がある。
それは、上記公報に記載の技術においても言えることであるが、ｍ個のパルスをニューロンの信号単位としている点である。つまり、上記式２に示した非線形演算ｆを実現するために、ニューロンへの入力信号を、正規分布に従うパルス列で表現していた。そして、このパルス列は時系列に入力され、ｍ個のパルスが入力されてはじめてニューロンの出力が得られることになるため、ニューロンの演算に時間を要する結果となっていた。
【００１６】
本発明は、このような問題を解決するためになされたものであり、パルスの遅延時間を用いて演算を行うニューロンにおいて、回路規模を増大させることなく、演算時間の短縮を図ることを目的とする。
【００１７】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項１に記載のニューロンは、ディジタル電子回路として実現される階層型ニューラルネットワークの構成単位であり、生体の神経細胞（ニューロン）をモデル化したものである。
【００１８】
本ニューロンには、基準パルスに対し、入力信号としてのパルスが入力される。この基準パルスは、一定時間間隔で生成されることが考えられるが（請求項９）、一定時間間隔でなくても差し支えない。ただし、一定時間間隔で基準パルスを生成する場合、カウンタなどを用いて容易に実現できる点で有利である。基準パルスは、本ニューロンの外部にて生成され、本ニューロンへ入力されるようにしてもよいが、基準パルス生成手段を備える構成とし（請求項８）、本ニューロンの内部にて生成するようにしてもよい。一般的に、ニューロンの外部で基準パルスを生成する構成では、各ニューロンの回路構成が簡単になるというメリットが得られる。しかし、外部で基準パルスを生成すると、各ニューロンへの信号線が必要となるため、ニューラルネットワーク全体の回路規模などによっては、ニューロン内部に基準パルス生成手段を備える構成の方がメリットが高くなる場合もある。
【００１９】
本ニューロンの特徴は、このような基準パルスに対する、例えば１つのパルスを入力信号の単位とできることである。入力信号としてのパルスが入力されると、本ニューロンは、以下のように動作する。
まず、乗算手段が、対応する結合係数に基づく乗算値を求める。続いて、加算手段が、乗算手段にてパルスのそれぞれに対して求められる乗算値を加算する。
この乗算手段及び加算手段による演算が、上記式１に示す演算に相当する。そして、非線形演算手段は、加算手段による加算値を平均値とする確率分布に従う乱数を生成し、当該乱数の累積分布を求めることによって非線形演算値を求める。
この非線形演算手段による演算が、上記式２に示す演算に相当する。
【００２０】
ここで乗算手段は、基準パルスからのパルスの遅延時間に、対応する結合係数を乗じて乗算値を求めることが考えられる（請求項４）。なお、ここでいう「遅延時間」はマイナスの値を取り得る。遅延時間がマイナス値となるのは、対応する基準パルスに、パルスが先行するときである。
【００２１】
以下の説明で単に「パルスの遅延時間」という場合、上述したような、対応する基準パルスからの遅延時間をいうものとする。
ここで本発明の技術思想について説明する。上述した特願平１１−３２８３１２号に開示したニューロンでは、例えば２５６個というようなｍ個のパルスを入出力信号の単位としていた。そして、このｍ個の各パルスの遅延時間は、平均をλとする正規分布に従うものであった。このようにした理由は、ニューロンを構成する回路の簡略化にあり、ニューロン内部での非線形演算が、正規分布に従う遅延時間の累積分布を求めることによって簡単に実現できるためであり、具体的には、図１６に示した回路により加算値の符号ｓｉｇｎΣに基づく正数値のカウントで実現できるためである。
【００２２】
ところが、実際の演算で意味をなすのは各パルスの遅延時間の平均値であり、ニューロン内部で正規分布に従う乱数を生成するようにして非線形演算を可能にすれば、パルス列における平均遅延時間を、１つのパルスの遅延時間で置き換えてもよい。すなわち、入出力信号に１つのパルスを用いてもよい。
【００２３】
そこで、本発明では、非線形演算手段が、加算値を平均値とする確率分布に従う乱数を生成し、当該乱数の累積分布を求めることによって非線形演算値を求めるようにした。
この場合、確率分布に従う乱数をニューロン内部で生成する構成が必要となるが、特願平１１−３２８３１２号に開示したニューロンでも、非線形演算値を平均遅延時間とするパルス列を出力信号として改めて生成しており、ニューロン内部で正規分布に従う乱数を生成している。言い換えれば、従来より、ニューロン内部で確率分布に従う乱数を生成する構成を有していた。したがって、本発明の構成を採用しても、従来の構成と比較して、回路規模が増大することはない。
【００２４】
演算時間の短縮について言えば、ｍ個のパルス列を信号単位とするニューロンでは、ｍ個のパルスが入力されてはじめて、ニューロンからの出力が得られ、演算がなされることになる。これに対して、本発明では、例えば１つの基準パルスに対応する１つのパルスを入力信号とすることができ、このとき演算時間は（１／ｍ）に短縮される。
【００２５】
すなわち、本発明のニューロンによれば、パルスの遅延時間を用いて演算を行うニューロンにおいて、回路規模を増大させることなく、演算時間の短縮を図ることができる。
なお、非線形演算値そのものを出力信号としてもよいが、中間層のニューロンなど、次のニューロンへの入力信号を出力することを考えると、さらに、非線形演算手段にて求められた非線形演算値に基づき、基準パルスに対する出力信号としてのパルスを生成するパルス生成手段を備える構成としてもよい（請求項５）。例えば、パルス生成手段は、非線形演算値に基づく遅延時間を基準パルスからの遅延時間とする１つのパルスを生成するという具合である。
【００２６】
ところで、基準パルスに対しパルスが先行するときに、遅延時間がマイナスの値を取り得ることは既に述べた。しかしながら、本発明の技術思想では、ニューロン間の信号であるパルスの遅延時間がマイナスの値をとらなくても、ニューロンの内部で遅延時間をマイナス値として処理できればよい。すなわち、対応する結合係数がマイナスであった場合に、その結合係数との乗算値がマイナス値を含めて計算できればよい。したがって、上述したパルスが基準パルスよりも遅れて入力されることを前提として、各手段を構成することが考えられる（請求項７）。つまり、入力パルスの遅延時間が常にプラス値をとることを前提としてもよい。この場合、基準パルスに先行するパルスを判断する必要がなくなるため、回路構成が簡単になる。また、パルス生成手段を備える構成においては、当該パルス生成手段が、基準パルスよりも遅れたパルスを生成することが考えられる（請求項６）。
【００２７】
なお、上述したように、乗算手段は、例えばパルスの遅延時間に結合係数を乗じて乗算値を求めるものとできる。したがってこの場合、最も簡単には乗算回路を用いて構成することが考えられる。しかし、一般に乗算回路は回路面積が大きくなるという欠点がある。
【００２８】
そこで、乗算手段は、一様乱数発生器を備える構成とし、パルスの遅延時間に応じた回数だけ一様乱数発生器にて乱数を生成し、当該生成した乱数と結合係数との値を比較し、当該比較結果に基づき乗算値を求めるものとすることが考えられる（請求項１０）。
【００２９】
これは二項分布の正規分布近似を応用したものである。二項分布の正規分布近似とは、二項分布に従うｎ回の試行において、ｎを大きくすると、二項分布は平均値ｎ・Ｐの正規分布に近づくという性質である。ここでＰは、一回の試行において結果が「成功」する確率である。この性質を使い結合係数ｗ、遅延時間に応じた回数ｘとし、Ｐ＝ｗ、ｎ＝ｘとすれば、ｘ回の試行で「成功」する確率の分布は平均ｗｘの正規分布に従う。すなわち、ｘ回だけ一様乱数発生器にて乱数ｒを生成し、この乱数ｒが結合係数ｗよりも小さくなる回数を計数すれば、この計数値は、ｗｘを平均とする正規分布に従うことになる。したがって、この計数値で乗算値を近似してもよい。このようにすれば、乗算回路を用いた場合と比較して、ニューロンの回路面積が大幅に削減される。この意味で、本明細書でいうところの「乗算値」には、乗算相当値とでも呼ぶべき近似値も含まれる
ところで、非線形演算手段にて生成される確率分布に従う乱数は、正規分布に従う乱数（以下「正規乱数」という。）とすることが考えられる（請求項１１）。また、三角分布に従う乱数（以下「三角乱数」という。）としてもよい（請求項１２）。累積分布の関数が、飽和型の単調増加関数になればよいためである。
【００３０】
このような乱数を生成して非線形演算を実現する非線形演算手段について、次に説明する。
非線形演算手段は、乱数生成手段と、非線形変換手段とを備える構成とすることが考えられる（請求項１〜３）。このとき、乱数生成手段は、加算手段による加算値を平均値とする確率分布に従う乱数を生成し、一方、非線形変換手段は、乱数生成手段によって生成された乱数の中の正数値の個数を、非線形演算値として計数する。ここでいう正数値には「０」を含めてもよいし、「０」を含めなくてもよい。境界値「０」を含めるか否かは、計数値全体からみればほとんど影響しないからである。
【００３１】
なお、乱数生成手段は、平均値を「０」とする確率分布に従う乱数を生成し、当該乱数に加算手段による加算値を加えることによって、加算手段による加算値を平均値とする確率分布に従う乱数を生成することが考えられる（請求項１）。具体的に、平均値を「０」とする確率分布に従う乱数は、一様乱数発生器を用いて生成することができる。したがって、乱数生成手段は、一様乱数発生器と、当該一様乱数発生器にて生成された乱数を加算する加算器とを用いて構成すればよい（請求項２，３）。
【００３２】
分布が有限な乱数を多数加えると、中心極限定理により正規分布に近づくことが知られている。例えば一様乱数Ｕ（０≦Ｕ＜１）を１２個加えて６引いた値の分布は、Ｎ（０，１）の正規分布となる。また、２つの一様乱数発生器を用いれば、上述した三角分布に従う乱数を得ることができる。
【００３３】
上述したように１２個の一様乱数発生器を用意すれば、その加算値は確率的に精度良く正規分布に従うことになる。しかし、本発明において、正規分布に従う乱数を生成するのは非線形演算を可能にするためであり、この乱数がそれほど精度よく正規分布に従わなくても、ニューロンの機能を損なうことはない。したがって、現実的に正規分布に従う乱数を生成するには、３つ又は４つの一様乱数発生器を用いれば十分である。
【００３４】
以上、ニューロンの構成を説明してきたが、上述したニューロンを機能単位とする階層型ニューラルネットワークの発明として実現することもできる（請求項１３）。
【００３５】
【発明の実施の形態】
以下、本発明を具体化した実施例を図面を参照して説明する。なお、本発明は以下の実施例に何等限定されることなく、発明の技術的範囲に属する限り種々の実施形態を取り得ることは言うまでもない。
【００３６】
図１は、階層型ニューラルネットワークの機能単位となるニューロンの模式図である。
ニューロン１０は、図１３に模式的に示した階層型ニューラルネットワークのｊ番目のニューロンを例示したものである。
【００３７】
ニューロン１０は、図１３に示すように、ニューラルネットワークの入力層からの入力信号を入力し、所定の演算を行い、さらに、出力層のニューロンへ出力信号を出力する。なお、中間層及び出力層に含まれるニューロンは全て、同様の構成となっている。出力層に含まれるニューロンは、中間層のニューロンからの入力信号に基づく演算を行い、ニューラルネットワークの出力信号を生成する。
【００３８】
図１に示すように、ニューロン１０には、ｎ本のパルスｘ1 ，ｘ2 ，・・・，ｘn が入力信号として入力される。そして、ニューロン１０は、パルスｚj'を出力信号として出力する。
そして、ニューロン１０の外部にて一定時間間隔で生成される基準パルスＴからの遅延時間に基づき信号処理を行うことを特徴としている。
【００３９】
図１中に示すｎ本のパルスｘ1 ，ｘ2 ，・・・，ｘn は、基準パルスＴに対するパルスであり、例えばパルスｘ1 の遅延時間は、基準パルスＴからの遅れである。図１中には、パルスｘ1 の遅延時間をｄ1 で示した。同様に、パルスｘ2 ，・・・，ｘn の遅延時間は、ｄ2 ，・・・，ｄn となる。
【００４０】
なお、本実施例では、遅延時間ｄi は、常にプラス値（ｄi ≧０）である。遅延時間を用いる理由の一つには、興奮性結合と抑制性結合を１つの信号で表現できるからであった。パルスの遅延時間を用いれば、結合係数との乗算値が内部的にマイナス値として処理できる。このとき、ニューロン１０の内部でマイナス値として処理できれば十分である。したがって、遅延時間ｄi が常にプラス値となるように、ニューロン１０の入出力信号を正規化してもよい。もちろん、遅延時間ｄi がマイナス値をとるように構成することもできる。この場合、パルスｘi が基準パルスＴに先行する。
【００４１】
図１に示すようにニューロン１０は、ｎ本のパルスｘi のそれぞれに対応する結合係数ｗj1，ｗj2，・・・，ｗjnを記憶している。そして、パルスｘi に対し、従来技術の説明中に述べた式１及び式２に相当する演算を行う。そして、式２の演算結果に基づいて、パルスｚj'を出力する。なお、以下の説明では、結合係数を単にｗと記述する。ただし、パルスｘi との対応関係を明に示す場合、適宜添え字を付してｗi と記述することにする。
【００４２】
次に、ニューロン１０の構成及び動作を説明する。
図２は、ニューロン１０の機能ブロック図である。ニューロン１０は、乗算ブロック２０と、加算ブロック３０と、正規乱数生成ブロック４０と、非線形変換ブロック５０と、パルス生成ブロック６０とを備えている。
【００４３】
まず乗算ブロック２０では、パルスｘi に対応する結合係数ｗjiを、当該パルスｘi の遅延時間ｄi に乗じる。この乗算値をｗ・ｘi で示すことにする。結合係数ｗjiは、各乗算ブロック２０毎に設けられたレジスタ２０Ｒに記憶されている。次に加算ブロック３０では、各乗算ブロック２０にて算出されたｗ・ｘi を加算する。この加算置をｙj で示すことにする。この乗算ブロック２０及び加算ブロック３０での演算が、上記式１の演算に相当する。なお、図２では３つの乗算ブロック２０を備える構成を示したが、入力信号の本数に応じて乗算ブロック２０は設けられる。
【００４４】
正規乱数生成ブロック４０では、加算ブロック３０による加算値ｙj を平均値とする正規分布に従う乱数を生成し、当該生成した乱数の最上位ビット（符号ビット）ｓｉｇｎを出力する。この符号ビットｓｉｇｎは、乱数がプラス値であれば「０」、乱数がマイナス値であれば「１」となる。そして、非線形変換ブロック５０では、正規乱数生成ブロック４０からの出力である符号ビットｓｉｇｎに基づき、乱数の中の正数値の個数を計数する。この計数値をｚj と示す。この正規乱数生成ブロック４０及び非線形変換ブロック５０での演算が、上記式２の演算に相当する。
【００４５】
パルス生成ブロック６０は、基準パルス生成ブロック１００からのカウント値Ｃｏｕｎｔに基づき、基準パルスＴからの遅延時間が計数値ｚj となるパルスｚj'を生成し、ニューロン１０の出力信号とする。
以上ニューロン１０を機能ブロック単位で大まかに説明した。次に、各ブロックについての構成及び動作を詳細に説明する。
【００４６】
最初に乗算ブロック２０について説明する。
図３は、乗算ブロック２０の構成を示す回路図である。乗算ブロック２０は、遅延時間計時部２１、一様乱数発生器である線形シフトレジスタ（以下「ＬＦＳＲ」という。）２２、反転スイッチ部２３、比較器２４、アップダウンスイッチ部２５、及びアップダウンカウンタ２６を備えている。
【００４７】
遅延時間計時部２１は、ＳＲフリップフロップ（以下「ＳＲＦ／Ｆ」という。
）２１ａ及び２入力のＡＮＤゲート２１ｂを備えている。
また、ＳＲＦ／Ｆ２１ａのリセット端子（Ｒ）へは入力信号ｘi が入力され、セット端子（Ｓ）へは、基準パルスＴが入力される。ＳＲＦ／Ｆ２１ａの出力端子は、ＡＮＤゲート２１ｂの一方の入力端子に結線されている。また、ＡＮＤゲート２１ｂの他方の入力端子には、外部からのクロック信号ＣＬＫが入力される。そして、ＡＮＤゲート２１ｂの出力端子が、ＬＦＳＲ１２２のクロック端子に結線されている。
【００４８】
ＬＦＳＲ２２は、クロック端子へパルスが入力される毎に、ｍビット［ｍ−１：０］の一様乱数を生成する。ＬＦＳＲ２２にて生成された乱数は、比較器２４の入力端子（Ｌ）へ入力される。
一方、比較器２４の他方の入力端子（Ｒ）には、結合係数ｗが入力される。結合係数ｗは、上述したように各乗算ブロック２０に対応するレジスタ２０Ｒから取得される。結合係数ｗは、ｍ＋１ビット［ｍ：０］の数値であり、２の補数表現を用い、興奮性結合である場合にはプラスの値として示され、一方、抑制性結合である場合にはマイナスの値として示される。
【００４９】
この結合係数ｗの最上位ビット［ｍ］が、反転スイッチ部２３及びアップダウンスイッチ部２５へ入力される。
反転スイッチ部２３は、結合係数ｗの最上位ビット［ｍ］が「０」であれば、スイッチを「０」側に切り換える。一方、最上位ビットｍが「１」であれば、スイッチを「１」側へ切り換える。これによって、スイッチが「０」側に切り換えられたときは、最上位ビット［ｍ］を除くｍビット［ｍ−１：０］の数値がそのまま比較器の入力端子（Ｒ）へ入力される。一方、スイッチが「１」側に切り換えられたときは、最上位ビット［ｍ］を除くｍビット［ｍ−１：０］の各ビットが反転ゲート２３ａにて反転され、ｍビットの数値として比較器２４の入力端子（Ｒ）へ入力される。これによって、２の補数表現となっていたマイナスの結合係数ｗの絶対値が比較器２４へ入力されることになる。なお、厳密には、２の補数表現を用いた場合には反転した後に「１」を加算することが必要となるが、ニューロンの処理精度に特に影響を及ぼすことがないため、本実施例ではハードウェアの削減を図る意味で加算していない。
【００５０】
上述したように、比較器２４の入力端子（Ｌ）へはＬＦＳＲ２２にて生成された乱数が入力される。一方、入力端子（Ｒ）へは結合係数ｗの絶対値が入力される。比較器２４は、両方の入力値を比較し、結合係数ｗが乱数よりも大きくなるとパルスを出力する。この比較器２４からの出力が、アップダウンスイッチ部２５を介し、アップダウンカウンタ２６のアップ側の入力端子又はダウン側の入力端子のいずれか一方へ入力される。
【００５１】
また、アップダウンスイッチ部２５は、結合係数ｗの最上位ビット［ｍ］が「０」であればスイッチを「０」側に切り換え、一方、「１」であればスイッチを「１」側に切り換える。これによって、結合係数ｗがマイナス値として２の補数表現で示されている場合には、アップダウンカウンタ２６にてダウンカウントされることになる。
【００５２】
アップダウンカウンタ２６は、ｎ＋２ビット［ｎ＋１：０］のカウンタであり、アップ側の端子にパルスが入力される度に「０」→「１」→「２」→・・・という具合にカウントを行う。一方、ダウン側の端子にパルスが入力される度に「０」→「−１」→「−２」→・・・という具合にカウントを行う。なお、アップダウンカウンタ２６の出力は、下位１ビットを除くｎ＋１ビット［ｎ＋１：１］である。これはカウント値を２で割ったものに相当する。
【００５３】
このように構成された乗算ブロック２０の動作を図３の回路図及び図５のタイミングチャートに基づき説明する。なお、図５のタイミングチャートには、パルスｘ1 に対応して、乗算値ｗ1 ・ｘ1 が出力される様子を示した。
図５に示すように時刻ｔ１で基準パルスＴが入力されると、ＳＲＦ／Ｆ２１ａの出力がＨレベルへ反転する。したがって、クロック信号ＬＣＬＫが、ＡＮＤゲート２１ｂから出力される。その結果、ＬＦＳＲ２２を動作させるクロック信号出力が開始される。
【００５４】
その後、時刻ｔ２で入力信号ｘi のパルスが入力されると、ＳＲＦ／Ｆ２１ａの出力がＬレベルへ反転する。そのため、ＡＮＤゲート２１ｂの出力がＬレベルに保持され、ＬＦＳＲ２２を動作させるクロック信号出力が停止される。
したがって、ＬＦＳＲ２２へのクロック信号ＬＣＬＫは、図５中に示すように時刻ｔ１〜ｔ２の期間、すなわちパルスｘ1 の遅延時間ｄ1 に応じて出力されることになる。
【００５５】
このとき結合係数ｗの符号がプラスであるとする。２の補数表現を用いた結合係数ｗがプラスの値であるとき、ｍ＋１ビット［ｍ：０］のレジスタ２０Ｒの最上位ビット［ｍ］は「０」である。したがって、反転スイッチ部２３は、スイッチを「０」側に切り換える。そのため、最上位ビット［ｍ］を除くｍビット［ｍ−１：０］の数値が、比較器２４の一方の入力端子（Ｒ）へ入力される。
【００５６】
また、結合係数の最上位ビット［ｍ］が「０」であるため、アップダウンスイッチ部２５は、スイッチを「０」側へ切り換える。すなわち、比較器２４からの出力がアップダウンカウンタ２６のアップ側の入力端子へ入力されるようにスイッチを切り換える。
【００５７】
ＬＦＳＲ２２へのクロック信号ＬＣＬＫが、時刻ｔ１〜ｔ２の期間に出力されることは上述した。図５に示すように、時刻ｔ１〜ｔ２の期間にＬＦＳＲ２２へのクロック信号ＬＣＬＫが出力されている。ＬＦＳＲ２２は、クロック信号としてのパルスが入力される毎に、ｍビット［ｍ−１：０］の乱数を発生する。そして、この乱数が比較器２４の一方の入力端子（Ｌ）に出力される。
【００５８】
比較器２４では、結合係数ｗが乱数よりも大きくなると、アップダウンカウンタ２６へパルスを出力する。図５では、結合係数ｗ＞乱数となったのが１４８回であったため、アップダウンカウンタ２６は、「１４８」までカウントしている。
【００５９】
なお、結合係数ｗの符号がマイナスであれば、アップダウンスイッチ部２５は、スイッチを「１」側へ切り換える。すなわち、比較器２４からの出力がアップダウンカウンタ２６のダウン側の端子へ入力される。そのため、比較器２４によるパルス出力によってアップダウンカウンタ２６は、「０」→「−１」→「−２」→「−３」とカウントすることになる。
【００６０】
これによって、結合係数ｗがマイナス値である場合は、この乗算ブロック２０にて遅延時間ｄi がマイナスの数値に変換される。
ここで、この乗算ブロック２０のアップダウンカウンタ２６の出力値の分布は、二項分布の正規分布近似によりＮ（ｗｘ，１）の正規分布に従う。
【００６１】
二項分布の正規分布近似とは、二項分布に従うｎ回の試行において、ｎを大きくすると、二項分布は平均値ｎ・Ｐの正規分布に近づくという性質である。ここでＰは、一回の試行において結果が「成功」する確率である。つまり、上述した乗算ブロック２０では、遅延時間ｄi に応じた回数ｄi'だけＬＦＳＲ２２によって乱数を発生させ、比較器２４によって「成功」した回数だけパルスを出力する。そして、この「成功」した回数を、アップダウンカウンタ２６にて計数している。すなわち、アップダウンカウンタ２６のカウント値は確率的に、Ｎ（ｗｄ’，１）の正規分布に従うことになる。したがって、パルスｘi の遅延時間ｄi と結合係数ｗとの乗算値として、アップダウンカウンタ２６のカウント値を近似的に採用することができ、本実施例では、アップダウンカウンタ２６の出力を２で割ったものを乗算値ｗ・ｘi と示した。
【００６２】
続いて加算ブロック３０について説明する。
図６は、加算ブロック３０の構成を示す回路図である。加算ブロック３０は、加算器３１及びレジスタ３２を備えている。
加算器３１は、ｎ＋３ビット［ｎ＋２：０］である。この加算器３１には、各乗算ブロック２０のアップダウンカウンタ２６からのｎ＋１ビット［ｎ＋１：１］の出力値ｗ・ｘi が入力される。ここでは、図２に示す各乗算ブロック２０からの出力値をｗ1 ・ｘ1 ，ｗ2 ・ｘ2 ，ｗ3 ・ｘ3 と記述した。
【００６３】
加算器３１は、レジスタ３２に接続されている。レジスタ３２には、基準パルスＴ及びクロック信号ＣＬＫが入力される。レジスタ３２は、基準パルスＴの入力タイミングで、加算器３１の加算結果を加算値ｙj として出力する。
以上のように構成された加算ブロック３０の動作を、図４の回路図及び図５のタイミングチャートに基づき説明する。
【００６４】
加算器３１には各乗算ブロック２０からの出力値ｗ1 ・ｘ1 ，ｗ2 ・ｗ2 ，ｗ3 ・ｘ3 が入力され、加算器３１では、これらの値が加算される。パルスｘ1 が時刻ｔ２で入力されているように、パルスｘ2 ，ｘ3 も、時刻ｔ１で入力された基準パルスＴに遅れて入力される。したがって、乗算値ｗ1 ・ｘ1 と同様に乗算値ｗ2 ・ｘ2 ，ｗ3 ・ｘ3 が計算されて、乗算ブロック２０から出力される。
【００６５】
加算器３１による加算結果は、時刻ｔ３で次の基準パルスＴが入力されると、レジスタ３２によって、加算値ｙj として出力される。この出力は、さらに次の基準パルスＴが入力されるまで保持される。図５中では、加算値ｙj として「３００」が出力されている。
【００６６】
続いて正規乱数生成ブロック４０について説明する。
図６は、正規乱数生成ブロック４０の構成を示す回路図である。正規乱数生成ブロック４０は、基準正規乱数生成部４１と、加算器４２とを備えている。基準正規乱数生成部４１は、３つのＬＦＳＲ４１ａ、及び加算器４１ｂとで構成されている。なお、２つの加算器４１ｂ，４２を区別するため、それぞれ第１の加算器４１ｂ、第２の加算器４２と記述する。
【００６７】
基準正規乱数生成部４１のＬＦＳＲ４１ａは、クロック端子へパルスが入力されると、ｎ＋１ビット［ｎ：０］の一様乱数を生成する。各ＬＦＳＲ４１ａにはクロック信号ＣＬＫが入力されるようになっており、したがって、クロック信号ＣＬＫに合わせて乱数が生成される。２の補数表現も含めてｎ＋１ビットの乱数は、−２n 〜２n −１の範囲で生成される。ｎ＝７であれば、−１２８〜１２７の乱数が生成されるという具合である。
【００６８】
各ＬＦＳＲ５２にて生成された乱数は、基準正規乱数生成部４１の第１の加算器４１ｂにて加算される。そして、第１の加算器４１ｂからｎ＋３ビット［ｎ＋２：０］の加算結果が、第２の加算器４２へ出力される。また、第２の加算器４２へは、加算ブロック３０からのｎ＋３ビット［ｎ＋２：０］の加算値ｙj が入力される。
【００６９】
第２の加算器４２はｎ＋２ビット［ｎ＋１：０］であり、最上位の符号ビット［ｎ＋１］が正規乱数生成ブロック４０の出力ｓｉｇｎとなる。
このような構成を有する正規乱数生成ブロック４０の動作を、図６の回路図及び図８のタイミングチャートに基づいて説明する。なお、図８のタイミングチャートは、図５のタイミングチャートに続くものであり、時刻ｔ３で基準パルスが入力されると、加算ブロック３０から加算値ｙj として「３００」が出力された様子が示されている。
【００７０】
基準正規乱数生成部４１の各ＬＦＳＲ４１ａは、クロック信号ＣＬＫの立ち上がりで乱数を生成する。そして、同時に、各ＬＦＳＲ４１ａにて生成された乱数が第１の加算器４１ｂにて加算される。例えばｎ＝７であれば、加算器４１ｂによる加算結果は−３８４〜３８１のランダムな数値となる。
【００７１】
このように、分布が有限な乱数を多数加えると、中心極限定理により正規分布に近づくことが知られている。例えば一様乱数Ｕ（０≦Ｕ＜１）を１２個加えて６引いた値の分布は、Ｎ（０，１）の正規分布となる。
そのため、第１の加算器４１ｂによる加算結果は、ランダムな数値であるが、全体として見れば、平均値を「０」とする正規分布に確率的に従う。
【００７２】
したがって、これに加算ブロック３０からの加算値ｙj を加算した第２の加算器４２による加算結果は、平均値を加算値ｙj とする正規分布に確率的に従うことになる。図８では、加算値ｙj として「３００」が加算されるため、第２の加算器４２による加算結果は、平均値を「３００」とする正規分布にほぼ従う乱数となる。
【００７３】
そして、正規乱数生成ブロック４０からは、この第２の加算器４２の最上位ビット［ｎ＋１］が、符号ビットｓｉｇｎとして出力される。この符号ビットｓｉｇｎは、加算結果がプラス値であれば「０」となり、マイナス値であれば「１」となる。
【００７４】
なお、本実施例では、正規乱数生成ブロック４０の基準正規乱数生成部４１に、３つのＬＦＳＲ４１ａを備える構成としたが、ＬＦＳＲ４１ａを４つ以上備える構成とすることもできる。ＬＦＳＲ４１ａの個数を増やせば、正規分布に精度よく従う乱数を生成することができる反面、回路規模が増大する。図９には、４つのＬＦＳＲ４１ａの出力を繰り返し加算した場合の加算結果の分布を示した。
これはｎ＝７の場合であるが、このように少ない数のＬＦＳＲ４１ａを用いても、ニューロンの演算に十分な分布が得られる。また、ＬＦＳＲ４１ａを２つ備える構成とすれば、三角分布にほぼ従う乱数が得られることになる。
【００７５】
続いて、非線形変換ブロック５０について説明する。
図７は、非線形変換ブロック５０の構成を示す回路図である。非線形変換ブロック５０は、ｎ＋１ビット［ｎ：０」のカウンタ５１と、ｎ＋１ビット［ｎ：０］のレジスタ５２とを備えている。
【００７６】
カウンタ５１には、正規乱数生成ブロック４０からの出力である符号ビットｓｉｇｎが反転ゲート５１ａにて反転されて入力される。つまり、図６中に示した第２の加算器４２による加算結果がプラス値であれば「１」が入力され、一方、マイナス値であれば「０」が入力される。
【００７７】
また、カウンタ５１にはクロック信号ＣＬＫ及び基準パルスＴが入力されるようになっており、カウンタ５１は、基準パルスＴの入力で「０」にリセットされ、反転ゲート５１ａからの出力が「１」であると、クロック信号ＣＬＫに合わせてカウントアップする。これによって、基準パルスＴから次に基準パルスＴが入力されるまでの間、上述した第２の加算器４２による加算結果の中の正数値がカウントされる。
【００７８】
カウンタ５１のカウント値は、基準パルスＴの入力により、リセットされる直前にレジスタ５２に保持され、非線形変換ブロック５０の出力である非線形演算値ｚj となる。
このような構成を有する非線形変換ブロック５０の動作を、図７の回路図及び図８のタイミングチャートに基づいて説明する。
【００７９】
図８では、時刻ｔ３に基準パルスＴが入力されているが、その直後の基準パルスＴの立ち下がりタイミングでカウンタ５１は「０」にリセットされる。そして、カウンタ５１は、反転ゲート５１ａからの出力が「１」であれば、クロック信号ＣＬＫの立ち下がりタイミングでカウントアップを行う。
【００８０】
そして、時刻ｔ４に次の基準パルスが入力されると、その立ち上がりタイミングで、カウンタ５１のカウント値がレジスタ５２に保持される。図８には、カウント値「２０３」が保持された様子を示した。このカウント値が非線形演算値ｚj である。
【００８１】
以上のように、加算ブロック３０から出力される加算値ｙj に基づき、正規乱数生成ブロック４０及び非線形変換ブロック５０によって、非線形演算値ｚj が求められた。本実施例の１つの特徴は、この非線形変換にあるため、ここでこの非線形変換の原理を図１０を用いて説明する。
【００８２】
正規乱数生成ブロック４０の第２の加算器４２による加算結果は、平均値を加算値ｙj とする正規分布に従うことは上述した。したがって、その加算結果の分布は、図１０中の上段に示す如くとなる。
一方、非線形変換ブロック５０のカウンタ５１は、正規乱数生成ブロック４０から出力される符号ビットｓｉｇｎに基づくカウントアップを行い、第２の加算器４２の値の中の正数値の個数、すなわち、図１０中にハッチングを施して示した領域の面積を非線形演算値ｚj として求めている。
【００８３】
そして、この面積は、図１０中に示した正規分布（上段）から得られる累積分布の関数ｆ（下段）における加算値ｙj に対応する関数値ｆ（ｙj ）となる。この関数ｆは飽和型の単調増加関数であり、非線形性を有する。
したがって、ニューロン１０に必要な非線形演算は、非線形変換ブロック５０によって、平均値を加算値ｙj とする正規分布に従う乱数の中の正数値の個数を計数することで実現できる。
【００８４】
続いてパルス生成ブロック６０について説明する。
図１１は、パルス生成ブロック６０の構成を示す回路図である。なお、図１１には、基準パルス生成ブロック１００の構成も図示した。基準パルス生成ブロック１００は、本実施例のニューロン１０の外部に設けられるものであり、上述した基準パルスＴを生成する。パルス生成ブロック６０は基準パルス生成ブロック１００からのカウント値Ｃｏｕｎｔに基づき動作するため、まず最初に基準パルス生成ブロック１００の構成を説明する。
【００８５】
基準パルス生成ブロック１００は、カウンタ１０１と、ｎ＋２入力のＡＮＤゲート１０２とを備えている。
カウンタ１０１にはクロック信号ＣＬＫが入力され、カウンタ１０１は、クロック信号ＣＬＫに合わせてカウントアップする。このカウンタ１０１はｎ＋１ビット［ｎ：０］であり、０〜２n+1 −１までを繰り返しカウントする。例えばｎ＝７であれば、０〜２５５までを繰り返しカウントすることになる。
【００８６】
そして、カウンタ１０１のカウント値ＣｏｕｎｔがＡＮＤゲート１０２に入力されるように結線されている。ＡＮＤゲート１０２には、クロック信号ＣＬＫも入力され、これによってカウント値Ｃｏｕｎｔが「０」になったことを検出して基準パルスＴを出力する。
【００８７】
一方、パルス生成ブロック６０は、比較器６１と、２入力のＡＮＤゲート６２とを備えている。比較器６１の入力端子（Ｒ）には上述したカウンタ１０１のカウント値Ｃｏｕｎｔが入力され、また、入力端子（Ｌ）には、非線形変換ブロック５０からの非線形演算値ｚj が入力される。
【００８８】
比較器６１の出力端子はＡＮＤゲート６２の一方の入力端子に結線されており、ＡＮＤゲート６２の他方の入力端子には、クロック信号ＣＬＫが入力されるようになっている。
比較器６１は、入力端子に入力された２つの値が等しいと、すなわち、カウント値Ｃｏｕｎｔ＝非線形演算値ｚj であると、その出力をＨレベルに反転させる。したがって、カウント値Ｃｏｕｎｔが非線形演算値に等しくなったときに、クロック信号ＣＬＫがＡＮＤゲート６２から出力される。これによって、カウント値Ｃｏｕｎｔ「０」で出力される基準パルスＴに対し、非線形演算値ｚj 分だけ遅れたパルスｚj'が出力されることになる。
【００８９】
このような構成を有するパルス生成ブロック６０の動作を、図１１の回路図及び図１２のタイミングチャートに基づいて説明する。なお、図１２のタイミングチャートは、図８のタイミングチャートに続くものであり、時刻ｔ４で基準パルスが入力されると、非線形変換ブロック５０のレジスタ５２に非線形演算値ｚj として「２０３」が保持される様子が示されている。
【００９０】
時刻ｔ４で入力される基準パルスＴに対し、時刻ｔ５において、基準パルス生成ブロック１００におけるカウンタ１０１のカウント値Ｃｏｕｎｔが「２０３」になるため、パルスｚj 'が出力される。これが、ニューロン１０の出力信号である。
【００９１】
なお、本実施例の乗算ブロック２０が「乗算手段」に相当し、加算ブロック３０が「加算手段」に相当し、正規乱数生成ブロック４０及び非線形変換ブロック５０が「非線形演算手段」に相当し、パルス生成ブロック６０が「パルス生成手段」に相当する。また、正規乱数生成ブロック４０は「乱数生成手段」に、非線形変換ブロック５０は「非線形変換手段」にそれぞれ相当する。
【００９２】
次に、本実施例のニューロン１０の発揮する効果を説明する。
本実施例のニューロン１０を用いてニューラルネットワークを構成すれば、本出願人が特願平１１−３２８３１２号に開示したニューロン（以下「パルス列ニューロン」という。）と同様の効果を得られることは言うまでもない。
【００９３】
すなわち、ディジタル回路を用いたことにより、完全な並列処理が可能となると共に、温度特性や素子形成上のプロセスのばらつきによる影響を受けず、回路を形成することも比較的容易で、信頼性が高くなる。
また、処理対象の信号値をパルスの遅延時間を用いて表現しているため、内部的に遅延時間をマイナス値として処理することによって、興奮性結合と抑制性結合とを１つの信号で表現することができる。その結果、パルス密度を用いた上記公報記載のニューラルネットワークと比べ、シナプス回路と神経回路との接続部分に相当する配線は半分になる。
【００９４】
しかも、本実施例のニューロン１０によれば、パルス列ニューロンと比べて、回路規模を増大させることなく、演算時間を短縮できる。以下、これについて説明する。
パルス列ニューロンでは、例えば２５６個というようなｍ個のパルスからなるパルス列を入出力信号の単位としていた。そして、このｍ個の各パルスは、平均をλとする正規分布に従う遅延時間を有するものであった。このようにした理由は、非線形演算を実現する回路の簡略化にあり、ニューロン内部での非線形演算がカウンタを用いて容易に実現できるからである。すなわち、入力信号としてのパルス列の遅延時間が正規分布に従うため、図１６に示すように、加算器からの出力ｓｉｇｎΣに基づき、加算値の中の正数値を計数するカウンタによって非線形演算が実現できる。
【００９５】
しかしながら、入力信号としてのパルス列で重要なのは各パルスの遅延時間の平均であり、ニューロン内部で正規分布に従う乱数を生成するようにして非線形演算を可能にすれば、パルス列の平均遅延時間を、１つのパルスの遅延時間で置き換えてもよい。すなわち、入出力信号に１つのパルスを用いてもよい。
【００９６】
そこで、本発明では、ニューロン１０の内部に正規乱数生成ブロック４０を備える構成とし、従来と同様の非線形演算を非線形変換ブロック５０にて行うようにした。
この場合、非線形演算の実現に、正規乱数生成ブロック４０が新たに追加されることになるが、パルス列ニューロンでも、非線形演算値を平均遅延時間とするパルス列を出力信号として改めて生成しており、ニューロン内部で正規分布に従う乱数を生成している。具体的には、図１７に示すように、複数のＬＦＳＲを用いて正規分布に従う乱数を出力信号として生成している。
【００９７】
一方、本実施例のニューロン１０では入力信号と同様の１つのパルスを出力信号とするため、パルス生成ブロック６０は、比較器６１とＡＮＤゲート６２を用いた簡単な構成で実現される。
乗算ブロック２０及び加算ブロック３０は、パルス列ニューロンとほぼ同様の構成となっている。
【００９８】
したがって、本実施例のニューロン１０には、正規乱数生成ブロック４０が追加されたものの、パルス生成ブロック６０が簡略化されたため、パルス列ニューロンの回路規模とほぼ同様になっており、回路規模が増大することはない。
演算時間の短縮について言えば、ｍ個のパルス列を信号単位とするパルス列ニューロンでは、ｍ個のパルスが時系列に入力されてはじめて演算がなされる。これに対して、本実施例では、１つのパルスを入力信号としたことによって、演算時間は（１／ｍ）に短縮される。
【００９９】
なお、図５、８、１２に示したタイミングチャートから分かるように、本実施例のニューロン１０では、入力信号から出力信号が得られるまでに、３個の基準パルスＴ（時刻ｔ１，ｔ３，ｔ４）が入力される必要がある。しかしながら、図１３に示すように複数のニューロン１０を組み合わせて階層型ニューラルネットワークを構成した場合には、前層の出力を待つことなくパイプライン処理を行うことができるため、例えば図５において乗算ブロック２０は時刻ｔ１の基準パルスＴに対する入力信号を処理した後、続いて時刻ｔ３の基準パルスに対する次の入力信号を処理できるため、実質的には各基準パルスＴの入力間隔で出力信号が得られることになる。このようなパイプライン処理が回路を機能させる上で最も効率がよいが、例えば基準パルスＴが入力されてから次の基準パルスＴが入力されるまでの間にニューロン１０内部の演算を全て行うように構成することもできる。
【０１００】
以上詳述したように、本実施例のニューロン１０によれば、パルス列ニューロンと比較して、回路規模を増大させることなく、演算時間を大幅に短縮することができる。
また、本実施例のニューロン１０では、二項分布の正規分布近似を利用することによって、乗算ブロック２０がいわゆる加算回路からなる乗算回路を用いることなく構成されている（図３参照）。本出願人が乗算回路を用いて乗算ブロックを構成したときと回路面積を比較したところ、約１／１１の回路面積で乗算ブロック２０を構成することができ、ニューロン１０の回路面積の大幅な削減に寄与する。
【０１０１】
さらにまた、本実施例では、入力信号であるパルスｘi が基準パルスＴよりも遅れて発生することを前提とした。したがって、基準パルスＴに対してパルスｘi が先行する場合を判断する必要がないため、乗算ブロック２０の遅延時間計時部２１の構成が比較的簡単になっている。
【０１０２】
なお、図１０に示した累積分布の関数ｆの傾きが大きくなると、ニューラルネットワークの応答が過敏になることが知られている。制御対象に合わせて、このような関数ｆの傾きを調整したい場合がある。このときは、図１５に示したように、正規乱数生成ブロック４０における基準正規乱数生成部４１の第１の加算器４１ｂによる加算結果の分布範囲を狭くすればよい。図１５中に破線で示す如くである。
【図面の簡単な説明】
【図１】実施例のニューロンの模式図である。
【図２】実施例のニューロンを示す機能ブロック図である。
【図３】乗算ブロックの構成を示す回路図である。
【図４】加算ブロックの構成を示す回路図である。
【図５】乗算ブロック及び加算ブロックの動作を示すタイミングチャートである。
【図６】正規乱数生成ブロックの構成を示す回路図である。
【図７】非線形変換ブロックの構成を示す回路図である。
【図８】正規乱数生成ブロック及び非線形変換ブロックの動作を示すタイミングチャートである。
【図９】一様乱数を実際に加算したときの分布を示す説明図である。
【図１０】非線形変換ブロックの数学的意味を示す説明図である。
【図１１】基本パルス生成ブロック及びパルス生成ブロックの構成を示す回路図である。
【図１２】パルス生成ブロックの動作を示すタイミングチャートである。
【図１３】階層型ニューラルネットワークを説明するための模式図である。
【図１４】一般的なニューロンを説明するための模式図である。
【図１５】正規分布と累積分布との関係を示す説明図である。
【図１６】従来の非線形演算回路を示す説明図である。
【図１７】従来のパルス生成回路を示す説明図である。
【符号の説明】
１０…ニューロン
２０…乗算ブロック
２１…遅延時間計時部
２１ａ…ＳＲフリップフロップ
２１ｂ…ＡＮＤゲート
２２…線形シフトレジスタ
２３…反転スイッチ部
２３ａ…反転ゲート
２４…比較器
２５…アップダウンスイッチ部
２６…アップダウンカウンタ
３０…加算ブロック
３１…加算器
３２…レジスタ
４０…正規乱数生成ブロック
４１…基準正規乱数生成部
４１ａ…線形シフトレジスタ
４１ｂ…第１の加算器
４２…第２の加算器
５０…非線形変換ブロック
５１…カウンタ
５２…レジスタ
６０…パルス生成ブロック
６１…比較器
６２…ＡＮＤゲート
１００…基準パルス生成ブロック
１０１…カウンタ
１０２…ＡＮＤゲート
【図１】
0004568987.tif 000002
【図２】
0004568987.tif 000003
【図３】
0004568987.tif 000004
【図４】
0004568987.tif 000005
【図５】
0004568987.tif 000006
【図６】
0004568987.tif 000007
【図７】
0004568987.tif 000008
【図８】
0004568987.tif 000009
【図９】
0004568987.tif 000010
【図１０】
0004568987.tif 000011
【図１１】
0004568987.tif 000012
【図１２】
0004568987.tif 000013
【図１３】
0004568987.tif 000014
【図１４】
0004568987.tif 000015
【図１５】
0004568987.tif 000016
【図１６】
0004568987.tif 000017
【図１７】
0004568987.tif 000018