TOP > 国内特許検索 > LVQニューラルネットワーク > 明細書

明細書 :LVQニューラルネットワーク

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2016-157233 (P2016-157233A)
公開日 平成28年9月1日(2016.9.1)
発明の名称または考案の名称 LVQニューラルネットワーク
国際特許分類 G06N   3/063       (2006.01)
G06G   7/60        (2006.01)
FI G06N 3/063
G06G 7/60
請求項の数または発明の数 6
出願形態 OL
全頁数 15
出願番号 特願2015-034063 (P2015-034063)
出願日 平成27年2月24日(2015.2.24)
新規性喪失の例外の表示 特許法第30条第2項適用申請有り 平成26年9月8日にSSDM2014のAbstract DVDにて発表
発明者または考案者 【氏名】マタウシュ ハンスユルゲン
【氏名】陳 蕾
【氏名】安 豊偉
【氏名】張 湘イク
出願人 【識別番号】504136568
【氏名又は名称】国立大学法人広島大学
個別代理人の代理人 【識別番号】110001427、【氏名又は名称】特許業務法人前田特許事務所
審査請求 未請求
要約 【課題】LVQニューラルネットワークを半導体集積回路に実装可能にする。
【解決手段】LVQニューラルネットワーク100Aは、入力ベクトルと参照ベクトルの部分ベクトルを保持するレジスタ11I、11Rを有する第1ステージ回路10と、第1ステージ回路のレジスタどうしを差分する加算器21とその値を保持するレジスタ22Iを有する第2ステージ回路20と、第2ステージ回路のレジスタ値を二乗する乗算器31とその値を保持するレジスタ32Iを有する第3ステージ回路30と、第3ステージ回路のレジスタ値を累積加算する加算器41とその値を保持するレジスタ43を有する第4ステージ回路40と、入力ベクトルと参照ベクトルとの最小距離を保持するレジスタ51と比較器52を有し、第4ステージ回路のレジスタ値が最小距離よりも小さい場合、最小距離検出信号を出力する第5ステージ回路50とを備え、各ステージ回路がパイプライン動作する。
【選択図】図1
特許請求の範囲 【請求項1】
与えられた入力ベクトルの部分ベクトルの各要素を保持する複数のレジスタおよび与えられた参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタを有する第1ステージ回路と、
前記第1ステージ回路の前記複数のレジスタの保持値と前記第1ステージ回路の前記複数の参照レジスタの保持値との差分をそれぞれ計算する複数の加算器および当該複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有する第2ステージ回路と、
前記第2ステージ回路の前記複数のレジスタの保持値をそれぞれ二乗する複数の乗算器および当該複数の乗算器の計算結果をそれぞれ保持する複数のレジスタを有する第3ステージ回路と、
前記第3ステージ回路の前記複数のレジスタの保持値を累積加算する複数の加算器および当該複数の加算器で計算された累積加算値を保持するレジスタを有する第4ステージ回路と、
前記入力ベクトルとこれまでに与えられた参照ベクトルとの最小距離を保持するレジスタおよび前記第4ステージ回路の前記レジスタの保持値と当該最小距離を保持するレジスタの保持値とを比較する比較器を有し、前記第4ステージ回路の前記レジスタの保持値が当該最小距離を保持するレジスタの保持値よりも小さい場合、当該最小距離を保持するレジスタの保持値を前記第4ステージ回路の前記レジスタの保持値に更新するとともに最小距離検出を示す信号を出力する第5ステージ回路とを備え、
前記第1ステージ回路ないし前記第5ステージ回路がパイプライン動作するLVQ(Learning Vector Quantization)ニューラルネットワーク。
【請求項2】
前記第4ステージ回路が、前記複数の加算器がバイナリツリー状に接続されて前記第3ステージ回路の前記複数のレジスタの保持値を合計する加算器ツリーと、前記レジスタの保持値およびゼロのいずれか一方を選択的に出力するマルチプレクサと、当該加算器ツリーの計算結果と当該マルチプレクサの出力値とを加算する加算器とを有し、前記レジスタが当該加算器の計算結果を保持するものである、請求項1に記載のLVQニューラルネットワーク。
【請求項3】
前記第3ステージ回路が、認識/学習切り替え信号に応じて前記第2ステージ回路の前記複数のレジスタの保持値および学習係数のいずれか一方を選択的にそれぞれ出力する複数のマルチプレクサと、前記参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタとを有し、前記複数の乗算器が、前記第2ステージ回路の前記複数のレジスタの保持値と当該複数のマルチプレクサの出力値とをそれぞれ乗算するものであり、
前記第4ステージ回路が、前記複数の加算器への入力をそれぞれ切り替える複数のマルチプレクサおよび前記複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有し、当該複数のマルチプレクサが、前記認識/学習切り替え信号に応じて、前記複数の加算器が前記第3ステージ回路の前記複数のレジスタの保持値を累積加算する第1の接続状態と、前記複数の加算器が前記第3ステージ回路の前記複数のレジスタの保持値と前記第3ステージ回路の前記複数の参照レジスタの保持値とをそれぞれ加算する第2の接続状態とを切り替えるものであり、
複数の参照ベクトルを保持し、アドレス指定された参照ベクトルの部分ベクトルを前記第1ステージ回路の前記複数の参照レジスタに与えるデータ読み出し、および前記第4ステージ回路の前記複数のマルチプレクサが前記第2の接続状態にあるときに当該アドレス指定された参照ベクトルの部分ベクトルを前記第4ステージ回路の前記複数のレジスタの保持値に更新するデータ書き込みを同時に行うデュアルポートメモリを備えた、請求項1または請求項2に記載のLVQニューラルネットワーク。
【請求項4】
前記学習係数が-1よりも大きく1よりも小さい0を除く小数値である、請求項3に記載のLVQニューラルネットワーク。
【請求項5】
前記学習係数が2の補数で表現される、請求項4に記載のLVQニューラルネットワーク。
【請求項6】
前記第3ステージ回路が、前記学習係数の正値と負値とを切り替えるマルチプレクサを有する、請求項3ないし請求項5のいずれかに記載のLVQニューラルネットワーク。
発明の詳細な説明 【技術分野】
【0001】
本発明は、LVQ(Learning Vector Quantization)ニューラルネットワークに関し、特に、LVQニューラルネットワークを半導体集積回路に実装する技術に関する。
【背景技術】
【0002】
近年、文字認識・画像認識などに代表されるパターンマッチングを必要とするアプリケーションが大変注目されている。特に、パターンマッチングをLSI(Large Scale Integrated Circuit)上で実現することにより、将来、人工知能およびモバイル機器などの高機能アプリケーションに適用可能になり、この技術の実現は、非常に注目を浴びている。
【0003】
パターンマッチングには、人間の脳の神経回路網を工学的にモデル化したニューラルネットワークがよく用いられる。そして、ニューラルネットワークの教師あり学習の一つに、学習ベクトル量子化法(LVQ:Learning Vector Quantization)が用いられる(例えば、特許文献1を参照)。
【先行技術文献】
【0004】

