(57)【要約】  自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造の再構成が可能なニューラルネットワークシステムは、第１及び第２動作モードを持ち、ネットワークの構成情報と該ネットワークの構造に対する重み情報とが設定されて決定される特性を示す動作を行うニューラルネットワークエンジン（１００）と、ニューラルネットワークエンジン（１００）と接続され、第１または第２動作モードに応じた連係動作をニューラルネットワークエンジン（１００）と行うノイマン型マイクロプロセッサ（１０２）とを備え、ノイマン型マイクロプロセッサ（１０２）は、第１動作モードに応じた連係動作として、重み情報の再計算または構成情報の再作成を行い、第２動作モードに応じた連係動作として、ニューラルネットワークエンジン（１００）に設定されている構成情報または重み情報の設定または更新を行う。
2010106587.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、
前記ニューラルネットワークエンジンと接続され、前記第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、
前記ノイマン型マイクロプロセッサは、
前記第１の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、
前記第２の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う
ニューラルネットワークシステム。
【請求項２】
前記ノイマン型マイクロプロセッサは、
前記第１の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行う
請求項１に記載のニューラルネットワークシステム。
【請求項３】
前記ニューラルネットワークエンジンは、
ニューラル信号処理を行う複数のニューラルプロセッシングエレメントと、
対応する前記ニューラルプロセッシングエレメントの制御情報を格納する複数のメモリと、
前記複数のニューラルプロセッシングエレメントと交互に配列されている複数の配線スイッチと、
前記複数のニューラルプロセッシングエレメントと前記複数の配線スイッチとを電気的に接続する配線と、
対応する前記配線スイッチの制御情報を格納する複数のメモリとを備える
請求項１または２に記載のニューラルネットワークシステム。
【請求項４】
前記ニューラルプロセッシングエレメントは、入力信号として複数のパルス信号を取得する
請求項３に記載のニューラルネットワークシステム。
【請求項５】
ニューラルネットワークエンジンは、さらに、
論理演算を行う演算器と、
前記ニューラルプロセッシングエレメントの出力と前記演算器の出力とのいずれかを選択するマルチプレクサとを備える
請求項４に記載のニューラルネットワークシステム。
【請求項６】
前記ニューラルネットワークエンジンは、
ガボールフィルタを構成するネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造で前記ガボールフィルタの特性を示す重み情報とが設定され、
前記ノイマン型マイクロプロセッサは、前記第１及び第２と異なる動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの動作により出力された出力結果に基づいて逐次プログラム処理を行う
請求項１または２に記載のニューラルネットワークシステム。
【請求項７】
前記ニューラルネットワークエンジンは、
神経振動子を構成するネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造で前記神経振動子の特性を示す重み情報とが設定され、
前記ノイマン型マイクロプロセッサは、前記第１及び第２と異なる動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの動作により出力された出力結果に基づき逐次プログラム処理を行う
請求項１または２に記載のニューラルネットワークシステム。
【請求項８】
第１及び第２の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、
第１の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第１連係動作ステップと、
第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第２連係動作ステップとを含む
ニューラルネットワークシステムの動作方法。
【請求項９】
前記第２連係動作ステップは、
ノイマン型マイクロプロセッサが前記ニューラルネットワークエンジンの動作モードを前記第２の動作モードに変更する第１動作モード変更ステップと、
前記第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う設定更新ステップと、
前記ニューラルネットワークエンジンの動作モードを前記第２とは別の動作モードに変更する第２動作モード変更ステップとを含む
請求項８に記載のニューラルネットワークシステムの動作方法。
【請求項１０】
さらに、前記ノイマン型マイクロプロセッサにより前記ニューラルネットワークエンジンの動作モードが前記第１の動作モードであるかを判定する判定ステップを含み、
前記第１連係動作ステップは、
前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第１の動作モードであると判定された場合に、第１の動作モードに応じた連係動作として、ノイマン型マイクロプロセッサが誤差伝播処理を行うエミュレーションを実行するエミュレーション実行ステップと、
前記実行ステップの結果から、重み情報の再計算または前記ネットワーク構成情報の再作成を行う再作成ステップとを含む
請求項８に記載のニューラルネットワークシステムの動作方法。
【請求項１１】
前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第１及び第２と異なる動作モードであると判定された場合に、さらに、前記ノイマン型マイクロプロセッサがプログラムを実行するプログラム実行ステップとを含む
請求項１０に記載のニューラルネットワークシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能なニューラルネットワークシステムに関する。
【背景技術】
【０００２】
人物の顔認識、音声認識等の認知系信号処理を行うためにニューラルネットワークを用いた方法が広く知られている。【０００３】
ニューラルネットワークは、人の脳にあるニューロンのネットワークによる信号処理システムを模倣したものであり、相互に接続されたニューロンセルが並列動作するニューラル信号処理を行う。それにより、ノイズが入ったデータ、多様な顔及び声など定式化が困難な対象に対する柔軟な判定を高速に実現することができる。ここで、ニューロンセルとは、ニューロンの仕組みをモデル化したものであり、他のニューロンセルまたは入力デバイスが接続されてニューラル信号処理を担うものである。ニューロンセルは、接続されている他のニューロンセルまたは入力デバイスの出力結果が信号として入力され、入力された各信号に対する重み情報によって特定の入力に対する動作（反応）を行う。このようにして所望の動作を得る。【０００４】
図１３Ａは、ニューロンセルの一般的な数理モデルの概要を示す図である。この図１３Ａに示すニューロンセルの数理モデルは、（数１）〜（数３）に示すような数式に基づいて動作する。【０００５】
【数１】
2010106587.tif 000003
【０００６】
【数２】
2010106587.tif 000004
【０００７】
【数３】
2010106587.tif 000005
【０００８】
ここで、ｘ１〜ｘ６は、他のニューロンセルまたは入力デバイスからの入力信号を示している。ｗ１〜ｗ６は、入力信号の結合効率を示す量であり、ｘ１〜ｘ６に対応する重みを示している。ｙは、複数の入力信号ｘ１〜ｘ６に対して決定される１個の出力信号である。【０００９】
このニューロンセルの数理モデルでは、（数２）で示されるように、複数の入力信号ｘ１〜ｘ６が入力されると、まずｕとして入力ｘ（ここではｘ１〜ｘ６）とその入力ｘに対応する重みｗ（ここではｗ１〜ｗ６）とを乗じて合計したものにオフセットＴが減算される。なお、オフセットＴは、ニューロンセルが入力された特定の入力に対して反応するかどうかを示す閾値に相当する。【００１０】
次に、（数１）に示される活性化関数ｆ（ｕ）に、上記のように算出されたｕを代入して得られる値がこのニューロンセルの出力となる。ここでは、（数３）で示されるシグモイド関数によって出力ｙのレベルが決定される。すなわち、ある値までＬｏレベルとなり、閾値を超えるとＨｉレベルとなる。【００１１】
ここで、図１３Ｂは、シグモイド関数の形状を示す図である。シグモイド関数は、図１３Ｂに示すように、ｙ＝０とｙ＝１とに漸近線をもち、ｘ軸の全ての値においてｙの値が０〜１の間に収束する。また、シグモイド関数は、変曲点をもち、変曲点で点対称である。したがって、この形状から、ある値までＬｏレベルとなり、閾値を超えるとＨｉレベルとなるのがわかる。【００１２】
次に、図１４Ａ〜図１４Ｄを用いて、ニューラルネットワークの代表的な構造を説明する。【００１３】
図１４Ａは、階層型ネットワークの代表的な構造の一例を示す図である。【００１４】
ここで、階層型ネットワークとは、入力層、中間層、出力層という複数のニューラル層で構成されるネットワークであり、同じニューラル層どうしのニューロンセルは互いに接続せず、異なるニューラル層どうしニューロンセルが相互に接続されている。【００１５】
図１４Ａに示す構造は、３層のニューラル層で構成された一般的にパーセプトロンと呼ばれ、パターンマッチング処理に適した構造である。【００１６】
図１４Ｂは、相互結合型ネットワークの代表的な構造の一例を示す図である。【００１７】
ここで、相互結合型ネットワークとは、階層型ネットワークのような層を構成せず、各ニューロンセルが相互に接続（結合）しているネットワークである。【００１８】
図１４Ｂに示す構造は、ニューロンセルが相互に接続されたホップフィールドネットワークと呼ばれ、ノイズが混在した不完全なデータであっても補完して記憶したパターンと対応付けられるという特徴を有する構造である。【００１９】
図１４Ｃ及び図１４Ｄは、ニューラルネットワークの代表的な構造の一例を示す図である。【００２０】
図１４Ｃに示す構造は、パーセプトロンの中間層から分岐した別のニューラル層からフィードバックする構造であり、エルマンネットワークと呼ばれる。このエルマンネットワークは、過去の情報をフィードバックする再帰的な構造のため、文法等のシーケンスパターンの認識に適している。【００２１】
また、図１４Ｄに示すように、２つのニューラル層を互いにフィードバックする神経振動子（ＣＰＧ：Ｃｅｎｔｒａｌ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）と呼ばれる構造も存在する。この構造は２足歩行のロボットにおける姿勢制御等に応用されている（非特許文献１参照）。【００２２】
以上説明したように、ニューラルネットワークは、ネットワーク構造と重み情報との組み合わせによってその特性を示す動作が決定される。【００２３】
ところで、ニューラルネットワークを実装する場合には、ソフトウェアにより実装する場合とハードウェアにより実装する場合とが存在する。【００２４】
ソフトウェアによる実装では、一般的なコンピュータでニューラルネットワークのモデルをエミュレートさせる必要があるためリアルタイム処理には適さず、大量のデータベースを検索するなどの処理に用いられている（非特許文献２参照）。【００２５】
それに対して、ハードウェアによる実装では、リアルタイム処理が実現できるため、画像認識システムで用いられる。以下、ニューラルネットワークのハードウェアによる実装例を示す。【００２６】
図１５は、ニューラルネットワークを実装したプロセッサの例である。【００２７】
このプロセッサ（ＺＩＳＣプロセッサと呼ばれる。）は、３層のネットワーク構造によって認識処理を行うものである（非特許文献３参照）。このプロセッサでは、所望の動作を得るために、レジスタ設定によって重み情報を設定できるだけでなく、自己学習機構によっても重み情報を設定することができる。【００２８】
なお、自己学習機構の代表的なものとしては、バックワードプロパゲーションによる重み情報更新がある。バックワードプロパゲーションでは、図１６Ａ及び図１６Ｂに示すように、理想的な出力信号である教師信号と参照データとが与えられて各ニューラル層で誤差計算を行い、誤差を最小化する重み情報に更新することにより所望の学習を実現する。ここで、図１６Ａ及び図１６Ｂは、バックワードプロパゲーションの処理の概略を示す図である。【００２９】
また、ＺＩＳＣプロセッサを用いた画像認識システムが開示されている（特許文献１参照）。図１７に、ＺＩＳＣプロセッサを用いた画像認識システムを示す。図１７に示すように、ＺＩＳＣプロセッサの入力部分にデータ変換処理部があり、様々な画像データを一般化したデータに変換する。この変換処理によって、様々なデータ形式においても単一のニューラルネットワーク構造と重み情報とで処理することができる。
【先行技術文献】
【特許文献】
【００３０】
【特許文献１】特開２００１−０１４４７０号公報
【非特許文献】
【００３１】
【非特許文献１】Ｊｉａｎｇ  Ｓｈａｎ、Ｆｕｍｉｏ  Ｎａｇａｓｈｉｍａ、“Ｂｉｏｌｏｇｉｃａｌｌｙ  Ｉｎｓｐｉｒｅｄ  Ｓｐｉｎａｌ  Ｌｏｃｏｍｏｔｉｏｎ  Ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  Ｈｕｍａｎｏｉｄ  Ｒｏｂｏｔ”、第１９回日本ロボット学会学術講演会、ｐｐ．５１７−５１８、２００１．
【非特許文献２】福島、倉原、鳥越、他、「ニューラルネットワークを用いた内科医療診断支援システムの開発と評価」、第１８回熊本県産学官技術交流会講演論文集、４３１．
【非特許文献３】ＩＢＭ  ＺＩＳＣ０３６  Ｎｅｕｒｏｎｓ  ＵＳＥＲ’Ｓ  ＭＡＮＵＡＬ  Ｖｅｒｓｉｏｎ  １．２
【発明の概要】
【発明が解決しようとする課題】
【００３２】
しかしながら、上記従来の実装方式では以下のような課題がある。【００３３】
すなわち、ハードウェアによる実装方式では、自己学習機構を実現するための回路資源がニューラルネットワークに必要となる。例えば図１６Ａに示すようにバックワードプロパゲーションを実現する場合、各ニューラル層を遡る信号線と誤差計算を行うための回路とが必要となる。さらに、ネットワーク構造が固定となっているために、適用範囲が限定されてしまう。しかしながら、ネットワーク構造に自由度を持たせる場合には、自由度に応じた自己学習機構のための回路資源が必要となり実装が困難となる。【００３４】
それに対して、ソフトウェアによる実装方式では、ニューラルネットワークのモデルをソフトウェアによってエミュレートさせることで各ニューロンの反応に時間がかかるため、リアルタイム処理には適さず、その用途が限定されてしまう。【００３５】
また、ニューラルネットワークの処理特性として、認知処理を得意とする一方で逐次プログラム処理を不得意とするため、その用途が限定されてしまう。【００３６】
そこで、本発明は、上述の事情を鑑みてなされたものであり、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【００３７】
上記の課題を解決するために、本発明に係るニューラルネットワークシステムは、第１及び第２の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、前記ニューラルネットワークエンジンと接続され、前記第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、前記ノイマン型マイクロプロセッサは、前記第１の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、前記第２の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う。【００３８】
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。【００３９】
ここで、前記ノイマン型マイクロプロセッサは、前記第１の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行うとしてもよい。【００４０】
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。【００４１】
また、上記目的を達成するために、本発明に係るニューラルネットワークシステムの動作方法は、第１及び第２の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、第１の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第１連係動作ステップと、第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第２連係動作ステップとを含む。【００４２】
以上のように、本発明では、ニューラルネットワークシステムをノイマン型マイクロプロセッサと再構成可能なニューラルネットワークエンジンとから構成し、バックワードプロパゲーション処理、逐次プログラム処理などを各々の構成要素の連係動作によって実現するものである。すなわち、本発明では例えばバックワードプロパゲーション処理をノイマン型マイクロプロセッサによるニューラルネットワークエミュレーションとニューラルネットワークエンジンによる参照データ生成によって実現する。これにより従来技術で必要であったバックワードプロパゲーション処理など自己学習機構を実現するための回路資源を削減することができる。またノイマン型マイクロプロセッサは通常動作時は逐次プログラム処理を行うので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。さらに、本発明では、ニューラルネットワークプロセッサは再構成可能であり、ノイマン型マイクロプロセッサにより様々なネットワーク構造に変更することが可能である。
【発明の効果】
【００４３】
本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。
【図面の簡単な説明】
【００４４】
【図１】図１は、実施の形態１に係るニューラルネットワークシステムの構成図である。
【図２Ａ】図２Ａは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図２Ｂ】図２Ｂは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図３Ａ】図３Ａは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図３Ｂ】図３Ｂは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図４Ａ】図４Ａは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図４Ｂ】図４Ｂは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図５】図５は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。
【図６Ａ】図６Ａは、実施の形態２に係るニューラルネットワークエンジンの構成図である。
【図６Ｂ】図６Ｂは、実施の形態２に係るニューラルネットワークエンジンの構成図である。
【図７】図７は、実施の形態２に係るニューラルプロセッシングエレメント全体の構成を示す図である。
【図８】図８は、実施の形態２に係るニューラルプロセッシングエレメントを構成するシナプスユニット５００の構成を示す図である。
【図９】図９は、実施の形態２に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。
【図１０Ａ】図１０Ａは、実施の形態３に係るニューラルネットワークシステムの適用例を説明するための図である。
【図１０Ｂ】図１０Ｂは、実施の形態３に係るニューラルネットワークシステムの適用例を説明するための図である。
【図１１Ａ】図１１Ａは、実施の形態３に係るニューラルネットワークシステムの別の適用例を説明するための図である。
【図１１Ｂ】図１１Ｂは、実施の形態３に係るニューラルネットワークシステムの別の適用例を説明するための図である。
【図１２】図１２は、実施の形態４に係るデジタル回路の共存が可能なニューラルプロセッシングエレメント４００の応用例を説明するための図である。
【図１３Ａ】図１３Ａは、ニューロンセルの一般的な数理モデルの概要を示す図である。
【図１３Ｂ】図１３Ｂは、シグモイド関数の形状を示す図である。
【図１４Ａ】図１４Ａは、階層型ネットワークの代表的な構造の一例を示す図である。
【図１４Ｂ】図１４Ｂは、相互結合型ネットワークの代表的な構造の一例を示す図である。
【図１４Ｃ】図１４Ｃは、ニューラルネットワークの代表的な構造の一例を示す図である。
【図１４Ｄ】図１４Ｄは、ニューラルネットワークの代表的な構造の一例を示す図である。
【図１５】図１５は、ニューラルネットワークを実装したプロセッサの例である。
【図１６Ａ】図１６Ａは、バックワードプロパゲーションの処理の概略を示す図である。
【図１６Ｂ】図１６Ｂは、バックワードプロパゲーションの処理の概略を示す図である。
【図１７】図１７は、ＺＩＳＣプロセッサを用いた画像認識システムを示す図である。
【発明を実施するための形態】
【００４５】
以下、本発明の実施の形態について図面に基づいて説明する。
【００４６】
（実施の形態１）
図１は、実施の形態１に係るニューラルネットワークシステムの構成図である。
【００４７】
図１に示すニューラルネットワークシステム１は、複数の動作モードを持つニューラルネットワークエンジン１００と、メモリ１０１と、ノイマン型マイクロプロセッサ１０２とから構成されている。
【００４８】
ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とが複数の動作モードに応じて連係動作を行うことで所望の動作結果を得る。
【００４９】
ニューラルネットワークエンジン１００は、ノイマン型マイクロプロセッサ１０２と接続されている。ニューラルネットワークエンジン１００は、構成すべきネットワーク構造を示すネットワーク構成情報とそのネットワーク構造に対する重みを示すシナプス重み情報とが設定されて決定される特性を示す動作（反応）を行う。そして、ニューラルネットワークエンジン１００は、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）に対して反応（動作）を行い、その結果をノイマン型マイクロプロセッサ１０２に出力（Ｒｅｓｐｏｎｓｅ）する。
【００５０】
また、ニューラルネットワークエンジン１００は、学習動作モードと通常動作モードとからなる通常モードとコンフィギュレーションモードとの２つのモードをもつ。ここで、通常動作モードとは、ニューラルネットワークエンジン１００が通常動作を行う動作モードであり、学習動作モードとは、シナプス重み情報が再計算されるまたはネットワーク構成情報が再作成される動作モードである。コンフィギュレーションモードとは、ニューラルネットワークエンジン１００に設定されているシナプス重み情報またはネットワーク構成情報が設定または更新される動作モードである。
【００５１】
メモリ１０１は、ノイマン型マイクロプロセッサ１０２とデータ線及びアドレス線で接続されており、ネットワーク構成情報とシナプス重み情報とが格納されている。また、メモリ１０１は、ノイマン型マイクロプロセッサ１０２が実行するためのプログラムが格納されている。
【００５２】
ノイマン型マイクロプロセッサ１０２は、メモリ１０１とデータ線及びアドレス線で接続されている、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００と接続されている。
【００５３】
また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードに応じた連係動作を行う。また、ノイマン型マイクロプロセッサ１０２は、所定の動作モードではニューラルネットワークシステム１の外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００とともに入力される。
【００５４】
例えば、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００が学習動作モードである場合には、ニューラルネットワークシステム１の外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００とともに入力される。そして、ネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン１００からの出力（Ｒｅｓｐｏｎｓｅ）とを用いて、ニューラルネットワークエンジン１００の誤差伝播処理をエミュレーションするプログラムを実行することにより、ニューラルネットワークエンジン１００におけるシナプス重み情報の再計算またはネットワーク構成情報の再作成を行う。
【００５５】
また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００がコンフィギュレーションモードである場合には、メモリ１０１に格納されているネットワーク構成情報とシナプス重み情報とを読み出して、ニューラルネットワークエンジン１００に出力する。それによりノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００のネットワーク構成情報とシナプス重み情報とを設定または更新する。
【００５６】
また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００が通常動作モードである場合には、ニューラルネットワークエンジン１００からの出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１に格納されているプログラムとを利用して逐次プログラム処理を行う。なお、ニューラルネットワークエンジン１００の動作モードは、ノイマン型マイクロプロセッサ１０２により変更することができるようになっている。
【００５７】
以上のように、ニューラルネットワークシステム１は構成され、動作モードに応じた連係動作によって所望の効果を得ることができる。
【００５８】
次に、ニューラルネットワークシステム１の動作について、図を用いて説明する。
【００５９】
図２Ａ及び図２Ｂは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【００６０】
まず、学習動作モード時において、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００とノイマン型マイクロプロセッサ１０２とに入力される（Ｓ２０１）。
【００６１】
次に、ニューラルネットワークエンジン１００は、その外部からの入力（Ｓｔｉｍｕｌｕｓ）に対して反応（動作）し、その反応（動作）により生成した結果をノイマン型マイクロプロセッサ１０２に出力する（Ｓ２０３）。
【００６２】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりニューラルネットワークエンジン１００のネットワーク構成情報、及び、シナプス重み情報を読み出して取得する（Ｓ２０５）。
【００６３】
次に、ノイマン型マイクロプロセッサ１０２は、取得したネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン１００からの出力（Ｒｅｓｐｏｎｓｅ）とを用いて誤差伝播処理をエミュレーションするプログラムを実行することによって、ニューラルネットワークエンジン１００におけるシナプス重みを再計算する（Ｓ２０７）。
【００６４】
次に、ノイマン型マイクロプロセッサ１０２は、Ｓ２０５での再計算後、再計算した新しいシナプス重み情報をメモリ１０１に格納する（Ｓ２０９）。
【００６５】
以上のようにして、ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とが学習動作モードに応じた連係動作を行う。そして、ノイマン型マイクロプロセッサ１０２はニューラルネットワークエンジン１００の学習を補完する。
【００６６】
なお、ノイマン型マイクロプロセッサ１０２は、誤差伝播処理をエミュレーションするプログラムを実行する場合、シナプス重みを再計算だけに限定されず、ニューラルネットワーク構成の最適化を行い、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ１０１に格納または反映するとしてもよい。その場合には、シナプス重み情報とネットワーク構成情報との双方を更新することによる更なる学習効果の向上が期待できる。
【００６７】
図３Ａ及び図３Ｂは、コンフィギュレーションモード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【００６８】
まず、コンフィギュレーションモード時において、ノイマン型マイクロプロセッサ１０２は、メモリ１０１に格納されているネットワーク構成情報及びシナプス重み情報を読み出して取得する（Ｓ３０１）。
【００６９】
次に、ノイマン型マイクロプロセッサ１０２は、コンフィギュレーションデータとしてネットワーク構成情報及びシナプス重み情報をニューラルネットワークエンジン１００に出力（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）し（Ｓ３０３）、ニューラルネットワークエンジン１００のネットワーク構成情報及びシナプス重み情報を設定または更新する（Ｓ３０５）。
【００７０】
以上のようにして、ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とがコンフィギュレーションモードに応じた連係動作を行う。
【００７１】
なお、ニューラルネットワークエンジン１００に設定されるネットワーク構成情報及びシナプス重み情報は、図２Ａ及び図２Ｂで説明した学習動作モードで作成または更新されたものだけではない。例えば、他の外部記憶装置から転送されたものであってもよく、その場合には、メモリ１０１の容量に制限されずにニューラルネットワークエンジン１００の動作機能を実現することができる。
【００７２】
また、ネットワーク構成情報及びシナプス重み情報の複数セットを、メモリ１０１に格納されるとしてもよい。その場合、ニューラルネットワークシステム１では、各々のセットに対して学習動作モードまたはコンフィギュレーションモードに応じた連係動作を行うことができる。ニューラルネットワークエンジン１００は、複数のネットワーク構成情報及びシナプス重み情報が設定されるだけでなく、その複数のネットワーク構成情報及びシナプス重み情報に対する学習をすることができる。
【００７３】
図４Ａ及び図４Ｂは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【００７４】
まず、通常動作モード時において、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００に入力される（Ｓ４０１）。
【００７５】
次に、ニューラルネットワークエンジン１００は、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）に対して反応（動作）し、その反応（動作）により生成した結果をノイマン型マイクロプロセッサ１０２に出力する（Ｓ４０３）。
【００７６】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりプログラムを読み出して取得する（Ｓ４０５）。
【００７７】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１から取得したプログラムとを利用して逐次プログラム処理を行う（Ｓ４０７）。
【００７８】
以上のようにして、ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とが通常動作モードに応じた連係動作を行う。なお、この連係動作により、例えばユーザーインターフェース処理における画像認識結果を用いたメニュー表示プログラムの実行などの処理が実現できる。また、ニューラルネットワーク構成情報及びシナプス重み情報の複数のセットをメモリ１０１に格納されるとしてもよい。その場合、ニューラルネットワークシステム１では、時分割に処理または動作モードを切り替えて連係動作を行うといった機能も実現できる。
【００７９】
次に、上述した各連係動作を決定する処理について説明する。
【００８０】
図５は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。
【００８１】
まず、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードをコンフィギュレーションモードに変更し（Ｓ５０１）、ニューラルネットワークエンジン１００のネットワーク構成情報及びシナプス重み情報を設定する（Ｓ５０２）。なお、このＳ５０２の動作は、図３Ａ及び図３Ｂで説明した動作に該当する。
【００８２】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードを通常モードに変更する（Ｓ５０３）。
【００８３】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードが学習動作モードであるか通常動作モードであるかの判定を行う（Ｓ５０４）。
【００８４】
ニューラルネットワークエンジン１００の動作モードが通常動作モードであると判定された場合は（Ｓ５０４のＮＯの場合）、ノイマン型マイクロプロセッサ１０２は、通常プログラムを実行する（Ｓ５０５）。このＳ５０５は、図４Ａ及び図４Ｂの動作に該当する。
【００８５】
一方、ニューラルネットワークエンジン１００の動作モードが学習動作モードであると判定された場合（Ｓ５０４のＹＥＳの場合）、ノイマン型マイクロプロセッサ１０２は、誤差伝播処理をエミュレーションするプログラムを実行し（Ｓ５０６）、シナプス重み情報を再計算する（Ｓ５０７）。
【００８６】
そして、ノイマン型マイクロプロセッサ１０２は、再計算したシナプス重み情報をメモリ１０１へ格納する。
【００８７】
なお、ノイマン型マイクロプロセッサ１０２は、Ｓ５０６においてシナプス重みの再計算を行うだけでなくニューラルネットワーク構成の最適化を行い（Ｓ５０７）、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ１０１に反映するとしてもよい（Ｓ５０８）。その場合、シナプス重み情報とネットワーク構成情報と双方を更新することによって更なる学習効果の向上が期待できる。
【００８８】
なお、上述したＳ５０６、Ｓ５０７及びＳ５０８は図３Ａ及び図３Ｂの動作に該当する。
【００８９】
以上のようにして、ノイマン型マイクロプロセッサ１０２は各連係動作を決定し、決定した連係動作を実行する。
【００９０】
以上、本実施の形態１では、ノイマン型マイクロプロセッサ１０２は、通常動作モード時には通常の逐次プログラムを処理し、学習動作モード時には、ニューラルネットワークエンジン１００が学習する時の補助手段として機能する。そのため、従来技術の図１６Ａ及び図１６Ｂに見られるようなバックワードプロパゲーション処理の実現すなわち自己学習機構に必要とされた各ニューラル層を遡る信号線と誤差計算を行うための回路とが不要となる。すなわち、本実施の形態１では、従来技術で必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
【００９１】
また、ノイマン型マイクロプロセッサ１０２は、通常動作モード時には逐次プログラムの処理を行うことで、ニューラルネットワークエンジン１００が不得意とする処理を補完することができる。そして、上述したように、ニューラルネットワークエンジン１００は再構成可能であり、コンフィギュレーションモード時にネットワーク構成情報及びシナプス重み情報が設定されることによって様々なネットワーク構造に変更することができる。
【００９２】
（実施の形態２）
次に、実施の形態２では、ニューラルネットワークエンジン１００の構成の具体例について説明する。
【００９３】
図６Ａ及び図６Ｂは、実施の形態２に係るニューラルネットワークエンジンの構成図である。
【００９４】
図６Ａ及び図６Ｂに示す実施の形態２に係るニューラルネットワークエンジン１００は、ニューラル信号処理を実現するニューラルプロセッシングエレメント（Ｎｅｕｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ：ＮｕＰＥ）４００と、配線スイッチ（Ｒｏｕｔｉｎｇ  ｓｗｉｔｃｈ）４０１と、ニューラルプロセッシングエレメント４００の制御情報を格納するメモリ４０２と、配線スイッチ４０１の制御情報を格納するメモリ４０３と、配線４０４とから構成される。
【００９５】
図６Ｂに示すように、ニューラルプロセッシングエレメント４００と配線スイッチ４０１とは、交互（チェッカー状）に配置されて配線４０４で接続されている。そのため、任意のニューラルプロセッシングエレメント４００同士は、複数の配線スイッチ４０１を経由することで通信可能となっている。
【００９６】
図７、図８及び図９は、ニューラルプロセッシングエレメントの構成図である。図７は、実施の形態２に係るニューラルプロセッシングエレメント全体の構成を示す図である。
【００９７】
図７に示すように、ニューラルプロセッシングエレメント４００は、シナプスに相当するシナプスユニット５００と、出力生成器５０１と、シナプス重み情報５６を格納するメモリ４０２とから構成される。
【００９８】
シナプスユニット５００は、入力信号５５に対する判定を行い、レベル増加信号５７またはレベル減少信号５８を出力生成器５０１に出力する。また、シナプスユニット５００は、メモリ４０２に格納されているシナプス重み情報５６と出力生成器５０１が出力したニューラル処理の結果５９が入力される。
【００９９】
出力生成器５０１は、シナプスユニット５００からレベル増加信号５７またはレベル減少信号５８が入力され、ニューラル処理の結果５９を出力する。
【０１００】
以上のようにして、ニューラルプロセッシングエレメント４００は構成される。なお、本実施の形態２におけるニューラルプロセッシングエレメント４００の特徴は、一つの入力（シンボル）に対して複数のパルスで表現すること、すなわち一つの入力信号５５を複数のパルス信号（Ｉ１、Ｉ２、Ｉ３・・）として取り扱うことにある。
【０１０１】
図８は、実施の形態２に係るニューラルプロセッシングエレメントを構成するシナプスユニットの構成を示す図である。
【０１０２】
図８に示すように、シナプスユニット５００は、閾値カウンタ６００と、ＡＮＤゲート６０３、ＡＮＤゲート６０５、ＡＮＤゲート６０６、ＯＲゲート６０７、及びＯＲゲート６０８の論理ゲートとから構成される。
【０１０３】
閾値カウンタ６００は、カウンタの値の初期値として重み（シナプス重み情報）の絶対値６２が格納されており、入力信号５５のパルス信号を受信するたびにカウントダウンし、カウンタの値が０になると０検出信号６３をＨｉにする。すなわち、閾値カウンタ６００に所望のパルス数が入力されたときに、ＡＮＤゲート６０３に０検出信号６３が入力される。そして、ＡＮＤゲート６０３は、０検出信号６３が入力されたときに、同時に入力されているパルス信号をＡＮＤゲート６０３以降すなわちＡＮＤゲート６０５またはＡＮＤゲート６０６に伝播する。
【０１０４】
ここで、入力（シンボル）を表現するパルス数を信号強度（振幅）と見なすと、上述の閾値カウンタ６００及びＡＮＤゲート６０３の動作は、信号強度（振幅）がある閾値以上になると反応するという動作と等価である。このようにして閾値カウンタ６００及びＡＮＤゲート６０３は、シナプスの重み演算を実現する。
【０１０５】
次に、ＡＮＤゲート６０５及び６０６は、ＡＮＤゲート６０３より伝播したパルス信号が入力される。これらＡＮＤゲート６０５及び６０６には重みの符号が入力されており、重みの符号が正の時には、ＡＮＤゲート６０５以降にパルス信号を伝播し、重みの符号が負の時にはＡＮＤゲート６０６以降にパルス信号を伝播する。すなわちＡＮＤゲート６０５の出力は正の重みがかけられたパルス信号となり、ＡＮＤゲート６０６の出力は負の重みがかけられたパルス信号となる。そして、それぞれのパルス信号は、ＯＲゲート６０７及び６０８によってまとめられ、正の重みがかけられたパルス信号は振幅レベル増加パルス信号からなるレベル増加信号５７、負の重みがかけられたパルス信号は振幅レベル減少パルス信号からなるレベル減少信号５８として出力される。
【０１０６】
このように入力信号または出力信号を複数のパルス信号で振幅レベルを表現することによってシナプスユニット５００を構成する配線数を削減することが可能となる。
【０１０７】
また、上述したパルス信号は、デジタル論理回路で扱うことになるため、アナログ回路で扱う場合と比較して製造ばらつきによる影響を最小限に抑えることができるだけでなく、また一般的なデジタル回路との共存が可能となる。
【０１０８】
図９は、実施の形態２に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。
【０１０９】
図９に示すように出力生成器５０１は、レベルカウンタ７００とパルス発生器７０１とで構成される。
【０１１０】
レベルカウンタ７００は、シナプスユニット５００から出力されたレベル増加信号５７及びレベル減少信号５８が入力される。レベルカウンタ７００は、レベル減少信号５８の振幅レベル減少パルス信号が入力されるとカウンタの値は１減少し、レベル増加信号５７の振幅レベル増加パルス信号が入力されるとカウンタの値は１増加する。そして、カウンタが規定の値になると信号７３がアクティブとなりパルス発生器７０１に出力される。
【０１１１】
パルス発生器７０１は、レベルカウンタ７００より信号７３が入力されるとパルスを発生する。
【０１１２】
以上のように、出力生成器５０１は構成される。
【０１１３】
このように、シナプスユニット５００と出力生成器５０１との連係動作によって、複数のパルス信号によって信号強度（振幅）が表現された信号を入力し、重み情報を乗じて合計した値が規定の値以上であればパルスを発生するという図１３Ａで示した数理モデルを簡略した形で実現することができる。
【０１１４】
（実施の形態３）
実施の形態３では、上述したニューラルネットワークシステム１の適用例について説明する。
【０１１５】
図１０Ａ及び図１０Ｂは、実施の形態３に係るニューラルネットワークシステムの適用例を説明するための図である。ここでは、特徴判定を実現する場合のニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２との処理例について説明する。
【０１１６】
図１０Ａに示すニューラルネットワークエンジン１００は、ガボールフィルタを構成している。ここで、ガボールフィルタとは脳の初期視覚野（Ｖ１）のモデルとして知られているが、強力な特徴抽出モデルとしても有効であることが知られている。
【０１１７】
このニューラルネットワークエンジン１００は、ガボールフィルタを構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造でガボールフィルタの特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ１０２により設定される。
【０１１８】
以下、このニューラルネットワークエンジン１００の動作を説明する。
【０１１９】
図１０Ｂに示すように、通常動作モード時において、まず、例えば画像データがニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）としてニューラルネットワークエンジン１００に入力される（Ｓ１４０１）。
【０１２０】
次に、ニューラルネットワークエンジン１００は、その画像データに対して反応（動作）、例えば画像データ中の物体の特徴抽出または顔特徴判定を実現する反応（動作）を行い（Ｓ１４０２）、その反応（動作）により生成した特徴抽出結果をＲｅｓｐｏｎｓｅとしてノイマン型マイクロプロセッサ１０２に出力する（Ｓ１４０３）。
【０１２１】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりプログラムを読み出して取得する（Ｓ１４０５）。
【０１２２】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１から取得したプログラムとを利用して逐次プログラム処理を行う（Ｓ１４０７）。ここでは、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）に基づき、例えばＧＵＩ更新、危険判定、人物データベース検索など画像描画または条件判定などを行う逐次プログラム処理を行う。
【０１２３】
図１１Ａ及び図１０Ｂは、実施の形態３に係るニューラルネットワークシステムの別の適用例を説明するための図である。ここでは、動作制御を実現する場合のニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２との処理例について説明する。
【０１２４】
図１１Ａに示すニューラルネットワークエンジン１００は、図１４Ｄに示した神経振動子（ＣＰＧ）を構成している。ここで、神経振動子（ＣＰＧ）とは生物の歩行制御機構における歩行リズムを支配する脊髄の中枢性運動パターン発生器として知られているが、複数のニューラルセルを相互に接続したネットワークとしても知られている。
【０１２５】
このニューラルネットワークエンジン１００は、神経振動子を構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造で神経振動子の特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ１０２によりニューラルネットワークエンジン１００に設定される。
【０１２６】
以下、このニューラルネットワークエンジン１００の動作を説明する。
【０１２７】
図１１Ｂに示すように、通常動作モード時において、まず、加速度センサーなどの周囲環境情報がニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）としてニューラルネットワークエンジン１００に入力される（Ｓ２４０１）。
【０１２８】
次に、ニューラルネットワークエンジン１００は、その周囲環境情報に対して反応（動作）、例えば姿勢制御処理を実現する反応（動作）を行い（Ｓ２４０２）、その反応（動作）により生成した姿勢制御パラメータをＲｅｓｐｏｎｓｅとしてノイマン型マイクロプロセッサ１０２に出力する（Ｓ２４０３）。
【０１２９】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりプログラムを読み出して取得する（Ｓ２４０５）。
【０１３０】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１から取得したプログラムとを利用して逐次プログラム処理を行う（Ｓ２４０７）。ここでは、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）に基づき、例えばモータ制御などの動作制御を行う逐次プログラム処理を行う。
【０１３１】
以上のようにニューラルネットワークシステム１は様々な用途のために様々なネットワーク構成情報とシナプス重み情報とが適用される。
【０１３２】
（実施の形態４）
実施の形態２において、ニューラルプロセッシングエレメント４００はデジタルパルスによって信号強度（振幅）を表現することで、一般的なデジタル回路の共存が可能となると述べた。実施の形態４では、デジタル回路の共存が可能なニューラルプロセッシングエレメント４００の応用例を説明する。
【０１３３】
図１２は、デジタル回路の共存が可能なニューラルプロセッシングエレメント４００の応用例を説明するための図である。なお、図６Ａ及び図６Ｂと同様の要素には同一の符号を付しており、詳細な説明は省略する。
【０１３４】
図９に示すニューラルプロセッシングエレメント４００は、デジタル信号処理を実現するプロセッシングエレメント（Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ：ＰＥ）９００と、配線スイッチ（Ｒｏｕｔｉｎｇ  ｓｗｉｔｃｈ）９０１と、プロセッシングエレメント９００の制御情報を格納するメモリ９０２と、配線スイッチ９０１の制御情報を格納するメモリ９０３と、配線９０４とから構成される。
【０１３５】
図９に示すように、プロセッシングエレメント９００と配線スイッチ９０１とは交互（チェッカー状）に配置されているため、複数の配線スイッチ９０１を経由することで任意のプロセッシングエレメント９００同士が通信可能となる。
【０１３６】
さらに、プロセッシングエレメント９００は、複数の論理演算を行う演算器９０５とニューラルプロセッシングエレメント４００と、マルチプレクサ９０８とから構成されている。プロセッシングエレメント９００では、メモリ９０２から出力されるマルチプレクサ制御信号９９によって複数の演算器９０５とニューラルプロセッシングエレメント４００とのいずれの出力を選択するか決定することができる。
【０１３７】
以上のように、実施の形態４に係るニューラルプロセッシングエレメント４００は構成される。このような構成によって入力信号９６、出力信号９７は演算器９０５とニューラルプロセッシングエレメント４００とで共用化され、配線９０４を増加させることなく両方の処理機能を実装することができる。
【０１３８】
以上、本発明によれば、ニューラルネットワークシステム１をノイマン型マイクロプロセッサ１０２と再構成可能なニューラルネットワークエンジン１００とから構成し、それらの連係動作によって例えばバックワードプロパゲーション処理及び逐次プログラム処理を実現するものである。すなわち、本発明によれば、バックワードプロパゲーション処理をノイマン型マイクロプロセッサ１０２によるニューラルネットワークエミュレーション処理とニューラルネットワークエンジン１００による参照データ生成とによって実現することができる。
【０１３９】
これにより従来技術では必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
【０１４０】
また、ノイマン型マイクロプロセッサ１０２は通常動作時に逐次プログラム処理を行うことで、ニューラルネットワークエンジン１００が不得意とする処理を補完することができる。そして、ニューラルネットワークエンジン１００は、再構成可能であり、ノイマン型マイクロプロセッサ１０２により様々なネットワーク構造に再構成される。
【０１４１】
以上、本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。さらに、ノイマン型マイクロプロセッサが逐次プログラム処理が可能であるので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。
【０１４２】
なお、様々な用途として、再構成可能なニューラルネットワークの特徴を有するニューラルネットワークシステムを備えたＧＵＩと連動したユーザーインターフェースまたは車の危険物判定・回避システムなどの用途に適用することができる。
【０１４３】
したがって、自己学習機構のための回路資源を削減するとともに、様々な用途に適したネットワーク構造への変更を行い、かつ、逐次プログラム処理の実現を可能にすることで、ユーザーインターフェース、車の危険物判定・回避システム等のような曖昧な処理を高速に行うことができる。
【産業上の利用可能性】
【０１４４】
本発明は、ニューラルネットワークシステムに利用でき、特に、ＧＵＩと連動したユーザーインターフェースまたは車の危険物判定及び回避システム等のような曖昧な処理を高速に行うニューラルネットワークシステムに利用できる。
【符号の説明】
【０１４５】
１  ニューラルネットワークシステム
１００  ニューラルネットワークエンジン
１０１、４０２、４０３、９０２、９０３  メモリ
１０２  ノイマン型マイクロプロセッサ
４００  ニューラルプロセッシングエレメント
４０１、９０１  配線スイッチ
４０４、９０４  配線
５００  シナプスユニット
５０１  出力生成器
６００  閾値カウンタ
６０３、６０５、６０６  ＡＮＤゲート
６０７、６０８  ＯＲゲート
７００  レベルカウンタ
７０１  パルス発生器
９００  プロセッシングエレメント
９０５  演算器
９０８  マルチプレクサ
【図１】
2010106587.tif 000006
【図２Ａ】
2010106587.tif 000007
【図２Ｂ】
2010106587.tif 000008
【図３Ａ】
2010106587.tif 000009
【図３Ｂ】
2010106587.tif 000010
【図４Ａ】
2010106587.tif 000011
【図４Ｂ】
2010106587.tif 000012
【図５】
2010106587.tif 000013
【図６Ａ】
2010106587.tif 000014
【図６Ｂ】
2010106587.tif 000015
【図７】
2010106587.tif 000016
【図８】
2010106587.tif 000017
【図９】
2010106587.tif 000018
【図１０Ａ】
2010106587.tif 000019
【図１０Ｂ】
2010106587.tif 000020
【図１１Ａ】
2010106587.tif 000021
【図１１Ｂ】
2010106587.tif 000022
【図１２】
2010106587.tif 000023
【図１３Ａ】
2010106587.tif 000024
【図１３Ｂ】
2010106587.tif 000025
【図１４Ａ】
2010106587.tif 000026
【図１４Ｂ】
2010106587.tif 000027
【図１４Ｃ】
2010106587.tif 000028
【図１４Ｄ】
2010106587.tif 000029
【図１５】
2010106587.tif 000030
【図１６Ａ】
2010106587.tif 000031
【図１６Ｂ】
2010106587.tif 000032
【図１７】
2010106587.tif 000033
【手続補正書】
【提出日】平成22年12月24日(2010.12.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１及び第２の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、
前記ニューラルネットワークエンジンと接続され、前記第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、
前記ノイマン型マイクロプロセッサは、
前記第１の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、
前記第２の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う
ニューラルネットワークシステム。
【請求項２】
前記ノイマン型マイクロプロセッサは、
前記第１の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行う
請求項１に記載のニューラルネットワークシステム。
【請求項３】
（削除）
【請求項４】
（削除）
【請求項５】
（削除）
【請求項６】
（削除）
【請求項７】
（削除）
【請求項８】
第１及び第２の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、
第１の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第１連係動作ステップと、
第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第２連係動作ステップとを含む
ニューラルネットワークシステムの動作方法。
【請求項９】
前記第２連係動作ステップは、
ノイマン型マイクロプロセッサが前記ニューラルネットワークエンジンの動作モードを前記第２の動作モードに変更する第１動作モード変更ステップと、
前記第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う設定更新ステップと、
前記ニューラルネットワークエンジンの動作モードを前記第２とは別の動作モードに変更する第２動作モード変更ステップとを含む
請求項８に記載のニューラルネットワークシステムの動作方法。
【請求項１０】
さらに、前記ノイマン型マイクロプロセッサにより前記ニューラルネットワークエンジンの動作モードが前記第１の動作モードであるかを判定する判定ステップを含み、
前記第１連係動作ステップは、
前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第１の動作モードであると判定された場合に、第１の動作モードに応じた連係動作として、ノイマン型マイクロプロセッサが誤差伝播処理を行うエミュレーションを実行するエミュレーション実行ステップと、
前記実行ステップの結果から、重み情報の再計算または前記ネットワーク構成情報の再作成を行う再作成ステップとを含む
請求項８に記載のニューラルネットワークシステムの動作方法。
【請求項１１】
前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第１及び第２と異なる動作モードであると判定された場合に、さらに、前記ノイマン型マイクロプロセッサがプログラムを実行するプログラム実行ステップとを含む
請求項１０に記載のニューラルネットワークシステムの動作方法。
【手続補正書】
【提出日】平成23年8月9日(2011.8.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能なニューラルネットワークシステムに関する。
【背景技術】
【０００２】
人物の顔認識、音声認識等の認知系信号処理を行うためにニューラルネットワークを用いた方法が広く知られている。
【０００３】
ニューラルネットワークは、人の脳にあるニューロンのネットワークによる信号処理システムを模倣したものであり、相互に接続されたニューロンセルが並列動作するニューラル信号処理を行う。それにより、ノイズが入ったデータ、多様な顔及び声など定式化が困難な対象に対する柔軟な判定を高速に実現することができる。ここで、ニューロンセルとは、ニューロンの仕組みをモデル化したものであり、他のニューロンセルまたは入力デバイスが接続されてニューラル信号処理を担うものである。ニューロンセルは、接続されている他のニューロンセルまたは入力デバイスの出力結果が信号として入力され、入力された各信号に対する重み情報によって特定の入力に対する動作（反応）を行う。このようにして所望の動作を得る。
【０００４】
図１３Ａは、ニューロンセルの一般的な数理モデルの概要を示す図である。この図１３Ａに示すニューロンセルの数理モデルは、（数１）〜（数３）に示すような数式に基づいて動作する。
【０００５】
【数１】
2010106587.tif 000034
【０００６】
【数２】
2010106587.tif 000035
【０００７】
【数３】
2010106587.tif 000036
【０００８】
ここで、ｘ１〜ｘ６は、他のニューロンセルまたは入力デバイスからの入力信号を示している。ｗ１〜ｗ６は、入力信号の結合効率を示す量であり、ｘ１〜ｘ６に対応する重みを示している。ｙは、複数の入力信号ｘ１〜ｘ６に対して決定される１個の出力信号である。
【０００９】
このニューロンセルの数理モデルでは、（数２）で示されるように、複数の入力信号ｘ１〜ｘ６が入力されると、まずｕとして入力ｘ（ここではｘ１〜ｘ６）とその入力ｘに対応する重みｗ（ここではｗ１〜ｗ６）とを乗じて合計したものにオフセットＴが減算される。なお、オフセットＴは、ニューロンセルが入力された特定の入力に対して反応するかどうかを示す閾値に相当する。
【００１０】
次に、（数１）に示される活性化関数ｆ（ｕ）に、上記のように算出されたｕを代入して得られる値がこのニューロンセルの出力となる。ここでは、（数３）で示されるシグモイド関数によって出力ｙのレベルが決定される。すなわち、ある値までＬｏレベルとなり、閾値を超えるとＨｉレベルとなる。
【００１１】
ここで、図１３Ｂは、シグモイド関数の形状を示す図である。シグモイド関数は、図１３Ｂに示すように、ｙ＝０とｙ＝１とに漸近線をもち、ｘ軸の全ての値においてｙの値が０〜１の間に収束する。また、シグモイド関数は、変曲点をもち、変曲点で点対称である。したがって、この形状から、ある値までＬｏレベルとなり、閾値を超えるとＨｉレベルとなるのがわかる。
【００１２】
次に、図１４Ａ〜図１４Ｄを用いて、ニューラルネットワークの代表的な構造を説明する。
【００１３】
図１４Ａは、階層型ネットワークの代表的な構造の一例を示す図である。
【００１４】
ここで、階層型ネットワークとは、入力層、中間層、出力層という複数のニューラル層で構成されるネットワークであり、同じニューラル層どうしのニューロンセルは互いに接続せず、異なるニューラル層どうしニューロンセルが相互に接続されている。
【００１５】
図１４Ａに示す構造は、３層のニューラル層で構成された一般的にパーセプトロンと呼ばれ、パターンマッチング処理に適した構造である。
【００１６】
図１４Ｂは、相互結合型ネットワークの代表的な構造の一例を示す図である。
【００１７】
ここで、相互結合型ネットワークとは、階層型ネットワークのような層を構成せず、各ニューロンセルが相互に接続（結合）しているネットワークである。
【００１８】
図１４Ｂに示す構造は、ニューロンセルが相互に接続されたホップフィールドネットワークと呼ばれ、ノイズが混在した不完全なデータであっても補完して記憶したパターンと対応付けられるという特徴を有する構造である。
【００１９】
図１４Ｃ及び図１４Ｄは、ニューラルネットワークの代表的な構造の一例を示す図である。
【００２０】
図１４Ｃに示す構造は、パーセプトロンの中間層から分岐した別のニューラル層からフィードバックする構造であり、エルマンネットワークと呼ばれる。このエルマンネットワークは、過去の情報をフィードバックする再帰的な構造のため、文法等のシーケンスパターンの認識に適している。
【００２１】
また、図１４Ｄに示すように、２つのニューラル層を互いにフィードバックする神経振動子（ＣＰＧ：Ｃｅｎｔｒａｌ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）と呼ばれる構造も存在する。この構造は２足歩行のロボットにおける姿勢制御等に応用されている（非特許文献１参照）。
【００２２】
以上説明したように、ニューラルネットワークは、ネットワーク構造と重み情報との組み合わせによってその特性を示す動作が決定される。
【００２３】
ところで、ニューラルネットワークを実装する場合には、ソフトウェアにより実装する場合とハードウェアにより実装する場合とが存在する。
【００２４】
ソフトウェアによる実装では、一般的なコンピュータでニューラルネットワークのモデルをエミュレートさせる必要があるためリアルタイム処理には適さず、大量のデータベースを検索するなどの処理に用いられている（非特許文献２参照）。
【００２５】
それに対して、ハードウェアによる実装では、リアルタイム処理が実現できるため、画像認識システムで用いられる。以下、ニューラルネットワークのハードウェアによる実装例を示す。
【００２６】
図１５は、ニューラルネットワークを実装したプロセッサの例である。
【００２７】
このプロセッサ（ＺＩＳＣプロセッサと呼ばれる。）は、３層のネットワーク構造によって認識処理を行うものである（非特許文献３参照）。このプロセッサでは、所望の動作を得るために、レジスタ設定によって重み情報を設定できるだけでなく、自己学習機構によっても重み情報を設定することができる。
【００２８】
なお、自己学習機構の代表的なものとしては、バックワードプロパゲーションによる重み情報更新がある。バックワードプロパゲーションでは、図１６Ａ及び図１６Ｂに示すように、理想的な出力信号である教師信号と参照データとが与えられて各ニューラル層で誤差計算を行い、誤差を最小化する重み情報に更新することにより所望の学習を実現する。ここで、図１６Ａ及び図１６Ｂは、バックワードプロパゲーションの処理の概略を示す図である。
【００２９】
また、ＺＩＳＣプロセッサを用いた画像認識システムが開示されている（特許文献１参照）。図１７に、ＺＩＳＣプロセッサを用いた画像認識システムを示す。図１７に示すように、ＺＩＳＣプロセッサの入力部分にデータ変換処理部があり、様々な画像データを一般化したデータに変換する。この変換処理によって、様々なデータ形式においても単一のニューラルネットワーク構造と重み情報とで処理することができる。
【先行技術文献】
【特許文献】
【００３０】
【特許文献１】特開２００１−０１４４７０号公報
【非特許文献】
【００３１】
【非特許文献１】Ｊｉａｎｇ  Ｓｈａｎ、Ｆｕｍｉｏ  Ｎａｇａｓｈｉｍａ、“Ｂｉｏｌｏｇｉｃａｌｌｙ  Ｉｎｓｐｉｒｅｄ  Ｓｐｉｎａｌ  Ｌｏｃｏｍｏｔｉｏｎ  Ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  Ｈｕｍａｎｏｉｄ  Ｒｏｂｏｔ”、第１９回日本ロボット学会学術講演会、ｐｐ．５１７−５１８、２００１．
【非特許文献２】福島、倉原、鳥越、他、「ニューラルネットワークを用いた内科医療診断支援システムの開発と評価」、第１８回熊本県産学官技術交流会講演論文集、４３１．
【非特許文献３】ＩＢＭ  ＺＩＳＣ０３６  Ｎｅｕｒｏｎｓ  ＵＳＥＲ’Ｓ  ＭＡＮＵＡＬ  Ｖｅｒｓｉｏｎ  １．２
【発明の概要】
【発明が解決しようとする課題】
【００３２】
しかしながら、上記従来の実装方式では以下のような課題がある。
【００３３】
すなわち、ハードウェアによる実装方式では、自己学習機構を実現するための回路資源がニューラルネットワークに必要となる。例えば図１６Ａに示すようにバックワードプロパゲーションを実現する場合、各ニューラル層を遡る信号線と誤差計算を行うための回路とが必要となる。さらに、ネットワーク構造が固定となっているために、適用範囲が限定されてしまう。しかしながら、ネットワーク構造に自由度を持たせる場合には、自由度に応じた自己学習機構のための回路資源が必要となり実装が困難となる。
【００３４】
それに対して、ソフトウェアによる実装方式では、ニューラルネットワークのモデルをソフトウェアによってエミュレートさせることで各ニューロンの反応に時間がかかるため、リアルタイム処理には適さず、その用途が限定されてしまう。
【００３５】
また、ニューラルネットワークの処理特性として、認知処理を得意とする一方で逐次プログラム処理を不得意とするため、その用途が限定されてしまう。
【００３６】
そこで、本発明は、上述の事情を鑑みてなされたものであり、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【００３７】
上記の課題を解決するために、本発明に係るニューラルネットワークシステムは、第１及び第２の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、前記ニューラルネットワークエンジンと接続され、前記第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、前記ノイマン型マイクロプロセッサは、前記第１の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、前記第２の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う。
【００３８】
より好ましくは、本発明に係るニューラルネットワークシステムは、第１及び第２の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、前記ニューラルネットワークエンジンと接続され、前記第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、前記ニューラルネットワークエンジンは、ニューラル信号処理を実現するニューラルプロセッシングエレメントと、配線スイッチと、ニューラルプロセッシングエレメントの制御情報を格納するメモリと、配線スイッチの制御情報を格納するメモリと、配線を備え、前記ノイマン型マイクロプロセッサは、前記第１の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、前記第２の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う。
【００３９】
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。
【００４０】
ここで、前記ノイマン型マイクロプロセッサは、前記第１の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行うとしてもよい。
【００４１】
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。
【００４２】
また、上記目的を達成するために、本発明に係るニューラルネットワークシステムの動作方法は、第１及び第２の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、第１の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第１連係動作ステップと、第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第２連係動作ステップとを含む。
【００４３】
以上のように、本発明では、ニューラルネットワークシステムをノイマン型マイクロプロセッサと再構成可能なニューラルネットワークエンジンとから構成し、バックワードプロパゲーション処理、逐次プログラム処理などを各々の構成要素の連係動作によって実現するものである。すなわち、本発明では例えばバックワードプロパゲーション処理をノイマン型マイクロプロセッサによるニューラルネットワークエミュレーションとニューラルネットワークエンジンによる参照データ生成によって実現する。これにより従来技術で必要であったバックワードプロパゲーション処理など自己学習機構を実現するための回路資源を削減することができる。またノイマン型マイクロプロセッサは通常動作時は逐次プログラム処理を行うので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。さらに、本発明では、ニューラルネットワークプロセッサは再構成可能であり、ノイマン型マイクロプロセッサにより様々なネットワーク構造に変更することが可能である。
【発明の効果】
【００４４】
本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。
【図面の簡単な説明】
【００４５】
【図１】図１は、実施の形態１に係るニューラルネットワークシステムの構成図である。
【図２Ａ】図２Ａは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図２Ｂ】図２Ｂは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図３Ａ】図３Ａは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図３Ｂ】図３Ｂは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図４Ａ】図４Ａは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図４Ｂ】図４Ｂは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【図５】図５は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。
【図６Ａ】図６Ａは、実施の形態２に係るニューラルネットワークエンジンの構成図である。
【図６Ｂ】図６Ｂは、実施の形態２に係るニューラルネットワークエンジンの構成図である。
【図７】図７は、実施の形態２に係るニューラルプロセッシングエレメント全体の構成を示す図である。
【図８】図８は、実施の形態２に係るニューラルプロセッシングエレメントを構成するシナプスユニット５００の構成を示す図である。
【図９】図９は、実施の形態２に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。
【図１０Ａ】図１０Ａは、実施の形態３に係るニューラルネットワークシステムの適用例を説明するための図である。
【図１０Ｂ】図１０Ｂは、実施の形態３に係るニューラルネットワークシステムの適用例を説明するための図である。
【図１１Ａ】図１１Ａは、実施の形態３に係るニューラルネットワークシステムの別の適用例を説明するための図である。
【図１１Ｂ】図１１Ｂは、実施の形態３に係るニューラルネットワークシステムの別の適用例を説明するための図である。
【図１２】図１２は、実施の形態４に係るデジタル回路の共存が可能なニューラルプロセッシングエレメント４００の応用例を説明するための図である。
【図１３Ａ】図１３Ａは、ニューロンセルの一般的な数理モデルの概要を示す図である。
【図１３Ｂ】図１３Ｂは、シグモイド関数の形状を示す図である。
【図１４Ａ】図１４Ａは、階層型ネットワークの代表的な構造の一例を示す図である。
【図１４Ｂ】図１４Ｂは、相互結合型ネットワークの代表的な構造の一例を示す図である。
【図１４Ｃ】図１４Ｃは、ニューラルネットワークの代表的な構造の一例を示す図である。
【図１４Ｄ】図１４Ｄは、ニューラルネットワークの代表的な構造の一例を示す図である。
【図１５】図１５は、ニューラルネットワークを実装したプロセッサの例である。
【図１６Ａ】図１６Ａは、バックワードプロパゲーションの処理の概略を示す図である。
【図１６Ｂ】図１６Ｂは、バックワードプロパゲーションの処理の概略を示す図である。
【図１７】図１７は、ＺＩＳＣプロセッサを用いた画像認識システムを示す図である。
【発明を実施するための形態】
【００４６】
以下、本発明の実施の形態について図面に基づいて説明する。
【００４７】
（実施の形態１）
図１は、実施の形態１に係るニューラルネットワークシステムの構成図である。
【００４８】
図１に示すニューラルネットワークシステム１は、複数の動作モードを持つニューラルネットワークエンジン１００と、メモリ１０１と、ノイマン型マイクロプロセッサ１０２とから構成されている。
【００４９】
ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とが複数の動作モードに応じて連係動作を行うことで所望の動作結果を得る。
【００５０】
ニューラルネットワークエンジン１００は、ノイマン型マイクロプロセッサ１０２と接続されている。ニューラルネットワークエンジン１００は、構成すべきネットワーク構造を示すネットワーク構成情報とそのネットワーク構造に対する重みを示すシナプス重み情報とが設定されて決定される特性を示す動作（反応）を行う。そして、ニューラルネットワークエンジン１００は、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）に対して反応（動作）を行い、その結果をノイマン型マイクロプロセッサ１０２に出力（Ｒｅｓｐｏｎｓｅ）する。
【００５１】
また、ニューラルネットワークエンジン１００は、学習動作モードと通常動作モードとからなる通常モードとコンフィギュレーションモードとの２つのモードをもつ。ここで、通常動作モードとは、ニューラルネットワークエンジン１００が通常動作を行う動作モードであり、学習動作モードとは、シナプス重み情報が再計算されるまたはネットワーク構成情報が再作成される動作モードである。コンフィギュレーションモードとは、ニューラルネットワークエンジン１００に設定されているシナプス重み情報またはネットワーク構成情報が設定または更新される動作モードである。
【００５２】
メモリ１０１は、ノイマン型マイクロプロセッサ１０２とデータ線及びアドレス線で接続されており、ネットワーク構成情報とシナプス重み情報とが格納されている。また、メモリ１０１は、ノイマン型マイクロプロセッサ１０２が実行するためのプログラムが格納されている。
【００５３】
ノイマン型マイクロプロセッサ１０２は、メモリ１０１とデータ線及びアドレス線で接続されている、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００と接続されている。
【００５４】
また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードに応じた連係動作を行う。また、ノイマン型マイクロプロセッサ１０２は、所定の動作モードではニューラルネットワークシステム１の外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００とともに入力される。
【００５５】
例えば、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００が学習動作モードである場合には、ニューラルネットワークシステム１の外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００とともに入力される。そして、ネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン１００からの出力（Ｒｅｓｐｏｎｓｅ）とを用いて、ニューラルネットワークエンジン１００の誤差伝播処理をエミュレーションするプログラムを実行することにより、ニューラルネットワークエンジン１００におけるシナプス重み情報の再計算またはネットワーク構成情報の再作成を行う。
【００５６】
また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００がコンフィギュレーションモードである場合には、メモリ１０１に格納されているネットワーク構成情報とシナプス重み情報とを読み出して、ニューラルネットワークエンジン１００に出力する。それによりノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００のネットワーク構成情報とシナプス重み情報とを設定または更新する。
【００５７】
また、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００が通常動作モードである場合には、ニューラルネットワークエンジン１００からの出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１に格納されているプログラムとを利用して逐次プログラム処理を行う。なお、ニューラルネットワークエンジン１００の動作モードは、ノイマン型マイクロプロセッサ１０２により変更することができるようになっている。
【００５８】
以上のように、ニューラルネットワークシステム１は構成され、動作モードに応じた連係動作によって所望の効果を得ることができる。
【００５９】
次に、ニューラルネットワークシステム１の動作について、図を用いて説明する。
【００６０】
図２Ａ及び図２Ｂは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【００６１】
まず、学習動作モード時において、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００とノイマン型マイクロプロセッサ１０２とに入力される（Ｓ２０１）。
【００６２】
次に、ニューラルネットワークエンジン１００は、その外部からの入力（Ｓｔｉｍｕｌｕｓ）に対して反応（動作）し、その反応（動作）により生成した結果をノイマン型マイクロプロセッサ１０２に出力する（Ｓ２０３）。
【００６３】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりニューラルネットワークエンジン１００のネットワーク構成情報、及び、シナプス重み情報を読み出して取得する（Ｓ２０５）。
【００６４】
次に、ノイマン型マイクロプロセッサ１０２は、取得したネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン１００からの出力（Ｒｅｓｐｏｎｓｅ）とを用いて誤差伝播処理をエミュレーションするプログラムを実行することによって、ニューラルネットワークエンジン１００におけるシナプス重みを再計算する（Ｓ２０７）。
【００６５】
次に、ノイマン型マイクロプロセッサ１０２は、Ｓ２０５での再計算後、再計算した新しいシナプス重み情報をメモリ１０１に格納する（Ｓ２０９）。
【００６６】
以上のようにして、ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とが学習動作モードに応じた連係動作を行う。そして、ノイマン型マイクロプロセッサ１０２はニューラルネットワークエンジン１００の学習を補完する。
【００６７】
なお、ノイマン型マイクロプロセッサ１０２は、誤差伝播処理をエミュレーションするプログラムを実行する場合、シナプス重みを再計算だけに限定されず、ニューラルネットワーク構成の最適化を行い、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ１０１に格納または反映するとしてもよい。その場合には、シナプス重み情報とネットワーク構成情報との双方を更新することによる更なる学習効果の向上が期待できる。
【００６８】
図３Ａ及び図３Ｂは、コンフィギュレーションモード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【００６９】
まず、コンフィギュレーションモード時において、ノイマン型マイクロプロセッサ１０２は、メモリ１０１に格納されているネットワーク構成情報及びシナプス重み情報を読み出して取得する（Ｓ３０１）。
【００７０】
次に、ノイマン型マイクロプロセッサ１０２は、コンフィギュレーションデータとしてネットワーク構成情報及びシナプス重み情報をニューラルネットワークエンジン１００に出力（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）し（Ｓ３０３）、ニューラルネットワークエンジン１００のネットワーク構成情報及びシナプス重み情報を設定または更新する（Ｓ３０５）。
【００７１】
以上のようにして、ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とがコンフィギュレーションモードに応じた連係動作を行う。
【００７２】
なお、ニューラルネットワークエンジン１００に設定されるネットワーク構成情報及びシナプス重み情報は、図２Ａ及び図２Ｂで説明した学習動作モードで作成または更新されたものだけではない。例えば、他の外部記憶装置から転送されたものであってもよく、その場合には、メモリ１０１の容量に制限されずにニューラルネットワークエンジン１００の動作機能を実現することができる。
【００７３】
また、ネットワーク構成情報及びシナプス重み情報の複数セットを、メモリ１０１に格納されるとしてもよい。その場合、ニューラルネットワークシステム１では、各々のセットに対して学習動作モードまたはコンフィギュレーションモードに応じた連係動作を行うことができる。ニューラルネットワークエンジン１００は、複数のネットワーク構成情報及びシナプス重み情報が設定されるだけでなく、その複数のネットワーク構成情報及びシナプス重み情報に対する学習をすることができる。
【００７４】
図４Ａ及び図４Ｂは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
【００７５】
まず、通常動作モード時において、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）がニューラルネットワークエンジン１００に入力される（Ｓ４０１）。
【００７６】
次に、ニューラルネットワークエンジン１００は、ニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）に対して反応（動作）し、その反応（動作）により生成した結果をノイマン型マイクロプロセッサ１０２に出力する（Ｓ４０３）。
【００７７】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりプログラムを読み出して取得する（Ｓ４０５）。
【００７８】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１から取得したプログラムとを利用して逐次プログラム処理を行う（Ｓ４０７）。
【００７９】
以上のようにして、ニューラルネットワークシステム１では、ニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２とが通常動作モードに応じた連係動作を行う。なお、この連係動作により、例えばユーザーインターフェース処理における画像認識結果を用いたメニュー表示プログラムの実行などの処理が実現できる。また、ニューラルネットワーク構成情報及びシナプス重み情報の複数のセットをメモリ１０１に格納されるとしてもよい。その場合、ニューラルネットワークシステム１では、時分割に処理または動作モードを切り替えて連係動作を行うといった機能も実現できる。
【００８０】
次に、上述した各連係動作を決定する処理について説明する。
【００８１】
図５は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。
【００８２】
まず、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードをコンフィギュレーションモードに変更し（Ｓ５０１）、ニューラルネットワークエンジン１００のネットワーク構成情報及びシナプス重み情報を設定する（Ｓ５０２）。なお、このＳ５０２の動作は、図３Ａ及び図３Ｂで説明した動作に該当する。
【００８３】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードを通常モードに変更する（Ｓ５０３）。
【００８４】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の動作モードが学習動作モードであるか通常動作モードであるかの判定を行う（Ｓ５０４）。
【００８５】
ニューラルネットワークエンジン１００の動作モードが通常動作モードであると判定された場合は（Ｓ５０４のＮＯの場合）、ノイマン型マイクロプロセッサ１０２は、通常プログラムを実行する（Ｓ５０５）。このＳ５０５は、図４Ａ及び図４Ｂの動作に該当する。
【００８６】
一方、ニューラルネットワークエンジン１００の動作モードが学習動作モードであると判定された場合（Ｓ５０４のＹＥＳの場合）、ノイマン型マイクロプロセッサ１０２は、誤差伝播処理をエミュレーションするプログラムを実行し（Ｓ５０６）、シナプス重み情報を再計算する（Ｓ５０７）。
【００８７】
そして、ノイマン型マイクロプロセッサ１０２は、再計算したシナプス重み情報をメモリ１０１へ格納する。
【００８８】
なお、ノイマン型マイクロプロセッサ１０２は、Ｓ５０６においてシナプス重みの再計算を行うだけでなくニューラルネットワーク構成の最適化を行い（Ｓ５０７）、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ１０１に反映するとしてもよい（Ｓ５０８）。その場合、シナプス重み情報とネットワーク構成情報と双方を更新することによって更なる学習効果の向上が期待できる。
【００８９】
なお、上述したＳ５０６、Ｓ５０７及びＳ５０８は図３Ａ及び図３Ｂの動作に該当する。
【００９０】
以上のようにして、ノイマン型マイクロプロセッサ１０２は各連係動作を決定し、決定した連係動作を実行する。
【００９１】
以上、本実施の形態１では、ノイマン型マイクロプロセッサ１０２は、通常動作モード時には通常の逐次プログラムを処理し、学習動作モード時には、ニューラルネットワークエンジン１００が学習する時の補助手段として機能する。そのため、従来技術の図１６Ａ及び図１６Ｂに見られるようなバックワードプロパゲーション処理の実現すなわち自己学習機構に必要とされた各ニューラル層を遡る信号線と誤差計算を行うための回路とが不要となる。すなわち、本実施の形態１では、従来技術で必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
【００９２】
また、ノイマン型マイクロプロセッサ１０２は、通常動作モード時には逐次プログラムの処理を行うことで、ニューラルネットワークエンジン１００が不得意とする処理を補完することができる。そして、上述したように、ニューラルネットワークエンジン１００は再構成可能であり、コンフィギュレーションモード時にネットワーク構成情報及びシナプス重み情報が設定されることによって様々なネットワーク構造に変更することができる。
【００９３】
（実施の形態２）
次に、実施の形態２では、ニューラルネットワークエンジン１００の構成の具体例について説明する。
【００９４】
図６Ａ及び図６Ｂは、実施の形態２に係るニューラルネットワークエンジンの構成図である。
【００９５】
図６Ａ及び図６Ｂに示す実施の形態２に係るニューラルネットワークエンジン１００は、ニューラル信号処理を実現するニューラルプロセッシングエレメント（Ｎｅｕｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ：ＮｕＰＥ）４００と、配線スイッチ（Ｒｏｕｔｉｎｇ  ｓｗｉｔｃｈ）４０１と、ニューラルプロセッシングエレメント４００の制御情報を格納するメモリ４０２と、配線スイッチ４０１の制御情報を格納するメモリ４０３と、配線４０４とから構成される。
【００９６】
図６Ｂに示すように、ニューラルプロセッシングエレメント４００と配線スイッチ４０１とは、交互（チェッカー状）に配置されて配線４０４で接続されている。そのため、任意のニューラルプロセッシングエレメント４００同士は、複数の配線スイッチ４０１を経由することで通信可能となっている。
【００９７】
図７、図８及び図９は、ニューラルプロセッシングエレメントの構成図である。図７は、実施の形態２に係るニューラルプロセッシングエレメント全体の構成を示す図である。
【００９８】
図７に示すように、ニューラルプロセッシングエレメント４００は、シナプスに相当するシナプスユニット５００と、出力生成器５０１と、シナプス重み情報５６を格納するメモリ４０２とから構成される。
【００９９】
シナプスユニット５００は、入力信号５５に対する判定を行い、レベル増加信号５７またはレベル減少信号５８を出力生成器５０１に出力する。また、シナプスユニット５００は、メモリ４０２に格納されているシナプス重み情報５６と出力生成器５０１が出力したニューラル処理の結果５９が入力される。
【０１００】
出力生成器５０１は、シナプスユニット５００からレベル増加信号５７またはレベル減少信号５８が入力され、ニューラル処理の結果５９を出力する。
【０１０１】
以上のようにして、ニューラルプロセッシングエレメント４００は構成される。なお、本実施の形態２におけるニューラルプロセッシングエレメント４００の特徴は、一つの入力（シンボル）に対して複数のパルスで表現すること、すなわち一つの入力信号５５を複数のパルス信号（Ｉ１、Ｉ２、Ｉ３・・）として取り扱うことにある。
【０１０２】
図８は、実施の形態２に係るニューラルプロセッシングエレメントを構成するシナプスユニットの構成を示す図である。
【０１０３】
図８に示すように、シナプスユニット５００は、閾値カウンタ６００と、ＡＮＤゲート６０３、ＡＮＤゲート６０５、ＡＮＤゲート６０６、ＯＲゲート６０７、及びＯＲゲート６０８の論理ゲートとから構成される。
【０１０４】
閾値カウンタ６００は、カウンタの値の初期値として重み（シナプス重み情報）の絶対値６２が格納されており、入力信号５５のパルス信号を受信するたびにカウントダウンし、カウンタの値が０になると０検出信号６３をＨｉにする。すなわち、閾値カウンタ６００に所望のパルス数が入力されたときに、ＡＮＤゲート６０３に０検出信号６３が入力される。そして、ＡＮＤゲート６０３は、０検出信号６３が入力されたときに、同時に入力されているパルス信号をＡＮＤゲート６０３以降すなわちＡＮＤゲート６０５またはＡＮＤゲート６０６に伝播する。
【０１０５】
ここで、入力（シンボル）を表現するパルス数を信号強度（振幅）と見なすと、上述の閾値カウンタ６００及びＡＮＤゲート６０３の動作は、信号強度（振幅）がある閾値以上になると反応するという動作と等価である。このようにして閾値カウンタ６００及びＡＮＤゲート６０３は、シナプスの重み演算を実現する。
【０１０６】
次に、ＡＮＤゲート６０５及び６０６は、ＡＮＤゲート６０３より伝播したパルス信号が入力される。これらＡＮＤゲート６０５及び６０６には重みの符号が入力されており、重みの符号が正の時には、ＡＮＤゲート６０５以降にパルス信号を伝播し、重みの符号が負の時にはＡＮＤゲート６０６以降にパルス信号を伝播する。すなわちＡＮＤゲート６０５の出力は正の重みがかけられたパルス信号となり、ＡＮＤゲート６０６の出力は負の重みがかけられたパルス信号となる。そして、それぞれのパルス信号は、ＯＲゲート６０７及び６０８によってまとめられ、正の重みがかけられたパルス信号は振幅レベル増加パルス信号からなるレベル増加信号５７、負の重みがかけられたパルス信号は振幅レベル減少パルス信号からなるレベル減少信号５８として出力される。
【０１０７】
このように入力信号または出力信号を複数のパルス信号で振幅レベルを表現することによってシナプスユニット５００を構成する配線数を削減することが可能となる。
【０１０８】
また、上述したパルス信号は、デジタル論理回路で扱うことになるため、アナログ回路で扱う場合と比較して製造ばらつきによる影響を最小限に抑えることができるだけでなく、また一般的なデジタル回路との共存が可能となる。
【０１０９】
図９は、実施の形態２に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。
【０１１０】
図９に示すように出力生成器５０１は、レベルカウンタ７００とパルス発生器７０１とで構成される。
【０１１１】
レベルカウンタ７００は、シナプスユニット５００から出力されたレベル増加信号５７及びレベル減少信号５８が入力される。レベルカウンタ７００は、レベル減少信号５８の振幅レベル減少パルス信号が入力されるとカウンタの値は１減少し、レベル増加信号５７の振幅レベル増加パルス信号が入力されるとカウンタの値は１増加する。そして、カウンタが規定の値になると信号７３がアクティブとなりパルス発生器７０１に出力される。
【０１１２】
パルス発生器７０１は、レベルカウンタ７００より信号７３が入力されるとパルスを発生する。
【０１１３】
以上のように、出力生成器５０１は構成される。
【０１１４】
このように、シナプスユニット５００と出力生成器５０１との連係動作によって、複数のパルス信号によって信号強度（振幅）が表現された信号を入力し、重み情報を乗じて合計した値が規定の値以上であればパルスを発生するという図１３Ａで示した数理モデルを簡略した形で実現することができる。
【０１１５】
（実施の形態３）
実施の形態３では、上述したニューラルネットワークシステム１の適用例について説明する。
【０１１６】
図１０Ａ及び図１０Ｂは、実施の形態３に係るニューラルネットワークシステムの適用例を説明するための図である。ここでは、特徴判定を実現する場合のニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２との処理例について説明する。
【０１１７】
図１０Ａに示すニューラルネットワークエンジン１００は、ガボールフィルタを構成している。ここで、ガボールフィルタとは脳の初期視覚野（Ｖ１）のモデルとして知られているが、強力な特徴抽出モデルとしても有効であることが知られている。
【０１１８】
このニューラルネットワークエンジン１００は、ガボールフィルタを構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造でガボールフィルタの特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ１０２により設定される。
【０１１９】
以下、このニューラルネットワークエンジン１００の動作を説明する。
【０１２０】
図１０Ｂに示すように、通常動作モード時において、まず、例えば画像データがニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）としてニューラルネットワークエンジン１００に入力される（Ｓ１４０１）。
【０１２１】
次に、ニューラルネットワークエンジン１００は、その画像データに対して反応（動作）、例えば画像データ中の物体の特徴抽出または顔特徴判定を実現する反応（動作）を行い（Ｓ１４０２）、その反応（動作）により生成した特徴抽出結果をＲｅｓｐｏｎｓｅとしてノイマン型マイクロプロセッサ１０２に出力する（Ｓ１４０３）。
【０１２２】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりプログラムを読み出して取得する（Ｓ１４０５）。
【０１２３】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１から取得したプログラムとを利用して逐次プログラム処理を行う（Ｓ１４０７）。ここでは、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）に基づき、例えばＧＵＩ更新、危険判定、人物データベース検索など画像描画または条件判定などを行う逐次プログラム処理を行う。
【０１２４】
図１１Ａ及び図１０Ｂは、実施の形態３に係るニューラルネットワークシステムの別の適用例を説明するための図である。ここでは、動作制御を実現する場合のニューラルネットワークエンジン１００と、ノイマン型マイクロプロセッサ１０２との処理例について説明する。
【０１２５】
図１１Ａに示すニューラルネットワークエンジン１００は、図１４Ｄに示した神経振動子（ＣＰＧ）を構成している。ここで、神経振動子（ＣＰＧ）とは生物の歩行制御機構における歩行リズムを支配する脊髄の中枢性運動パターン発生器として知られているが、複数のニューラルセルを相互に接続したネットワークとしても知られている。
【０１２６】
このニューラルネットワークエンジン１００は、神経振動子を構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造で神経振動子の特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ１０２によりニューラルネットワークエンジン１００に設定される。
【０１２７】
以下、このニューラルネットワークエンジン１００の動作を説明する。
【０１２８】
図１１Ｂに示すように、通常動作モード時において、まず、加速度センサーなどの周囲環境情報がニューラルネットワークシステム１外部からの入力（Ｓｔｉｍｕｌｕｓ）としてニューラルネットワークエンジン１００に入力される（Ｓ２４０１）。
【０１２９】
次に、ニューラルネットワークエンジン１００は、その周囲環境情報に対して反応（動作）、例えば姿勢制御処理を実現する反応（動作）を行い（Ｓ２４０２）、その反応（動作）により生成した姿勢制御パラメータをＲｅｓｐｏｎｓｅとしてノイマン型マイクロプロセッサ１０２に出力する（Ｓ２４０３）。
【０１３０】
次に、ノイマン型マイクロプロセッサ１０２は、メモリ１０１よりプログラムを読み出して取得する（Ｓ２４０５）。
【０１３１】
次に、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）とメモリ１０１から取得したプログラムとを利用して逐次プログラム処理を行う（Ｓ２４０７）。ここでは、ノイマン型マイクロプロセッサ１０２は、ニューラルネットワークエンジン１００の出力（Ｒｅｓｐｏｎｓｅ）に基づき、例えばモータ制御などの動作制御を行う逐次プログラム処理を行う。
【０１３２】
以上のようにニューラルネットワークシステム１は様々な用途のために様々なネットワーク構成情報とシナプス重み情報とが適用される。
【０１３３】
（実施の形態４）
実施の形態２において、ニューラルプロセッシングエレメント４００はデジタルパルスによって信号強度（振幅）を表現することで、一般的なデジタル回路の共存が可能となると述べた。実施の形態４では、デジタル回路の共存が可能なニューラルプロセッシングエレメント４００の応用例を説明する。
【０１３４】
図１２は、デジタル回路の共存が可能なニューラルプロセッシングエレメント４００の応用例を説明するための図である。なお、図６Ａ及び図６Ｂと同様の要素には同一の符号を付しており、詳細な説明は省略する。
【０１３５】
図９に示すニューラルプロセッシングエレメント４００は、デジタル信号処理を実現するプロセッシングエレメント（Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ：ＰＥ）９００と、配線スイッチ（Ｒｏｕｔｉｎｇ  ｓｗｉｔｃｈ）９０１と、プロセッシングエレメント９００の制御情報を格納するメモリ９０２と、配線スイッチ９０１の制御情報を格納するメモリ９０３と、配線９０４とから構成される。
【０１３６】
図９に示すように、プロセッシングエレメント９００と配線スイッチ９０１とは交互（チェッカー状）に配置されているため、複数の配線スイッチ９０１を経由することで任意のプロセッシングエレメント９００同士が通信可能となる。
【０１３７】
さらに、プロセッシングエレメント９００は、複数の論理演算を行う演算器９０５とニューラルプロセッシングエレメント４００と、マルチプレクサ９０８とから構成されている。プロセッシングエレメント９００では、メモリ９０２から出力されるマルチプレクサ制御信号９９によって複数の演算器９０５とニューラルプロセッシングエレメント４００とのいずれの出力を選択するか決定することができる。
【０１３８】
以上のように、実施の形態４に係るニューラルプロセッシングエレメント４００は構成される。このような構成によって入力信号９６、出力信号９７は演算器９０５とニューラルプロセッシングエレメント４００とで共用化され、配線９０４を増加させることなく両方の処理機能を実装することができる。
【０１３９】
以上、本発明によれば、ニューラルネットワークシステム１をノイマン型マイクロプロセッサ１０２と再構成可能なニューラルネットワークエンジン１００とから構成し、それらの連係動作によって例えばバックワードプロパゲーション処理及び逐次プログラム処理を実現するものである。すなわち、本発明によれば、バックワードプロパゲーション処理をノイマン型マイクロプロセッサ１０２によるニューラルネットワークエミュレーション処理とニューラルネットワークエンジン１００による参照データ生成とによって実現することができる。
【０１４０】
これにより従来技術では必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
【０１４１】
また、ノイマン型マイクロプロセッサ１０２は通常動作時に逐次プログラム処理を行うことで、ニューラルネットワークエンジン１００が不得意とする処理を補完することができる。そして、ニューラルネットワークエンジン１００は、再構成可能であり、ノイマン型マイクロプロセッサ１０２により様々なネットワーク構造に再構成される。
【０１４２】
以上、本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。さらに、ノイマン型マイクロプロセッサが逐次プログラム処理が可能であるので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。
【０１４３】
なお、様々な用途として、再構成可能なニューラルネットワークの特徴を有するニューラルネットワークシステムを備えたＧＵＩと連動したユーザーインターフェースまたは車の危険物判定・回避システムなどの用途に適用することができる。
【０１４４】
したがって、自己学習機構のための回路資源を削減するとともに、様々な用途に適したネットワーク構造への変更を行い、かつ、逐次プログラム処理の実現を可能にすることで、ユーザーインターフェース、車の危険物判定・回避システム等のような曖昧な処理を高速に行うことができる。
【産業上の利用可能性】
【０１４５】
本発明は、ニューラルネットワークシステムに利用でき、特に、ＧＵＩと連動したユーザーインターフェースまたは車の危険物判定及び回避システム等のような曖昧な処理を高速に行うニューラルネットワークシステムに利用できる。
【符号の説明】
【０１４６】
１  ニューラルネットワークシステム
１００  ニューラルネットワークエンジン
１０１、４０２、４０３、９０２、９０３  メモリ
１０２  ノイマン型マイクロプロセッサ
４００  ニューラルプロセッシングエレメント
４０１、９０１  配線スイッチ
４０４、９０４  配線
５００  シナプスユニット
５０１  出力生成器
６００  閾値カウンタ
６０３、６０５、６０６  ＡＮＤゲート
６０７、６０８  ＯＲゲート
７００  レベルカウンタ
７０１  パルス発生器
９００  プロセッシングエレメント
９０５  演算器
９０８  マルチプレクサ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１及び第２の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、
前記ニューラルネットワークエンジンと接続され、前記第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、
前記ニューラルネットワークエンジンは、
ニューラル信号処理を実現するニューラルプロセッシングエレメントと、
配線スイッチと、
ニューラルプロセッシングエレメントの制御情報を格納するメモリと、
配線スイッチの制御情報を格納するメモリと、
配線を備え、
前記ノイマン型マイクロプロセッサは、
前記第１の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、
前記第２の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う
ニューラルネットワークシステム。
【請求項２】
前記ノイマン型マイクロプロセッサは、
前記第１の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行う
請求項１に記載のニューラルネットワークシステム。
【請求項３】
第１及び第２の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第１または第２の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、
第１の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第１連係動作ステップと、
第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第２連係動作ステップとを含む
ニューラルネットワークシステムの動作方法。
【請求項４】
前記第２連係動作ステップは、
ノイマン型マイクロプロセッサが前記ニューラルネットワークエンジンの動作モードを前記第２の動作モードに変更する第１動作モード変更ステップと、
前記第２の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う設定更新ステップと、
前記ニューラルネットワークエンジンの動作モードを前記第２とは別の動作モードに変更する第２動作モード変更ステップとを含む
請求項３に記載のニューラルネットワークシステムの動作方法。
【請求項５】
さらに、前記ノイマン型マイクロプロセッサにより前記ニューラルネットワークエンジンの動作モードが前記第１の動作モードであるかを判定する判定ステップを含み、
前記第１連係動作ステップは、
前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第１の動作モードであると判定された場合に、第１の動作モードに応じた連係動作として、ノイマン型マイクロプロセッサが誤差伝播処理を行うエミュレーションを実行するエミュレーション実行ステップと、
前記実行ステップの結果から、重み情報の再計算または前記ネットワーク構成情報の再作成を行う再作成ステップとを含む
請求項３に記載のニューラルネットワークシステムの動作方法。
【請求項６】
前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第１及び第２と異なる動作モードであると判定された場合に、さらに、前記ノイマン型マイクロプロセッサがプログラムを実行するプログラム実行ステップとを含む
請求項５に記載のニューラルネットワークシステムの動作方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010106587.tif 000037
【図２Ａ】
2010106587.tif 000038
【図２Ｂ】
2010106587.tif 000039
【図３Ａ】
2010106587.tif 000040
【図３Ｂ】
2010106587.tif 000041
【図４Ａ】
2010106587.tif 000042
【図４Ｂ】
2010106587.tif 000043
【図５】
2010106587.tif 000044
【図６Ａ】
2010106587.tif 000045
【図６Ｂ】
2010106587.tif 000046
【図７】
2010106587.tif 000047
【図８】
2010106587.tif 000048
【図９】
2010106587.tif 000049
【図１０Ａ】
2010106587.tif 000050
【図１０Ｂ】
2010106587.tif 000051
【図１１Ａ】
2010106587.tif 000052
【図１１Ｂ】
2010106587.tif 000053
【図１２】
2010106587.tif 000054
【図１３Ａ】
2010106587.tif 000055
【図１３Ｂ】
2010106587.tif 000056
【図１４Ａ】
2010106587.tif 000057
【図１４Ｂ】
2010106587.tif 000058
【図１４Ｃ】
2010106587.tif 000059
【図１４Ｄ】
2010106587.tif 000060
【図１５】
2010106587.tif 000061
【図１６Ａ】
2010106587.tif 000062
【図１６Ｂ】
2010106587.tif 000063
【図１７】
2010106587.tif 000064
【国際調査報告】
2010106587.tif 000065
2010106587.tif 000066
2010106587.tif 000067
2010106587.tif 000068