JPWO2010106587A1 - ニューラルネットワークシステム - Google Patents

ニューラルネットワークシステム Download PDF

Info

Publication number
JPWO2010106587A1
JPWO2010106587A1 JP2011504616A JP2011504616A JPWO2010106587A1 JP WO2010106587 A1 JPWO2010106587 A1 JP WO2010106587A1 JP 2011504616 A JP2011504616 A JP 2011504616A JP 2011504616 A JP2011504616 A JP 2011504616A JP WO2010106587 A1 JPWO2010106587 A1 JP WO2010106587A1
Authority
JP
Japan
Prior art keywords
neural network
neural
operation mode
engine
network engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011504616A
Other languages
English (en)
Inventor
笹川 幸宏
幸宏 笹川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2010106587A1 publication Critical patent/JPWO2010106587A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造の再構成が可能なニューラルネットワークシステムは、第1及び第2動作モードを持ち、ネットワークの構成情報と該ネットワークの構造に対する重み情報とが設定されて決定される特性を示す動作を行うニューラルネットワークエンジン(100)と、ニューラルネットワークエンジン(100)と接続され、第1または第2動作モードに応じた連係動作をニューラルネットワークエンジン(100)と行うノイマン型マイクロプロセッサ(102)とを備え、ノイマン型マイクロプロセッサ(102)は、第1動作モードに応じた連係動作として、重み情報の再計算または構成情報の再作成を行い、第2動作モードに応じた連係動作として、ニューラルネットワークエンジン(100)に設定されている構成情報または重み情報の設定または更新を行う。

Description