【特許文献1】特開平5-342188号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
LVQニューラルネットワークを用いたパターンマッチングは、携帯情報端末などのモバイル機器、医療機器、セキュリティ機器などに応用される。特に、モバイル機器では、LVQニューラルネットワークの消費電力を低減するとともにパフォーマンスを向上させることが求められる。それにはLVQニューラルネットワークのハードウェア化が必要である。
【0006】
上記問題に鑑み、本発明は、LVQニューラルネットワークを半導体集積回路に実装可能にすることを課題とする。
【課題を解決するための手段】
【0007】
本発明の一局面に従ったLVQニューラルネットワークは、与えられた入力ベクトルの部分ベクトルの各要素を保持する複数のレジスタおよび与えられた参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタを有する第1ステージ回路と、前記第1ステージ回路の前記複数のレジスタの保持値と前記第1ステージ回路の前記複数の参照レジスタの保持値との差分をそれぞれ計算する複数の加算器および当該複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有する第2ステージ回路と、前記第2ステージ回路の前記複数のレジスタの保持値をそれぞれ二乗する複数の乗算器および当該複数の乗算器の計算結果をそれぞれ保持する複数のレジスタを有する第3ステージ回路と、前記第3ステージ回路の前記複数のレジスタの保持値を累積加算する複数の加算器および当該複数の加算器で計算された累積加算値を保持するレジスタを有する第4ステージ回路と、前記入力ベクトルとこれまでに与えられた参照ベクトルとの最小距離を保持するレジスタおよび前記第4ステージ回路の前記レジスタの保持値と当該最小距離を保持するレジスタの保持値とを比較する比較器を有し、前記第4ステージ回路の前記レジスタの保持値が当該最小距離を保持するレジスタの保持値よりも小さい場合、当該最小距離を保持するレジスタの保持値を前記第4ステージ回路の前記レジスタの保持値に更新するとともに最小距離検出を示す信号を出力する第5ステージ回路とを備え、前記第1ステージ回路ないし前記第5ステージ回路がパイプライン動作するものである。
【0008】
これによると、ハードウェア回路を用いて、入力ベクトルと参照ベクトルとのユークリッド距離の二乗値が計算され、入力ベクトルと最も距離が近い参照ベクトルを検索することができる。また、入力ベクトルおよび参照ベクトルが部分ベクトルに分割されて複数回に分けて第1ステージ回路に与えられるため、LVQニューラルネットワークは任意の次元数の入力ベクトルおよび参照ベクトルを処理することができ、拡張性に優れる。また、第1ステージ回路ないし第5ステージ回路がパイプライン動作することで、LVQニューラルネットワークを用いた認識処理を高速に行うことができる。
【0009】
前記第4ステージ回路は、前記複数の加算器がバイナリツリー状に接続されて前記第3ステージ回路の前記複数のレジスタの保持値を合計する加算器ツリーと、前記レジスタの保持値およびゼロのいずれか一方を選択的に出力するマルチプレクサと、当該加算器ツリーの計算結果と当該マルチプレクサの出力値とを加算する加算器とを有し、前記レジスタが当該加算器の計算結果を保持するものであってもよい。
【0010】
これによると、第3ステージ回路の複数のレジスタの保持値の累積加算を効率よく行うことができる。
【0011】
前記第3ステージ回路は、認識/学習切り替え信号に応じて前記第2ステージ回路の前記複数のレジスタの保持値および学習係数のいずれか一方を選択的にそれぞれ出力する複数のマルチプレクサと、前記参照ベクトルの部分ベクトルの各要素を保持する複数の参照レジスタとを有し、前記複数の乗算器が、前記第2ステージ回路の前記複数のレジスタの保持値と当該複数のマルチプレクサの出力値とをそれぞれ乗算するものであってもよく、前記第4ステージ回路は、前記複数の加算器への入力をそれぞれ切り替える複数のマルチプレクサおよび前記複数の加算器の計算結果をそれぞれ保持する複数のレジスタを有し、当該複数のマルチプレクサが、前記認識/学習切り替え信号に応じて、前記複数の加算器が前記第3ステージ回路の前記複数のレジスタの保持値を累積加算する第1の接続状態と、前記複数の加算器が前記第3ステージ回路の前記複数のレジスタの保持値と前記第3ステージ回路の前記複数の参照レジスタの保持値とをそれぞれ加算する第2の接続状態とを切り替えるものであってもよく、上記のLVQニューラルネットワークは、複数の参照ベクトルを保持し、アドレス指定された参照ベクトルの部分ベクトルを前記第1ステージ回路の前記複数の参照レジスタに与えるデータ読み出し、および前記第4ステージ回路の前記複数のマルチプレクサが前記第2の接続状態にあるときに当該アドレス指定された参照ベクトルの部分ベクトルを前記第4ステージ回路の前記複数のレジスタの保持値に更新するデータ書き込みを同時に行うデュアルポートメモリを備えていてもよい。
【0012】
これによると、認識/学習切り替え信号に応じて、第3ステージ回路の複数の乗算器および第4ステージ回路における複数の加算器を、認識時の最小距離計算用および学習時の参照ベクトルの更新値計算用のいずれかとして使用することができ、参照ベクトルの学習がハードウェア化されてより効率的な学習が可能となる。
【発明の効果】
【0013】
本発明によれば、LVQニューラルネットワークを半導体集積回路に実装することができる。これにより、低消費電力で高パフォーマンスのLVQニューラルネットワークを実現することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1の実施形態に係るLVQニューラルネットワークの構成図
【図2】入力ベクトルおよび参照ベクトルを複数の部分ベクトルに分割してLVQニューラルネットワークに入力する様子を示す模式図
【図3】第1の実施形態に係るLVQニューラルネットワークのパイプライン動作のタイムチャート
【図4】本発明の第2の実施形態に係るLVQニューラルネットワークの構成図
【図5】第2の実施形態に係るLVQニューラルネットワークの学習時の第4ステージ回路の接続状態を示す図
【図6】第2の実施形態に係るLVQニューラルネットワークの学習時のパイプライン動作のタイムチャート
【図7】第2の実施形態に係るLVQニューラルネットワークの認識時の第4ステージ回路の接続状態を示す図
【図8】第2の実施形態に係るLVQニューラルネットワークの認識時のパイプライン動作のタイムチャート
【発明を実施するための形態】
【0015】
以下に説明する本発明の実施形態に係るLVQニューラルネットワークは、LVQ1をハードウェアで実現したものであり、与えられた入力ベクトルおよび参照ベクトルの距離(ユークリッド距離)を計算し、入力ベクトルとの距離が最小となる参照ベクトルを検索することができる。すなわち、入力ベクトルをd次元のベクトルx={x,x,…,x}、および参照ベクトルをd次元のベクトルw={wi1,wi2,…,wid}(ただし、iは1からnまでの整数である。)とすると、LVQニューラルネットワークは、式(1)で表される入力ベクトルxと参照ベクトルwとのユークリッド距離Dを計算し、当該距離Dが最小となるような参照ベクトルを検索する。各参照ベクトルにはクラスを表すラベルが割り当てられており、図略のCPU(Central Processing Unit)によって、最小距離検索で見つかった参照ベクトルのラベルに基づいて入力ベクトルのクラス識別が行われる。

