(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-10
(45)【発行日】2024-09-19
(54)【発明の名称】ニューラルネットワーク装置、処理方法およびプログラム
(51)【国際特許分類】
G06N 3/04 20230101AFI20240911BHJP
【FI】
G06N3/04
(21)【出願番号】P 2023066737
(22)【出願日】2023-04-14
(62)【分割の表示】P 2021507387の分割
【原出願日】2020-03-18
【審査請求日】2023-04-14
(31)【優先権主張番号】P 2019052880
(32)【優先日】2019-03-20
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】酒見 悠介
(72)【発明者】
【氏名】森野 佳生
(72)【発明者】
【氏名】合原 一幸
【審査官】千葉 久博
(56)【参考文献】
【文献】MOSTAFA, H,"Supervised Learning Based on Temporal Coding in Spiking Neural Networks",IEEE Transactions on Neural Networks and Learning Systems [online],IEEE,2017年,Vol. 29, No. 7,pp. 3227-3235,[retrieved on 2022.08.04], Retrieved from the Internet: <URL: https://ieeexplore.ieee.org/document/7999227>,<DOI: 10.1109/TNNLS.2017.2726060>
【文献】BURKITT, AN,"A Review of the Integrate-and-fire Neuron Model: I. Homogeneous Synaptic Input",Biological Cybernetics [online],2006年,Vol. 95,pp. 1-19,[retrieved on 2024.04.10], Retrieved from the Internet: <URL: https://link.springer.com/article/10.1007/s00422-006-0068-6>,<DOI: 10.1007/s00422-006-0068-6>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流
I
(m)
i
(t)が、そのスパイキングニューロンの前の層のスパイキングニューロンの発火タイミング
t
(m-1)
j
で値が変化するステップ関数
θ(t-t
(m-1)
j
)の
重みw
(m)
ij
による重み付け合計
Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)で
I
(m)
i
(t)=Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)と表されるスパイキングニューロンとして構成され、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでニューロンモデル手段自らの出力を示すニューロンモデル手段と、
前記ニューロンモデル手段の間の情報伝達を行う伝達処理手段と、
を備えるニューラルネットワーク装置。
【請求項2】
漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流
I
(m)
i
(t)が、そのスパイキングニューロンの前の層のスパイキングニューロンの発火タイミング
t
(m-1)
j
で値が変化するステップ関数
θ(t-t
(m-1)
j
)の
重みw
(m)
ij
による重み付け合計
Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)で
I
(m)
i
(t)=Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)と表されるスパイキングニューロンであって、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでスパイキングニューロン自らの出力を示すスパイキングニューロンの動作を実行する工程と、
前記スパイキングニューロン間の情報伝達を行う工程と、
を含む処理方法。
【請求項3】
ASICに、
漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流
I
(m)
i
(t)が、そのスパイキングニューロンの前の層のスパイキングニューロンの発火タイミング
t
(m-1)
j
で値が変化するステップ関数
θ(t-t
(m-1)
j
)の
重みw
(m)
ij
による重み付け合計
Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)で
I
(m)
i
(t)=Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)と表されるスパイキングニューロンであって、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでスパイキングニューロン自らの出力を示すスパイキングニューロンの動作を実行する工程と、
前記スパイキングニューロン間の情報伝達を行う工程と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワーク装置、処理方法およびプログラムに関する。
【背景技術】
【0002】
(順伝搬型スパイキングニューラルネットワークについて)
ニューラルネットワークの一形態として、順伝搬型スパイキングニューラルネットワーク(Spiking Neural Network;SNN)がある。スパイキングニューラルネットワークとは、スパイキングニューロンモデル(スパイキングニューロン、または、単にニューロンとも称する)が結合しネットワークを形成したものである。
順伝搬型とは、ネットワーク構成方法の一つであり、層から層への結合における情報伝達が一方向のネットワークのことである。順伝搬型スパイキングニューラルネットワークの各層は1つ以上のスパイキングニューロンで構成されており、同層内のスパイキングニューロン間の結合は存在しない。
【0003】
図14は、順伝搬型スパイキングニューラルネットワークの階層構造の例を示す図である。
図14は、順伝搬4層スパイキングニューラルネットワークの例を示している。但し、順伝搬型スパイキングニューラルネットワークの層数は、4層に限定されず2層以上であればよい。
図14に例示されるように順伝搬型スパイキングニューラルネットワークは階層構造に構成され、データの入力を受けて演算結果を出力する。ニューラルネットワークが出力する演算結果を予測値または予測とも称する。
ニューラルネットワークの第1層(
図14の例では、層1011)は入力層と呼ばれ、最後の層(
図14の例では、第4層(層1014))は出力層と呼ばれる。入力層と出力層との間にある層(
図14の例では、第2層(層1012)および第3層(層1013))は隠れ層と呼ばれる。
【0004】
図15は、順伝搬型スパイキングニューラルネットワークの構成例を示す図である。
図15は、
図14における4つの層(層1011~1014)が、それぞれ3つのスパイキングニューロン(スパイキングニューロンモデル)1021を有している場合の例を示している。但し、順伝搬型スパイキングニューラルネットワークが備えるスパイキングニューロンの個数は、特定の個数に限定されず、各層が1つ以上のスパイキングニューロンを備えていればよい。各層が同じ個数のスパイキングニューロンを備えていてもよいし、層によって異なる個数のスパイキングニューロンを備えていてもよい。
【0005】
スパイキングニューロン1021は、生物学的神経細胞の細胞体部による信号の統合およびスパイクの生成(発火)を模擬する。
伝達経路1022は、生物学的神経細胞の軸索およびシナプスによる信号の伝達を模擬する。伝達経路1022は、隣り合う層間の2つのスパイキングニューロン1021を結んで配置され、前段層のスパイキングニューロン1021から後段層側のスパイキングニューロン1021へスパイクを伝達する。
【0006】
図15の例では、伝達経路1022は、層1011のスパイキングニューロン1021の各々から層1012のスパイキングニューロン1021の各々へ、層1012のスパイキングニューロン1021の各々から層1013のスパイキングニューロン1021の各々へ、および、層1013のスパイキングニューロン1021の各々から層1014のスパイキングニューロン1021の各々へ、スパイクを伝達する。
【0007】
スパイキングニューロンモデルは、膜電位を内部状態として持ち、膜電位が微分方程式に従って時間発展するモデルである。一般的なスパイキングニューロンモデルとして、漏れ積分発火ニューロンモデルが知られており、式(1)のような微分方程式に従って時間発展する。
【0008】
【0009】
ここで、v(n)
iは、第n層のi番目のスパイキングニューロンモデルにおける膜電位を示す。αleakは、漏れ積分発火モデルにおける漏れの大きさを示す定数の係数である。I(n)
iは、第n層のi番目のスパイキングニューロンモデルにおけるシナプス後電流を示す。w(n)
ijは、第n-1層のj番目のスパイキングニューロンモデルから第n層のi番目のスパイキングニューロンモデルへの結合の強さを示す係数であり、重みと呼ばれる。
tは時刻を示す。t(n-1)
jは第n-1層のj番目のニューロンの発火タイミング(発火時刻)を示す。κは前段の層から伝達されたスパイクがシナプス後電流へ与える影響を示す関数である。
【0010】
膜電位が閾値Vthを超えると、そのスパイキングニューロンモデルはスパイクを生成し(発火)、その後、膜電位はリセット値Vresetへと戻る。また、生成されたスパイクは、結合している後段層のスパイキングニューロンモデルへと伝達される。
【0011】
図16は、スパイキングニューロンの膜電位の時間発展の例を示す図である。
図16のグラフの横軸は時刻を示し、縦軸は、膜電位を示す。
図16は、第n層のi番目のスパイキングニューロンの膜電位の時間発展の例を示しており、膜電位は、v
(n)
iと表されている。
上記のように、V
thは、膜電位の閾値を示す。V
resetは、膜電位のリセット値を示す。t
(n-1)
1は第n-1層の1番目のニューロンの発火タイミングを示す。t
(n-1)
2は第n-1層の2番目のニューロンの発火タイミングを示す。t
(n-1)
3は第n-1層の3番目のニューロンの発火タイミングを示す。
時刻t
(n-1)
1における1番目の発火および時刻t
(n-1)
3における3番目の発火では、何れも膜電位v
(n)
iは閾値V
thに達していない。一方、時刻t
(n-1)
2における2番目の発火では、膜電位v
(n)
iが閾値V
thに達し、その後すぐに、リセット値であるV
resetに低下している。
【0012】
スパイキングニューラルネットワークはCMOS(Complementary MOS)などでハードウェア化したときに、深層学習モデルよりも消費電力を下げられると期待されている。その理由の一つは、人の脳は20ワット(W)相当の低消費電力な計算媒体であり、スパイキングニューラルネットワークはそのような低消費電力の脳の活動を模倣することができるためである。
【0013】
脳相当の消費電力のハードウェアを作るには、脳の計算原理に倣い、スパイキングニューラルネットワークのアルゴリズムを開発していくことが必要である。例えば、画像認識を、スパイキングニューラルネットワークを用いて行えることが知られており、様々な教師あり学習アルゴリズムや教師なし学習アルゴリズムが開発されてきた。
【0014】
(スパイキングニューラルネットワークにおける情報伝達方式について)
スパイキングニューラルネットワークのアルゴリズムでは、スパイクによる情報伝達方式において幾つかの手法があり、特に、頻度方式と時間方式とがよく用いられている。
頻度方式では、一定時間間隔の間に、ある特定のニューロンが何回発火したかで情報を伝達する。一方、時間方式では、スパイクのタイミングで情報を伝達する。
【0015】
図17は、頻度方式、時間方式それぞれにおけるスパイクの例を示す図である。
図17の例で、頻度方式では、「1」、「3」、「5」の情報を、その情報に応じたスパイク数で示している。一方、時間方式では、「1」、「3」、「5」の情報の何れの場合もスパイク数は1つであり、情報に応じたタイミングでスパイクを生成することで、その情報を示している。
図17の例では、ニューロンは、情報としての数が大きくなるほど遅いタイミングでスパイクを生成している。
【0016】
図17に示すように、時間方式は、頻度方式に比べて、少ないスパイク数で情報を表すことができる。非特許文献1では、画像認識等のタスクにおいて、時間方式は頻度方式の10分の1以下のスパイク数で実行できることが報告されている。
ハードウェアの消費電力は、スパイク数増加によって増加するため、時間方式のアルゴリズムを用いると消費電力を削減することができる。
【0017】
(順伝搬型スパイキングニューラルネットワークによる予測について)
順伝搬型スパイキングニューラルネットワークを用いることで、様々な課題を解くことができることが報告されている。例えば、
図14のようなネットワーク構成において、入力層に画像データを入力し、スパイキングニューラルネットワークが、答えを予測するようにできる。時間方式の場合、予測値の出力方法として、例えば、出力層のニューロンのうち最も早く発火(スパイクを生成)したニューロンによって予測値を示すことができる。
【0018】
(順伝搬型スパイキングニューラルネットワークの学習について)
スパイキングニューラルネットワークが正しく予測を行うには学習プロセスが必要である。例えば、画像を認識する学習プロセスでは、画像データと、その解答であるラベルデータとが用いられる。
【0019】
学習プロセスで、スパイキングニューラルネットワークは、データの入力を受けて予測値を出力する。そして、スパイキングニューラルネットワークに学習を行わせるための学習機構が、スパイキングニューラルネットワークが出力する予測値とラベルデータ(正解)との差である予測誤差を算出する。学習機構は、予測誤差から定義される損失関数Lを、スパイキングニューラルネットワークにおけるネットワークの重みの最適化によって最小化することで、スパイキングニューラルネットワークに学習を行わせる。
【0020】
(損失関数の最小化について)
例えば、学習機構が、式(2)のように重みを更新することで、損失関数Lを最小化することができる。
【0021】
【0022】
ここで、Δw(n)
ijは、重みw(n)
ijの増減を示す。Δw(n)
ijの値が正の場合、重みw(n)
ijを増加させる。Δw(n)
ijの値が負の場合、重みw(n)
ijを減少させる。
ηは学習係数と呼ばれる定数である。
【0023】
(確率的勾配降下法について)
確率的勾配降下法では、一部の訓練データを用いて重みを一度更新する。訓練データを全て用いて重みの更新を複数回繰り返したとき、その繰り返し単位をエポックと呼ぶ。確率的勾配降下法では、一般に、数十から数百のエポックを実行して学習を収束させる。また、一つのデータ(1つの入力データと1つのラベルデータ)で重みを更新することをオンライン学習と呼び、二つ以上のデータを用いて更新することをミニバッチ学習と呼ぶ。
【0024】
(予測結果の出力について)
前述のように、順伝搬型スパイキングニューラルネットワークを用いることで、様々な課題を解くことができることが報告されている。例えば上記のように、入力層に画像データを入力し、ネットワークが、その画像の答えを予測するようにできる。
【0025】
図18は、スパイキングニューラルネットワークの予測結果の出力表現の例を示す図である。
例えば、0から2までの3個の数字の画像を認識するタスクにおいては、
図18に示すように、3個のニューロンが出力層を構成し、それぞれが0から2までの数字に対応しており、そのうち最も早く発火したニューロンが示す数字がネットワークの示す予測となる。なお、このネットワークの動作は、ニューロンの発火タイミングによって情報がコーディングされているので、時間方式である。
【0026】
(非線形関数とハードウェア実装について)
スパイキングニューラルネットワークの専用ハードウェアは、一般に、ニューロモルフィックハードウェアとよばれている。このハードウェアの実装について、アナログ回路による実装や、デジタル回路による実装が知られている。
ハードウェアでは、一般に、その消費電力および回路面積を小さくすることが求められる。しかし、一方で、複雑なニューロンモデルや、複雑な学習則を実装すると、消費電力および回路面積が大きくなってしまう。
【0027】
(非線形関数について)
ニューロンモデルでは、生物学的なニューロンとの整合性から、非線形関数を含む形が採用されることが多い。
【0028】
(データの移動について)
ニューロモルフィックハードウェアの消費電力では、重みなどのメモリデータの移動が大きな寄与を占めている。そのため、学習則において、データの移動が少ないアルゴリズムを用いることで消費電力を下げられる。データの移動を少なくするには、移動の回数を少なくすること、および、データの移動距離を小さくすることのうち、何れか一方、もしくは両方を行えばよい。
【0029】
図19は、予測時および学習時におけるデータの移動の例を示す図である。
図19では、ニューロンを三角で示し、重みを丸で示している。予測時は、実線で示すようなデータの移動が発生する。一方、学習時、特に、重みw
1の更新時には、破線で示すようなデータの移動が発生する。
【0030】
(リークなしモデルについて)
非特許文献2では、式(1)の定数αleakを0とおく漏れ(リーク)なし積分発火モデルを用いることで認識精度を向上させる報告があった。非特許文献2では、漏れなし積分発火モデルとして、式(3)に示されるモデルが用いられている。
【0031】
【0032】
ここで、expは、自然指数関数である。τは定数を示す。
【先行技術文献】
【非特許文献】
【0033】
【文献】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
【文献】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
【文献】S. M. Bohte、外2名、“Error-backpropagation in temporally encoded networks of spiking neurons”、Neurocomputing、第48巻、2002年、p.17-37
【発明の概要】
【発明が解決しようとする課題】
【0034】
ニューラルネットワークのモデルを簡単なものにできることが好ましい。
例えば、非特許文献2における、上記の式(3)に示される漏れなし積分モデルが、非線形関数(exp(-x/τ))を含むのに対し、この非線形関数なしにモデルを構成できることがモデルの簡単化の観点から好ましい。
【0035】
本発明は、上述の課題を解決することのできるニューラルネットワーク装置、処理方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0036】
本発明の第1の態様によれば、ニューラルネットワーク装置は、漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流I
(m)
i
(t)が、そのスパイキングニューロンの前の層のスパイキングニューロンの発火タイミングt
(m-1)
j
で値が変化するステップ関数θ(t-t
(m-1)
j
)の重みw
(m)
ij
による重み付け合計Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)でI
(m)
i
(t)=Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)と表されるスパイキングニューロンとして構成され、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでニューロンモデル手段自らの出力を示すニューロンモデル手段と、前記ニューロンモデル手段の間の情報伝達を行う伝達処理手段と、を備える。
【0037】
本発明の第2の態様によれば、処理方法は、漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流I
(m)
i
(t)が、そのスパイキングニューロンの前の層のスパイキングニューロンの発火タイミングで値が変化するステップ関数θ(t-t
(m-1)
j
)の重みw
(m)
ij
による重み付け合計Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)でI
(m)
i
(t)=Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)と表されるスパイキングニューロンであって、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでスパイキングニューロン自らの出力を示すスパイキングニューロンの動作を実行する工程と、前記スパイキングニューロン間の情報伝達を行う工程と、を含む。
【0038】
本発明の第3の態様によれば、プログラムは、ASICに、漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流I
(m)
i
(t)が、そのスパイキングニューロンの前の層のスパイキングニューロンの発火タイミングt
(m-1)
j
で値が変化するステップ関数θ(t-t
(m-1)
j
)の重みw
(m)
ij
による重み付け合計Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)でI
(m)
i
(t)=Σ
j
w
(m)
ij
θ(t-t
(m-1)
j
)と表されるスパイキングニューロンであって、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでスパイキングニューロン自らの出力を示すスパイキングニューロンの動作を実行する工程と、前記スパイキングニューロン間の情報伝達を行う工程と、を実行させるためのプログラムである。
【発明の効果】
【0039】
本発明によれば、ニューラルネットワークのモデルを比較的簡単なものにすることができる。
【図面の簡単な説明】
【0040】
【
図1】実施形態に係るニューラルネットワーク装置の階層構造の例を示す図である。
【
図2】実施形態に係るニューラルネットワーク装置の構成例を示す図である。
【
図3】実施形態に係るニューラルネットワークシステムの概略構成の例を示す図である。
【
図4】実施形態に係るスパイクのタイミングと発火確率密度との関係を示す図である。
【
図5】実施形態に係る重みが変化したときの発火確率密度の変化を示す図である。
【
図6】実施形態に係るスパイクのタイミングが変化したときの発火確率密度の変化を示す図である。
【
図7】実施形態に係るネットワークの重みの更新則の例を示す図である。
【
図8】実施形態に係るニューラルネットワーク装置のシミュレーション結果の例を示す図である。
【
図9】実施形態に係る重みの変化に伴って膜電位が変化する様子を表す図である。
【
図10】実施形態に係る発火タイミングの変化に伴って膜電位が変化する様子を表す図である。
【
図11】実施形態に係る実施形態に係るニューラルネットワーク装置の構成例を示す図である。
【
図12】少なくとも1つの実施形態に係る専用ハードウェアの構成例を示す概略ブロック図である。
【
図13】少なくとも1つの実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【
図14】順伝搬型スパイキングニューラルネットワークの階層構造の例を示す図である。
【
図15】順伝搬型スパイキングニューラルネットワークの構成例を示す図である。
【
図16】スパイキングニューロンの膜電位の時間発展の例を示す図である。
【
図17】頻度方式、時間方式それぞれにおけるスパイクの例を示す図である。
【
図18】スパイキングニューラルネットワークの予測結果の出力表現の例を示す図である。
【
図19】予測時および学習時におけるデータの移動の例を示す図である。
【発明を実施するための形態】
【0041】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0042】
(実施形態に係るニューラルネットワーク装置の構造について)
図1は、実施形態に係るニューラルネットワーク装置の階層構造の例を示す図である。
図1の例で、ニューラルネットワーク装置100は順伝搬4層スパイキングニューラルネットワーク(Spiking Neural Network;SNN)に構成されている。但し、ニューラルネットワーク装置100の層数は、
図1に示す4層に限らず2層以上であればよい。
【0043】
図1に示すニューラルネットワーク装置100は、順伝搬型スパイキングニューラルネットワークとして機能し、データの入力を受けて演算結果(予測値、または、予測と称する)を出力する。
ニューラルネットワーク装置100の各層のうち、第1層(層111)は入力層に該当する。最後の層(第4層、層114)は出力層に該当する。入力層と出力層との間にある層(第2層(層112)および第3層(層113))は隠れ層に該当する。
【0044】
図2は、ニューラルネットワーク装置100の構成例を示す図である。
図2は、
図1における4つの層(層111~114)が、それぞれ3つのノード(ニューロンモデル部121)を有している場合の例を示している。但し、ニューラルネットワーク装置100が備えるニューロンモデル部121の個数は、特定の個数に限定されず、各層が2つ以上のニューロンモデル部121を備えていればよい。各層が同じ個数のニューロンモデル部121を備えていてもよいし、層によって異なる個数のニューロンモデル部121を備えていてもよい。
【0045】
ニューロンモデル部121は、スパイキングニューロン(スパイキングニューロンモデル)として構成され、細胞体部による信号の統合およびスパイクの生成(発火)を模擬する。
伝達処理部122は、軸索およびシナプスによる信号の伝達を模擬する。伝達処理部122は、任意の層間の2つのニューロンモデル部121を結んで配置され、前段層側のニューロンモデル部121から後段層側のニューロンモデル部121へスパイクを伝達する。
【0046】
図2の例では、伝達処理部122は、層111のニューロンモデル部121の各々から層112のニューロンモデル部121の各々へ、層112のニューロンモデル部121の各々から層113のニューロンモデル部121の各々へ、および、層113のニューロンモデル部121の各々から層114のニューロンモデル部121の各々へ、スパイクを伝達する。
【0047】
(実施形態に係るニューラルネットワークシステムの構成について)
実施形態に係るニューラルネットワークシステムは、学習プロセスを実行するために、例えば
図3に示す構成を有する。
図3は、実施形態に係るニューラルネットワークシステムの概略構成の例を示す図である。
図3に示す構成で、ニューラルネットワークシステム1は、ニューラルネットワーク装置100と、予測誤差算出部200と、学習処理部300を備える。
【0048】
かかる構成で、ニューラルネットワーク装置100は、データの入力を受けて予測値を出力する。予測誤差算出部200は、ニューラルネットワーク装置100が出力する予測値とラベルデータ(正解)との差である予測誤差を算出し、学習処理部300へ出力する。学習処理部300は、予測誤差から定義される損失関数Lを、ニューラルネットワーク装置100のネットワークの重みの最適化によって最小化することで、ニューラルネットワーク装置100に学習を行わせる。
ニューラルネットワーク装置100と、学習処理部300とは、別々の装置として構成されていてもよいし、1つの装置として構成されていてもよい。
【0049】
(実施形態に係るニューロンのモデル)
実施形態に係るスパイキングニューロンのモデル(ニューロンモデル部121)の説明を行う。ニューロンモデル部121として、リークのないスパイキングニューロンのモデルを用いる。このモデルを式(4)のように定義する。
【0050】
【0051】
ここで、v(m)
iは、第m層のi番目のニューロンモデル部121における膜電位を示す。
I(m)
iは、第m層のi番目のニューロンモデル部121におけるシナプス後電流を示す。上記のように、tは時刻を示す。I(m)
i(t)は、シナプス後電流I(m)
iを時刻tの関数として表したものである。
w(m)
ijは、第m-1層のj番目のニューロンモデル部121から第m層のi番目のニューロンモデル部121への結合の強さを示す係数(重み)である。t(m-1)
jは、第m-1層のj番目のニューロンモデル部121の発火タイミングを示す。θはステップ関数を示す。
【0052】
ステップ関数θは、式(5)のように示される。
【0053】
【0054】
ステップ関数θ(t)は、t≧0の場合はθ(t)=1との定数値となり、t<0の場合はθ(t)=0との定数値となる関数であり、例えばexp(-x/τ)といった非線形関数と比較して簡単な処理で演算できる。
【0055】
上記のように、ニューラルネットワーク装置100のネットワークは、順伝搬型の多層ネットワークとして構成される。また、ニューロンモデル部121の各々は、ニューラルネットワーク装置100への1つの入力に対して、最大で一回しか発火しないものとする。
また、ニューラルネットワーク装置100の出力は、出力層のニューロンモデル部121の発火タイミングによって示されるものとする。例えば、ニューラルネットワーク装置100の出力が、
図18を参照して説明した表現方法を用いて示されていてもよい。
【0056】
(実施形態に係るニューロンのモデルの効果)
ニューロンモデル部121によれば、式(4)に示されるようにステップ関数の重み付き線形和で表される比較的簡単なモデルとすることができる。例えば、式(4)に示されるモデルは、式(3)に示されるモデルよりも簡単であると評価できる。
【0057】
ニューロンモデル部121の処理をソフトウェア的に実行する場合、ニューロンモデルが比較的簡単なモデルとなることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済む。また、ニューロンモデル部121の処理をハードウェア的に実行する場合、ニューロンモデルが比較的簡単なモデルとなることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済むことに加えて、ハードウェアの回路面積が比較的小さくて済む。
また、ニューロンモデル部121によれば、リークを含まないモデルである点で、認識精度が高い。
また、ニューロンモデル部121は、時間方式による点で、頻度方式による場合よりも消費電力が少なくて済む。
【0058】
(実施形態に係る出力層学習(1))
次に、ニューラルネットワークシステム1における学習アルゴリズムの説明を行う。
(SpikePropについて)
前述の式(2)の重み更新則中の導関数∂L/∂w(n)
ijを導く手法としてSpikePropアルゴリズムが知られている(非特許文献3参照)。例えば、損失関数Lを、最終層のニューロンの発火タイミングを用いて式(6)のように定義する。
【0059】
【0060】
ここで、t(N)
iは、出力層のi番目のニューロンの発火タイミングを示す。なお、出力層を第N層として「N」で表記する。
t(t)
iは、i番目の教師信号の発火タイミング(教師信号における、出力層のi番目のニューロンの発火タイミング)を示す。また、ここでは、式(3)に示されるリークなしのニューロンモデルを対象にする。
損失関数の重みによる微分はチェインルールを用いて、式(7)のように示される。
【0061】
【0062】
ここでいう損失関数の重みによる微分は、損失関数を重みで微分したものである。
ここで、伝搬誤差を式(8)のように定義した。
【0063】
【0064】
結局、導関数を導くためには、∂t(n)
i/∂w(n)
ijと、∂t(n+1)
i/∂t(n)
jとを計算すればよい。SpikeProp法を用いて、∂t(n)
i/∂w(n)
ijは式(9)のように導出できる。
【0065】
【0066】
また、∂t(n+1)
i/∂t(n)
jは式(10)のように導出できる。
【0067】
【0068】
式(9)および式(10)に示すようにSpikePropアルゴリズムでは、∂t(n)
i/∂w(n)
ijおよび∂t(n+1)
i/∂t(n)
jを計算するために、同層内の重みの総和を計算する必要がある。
これに対し、ニューラルネットワーク装置100では、∂t(n)
i/∂w(n)
ijおよび∂t(n+1)
i/∂t(n)
jを近似することにより簡易化された学習則を用いる。この学習則の導出について説明する。
【0069】
まず、第n層のi番目のニューロン(ニューロンモデル部121)の発火タイミングが、発火確率密度Rn
i(t)によって確率的に決まるとの仮定をおく。上記のように、tは時刻を示す。観測された第n層の発火タイミングt(n)
iと、その前の層のニューロン(ニューロンモデル部121)の発火タイミングt(n-1)
jとから、発火確率密度R(n)
i(t)の関数形を推定する。
【0070】
本モデルでは、各ニューロン(ニューロンモデル部121)は一回以下しか発火しないため、情報を持つのは第一発火タイミングである。そのため、推定された発火関数(発火確率密度の関数形)から得られるニューロンの第一発火タイミング(第一発火時刻)の分布が最大値をとる時刻を、第n層の発火タイミングt(n)
iとする。
上記のモデルを仮定することで、重みw(n)
ijが変化したときの、発火確率密度の関数形の変化δR(n)
i(t)が得られる。式(11)に示すように、この発火確率密度関数の変化から、発火タイミングの変化δt(n)
iが得られる。
【0071】
【0072】
式(11)は、重みw(n)
ijの変化分に応じて発火確率密度R(n)
i(t)の変化分が求まり、発火確率密度R(n)
i(t)の変化分に応じて第n層の発火タイミングt(n)
iの変化分が求まるという関係を示している。この関係により、重みw(n)
ijの変化分から第n層の発火タイミングt(n)
iの変化分を求めることができる。
式(11)の関係から、式(12)のように偏微分の近似が得られる。
【0073】
【0074】
(実施形態に係る出力層学習(1)の例)
発火確率密度R(n)
i(t)は、漏れなしのスパイキングニューロンモデルにおいて、膜電位の傾き(時間微分)で近似することができる。この近似は、式(13)のように示される。
【0075】
【0076】
さらに、この関数を区分線形関数Rlinear(t)に近似し、式(14)を得る。
【0077】
【0078】
ここで、α、t’は、何れも定数であり、
図4に示すように、t’<t
(n-1)
jを満たすものとする。
図4は、スパイクのタイミングと発火確率密度との関係を示す図である。
図4の、上段は、t
(n-1)
jとt
(n)
iとのタイミングを示している。中段は、推定されるn層のi番目のニューロンの発火確率密度R
linear(t)を示している。下段は、推定される発火確率密度R
linear(t)から計算される第一発火のタイミングの確率分布を示している。
図4の上段、中段、下段の何れも横軸は時刻を示す。中段、下段それぞれの縦軸は発火確率密度を示す。
発火確率密度が区分線形関数R
linear(t)で与えられたときの第一発火タイミングの確率は以下のように計算できる。すなわち、時刻tまでに一度も発火しない確率をx(t)とおくと、これは、式(15)の微分方程式を満たす。
【0079】
【0080】
式(15)の微分方程式を解くと、式(16)のようになる。
【0081】
【0082】
よって、第一スパイク発火確率密度Pf(t)は、式(17)のように求めることができる。
【0083】
【0084】
なお、第一スパイク発火確率密度Pf(t)は非負であり、式(18)のように確率の定義を満たしていることが分かる。
【0085】
【0086】
第一スパイク発火確率密度Pf(t)が最大値をとる時刻t*は、Pf(t)の時間微分が0(∂Pf(t)/∂t=0)より、式(19)のように示される。
【0087】
【0088】
この時刻t*が出力スパイク時刻と一致する条件を課すことで、式(20)が得られる。
【0089】
【0090】
次に、重みが変化したときのニューロン(ニューロンモデル部121)の発火確率密度Rn
i(t)の変化は、式(21)のように示される。
【0091】
【0092】
発火確率密度を区分線形関数Rlinear(t)で表記して、その変化δRi(t)は、式(22)のように示される。
【0093】
【0094】
この変化は、
図5のように示される。
図5は、重みが変化したときの発火確率の変化を示す図である。具体的には、
図5は、重みW
(n)
ijがδW
(n)
ijだけ変化したときの、発火確率密度R
linear(t)の変化を示している。
図5の横軸は時刻を示し、縦軸は発火確率密度を示す。線L11は重みW
(n)
ijが変化する前の発火確率密度を示しており、線L12は重みW
(n)
ijが変化した後の発火確率密度を示している。
この発火関数が与えられたときの、発火タイミングは、t
(n)
i+δt
(n)
iと表される。t
(n)
i+δt
(n)
iを求めるために解くべき方程式は、式(23)のように示される。
【0095】
【0096】
あるいは、t(n)
i+δt(n)
iを求めるために解くべき方程式は、式(24)のように示される。
【0097】
【0098】
式(24)の解は、初期条件をx(0)=1として、式(25)のようになる。
【0099】
【0100】
式(25)のAは、式(26)のように示される。
【0101】
【0102】
このとき第一スパイク発火確率密度Pf(t)が最大値をとる時刻t*は、式(27)のようになる。
【0103】
【0104】
重みがδw(n)
ij変化したとき推定される出力スパイクの時刻の変化は、式(28)のように示される。
【0105】
【0106】
偏微分の近似値として式(29)が得られる。
【0107】
【0108】
次に、∂t(n)
i/∂t(n-1)
jの近似を行う。
上述したのと同様、式(30)に示すように、発火確率密度Rの変化を経由することで、δt(n-1)
jとt(n)
iとの関係を導くことで偏微分を近似する。
【0109】
【0110】
図6は、スパイクのタイミングが変化したときの発火確率密度の変化を示す図である。
具体的には、
図6は、前段層のニューロン(ニューロンモデル部121)の発火時間t
(n-1)
jがδt
(n-1)
jだけ変化したとき、後段層のニューロン(ニューロンモデル部121)の発火確率密度R
linear(t)が変化する様子を表している。
図6の横軸は時刻を示し、縦軸は発火確率密度を示す。線L21は、変化する前の発火確率密度R
linear(t)を示しており、線L21は、変化後の発火確率密度R
linear(t)+δR
linear(t)を示している。
【0111】
発火確率密度を線形近似した区分線形関数Rlinear(t)は、n-1層の全てのニューロン(ニューロンモデル部121)からn層のi番目のニューロン(ニューロンモデル部121)へのスパイクを平均化したものであり、式(31)のように変形できる。
【0112】
【0113】
式(31)の括弧内における第一項(w(n)
ijθ(t-t(n-1)
j)/(t(n-1)
j-t’))は、第n-1層のj番目のニューロンの発火の寄与によるものである。第二項(Σj’≠jw(n)
ij’θ(t-t(n-1)
j’)/(t(n-1)
j-t’))は、第n-1層のj番目以外のニューロンの発火の寄与によるものである。発火確率密度Rlinear(t)の変化δRlinear(t)は、Rlinear(t)の傾きαの変化δαと考えることができる。
式(31)の括弧内は傾きαを示しており、前段層のニューロンの発火時間t(n-1)
jがδt(n-1)
jだけ変化したときに変化する部分は第n-1層のj番目のニューロンの発火の寄与による第一項のみである。すなわち、式(32)に示すように傾きが変化する。
【0114】
【0115】
また、式(19)から式(33)が得られる。
【0116】
【0117】
これにより、偏微分∂t(n)
i/∂t(n-1)
jは、式(34)のように近似できる。
【0118】
【0119】
ここで定数τを式(35)のようにする。
【0120】
【0121】
τを用いて、式(36)が得られる。
【0122】
【0123】
(学習則の具体例)
以上より、ニューラルネットワーク装置100における任意の層の重みの近似学習則が導出できるが、以下で、具体例として、第N層の学習則と、第N-1層の学習則について記す。
出力層の学習則は、式(37)のようになる。
【0124】
【0125】
ここで、η(n)は、式(38)のように示される。
【0126】
【0127】
η(n)
0は、学習率を示す。ここで、式(38)に示すように学習率η(n)
0と発火確率密度の傾きαとの組み合わせを用いて、学習率η(n)を再定義する。式(38)では、発火確率密度の傾きαを定数として扱う。
学習処理部300は、式(37)に基づいて出力層のニューロンモデル部121への入力に対する重みw(N)
ijを更新することで、出力層の学習を行わせる。上述したように、重みw(N)
ijは、第N-1層のj番目のニューロンモデル部121と、第N層のi番目のニューロンモデル部121との結合の強さを示す。なお、出力層なので、式(37)でn=Nと読み替える。
隠れ層の学習則(重みの更新則)の具体例は、式(39)のようになる。
【0128】
【0129】
なお、η(n-1)について、式(40)とした。
【0130】
【0131】
学習処理部300は、式(39)に基づいて、第n層(ここでは隠れ層とする)のニューロンモデル部121への入力に対する重みw(n)
ijを更新することで、隠れ層の学習を行わせる。上述したように、重みw(n)
ijは、第n-1層のj番目のニューロンモデル部121と、第n層のi番目のニューロンモデル部121との結合の強さを示す。
【0132】
図7は、ネットワークの重みの更新則の例を示す図である。
図7は、実施形態に係る更新則を、第N層、第N-1層のそれぞれについて、SpikePropの場合の例と対比して表形式で示している。
図7の例では、出力層、隠れ層の何れに関しても、実施形態に係るアルゴリズムのほうが、SpikePropの場合よりも簡単な式で示されている。この点で、実施形態に係るアルゴリズムを用いることで、SpikePropの場合よりも、ネットワークの重みの更新処理(すなわち、ニューラルネットワークの学習処理)を比較的簡単なものとすることができる。
実施形態に係るアルゴリズムをソフトウェア的に実行する場合、ネットワークの重みの更新処理が比較的簡単なことで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済む。また、実施形態に係るアルゴリズムをハードウェア的に実行する場合、ネットワークの重みの更新処理が比較的簡単なことで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済むことに加えて、ハードウェアの回路面積が比較的小さくて済む。
【0133】
(シミュレーション例)
実施形態に係るニューラルネットワーク装置100のシミュレーション例を示す。手書き文字データセットであるMNISTデータセットを対象に、実施形態に係るモデル(式(4)参照)を用いて、実施形態に係る学習アルゴリズム(
図7参照)を用いて学習させた。MNISTデータセットは28x28画素の画像である784次元ベクトルと正解のスカラー値とが、訓練用として60000個ずつ与えられ、テスト用として同様の784次元ベクトルが10000個与えられている。
シミュレーションでは、ニューラルネットワークの重みを訓練用データを用いて更新し、テストデータを用いて性能を評価する。なお、テストデータを用いて重みは更新しない。
【0134】
シミュレーションで用いたネットワークは三層であり、第一層は169個の入力用スパイキングニューロン、第二層と第三層はそれぞれ、500個、10個のスパイキングニューロン(式(4)参照)で構成されている。
なお、入力のスパイキングニューロンは、入力データの28x28画素の画像データを畳み込みによる前処理を行い、13x13の169画素に削減している。これにより、データ量を削減し、効率的なシミュレーションが可能になる。
また、一枚の画像毎に重みを更新する行うオンライン学習を行った。
また、
図7に記載しているSpikePropアルゴリズムを用いたシミュレーションも行い、性能の比較を行った。
【0135】
図8は、シミュレーション結果を示す図である。線L31は、SpipePropアルゴリズムを用いた場合のシミュレーション結果を示している。線L32は上述した近似アルゴリズムを用いた場合の結果(ニューラルネットワーク装置100のシミュレーション結果)を示している。
図8の横軸はエポック数を示し、縦軸はテスト時の分類エラー率を示す。
図8を参照すると、エポック数が大きくなるごとに、SpikePropアルゴリズム、近似アルゴリズムの両方において分類エラー率が減少していることがわかる。
【0136】
分類エラー率は、SpikePropアルゴリズムにおいて、3.8%であり、近似アルゴリズムで4.9%であった。このように、近似アルゴリズムを用いても、分類エラー率はほとんど変わらないことがわかる。
【0137】
(実施形態に係る出力層の学習(2))
ニューラルネットワークシステム1における他の学習アルゴリズムについて説明する。
損失関数の重みによる微分は、式(41)のようになる。
【0138】
【0139】
式(41)における右辺の二つの項(∂t(l)
i/∂w(l)
ijおよび∂t(l+1)
s/∂t(l)
i)を、膜電位の時間発展方程式を用いて線形近似し、簡易な学習則を導く。
上述したように、w(l)
ijは、l-1番目の層のj番目のニューロンから、l番目の層のi番目のニューロンへとつながる結合の強さ(重み)を示す。t(l)
iは、l番目の層のi番目のニューロンの発火タイミングを示す。
式(41)に示される偏微分「∂t(l)
i/∂w(l)
ij」と「∂t(l+1)
s/∂t(l)
i」とを求めることにより、学習則の導出が可能である。これらはSpikeProp法により、式(42)のように計算できる。
【0140】
【0141】
但し、式(42)に示される2式のいずれも、右辺の分母の和(Σs)では、対象とする重みと結合している前層のニューロンが後層のニューロンよりも早く発火した場合のみ和をとっている。この分母を平均場的近似することで、学習時に必要なパラメータの個数を大きく減ずることが可能となる。
【0142】
まず、∂t
(l)
i/∂w
(l)
ijについて説明する。
図9は、重みの変化に伴って膜電位が変化する様子を表す図である。
図9は、重みw
(l)
ijが、w
(l)
ij+ΔWへと変化すると、時刻t
(l)
iにおける膜電位v
(l)
iが、V
thからV
th+ΔVへと変化する様子を表している。
図9の横軸は時刻を示し、縦軸は膜電位を示す。線L41は、重みw
(l)
ijが変化しないときの膜電位の時間発展の例を示す。線L42は、重みw
(l)
ijが変化したときの膜電位の時間発展の例を示す。線L43は、重みw
(l)
ijが変化したときの膜電位の時間発展の直線近似を示す。線L43によれば、発火時刻の近似解は、
図9に示す時刻t
i
^(l)となる。
前述の膜電位の変位ΔVは、
図9に示すように、式(43)のように導ける。
【0143】
【0144】
すると、l層のj番目のニューロンに初めて発火が伝わった時刻τ(l)
jと発火の閾値Vthとを用いることで、膜電位v*(l)
i(t)の時間発展を、時間に対して線形近似することが可能である。この近似の結果、膜電位の時間発展の式は、式(44)のように導出できる。
【0145】
【0146】
この近似下での発火タイミングt*(l)
iは、式(45)を解くことにより導出できる。
【0147】
【0148】
導出される式は、式(46)のようになる。
【0149】
【0150】
これにより、∂t(l)
i/∂w(l)
ijについて、(t*(l)
i-t(l)
i)/ΔWにてΔW→0の極限を取ることで近似が可能となり、式(47)のように偏微分の近似式を導出できる。
【0151】
【0152】
次に、∂t
(l+1)
j/∂t
(l)
kの近似式を導出する。
図10は、発火タイミングの変化に伴って膜電位が変化する様子を表す図である。
図10は、発火タイミングがt
(l)
kからt
(l)
k+ΔTへと変化すると、時刻t
(l+1)
jにおける膜電位v
(l+1)
jは、V
thからV
th+ΔVへと変化する様子を表している。
図10の横軸は時刻を示し、縦軸は膜電位を示す。線L51は、膜電位の時間発展の例を示す。線L52は、変化後の膜電位の時間発展を表している。線L53は、膜電位の時間発展の近似の例を示す。線L53によれば、発火時刻の近似解は、
図10に示す時刻t
i
^(l+1)となる。
膜電位の変位ΔVは、
図10に示すように、-w
(l+1)
jkΔTと導ける。すると、先ほどと同様にl+1層のj番目のニューロンに初めて発火が伝わった時刻τ
(l+1)
jと発火閾値V
thとを用いることで、膜電位v
*(l+1)
j(t)の時間発展を時間に対して線形に近似することが可能である。この平均近似の式は、式(48)のように導出できる。
【0153】
【0154】
この近似下での発火タイミングt*(l+1)
jは、式(49)を解くことにより導出できる。
【0155】
【0156】
発火タイミングt*(l+1)
jは、式(50)のように導出される。
【0157】
【0158】
これにより、∂t(l+1)
j/∂t(l)
kは、(t*(l+1)
j-t(l+1)
j)/ΔTにて、ΔT→0の極限を取ることで近似することが可能となり、式(51)のように偏微分の近似式を導出できる。
【0159】
【0160】
従って、∂t(l)
i/∂w(l)
ijは、式(52)のように近似される。
【0161】
【0162】
また、∂t(l+1)
j/∂t(l)
kは、式(53)のように近似される。
【0163】
【0164】
導出した∂t(l)
i/∂w(l)
ijの近似式(式(52))および∂t(l+1)
j/∂t(l)
kの近似式(式(53))を使うことで、他のニューロンモデルの情報の参照を大きく減じた学習則を導出することが可能である。
学習処理部300は、例えば、上述した式(41)に基づく学習の際に、式(52)および式(53)に示される近似を適用する。式(41)に基づく学習は、出力層の学習、隠れ層の学習の何れにも適用可能である。学習処理部300が、式(52)および式(53)に示される近似を式(41)に適用した学習にて、出力層および隠れ層のうち何れか一方の学習を行わせるようにしてもよいし、両方の学習を行わせるようにしてもよい。
【0165】
以上のように、ニューロンモデル部121は、漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流がステップ関数を用いて表されるスパイキングニューロンとして構成され、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでニューロンモデル部121自らの出力を示す。伝達処理部122は、ニューロンモデル部121の間の情報伝達を行う。
【0166】
ここでいうニューラルネットワークの1回の処理は、ニューラルネットワークが一組の入力データに対して出力データを出力する処理である。例えば、ニューラルネットワークがパターンマッチングを行う場合、1回のマッチング処理がニューラルネットワークの1回の処理の例に該当する。
ニューラルネットワーク装置100によれば、ニューロンモデル部121のリークをなくし、さらにすべてのニューロンモデル部121が一回以下しか発火しない条件の下で、ニューロンモデル部121を、ステップ関数を用いた比較的簡単なモデルとすることができる。
【0167】
ニューロンモデル部121の処理をソフトウェア的に実行する場合、ニューロンモデルが比較的簡単なモデルとなることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済む。また、ニューロンモデル部121の処理をハードウェア的に実行する場合、ニューロンモデルが比較的簡単なモデルとなることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済むことに加えて、ハードウェアの回路面積が比較的小さくて済む。
また、ニューロンモデル部121によれば、リークを含まないモデルである点で、ニューロンが時定数を有しないモデルとなり、入力データの時定数に依存しなくなるため、認識精度が高い。
また、ニューロンモデル部121は、時間方式による点で、頻度方式による場合よりも消費電力が少なくて済む。
【0168】
また、学習処理部300は、膜電位の時間発展の線形近似を用いて得られる、発火時刻の重みによる微分の近似、および、発火時刻の発火時刻による微分の近似のうち少なくとも何れか一方を適用した学習則を用いて、ニューラルネットワーク装置100の出力層および隠れ層のうち少なくとも何れか一方の学習を行わせる。
これにより、ニューラルネットワークシステム1では、出力層および隠れ層のうち少なくとも何れか一方の学習を、近似を用いた比較的簡単な処理にて実行することができる。
学習処理部300による学習のアルゴリズムをソフトウェア的に実行する場合、学習処理が比較的簡単なことで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済む。また、学習処理部300による学習のアルゴリズムをハードウェア的に実行する場合、学習処理が比較的簡単なことで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済むことに加えて、ハードウェアの回路面積が比較的小さくて済む。
なお、発火時刻の重みによる微分は、発火時刻を重みで微分したものを意味する。発火時刻の発火時刻による微分は、あるニューロンモデル部121の発火時刻を、他のニューロンモデル部121の発火時刻で微分したものを意味する。
【0169】
また、学習処理部300は、発火確率密度の傾きを用いて示される学習則を用いて、前記ニューラルネットワーク装置の出力層の学習を行わせる。
これにより、ニューラルネットワークシステム1では、発火確率密度の変化に基づいて発火時刻の変化を求めることができ、この点で、発火時刻の変化を比較的容易に求めることができる。
【0170】
次に、
図11を参照して、本発明の実施形態の構成について説明する。
図11は、実施形態に係るニューラルネットワーク装置の構成例を示す図である。
図11に示すニューラルネットワーク装置10は、ニューロンモデル部11と、伝達処理部12とを備える。
かかる構成にて、ニューロンモデル部11は、漏れなし積分発火型のスパイキングニューロン、かつ、シナプス後電流がステップ関数を用いて表されるスパイキングニューロンとして構成され、ニューラルネットワークの1回の処理において高々1回発火して発火タイミングでニューロンモデル部11自らの出力を示す。伝達処理部12は、ニューロンモデル部11の間の情報伝達を行う。
【0171】
ニューラルネットワーク装置10によれば、ニューロンモデル部11のリークをなくし、さらにすべてのニューロンモデル部11が一回以下しか発火しない条件の下で、ニューロンモデル部11を、ステップ関数を用いた比較的簡単なモデルとすることができる。
【0172】
ニューロンモデル部11の処理をソフトウェア的に実行する場合、ニューロンモデルが比較的簡単なモデルとなることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済む。また、ニューロンモデル部11の処理をハードウェア的に実行する場合、ニューロンモデルが比較的簡単なモデルとなることで、処理負荷が比較的軽くて済み、処理時間が比較的短くて済み、消費電力が比較的小さくて済むことに加えて、ハードウェアの回路面積が比較的小さくて済む。
また、ニューロンモデル部11によれば、リークを含まないモデルである点で、ニューロンが時定数を有しないモデルとなり、入力データの時定数に依存しなくなるため、認識精度が高い。
また、ニューロンモデル部11は、時間方式による点で、頻度方式による場合よりも消費電力が少なくて済む。
【0173】
ニューラルネットワークシステム1の全部または一部、あるいは、ニューラルネットワーク装置10の全部または一部が、専用ハードウェアに実装されていてもよい。
図12は、少なくとも1つの実施形態に係る専用ハードウェアの構成例を示す概略ブロック図である。
図12に示す構成で、専用ハードウェア500は、CPU510と、主記憶装置520と、補助記憶装置530と、インタフェース540とを備える。
【0174】
上述のニューラルネットワークシステム1が専用ハードウェア500に実装される場合、上述した各処理部(ニューラルネットワーク装置100、ニューロンモデル部121、伝達処理部122、予測誤差算出部200、学習処理部300)の動作は、プログラム、もしくは回路の形式で専用ハードウェア500に記憶されている。
【0175】
ニューラルネットワークシステム1の全部または一部、あるいは、ニューラルネットワーク装置10の全部または一部が、ASIC(application specific integrated circuit)に実装されていてもよい。
図13は、少なくとも1つの実施形態に係るコンピュータの構成例を示す概略ブロック図である。
図13に示す構成で、ASIC600は、演算部610と、記憶装置620と、インタフェース630とを備える。また、演算部610と記憶装置620とは統一されていても(すなわち、一体的に構成されていても)よい。
【0176】
ニューラルネットワークシステム1の全部または一部、あるいは、ニューラルネットワーク装置10の全部または一部が、実装されたASICは、CMOSなどの電子回路により、その演算を実行する。各々の電子回路が、それぞれ独立に層内のニューロンを実装してもよいし、層内の複数のニューロンを実装してもよい。また、同様に、ニューロンを演算する回路が、それぞれ、ある層の演算のみに用いられてもよいし、複数の層の演算に用いられてもよい。
【0177】
ニューラルネットワーク装置10の全部または一部がASICに実装される場合、そのASICは、特定のものに限定されない。例えば、ニューラルネットワーク装置10の全部または一部が、CPUを有していないASICに実装されていてもよい。また、ニューラルネットワーク装置10の実装に用いられる記憶装置が、チップ上に分散して配置されていてもよい。
【0178】
なお、ニューラルネットワークシステム1の機能の全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0179】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0180】
この出願は、2019年3月20日に出願された日本国特願2019-052880を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0181】
本発明は、ニューラルネットワーク装置、ニューラルネットワークシステム、処理方法および記録媒体に適用してもよい。
【符号の説明】
【0182】
1 ニューラルネットワークシステム
10、100 ニューラルネットワーク装置
11、121 ニューロンモデル部(ニューロンモデル手段)
12、122 伝達処理部(伝達処理手段)
111 第1層
112 第2層
113 第3層
114 第4層
200 予測誤差算出部(予測誤差算出手段)
300 学習処理部(学習処理手段)