IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧 ▶ 国立大学法人 東京大学の特許一覧

特許7240650スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム
<>
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図1
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図2
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図3
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図4
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図5
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図6
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図7
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図8
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図9
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図10
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図11
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図12
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図13
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図14
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図15
  • 特許-スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-08
(45)【発行日】2023-03-16
(54)【発明の名称】スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム
(51)【国際特許分類】
   G06N 3/049 20230101AFI20230309BHJP
【FI】
G06N3/049
【請求項の数】 6
(21)【出願番号】P 2021522238
(86)(22)【出願日】2020-05-18
(86)【国際出願番号】 JP2020019652
(87)【国際公開番号】W WO2020241356
(87)【国際公開日】2020-12-03
【審査請求日】2021-11-25
(31)【優先権主張番号】P 2019101531
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】酒見 悠介
(72)【発明者】
【氏名】森野 佳生
(72)【発明者】
【氏名】合原 一幸
【審査官】千葉 久博
(56)【参考文献】
【文献】米国特許出願公開第2019/0042916(US,A1)
【文献】黒江康明,スパイキングニューラルネットワーク-学習法を中心として,システム/制御/情報,システム制御情報学会,2004年02月15日,第48巻, 第2号,pp.57-62,ISSN:0916-1600
【文献】MOSTAFA, Hesham,Supervised learning based on temporal coding in spiking neural networks,IEEE [online],2017年08月01日,pp.3227-3235,[検索日 2020.07.17], インターネット:<URL: https://ieeexplore.ieee.org/abstract/document/7999227>,Electronic ISSN: 2162-2388, <DOI: 10.1109>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/049
(57)【特許請求の範囲】
【請求項1】
時間方式のスパイキングニューラルネットワークと、
前記スパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を含むコスト関数を用いた教師あり学習にて行わせる学習処理手段と、
を備えるスパイキングニューラルネットワークシステム。
【請求項2】
前記学習処理手段は、出力スパイクの時刻情報と、定数である参照時刻との差分に基づく前記正則化項を用いた前記学習を行わせる、
請求項1に記載のスパイキングニューラルネットワークシステム。
【請求項3】
前記学習処理手段は、前記差分の二乗誤差に基づく前記正則化項を用いた前記学習を行わせる、
請求項に記載のスパイキングニューラルネットワークシステム。
【請求項4】
時間方式のスパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行わせる学習処理手段
を備える学習処理装置。
【請求項5】
時間方式のスパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行う工程
を含む学習処理方法。
【請求項6】
コンピュータに、
時間方式のスパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行う工程
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラムに関する。
【背景技術】
【0002】
(スパイキングニューラルネットワークについて)
ニューラルネットワークの一形態として、順伝搬型(Feed-Forward)スパイキングニューラルネットワーク(Spiking Neural Network;SNN)およびリカレント(Recurrent、再帰型)スパイキングニューラルネットワークといったスパイキングニューラルネットワークがある。スパイキングニューラルネットワークとは、スパイキングニューロンモデル(スパイキングニューロン、または、単にニューロンとも称する)が結合しネットワークを形成したものである。
【0003】
(順伝搬型スパイキングニューラルネットワークについて)
順伝搬型とは、ネットワークの形態の一つであり、層から層への結合における情報伝達が一方向のネットワークのことである。順伝搬型スパイキングニューラルネットワークの各層は1つ以上のスパイキングニューロンで構成されており、同層内のスパイキングニューロン間の結合は存在しない。
【0004】
図11は、順伝搬型スパイキングニューラルネットワークの階層構造の例を示す図である。図11は、順伝搬4層スパイキングニューラルネットワークの例を示している。但し、順伝搬型スパイキングニューラルネットワークの層数は、4層に限定されず2層以上であればよい。
図11に例示されるように順伝搬型スパイキングニューラルネットワークは階層構造に構成され、データの入力を受けて演算結果を出力する。スパイキングニューラルネットワークが出力する演算結果を予測値または予測とも称する。
スパイキングニューラルネットワークの第1層(図11の例では、層1011)は入力層と呼ばれ、最後の層(図11の例では、第4層(層1014))は出力層と呼ばれる。入力層と出力層との間にある層(図11の例では、第2層(層1012)および第3層(層1013))は隠れ層と呼ばれる。
【0005】
図12は、順伝搬型スパイキングニューラルネットワークの構成例を示す図である。図12は、図11における4つの層(層1011~1014)が、それぞれ3つのスパイキングニューロン(スパイキングニューロンモデル)1021を有している場合の例を示している。但し、順伝搬型スパイキングニューラルネットワークが備えるスパイキングニューロンの個数は、特定の個数に限定されず、各層が1つ以上のスパイキングニューロンを備えていればよい。各層が同じ個数のスパイキングニューロンを備えていてもよいし、層によって異なる個数のスパイキングニューロンを備えていてもよい。
【0006】
スパイキングニューロン1021は、生物学的神経細胞の細胞体部による信号の統合およびスパイクの生成(発火)を模擬する。
伝達経路1022は、生物学的神経細胞の軸索およびシナプスによる信号の伝達を模擬する。伝達経路1022は、隣り合う層間の2つのスパイキングニューロン1021を結んで配置され、前段層のスパイキングニューロン1021から後段層側のスパイキングニューロン1021へスパイクを伝達する。
また、伝達経路1022は、隣り合う層間に限らず、ある層のスパイキングニューロン1021と、その層から、任意の数の層を飛ばした先の層のスパイキングニューロン1021を結んで配置されていてもよく、これらの層間でスパイクを伝達することができる。
【0007】
図12の例では、伝達経路1022は、層1011のスパイキングニューロン1021の各々から層1012のスパイキングニューロン1021の各々へ、層1012のスパイキングニューロン1021の各々から層1013のスパイキングニューロン1021の各々へ、および、層1013のスパイキングニューロン1021の各々から層1014のスパイキングニューロン1021の各々へ、スパイクを伝達する。
【0008】
(リカレントスパイキングニューラルネットワークについて)
リカレントとは、ネットワークの形態の一つであり、再帰結合をもつネットワークのことである。リカレントスパイキングニューラルネットワークの構成は、あるスパイキングニューロンで発生したスパイクが、直接自分自身へ入力される場合、または、他のスパイキングニューロンを経由して、自分自身へスパイクが入力される場合を含む構成である。あるいは、1つのリカレントスパイキングニューラルネットワークが、あるスパイキングニューロンで発生したスパイクが、直接自分自身へ入力される場合と、他のスパイキングニューロンを介して、自分自身へスパイクが入力される場合との両方を含んでいてもよい。
【0009】
図13は、リカレントスパイキングニューラルネットワークの構成例を示す図である。図13に例示されるリカレントスパイキングニューラルネットワークは、4つのスパイキングニューロンを備える。但し、リカレントスパイキングニューラルネットワークが備えるスパイキングニューロンの個数は、特定の個数に限定されず、1つ以上のスパイキングニューロンを備えていればよい。
【0010】
スパイキングニューロン10000は、生物学的神経細胞の細胞体部による信号の統合およびスパイクの生成(発火)を模擬する。
伝達経路10001及び伝達経路10002は、生物学的神経細胞の軸索およびシナプスによる信号の伝達を模擬する。伝達経路10001は、2つのスパイキングニューロン10000を結んで配置され、あるスパイキングニューロン10000からあるスパイキングニューロン10000へスパイクを伝達する。伝達経路10002は、自分自身へ帰還する結合であり、あるスパイキングニューロン10000が、自分自身へスパイクを伝達する。
【0011】
(スパイキングニューロンモデルの説明)
スパイキングニューロンモデルは、膜電位を内部状態として持ち、膜電位が微分方程式に従って時間発展するモデルである。一般的なスパイキングニューロンモデルとして、漏れ積分発火ニューロンモデルが知られており、膜電位が式(1)のような微分方程式に従って時間発展する。
【0012】
【数1】
【0013】
ここで、v(n) は、第n層のi番目のスパイキングニューロンモデルにおける膜電位を示す。αleakは、漏れ積分発火モデルにおける漏れの大きさを示す定数の係数である。I(n) は、第n層のi番目のスパイキングニューロンモデルにおけるシナプス後電流を示す。w(n) ijは、第n-1層のj番目のスパイキングニューロンモデルから第n層のi番目のスパイキングニューロンモデルへの結合の強さを示す係数であり、重みと呼ばれる。
tは時刻を示す。t(n-1) は第n-1層のj番目のニューロンの発火タイミング(発火時刻)を示す。r(・)は前段の層から伝達されたスパイクがシナプス後電流へ与える影響を示す関数である。
【0014】
膜電位が閾値Vthを超えると、そのスパイキングニューロンモデルはスパイクを生成し(発火)、その後、膜電位はリセット値Vresetへと戻る。また、生成されたスパイクは、結合している後段層のスパイキングニューロンモデルへと伝達される。
【0015】
図14は、スパイキングニューロンの膜電位の時間発展の例を示す図である。図14のグラフの横軸は時刻を示し、縦軸は、膜電位を示す。図14は、第n層のi番目のスパイキングニューロンの膜電位の時間発展の例を示しており、膜電位は、v(n) と表されている。
上記のように、Vthは、膜電位の閾値を示す。Vresetは、膜電位のリセット値を示す。t(n-1) は第n-1層の1番目のニューロンの発火タイミングを示す。t(n-1) は第n-1層の2番目のニューロンの発火タイミングを示す。t(n-1) は第n-1層の3番目のニューロンの発火タイミングを示す。
時刻t(n-1) における1番目の発火および時刻t(n-1) における3番目の発火では、何れも膜電位v(n) は閾値Vthに達していない。一方、時刻t(n-1) における2番目の発火では、膜電位v(n) が閾値Vthに達し、その後すぐに、リセット値であるVresetに低下している。
【0016】
スパイキングニューラルネットワークはCMOS(Complementary MOS)などでハードウェア化したときに、深層学習モデルよりも消費電力を下げられると期待されている。その理由の一つは、人の脳は30ワット(W)相当の低消費電力な計算媒体であり、スパイキングニューラルネットワークはそのような低消費電力の脳の活動を模倣することができるためである。
【0017】
脳相当の低消費電力のハードウェアを作るには、脳の計算原理に倣い、スパイキングニューラルネットワークのアルゴリズムを開発していくことが必要である。例えば、画像認識を、スパイキングニューラルネットワークを用いて行えることが知られており、幾つかの教師あり学習アルゴリズムおよび教師なし学習アルゴリズムが開発されてきた。
【0018】
(スパイキングニューラルネットワークにおける情報伝達方式について)
スパイキングニューラルネットワークのアルゴリズムでは、スパイクによる情報伝達方式において幾つかの手法があり、特に、頻度方式と時間方式とが用いられている。
頻度方式では、一定時間間隔の間に、ある特定のニューロンが何回発火したかで情報を伝達する。一方、時間方式では、スパイクのタイミングで情報を伝達する。
【0019】
図15は、頻度方式、時間方式それぞれにおけるスパイクの例を示す図である。図15の例で、頻度方式では、「1」、「3」、「5」の情報を、その情報に応じたスパイク数で示している。一方、時間方式では、「1」、「3」、「5」の情報の何れの場合もスパイク数は1つであり、情報に応じたタイミングでスパイクを生成することで、その情報を示している。図15の例では、ニューロンは、情報としての数が大きくなるほど遅いタイミングでスパイクを生成している。
【0020】
図15に示すように、時間方式は、頻度方式に比べて、少ないスパイク数で情報を表すことができる。非特許文献1では、画像認識等のタスクにおいて、時間方式は頻度方式の10分の1以下のスパイク数で実行できることが報告されている。
ハードウェアの消費電力は、スパイク数の増加によって増加するため、時間方式のアルゴリズムを用いると消費電力を削減することができる。
【0021】
(スパイキングニューラルネットワークによる予測について)
スパイキングニューラルネットワークを用いることで、様々な課題を解くことができることが報告されている。例えば、図11のようなネットワーク構成において、入力層に画像データを入力し、スパイキングニューラルネットワークが、画像のラベルを予測するようにできる。時間方式の場合、予測値の出力方法として、例えば、出力層のニューロンのうち最も早く発火(スパイクを生成)したニューロンに対応するラベルによって予測値を示すことができる。
【0022】
(スパイキングニューラルネットワークの学習について)
スパイキングニューラルネットワークが正しく予測を行うには学習プロセスが必要である。例えば、画像を認識する学習タスクでは、画像データと、その解答であるラベルデータとが用いられる。
【0023】
(学習パラメータについて)
ここでいう学習とは、ネットワークの一部のパラメータの値を変化させるプロセスである。この値を変化させるパラメータを学習パラメータと称する。学習パラメータとして、例えば、ネットワークの結合強度や、スパイクの伝達遅延などが用いられる。以下、学習パラメータとして重みと表現するが、以下の説明は結合強度に限らず、一般の学習パラメータへと拡張可能である。
【0024】
学習では、スパイキングニューラルネットワークは、データの入力を受けて予測値を出力する。そして、スパイキングニューラルネットワークに学習を行わせるための学習機構が、スパイキングニューラルネットワークが出力する予測値とラベルデータ(正解)との差などから定義される予測誤差を算出する。学習機構は、予測誤差から定義されるコスト関数を、スパイキングニューラルネットワークにおけるネットワークの重みの最適化によって最小化することで、スパイキングニューラルネットワークに学習を行わせる。
【0025】
(コスト関数の最小化について)
例えば、学習機構が、式(2)のように重みを繰り返し更新することで、コスト関数Cを最小化することができる。
【0026】
【数2】
【0027】
ここで、Δw(l) ijは、重みw(l) ijの増減を示す。Δw(l) ijの値が正の場合、重みw(l) ijを増加させる。Δw(l) ijの値が負の場合、重みw(l) ijを減少させる。
ηは学習係数と呼ばれる定数である。
Cはコスト関数であり、通常、式(3)のように損失関数Lと正則化項Rとを用いて構成される。
【0028】
【数3】
【0029】
損失関数Lの値を小さくすることは、機械学習プロセスにおいて訓練時のエラーを小さくすることに相当し、正則化項Rは、汎化性能を高めるためなどの理由で加えられる。
なお、以下では表記を単純化するため、コスト関数の表記を単一データに関して行うが、実際の学習においては学習データすべてに対しての総和でコスト関数を定義する。
【0030】
(二乗誤差による損失関数の定義について)
スパイキングニューラルネットワークにおいて、式(4)のように出力層のスパイク発生時刻と教師スパイクの発生時刻との差によって損失関数Lを定義する方法が、非特許文献2等により知られている。
【0031】
【数4】
【0032】
(M) は、出力層(第M層)のi番目のニューロンのスパイク発生時刻を示す。t(T) は、出力層(第M層)のi番目のニューロンの、教師スパイクの発生時刻(正解として与えられるスパイク発生時刻)を示す。
【0033】
(ソフトマックス関数の対数尤度損失関数の定義について)
人工ニューラルネットワークにおいては、分類タスクで、式(5)のように示されるようにソフトマックス関数の(負の)対数尤度の和として損失関数Lを定義する方法が知られている。
【0034】
【数5】
【0035】
κは、教師ラベルデータであり、正解ラベルのとき1を出力し、それ以外のときは0を出力する。lnは、自然対数を示す。Sはソフトマックス(Softmax)と呼ばれる関数である。output[i]は、出力層のi番目のニューロンの出力を示す。
式(5)の損失関数Lについて、分類問題において学習を高速化する効果が知られている。
また、非特許文献3では、出力層ニューロンの出力を式(6)のように表し、この式(6)を用いて多層スパイキングニューラルネットワークの損失関数Lを上記の式(5)のように定義する例が示されている。
【0036】
【数6】
【0037】
(M) は、第M層(出力層)のi番目のニューロンの発火タイミングを示す。
式(6)は、出力スパイクの時刻t(M) を指数関数expにより変換している。この場合のソフトマックス関数(式(6)を式(5)に代入したSm)をz領域でのソフトマックス関数の定義と称する。
【0038】
(確率的勾配降下法について)
確率的勾配降下法では、一部の訓練データを用いて重みを一度更新する。すなわち、訓練データを、重なり合わないN個のグループに分け、各グループのデータに対して勾配を計算し、重みを順次更新する。また、そのN個のグループのそれぞれを用いて計N回重みを順次更新したとき、学習が1エポック分進んだと表現する。確率的勾配降下法では、一般に、数十から数百のエポックを実行して学習を収束させる。また、一つのデータのみ(1つの入力データと1つのラベルデータ)で重みを更新することをオンライン学習と呼び、二つ以上のデータを用いて更新することをミニバッチ学習と呼ぶ。
【0039】
(学習速度について)
確率的勾配降下法では、ネットワークの重みを繰り返し更新する必要がある。コスト関数をより小さくすることが好ましいことに加え、より少ない更新数でコスト関数を小さくできることが望ましい。このとき、より少ない更新数でコスト関数を最小化することを、学習が速いと表現する。逆に、より多くの更新数をコスト関数の最小化のために費やすことを、学習が遅いと表現する。学習が速いことで、学習結果が速く収束する。
【0040】
(予測結果の出力について)
前述のように、順伝搬型スパイキングニューラルネットワークを用いることで、様々な課題を解くことができることが報告されている。例えば上記のように、入力層に画像データを入力し、ネットワークが、その画像のラベルを予測するようにできる。
【0041】
図16は、スパイキングニューラルネットワークの予測結果の出力表現の例を示す図である。例えば、0から2までの3個の数字の画像を認識するタスクにおいては、図16に示すように、3個のニューロンが出力層を構成し、それぞれが0から2までの数字に対応しており、そのうち最も早く発火したニューロンが示す数字がネットワークの示す予測となる。なお、このネットワークの動作は、ニューロンの発火タイミングによって情報がコーディングされているので、時間方式である。
【先行技術文献】
【非特許文献】
【0042】
【文献】T. Liu、外5名、“MT-spike: A multilayer time-based spiking neuromorphic architecture with temporal error backpropagation”、Proceedings of the 36th International Conference on Computer-Aided Design、IEEE Press、2017年、p.450-457
【文献】S. M. Bohte、外2名、“Error-backpropagation in temporally encoded networks of spiking neurons”、Neurocomputing、第48巻、2002年、p.17-37
【文献】H. Mostafa、“Supervised Learning Based on Temporal Coding in Spiking Neural Networks”、IEEE Transactions on Neural Networks and Learning Systems、第29、2018年、p.3227-3235
【発明の概要】
【発明が解決しようとする課題】
【0043】
時間方式のスパイキングニューラルネットワークの学習をより安定的に行えることが好ましい。
【0044】
本発明は、上述の課題を解決することのできるスパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0045】
本発明の第1の態様によれば、スパイキングニューラルネットワークシステムは、時間方式のスパイキングニューラルネットワークと、前記スパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行わせる学習処理手段と、を備える。
【0046】
本発明の第2の態様によれば、学習処理装置は、時間方式のスパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行わせる学習処理手段を備える。
【0047】
本発明の第3の態様によれば、学習処理方法は、時間方式のスパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行う工程を含む。
【0048】
本発明の第4の態様によれば、プログラムは、コンピュータに、時間方式のスパイキングニューラルネットワークの学習を、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける前記時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、前記スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行う工程を実行させるためのプログラムである。
【発明の効果】
【0049】
本発明によれば、時間方式のスパイキングニューラルネットワークの学習をより安定的に行うことができる。
【図面の簡単な説明】
【0050】
図1】実施形態に係るニューラルネットワークシステムの概略構成の例を示す図である。
図2】実施形態に係るニューラルネットワーク装置が順伝搬型ニューラルネットワークとして構成される場合の階層構造の例を示す図である。
図3】実施形態に係るニューラルネットワーク装置が順伝搬型ニューラルネットワークとして構成される場合の構成例を示す図である。
図4】実施形態に係るニューラルネットワーク装置がリカレントニューラルネットワークとして構成される場合の構成例を示す図である。
図5】実施形態に係るシミュレーションにおける学習の進行状況の例を示すグラフである。
図6】実施形態に係るニューラルネットワークシステムの構成例を示す図である。
図7】実施形態に係る学習処理装置を示す図である。
図8】実施形態に係る学習処理方法における処理工程の例を示す図である。
図9】少なくとも1つの実施形態に係る専用ハードウェアの構成例を示す概略ブロック図である。
図10】少なくとも1つの実施形態に係るASICの構成例を示す概略ブロック図である。
図11】順伝搬型スパイキングニューラルネットワークの階層構造の例を示す図である。
図12】順伝搬型スパイキングニューラルネットワークの構成例を示す図である。
図13】リカレントスパイキングニューラルネットワークの構成例を示す図である。
図14】スパイキングニューロンの膜電位の時間発展の例を示す図である。
図15】頻度方式、時間方式それぞれにおけるスパイクの例を示す図である。
図16】スパイキングニューラルネットワークの予測結果の出力表現の例を示す図である。
【発明を実施するための形態】
【0051】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0052】
(実施形態に係るニューラルネットワークシステムの構成について)
図1は、実施形態に係るニューラルネットワークシステムの概略構成の例を示す図である。図1に示す構成で、ニューラルネットワークシステム1は、ニューラルネットワーク装置100と、コスト関数演算部200と、学習処理部300を備える。
【0053】
かかる構成で、ニューラルネットワーク装置100は、データの入力を受けて予測値を出力する。上述したように、ここでいう予測値は、ニューラルネットワークが出力する演算結果である。
コスト関数演算部200は、ニューラルネットワーク装置100が出力する予測値とラベルデータ(正解)とを、予め記憶しているコスト関数に入力してコスト関数値を算出する。コスト関数演算部200は、算出したコスト関数値を学習処理部300へ出力する。
【0054】
学習処理部300は、コスト関数演算部200が算出するコスト関数値を用いて、ニューラルネットワーク装置100に学習を行わせる。具体的には、学習処理部300は、コスト関数値を最小化するように、ニューラルネットワーク装置100のニューラルネットワークの重みを更新させる。
ニューラルネットワーク装置100と、コスト関数演算部200と、学習処理部300とが、別々の装置として構成されていてもよいし、これらのうち2つ以上が1つの装置として構成されていてもよい。学習処理部300が、学習処理装置として構成されていてもよい。
【0055】
(実施形態に係るニューラルネットワーク装置の構造について)
図2は、ニューラルネットワーク装置100が順伝搬型ニューラルネットワークとして構成される場合の階層構造の例を示す図である。図2の例で、ニューラルネットワーク装置100は順伝搬4層スパイキングニューラルネットワークに構成されている。但し、ニューラルネットワーク装置100の層数は、図2に示す4層に限らず2層以上であればよい。
【0056】
図2の例で、ニューラルネットワーク装置100は、順伝搬型スパイキングニューラルネットワークとして機能し、データの入力を受けて予測値を出力する。
ニューラルネットワーク装置100の各層のうち、第1層(層111)は入力層に該当する。最後の層(第4層、層114)は出力層に該当する。入力層と出力層との間にある層(第2層(層112)および第3層(層113))は隠れ層に該当する。
【0057】
図3は、ニューラルネットワーク装置100が順伝搬型ニューラルネットワークとして構成される場合の構成例を示す図である。図3は、図2における4つの層(層111~114)が、それぞれ3つのノード(ニューロンモデル部121)を有している場合の例を示している。但し、ニューラルネットワーク装置100が備えるニューロンモデル部121の個数は、特定の個数に限定されない。ニューラルネットワーク装置100が順伝搬型ニューラルネットワークとして構成される場合、各層が2つ以上のニューロンモデル部121を備えていればよい。各層が同じ個数のニューロンモデル部121を備えていてもよいし、層によって異なる個数のニューロンモデル部121を備えていてもよい。ニューラルネットワーク装置100がリカレントニューラルネットワークとして構成される場合、ニューラルネットワーク装置100が備えるニューロンモデル部121の個数は、特定の個数に限定されず、1つ以上のニューロンモデル部121を備えていればよい。
【0058】
図3の例で、ニューロンモデル部121は、スパイキングニューロン(スパイキングニューロンモデル)として構成され、細胞体部による信号の統合およびスパイクの生成(発火)を模擬する。
伝達処理部122は、軸索およびシナプスによる信号の伝達を模擬する。伝達処理部122は、任意の層間の2つのニューロンモデル部121を結んで配置され、前段層側のニューロンモデル部121から後段層側のニューロンモデル部121へスパイクを伝達する。
【0059】
図3の例では、伝達処理部122は、層111のニューロンモデル部121の各々から層112のニューロンモデル部121の各々へ、層112のニューロンモデル部121の各々から層113のニューロンモデル部121の各々へ、および、層113のニューロンモデル部121の各々から層114のニューロンモデル部121の各々へ、スパイクを伝達する。
【0060】
図4は、ニューラルネットワーク装置100がリカレントニューラルネットワークとして構成される場合の構成例を示す図である。
図4の例で、ニューロンモデル部121は、図3の場合と同様、スパイキングニューロンとして構成され、細胞体部による信号の統合およびスパイクの生成を模擬する。伝達処理部122は、図3の場合と同様、軸索およびシナプスによる信号の伝達を模擬する。伝達処理部122は、2つのニューロンモデル部121を結んで配置され、出力側のニューロンモデル部121から入力側のニューロンモデル部121へスパイクを伝達する。
【0061】
図4の例におけるニューラルネットワーク装置100の構造は、ニューロンモデル部121が階層構造に配置されている必要は無い点で、図3の場合と異なる。また、図4の例におけるニューラルネットワーク装置100の構造は、伝達処理部122が形成する信号の伝達経路のうち少なくとも何れか1つが、信号出力元のニューロンモデル部121自身へ帰還する点で、図3の場合と異なる。この伝達経路は、信号出力元のニューロンモデル部121から直接、信号出力元のニューロンモデル部121自身へ帰還していてもよい。あるいは、この伝達経路は、信号出力元のニューロンモデル部121から他のニューロンモデル部121を経由して間接的に、信号出力元のニューロンモデル部121自身へ帰還していてもよい。直接帰還する伝達経路と間接的に帰還する伝達経路との両方があってもよい。
【0062】
(実施形態に係るニューラルネットワーク装置の損失関数について)
本実施形態で、分類問題において、多層スパイキングニューラルネットワークの教師あり学習の際にコスト関数演算部200が演算する損失関数Lを、出力層ニューロン(であるニューロンモデル部121)の発火時刻(発火タイミング)t(M) を用いて式(7)のように定義してもよい。
【0063】
【数7】
【0064】
上述したように、κは、教師ラベルデータであり、正解ラベルのとき1を出力し、それ以外のときは0を出力する。lnは自然対数を示す。Sはソフトマックス関数を示す。
aは正の定数である。t(M) は、第M層(出力層)のi番目のニューロンモデル部121の発火時刻を示す。iと同様mも、ニューロンモデル部121を識別するインデックスとして用いられている(左側の式の「Σ」、「κ」、左右の式の「S」、右側の式の「t(M) 」の各m)。
【0065】
式(7)では、ソフトマックス関数を出力スパイクの時刻で定義しているので、t領域(時刻領域)でのソフトマックス関数であると定義する。
t領域でのソフトマックス関数(式(7)参照)は、z領域でのソフトマックス関数(式(6)参照)との比較において、指数関数を二重に適用する必要が無い点で、比較的簡単な計算で済む。この点で、t領域でのソフトマックス関数の対数尤度を損失関数に用いることで計算負荷が比較的軽く、また、学習時間が比較的短くて済む。指数関数の適用は出力層ニューロン毎に行われるため、出力層ニューロンの数が多い場合、t領域でのソフトマックス関数を用いる効果が特に大きい。
【0066】
式(7)の損失関数Lは、ニューラルネットワーク装置100がリカレントニューラルネットワークとして構成されている場合にも適用可能である。この場合、ニューラルネットワークの外部へ信号を出力するニューロンモデル部121を出力層ニューロンとして扱う。
【0067】
(実施形態に係る学習の効果)
分類問題において、ソフトマックス関数による負の対数尤度による損失関数を用いる点で、ニューラルネットワークシステム1の学習が少ないエポック数で収束するため、学習が高速になる。
また、コスト関数演算部200が演算する損失関数では、式(7)のように、ソフトマックス関数が発火時刻の自然指数関数で定義されている(すなわち、t領域でのソフトマックス関数がコスト関数に用いられている)。この点で、z領域でのソフトマックス関数(式(6)参照)をコスト関数に用いる場合よりも、計算量が少なくて済む。
【0068】
(実施形態に係るニューラルネットワーク装置のコスト関数の正則化項について)
t領域でのソフトマックス関数(式(7)参照)は、式(8)の変換に対して不変性をもっている。
【0069】
【数8】
【0070】
また、z領域でのソフトマックス関数(式(6)参照)は、式(9)の変換に対して不変性をもっている。
【0071】
【数9】
【0072】
ここで、cは任意の実数である。なお、式(8)および式(9)において、矢印の記号は、左辺にある値を、右辺の値に置き換える、という操作を表す。
具体的には、第M層(出力層)の全てのスパイキングニューロンモデル(ニューロンモデル部121)において(すなわち、全てのiについて)一律、式(8)の「t(M) 」に同じ値cを加算して「t(M) +c」としても、ソフトマックス関数の値は変わらない。また同様に、「z(M) 」に同じ値cを加算して「z(M) +c」としても、ソフトマックス関数の値は変わらない。
【0073】
この不変性のため、最終層スパイクの位置(発火タイミング)が一点に定まらなくなり、そのため、学習が安定せず失敗することが、比較的頻繁に起こる。なお、学習が失敗するとは、学習中にスパイクが発生しなくなるなどし、コスト関数が減少しなくなる、あるいは、増加してしまうことをいう。
そこで、学習の不安定を解決するため、コスト関数演算部200が算出する正則化項を、式(10)のように、ニューラルネットワーク中のニューロンモデル部121の発火時刻に関する正則化項「αP(t(M) ,t(M) ,・・・t(M) N(M),t(M-1) ,t(M-1) ,・・・,t(M-1) N(M-1),・・・)」で定義する。
【0074】
【数10】
【0075】
ここでαは、正則化項の影響の度合いを調整するため(具体的には、損失関数と正則化項との重み付き和を求めるため)の係数であり、正の実数定数とすることができる。上記のように、t(M) は、第M層(出力層)の第i番目のニューロンの発火時刻を示す。N(l)は、第l層を構成しているニューロンの個数を示す。Pは、ニューロンの発火時刻の関数である。
【0076】
正則化項「αP(t(M) ,t(M) ,・・・t(M) N(M),t(M-1) ,t(M-1) ,・・・,t(M-1) N(M-1),・・・)」を、正則化項Pとも称する。この正則化項Pは、教師データに陽に依存しない特徴がある。
式(10)に示されるように、正則化項Pで発火時刻を参照するニューロンモデル部121は、出力層のニューロンモデル部121に限定されず、任意のニューロンモデル部121とすることができる。
【0077】
(実施形態に係る学習の効果)
上述したように、分類問題において、ソフトマックス関数による損失関数を用いる点で、ニューラルネットワークシステム1の学習が高速になる。加えて、ニューラルネットワーク中のニューロンモデル部121の発火時刻に関する正則化項Pをコスト関数に加えることで、学習が安定化する。
【0078】
(実施形態に係るニューラルネットワーク装置のコスト関数のペナルティ項の具体例について)
上記正則化項Pに用いる関数Pの一例として、出力層ニューロンの発火時刻を用いて式(11)のように定義することができる。
【0079】
【数11】
【0080】
ここで、t(ref)は参照時刻とよばれる定数である。
【0081】
(実施形態に係る学習の効果)
上述したように、分類問題において、ソフトマックス関数による損失関数を用いることで学習が高速になる。また、出力層ニューロンの発火時刻に対して式(11)に示される正則化を課すことで、学習が安定化する。
【0082】
(シミュレーション例)
著名なベンチマークタスクであるMNISTを用いて、順伝搬型スパイキングニューラルネットワークによる分類タスクのシミュレーションを行った。なお、ニューラルネットワーク装置100がリカレントスパイキングニューラルネットワークとして構成されている場合も、同様の分類タスクを実行可能である。
シミュレーションでは、ニューラルネットワークの構成は三層(入力層、隠れ層、及び出力層)とした。また、ニューロンモデル部121として式(12)のような積分発火型のスパイキングニューロンを用いた。
【0083】
【数12】
【0084】
上述したように、tは時刻を示す。v(l) は、第l層のi番目のスパイキングニューロンモデルにおける膜電位を示す。ここでの第l層は、出力層に限定されない。隠れ層および出力層(第2層およびそれ以降)の各スパイキングニューロンモデルに、式(12)が当てはまる。w(l) ijは、第l-1層のj番目のスパイキングニューロンモデルから第l層のi番目のスパイキングニューロンモデルへの結合の重みを表す。
θはステップ関数であり、式(13)のように示される。
【0085】
【数13】
【0086】
また、ニューラルネットワークの二乗誤差関数による損失関数を用いたコスト関数を、式(14)のように定義した。
【0087】
【数14】
【0088】
上述したように、t(M) は、出力層(第M層)のi番目のニューロンのスパイク発生時刻を示す。t(T) は、出力層(第M層)のi番目のニューロンの、教師スパイクの発生時刻(正解として与えられるスパイク発生時刻)を示す。
また、ソフトマックス関数によるコスト関数を、式(15)のように定義した。
【0089】
【数15】
【0090】
SOFTは、式(16)のように示される。
【0091】
【数16】
【0092】
左側の式の「S」は、ソフトマックス関数であり、右側の式のように示される。なお、右側の式では、左側の式の「i」を「m」に置き換えて「S」等と表記している。右辺の分母で用いる「i」と区別するためである。
式(15)のPは、式(17)のように示される。
【0093】
【数17】
【0094】
上記のように、CMSE(式(14)参照)は二乗誤差による損失関数であり、CSOFT(式(15)参照)はソフトマックス関数の対数尤度と正則化項Pとの重み付き和によるコスト関数である。以下のように、CMSE、CSOFTのそれぞれについて、そのコスト関数を用いた場合の学習のシミュレーションを行った。
出力層の重みによる微分はチェインルールにより式(18)のように計算できる。
【0095】
【数18】
【0096】
ここで、「∂C/∂t(M) 」に関しては、二乗誤差関数を用いたCMSEの場合は、式(19)のように計算できる。
【0097】
【数19】
【0098】
また、ソフトマックス関数を用いたCSOFTの場合は、式(20)のように展開できる。
【0099】
【数20】
【0100】
式(20)の右辺の「∂P/∂t(M) 」は、式(21)のように計算できる。
【0101】
【数21】
【0102】
式(20)の右辺の「∂S/∂t(M) 」は、式(22)のように計算できる。
【0103】
【数22】
【0104】
式(20)の右辺の「∂LSOFT/∂S」は、式(23)のように示される。
【0105】
【数23】
【0106】
また、式(18)の「∂t(M) /∂w(M) ij」は、式(24)のように計算できる。
【0107】
【数24】
【0108】
以上により、出力層によるコスト関数の微分の計算が可能である。隠れ層の重みによる、損失関数の導関数の計算も同様に可能である。シミュレーションでは、学習は、確率的勾配降下法を用いて行った。
図5は、シミュレーションにおける学習の進行状況の例を示すグラフである。図5のグラフの横軸は学習エポック数を示す。縦軸は分類エラー率を示す。線L11は、二乗誤差関数によるコスト関数(上記のCMSE)を用いた場合の結果を示す。線L12は、ソフトマックス関数を用いた損失関数と正則化項Pとの和によるコスト関数(上記のCSOFT)を用いた場合の結果を示す。
ソフトマックス関数を用いた損失関数と正則化項Pとの和によるコスト関数(CSOFT)を用いた場合、二乗誤差関数による損失関数によるコスト関数(CMSE)を用いた場合よりも、少ない学習エポック数で分類エラー率が減少している。このことから、ソフトマックス関数を用いた損失関数と正則化項Pとの和によるコスト関数(CSOFT)を用いた場合の方が、学習が速くなっていることがわかる。
【0109】
以上のように、ニューラルネットワーク装置100のスパイキングニューラルネットワークは、時間方式のスパイキングニューラルネットワークである。学習処理部300は、スパイキングニューラルネットワークの学習を、スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を含むコスト関数(式(10)参照)を用いた教師あり学習にて行わせる。
具体的には、学習処理部300が、コスト関数演算部200が算出するコスト関数値に基づいて、ニューラルネットワーク装置100のスパイキングニューラルネットワークの重みを更新する。
【0110】
これにより、ニューラルネットワークシステム1では、上述した式(8)の変換に対する、t領域でのソフトマックス関数の不変性による学習の不安定性、および、上述した式(9)の変換に対する、z領域でのソフトマックス関数の不変性による学習の不安定性を解消または低減することができる。
ニューラルネットワークシステム1によればこの点で、ニューラルネットワーク装置100のニューラルネットワーク(時間方式のスパイキングニューラルネットワーク)の学習をより安定的に行える。
【0111】
また、学習処理部300は、ニューラルネットワーク装置100に対して、出力スパイクの時刻情報に負の係数を乗算し指数関数に入力した時刻指標値を、出力層の全てのニューロンにおける時刻指標値の合計で除算して得られるソフトマックス関数の負の対数尤度を用いた損失関数と、上記の正則化項とを含むコスト関数を用いた上記の学習を行わせる。
【0112】
式(7)の例では、「t(M) 」が出力スパイクの時刻情報の例に該当し、「-a」が負の係数の例に該当する。また、「exp(-at(M) )」が時刻指標値の例に該当し、「Σexp(-at(M) )」が出力層の全てのニューロンにおける時刻指標値の合計の例に該当する。また、ソフトマックス関数Sの値を出力層の全てのニューロンモデル部121について合計すると1になる点で、ソフトマックス関数Sは確率分布の例に該当する。
【0113】
このように、ニューラルネットワークシステム1では、ソフトマックス関数の負の対数尤度による損失関数を用いる点で、ニューラルネットワーク装置100のニューラルネットワークの学習をより高速に行うことができる。
さらに、このコスト関数について、t領域でのソフトマックス関数を用いる点で、z領域でのソフトマックス関数を用いる場合よりも、計算量が少なくて済む。ニューラルネットワークシステム1では、この点で、ニューラルネットワーク装置100のニューラルネットワークの学習をより高速に行うことができる。
【0114】
学習処理部300の処理をソフトウェア的に実行する場合、コスト関数が比較的簡単な関数形となることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済む。また、学習処理部300の処理をハードウェア的に実行する場合、コスト関数が比較的簡単な関数形となることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済むことに加えて、ハードウェアの回路面積が比較的小さくて済む。
このように、ニューラルネットワークシステム1では、ニューラルネットワーク装置100のニューラルネットワークの学習をより高速に行うことができ、かつ、学習をより安定なものにすることができる。
【0115】
また、学習処理部300は、出力スパイクの時刻情報と、定数である参照時刻との差分に基づく正則化項を用いた学習を行わせる。上記の式(11)および式(17)が、出力スパイクの時刻情報(出力層ニューロンの発火時刻t(M) )と、定数である参照時刻(t(ref))との差分に基づく正則化項の例に該当する。
ニューラルネットワーク装置100では、時刻情報の差分を算出するという比較的簡単な計算に基づいて、上述した、学習をより安定なものにすることができる、という効果を得られる。計算が簡単であることで、上述した、学習をより高速に行うことができる、という効果を確保できる(すなわち、かかる効果が阻害されない)。
【0116】
また、学習処理部300は、出力スパイクの時刻情報と、定数である参照時刻との差分の二乗誤差に基づく正則化項を用いた学習を行わせる。式(17)が、出力スパイクの時刻情報と、定数である参照時刻との差分の二乗誤差に基づく正則化項の例に該当する。
ニューラルネットワーク装置100では、時刻情報の差分の二乗誤差を算出するという比較的簡単な計算に基づいて、上述した、学習をより安定なものにすることができる、という効果を得られる。計算が簡単であることで、上述した、学習をより高速に行うことができる、という効果を確保できる(すなわち、かかる効果が阻害されない)。
【0117】
また、ニューラルネットワークシステム1では、ニューロンモデル部121が時間方式による点で、頻度方式による場合よりも消費電力が少なくて済む。
【0118】
次に、図6図8を参照して、本発明の実施形態の構成について説明する。
図6は、実施形態に係るニューラルネットワークシステムの構成例を示す図である。図6に示すニューラルネットワークシステム10は、スパイキングニューラルネットワーク11と、学習処理部12とを備える。
かかる構成にて、スパイキングニューラルネットワーク11は、時間方式のスパイキングニューラルネットワークである。学習処理部12は、スパイキングニューラルネットワーク11の学習を、スパイキングニューラルネットワーク11内のニューロンの発火時刻に関する正則化項を含むコスト関数を用いた教師あり学習にて行わせる。
【0119】
これにより、ニューラルネットワークシステム10では、ソフトマックス関数に定数を加算する変換に対するソフトマックス関数の不変性による学習の不安定性を解消または低減することができる。
ニューラルネットワークシステム10によればこの点で、時間方式のスパイキングニューラルネットワークの学習をより安定的に行える。
【0120】
図7は、実施形態に係る学習処理装置を示す図である。
図7に示す学習処理装置20は、学習処理部21を備える。
かかる構成にて、学習処理部21は、時間方式のスパイキングニューラルネットワークの学習を、スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行わせる。
【0121】
学習処理装置20によれば、出力層の全てのニューロンにおいて一律に、発火時刻に同じ値を加算する変換に対する、ソフトマックス関数の不変性による学習の不安定性を解消または低減することができる。
学習処理装置20によればこの点で、時間方式のスパイキングニューラルネットワークの学習をより安定的に行える。
【0122】
図8は、実施形態に係る学習処理方法における処理工程の例を示す図である。
図8に示す処理で、学習処理方法は、学習処理工程(ステップS11)を含む。学習処理工程(ステップS11)では、時間方式のスパイキングニューラルネットワークの学習を、スパイキングニューラルネットワーク内のニューロンの発火時刻に関する正則化項を用いたコスト関数を用いた教師あり学習にて行う。
【0123】
この学習処理方法によれば、出力層の全てのニューロンにおいて一律に、発火時刻に同じ値を加算する変換に対する、ソフトマックス関数の不変性による学習の不安定性を解消または低減することができる。
この学習処理方法によればこの点で、時間方式のスパイキングニューラルネットワークの学習をより安定的に行える。
【0124】
ニューラルネットワークシステム1の全部または一部、ニューラルネットワークシステム10の全部または一部、あるいは、学習処理装置20の全部または一部が、専用ハードウェアに実装されていてもよい。
図9は、少なくとも1つの実施形態に係る専用ハードウェアの構成例を示す概略ブロック図である。図9に示す構成で、専用ハードウェア500は、CPU510と、主記憶装置520と、補助記憶装置530と、インタフェース540とを備える。
【0125】
上述のニューラルネットワークシステム1が専用ハードウェア500に実装される場合、上述した各処理部(ニューラルネットワーク装置100、ニューロンモデル部121、伝達処理部122、コスト関数演算部200、学習処理部300)の動作は、プログラム、もしくは回路の形式で専用ハードウェア500に記憶されている。CPU510は、補助記憶装置530からプログラムを読み出して主記憶装置520に展開し、展開したプログラムに従って各処理部の処理を実行する。また、CPU510は、プログラムに従って、各種データを記憶するための記憶領域を主記憶装置520に確保する。ニューラルネットワークシステム1に対するデータの入出力は、CPU510がプログラムに従ってインタフェース540を制御することで実行される。
【0126】
上述のニューラルネットワークシステム10が専用ハードウェア500に実装される場合、上述した各処理部(スパイキングニューラルネットワーク11、学習処理部12)の動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、補助記憶装置530からプログラムを読み出して主記憶装置520に展開し、展開したプログラムに従って各処理部の処理を実行する。また、CPU510は、プログラムに従って、各種データを記憶するための記憶領域を主記憶装置520に確保する。ニューラルネットワークシステム10に対するデータの入出力は、CPU510がプログラムに従ってインタフェース540を制御することで実行される。
【0127】
上述の学習処理装置20が専用ハードウェア500に実装される場合、上述した学習処理装置20の動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、補助記憶装置530からプログラムを読み出して主記憶装置520展開し、展開したプログラムに従って各処理部の処理を実行する。また、CPU510は、プログラムに従って、各種データを記憶するための記憶領域を主記憶装置520に確保する。ニューラルネットワークシステム10に対するデータの入出力は、CPU510がプログラムに従ってインタフェース540を制御することで実行される。
【0128】
専用ハードウェア500に加えて、あるいは代えて、パソコン(Personal Computer;PC)を用いるようにしてもよく、この場合の処理も、上述した専用ハードウェア500の場合の処理と同様である。
【0129】
ニューラルネットワークシステム1の全部または一部、ニューラルネットワークシステム10の全部または一部、あるいは、学習処理装置20の全部または一部が、ASIC(Application Specific Integrated Circuit)に実装されていてもよい。
図10は、少なくとも1つの実施形態に係るASICの構成例を示す概略ブロック図である。図10に示す構成で、ASIC600は、演算部610と、記憶装置620と、インタフェース630とを備える。また、演算部610と記憶装置620とは統一されていても(すなわち、一体的に構成されていても)よい。
【0130】
ニューラルネットワークシステム1の全部または一部、ニューラルネットワークシステム10の全部または一部、あるいは、学習処理装置20の全部または一部が実装されたASICは、CMOSなどの電子回路により、その演算を実行する。各々の電子回路が、それぞれ独立に層内のニューロンを実装してもよいし、層内の複数のニューロンを実装してもよい。また、同様に、ニューロンを演算する回路が、それぞれ、ある層の演算のみに用いられてもよいし、複数の層の演算に用いられてもよい。
【0131】
また、ニューラルネットワークがリカレントニューラルネットワークである場合、ニューロンモデルが階層化されていなくてもよい。この場合、全てのニューロンモデルが常時、何れかの電子回路に実装されていてもよい。あるいは、ニューロンモデルが電子回路に時分割処理で割り当てられるなど、ニューロンモデルが動的に電子回路に実装されるようにしてもよい。
【0132】
なお、ニューラルネットワークシステム1、ニューラルネットワークシステム10、および、学習処理装置20の機能の全部または一部実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0133】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0134】
この出願は、2019年5月30日に出願された日本国特願2019-101531を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0135】
本発明は、スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法および記録媒体に適用してもよい。
【符号の説明】
【0136】
1、10 ニューラルネットワークシステム
11 スパイキングニューラルネットワーク
12、300 学習処理部(学習処理手段)
20 学習処理装置
100 ニューラルネットワーク装置
121 ニューロンモデル部(ニューロンモデル手段)
122 伝達処理部(伝達処理手段)
200 コスト関数演算部(コスト関数演算手段)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16