【0016】
【数1】
JP2016157233A_000003t.gif

【0017】
なお、式(1)に示したユークリッド距離Dの計算には平方根演算が必要であるがそのような演算には計算コストがかかるため、本発明の実施形態に係るLVQニューラルネットワークは、ユークリッド距離の計算における平方根演算を省略し、式(1)に示したユークリッド距離Dの二乗値を用いて入力ベクトルと参照ベクトルとの距離を評価する。このようにしても、最小距離の参照ベクトルの検索に何ら問題はない。

【0018】
以下、図面を参照しながら本発明を実施するための形態について説明する。なお、本発明は、以下の実施形態に限定されるものではない。

【0019】
≪第1の実施形態≫
図1は、第1の実施形態に係るLVQニューラルネットワークの構成例を示す。本実施形態に係るLVQニューラルネットワーク100Aは、第1ステージ回路10、第2ステージ回路20、第3ステージ回路30、第4ステージ回路40、および第5ステージ回路50を備えている。第1ステージ回路10は、ニューラルネットワークにおける入力レイヤ(Input Layer)に相当する。第2ステージ回路20ないし第4ステージ回路40は、ニューラルネットワークにおける競合レイヤ(Competition Layer)に相当する。第5ステージ回路50は、ニューラルネットワークにおける出力レイヤ(Output Layer)に相当する。