本発明は、再構成可能なニューラルネットワークシステムに関する。
人物の顔認識、音声認識等の認知系信号処理を行うためにニューラルネットワークを用いた方法が広く知られている。
ニューラルネットワークは、人の脳にあるニューロンのネットワークによる信号処理システムを模倣したものであり、相互に接続されたニューロンセルが並列動作するニューラル信号処理を行う。それにより、ノイズが入ったデータ、多様な顔及び声など定式化が困難な対象に対する柔軟な判定を高速に実現することができる。ここで、ニューロンセルとは、ニューロンの仕組みをモデル化したものであり、他のニューロンセルまたは入力デバイスが接続されてニューラル信号処理を担うものである。ニューロンセルは、接続されている他のニューロンセルまたは入力デバイスの出力結果が信号として入力され、入力された各信号に対する重み情報によって特定の入力に対する動作(反応)を行う。このようにして所望の動作を得る。
図13Aは、ニューロンセルの一般的な数理モデルの概要を示す図である。この図13Aに示すニューロンセルの数理モデルは、(数1)〜(数3)に示すような数式に基づいて動作する。
Figure 2010106587
Figure 2010106587
Figure 2010106587
ここで、x1〜x6は、他のニューロンセルまたは入力デバイスからの入力信号を示している。w1〜w6は、入力信号の結合効率を示す量であり、x1〜x6に対応する重みを示している。yは、複数の入力信号x1〜x6に対して決定される1個の出力信号である。
このニューロンセルの数理モデルでは、(数2)で示されるように、複数の入力信号x1〜x6が入力されると、まずuとして入力x(ここではx1〜x6)とその入力xに対応する重みw(ここではw1〜w6)とを乗じて合計したものにオフセットTが減算される。なお、オフセットTは、ニューロンセルが入力された特定の入力に対して反応するかどうかを示す閾値に相当する。
次に、(数1)に示される活性化関数f(u)に、上記のように算出されたuを代入して得られる値がこのニューロンセルの出力となる。ここでは、(数3)で示されるシグモイド関数によって出力yのレベルが決定される。すなわち、ある値までLoレベルとなり、閾値を超えるとHiレベルとなる。
ここで、図13Bは、シグモイド関数の形状を示す図である。シグモイド関数は、図13Bに示すように、y=0とy=1とに漸近線をもち、x軸の全ての値においてyの値が0〜1の間に収束する。また、シグモイド関数は、変曲点をもち、変曲点で点対称である。したがって、この形状から、ある値までLoレベルとなり、閾値を超えるとHiレベルとなるのがわかる。
次に、図14A〜図14Dを用いて、ニューラルネットワークの代表的な構造を説明する。
図14Aは、階層型ネットワークの代表的な構造の一例を示す図である。
ここで、階層型ネットワークとは、入力層、中間層、出力層という複数のニューラル層で構成されるネットワークであり、同じニューラル層どうしのニューロンセルは互いに接続せず、異なるニューラル層どうしニューロンセルが相互に接続されている。
図14Aに示す構造は、3層のニューラル層で構成された一般的にパーセプトロンと呼ばれ、パターンマッチング処理に適した構造である。
図14Bは、相互結合型ネットワークの代表的な構造の一例を示す図である。
ここで、相互結合型ネットワークとは、階層型ネットワークのような層を構成せず、各ニューロンセルが相互に接続(結合)しているネットワークである。
図14Bに示す構造は、ニューロンセルが相互に接続されたホップフィールドネットワークと呼ばれ、ノイズが混在した不完全なデータであっても補完して記憶したパターンと対応付けられるという特徴を有する構造である。
図14C及び図14Dは、ニューラルネットワークの代表的な構造の一例を示す図である。
図14Cに示す構造は、パーセプトロンの中間層から分岐した別のニューラル層からフィードバックする構造であり、エルマンネットワークと呼ばれる。このエルマンネットワークは、過去の情報をフィードバックする再帰的な構造のため、文法等のシーケンスパターンの認識に適している。
また、図14Dに示すように、2つのニューラル層を互いにフィードバックする神経振動子(CPG:Central Pattern Generator)と呼ばれる構造も存在する。この構造は2足歩行のロボットにおける姿勢制御等に応用されている(非特許文献1参照)。
以上説明したように、ニューラルネットワークは、ネットワーク構造と重み情報との組み合わせによってその特性を示す動作が決定される。
ところで、ニューラルネットワークを実装する場合には、ソフトウェアにより実装する場合とハードウェアにより実装する場合とが存在する。
ソフトウェアによる実装では、一般的なコンピュータでニューラルネットワークのモデルをエミュレートさせる必要があるためリアルタイム処理には適さず、大量のデータベースを検索するなどの処理に用いられている(非特許文献2参照)。
それに対して、ハードウェアによる実装では、リアルタイム処理が実現できるため、画像認識システムで用いられる。以下、ニューラルネットワークのハードウェアによる実装例を示す。
図15は、ニューラルネットワークを実装したプロセッサの例である。
このプロセッサ(ZISCプロセッサと呼ばれる。)は、3層のネットワーク構造によって認識処理を行うものである(非特許文献3参照)。このプロセッサでは、所望の動作を得るために、レジスタ設定によって重み情報を設定できるだけでなく、自己学習機構によっても重み情報を設定することができる。
なお、自己学習機構の代表的なものとしては、バックワードプロパゲーションによる重み情報更新がある。バックワードプロパゲーションでは、図16A及び図16Bに示すように、理想的な出力信号である教師信号と参照データとが与えられて各ニューラル層で誤差計算を行い、誤差を最小化する重み情報に更新することにより所望の学習を実現する。ここで、図16A及び図16Bは、バックワードプロパゲーションの処理の概略を示す図である。
また、ZISCプロセッサを用いた画像認識システムが開示されている(特許文献1参照)。図17に、ZISCプロセッサを用いた画像認識システムを示す。図17に示すように、ZISCプロセッサの入力部分にデータ変換処理部があり、様々な画像データを一般化したデータに変換する。この変換処理によって、様々なデータ形式においても単一のニューラルネットワーク構造と重み情報とで処理することができる。
特開2001−014470号公報
Jiang Shan、Fumio Nagashima、"Biologically Inspired Spinal Locomotion Controller for Humanoid Robot"、第19回日本ロボット学会学術講演会、pp.517−518、2001. 福島、倉原、鳥越、他、「ニューラルネットワークを用いた内科医療診断支援システムの開発と評価」、第18回熊本県産学官技術交流会講演論文集、431. IBM ZISC036 Neurons USER’S MANUAL Version 1.2
しかしながら、上記従来の実装方式では以下のような課題がある。
すなわち、ハードウェアによる実装方式では、自己学習機構を実現するための回路資源がニューラルネットワークに必要となる。例えば図16Aに示すようにバックワードプロパゲーションを実現する場合、各ニューラル層を遡る信号線と誤差計算を行うための回路とが必要となる。さらに、ネットワーク構造が固定となっているために、適用範囲が限定されてしまう。しかしながら、ネットワーク構造に自由度を持たせる場合には、自由度に応じた自己学習機構のための回路資源が必要となり実装が困難となる。
それに対して、ソフトウェアによる実装方式では、ニューラルネットワークのモデルをソフトウェアによってエミュレートさせることで各ニューロンの反応に時間がかかるため、リアルタイム処理には適さず、その用途が限定されてしまう。
また、ニューラルネットワークの処理特性として、認知処理を得意とする一方で逐次プログラム処理を不得意とするため、その用途が限定されてしまう。
そこで、本発明は、上述の事情を鑑みてなされたものであり、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを提供することを目的とする。
上記の課題を解決するために、本発明に係るニューラルネットワークシステムは、第1及び第2の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、前記ニューラルネットワークエンジンと接続され、前記第1または第2の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、前記ノイマン型マイクロプロセッサは、前記第1の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、前記第2の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う。
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。
ここで、前記ノイマン型マイクロプロセッサは、前記第1の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行うとしてもよい。
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。
また、上記目的を達成するために、本発明に係るニューラルネットワークシステムの動作方法は、第1及び第2の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第1または第2の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、第1の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第1連係動作ステップと、第2の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第2連係動作ステップとを含む。
以上のように、本発明では、ニューラルネットワークシステムをノイマン型マイクロプロセッサと再構成可能なニューラルネットワークエンジンとから構成し、バックワードプロパゲーション処理、逐次プログラム処理などを各々の構成要素の連係動作によって実現するものである。すなわち、本発明では例えばバックワードプロパゲーション処理をノイマン型マイクロプロセッサによるニューラルネットワークエミュレーションとニューラルネットワークエンジンによる参照データ生成によって実現する。これにより従来技術で必要であったバックワードプロパゲーション処理など自己学習機構を実現するための回路資源を削減することができる。またノイマン型マイクロプロセッサは通常動作時は逐次プログラム処理を行うので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。さらに、本発明では、ニューラルネットワークプロセッサは再構成可能であり、ノイマン型マイクロプロセッサにより様々なネットワーク構造に変更することが可能である。
本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。
図1は、実施の形態1に係るニューラルネットワークシステムの構成図である。 図2Aは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図2Bは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図3Aは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図3Bは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図4Aは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図4Bは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図5は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。 図6Aは、実施の形態2に係るニューラルネットワークエンジンの構成図である。 図6Bは、実施の形態2に係るニューラルネットワークエンジンの構成図である。 図7は、実施の形態2に係るニューラルプロセッシングエレメント全体の構成を示す図である。 図8は、実施の形態2に係るニューラルプロセッシングエレメントを構成するシナプスユニット500の構成を示す図である。 図9は、実施の形態2に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。 図10Aは、実施の形態3に係るニューラルネットワークシステムの適用例を説明するための図である。 図10Bは、実施の形態3に係るニューラルネットワークシステムの適用例を説明するための図である。 図11Aは、実施の形態3に係るニューラルネットワークシステムの別の適用例を説明するための図である。 図11Bは、実施の形態3に係るニューラルネットワークシステムの別の適用例を説明するための図である。 図12は、実施の形態4に係るデジタル回路の共存が可能なニューラルプロセッシングエレメント400の応用例を説明するための図である。 図13Aは、ニューロンセルの一般的な数理モデルの概要を示す図である。 図13Bは、シグモイド関数の形状を示す図である。 図14Aは、階層型ネットワークの代表的な構造の一例を示す図である。 図14Bは、相互結合型ネットワークの代表的な構造の一例を示す図である。 図14Cは、ニューラルネットワークの代表的な構造の一例を示す図である。 図14Dは、ニューラルネットワークの代表的な構造の一例を示す図である。 図15は、ニューラルネットワークを実装したプロセッサの例である。 図16Aは、バックワードプロパゲーションの処理の概略を示す図である。 図16Bは、バックワードプロパゲーションの処理の概略を示す図である。 図17は、ZISCプロセッサを用いた画像認識システムを示す図である。
以下、本発明の実施の形態について図面に基づいて説明する。
(実施の形態1)
図1は、実施の形態1に係るニューラルネットワークシステムの構成図である。
図1に示すニューラルネットワークシステム1は、複数の動作モードを持つニューラルネットワークエンジン100と、メモリ101と、ノイマン型マイクロプロセッサ102とから構成されている。
ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とが複数の動作モードに応じて連係動作を行うことで所望の動作結果を得る。
ニューラルネットワークエンジン100は、ノイマン型マイクロプロセッサ102と接続されている。ニューラルネットワークエンジン100は、構成すべきネットワーク構造を示すネットワーク構成情報とそのネットワーク構造に対する重みを示すシナプス重み情報とが設定されて決定される特性を示す動作(反応)を行う。そして、ニューラルネットワークエンジン100は、ニューラルネットワークシステム1外部からの入力(Stimulus)に対して反応(動作)を行い、その結果をノイマン型マイクロプロセッサ102に出力(Response)する。
また、ニューラルネットワークエンジン100は、学習動作モードと通常動作モードとからなる通常モードとコンフィギュレーションモードとの2つのモードをもつ。ここで、通常動作モードとは、ニューラルネットワークエンジン100が通常動作を行う動作モードであり、学習動作モードとは、シナプス重み情報が再計算されるまたはネットワーク構成情報が再作成される動作モードである。コンフィギュレーションモードとは、ニューラルネットワークエンジン100に設定されているシナプス重み情報またはネットワーク構成情報が設定または更新される動作モードである。
メモリ101は、ノイマン型マイクロプロセッサ102とデータ線及びアドレス線で接続されており、ネットワーク構成情報とシナプス重み情報とが格納されている。また、メモリ101は、ノイマン型マイクロプロセッサ102が実行するためのプログラムが格納されている。
ノイマン型マイクロプロセッサ102は、メモリ101とデータ線及びアドレス線で接続されている、例えばCPU(Central Processing Unit)である。また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100と接続されている。
また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードに応じた連係動作を行う。また、ノイマン型マイクロプロセッサ102は、所定の動作モードではニューラルネットワークシステム1の外部からの入力(Stimulus)がニューラルネットワークエンジン100とともに入力される。
例えば、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100が学習動作モードである場合には、ニューラルネットワークシステム1の外部からの入力(Stimulus)がニューラルネットワークエンジン100とともに入力される。そして、ネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン100からの出力(Response)とを用いて、ニューラルネットワークエンジン100の誤差伝播処理をエミュレーションするプログラムを実行することにより、ニューラルネットワークエンジン100におけるシナプス重み情報の再計算またはネットワーク構成情報の再作成を行う。
また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100がコンフィギュレーションモードである場合には、メモリ101に格納されているネットワーク構成情報とシナプス重み情報とを読み出して、ニューラルネットワークエンジン100に出力する。それによりノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100のネットワーク構成情報とシナプス重み情報とを設定または更新する。
また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100が通常動作モードである場合には、ニューラルネットワークエンジン100からの出力(Response)とメモリ101に格納されているプログラムとを利用して逐次プログラム処理を行う。なお、ニューラルネットワークエンジン100の動作モードは、ノイマン型マイクロプロセッサ102により変更することができるようになっている。
以上のように、ニューラルネットワークシステム1は構成され、動作モードに応じた連係動作によって所望の効果を得ることができる。
次に、ニューラルネットワークシステム1の動作について、図を用いて説明する。
図2A及び図2Bは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
まず、学習動作モード時において、ニューラルネットワークシステム1外部からの入力(Stimulus)がニューラルネットワークエンジン100とノイマン型マイクロプロセッサ102とに入力される(S201)。
次に、ニューラルネットワークエンジン100は、その外部からの入力(Stimulus)に対して反応(動作)し、その反応(動作)により生成した結果をノイマン型マイクロプロセッサ102に出力する(S203)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりニューラルネットワークエンジン100のネットワーク構成情報、及び、シナプス重み情報を読み出して取得する(S205)。
次に、ノイマン型マイクロプロセッサ102は、取得したネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン100からの出力(Response)とを用いて誤差伝播処理をエミュレーションするプログラムを実行することによって、ニューラルネットワークエンジン100におけるシナプス重みを再計算する(S207)。
次に、ノイマン型マイクロプロセッサ102は、S205での再計算後、再計算した新しいシナプス重み情報をメモリ101に格納する(S209)。
以上のようにして、ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とが学習動作モードに応じた連係動作を行う。そして、ノイマン型マイクロプロセッサ102はニューラルネットワークエンジン100の学習を補完する。
なお、ノイマン型マイクロプロセッサ102は、誤差伝播処理をエミュレーションするプログラムを実行する場合、シナプス重みを再計算だけに限定されず、ニューラルネットワーク構成の最適化を行い、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ101に格納または反映するとしてもよい。その場合には、シナプス重み情報とネットワーク構成情報との双方を更新することによる更なる学習効果の向上が期待できる。
図3A及び図3Bは、コンフィギュレーションモード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
まず、コンフィギュレーションモード時において、ノイマン型マイクロプロセッサ102は、メモリ101に格納されているネットワーク構成情報及びシナプス重み情報を読み出して取得する(S301)。
次に、ノイマン型マイクロプロセッサ102は、コンフィギュレーションデータとしてネットワーク構成情報及びシナプス重み情報をニューラルネットワークエンジン100に出力(Configuration)し(S303)、ニューラルネットワークエンジン100のネットワーク構成情報及びシナプス重み情報を設定または更新する(S305)。
以上のようにして、ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とがコンフィギュレーションモードに応じた連係動作を行う。
なお、ニューラルネットワークエンジン100に設定されるネットワーク構成情報及びシナプス重み情報は、図2A及び図2Bで説明した学習動作モードで作成または更新されたものだけではない。例えば、他の外部記憶装置から転送されたものであってもよく、その場合には、メモリ101の容量に制限されずにニューラルネットワークエンジン100の動作機能を実現することができる。
また、ネットワーク構成情報及びシナプス重み情報の複数セットを、メモリ101に格納されるとしてもよい。その場合、ニューラルネットワークシステム1では、各々のセットに対して学習動作モードまたはコンフィギュレーションモードに応じた連係動作を行うことができる。ニューラルネットワークエンジン100は、複数のネットワーク構成情報及びシナプス重み情報が設定されるだけでなく、その複数のネットワーク構成情報及びシナプス重み情報に対する学習をすることができる。
図4A及び図4Bは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
まず、通常動作モード時において、ニューラルネットワークシステム1外部からの入力(Stimulus)がニューラルネットワークエンジン100に入力される(S401)。
次に、ニューラルネットワークエンジン100は、ニューラルネットワークシステム1外部からの入力(Stimulus)に対して反応(動作)し、その反応(動作)により生成した結果をノイマン型マイクロプロセッサ102に出力する(S403)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりプログラムを読み出して取得する(S405)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)とメモリ101から取得したプログラムとを利用して逐次プログラム処理を行う(S407)。
以上のようにして、ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とが通常動作モードに応じた連係動作を行う。なお、この連係動作により、例えばユーザーインターフェース処理における画像認識結果を用いたメニュー表示プログラムの実行などの処理が実現できる。また、ニューラルネットワーク構成情報及びシナプス重み情報の複数のセットをメモリ101に格納されるとしてもよい。その場合、ニューラルネットワークシステム1では、時分割に処理または動作モードを切り替えて連係動作を行うといった機能も実現できる。
次に、上述した各連係動作を決定する処理について説明する。
図5は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。
まず、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードをコンフィギュレーションモードに変更し(S501)、ニューラルネットワークエンジン100のネットワーク構成情報及びシナプス重み情報を設定する(S502)。なお、このS502の動作は、図3A及び図3Bで説明した動作に該当する。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードを通常モードに変更する(S503)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードが学習動作モードであるか通常動作モードであるかの判定を行う(S504)。
ニューラルネットワークエンジン100の動作モードが通常動作モードであると判定された場合は(S504のNOの場合)、ノイマン型マイクロプロセッサ102は、通常プログラムを実行する(S505)。このS505は、図4A及び図4Bの動作に該当する。
一方、ニューラルネットワークエンジン100の動作モードが学習動作モードであると判定された場合(S504のYESの場合)、ノイマン型マイクロプロセッサ102は、誤差伝播処理をエミュレーションするプログラムを実行し(S506)、シナプス重み情報を再計算する(S507)。
そして、ノイマン型マイクロプロセッサ102は、再計算したシナプス重み情報をメモリ101へ格納する。
なお、ノイマン型マイクロプロセッサ102は、S506においてシナプス重みの再計算を行うだけでなくニューラルネットワーク構成の最適化を行い(S507)、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ101に反映するとしてもよい(S508)。その場合、シナプス重み情報とネットワーク構成情報と双方を更新することによって更なる学習効果の向上が期待できる。
なお、上述したS506、S507及びS508は図3A及び図3Bの動作に該当する。
以上のようにして、ノイマン型マイクロプロセッサ102は各連係動作を決定し、決定した連係動作を実行する。
以上、本実施の形態1では、ノイマン型マイクロプロセッサ102は、通常動作モード時には通常の逐次プログラムを処理し、学習動作モード時には、ニューラルネットワークエンジン100が学習する時の補助手段として機能する。そのため、従来技術の図16A及び図16Bに見られるようなバックワードプロパゲーション処理の実現すなわち自己学習機構に必要とされた各ニューラル層を遡る信号線と誤差計算を行うための回路とが不要となる。すなわち、本実施の形態1では、従来技術で必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
また、ノイマン型マイクロプロセッサ102は、通常動作モード時には逐次プログラムの処理を行うことで、ニューラルネットワークエンジン100が不得意とする処理を補完することができる。そして、上述したように、ニューラルネットワークエンジン100は再構成可能であり、コンフィギュレーションモード時にネットワーク構成情報及びシナプス重み情報が設定されることによって様々なネットワーク構造に変更することができる。
(実施の形態2)
次に、実施の形態2では、ニューラルネットワークエンジン100の構成の具体例について説明する。
図6A及び図6Bは、実施の形態2に係るニューラルネットワークエンジンの構成図である。
図6A及び図6Bに示す実施の形態2に係るニューラルネットワークエンジン100は、ニューラル信号処理を実現するニューラルプロセッシングエレメント(Neural Processing Element:NuPE)400と、配線スイッチ(Routing switch)401と、ニューラルプロセッシングエレメント400の制御情報を格納するメモリ402と、配線スイッチ401の制御情報を格納するメモリ403と、配線404とから構成される。
図6Bに示すように、ニューラルプロセッシングエレメント400と配線スイッチ401とは、交互(チェッカー状)に配置されて配線404で接続されている。そのため、任意のニューラルプロセッシングエレメント400同士は、複数の配線スイッチ401を経由することで通信可能となっている。
図7、図8及び図9は、ニューラルプロセッシングエレメントの構成図である。図7は、実施の形態2に係るニューラルプロセッシングエレメント全体の構成を示す図である。
図7に示すように、ニューラルプロセッシングエレメント400は、シナプスに相当するシナプスユニット500と、出力生成器501と、シナプス重み情報56を格納するメモリ402とから構成される。
シナプスユニット500は、入力信号55に対する判定を行い、レベル増加信号57またはレベル減少信号58を出力生成器501に出力する。また、シナプスユニット500は、メモリ402に格納されているシナプス重み情報56と出力生成器501が出力したニューラル処理の結果59が入力される。
出力生成器501は、シナプスユニット500からレベル増加信号57またはレベル減少信号58が入力され、ニューラル処理の結果59を出力する。
以上のようにして、ニューラルプロセッシングエレメント400は構成される。なお、本実施の形態2におけるニューラルプロセッシングエレメント400の特徴は、一つの入力(シンボル)に対して複数のパルスで表現すること、すなわち一つの入力信号55を複数のパルス信号(I1、I2、I3・・)として取り扱うことにある。
図8は、実施の形態2に係るニューラルプロセッシングエレメントを構成するシナプスユニットの構成を示す図である。
図8に示すように、シナプスユニット500は、閾値カウンタ600と、ANDゲート603、ANDゲート605、ANDゲート606、ORゲート607、及びORゲート608の論理ゲートとから構成される。
閾値カウンタ600は、カウンタの値の初期値として重み(シナプス重み情報)の絶対値62が格納されており、入力信号55のパルス信号を受信するたびにカウントダウンし、カウンタの値が0になると0検出信号63をHiにする。すなわち、閾値カウンタ600に所望のパルス数が入力されたときに、ANDゲート603に0検出信号63が入力される。そして、ANDゲート603は、0検出信号63が入力されたときに、同時に入力されているパルス信号をANDゲート603以降すなわちANDゲート605またはANDゲート606に伝播する。
ここで、入力(シンボル)を表現するパルス数を信号強度(振幅)と見なすと、上述の閾値カウンタ600及びANDゲート603の動作は、信号強度(振幅)がある閾値以上になると反応するという動作と等価である。このようにして閾値カウンタ600及びANDゲート603は、シナプスの重み演算を実現する。
次に、ANDゲート605及び606は、ANDゲート603より伝播したパルス信号が入力される。これらANDゲート605及び606には重みの符号が入力されており、重みの符号が正の時には、ANDゲート605以降にパルス信号を伝播し、重みの符号が負の時にはANDゲート606以降にパルス信号を伝播する。すなわちANDゲート605の出力は正の重みがかけられたパルス信号となり、ANDゲート606の出力は負の重みがかけられたパルス信号となる。そして、それぞれのパルス信号は、ORゲート607及び608によってまとめられ、正の重みがかけられたパルス信号は振幅レベル増加パルス信号からなるレベル増加信号57、負の重みがかけられたパルス信号は振幅レベル減少パルス信号からなるレベル減少信号58として出力される。
このように入力信号または出力信号を複数のパルス信号で振幅レベルを表現することによってシナプスユニット500を構成する配線数を削減することが可能となる。
また、上述したパルス信号は、デジタル論理回路で扱うことになるため、アナログ回路で扱う場合と比較して製造ばらつきによる影響を最小限に抑えることができるだけでなく、また一般的なデジタル回路との共存が可能となる。
図9は、実施の形態2に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。
図9に示すように出力生成器501は、レベルカウンタ700とパルス発生器701とで構成される。
レベルカウンタ700は、シナプスユニット500から出力されたレベル増加信号57及びレベル減少信号58が入力される。レベルカウンタ700は、レベル減少信号58の振幅レベル減少パルス信号が入力されるとカウンタの値は1減少し、レベル増加信号57の振幅レベル増加パルス信号が入力されるとカウンタの値は1増加する。そして、カウンタが規定の値になると信号73がアクティブとなりパルス発生器701に出力される。
パルス発生器701は、レベルカウンタ700より信号73が入力されるとパルスを発生する。
以上のように、出力生成器501は構成される。
このように、シナプスユニット500と出力生成器501との連係動作によって、複数のパルス信号によって信号強度(振幅)が表現された信号を入力し、重み情報を乗じて合計した値が規定の値以上であればパルスを発生するという図13Aで示した数理モデルを簡略した形で実現することができる。
(実施の形態3)
実施の形態3では、上述したニューラルネットワークシステム1の適用例について説明する。
図10A及び図10Bは、実施の形態3に係るニューラルネットワークシステムの適用例を説明するための図である。ここでは、特徴判定を実現する場合のニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102との処理例について説明する。
図10Aに示すニューラルネットワークエンジン100は、ガボールフィルタを構成している。ここで、ガボールフィルタとは脳の初期視覚野(V1)のモデルとして知られているが、強力な特徴抽出モデルとしても有効であることが知られている。
このニューラルネットワークエンジン100は、ガボールフィルタを構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造でガボールフィルタの特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ102により設定される。
以下、このニューラルネットワークエンジン100の動作を説明する。
図10Bに示すように、通常動作モード時において、まず、例えば画像データがニューラルネットワークシステム1外部からの入力(Stimulus)としてニューラルネットワークエンジン100に入力される(S1401)。
次に、ニューラルネットワークエンジン100は、その画像データに対して反応(動作)、例えば画像データ中の物体の特徴抽出または顔特徴判定を実現する反応(動作)を行い(S1402)、その反応(動作)により生成した特徴抽出結果をResponseとしてノイマン型マイクロプロセッサ102に出力する(S1403)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりプログラムを読み出して取得する(S1405)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)とメモリ101から取得したプログラムとを利用して逐次プログラム処理を行う(S1407)。ここでは、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)に基づき、例えばGUI更新、危険判定、人物データベース検索など画像描画または条件判定などを行う逐次プログラム処理を行う。
図11A及び図10Bは、実施の形態3に係るニューラルネットワークシステムの別の適用例を説明するための図である。ここでは、動作制御を実現する場合のニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102との処理例について説明する。
図11Aに示すニューラルネットワークエンジン100は、図14Dに示した神経振動子(CPG)を構成している。ここで、神経振動子(CPG)とは生物の歩行制御機構における歩行リズムを支配する脊髄の中枢性運動パターン発生器として知られているが、複数のニューラルセルを相互に接続したネットワークとしても知られている。
このニューラルネットワークエンジン100は、神経振動子を構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造で神経振動子の特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ102によりニューラルネットワークエンジン100に設定される。
以下、このニューラルネットワークエンジン100の動作を説明する。
図11Bに示すように、通常動作モード時において、まず、加速度センサーなどの周囲環境情報がニューラルネットワークシステム1外部からの入力(Stimulus)としてニューラルネットワークエンジン100に入力される(S2401)。
次に、ニューラルネットワークエンジン100は、その周囲環境情報に対して反応(動作)、例えば姿勢制御処理を実現する反応(動作)を行い(S2402)、その反応(動作)により生成した姿勢制御パラメータをResponseとしてノイマン型マイクロプロセッサ102に出力する(S2403)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりプログラムを読み出して取得する(S2405)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)とメモリ101から取得したプログラムとを利用して逐次プログラム処理を行う(S2407)。ここでは、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)に基づき、例えばモータ制御などの動作制御を行う逐次プログラム処理を行う。
以上のようにニューラルネットワークシステム1は様々な用途のために様々なネットワーク構成情報とシナプス重み情報とが適用される。
(実施の形態4)
実施の形態2において、ニューラルプロセッシングエレメント400はデジタルパルスによって信号強度(振幅)を表現することで、一般的なデジタル回路の共存が可能となると述べた。実施の形態4では、デジタル回路の共存が可能なニューラルプロセッシングエレメント400の応用例を説明する。
図12は、デジタル回路の共存が可能なニューラルプロセッシングエレメント400の応用例を説明するための図である。なお、図6A及び図6Bと同様の要素には同一の符号を付しており、詳細な説明は省略する。
図9に示すニューラルプロセッシングエレメント400は、デジタル信号処理を実現するプロセッシングエレメント(Processing Element:PE)900と、配線スイッチ(Routing switch)901と、プロセッシングエレメント900の制御情報を格納するメモリ902と、配線スイッチ901の制御情報を格納するメモリ903と、配線904とから構成される。
図9に示すように、プロセッシングエレメント900と配線スイッチ901とは交互(チェッカー状)に配置されているため、複数の配線スイッチ901を経由することで任意のプロセッシングエレメント900同士が通信可能となる。
さらに、プロセッシングエレメント900は、複数の論理演算を行う演算器905とニューラルプロセッシングエレメント400と、マルチプレクサ908とから構成されている。プロセッシングエレメント900では、メモリ902から出力されるマルチプレクサ制御信号99によって複数の演算器905とニューラルプロセッシングエレメント400とのいずれの出力を選択するか決定することができる。
以上のように、実施の形態4に係るニューラルプロセッシングエレメント400は構成される。このような構成によって入力信号96、出力信号97は演算器905とニューラルプロセッシングエレメント400とで共用化され、配線904を増加させることなく両方の処理機能を実装することができる。
以上、本発明によれば、ニューラルネットワークシステム1をノイマン型マイクロプロセッサ102と再構成可能なニューラルネットワークエンジン100とから構成し、それらの連係動作によって例えばバックワードプロパゲーション処理及び逐次プログラム処理を実現するものである。すなわち、本発明によれば、バックワードプロパゲーション処理をノイマン型マイクロプロセッサ102によるニューラルネットワークエミュレーション処理とニューラルネットワークエンジン100による参照データ生成とによって実現することができる。
これにより従来技術では必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
また、ノイマン型マイクロプロセッサ102は通常動作時に逐次プログラム処理を行うことで、ニューラルネットワークエンジン100が不得意とする処理を補完することができる。そして、ニューラルネットワークエンジン100は、再構成可能であり、ノイマン型マイクロプロセッサ102により様々なネットワーク構造に再構成される。
以上、本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。さらに、ノイマン型マイクロプロセッサが逐次プログラム処理が可能であるので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。
なお、様々な用途として、再構成可能なニューラルネットワークの特徴を有するニューラルネットワークシステムを備えたGUIと連動したユーザーインターフェースまたは車の危険物判定・回避システムなどの用途に適用することができる。
したがって、自己学習機構のための回路資源を削減するとともに、様々な用途に適したネットワーク構造への変更を行い、かつ、逐次プログラム処理の実現を可能にすることで、ユーザーインターフェース、車の危険物判定・回避システム等のような曖昧な処理を高速に行うことができる。
本発明は、ニューラルネットワークシステムに利用でき、特に、GUIと連動したユーザーインターフェースまたは車の危険物判定及び回避システム等のような曖昧な処理を高速に行うニューラルネットワークシステムに利用できる。
1 ニューラルネットワークシステム
100 ニューラルネットワークエンジン
101、402、403、902、903 メモリ
102 ノイマン型マイクロプロセッサ
400 ニューラルプロセッシングエレメント
401、901 配線スイッチ
404、904 配線
500 シナプスユニット
501 出力生成器
600 閾値カウンタ
603、605、606 ANDゲート
607、608 ORゲート
700 レベルカウンタ
701 パルス発生器
900 プロセッシングエレメント
905 演算器
908 マルチプレクサ
本発明は、再構成可能なニューラルネットワークシステムに関する。
人物の顔認識、音声認識等の認知系信号処理を行うためにニューラルネットワークを用いた方法が広く知られている。
ニューラルネットワークは、人の脳にあるニューロンのネットワークによる信号処理システムを模倣したものであり、相互に接続されたニューロンセルが並列動作するニューラル信号処理を行う。それにより、ノイズが入ったデータ、多様な顔及び声など定式化が困難な対象に対する柔軟な判定を高速に実現することができる。ここで、ニューロンセルとは、ニューロンの仕組みをモデル化したものであり、他のニューロンセルまたは入力デバイスが接続されてニューラル信号処理を担うものである。ニューロンセルは、接続されている他のニューロンセルまたは入力デバイスの出力結果が信号として入力され、入力された各信号に対する重み情報によって特定の入力に対する動作(反応)を行う。このようにして所望の動作を得る。
図13Aは、ニューロンセルの一般的な数理モデルの概要を示す図である。この図13Aに示すニューロンセルの数理モデルは、(数1)〜(数3)に示すような数式に基づいて動作する。
Figure 2010106587
Figure 2010106587
Figure 2010106587
ここで、x1〜x6は、他のニューロンセルまたは入力デバイスからの入力信号を示している。w1〜w6は、入力信号の結合効率を示す量であり、x1〜x6に対応する重みを示している。yは、複数の入力信号x1〜x6に対して決定される1個の出力信号である。
このニューロンセルの数理モデルでは、(数2)で示されるように、複数の入力信号x1〜x6が入力されると、まずuとして入力x(ここではx1〜x6)とその入力xに対応する重みw(ここではw1〜w6)とを乗じて合計したものにオフセットTが減算される。なお、オフセットTは、ニューロンセルが入力された特定の入力に対して反応するかどうかを示す閾値に相当する。
次に、(数1)に示される活性化関数f(u)に、上記のように算出されたuを代入して得られる値がこのニューロンセルの出力となる。ここでは、(数3)で示されるシグモイド関数によって出力yのレベルが決定される。すなわち、ある値までLoレベルとなり、閾値を超えるとHiレベルとなる。
ここで、図13Bは、シグモイド関数の形状を示す図である。シグモイド関数は、図13Bに示すように、y=0とy=1とに漸近線をもち、x軸の全ての値においてyの値が0〜1の間に収束する。また、シグモイド関数は、変曲点をもち、変曲点で点対称である。したがって、この形状から、ある値までLoレベルとなり、閾値を超えるとHiレベルとなるのがわかる。
次に、図14A〜図14Dを用いて、ニューラルネットワークの代表的な構造を説明する。
図14Aは、階層型ネットワークの代表的な構造の一例を示す図である。
ここで、階層型ネットワークとは、入力層、中間層、出力層という複数のニューラル層で構成されるネットワークであり、同じニューラル層どうしのニューロンセルは互いに接続せず、異なるニューラル層どうしニューロンセルが相互に接続されている。
図14Aに示す構造は、3層のニューラル層で構成された一般的にパーセプトロンと呼ばれ、パターンマッチング処理に適した構造である。
図14Bは、相互結合型ネットワークの代表的な構造の一例を示す図である。
ここで、相互結合型ネットワークとは、階層型ネットワークのような層を構成せず、各ニューロンセルが相互に接続(結合)しているネットワークである。
図14Bに示す構造は、ニューロンセルが相互に接続されたホップフィールドネットワークと呼ばれ、ノイズが混在した不完全なデータであっても補完して記憶したパターンと対応付けられるという特徴を有する構造である。
図14C及び図14Dは、ニューラルネットワークの代表的な構造の一例を示す図である。
図14Cに示す構造は、パーセプトロンの中間層から分岐した別のニューラル層からフィードバックする構造であり、エルマンネットワークと呼ばれる。このエルマンネットワークは、過去の情報をフィードバックする再帰的な構造のため、文法等のシーケンスパターンの認識に適している。
また、図14Dに示すように、2つのニューラル層を互いにフィードバックする神経振動子(CPG:Central Pattern Generator)と呼ばれる構造も存在する。この構造は2足歩行のロボットにおける姿勢制御等に応用されている(非特許文献1参照)。
以上説明したように、ニューラルネットワークは、ネットワーク構造と重み情報との組み合わせによってその特性を示す動作が決定される。
ところで、ニューラルネットワークを実装する場合には、ソフトウェアにより実装する場合とハードウェアにより実装する場合とが存在する。
ソフトウェアによる実装では、一般的なコンピュータでニューラルネットワークのモデルをエミュレートさせる必要があるためリアルタイム処理には適さず、大量のデータベースを検索するなどの処理に用いられている(非特許文献2参照)。
それに対して、ハードウェアによる実装では、リアルタイム処理が実現できるため、画像認識システムで用いられる。以下、ニューラルネットワークのハードウェアによる実装例を示す。
図15は、ニューラルネットワークを実装したプロセッサの例である。
このプロセッサ(ZISCプロセッサと呼ばれる。)は、3層のネットワーク構造によって認識処理を行うものである(非特許文献3参照)。このプロセッサでは、所望の動作を得るために、レジスタ設定によって重み情報を設定できるだけでなく、自己学習機構によっても重み情報を設定することができる。
なお、自己学習機構の代表的なものとしては、バックワードプロパゲーションによる重み情報更新がある。バックワードプロパゲーションでは、図16A及び図16Bに示すように、理想的な出力信号である教師信号と参照データとが与えられて各ニューラル層で誤差計算を行い、誤差を最小化する重み情報に更新することにより所望の学習を実現する。ここで、図16A及び図16Bは、バックワードプロパゲーションの処理の概略を示す図である。
また、ZISCプロセッサを用いた画像認識システムが開示されている(特許文献1参照)。図17に、ZISCプロセッサを用いた画像認識システムを示す。図17に示すように、ZISCプロセッサの入力部分にデータ変換処理部があり、様々な画像データを一般化したデータに変換する。この変換処理によって、様々なデータ形式においても単一のニューラルネットワーク構造と重み情報とで処理することができる。
特開2001−014470号公報
Jiang Shan、Fumio Nagashima、"Biologically Inspired Spinal Locomotion Controller for Humanoid Robot"、第19回日本ロボット学会学術講演会、pp.517−518、2001. 福島、倉原、鳥越、他、「ニューラルネットワークを用いた内科医療診断支援システムの開発と評価」、第18回熊本県産学官技術交流会講演論文集、431. IBM ZISC036 Neurons USER’S MANUAL Version 1.2
しかしながら、上記従来の実装方式では以下のような課題がある。
すなわち、ハードウェアによる実装方式では、自己学習機構を実現するための回路資源がニューラルネットワークに必要となる。例えば図16Aに示すようにバックワードプロパゲーションを実現する場合、各ニューラル層を遡る信号線と誤差計算を行うための回路とが必要となる。さらに、ネットワーク構造が固定となっているために、適用範囲が限定されてしまう。しかしながら、ネットワーク構造に自由度を持たせる場合には、自由度に応じた自己学習機構のための回路資源が必要となり実装が困難となる。
それに対して、ソフトウェアによる実装方式では、ニューラルネットワークのモデルをソフトウェアによってエミュレートさせることで各ニューロンの反応に時間がかかるため、リアルタイム処理には適さず、その用途が限定されてしまう。
また、ニューラルネットワークの処理特性として、認知処理を得意とする一方で逐次プログラム処理を不得意とするため、その用途が限定されてしまう。
そこで、本発明は、上述の事情を鑑みてなされたものであり、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを提供することを目的とする。
上記の課題を解決するために、本発明に係るニューラルネットワークシステムは、第1及び第2の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、前記ニューラルネットワークエンジンと接続され、前記第1または第2の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、前記ノイマン型マイクロプロセッサは、前記第1の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、前記第2の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う。
より好ましくは、本発明に係るニューラルネットワークシステムは、第1及び第2の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、前記ニューラルネットワークエンジンと接続され、前記第1または第2の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、前記ニューラルネットワークエンジンは、ニューラル信号処理を実現するニューラルプロセッシングエレメントと、配線スイッチと、ニューラルプロセッシングエレメントの制御情報を格納するメモリと、配線スイッチの制御情報を格納するメモリと、配線を備え、前記ノイマン型マイクロプロセッサは、前記第1の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、前記第2の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う。
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。
ここで、前記ノイマン型マイクロプロセッサは、前記第1の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行うとしてもよい。
この構成により、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現できる。
また、上記目的を達成するために、本発明に係るニューラルネットワークシステムの動作方法は、第1及び第2の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第1または第2の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、第1の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第1連係動作ステップと、第2の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第2連係動作ステップとを含む。
以上のように、本発明では、ニューラルネットワークシステムをノイマン型マイクロプロセッサと再構成可能なニューラルネットワークエンジンとから構成し、バックワードプロパゲーション処理、逐次プログラム処理などを各々の構成要素の連係動作によって実現するものである。すなわち、本発明では例えばバックワードプロパゲーション処理をノイマン型マイクロプロセッサによるニューラルネットワークエミュレーションとニューラルネットワークエンジンによる参照データ生成によって実現する。これにより従来技術で必要であったバックワードプロパゲーション処理など自己学習機構を実現するための回路資源を削減することができる。またノイマン型マイクロプロセッサは通常動作時は逐次プログラム処理を行うので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。さらに、本発明では、ニューラルネットワークプロセッサは再構成可能であり、ノイマン型マイクロプロセッサにより様々なネットワーク構造に変更することが可能である。
本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。
図1は、実施の形態1に係るニューラルネットワークシステムの構成図である。 図2Aは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図2Bは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図3Aは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図3Bは、コンフィギュレーション動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図4Aは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図4Bは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。 図5は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。 図6Aは、実施の形態2に係るニューラルネットワークエンジンの構成図である。 図6Bは、実施の形態2に係るニューラルネットワークエンジンの構成図である。 図7は、実施の形態2に係るニューラルプロセッシングエレメント全体の構成を示す図である。 図8は、実施の形態2に係るニューラルプロセッシングエレメントを構成するシナプスユニット500の構成を示す図である。 図9は、実施の形態2に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。 図10Aは、実施の形態3に係るニューラルネットワークシステムの適用例を説明するための図である。 図10Bは、実施の形態3に係るニューラルネットワークシステムの適用例を説明するための図である。 図11Aは、実施の形態3に係るニューラルネットワークシステムの別の適用例を説明するための図である。 図11Bは、実施の形態3に係るニューラルネットワークシステムの別の適用例を説明するための図である。 図12は、実施の形態4に係るデジタル回路の共存が可能なニューラルプロセッシングエレメント400の応用例を説明するための図である。 図13Aは、ニューロンセルの一般的な数理モデルの概要を示す図である。 図13Bは、シグモイド関数の形状を示す図である。 図14Aは、階層型ネットワークの代表的な構造の一例を示す図である。 図14Bは、相互結合型ネットワークの代表的な構造の一例を示す図である。 図14Cは、ニューラルネットワークの代表的な構造の一例を示す図である。 図14Dは、ニューラルネットワークの代表的な構造の一例を示す図である。 図15は、ニューラルネットワークを実装したプロセッサの例である。 図16Aは、バックワードプロパゲーションの処理の概略を示す図である。 図16Bは、バックワードプロパゲーションの処理の概略を示す図である。 図17は、ZISCプロセッサを用いた画像認識システムを示す図である。
以下、本発明の実施の形態について図面に基づいて説明する。
(実施の形態1)
図1は、実施の形態1に係るニューラルネットワークシステムの構成図である。
図1に示すニューラルネットワークシステム1は、複数の動作モードを持つニューラルネットワークエンジン100と、メモリ101と、ノイマン型マイクロプロセッサ102とから構成されている。
ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とが複数の動作モードに応じて連係動作を行うことで所望の動作結果を得る。
ニューラルネットワークエンジン100は、ノイマン型マイクロプロセッサ102と接続されている。ニューラルネットワークエンジン100は、構成すべきネットワーク構造を示すネットワーク構成情報とそのネットワーク構造に対する重みを示すシナプス重み情報とが設定されて決定される特性を示す動作(反応)を行う。そして、ニューラルネットワークエンジン100は、ニューラルネットワークシステム1外部からの入力(Stimulus)に対して反応(動作)を行い、その結果をノイマン型マイクロプロセッサ102に出力(Response)する。
また、ニューラルネットワークエンジン100は、学習動作モードと通常動作モードとからなる通常モードとコンフィギュレーションモードとの2つのモードをもつ。ここで、通常動作モードとは、ニューラルネットワークエンジン100が通常動作を行う動作モードであり、学習動作モードとは、シナプス重み情報が再計算されるまたはネットワーク構成情報が再作成される動作モードである。コンフィギュレーションモードとは、ニューラルネットワークエンジン100に設定されているシナプス重み情報またはネットワーク構成情報が設定または更新される動作モードである。
メモリ101は、ノイマン型マイクロプロセッサ102とデータ線及びアドレス線で接続されており、ネットワーク構成情報とシナプス重み情報とが格納されている。また、メモリ101は、ノイマン型マイクロプロセッサ102が実行するためのプログラムが格納されている。
ノイマン型マイクロプロセッサ102は、メモリ101とデータ線及びアドレス線で接続されている、例えばCPU(Central Processing Unit)である。また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100と接続されている。
また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードに応じた連係動作を行う。また、ノイマン型マイクロプロセッサ102は、所定の動作モードではニューラルネットワークシステム1の外部からの入力(Stimulus)がニューラルネットワークエンジン100とともに入力される。
例えば、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100が学習動作モードである場合には、ニューラルネットワークシステム1の外部からの入力(Stimulus)がニューラルネットワークエンジン100とともに入力される。そして、ネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン100からの出力(Response)とを用いて、ニューラルネットワークエンジン100の誤差伝播処理をエミュレーションするプログラムを実行することにより、ニューラルネットワークエンジン100におけるシナプス重み情報の再計算またはネットワーク構成情報の再作成を行う。
また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100がコンフィギュレーションモードである場合には、メモリ101に格納されているネットワーク構成情報とシナプス重み情報とを読み出して、ニューラルネットワークエンジン100に出力する。それによりノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100のネットワーク構成情報とシナプス重み情報とを設定または更新する。
また、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100が通常動作モードである場合には、ニューラルネットワークエンジン100からの出力(Response)とメモリ101に格納されているプログラムとを利用して逐次プログラム処理を行う。なお、ニューラルネットワークエンジン100の動作モードは、ノイマン型マイクロプロセッサ102により変更することができるようになっている。
以上のように、ニューラルネットワークシステム1は構成され、動作モードに応じた連係動作によって所望の効果を得ることができる。
次に、ニューラルネットワークシステム1の動作について、図を用いて説明する。
図2A及び図2Bは、学習動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
まず、学習動作モード時において、ニューラルネットワークシステム1外部からの入力(Stimulus)がニューラルネットワークエンジン100とノイマン型マイクロプロセッサ102とに入力される(S201)。
次に、ニューラルネットワークエンジン100は、その外部からの入力(Stimulus)に対して反応(動作)し、その反応(動作)により生成した結果をノイマン型マイクロプロセッサ102に出力する(S203)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりニューラルネットワークエンジン100のネットワーク構成情報、及び、シナプス重み情報を読み出して取得する(S205)。
次に、ノイマン型マイクロプロセッサ102は、取得したネットワーク構成情報及びシナプス重み情報と、ニューラルネットワークエンジン100からの出力(Response)とを用いて誤差伝播処理をエミュレーションするプログラムを実行することによって、ニューラルネットワークエンジン100におけるシナプス重みを再計算する(S207)。
次に、ノイマン型マイクロプロセッサ102は、S205での再計算後、再計算した新しいシナプス重み情報をメモリ101に格納する(S209)。
以上のようにして、ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とが学習動作モードに応じた連係動作を行う。そして、ノイマン型マイクロプロセッサ102はニューラルネットワークエンジン100の学習を補完する。
なお、ノイマン型マイクロプロセッサ102は、誤差伝播処理をエミュレーションするプログラムを実行する場合、シナプス重みを再計算だけに限定されず、ニューラルネットワーク構成の最適化を行い、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ101に格納または反映するとしてもよい。その場合には、シナプス重み情報とネットワーク構成情報との双方を更新することによる更なる学習効果の向上が期待できる。
図3A及び図3Bは、コンフィギュレーションモード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
まず、コンフィギュレーションモード時において、ノイマン型マイクロプロセッサ102は、メモリ101に格納されているネットワーク構成情報及びシナプス重み情報を読み出して取得する(S301)。
次に、ノイマン型マイクロプロセッサ102は、コンフィギュレーションデータとしてネットワーク構成情報及びシナプス重み情報をニューラルネットワークエンジン100に出力(Configuration)し(S303)、ニューラルネットワークエンジン100のネットワーク構成情報及びシナプス重み情報を設定または更新する(S305)。
以上のようにして、ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とがコンフィギュレーションモードに応じた連係動作を行う。
なお、ニューラルネットワークエンジン100に設定されるネットワーク構成情報及びシナプス重み情報は、図2A及び図2Bで説明した学習動作モードで作成または更新されたものだけではない。例えば、他の外部記憶装置から転送されたものであってもよく、その場合には、メモリ101の容量に制限されずにニューラルネットワークエンジン100の動作機能を実現することができる。
また、ネットワーク構成情報及びシナプス重み情報の複数セットを、メモリ101に格納されるとしてもよい。その場合、ニューラルネットワークシステム1では、各々のセットに対して学習動作モードまたはコンフィギュレーションモードに応じた連係動作を行うことができる。ニューラルネットワークエンジン100は、複数のネットワーク構成情報及びシナプス重み情報が設定されるだけでなく、その複数のネットワーク構成情報及びシナプス重み情報に対する学習をすることができる。
図4A及び図4Bは、通常動作モード時におけるニューラルネットワークシステムの連係動作を説明するための図である。
まず、通常動作モード時において、ニューラルネットワークシステム1外部からの入力(Stimulus)がニューラルネットワークエンジン100に入力される(S401)。
次に、ニューラルネットワークエンジン100は、ニューラルネットワークシステム1外部からの入力(Stimulus)に対して反応(動作)し、その反応(動作)により生成した結果をノイマン型マイクロプロセッサ102に出力する(S403)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりプログラムを読み出して取得する(S405)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)とメモリ101から取得したプログラムとを利用して逐次プログラム処理を行う(S407)。
以上のようにして、ニューラルネットワークシステム1では、ニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102とが通常動作モードに応じた連係動作を行う。なお、この連係動作により、例えばユーザーインターフェース処理における画像認識結果を用いたメニュー表示プログラムの実行などの処理が実現できる。また、ニューラルネットワーク構成情報及びシナプス重み情報の複数のセットをメモリ101に格納されるとしてもよい。その場合、ニューラルネットワークシステム1では、時分割に処理または動作モードを切り替えて連係動作を行うといった機能も実現できる。
次に、上述した各連係動作を決定する処理について説明する。
図5は、ノイマン型マイクロプロセッサが各連係動作を決定するための処理を説明するためのフローチャートである。
まず、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードをコンフィギュレーションモードに変更し(S501)、ニューラルネットワークエンジン100のネットワーク構成情報及びシナプス重み情報を設定する(S502)。なお、このS502の動作は、図3A及び図3Bで説明した動作に該当する。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードを通常モードに変更する(S503)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の動作モードが学習動作モードであるか通常動作モードであるかの判定を行う(S504)。
ニューラルネットワークエンジン100の動作モードが通常動作モードであると判定された場合は(S504のNOの場合)、ノイマン型マイクロプロセッサ102は、通常プログラムを実行する(S505)。このS505は、図4A及び図4Bの動作に該当する。
一方、ニューラルネットワークエンジン100の動作モードが学習動作モードであると判定された場合(S504のYESの場合)、ノイマン型マイクロプロセッサ102は、誤差伝播処理をエミュレーションするプログラムを実行し(S506)、シナプス重み情報を再計算する(S507)。
そして、ノイマン型マイクロプロセッサ102は、再計算したシナプス重み情報をメモリ101へ格納する。
なお、ノイマン型マイクロプロセッサ102は、S506においてシナプス重みの再計算を行うだけでなくニューラルネットワーク構成の最適化を行い(S507)、得られた最適化結果から再作成した新たなネットワーク構成情報をメモリ101に反映するとしてもよい(S508)。その場合、シナプス重み情報とネットワーク構成情報と双方を更新することによって更なる学習効果の向上が期待できる。
なお、上述したS506、S507及びS508は図3A及び図3Bの動作に該当する。
以上のようにして、ノイマン型マイクロプロセッサ102は各連係動作を決定し、決定した連係動作を実行する。
以上、本実施の形態1では、ノイマン型マイクロプロセッサ102は、通常動作モード時には通常の逐次プログラムを処理し、学習動作モード時には、ニューラルネットワークエンジン100が学習する時の補助手段として機能する。そのため、従来技術の図16A及び図16Bに見られるようなバックワードプロパゲーション処理の実現すなわち自己学習機構に必要とされた各ニューラル層を遡る信号線と誤差計算を行うための回路とが不要となる。すなわち、本実施の形態1では、従来技術で必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
また、ノイマン型マイクロプロセッサ102は、通常動作モード時には逐次プログラムの処理を行うことで、ニューラルネットワークエンジン100が不得意とする処理を補完することができる。そして、上述したように、ニューラルネットワークエンジン100は再構成可能であり、コンフィギュレーションモード時にネットワーク構成情報及びシナプス重み情報が設定されることによって様々なネットワーク構造に変更することができる。
(実施の形態2)
次に、実施の形態2では、ニューラルネットワークエンジン100の構成の具体例について説明する。
図6A及び図6Bは、実施の形態2に係るニューラルネットワークエンジンの構成図である。
図6A及び図6Bに示す実施の形態2に係るニューラルネットワークエンジン100は、ニューラル信号処理を実現するニューラルプロセッシングエレメント(Neural Processing Element:NuPE)400と、配線スイッチ(Routing switch)401と、ニューラルプロセッシングエレメント400の制御情報を格納するメモリ402と、配線スイッチ401の制御情報を格納するメモリ403と、配線404とから構成される。
図6Bに示すように、ニューラルプロセッシングエレメント400と配線スイッチ401とは、交互(チェッカー状)に配置されて配線404で接続されている。そのため、任意のニューラルプロセッシングエレメント400同士は、複数の配線スイッチ401を経由することで通信可能となっている。
図7、図8及び図9は、ニューラルプロセッシングエレメントの構成図である。図7は、実施の形態2に係るニューラルプロセッシングエレメント全体の構成を示す図である。
図7に示すように、ニューラルプロセッシングエレメント400は、シナプスに相当するシナプスユニット500と、出力生成器501と、シナプス重み情報56を格納するメモリ402とから構成される。
シナプスユニット500は、入力信号55に対する判定を行い、レベル増加信号57またはレベル減少信号58を出力生成器501に出力する。また、シナプスユニット500は、メモリ402に格納されているシナプス重み情報56と出力生成器501が出力したニューラル処理の結果59が入力される。
出力生成器501は、シナプスユニット500からレベル増加信号57またはレベル減少信号58が入力され、ニューラル処理の結果59を出力する。
以上のようにして、ニューラルプロセッシングエレメント400は構成される。なお、本実施の形態2におけるニューラルプロセッシングエレメント400の特徴は、一つの入力(シンボル)に対して複数のパルスで表現すること、すなわち一つの入力信号55を複数のパルス信号(I1、I2、I3・・)として取り扱うことにある。
図8は、実施の形態2に係るニューラルプロセッシングエレメントを構成するシナプスユニットの構成を示す図である。
図8に示すように、シナプスユニット500は、閾値カウンタ600と、ANDゲート603、ANDゲート605、ANDゲート606、ORゲート607、及びORゲート608の論理ゲートとから構成される。
閾値カウンタ600は、カウンタの値の初期値として重み(シナプス重み情報)の絶対値62が格納されており、入力信号55のパルス信号を受信するたびにカウントダウンし、カウンタの値が0になると0検出信号63をHiにする。すなわち、閾値カウンタ600に所望のパルス数が入力されたときに、ANDゲート603に0検出信号63が入力される。そして、ANDゲート603は、0検出信号63が入力されたときに、同時に入力されているパルス信号をANDゲート603以降すなわちANDゲート605またはANDゲート606に伝播する。
ここで、入力(シンボル)を表現するパルス数を信号強度(振幅)と見なすと、上述の閾値カウンタ600及びANDゲート603の動作は、信号強度(振幅)がある閾値以上になると反応するという動作と等価である。このようにして閾値カウンタ600及びANDゲート603は、シナプスの重み演算を実現する。
次に、ANDゲート605及び606は、ANDゲート603より伝播したパルス信号が入力される。これらANDゲート605及び606には重みの符号が入力されており、重みの符号が正の時には、ANDゲート605以降にパルス信号を伝播し、重みの符号が負の時にはANDゲート606以降にパルス信号を伝播する。すなわちANDゲート605の出力は正の重みがかけられたパルス信号となり、ANDゲート606の出力は負の重みがかけられたパルス信号となる。そして、それぞれのパルス信号は、ORゲート607及び608によってまとめられ、正の重みがかけられたパルス信号は振幅レベル増加パルス信号からなるレベル増加信号57、負の重みがかけられたパルス信号は振幅レベル減少パルス信号からなるレベル減少信号58として出力される。
このように入力信号または出力信号を複数のパルス信号で振幅レベルを表現することによってシナプスユニット500を構成する配線数を削減することが可能となる。
また、上述したパルス信号は、デジタル論理回路で扱うことになるため、アナログ回路で扱う場合と比較して製造ばらつきによる影響を最小限に抑えることができるだけでなく、また一般的なデジタル回路との共存が可能となる。
図9は、実施の形態2に係るニューラルプロセッシングエレメントを構成する出力生成器の構成を示す図である。
図9に示すように出力生成器501は、レベルカウンタ700とパルス発生器701とで構成される。
レベルカウンタ700は、シナプスユニット500から出力されたレベル増加信号57及びレベル減少信号58が入力される。レベルカウンタ700は、レベル減少信号58の振幅レベル減少パルス信号が入力されるとカウンタの値は1減少し、レベル増加信号57の振幅レベル増加パルス信号が入力されるとカウンタの値は1増加する。そして、カウンタが規定の値になると信号73がアクティブとなりパルス発生器701に出力される。
パルス発生器701は、レベルカウンタ700より信号73が入力されるとパルスを発生する。
以上のように、出力生成器501は構成される。
このように、シナプスユニット500と出力生成器501との連係動作によって、複数のパルス信号によって信号強度(振幅)が表現された信号を入力し、重み情報を乗じて合計した値が規定の値以上であればパルスを発生するという図13Aで示した数理モデルを簡略した形で実現することができる。
(実施の形態3)
実施の形態3では、上述したニューラルネットワークシステム1の適用例について説明する。
図10A及び図10Bは、実施の形態3に係るニューラルネットワークシステムの適用例を説明するための図である。ここでは、特徴判定を実現する場合のニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102との処理例について説明する。
図10Aに示すニューラルネットワークエンジン100は、ガボールフィルタを構成している。ここで、ガボールフィルタとは脳の初期視覚野(V1)のモデルとして知られているが、強力な特徴抽出モデルとしても有効であることが知られている。
このニューラルネットワークエンジン100は、ガボールフィルタを構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造でガボールフィルタの特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ102により設定される。
以下、このニューラルネットワークエンジン100の動作を説明する。
図10Bに示すように、通常動作モード時において、まず、例えば画像データがニューラルネットワークシステム1外部からの入力(Stimulus)としてニューラルネットワークエンジン100に入力される(S1401)。
次に、ニューラルネットワークエンジン100は、その画像データに対して反応(動作)、例えば画像データ中の物体の特徴抽出または顔特徴判定を実現する反応(動作)を行い(S1402)、その反応(動作)により生成した特徴抽出結果をResponseとしてノイマン型マイクロプロセッサ102に出力する(S1403)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりプログラムを読み出して取得する(S1405)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)とメモリ101から取得したプログラムとを利用して逐次プログラム処理を行う(S1407)。ここでは、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)に基づき、例えばGUI更新、危険判定、人物データベース検索など画像描画または条件判定などを行う逐次プログラム処理を行う。
図11A及び図10Bは、実施の形態3に係るニューラルネットワークシステムの別の適用例を説明するための図である。ここでは、動作制御を実現する場合のニューラルネットワークエンジン100と、ノイマン型マイクロプロセッサ102との処理例について説明する。
図11Aに示すニューラルネットワークエンジン100は、図14Dに示した神経振動子(CPG)を構成している。ここで、神経振動子(CPG)とは生物の歩行制御機構における歩行リズムを支配する脊髄の中枢性運動パターン発生器として知られているが、複数のニューラルセルを相互に接続したネットワークとしても知られている。
このニューラルネットワークエンジン100は、神経振動子を構成するネットワーク構造を示すネットワーク構成情報と、そのネットワーク構造で神経振動子の特性を示すシナプス重み情報とがノイマン型マイクロプロセッサ102によりニューラルネットワークエンジン100に設定される。
以下、このニューラルネットワークエンジン100の動作を説明する。
図11Bに示すように、通常動作モード時において、まず、加速度センサーなどの周囲環境情報がニューラルネットワークシステム1外部からの入力(Stimulus)としてニューラルネットワークエンジン100に入力される(S2401)。
次に、ニューラルネットワークエンジン100は、その周囲環境情報に対して反応(動作)、例えば姿勢制御処理を実現する反応(動作)を行い(S2402)、その反応(動作)により生成した姿勢制御パラメータをResponseとしてノイマン型マイクロプロセッサ102に出力する(S2403)。
次に、ノイマン型マイクロプロセッサ102は、メモリ101よりプログラムを読み出して取得する(S2405)。
次に、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)とメモリ101から取得したプログラムとを利用して逐次プログラム処理を行う(S2407)。ここでは、ノイマン型マイクロプロセッサ102は、ニューラルネットワークエンジン100の出力(Response)に基づき、例えばモータ制御などの動作制御を行う逐次プログラム処理を行う。
以上のようにニューラルネットワークシステム1は様々な用途のために様々なネットワーク構成情報とシナプス重み情報とが適用される。
(実施の形態4)
実施の形態2において、ニューラルプロセッシングエレメント400はデジタルパルスによって信号強度(振幅)を表現することで、一般的なデジタル回路の共存が可能となると述べた。実施の形態4では、デジタル回路の共存が可能なニューラルプロセッシングエレメント400の応用例を説明する。
図12は、デジタル回路の共存が可能なニューラルプロセッシングエレメント400の応用例を説明するための図である。なお、図6A及び図6Bと同様の要素には同一の符号を付しており、詳細な説明は省略する。
図9に示すニューラルプロセッシングエレメント400は、デジタル信号処理を実現するプロセッシングエレメント(Processing Element:PE)900と、配線スイッチ(Routing switch)901と、プロセッシングエレメント900の制御情報を格納するメモリ902と、配線スイッチ901の制御情報を格納するメモリ903と、配線904とから構成される。
図9に示すように、プロセッシングエレメント900と配線スイッチ901とは交互(チェッカー状)に配置されているため、複数の配線スイッチ901を経由することで任意のプロセッシングエレメント900同士が通信可能となる。
さらに、プロセッシングエレメント900は、複数の論理演算を行う演算器905とニューラルプロセッシングエレメント400と、マルチプレクサ908とから構成されている。プロセッシングエレメント900では、メモリ902から出力されるマルチプレクサ制御信号99によって複数の演算器905とニューラルプロセッシングエレメント400とのいずれの出力を選択するか決定することができる。
以上のように、実施の形態4に係るニューラルプロセッシングエレメント400は構成される。このような構成によって入力信号96、出力信号97は演算器905とニューラルプロセッシングエレメント400とで共用化され、配線904を増加させることなく両方の処理機能を実装することができる。
以上、本発明によれば、ニューラルネットワークシステム1をノイマン型マイクロプロセッサ102と再構成可能なニューラルネットワークエンジン100とから構成し、それらの連係動作によって例えばバックワードプロパゲーション処理及び逐次プログラム処理を実現するものである。すなわち、本発明によれば、バックワードプロパゲーション処理をノイマン型マイクロプロセッサ102によるニューラルネットワークエミュレーション処理とニューラルネットワークエンジン100による参照データ生成とによって実現することができる。
これにより従来技術では必要であったバックワードプロパゲーション処理などの自己学習機構のための回路資源を削減することができる。
また、ノイマン型マイクロプロセッサ102は通常動作時に逐次プログラム処理を行うことで、ニューラルネットワークエンジン100が不得意とする処理を補完することができる。そして、ニューラルネットワークエンジン100は、再構成可能であり、ノイマン型マイクロプロセッサ102により様々なネットワーク構造に再構成される。
以上、本発明によれば、自己学習機構を実現するための回路資源の削減とともに、様々な用途に適したネットワーク構造に再構成することが可能なニューラルネットワークシステムを実現することができる。さらに、ノイマン型マイクロプロセッサが逐次プログラム処理が可能であるので、ニューラルネットワークエンジンが不得意とする処理を補完することができる。
なお、様々な用途として、再構成可能なニューラルネットワークの特徴を有するニューラルネットワークシステムを備えたGUIと連動したユーザーインターフェースまたは車の危険物判定・回避システムなどの用途に適用することができる。
したがって、自己学習機構のための回路資源を削減するとともに、様々な用途に適したネットワーク構造への変更を行い、かつ、逐次プログラム処理の実現を可能にすることで、ユーザーインターフェース、車の危険物判定・回避システム等のような曖昧な処理を高速に行うことができる。
本発明は、ニューラルネットワークシステムに利用でき、特に、GUIと連動したユーザーインターフェースまたは車の危険物判定及び回避システム等のような曖昧な処理を高速に行うニューラルネットワークシステムに利用できる。
1 ニューラルネットワークシステム
100 ニューラルネットワークエンジン
101、402、403、902、903 メモリ
102 ノイマン型マイクロプロセッサ
400 ニューラルプロセッシングエレメント
401、901 配線スイッチ
404、904 配線
500 シナプスユニット
501 出力生成器
600 閾値カウンタ
603、605、606 ANDゲート
607、608 ORゲート
700 レベルカウンタ
701 パルス発生器
900 プロセッシングエレメント
905 演算器
908 マルチプレクサ

