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

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

▶ 日本電気株式会社の特許一覧

特許7694246演算装置、ニューラルネットワークシステム、ニューロンモデル装置、演算方法およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-10
(45)【発行日】2025-06-18
(54)【発明の名称】演算装置、ニューラルネットワークシステム、ニューロンモデル装置、演算方法およびプログラム
(51)【国際特許分類】
   G06N 3/049 20230101AFI20250611BHJP
   G06N 3/063 20230101ALI20250611BHJP
【FI】
G06N3/049
G06N3/063
【請求項の数】 7
(21)【出願番号】P 2021130005
(22)【出願日】2021-08-06
(65)【公開番号】P2023023995
(43)【公開日】2023-02-16
【審査請求日】2024-07-04
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】酒見 悠介
【審査官】多賀 実
(56)【参考文献】
【文献】国際公開第2020/013069(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、
前記指標値に関する所定の事象の発生タイミングを検出する検出手段と、
前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力する信号出力手段と、
を備えるスパイキングニューロンモデル
を備える演算装置。
【請求項2】
前記検出手段が検出する前記タイミングから所定時間後のタイミングに基づいて、前記信号出力手段に信号を出力させるタイミングを決定する遅延手段と、
2つの前記遅延手段のうち前記タイミングを決定させる前記遅延手段を、前記時間区間毎に切り替える切替手段と、
をさらに備える、
請求項1に記載の演算装置。
【請求項3】
前記指標値計算手段および前記検出手段を備える第1スパイキングニューロンモデルと、前記遅延手段および前記信号出力手段を備える2つの第2スパイキングニューロンモデルとをさらに備え、
前記検出手段が前記所定の事象の発生タイミングを検出すると、前記第1スパイキングニューロンモデルが前記第2スパイキングニューロンモデルへ前記信号を出力し、
前記遅延手段は、前記信号出力手段に前記信号を出力させるタイミングを、前記第1時間区間内のタイミング、かつ、前記第2時間区間にて前記第1スパイキングニューロンモデルから前記信号の入力を受けたタイミングから所定時間後のタイミングに基づくタイミングに決定する、
請求項2に記載の演算装置。
【請求項4】
スパイキングニューラルネットワーク本体と、学習手段とを備え、
前記スパイキングニューラルネットワーク本体は、
時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、
前記指標値に関する所定の事象の発生タイミングを検出する検出手段と、
前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力する信号出力手段と、
を備えるスパイキングニューロンモデルを備え、
前記学習手段は、前記信号に対する重み係数の学習を行う、
ニューラルネットワークシステム。
【請求項5】
時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、
前記指標値に関する所定の事象の発生タイミングを検出する検出手段と、
前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力する信号出力手段と、
を備えるニューロンモデル装置。
【請求項6】
時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、
前記指標値に関する所定の事象の発生タイミングを検出することと、
前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力することと、
を含む演算方法。
【請求項7】
プログラミング可能な装置に、
時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、
前記指標値に関する所定の事象の発生タイミングを検出することと、
前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置、ニューラルネットワークシステム、ニューロンモデル装置、演算方法およびプログラムに関する。
【背景技術】
【0002】
ニューラルネットワークの1つに、スパイキングニューラルネットワーク(Spiking Neural Network;SNN)がある。例えば、特許文献1には、スパイキングニューラルネットワークをニューロモーフィックコンピューティング(Neuromorphic Computing)デバイス上に実装するニューロモーフィイックコンピューティングシステムが記載されている。
スパイキングニューラルネットワークでは、ニューロンモデルが膜電位と呼ばれる内部状態を有し、膜電位の時間発展に基づいてスパイクと呼ばれる信号を出力する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-136919号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
スパイキングニューラルネットワークがデータ処理を効率的に行えることが好ましい。
【0005】
本発明の目的の一例は、上述の課題を解決することのできる演算装置、ニューラルネットワークシステム、ニューロンモデル装置、演算方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、演算装置は、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、前記指標値に関する所定の事象の発生タイミングを検出する検出手段と、前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力する信号出力手段と、を備えるスパイキングニューロンモデルを備える。
【0007】
本発明の第2の態様によれば、ニューラルネットワークシステムは、スパイキングニューラルネットワーク本体と、学習手段とを備え、前記スパイキングニューラルネットワーク本体は、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、前記指標値に関する所定の事象の発生タイミングを検出する検出手段と、前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力する信号出力手段と、を備えるスパイキングニューロンモデルを備え、前記学習手段は、前記信号に対する重み係数の学習を行う。
【0008】
本発明の第3の態様によれば、ニューロンモデル装置は、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる指標値計算手段と、前記指標値に関する所定の事象の発生タイミングを検出する検出手段と、前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力する信号出力手段と、を備える。
【0009】
本発明の第4の態様によれば、演算方法は、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、前記指標値に関する所定の事象の発生タイミングを検出することと、前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力することと、を含む。
【0010】
本発明の第5の態様によれば、プログラムは、プログラミング可能な装置に、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させることと、前記指標値に関する所定の事象の発生タイミングを検出することと、前記時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力することと、を実行させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【図面の簡単な説明】
【0012】
図1】実施形態に係るニューラルネットワーク装置の構成の例を示す図である。
図2】実施形態に係るニューラルネットワーク装置が備えるスパイキングニューラルネットワークの構成の例を示す図である。
図3】スパイク信号の出力タイミングが制限されていないスパイキングニューロンモデルにおける膜電位の時間変化の例を示す図である。
図4】スパイキングニューロンモデルのスパイク信号の出力タイミングが制限されていない場合の、スパイキングニューラルネットワークにおけるスパイキングニューロンモデルのスパイク信号の出力タイミングの例を示す図である。
図5】実施形態に係るニューラルネットワーク装置における層毎のデータ処理のタイミングの例を示す図である。
図6】実施形態に係るニューラルネットワーク装置のより具体的な構成の第1例を示す図である。
図7】実施形態に係る切替部および統合部の構成の例を示す図である。
図8】実施形態に係るニューラルネットワーク装置におけるニューロンモデル間のスパイク信号の受け渡しのタイミングの例を示す図である。
図9】実施形態に係るニューラルネットワーク装置における副層の構成の例を示す図である。
図10】実施形態に係るニューラルネットワーク装置におけるデータ処理のタイミングの例を示す図である。
図11】実施形態に係るクリップ関数の第1例を示す図である。
図12】実施形態に係るクリップ関数の第2例を示す図である。
図13】実施形態に係る第l層のi番目のニューロンモデルが、第dデータを処理する際のタイミングを示す関数の第1例を示す図である。
図14】実施形態に係る第l層のi番目のニューロンモデルが、第dデータを処理する際のタイミングを示す関数の第2例を示す図である。
図15】実施形態に係る第l層のi番目のニューロンモデルが、第dデータを処理する際のタイミングを示す関数の第3例を示す図である。
図16】実施形態に係る演算装置のより具体的な構成の第2例を示す図である。
図17】学習時における実施形態に係るシステム構成の例を示す図である。
図18】実施形態に係るニューラルネットワークシステムにおける信号の入出力の例を示す図である。
図19】運用時の実施形態に係るニューラルネットワーク装置における信号の入出力の例を示す図である。
図20】実施形態に係る演算装置の構成例を示す図である。
図21】実施形態に係るニューラルネットワークシステムの構成例を示す図である。
図22】実施形態に係るニューロンモデル装置の構成例を示す図である。
図23】実施形態に係る演算方法における処理手順の例を示すフローチャートである。
図24】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係るニューラルネットワーク装置の構成の例を示す図である。図1に示す構成で、ニューラルネットワーク装置10は、ニューロンモデル100を備える。ニューロンモデル100は、指標値計算部110と、検出部120と、遅延部130と、信号出力部140とを備える。
【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へのスパイク信号の入力状況に基づいて膜電位を計算する。信号出力部140は、膜電位の時間変化に応じたタイミングでスパイク信号を出力する。
【0018】
ニューラルネットワーク装置10におけるスパイク信号として、パルス信号を用いるようにしてもよいし、ステップ信号を用いるようにしてもよいが、これらに限定されない。
以下では、ニューラルネットワーク装置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 (l)(t)と表記する。図3の説明で、第l層のi番目のノードのスパイキングニューロンモデルを対象モデルとも称する。
【0032】
図3の例で、対象モデルは3つのスパイキングニューロンモデルからのスパイク信号の入力を受けている。
時刻t *(l-1)は、第l-1層の2番目のスパイキングニューロンモデルからのスパイク信号の入力時刻を示す。時刻t *(l-1)は、第l-1層の1番目のスパイキングニューロンモデルからのスパイク信号の入力時刻を示す。時刻t *(l-1)は、第l-1層の3番目のスパイキングニューロンモデルからのスパイク信号の入力時刻を示す。
また、対象モデルは、時刻t *(l)にスパイク信号を出力している。スパイキングニューロンモデルがスパイク信号を出力することを発火と称する。スパイキングニューロンモデルが発火した時刻を発火時刻と称する。
【0033】
図3の例では、膜電位の初期値を0としている。膜電位の初期値は、静止膜電位に相当する。
対象モデルの発火前は、スパイク信号の入力後、対象モデルの膜電位v (l)(t)が、スパイク信号の伝達経路毎に設定されている重みに応じた変化率(変化速度)で変化し続ける。また、スパイク信号の入力毎の膜電位の変化率は線形的に加算される。図3の例における膜電位v (l)(t)の微分方程式は、式(1)のように表される。
【0034】
【数1】
【0035】
ij (l)は、第l-1層のj番目のスパイキングニューロンモデルから対象モデルへのスパイク信号の伝達経路に設定されている重みを示す。重みwij (l)は学習の対象となる。
θはステップ関数であり、式(2)のように示される。
【0036】
【数2】
【0037】
時刻t *(l)に、対象モデルの膜電位v (l)(t)が発火閾値Vthに達し、対象モデルが発火している。発火によって対象モデルの膜電位v (l)(t)が0になり、その後は対象モデルがスパイク信号の入力を受けても膜電位は変化していない。
【0038】
図4は、スパイキングニューロンモデルのスパイク信号の出力タイミングが制限されていない場合の、スパイキングニューラルネットワークにおけるスパイキングニューロンモデルのスパイク信号の出力タイミングの例を示す図である。
図4の横軸は、時刻を、スパイキングニューラルネットワークへのデータ入力開始時からの経過時間で示す。縦軸は、入力層、第1層、第2層および出力層のそれぞれにおけるノード番号を示す。層毎のノード番号は、層内におけるスパイキングニューロンモデルを識別する識別番号として用いられる。
【0039】
図4の例で、入力層のスパイキングニューロンモデルは、スパイキングニューラルネットワークへのデータ入力開始時から5ミリ秒程度の時間内に発火している。これに対し、第1層のスパイキングニューロンモデルの発火タイミングは、スパイキングニューラルネットワークへのデータ入力開始からの経過時間で、約10ミリ秒から約120ミリ秒までの範囲に散らばっている。第2層のスパイキングニューロンモデルの発火タイミングは、スパイキングニューラルネットワークへのデータ入力開始からの経過時間で、約20ミリ秒から約70ミリ秒までの範囲に散らばっている。
【0040】
一般に、スパイキングニューラルネットワークの発火タイミング、および、第1層および第2層のスパイキングニューロンモデルの発火のうちどれが出力層のスパイキングニューロンモデルの発火に影響しているかを、スパイキングニューラルネットワークの処理実行時にリアルタイムで知ることは困難である。
【0041】
このため、スパイキングニューラルネットワークの方式にもよるが、少なくとも出力層で最初にスパイキングニューロンモデルが発火するまでの時間T11の間、次の入力データをスパイキングニューラルネットワークに入力せずに待つ必要がある。
これに対し、入力データが複数ある場合、1つの入力データに対する演算結果を得られる前に、次の入力データをスパイキングニューラルネットワークに入力できれば、最初の入力データをスパイキングニューラルネットワークに入力してから最後の入力データに対する演算結果を得られるまでの時間を比較的短くすることができ、この点で、スパイキングニューラルネットワークのスループットを高めることができる。
【0042】
そこで、ニューラルネットワーク装置10では、ニューロンモデル100のデータ処理時間を設定し、ニューロンモデル100がデータ処理時間内に所定の処理を完了するようにする。
具体的には、指標値計算部110が、所定の時間区間毎に、スパイク信号の形式で入力される入力データに基づいて膜電位を計算する。この時間区間の時間幅が、データ処理時間の例に該当する。そして、検出部120が、時間区間毎に、指標値計算部110が計算する膜電位に関する所定の事象の発生タイミングを検出する。遅延部130は、検出部120が事象の発生タイミングを検出する毎に、そのタイミングが含まれる時間区間の次の時間区間内で、スパイク信号の出力タイミングを決定する。信号出力部140は、時間区間毎に、遅延部130が決定するタイミングで、スパイク信号を出力する。信号出力部140が出力するスパイク信号は、ニューロンモデル100からの出力データに該当する。
これにより、ニューロンモデル100は、時間区間毎にデータの入力を受け付ける。そして、ニューロンモデル100は、時間区間2つ分の時間で入力データを順次処理し、時間区間毎にデータを出力する。
【0043】
図5は、ニューラルネットワーク装置10における層毎のデータ処理のタイミングの例を示す図である。図5では、図2に示される4層構成の場合を例に、入力層21、中間層の第1層(中間層22-1)、中間層の第2層(中間層22-2)、出力層23のそれぞれのノード30がデータを処理するタイミングを示している。第1層および第2層の何れでも、ノード30としてニューロンモデル100が用いられる。
【0044】
図5の横軸は、時刻を、ニューラルネットワーク装置10へのデータ入力開始時からの経過時間で示す。
図5の例で、横軸が示す時間は、時間幅T毎の時間区間に分割されている。
ニューラルネットワーク装置10は、全てのニューロンモデル100に同じ時間幅の時間区間が同じタイミングで設定されるように、ニューロンモデル100間で同期をとって同じ時間区間を設定する。
【0045】
あるいは、スパイク信号の伝達における遅延時間を無視できない場合、ニューラルネットワーク装置10が層毎に、層内の全てのニューロンモデル100間で同期をとって同じ時間区間を設定し、相関では、スパイク信号の伝達における遅延時間分だけずらして時間区間を設定するようにしてもよい。
【0046】
入力層21のノード30は、時間区間毎にデータをスパイク信号の形式で第1層のノード30へ出力する。図5の例では、入力層21のノード30は、第1データ、第2データおよび第3データの3つのデータを第1層のノード30へ出力している。ただし、入力層21のノード30が出力するデータの個数は、特定の個数に限定されない。
【0047】
第1層のノード30は、入力層21のノード30からデータの入力を受ける毎に、データの入力を受けた時間区間の次の時間区間に、そのデータの処理のための中間データをスパイク信号の形式で第2層のノード30に出力する。例えば、第1層のノード30は、時刻0からTまでの時間区間に第1データの入力を受け、時刻Tから2Tまでの時間区間に、第1データの処理のための中間データを第2層のノード30へ出力する。
【0048】
第2層のノード30は、第1層のノード30からデータの入力を受ける毎に、データの入力を受けた時間区間の次の時間区間に、そのデータの処理のための中間データをスパイク信号の形式で出力層のノード30に出力する。例えば、第2層のノード30は、時刻Tから2Tまでの時間区間に第1データの処理のための中間データの入力を受け、時刻2Tから3Tまでの時間区間に、第1層のノード30からのデータにさらに処理を加えた中間データを出力層のノード30へ出力する。
【0049】
出力層のノード30は、第2層のノード30からデータの入力を受ける毎に、そのデータにさらに処理を加えた出力データをスパイク信号の形式で出力する。
出力層のノード30からの出力データは、さらにノードに入力されるものではないため、図5の例で、出力層のノード30は、データの入力を受けた時間区間にデータを出力している。
【0050】
このように、ニューラルネットワーク装置10では、データ処理を行う時間区間が決まっていることで、1つのデータの処理の完了を待たずに次のデータの処理を開始することができる。
また、ニューラルネットワーク装置10では、第1層および第2層の例のように、ニューロンモデル100は、スパイク信号の入力を受けた時間区間の次の時間区間にスパイク信号を出力する。これにより、ニューロンモデル100は、時間区間内におけるスパイク信号出力のタイミングを調整することができる。スパイク信号出力のタイミングを調整することで、ニューラルネットワーク装置10では、例えば、信号伝達における下流側の層でスパイク信号の入力のタイミングが時間区間内の後ろのほう(その時間区間の終了時付近)に偏ることを回避できる。
【0051】
図5に例示されるタイミングでデータ処理を行うために、ニューロンモデル100は、上述したように、時間区間毎のスパイク信号の入力状況に応じて、その次の時間区間にてスパイク信号を出力する。
以下では、式(1)および式(2)を参照してスパイキングニューラルネットワークについて説明したのと同様、第l層のi番目のノードのニューロンモデル100を対象モデルと称し、対象モデルの膜電位をv (l)(t)と表記する。また、第l-1層のj番目のスパイキングニューロンモデルから対象モデルへのスパイク信号の伝達経路に設定されている重みをwij (l)と表記する。
【0052】
指標値計算部110は、時間区間毎に、その時間区間におけるスパイク信号のニューロンモデル100への入力状況に基づいて膜電位を変化させる。指標値計算部110は、指標値計算手段の例に該当する。
指標値計算部110は、膜電位v (l)(t)が閾値Vthに達するまで、または、時間区間が終了するまでの何れか早い方の事象が発生するまで、微分方程式が式(1)のように表される膜電位v (l)(t)を計算する。膜電位v (l)(t)は、式(3)のように表される。
【0053】
【数3】
【0054】
指標値計算部110が、式(3)に基づいて膜電位を計算するようにしてもよい。
一方、膜電位v (l)(t)が閾値Vthに達したタイミング、または、時間区間が終了したタイミングで、指標値計算部110は、膜電位v (l)(t)の値を0にリセットする。指標値計算部110は、次の時間区間の開始時まで膜電位v (l)(t)の値を0に維持する。これにより、指標値計算部110は、各時間区間における膜電位v (l)(t)の計算を、膜電位v (l)(t)の値が0の状態から開始する。
【0055】
膜電位v (l)(t)が閾値Vthに達する時刻をt (l,vth)と表記して式(3)の時刻tに代入すると、式(4)を得られる。
【0056】
【数4】
【0057】
Γ (l)は、t *(l-1)<t (l,vth)となるインデックスjの集合を表す。
ニューラルネットワーク装置10では、発火時刻が出力時間区間内に制限されるため、発火時刻t *(l)が、膜電位v (l)(t)が閾値Vthに達する時刻よりも後の時刻になる場合がある。このように、膜電位v (l)(t)が閾値Vthに達する時刻と発火時刻t *(l)とが異なる場合があることから、膜電位v (l)(t)が閾値Vthに達する時刻をt (l,vth)と表記している。膜電位が閾値に達する時刻を、閾値到達時刻とも称する。
式(4)より、閾値到達時刻t (l,vth)は、式(5)のように表される。
【0058】
【数5】
【0059】
検出部120は、膜電位に関する所定の事象の発生タイミングを検出する。検出部120は、検出手段の例に該当する。
ここでいう膜電位に関する所定の事象は、膜電位が所定の閾値に達したこと、または、データ処理時間の終了時までに膜電位が所定の閾値に到達しないことであってもよい。ここでいう膜電位に関する所定の事象の発生タイミングは、膜電位が所定の閾値に達したタイミング、または、データ処理時間の終了時であってもよい。
【0060】
検出部120が検出する、膜電位に関する所定の事象の発生タイミングを、事象発生タイミングとも称する。時間区間内に膜電位v (l)(t)が閾値Vthに達した場合、検出部120は、膜電位v (l)(t)が閾値Vthに達したタイミングを、事象発生タイミングとして検出する。一方、時間区間内に膜電位v (l)(t)が閾値Vthに達しない場合、検出部120は、その時間区間の終了時を、事象発生タイミングとして検出する。
【0061】
遅延部130は、ニューロンモデル100がスパイク信号を出力するタイミングを決定する。特に、遅延部130は、時間区間毎に、その前の時間区間における事象発生タイミングに基づいて、ニューロンモデル100がスパイク信号を出力するタイミングを決定する。
【0062】
具体的には、遅延部130は、事象発生タイミングから所定の条件の分の時間だけ遅延したタイミングを検出する。遅延部130が検出する、事象発生タイミングから所定の条件の分の時間だけ遅延したタイミングを、遅延後タイミングとも称する。
【0063】
遅延後タイミングが事象発生タイミングと同じ時間区間に含まれる場合、遅延部130は、その時間区間の次の時間区間の開始時を、ニューロンモデル100がスパイク信号を出力するタイミングに決定する。
遅延後タイミングが含まれる時間区間が、事象発生タイミングが含まれる時間区間の次の時間区間である場合、遅延部130は、遅延後タイミングを、ニューロンモデル100がスパイク信号を出力するタイミングに決定する。
事象発生タイミングが含まれる次の時間区間中までに遅延後タイミングを検出しない場合、遅延部130は、事象発生タイミングが含まれる次の時間区間の終了時を、ニューロンモデル100がスパイク信号を出力するタイミングに決定する。
【0064】
信号出力部140は、遅延部130が決定するタイミングで、スパイク信号を出力する。これにより信号出力部140は、時間区間のうち第1時間区間内のタイミング、かつ、第1時間区間よりも過去の時間区間である第2時間区間における所定の事象の発生タイミングに応じたタイミングで、スパイク信号を出力する。ここでは、第1時間区間は、ニューロンモデル100スパイク信号を出力する時間区間である。第2時間区間は、ニューロンモデル100が、第1時間区間でのスパイク信号出力タイミングを決定する元となるスパイク信号の入力を受ける時間区間である。
信号出力部140は、信号出力手段の例に該当する。
【0065】
図6は、ニューラルネットワーク装置のより具体的な構成の第1例を示す図である。
図6に示す構成で、ニューラルネットワーク装置10aは、ニューロンモデル100aを備える。ニューロンモデル100aは、第1サブモデル210-1と、切替部220aと、第2サブモデル210-2と、第3サブモデル210-3と、統合部230とを備える。第1サブモデル210-1は、第1指標値計算部211-1と、第1検出部212-1と、第1信号出力部213-1とを備える。第2サブモデル210-2は、第2指標値計算部211-2と、第2検出部212-2と、第2信号出力部213-2とを備える。第3サブモデル210-3は、第3指標値計算部211-3と、第3検出部212-3と、第3信号出力部213-3とを備える。
【0066】
第1サブモデル210-1と、第2サブモデル210-2と、第3サブモデル210-3とを総称してサブモデル210とも表記する。第2サブモデル210-2と、第3サブモデル210-3とを総称して遅延用サブモデル210fとも表記する。
第1指標値計算部211-1と、第2指標値計算部211-2と、第3指標値計算部211-3とを総称して指標値計算部211とも表記する。第2指標値計算部211-2と、第3指標値計算部211-3とを総称して遅延用指標値計算部211fとも表記する。
【0067】
第1検出部212-1と、第2検出部212-2と、第3検出部212-3とを総称して検出部212とも表記する。第2検出部212-2と、第3検出部212-3とを総称して遅延用検出部212fとも表記する。
第1信号出力部213-1と、第2信号出力部213-2と、第3信号出力部213-3とを総称して信号出力部213とも表記する。第2信号出力部213-2と、第3信号出力部213-3とを総称して遅延用信号出力部213fとも表記する。
【0068】
サブモデル210は、スパイキングニューロンモデルとして構成されている。具体的には、指標値計算部211は、サブモデル210へのスパイク信号の入力状況に基づいて、膜電位を時間変化させる。第1サブモデル210-1は、第1スパイキングニューロンモデルの例に該当する。2つの遅延用サブモデル210fは、2つの第2スパイキングニューロンモデルの例に該当する。
【0069】
検出部212は、膜電位に関する所定の事象の発生タイミングを検出する。
具体的には、第1検出部212-1は、膜電位と所定の閾値とを比較する。時間区間内で膜電位が閾値に達する場合、第1検出部212-1は、膜電位が閾値に達するタイミングを検出する。膜電位が閾値に達しないまま時間区間が終了する場合、第1検出部212-1は、その時間区間の終了タイミングを検出する。
【0070】
遅延用サブモデル210fでは、時間区間が、遅延用サブモデル210fがスパイク信号の入力を受ける時間区間と、遅延用サブモデル210fがスパイク信号を出力する時間区間とに分けられる。遅延用サブモデル210fがスパイク信号の入力を受ける時間区間を、入力時間区間とも称する。遅延用サブモデル210fがスパイク信号を出力する時間区間を、出力時間区間とも称する。
入力時間区間は、遅延用サブモデル210fが第1サブモデル210-1からのスパイク信号の入力を受ける時間区間である。出力時間区間は、入力時間区間の次の時間区間である。
【0071】
遅延用検出部212fは、膜電位と所定の閾値とを比較する。出力時間区間内で膜電位が閾値に達する場合、検出部212は、膜電位が閾値に達するタイミングを検出する。膜電位が閾値に達しないまま出力時間区間が終了する場合、検出部212は、その時間区間の終了タイミングを検出する。
また、入力時間区間内に膜電位が閾値に達する場合、遅延用検出部212fは、その次の時間区間の開始タイミングを検出する。この場合、「その次の時間区間」は、出力時間区間に該当する。
【0072】
信号出力部213は、検出部120が検出する所定の事象の発生タイミングで、スパイク信号を出力する。
例えば、第1信号出力部213-1は、第1検出部212-1が検出する、膜電位が閾値に達するタイミング、または、膜電位が閾値に達しないまま時間区間が終了する場合の、その時間区間の終了タイミングにて、スパイク信号を出力する。
【0073】
また、遅延用信号出力部213fは、遅延用検出部212fが検出する、出力時間区間内で膜電位が閾値に達するタイミング、膜電位が閾値に達しないまま出力時間区間が終了する場合の、その時間区間の終了タイミング、または、入力時間区間内に膜電位が閾値に達する場合の、その次の時間区間の開始タイミングにて、スパイク信号を出力する。
【0074】
切替部220aは、第1サブモデル210-1からのスパイク信号の伝達先を、2つの遅延用サブモデル210fの何れかに切り替える。
統合部230は、2つの遅延用サブモデル210fそれぞれから出力されるスパイク信号を統合する。
【0075】
ここでのスパイク信号を統合することは、2つの遅延用サブモデル210fそれぞれから出力されるスパイク信号のorをとることであってもよい。具体的には、時間区間毎に、2つの遅延用サブモデル210fのうち何れか一方の遅延用サブモデル210fが、スパイク信号を出力する。統合部230は、時間区間毎に、何れか一方の遅延用サブモデル210fが出力するスパイク信号を、ニューロンモデル100aの出力として出力する。
【0076】
ニューラルネットワーク装置10aは、ニューラルネットワーク装置10の例に該当する。
第1指標値計算部211-1は、指標値計算部110の例に該当する。第1指標値計算部211-1は、指標値計算手段の例にも該当する。
第1検出部212-1は、検出部120の例に該当する。第1検出部212-1は、検出手段の例にも該当する。
【0077】
遅延用指標値計算部211fと遅延用検出部212fとの組み合わせは、遅延部130の例に該当する。遅延用指標値計算部211fと遅延用検出部212fとの組み合わせは、遅延手段の例にも該当する。
遅延用信号出力部213fは、信号出力部140の例に該当する。遅延用信号出力部213fは、信号出力手段の例にも該当する。
【0078】
図7は、切替部220aおよび統合部230の構成の例を示す図である。
図7の例で、切替部220aは、スイッチ221を含んで構成される。切替部220aは、入力されるクロック信号に基づいて、時間区間毎にスイッチ221を切り替える。これにより、切替部220aは、第1サブモデル210-1からのスパイク信号の出力先の遅延用サブモデル210fを時間区間毎に切り替える。
切替部220aは、切替手段の例に該当する。
【0079】
統合部230は、スイッチ231とインバータ232とを含んで構成される。統合部230は、入力されるクロック信号をインバータ232で反転させ、反転後のクロック信号に基づいて、時間区間毎にスイッチ231を切り替える。これにより、統合部230は、スパイク信号を出力する遅延用サブモデル210fを、時間区間毎に、第1サブモデル210-1からのスパイク信号の入力を受けない方の遅延用サブモデル210fに切り替える。
ただし、切替部220aおよび統合部230の構成は、図7に例示される構成に限定されない。
【0080】
図8は、ニューラルネットワーク装置10aにおけるニューロンモデル100a間のスパイク信号の受け渡しのタイミングの例を示す図である。図8は、1つのニューロンモデル100aにおける第1サブモデル210-1および2つの遅延用サブモデル210fの間のスパイク信号の受け渡し、および、2つの遅延用サブモデル210fと、それらの遅延用サブモデル210fからのスパイク信号の入力を受けるニューロンモデル100aの第1サブモデル210-1との間のスパイク信号の受け渡しの例を示している。
【0081】
図8のグラフの横軸は、時刻を、図8中でスパイク信号を出力する側のニューロンモデル100aに最初の入力データが入力されてからの経過時間で示す。縦軸は、第1サブモデル210-1、第2サブモデル210-2、第3サブモデル210-3、遅延用サブモデル210fからのスパイク信号の入力を受ける第1サブモデル210-1それぞれの膜電位を示す。
図5の例でニューラルネットワーク装置10について説明したのと同様、図8の横軸に示される時間は、時間幅T毎の時間区間に分割されている。
【0082】
第1サブモデル210-1は、時間区間の開始時には膜電位が0にリセットされた状態になっている。第1指標値計算部211-1が第1サブモデル210-1の発火時に膜電位を0に設定し、次の時間区間の開始時まで膜電位を0とする設定を維持するようにしてもよい。
時間区間の開始時から第1サブモデル210-1の発火時まで、第1指標値計算部211-1は、時間区間内に受けるスパイク信号の取得状況に応じて膜電位を時間変化させる。
第1サブモデル210-1は、膜電位が閾値に到達したタイミングで発火する。時間区間内に膜電位が閾値に達しない場合、第1サブモデル210-1は、時間区間の終了時に発火する。
膜電位が閾値に達していない状態での発火を強制発火とも称する。
【0083】
第1サブモデル210-1からのスパイク信号は、2つの遅延用サブモデル210fの何れかに入力される。例えば、奇数番目のデータの処理におけるスパイク信号が、第2サブモデル210-2に入力され、偶数番目のデータ処理におけるスパイク信号が、第3サブモデル210-3に入力されるようにしてもよい。上記のように、切替部220aが、第1サブモデル210-1からのスパイク信号を、2つの遅延用サブモデル210fの何れかに振り分ける。
【0084】
遅延用サブモデル210fは、第1サブモデル210-1からのスパイク信号の入力を受けた時間区間の次の時間区間にてスパイク信号を出力する。
上記のように、遅延用サブモデル210fがスパイク信号の入力を受ける時間区間を入力時間区間とも称する。遅延用サブモデル210fがスパイク信号を出力する時間区間を出力時間区間とも称する。第2サブモデル210-2と第3サブモデル210-3とで入力時間区間と出力時間区間とが逆になる。すなわち、第2サブモデル210-2における時間区間が入力時間区間であるときは、第3サブモデル210-3における時間区間は出力時間区間となっている。第2サブモデル210-2における時間区間が出力時間区間であるときは、第3サブモデル210-3における時間区間は入力時間区間となっている。
【0085】
入力時間区間の開始時には、遅延用サブモデル210fの膜電位は0にリセットされた状態になっている。遅延用サブモデル210fの指標値計算部211が遅延用サブモデル210fの発火時に膜電位を0に設定し、次の時間区間の開始時まで膜電位を0とする設定を維持するようにしてもよい。遅延用サブモデル210fの発火は出力時間区間にて行われ、ここでの「次の時間区間」は入力時間区間になる。
【0086】
遅延用サブモデル210fは、遅延用サブモデル210f自らが含まれるニューロンモデル100aと同じニューロンモデル100aに含まれる1つの第1サブモデル210-1のみからのスパイク信号の入力を受ける。
第1サブモデル210-1からのスパイク信号の入力を受けると、遅延用指標値計算部211fは、スパイク信号の伝達経路に設定されている重みに応じた変化率(変化速度)で膜電位を増加させる。
【0087】
入力時間区間内で膜電位が閾値に達した場合、遅延用信号出力部213fは、出力時間区間の開始時にスパイク信号を出力する。例えば、膜電位が閾値に達してから出力時間区間の開始時まで、遅延用指標値計算部211fが、膜電位を閾値と同じ値で維持する。そして、出力時間区間の開始時に、遅延用検出部212fが、膜電位が閾値に達していることを検出し、遅延用信号出力部213fが、遅延用検出部212fの検出結果に基づいてスパイク信号を出力する。発火後、遅延用指標値計算部211fは、膜電位を0に設定する。
【0088】
出力時間区間内で膜電位が閾値に達した場合、遅延用検出部212fが、膜電位が閾値に達していることを検出し、遅延用信号出力部213fが、遅延用検出部212fの検出結果に基づいてスパイク信号を出力する。発火後、遅延用指標値計算部211fは、膜電位を0に設定する。
【0089】
出力時間区間終了までに膜電位が閾値に達しなかった場合、遅延用信号出力部213fは、強制発火にてスパイク信号を出力する。例えば、出力時間区間の終了時までに膜電位が一度も閾値に達していない場合、遅延用検出部212fが、膜電位が閾値に達したとするダミーの判定結果を遅延用信号出力部213fに出力するようにしてもよい。そして、遅延用信号出力部213fが、遅延用検出部212fのダミーの判定結果に基づいて、出力時間区間の終了時にスパイク信号を出力するようにしてもよい。発火後、遅延用指標値計算部211fは、膜電位を0に設定する。
【0090】
図9は、ニューラルネットワーク装置10aにおける副層(Sublayer)の構成の例を示す図である。
ニューラルネットワーク装置10aが備えるスパイキングニューラルネットワークを、ニューラルネットワーク11aとも表記する。ニューラルネットワーク11aは、ニューラルネットワーク11の例に該当する。
【0091】
図9の例で、ノード30としてニューロンモデル100aを含む層20が、副層を含んで構成されている。第1サブモデル210-1を含む副層を演算層と称し、符号25-1を付加する。第2サブモデル210-2を含む副層を第1遅延層と称し、符号25-2を付加する。第3サブモデル210-3を含む副層を第2遅延層と称し、符号25-3を付加する。
副層が第i層(iは正の整数)に含まれる場合、演算層を第i演算層とも称し、第1遅延層を第i-1遅延層とも称し、第2遅延層を第i-2遅延層とも称する。
【0092】
第1サブモデル210-1がスパイク信号を出力すると、切替部220aが、第1サブモデル210-1からのスパイク信号を、2つの遅延用サブモデル210fの何れかに伝送する。第1サブモデル210-1からのスパイク信号の入力を受けた遅延用サブモデル210fが、その次の時間区間に出力するスパイク信号は、統合部230を経由して次の層20のノード30に入力される。
【0093】
図10は、ニューラルネットワーク装置10aにおけるデータ処理のタイミングの例を示す図である。図10の横軸は、時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。図10の例では、横軸に示される時間が、時間T毎の時間区間に区切られている。
【0094】
また、図10は、ニューラルネットワーク11aが、入力層、第1層、第2層および出力層の4層で構成され、、第1データ、第2データ、および、第3データの3つのデータを処理する場合の例を示している。層毎または副層毎に、その層または副層で各データを処理する時間区間を示している。
【0095】
図10の例で、入力層のノード30は、1つの時間区間で1つのデータを第1演算層のノード30に出力する。
演算層では、第1サブモデル210-1が、データの入力を受けた時間区間内でそのデータに対する処理を行い、遅延層の遅延用サブモデル210fへスパイク信号にてデータを出力する。第1サブモデル210-1におけるデータ処理は、発火タイミングを決定する処理であってもよい。
【0096】
遅延層では、遅延用サブモデル210fが、入力時間区間にデータの入力を受ける。遅延用サブモデル210fは、入力時間区間の次の時間区間である出力時間区間のうち、入力時間区間でデータの入力を受けたタイミングに応じたタイミングでスパイク信号を出力することで、次の層のノードへデータを出力する。遅延用サブモデル210fは、入力時間区間にて入力を受けたスパイク信号を、出力時間区間まで遅延させて出力するものといえる。
出力層のノード30は、データの入力を受けた時間区間内でそのデータに対する処理を行い、処理結果のデータをスパイク信号にて出力する。
【0097】
このように、各層について1つのデータの処理時間が定められていることで、ニューラルネットワーク装置10aでは、1つのデータの処理の終了を待たずに、パイプライン処理方式で次のデータ処理を開始することができる。
また、遅延用サブモデル210fが、入力時間区間にてスパイク信号の入力を受け、次の時間区間である出力時間区間まで遅らせてスパイク信号を出力することで、時間区間内におけるスパイク信号の出力タイミングを調整することができる。例えば、データの流れの下流側の層で、スパイク信号の入力が時間区間の最後付近に集中することを回避し得る。
また、1つの第1サブモデル210-1に対して2つの遅延用サブモデル210fが設けられていることで、遅延用サブモデル210fの各々が1つのデータの処理を2つの時間区間にわたって行っても(おこなっても)、第1サブモデル210-1は、時間区間毎にデータを遅延用サブモデル210fへ出力することができる。
【0098】
第l層のi番目のニューロンモデル100の第1サブモデル210-1の発火前の膜電位vi_1 (l)(t)は、式(6)のように表すことができる。
【0099】
【数6】
【0100】
この第1サブモデル210-1における閾値到達時刻をti_1 (l,vth)とすると、式(7)を得られる。
【0101】
【数7】
【0102】
Γi_1 (l)は、t *(l-1)<ti_1 (l,vth)となるインデックスjの集合を表す。
閾値到達時刻ti_1 (l,vth)は、式(8)のように表される。
【0103】
【数8】
【0104】
この第1サブモデル210-1がd番目のデータを処理する際の発火時刻ti_1 *(l)は、式(9)のように表すことができる。
【0105】
【数9】
【0106】
関数clipは、式(10)のように示される。
【0107】
【数10】
【0108】
式(10)に示される関数clipをクリップ関数とも称する。
図11は、クリップ関数の第1例を示す図である。図11は、第l層のi番目のニューロンモデル100の第1サブモデル210-1が、第dデータを処理する際のクリップ関数の例を示す。
図11のグラフの横軸は、膜電位が閾値に達する時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。縦軸は、第1サブモデル210-1の発火時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。
【0109】
時刻(l+d-2)Tから(l+d-1)Tまでの時間は、第l層のi番目のニューロンモデル100の第1サブモデル210-1が、第dデータを処理する時間区間に該当する。この時間区間内に膜電位が閾値に達した場合、第1検出部212-1が、膜電位が閾値に達したことを検出すると、第1信号出力部213-1がスパイク信号を出力する。
一方、この時間区間内に膜電位が閾値に達しない場合は、時刻(l+d-1)T以降に膜電位が閾値に達するものとして捉えることができる。この場合、第1信号出力部213-1は、この時間区間の終了時である時刻(l+d-1)Tにスパイク信号を出力する。
【0110】
第l層のi番目のニューロンモデル100の遅延用サブモデル210fの発火前の膜電位vi_f (l)(t)は、式(11)のように表すことができる。
【0111】
【数11】
【0112】
は、第1サブモデル210_1から遅延用サブモデル210fへのスパイク信号の伝達経路に設定されている重みを示す。wが学習の対象となっていてもよい。
この遅延用サブモデル210fにおける閾値到達時刻をti_f (l,vth)とすると、式(12)を得られる。
【0113】
【数12】
【0114】
閾値到達時刻ti_f (l,vth)は、式(13)のように表される。
【0115】
【数13】
【0116】
この遅延用サブモデル210fがd番目のデータを処理する際の発火時刻ti_f *(l)は、式(14)のように表すことができる。
【0117】
【数14】
【0118】
図12は、クリップ関数の第2例を示す図である。図12は、第l層のi番目のニューロンモデル100の遅延用サブモデル210fが、第dデータを処理する際のクリップ関数の例を示す。
図12のグラフの横軸は、膜電位が閾値に達する時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。縦軸は、遅延用サブモデル210fの発火時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。
【0119】
時刻(l+d-2)Tから(l+d-1)Tまでの時間は、第l層のi番目のニューロンモデル100の遅延用サブモデル210fが、第dデータを処理する場合の入力時間区間に該当する。時刻(l+d-1)Tから(l+d)Tまでの時間は、第l層のi番目のニューロンモデル100の遅延用サブモデル210fが、第dデータを処理する場合の出力時間区間に該当する。
入力時間区間内に膜電位が閾値に達した場合、遅延用信号出力部213fは、この入力時間区間の次の時間区間である出力時間区間の開始時に、スパイク信号を出力する。
【0120】
出力時間区間内に膜電位が閾値に達した場合、遅延用検出部212fが、膜電位が閾値に達したことを検出すると、遅延用信号出力部213fがスパイク信号を出力する。
出力時間区間の終了時までに膜電位が閾値に達しない場合は、時刻(l+d)T以降に膜電位が閾値に達するものとして捉えることができる。この場合、遅延用信号出力部213fは、出力時間区間の終了時である時刻(l+d)Tにスパイク信号を出力する。
【0121】
図13は、第l層のi番目のニューロンモデル100aが、第dデータを処理する際のタイミングを示す関数の第1例を示す図である。
図13のグラフの横軸は、第1サブモデル210-1の膜電位が閾値に達する時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。縦軸は、遅延用サブモデル210fの発火時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。
第1サブモデル210-1の膜電位が閾値に達する時刻は、第1サブモデル210-1の発火時刻と同じ時刻として扱うことができる。また、第1サブモデル210-1の膜電位が閾値に達する時刻は、遅延用サブモデル210fがスパイク信号の入力を受ける時刻と同じ時刻として扱うことができる。
【0122】
図13は、遅延用サブモデル210fがスパイク信号の入力を受けてからスパイク信号を出力するまでの時間がTである場合の例を示している。遅延用サブモデル210fがスパイク信号の入力を受けてからスパイク信号を出力するまでの時間を、遅延用サブモデル210fによる遅延時間とも称する。
【0123】
遅延用サブモデル210fによる遅延時間がTである場合、遅延用サブモデル210fは、入力時間区間内でのスパイク信号の入力を受けたタイミングと同様の、出力時間区間内におけるタイミングで、スパイク信号を出力する。ここでいう、2つの時間区間内における同じタイミングとは、それぞれの時間区間の開始時からの経過時間が同じであることであってもよい。
【0124】
図13では、時刻(l+d-2)Tから第1サブモデル210-1における閾値到達時刻までの経過時間と、時刻(l+d-1)Tから遅延用サブモデル210fの発火時刻までの経過時間とが等しくなっている。
ここで、時刻(1+d-2)Tは、入力時間区間の開始時である。時刻(1+d-1)Tは、出力時間区間の開始時である。また、第1サブモデル210-1の膜電位が閾値に達してから、遅延用サブモデル210fがスパイク信号の入力を受けるまでの遅延時間は無視できるものとする。
したがって、図13は、遅延用サブモデル210fが、入力時間区間内でのスパイク信号の入力を受けたタイミングと同様の、出力時間区間内におけるタイミングで、スパイク信号を出力する場合を示している。
【0125】
遅延用サブモデル210fによる遅延時間が時間区間の時間幅に等しい場合、時間区間内における第1サブモデル210-1の膜電位が閾値に達するタイミングが、出力時間区間内における遅延用サブモデル210fが発火するタイミングに、そのまま反映される。この点で、情報が失われていないといえる。
【0126】
図14は、第l層のi番目のニューロンモデル100aが、第dデータを処理する際のタイミングを示す関数の第2例を示す図である。
図14のグラフの横軸は、第1サブモデル210-1の膜電位が閾値に達する時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。縦軸は、遅延用サブモデル210fの発火時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。
【0127】
図14は、遅延用サブモデル210fによる遅延時間がTよりも短い場合の例を示している。
遅延用サブモデル210fによる遅延時間がTよりも短い場合、出力時間区間内における遅延用サブモデル210fが発火するタイミングが、時間区間内における第1サブモデル210-1が発火するタイミングよりも早くなる。
図14の例で、時刻(l+d-2)Tから(l+d-2+c1)Tまでの間に第1サブモデル210-1の膜電位が閾値に達した場合、遅延用サブモデル210fは、出力時間区間の開始時である時刻(l+d-1)Tに発火する。
【0128】
また、時刻(l+d-2+c1)Tから(l+d-1)Tまでの間に第1サブモデル210-1の膜電位が閾値に達した場合、遅延用サブモデル210fは、時間T-c1経過後に発火する。時間区間内におけるタイミングで見ると、出力時間区間内における遅延用サブモデル210fが発火するタイミングは、時間区間内における第1サブモデル210-1が発火するタイミングよりも、時間c1だけ早くなる。
このようにタイミングが早まることで、時間区間内におけるスパイク信号の出力タイミングを調整することができる。例えば、データの流れの下流側の層で、スパイク信号の入力が時間区間の最後付近に集中することを回避し得る。
【0129】
図15は、第l層のi番目のニューロンモデル100aが、第dデータを処理する際のタイミングを示す関数の第3例を示す図である。
図15のグラフの横軸は、第1サブモデル210-1の膜電位が閾値に達する時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。縦軸は、遅延用サブモデル210fの発火時刻を、ニューラルネットワーク11aへのデータ入力開始時からの経過時間で示す。
【0130】
図15は、遅延用サブモデル210fによる遅延時間がTよりも長い場合の例を示している。
遅延用サブモデル210fによる遅延時間がTよりも長い場合、出力時間区間内における遅延用サブモデル210fが発火するタイミングが、時間区間内における第1サブモデル210-1が発火するタイミングよりも遅くなる。
【0131】
図15の例で、時刻(l+d-2)Tから(l+d-1-c2)Tまでの間に第1サブモデル210-1の膜電位が閾値に達した場合、遅延用サブモデル210fは、時間T+c2経過後に発火する。時間区間内におけるタイミングで見ると、出力時間区間内における遅延用サブモデル210fが発火するタイミングは、時間区間内における第1サブモデル210-1が発火するタイミングよりも、時間c2だけ遅くなる。
また、時刻(l+d-1-c2)Tから(l+d-1)Tまでの間に第1サブモデル210-1の膜電位が閾値に達した場合、遅延用サブモデル210fは、出力時間区間の終了時である時刻(1+d)Tに発火する。
【0132】
図16は、ニューラルネットワーク装置のより具体的な構成の第2例を示す図である。
図16に示す構成で、ニューラルネットワーク装置10bは、ニューロンモデル100bを備える。ニューロンモデル100bは、指標値計算部110と、検出部120と、遅延部130bと、信号出力部140と、切替部220bとを備える。
【0133】
図16の各部のうち図1の各部に対応して同様の機能を有する部分には同一の符号(110、120、140)を付し、ここでは詳細な説明を省略する。
ニューラルネットワーク装置10bはニューラルネットワーク装置10の例に該当し、ニューロンモデル100bはニューロンモデル100の例に該当する。図16では、ニューロンモデル100bの構成として、図1のニューロンモデル100の構成の遅延部130に代えて遅延部130bが示され、さらに切替部220bが示されている。
【0134】
切替部220bは、検出部120からの、膜電位が閾値に達したことを示す信号の伝達先を、2つの遅延部130bの何れかに切り替える。切替部220bでは、膜電位が閾値に達したことを示す信号がスパイク信号に限定されない点で、ニューラルネットワーク装置10aの切替部220aと異なる。膜電位が閾値に達したことを示す信号としてスパイク信号が用いられる場合は、切替部220bは切替部220aと同様である。切替部220aは、切替部220bの例に該当する。切替部220bは、切替手段の例に該当する。
【0135】
遅延部130bは、検出部120からの、膜電位が閾値に達したことを示す信号の入力を受けた時間区間の次の時間区間において、検出部120からの信号の入力を受けたタイミングに応じたタイミングで、発火を指示する信号を信号出力部140へ出力する。
これにより信号出力部140は、上記のように、時間区間のうち第1時間区間内のタイミング、かつ、第1時間区間よりも過去の時間区間である第2時間区間における所定の事象の発生タイミングに応じたタイミングで、スパイク信号を出力する。
遅延部130bは、遅延部130の例に該当する。遅延部130bは、遅延手段の例にも該当する。
【0136】
2つの遅延部130bが出力する信号のorをとった信号が、信号出力部140に入力される。したがって、2つの遅延部130bのうち何れが発火を指示する信号を出力した場合も、信号出力部140はスパイク信号を出力する。
遅延部130bがスパイキングニューロンモデルを用いて構成される場合、遅延部130bはサブモデル210と同様である。サブモデル210は、遅延部130bの例に該当する。一方、遅延部130bの構成は、スパイキングニューロンモデルを用いる構成に限定されない。例えば、遅延部130bがタイマを備えて構成され、信号の入力を受けてから信号を出力するまでの時間をタイマを用いて測定するようにしてもよい。
【0137】
信号出力部140は、遅延部130bからの発火を指示する信号に応じてスパイク信号を出する。遅延部130bからの信号がスパイク信号である場合、信号出力部140が、遅延部130bからのスパイク信号をそのまま出力するようにしてもよい。
検出部120が事象の発生を検出した時刻に所定の遅延時間を加えた時刻が、検出部120が事象の発生を検出した時間区間と同じ時間区間に含まれる場合に、信号出力部140が次の時間区間の開始時にスパイク信号を出力するようにする処理を、遅延部130bが行うようにしてもよいし、信号出力部140が行うようにしてもよい。
【0138】
検出部120が事象の発生を検出した時刻に所定の遅延時間を加えた時刻が、検出部120が事象の発生を検出した時間区間の次の時間区間よりも遅い時刻になる場合に、信号出力部140が、検出部120が事象の発生を検出した時間区間の次の時間区間の終了時にスパイク信号を出力するようにする処理を、遅延部130bが行うようにしてもよいし、信号出力部140が行うようにしてもよい。
【0139】
図1に示す構成で、遅延部130が、複数の時刻に信号の入力を受けて、それぞれの時刻から遅延させた時刻に信号を出力可能である。例えば、図16の切替部220bと、2つの遅延部130bとの組み合わせは、遅延部130の例に該当する。
あるいは、遅延部130が、複数の信号を受け入れ可能な経路を備えていてもよい。例えば、遅延部130がシフトレジスタを備え、信号の入力を受けたときにシフトレジスタの再下位ビットを1に設定して所定のクロック周期毎にシフトレジスタをシフトアップさせるようにしてもよい。そして、シフトレジスタの最上位ビット1になったときに、遅延部130が、信号出力部140に対して発火を指示する信号を出力するようにしてもよい。
【0140】
図1に示す構成で、検出部120が事象の発生を検出した時刻に所定の遅延時間を加えた時刻が、検出部120が事象の発生を検出した時間区間と同じ時間区間である場合に、信号出力部140が次の時間区間の開始時にスパイク信号を出力するようにする処理を、遅延部130が行うようにしてもよいし、信号出力部140が行うようにしてもよい。
【0141】
図1に示す構成で、検出部120が事象の発生を検出した時刻に所定の遅延時間を加えた時刻が、検出部120が事象の発生を検出した時間区間の次の時間区間よりも遅い時刻になる場合に、信号出力部140が、検出部120が事象の発生を検出した時間区間の次の時間区間の終了時にスパイク信号を出力するようにする処理を、遅延部130cが行うようにしてもよいし、信号出力部140が行うようにしてもよい。
【0142】
図17は、学習時におけるシステム構成の例を示す図である。図17に示す構成で、ニューラルネットワークシステム1は、ニューラルネットワーク装置10と、学習装置50とを備える。ニューラルネットワーク装置10と学習装置50とが1つの装置として一体的に構成されていてもよい。あるいは、ニューラルネットワーク装置10と学習装置50とが別々の装置として構成されていてもよい。
上述したように、ニューラルネットワーク装置10が構成するニューラルネットワーク11を、ニューラルネットワーク本体とも称する。
【0143】
図18は、ニューラルネットワークシステム1における信号の入出力の例を示す図である。
図18の例で、入力データと、その入力データに対する正解を示す教師ラベルとがニューラルネットワークシステム1に入力される。ニューラルネットワーク装置10が入力データの入力を受け、学習装置50が、教師ラベルの入力を受けるようにしてもよい。入力データと教師ラベルとの組み合わせは、教師有り学習における訓練データの例に該当する。
また、ニューラルネットワーク装置10は、クロック信号を取得する。ニューラルネットワーク装置10がクロック回路を備えるようにしてもよい。あるいは、ニューラルネットワーク装置10が、ニューラルネットワーク装置10の外部からのクロック信号の入力を受けるようにしてもよい。
【0144】
ニューラルネットワーク装置10は、入力データの入力を受けて、その入力データに基づく推定値を出力する。推定値を算出する際、ニューラルネットワーク装置10は、クロック信号を用いて層間の時間区間の同期、および、同一層内のニューロンモデル100間の時間区間の同期をとる。
【0145】
学習装置50は、ニューラルネットワーク装置10の学習を行う。ここでいう学習は、機械学習アルゴリズムによって学習モデルのパラメータ値を調整することである。学習装置50は、ニューロンモデル100に入力されるスパイク信号に対する重み係数の学習を行う。式(4)の重みWij (l)が、学習装置50が学習によって値を調整する重み係数の例に該当する。
【0146】
学習装置50が、ニューラルネットワーク装置10が出力する推定値と、教師ラベルが示す正解値との誤差に対する評価を示す評価関数を用いて、推定値と正解値との誤差の大きさが小さくなるように、重み係数の学習を行うようにしてもよい。
学習装置50は、学習手段の例に該当する。学習装置50は、例えば、コンピュータを用いて構成される。
【0147】
学習装置50が行う学習の手法として、例えば誤差逆伝播法(Backpropagation)などの既存の学習手法を、入力時間区間および出力時間区間が設定されていることに応じてアレンジした手法を用いることができる。
例えば、学習装置50が誤差逆伝播法をアレンジした手法を用いて学習を行う場合、重みWij (l)を、式(15)で示される変化量ΔWij (l)だけ変化させるように、重みWij (l)を更新するようにしてもよい。
【0148】
【数15】
【0149】
ηは、学習率を示す定数である。
Cは、式(16)のように表される。
【0150】
【数16】
【0151】
Cは、ニューラルネットワーク装置10が出力する推定値と、教師ラベルが示す正解値との誤差に対する評価を示す評価関数の例に該当する。Cは、誤差が小さいほど小さい値を出力する損失関数として設定されている。
Mは、出力層(最終層)を示すインデックス値を表す。N(M)は、出力層に含まれるニューロンモデル100の個数を表す。
【0152】
κは、教師ラベルを表す。ここでは、ニューラルネットワーク装置10が、クラスの個数がN(M)個のクラス分類を行うものとし、教師ラベルがワンホットベクトル(One-hot Vector)で示されるものとする。インデックスiの値が正解クラスを示す場合にκ=1であり、それ以外の場合はκ=0であるものとする。
【0153】
(ref)は、参照スパイク(Reference Spike)を表す。
「γ/2(t *(M)-t(ref)」は、学習困難性を回避するために設けられた項である。この項をテンポラル罰則項(Temporal Penalty Term)とも称する。テンポラル罰則項により、出力層の発火タイミングは参照スパイク周辺に分布することになり、結果として出力ニューロンが安定して発火するようになる。γは、テンポラル罰則項の影響度合いを調整するための定数であり、γ>0である。γをテンポラル罰則係数とも称する。
は、ソフトマックス関数であり、式(17)のように表される。
【0154】
【数17】
【0155】
σsoftは、出力層の発火タイミングが変化したときに、ソフトマックス関数Sの値がどの程度変化するかを調整するためのスケール因子(Scale Factor)として設けられた定数であり、σsoft>0である。このスケール因子が、出力時間区間と同程度(10分の1から10倍程度)の値を持つことで安定した学習が可能になる。
式(17)では、出力層のi番目のスパイク発火時刻t *(M)が0≦t *(M)≦1で示されるものとする。例えば、出力層のスパイク発火時刻が、クラス毎に、入力データが示す分類対象がそのクラスに分類される確率を示すようにしてもよい。κ=1となるiについて、t *(M)の値が1に近いほど「-Σi=1 N(M)(κln(S(t*(M))))」の項の値が小さくなり、学習装置50は、損失(評価関数Cの値)を小さく計算する。
ただし、ニューラルネットワーク装置10が行う処理は、クラス分類に限定されない。
【0156】
重みWij (l)に加えて、あるいは代えて、式(11)に示される重みwが、学習によって値を調整する重みの対象になっていてもよい。
例えば、重みwの値がニューロンモデル100毎に設定可能になっていてもよい。この場合の、第l層のi番目のニューロンモデル100における重みwをwi_f (l)と表記する。学習装置50が誤差逆伝播法をアレンジした手法を用いて学習を行う場合、重みWi_f (l)を、式(18)で示される変化量ΔWi_f (l)だけ変化させるように、重みWi_f (l)を更新するようにしてもよい。
【0157】
【数18】
【0158】
図19は、運用時のニューラルネットワーク装置10における信号の入出力の例を示す図である。
図19に示される運用時と同様、学習時も、ニューラルネットワーク装置10は、入力データの入力を受け、また、クロック信号を取得する。ニューラルネットワーク装置10がクロック回路を備えるようにしてもよい。あるいは、ニューラルネットワーク装置10が、ニューラルネットワーク装置10の外部からのクロック信号の入力を受けるようにしてもよい。
ニューラルネットワーク装置10は、入力データの入力を受けて、その入力データに基づく推定値を出力する。推定値を算出する際、ニューラルネットワーク装置10は、クロック信号を用いて層間の時間区間の同期、および、同一層内のニューロンモデル100間の時間区間の同期をとる。
【0159】
なお、ニューラルネットワーク11の種類は、特定の種類に限定されない。例えば、ニューラルネットワーク11が、スパイキングニューラルネットワークによる畳み込みニューラルネットワーク(Convolutional neural network;CNN)として構成されていてもよい。
【0160】
上述したように、ニューラルネットワーク11が順伝播型のスパイキングニューラルネットワークとして構成される場合、ニューラルネットワーク11の層数は2層以上であればよく、特定の層数に限定されない。また、各層が備えるニューロンモデル100の個数は特定の個数に限定されず、各層が1つ以上のニューロンモデル100を備えていればよい。各層が同じ個数のニューロンモデル100を備えていてもよいし、層によって異なる個数のニューロンモデル100を備えていてもよい。また、ニューラルネットワーク11が全結合型になっていてもよいし、全結合型でなくてもよい。
【0161】
また、ニューロンモデル100の発火後の膜電位は、上述した電位0から変化しないものに限定されない。例えば、発火から所定時間経過後は、スパイク信号の入力に応じて膜電位が変化するようにしてもよい。ニューロンモデル100の各々の発火回数も、入力データ毎に1回に限定されない。
【0162】
スパイキングニューロンモデルとしてのニューロンモデル100の構成も、特定の構成に限定されない。例えば、ニューロンモデル100が、スパイク信号の入力を受けてから次のスパイク信号の入力を受けるまでの変化速度が一定でなくてもよい。
ニューラルネットワーク11の学習方法は、教師あり学習に限定されない。学習装置50が、ニューラルネットワーク11の学習を教師無し学習で行うようにしてもよい。
【0163】
以上のように、指標値計算部110は、時間区間毎に、その時間区間におけるスパイク信号の入力状況に基づいて、スパイク信号出力の指標値である膜電位を時間変化させる。
検出部120は、膜電位に関する所定の事象の発生タイミングを検出する。具体的には、検出部120は、膜電位が閾値に達したタイミング、および、膜電位が閾値に達せずに時間区間が終了するタイミングを検出する。
信号出力部140は、時間区間のうち出力時間区間内のタイミング、かつ、出力時間区間よりも過去の時間区間である入力時間区間における所定の事象の発生タイミングに応じたタイミングで、スパイク信号を出力する。
【0164】
このように、ニューロンモデル100が、時間区間毎にスパイク信号の入力を受け付け、スパイク信号の入力を受けた時間区間の次の時間区間でスパイク信号を出力することで、ニューラルネットワーク11は、時間区間毎にデータの入力を受け付けて、入力された各データを処理することができる。
ニューラルネットワーク装置10によればこの点で、スパイキングニューラルネットワークであるニューラルネットワーク11がデータ処理を効率的に行うことができる。
また、ニューロンモデル100が、スパイク信号の入力を受けた時間区間の次の時間区間でスパイク信号を出力することで、時間区間内におけるスパイク信号の出力タイミングを調整することができる。ニューラルネットワーク装置10では、例えば、ニューラルネットワーク11におけるデータの流れの下流側の層で、スパイク信号の入力が時間区間の最後付近に集中することを回避し得る。
【0165】
また、遅延部130は、検出部120が検出する上記のタイミングから所定時間後のタイミングに基づいて、信号出力部140にスパイク信号を出力させるタイミングを決定する。切替部220は、2つの遅延部130のうち前記検出部120の検出結果を入力する遅延部130を、前記時間区間毎に切り替える。
ニューラルネットワーク装置10bでは、2つの遅延部130と切替部220とを用いた比較的簡単な構成で、信号出力部140がスパイク信号を出力する時間区間と、指標値計算部110が次のデータに関するスパイク信号の入力を受ける時間区間とが重なることに対応することができる。
【0166】
また、第1検出部212-1が膜電位に関する所定の事象の発生タイミングを検出すると、第1サブモデル210-1が遅延用サブモデル210fへスパイク信号を出力する。遅延用検出部212fは、遅延用信号出力部213fにスパイク信号を出力させるタイミングを、出力時間区間内のタイミング、かつ、入力時間区間にて第1サブモデル210-1からスパイク信号の入力を受けたタイミングから所定時間後のタイミングに基づくタイミングに決定する。
【0167】
ニューラルネットワーク装置10aでは、スパイキングニューロンモデルを第1サブモデル210-1および遅延用サブモデル210fとして用いて、ニューロンモデル100aを構成することができる。信号の出力を遅延させる手段をスパイキングニューロンモデルと別に設計する必要が無い点で、設計者がニューラルネットワーク装置10aを設計する負担が比較的軽いことが期待される。また、スパイキングニューロンモデルを多数用いることで、スパイキングニューロンモデルの1個当たりの生産コストが安くなり、ニューラルネットワーク装置10a全体の生産コストが比較的安いことが期待される。
【0168】
図20は、実施形態に係る演算装置の構成例を示す図である。図20に示す構成で、演算装置610は、ニューロンモデル611を備える。ニューロンモデル611は、指標値計算部612と、検出部613と、信号出力部614とを備える。
かかる構成で、指標値計算部612は、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる。検出部613は、指標値に関する所定の事象の発生タイミングを検出する。信号出力部614は、時間区間のうち第1時間区間内のタイミング、かつ、第1時間区間よりも過去の時間区間である第2時間区間における所定の事象の発生タイミングに応じたタイミングで、信号を出力する。
指標値計算部612は、指標値計算手段の例に該当する。検出部613は、検出手段の例に該当する。信号出力部614は、信号出力手段の例に該当する。
【0169】
このように、ニューロンモデル611が、時間区間毎にスパイク信号の入力を受け付け、スパイク信号の入力を受けた時間区間の次の時間区間でスパイク信号を出力することで、ニューロンモデル611を用いるスパイキングニューラルネットワークとして機能する演算装置610は、時間区間毎にデータの入力を受け付けて、入力された各データを処理することができる。
演算装置610によればこの点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0170】
また、ニューロンモデル611が、スパイク信号の入力を受けた時間区間の次の時間区間でスパイク信号を出力することで、時間区間内におけるスパイク信号の出力タイミングを調整することができる。演算装置610では、例えば、スパイキングニューラルネットワークにおけるデータの流れの下流側の層で、スパイク信号の入力が時間区間の最後付近に集中することを回避し得る。
【0171】
図21は、実施形態に係るニューラルネットワークシステムの構成例を示す図である。
図21に示す構成で、ニューラルネットワークシステム620は、ニューラルネットワーク本体621と、学習部626とを備える。ニューラルネットワーク本体621は、ニューロンモデル622を備える。ニューロンモデル622は、指標値計算部623と、検出部624と、信号出力部625とを備える。
【0172】
かかる構成で、指標値計算部623は、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる。検出部624は、指標値に関する所定の事象の発生タイミングを検出する。信号出力部625は、時間区間のうち第1時間区間内のタイミング、かつ、第1時間区間よりも過去の時間区間である第2時間区間における所定の事象の発生タイミングに応じたタイミングで、信号を出力する。学習部626は、信号に対する重み係数の学習を行う。
【0173】
指標値計算部623は、指標値計算手段の例に該当する。信号出力部625は、信号出力手段の例に該当する。学習部626は、学習手段の例に該当する。
ニューラルネットワークシステム620では、これにより、学習によって重み係数を調整することができ、ニューラルネットワーク本体621による推定精度を向上させることができる。
【0174】
図22は、実施形態に係るニューロンモデル装置の構成例を示す図である。図22に示す構成で、ニューロンモデル装置630は、指標値計算部631と、検出部632と、信号出力部633とを備える。
かかる構成で、指標値計算部631は、時間区間毎に、その時間区間におけるスパイク信号の入力状況に基づいてスパイク信号出力の指標値を変化させる。検出部632は、指標値に関する所定の事象の発生タイミングを検出する。信号出力部633は、時間区間のうち第1時間区間内のタイミング、かつ、前記第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、スパイク信号を出力する。
【0175】
このように、ニューロンモデル装置630が信号の入力を受け付ける入力時間区間、および、ニューロンモデル装置630がスパイク信号を出力する出力時間区間を設定することで、指標値計算部631が指標値を計算するべき時間を、入力時間区間の開始時から出力時間区間の終了時までの時間に限定することができる。他の時間では、ニューロンモデル装置630は、他のデータに対する処理を行うことができる。
ニューロンモデル装置630によれば、この点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0176】
また、ニューロンモデル装置630が、スパイク信号の入力を受けた時間区間の次の時間区間でスパイク信号を出力することで、時間区間内におけるスパイク信号の出力タイミングを調整することができる。ニューロンモデル装置630によれば、例えば、スパイキングニューラルネットワークにおけるデータの流れの下流側の層で、スパイク信号の入力が時間区間の最後付近に集中することを回避し得る。
【0177】
図23は、実施形態に係る演算方法における処理手順の例を示すフローチャートである。図23に示す演算方法は、指標値を変化させること(ステップS611)と、事象発生タイミングを検出すること(ステップS612)と、信号を出力すること(ステップS613)とを含む。
指標値を変化させること(ステップS611)では、時間区間毎に、その時間区間における信号の入力状況に基づいて信号出力の指標値を変化させる。事象発生タイミングを検出すること(ステップS612)では、指標値に関する所定の事象の発生タイミングを検出する。信号を出力すること(ステップS613)では、時間区間のうち第1時間区間内のタイミング、かつ、第1時間区間よりも過去の時間区間である第2時間区間における前記所定の事象の発生タイミングに応じたタイミングで、信号を出力する。
【0178】
図23に示す演算方法で、時間区間毎にスパイク信号の入力を受け付け、スパイク信号の入力を受けた時間区間の次の時間区間でスパイク信号を出力することで、スパイキングニューラルネットワークは、時間区間毎にデータの入力を受け付けて、入力された各データを処理することができる。
図23に示す演算方法によればこの点で、スパイキングニューラルネットワークがデータ処理を効率的に行うことができる。
【0179】
また、図23に示す演算方法では、スパイク信号の入力を受けた時間区間の次の時間区間でスパイク信号を出力することで、時間区間内におけるスパイク信号の出力タイミングを調整することができる。図23に示す演算方法によれば、例えば、スパイキングニューラルネットワークにおけるデータの流れの下流側の層で、スパイク信号の入力が時間区間の最後付近に集中することを回避し得る。
【0180】
図24は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図24に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0181】
上記のニューラルネットワーク装置10、学習装置50、演算装置610、ニューラルネットワークシステム620、および、ニューロンモデル装置630のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
【0182】
ニューラルネットワーク装置10がコンピュータ700に実装される場合、ニューラルネットワーク装置10およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0183】
また、CPU710は、プログラムに従って、ニューラルネットワーク装置10の処理のための記憶領域を主記憶装置720に確保する。ニューラルネットワーク装置10と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。ニューラルネットワーク装置10とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0184】
学習装置50がコンピュータ700に実装される場合、学習装置50の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0185】
また、CPU710は、プログラムに従って、学習装置50の処理のための記憶領域を主記憶装置720に確保する。学習装置50と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。学習装置50とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0186】
演算装置610がコンピュータ700に実装される場合、演算装置610およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0187】
また、CPU710は、プログラムに従って、演算装置610の処理のための記憶領域を主記憶装置720に確保する。演算装置610と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。演算装置610とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0188】
ニューラルネットワークシステム620がコンピュータ700に実装される場合、ニューラルネットワークシステム620およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0189】
また、CPU710は、プログラムに従って、ニューラルネットワークシステム620の処理のための記憶領域を主記憶装置720に確保する。ニューラルネットワークシステム620と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。ニューラルネットワークシステム620とユーザとのインタラクションは、インタフェース740が表示装置および入力デバイスを備え、CPU710の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0190】
なお、ニューラルネットワーク装置10、学習装置50、演算装置610、ニューラルネットワークシステム620、および、ニューロンモデル装置630が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0191】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0192】
1、620 ニューラルネットワークシステム
10 ニューラルネットワーク装置
11 ニューラルネットワーク
50 学習装置
100、611、622 ニューロンモデル
110、211、612、623、631 指標値計算部
120、212、613、624、632 検出部
130、130b 遅延部
140、213、614、625、633 信号出力部
210 サブモデル
210f 遅延用サブモデル
210-1 第1サブモデル
210-2 第2サブモデル
210-3 第3サブモデル
211f 遅延用指標値計算部
211-1 第1指標値計算部
211-2 第2指標値計算部
211-3 第3指標値計算部
212f 遅延用検出部
212-1 第1検出部
212-2 第2検出部
212-3 第3検出部
213f 遅延用信号出力部
213-1 第1信号出力部
213-2 第2信号出力部
213-3 第3信号出力部
220a、220b 切替部
221、231 スイッチ
230 統合部
232 インバータ
610 演算装置
621 ニューラルネットワーク本体
626 学習部
630 ニューロンモデル装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24