【0020】
第1ステージ回路10は、複数(本実施形態では4個)のレジスタ11Iと、複数(本実施形態では4個)の参照レジスタ11Rとを有する。これらレジスタはいずれも同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅(例えば、1ワード)の入力データを保持する。各レジスタ11Iには入力ベクトルの各要素IN1,IN2,IN3,IN4が入力される。各参照レジスタ11Rには参照ベクトルの各要素REF1,REF2,REF3,REF4が入力される。

【0021】
入力ベクトルおよび参照ベクトルの次元数が第1ステージ回路10の最大入力次元数(本実施形態では4)よりも大きい場合、これらベクトルを複数回に分けて第1ステージ回路10に入力することができる。図2は、入力ベクトルおよび参照ベクトルを複数の部分ベクトルに分割してLVQニューラルネットワーク100Aに入力する様子を模式的に示す。次元数の大きな入力ベクトルおよび参照ベクトルは、第1ステージ回路10の最大入力次元数に相当する個数の要素(本実施形態では4要素)からなる部分ベクトルに分割して複数回(m回)に分けて第1ステージ回路10に入力することができる。

【0022】
なお、入力ベクトルおよび参照ベクトルの次元数は必ずしも第1ステージ回路10の最大入力次元数の整数倍でなくてもよい。入力ベクトルおよび参照ベクトルの次元数が第1ステージ回路10の最大入力次元数の整数倍でない場合には、第1ステージ回路10の最大入力次元数の整数倍になるように入力ベクトルおよび参照ベクトルにダミー要素(例えば、“0”からなる要素)を追加して第1ステージ回路10に入力すればよい。

【0023】
図1へ戻り、第2ステージ回路20は、複数(本実施形態では4個)の加算器21と、複数(本実施形態では4個)のレジスタ22Iとを有する。各加算器21は、第1ステージ回路10の各レジスタ11Iの保持値および各参照レジスタ11Rの保持値を受け、これらの差分を計算する。すなわち、各加算器21は、式(1)における入力ベクトルxの要素xと参照ベクトルwの要素wijとの差分を計算する。各レジスタ22Iは、各加算器21の計算結果を保持する。これらレジスタ22Iはいずれも第1ステージ回路10のレジスタ11Iや参照レジスタ11Rと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅(例えば、1ワード)入力データを保持する。

【0024】
第3ステージ回路30は、複数(本実施形態では4個)の乗算器31と、複数(本実施形態では4個)のレジスタ32Iとを有する。各乗算器31は、第2ステージ回路20の各レジスタ22Iの保持値を受け、これらを掛け合わせる。すなわち、各乗算器31は、式(1)における入力ベクトルxの要素xと参照ベクトルwの要素wijとの差分の二乗値を計算する。各レジスタ32Iは、各乗算器31の計算結果を保持する。これらレジスタ32Iはいずれも第1ステージ回路10のレジスタ11Iや参照レジスタ11Rと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅(例えば、1ワード)入力データを保持する。

【0025】
第4ステージ回路40は、複数(本実施形態では4個)の加算器41,41,41,41と、レジスタ43と、マルチプレクサ44とを有する。加算器41,41,41は、バイナリツリー状に接続されて加算器ツリー42を構成している。当該加算器ツリー42は、第3ステージ回路30の複数のレジスタ32Iの保持値を合計する。すなわち、加算器41は、第3ステージ回路30の二つのレジスタ32Iの保持値を受け、これらを加算する。加算器41は、第3ステージ回路30の別の二つのレジスタ32Iの保持値を受け、これらを加算する。加算器41は、加算器41の計算結果および加算器41の計算結果を受け、これらを加算する。加算器41は、加算器41の計算結果、すなわち、加算器ツリー42の計算結果およびマルチプレクサ44の出力値を受け、これらを加算する。レジスタ43は、加算器41の計算結果を保持する。

