(57)【特許請求の範囲】
【請求項１】
揺らぎを有するアナログ量を出力する揺らぎ発生器と、２つのデータのアナログの差分に前記揺らぎ発生器の出力が加わった揺らぎ差分データを出力する揺らぎ差分演算手段と、前記揺らぎ差分演算手段の出力を閾値処理することによりパルスを出力する閾値処理器と、前記閾値処理器から出力されるパルスを検出するパルス検出手段とを備え、
前記２つのデータは、２つのベクトルのそれぞれの要素を表す要素データであり、
前記２つのベクトルが外部から入力される参照ベクトル及び入力ベクトルであり、
前記参照ベクトル及び入力ベクトルの要素に対応する複数の確率的演算回路を有し、
それぞれの前記確率的演算回路が、前記入力される参照ベクトルの要素データを記憶するためのメモリと、前記メモリに記憶された参照ベクトルの要素データと前記入力される入力ベクトルの要素データとのアナログの差分に前記揺らぎ発生器の出力が加わった揺らぎ差分データを出力する前記揺らぎ差分演算手段と、前記閾値処理器とを有し、
前記パルス検出手段は、前記複数の前記確率的演算回路から出力されるパルスを検出する、確率的演算素子。
【請求項２】
前記揺らぎ差分演算手段は、アナログの前記２つのデータの差分を演算する距離演算器と、前記距離演算器の出力と前記揺らぎ発生器の出力とを和算する和算器とを備えている、請求項１記載の確率的演算素子。
【請求項３】
前記揺らぎ差分演算手段は、アナログの前記２つのデータの一方と前記揺らぎ発生器の出力とを和算する和算器と、前記和算器の出力とアナログの前記２つのデータの他方との差分を演算する距離演算器とを備えている、請求項１記載の確率的演算素子。
【請求項４】
前記パルス検出手段が、前記パルスをカウントするカウンタを備えている、請求項１記載の確率的演算素子。
【請求項５】
前記パルス検出手段が、前記パルスの幅を積分する積分器を備えている、請求項１記載の確率的演算素子。
【請求項６】
前記複数の確率的演算回路のパルス出力端は、一端が前記パルス検出手段に接続された共通の配線に互いに並列に接続され、前記共通の配線の、前記複数の確率的演算回路のパルス出力端との接続部の間の部分に遅延回路がそれぞれ設けられている、請求項１記載の確率的演算素子。
【請求項７】
前記複数の確率的演算回路と前記パルス検出手段とを有するベクトル列比較回路を複数備えている、請求項１記載の確率的演算素子。
【請求項８】
前記メモリがアナログメモリであり、アナログの前記参照ベクトルの要素データが前記アナログメモリに記憶される、請求項１記載の確率的演算素子。
【請求項９】
前記アナログメモリは、ゲート電極に強誘電体キャパシタが接続されたソースフォロワ回路を備え、前記強誘電体キャパシタにアナログの前記参照ベクトルの要素データが入力されかつ記憶される、請求項８記載の確率的演算素子。
【請求項１０】
前記ソースフォロワ回路のゲート電極に、さらに常誘電体キャパシタが接続されている、請求項９記載の確率的演算素子。
【請求項１１】
前記揺らぎ差分演算手段は前記２つのデータのアナログの差分又はアナログの前記２つのデータの一方と前記揺らぎ発生回路の出力とを和算する和算器を備え、前記和算器がゲート電極に第１及び第２のキャパシタが並列に接続されたソースフォロワ回路を備え、前記第１のキャパシタに前記揺らぎ発生回路の出力が入力され、前記第２のキャパシタに前記２つのデータのアナログの差分又はアナログの前記２つのデータの一方が入力される、請求項１記載の確率的演算素子。
【請求項１２】
前記和算器のソースフォロワ回路のゲート電極が、スイッチ素子を介して接地端子へ接続されている、請求項１１記載の確率的演算素子。
【請求項１３】
前記カウンタが、リプルカウンタである、請求項１記載の確率的演算素子。
【請求項１４】
前記揺らぎが、カオス揺らぎである、請求項１記載の確率的演算素子。
【請求項１５】
前記揺らぎが、雑音を増幅して得られる揺らぎである、請求項１記載の確率的演算素子。
【請求項１６】
前記揺らぎ発生器は、揺らぎを有する出力として、周期的な出力を発生し、かつ前記周期的出力の１周期間の出力のヒストグラム値がほぼ同等である、請求項１記載の確率的演算素子。
【請求項１７】
前記距離演算器は減算素子を備え、
前記減算素子は、ゲート電極に並列に２つのキャパシタが接続されたソースフォロワ回路を備え、かつ前記２つキャパシタのキャパシタンスが等しくC1であるとし、前記ソースフォロワ回路を構成するNＭＩＳ及びPＭＩＳのキャパシタンスをそれぞれCN、CPとし、前記ソースフォロワ回路へ電圧を入力したときに低電圧側の電圧源の電位より電位が上昇を開始する電圧をVLowとするとき、
電圧VZをVZ=VLow/［２C1/（２C1＋CN+CP)]の式で演算し、かつ前記２つのデータはそれぞれ電圧で表されかつその電圧をVaとVbとするとき、V1=VZ-Vaなる電圧とV2＝VZ+Vbなる電圧とを前記２つのキャパシタのソースフォロワ回路のゲート電極に接続されていない方の電極にそれぞれ印加することにより、Va-Vbの演算においてVa≧Vbの場合の減算を実行する、請求項２記載の確率的演算素子。
【請求項１８】
前記距離演算器は、前記減算素子を２つ備え、前記２つのデータをそれぞれVin、Vrefとするとき、前記２つの減算素子の一方にはVa=Vin、Vb=Vrefとして出力VM1を得、前記２つの減算素子の他方にはVa=Vref、Vb=Vinとして出力VM2を得、かつ電圧VM1とVM2を前記和算器へ入力することにより、VinとVrefの差の絶対値を演算する、請求項１７記載の確率的演算素子。
【請求項１９】
前記閾値処理器が、ＣＭＩＳインバータで構成されている、請求項１記載の確率的演算素子。
【請求項２０】
前記閾値処理器の直前にスイッチ素子が設けられている、請求項１記載の確率的演算素子。
【請求項２１】
前記閾値処理器の電源供給配線の電流を検出する電流検出器と、前記電流検出器の出力に基づいて前記揺らぎ発生器の出力を制御する揺らぎ発生器制御回路とをさらに備えている、請求項１９記載の確率的演算素子。
【請求項２２】
前記揺らぎ発生器制御回路は、前記電流検出器により検出される電流が所定値より小さい場合に、前記揺らぎ発生器の揺らぎ幅を増加させる、請求項２１記載の確率的演算素子。
【請求項２３】
前記揺らぎ発生器制御回路は、前記電流検出器により検出される電流が所定値より小さい場合に、前記揺らぎ発生器の出力に、その平均値が前記閾値処理器の閾値に近づくよう正又は負のバイアスを付加する、請求項２１記載の確率的演算素子。
【請求項２４】
外部から入力される参照ベクトル及び入力ベクトルの要素に対応する複数の確率的演算回路と、パルス検出手段と、前記複数の確率的演算回路及び前記パルス検出手段を有する所定数のベクトル列比較回路とを備え、
それぞれの前記確率的演算回路が、揺らぎを有するアナログ量を出力する揺らぎ発生器と、前記入力される参照ベクトルの要素データを記憶するためのメモリと、前記メモリに記憶された参照ベクトルの要素データと前記入力される入力ベクトルの要素データとのアナログの差分に前記揺らぎ発生器の出力が加わった揺らぎ差分データを出力する揺らぎ差分演算手段と、前記揺らぎ差分演算手段の出力を閾値処理することによりパルスを出力する閾値処理器とを有し、
前記パルス検出手段が、前記複数の確率的演算回路の閾値処理器から出力されるパルスを検出し、それにより、前記入力ベクトルと前記参照ベクトルとの距離を検出する確率的演算素子の駆動方法であって、
前記ベクトル列比較回路の列数が参照ベクトルの列数より少ない場合に、前記入力ベクトルとの距離が近い前記参照ベクトルをｋ個（ｋは自然数）抽出するとき、
前記ベクトル列比較回路の列数以下の数の前記参照ベクトルを前記ベクトル列比較回路の複数の確率的演算回路のメモリに書き込み、この書き込んだ参照ベクトルから前記上位ｋ個の参照ベクトルを抽出し、次いで、この参照ベクトルが抽出されたベクトル列比較回路以外のベクトル列比較回路に残りの前記参照ベクトルの少なくとも一部を書き込んで前記抽出を行う、確率的演算素子の駆動方法。
【請求項２５】
前記参照ベクトルの書き込み及び前記抽出動作をさらに繰り返す、請求項２４記載の確率的演算素子の駆動方法。
【請求項２６】
請求項１記載の確率的演算素子と、外部から入力される認識対象情報の特徴を抽出し、該抽出された特徴を前記入力ベクトルとして前記確率的演算素子に入力する特徴抽出回路と、前記認識対象情報の特徴をベクトル化した参照ベクトル群を格納するメモリとを備え、
前記確率的演算素子が、前記メモリに格納された参照ベクトル群のうちから前記入力ベクトルに対応する参照ベクトルを特定することにより、認識対象情報を認識する、認識処理装置。
【請求項２７】
前記認識対象情報が音声である、請求項２６記載の認識処理装置。
【請求項２８】
前記参照ベクトル群は、音声の特徴量が時系列的に配置されたベクトル群からなり、かつ人間にとって同じであると認識される音声の特徴量が互いに時系列的にずれて配置された複数列のベクトルを有している、請求項２７記載の認識処理装置。
【請求項２９】
前記認識対象情報が画像である、請求項２６記載の認識処理装置。
【請求項３０】
前記参照ベクトル群は、人間にとって同じものと認識されるが数値的には異なる画像の特徴量がベクトル化されたベクトル群からなる、請求項２９記載の認識処理装置。
【請求項３１】
前記人間にとって同じものと認識される画像が人間の部位であり、前記数値的に異なる画像の特徴量が前記人間の部位間の距離である、請求項３０記載の認識処理装置。
【請求項３２】
前記認識対象情報が人間の行動であり、前記認識された行動を出力する、請求項２６記載の認識処理装置。
【請求項３３】
前記参照ベクトル群は、人間の活動情報を数値化したデータがベクトル化されたベクトル群からなる、請求項３２記載の認識処理装置。
【請求項３４】
前記出力された行動に対する反応が好意的な場合には、前記出力された行動に対応する参照ベクトルが選択されやすくなるよう該参照ベクトルの値の少なくとも一部を変更し、前記反応が否定的な場合には前記出力された行動に対応する参照ベクトルが選択されにくくなるように該参照ベクトルの値の少なくとも一部を変更する、請求項３３記載の認識処理装置。
【請求項３５】
前記活動情報は、電気機器の操作履歴、赤外線センサ出力、
室温センサ出力、湿度センサ出力、体温センサ出力、脳波センサ出力、脈拍センサ出力、視線センサ出力、発汗センサ出力、筋電位センサ出力、日時情報、曜日情報、及び認識処理装置の出力の少なくともいずれかを含む、請求項３４記載の認識処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、新規動作原理に基づく確率的演算素子に関し、特に認識処理で必須の演算であるベクトルマッチングを高速に演算することができる確率的演算素子と、これを用いた認識処理装置を提供するものである。
【背景技術】
【０００２】
近年のパーソナルコンピュータ（ＰＣ）の普及に見られるように、演算素子も家庭内での使用が大幅に増加して、単なる数値演算のみならず、インターネット、メール、及び画像処理など、個人的な用途での使用分野が増加しつつある。
【０００３】
しかしながら、これほど高速に演算できるようになったＰＣにおいても、全ての演算に対して十分な速度が得られているわけではない。例えば、人の発する声や言語を認識したり、カメラに写った人が誰であるかを認識するといった処理は、膨大な量の演算を行う必要があるため、実時間（リアルタイム）での処理は困難である。
【０００４】
このような認識処理の基本は、記憶されている音声や顔などの情報をベクトル化して記憶しておき、入力情報を同様にベクトル化してこれらの近似を検出し、どれに最も近いかという演算を行うことである。このようなベクトル比較処理は、連想メモリや、ベクトル量子化、動き予測等のパターン認識や、データ圧縮等の幅広い情報処理に利用され得る基本的な処理である。
【０００５】
このようなベクトル比較はいずれの用途においても膨大な演算量を要し、また従来のＰＣに代表されるノイマン型コンピュータでは、その原理上、全てのベクトル比較演算を一旦終了しないと、どれが一番近いかを抽出できず、結果として非常に時間を要してしまう。
【０００６】
一方、人間はこれらの認識処理を何の苦もなく直ちに行うことができる。このことから、従来のコンピュータと異なる処理原理のコンピュータの創出により、これらの処理を高速に実行し、従来のコンピュータを補完する必要があると考えられる。
【０００７】
このような新規な演算原理に基づく演算素子の一例として、公知の「情報処理構造体」（例えば、特許文献１参照）が挙げられる。
【０００８】
図４０はこの従来の演算素子の構造を模式的に示す斜視図である。図４０に示すように、この従来の演算素子２２０では、微細なＭＩＳＦＥＴ２１１のゲート電極２１２に対向するように電源電極２１４が配置され、両電極２１２，２１４の間にナノメータスケールの大きさの複数個の量子ドット２１３，２２１が形成されている。具体的には、ゲート電極２１２の幅方向（ゲート幅方向）に一定のピッチで一対の情報電極２２２が配置され、各対の情報電極２２２の間に複数の量子ドット２２１が列状に配置されている。符号３０１は情報電極２２２及び量子ドット２２１が配置されている仮想平面を示す。この列状に配置された量子ドット２２１とゲート電極２１２との間に、さらに量子ドット２１３が配置されている。これにより、各量子ドット２２１とゲート電極２１２との間に電子が直接トンネルできるエネルギー障壁が形成されている。
【０００９】
図４１(a),(b)はこの従来の演算素子２２０の演算原理を等価回路で示した模式図である。
【００１０】
図４１(a),(b)において、各対の情報電極２２２には入力パターン（入力ベクトル）と参照パターン（参照ベクトル）とにそれぞれ対応する電圧が入力される。これらの電圧は、１及び０の２値のいずれかを取るデジタル電圧である。このような電圧が、量子ドット２２１を挟む各対の情報電極２２２にそれぞれ入力されると、各対の情報電極２２２で決定される電位によって、電子が中央付近にとどまる（図４１(a)）か、又は移動するか（図４１(b)）が確率的に生じ、これによりＭＩＳＦＥＴ（Metal Insulator Field Effect Transistor）のドレイン電流が変化する。
【００１１】
そして、ドレイン電流を観測しつづけることで、確率が時間とともに向上するため、厳密な演算の結果に近い解を得ることができるものである。
【特許文献１】
特開２００１−３１３３８６公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来の演算素子２２０は、第１に、量子ドット２１３，２２１を用いるため、まず量子ドット２１３，２２１の製造プロセスの確立を待たなければならず、現状の半導体プロセス技術以外の技術を必要とするという点で煩雑である。
【００１３】
また、ベクトルの比較においても、いわゆる２値情報の比較であったため、ハミング距離を求めるには有効ではあるが、実際の情報処理で頻繁に用いられるマンハッタン距離（差の絶対値）などを演算するのが難しいという課題を有している。
【００１４】
さらに、上記従来の演算素子２２０では、各対の情報電極２２２に、比較する２つのベクトル（入力ベクトル及び参照ベクトル）の各要素（元）に対応する電圧が入力され、各対の情報電極２２２において各要素の差分の演算がアナログ的かつ確率的に遂行されて、その各要素の差分の総和がＭＩＳＦＥＴ２１１のドレイン電流として現れる。そして、そのドレイン電流の大きさによって２つのベクトルの相違、換言すれば近似度が判定される。従って、比較しようとするベクトルの要素が多くなるに従って、ドレイン電流を高い精度で検出することが必要とされ、近似度の判定が困難になるという課題を有している。
【００１５】
本発明は上記のような課題を解決するためになされたもので、現状の半導体プロセス技術で作製可能な確率的演算素子、その駆動方法、及びこれを用いた認識処理装置を提供することを第１の目的としている。
【００１６】
また、本発明はマンハッタン距離を演算可能な確率的演算素子、その駆動方法、及びこれを用いた認識処理装置を提供することを第２の目的としている。
【００１７】
また、本発明は比較しようとするベクトルの要素が多くても、容易に近似度を判定することが可能な確率的演算素子、その駆動方法、及びこれを用いた認識処理装置を提供することを第３の目的としている。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明に係る確率的演算素子は、揺らぎを有するアナログ量を出力する揺らぎ発生器と、２つのデータのアナログの差分に前記揺らぎ発生器の出力が加わった揺らぎ差分データを出力する揺らぎ差分演算手段と、前記揺らぎ差分演算手段の出力を閾値処理することによりパルスを出力する閾値処理器と、前記閾値処理器から出力されるパルスを検出するパルス検出手段とを備え、前記２つのデータは、２つのベクトルのそれぞれの要素を表す要素データであり、前記２つのベクトルが外部から入力される参照ベクトル及び入力ベクトルであり、前記参照ベクトル及び入力ベクトルの要素に対応する複数の確率的演算回路を有し、それぞれの前記確率的演算回路が、前記入力される参照ベクトルの要素データを記憶するためのメモリと、前記メモリに記憶された参照ベクトルの要素データと前記入力される入力ベクトルの要素データとのアナログの差分に前記揺らぎ発生器の出力が加わった揺らぎ差分データを出力する前記揺らぎ差分演算手段と、前記閾値処理器とを有し、前記パルス検出手段は、前記複数の前記確率的演算回路から出力されるパルスを検出する。
このような構成とすると、２つのデータのアナログの差分を演算するので、マンハッタン距離を演算することができる。また、２つのデータのアナログの差分に揺らぎが加わった揺らぎ差分データを閾値処理してパルスを出力するので、２つのデータの差を高速に演算することができる。また、在来の回路素子で構成可能であるので、現状の半導体プロセス技術で作製可能である。
このような構成とすると、ベクトルの要素間の差の演算が並列に遂行されるので、入力ベクトルと参照ベクトルとの距離すなわち近似度を高速に検出することができる。しかも、入力ベクトル及び参照ベクトルの要素間の差がパルスで出力され、入力ベクトル及び参照ベクトルの近似度がそのパルスの総和として検出されるので、比較対象のベクトルの要素が多くても、容易に近似度を判定することができる。
【００１９】
前記揺らぎ差分演算手段は、アナログの前記２つのデータの差分を演算する距離演算器と、前記距離演算器の出力と前記揺らぎ発生器の出力とを和算する和算器とを備えていてもよい。
【００２０】
前記揺らぎ差分演算手段は、アナログの前記２つのデータの一方と前記揺らぎ発生器の出力とを和算する和算器と、前記和算器の出力とアナログの前記２つのデータの他方との差分を演算する距離演算器とを備えていてもよい。
【００２１】
前記パルス検出手段が、前記パルスをカウントするカウンタを備えていてもよい。このような構成とすると、パルスの数によって２つのデータの差を精度よく検出することができる。
【００２２】
前記パルス検出手段が、前記パルスの幅を積分する積分器を備えていてもよい。このような構成とすると、パルスの数のみならすその幅をも検出できるので、２つのデータの差をより高精度で検出することができる。
【００２５】
前記複数の確率的演算回路のパルス出力端は、一端が前記パルス検出手段に接続された共通の配線に互いに並列に接続され、前記共通の配線の、前記複数の確率的演算回路のパルス出力端との接続部の間の部分に遅延回路がそれぞれ設けられていてもよい。このような構成とすると、各確率的演算回路からパルスが同じタイミングで出力されても、精度よくパルスの総和を検出することができる。
【００２６】
前記複数の確率的演算回路と前記パルス検出手段とを有するベクトル列比較回路を複数備えていてもよい。このような構成とすると、入力ベクトルを一度に複数の参照ベクトルと比較することができる。
【００２７】
前記メモリがアナログメモリであり、アナログの前記参照ベクトルの要素データが前記アナログメモリに記憶されてもよい。このような構成とすると、参照ベクトルを予め書き込んでおいて、入力ベクトルをこれと比較することができる。
【００２８】
前記アナログメモリは、ゲート電極に強誘電体キャパシタが接続されたソースフォロワ回路を備え、前記強誘電体キャパシタにアナログの前記参照ベクトルの要素データが入力されかつ記憶されてもよい。
【００２９】
前記ソースフォロワ回路のゲート電極に、さらに常誘電体キャパシタが接続されていてもよい。このような構成とすると、ソースフォロワ回路のサイズを周辺回路のサイズと同等にできるため、製造しやすくなる。
【００３０】
前記揺らぎ差分演算手段は前記２つのデータのアナログの差分又はアナログの前記２つのデータの一方と前記揺らぎ発生回路の出力とを和算する和算器を備え、前記和算器がゲート電極に第１及び第２のキャパシタが並列に接続されたソースフォロワ回路を備え、前記第１のキャパシタに前記揺らぎ発生回路の出力が入力され、前記第２のキャパシタに前記２つのデータのアナログの差分又はアナログの前記２つのデータの一方が入力されてもよい。
【００３１】
前記和算器のソースフォロワ回路のゲート電極が、スイッチ素子を介して接地端子へ接続されていてもよい。このような構成とすると、ソースフォロワ回路のゲート電極の電荷を除去することができる。
【００３２】
前記カウンタが、リプルカウンタであってもよい。このような構成とすると、簡便にパルス数をカウントできるだけでなく、リプルカウンタの上位ビットをフラグとすることで、先にフラグが立ったベクトル列を容易に特定することが可能になる。
【００３３】
前記揺らぎが、カオス揺らぎであってもよい。
【００３４】
前記揺らぎが、雑音を増幅して得られる揺らぎであってもよい。
【００３５】
前記揺らぎ発生器は、揺らぎを有する出力として、周期的な出力を発生し、かつ前記周期的出力の１周期間の出力のヒストグラム値がほぼ同等であってもよい。
【００３６】
前記距離演算器は減算素子を備え、前記減算素子は、ゲート電極に並列に２つのキャパシタが接続されたソースフォロワ回路を備え、かつ前記２つキャパシタのキャパシタンスが等しくC1であるとし、前記ソースフォロワ回路を構成するNＭＩＳ及びPＭＩＳのキャパシタンスをそれぞれCN、CPとし、前記ソースフォロワ回路へ電圧を入力したときに低電圧側の電圧源の電位より電位が上昇を開始する電圧をVLowとするとき、  電圧VZをVZ=VLow/[２C1/（２C1＋CN+CP)]の式で演算し、かつ前記２つのデータはそれぞれ電圧で表されかつその電圧をVaとVbとするとき、V1=VZ-Vaなる電圧とV2＝VZ+Vbなる電圧とを前記２つのキャパシタのソースフォロワ回路のゲート電極に接続されていない方の電極にそれぞれ印加することにより、Va-Vbの演算においてVa≧Vbの場合の減算を実行してもよい。
【００３７】
前記距離演算器は、前記減算素子を２つ備え、前記２つのデータをそれぞれVin、Vrefとするとき、前記２つの減算素子の一方にはVa=Vin、Vb=Vrefとして出力VM1を得、前記２つの減算素子の他方にはVa=Vref、Vb=Vinとして出力VM2を得、かつ電圧VM1とVM2を前記和算器へ入力することにより、VinとVrefの差の絶対値を演算してもよい。
【００３８】
前記閾値処理器が、ＣＭＩＳインバータで構成されていてもよい。
【００３９】
前記閾値処理器の直前にスイッチ素子が設けられていてもよい。
【００４０】
前記閾値処理器の電源供給配線の電流を検出する電流検出器と、前記電流検出器の出力に基づいて前記揺らぎ発生器の出力を制御する揺らぎ発生器制御回路とをさらに備えていてもよい。このような構成とすると、パルスが発生しているか否かをチェックし、その結果に応じて揺らぎを調整することにより、効率的かつ高精度に確率演算を実行することができる。
【００４１】
前記揺らぎ発生器制御回路は、前記電流検出器により検出される電流が所定値より小さい場合に、前記揺らぎ発生器の揺らぎ幅を増加させてもよい。
【００４２】
前記揺らぎ発生器制御回路は、前記電流検出器により検出される電流が所定値より小さい場合に、前記揺らぎ発生器の出力に、その平均値が前記閾値処理器の閾値に近づくよう正又は負のバイアスを付加してもよい。
【００４３】
また、本発明に係る確率的演算素子の駆動方法は、外部から入力される参照ベクトル及び入力ベクトルの要素に対応する複数の確率的演算回路と、パルス検出手段と、前記複数の確率的演算回路及び前記パルス検出手段を有する所定数のベクトル列比較回路とを備え、それぞれの前記確率的演算回路が、揺らぎを有するアナログ量を出力する揺らぎ発生器と、前記入力される参照ベクトルの要素データを記憶するためのメモリと、前記メモリに記憶された参照ベクトルの要素データと前記入力される入力ベクトルの要素データとのアナログの差分に前記揺らぎ発生器の出力が加わった揺らぎ差分データを出力する揺らぎ差分演算手段と、前記揺らぎ差分演算手段の出力を閾値処理することによりパルスを出力する閾値処理器とを有し、前記パルス検出手段が、前記複数の確率的演算回路の閾値処理器から出力されるパルスを検出し、それにより、前記入力ベクトルと前記参照ベクトルとの距離を検出する確率的演算素子の駆動方法であって、前記ベクトル列比較回路の列数が参照ベクトルの列数より少ない場合に、前記入力ベクトルとの距離が近い前記参照ベクトルをｋ個（ｋは自然数）抽出するとき、前記ベクトル列比較回路の列数以下の数の前記参照ベクトルを前記ベクトル列比較回路の複数の確率的演算回路のメモリに書き込み、この書き込んだ参照ベクトルから前記上位ｋ個の参照ベクトルを抽出し、次いで、この参照ベクトルが抽出されたベクトル列比較回路以外のベクトル列比較回路に残りの前記参照ベクトルの少なくとも一部を書き込んで前記抽出を行う。このような構成とすると、ベクトル列比較回路の列数が参照ベクトルの列数より少ない場合でも、入力ベクトルとの距離が近い参照ベクトルを、高速に所定数抽出することができるので、それにより、素子数の有限性を補完することができる。
【００４４】
前記参照ベクトルの書き込み及び前記抽出動作をさらに繰り返してもよい。
【００４５】
また、本発明に係る認識処理装置は、請求項１記載の確率的演算素子と、外部から入力される認識対象情報の特徴を抽出し、該抽出された特徴を前記入力ベクトルとして前記確率的演算素子に入力する特徴抽出回路と、前記認識対象情報の特徴をベクトル化した参照ベクトル群を格納するメモリとを備え、前記確率的演算素子が、前記メモリに格納された参照ベクトル群のうちから前記入力ベクトルに対応する参照ベクトルを特定することにより、認識対象情報を認識する。このような構成とすると、確率的演算素子が高速にベクトルの比較演算を遂行するので、高速に認識処理を行うことができる。
【００４６】
前記認識対象情報が音声であってもよい。
【００４７】
前記参照ベクトル群は、音声の特徴量が時系列的に配置されたベクトル群からなり、かつ人間にとって同じであると認識される音声の特徴量が互いに時系列的にずれて配置された複数列のベクトルを有していてもよい。
【００４８】
前記認識対象情報が画像であってもよい。
【００４９】
前記参照ベクトル群は、人間にとって同じものと認識されるが数値的には異なる画像の特徴量がベクトル化されたベクトル群からなっていてもよい。
【００５０】
前記人間にとって同じものと認識される画像が人間の部位であり、前記数値的に異なる画像の特徴量が前記人間の部位間の距離であってもよい。
【００５１】
前記認識対象情報が人間の行動であり、前記認識された行動を出力してもよい。
【００５２】
前記参照ベクトル群は、人間の活動情報を数値化したデータがベクトル化されたベクトル群からなっていてもよい。
【００５３】
前記出力された行動に対する反応が好意的な場合には、前記出力された行動に対応する参照ベクトルが選択されやすくなるよう該参照ベクトルの値の少なくとも一部を変更し、前記反応が否定的な場合には前記出力された行動に対応する参照ベクトルが選択されにくくなるように該参照ベクトルの値の少なくとも一部を変更してもよい。
【００５４】
前記活動情報は、電気機器の操作履歴、赤外線センサ出力、室温センサ出力、湿度センサ出力、体温センサ出力、脳波センサ出力、脈拍センサ出力、視線センサ出力、発汗センサ出力、筋電位センサ出力、日時情報、曜日情報、及び認識処理装置の出力の少なくともいずれかを含んでいてもよい。
【発明の効果】
【００５５】
本発明は、以上に説明したような構成を有し、現状の半導体プロセス技術で作製可能な確率的演算素子を提供できるという効果を奏する。
【００５６】
また、本発明はマンハッタン距離を演算可能な確率的演算素子を提供できるという効果を奏する。
【００５７】
また、本発明は比較しようとするベクトルの要素が多くても、容易に近似度を判定することが可能な確率的演算素子を提供できるという効果を奏する。
【発明を実施するための最良の形態】
【００５８】
以下、本発明の実施の形態について、図面を参照しながら説明する。
（実施形態１）
図１は本発明の実施形態１に係る確率的演算素子の構成を示す回路図である。
【００５９】
本実施形態の確率的演算素子１は、入力ベクトルと参照ベクトルの２つのベクトルの対応する要素間の距離に応じて発生するパルス数又はパルス幅を変化できるベクトル列比較回路Ｃｎを基本セルとし、同じベクトル列について、基本セルからのパルス出力をカウントすることで、ベクトル間の距離を並列的に高速に演算する素子である。
【００６０】
特に本実施形態においては、基本セルからのパルス出力を得るために、例えばカオスなどに見られるランダムな信号を重畳する場合を例示している。なお、本実施形態では、ベクトルデータを表す物理量として電圧を用いる場合について説明する。また、ベクトル間の違いである距離については、マンハッタン距離の場合について説明する。すなわち、ベクトル要素の差の絶対値を距離として演算する場合について説明する。
【００６１】
図１において、確率的演算素子１は、ベクトル列比較回路Ｃｐと、入力電圧出力器１３と、揺らぎ発生器１５と、カウント数取得器１９と、フラグ検出器１７とを有している。
【００６２】
ベクトル列比較回路Ｃｐはｍ列（本実施形態では、例えば１０００列）設けられている。以下では、ｙ（ｙは１〜ｍの自然数）列のベクトル列比較回路Ｃｐを特定して指す場合には添え字ｙを付してＣｐｙと表記し、任意のベクトル列比較回路Ｃｐを指す場合には添え字を付さずにＣｐと表記する。
【００６３】
各ベクトル列比較回路Ｃｐは、ｎ個（本実施形態では、例えば１４個）の確率的演算回路Ｃｃと、遅延回路７と、スイッチＳと、カウンタＣｔとを有している。１つのベクトル列比較回路Ｃｐにおける確率的演算回路Ｃｃは、比較すべきベクトルの要素に対応して設けられている。従って、この確率的演算素子１では２以上ｎ個以下の要素を有するベクトルを比較することができる。そして、後述するように、ベクトル列比較回路Ｃｐ１〜Ｃｐｍの全体にはｍ個の入力ベクトルが書き込まれるが、あるベクトル列比較回路Ｃｐに書き込まれた入力ベクトルをベクトル列と呼ぶ。
【００６４】
確率的演算回路Ｃｃは、ｍ列のベクトル列比較回路Ｃｐの全体においては、ｎ行ｍ列のマトリクス状に配置されているので、図１に示すように、１つのベクトル列比較回路Ｃｐにおいては行で特定し、ｘ（ｘは１〜ｎの自然数）行の確率的演算回路Ｃｃを特定して指す場合には添え字ｘを付してＣｃｘと表記し、任意の確率的演算回路Ｃｃを指す場合には添え字を付さずにＣｃと表記する。また、ｙ列のスイッチＳ及びカウンタＣｔを特定して指す場合には、それぞれ、添え字ｙを付してＳｔｙ及びＣｔｙと表記し、任意のスイッチＳ及びカウンタＣｔを指す場合には添え字を付さずにＳ及びＣｔと表記する。
【００６５】
遅延回路７は、例えば、インバータで構成される。そして、隣り合う確率的演算回路Ｃｃの出力端子が遅延回路７を介して相互に接続され、最終行の確率的演算回路Ｃｃｎ出力端子がスイッチＳを介してカウンタＣｔに接続されている。
【００６６】
入力電圧出力器１３は、入力ベクトル及び参照ベクトルの要素からなる入力データをそれぞれ電圧に変換して、これを、ベクトルの要素毎に、その要素に対応する確率的演算回路Ｃｃ１〜Ｃｃｎにそれぞれ出力する。入力電圧出力器１３は、入力データを後述する式で計算して出力する。
【００６７】
揺らぎ発生器１５は、揺らぎを有する電圧（以下、揺らぎ電圧という）を出力する機能を有し、これを全列のベクトル列比較回路Ｃｐ１〜Ｃｐｍの全行の確率的演算回路Ｃｃ１〜Ｃｃｎにそれぞれ出力する。
【００６８】
各ベクトル列比較回路Ｃｐでは、確率的演算回路Ｃｃ１〜Ｃｃｎが後述するパルスをそれぞれ出力する。この確率的演算回路Ｃｃ１〜Ｃｃｎから出力されるパルスは、遅延回路７により、互いに重複しないように調整されている。すなわち、スイッチＳがＯｎ状態の時、ある揺らぎ電圧がベクトル列比較回路Ｃｐへ入力され、それより、全行の確率的演算回路Ｃｃ１〜Ｃｃｎがパルスを出力した場合でも、カウンタＣｔには所定の間隔でパルス列が、ｎ個（本実施形態では１４個）入力することになる。
【００６９】
カウンタＣｔはこのパルス数をカウントする。本実施形態では、カウンタＣｔとして、例えば後述するようなＤフリップフロップを用いた非同期式リプルカウンタを用いている。
【００７０】
カウンタＣｔは、例えば、その最上位ビットをフラグ検出器１７へ出力する。これにより、フラグ検出器１７は、全てのベクトル列比較回路Ｃｐ１〜Ｃｐｍに属するカウンタＣｔ１〜Ｃｔｍのうち、最初に所定のカウント数に達したカウンタＣｔ１〜Ｃｔｍ、ひいてはベクトル列比較回路Ｃｐ１〜Ｃｐｍを検出することができる。これにより、入力ベクトルのうち、参照ベクトルとの近似度が所定程度以上高い入力ベクトルを高速に抽出することができる。
【００７１】
一方、カウンタＣｔのカウント数はカウント数取得器１９に出力されており、カウント数取得器１９は、全てのベクトル列比較回路Ｃｐ１〜Ｃｐｍの出力を取得する。
【００７２】
精度よりもむしろ解の出力までの時間が短いことが要求される場合には、例えば、カウント数取得器１９により取得した各ベクトル列比較回路Ｃｐ１〜Ｃｐｍのカウント数を図示しない比較器で比較し、それにより、参照ベクトルとの近似度が高い入力ベクトルをその順に抽出するようにしてもよい。確率的演算回路Ｃｃに比してベクトル列比較回路Ｃｐの数は圧倒的に少ないため、このような比較は従来のコンピュータでも十分高速に実行することができる。
【００７３】
次に、本実施形態の確率的演算素子を構成する個別素子の構成例を説明する。
【００７４】
図２は図１の揺らぎ発生器１５の構成例を示すブロック図である。
【００７５】
図２に示すように、揺らぎ発生器１５は、演算器２１と遅延回路２３とを有している。本発明における揺らぎとはアナログ量（物理量）の不規則又は規則的な変動であって以下の条件を満たすものをいう。不規則な変動の場合は、その変動するアナログ量の平均値に時間軸上における偏りが実質的に存在しないことが必要である。規則的な変動の場合は、周期的な変動の変動幅が所定の周期で変動し、その周期的に変動するアナログ量のその所定の周期内における平均値に時間軸上における偏りが実質的に存在しないことが必要である。以下では、不規則な揺らぎを説明し、規則的な揺らぎについては実施形態８で説明する。
【００７６】
このような揺らぎを発生する回路は、近年、乱数発生回路やカオス発生回路などにおいて広く研究がなされており、例えばＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ−Ｉ：Ｆｕｎｄａｍｅｎｔａｌ  ｔｈｅｏｒｙ  ａｎｄ  ａｐｐｌｉｃａｔｉｏｎｓ，  Ｖｏｌ．４７，  Ｎｏ．１１，  Ｎｏｖｅｍｂｅｒ  ２０００，  ｐｐ．１６５２−１６５７，  ”ＣＭＯＳ  ｃｉｒｃｕｉｔｓ  ｇｅｎｅｒａｔｉｎｇ  ａｒｂｉｔｒａｒｙ  ｃｈａｏｓ  ｂｙ  ｕｓｉｎｇ  ｐｕｌｓｅｗｉｄｔｈ  ｍｏｄｕｌａｔｉｏｎ  ｔｅｃｈｎｉｑｕｅｓ”に記載のＭｏｒｉｅらのカオス発生回路などを用いることができる。
【００７７】
カオスにはいくつかの種類が報告されているが、図２にはロジスティックカオスを発生する構成例を示している。図２の演算器２１は入力ベクトルデータｘ（ｔ）に対して次の式で演算を実行する。
【００７８】
【数１】
0003708113.tif 000002
【００７９】
ここにａは定数であり、例えば３．９６などである。ある時点での入力電圧Ｖをｘ（ｔ）とし、これを式（１）に従い演算した結果を出力電圧ｘ（ｔ＋１）とする。さらにこのｘ（ｔ＋１）を遅延回路２３により次のステップの入力とすることで、カオス揺らぎの電圧を発生することができる。
【００８０】
なお、図示しないが、このようなカオス発生回路を用いずとも、例えば半導体基板に生ずる熱雑音を増幅しても同様にランダムな電圧を得ることができる。
【００８１】
図３は図１のカウンタＣｔの構成例を示す回路図である。
【００８２】
図３において、符号２５はＤフリップフロップを示す。本実施の形態では、カウンタＣｔは、いわゆるＤフリップフロップを用いた、非同期式カウンタにより構成されている。電圧パルスＶｐｕｌがカウンタＣｔに入力されると、２進的にＤ0、Ｄ1……ＤnのＨｉｇｈ出力が切り替わっていく。ここで、例えば最大カウント数に達したベクトル列を検出したいのであれば、Ｄnの出力をフラグ検出器１７へ接続しておき、最初にＤnがＨｉｇｈとなったベクトル列を検出すればよいことになる。また、全てのベクトル列の中から参照ベクトルに近いものを複数抽出したい場合には、フラグ検出器１７において、Ｈｉｇｈとなったフラグ数を常時カウントしておけばよい。
【００８３】
また最上位ビット（桁）をフラグとせずにさらに下位ビットの出力を検出すれば、確率的にフラグはより早くＨｉｇｈとなるので、演算速度を優先することができる。
【００８４】
なお、前述のように、このようなフラグ検出１７を用いずとも、カウント数そのものをカウント数取得器１９により取得し、図示しない比較器で比較してもよい。
【００８５】
図４は図１の確率的演算回路Ｃｃの構造をより詳細に示すブロック図である。
【００８６】
図４において、確率的演算回路Ｃｃは、データ記憶部４１と、距離演算器４３と、和算器４５と、閾値処理器４７とを有している。そして、距離演算器４３と和算器４５とが揺らぎ差分演算手段４０１を構成している。データ記憶部４１には、図示されない配線により、１つの参照ベクトルデータ（正確には参照ベクトルの要素のデータ）が書き込まれる。距離演算器４３は、入力電圧出力器１３から出力される入力ベクトルデータ（正確には入力ベクトルの要素のデータ）とデータ記憶部４１に記憶された参照ベクトルデータの差の絶対値に比例した電圧を出力する。和算器４５は、距離演算器４３の出力と揺らぎ発生器１５の出力の和の大きさに比例した電圧を出力、すなわち重畳電圧を出力する。
【００８７】
ここで、本発明において和算とは、このように、複数のアナログ量の和に比例したアナログ量を演算することをいう。
【００８８】
閾値処理器４７は、和算器４５の出力に対し閾値処理を実行する。閾値処理器４７の出力は図１に示すように、直接又は遅延回路７を介してスイッチ９へ出力される。
【００８９】
図５は図４のデータ記憶部４１の構成例を示すブロック図である。図５において、データ記憶部４１は、演算・Ｄ／Ａ変換器５３、スイッチ５５、及びアナログメモリ５７を有している。符号５１はデジタルの参照ベクトルデータ（正確には参照ベクトルの要素のデータ）を示す。この参照ベクトルデータは、例えばＤＲＡＭやフラッシュメモリ、さらにはハードディスクなどの外部記憶装置などに格納されている。
【００９０】
データ記憶部４１は、デジタルの参照ベクトルデータ５１を、演算・Ｄ／Ａ変換器５３において後述する簡単な演算をデジタルで実行するとともにこれを物理量（本実施形態では電圧）で表されたアナログの参照ベクトルデータに変換し、このアナログの参照ベクトルデータをスイッチ５５によりパルス的にアナログメモリ５７へ入力することで、アナログの参照ベクトルデータを記憶している。ここでアナログメモリ５７はリセット信号を入力する手段も具備している。本発明においては、アナログとは、データ（例えば数値）を連続する物理量（例えば電圧）を用いて表すことをいう。
【００９１】
図６は、本実施形態のアナログメモリセルアレイの構成の一例を示す回路図である。
【００９２】
図６において、符号５９（１）、５９（２）・・・は配線を示す。
図５のアナログメモリ５７は、マトリクス状に配置された図１の確率的演算回路Ｃｃが、それぞれ１つづつ備えている。従って、アナログメモリ５７も、確率的演算回路Ｃｃに対応してマトリクス状に配置されており、このマトリクス状に配置されたアナログメモリ５７によって、図６のメモリセルアレイが構成されている。
【００９３】
図６は、ベクトル列数がｉ、ベクトル要素数がｊの場合におけるメモリセルアレイを示している。この場合、メモリセルアレイは、ｉ行ｊ列のアナログメモリ５７を有する。図６にはその一部、４行４列の部分のみを示している。またリセットを行う配線も省略している。
【００９４】
このメモリセルアレイでは、アナログメモリ５７の列（ベクトル列）に対応して、スイッチ５５をＯｎ／Ｏｆｆするための配線５９（１）、５９（２）・・・がそれぞれ設けられている。また、アナログメモリ５７の行（ベクトル要素）毎に、演算・Ｄ／Ａ変換器５３が設けられている。
【００９５】
このように構成されたアナログセルアレイでは、配線５９（１）、５９（２）・・・のいずれか一つを選択して例えばＨｉｇｈにすると、その列の全てのスイッチ５５がＯｎ状態となり、それにより、デジタルの参照ベクトルデータ５１が、演算・Ｄ／Ａ変換器５３でデジタルの参照ベクトルデータに変換されて、その選択された列のアナログメモリ５７へ並列的に書きまれる。そして、全てのアナログメモリ５７の列について、順次、この列選択及び書き込み動作を遂行することにより、参照ベクトルデータを高速に書き込むことができる。
【００９６】
このようなマトリクス的な書込は、アナログメモリ５７が、後述する構成例のように、不揮発性を有することによって可能となる。
【００９７】
なお、図６では、ｊ個の要素を有するｉ列のベクトル群をベクトルの列毎に、順次、メモリセルアレイに書き込むように構成したが、このベクトル群をベクトルの要素毎に、順次、メモリセルアレイに書き込むように構成してもよい。この場合には、アナログメモリ５７の行（ベクトル要素）に対応して、配線５９（１）、５９（２）・・・をそれぞれ設け、かつ、アナログメモリ５７の列（ベクトル列）毎に、演算・Ｄ／Ａ変換器５３を設ければよい。
【００９８】
図７は図５のアナログメモリ５７の第１の構成例を示す回路図、図８は図５のアナログメモリに５７に用いられるソースフォロワ回路の入力−出力特性を示すグラフである。
【００９９】
図７に示すように、本例のアナログメモリ５７は、ソースフォロワ回路６３と、このソースフォロワ回路６３を構成するＣＭＩＳＦＥＴ（Complementary ＭＩＳＦＥＴ、以下、ＣＭＩＳと略記する）のゲート電極（以下、フローティングゲート電極という）６３ａに接続された強誘電体キャパシタ６５とを有している。
【０１００】
ソースフォロワ回路６３は、図８に示すように、電源電圧ＶＤＤの範囲内である範囲に渡って入力電圧ＶFGに比例した電圧Ｖout1を出力する特性を有する。
【０１０１】
次に、このよう構成されたアナログメモリ５７の動作を説明する。
【０１０２】
書込み電圧ＶW（アナログの参照ベクトルデータに対応する電圧）が強誘電体キャパシタ６５に印加されると、その強誘電体に分極が生じて、フローティングゲート電極６３ａの電位ＶFGが変化する。すると、ソースフォロワ回路６３は、その特性に従って、その変化した電位ＶFGに応じた電圧Ｖout1を出力する。ここで、強誘電体キャパシタ６５の強誘電体の残留分極は不揮発に保持される。これにより、電圧ＶWが、アナログメモリ５７に不揮発に記憶される、つまり、書き込まれたことになる。また、それと同時に、その書き込まれた電圧ＶWに応じた電圧Ｖout1がソースフォロワ回路６３を通じて出力される。また、アナログメモリ５７が、不揮発性を有するので、演算・Ｄ／Ａ変換器５３の出力を適宜切り替えて書込み動作を行うことができ、かつ演算・Ｄ／Ａ変換器５３の占有面積や書込みのための配線を大幅に低減することができる。
【０１０３】
このように、強誘電体キャパシタ６５の強誘電体の分極値は書き込み電圧ＶWの大きさや履歴により多値を得ることができるので、強誘電体キャパシタ６５はアナログメモリとして機能する。特にこの構造は、２トランジスタ−１キャパシタの構成であるため、セル占有面積が小さい点で有利である。
【０１０４】
図９は図５のアナログメモリ５７の第２の構成例を示す回路図である。
【０１０５】
図９に示すように、本例のアナログメモリ５７は、ソースフォロワ回路６３と、このソースフォロワ回路６３を構成するＣＭＩＳのフローティングゲート電極６３ａに互いに並列にそれぞれ接続された強誘電体キャパシタ６５及び常誘電体キャパシタ７３とを有している。
【０１０６】
このように構成された本例のアナログメモリ５７では、強誘電体キャパシタ６５の上部電極Ｎ１と常誘電体キャパシタ７３の上部電極Ｎ２との間に書き込み電圧ＶWを印加することで、第１の構成例と同様に、フローティングゲート電極の電位ＶFGの値が変化し、それにより、アナログメモリとして機能する。
【０１０７】
一般に強誘電体は比誘電率が大きいため、図７のような強誘電体キャパシタ６５とソースフォロワ回路６３を構成するＭＩＳＦＥＴのゲート容量との直列構造では、強誘電体側に電圧が分配されにくいため、ソースフォロワ６３を構成するＭＩＳＦＥＴを大きくする必要がある。一方、本例の構造では、強誘電体キャパシタ６５と常誘電体キャパシタ７３とのキャパシタンスのバランスで電位ＶFGを決定できることから、当該ＭＩＳＦＥＴのサイズを周辺回路と同等にできるため、製造がしやすくなる。特に、常誘電体キャパシタ７３も高誘電率の材料を用いることが望ましく、例えばチタン酸バリウム・ストロンチウム（ＢＳＴ）などを用いれば、強誘電体キャパシタと同等のサイズのキャパシタにすることができる。
【０１０８】
図１０は、図７及び図９の強誘電体キャパシタのヒステリシス特性を示すグラフである。
【０１０９】
図１０において、横軸は強誘電体の分配電圧を示している。この分配電圧は、図７のアナログメモリ５７の場合には、［ＶW］−［ＶFG］で計算される、強誘電体への分配電圧を示している。また、図９のアナログメモリ５７の場合には、書込電圧ＶWを印加したときに強誘電体へ分配される電圧を示している。
【０１１０】
図１０に示すように、強誘電体はヒステリシス特性を有していることから、同じ電圧を印加しても、それまでの電圧印加履歴によって、異なった残留分極値を取る。このため、本実施形態では、一旦、リセットパルスＶresを印加し、分極を負及び正のいずれか一方に飽和させてから書込み電圧ＶWを印加することで、書込み電圧ＶWに良好に対応したＶFGを得ている。すなわち、リセットパルスＶresを印加した後に、Ｖw1を印加すると、強誘電体の分極は飽和曲線上を移動して、残留分極がＰr1となり、リセットパルスＶresを印加後にＶw2を印加したときには、同様に残留分極はＰr2となる。つまり、書き込み電圧Ｖw1，Ｖw2に対し一義的に残留分極Ｐr1，Ｐr2が定まる。この残留分極値によりフローティング電極の電位ＶFGが決定され、ソースフォロワ回路６３の特性により、アナログ電圧Ｖout1が出力される。このように、本実施形態に用いたアナログメモリ５７は、素子数が少なくかつ不揮発であるという特徴を有するため、本実施形態の確率的演算素子には極めて有効なアナログメモリである。
【０１１１】
図１１は、図１の距離演算器４３を構成する減算素子の構成の一例を示す回路図である。
【０１１２】
図１１において、減算素子７２は、ソースフォロワ回路６３と、このソースフォロワ回路６３を構成するＣＭＩＳのゲート電極（フローティングゲート電極）７３ａに互いに並列にそれぞれ接続された第１のキャパシタ７５及び第２のキャパシタ７７とを有している。第１のキャパシタ７５には、電圧Ｖ1が入力される。第２のキャパシタ７７には、電圧Ｖ2が入力される。電圧Ｖ1、Ｖ2の定義については後述する。
【０１１３】
次に、以上のように構成された減算素子７２の動作を説明する。
【０１１４】
ソースフォロワ回路７３のフローティングゲート電極７３ａの電位をＶFG2とし、第１のキャパシタのキャパシタンスをＣ1、第２のキャパシタのキャパシタンスをＣ2とし、ＰチャネルＣＭＩＳ（以下、ＰＣＭＩＳと略記する）７３Ｐ及びＮチャネルＣＭＩＳ（以下、ＮＣＭＩＳと略記する）７３ＮのキャパシタンスをそれぞれＣP、ＣNとすると、電荷の保存則より次式が成立する。
【０１１５】
【数２】
0003708113.tif 000003
【０１１６】
ここにＣ1＝Ｃ2とし、αを次式で定義する。
【０１１７】
【数３】
0003708113.tif 000004
【０１１８】
式（２）と式（３）から次式を得る。
【０１１９】
【数４】
0003708113.tif 000005
【０１２０】
この電位ＶFG2に対応した電圧ＶM1がソースフォロワ回路の特性により出力される。すなわち、Ｖ1とＶ2との和に比例した出力が得られる。ここで式（３）において、（CN+CP）に対してC1が大きい場合、すなわちＭＩＳＦＥＴのゲート容量が十分に小さい場合には、αの値は０．５に近づき、本減算素子７２は入力された電圧の平均値に近い値を出力する特性を示す。
【０１２１】
ここで、例えば、Ｖ1とＶ2に次の式で与えられる電圧を入力するとする。
【０１２２】
【数５】
0003708113.tif 000006
【０１２３】
【数６】
0003708113.tif 000007
【０１２４】
ここにＶZは補正電圧であり後述する式で演算する。またＶinは入力ベクトルデータに対応し、図４の入力電圧出力器１３は式（６）の演算結果を電圧として出力している。また、Ｖrefは参照ベクトルデータに対応し、同様に図４の確率的演算回路Ｃｃのデータ記憶部４１の出力は式（５）の演算結果に相当する電圧を出力する。
【０１２５】
これらの式と式（４）とから次式が成り立つ。
【０１２６】
【数７】
0003708113.tif 000008
【０１２７】
すなわち参照ベクトルデータに対応する電圧（以下、参照ベクトル電圧という）Ｖrefと入力ベクトルデータに対応する電圧（以下、入力ベクトル電圧という）Ｖinの差にバイアス２・ＶZ分シフトした電圧がＶFG2に得られ、実効的に差演算を行うことができる。
【０１２８】
図１２は図１１の減算素子７２を構成するソースフォロワ回路７３の入力−出力特性を示すグラフである。
【０１２９】
図１２に示すように、ソースフォロワ回路７３は、ＶLowからＶHighの範囲の入力電圧ＶFG2対し、ＶssからＶDDの範囲の電圧ＶＭを出力する。
【０１３０】
ここで、ソースフォロワ回路７３の出力が線形に増加し始める始点であるＶLowを用いて、上述のＶZを以下の式を満たすように決定する。
【０１３１】
【数８】
0003708113.tif 000009
【０１３２】
するとＶrefとＶinの差について以下のような出力特性をもつこととなる。
【０１３３】
【数９】
0003708113.tif 000010
【０１３４】
図１３は、参照ベクトル電圧Ｖref＝１［Ｖ］の場合についてＶSS＝０［Ｖ］、ＶDD＝１［Ｖ］、かつα＝０．４５の時における減算素子７２の入力−出力特性を示している。参照ベクトル電圧Ｖrefと入力ベクトル電圧Ｖinとの差が正のときに比例的に出力電圧が増加し、正のみの差演算を実行できていることが理解できる。
【０１３５】
同様にＶ1、Ｖ2を次式のようにすれば、逆方向の差演算が実行できる。
【０１３６】
【数１０】
0003708113.tif 000011
【０１３７】
【数１１】
0003708113.tif 000012
【０１３８】
この場合の減算素子７３の入力−出力特性を図１４に示す。この場合は、入力ベクトル電圧Ｖinと参照ベクトル電圧Ｖrefの差が正のときに比例的に出力電圧が増加する。
【０１３９】
以上の特性を応用して絶対値演算を行う回路を図１５に示す。図１５において、符号８１は減算器を示す。この減算器８１は、一対の減算素子８２ａ，８２ｂを並列に配置し、その出力を和算器８３へ入力するよう構成されている。減算素子８２ａ及び８２ｂは、共に、図１１の減算素子７２で構成されている。
【０１４０】
ここで、減算素子８２ａへの入力をＶ11，Ｖ21，減算素子８２ｂへの入力をＶ12，Ｖ22とし、Ｖ11、Ｖ12を式（５）、（６）に従い決定し、Ｖ21、Ｖ22を式（１０）、（１１）に従って決定すると、減算素子８２ａ及び減算素子８２ｂの入力−出力特性は、それぞれ、図１３及び図１４に示す特性となる。和算器８３は、式（４）及びソースフォロワ回路８３ａの特性に従ってその入力電圧ＶＭ１及びＶＭ２の和に比例した電圧Ｖout3を出力する。図４の距離演算器４３はこの減算器８１で構成されている。
【０１４１】
図１６は図４の距離演算器４３の入力−出力特性を示すグラフである。図１６に示すように、この距離演算器４３は、参照ベクトル電圧と入力ベクトル電圧との差の絶対値に比例した電圧を出力することができる。
【０１４２】
なお、この距離演算器４３では、図４に示す入力電圧出力器１３とデータ記憶部４１とからの出力は、減算素子８２ａ及び減算素子８２ｂへそれぞれ入力するために２系統必要となるが、図４ではこれらを省略して示している。
【０１４３】
図１７は図４の和算器４５の構成例を示す回路図である。
【０１４４】
図１７に示すように、和算器４５は、ソースフォロワ回路９３と、このソースフォロワ回路９３を構成するＣＭＩＳのゲート電極（フローティングゲート電極）９３ａに互いに並列にそれぞれ接続された第１のキャパシタ９５及び第２のキャパシタ９７とを有している。第１のキャパシタ９５には、距離演算器４３の出力（以下、距離電圧という）Ｖout3が入力される。第２のキャパシタ９７には、揺らぎ発生器１５の出力電圧（以下、揺らぎ電圧という）Ｖcaoが入力される。
【０１４５】
和算器４５の動作は図１５の和算器８３と同様であるが、特に揺らぎ電圧Ｖcaoと距離電圧Ｖout3との和算をアナログ的に実行できるため、その出力Ｖout4として、距離電圧Ｖout3に揺らぎが重畳した出力が得られる。
【０１４６】
図１８は図４の閾値処理器４７の構成例を示す回路図である。
【０１４７】
図１８に示すように、閾値処理器４７として、本実施形態では、例えばＣＭＩＳインバータを用いている。
【０１４８】
この閾値処理器４７では、ＣＭＩＳインバータのゲート４７ａに和算器２３の出力Ｖout4が入力される。ＣＭＩＳインバータは、和算器４５の出力Ｖout4が、その閾値電圧以上である間、これを反転及び増幅して出力する。和算器４５の出力電圧Ｖout4は、平坦な波形を有する距離電圧Ｖout3に揺らぎ波形を有する揺らぎ電圧Ｖcaoが重畳されたものであるので、ＣＭＩＳインバータは、パルス状の電圧Ｖｐｕｌを出力する。
【０１４９】
次に、以上のように構成された確率的演算素子１の動作を説明する。
【０１５０】
図１、図４、及び図６において、所定列数（ここでは１０００列）のデジタルの参照ベクトルデータが、要素毎に、順次、演算・Ｄ／Ａ変換器５３でアナログデータに変換されて各ベクトル列比較回路Ｃｐ１〜Ｃｐの各確率的演算回路Ｃｃ１〜Ｃｃｎのデータ記憶部４１に参照ベクトル電圧Ｖrefとしてそれぞれ書き込まれ、データ記憶４１で所定の演算が施されて距離演算器４３に出力される。一方、デジタルの入力ベクトルデータが図示されないＤ／Ａ変換器でアナログの入力ベクトル電圧Ｖinに変換され、入力電圧出力回路１３で所定の演算を施されて距離演算器４３に出力される。
【０１５１】
距離演算器４３は、これらの入力電圧に基づいて参照ベクトル電圧Ｖrefと入力ベクトル電圧Ｖinとの差の絶対値（参照ベクトルの要素と入力ベクトルの要素とのマンハッタン距離）を演算し、これを距離電圧Ｖout3として和算器４５に出力する。
【０１５２】
和算器４５は、この距離電圧Ｖout3と揺らぎ発生器１５から入力される揺らぎ電圧Ｖcaoとを和算して、距離電圧Ｖout3に揺らぎ電圧Ｖcaoが重畳された電圧Ｖout4を閾値処理器４７に出力する。
【０１５３】
閾値処理器４７は、和算器４５の出力電圧Ｖout4を閾値処理して、パルス状の電圧Ｖｐｕｌを出力する。
【０１５４】
各確率的演算回路Ｃｃから出力されるこのパルス状の電圧ＶｐｕｌはカウンタＣｔによってベクトル列比較回路Ｃｐ毎にカウントされ、このカウント数がカウント数取得器１９又はフラグ検出器で検出され、この検出結果に基づいて、各参照ベクトルデータと入力ベクトルデータとの近似度が判定される。
【０１５５】
次に、閾値処理器４７から出力されるパルス数と参照ベクトルデータ及び入力ベクトルデータ相互間の近似度との関係を詳しく説明する。
【０１５６】
参照ベクトル電圧Ｖrefと入力ベクトル電圧Ｖinの値が近いとき、距離演算器４３の出力は小さい電圧となる。その結果、和算器４５の揺らぎが重畳された出力電圧Ｖout4も小さい電圧範囲で振動することとなる。その結果、閾値処理器４７であるインバータの出力はＨｉｇｈレベル（＝ＶＤＤ）が出やすくなる。すなわち、以上のような回路構成とすることで、参照ベクトルデータと入力ベクトルデータの値が近いほどＨｉｇｈ、すなわちパルスが出力されやすくなるのである。
【０１５７】
図１９は、図１の揺らぎ発生器１５の出力を示すグラフである。横軸は揺らぎ発生回数を示す。
【０１５８】
図１９に示すように、揺らぎ発生器１５の出力は、一見、ランダムなカオス的な揺らぎを発生している。
【０１５９】
図２０は、参照ベクトル電圧と入力ベクトル電圧との差が比較的大きい場合（およそ１．５［Ｖ］）における和算器４５の出力の一部を示すグラフである。
【０１６０】
この場合における和算器４５の出力を、さらに閾値処理器４７で、例えば２値化（この場合閾値電圧＝０．５［Ｖ］）すると、図２１に示すような出力が得られる。すなわち、閾値を越える毎にパルスが発生する。
【０１６１】
図２２は、参照ベクトル電圧と入力ベクトル電圧との差が小さい場合（およそ０．８［Ｖ］）における和算器４５からの出力の一部を示すグラフである。図２３にはこの場合における閾値処理器４７からの出力を示している。図２１と図２３の比較から、閾値処理器４７は、参照ベクトル電圧と入力ベクトル電圧の差の絶対値が小さい場合ほど、多くのパルスを発生する特性を有することが判る。
【０１６２】
この特性をさらに詳細に検討した結果を図２４に示す。
【０１６３】
図２４は揺らぎ電圧Ｖcaoにおける揺らぎ回数に対するパルス発生数を、参照ベクトルデータと入力ベクトルデータとの近似度をパラメータとして示すグラフである。
【０１６４】
図２４において、近似度とは、電源電圧で正規化した参照ベクトル電圧と入力ベクトル電圧の差の絶対値を、１から減じた値として定義したものである。すなわち近似度が高いほど、２つのベクトルは似通っていることを示す。
【０１６５】
図２４に示すように、例えば、近似度が０の時は、閾値を越えないため、１００回の揺らぎに対してパルス発生数はゼロである。しかし、近似度が大きくなるにつれて、パルスの発生確率が上昇することが理解される。これらのパルス発生は確率的に発生するため、直線的な増加は示さないが、揺らぎ回数が増すほど、近似度による差は安定してくることが理解される。
【０１６６】
この揺らぎと閾値処理による確率的なパルス発生が、本発明の確率的演算素子の本質であり、従来のコンピュータのような厳密性には欠けるが、揺らぎの回数が増すほど、確率的に精度が向上してくる。このことは、精度は低くとも至急に演算結果を欲する情報処理や、演算時間が延びても精度を重視する場合などにおいて、非常に柔軟にベクトルの差演算を実行できる、全く従来にない新概念の素子を提供できることを意味している。
【０１６７】
次に、本実施形態の確率的演算素子１において、ベクトル列比較回路Ｃｔの列数が、演算しようとするベクトルの列数に足りない場合の駆動方法を説明する。確率的演算素子１の面積は有限であり、一方で、ソフトウェア上でのマトリクスの宣言が仮想的であることを考えれば、このような事態は多く発生すると考える。
【０１６８】
例えば、本実施形態ではベクトル列数は１０００であるが、比較対照の列数が５０００の場合について、入力ベクトルに対して、参照ベクトル列の中から最も似たものを１００列抽出する場合を例に説明する。
【０１６９】
図１、図４、及び図６において、まず、確率的演算素子１上で１０００列の参照ベクトルを図６の説明で述べたようにして記憶させる。この場合は、例えば、演算・Ｄ／Ａ５３を通じて順に参照ベクトルデータを書き込めばよい。
【０１７０】
次に、入力ベクトルを入力し、その後、揺らぎ発生器１５から揺らぎ電圧を入力することで、閾値処理器４７から順次パルスが出力される。パルス数はカウンタＣｔ１〜Ｃｔｍにより順次カウントされ、例えば図３のＤ8からの出力に着目していた場合、２５６（＝２8）のパルスが入力されると、Ｄ8ラインがＨｉｇｈを出力する。このＨｉｇｈとなるベクトル列の数をフラグ検出器１７で監視しておき、この場合１００列に到達したら揺らぎ発生器１５からの揺らぎ電圧の出力を停止する。次に、このＨｉｇｈが出力されたベクトル列を飛ばすようにして参照ベクトルを９００列書き込む。
【０１７１】
以上の動作を繰り返せば、最終的には参照ベクトル全体の中で最も似通ったベクトル列を抽出することができる。
【０１７２】
以上に説明したように、本実施形態の確率的演算素子１はベクトル比較の演算を多数並列的に実行できるため、その比較速度は、特にベクトル数が増加するに従って、従来のコンピュータより格段に高速に演算できる。
【０１７３】
また、一般的なアナログ回路では、厳密な演算を行うことは難しいが、本確率的演算素子１は演算原理がそもそも確率的であることを前提にしているため、その製造にあたっては設計に自由度を持たせることができ、製造が容易という特徴を有する。
【０１７４】
また、本実施形態によれば、確率的演算素子１をトランジスタやキャパシタ等の在来の回路素子で構成することができるので、これを半導体プロセス技術によって製造することができる。
【０１７５】
また、マンハッタン距離を演算することができる。
【０１７６】
さらに、参照ベクトルと入力ベクトルとの要素毎の差分（距離）がパルスとして出力され、そのパルスの総和に基づいて参照ベクトルと入力ベクトルとの近似度が判定されるので、比較しようとするベクトルの要素が多くなっても、容易に近似度を判定することができる。
【０１７７】
総括すると、本実施形態の確率的演算素子１は、従来のデジタル演算でもアナログ演算でもない、第３の演算手法の演算素子を提供できるものである。
【０１７８】
この発明は、厳密な論理演算には適さないが、特に認識処理などで多発するベクトルマッチングを非常に高速に行え、従来の半導体素子を補助する極めて有用な素子を提供できるものである。
【０１７９】
なお、本実施形態では、各構成回路を、ソースフォロワのゲートにキャパシタを複数配した構造の素子の場合について説明したが、同様な演算を実行できる素子であれば、所望の動作が得られることは言うまでもない。
【０１８０】
また、繰り返しになるが、揺らぎについては特にカオスを用いる必要もなければ、またカオスについても特にロジスティックカオスに限定されるものではなく、長期的に均等な確率を得られる手法であれば同様の効果が期待できる。
【０１８１】
カウンタについても、本実施形態ではＤフリップフロップの場合について述べたが、他のカウンタを用いても何ら問題ない。
【０１８２】
また、アナログメモリとして強誘電体を用いる場合について説明したが、アナログ量を物性として有するものを用いれば同様の効果を得ることができる。例えば相変化材料の抵抗変化を用いたり、キャパシタへの充電を利用するなどの手法を用いてもよい。
【０１８３】
閾値処理についても、簡便なインバータの場合について説明したが、これが別の回路であっても同様であることは言うまでもない。
【０１８４】
また、参照ベクトル及び入力ベクトルのデータを表すアナログの物理量として、電圧を用いたが、これに限定されるものではなく、他の物理量、例えば電流を用いてもよい。
（実施形態２）
図２５は本発明の実施形態２に係る確率的演算素子の確率的演算回路を示すブロック図である。図２５において図４と同一又は相当する部分には同一符号を付してその説明を省略する。
【０１８５】
図２５に示すように、本実施形態の確率的演算素子は、ベクトル要素間の距離演算までをデジタル回路で実行する点が実施形態１と異なる。確率的演算回路３０１は、実施形態１の確率的演算回路Ｃｃに相当する。その他の点は、実施形態１と同様である。
【０１８６】
具体的には、デジタルの入力ベクトルデータ３０３がデジタル距離演算回路３０５に入力される。デジタル距離演算回路３０５は、入力されたデジタルの入力ベクトルデータ３０３とデジタルの参照ベクトルデータ５１とを用いて、例えば、参照ベクトル及び入力ベクトルの要素間の距離の絶対値を演算する。この演算結果がＤ／Ａ変換器３０７でアナログデータに変換されて、アナログメモリ５７に記憶される。アナログメモリ５７のアナログ出力は揺らぎ発生器１５の出力と和算器４５により重畳され、その出力が閾値処理器４７により閾値処理されてパルスとして出力される。これにより、実施形態１と同様の演算が実行される。
【０１８７】
本実施形態の確率的演算素子は、差演算までをデジタルで実行するためその演算時間が必要となるが、図４の距離演算器４３が不要になる。図６から距離演算器４３はマトリクス的に配置されるのに対し、本実施形態のデジタル距離演算回路３０５は行毎に配置すれば済むので、その分、チップ面積を小さくすることが可能となる。
【０１８８】
また、図６の演算・Ｄ／Ａ変換器５３に、本実施形態２のデジタル距離演算回路３０５とＤ／Ａ変換器３０７の機能を具備させれば、ベクトル要素方向に多数並列にこれらの距離演算を実行し、かつマトリクス的にアナログメモリ５７に距離のアナログ情報を書き込むことができるため、極めて面積効率の高い確率的演算素子を実現できる。
（実施形態３）
図２６は本発明の実施形態３に係る確率的演算素子の確率的演算回路を示すブロック図である。図２６において図４と同一又は相当する部分には同一符号を付してその説明を省略する。
【０１８９】
図２６に示すとおり、本実施形態３の確率的演算回路９９では、実施形態１とは異なり、入力ベクトル電圧に揺らぎ電圧を重畳した後に、参照ベクトル電圧との距離を演算する。その他の点は実施形態１と同様である。
【０１９０】
このような演算順序であっても実施形態１と同様に、確率的にパルスを発生する確率的演算素子を実現できる。
（実施形態４）
図２７には本発明の実施形態４に係る確率的演算素子の減算素子の構成例を示す回路図である。
【０１９１】
図２７において、符号１００はスイッチ素子を示す。本実施形態４では減算素子７２が、実施形態１の減算素子７２を構成するソースフォロワ回路のゲート電極にさらにスイッチ素子１００を設け、スイッチ素子１００の他端を例えば接地した構成を有している。また、これと同様に、本実施形態４では、和算器及びアナログメモリが、実施形態１の和算器４５及びアナログメモリ５７のソースフォロワ回路のゲート電極にさらにスイッチ素子を設け、スイッチ素子の他端を例えば接地した構成を有している。このような構成とすることにより、実施形態１のソースフォロワ回路のゲート電極が、配線と結線されていないフローティング状態にあるのに対し、本実施形態４では、スイッチ素子１００にリセット電圧Ｖres1を印加することで、フローティング電極の電位を一旦、例えば接地することができる。
【０１９２】
これにより、素子を製造する際のドライエッチング工程などで残留した電荷を除去することができる。また、本実施形態の確率的演算素子を長期的に使用した場合に、例えばソースフォロワ回路を構成するＭＩＳＦＥＴのゲートから流入する電荷を除去することができる。
【０１９３】
なお、この構造の場合、リセット用のスイッチ素子１００にＭＩＳＦＥＴを用いると、いわゆるジャンクションリークにより、演算時にフローティング電極に保持された電位は長期的には減衰するが、本発明の確率演算素子の演算時間は長くても１秒程度であるため、全く問題なく演算を行うことができる。
（実施形態５）
図２８は本発明の実施形態５に係る確率的演算素子の確率的演算回路を示すブロック図である。図２８において、図４及び図２６と同一又は相当する部分には同一符号を付してその説明を省略する。
【０１９４】
図２８に示すとおり、本実施形態３の確率的演算回路１１１では、閾値処理器４７の直前にスイッチ１１３が設けられている。その他の点は、実施の形態３と同様である。
【０１９５】
例えば、図２２の動作説明から理解されるように、本発明の確率的演算素子は、揺らぎを有する電圧が閾値を跨ぐときのみパルスを発生するため、例えば、圧倒的にベクトルの絶対差が小さい場合などには、閾値を跨がない場合が発生する恐れがある。
【０１９６】
そこで本実施形態では、スイッチ１１３に出力信号１１３ａが入っていないときは、例えばＨｉｇｈが出力され、出力信号１１３ａが入力されると、そのときの距離演算器４３からの出力を出力するようにすることで、距離演算器４３からの出力が連続的に低く閾値を跨がない場合でも強制的に閾値を跨がせることによりパルスを発生することができる。
（実施形態６）
図２９は本発明の実施形態６に係る確率的演算素子の構成を示す回路図である。第２９同図において、図１と同一又は相当する部分には同一符号を付してその説明を省略する。
【０１９７】
図２９に示すように、本実施形態では、実施形態１のカウンタＣｔ、フラグ検出器１７、及びカウント数取得器１９に代えて、積分器Ｉｔ及び比較器１５３が設けられている。積分器Ｉｔ１〜Ｉｔｍは、確率的演算回路Ｃｃから出力されるパルスに含まれる電荷量を蓄積して、この蓄積された電荷量に応じた電圧をそれぞれ比較器１５３に出力する。比較器１５３は、積分器Ｉｔ１〜Ｉｔｍ１の出力電圧の大小を比較し、その上位の積分器Ｉｔ（ひいてはベクトル列）を抽出する。その他の点は実施形態１と同様である。
【０１９８】
このような構成によれば、実施形態１と同様に、参照ベクトルのうち、入力ベクトルと近似するベクトル列を高速に抽出することができるだけでななく、確率的演算回路Ｃｃから出力されるパルスを、その数だけではなくその幅をも含めて評価し、それに基づいて参照ベクトルと入力ベクトルとの近似度を判定するので、より好適に近似度を判定することができる。
【０１９９】
このような積分器Ｉｔの構成例を図３０に示す。
【０２００】
図３０に示すように、積分器ＩｔはＦＥＴ１６０を有している。ＦＥＴ１６０のゲートは図２９のスイッチＳに接続されている。一方、ＦＥＴ１６０のソースにはキャパシタ１５９が接続され、ＦＥＴ１６０のソースとキャパシタ１５９の接続点が第２のスイッチ１５７を介して比較器１５３に接続されている。
【０２０１】
このように構成された積分器Ｉｔでは、スイッチＳをＯＮ状態にしかつスイッチ１５７をＯＦＦ状態にしているとき、配線にパルスが伝達されると、ＦＥＴ１６０のＯｎ／Ｏｆｆが切り替わり、ＦＥＴ１６０がＯｎになった時間だけキャパシタ１５９に電荷が蓄積される。次に、スイッチＳをＯＦＦにしかつスイッチ１５７をＯＮにすると、先に蓄積された電荷に相当する電圧が比較器１５３に出力される。すなわち、パルスの幅とその数に相当する電圧が出力される。この場合、蓄積電荷量が増加すると徐々に蓄積される電位は線形でなくなってくるが、大小の違いは明確に検出できるため、ベクトル列間の比較には十分適用できる。
【０２０２】
本実施形態の確率的演算素子は、実施形態５で述べたように、閾値を跨ぐ揺らぎが長期的に発生した場合に、パルスの幅としての情報も蓄積できるため、より高精度にベクトル列の比較を実行することができる。
（実施形態７）
以下、本発明の第７の実施形態について説明する。
【０２０３】
図３１は本発明の実施形態７に係る確率的演算素子の閾値処理器の構成を示す回路図である。図３１において、図１と同一又は相当する部分には同一符号を付してその説明を省略する。
【０２０４】
図３１において、符号１０１は電流検出器を、符号１０２は揺らぎ発生器制御回路をそれぞれ示す。
【０２０５】
実施形態５で述べたように、本発明の確率的演算素子は、ベクトル間の差が小さく、連続的に閾値を跨がない状態が生じると、パルスが発生しなくなってしまい、ベクトルが近いのにカウントが増加しない事態となる。
【０２０６】
本実施形態の確率的演算素子は、これを防止するため、揺らぎ発生器１５の電圧の揺らぎ幅又は平均電圧を徐々に大きくすることを特徴とする。
【０２０７】
揺らぎ発生器制御回路１０２は揺らぎ発生器１５の出力電圧の揺らぎを少しずつ大きくする。やがて、揺らぎが閾値に達してくると、頻繁にパルスが発生することとなる。このとき、本実施形態の閾値処理器４７はインバータで構成されているため、Ｈｉｇｈ／Ｌｏｗが反転する瞬間にＰＭＩＳ４７ＰからＮＭＩＳ４７Ｎへ向けて貫通電流が流れることとなる。この貫通電流を電流検出器１０１が検出すると、揺らぎ発生器制御回路１０２は、パルスが発生し始めたと判定し、揺らぎ発生器１５の電圧の揺らぎ幅又は平均電圧をその時点における値に維持する。これにより、極端に揺らぎが大きくなることを防止することができる。
【０２０８】
図３２、図３３にはこの動作をより詳細に示している。図３２は揺らぎ発生器１５に高いバイアス電圧（約1[V]）を付加したときの閾値処理器４７への入力電圧を示したものである。この場合、閾値である１[V]より高い電圧範囲で電圧が揺らぐため、閾値に到達することがなく、閾値処理器４７はパルスを発生しない。すなわち、インバータ４７はずっとLowレベルを出力しつづけ、反転時に観察される貫通電流は変化がない。
【０２０９】
次に図３３は図３２の状態からバイアス電圧を徐々に低下させ約０．５[V]とした時の閾値処理器２７への入力電圧を示している。この場合には、閾値を跨ぐ電圧揺らぎが多発するため、前述のようにパルスが多く出力されることとなる。このようにインバータのＯｎ／Ｏｆｆが繰り返されることで、インバータの貫通電流が増加し、これが電流検出器１０１で観察されることとなる。
【０２１０】
なお、このような調整は、バイアス電圧を揺らぎ発生器１５の揺らぎに加えることで平均出力電圧を変化させる、今回の説明のように行っても良いが、揺らぎの振幅を大きくしても同様の機能が得られることは言うまでもない。
（実施形態８）
本発明の実施形態８に係る確率的演算素子は、揺らぎ発生回路１５において発生される揺らぎに特徴を有するため、以下、その揺らぎの特性についてのみ説明する。
【０２１１】
図３４は本実施形態に係る確率的演算素子の揺らぎ発生器の出力を示すグラフである。
【０２１２】
実施形態１〜７の確率的演算素子においては、揺らぎ発生器の出力は、カオスや熱雑音を用い、ランダムな振る舞いを見せる出力を用いて演算を実行していた。
【０２１３】
本実施形態８の揺らぎ発生器１５の出力は図３４に示すように、規則的な出力を発生することを特徴とする。ここで、特に出力のヒストグラムができるだけ同等になるように、発生出力の大きさを制御している。図３４のような徐々に増加するパルス列は、ランプ波形の電圧を一定時間間隔でサンプリングするようにすれば得ることができる。
【０２１４】
このような揺らぎ電圧を用いても、実施形態１〜７と同様の効果を得ることができる。
【０２１５】
なお、本実施形態では、規則的に電圧が増加するパルス列としたが、このような特性でなくとも、出力値のヒストグラムに偏りがなければ、同様の効果が期待できることはいうまでもない。
（実施形態９）
本発明の実施形態９は実施の形態１〜８の確率的演算素子を用いた認識処理装置としての音声認識装置を例示している。
【０２１６】
図３５は本実施形態に係る音声認識装置の構成を模式的に示すブロック図である。図３５において、図１と同一又は相当する部分には同一符号を付してその説明を省略する。
【０２１７】
図３５に示すように、音声認識装置は、マイクロフォン１２３と、マイクロフォン１２３から入力される音声データの特徴を抽出する特徴抽出処理部１２１と、参照ベクトル群を格納するメモリ１２２と、特徴抽出処理部１２１で抽出した特徴データとメモリ１２２に格納された参照ベクトルデータ群とを比較して音声を認識する確率的演算素子１とを備えている。
【０２１８】
このように構成された音声認識装置では、メモリ１２２に、参照ベクトルデータ群が例えばデジタル情報として格納されている。参照ベクトルデータ群には、音声の基本的な特徴データが予め格納されており、また、必要な場合には特徴抽出処理部１２１で得られた特徴データを格納できるようになっている。特徴抽出処理部１２１は、マイクロフォン１２３から入力されたアナログの音声情報に対して、例えば、スペクトル分布や、その時間変化などの処理を行うことにより、その特徴データを抽出する。
【０２１９】
この特徴データが入力ベクトルとして確率的演算素子１に入力される。確率的演算素子１は、この特徴データを参照ベクトルデータ群と比較してその中から最も近似する参照ベクトルデータを特定（ベクトルマッチング）し、入力された特徴データに対応する音声をこの特定した参照ベクトルデータに対応する音声であると認識する。
【０２２０】
これにより、マイクロフォン１２３に入力された音声を、非常に高速に認識することができる。例えば、マイクロフォン１２３に入力される音声が日本語であれば、五十音の認識を行うことができる。
（実施形態１０）
本発明の実施形態１０は、実施形態９の音声認識装置の改良例を示している。
【０２２１】
図３６は本実施形態に係る音声認識装置のメモリに格納された参照ベクトルデータ群の特徴を説明する図である。図３６において、図６又は図３５と同一又は相当する部分には同一符号を付してその説明を省略する。
【０２２２】
本実施形態の音声認識装置は、実施形態９の音声認識装置において、参照ベクトルデータ群に工夫を凝らしたものである。
【０２２３】
具体的には、図３６に示すように、本実施形態の参照ベクトルデータ５１は、音声のスペクトル情報を時系列的に前から配置したデータ構造を有している。図３６においては、デジタルの参照ベクトルデータ５１の一部にアルファベットのＡ〜Ｄが示されているが、これらは同じ声に対する特徴情報を表している。
【０２２４】
本実施形態の音声認識装置は、参照ベクトルデータ群で、同一のデータを相互にずらして配置していることを特徴とする。
【０２２５】
人間が話をする場合、文字で書けば同じことを、時間的に同じタイミングで話すとは限らず、また個人差がある。
【０２２６】
本発明の確率的演算素子は、非常に高速に大量のベクトルのマッチングをとることが可能であるため、このような声の伸び縮みを考慮して、予め時間的にずらしてデータを準備しておけば、時間の伸び縮みがあっても、それに対応したベクトル列が最も近いこととなり、入力された声がどの文字に相当するかを判断することができる。
（実施形態１１）
本発明の実施形態１１は、実施形態１〜８の確率的演算素子を用いた認識処理装置としての画像認識装置を例示している。
【０２２７】
図３７は実施形態１１に係る画像認識装置の構成を模式的に示すブロック図である。図３７において、図３５と同一又は相当する部分には同一符号を付してその説明を省略する。
【０２２８】
図３７に示すように、画像認識装置は、ＣＣＤなどの撮像素子からなるカメラ１４３と、カメラ１４３から入力される画像データの特徴を抽出する特徴抽出処理部１４１と、参照ベクトル群を格納するメモリ１２２と、特徴抽出処理部１４１で抽出した特徴データとメモリ１２２に格納された参照ベクトルデータ群とを比較して画像を認識する確率的演算素子１とを備えている。
【０２２９】
このように構成された画像認識装置では、メモリ１２２には参照ベクトルデータ群として、画像から得られる特徴量と、それに対応するラベル、例えばその対象の名前などがデータとして格納されている。
【０２３０】
このような画像認識においては、種々の手法があるが、図３８には、特に人の顔を認識する場合の例を示している。
【０２３１】
この手法では、カメラ１４３に映った映像から、目や鼻、口などのパーツ（部位）の位置をまず取得し、次にこれらのパーツ間の距離１５１を特徴量として抽出している。
【０２３２】
このような特徴量１５１が特徴抽出部１４１で抽出され、この特徴量１５１が入力ベクトルとして確率的演算素子１に入力される。確率的演算素子１は、この特徴量１５１を参照ベクトルデータ群と比較してその中から最も近似する参照ベクトルデータを特定し、入力された特徴量に対応する画像をこの特定した参照ベクトルデータに対応する画像であると認識する。
【０２３３】
これにより、カメラ１４３に入力された画像を、非常に高速に認識することができる。
【０２３４】
従来、このような認識処理はパーソナルコンピュータなどで行うため、特徴量としてはせいぜい数十程度であったが、本発明の確率的演算素子１はより多くのベクトル比較を高速に行えるため、特徴量をより多く取得し、比較することができる。
【０２３５】
例えば、顔の向きが変わったり、周囲の明るさが変化した場合など、いくつか状況が変わった場合の特徴量を記憶しておくことで、人を認識する精度を飛躍的に向上することが可能である。
【０２３６】
なお、本実施形態では人の顔認識について説明したが、工場の生産ラインにおける基板上の部品の認識や、自動車などからの標識の認識など、他の用途に対しても同様に画像の認識処理を実行できることは言うまでもない。
（実施形態１２）
本発明の実施形態１２は、実施形態１〜８の確率的演算素子を用いた認識処理装置としての行動認識装置を例示している。
【０２３７】
図３９は本実施形態に係る行動認識装置の構成を示すブロック図である。図３９において図３５と同一又は相当する部分には同一符号を付してその説明を省略する。
図３９において、符号１７１は行動情報記憶ベクトルを示す。行動情報記憶ベクトルには、人の行動をベクトル化したデータが格納されている。符号１７３は重み付け係数付加回路を示す。重み付け係数付加回路１７３は、被験者の反応に従ってベクトルの重み付けを変更する。符号１７５は行動情報入力ベクトルを示す。行動情報入力ベクトル１７５は、被験者の状態をベクトル化したものである。
【０２３８】
行動情報入力ベクトル１７５は、例えば被験者の屋内及び屋外での電気機器の操作履歴や、家庭内などに配置された赤外線センサ出力、室温センサ出力、湿度センサ出力、また人体近傍に設けられた体温センサ出力、脳波センサ出力、脈拍センサ出力、視線センサ出力、発汗センサ出力、筋電位センサ出力、さらには日時情報、曜日情報などの状況データを表す。さらには実施形態１０や実施形態１１で述べた音声入力や画像入力の特徴量もこのような状況データとして用いることができる。
【０２３９】
行動情報記憶ベクトル１７１には、さらにこの状況データに加え、そのときに被験者が取った行動、もしくはそのときの機器の動作がデータとして加えられている。
【０２４０】
行動情報入力ベクトル１７５が入力されると、確率的演算素子１において過去の状況で似た状況を抽出し、それに対応する行動が決定される。その決定に対し被験者が反応をする。例えば、提供した動作に躊躇なく次の動作に移れば、提供動作には好印象を持ったと判断できるし、即座に提供動作を否定する動作に移れば、低強動作には悪い印象を持ったと判断できる。また、Ｙｅｓ／Ｎｏで直接的に回答してもらっても良い。
【０２４１】
このような被験者の反応を重み付け係数付加回路１７３により数値化し、行動情報入力ベクトル１７５の中の重み付け係数の数値を変える。
【０２４２】
このような重み付け係数は、本発明の確率的演算素子においては、例えば、他のベクトルより多くのパルスを発生する機構を設けるなどすれば、そのベクトル列の選ばれやすさを制御することが可能である。
【０２４３】
本実施形態の行動認識装置を、機器に組み込むことにより、ユーザーが快適と思った機器の自動動作が出現する確率が向上し、逆に不快と思った自動動作の出現確率が減少し、被験者個人個人の嗜好に合致したサービスを提供することができる。
【産業上の利用可能性】
【０２４４】
本発明に係る確率的演算素子は、認識処理装置の認識処理用の素子等として有用である。
【０２４５】
本発明に係る確率的演算素子の駆動方法は、認識処理装置の認識処理用の素子等の駆動方法として有用である。
【０２４６】
本発明に係る認識処理装置は、音声認識装置、画像認識装置、行動認識装置等として有用である。
【図面の簡単な説明】
【０２４７】
【図１】本発明の実施形態１に係る確率的演算素子の構成を示す回路図である。
【図２】図１の揺らぎ発生器の構成例を示すブロック図である。
【図３】図１のカウンタの構成例を示す回路図である。
【図４】図１の確率的演算回路の構造をより詳細に示すブロック図である。
【図５】図４のデータ記憶部の構成例を示すブロック図である。
【図６】本実施形態のアナログメモリセルアレイの構成の一例を示す回路図である。
【図７】図５のアナログメモリの第１の構成例を示す回路図である。
【図８】図５のアナログメモリに用いられるソースフォロワ回路の入力−出力特性を示すグラフである。
【図９】図５のアナログメモリの第２の構成例を示す回路図である。
【図１０】図７及び図９の強誘電体キャパシタのヒステリシス特性を示すグラフである。
【図１１】図１の距離演算器を構成する減算素子の構成の一例を示す回路図である。
【図１２】図１１の減算素子を構成するソースフォロワ回路の入力−出力特性を示すグラフである。
【図１３】参照ベクトル電圧が１［Ｖ］の場合についてＶSS＝０［Ｖ］、ＶDD＝１［Ｖ］、かつα＝０．４５の時における減算素子の入力−出力特性を示すグラフである。
【図１４】図１３の場合における他の減算素子の入力−出力特性を示すグラフである。
【図１５】図１３及び図１４に示す減算素子の特性を応用して絶対値演算を行う回路の構成を示す回路図である。
【図１６】図４の距離演算器の入力−出力特性を示すグラフである。
【図１７】図４の和算器の構成例を示す回路図である。
【図１８】図４の閾値処理器の構成例を示す回路図である。
【図１９】図１の揺らぎ発生器の出力を示すグラフである。
【図２０】参照ベクトル電圧と入力ベクトル電圧との差が比較的大きい場合における和算器の出力の一部を示すグラフである。
【図２１】和算器から図２０に示す出力が入力された場合における閾値処理器の出力を示すグラフである。
【図２２】参照ベクトル電圧と入力ベクトル電圧との差が小さい場合における和算器からの出力の一部を示すグラフである。
【図２３】和算器から図２２に示す出力が入力された場合における閾値処理器の出力を示すグラフである。
【図２４】揺らぎ電圧における揺らぎ回数に対するパルス発生数を、参照ベクトルデータと入力ベクトルデータとの近似度をパラメータとして示すグラフである。
【図２５】本発明の実施形態２に係る確率的演算素子の確率的演算回路を示すブロック図である。
【図２６】本発明の実施形態３に係る確率的演算素子の確率的演算回路を示すブロック図である。
【図２７】本発明の実施形態４に係る確率的演算素子の減算素子の構成例を示す回路図である。
【図２８】本発明の実施形態５に係る確率的演算素子の確率的演算回路を示すブロック図である。
【図２９】本発明の実施形態６に係る確率的演算素子の構成を示す回路図である。
【図３０】図２９の積分器の構成例を示す回路図である。
【図３１】本発明の実施形態７に係る確率的演算素子の閾値処理器の構成を示す回路図である。
【図３２】高いバイアス電圧を付加したときの揺らぎ発生器の出力を示すグラフである。
【図３３】図３２の状態からバイアス電圧を徐々に低下させたときの揺らぎ発生器の出力を示すグラフである。
【図３４】本発明の実施形態８に係る確率的演算素子の揺らぎ発生器の出力を示すグラフである。
【図３５】本発明の実施形態９に係る音声認識装置の構成を模式的に示すブロック図である。
【図３６】本発明の実施形態１０に係る音声認識装置のメモリに格納された参照ベクトルデータ群の特徴を説明する図である。
【図３７】本発明の実施形態１１に係る画像認識装置の構成を模式的に示すブロック図である。
【図３８】人の顔を認識する場合の特徴量を示す模式図である。
【図３９】本発明の実施形態１２に係る行動認識装置の構成を示すブロック図である。
【図４０】従来の演算素子の構造を模式的に示す斜視図である。
【図４１】図４０の従来の演算素子の演算原理を等価回路で示した模式図である。
【符号の説明】
【０２４８】
１  確率的演算素子
７  遅延回路
１３  入力電圧出力器
１５  揺らぎ発生器
１７  フラグ検出器
１９  カウント数取得器
２１  演算器
２３  遅延回路
２５  Ｄフリップフロップ
４１  データ記憶部
４３  距離演算器
４５  和算器
４７  閾値処理器
４７ａ  ゲート電極
４７Ｐ  ＰＭＩＳ
４７Ｎ  ＮＭＩＳ
５１  デジタルデータ
５３  演算・Ｄ／Ａ変換器
５５  スイッチ
５７  アナログメモリ
６１  アナログメモリ
６３  ソースフォロワ回路
６３ａ，９３ａ  フローティングゲート電極
６５  強誘電体キャパシタ
７１  アナログメモリ
７２  減算素子
７３  常誘電体キャパシタ
７３Ｐ  ＰＭＩＳ
７３Ｎ  ＮＭＩＳ
７５  第１のキャパシタ
７７  第２のキャパシタ
７８  減算素子
８１  減算器
８３  和算器
８３ａ  ＣＭＩＳ
９１  和算器
９３  ソースフォロワー回路
９５  第１のキャパシタ
９７  第２のキャパシタ
９９  確率的演算回路
１００  スイッチ
１０１  電流検出器
１０２  揺らぎ発生器制御回路
１１１  確率的演算回路
１１３  スイッチ
１１３ａ  信号
１２１  特徴抽出演算部
１２３  マイクロフォン
１３１  メモリ
１４１  特徴抽出部
１４３  カメラ
１７１  行動情報記憶ベクトル
１７３  重み付け係数付加回路
１７５  行動情報入力ベクトル
２１１  ＭＩＳＦＥＴ
２１２  ゲート電極
２１３  量子ドット
４０１  揺らぎ差分演算手段
Ｃｐ，Ｃｐ１〜Ｃｐｍ  ベクトル列比較回路
Ｃｃ，Ｃｃ１〜Ｃｃｎ  確率的演算回路
Ｃｔ，Ｃｔ１〜Ｃｔｍ  カウンタ
Ｉｔ  積分器
Ｓ，Ｓ１〜Ｓｍ  スイッチ
【図１】
0003708113.tif 000013
【図２】
0003708113.tif 000014
【図３】
0003708113.tif 000015
【図４】
0003708113.tif 000016
【図５】
0003708113.tif 000017
【図６】
0003708113.tif 000018
【図７】
0003708113.tif 000019
【図８】
0003708113.tif 000020
【図９】
0003708113.tif 000021
【図１０】
0003708113.tif 000022
【図１１】
0003708113.tif 000023
【図１２】
0003708113.tif 000024
【図１３】
0003708113.tif 000025
【図１４】
0003708113.tif 000026
【図１５】
0003708113.tif 000027
【図１６】
0003708113.tif 000028
【図１７】
0003708113.tif 000029
【図１８】
0003708113.tif 000030
【図１９】
0003708113.tif 000031
【図２０】
0003708113.tif 000032
【図２１】
0003708113.tif 000033
【図２２】
0003708113.tif 000034
【図２３】
0003708113.tif 000035
【図２４】
0003708113.tif 000036
【図２５】
0003708113.tif 000037
【図２６】
0003708113.tif 000038
【図２７】
0003708113.tif 000039
【図２８】
0003708113.tif 000040
【図２９】
0003708113.tif 000041
【図３０】
0003708113.tif 000042
【図３１】
0003708113.tif 000043
【図３２】
0003708113.tif 000044
【図３３】
0003708113.tif 000045
【図３４】
0003708113.tif 000046
【図３５】
0003708113.tif 000047
【図３６】
0003708113.tif 000048
【図３７】
0003708113.tif 000049
【図３８】
0003708113.tif 000050
【図３９】
0003708113.tif 000051
【図４０】
0003708113.tif 000052
【図４１】
0003708113.tif 000053