(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-23
(45)【発行日】2024-05-02
(54)【発明の名称】ニューラルネットワーク装置、発火時刻演算方法およびプログラム
(51)【国際特許分類】
G06N 3/049 20230101AFI20240424BHJP
【FI】
G06N3/049
(21)【出願番号】P 2022538587
(86)(22)【出願日】2021-04-19
(86)【国際出願番号】 JP2021015878
(87)【国際公開番号】W WO2022018916
(87)【国際公開日】2022-01-27
【審査請求日】2023-01-06
(31)【優先権主張番号】P 2020124065
(32)【優先日】2020-07-20
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】酒見 悠介
(72)【発明者】
【氏名】合原 一幸
【審査官】佐藤 実
(56)【参考文献】
【文献】米国特許出願公開第2018/0357529(US,A1)
【文献】特開2017-134821(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/049
(57)【特許請求の範囲】
【請求項1】
スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が前記膜電位と閾値との比較で示されるスパイキングニューロンが、
あるスパイクを受けるまでに受ける全てのスパイクに対する重み係数の合計が正か否かに基づいて、前記スパイキングニューロンの発火時刻が含まれない時間区間を特定することで、前記スパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、前
記発火時刻が含まれる時間区間の候補の絞り込みを行う発火時刻演算手段
を備えるニューラルネットワーク装置。
【請求項2】
前記発火時刻演算手段は、前記スパイキングニューロンがスパイクを受ける時刻毎の前記膜電位と前記閾値との比較に基づいて、前記時間区間のうち前記スパイキングニューロンの発火時刻が含まれる時間区間を特定する、
請求項1に記載のニューラルネットワーク装置。
【請求項3】
前記発火時刻演算手段は、前記スパイキングニューロンがスパイクを受ける時刻毎の前記膜電位を、そのスパイキングニューロンが膜電位計算対象のスパイクを受けるまでに受ける全てのスパイクに対する重み係数に関する級数を用いて算出する、
請求項2に記載のニューラルネットワーク装置。
【請求項4】
前記単調関数は時刻の一次関数であり、
前記発火時刻演算手段は、前記閾値と、前記スパイキングニューロンの発火時刻が含まれると判定された時間区間の開始時刻までに受ける全てのスパイクに対する重み係数の合計と、前記開始時刻までに受ける各スパイクについての、そのスパイクに対する重み係数とそのスパイクの到達時刻との積の合計とに基づいて、前記発火時刻を算出する、
請求項1から
3の何れか一項に記載のニューラルネットワーク装置。
【請求項5】
スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が前記膜電位と閾値との比較で示されるスパイキングニューロンが、
あるスパイクを受けるまでに受ける全てのスパイクに対する重み係数の合計が正か否かに基づいて、前記スパイキングニューロンの発火時刻が含まれない時間区間を特定することで、前記スパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、前
記発火時刻が含まれる時間区間の候補の絞り込みを行うこと
を含む発火時刻演算方法。
【請求項6】
コンピュータに、
スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が前記膜電位と閾値との比較で示されるスパイキングニューロンが、
あるスパイクを受けるまでに受ける全てのスパイクに対する重み係数の合計が正か否かに基づいて、前記スパイキングニューロンの発火時刻が含まれない時間区間を特定することで、前記スパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、前
記発火時刻が含まれる時間区間の候補の絞り込みを行うこと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワーク装置、発火時刻演算方法およびプログラムに関する。
【背景技術】
【0002】
(スパイキングニューラルネットワークについて)
ニューラルネットワークの一形態として、順伝搬型(Feed-Forward)スパイキングニューラルネットワーク(Spiking Neural Network;SNN)およびリカレント(Recurrent、再帰型)スパイキングニューラルネットワークといったスパイキングニューラルネットワークがある。スパイキングニューラルネットワークとは、スパイキングニューロンモデルが結合しネットワークを形成したものである。スパイキングニューロンモデルを、スパイキングニューロン、または、単にニューロンとも称する。
【0003】
スパイキングニューロンモデルは、生物学的神経細胞の細胞体部による多入力信号の統合およびスパイクの生成を模擬する。スパイクの生成を発火とも称する。スパイキングニューロンモデルの結合には前段後段の関係が有り、前段側のスパイキングニューロンモデルが発火すると後段側のスパイキングニューロンモデルへスパイクが伝達される。
【0004】
(スパイキングニューロンモデルの説明)
スパイキングニューロンモデルは、膜電位を内部状態として持ち、膜電位が時間発展するモデルである。一般的なスパイキングニューロンモデルとして、漏れ積分発火ニューロンモデルが知られており、膜電位が式(1)のような微分方程式に従って時間発展する。
【0005】
【0006】
ここで、vは、スパイキングニューロンにおける膜電位を示す。αleakは、漏れ積分発火モデルにおける漏れの大きさを示す定数の係数である。Iは、スパイキングニューロンにおけるシナプス後電流を示す。wjは、スパイキングニューロンへの結合の強さを示す係数であり、結合重み(Connection Weight)と呼ばれる。
【0007】
tは時刻を示す。trec
jは、式(1)で示されるスパイキングニューロンに対して前段のスパイキングニューロンのうちj番目のスパイキングニューロンからのスパイクの到達時刻を示す。r(・)は前段のスパイキングニューロンから伝達されたスパイクがシナプス後電流へ与える影響を示す関数である。
【0008】
膜電位が所定の閾値に達すると、スパイキングニューロンが発火する。
図11は、スパイキングニューロンの膜電位の時間発展と閾値との関係の例を示す図である。
図11のグラフの横軸は時刻を示し、縦軸は、電位を示す。
線L1001は、膜電位を示す。V
thは、膜電位の閾値を示す。V
resetは、膜電位のリセット値を示す。t
rec
1は、
図11に示されるスパイキングニューロンに対して前段のスパイキングニューロンのうち1番目のスパイキングニューロンからのスパイクの到達時刻を示す。t
rec
2は2番目のスパイキングニューロンからのスパイクの到達時刻を示す。t
rec
3は3番目のスパイキングニューロンからのスパイクの到達時刻を示す。
【0009】
図11の例で、膜電位vが閾値V
thに達すると、スパイキングニューロンは発火する。すなわち、スパイキングニューロンはスパイクを生成する。その後、膜電位vはリセット値V
resetへと戻る。また、生成されたスパイクは、
図11に示されるスパイキングニューロンに対して後段のスパイキングニューロンへと伝達される。
時刻t
rec
1におけるスパイク到達、および、時刻t
rec
3におけるスパイク到達では、何れも膜電位vは閾値V
thに達していない。一方、時刻t
rec
2におけるスパイク到達では、膜電位vが閾値V
thに達し、その後すぐに、リセット値であるV
resetに低下している。
【0010】
また、スパイキングニューロンモデルの発火に関連する技術が、特許文献1に記載されている。具体的には、特許文献1には、ニューロンの膜電位の閾値が小さい場合に、膜電位の閾値が小さいことによるニューロンの不安定を防止するために、ニューロンの膜電位の閾値を小さくする代わりに、ニューロンの各々に対応するシナプスの重みを増加させることが記載されている。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【発明が解決しようとする課題】
【0012】
スパイキングニューロンの発火時刻の計算負荷が軽いことが好ましい。
【0013】
本発明は、上述の課題を解決することのできるニューラルネットワーク装置、発火時刻演算方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0014】
本発明の第1の態様によれば、ニューラルネットワーク装置は、スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が前記膜電位と閾値との比較で示されるスパイキングニューロンが、あるスパイクを受けるまでに受ける全てのスパイクに対する重み係数の合計が正か否かに基づいて、前記スパイキングニューロンの発火時刻が含まれない時間区間を特定することで、前記スパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、前記発火時刻が含まれる時間区間の候補の絞り込みを行う発火時刻演算手段を備える。
【0015】
本発明の第2の態様によれば、発火時刻演算方法は、スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が前記膜電位と閾値との比較で示されるスパイキングニューロンが、あるスパイクを受けるまでに受ける全てのスパイクに対する重み係数の合計が正か否かに基づいて、前記スパイキングニューロンの発火時刻が含まれない時間区間を特定することで、前記スパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、前記発火時刻が含まれる時間区間の候補の絞り込みを行うことを含む。
【0016】
本発明の第3の態様によれば、プログラムは、コンピュータに、スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が前記膜電位と閾値との比較で示されるスパイキングニューロンが、あるスパイクを受けるまでに受ける全てのスパイクに対する重み係数の合計が正か否かに基づいて、前記スパイキングニューロンの発火時刻が含まれない時間区間を特定することで、前記スパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、前記発火時刻が含まれる時間区間の候補の絞り込みを行うことを実行させるためのプログラムである。
【発明の効果】
【0017】
本発明によれば、スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
【図面の簡単な説明】
【0018】
【
図1】実施形態に係るニューラルネットワーク装置の概略構成の例を示す図である。
【
図2】実施形態に係る対象モデルの概略構成の第1例を示す図である。
【
図3】実施形態に係る対象モデルの概略構成の第2例を示す図である。
【
図4】実施形態に係る対象モデルの概略構成の第3例を示す図である。
【
図5】実施形態に係る対象モデルが備えるスパイキングニューロン100について説明するための図である。
【
図6】実施形態に係るスパイキングニューロンについて、各時間区間内で単調変化する場合の膜電位の時間発展の例を示す図である。
【
図7】実施形態に係るニューラルネットワーク装置が対象スパイキングニューロンの発火時刻を計算する処理手順の例を示すフローチャートである。
【
図8】実施形態に係るニューラルネットワーク装置の構成例を示す図である。
【
図9】実施形態に係る発火時刻演算方法における処理手順の例を示す図である。
【
図10】少なくとも1つの実施形態に係る専用ハードウェアの構成例を示す概略ブロック図である。
【
図11】スパイキングニューロンの膜電位の時間発展と閾値との関係の例を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0020】
(実施形態に係るニューラルネットワークシステムの構成について)
図1は、実施形態に係るニューラルネットワーク装置の概略構成の例を示す図である。
図1に示す構成で、ニューラルネットワーク装置10は、モデル記憶部11と、計算部12とを備える。計算部12は、発火時刻演算部13を備える。
【0021】
ニューラルネットワーク装置10は、スパイキングニューラルネットワークを用いて情報処理を行う。
ここでいうスパイキングニューラルネットワークは、スパイキングニューロン間でスパイクが伝達されるニューラルネットワークである。ここでいうスパイクは、そのスパイクを出力するスパイキングニューロンから入力を受けるスパイキングニューロンへ伝達され、入力を受けるスパイキングニューロンへの到達時刻の概念が存在する信号である。例えば、スパイクが、パルス信号として構成されていてもよいし、ステップ信号として構成されていてもよいが、これらに限定されない。
【0022】
ここでいうスパイキングニューロンは、
(1)時間発展する膜電位の概念が存在し、
(2)スパイキングニューロンの膜電位の時間発展が、そのスパイキングニューロンに入力されるスパイクの、そのスパイキングニューロンへの到達時刻と、そのスパイクが通る伝達経路に設定される重み係数とに依存し、
(3)膜電位と閾値との比較によって、スパイキングニューロンの発火の有無(すなわち、スパイクの出力の有無)、および、発火有りの場合の発火時刻が定まる
ニューロンである。
【0023】
ニューラルネットワーク装置10が行う処理は、スパイキングニューラルネットワークを用いて実行可能ないろいろな処理とすることができる。例えば、ニューラルネットワーク装置10が、画像認識、生体認証または数値予測を行うようにしてもよいが、これらに限定されない。
【0024】
モデル記憶部11は、スパイキングニューラルネットワークモデルを記憶する。モデル記憶部11が記憶するスパイキングニューラルネットワークモデルは、いろいろな構造かついろいろな規模のものとすることができる。例えば、モデル記憶部11が記憶するスパイキングニューラルネットワークモデルが、順伝搬型スパイキングニューラルネットワークの形式に構成されていてもよいし、リカレントスパイキングニューラルネットワークの形式に構成されていてもよい。
スパイキングニューラルネットワークモデルを、単にニューラルネットワークモデルとも称する。モデル記憶部11が記憶するスパイキングニュラールネットワークモデルを対象モデルとも称する。
【0025】
図2は、対象モデルの概略構成の第1例を示す図である。
図2は、対象モデルが順伝搬型スパイキングニューラルネットワークとして構成される場合の例を示している。
ここでいう順伝搬型は、ネットワークの形態の一つであり、層から層へ結合が存在し、その情報伝達が一方向のネットワークのことである。順伝搬型スパイキングニューラルネットワークの各層は1つ以上のスパイキングニューロンで構成されており、同層内のスパイキングニューロン間の結合は存在しない。
【0026】
図2の例で、対象モデルの例に該当するスパイキングニューラルネットワーク110は、複数のスパイキングニューロン100と、スパイキングニューロン間の結合とを含む。また、スパイキングニューロン100は複数の層111を構成している。スパイキングニューラルネットワーク110は、入力を受け付け出力を返す。
【0027】
図3は、対象モデルの概略構成の第2例を示す図である。
図3は、
図2を参照して説明した順伝搬型スパイキングニューラルネットワークとして構成される場合の対象モデルの、さらに具体的な例を示している。具体的には、
図3は、対象モデルが、順伝搬4層スパイキングニューラルネットワークとして構成され、各層が3つのスパイキングニューロンを有する場合の例を示している。
【0028】
図3の例で、対象モデルの例に該当するスパイキングニューラルネットワーク110は、4つの層111を含む。層111の各々は、3つのスパイキングニューロン100を含む。4つの層111を区別する場合、前段側(データ入力側)から順に、層111-1、層111-2、層111-3、層111-4と称する。
【0029】
また、隣接する2つの層111間で、前段側の層111のスパイキングニューロン100の各々と後段側の層111のスパイキングニューロン100の各々とが結合されている。前段側の層111のスパイキングニューロン100の発火時に、結合される後段側の層111のスパイキングニューロン100へ、結合重みを乗算されたスパイクが入力される。
図3では、スパイキングニューロン100間の結合を、伝達経路101で示している。伝達経路101は、神経軸索とシナプスの模擬に相当する。
【0030】
順伝搬型の場合のスパイキングニューラルネットワーク110の最前段側の層111(
図3の例では、層111-1)は入力層と呼ばれ、スパイキングニューラルネットワーク110の外部からの信号の入力を受け付ける。最後段側の層111(
図3の例では層111-4)は出力層と呼ばれ、スパイキングニューラルネットワーク110の外部へ信号を出力する。入力層と出力層との間にある層(
図3の例では、層111-2および111-3)は隠れ層もしくは中間層と呼ばれる。
【0031】
ただし、対象モデルが順伝搬型スパイキングニューラルネットワークとして構成される場合の層数は、4層に限定されず2層以上であればよい。また、各層が備えるスパイキングニューロンの個数は特定の個数に限定されず、各層が1つ以上のスパイキングニューロンを備えていればよい。各層が同じ個数のスパイキングニューロンを備えていてもよいし、層によって異なる個数のスパイキングニューロンを備えていてもよい。また、隣り合う層における前段側の層111の全てのスパイキングニューロンと後段側の層111の全てのスパイキングニューロンとが結合されている必要は無い。
【0032】
図4は、対象モデルの概略構成の第3例を示す図である。
図4は、対象モデルがリカレントスパイキングニューラルネットワークとして構成される場合の例を示している。
ここでいうリカレントは、ネットワークの形態の一つであり、再帰結合をもつネットワークのことである。リカレントスパイキングニューラルネットワークの構成は、あるスパイキングニューロンで発生したスパイクが、直接自分自身へ入力される場合、または、他のスパイキングニューロンを経由して、自分自身へスパイクが入力される場合を含む構成である。あるいは、1つのリカレントスパイキングニューラルネットワークが、あるスパイキングニューロンで発生したスパイクが、直接自分自身へ入力される場合と、他のスパイキングニューロンを介して、自分自身へスパイクが入力される場合との両方を含んでいてもよい。
【0033】
図4の例で、対象モデルの例に該当するスパイキングニューラルネットワーク110は、複数のスパイキングニューロン100と、スパイキングニューロン間の結合とを含む。この結合は、どのスパイキングニューロンからどのスパイキングニューロンへも存在することが可能であり、さらに出力元のスパイキングニューロン自らへの結合も可能である。
【0034】
図3の場合と同様、
図4でも、スパイキングニューロン100間の結合を、伝達経路101で示している。
ただし、リカレントスパイキングニューラルネットワークとして構成される場合の対象モデルが備えるスパイキングニューロンの個数は、特定の個数に限定されず、1つ以上であればよい。
【0035】
図5は、対象モデルが備えるスパイキングニューロン100について説明するための図である。
スパイキングニューロン100は、
図5の伝達経路101で示される結合を介して、他の1個以上のスパイキングニューロン100からデータ(結合重みで重み付けされたスパイク)の入力を受ける。さらに、スパイキングニューロン100が、スパイキングニューロン100自らからもデータの入力を受けるようにしてもよい。
【0036】
入力ノードとして構成されるスパイキングニューロン100は、他の1個以上のスパイキングニューロン100またはスパイキングニューロン100自ら、またはこれらの両方からのデータの入力に加えて、あるいは代えて、対象モデルの外部からのデータ(入力データ)の入力を受け付ける。
【0037】
また、スパイキングニューロン100は、
図5の伝達経路101で示される結合を介して、他の1個以上のスパイキングニューロン100へデータ(スパイク)を出力する。さらに、スパイキングニューロン100が、スパイキングニューロン100自らへもデータを出力するようにしてもよい。スパイキングニューロン100が出力したスパイクは、結合重みを乗算されて、伝達先のスパイキングニューロン100に入力される。
【0038】
出力ノードとして構成されるスパイキングニューロン100は、他の1個以上のスパイキングニューロン100またはスパイキングニューロン100自ら、またはこれらの両方へのデータの出力に加えて、あるいは代えて、対象モデルの外部へデータ(出力データ)を出力する。
【0039】
結合された2つのスパイキングニューロン100のうち、スパイクを出力する側のスパイキングニューロン100を、前段側のスパイキングニューロン100とも称する。スパイクの入力を受ける側のスパイキングニューロン100を、後段側のスパイキングニューロン100とも称する。
【0040】
対象モデルにおいて、スパイキングニューロン100間の結合は、前段側のスパイキングニューロン100が出力するスパイクの電位に、結合毎に設定され学習可能な重み係数(結合重み)を乗算して、後段側のスパイキングニューロン100に入力されるスパイクの電位を計算する式として示されていてもよい。
【0041】
スパイキングニューロン100(対象モデルに含まれるスパイキングニューロン)のうち1つ以上のスパイキングニューロン100では、スパイクを受けてから次のスパイクを受けるまでの時間区間における膜電位が時刻の単調関数で示される。ここでいう時間区間は、ある時刻からある時刻までの時間である。
【0042】
この、スパイクを受けてから次のスパイクを受けるまでの時間区間における膜電位が時刻の単調関数で示されるスパイキングニューロン100のうち1つ以上が、発火時刻演算部13による発火時刻の計算対象のスパイキングニューロン100として扱われる。
対象モデルに含まれる全てのスパイキングニューロン100で、スパイクを受けてから次のスパイクを受けるまでの時間区間における膜電位が、時刻の単調関数で示されていてもよい。また、発火時刻演算部13が、対象モデルに含まれる全てのスパイキングニューロン100の発火時刻を計算するようにしてもよい。
【0043】
計算部12は、対象モデルの演算を行うことで、情報処理を行う。具体的には、計算部12は、対象モデルに含まれるスパイキングニューロンの発火時刻を、発火時刻演算部13にて算出する。計算部12は、算出された発火時刻を、そのスパイキングニューロンに対する後段のスパイキングニューロンへのスパイクの到達時刻として扱い、後段のスパイキングニューロンの発火時刻の算出に反映させる。また、計算部12は、対象モデルの出力層の発火時刻の計算結果を、対象モデルの出力として出力する。
【0044】
なお、接続されている2つのスパイキングニューロンのうち前段側のスパイキングニューロンで生成されたスパイクが、直ちに後段側のスパイキングニューロンに伝達されるものとする。これにより、前段側のスパイキングニューロンの発火時刻を、後段側のスパイキングニューロンへのスパイクの到達時刻としても用いることができるものとする。
あるいは、この条件が成立しない対象モデルの場合は、計算部12が、スパイクの伝達に要する時間を計算するようにしてもよい。
【0045】
計算部12が、さらに、対象モデルの学習を行うようにしてもよい。すなわち、計算部12が、対象モデルに含まれるスパイキングニューロン間の結合重みなどのモデルパラメータ値を調整するようにしてもよい。
【0046】
発火時刻演算部13は、対象モデルに含まれるスパイキングニューロンの発火時刻を計算する。発火時刻演算部13は、発火時刻演算手段の例に該当する。
発火時刻演算部13による発火時刻の計算結果が、発火無しとなってもよい。発火無しとの計算結果は、発火時刻計算対象のスパイキングニューロンが、発火時刻計算対象の期間内には発火しないことを示す。
【0047】
(実施形態に係るニューラルネットワーク装置の発火時刻演算手法について)
発火時刻演算部13によるスパイキングニューロンの発火時刻の計算についてさらに説明する。発火時刻演算部13が発火時刻を計算するスパイキングニューロンのうちの1つを対象スパイキングニューロンと称する。対象スパイキングニューロンと結合され、対象スパイキングニューロンへスパイクを出力するスパイキングニューロンを、前段スパイキングニューロンと称する。対象スパイキングニューロンと結合され、対象スパイキングニューロンからのスパイクの入力を受けるスパイキングニューロンを、後段スパイキングニューロンと称する。
上述したように、対象スパイキングニューロンに対し、スパイクを受けた時刻から次にスパイクを受ける時刻までの時間区間における膜電位が単調関数で示されるという条件を課す。
【0048】
ここでの単調関数は、広義の単調増加関数、狭義の単調増加関数、広義の単調減少関数、または、狭義の単調減少関数の何れであってもよい。対象スパイキングニューロンがスパイクを受けた時刻から次にスパイクを受ける時刻までの時間区間によって、上述した4種類の単調関数のうち異なる種類の単調関数で膜電位が示されていてもよい。例えば、ある時間区間では膜電位が単調増加し、別のある時間区間では膜電位が単調減少していてもよい。
【0049】
スパイキングニューロンがスパイクを受けた時刻から次にスパイクを受ける時刻までの時間区間における膜電位が単調関数で示される、という条件を満たす対象スパイキングニューロンの例の1つは、式(2)によって示される。
【0050】
【0051】
Nは対象スパイキングニューロンへの結合の個数である。wjはj番目の結合に関する結合重みである。trec
jはj番目の結合によって入力されるスパイクの到達時刻である。
ここでは各結合において最大一度のスパイクの入力しかない場合を考える。trec
jの「j」は、結合を識別する識別情報である。また、1つの結合から最大一度のスパイクがスパイキングニューロンに入力されることから、trec
jの「j」は、スパイクを識別する識別情報としても機能する。スパイクを識別する識別情報としての「j」を、スパイクのインデックスとも称する。1つの結合から複数のスパイクの入力がある場合も、スパイク毎にインデックスを紐付けて、同様に考えることができる。
θはステップ関数であり、式(3)のように示される。
【0052】
【0053】
式(2)の解析解は、式(4)のように示される。
【0054】
【0055】
ここで、表記を簡単にするために、スパイクのインデックスを発火時時刻が早い順に並べなおして表現する。つまり式(5)を満たすようなインデックス1、2、・・・、Nを用いる。
【0056】
【0057】
なお、並べなおされたインデックスと元のインデックスとは一対一に対応付けられるので、並べなおされたインデックス表示から元のインデックス表示に戻すことは容易に行える。この並べなおされたインデックス表示の下で、2つの時刻t1、t2を、式(6)を満たす任意の時刻とする。
【0058】
【0059】
この場合、膜電位vが広義の単調増加関数で示されるという条件は、式(7)のように示される。
【0060】
【0061】
狭義の単調増加の場合は、式(6)の「t1≦t2」を「t1<t2」で置き換え、式(7)の「v(t1)≦v(t2)を「v(t1)<v(t2)」で置き換える。
膜電位vが広義の単調減少関数で示されるという条件は、式(8)のように示される。
【0062】
【0063】
狭義の単調減少の場合は、式(6)の「t1≦t2」を「t1<t2」で置き換え、式(8)の「v(t1)≧v(t2)を「v(t1)>v(t2)」で置き換える。
【0064】
対象スパイキングニューロンがk番目のスパイクを受けたときの膜電位vは、式(4)のtにtrec
kを代入して式(9)のように表すことができる。
【0065】
【0066】
式(9)に示すように、v(trec
k)、すなわち、k番目のスパイクの到達時刻trec
kにおける膜電位vを、v[k]とも表記する。
さらにここで、wsを式(10)のように定義する。
【0067】
【0068】
「:=」は、定義式であることを示す。
また、wtsを式(11)のように定義する。
【0069】
【0070】
式(12)のように、ws[k]を用いてws[k+1]を効率的に計算できる。
【0071】
【0072】
式(13)のように、wts[k]を用いてwts[k+1]を効率的に計算できる。
【0073】
【0074】
式(9)、(10)および(11)より、膜電位v[k]はwsおよびwtsを用いて式(14)のように表される。
【0075】
【0076】
ここで、膜電位vは、1≦k≦N-1を満たす任意の整数kについて、時刻trec
kから時刻trec
k+1までの間の時間区間[trec
k,trec
k+1]で単調なので、スパイキングニューロンがこの時間区間内に発火する必要十分条件は、式(15)のように表すことができる。
【0077】
【0078】
スパイキングニューロンは、膜電位vが閾値よりも小さい状態から閾値に達したときに発火するので、式(15)に示されるように、膜電位vが単調増加する時間区間で発火する。
【0079】
図6は、各時間区間内で単調である場合の膜電位の時間発展の例を示す図である。
図6のグラフの横軸は時刻を示し、縦軸は電位を示す。
V
thは、膜電位の閾値を示す。線L1は、膜電位を示す。
時刻t
rec
k-1は、前段スパイキングニューロンからのスパイク到達時刻のうちk-1番目の到達時刻を示す。膜電位v[k-1]は、k-1番目の到達時刻における対象スパイキングニューロンの膜電位を示す。
【0080】
時刻trec
kは、前段スパイキングニューロンからのスパイク到達時刻のうちk番目の到達時刻を示す。膜電位v[k]は、k番目の到達時刻における対象スパイキングニューロンの膜電位を示す。
時刻trec
k+1は、前段スパイキングニューロンからのスパイク到達時刻のうちk+1番目の到達時刻を示す。膜電位v[k+1]は、k+1番目の到達時刻における対象スパイキングニューロンの膜電位を示す。
【0081】
図6の例で、時刻t
rec
1からt
rec
kまでの各時刻における膜電位v[1]からv[k]までは、何れも閾値V
thよりも低い(小さい)。一方、時刻t
rec
k+1における膜電位v[k+1]は、閾値V
thよりも高い(大きい)。中間値の定理より、時刻t
rec
kからt
rec
k+1までの時間区間[t
rec
k,t
rec
k+1]内に、膜電位が閾値V
thと等しくなる時刻、すなわち、対象スパイキングニューロンの発火時刻t
firが存在する。
【0082】
発火時刻演算部13が、前段スパイキングニューロンからのスパイクの到達時刻trec
1、trec
2、・・・の順に、膜電位v[1]、v[2]、・・・と閾値Vthとを比較し、膜電位vが閾値Vthよりも高くなる最初の到達時刻trec
k+1を特定するようにしてもよい。これにより、発火時刻演算部13は、対象スパイキングニューロンの発火時刻が含まれる時間区間を、前段スパイクニューロンのk番目の到達時刻trec
kから、k+1番目の到達時刻trec
k+1までの時間区間[trec
k,trec
k+1]に特定することができる。
【0083】
図6は、膜電位vが閾値V
thに達したときに膜電位vのリセットを行わない場合の例を示している。1つのスパイキングニューロンが最大で1回のみ発火するという条件が設けられている場合は、2回目以降の発火の有無を判定する必要がなく、したがって、膜電位vをリセットする必要もない。
一方、1つのスパイキングニューロンが2回以上発火し得る場合は、発火時刻演算部13が、膜電位vが閾値V
thに達していると判定した時刻の膜電位vから、閾値V
thに相当する電位を減算するようにしてもよい。
【0084】
図6の例の場合、発火時刻演算部13は、時刻t
rec
k+1における膜電位v[k+1]が閾値V
thに達している(v[k+1]≧V
th)と判定する。そこで、発火時刻演算部13が、時刻t
rec
k+1における膜電位v[k+1]から閾値V
thを減算する(v[k+1]:=v[k+1]-V
th)ようにしてもよい。そして、発火時刻演算部13が、閾値V
thを減算した後のv[k+1]に基づいてv[k+2]、v[k+3]、・・・を算出するようにしてもよい。
【0085】
あるいは、mを1、2、・・・として、mVthの閾値を設定しておくようにしてもよい。そして、発火時刻演算部13が、膜電位vがmVthの閾値に到達した場合、対象スパイキングニューロンがm回目の発火を行うものとして扱うようにしてもよい。
【0086】
時刻trec
kから時刻trec
k+1までの時間区間[trec
k,trec
k+1]における膜電位が時刻の1次関数で示される場合、式(15)を満たすkが見つかれば、対象スパイキングニューロンの発火時刻tfirについて、式(4)を用いて式(16)が得られる。
【0087】
【0088】
式(16)を解くと、対象スパイキングニューロンの発火時刻tfirは式(17)で計算することができる。
【0089】
【0090】
(実施形態に係るニューラルネットワーク装置の発火時刻演算の省略手法について)
発火時刻tfirを含む時間区間を特定するための式(15)を満たすkを効率的に計算する手法を説明する。式(12)から式(14)までに基づくと、膜電位が式(18)を満たすことがわかる。
【0091】
【0092】
ここで、0≦trec
k+1-trec
kであるため、ws[k]≦0であればv[k+1]≦v[k]となり、発火の条件式である式(15)を満たさないことがわかる。そこで、発火時刻演算部13がws[k]の符号を判定し、ws[k]≦0と判定した場合は、そのkについて式(15)を満たすか否かの判定を省略するようにしてもよい。この場合、発火時刻演算部13は、式(14)によるv[k+1]の計算を省略することができる。
【0093】
(実施形態に係るニューラルネットワークの動作)
図7は、ニューラルネットワーク装置10が対象スパイキングニューロンの発火時刻を計算する処理手順の例を示すフローチャートである。
(ステップS101)
発火時刻演算部13は、スパイクの到着時刻のインデックスkの値を1に設定する。代入を「←」で示している。
【0094】
(ステップS102)
発火時刻演算部13は、ws[k]の値、およびwts[k]の値を計算する。
ニューラルネットワーク装置10が複数のスパイキングニューロンの計算を並列実行しており、対象スパイキングニューロンにk番目のスパイクが未だ到達していない場合は、発火時刻演算部13は、k番目のスパイクの到達を待ってステップS102の処理を行うことができる。
k≧2の場合、すなわち、ステップS102の処理の2回目以降の実行では、上記の式(12)および式(13)に示されるように、発火時刻演算部13は、前回のステップS102の処理における計算結果を用いて効率的に計算を行うことができる。
【0095】
(ステップS103)
発火時刻演算部13は、ステップS102で計算したws[k]の値が0より大きいか否かを判定する。上述したように、ws[k]≦0の場合は、式(15)を満たすか否かの判定を省略できるからである。
ws[k]>0であると判定した場合(ステップS103:YES)、処理がステップS111へ進む。
ws[k]≦0であると判定した場合(ステップS103:NO)、処理がステップS161へ進む。
【0096】
(ステップS111)
発火時刻演算部13は、k=Nか否かを判定する。すなわち、発火時刻演算部13は、予め定められている個数のスパイクが全て対象スパイキングニューロンに到達したか否かを判定する。
Nが前段スパイキングニューロンとの結合の個数であり、かつ、前段スパイキングニューロンのうち発火しないことが確定したスパイキングニューロンがある場合、発火時刻演算部13が、前段スパイキングニューロンの何れかが発火しないことが確定する毎に、Nの値を1ずつ小さくする(N:=N-1)ようにしてもよい。
k≠Nと発火時刻演算部13が判定した場合(ステップS111:NO)、処理がステップS121へ進む。
k=Nと発火時刻演算部13が判定した場合(ステップS111:YES)、処理がステップS131へ進む。
【0097】
(ステップS121)
発火時刻演算部13は、v[k+1]を計算する。
上記の式(14)に示されるように、発火時刻演算部13は、ws[k]およびwts[k]を用いて効率的にv[k+1]を計算することができる。
ニューラルネットワーク装置10が複数のスパイキングニューロンの計算を並列実行しており、対象スパイキングニューロンにk+1番目のスパイクが未だ到達していない場合は、発火時刻演算部13は、k+1番目のスパイクの到達を待ってステップS121の処理を行うことができる。
【0098】
(ステップS122)
発火時刻演算部13は、時刻trec
kからtrec
k+1までの時間区間[trec
k,trec
k+1]の間に対象スパイキングニューロンが発火するか否かを判定する。具体的には、発火時刻演算部13は、上記の式(15)に示されるv[k]≦Vth≦v[k+1]が成立するか否かを判定する。
【0099】
発火時刻演算部13がステップS122の処理を行う場合、対象スパイキングニューロンは時刻trec
kまでには発火していないので、v[k]≦Vthが成立していることになる。したがって、発火時刻演算部13は、式(15)のうち右側の不等式が成立するか否かの判定、すなわち、Vth≦v[k+1]が成立するか否かの判定のみを行えばよい。
v[k]≦Vth≦v[k+1]が成立すると判定した場合(ステップS122:YES)、処理がステップS131へ進む。
v[k]≦Vth≦v[k+1]が成立していないと判定した場合(ステップS122:NO)、処理がステップS141へ進む。
【0100】
(ステップS131)
発火時刻演算部13は、時刻t
rec
kからt
rec
k+1までの時間区間[t
rec
k,t
rec
k+1]の範囲内で、対象スパイキングニューロンの発火時刻を計算し出力する。
ステップS122:YESにて処理がステップS131に遷移する場合、
図6を参照して説明したのと同様、中間値の定理より、時刻t
rec
kからt
rec
k+1までの時間区間[t
rec
k,t
rec
k+1]内に対象スパイキングニューロンの発火時刻t
firが存在する。
t
rec
kからt
rec
k+1までの時間区間[t
rec
k,t
rec
k+1]において対象スパイキングニューロンの膜電位が時刻の一次関数で示される場合は、発火時刻演算部13は、上述した式(17)を用いて発火時刻を計算することができる。
【0101】
ステップS111:YESにて処理がステップS131に遷移する場合、ステップS103:YESにより、ws[N]>0が成立している。したがって、時刻trec
N以降は、対象スパイキングニューロンの膜電位は単調増加である。また、時刻trec
Nまでには対象スパイキングニューロンは発火しておらず、v[N]<Vthが成立する。これらにより、時刻trec
N以降のある時刻において、対象スパイキングニューロンの膜電位v[N]が閾値Vthに到達する。すなわち、時刻trec
N以降に、対象スパイキングニューロンの発火時刻tfirが必ず存在する。
【0102】
時刻t
rec
N以降における対象スパイキングニューロンの膜電位が時刻の一次関数で示される場合、発火時刻演算部13は、上述した式(17)を用いて発火時刻t
firを計算することができる。
例えば、発火時刻演算部13は、時刻t
rec
Nにおける膜電位と閾値との差V
th-v[N]を算出する。そして、発火時刻演算部13は、算出した差V
th-v[N]を、時刻t
rec
N以降における単位時間当たりの膜電位の増加量dv(t)/dtで除算して、膜電位が差V
th-v[N]だけ増加するのに要する時間t
diffを算出する。そして、発火時刻演算部13は、算出した時間t
diffを時刻t
rec
Nに加算して、t
fir=t
rec
N+t
diffと算出する。
ステップS131の後、ニューラルネットワーク装置10は、
図7の処理を終了する。
【0103】
(ステップS141)
発火時刻演算部13は、インデックスkの値を1だけ増加させる。
ステップS141の後、処理がステップS102へ戻る。
【0104】
(ステップS151)
発火時刻演算部13は、対象スパイキングニューロンが発火しないと算出する。したがって、発火時刻演算部13は、対象スパイキングニューロンの発火時刻の計算結果として、発火無しとの情報を出力する。
処理がステップS151に遷移する場合、ステップS103:NOにより、ws[N]≦0が成立している。したがって、時刻t
rec
N以降は、対象スパイキングニューロンの膜電位は単調減少(少なくとも広義の単調減少)である。また、時刻t
rec
Nまでには対象スパイキングニューロンは発火しておらず、v[N]<V
thが成立する。これらにより、時刻t
rec
N以降も対象スパイキングニューロンの膜電位v[N]が閾値V
thに到達することはなく、対象スパイキングニューロンは発火しない。
ステップS151の後、ニューラルネットワーク装置10は、
図7の処理を終了する。
【0105】
(ステップS161)
発火時刻演算部13は、k=Nか否かを判定する。
k=Nと発火時刻演算部13が判定した場合(ステップS161:YES)、処理がステップS151へ遷移する。
k≠Nと発火時刻演算部13が判定した場合(ステップS161:NO)、処理がステップS141へ遷移する。
【0106】
(実施形態に係る効果)
以上のように、スパイキングニューロンは、スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が膜電位と閾値との比較で示される。発火時刻演算部13は、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、対象スパイキングニューロンの発火時刻が含まれる時間区間の候補の絞り込みを行う。
ニューラルネットワーク装置10によれば、発火時刻の計算対象の時間区間を絞り込むことができ、この点で、対象スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
例えば、ニューラルネットワーク装置10が、発火時刻の計算対象の時間区間を1つの時間区間に絞り込んだ場合、その時間区間内における発火時間を求める処理を1回のみ行えばよい。さらに例えば、発火時間を求める処理に除算が含まれる場合、その除算を行う回数が1回で済む。ニューラルネットワーク装置10の処理をハードウェア的な計算で行う場合、除算回路を小さくすることができ回路面積が比較的小さくて済む。
【0107】
また、発火時刻演算部13は、スパイキングニューロンがスパイクを受ける時刻毎の膜電位と閾値との比較に基づいて、時間区間のうち対象スパイキングニューロンの発火時刻が含まれる時間区間を特定する。
ニューラルネットワーク装置10によれば、時間区間の候補の絞り込みの段階では、スパイキングニューロンがスパイクを受ける時刻毎の膜電位を計算すればよい。したがって、発火時刻が含まれる候補から除外された時間区間については、スパイキングニューロンがスパイクを受けた後、次のスパイクを受ける前までの時間における膜電位を計算する必要がない。ニューラルネットワーク装置10によれば、この点で、対象スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
【0108】
また、発火時刻演算部13は、スパイキングニューロンがスパイクを受ける時刻毎の膜電位を、そのスパイキングニューロンが膜電位計算対象のスパイクを受けるまでに受けた全てのスパイクに対する重み係数(結合重み)に関する級数を用いて算出する。
ニューラルネットワーク装置10では、重み係数に関する級数の値を求める際に、前回スパイキングニューロンがスパイクを受けたときに算出した級数の値を用いることができる。ニューラルネットワーク装置10によれば、この点で、対象スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
【0109】
また、発火時刻演算部13は、スパイキングニューロンが、あるスパイクを受けるまでに受けた全てのスパイクに対する重み係数(結合重み)の合計が正か否かに基づいて、発火時刻が含まれない時間区間を特定する。
ニューラルネットワーク装置10では、重み係数の合計を算出する簡単な計算、および、算出した合計が正か否かを判定するという簡単な処理で、発火時刻が含まれない時間区間を特定し、発火時刻が含まる時間区間の候補から除外することができる。ニューラルネットワーク装置10によれば、この点で、対象スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
さらに、ニューラルネットワーク装置10では、重み係数の合計を算出する際に、前回スパイキングニューロンがスパイクを受けたときに算出した重み係数の合計を用いることができる。ニューラルネットワーク装置10によれば、この点でさらに、対象スパイキングニューロンの発火時刻の計算負荷を軽くすることができる。
【0110】
また、スパイキングニューロンがスパイクを受けてから次のスパイクを受けるまでの時間における膜電位を示す時刻の単調関数は、時刻の一次関数である。発火時刻演算部13は、閾値Vthと、対象スパイキングニューロンの発火時刻tfirが含まれると判定された時間区間の開始時刻trec
kまでに受ける全てのスパイクに対する重み係数の合計ws[k]と、その開始時刻trec
kまでに受ける各スパイクについての、そのスパイクに対する重み係数とそのスパイクの到達時刻との積の合計wts[k]とに基づいて、発火時刻を算出する。
ニューラルネットワーク装置10では、これらの値を用いた簡単な計算で、発火時刻を算出することができる。さらには上記のように、ws[k]の値、および、wts[k]の値は、級数として簡単に計算することができる。ニューラルネットワーク装置10によれば、この点で、対象スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
【0111】
図8は、実施形態に係るニューラルネットワーク装置の構成例を示す図である。
図8に示す構成で、ニューラルネットワーク装置200は、発火時刻演算部201を備える。かかる構成で、発火時刻演算部201は、スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が前記膜電位と閾値との比較で示されるスパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、スパイキングニューロンの発火時刻が含まれる時間区間の候補の絞り込みを行う。
発火時刻演算部201は、発火時刻演算手段の例に該当する。
【0112】
ニューラルネットワーク装置200によれば、発火時刻の計算対象の時間区間を絞り込むことができ、この点で、スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
例えば、ニューラルネットワーク装置200が、発火時刻の計算対象の時間区間を1つの時間区間に絞り込んだ場合、その時間区間内における発火時間を求める処理を1回のみ行えばよい。さらに例えば、発火時間を求める処理に除算が含まれる場合、その除算を行う回数が1回で済む。ニューラルネットワーク装置200の処理をハードウェア的な計算で行う場合、除算回路を小さくすることができ回路面積が比較的小さくて済む。
【0113】
図9は、実施形態に係る発火時刻演算方法における処理手順の例を示す図である。
図9に示す発火時刻演算方法は、発火時刻の演算を行う工程(ステップS201)を含む。
発火時刻の演算を行う工程(ステップS201)では、スパイクを受けてから次のスパイクを受けるまでの時間における膜電位が時刻の単調関数で示され、発火条件が膜電位と閾値との比較で示されるスパイキングニューロンが、スパイクを受けてから次にスパイクを受けるまでの各時間区間のうち、スパイキングニューロンの発火時刻が含まれる時間区間の候補の絞り込みを行う。
【0114】
図9に示す発火時刻演算方法では、発火時刻の計算対象の時間区間を絞り込むことができ、この点で、スパイキングニューロンの発火時刻の計算負荷を比較的軽くすることができる。
例えば、
図9に示す発火時刻演算方法で、発火時刻の計算対象の時間区間を1つの時間区間に絞り込んだ場合、その時間区間内における発火時間を求める処理を1回のみ行えばよい。
【0115】
ニューラルネットワーク装置10およびニューラルネットワーク装置200の全部または一部が専用ハードウェアに実装されていてもよい。
図10は、少なくとも1つの実施形態に係る専用ハードウェアの構成例を示す概略ブロック図である。
図10に示す構成で、専用ハードウェア500は、CPU510と、主記憶装置520と、補助記憶装置530と、インタフェース540とを備える。
【0116】
ニューラルネットワーク装置10が専用ハードウェア500に実装される場合、計算部12およびその各部の動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、プログラムを補助記憶装置530から読み出して主記憶装置520に展開し、当該プログラムに従って上記処理を実行する。
また、CPU510は、プログラムに従って、モデル記憶部11に対応する記憶領域を主記憶装置520に確保する。
ニューラルネットワーク装置10が他の装置と通信を行う場合、インタフェース540が通信機能を有し、CPU510の制御に従って通信を行うことで実行される。
【0117】
ニューラルネットワーク装置200が専用ハードウェア500に実装される場合、発火時刻演算部201の動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、プログラムを補助記憶装置530から読み出して主記憶装置520に展開し、当該プログラムに従って上記処理を実行する。
【0118】
専用ハードウェア500に加えて、あるいは代えて、パソコン(Personal Computer;PC)またはGraphical Processing Unit(GPU)等の汎用ハードウェアを用いるようにしてもよく、この場合の処理も、上述した専用ハードウェア500の場合の処理と同様である。
【0119】
なお、ニューラルネットワーク装置10、および、ニューラルネットワーク装置200が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0120】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0121】
10、200 ニューラルネットワーク装置
11 モデル記憶部
12 計算部
13、201 発火時刻演算部
【0122】
この出願は、2020年7月20日に出願された日本国特願2020-124065を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0123】
本発明は、ニューラルネットワーク装置、発火時刻演算方法および記録媒体に適用してもよい。