【0026】
マルチプレクサ44は、制御信号nextに応じてレジスタ43の保持値および固定値“0”のいずれか一方を選択的に出力する。制御信号nextは、第1ステージ回路10に入力される入力ベクトルおよび参照ベクトルの区切りを示す信号であり、図略のCPUから出力される。マルチプレクサ44がレジスタ43の保持値を出力する場合、レジスタ43に保持された加算器ツリー42のこれまでの計算結果と加算器ツリー42の新たな計算結果とが加算器41によって加算され、計算結果がレジスタ43に保持される。すなわち、第3ステージ回路30の複数のレジスタ32Iの保持値が累積加算される。一方、マルチプレクサ44が固定値“0”を出力する場合、加算器42の計算結果が新たにレジスタ43に保持される。

【0027】
第5ステージ回路50は、レジスタ51と、比較器52と、ANDゲート53とを有する。レジスタ51は、第4ステージ回路40のレジスタ43の保持値を受け、当該保持値が最小であると判定されたときに当該値を保持する。すなわち、レジスタ51は、入力ベクトルとこれまでに与えられた参照ベクトルとの最小距離を保持するレジスタである。比較器52は、図略のクロック信号に応じて第4ステージ回路40のレジスタ43の保持値Aとレジスタ51の保持値Bとを比較し、A<BであればHレベル信号を出力する。ANDゲート53は、制御信号nextと比較器52の出力信号との論理積を演算する。すなわち、比較器52の出力信号は制御信号nextによってマスクされ、制御信号nextがHレベルのときに比較器52の出力信号がANDゲート53から出力される。

【0028】
このような回路構成によると、LVQニューラルネットワーク100Aに新たに入力された参照ベクトルと入力ベクトルとの距離とこれまでの最小距離とが比較され、新たに入力された参照ベクトルと入力ベクトルとの距離が最小であれば、ANDゲート53の出力信号WがHレベルになる、すなわち、最小距離検出を示す信号(Winner信号)がアサートされる。Winner信号がアサートされることで、レジスタ51は第4ステージ回路40のレジスタ43の保持値、すなわち、新たな最小距離を保持する。また、Winner信号がアサートされると、図略のCPUは、入力ベクトルとの距離が最小となる参照ベクトルの保存場所情報(メモリアドレス)を記憶する。そして、すべての参照ベクトルについて入力ベクトルとの最小距離検索が終わると、図略のCPUは、最小距離検索で見つかった参照ベクトルのラベルに基づいて入力ベクトルのクラス識別を行う。

【0029】
LVQニューラルネットワーク100Aにおいて、第1ステージ回路10ないし第5ステージ回路50はパイプライン動作可能である。図3は、LVQニューラルネットワーク100Aのパイプライン動作のタイムチャートを示す。なお、同図において、第1ステージ回路10ないし第5ステージ回路50における各処理時間をローマ数字で表記している。第1ステージ回路10ないし第4ステージ回路40は、いずれも1クロック周期で動作して次のステージ回路へデータを渡す。例えば、入力ベクトルと参照ベクトル1との距離計算および最小距離検索を行う場合、入力ベクトルおよび参照ベクトル1の1番目の部分ベクトルを入力し、次のクロック周期で2番目の部分ベクトルを入力し、以後同様に1クロック周期で次の部分ベクトルを入力する。そして、m番目の部分ベクトルを入力した次のクロック周期で、今度は入力ベクトルおよび参照ベクトル2の1番目の部分ベクトルを入力するとともに入力ベクトルと参照ベクトル2との距離計算および最小距離検索を開始する。

【0030】
制御信号nextは、入力ベクトルおよび参照ベクトル1のm番目の部分ベクトルが第5ステージ回路50で処理されるタイミングでアサートされる。これにより、第5ステージ回路50の比較器52の出力信号がANDゲート53から出力される。もし、入力ベクトルと参照ベクトル1と距離が最小であればWinner信号がアサートされる。また、これと同じタイミングで入力ベクトルおよび参照ベクトル2の1番目の部分ベクトルが第4ステージ回路40で処理されている。このとき、制御信号nextがHレベルになっていることで第4ステージ回路40のマルチプレクサ44からは固定値“0”が出力されており、第4ステージ回路40のレジスタ43に、入力ベクトルおよび参照ベクトル2の1番目の部分ベクトルの部分距離計算結果が新たに保持される。

【0031】
以上のように、本実施形態によると、時間がかかる入力ベクトルと参照ベクトルとの距離計算および最小距離検索をハードウェア化して短時間で行うことができる。これにより、LVQニューラルネットワーク100Aによる認識処理のパフォーマンスが向上する。また、本実施形態にかかるLVQニューラルネットワーク100Aは任意の次元数の入力ベクトルおよび参照ベクトルを処理することができ、拡張性に優れる。

【0032】
≪第2の実施形態≫
LVQニューラルネットワークによる識別処理を行うには参照ベクトルの学習を行っておく必要がある。LVQ1アルゴリズムでは、参照ベクトルの学習は次の手順で行われる。教師信号としての入力ベクトルxのクラスと学習対象の参照ベクトルwのクラスとが等しければ、次式(2)の計算を実施して参照ベクトルwを入力ベクトルxに近づくように更新する。

