(57)【要約】【課題】教師データを必要とせず、自動的に出現頻度の高いデータを学習する参照データ認識・学習方法を提供する。【解決手段】処理（ａ）では、入力データと最小距離となる参照データをwinnerとして検出する。処理（ｂ）では、入力データ−winner間の距離がしきい値未満か否かを判断する。処理（ｃ）では、入力データ−winner間の距離がしきい値未満の場合には、winnerとなった参照データは入力データと一致するとみなし、参照データのrankを上げる。処理（ｄ）では、入力データ−winner間の距離がしきい値以上であった場合に、winnerとなった参照データは入力データとは異なるデータであるとみなし、入力データを新たな参照データとして連想メモリに書き込む。その際、rankの上位を長期記憶、下位を短期記憶とし、winnerとなった参照データのrankの上げ幅を適宜設定し、一致する頻度に応じて短期記憶、長期記憶のいずれかに登録される。【選択図】      図４
2005190429.tif 000002
【特許請求の範囲】
【請求項１】
入力パターンの検索データと比較して認識するために格納される複数の参照データに優先度に応じたランクを付けておき、
前記検索データを入力する毎に前記複数の参照データと比較して最も類似する参照データを選び、
両者の類似度から両者が同一か否かを判断し、
同一と判断される場合には該当する参照データのランクを規定数繰り上げて繰り上げ先以下の他の参照データのランクを順次繰り下げ、
同一でないと判断される場合には前記検索データを前記参照データとして所定のランクで登録し登録先以下の他の参照データのランクを順次繰り下げることを特徴とする参照データ認識・学習方法。
【請求項２】
前記検索データと参照データとの同一性の判断は、前記検索データと前記参照データとの最小距離を演算し、その最小距離が所定のしきい値以内であるときは同一、それ以外を同一でないと判断することを特徴とする請求項１記載の参照データ認識・学習方法。
【請求項３】
前記同一性の判断で同一でないと判断される場合には、前記検索データを前記参照データとして所定のランクで登録する際に、最低ランクの参照データを破棄することを特徴とする請求項１記載の参照データ認識・学習方法。
【請求項４】
前記ランクは、任意のランク数で優先度順に複数個の記憶層に分け、初期登録時には短期記憶側の記憶層の所定ランクに設定し、前記同一性の判断で「同一」の判断が得られるときは同じ記憶層内でランクを繰り上げ、所定の条件を満たすとき、長期側の上位の記憶層に登録することを特徴とする請求項１記載の参照データ認識・学習方法。
【請求項５】
前記記憶層間の繰り上げは、前記同一性の判断で「同一」との判断が規定回数生じた場合のみ実行することを特徴とする請求項４記載の参照データ認識・学習方法。
【請求項６】
前記同一性の判断で、前記検索データ及び参照データが同一であると判断されたときはその参照データを最上位のランクに繰り上げ、同一でないと判断された場合には、その検索データを新たな参照データとして最上位のランクに設定登録することを特徴とする請求項１記載の参照データ認識・学習方法。
【請求項７】
少なくとも、入力パターンの検索データを認識するための複数の参照データを記憶する参照データ記憶手段、前記検索データと最小距離にある参照データを求める最小距離検索手段、及び前記連想メモリで得られる最小距離がしきい値以上か否かに応じて前記検索データと最小距離の参照データとの同一性を判断する判断手段を備える連想メモリと、
前記連想メモリに記憶される複数の参照データを、それぞれ優先度に応じたランキングを付して管理するランキング処理手段と、
前記判断手段で検索データと参照データとが同一であると判断されたとき、前記ランキング処理手段に該当参照データのランクを繰り上げて繰り上げ先以下の参照データのランクを順次繰り下げ、前記検索データと参照データとが同一でないと判断されたとき、前記連想メモリに該当検索データを新たな参照データとして記憶させ、前記ランキング処理手段に新参照データのランクを初期値に設定し、設定ランク以下の参照データのランクを繰り下げる認識学習制御手段とを具備することを特徴とするパターン認識システム。
【請求項８】
前記判断手段で求める前記検索データと前記参照データとの最小距離は、ハミング距離、マンハッタン距離またはユークリッド距離であることを特徴とする請求項７記載のパターン認識システム。
【請求項９】
前記ランキング処理手段は、前記連想メモリに記憶される参照データのランクをそれぞれのアドレス値で管理することを特徴とする請求項７記載のパターン認識システム。
【請求項１０】
前記制御手段は、前記判断手段で同一でないと判断される場合には、前記連想メモリに対し、前記ランキング処理手段で最低ランクに設定される参照データのアドレスに前記検索データを参照データとして上書きするように制御することを特徴とする請求項９記載のパターン認識システム。
【請求項１１】
前記ランキング処理手段は、任意のランク数で優先度順に複数個の記憶層に分け、初期登録時には短期記憶側の記憶層の所定ランクに設定し、前記判断手段で「同一」の判断が得られる毎に同じ記憶層内でランクを繰り上げ、所定の条件を満たすとき、長期側の上位の記憶層に登録することを特徴とする請求項７記載のパターン認識システム。
【請求項１２】
前記ランキング処理手段は、前記記憶層間の繰り上げは、前記判断手段で「同一」との判断が規定回数生じた場合のみ実行することを特徴とする請求項１１記載のパターン認識システム。
【請求項１３】
前記ランキング処理手段は、前記判断手段で「同一」と判断されたときはその参照データを最上位のランクに繰り上げ、同一でないと判断されたときは、その検索データを新たな参照データとして最上位のランクに設定登録することを特徴とする請求項７記載のパターン認識システム。
【請求項１４】
前記連想メモリ、ランキング処理手段及び認識学習制御手段は、１チップ集積回路に組み込まれることを特徴とする請求項７記載のパターン認識システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターンマッチング処理のための参照データを追加して認識させる参照データ認識・学習方法と、この方法を用いて参照データの認識・学習を行うパターン認識システムに関する。
【背景技術】
【０００２】
パターン認識システムにおいて、パターンマッチング処理は認識プロセスにおける重要な要素である。従来のシステムでは、プロセッサをベースに実現したモデルが最も一般的である。このモデルでは、入力パターンのデータをメモリ内の複数の参照データと逐次比較して、最も類似したパターンを示す参照データを検出する手法をとっている。しかしながら、このモデルの手法には、逐次比較を要することから多くの処理時間を要し、しかも比較データ数の増加に比例してその処理に要する時間が増大してしまうという問題がある。また、参照データについては、逐次比較されるため、比較順序の入れ替え、新規な参照データの登録において学習する概念はなく、学習による処理時間の短縮効果は得られない。
【０００３】
パターン認識と学習は、人間の脳と同じような能力を持つ人工知能システムを構築するために必要不可欠な機能である。そのため、これらの機能を集積回路上で実現することは技術的に非常に重要である。これまでに提案されているパターン認識と学習機能の実現方法は、ニューラルネットワークを用いたものが殆どである（例えば非特許文献１参照）。しかし、ニューラルネットワークを用いた方法では、パターンを記憶する効率の良い方法がないため、パターンの情報をネットワーク構造自体に取り入れる必要がある。また、既にネットワークの学習が完了した後で、新たなパターンを認識できるように学習させるためには、全体の再学習が必要となり、認識処理をしながら学習することは困難である。さらに、近年のニューラルネットワークを用いたハードウェアによる実現方法に関する進展は、当初期待されたものよりも遅れており、集積度や消費電力の観点からＬＳＩ化が困難な状況にあり、メモリ要素を効率よく組み込んだより優れた新しいハードウェアでの実現方法が必要とされている。
【０００４】
以上の諸事情を考慮し、近年では、全並列アーキテクチャによる小面積・高速連想メモリ（例えば非特許文献２−４、特許文献１−３参照）の開発が進められており、この連想メモリをパターンマッチング処理に利用することが提案されている。連想メモリは、認識機能実現に重要な要素である最小距離検索機能を有しており、検索データと各参照データの比較をアナログ・ディジタル混在かつ全並列処理で実行可能なことから、高速なパターンマッチング処理を実現できるものとして注目されている。
【０００５】
しかしながら、この連想メモリをベースとしたパターン認識システムにおいても、新たな参照データを認識するように効率よく学習させるための具体的な手法が確立されておらず、参照データの追加または入れ替えのための処理にかなりの時間要してしまう。
【非特許文献１】岩田穆、雨宮好仁編著、“ニューラルネットワークＬＳＩ”、電子情報通信学会、1995。
【非特許文献２】H．J．Mattausch, et al. , “Compact associative-memory architecture with fully-parallel search capability for the minimum hamming distance”，IEEE Journal. of Solid-State Circuits,Vol.37，pp.218-227,2002.
【非特許文献３】H．J．Mattausch et al． ， “Fully-parallel pattern-matching engine with dynamic adaptability to Hamming or Manhattan distance，”2002 Symposium on VLSI Circuit Dig．of Tech．Papers，pp．252-255，2002．
【非特許文献４】H．J．Mattausch et al． ， “An architecture for Compact Associative Memories with Deca-ns Nearest-Match Capability up to Large Distance，”ISSCC Dig．of Tech．Papers，pp．170-171，2001．
【特許文献１】特願２００１−０１１７６０号
【特許文献２】特願２００２−１５９４３６号
【特許文献３】特願２００２−１６５７５９号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上述べたように、従来では、高速マッチング処理の実現を図った連想メモリベースのパターン認識システムにおいても、新たに追加される参照データを認識するように効率よく学習させるための具体的な手法が確立されておらず、参照データの認識・学習のための処理にかなりの時間がかかっている。
【０００７】
本発明は、上記の事情に鑑みてなされたもので、パターンマッチング処理に不可欠な新規参照データの認識を比較的短時間で自動的に学習させることのできる参照データ認識・学習方法と、この方法を採用してパターン認識に要する時間を短縮可能としたパターン認識システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明に係る参照データ認識・学習方法は、入力パターンの検索データと比較して認識するために格納される複数の参照データに優先度に応じたランクを付けておき、前記検索データを入力する毎に前記複数の参照データと比較して最も類似する参照データを選び、両者の類似度から両者が同一か否かを判断し、同一と判断される場合には該当する参照データのランクを規定数上げて順次ランクを繰り下げ、同一でないと判断される場合には前記検索データを前記参照データとして所定のランクで登録することを特徴とする。
【０００９】
また、本発明に係るパターン認識システムは、上記参照データ認識・学習方法を利用して、少なくとも、入力パターンの検索データを認識するための複数の参照データを記憶する参照データ記憶手段、前記検索データと最小距離にある参照データを求める最小距離検索手段、及び前記連想メモリで得られる最小距離がしきい値以上か否かに応じて前記検索データと最小距離の参照データとの同一性を判断する判断手段を備える連想メモリと、前記連想メモリに記憶される複数の参照データを、それぞれ優先度に応じたランキングを付して管理するランキング処理手段と、前記判断手段で検索データと参照データとが同一であると判断されたとき、前記ランキング処理手段に該当参照データのランクを繰り上げて繰り上げ先以降の参照データのランクを繰り下げ、前記検索データと参照データとが同一でないと判断されたとき、前記連想メモリに該当検索データを新たな参照データとして記憶させ、前記ランキング処理手段に新参照データのランクを初期値に設定し、設定ランク以降の参照データのランクを繰り下げる認識学習制御手段とを具備することを特徴とする。
【００１０】
上記構成による参照データ認識・学習方法及びこの方法に基づくパターン認識システムでは、与えられた検索データに対して、連想メモリは最小距離検索を行い、最小距離データ（winnerと呼ぶ）に対して検索データとの類似度を比べ、同一とみなすか判断される。異なるものと判断された場合は、検索データを新たな参照データとして学習される（既存の参照データに対しデータの上書きを行う）。また同一と認識された場合、その参照データは検索データ学習時の上書き対象から遠ざかり、より長期間記憶するといった効果がある。以上から新たな検索データ、頻繁に使用される参照データを自動的に学習する機能を有する。
【００１１】
ニューラルネットワークの外部から教育する、いわゆる「教師あり学習」では、学習速度の問題等の特有の問題があるが、連想メモリベースの方法では学習させたいデータをメモリに書き込むだけでよい。すなわち、「教師あり学習」のように人間が入力に対し正しい出力を教えてやらなくても、頻繁に与えられるデータを自動的に学習することが可能なことから、「教師なし学習」を行うことが可能となる。新しいデータを学習する分、既に記憶したデータのいずれかを削除しなければいけないが、十分学習されたデータはしばらく削除されず、優先的に記憶されている。このように、本発明は、短期記憶・長期記憶といった人間の記憶モデルを模倣したアルゴリズムを採用している。
【発明の効果】
【００１２】
本発明によれば、パターンマッチング処理に不可欠な新規参照データの認識を比較的短時間で自動的に学習させることのできる参照データ認識・学習方法と、この方法を採用してパターン認識に要する時間を短縮可能としたパターン認識システムを提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本発明を実施するための最良な形態を詳細に説明する。
【００１４】
図１は、本発明に係る方法が適用される連想メモリベースのパターン認識システムの一例として、画像認識システムの構成を示すブロック図である。
【００１５】
このシステムでは、画像入力部１１にて画像を取り込み、補正処理部１２にてノイズ成分等を除去し、特徴抽出部１３にて入力画像の特徴パターンを抽出する。続いて、検索部１４にて、特徴パターン（入力データ）を予めデータベース１５に登録された複数の標準パターン（参照データ）の中から最も類似するパターンを検索し、該当する標準パターンが検索された場合には認識部１６にて入力画像が標準パターンを有する既知の画像であることを認識し、その結果を表示装置等の出力部１７に送る。
【００１６】
上記システムでは、検索部１４、データベース１５、認識部１６を連想メモリＡによって実現している。連想メモリＡは、通常のＲＡＭの機能、すなわち、与えられたアドレスに対してそのアドレスにデータを書き込んだり、アドレスのデータを読み込んだりするといった機能に加え、与えられたデータに対してメモリ内から最も類似したもの（距離が最小のもの）を検索する機能を有する。
【００１７】
上記システム構成において、認識効率を上げるためには、検索処理の学習アルゴリズムが不可欠である。特に、検索の結果、類似する標準パターンがなかった場合、新たな標準パターンを登録し、この標準パターンの認識を学習させる必要がある。
【００１８】
本発明が提案する認識・学習アルゴリズムは、連想メモリの参照データ（テンプレート）に無いデータを一時的に短期間の記憶領域に格納し、頻繁に与えられるデータを長期間の記憶領域に格納することで学習を実現するもので、人間の脳の短期間と長期間の記憶の概念に基づいている。図２に短期・長期記憶に基づく学習機能を実現する様子を示す。図２において、縦軸は記憶されている程度を示し、上側の領域が長期記憶領域（長期間覚えるために使用）、下側の領域が短期記憶領域（一時的な記憶に使用）を表している。新しい入力データが与えられた場合、短期記憶領域の最上位に登録され、検索データとの一致数に応じて学習効果により長期記憶領域に登録される。新データが入力され登録された場合には、最下位ビットのデータが忘却（破棄）される。
【００１９】
最小距離検索連想メモリを認識システムに応用する際の認識・学習の概要について、図３を参照して説明する。
【００２０】
図３（ａ）はメモリ内に参照データがない場合の認識結果を示しており、図３（ｂ）は学習によって参照データが新規登録された場合の認識結果を示している。
【００２１】
最小距離検索連想メモリを認識システムに応用した場合、メモリ内に入力（検索）データに対応する参照データが無いと、連想メモリは最小距離を持つデータをウィナー（winner）として検出してしまう。例えば、図３（ａ）に示すように、文字データ“Ａ”“Ｂ”“Ｃ”“Ｄ”を参照データとして記憶している連想メモリに対して入力データとして“３”を入力とした場合，単純に最小距離検索の結果だけから判断すると“Ｂ”と認識されてしまう．しかし，“３”と“Ｂ”の距離は実際には大きいため“３”と“Ｂ”を異なるデータとして扱う方がよい．
そこで、本発明では、入力データとwinner間の距離（入力データ−winner間距離）を算出し、しきい値と比較して、しきい値未満ならば一致、しきい値以上ならば不一致といった判断を行うようにする。そして、連想メモリ内の各参照データにプライオリティ（優先順位）を与えておき、不一致と見なされた入力データをプライオリティの低い参照データに代わって新たに参照データとして記憶させ、一致と見なされた場合はその参照データのプライオリティを上げるという学習を実行する。例えば、図３（ｂ）に示すように、不一致と見なされた入力データ“３”をプライオリティの低い参照データ“Ｃ”に代わって新たに参照データとして記憶し、一致と見なされる毎にその参照データのプライオリティを上げる。このような学習を実行することにより、次に“３”が入力されたとき、正しく“３”と識別することが可能となる。
【００２２】
先に述べたように、本発明の学習方法（以下、学習アルゴリズムと記す）の特徴とする点は、連想メモリの参照データ（データベースに相当する）に無いデータを一次的に記憶し、頻繁に与えられるデータを学習することで、人間の脳の短期間の記憶と長期間の記憶に相当する処理を実現したことにある。このようなメモリベースアーキテクチャによる学習アルゴリズムは、ニューラルネットワークが不得手とする追記的な学習を容易とする。
【００２３】
一般に、訓練されたニューラルネットワークに新しいデータのみを追記的に学習させるには、以前学習したデータを想起するためのネットワークに対し、教師データを与えて最初から学習をやり直す必要がある。このような教師データを要する学習に対し、メモリベースによる方法ではメモリに新しいデータを書き込むだけで対応させることが可能となる。このため、本発明による学習アルゴリズムでは、教師データを必要とせず、自動的に出現頻度の高いデータを学習することが可能である。これにより多くの知的な応用が可能となる。ここでは連想メモリを用いた３種類の認識・学習アルゴリズムを提案する。
【００２４】
（認識・学習アルゴリズム１）
図４は、本発明に係る認識・学習アルゴリズム１の処理手順を示すフローチャートである。
【００２５】
図４において、処理（ａ）では、データ入力があると、入力データと各参照データとの距離（例えばハミング距離，マンハッタン距離，ユークリッド距離）を求め、最小距離となる参照データをwinnerとして検出する。
【００２６】
処理（ｂ）では、入力データ−winner間の距離Ｄを評価し、その距離がしきい値未満かしきい値以上かを判断する。
【００２７】
処理（ｃ）では、入力データ−winner間の距離Ｄがしきい値未満の場合に、winnerとなった参照データは入力データと一致するとみなし、参照データのプライオリティを示すランク（rank）を上げる。その際、rankの上位を長期記憶（NL個）、下位を短期記憶（NS個）とする。winnerとなった参照データのrankの上げ幅は、短期記憶のときＪS 、長期記憶のときＪL とする（但し、ＪS ＜ＪL ）。
【００２８】
処理（ｄ）では、入力データ−winner間の距離Ｄがしきい値以上であった場合に、winnerとなった参照データは入力データとは異なるデータであるとみなし、入力データを新たな参照データとして連想メモリに書き込む。その際、新たに参照データとして学習される入力データは、短期記憶内のrankの最上位として記憶され、他の短期記憶の参照データのrankは繰り下げられる。その結果、学習前に最下位にあった参照データは削除される（連想メモリ上では、そのアドレスに入力データを上書きする）ことになる。
【００２９】
１つ目の認識・学習アルゴリズム１の短期記憶・長期記憶について、図５を参照して具体的に説明する。
【００３０】
図５は、連想メモリに記憶された参照データにrankを与えた様子を示している。ここでは、参照データ最大記憶数６４個の連想メモリに対し、上位のrank１〜４０を長期記憶の参照データ、それより下位のrank４１〜６４を短期記憶の参照データとして記憶するものとする。
【００３１】
尚、上記短期記憶は、新しいデータを学習する度に既に記憶しているデータを忘却する一時的な扱いの記憶を意味する。これに対して、上記長期記憶は、短期記憶に比べて新たにデータを学習した際の影響を受けず、比較的長期に渡って記憶が継続されることを意味する。
【００３２】
図６Ａ、図６Ｂは、それぞれ上記認識・学習アルゴリズム１において、図５に示すようにランキングされた参照データが連想メモリに記憶され、連想メモリによる最小距離検索の結果、入力（検索）データ−winner間の距離Ｄがしきい値未満となった場合の処理（ｃ）の例を示している。また、図６Ｃは、上記認識・学習アルゴリズム１において、図５に示すようにランキングされた参照データが連想メモリに記憶され、連想メモリによる最小距離検索の結果、入力（検索）データ−winner間の距離Ｄがしきい値以上となった場合の処理（ｄ）の例を示している。
【００３３】
図６Ａにおいて、winner＝参照データ３９では、rank３９＝長期記憶であることから、winner（参照データ３９）のrankをＪL （ここではＪL ＝５とする）だけ上げてrank３４とする。このとき、旧rank３４以下のランキングを順に繰り下げる。この結果、rank３４〜３９のrankが入れ替わる。
【００３４】
図６Ｂにおいて、winner＝参照データ６３では、rank６３＝短期記憶であることから、winner（参照データ６３）のrankをＪS （ここではＪS ＝３とする）だけ上げてrank６０とする。このとき、旧rank６０以下のランキングを順に繰り下げる。この結果、rank６０〜６３のrankが入れ替わる。
【００３５】
図６Ｃにおいて、入力データとwinner間の距離がしきい値以上であるとき、winnerとなった参照データは入力データと異なるデータとみなし、この入力データを新たな参照データとして連想メモリに書き込む。その際、新たに参照データとして学習される入力データは、短期記憶内の最上位rank４１に記憶され、これによって他の短期記憶における参照データのrankは繰り下げられる。その結果、学習前に最下位にあった参照データは削除される（そのアドレスに入力データを上書きする）。
【００３６】
上記の認識・学習アルゴリズム１では、認識される度にその参照データの記憶が強くなり（rankが上がる）、認識に供しない参照データの記憶が弱くなる（rankが下がる）。その結果、頻繁に使うデータは忘れにくく、ほとんど使われないデータは忘れていくといった動作を実現することができ、認識効率を高めつつ、記憶容量制限のあるハードウェア資源を有効利用することができる。
【００３７】
（認識・学習アルゴリズム２）
図７は、本発明に係る認識・学習アルゴリズム２の処理手順を示すフローチャートである。尚、図７において、図４と同一部分には同一符号を付して示し、重複する説明を省略する。
【００３８】
この認識・学習アルゴリズム２は、処理（ｃ）において、winnerの長期記憶／短期記憶判定（ｃ１）で短期記憶と判定された場合に、そのwinnerが短期記憶と判定された回数が規定回数ｋに達したか否かを判断し（ｃ２）、規定回数ｋに達していなければ短期記憶として処理し（ｃ３）、規定回数ｋに達した場合には長期記憶として任意のrankに入れるようにしている（ｃ４）。
【００３９】
すなわち、上記アルゴリズム２では、短期記憶と判断された短期記憶から長期記憶へ移るのに、短期記憶において一定数ｋ回の認識（検索データ＝winner）を要するようにしたことを特徴とし、ｋ回目の認識時に短期記憶から長期記憶の任意のrankへと移る。アルゴリズム１がＪL もしくはＪS だけ上げるのに対し、アルゴリズム２はｋ回目未満の認識時はWinnerの記憶領域の最上位に移る。上記のアルゴリズム１と同様、長期記憶に記憶されたデータは短期記憶と比べて忘れにくい特徴を持つ。
【００４０】
図８Ａ〜図８Ｄにそれぞれ上記認識・学習アルゴリズム２の処理の様子を示す。尚、ここでは、rankと参照データとの関係が図５に示したようになっているものとする。
【００４１】
図８Ａは、入力（検索）データ−winner間距離Ｄ＜しきい値となって入力（検索）データ＝winnerとして見なされた場合の一例を示すものである。ここではwinner＝参照データ６３でwinnerが短期記憶であるから、winnerのrankを短期記憶の最上位（例ではrank４１）に繰り上げる。このとき、旧rank４１〜６２の参照データのrankは順次繰り下げられることになる。
【００４２】
図８Ｂは、ある参照データに対して入力（検索）データ＝winnerとして見なされ、短期記億の最上位への繰り上げ操作が一定回数（ｋ回）行われた場合の一例を示すものである。この場合には、参照データは短期記憶から長期記憶の設定されたrank（例ではrank２０）に移ることができる。この場合も、旧rank２０〜６２の参照データのrankは順次繰り下げられる。
【００４３】
図８Ｃは、ある参照データに対して入力（検索）データ＝winnerとして見なされた場合に、そのwinnerが長期記憶であった場合の一例を示すものである。この例では、winner＝参照データ３９でwinnerが長期記憶であるから、winnerのrankは長期記憶の最上位（rank１）に繰り上げられる。このとき、旧rank１〜３８の参照データのrankは順次繰り下げられる。
【００４４】
図８Ｄは、入力（検索）データ−winner間距離Ｄ＞しきい値であり、検索データ≠winnerと判断された場合の一例を示すものである。この例では、アルゴリズム１と同様に短期記憶となる下位のrankの中の最上位（例ではrank４１）に検索データが記憶される。一方、その処理前に最下位（rank６４）にあった参照データは削除される。
【００４５】
（認識・学習アルゴリズム３）
図９は、本発明に係る認識・学習アルゴリズム３の処理手順を示すフローチャートである。尚、図９において、図４と同一部分には同一符号を付して示し、重複する説明を省略する。
【００４６】
この認識・学習アルゴリズム３は、rankに長期・短期といった区別は無く（図４の処理（ｃ）に相当するステップがない）、処理（ｄ）で新しいデータを学習する際（入力≠winner）は、新しいデータを最下位にあったデータのアドレスに記憶させ、このデータのrankを最上位に置く。このとき、他のデータのrankは１つずつ下がる。認識時（入力＝winner）にはwinnerはrankの最上位へと移動し、これらの間にあったデータのrankは一つずつ下がる。新しいデータが頻繁に現れるような環境では、直ちに全参照データが書き換えられる特徴がある。
【００４７】
図１０Ａ，図１０Ｂにそれぞれ上記認識・学習アルゴリズム３の処理の様子を示す。尚、ここでは、rankと参照データとの関係が図５に示したようになっているものとする。
【００４８】
図１０Ａは、入力（検索）データ−winner間距離Ｄ＞しきい値であり、入力（検索）データ≠winnerと判断された場合の一例を示すものである。この場合、本アルゴリズム３では、入力（検索）データをrank１として記憶し、最下位のrankにあった参照データ６４を削除する（処理（ｄ）′）。
【００４９】
図１０Ｂは、入力（検索）データ−winner間距離Ｄ＜しきい値となって入力（検索）データ＝winner（＝参照データ６３）として見なされた場合の一例を示すものである。この場合、本アルゴリズム３では、winnerのrankは関係なくwinnerの参照データ６３をrank１に繰り上げ、その処理前にrank１〜（winnerのrank-1）にあった各参照データのrankを一つずつ下げることになる（処理（ｅ））。
【００５０】
上記認証・学習アルゴリズム１〜３の有効性を検証するために、Ｃ言語によるシミュレータを作成し、図１１に示す動作レベルのシミュレーションを行った。連想メモリとして２５６ビットの参照データを３０パターン格納できるものを仮定した。図１１に示すように、連想メモリには予め参照データとして文字のビットマップデータが３０種類記憶されている。参照データ３０個のうち上位rankの２０個（ＮL ）は長期記憶とし、残りの１０個（ＮS ）は短期記憶とした。
【００５１】
アルゴリズムの各種パラメータとして、アルゴリズム１では、認識時にwinner＝長期記憶の場合のrank上げ幅ＪL を６、winner＝短期記憶の場合のrank上げ幅ＪS を３とした。アルゴリズム２では、短期記憶から長期記憶に移るのに必要な認識の回数ｋを２、移る際のrankを１４とした。アルゴリズム３では、参照データにない検索データをrank１に記憶するものとした。そして、入力データとして、参照データにない新しいアルファベットのビットマップデータ２０種類と２５６ビットの各ビットをランダムに“１”，“０”にしたビットマップデータ（ノイズパターン）を連想メモリに入力することで、認識・学習処理を行い、最終的に２０個のアルファベットを学習することができるかを検証した。
【００５２】
ここで、入力データの生成は、まず与えるデータが文字データかノイズデータかを決定して、文字データなら２０種類の中から選択し、ノイズデータが選択されるとランダムにノイズデータを生成し入力した。各々の選択確率は同じ確率とした。上述の方法で入力データを与えた場合に、長期記憶（上位２０個の参照データ）に学習された新たなアルファベットデータの個数とそれに要した検索回数のシミュレーション結果を図１２に示す。
【００５３】
図１２（ａ）は、アルゴリズム３の場合を示している。このアルゴリズム３では、ノイズパターンも次々にrank１に学習されていくので、新規データ：ノイズデータ＝１：１の影響がそのまま結果として現れる。
【００５４】
図１２（ｂ）は、アルゴリズム２の場合を示している。このアルゴリズム２では、学習したデータ数が増えるにつれ（学習するデータが減るにつれ）学習に要する時間が多くなるが、最終的に全ての新規データを学習することが可能となる。
【００５５】
図１２（ｃ）は、アルゴリズム１の場合を示している。このアルゴリズム１では、アルゴリズム２と同様に、まず短期記憶にデータを学習するため、ノイズパターンが長期記憶に記憶されることはない。また、長期記憶に移る条件の違いから、アルゴリズム２より早く全ての新規データを学習することができる。
【００５６】
結果として、アルゴリズム３では、参照データに無い検索データはrank１に記憶される。最初は、検索データが（ノイズデータも含め）rankの上位から押し出すように初期の参照データを削除されていき、参照データの中には、１：１で新規データとノイズデータが記憶されていることになる。
【００５７】
アルゴリズム１，２がアルゴリズム３と異なるのは、短期記憶・長期記憶の区別をもっている点で、入力はまず短期に入り、短期記憶において検索データとの一致を経て長期記憶へと移る。よって、ノイズパターンのようにマッチングしないデータは長期記憶へ入ることができない。これにより、新規データのみrank１〜２０に学習することができる。つまりノイズデータの影響を受けて参照データが長期記憶から消えるようなことがない。
【００５８】
図１３は上記連想メモリベースの認識・学習アルゴリズムを実現するアーキテクチャの概略構成を示すブロック図である。このアーキテクチャは、最小距離検索を行う連想メモリ１００、ランキング処理回路２００、自動学習制御回路３００の３ブロックから構成される。
【００５９】
上記最小距離連想メモリ１００としては、我々がこれまでに開発しているディジタル・アナログ融合回路による全並列最小ハミング・マンハッタン距離検索連想メモリ（特許文献１〜３参照）などが使用可能である。本アーキテクチャでは、入力データ−winner間距離Ｄも必要になるため、距離Ｄをディジタルで計算する距離計算回路を付加したものを用いる。
【００６０】
ランキング処理回路２００は、rankを対応付けられた参照データ（連想メモリ上のアドレス）を記憶し、図３乃至図５で説明した短期・長期記憶を実現するrank操作の処理を行う。このランキング処理回路２００は、具体的には図１４に示すように構成される。
【００６１】
図１４（ａ）は、参照データ６４個を処理するランキング処理回路の構成例を示すもので、Ｄフリップフロップ（ＤＦＦ）とその入出力を決定するトライステートバッファ（ＴＢＵＦ）からなるrankモジュールを多段接続して構成される。ここでは、参照データ６４個に対応して、ＤＦＦが縦に６４個、横に６個（６bit＝log2６４）並んでおり、各ＤＦＦの入出力部にトライステートバッファが接続されている。
【００６２】
各行のＤＦＦには、それぞれ連想メモリ１００上の参照データのアドレス（６ビット）が記憶されており、上から順にrank１からrank６４となる。トライステートバッファは、（１）ＤＦＦの出力をバスに接続するラインに接続したもの（ＴＢＵＦ−Ａ）、（２）バスを入力としＤＦＦの入力に信号を出力するもの（ＴＢＵＦ−Ｂ）、及び（３）ＤＦＦの出力を次の行のＤＦＦの入力に接続したもの（ＴＢＵＦ−Ｃ）の３種類がある。
【００６３】
ＴＢＵＦ−Ａ，Ｂはrankを繰り上げる際の参照データのアドレスのパスを作り、ＴＢＵＦ−Ｃは、rankを繰り下げるデータのパスを作る。例えば、図６Ｂで説明した動作を実現するためには、図１４（ｂ）に示すように制御信号a[63]，b[60]，c[60]，c[61]，c[62]をオンにしてＴＢＵＦを制御し、ＤＦＦのクロック信号ck[60]，ck[61]，ck[62]，ck[63]を入力する。これにより、図中矢印で示すようなデータの流れを実現することができる。
【００６４】
このようなランキング処理回路２００に対し、自動学習制御回路３００では、連想メモリ１００からの検索結果（winnerのアドレス）に対して各行のＤＦＦから一致するものを検索し、winnerのrankを得てランキング処理回路２００のランク設定を制御する。winnerのrankを得るのは、詳細なアーキテクチャ中の完全一致回路１２０(ランキング処理に記憶された参照データのアドレスとwinnerのアドレスの一致する行を調べることによりwinnerのrankが判る)であり、この３つのブロックに分けた大まかなアーキテクチャでは自動学習制御回路に一部として含まれている。尚、アルゴリズム中のＪL やＪS 、参照データの長期記憶・短期記憶の数といった値は任意に設定ができる。
【００６５】
自動学習制御回路３００は、連想メモリ１００とランキング処理回路の制御を行う。連想メモリ１００の検索結果から、入力データとwinner間距離Ｄに応じてランキング処理回路２００の制御信号を生成し、距離Ｄがしきい値以上の場合（図６Ｃの新規学習のケース）は、ランキング処理回路２００の制御に加え、最下位のrankにあった参照データに入力データを書き込むように連想メモリ１００を制御する。
【００６６】
このように、自動学習制御回路３００では、アルゴリズム中のパラメータＪL ，ＪS 、しきい値、参照データ数における短期記憶の数、連想メモリ１００の検索結果、検索データ−winner間距離により連想メモリ１００及びランキング処理回路２００の制御を行う。
【００６７】
図１５に今回テストチップとして試作した詳細なアーキテクチャを示す。連想メモリブロック１００は、メモリブロック１０１、最小距離検索回路１０２、検索データ保存回路１０３、行デコーダ１０４及びＲＷ・列デコーダ・距離計算回路１０５を備える。内部のＳＲＡＭによるメモリブロック１０１には参照データが保存され、検索データ保存回路１０３には最小距離検索を行うデータが入力される。また、連想メモリ１００には、入力データとメモリブロック内の特定のデータとの距離を直接求める回路１０５も組み込まれている。この回路１０５は、アルゴリズムで使用する距離Ｄを求めるために用いる。
【００６８】
上記連想メモリ１００に付加されるプライオリティエンコーダ１１０はwinnerが複数ある場合に１つを選択するプライオリティエンコードを行い、６bitのwinnerのアドレスを出力する。
【００６９】
ランキング処理回路２００は、図１４で説明した回路であり、自動認識・学習アルゴリズムの核となる参照データのrankの操作を行う。
【００７０】
完全一致検索回路１２０は、プライオリティエンコーダ１１０の出力のwinnerのアドレスとランキング処理回路２００の各参照データのアドレスとの完全一致検索を行い、winnerのrankを調べる回路である。また、第１のコンパレータ３１０は、winnerのrankと外部からパラメータとして与えられる短期・長期記憶の境界のrankとの比較を行い、winnerが長期記憶に属するか、短期記憶に属するかを判断する。第２のコンパレータ３２０は、距離計算回路１０５により求められた距離Ｄと外部から与えられたしきい値（ｔｈ）との比較結果を制御回路３３０に渡す。第１のセレクタ１３０は、連想メモリ１００からの６４個の出力を８個ずつ分割してチップから出力する。第２のセレクタ３４０は第１のコンパレータ３１０の出力結果により認識時のrankの上げ幅をＪL もしくはＪS に決定するものである。
【００７１】
制御回路３３０は、メモリブロックにデータの読み書きを行う通常のメモリ動作であるメモリモード（ＲＭ）、最小距離検索を行うＣＡＭモード（ＣＭ）、及び最小距離探索の結果に応じて動作する学習モード（ＬＭ）などの各種動作モードに応じて連想メモリブロック１００やランキング処理回路２００を制御する。
【００７２】
上記構成によるアーキテクチャのテストチップを０．３５μｍ ＣＭＯＳ技術を用いて、３層配線、４．９ｍｍ角、電源電圧３．３Ｖの条件で試作を行った。連想メモリブロックはフルカスタム設計により、参照データ６４個処理可能な５ビット×１６ユニットのマンハッタン距離連想メモリを設計した。また、自動学習制御回路とランキング処理回路は、ハードウェア記述言語Verilog-HDLによりレジスタトランスファレベル（ＲＴＬ）で設計・シミュレーションを行い、スタンダードセルライブラリを用いて自動論理合成ツールにてクロック周波数２０MHzで論理合成をした。そして、自動配置配線ツールにより、連想メモリマクロを組み込んだ全体のレイアウト作成を行った。
【００７３】
図１６に自動学習制御回路とランキング処理回路のみのテストチップのチップ写真を示す。図１７は図１５の全回路を組み込んだテストチップのレイアウトである。このテストチップの諸元を図１８に一覧表示する。連想メモリは２５０nsec以内に最小距離検索を終え、自動学習回路は最大動作周波数１６６MHz（ゲートレベルシミュレーション）で動作する。そして、連想メモリから最小距離検索の結果と入力データ−winner間距離Ｄのデータを受け取って１クロックでランキングの処理のための信号を生成し、入力データ学習時は連想メモリへのデータ更新の信号を生成する。
【００７４】
以上の試作チップにより、前述のシミュレーションについてテストした結果、目的通りの自動学習が実現された。このことから、本発明の連想メモリベースの認識・学習アルゴリズムの採用によって、プロセッサやニューラルネットワークによる従来の認識・学習システムでは不可能であった自動学習機能搭載の集積回路化が実現された。将来は、１パターン当たり数百ｎｓｅｃ以内でパターン認識・学習が得られることが期待される。
【００７５】
尚、上記実施形態では、ランクを２階層に分けて長期記憶と短期記憶で管理するようにしたが、本発明はこれに該当するものではない。例えば、任意のランク数で優先度順に３個以上の記憶層に分け、初期登録時には短期記憶側の記憶層の所定ランクに設定し、同一性の判断で「同一」の判断が得られるときは同じ記憶層内でランクを繰り上げ、所定の条件を満たすとき、長期側の上位の記憶層に登録するようにしてもよい。このような多階層の構造において、各記憶層間の繰り上げは、２階層の場合と同様に、同一性の判断で「同一」との判断が規定回数生じた場合のみ実行するとよいことは勿論である。
【産業上の利用可能性】
【００７６】
本発明は、人工知能システム、自律ロボット、認証システム、ＩＤＳ（不正侵入検知システム）、パターン認識システム等に適用可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明に係る方法が適用される連想メモリベースのパターン認識システムの一例として、画像認識システムの構成を示すブロック図。
【図２】本発明において、短期・長期記憶に基づく学習機能を実現する様子を示す概念図。
【図３】本発明において、最小距離検索連想メモリを認識システムに応用する際の認識・学習の概要を説明するための図。
【図４】本発明に係る認識・学習アルゴリズム１の処理手順を示すフローチャート。
【図５】図４の認識・学習アルゴリズム１の短期記憶・長期記憶について説明するための図。
【図６Ａ】図４の認識・学習アルゴリズム１によるランキング処理の様子を示す図。
【図６Ｂ】図４の認識・学習アルゴリズム１によるランキング処理の様子を示す図。
【図６Ｃ】図４の認識・学習アルゴリズム１によるランキング処理の様子を示す図。
【図７】本発明に係る認識・学習アルゴリズム２の処理手順を示すフローチャート。
【図８Ａ】図７の認識・学習アルゴリズム２によるランキング処理の様子を示す図。
【図８Ｂ】図７の認識・学習アルゴリズム２によるランキング処理の様子を示す図。
【図８Ｃ】図７の認識・学習アルゴリズム２によるランキング処理の様子を示す図。
【図８Ｄ】図７の認識・学習アルゴリズム２によるランキング処理の様子を示す図。
【図９】本発明に係る認識・学習アルゴリズム３の処理手順を示すフローチャート。
【図１０Ａ】図９の認識・学習アルゴリズム３によるランキング処理の様子を示す図。
【図１０Ｂ】図９の認識・学習アルゴリズム３によるランキング処理の様子を示す図。
【図１１】上記認証・学習アルゴリズム１〜３の有効性検証のためのシミュレーション評価例を示す図。
【図１２】上記シミュレーションの効果として、アルゴリズム１〜３のそれぞれに対する学習パターン数と学習速度との関係を示す図。
【図１３】本発明に係る連想メモリベースの認識・学習アルゴリズムを実現するアーキテクチャの概略構成を示すブロック図。
【図１４】図１３に示すアーキテクチャを実現するハードウェア構成を示すブロック図。
【図１５】今回テストチップとして試作した詳細なアーキテクチャを示すブロック図。
【図１６】図１５に示した自動学習制御回路とランキング処理回路のみのテストチップのチップ写真を示す図。
【図１７】図１５の全回路を組み込んだテストチップのレイアウトを示す図。
【図１８】テストチップの諸元を一覧表示する図。
【符号の説明】
【００７８】
１１…画像入力部、１２…補正処理部、１３…特徴抽出部、１４…検索部、１５…データベース、１６…認識部、１７…出力部、
１００…連想メモリ、２００…ランキング処理回路、３００…自動学習制御回路、
１０１…メモリブロック、１０２…最小距離検索回路、１０３…検索データ保存回路、１０４…行デコーダ、１０５…ＲＷ・列デコーダ・距離計算回路、１１０…プライオリティエンコーダ、１２０…完全一致検索回路、３１０…第１のコンパレータ、３２０…第２のコンパレータ、１３０…第１のセレクタ、３４０…第２のセレクタ、３３０…制御回路。
【図１】
2005190429.tif 000003
【図２】
2005190429.tif 000004
【図３】
2005190429.tif 000005
【図４】
2005190429.tif 000006
【図５】
2005190429.tif 000007
【図６Ａ】
2005190429.tif 000008
【図６Ｂ】
2005190429.tif 000009
【図６Ｃ】
2005190429.tif 000010
【図７】
2005190429.tif 000011
【図８Ａ】
2005190429.tif 000012
【図８Ｂ】
2005190429.tif 000013
【図８Ｃ】
2005190429.tif 000014
【図８Ｄ】
2005190429.tif 000015
【図９】
2005190429.tif 000016
【図１０Ａ】
2005190429.tif 000017
【図１０Ｂ】
2005190429.tif 000018
【図１１】
2005190429.tif 000019
【図１２】
2005190429.tif 000020
【図１３】
2005190429.tif 000021
【図１４】
2005190429.tif 000022
【図１５】
2005190429.tif 000023
【図１６】
2005190429.tif 000024
【図１７】
2005190429.tif 000025
【図１８】
2005190429.tif 000026