Claims (11)

  1. 第1及び第2の動作モードを持ち、構成すべきネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造に対する重みを示す重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、
    前記ニューラルネットワークエンジンと接続され、前記第1または第2の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備え、
    前記ノイマン型マイクロプロセッサは、
    前記第1の動作モードに応じた連係動作として、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行い、
    前記第2の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンに設定されている前記ネットワーク構成情報または前記重み情報の設定または更新を行う
    ニューラルネットワークシステム。
  2. 前記ノイマン型マイクロプロセッサは、
    前記第1の動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの誤差伝播処理をエミュレーションするプログラムを実行することにより、前記重み情報の再計算または前記ネットワーク構成情報の再作成を行う
    請求項1に記載のニューラルネットワークシステム。
  3. 前記ニューラルネットワークエンジンは、
    ニューラル信号処理を行う複数のニューラルプロセッシングエレメントと、
    対応する前記ニューラルプロセッシングエレメントの制御情報を格納する複数のメモリと、
    前記複数のニューラルプロセッシングエレメントと交互に配列されている複数の配線スイッチと、
    前記複数のニューラルプロセッシングエレメントと前記複数の配線スイッチとを電気的に接続する配線と、
    対応する前記配線スイッチの制御情報を格納する複数のメモリとを備える
    請求項1または2に記載のニューラルネットワークシステム。
  4. 前記ニューラルプロセッシングエレメントは、入力信号として複数のパルス信号を取得する
    請求項3に記載のニューラルネットワークシステム。
  5. ニューラルネットワークエンジンは、さらに、
    論理演算を行う演算器と、
    前記ニューラルプロセッシングエレメントの出力と前記演算器の出力とのいずれかを選択するマルチプレクサとを備える
    請求項4に記載のニューラルネットワークシステム。
  6. 前記ニューラルネットワークエンジンは、
    ガボールフィルタを構成するネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造で前記ガボールフィルタの特性を示す重み情報とが設定され、
    前記ノイマン型マイクロプロセッサは、前記第1及び第2と異なる動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの動作により出力された出力結果に基づいて逐次プログラム処理を行う
    請求項1または2に記載のニューラルネットワークシステム。
  7. 前記ニューラルネットワークエンジンは、
    神経振動子を構成するネットワーク構造を示すネットワーク構成情報と当該ネットワーク構造で前記神経振動子の特性を示す重み情報とが設定され、
    前記ノイマン型マイクロプロセッサは、前記第1及び第2と異なる動作モードに応じた連係動作として、前記ニューラルネットワークエンジンの動作により出力された出力結果に基づき逐次プログラム処理を行う
    請求項1または2に記載のニューラルネットワークシステム。
  8. 第1及び第2の動作モードを持ち、ネットワーク構成情報と当該ネットワーク構造に対する重み情報とが設定されることにより決定される特性を示す動作を行うニューラルネットワークエンジンと、ニューラルネットワークエンジンと接続され、第1または第2の動作モードに応じた連係動作を前記ニューラルネットワークエンジンと行うノイマン型マイクロプロセッサとを備えるニューラルネットワークシステムのノイマン型マイクロプロセッサは、
    第1の動作モードに応じた連係動作として、重み情報の再計算またはネットワーク構成情報の再作成を行う第1連係動作ステップと、
    第2の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う第2連係動作ステップとを含む
    ニューラルネットワークシステムの動作方法。
  9. 前記第2連係動作ステップは、
    ノイマン型マイクロプロセッサが前記ニューラルネットワークエンジンの動作モードを前記第2の動作モードに変更する第1動作モード変更ステップと、
    前記第2の動作モードに応じた連係動作として、ニューラルネットワークエンジンに設定されているネットワーク構成情報もしくは重み情報の設定または更新を行う設定更新ステップと、
    前記ニューラルネットワークエンジンの動作モードを前記第2とは別の動作モードに変更する第2動作モード変更ステップとを含む
    請求項8に記載のニューラルネットワークシステムの動作方法。
  10. さらに、前記ノイマン型マイクロプロセッサにより前記ニューラルネットワークエンジンの動作モードが前記第1の動作モードであるかを判定する判定ステップを含み、
    前記第1連係動作ステップは、
    前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第1の動作モードであると判定された場合に、第1の動作モードに応じた連係動作として、ノイマン型マイクロプロセッサが誤差伝播処理を行うエミュレーションを実行するエミュレーション実行ステップと、
    前記実行ステップの結果から、重み情報の再計算または前記ネットワーク構成情報の再作成を行う再作成ステップとを含む
    請求項8に記載のニューラルネットワークシステムの動作方法。
  11. 前記判定ステップで前記ニューラルネットワークエンジンの動作モードが前記第1及び第2と異なる動作モードであると判定された場合に、さらに、前記ノイマン型マイクロプロセッサがプログラムを実行するプログラム実行ステップとを含む
    請求項10に記載のニューラルネットワークシステムの動作方法。