【0033】
←w+α(x-w) …(2)
逆に、教師信号としての入力ベクトルxのクラスと学習対象の参照ベクトルwのクラスとが異なっていれば、次式(3)の計算を実施して参照ベクトルwを入力ベクトルxから遠ざかるように更新する。

【0034】
←w-α(x-w) …(3)
ただし、αは学習係数であり、0から1までの小数値である。

【0035】
図4は、第2の実施形態に係るLVQニューラルネットワークの構成例を示す。本実施形態に係るLVQニューラルネットワーク100Bは、第1の実施形態に係るLVQニューラルネットワーク100Aに上記の学習機能を追加したものである。LVQニューラルネットワーク100Bは、第1ステージ回路10、第2ステージ回路20、第3ステージ回路30、第4ステージ回路40、第5ステージ回路50、デュアルポートメモリ60、およびマルチプレクサ70を備えている。

【0036】
デュアルポートメモリ60は、複数の参照ベクトルを保持している。デュアルポートメモリ60は、互いに独立したデータ読み出しポートRDとデータ書き込みポートTDとを有しており、データ読み出しポートRDからのデータ読み出し動作、およびデータ書き込みポートTDへのデータ書き込み動作を同時に行うことができる。

【0037】
第1ステージ回路10は、複数(本実施形態では4個)のレジスタ11Iと、複数(本実施形態では4個)の参照レジスタ11Rとを有する。これらレジスタはいずれも同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅(例えば、1ワード)の入力データを保持する。各レジスタ11Iには入力ベクトルの各要素IN1,IN2,IN3,IN4が入力される。各参照レジスタ11Rにはデュアルポートメモリ60のデータ読み出しポートRDから読み出された参照ベクトルの各要素REF1,REF2,REF3,REF4が入力される。なお、上述したように、入力ベクトルおよび参照ベクトルの次元数が第1ステージ回路10の最大入力次元数(本実施形態では4)よりも大きい場合、これらベクトルを複数回に分けて第1ステージ回路10に入力することができる。

【0038】
第2ステージ回路20は、複数(本実施形態では4個)の加算器21と、複数(本実施形態では4個)のレジスタ22Iと、複数(本実施形態では4個)の参照レジスタ22Rとを有する。各加算器21は、第1ステージ回路10の各レジスタ11Iの保持値および各参照レジスタ11Rの保持値を受け、これらの差分を計算する。すなわち、各加算器21は、式(1)ないし式(3)における入力ベクトルxの要素xと参照ベクトルwの要素wijとの差分を計算する。各レジスタ22Iは、各加算器21の計算結果を保持する。各参照レジスタ22Rは、第1ステージ回路10の各参照レジスタ11Rの保持値を受け、当該値を保持する。これらレジスタ22Iおよび参照レジスタ22Rはいずれも第1ステージ回路10のレジスタ11Iや参照レジスタ11Rと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅(例えば、1ワード)入力データを保持する。

【0039】
第3ステージ回路30は、複数(本実施形態では4個)の乗算器31と、複数(本実施形態では4個)のレジスタ32Iと、複数(本実施形態では4個)の参照レジスタ32Rと、複数(本実施形態では4個)のマルチプレクサ33とを有する。各乗算器31は、第2ステージ回路20の各レジスタ22Iの保持値およびマルチプレクサ33の出力値を受け、これらを掛け合わせる。各マルチプレクサ33は、認識/学習切り替え信号T/Rに応じて第2ステージ回路20の各レジスタ22Iの保持値および学習係数αのいずれか一方を選択的に出力する。すなわち、各マルチプレクサ33が第2ステージ回路20の各レジスタ22Iの保持値を出力する場合、各乗算器31は、式(1)における入力ベクトルxの要素xと参照ベクトルwの要素wijとの差分の二乗値を計算する。一方、各マルチプレクサ33が学習係数αを出力する場合、各乗算器31は、式(2)または式(3)における入力ベクトルxの要素xと参照ベクトルwの要素wijとの差分と学習係数αとの乗算を行う。各レジスタ32Iは、各乗算器31の計算結果を保持する。各参照レジスタ32Rは、第2ステージ回路20の各参照レジスタ22Rの保持値を受け、当該値を保持する。これらレジスタ32Iおよび参照レジスタ32Rはいずれも第1ステージ回路10のレジスタ11Iや参照レジスタ11Rと同じ回路構成のレジスタであり、図略のクロック信号に応じて所定ビット幅(例えば、1ワード)入力データを保持する。

【0040】
各マルチプレクサ33に入力される学習係数αは、マルチプレクサ70から出力される。マルチプレクサ70は、図略のCPUによって制御され、入力ベクトルxおよび参照ベクトルwのクラスが同じか否かで学習係数αの正値“+α”と負値“-α”とを切り替える。なお、各乗算器31で正負のいずれの乗算もできるようにするために、学習係数αは2の補数で表現することが好ましい。

