(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】演算装置、ニューラルネットワークシステム、ニューロンモデル装置、演算方法およびプログラム
(51)【国際特許分類】
G06N 3/049 20230101AFI20241119BHJP
【FI】
G06N3/049
(21)【出願番号】P 2023539531
(86)(22)【出願日】2021-08-06
(86)【国際出願番号】 JP2021029277
(87)【国際公開番号】W WO2023013018
(87)【国際公開日】2023-02-09
【審査請求日】2024-02-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】酒見 悠介
(72)【発明者】
【氏名】細見 岳生
【審査官】佐藤 直樹
(56)【参考文献】
【文献】国際公開第2013/111200(WO,A1)
【文献】宮田和彦 ほか,走査型ニユーラルネットワークによる不特定話者音声認識,日本音響学会平成5年度春季研究発表会講演論文集,-1-,社団法人日本音響学会,1999年09月13日,p.119-120
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/049
(57)【特許請求の範囲】
【請求項1】
スパイクを受信する入力時間区間と、発火してスパイクを送信する出力時間区間とが区分されていて、前記出力時間区間内で発火して、前記入力時間区間内の発火が制限されたニューロンモデル
を備える演算装置。
【請求項2】
前記ニューロンモデルが前記出力時間区間内において発火する発火時刻は、前記入力時間区間の最後の時刻における前記ニューロンモデルの膜電位の関数である、
請求項1に記載の演算装置。
【請求項3】
前記ニューロンモデルは、前記入力時間区間の最後の時刻における前記ニューロンモデルの膜電位が予め定められた範囲外である場合の発火を制限する、
請求項2に記載の演算装置。
【請求項4】
前記ニューロンモデルは、
前記出力時間区間内における前記ニューロンモデルの膜電位が前記ニューロンモデルにそれぞれ固有の傾きによって増加するように形成されている、
請求項1に記載の演算装置。
【請求項5】
前記ニューロンモデルは、
前記出力時間区間の後縁で前記ニューロンモデルの膜電位が所定の条件を満たす場合に強制発火するか、又は同場合に発火しないように形成されている、
請求項4に記載の演算装置。
【請求項6】
前記ニューロンモデルは、
前記出力時間区間内において前記ニューロンモデルの膜電位が所定の条件を満たす場合に矩形波状の前記スパイクの送信を開始して、前記出力時間区間を終える時刻で前記スパイクの送信を中断する、
請求項4に記載の演算装置。
【請求項7】
ニューラルネットワーク本体と、学習手段とを備え、
発火させることに関連付けて、信号を受信する入力時間区間と、信号を送信することが許可された出力時間区間とが区分されていて、
前記ニューラルネットワーク本体を構成する複数の層のうち、一部の層が発火させることに関連付けて、信号を受信することおよび送信することが許可された入出力時間が設定されており、
前記ニューラルネットワーク本体は、
入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、
前記指標値に基づいて、前記入力時間区間終了後の出力時間区間内に信号を出力する信号出力手段と、
を備えるニューロンモデル
を備え、
前記学習手段は、前記信号に対する重み係数の学習を行う、
ニューラルネットワークシステム。
【請求項8】
強制発火させることに関連付けて、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とが区分されていて、
前記入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算部と、
前記信号出力の指標値に基づいて発火させることによって前記出力時間区間内にスパイクを送信する信号出力部と
を備えるニューロンモデル装置。
【請求項9】
強制発火させることに関連付けて区分されている、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とを識別することと、
前記入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、
前記信号出力の指標値に基づいて発火させることによって前記出力時間区間内にスパイクを送信することと
を
、ニューラルネットワークが実装された装置が実行する演算方法。
【請求項10】
プログラムを実行する装置に、
強制発火させることに関連付けて区分されている、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とを識別することと、
前記入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、
前記信号出力の指標値に基づいて発火させることによって前記出力時間区間内にスパイクを送信することと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置、ニューラルネットワークシステム、ニューロンモデル装置、演算方法およびプログラムに関する。
【背景技術】
【0002】
ニューラルネットワークの1つに、スパイキングニューラルネットワーク(Spiking Neural Network;SNN)がある。例えば、特許文献1には、スパイキングニューラルネットワークをニューロモーフィックコンピューティング(Neuromorphic Computing)デバイス上に実装するニューロモーフィイックコンピューティングシステムが記載されている。
スパイキングニューラルネットワークでは、ニューロンモデルが膜電位と呼ばれる内部状態を有し、膜電位の時間発展に基づいてスパイクと呼ばれる信号を出力する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
スパイキングニューラルネットワークがデータ処理を効率的に行えることが好ましい。
【0005】
本発明の目的の一例は、上述の課題を解決することのできる演算装置、ニューラルネットワークシステム、ニューロンモデル装置、演算方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、演算装置は、スパイクを受信する入力時間区間と、発火してスパイクを送信する出力時間区間とが区分されていて、前記出力時間区間内で発火して、前記入力時間区間内の発火が制限されたニューロンモデルを備える。
【0007】
本発明の第2の態様によれば、ニューラルネットワークシステムは、ニューラルネットワーク本体と、学習手段とを備え、強制発火させることに関連付けて、信号を受信する入力時間区間と、信号を送信することが許可された出力時間区間とが区分されていて、前記ニューラルネットワーク本体は、入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、前記指標値に基づいて、前記入力時間区間終了後の出力時間区間内に信号を出力する信号出力手段と、を備えるニューロンモデルを備え、前記学習手段は、前記信号に対する重み係数の学習を行う。
【0008】
本発明の第3の態様によれば、ニューロンモデル装置は、強制発火させることに関連付けて、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とが区分されていて、前記入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算部と、前記信号出力の指標値に基づいて発火させることによって前記出力時間区間にスパイクを送信する信号出力部とを備える。
【0009】
本発明の第4の態様によれば、演算方法は、強制発火させることに関連付けて区分されている、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とを識別することと、前記入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、前記信号出力の指標値に基づいて発火させることによって前記出力時間区間にスパイクを送信することとを含む。
【0010】
本発明の第4の態様によれば、プログラムは、プログラムを実行する装置に、強制発火させることに関連付けて区分されている、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とを識別することと、前記入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、前記信号出力の指標値に基づいて発火させることによって前記出力時間区間にスパイクを送信することとを実行させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施形態に係るニューラルネットワーク装置の構成の例を示す図である。
【
図2】実施形態に係るニューラルネットワーク装置が備えるスパイキングニューラルネットワークの構成の例を示す図である。
【
図3】実施形態に係るスパイク信号の出力タイミングが制限されていないスパイキングニューロンモデルにおける膜電位の時間変化の例を示す図である。
【
図4】実施形態に係るスパイキングニューロンモデルのスパイク信号の出力タイミングが制限されていない場合の、スパイキングニューラルネットワークにおけるスパイキングニューロンモデルのスパイク信号の出力タイミングの例を示す図である。
【
図5A】実施形態に係るニューラルネットワーク装置におけるニューロンモデル間のスパイク信号の受け渡しのタイミングの例を示す図である。
【
図5B】実施形態に係るニューラルネットワーク装置におけるニューロンモデル間のスパイク信号の受け渡しのタイミングの例を示す図である。
【
図6】実施形態に係る時間区間の設定例を示す図である。
【
図7】実施形態に係るクリップ関数の第1例を示す図である。
【
図8】実施形態に係るクリップ関数の第2例を示す図である。
【
図9】実施形態での学習時におけるシステム構成の例を示す図である。
【
図10】実施形態に係るニューラルネットワークシステム1における信号の入出力の例を示す図である。
【
図11】実施形態での運用時のニューラルネットワーク装置における信号の入出力の例を示す図である。
【
図12】実施形態での学習時における閾値到達時刻の例を示す図である。
【
図13】実施形態での学習時における発火時刻の例を示す図である。
【
図14】実施形態でのテスト時における閾値到達時刻の例を示す図である。
【
図15】実施形態でのテスト時における発火時刻の例を示す図である。
【
図16】実施形態に係るニューラルネットワーク装置の構成例を示す図である。
【
図17】実施形態に係るニューロンモデル装置の構成例を示す図である。
【
図18】実施形態に係るニューラルネットワークシステムの構成例を示す図である。
【
図19】実施形態に係る演算方法における処理手順の例を示すフローチャートである。
【
図20】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【
図21】第2の実施形態に係るニューラルネットワーク装置の構成の例を示す図である。
【
図22】第2の実施形態に係る識別処理の結果を説明するための図である。
【
図23】第2の実施形態に係る第1畳み込み層と、第1プーリング層のそれぞれの出力結果を説明するための図である。
【
図24】第2の実施形態に係る第2畳み込み層と、第2プーリング層のそれぞれの出力結果を説明するための図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
(第1の実施形態)
図1は、実施形態に係るニューラルネットワーク装置の構成の例を示す図である。
図1に示す構成で、ニューラルネットワーク装置10(演算装置)は、ニューロンモデル100を備える。ニューロンモデル100は、指標値計算部110と、比較部120と、信号出力部130とを備える。
【0014】
ニューラルネットワーク装置10は、スパイキングニューラルネットワークを用いてデータ処理を行う。ニューラルネットワーク装置10は、演算装置の例に該当する。
ここでいうニューラルネットワーク装置は、ニューラルネットワークが実装された装置である。スパイキングニューラルネットワークが、専用のハードウェアを用いてニューラルネットワーク装置10に実装されていてもよい。例えば、スパイキングニューラルネットワークが、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)を用いてニューラルネットワーク装置10に実装されていてもよい。あるいは、スパイキングニューラルネットワークが、コンピュータ等を用いてソフトウェア的に、ニューラルネットワーク装置10に実装されていてもよい。
【0015】
ASICを備える装置、FPGAを備える装置、および、コンピュータの何れも、プログラミング可能な装置の例に該当する。ASICおよびFPGAでは、ハードウェア記述言語を用いてハードウェアを記述し、記述したハードウェアをASICまたはFPGA上に実現することが、プログラミングの例に該当する。ニューラルネットワーク装置10がコンピュータを用いて構成されている場合、スパイキングニューラルネットワークの機能をプログラミングによって記述し、得られたプログラムをコンピュータに実行させるようにしてもよい。
【0016】
ここでいうスパイキングニューラルネットワークは、ニューロンモデルが、ニューロンモデル自らへの信号の入力状況に応じて時間変化する、膜電位(Membrane Potential)と呼ばれる状態量に基づくタイミングで信号を出力する、ニューラルネットワークである。膜電位を、信号出力の指標値、または単に指標値とも称する。
ここでいう時間変化は、時間に応じて変化することである。
【0017】
スパイキングニューラルネットワークにおけるニューロンモデルを、スパイキングニューロンモデルとも称する。スパイキングニューロンモデルが出力する信号を、スパイク信号またはスパイクとも称する。スパイキングニューラルネットワークでは、スパイク信号として二値信号を用いることができ、スパイク信号の伝達タイミング、または、スパイク信号の個数などによってスパイキングニューロンモデル間の情報伝達を行うことができる。
ニューロンモデル100の場合、指標値計算部110がニューロンモデル100へのスパイク信号の入力状況に基づいて膜電位を計算する。信号出力部130は、膜電位の時間変化に応じたタイミングでスパイク信号を出力する。
【0018】
ニューラルネットワーク装置10におけるスパイク信号として、パルス信号を用いるようにしてもよいし、ステップ信号を用いるようにしてもよいが、これらに限定されない。
以下では、ニューラルネットワーク装置10によるスパイキングニューラルネットワークにおけるニューロンモデル100間の情報伝達方式として、スパイク信号の伝達タイミングで情報を伝達する時間方式を用いる場合を例に説明する。ただし、ニューラルネットワーク装置10によるスパイキングニューラルネットワークにおけるニューロンモデル100間の情報伝達方式は、特定の方式に限定されない。
【0019】
ニューラルネットワーク装置10が行う処理は、スパイキングニューラルネットワークを用いて実行可能ないろいろな処理とすることができる。例えば、ニューラルネットワーク装置10が、画像認識、生体認証または数値予測を行うようにしてもよいが、これらに限定されない。
【0020】
ニューラルネットワーク装置10が、1つの装置として構成されていてもよいし、複数の装置を組み合わせて構成されていてもよい。例えば、個々のニューロンモデル100が装置として構成され、これら個々のニューロンモデル100を構成する装置を信号伝達経路で接続してスパイキングニューラルネットワークが構成されていてもよい。
【0021】
図2は、ニューラルネットワーク装置10が備えるスパイキングニューラルネットワークの構成の例を示す図である。ニューラルネットワーク装置10が備えるスパイキングニューラルネットワークを、ニューラルネットワーク11とも表記する。また、ニューラルネットワーク11をニューラルネットワーク本体とも称する。
【0022】
図2の例で、ニューラルネットワーク11は、順伝播型4層スパイキングニューラルネットワークとして構成されている。具体的には、ニューラルネットワーク11は、入力層21と、2つの中間層22-1および22-2と、出力層23とを含む。2つの中間層22-1および22-2を総称して、中間層22とも表記する。中間層を隠れ層とも称する。入力層21と、中間層22と、出力層23とを総称して層20とも表記する。
【0023】
入力層21は、入力ノード31を含む。中間層22は、中間ノード32を含む。出力層23は、出力ノード33を含む。入力ノード31と、中間ノード32と、出力ノード33とを総称して、ノード30とも表記する。
【0024】
入力ノード31は、例えば、ニューラルネットワーク11への入力データをスパイク信号に変換する。あるいは、ニューラルネットワーク11への入力データがスパイク信号で示されている場合、入力ノード31としてニューロンモデル100が用いられていてもよい。
【0025】
中間ノード32および出力ノード33として、何れもニューロンモデル100が用いられていてもよい。また、出力ノード33では、後述するスパイク信号出力タイミングに対する制約条件が中間ノードの場合よりも緩和されているなど、中間ノード32と出力ノード33とでニューロンモデル100の動作が異なっていてもよい。
【0026】
ニューラルネットワーク11の4つの層20は、信号伝達における上流側から、入力層21、中間層22-1、中間層22-2、出力層23の順で配置されている。隣接する2つの層20間で、ノード30が伝達経路40で接続されている。伝達経路40は、上流側の層20のノード30から下流側の層20のノード30へスパイク信号を伝達する。
【0027】
ただし、ニューラルネットワーク11が順伝搬型スパイキングニューラルネットワークとして構成される場合の層数は、4層に限定されず2層以上であればよい。また、各層が備えるニューロンモデル100の個数は特定の個数に限定されず、各層が1つ以上のニューロンモデル100を備えていればよい。各層が同じ個数のニューロンモデル100を備えていてもよいし、層によって異なる個数のニューロンモデル100を備えていてもよい。
【0028】
また、ニューラルネットワーク11が、全結合型に構成されていてもよいが、これに限定されない。
図2の例で、隣り合う層における前段側の層20の全てのニューロンモデル100と後段側の層20の全てのニューロンモデル100とが伝達経路40で結合されていてもよいが、隣り合う層におけるニューロンモデル100同士で、伝達経路40で結合されていないものがあってもよい。
【0029】
以下では、スパイク信号の伝達における遅延時間を無視できるものとし、スパイク信号出力側のニューロンモデル100のスパイク信号出力時刻と、スパイク信号入力側のニューロンモデル100へのスパイク信号入力時刻とが同じであるものとして説明する。スパイク信号の伝達における遅延時間を無視できない場合は、スパイク信号出力時刻に遅延時間を加えた時刻を、スパイク信号入力時刻として用いるようにしてもよい。
【0030】
スパイキングニューロンモデルは、時間変化する膜電位が閾値に達したタイミングでスパイク信号を出力する。スパイク信号の出力タイミングが制限されていない一般的なスパイキングニューラルネットワークでは、処理対象のデータが複数ある場合に、スパイキングニューラルネットワークが入力データの入力を受けて演算結果を出力するまで、次の入力データのスパイキングニューラルネットワークへの入力を待つ必要がある。
【0031】
図3は、スパイク信号の出力タイミングが制限されていないスパイキングニューロンモデルにおける膜電位の時間変化の例を示す図である。
図3のグラフの横軸は時刻を示す。縦軸は膜電位を示す。
図3は、第l層のi番目のノードのスパイキングニューロンモデルの膜電位の例を示している。第l層のi番目のノードのスパイキングニューロンモデルの時刻tにおける膜電位を、v
i
(l)(t)と表記する。
図3の説明で、第l層のi番目のノードのスパイキングニューロンモデルを対象モデルとも称する。時刻tは、第1層の処理に割り当てられた時間区間の開始時刻を起点にした経過時間を示す。
【0032】
図3の例で、対象モデルは3つのスパイキングニューロンモデルからのスパイク信号の入力を受けている。
時刻t
2
*(l-1)は、第l-1層の2番目のスパイキングニューロンモデルからのスパイク信号の入力時刻を示す。時刻t
1
*(l-1)は、第l-1層の1番目のスパイキングニューロンモデルからのスパイク信号の入力時刻を示す。時刻t
3
*(l-1)は、第l-1層の3番目のスパイキングニューロンモデルからのスパイク信号の入力時刻を示す。
また、対象モデルは、時刻t
i
*(l)にスパイク信号を出力している。スパイキングニューロンモデルがスパイク信号を出力することを発火と称する。スパイキングニューロンモデルが発火した時刻を発火時刻と称する。
【0033】
図3の例では、膜電位の初期値を0としている。膜電位の初期値は、静止膜電位に相当する。
対象モデルの発火前は、スパイク信号の入力後、対象モデルの膜電位v
i
(l)(t)が、スパイク信号の伝達経路毎に設定されている重みに応じた変化率(変化速度)で変化し続ける。また、スパイク信号の入力毎の膜電位の変化率は線形的に加算される。
図3の例における膜電位v
i
(l)(t)の微分方程式は、式(1)のように表される。
【0034】
【0035】
式(1)において、wij
(l)は、第l-1層のj番目のスパイキングニューロンモデルから対象モデルへのスパイク信号の伝達経路に設定されている重みを示す。重みwij
(l)は学習の対象となる。重みwij
(l)は正と負の両方の値をとり得る。
【0036】
θはステップ関数であり、式(2)のように示される。そのため、膜電位vi
(l)(t)の変化率は、スパイク信号の入力状況と重みwij
(l)の値とによって様々な値を示しながら変化して、その過程の中で正と負の両方の値をとることがある。
【0037】
例えば、時刻ti
*(l)に、対象モデルの膜電位vi
(l)(t)が閾値Vthに達し、対象モデルが発火している。発火によって対象モデルの膜電位vi
(l)(t)が0になり、その後は対象モデルがスパイク信号の入力を受けても膜電位は変化していない。
【0038】
図4は、スパイキングニューロンモデルのスパイク信号の出力タイミングが制限されていない場合の、スパイキングニューラルネットワークにおけるスパイキングニューロンモデルのスパイク信号の出力タイミングの例を示す図である。
【0039】
図4の横軸は、時刻を、スパイキングニューラルネットワークへのデータ入力開始時からの経過時間で示す。縦軸は、入力層、第1層、第2層および出力層のそれぞれにおけるノード番号を示す。層毎のノード番号は、層内におけるスパイキングニューロンモデルを識別する識別番号として用いられる。
【0040】
図4の例で、入力層のスパイキングニューロンモデルは、スパイキングニューラルネットワークへのデータ入力開始時から5ミリ秒程度の時間内に発火している。これに対し、第1層のスパイキングニューロンモデルの発火タイミングは、スパイキングニューラルネットワークへのデータ入力開始からの経過時間で、約10ミリ秒から約120ミリ秒までの範囲に散らばっている。第2層のスパイキングニューロンモデルの発火タイミングは、スパイキングニューラルネットワークへのデータ入力開始からの経過時間で、約20ミリ秒から約70ミリ秒までの範囲に散らばっている。
【0041】
一般に、スパイキングニューラルネットワークの発火タイミング、および、第1層および第2層のスパイキングニューロンモデルの発火のうちどれが出力層のスパイキングニューロンモデルの発火に影響しているかを、スパイキングニューラルネットワークの処理実行時にリアルタイムで知ることは困難である。
【0042】
このため、スパイキングニューラルネットワークの方式にもよるが、少なくとも出力層で最初にスパイキングニューロンモデルが発火するまでの時間T11の間、次の入力データをスパイキングニューラルネットワークに入力せずに待つ必要がある。スパイキングニューラルネットワークが順に処理する対象の入力データ間で、スパイキングニューラルネットワーク内で干渉が生じないように厳密に設定するには、出力層で最後のスパイキングニューロンモデルが発火するまで、次の入力データをスパイキングニューラルネットワークに入力せずに待つ必要がある。
これに対し、順に処理する対象の入力データが複数ある場合、1つの入力データに対する答を得られる前に、次の入力データをスパイキングニューラルネットワークに入力できれば、最初の入力データをスパイキングニューラルネットワークに入力してから最後の入力データに対する答を得られるまでの時間を比較的短くすることができ、この点で、スパイキングニューラルネットワークのスループットを高めることができる。
【0043】
そこで、ニューラルネットワーク装置10では、ニューロンモデル100のデータ処理時間を設定し、ニューロンモデル100がデータ処理時間内にデータ処理を完了するようにする。これにより、データ処理時間経過後は、ニューロンモデル100に次のデータを入力することができる。
【0044】
図5Aと
図5Bは、ニューラルネットワーク装置10におけるニューロンモデル100間のスパイク信号の受け渡しのタイミングの例を示す図である。
図5Aは、ニューラルネットワーク11の第1層から第3層の各々について、スパイク信号を受け渡す関係にある1つずつのニューロンモデル100の膜電位の時間変化、および、その膜電位に基づく発火タイミングの例を示している。
図5Aのグラフの横軸は、時刻を、第1層に最初の入力データが入力されてからの経過時間で示す。縦軸は、第1層から第3層までの各々のニューロンモデル100の膜電位を示す。
【0045】
図5Aの例で、ニューロンモデル100に設定されるデータ処理時間は、入力時間区間と出力時間区間との組み合わせで構成されている。入力時間区間は、ニューロンモデル100がスパイク信号の入力を受け付ける時間区間である。出力時間区間は、ニューロンモデル100がスパイク信号を出力する時間区間である。
ニューラルネットワーク装置10は、同じ層に含まれる全てのニューロンモデル100に同じデータ処理時間が設定されるように、層毎にニューロンモデル100間で同期をとって、同じ入力時間区間および同じ出力時間区間を設定する。Tは、各時間区間の時間幅である。
【0046】
また、ニューラルネットワーク装置10は、ある層のニューロンモデル100における出力時間区間と、その次の層のニューロンモデル100における入力時間区間とが重なるように、層間でも同期をとる。
特に、入力時間区間の時間長と出力時間区間の時間長とを同じ長さに設定し、ある層のニューロンモデル100における出力時間区間と、その次の層のニューロンモデル100における入力時間区間とが完全に重なるように、入力時間区間および出力時間区間を設定する。
【0047】
この場合の、「ある層のニューロンモデル100」は、第1ニューロンモデルの例に該当する。「その次の層のニューロンモデル100」は、第2ニューロンモデルの例に該当する。第1ニューロンモデルの出力時間区間と、第1ニューロンモデルからのスパイク信号の入力を受ける第2ニューロンモデルの入力時間区間とが重なるように出力時間区間および入力時間区間が設定されている。
【0048】
ニューロンモデル100にスパイク信号が入力される時間が入力時間区間に限られることで、指標値計算部110は、入力時間区間におけるスパイク信号の入力状況に基づいて膜電位を時間変化させるように、膜電位を計算する。指標値計算部110は、指標値計算手段の例に該当する。
以下では、式(1)および式(2)を参照してスパイキングニューラルネットワークについて説明したのと同様、第l層のi番目のノードのニューロンモデル100を対象モデルと称し、対象モデルの膜電位をv
i
(l)(t)と表記する。
本実施形態の指標値計算部110は、前述の式(1)に代えて、次の式(1A)を用いる。式(1A)を用いることで、入力時間区間と出力時間区間で膜電位をv
i
(l)(t)の変化率を変えることができる。
【数2】
【0049】
wij
(l)は、第l-1層のj番目のスパイキングニューロンモデルから対象モデルへのスパイク信号の伝達経路に設定されている重みを示す。wi
(l)は第l層のi番目のニューロンが持つ固有の重みである。時刻tがlTになるまでの膜電位vi
(l)(t)の変化率は、重み係数wij
(l)を用いた関数になる。これにより入力時間区間の膜電位vi
(l)(t)の変化率は、重み係数wij
(l)を用いた関数によって計算される。また、時刻tがlT以降の出力時間区間の膜電位vi
(l)(t)の変化率は、重み係数wi
(l)を用いた関数になる。例えば、その関数は、重み係数wi
(l)を傾きにした一次関数であってもよい。重みwi
(l)は正の値をとり得る。これにより出力時間区間の膜電位vi
(l)(t)の変化率は、重み係数wi
(l)を用いて計算される。重みwij
(l)とwi
(l)とは学習の対象にするとよい。また、第l-1層のj番目のスパイキングニューロンモデルから対象モデルへのスパイク信号の伝達経路に設定されている重みをwij
(l)と表記する。
【0050】
対象モデルのニューロンモデル100に関する説明は、後述する出力層のニューロンモデル100のスパイク信号の出力タイミングが緩和され得る点を除いて、ニューラルネットワーク装置10が備える全てのニューロンモデル100に当てはまる。すなわち第l層は、ニューロンモデル100をノードとして含む何れの層であってもよい。第l層の何れのニューロンモデル100がi番目のニューロンモデル100であってもよい。
【0051】
このように式(1A)を用いることで、ニューロンモデル100の膜電位vi
(l)(t)は、出力時間区間において出力時間区間に固有の傾きwi
(l)で変化する。これに代えて同様の機能を、出力時間区間において膜電位を固定して、かつ閾値Vthに代えて発火閾値を変化させることでも実現が可能である。具体的には、各ニューロンモデルにおいて、発火閾値を各ニューロンモデルに夫々定まる固有の値とし、出力時間区間においてその発火閾値を傾き-wi
(l)で変化させればよい。以下の説明では、出力時間区間において発火閾値が閾値Vthに固定され膜電位vi
(l)(t)が変化する場合を例示するが、同様の議論は、出力時間区間において膜電位が固定され発火閾値が変化する場合に対して適用可能である。
【0052】
以下、膜電位v
i
(l)(t)について入力時間区間と出力時間区間とに分けて説明する。
指標値計算部110は、膜電位v
i
(l)(t)が閾値V
thに達するまで、あるいは、入力時間区間の終了に対応するデータ処理時間が経過するまでの何れか早い方の事象が発生するまで、微分方程式が式(1A)の入力時間区間の式を用いて膜電位v
i
(l)(t)を計算する。入力時間区間の膜電位v
i
(l)(t)は、式(3A)のように表される。出力時間区間の膜電位v
i
(l)(t)は、式(3B)のように表される。
【数3】
【0053】
指標値計算部110が、上記の式(3A)と式(3B)とに基づいて、それぞれの区間の膜電位vi
(l)(t)を計算するようにしてもよい。
指標値計算部110は、入力時間区間においては、式(1A)と式(3A)に示されるように対象モデルへのスパイク信号の入力状況に応じた変化速度で膜電位vi
(l)(t)を変化させる。
一方、出力時間区間では、式(1A)に示されるように対象モデルへのスパイク信号を受け付けない。このため、入力時間区間内で膜電位vi
(l)(t)が閾値Vthに達しなかった場合、指標値計算部110は、出力時間区間では、入力時間区間の終了時における膜電位vi
(l)(lT)と経過時間とに基づいて、この電位から単調に増加するように膜電位vi
(l)(t)を変化させる。式(3B)に示される式は、その一例である。出力時間区間における膜電位vi
(l)(t)の変化率を、予め定められた所定値に維持するとよい。
【0054】
まず、入力時間区間の膜電位vi
(l)(t)について、より詳しく説明する。
入力時間区間内で膜電位vi
(l)(t)が閾値Vthに達する時刻をti
(l,vth)と表記して式(3A)の時刻tに代入すると、式(4)を得られる。この式(4)は、入力時間区間に適用される。
【0055】
【0056】
Γi
(l)は、tj
*(l-1)<ti
(l,vth)となるインデックスjの集合を表す。
ニューラルネットワーク装置10では、発火時刻が出力時間区間内に制限されるため、発火時刻ti
*(l)が、膜電位vi
(l)(t)が閾値Vthに達する時刻よりも後の時刻になる場合があることから、膜電位vi
(l)(t)が閾値Vthに達する時刻をti
(l,vth)と表記している。膜電位が閾値に達する時刻を、閾値到達時刻とも称する。
式(4)より、閾値到達時刻ti
(l,vth)は、式(5A)のように表される。
次に、出力時間区間の膜電位vi
(l)(t)について、より詳しく説明する。
指標値計算部110は、膜電位vi
(l)(t)が閾値Vthに達するまで、あるいは、出力時間区間の終了に対応するデータ処理時間が経過するまでの何れか早い方の事象が発生するまで、微分方程式が式(1A)のように表される膜電位vi
(l)(t)を計算する。膜電位vi
(l)(t)は、前述の式(3B)のように表される。この式(3B)の一次式を整理することで、閾値到達時刻ti
(l,vth)は、式(5B)のように表される。
【0057】
【0058】
比較部120は、膜電位v
i
(l)(t)と閾値V
thとを比較し、膜電位v
i
(l)(t)が閾値V
thに達したか否かを判定する。
信号出力部130は、膜電位v
i
(l)(t)に基づいて、出力時間区間内にスパイク信号を出力する。具体的には、入力時間区間内で膜電位v
i
(l)(t)が閾値V
thに達した場合、信号出力部130は、出力時間区間の開始時にスパイク信号を出力する。出力時間区間内で膜電位v
i
(l)(t)が閾値V
thに達した場合、膜電位v
i
(l)(t)が閾値V
thに達したときに、信号出力部130は、スパイク信号を出力する。出力時間区間内で膜電位v
i
(l)(t)が閾値V
thに達しなかった場合、信号出力部130は、出力時間区間の終了時にスパイク信号を出力する。
なお、
図5Aの例で出力層については、スパイク信号を受け渡す相手がないため、入力時間区間に相当する時間区間でもスパイクの出力が可能になっている。この場合の入力時間区間に相当する時間区間を入出力時間区間とも称する。
【0059】
以下、
図5Bを参照して、ニューロンモデル100の膜電位v
i
(l)(t)の変化を幾つかの事例に場合分けして、説明する。
図5Bは、ニューラルネットワーク11の第l層から第l+1層に受け渡すスパイク信号の例を示している。
図5Bのグラフの横軸は、時刻を、第l層に最初の入力データが入力されてからの経過時間で示す。縦軸は、
図5Bの上段側から、第l層のニューロンモデル100の膜電位とその出力スパイクと、第l+1層のニューロンモデル100の膜電位v
i
(l)(t)を示す。この
図5Bの中で、区間Aが入力時間区間を示し、区間Bが出力時間区間を示す。
図5B中のCASE0に示すように、入力時間区間内に膜電位v
i
(l)(t)が閾値V
thに達した場合、出力時間区間の開始時まで指標値計算部110が、膜電位v
i
(l)(t)を閾値V
thと等しい値と算出するようにしてもよい。これにより、出力時間区間の開始時に、比較部120が、膜電位v
i
(l)(t)が閾値V
thに達していると判定する。信号出力部130は、比較部120の判定結果に基づいて、出力時間区間の開始時にスパイク信号を出力する。
【0060】
また、この場合、上記に代えてCASE0として
図5B中に示すように、出力時間区間の開始時に比較部120が、膜電位v
i
(l)(t)が閾値V
thに達していると判定した後、次の入力時間区間の開始時になるまで、指標値計算部110が、膜電位v
i
(l)(t)を0と算出するようにしてもよい。これにより、指標値計算部110が、次の入力時間区間における次のデータに対する処理を、膜電位v
i
(l)(t)が0にリセットされた状態から開始するようにしてもよい。
【0061】
なお、入力時間区間内に膜電位v
i
(l)(t)が閾値V
thに達していなかった場合には、下記するように、スパイク信号を出力するまでの膜電位v
i
(l)(t)の制御を幾つかのケースに場合分けできる。指標値計算部110は、出力時間区間の中でスパイク信号を出力するように制御する。
例えば、
図5B中のCASE1に示すように、出力時間区間内に膜電位v
i
(l)(t)が閾値V
thに達した場合、比較部120が、膜電位v
i
(l)(t)が閾値V
thに達していると判定する。信号出力部130は、比較部120の判定結果に基づいてスパイク信号を出力する。これにより、信号出力部130は、膜電位v
i
(l)(t)が閾値V
thに達したタイミングでスパイク信号を出力する。
【0062】
この場合も、比較部120が、膜電位vi
(l)(t)が閾値Vthに達していると判定した後、次の入力時間区間の開始時まで、指標値計算部110が、膜電位vi
(l)(t)を0と算出するようにしてもよい。これにより、指標値計算部110が、次の入力時間区間における次のデータに対する処理を、膜電位vi
(l)(t)が0にリセットされた状態から開始するようにしてもよい。
【0063】
図5B中のCASE2に示すように、出力時間区間の終了時までに膜電位v
i
(l)(t)が閾値V
thに達しない場合、指標値計算部110または比較部120が、出力時間区間の終了時に、信号出力部130にスパイク信号を出力させるようにしてもよい。この場合のスパイク信号の出力を、強制発火とも称する。
例えば、出力時間区間の終了時までに膜電位v
i
(l)(t)が一度も閾値V
thに達していない場合、比較部120が、膜電位が閾値に達したとするダミーの判定結果を出力するようにしてもよい。そして、信号出力部130が、比較部120の判定結果に基づいて、出力時間区間の終了時にスパイク信号を出力するようにしてもよい。
【0064】
出力時間区間の終了時までに膜電位vi
(l)(t)が閾値Vthに達しない場合、指標値計算部110が、次の入力時間区間の開始時に膜電位vi
(l)(t)を0として算出するようにしてもよい。これにより、指標値計算部110が、次の入力時間区間における次のデータに対する処理を、膜電位vi
(l)(t)が0にリセットされた状態から開始するようにしてもよい。
【0065】
図6は、時間区間の設定例を示す図である。
図6の横軸は、時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。層間のデータの入出力は、スパイク信号の入出力で行われる。
図6の例では、横軸に示される時間が、時間T毎の時間区間に区切られている。また、
図6は、入力層、第1層、第2層、出力層のそれぞれについて、時間区間の種類を示している。具体的には、入力時間区間を「入力」との記載で示し、出力時間区間を「出力」との記載で示している。また、入出力時間区間については、「入力」および「出力」の両方の記載で示している。
また、
図6は、ニューラルネットワーク11が、第1データ、第2データ、および、第3データの3つのデータを処理する場合の例を示している。層毎に、その層で各データを処理する時間区間を示している。
【0066】
図6の例で、第1層、第2層および第3層の何れのニューロンモデル100も、1つの入力時間区間と、その入力時間区間に続く1つの出力時間区間とデータ処理時間内に、データの処理を完了するように動作する。具体的には、各ニューロンモデル100は、出力時間区間の終了までに膜電位v
i
(l)(t)が閾値V
thに達しない場合、スパイク信号を出力して処理を終了する。
これにより、ニューロンモデル100は、次のデータ処理時間で次のデータを処理することができる。ニューラルネットワーク11全体では、いわばパイプライン処理のように、入力されたデータの処理の完了を待たずに次のデータの処理を開始することができる。
【0067】
また、
図6の例で、ニューラルネットワーク装置10は、スパイク信号を出力する側の層の出力時間区間と、そのスパイク信号の入力を受ける側の層の入力時間区間とが一致するように、層間の同期、および、各層内のニューロンモデル100の同期をとる。すなわち、ニューラルネットワーク装置10は、スパイク信号を出力する側の層の出力時間区間と、そのスパイク信号の入力を受ける側の層の入力時間区間と完全に重なるように、層間の同期、および、各層内のニューロンモデル100の同期をとる。
【0068】
ニューラルネットワーク装置10が、同期処理部を備え、同期処理部が時間区間の切り替わりのタイミングを各ニューロンモデル100に通知するようにしてもよい。あるいは、ニューロンモデル100の各々が、全てのニューロンモデル100に共通のクロック信号に基づいて、時間区間の切り替わりのタイミングを検出するようにしてもよい。
【0069】
図6の例で、第l層のi番目のニューロンモデル100が、第1データの処理でのスパイク信号を出力時間区間にて出力する処理は、式(6)のように表すことができる。
【0070】
【0071】
式clipは、式(7)のように表される。
【0072】
【0073】
式(7)に示される関数clipをクリップ関数と称する。
図7は、クリップ関数の第1例を示す図である。
図7は、
図6の例で第1層のニューロンモデル100が第1データを処理する際のクリップ関数の例を示している。
図7のグラフの横軸は、膜電位v
i
(1)(t)が閾値V
thに達する時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。縦軸は、ニューロンモデル100がスパイク信号を出力する時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。
図7の横軸および縦軸の何れも、
図6の横軸と対応付けられる。
【0074】
図7に示されるように、閾値到達時刻t
i
(l,vth)が時刻Tよりも早い場合、ニューロンモデル100は、時刻Tにスパイク信号を出力する。時刻Tは、出力時間区間の開始時刻である。
閾値到達時刻t
i
(l,vth)が時刻Tから2Tまでの区間内にある場合、ニューロンモデル100は、閾値到達時刻t
i
(l,vth)にスパイク信号を出力する。時刻2Tは、出力時間区間の終了時刻である。なお、膜電位v
i
(1)(t)が閾値V
thに達してからニューロンモデル100がスパイク信号を出力するまでの遅延時間は無視できるものとする。
閾値到達時刻t
i
(l,vth)が時刻2Tよりも遅い場合、すなわち、時刻2Tまでに膜電位v
i
(1)(t)が閾値V
thに達しなかった場合、ニューロンモデル100は、時刻2Tにスパイク信号を出力する。
【0075】
図6の例で、第l層のi番目のニューロンモデル100が、第dデータの処理でのスパイク信号を出願時間区間にて出力する処理は、式(8)のように表すことができる。
【0076】
【0077】
図8は、クリップ関数の第2例を示す図である。
図8では、
図7の例をより一般化している。具体的には
図8は、
図6の例で第l層のニューロンモデル100が第dデータを処理する際のクリップ関数の例を示している。
図8のグラフの横軸は、膜電位v
i
(l)(t)が閾値V
thに達する時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。縦軸は、ニューロンモデル100がスパイク信号を出力する時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。
図8の横軸および縦軸の何れも、
図6の横軸と対応付けられる。
【0078】
図8に示されるように、閾値到達時刻t
i
(l,vth)が時刻(2d+l-2)Tよりも早い場合、ニューロンモデル100は、時刻Tにスパイク信号を出力する。時刻(2d+l-2)Tは、出力時間区間の開始時刻である。
閾値到達時刻t
i
(l,vth)が時刻(2d+l-2)Tから(2d+l-1)Tまでの区間内にある場合、ニューロンモデル100は、閾値到達時刻t
i
(l,vth)にスパイク信号を出力する。時刻(2d+l-1)Tは、出力時間区間の終了時刻である。なお、膜電位v
i
(l)(t)が閾値V
thに達してからニューロンモデル100がスパイク信号を出力するまでの遅延時間は無視できるものとする。
閾値到達時刻t
i
(l,vth)が時刻(2d+l-1)Tよりも遅い場合、すなわち、時刻(2d+l-1)Tまでに膜電位v
i
(1)(t)が閾値V
thに達しなかった場合、ニューロンモデル100は、時刻(2d+l-1)Tにスパイク信号を出力する。
【0079】
ニューロンモデル100におけるクリップ関数を、人工ニューラルネットワーク(Artificial Neural Network;ANN)における活性化関数に相当するものと捉えることができる。したがって、ニューラルネットワーク11では、スパイキングニューラルネットワークに活性化関数の概念が導入されていると捉えることができる。この点で、ニューラルネットワーク装置10が高い認識性能を示すことが期待される。
また、ニューロンモデル100におけるクリップ関数が学習の対象となっていてもよい。
【0080】
図9は、学習時におけるシステム構成の例を示す図である。
図9に示す構成で、ニューラルネットワークシステム1は、ニューラルネットワーク装置10と、学習装置50とを備える。ニューラルネットワーク装置10と学習装置50とが1つの装置として一体的に構成されていてもよい。あるいは、ニューラルネットワーク装置10と学習装置50とが別々の装置として構成されていてもよい。
上述したように、ニューラルネットワーク装置10が構成するニューラルネットワーク11を、ニューラルネットワーク本体とも称する。
【0081】
図10は、ニューラルネットワークシステム1における信号の入出力の例を示す図である。
図10の例で、入力データと、その入力データに対する正解を示す教師ラベルとがニューラルネットワークシステム1に入力される。ニューラルネットワーク装置10が入力データの入力を受け、学習装置50が、教師ラベルの入力を受けるようにしてもよい。入力データと教師ラベルとの組み合わせは、教師有り学習における訓練データの例に該当する。
また、ニューラルネットワーク装置10は、クロック信号を取得する。ニューラルネットワーク装置10がクロック回路を備えるようにしてもよい。あるいは、ニューラルネットワーク装置10が、ニューラルネットワーク装置10の外部からのクロック信号の入力を受けるようにしてもよい。
【0082】
ニューラルネットワーク装置10は、入力データの入力を受けて、その入力データに基づく推定値を出力する。推定値を算出する際、ニューラルネットワーク装置10は、クロック信号を用いて層間の時間区間の同期、および、同一層内のニューロンモデル100間の時間区間の同期をとる。
【0083】
学習装置50は、ニューラルネットワーク装置10の学習を行う。ここでいう学習は、機械学習によって学習モデルのパラメータ値を調整することである。学習装置50は、ニューロンモデル100に入力されるスパイク信号に対する重み係数の学習を行う。式(4)の重みWij
(l)が、学習装置50が学習によって値を調整する重み係数の例に該当する。
【0084】
学習装置50が、ニューラルネットワーク装置10が出力する推定値と、教師ラベルが示す正解値との誤差に対する評価を示す評価関数を用いて、推定値と正解値との誤差の大きさが小さくなるように、重み係数の学習を行うようにしてもよい。
学習装置50は、学習手段の例に該当する。学習装置50は、例えば、コンピュータを用いて構成される。
【0085】
学習装置50が行う学習の手法として、例えば誤差逆伝播法(Backpropagation)などの既存の学習手法を、入力時間区間および出力時間区間が設定されていることに応じてアレンジした手法を用いることができる。
例えば、学習装置50が誤差逆伝播法をアレンジした手法を用いて学習を行う場合、重みWij
(l)を、式(9A)で示される変化量ΔWij
(l)だけ変化させるように、重みWij
(l)を更新するようにしてもよい。また、同様に重みWi(l)を、式(9B)で示される変化量ΔWi(l)だけ変化させるように、重みWi(l)を更新するようにしてもよい。
【0086】
【0087】
ηは、学習率を示す定数である。式(9A)と式(9B)の学習率は同じ値であってもよいし、互いに異なる値であってもよい。
Cは、式(10)のように表される。
【0088】
【0089】
Cは、ニューラルネットワーク装置10が出力する推定値と、教師ラベルが示す正解値との誤差に対する評価を示す評価関数の例に該当する。Cは、誤差が小さいほど小さい値を出力する損失関数として設定されている。
Mは、出力層(最終層)を示すインデックス値を表す。N(M)は、出力層に含まれるニューロンモデル100の個数を表す。
【0090】
κiは、教師ラベルを表す。ここでは、ニューラルネットワーク装置10が、クラスの個数がN(M)個のクラス分類を行うものとし、教師ラベルがワンホットベクトル(One-hot Vector)で示されるものとする。インデックスiの値が正解クラスを示す場合にκi=1であり、それ以外の場合はκi=0であるものとする。
【0091】
t(ref)は、参照スパイク(Reference Spike)を表す。
「γ/2(ti
(M)-t(ref))2」は、学習困難性を回避するために設けられた項である。この項をテンポラル罰則項(Temporal Penalty Term)とも称する。γは、テンポラル罰則項の影響度合いを調整するための定数であり、γ>0である。γをテンポラル罰則係数とも称する。
Siは、ソフトマックス関数であり、式(11)のように表される。
【0092】
【0093】
σsoftは、ソフトマックス関数Siの値の大きさを調整するためのスケール因子(Scale Factor)として設けられた定数であり、σsoft>0である。
ここでは、出力層のi番目のスパイク発火時刻ti
(M)が0≦ti
(M)≦1で示されるものとする。例えば、出力層のスパイク発火時刻が、クラス毎に、入力データが示す分類対象がそのクラスに分類される確率を示すようにしてもよい。κi=1となるiについて、ti
(M)の値が1に近いほど「-Σi=1
N(M)(κiln(Si(t(M))))」の項の値が小さくなり、学習装置50は、損失(評価関数Cの値)を小さく計算する。
ただし、ニューラルネットワーク装置10が行う処理は、クラス分類に限定されない。
【0094】
重みW
ij
(l)とW
i
(l)とに加えて、あるいは代えて、上述したように、ニューロンモデル100におけるクリップ関数が学習の対象となっていてもよい。例えば、式(7)の「a」および「b」を学習パラメータとして扱い、学習にて「a」の値および「b」の値を調整するようにしてもよい。さらに例えば、学習装置50が、入力時間区間および出力時間区間の時間幅を学習によって決定し、得られた時間幅に応じて「a」の値および「b」の値を設定するようにしてもよい。
図6では、時間Tが、入力時間区間および出力時間区間の時間幅の例に該当する。
【0095】
図11は、運用時のニューラルネットワーク装置10における信号の入出力の例を示す図である。
図10に示される運用時と同様、学習時も、ニューラルネットワーク装置10は、入力データの入力を受け、また、クロック信号を取得する。ニューラルネットワーク装置10がクロック回路を備えるようにしてもよい。あるいは、ニューラルネットワーク装置10が、ニューラルネットワーク装置10の外部からのクロック信号の入力を受けるようにしてもよい。
ニューラルネットワーク装置10は、入力データの入力を受けて、その入力データに基づく推定値を出力する。推定値を算出する際、ニューラルネットワーク装置10は、クロック信号を用いて層間の時間区間の同期、および、同一層内のニューロンモデル100間の時間区間の同期をとる。
【0096】
次に、ニューラルネットワーク装置10を用いた実験の結果について説明する。
手書き数字画像のデータセットであるMNISTを用いて、手書き数字画像の認識の学習およびテストを行った。
ニューラルネットワーク11の構成は、入力層、第1層、第2層、および、出力層の4層を有する全結合の順伝播型とした。入力層のニューロンモデル100の個数は784個とし、第1層および第2層のニューロンモデル100の個数はそれぞれ200個とし、出力層のニューロンモデル100の個数は10個とした。
【0097】
入力時間区間および出力時間区間の時間幅は、何れも0.05ミリ秒とした。
ニューラルネットワーク11による推定結果の表示方式として、出力層のニューロンモデル100のうちどのニューロンモデル100が最初にスパイク信号を出力するかによって推定結果を示す時間方式を採用した。
実験の結果、テスト時の認識率で97.4%の認識率を得られた。
【0098】
図12は、学習時における閾値到達時刻の例を示す図である。
図12は、仮に、指標値計算部110が膜電位を算出する時間を制限しない場合の、閾値到達時刻の例を示す。
図12の横軸は、時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。縦軸は、入力層、第1層、第2層および出力層のそれぞれにおけるノード番号を示す。
【0099】
図12の例では、第1層のニューロンモデル100のうち、第1層の出力時間区間の終了時である0.010ミリ秒よりも後に膜電位が閾値に達しているニューロンモデル100がある。例えば、0.025ミリ秒の付近で膜電位が閾値に達しているニューロンモデル100がある。
仮に、このニューロンモデル100の膜電位が閾値に達するのを待ち受けることにすると、0.025ミリ秒の付近まで、第1層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することはできない。
【0100】
第2層についても、第2層のニューロンモデル100のうち、第1層の出力時間区間の終了時である0.015ミリ秒よりも後に膜電位が閾値に達しているニューロンモデル100がある。例えば、0.019ミリ秒頃に膜電位が閾値に達しているニューロンモデル100がある。
仮に、このニューロンモデル100の膜電位が閾値に達するのを待ち受けることにすると、0.019ミリ秒頃まで、第2層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することはできない。
【0101】
あるいは、仮に、ニューラルネットワーク11が推定結果を出力するまで第1層のニューロンモデル100の各々および第2層のニューロンモデル100の各々における膜電位の計算を継続することにすると、出力層のニューロンモデル100の膜電位が最初に閾値に達している0.013ミリ秒頃まで、第1層、第2層および出力層の何れのニューロンモデル100にも、次の入力データの処理のためのスパイク信号を入力することはできない。
【0102】
図13は、学習時における発火時刻の例を示す図である。
図13の横軸は、時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。縦軸は、入力層、第1層、第2層および出力層のそれぞれにおけるノード番号を示す。
図13の例では、第1層の出力時間区間である0.005秒から0.010秒までの間に、第1層の全てのニューロンモデル100がスパイク信号を出力している。これにより、0.010秒以降は、第1層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することができる。
【0103】
また、第1層のニューロンモデル100の発火時刻が0.005秒以降に限定されていることで、第2層の入力時間区間の開始時刻も、0.005秒とすることができる。仮に、
図13の例で処理対象となっているデータよりも前のデータがある場合、第2層のニューロンモデル100は、0.005秒まで、前のデータに対する処理を行うことができる。
【0104】
また、第2層の出力時間区間である0.010秒から0.015秒までの間に、第2層の全てのニューロンモデル100がスパイク信号を出力している。これにより、0.015秒以降は、第2層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することができる。
【0105】
また、第2層のニューロンモデル100の発火時刻が0.010秒以降に限定されていることで、出力層の入出力時間区間の開始時刻も、0.010秒とすることができる。仮に、
図13の例で処理対象となっているデータよりも前のデータがある場合、出力層のニューロンモデル100は、0.010秒まで、前のデータに対する処理を行うことができる。
【0106】
なお、実験では出力層のニューロンモデル100がスパイク信号を出力するタイミングは限定していない。このため、出力層のニューロンモデル100のうち、出力層の出力時間区間の終了時である0.020ミリ秒よりも後に、スパイクを出力しているニューロンモデル100がある。出力層のニューロンモデル100についても出力時間区間内に発火するようにすることで、出力時間区間の終了時である0.020ミリ秒以降は、出力層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することができる。
【0107】
図14は、テスト時における閾値到達時刻の例を示す図である。
図14は、仮に、指標値計算部110が膜電位を算出する時間を制限しない場合の、閾値到達時刻の例を示す。
図14の横軸は、時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。縦軸は、入力層、第1層、第2層および出力層のそれぞれにおけるノード番号を示す。
【0108】
図14の例では、第1層のニューロンモデル100のうち、第1層の出力時間区間の終了時である0.010ミリ秒よりも後に膜電位が閾値に達しているニューロンモデル100がある。例えば、0.025ミリ秒の付近で膜電位が閾値に達しているニューロンモデル100がある。
仮に、このニューロンモデル100の膜電位が閾値に達するのを待ち受けることにすると、0.025ミリ秒の付近まで、第1層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することはできない。
【0109】
第2層についても、第2層のニューロンモデル100のうち、第1層の出力時間区間の終了時である0.015ミリ秒よりも後に膜電位が閾値に達しているニューロンモデル100がある。例えば、0.022ミリ秒頃に膜電位が閾値に達しているニューロンモデル100がある。
仮に、このニューロンモデル100の膜電位が閾値に達するのを待ち受けることにすると、0.022ミリ秒頃まで、第2層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することはできない。
【0110】
あるいは、仮に、ニューラルネットワーク11が推定結果を出力するまで第1層のニューロンモデル100の各々および第2層のニューロンモデル100の各々における膜電位の計算を継続することにすると、出力層のニューロンモデル100の膜電位が最初に閾値に達している0.013ミリ秒頃まで、第1層、第2層および出力層の何れのニューロンモデル100にも、次の入力データの処理のためのスパイク信号を入力することはできない。
【0111】
図15は、テスト時における発火時刻の例を示す図である。
図15の横軸は、時刻を、ニューラルネットワーク11へのデータ入力開始時からの経過時間で示す。縦軸は、入力層、第1層、第2層および出力層のそれぞれにおけるノード番号を示す。
図15の例では、第1層の出力時間区間である0.005秒から0.010秒までの間に、第1層の全てのニューロンモデル100がスパイク信号を出力している。これにより、0.010秒以降は、第1層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することができる。
【0112】
また、第1層のニューロンモデル100の発火時刻が0.005秒以降に限定されていることで、第2層の入力時間区間の開始時刻も、0.005秒とすることができる。仮に、
図15の例で処理対象となっているデータよりも前のデータがある場合、第2層のニューロンモデル100は、0.005秒まで、前のデータに対する処理を行うことができる。
【0113】
また、第2層の出力時間区間である0.010秒から0.015秒までの間に、第2層の全てのニューロンモデル100がスパイク信号を出力している。これにより、0.015秒以降は、第2層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することができる。
【0114】
また、第2層のニューロンモデル100の発火時刻が0.010秒以降に限定されていることで、出力層の入出力時間区間の開始時刻も、0.010秒とすることができる。仮に、
図15の例で処理対象となっているデータよりも前のデータがある場合、出力層のニューロンモデル100は、0.010秒まで、前のデータに対する処理を行うことができる。
【0115】
出力層のニューロンモデル100についても出力時間区間内に発火するようにすることで、出力時間区間の終了時である0.020ミリ秒以降は、出力層のニューロンモデル100に次の入力データの処理のためのスパイク信号を入力することができる。
【0116】
実施形態によれば、ニューラルネットワーク装置10は、スパイクを受信する入力時間区間と、発火してスパイクを送信する出力時間区間とが区分されている。ニューラルネットワーク装置10は、出力時間区間内で発火して、入力時間区間内の発火が制限されたニューロンモデル100を備える。これにより、入力時間区間と出力時間区間とをそれぞれの利用形態で利用することが可能になり、スパイキングニューラルネットワークがデータ処理を効率的に行うことが可能になる。
例えば、ニューロンモデル100を、ある時間区間内に発火させることでスパイクを送信することで、出力時間区間の後縁が明確になり、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間との区分が容易になる。これにより、比較的有意な情報を出力するニューロンモデル100からの情報を漏らさずに用いるように調整することが容易になる。比較的有意な情報を出力するニューロンモデル100が出力時間区間内に発火するように構成することで、スパイキングニューラルネットワークがデータ処理を効率的に行うことが可能になる。
また、比較的有意ではない情報を出力するニューロンモデル100の発火を省略するように構成してもよい。例えば、ニューロンモデル100は、出力時間区間の後縁でニューロンモデル100の膜電位が所定の条件を満たす場合に強制発火するか、又は同場合に発火しないように形成されているとよい。これによって、出力時間区間が経過した後に、そのニューロンモデル100が発火することがなくなる。これによって、スパイキングニューラルネットワークがデータ処理をさらに効率的に行うことが可能になる。
【0117】
なお、ニューロンモデル100が出力時間区間内において発火する発火時刻は、入力時間区間の最後の時刻におけるニューロンモデル100の膜電位の関数として規定されるとよい。ニューロンモデル100は、入力時間区間の最後の時刻におけるニューロンモデル100の膜電位が予め定められた範囲外である場合の発火を制限するように形成されるとよい。ニューロンモデル100は、出力時間区間内におけるニューロンモデル100の膜電位がニューロンモデル100に固有の傾きによって増加するように形成されているとよい。ニューロンモデル100は、出力時間区間内においてニューロンモデル100の膜電位が所定の条件を満たす場合に、所定のパルス波形のスパイクを発生させる。例えば、ニューロンモデル100は、出力時間区間内においてニューロンモデル100の膜電位が所定の条件を満たす場合に矩形波状のスパイクの送信を開始して、出力時間区間を終える時刻で前記スパイクの送信を中断させることができる。
【0118】
なお、ニューラルネットワーク11の種類は、特定の種類に限定されない。例えば、ニューラルネットワーク11が、スパイキングニューラルネットワークによる畳み込みニューラルネットワーク(Convolutional neural network;CNN)として構成されていてもよい。
【0119】
(第2の実施形態)
図21から
図24を参照して、第2の実施形態として、CNN型のニューラルネットワーク装置10Aへの適用事例について説明する。
【0120】
図21は、ニューラルネットワーク装置10Aの構成の例を示す図である。ニューラルネットワーク装置10Aは、ニューラルネットワーク11Aを含む。ニューラルネットワーク11Aは、CNNとして構成されている。例えば、ニューラルネットワーク11Aは、入力側から順に、入力層21と、中間層22と、出力層23と、特徴抽出層24と、を備える。
【0121】
特徴抽出層24は、入力層21と中間層22との間に配置されている。特徴抽出層24は、入力層21の出力を用いた演算処理により、入力される画像データから所望の特徴を抽出するように構成される。特徴抽出層24は、演算結果を後段の中間層22に供給する。
【0122】
例えば、特徴抽出層24は、畳み込み層(Conv)とプーリング層(Pooling)とを組みにして、処理に適した任意の組数の畳み込み層とプーリング層とが積層するように構成されている。この
図21に示す特徴抽出層24は、第1畳み込み層(Conv)241と、第1プーリング層(Pooling)251と、第2畳み込み層(Conv)242と、第2プーリング層(Pooling)252とを含む。特徴抽出層24は、2組の畳み込み層とプーリング層とを備えた一例である。各層は、画像空間の局所的な特徴に応じて活性化するニューロンモデル100によって構成されている。
【0123】
中間層22は、例えば、第1全結合層221(Dense)と、第2全結合層222(Dense)と、を備える。なお、出力層23を省略してもよい。
【0124】
以下、このように構成されたニューラルネットワーク装置10Aを用いた実験の結果の一例を示す。この実験の入力データとして、MNISTのデータの一部を用いる。ここで示すデータは、手書きの8の字をモデル化したものである。
【0125】
図22は、識別処理の結果を説明するための図である。
図23は、第1畳み込み層241と、第1プーリング層251のそれぞれの出力結果を説明するための図である。
図24は、第2畳み込み層242と、第2プーリング層252のそれぞれの出力結果を説明するための図である。
図23と
図24に示す画像の各画素の値は、各層のスパイクが確認された時刻を変換したものである。
【0126】
図22の上段から順に、入力層21(input)と、第1畳み込み層241(Conv)と、第1プーリング層251(Pooling)と、第2畳み込み層242(Conv)と、第2プーリング層252(Pooling)と、第1全結合層221(Dense)と、第2全結合層222(Dense)のそれぞれにおいて、膜電位v
i
(l)(t)が閾値V
thになったタイミングをプロットして示している。
【0127】
例えば、識別対象の2次元画像のサイズは、28画素x28画素である。
第1畳み込み層241は、サイズ5x5の畳み込みフィルタを形成し、これを6チャネル有する。第1プーリング層251は、第1畳み込み層241の処理結果に対して、サイズ2x2を単位にした最大値プーリングを実施する。第2畳み込み層242は、サイズ5x5の畳み込みフィルタを形成し、これを16チャネル有する。第2プーリング層252は、第2畳み込み層242の処理結果に対して、サイズ2x2を単位にした最大値プーリングを実施する。第1全結合層221のニューロンモデル100の個数は、200個であり、第2全結合層222のニューロンモデル100の個数は、10個である。
【0128】
図22に、各層のニューロンモデル100の発火の発生状況を、その発火時刻に丸印を付けて示す。各層において、ニューロンモデル100がそれぞれ発火するタイミングが、その出力時間区間内に適当に分布している状況が確認され、第2全結合層222の演算結果として、指標値8に対応するニューロンモデル100が最も早く発火していることが確認できた。
【0129】
図23と
図24の(a)から(f)にその結果を示す。その結果においても、8の文字の軌跡に沿う斜め右上がりの方向に、比較的強く活性化されたことを示す結果が確認できる。この実験の結果、テスト時の認識率で99.1%の認識率を得られた。
このように、第2の実施形態の場合も、第1の実施形態と同様の効果を奏する。
【0130】
(各実施形態に共通する変形例)
上述したように、ニューラルネットワーク11が順伝播型のスパイキングニューラルネットワークとして構成される場合、ニューラルネットワーク11の層数は2層以上であればよく、特定の層数に限定されない。また、各層が備えるニューロンモデル100の個数は特定の個数に限定されず、各層が1つ以上のニューロンモデル100を備えていればよい。各層が同じ個数のニューロンモデル100を備えていてもよいし、層によって異なる個数のニューロンモデル100を備えていてもよい。また、ニューラルネットワーク11が全結合型になっていてもよいし、全結合型でなくてもよい。
【0131】
また、ニューロンモデル100の発火後の膜電位は、上述した電位0から変化しないものに限定されない。例えば、発火から所定時間経過後は、スパイク信号の入力に応じて膜電位が変化するようにしてもよい。ニューロンモデル100の各々の発火回数も、入力データ毎に1回に限定されない。
【0132】
スパイキングニューロンモデルとしてのニューロンモデル100の構成も、特定の構成に限定されない。例えば、ニューロンモデル100が、スパイク信号の入力を受けてから次のスパイク信号の入力を受けるまでの変化速度が一定でなくてもよい。
ニューラルネットワーク11の学習方法は、教師有り学習に限定されない。学習装置50が、ニューラルネットワーク11の学習を教師無し学習で行うようにしてもよい。
【0133】
以上のように、指標値計算部110は、入力時間区間における信号の入力状況に基づいて膜電位を時間変化させる。信号出力部130は、膜電位に基づいて、入力時間区間終了後の出力時間区間内に信号を出力する。
このように、ニューロンモデル100がスパイク信号の入力を受け付ける入力時間区間、および、ニューロンモデル100がスパイク信号を出力する出力時間区間を設定することで、指標値計算部110が膜電位を計算するべき時間を、入力時間区間の開始時から出力時間区間の終了時までの時間に限定することができる。他の時間では、ニューロンモデル100は、他のデータに対する処理を行うことができる。
ニューラルネットワーク装置10によれば、この点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0134】
また、指標値計算部110は、入力時間区間において信号の入力状況に応じた変化速度で膜電位を変化させる。入力時間区間内で膜電位が閾値に達しなかった場合、指標値計算部110は、出力時間区間において、入力時間区間の終了時における変化速度で膜電位を変化させる。
入力時間区間内で膜電位が閾値に達した場合、信号出力部130は、出力時間区間の開始時にスパイク信号を出力する。出力時間区間内で膜電位が閾値に達した場合、信号出力部130は、膜電位が閾値に達したときにスパイク信号を出力する。出力時間区間内で膜電位が閾値に達しなかった場合、信号出力部130は、出力時間区間の終了時にスパイク信号を出力する。
【0135】
これにより、ニューロンモデル100がスパイク信号を出力する時間を、出力時間区間に限定することができる。ニューロンモデル100は、出力時間区間の終了後は、他のデータに対する処理を行うことができる。
ニューラルネットワーク装置10によれば、この点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0136】
また、第1のニューロンモデル100の出力時間区間と、第1のニューロンモデル100からのスパイク信号の入力を受ける第2のニューロンモデルの入力時間区間とが重なるように出力時間区間および入力時間区間が設定されている。
これにより、第1のニューロンモデル100から第2のニューロンモデル100へ、スパイク信号によって効率的にデータを伝達することができ、第1のニューロンモデル100および第2のニューロンモデル100は、パイプライン処理のように処理を行うことができる。
ニューラルネットワーク装置10によれば、この点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0137】
また、指標値計算部110は、入力時間区間における信号の入力状況に基づいて膜電位を時間変化させる。信号出力部130は、膜電位に基づいて、入力時間区間終了後の出力時間区間内にスパイク信号を出力する。学習装置50は、スパイク信号に対する重み係数の学習を行う。
これにより、学習によって重み係数を調整することができ、ニューラルネットワーク装置10による推定精度を向上させることができる。
【0138】
図16は、実施形態に係るニューラルネットワーク装置の構成例を示す図である。
図11に示す構成で、ニューラルネットワーク装置610は、ニューロンモデル611を備える。ニューロンモデル611は、指標値計算部612と、信号出力部613とを備える。
かかる構成で、ニューロンモデル611は、ある時間区間内に発火させることでスパイクを送信可能に形成されている。ニューラルネットワーク装置610では、ニューロンモデル611を発火させることに関連付けて、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とが区分されている。
例えば、指標値計算部612は、入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる。信号出力部613は、指標値に基づいて発火させることによって、入力時間区間終了後の出力時間区間内に信号を出力する。
指標値計算部612は、指標値計算手段の例に該当する。信号出力部613は、信号出力手段の例に該当する。
【0139】
このように、ニューロンモデル611が信号の入力を受け付ける入力時間区間、および、ニューロンモデル611がスパイク信号を出力する出力時間区間を設定して、出力時間区間内に発火させることで、指標値計算部612が指標値を計算するべき時間を、入力時間区間の開始時から出力時間区間の終了時までの時間に限定することができる。他の時間では、ニューロンモデル611は、他のデータに対する処理を行うことができる。
ニューラルネットワーク装置610によれば、この点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
なお、信号の入力と信号の出力が干渉しない層であれば、入力時間区間と、出力時間区間とが重なるように規定してもよい。例えば、前述の出力層23は、信号の入力と信号の出力が干渉しない層の一例である。このような出力層23に適用されるニューロンモデル611は、発火させることに関連付けて、信号を受信および送信が許可された入出力時間区間が設定されていてもよい。信号を受信および送信が許可された入出力時間区間は、信号の出力が制限される入力時間区間に代えて設定されてもよい。
【0140】
図17は、実施形態に係るニューロンモデル装置の構成例を示す図である。
図17に示す構成で、ニューロンモデル装置620は、指標値計算部621と、信号出力部622とを備える。
かかる構成で、ニューロンモデル装置620は、発火させることに関連付けて、信号を受信する入力時間区間と、信号を送信することが許可された出力時間区間とが区分されている。指標値計算部621は、入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる。信号出力部622は、指標値に基づいて発火させることによって、入力時間区間終了後の出力時間区間内に信号を出力する。
指標値計算部621は、指標値計算手段の例に該当する。信号出力部622は、信号出力手段の例に該当する。
【0141】
このように、ニューロンモデル装置620が信号の入力を受け付ける入力時間区間、および、ニューロンモデル装置620がスパイク信号を出力する出力時間区間を設定することで、指標値計算部621が指標値を計算するべき時間を、入力時間区間の開始時から出力時間区間の終了時までの時間に限定することができる。他の時間では、ニューロンモデル装置620は、他のデータに対する処理を行うことができる。
ニューロンモデル装置620によれば、この点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0142】
図18は、実施形態に係るニューラルネットワークシステムの構成例を示す図である。
図18に示す構成で、ニューラルネットワークシステム630は、ニューラルネットワーク本体631と、学習部635とを備える。ニューラルネットワーク本体631は、ニューロンモデル632を備える。ニューロンモデル632は、指標値計算部633と、信号出力部634とを備える。
【0143】
かかる構成で、ニューラルネットワークシステム630は、ニューロンモデル632を発火させることに関連付けて、信号を受信する入力時間区間と、信号を送信することが許可された出力時間区間とが区分されている。指標値計算部633は、入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる。信号出力部634は、指標値に基づいて、入力時間区間終了後の出力時間区間内に信号を出力する。学習部635は、ニューロンモデル632に入力される信号に対する重み係数の学習を行う。
【0144】
指標値計算部633は、指標値計算手段の例に該当する。信号出力部634は、信号出力手段の例に該当する。学習部635は、学習手段の例に該当する。
数の学習を行う。
ニューラルネットワークシステム630では、これにより、学習によって重み係数を調整することができ、ニューラルネットワーク本体631による推定精度を向上させることができる。
【0145】
図19は、実施形態に係る演算方法における処理手順の例を示すフローチャートである。
図19に示す演算方法は、時間区間の区分を識別すること(ステップS610)と、指標値を算出すること(ステップS611)と、信号を出力すること(ステップS612)とを含む。
【0146】
時間区間の区分を識別すること(ステップS610)では、スパイクを受信する入力時間区間と、スパイクを送信することが許可された出力時間区間とを識別する。例えば、時間区間の区分を識別することに、識別結果に応じてフラグを設定することを含めてもよい。指標値を算出すること(ステップS611)では、識別の結果が入力時間区間を示す場合に、信号の入力を許容して、入力時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる。信号を出力すること(ステップS612)は、例えば識別の結果によって入力時間区間から出力時間区間への遷移が検出されて、この検出に応じて実施される。信号を出力すること(ステップS612)では、識別の結果(フラグの値)によって、指標値に基づいて発火させることによって、入力時間区間終了後の出力時間区間内に信号を出力する。
【0147】
図19に示す演算方法では、信号の入力を受け付ける入力時間区間、および、信号を出力する出力時間区間を設定して、出力時間区間内に発火させることで、指標値を計算するべき時間を、入力時間区間の開始時から出力時間区間の終了時までの時間に限定することができる。他の時間では、他のデータに対する処理を行うことができる。
図19に示す演算方法によれば、この点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0148】
図20は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図20に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0149】
上記のニューラルネットワーク装置10、学習装置50、ニューラルネットワーク装置610、ニューロンモデル装置620、および、ニューラルネットワークシステム630のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
【0150】
ニューラルネットワーク装置10がコンピュータ700に実装される場合、ニューラルネットワーク装置10およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0151】
また、CPU710は、プログラムに従って、ニューラルネットワーク装置10の処理のための記憶領域を主記憶装置720に確保する。ニューラルネットワーク装置10と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。ニューラルネットワーク装置10とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0152】
学習装置50がコンピュータ700に実装される場合、学習装置50の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0153】
また、CPU710は、プログラムに従って、学習装置50の処理のための記憶領域を主記憶装置720に確保する。学習装置50と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。学習装置50とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0154】
ニューラルネットワーク装置610がコンピュータ700に実装される場合、ニューラルネットワーク装置610およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0155】
また、CPU710は、プログラムに従って、ニューラルネットワーク装置610の処理のための記憶領域を主記憶装置720に確保する。ニューラルネットワーク装置610と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。ニューラルネットワーク装置610とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0156】
ニューロンモデル装置620がコンピュータ700に実装される場合、ニューロンモデル装置620およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0157】
また、CPU710は、プログラムに従って、ニューロンモデル装置620の処理のための記憶領域を主記憶装置720に確保する。ニューロンモデル装置620と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。ニューロンモデル装置620とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0158】
ニューラルネットワークシステム630がコンピュータ700に実装される場合、ニューラルネットワークシステム630およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0159】
また、CPU710は、プログラムに従って、ニューラルネットワークシステム630の処理のための記憶領域を主記憶装置720に確保する。ニューラルネットワークシステム630と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。ニューラルネットワークシステム630とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0160】
なお、ニューラルネットワーク装置10、学習装置50、ニューラルネットワーク装置610、ニューロンモデル装置620、および、ニューラルネットワークシステム630が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0161】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0162】
1、630 ニューラルネットワークシステム
10、10A、610 ニューラルネットワーク装置
11、11A ニューラルネットワーク
21 入力層
22 中間層
23 出力層
24 特徴抽出層
50 学習装置
100、611、632 ニューロンモデル
110、612、621、633 指標値計算部
120 比較部
130、613、622、634 信号出力部
620 ニューロンモデル装置
631 ニューラルネットワーク本体
635 学習部