JP2011504616A 2009-03-18 2009-09-10 ニューラルネットワークシステム Pending JPWO2010106587A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009066925 2009-03-18
JP2009066925 2009-03-18
PCT/JP2009/004483 WO2010106587A1 (ja) 2009-03-18 2009-09-10 ニューラルネットワークシステム

Publications (1)

Publication Number Publication Date
JPWO2010106587A1 true JPWO2010106587A1 (ja) 2012-09-13

Family

ID=42739261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011504616A Pending JPWO2010106587A1 (ja) 2009-03-18 2009-09-10 ニューラルネットワークシステム

Country Status (3)

Country Link
US (1) US8694451B2 (ja)
JP (1) JPWO2010106587A1 (ja)
WO (1) WO2010106587A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9296102B2 (en) * 2012-01-11 2016-03-29 Technion Research And Development Foundation Ltd. Robot, device and a method for central pattern generator(CPG) based control of a movement of the robot
US9406016B2 (en) * 2012-10-23 2016-08-02 Icf International Method and apparatus for monitoring network traffic
US9753959B2 (en) 2013-10-16 2017-09-05 University Of Tennessee Research Foundation Method and apparatus for constructing a neuroscience-inspired artificial neural network with visualization of neural pathways
US11170294B2 (en) 2016-01-07 2021-11-09 Intel Corporation Hardware accelerated machine learning
CN105976022B (zh) * 2016-04-27 2019-04-16 清华大学 电路结构、人工神经网络及用电路结构模拟突触的方法
US10817802B2 (en) 2016-05-07 2020-10-27 Intel Corporation Apparatus for hardware accelerated machine learning
US11120329B2 (en) * 2016-05-07 2021-09-14 Intel Corporation Multicast network and memory transfer optimizations for neural network hardware acceleration
EP3460613B1 (en) * 2016-06-08 2020-10-07 Uisee Technologies (Beijing) Ltd Speed planning method and apparatus and calculating apparatus for automatic driving of vehicle
CN105842598A (zh) * 2016-06-14 2016-08-10 国家电网公司 交联聚乙烯电缆寿命检测方法
JP6603182B2 (ja) * 2016-07-22 2019-11-06 ファナック株式会社 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体
US11222263B2 (en) 2016-07-28 2022-01-11 Samsung Electronics Co., Ltd. Neural network method and apparatus
JP2018060268A (ja) * 2016-10-03 2018-04-12 株式会社日立製作所 認識装置および学習システム
JP7032125B2 (ja) * 2016-12-28 2022-03-08 株式会社半導体エネルギー研究所 半導体装置、及び該半導体装置を有する電子機器
US20190057715A1 (en) * 2017-08-15 2019-02-21 Pointr Data Inc. Deep neural network of multiple audio streams for location determination and environment monitoring
FR3084765B1 (fr) * 2018-08-01 2020-09-04 Commissariat Energie Atomique Neurone artificiel programmable et procede de programmation associe
WO2020034733A1 (zh) * 2018-08-13 2020-02-20 北京市商汤科技开发有限公司 身份认证方法和装置、电子设备和存储介质
KR20200046188A (ko) 2018-10-19 2020-05-07 삼성전자주식회사 인공 지능 모델을 재구성하기 위한 전자 장치 및 그의 제어 방법
US11631000B2 (en) 2019-12-31 2023-04-18 X Development Llc Training artificial neural networks based on synaptic connectivity graphs
US11593627B2 (en) 2019-12-31 2023-02-28 X Development Llc Artificial neural network architectures based on synaptic connectivity graphs
US11593617B2 (en) 2019-12-31 2023-02-28 X Development Llc Reservoir computing neural networks based on synaptic connectivity graphs
US11568201B2 (en) * 2019-12-31 2023-01-31 X Development Llc Predicting neuron types based on synaptic connectivity graphs
US11625611B2 (en) 2019-12-31 2023-04-11 X Development Llc Training artificial neural networks based on synaptic connectivity graphs
US11620487B2 (en) 2019-12-31 2023-04-04 X Development Llc Neural architecture search based on synaptic connectivity graphs

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01237754A (ja) * 1987-12-23 1989-09-22 Philips Gloeilampenfab:Nv 人工神経回路網
JPH0394364A (ja) * 1989-09-07 1991-04-19 Matsushita Electric Ind Co Ltd ニューラルネットワーク
JPH0561843A (ja) * 1991-05-15 1993-03-12 Wacom Co Ltd ニユーラルネツトワーク装置
JPH06195322A (ja) * 1992-10-29 1994-07-15 Hitachi Ltd 汎用型ニューロコンピュータとして用いられる情報処理装置
JPH07302292A (ja) * 1994-05-09 1995-11-14 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットワーク回路の制御装置
JP2000035955A (ja) * 1998-07-17 2000-02-02 Toshiba Mach Co Ltd 階層型ニューラルネットワークの構成方法
JP2002358503A (ja) * 2001-05-31 2002-12-13 Canon Inc 信号処理回路及びパターン認識装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991019267A1 (en) * 1990-06-06 1991-12-12 Hughes Aircraft Company Neural network processor
US5142612A (en) * 1990-08-03 1992-08-25 E. I. Du Pont De Nemours & Co. (Inc.) Computer neural network supervisory process control system and method
US5649070A (en) 1995-02-17 1997-07-15 International Business Machines Corporation Learning system with prototype replacement
US6332137B1 (en) 1999-02-11 2001-12-18 Toshikazu Hori Parallel associative learning memory for a standalone hardwired recognition system
JP2002358523A (ja) 2001-05-31 2002-12-13 Canon Inc パターン認識処理装置及びその方法、画像入力装置
US7088860B2 (en) 2001-03-28 2006-08-08 Canon Kabushiki Kaisha Dynamically reconfigurable signal processing circuit, pattern recognition apparatus, and image processing apparatus
US7293002B2 (en) 2001-06-19 2007-11-06 Ohio University Self-organizing data driven learning hardware with local interconnections
US20060112028A1 (en) * 2004-11-24 2006-05-25 Weimin Xiao Neural Network and Method of Training

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01237754A (ja) * 1987-12-23 1989-09-22 Philips Gloeilampenfab:Nv 人工神経回路網
JPH0394364A (ja) * 1989-09-07 1991-04-19 Matsushita Electric Ind Co Ltd ニューラルネットワーク
JPH0561843A (ja) * 1991-05-15 1993-03-12 Wacom Co Ltd ニユーラルネツトワーク装置
JPH06195322A (ja) * 1992-10-29 1994-07-15 Hitachi Ltd 汎用型ニューロコンピュータとして用いられる情報処理装置
JPH07302292A (ja) * 1994-05-09 1995-11-14 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットワーク回路の制御装置
JP2000035955A (ja) * 1998-07-17 2000-02-02 Toshiba Mach Co Ltd 階層型ニューラルネットワークの構成方法
JP2002358503A (ja) * 2001-05-31 2002-12-13 Canon Inc 信号処理回路及びパターン認識装置