【0041】
第4ステージ回路40は、複数(本実施形態では4個)の加算器41,41,41,41と、複数(本実施形態では4個)のレジスタ43,43,43,43と、複数(本実施形態では6個)のマルチプレクサ44,45,45,45,45,45,45とを有する。レジスタ43,43,43,43は、それぞれ、加算器41,41,41,41の計算結果を保持する。レジスタ43,43,43,43の保持値は、それぞれ、第1ステージ回路10にREF1,REF2,REF3,REF4を与えるデュアルポートメモリ60のデータ書き込みポートTDに入力される。マルチプレクサ44は、制御信号nextに応じてレジスタ43の保持値および固定値“0”のいずれか一方を選択的に出力する。制御信号nextは、第1ステージ回路10に入力される入力ベクトルおよび参照ベクトルの区切りを示す信号であり、図略のCPUから出力される。

【0042】
マルチプレクサ45は、認識/学習切り替え信号T/Rに応じて、第3ステージ回路30においてIN1とREF1との演算結果を保持するレジスタ32Iの保持値およびREF2を保持する参照レジスタ32Rの保持値のいずれか一方を選択的に出力する。加算器41は、マルチプレクサ45の出力値および第3ステージ回路30においてIN2とREF2との演算結果を保持するレジスタ32Iの保持値を受け、これらを加算する。マルチプレクサ45は、認識/学習切り替え信号T/Rに応じて、第3ステージ回路30においてIN3とREF3との演算結果を保持するレジスタ32Iの保持値およびREF4を保持する参照レジスタ32Rの保持値のいずれか一方を選択的に出力する。加算器41は、マルチプレクサ45の出力値および第3ステージ回路30においてIN4とREF4との演算結果を保持するレジスタ32Iの保持値を受け、これらを加算する。マルチプレクサ45は、認識/学習切り替え信号T/Rに応じて、レジスタ43の保持値および第3ステージ回路30においてREF3を保持する参照レジスタ32Rの保持値のいずれか一方を選択的に出力する。マルチプレクサ45は、認識/学習切り替え信号T/Rに応じて、第3ステージ回路30においてIN3とREF3との演算結果を保持するレジスタ32Iの保持値およびレジスタ43の保持値のいずれか一方を選択的に出力する。加算器41は、マルチプレクサ45の出力値およびマルチプレクサ45の出力値を受け、これらを加算する。マルチプレクサ45は、認識/学習切り替え信号T/Rに応じて、マルチプレクサ44の出力値および第3ステージ回路30においてREF1を保持する参照レジスタ32Rの保持値のいずれか一方を選択的に出力する。マルチプレクサ45は、認識/学習切り替え信号T/Rに応じて、第3ステージ回路30においてIN1とREF1との演算結果を保持するレジスタ32Iの保持値およびレジスタ43の保持値のいずれか一方を選択的に出力する。加算器41は、マルチプレクサ45の出力値およびマルチプレクサ45の出力値を受け、これらを加算する。

【0043】
認識/学習切り替え信号T/Rに応じてマルチプレクサ44,45,45,45,45,45,45が出力を切り替えることで、加算器41,41,41が加算器ツリー42を構成して第3ステージ回路30の複数のレジスタ32Iの保持値を合計して加算器41が累積加算を行う第1の接続状態と、加算器41,41,41,41が第3ステージ回路30の各レジスタ32Iの保持値と各参照レジスタ32Rの保持値とをそれぞれ加算する第2の接続状態が切り替わる。第1の接続状態はLVQニューラルネットワーク100Bが認識処理を行っているときの状態であり、第2の接続状態はLVQニューラルネットワーク100Bが参照ベクトルの学習を行っているときの状態である。

【0044】
図5は、LVQニューラルネットワーク100Bの学習時の第4ステージ回路40の接続状態を示す。便宜のため、データの流れを太線で示している。同図に示したように、加算器41,41,41,41が第3ステージ回路30の各レジスタ32Iの保持値と各参照レジスタ32Rの保持値とをそれぞれ加算し、その計算結果をデュアルポートメモリ60にそれぞれ上書きすることで、式(2)または(3)のLVQ1アルゴリズムに従って参照ベクトルの学習を行うことができる。

【0045】
図6は、LVQニューラルネットワーク100Bの学習時のパイプライン動作のタイムチャートを示す。なお、同図において、第1ステージ回路10ないし第4ステージ回路40における各処理時間をローマ数字で表記している。第1ステージ回路10ないし第4ステージ回路40は、いずれも1クロック周期で動作して次のステージ回路へデータを渡す。学習時には第5ステージ回路50は動作する必要はない。例えば、参照ベクトル1の更新(学習)を行う場合、入力ベクトルおよび参照ベクトル1の1番目の部分ベクトルを入力し、次のクロック周期で2番目の部分ベクトルを入力し、以後同様に1クロック周期で次の部分ベクトルを入力する。そして、m番目の部分ベクトルを入力した次のクロック周期で、今度は入力ベクトルおよび参照ベクトル2の1番目の部分ベクトルを入力して参照ベクトル2の更新(学習)を開始する。

