(57)【特許請求の範囲】
【請求項１】
与えられた入力ベクトルの部分ベクトルの各要素を保持する複数のレジスタおよび与えられた参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタを有する第１ステージ回路と、
前記第１ステージ回路の前記複数のレジスタの保持値と前記第１ステージ回路の前記複数の参照レジスタの保持値との差分をそれぞれ計算する複数の加算器および当該複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有する第２ステージ回路と、
前記第２ステージ回路の前記複数のレジスタの保持値をそれぞれ二乗する複数の乗算器および当該複数の乗算器の計算結果をそれぞれ保持する複数のレジスタを有する第３ステージ回路と、
前記第３ステージ回路の前記複数のレジスタの保持値を累積加算する複数の加算器および当該複数の加算器で計算された累積加算値を保持するレジスタを有する第４ステージ回路と、
前記入力ベクトルとこれまでに与えられた参照ベクトルとの最小距離を保持するレジスタおよび前記第４ステージ回路の前記レジスタの保持値と当該最小距離を保持するレジスタの保持値とを比較する比較器を有し、前記第４ステージ回路の前記レジスタの保持値が当該最小距離を保持するレジスタの保持値よりも小さい場合、当該最小距離を保持するレジスタの保持値を前記第４ステージ回路の前記レジスタの保持値に更新するとともに最小距離検出を示す信号を出力する第５ステージ回路とを備え、
前記第１ステージ回路ないし前記第５ステージ回路がパイプライン動作し、
前記第３ステージ回路が、認識／学習切り替え信号に応じて前記第２ステージ回路の前記複数のレジスタの保持値および学習係数のいずれか一方を選択的にそれぞれ出力する複数のマルチプレクサと、前記参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタとを有し、前記複数の乗算器が、前記第２ステージ回路の前記複数のレジスタの保持値と当該複数のマルチプレクサの出力値とをそれぞれ乗算するものであり、
前記第４ステージ回路が、前記複数の加算器への入力をそれぞれ切り替える複数のマルチプレクサおよび前記複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有し、当該複数のマルチプレクサが、前記認識／学習切り替え信号に応じて、前記複数の加算器が前記第３ステージ回路の前記複数のレジスタの保持値を累積加算する第１の接続状態と、前記複数の加算器が前記第３ステージ回路の前記複数のレジスタの保持値と前記第３ステージ回路の前記複数の参照レジスタの保持値とをそれぞれ加算する第２の接続状態とを切り替えるものであり、
複数の参照ベクトルを保持し、アドレス指定された参照ベクトルの部分ベクトルを前記第１ステージ回路の前記複数の参照レジスタに与えるデータ読み出し、および前記第４ステージ回路の前記複数のマルチプレクサが前記第２の接続状態にあるときに当該アドレス指定された参照ベクトルの部分ベクトルを前記第４ステージ回路の前記複数のレジスタの保持値に更新するデータ書き込みを同時に行うデュアルポートメモリを備えた、
ＬＶＱ（Learning Vector Quantization）ニューラルネットワーク。
【請求項２】
前記第４ステージ回路が、前記複数の加算器がバイナリツリー状に接続されて前記第３ステージ回路の前記複数のレジスタの保持値を合計する加算器ツリーと、前記レジスタの保持値およびゼロのいずれか一方を選択的に出力するマルチプレクサと、当該加算器ツリーの計算結果と当該マルチプレクサの出力値とを加算する加算器とを有し、前記レジスタが当該加算器の計算結果を保持するものである、請求項１に記載のＬＶＱニューラルネットワーク。
【請求項３】
前記学習係数が−１よりも大きく１よりも小さい０を除く小数値である、請求項２に記載のＬＶＱニューラルネットワーク。
【請求項４】
前記学習係数が２の補数で表現される、請求項３に記載のＬＶＱニューラルネットワーク。
【請求項５】
前記第３ステージ回路が、前記学習係数の正値と負値とを切り替えるマルチプレクサを有する、請求項１−４のいずれか１項に記載のＬＶＱニューラルネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＶＱ（Learning Vector Quantization）ニューラルネットワークに関し、特に、ＬＶＱニューラルネットワークを半導体集積回路に実装する技術に関する。
【背景技術】
【０００２】
近年、文字認識・画像認識などに代表されるパターンマッチングを必要とするアプリケーションが大変注目されている。特に、パターンマッチングをＬＳＩ（Large Scale Integrated Circuit）上で実現することにより、将来、人工知能およびモバイル機器などの高機能アプリケーションに適用可能になり、この技術の実現は、非常に注目を浴びている。
【０００３】
パターンマッチングには、人間の脳の神経回路網を工学的にモデル化したニューラルネットワークがよく用いられる。そして、ニューラルネットワークの教師あり学習の一つに、学習ベクトル量子化法（ＬＶＱ：Learning Vector Quantization）が用いられる（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−３４２１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＬＶＱニューラルネットワークを用いたパターンマッチングは、携帯情報端末などのモバイル機器、医療機器、セキュリティ機器などに応用される。特に、モバイル機器では、ＬＶＱニューラルネットワークの消費電力を低減するとともにパフォーマンスを向上させることが求められる。それにはＬＶＱニューラルネットワークのハードウェア化が必要である。
【０００６】
上記問題に鑑み、本発明は、ＬＶＱニューラルネットワークを半導体集積回路に実装可能にすることを課題とする。
【課題を解決するための手段】
【０００７】
本発明の一局面に従ったＬＶＱニューラルネットワークは、与えられた入力ベクトルの部分ベクトルの各要素を保持する複数のレジスタおよび与えられた参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタを有する第１ステージ回路と、前記第１ステージ回路の前記複数のレジスタの保持値と前記第１ステージ回路の前記複数の参照レジスタの保持値との差分をそれぞれ計算する複数の加算器および当該複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有する第２ステージ回路と、前記第２ステージ回路の前記複数のレジスタの保持値をそれぞれ二乗する複数の乗算器および当該複数の乗算器の計算結果をそれぞれ保持する複数のレジスタを有する第３ステージ回路と、前記第３ステージ回路の前記複数のレジスタの保持値を累積加算する複数の加算器および当該複数の加算器で計算された累積加算値を保持するレジスタを有する第４ステージ回路と、前記入力ベクトルとこれまでに与えられた参照ベクトルとの最小距離を保持するレジスタおよび前記第４ステージ回路の前記レジスタの保持値と当該最小距離を保持するレジスタの保持値とを比較する比較器を有し、前記第４ステージ回路の前記レジスタの保持値が当該最小距離を保持するレジスタの保持値よりも小さい場合、当該最小距離を保持するレジスタの保持値を前記第４ステージ回路の前記レジスタの保持値に更新するとともに最小距離検出を示す信号を出力する第５ステージ回路とを備え、前記第１ステージ回路ないし前記第５ステージ回路がパイプライン動作するものである。
【０００８】
これによると、ハードウェア回路を用いて、入力ベクトルと参照ベクトルとのユークリッド距離の二乗値が計算され、入力ベクトルと最も距離が近い参照ベクトルを検索することができる。また、入力ベクトルおよび参照ベクトルが部分ベクトルに分割されて複数回に分けて第１ステージ回路に与えられるため、ＬＶＱニューラルネットワークは任意の次元数の入力ベクトルおよび参照ベクトルを処理することができ、拡張性に優れる。また、第１ステージ回路ないし第５ステージ回路がパイプライン動作することで、ＬＶＱニューラルネットワークを用いた認識処理を高速に行うことができる。
【０００９】
前記第４ステージ回路は、前記複数の加算器がバイナリツリー状に接続されて前記第３ステージ回路の前記複数のレジスタの保持値を合計する加算器ツリーと、前記レジスタの保持値およびゼロのいずれか一方を選択的に出力するマルチプレクサと、当該加算器ツリーの計算結果と当該マルチプレクサの出力値とを加算する加算器とを有し、前記レジスタが当該加算器の計算結果を保持するものであってもよい。
【００１０】
これによると、第３ステージ回路の複数のレジスタの保持値の累積加算を効率よく行うことができる。
【００１１】
前記第３ステージ回路は、認識／学習切り替え信号に応じて前記第２ステージ回路の前記複数のレジスタの保持値および学習係数のいずれか一方を選択的にそれぞれ出力する複数のマルチプレクサと、前記参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタとを有し、前記複数の乗算器が、前記第２ステージ回路の前記複数のレジスタの保持値と当該複数のマルチプレクサの出力値とをそれぞれ乗算するものであってもよく、前記第４ステージ回路は、前記複数の加算器への入力をそれぞれ切り替える複数のマルチプレクサおよび前記複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有し、当該複数のマルチプレクサが、前記認識／学習切り替え信号に応じて、前記複数の加算器が前記第３ステージ回路の前記複数のレジスタの保持値を累積加算する第１の接続状態と、前記複数の加算器が前記第３ステージ回路の前記複数のレジスタの保持値と前記第３ステージ回路の前記複数の参照レジスタの保持値とをそれぞれ加算する第２の接続状態とを切り替えるものであってもよく、上記のＬＶＱニューラルネットワークは、複数の参照ベクトルを保持し、アドレス指定された参照ベクトルの部分ベクトルを前記第１ステージ回路の前記複数の参照レジスタに与えるデータ読み出し、および前記第４ステージ回路の前記複数のマルチプレクサが前記第２の接続状態にあるときに当該アドレス指定された参照ベクトルの部分ベクトルを前記第４ステージ回路の前記複数のレジスタの保持値に更新するデータ書き込みを同時に行うデュアルポートメモリを備えていてもよい。
【００１２】
これによると、認識／学習切り替え信号に応じて、第３ステージ回路の複数の乗算器および第４ステージ回路における複数の加算器を、認識時の最小距離計算用および学習時の参照ベクトルの更新値計算用のいずれかとして使用することができ、参照ベクトルの学習がハードウェア化されてより効率的な学習が可能となる。
【発明の効果】
【００１３】
本発明によれば、ＬＶＱニューラルネットワークを半導体集積回路に実装することができる。これにより、低消費電力で高パフォーマンスのＬＶＱニューラルネットワークを実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係るＬＶＱニューラルネットワークの構成図
【図２】入力ベクトルおよび参照ベクトルを複数の部分ベクトルに分割してＬＶＱニューラルネットワークに入力する様子を示す模式図
【図３】第１の実施形態に係るＬＶＱニューラルネットワークのパイプライン動作のタイムチャート
【図４】本発明の第２の実施形態に係るＬＶＱニューラルネットワークの構成図
【図５】第２の実施形態に係るＬＶＱニューラルネットワークの学習時の第４ステージ回路の接続状態を示す図
【図６】第２の実施形態に係るＬＶＱニューラルネットワークの学習時のパイプライン動作のタイムチャート
【図７】第２の実施形態に係るＬＶＱニューラルネットワークの認識時の第４ステージ回路の接続状態を示す図
【図８】第２の実施形態に係るＬＶＱニューラルネットワークの認識時のパイプライン動作のタイムチャート
【発明を実施するための形態】
【００１５】
以下に説明する本発明の実施形態に係るＬＶＱニューラルネットワークは、ＬＶＱ１をハードウェアで実現したものであり、与えられた入力ベクトルおよび参照ベクトルの距離（ユークリッド距離）を計算し、入力ベクトルとの距離が最小となる参照ベクトルを検索することができる。すなわち、入力ベクトルをｄ次元のベクトルｘ＝｛ｘ１，ｘ２，…，ｘｄ｝、および参照ベクトルをｄ次元のベクトルｗｉ＝｛ｗｉ１，ｗｉ２，…，ｗｉｄ｝（ただし、ｉは１からｎまでの整数である。）とすると、ＬＶＱニューラルネットワークは、式（１）で表される入力ベクトルｘと参照ベクトルｗｉとのユークリッド距離ＤＥを計算し、当該距離ＤＥが最小となるような参照ベクトルを検索する。各参照ベクトルにはクラスを表すラベルが割り当てられており、図略のＣＰＵ（Central Processing Unit）によって、最小距離検索で見つかった参照ベクトルのラベルに基づいて入力ベクトルのクラス識別が行われる。
【００１６】
【数１】
0006539459.tif 000002
【００１７】
なお、式（１）に示したユークリッド距離ＤＥの計算には平方根演算が必要であるがそのような演算には計算コストがかかるため、本発明の実施形態に係るＬＶＱニューラルネットワークは、ユークリッド距離の計算における平方根演算を省略し、式（１）に示したユークリッド距離ＤＥの二乗値を用いて入力ベクトルと参照ベクトルとの距離を評価する。このようにしても、最小距離の参照ベクトルの検索に何ら問題はない。
【００１８】
以下、図面を参照しながら本発明を実施するための形態について説明する。なお、本発明は、以下の実施形態に限定されるものではない。
【００１９】
≪第１の実施形態≫
図１は、第１の実施形態に係るＬＶＱニューラルネットワークの構成例を示す。本実施形態に係るＬＶＱニューラルネットワーク１００Ａは、第１ステージ回路１０、第２ステージ回路２０、第３ステージ回路３０、第４ステージ回路４０、および第５ステージ回路５０を備えている。第１ステージ回路１０は、ニューラルネットワークにおける入力レイヤ（Input Layer）に相当する。第２ステージ回路２０ないし第４ステージ回路４０は、ニューラルネットワークにおける競合レイヤ（Competition Layer）に相当する。第５ステージ回路５０は、ニューラルネットワークにおける出力レイヤ（Output Layer）に相当する。
【００２０】
第１ステージ回路１０は、複数（本実施形態では４個）のレジスタ１１Ｉと、複数（本実施形態では４個）の参照レジスタ１１Ｒとを有する。これらレジスタはいずれも同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅（例えば、１ワード）の入力データを保持する。各レジスタ１１Ｉには入力ベクトルの各要素ＩＮ１，ＩＮ２，ＩＮ３，ＩＮ４が入力される。各参照レジスタ１１Ｒには参照ベクトルの各要素ＲＥＦ１，ＲＥＦ２，ＲＥＦ３，ＲＥＦ４が入力される。
【００２１】
入力ベクトルおよび参照ベクトルの次元数が第１ステージ回路１０の最大入力次元数（本実施形態では４）よりも大きい場合、これらベクトルを複数回に分けて第１ステージ回路１０に入力することができる。図２は、入力ベクトルおよび参照ベクトルを複数の部分ベクトルに分割してＬＶＱニューラルネットワーク１００Ａに入力する様子を模式的に示す。次元数の大きな入力ベクトルおよび参照ベクトルは、第１ステージ回路１０の最大入力次元数に相当する個数の要素（本実施形態では４要素）からなる部分ベクトルに分割して複数回（ｍ回）に分けて第１ステージ回路１０に入力することができる。
【００２２】
なお、入力ベクトルおよび参照ベクトルの次元数は必ずしも第１ステージ回路１０の最大入力次元数の整数倍でなくてもよい。入力ベクトルおよび参照ベクトルの次元数が第１ステージ回路１０の最大入力次元数の整数倍でない場合には、第１ステージ回路１０の最大入力次元数の整数倍になるように入力ベクトルおよび参照ベクトルにダミー要素（例えば、“０”からなる要素）を追加して第１ステージ回路１０に入力すればよい。
【００２３】
図１へ戻り、第２ステージ回路２０は、複数（本実施形態では４個）の加算器２１と、複数（本実施形態では４個）のレジスタ２２Ｉとを有する。各加算器２１は、第１ステージ回路１０の各レジスタ１１Ｉの保持値および各参照レジスタ１１Ｒの保持値を受け、これらの差分を計算する。すなわち、各加算器２１は、式（１）における入力ベクトルｘの要素ｘｊと参照ベクトルｗｉの要素ｗｉｊとの差分を計算する。各レジスタ２２Ｉは、各加算器２１の計算結果を保持する。これらレジスタ２２Ｉはいずれも第１ステージ回路１０のレジスタ１１Ｉや参照レジスタ１１Ｒと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅（例えば、１ワード）入力データを保持する。
【００２４】
第３ステージ回路３０は、複数（本実施形態では４個）の乗算器３１と、複数（本実施形態では４個）のレジスタ３２Ｉとを有する。各乗算器３１は、第２ステージ回路２０の各レジスタ２２Ｉの保持値を受け、これらを掛け合わせる。すなわち、各乗算器３１は、式（１）における入力ベクトルｘの要素ｘｊと参照ベクトルｗｉの要素ｗｉｊとの差分の二乗値を計算する。各レジスタ３２Ｉは、各乗算器３１の計算結果を保持する。これらレジスタ３２Ｉはいずれも第１ステージ回路１０のレジスタ１１Ｉや参照レジスタ１１Ｒと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅（例えば、１ワード）入力データを保持する。
【００２５】
第４ステージ回路４０は、複数（本実施形態では４個）の加算器４１１，４１２，４１３，４１４と、レジスタ４３１と、マルチプレクサ４４とを有する。加算器４１２，４１３，４１４は、バイナリツリー状に接続されて加算器ツリー４２を構成している。当該加算器ツリー４２は、第３ステージ回路３０の複数のレジスタ３２Ｉの保持値を合計する。すなわち、加算器４１２は、第３ステージ回路３０の二つのレジスタ３２Ｉの保持値を受け、これらを加算する。加算器４１４は、第３ステージ回路３０の別の二つのレジスタ３２Ｉの保持値を受け、これらを加算する。加算器４１３は、加算器４１２の計算結果および加算器４１４の計算結果を受け、これらを加算する。加算器４１１は、加算器４１３の計算結果、すなわち、加算器ツリー４２の計算結果およびマルチプレクサ４４の出力値を受け、これらを加算する。レジスタ４３１は、加算器４１１の計算結果を保持する。
【００２６】
マルチプレクサ４４は、制御信号ｎｅｘｔに応じてレジスタ４３１の保持値および固定値“０”のいずれか一方を選択的に出力する。制御信号ｎｅｘｔは、第１ステージ回路１０に入力される入力ベクトルおよび参照ベクトルの区切りを示す信号であり、図略のＣＰＵから出力される。マルチプレクサ４４がレジスタ４３１の保持値を出力する場合、レジスタ４３１に保持された加算器ツリー４２のこれまでの計算結果と加算器ツリー４２の新たな計算結果とが加算器４１１によって加算され、計算結果がレジスタ４３１に保持される。すなわち、第３ステージ回路３０の複数のレジスタ３２Ｉの保持値が累積加算される。一方、マルチプレクサ４４が固定値“０”を出力する場合、加算器４２の計算結果が新たにレジスタ４３１に保持される。
【００２７】
第５ステージ回路５０は、レジスタ５１と、比較器５２と、ＡＮＤゲート５３とを有する。レジスタ５１は、第４ステージ回路４０のレジスタ４３１の保持値を受け、当該保持値が最小であると判定されたときに当該値を保持する。すなわち、レジスタ５１は、入力ベクトルとこれまでに与えられた参照ベクトルとの最小距離を保持するレジスタである。比較器５２は、図略のクロック信号に応じて第４ステージ回路４０のレジスタ４３１の保持値Ａとレジスタ５１の保持値Ｂとを比較し、Ａ＜ＢであればＨレベル信号を出力する。ＡＮＤゲート５３は、制御信号ｎｅｘｔと比較器５２の出力信号との論理積を演算する。すなわち、比較器５２の出力信号は制御信号ｎｅｘｔによってマスクされ、制御信号ｎｅｘｔがＨレベルのときに比較器５２の出力信号がＡＮＤゲート５３から出力される。
【００２８】
このような回路構成によると、ＬＶＱニューラルネットワーク１００Ａに新たに入力された参照ベクトルと入力ベクトルとの距離とこれまでの最小距離とが比較され、新たに入力された参照ベクトルと入力ベクトルとの距離が最小であれば、ＡＮＤゲート５３の出力信号ＷがＨレベルになる、すなわち、最小距離検出を示す信号（Ｗｉｎｎｅｒ信号）がアサートされる。Ｗｉｎｎｅｒ信号がアサートされることで、レジスタ５１は第４ステージ回路４０のレジスタ４３１の保持値、すなわち、新たな最小距離を保持する。また、Ｗｉｎｎｅｒ信号がアサートされると、図略のＣＰＵは、入力ベクトルとの距離が最小となる参照ベクトルの保存場所情報（メモリアドレス）を記憶する。そして、すべての参照ベクトルについて入力ベクトルとの最小距離検索が終わると、図略のＣＰＵは、最小距離検索で見つかった参照ベクトルのラベルに基づいて入力ベクトルのクラス識別を行う。
【００２９】
ＬＶＱニューラルネットワーク１００Ａにおいて、第１ステージ回路１０ないし第５ステージ回路５０はパイプライン動作可能である。図３は、ＬＶＱニューラルネットワーク１００Ａのパイプライン動作のタイムチャートを示す。なお、同図において、第１ステージ回路１０ないし第５ステージ回路５０における各処理時間をローマ数字で表記している。第１ステージ回路１０ないし第４ステージ回路４０は、いずれも１クロック周期で動作して次のステージ回路へデータを渡す。例えば、入力ベクトルと参照ベクトル１との距離計算および最小距離検索を行う場合、入力ベクトルおよび参照ベクトル１の１番目の部分ベクトルを入力し、次のクロック周期で２番目の部分ベクトルを入力し、以後同様に１クロック周期で次の部分ベクトルを入力する。そして、ｍ番目の部分ベクトルを入力した次のクロック周期で、今度は入力ベクトルおよび参照ベクトル２の１番目の部分ベクトルを入力するとともに入力ベクトルと参照ベクトル２との距離計算および最小距離検索を開始する。
【００３０】
制御信号ｎｅｘｔは、入力ベクトルおよび参照ベクトル１のｍ番目の部分ベクトルが第５ステージ回路５０で処理されるタイミングでアサートされる。これにより、第５ステージ回路５０の比較器５２の出力信号がＡＮＤゲート５３から出力される。もし、入力ベクトルと参照ベクトル１と距離が最小であればＷｉｎｎｅｒ信号がアサートされる。また、これと同じタイミングで入力ベクトルおよび参照ベクトル２の１番目の部分ベクトルが第４ステージ回路４０で処理されている。このとき、制御信号ｎｅｘｔがＨレベルになっていることで第４ステージ回路４０のマルチプレクサ４４からは固定値“０”が出力されており、第４ステージ回路４０のレジスタ４３１に、入力ベクトルおよび参照ベクトル２の１番目の部分ベクトルの部分距離計算結果が新たに保持される。
【００３１】
以上のように、本実施形態によると、時間がかかる入力ベクトルと参照ベクトルとの距離計算および最小距離検索をハードウェア化して短時間で行うことができる。これにより、ＬＶＱニューラルネットワーク１００Ａによる認識処理のパフォーマンスが向上する。また、本実施形態にかかるＬＶＱニューラルネットワーク１００Ａは任意の次元数の入力ベクトルおよび参照ベクトルを処理することができ、拡張性に優れる。
【００３２】
≪第２の実施形態≫
ＬＶＱニューラルネットワークによる識別処理を行うには参照ベクトルの学習を行っておく必要がある。ＬＶＱ１アルゴリズムでは、参照ベクトルの学習は次の手順で行われる。教師信号としての入力ベクトルｘのクラスと学習対象の参照ベクトルｗｉのクラスとが等しければ、次式（２）の計算を実施して参照ベクトルｗｉを入力ベクトルｘに近づくように更新する。
【００３３】
ｗｉ←ｗｉ＋α（ｘ−ｗｉ）  …（２）
逆に、教師信号としての入力ベクトルｘのクラスと学習対象の参照ベクトルｗｉのクラスとが異なっていれば、次式（３）の計算を実施して参照ベクトルｗｉを入力ベクトルｘから遠ざかるように更新する。
【００３４】
ｗｉ←ｗｉ−α（ｘ−ｗｉ）  …（３）
ただし、αは学習係数であり、０から１までの小数値である。
【００３５】
図４は、第２の実施形態に係るＬＶＱニューラルネットワークの構成例を示す。本実施形態に係るＬＶＱニューラルネットワーク１００Ｂは、第１の実施形態に係るＬＶＱニューラルネットワーク１００Ａに上記の学習機能を追加したものである。ＬＶＱニューラルネットワーク１００Ｂは、第１ステージ回路１０、第２ステージ回路２０、第３ステージ回路３０、第４ステージ回路４０、第５ステージ回路５０、デュアルポートメモリ６０、およびマルチプレクサ７０を備えている。
【００３６】
デュアルポートメモリ６０は、複数の参照ベクトルを保持している。デュアルポートメモリ６０は、互いに独立したデータ読み出しポートＲＤとデータ書き込みポートＴＤとを有しており、データ読み出しポートＲＤからのデータ読み出し動作、およびデータ書き込みポートＴＤへのデータ書き込み動作を同時に行うことができる。
【００３７】
第１ステージ回路１０は、複数（本実施形態では４個）のレジスタ１１Ｉと、複数（本実施形態では４個）の参照レジスタ１１Ｒとを有する。これらレジスタはいずれも同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅（例えば、１ワード）の入力データを保持する。各レジスタ１１Ｉには入力ベクトルの各要素ＩＮ１，ＩＮ２，ＩＮ３，ＩＮ４が入力される。各参照レジスタ１１Ｒにはデュアルポートメモリ６０のデータ読み出しポートＲＤから読み出された参照ベクトルの各要素ＲＥＦ１，ＲＥＦ２，ＲＥＦ３，ＲＥＦ４が入力される。なお、上述したように、入力ベクトルおよび参照ベクトルの次元数が第１ステージ回路１０の最大入力次元数（本実施形態では４）よりも大きい場合、これらベクトルを複数回に分けて第１ステージ回路１０に入力することができる。
【００３８】
第２ステージ回路２０は、複数（本実施形態では４個）の加算器２１と、複数（本実施形態では４個）のレジスタ２２Ｉと、複数（本実施形態では４個）の参照レジスタ２２Ｒとを有する。各加算器２１は、第１ステージ回路１０の各レジスタ１１Ｉの保持値および各参照レジスタ１１Ｒの保持値を受け、これらの差分を計算する。すなわち、各加算器２１は、式（１）ないし式（３）における入力ベクトルｘの要素ｘｊと参照ベクトルｗｉの要素ｗｉｊとの差分を計算する。各レジスタ２２Ｉは、各加算器２１の計算結果を保持する。各参照レジスタ２２Ｒは、第１ステージ回路１０の各参照レジスタ１１Ｒの保持値を受け、当該値を保持する。これらレジスタ２２Ｉおよび参照レジスタ２２Ｒはいずれも第１ステージ回路１０のレジスタ１１Ｉや参照レジスタ１１Ｒと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅（例えば、１ワード）入力データを保持する。
【００３９】
第３ステージ回路３０は、複数（本実施形態では４個）の乗算器３１と、複数（本実施形態では４個）のレジスタ３２Ｉと、複数（本実施形態では４個）の参照レジスタ３２Ｒと、複数（本実施形態では４個）のマルチプレクサ３３とを有する。各乗算器３１は、第２ステージ回路２０の各レジスタ２２Ｉの保持値およびマルチプレクサ３３の出力値を受け、これらを掛け合わせる。各マルチプレクサ３３は、認識／学習切り替え信号Ｔ／Ｒに応じて第２ステージ回路２０の各レジスタ２２Ｉの保持値および学習係数αのいずれか一方を選択的に出力する。すなわち、各マルチプレクサ３３が第２ステージ回路２０の各レジスタ２２Ｉの保持値を出力する場合、各乗算器３１は、式（１）における入力ベクトルｘの要素ｘｊと参照ベクトルｗｉの要素ｗｉｊとの差分の二乗値を計算する。一方、各マルチプレクサ３３が学習係数αを出力する場合、各乗算器３１は、式（２）または式（３）における入力ベクトルｘの要素ｘｊと参照ベクトルｗｉの要素ｗｉｊとの差分と学習係数αとの乗算を行う。各レジスタ３２Ｉは、各乗算器３１の計算結果を保持する。各参照レジスタ３２Ｒは、第２ステージ回路２０の各参照レジスタ２２Ｒの保持値を受け、当該値を保持する。これらレジスタ３２Ｉおよび参照レジスタ３２Ｒはいずれも第１ステージ回路１０のレジスタ１１Ｉや参照レジスタ１１Ｒと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅（例えば、１ワード）入力データを保持する。
【００４０】
各マルチプレクサ３３に入力される学習係数αは、マルチプレクサ７０から出力される。マルチプレクサ７０は、図略のＣＰＵによって制御され、入力ベクトルｘおよび参照ベクトルｗｉのクラスが同じか否かで学習係数αの正値“＋α”と負値“−α”とを切り替える。なお、各乗算器３１で正負のいずれの乗算もできるようにするために、学習係数αは２の補数で表現することが好ましい。
【００４１】
第４ステージ回路４０は、複数（本実施形態では４個）の加算器４１１，４１２，４１３，４１４と、複数（本実施形態では４個）のレジスタ４３１，４３２，４３３，４３４と、複数（本実施形態では６個）のマルチプレクサ４４，４５１，４５２，４５３，４５４，４５５，４５６とを有する。レジスタ４３１，４３２，４３３，４３４は、それぞれ、加算器４１１，４１２，４１３，４１４の計算結果を保持する。レジスタ４３１，４３２，４３３，４３４の保持値は、それぞれ、第１ステージ回路１０にＲＥＦ１，ＲＥＦ２，ＲＥＦ３，ＲＥＦ４を与えるデュアルポートメモリ６０のデータ書き込みポートＴＤに入力される。マルチプレクサ４４は、制御信号ｎｅｘｔに応じてレジスタ４３１の保持値および固定値“０”のいずれか一方を選択的に出力する。制御信号ｎｅｘｔは、第１ステージ回路１０に入力される入力ベクトルおよび参照ベクトルの区切りを示す信号であり、図略のＣＰＵから出力される。
【００４２】
マルチプレクサ４５１は、認識／学習切り替え信号Ｔ／Ｒに応じて、第３ステージ回路３０においてＩＮ１とＲＥＦ１との演算結果を保持するレジスタ３２Ｉの保持値およびＲＥＦ２を保持する参照レジスタ３２Ｒの保持値のいずれか一方を選択的に出力する。加算器４１２は、マルチプレクサ４５１の出力値および第３ステージ回路３０においてＩＮ２とＲＥＦ２との演算結果を保持するレジスタ３２Ｉの保持値を受け、これらを加算する。マルチプレクサ４５２は、認識／学習切り替え信号Ｔ／Ｒに応じて、第３ステージ回路３０においてＩＮ３とＲＥＦ３との演算結果を保持するレジスタ３２Ｉの保持値およびＲＥＦ４を保持する参照レジスタ３２Ｒの保持値のいずれか一方を選択的に出力する。加算器４１４は、マルチプレクサ４５２の出力値および第３ステージ回路３０においてＩＮ４とＲＥＦ４との演算結果を保持するレジスタ３２Ｉの保持値を受け、これらを加算する。マルチプレクサ４５３は、認識／学習切り替え信号Ｔ／Ｒに応じて、レジスタ４３２の保持値および第３ステージ回路３０においてＲＥＦ３を保持する参照レジスタ３２Ｒの保持値のいずれか一方を選択的に出力する。マルチプレクサ４５４は、認識／学習切り替え信号Ｔ／Ｒに応じて、第３ステージ回路３０においてＩＮ３とＲＥＦ３との演算結果を保持するレジスタ３２Ｉの保持値およびレジスタ４３４の保持値のいずれか一方を選択的に出力する。加算器４１３は、マルチプレクサ４５３の出力値およびマルチプレクサ４５４の出力値を受け、これらを加算する。マルチプレクサ４５５は、認識／学習切り替え信号Ｔ／Ｒに応じて、マルチプレクサ４４の出力値および第３ステージ回路３０においてＲＥＦ１を保持する参照レジスタ３２Ｒの保持値のいずれか一方を選択的に出力する。マルチプレクサ４５６は、認識／学習切り替え信号Ｔ／Ｒに応じて、第３ステージ回路３０においてＩＮ１とＲＥＦ１との演算結果を保持するレジスタ３２Ｉの保持値およびレジスタ４３３の保持値のいずれか一方を選択的に出力する。加算器４１１は、マルチプレクサ４５５の出力値およびマルチプレクサ４５６の出力値を受け、これらを加算する。
【００４３】
認識／学習切り替え信号Ｔ／Ｒに応じてマルチプレクサ４４，４５１，４５２，４５３，４５４，４５５，４５６が出力を切り替えることで、加算器４１１，４１２，４１３が加算器ツリー４２を構成して第３ステージ回路３０の複数のレジスタ３２Ｉの保持値を合計して加算器４１４が累積加算を行う第１の接続状態と、加算器４１１，４１２，４１３，４１４が第３ステージ回路３０の各レジスタ３２Ｉの保持値と各参照レジスタ３２Ｒの保持値とをそれぞれ加算する第２の接続状態が切り替わる。第１の接続状態はＬＶＱニューラルネットワーク１００Ｂが認識処理を行っているときの状態であり、第２の接続状態はＬＶＱニューラルネットワーク１００Ｂが参照ベクトルの学習を行っているときの状態である。
【００４４】
図５は、ＬＶＱニューラルネットワーク１００Ｂの学習時の第４ステージ回路４０の接続状態を示す。便宜のため、データの流れを太線で示している。同図に示したように、加算器４１１，４１２，４１３，４１４が第３ステージ回路３０の各レジスタ３２Ｉの保持値と各参照レジスタ３２Ｒの保持値とをそれぞれ加算し、その計算結果をデュアルポートメモリ６０にそれぞれ上書きすることで、式（２）または（３）のＬＶＱ１アルゴリズムに従って参照ベクトルの学習を行うことができる。
【００４５】
図６は、ＬＶＱニューラルネットワーク１００Ｂの学習時のパイプライン動作のタイムチャートを示す。なお、同図において、第１ステージ回路１０ないし第４ステージ回路４０における各処理時間をローマ数字で表記している。第１ステージ回路１０ないし第４ステージ回路４０は、いずれも１クロック周期で動作して次のステージ回路へデータを渡す。学習時には第５ステージ回路５０は動作する必要はない。例えば、参照ベクトル１の更新（学習）を行う場合、入力ベクトルおよび参照ベクトル１の１番目の部分ベクトルを入力し、次のクロック周期で２番目の部分ベクトルを入力し、以後同様に１クロック周期で次の部分ベクトルを入力する。そして、ｍ番目の部分ベクトルを入力した次のクロック周期で、今度は入力ベクトルおよび参照ベクトル２の１番目の部分ベクトルを入力して参照ベクトル２の更新（学習）を開始する。
【００４６】
学習時には第４ステージ回路４０の処理によって参照ベクトルが更新され、同じタイミングで第１ステージ回路１０へ別の参照ベクトルの部分ベクトルが読み出される。参照ベクトルを保持するメモリとしてデュアルポートメモリ６０を用いることで、データ読み出しおよびデータ書き込みの衝突が起きることなく、参照ベクトルの読み出しおよび書き込みを同時に行うことができる。
【００４７】
図７は、ＬＶＱニューラルネットワーク１００Ｂの認識時の第４ステージ回路４０の接続状態を示す。便宜のため、データの流れを太線で示している。同図に示したように、加算器４１２，４１３，４１４が加算器ツリー４２を構成して第３ステージ回路３０の複数のレジスタ３２Ｉの保持値を合計し、加算器４１１が累積加算を行うことで、認識処理に必要な入力ベクトルと参照ベクトルとの距離計算を行うことができる。
【００４８】
図８は、ＬＶＱニューラルネットワーク１００Ｂの認識時のパイプライン動作のタイムチャートを示す。なお、同図において、第１ステージ回路１０ないし第５ステージ回路５０における各処理時間をローマ数字で表記している。なお、第４ステージ回路４０においてレジスタ４３２，４３４と、レジスタ４３３と、レジスタ４３１とが縦続接続されているため、レジスタ４３１が計算結果を保持するには３クロック周期が必要である。このため、第４ステージ回路４０の処理時間は３つに分けて示している。第１ステージ回路１０ないし第３ステージ回路３０は、いずれも１クロック周期で動作し、第４ステージ回路４０は３クロック周期で動作して次のステージ回路へデータを渡す。例えば、入力ベクトルと参照ベクトル１との距離計算および最小距離検索を行う場合、入力ベクトルおよび参照ベクトル１の１番目の部分ベクトルを入力し、次のクロック周期で２番目の部分ベクトルを入力し、以後同様に１クロック周期で次の部分ベクトルを入力する。そして、ｍ番目の部分ベクトルを入力した次のクロック周期で、今度は入力ベクトルおよび参照ベクトル２の１番目の部分ベクトルを入力して入力ベクトルと参照ベクトル２との距離計算および最小距離検索を開始する。
【００４９】
制御信号ｎｅｘｔは、入力ベクトルおよび参照ベクトル１のｍ番目の部分ベクトルが第５ステージ回路５０で処理されるタイミングでアサートされる。これにより、第５ステージ回路５０の比較器５２の出力信号がＡＮＤゲート５３から出力される。もし、入力ベクトルと参照ベクトル１と距離が最小であればＷｉｎｎｅｒ信号がアサートされる。また、これと同じタイミングで入力ベクトルおよび参照ベクトル２の１番目の部分ベクトルが第４ステージ回路４０で処理されている。このとき、制御信号ｎｅｘｔがＨレベルになっていることで第４ステージ回路４０のマルチプレクサ４４からは固定値“０”が出力されており、第４ステージ回路４０のレジスタ４３１に、入力ベクトルおよび参照ベクトル２の１番目の部分ベクトルの部分距離計算結果が新たに保持される。
【００５０】
以上のように、本実施形態によると、認識／学習切り替え信号Ｔ／Ｒに応じて、第３ステージ回路３０の複数の乗算器３１および第４ステージ回路４０における複数の加算器４１を、認識時の最小距離計算用および学習時の参照ベクトルの更新値計算用のいずれかとして使用することができる。これにより、第１の実施形態の作用・効果に加えて、参照ベクトルの学習がハードウェア化されてより効率的な学習が可能となる。また、ＬＶＱニューラルネットワーク１００Ｂの回路規模および消費電力をより小さくすることができる。
【００５１】
以上、本発明の実施形態について説明したが、本発明は上記の実施形態の構成に限られず種々の変形が可能である。例えば、第１ステージ回路１０ないし第４ステージ回路４０の各レジスタ、各加算器、各乗算器は４個に限られず５個以上であってもよい。
【００５２】
また、上記実施形態により示した構成は、本発明の一実施形態に過ぎず、本発明を当該構成に限定する趣旨ではない。
【符号の説明】
【００５３】
１００Ａ  ＬＶＱニューラルネットワーク
１００Ｂ  ＬＶＱニューラルネットワーク
１０      第１ステージ回路
１１Ｉ    レジスタ
１１Ｒ    参照レジスタ
２０      第２ステージ回路
２１      加算器
２２Ｉ    レジスタ
３０      第３ステージ回路
３１      乗算器
３２Ｉ    レジスタ
３２Ｒ    参照レジスタ
３３      マルチプレクサ
４０      第４ステージ回路
４１      加算器
４２      加算器ツリー
４３      レジスタ
４４      マルチプレクサ（レジスタの保持値およびゼロのいずれか一方を選択的に出力するマルチプレクサ）
４５      マルチプレクサ（加算器への入力を切り替える複数のマルチプレクサ）
５０      第５ステージ回路
５１      レジスタ
５２      比較器
６０      デュアルポートメモリ
７０      マルチプレクサ（学習係数の正値と負値とを切り替えるマルチプレクサ）
【図１】
0006539459.tif 000003
【図２】
0006539459.tif 000004
【図３】
0006539459.tif 000005
【図４】
0006539459.tif 000006
【図５】
0006539459.tif 000007
【図６】
0006539459.tif 000008
【図７】
0006539459.tif 000009
【図８】
0006539459.tif 000010