Also Published As

Publication number Publication date
WO2010106587A1 (ja) 2010-09-23
US8694451B2 (en) 2014-04-08
US20120005141A1 (en) 2012-01-05

Similar Documents

Publication Publication Date Title
WO2010106587A1 (ja) ニューラルネットワークシステム
US9189730B1 (en) Modulated stochasticity spiking neuron network controller apparatus and methods
US9367798B2 (en) Spiking neuron network adaptive control apparatus and methods
CN107992486A (zh) 一种信息处理方法及相关产品
WO2022134391A1 (zh) 融合神经元模型、神经网络结构及训练、推理方法、存储介质和设备
JP7399517B2 (ja) メモリスタに基づくニューラルネットワークの並列加速方法およびプロセッサ、装置
US20130325774A1 (en) Learning stochastic apparatus and methods
KR102032146B1 (ko) 소자 결점을 보완하기 위한 구간 선형 정류 유닛을 사용하는 인공신경망 시스템
Javanshir et al. Advancements in algorithms and neuromorphic hardware for spiking neural networks
Roska Computational and computer complexity of analogic cellular wave computers
WO2014018800A1 (en) Apparatus and methods for generalized state-dependent learning in spiking neuron networks
WO1993008538A1 (en) Processor for neural network
CN108304865A (zh) 一种基于循环神经网络的图节点分类方法
WO2023246819A1 (zh) 一种模型训练方法及相关设备
CN114372568B (zh) 类脑芯片及电子设备
Pham et al. A review of SNN implementation on FPGA
Kujala et al. Cognitive mimetics for designing intelligent technologies
US11809370B2 (en) Reservoir computing data flow processor
Reiter et al. Neuromorphic processing and sensing: Evolutionary progression of ai to spiking
Gupta et al. Neuromorphic time-multiplexed reservoir computing with on-the-fly weight generation for edge devices
El Yamani et al. A two-group epidemiological model: Stability analysis and numerical simulation using neural networks
Kaneko et al. An FPGA accelerator for embedded microcontrollers implementing a ternarized backpropagation algorithm
Dawwd et al. A reconfigurable interconnected filter for face recognition based on convolution neural network
Jain et al. A neuro-symbolic approach for multimodal reference expression comprehension
JP3523325B2 (ja) ニューラルネットワーク及びこれを用いた信号処理装置、自律システム、自律型ロボット並びに移動システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130813