【0046】
学習時には第4ステージ回路40の処理によって参照ベクトルが更新され、同じタイミングで第1ステージ回路10へ別の参照ベクトルの部分ベクトルが読み出される。参照ベクトルを保持するメモリとしてデュアルポートメモリ60を用いることで、データ読み出しおよびデータ書き込みの衝突が起きることなく、参照ベクトルの読み出しおよび書き込みを同時に行うことができる。

【0047】
図7は、LVQニューラルネットワーク100Bの認識時の第4ステージ回路40の接続状態を示す。便宜のため、データの流れを太線で示している。同図に示したように、加算器41,41,41が加算器ツリー42を構成して第3ステージ回路30の複数のレジスタ32Iの保持値を合計し、加算器41が累積加算を行うことで、認識処理に必要な入力ベクトルと参照ベクトルとの距離計算を行うことができる。

【0048】
図8は、LVQニューラルネットワーク100Bの認識時のパイプライン動作のタイムチャートを示す。なお、同図において、第1ステージ回路10ないし第5ステージ回路50における各処理時間をローマ数字で表記している。なお、第4ステージ回路40においてレジスタ43,43と、レジスタ43と、レジスタ43とが縦続接続されているため、レジスタ43が計算結果を保持するには3クロック周期が必要である。このため、第4ステージ回路40の処理時間は3つに分けて示している。第1ステージ回路10ないし第3ステージ回路30は、いずれも1クロック周期で動作し、第4ステージ回路40は3クロック周期で動作して次のステージ回路へデータを渡す。例えば、入力ベクトルと参照ベクトル1との距離計算および最小距離検索を行う場合、入力ベクトルおよび参照ベクトル1の1番目の部分ベクトルを入力し、次のクロック周期で2番目の部分ベクトルを入力し、以後同様に1クロック周期で次の部分ベクトルを入力する。そして、m番目の部分ベクトルを入力した次のクロック周期で、今度は入力ベクトルおよび参照ベクトル2の1番目の部分ベクトルを入力して入力ベクトルと参照ベクトル2との距離計算および最小距離検索を開始する。

【0049】
制御信号nextは、入力ベクトルおよび参照ベクトル1のm番目の部分ベクトルが第5ステージ回路50で処理されるタイミングでアサートされる。これにより、第5ステージ回路50の比較器52の出力信号がANDゲート53から出力される。もし、入力ベクトルと参照ベクトル1と距離が最小であればWinner信号がアサートされる。また、これと同じタイミングで入力ベクトルおよび参照ベクトル2の1番目の部分ベクトルが第4ステージ回路40で処理されている。このとき、制御信号nextがHレベルになっていることで第4ステージ回路40のマルチプレクサ44からは固定値“0”が出力されており、第4ステージ回路40のレジスタ43に、入力ベクトルおよび参照ベクトル2の1番目の部分ベクトルの部分距離計算結果が新たに保持される。

【0050】
以上のように、本実施形態によると、認識/学習切り替え信号T/Rに応じて、第3ステージ回路30の複数の乗算器31および第4ステージ回路40における複数の加算器41を、認識時の最小距離計算用および学習時の参照ベクトルの更新値計算用のいずれかとして使用することができる。これにより、第1の実施形態の作用・効果に加えて、参照ベクトルの学習がハードウェア化されてより効率的な学習が可能となる。また、LVQニューラルネットワーク100Bの回路規模および消費電力をより小さくすることができる。

【0051】
以上、本発明の実施形態について説明したが、本発明は上記の実施形態の構成に限られず種々の変形が可能である。例えば、第1ステージ回路10ないし第4ステージ回路40の各レジスタ、各加算器、各乗算器は4個に限られず5個以上であってもよい。

【0052】
また、上記実施形態により示した構成は、本発明の一実施形態に過ぎず、本発明を当該構成に限定する趣旨ではない。
【符号の説明】
【0053】
100A LVQニューラルネットワーク
100B LVQニューラルネットワーク
10 第1ステージ回路
11I レジスタ
11R 参照レジスタ
20 第2ステージ回路
21 加算器
22I レジスタ
30 第3ステージ回路
31 乗算器
32I レジスタ
32R 参照レジスタ
33 マルチプレクサ
40 第4ステージ回路
41 加算器
42 加算器ツリー
43 レジスタ
44 マルチプレクサ(レジスタの保持値およびゼロのいずれか一方を選択的に出力するマルチプレクサ)
45 マルチプレクサ(加算器への入力を切り替える複数のマルチプレクサ)
50 第5ステージ回路
51 レジスタ
52 比較器
60 デュアルポートメモリ
70 マルチプレクサ(学習係数の正値と負値とを切り替えるマルチプレクサ)
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7