(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】ニューラルネットワーク装置、生成装置、情報処理方法、生成方法およびプログラム
(51)【国際特許分類】
G06N 3/049 20230101AFI20240820BHJP
【FI】
G06N3/049
(21)【出願番号】P 2022568020
(86)(22)【出願日】2020-12-11
(86)【国際出願番号】 JP2020046331
(87)【国際公開番号】W WO2022123781
(87)【国際公開日】2022-06-16
【審査請求日】2023-06-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】酒見 悠介
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2010-146514(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する
、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、
前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、
前記時間方式スパイキングニューロンモデル手段が計算対象の人工ニューロンモデルにおける入力信号に対する重み付け合計およびバイアスの付加に相当する計算を行うように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みが設定されたときの、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として設定された時間だけ
遅延させた信号を出力する遅延手段と、
を備えるニューラルネットワーク装置。
【請求項2】
前記時間方式スパイキングニューロンモデル手段への入力信号
に対する重み
を、その時間方式スパイキングニューロンモデル手段における全ての重みの合計で除算した値が、計算対象の人口ニューロンモデルにおける重みの値と等しくなるように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みが設定される、
請求項1に記載のニューラルネットワーク装置。
【請求項3】
前記遅延手段の前記出力信号の出力時刻、または、前記基準時刻の何れか早い時刻に信号を出力する時間方式ランプ関数手段
をさらに備える請求項2に記載のニューラルネットワーク装置。
【請求項4】
前記時間方式スパイキングニューロンモデル手段への入力信号に依存しない時刻に、前記時間方式スパイキングニューロンモデル手段に信号を出力する設定スパイク供給手段
をさらに備える請求項1から3の何れか一項に記載のニューラルネットワーク装置。
【請求項5】
前記時間方式スパイキングニューロンモデル手段、および、前記遅延手段のうち少なくとも何れかは、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)を用いて構成される、
請求項1に記載のニューラルネットワーク装置。
【請求項6】
信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する
、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ
遅延させた信号を出力する遅延手段と、を備えるニューラルネットワークを生成するベースネットワーク生成手段と、
前記時間方式スパイキングニューロンモデル手段への入力信号
に対する重みを、
その時間方式スパイキングニューロンモデル手段における全ての重みの合計で除算した値が、計算対象の人口ニューロンモデルにおける重みの値と等しくなるように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重み
を設定する、重み設定手段と、
前記遅延手段における前記設定された時間を、前記時間方式スパイキングニューロンモデル手段への入力信号
に対する重みの前記設定のもとで、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として定められた時間に設定する遅延設定手段と、
を備える生成装置。
【請求項7】
ニューラルネットワーク装置が、
漏れ電流無しの時間方式スパイキングニューロンモデルの、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると第一信号を出力することと、
前記第一信号が基準時刻に対する相対時刻で示すスパイク時刻を、
前記時間方式スパイキングニューロンモデルが計算対象の人工ニューロンモデルにおける入力信号に対する重み付け合計およびバイアスの付加に相当する計算を行うように、前記時間方式スパイキングニューロンモデルへの入力信号に対する重みが設定されたときの、出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として設定された時間だけ
遅延させた第二信号を出力することと、
を含む情報処理方法。
【請求項8】
信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する
、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた信号を出力する遅延手段と、を備えるニューラルネットワークを生成することと、
前記時間方式スパイキングニューロンモデル手段への入力信号
に対する重み
を、
その時間方式スパイキングニューロンモデル手段における全ての重みの合計で除算した値が、計算対象の人口ニューロンモデルにおける重みの値と等しくなるように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重み
を設定することと、
前記遅延手段における前記設定された時間を、前記時間方式スパイキングニューロンモデル手段への入力信号
に対する重みの前記設定のもとで、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として定められた時間に設定することと、
を含むニューラルネットワーク生成方法。
【請求項9】
コンピュータに、
漏れ電流無しの時間方式スパイキングニューロンモデルの、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると第一信号を出力することと、
前記第一信号が基準時刻に対する相対時刻で示すスパイク時刻を、
前記時間方式スパイキングニューロンモデルが計算対象の人工ニューロンモデルにおける入力信号に対する重み付け合計およびバイアスの付加に相当する計算を行うように、前記時間方式スパイキングニューロンモデルへの入力信号に対する重みが設定されたときの、出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として設定された時間だけ
遅延させた第二信号を出力することと、
を実行させるためのプログラム。
【請求項10】
コンピュータに、
信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する
、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた信号を出力する遅延手段と、を備えるニューラルネットワークを生成することと、
前記時間方式スパイキングニューロンモデル手段への入力信号
に対する重み
を、
その時間方式スパイキングニューロンモデル手段における全ての重みの合計で除算した値が、計算対象の人口ニューロンモデルにおける重みの値と等しくなるように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重み
を設定することと、
前記遅延手段における前記設定された時間を、前記時間方式スパイキングニューロンモデル手段への入力信号
に対する重みの前記設定のもとで、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として定められた時間に設定することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワーク装置、生成装置、情報処理方法、生成方法およびプログラムに関する。
【背景技術】
【0002】
ニューラルネットワークの1つにスパイキングニューラルネットワークがある(例えば、特許文献1参照)。スパイキングニューラルネットワークでは、ニューロンモデルが膜電位と呼ばれる内部状態を有し、膜電位の時間発展に基づいてスパイクと呼ばれる信号を出力する。
例えばニューラルネットワークをハードウェア的に実装する場合、スパイキングニューラルネットワークのほうが、内部状態を有せず時間要素を含まない計算を行うニューロンモデルを用いたニューラルネットワーク(人工ニューラルネットワークと称する)よりも、計算時の消費電力が小さいことが期待される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
人工ニューラルネットワークと同等のスパイキングニューラルネットワークを生成できれば、人工ニューラルネットワークを用いて高精度な学習を行った後、それと同等のスパイキングニューラルネットワークを生成する、といった運用が可能になる。これにより、高精度な処理と消費電力の低減との両立を図ることができる。
人工ニューラルネットワークと同等のスパイキングニューラルネットワークを生成する際、スパイキングニューラルネットワークの構成がなるべく簡単であることが好ましい。
【0005】
本発明の目的の1つは、上述の課題を解決することのできるニューラルネットワーク装置、生成装置、情報処理方法、生成方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、ニューラルネットワーク装置は、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、前記時間方式スパイキングニューロンモデル手段が計算対象の人工ニューロンモデルにおける入力信号に対する重み付け合計およびバイアスの付加に相当する計算を行うように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みが設定されたときの、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として設定された時間だけ遅延させた信号を出力する遅延手段と、を備える。
【0007】
本発明の第2の態様によれば、生成装置は、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ遅延させた信号を出力する遅延手段と、を備えるニューラルネットワークを生成するベースネットワーク生成手段と、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みを、その時間方式スパイキングニューロンモデル手段における全ての重みの合計で除算した値が、計算対象の人口ニューロンモデルにおける重みの値と等しくなるように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みを設定する、重み設定手段と、前記遅延手段における前記設定された時間を、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みの前記設定のもとで、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として定められた時間に設定する遅延設定手段と、を備える。
【0008】
本発明の第3の態様によれば、情報処理方法は、ニューラルネットワーク装置が、漏れ電流無しの時間方式スパイキングニューロンモデルの、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると第一信号を出力することと、前記第一信号が基準時刻に対する相対時刻で示すスパイク時刻を、前記時間方式スパイキングニューロンモデルが計算対象の人工ニューロンモデルにおける入力信号に対する重み付け合計およびバイアスの付加に相当する計算を行うように、前記時間方式スパイキングニューロンモデルへの入力信号に対する重みが設定されたときの、出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として設定された時間だけ遅延させた第二信号を出力することと、を含む。
【0009】
本発明の第4の態様によれば、ニューラルネットワーク生成方法は、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた信号を出力する遅延手段と、を備えるニューラルネットワークを生成することと、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みを、その時間方式スパイキングニューロンモデル手段における全ての重みの合計で除算した値が、計算対象の人口ニューロンモデルにおける重みの値と等しくなるように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みを設定することと、前記遅延手段における前記設定された時間を、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みの前記設定のもとで、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として定められた時間に設定することと、を含む。
【0010】
本発明の第5の態様によれば、プログラムは、コンピュータに、漏れ電流無しの時間方式スパイキングニューロンモデルの、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると第一信号を出力することと、前記第一信号が基準時刻に対する相対時刻で示すスパイク時刻を、前記時間方式スパイキングニューロンモデルが計算対象の人工ニューロンモデルにおける入力信号に対する重み付け合計およびバイアスの付加に相当する計算を行うように、前記時間方式スパイキングニューロンモデルへの入力信号に対する重みが設定されたときの、出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として設定された時間だけ遅延させた第二信号を出力することと、を実行させるためのプログラムである。
【0011】
本発明の第6の態様によれば、プログラムは、コンピュータに、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する、漏れ電流無しの時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた信号を出力する遅延手段と、を備えるニューラルネットワークを生成することと、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みを、その時間方式スパイキングニューロンモデル手段における全ての重みの合計で除算した値が、計算対象の人口ニューロンモデルにおける重みの値と等しくなるように、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みを設定することと、前記遅延手段における前記設定された時間を、前記時間方式スパイキングニューロンモデル手段への入力信号に対する重みの前記設定のもとで、前記出力信号の遅延時間が負の時間にならないように同一の層内の時間方式スパイキングニューロンモデル手段に共通の遅延量として定められた時間に設定することと、を実行させるためのプログラムである。
【発明の効果】
【0012】
上記したニューラルネットワーク装置、生成装置、情報処理方法、生成方法およびプログラムによれば、人工ニューラルネットワークと同等のスパイキングニューラルネットワークの構成を、比較的簡単な構成とすることができる。
【図面の簡単な説明】
【0013】
【
図1】実施形態に係るニューラルネットワーク生成装置の構成例を示す概略ブロック図である。
【
図2】順伝搬型ニューラルネットワークの階層構造の例を示す図である。
【
図3】順伝搬型ニューラルネットワークの構成例を示す図である。
【
図5】人工ニューロンモデルの構成例を示す概略ブロック図である。
【
図6】スパイキングニューロンの膜電位の時間発展の例を示す図である。
【
図7】時間方式におけるスパイクの例を示す図である。
【
図8】実施形態に係る人工ニューラルネットワークとスパイキングニューラルネットワークとの対応関係の例を示す図である。
【
図9】実施形態に係るt-ReLU層の構成例を示す図である。
【
図10】実施形態に係るt-ReLU層におけるスパイクの入出力時刻の例を示す図である。
【
図11】実施形態に係る時間調整型スパイキングニューロンモデルの構成例を示す概略ブロック図である。
【
図12】実施形態に係る時間方式スパイキングニューロンモデルの構成例を示す図である。
【
図13】実施形態に係るシナプス回路の構成例を示す概略構成図である。
【
図14】実施形態に係るニューラルネットワーク生成装置が人工ニューラルネットワークをスパイキングニューラルネットワークに変換する処理手順の例を示すフローチャートである。
【
図15】実施形態に係るニューロンモデル生成装置の構成例を示す概略ブロック図である。
【
図16】実施形態に係るニューロンモデル生成装置が人工ニューロンモデルを時間調整型スパイキングニューロンモデルに変換する処理手順の例を示すフローチャートである。
【
図17】実施形態に係るスパイキングニューラルネットワークにおけるスパイクの出力時刻の例を示す図である。
【
図18】実施形態に係る人工ニューラルネットワークとスパイキングニューラルネットワークとにおけるスパイクの出力時刻の例を示す図である。
【
図19】実施形態に係る遅延時間を反映させた場合の隠れ層のニューロンモデルの膜電位の時間発展の例を示す図である。
【
図20】実施形態に係る遅延時間を反映させない場合の隠れ層のニューロンモデルの膜電位の時間発展の例を示す図である。
【
図21】実施形態に係る遅延時間を反映させた場合の出力層のニューロンモデルの膜電位の時間発展の例を示す図である。
【
図22】実施形態に係る遅延時間を反映させない場合の出力層のニューロンモデルの膜電位の時間発展の例を示す図である。
【
図23】実施形態に係るニューラルネットワーク装置の構成例を示す図である。
【
図24】実施形態に係る生成装置の構成例を示す図である。
【
図25】実施形態に係る情報処理方法における処理手順の例を示す図である。
【
図26】実施形態に係る生成方法における処理手順の例を示す図である。
【
図27】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係るニューラルネットワーク生成装置の構成例を示す概略ブロック図である。
図1に示す構成で、ニューラルネットワーク生成装置10は、ベースネットワーク生成部11と、重み設定部12と、遅延設定部13とを備える。
ニューラルネットワーク生成装置を単に生成装置とも称する。
【0015】
ニューラルネットワーク生成装置10は、非記憶型ニューラルネットワーク(Non-memory type Neural Network)110の構成情報を取得して、その非記憶型ニューラルネットワークと同等のスパイキングニューラルネットワーク(Spiking Neural Network;SNN)120を生成する。ニューラルネットワーク生成装置10が、スパイキングニューラルネットワーク120としてスパイキングニューラルネットワーク装置を生成するようにしてもよい。
【0016】
ここでいう、2つのニューラルネットワークが同等であるとは、それら2つのニューラルネットワークが、同じ情報の入力に対して同じ情報を出力すると見做すことができることである。ここでいう「見做す」は、情報の表現形式が異なっていてもよいことを意味する。
【0017】
また、ニューラルネットワークの形式の違いによる誤差、および、情報の表現形式の違いによる誤差は許容されるものとする。例えば、2つのニューラルネットワークが同等であるとは、それら2つのニューラルネットワークが、同じ内容の情報の入力に対して、理論的には同じ内容の情報を出力することであってもよい。
【0018】
ここで、入力値の重み付け合計を算出し、算出された合計値またはその合計値にバイアス値を加えた値を活性化関数に入力し、得られる関数値を出力するニューロンモデルを、非記憶型ニューロンモデル(Non-memory type Neuron Model)と称する。非記憶型ニューロンモデルを用いて構成されたニューラルネットワークを、非記憶型ニューラルネットワークと称する。
非記憶型ニューラルネットワークを人工ニューラルネットワーク(Artificial Neural Network;ANN)とも称する。非記憶型ニューロンモデルを人工ニューロンモデル(Artificial Neuron Model)とも称する。
【0019】
ここでいうスパイキングニューラルネットワークは、スパイキングニューロンモデル(Spiking Neuron Model)を用いて構成されたニューラルネットワークである。ここでいうスパイキングニューロンモデルは、時間発展する内部状態に基づいて、スパイクと呼ばれる二値信号を出力するニューロンモデルの総称である。ここでいう二値信号は、オン/オフによる信号であってもよい。スパイキングニューロンモデルにおける内部状態は、膜電位(Membrane Potential)と称される。
【0020】
ニューラルネットワーク生成装置10が生成するスパイキングニューラルネットワーク120は、後述するように人工ニューラルネットワーク110と同等のニューラルネットワークとするための構造を有している。人工ニューラルネットワーク110と同等のニューラルネットワークとするための構造を有するスパイキングニューラルネットワーク120を、時間調整型スパイキングニューラルネットワーク(Time Adjustment Type Spiking Neural Network)とも称する。時間調整型スパイキングニューラルネットワークに用いられるニューロンモデルを時間調整型スパイキングニューロンモデル(Time Adjustment Type Spiking Neuron Model)とも称する。
【0021】
ここでいうニューラルネットワーク装置は、ニューラルネットワークが実装された装置である。ニューラルネットワークが、専用のハードウェアを用いて実装されていてもよいし、コンピュータ等を用いてソフトウェア的に実装されていてもよい。人工ニューラルネットワークが実装された装置を、人工ニューラルネットワーク装置とも称する。スパイキングニューラルネットワークが実装された装置を、スパイキングニューラルネットワーク装置とも称する。
【0022】
(順伝搬型ニューラルネットワークについて)
ニューラルネットワーク生成装置10は、順伝搬型(Feedforward)ニューラルネットワークを扱う。すなわち、ニューラルネットワーク生成装置10は、順伝搬型の人工ニューラルネットワーク110の構成情報を取得して、その人工ニューラルネットワーク110と同等の、順伝搬型のスパイキングニューラルネットワーク120を生成する。
【0023】
順伝搬型とは、ネットワークの形態の一つであり、層から層への結合における情報伝達が一方向のネットワークのことである。順伝搬型ニューラルネットワークの各層は1つ以上のニューロンモデルで構成されており、同じ層内のニューロンモデル間の結合は存在しない。
【0024】
図2は、順伝搬型ニューラルネットワークの階層構造の例を示す図である。
図2に例示されるように順伝搬型ニューラルネットワーク200は階層構造に構成され、データの入力を受けて演算結果を出力する。ニューラルネットワークが出力する演算結果を予測値または予測とも称する。
【0025】
順伝搬型ニューラルネットワークの第1層は入力層と呼ばれ、最後の層は出力層と呼ばれる。入力層と出力層との間にある層は、隠れ層と呼ばれる。隠れ層の個数は0個以上であればよい。したがって、順伝搬型ニューラルネットワークが隠れ層を備えていなくてもよい。
図2の例では、順伝搬型ニューラルネットワーク200が、入力層211と、隠れ層212と、出力層213とを備える。入力層211と、隠れ層212と、出力層213とを総称して層210と表記する。
【0026】
図3は、順伝搬型ニューラルネットワーク200の構成例を示す図である。
図3は、順伝搬型ニューラルネットワーク200が、入力層211と、2つの隠れ層212と、出力層213との4つの層210を備える場合の例を示している。2つの隠れ層212を区別する場合、上位層を隠れ層212-1と表記し、下位層を隠れ層212-2と表記する。ここでいう層の上位は、入力層211に近い側である。層の下位は、出力層213に近い側である。
【0027】
図3は、これら4つの層210が、それぞれ3つのノード220を有する場合の例を示している。但し、順伝搬型ニューラルネットワーク200が備えるノード220の個数は、特定の個数に限定されず、層210のそれぞれが1つ以上のノード220を備えていればよい。何れの層210も同じ個数のノード220を備えていてもよいし、層210によって異なる個数のノード220を備えていてもよい。
【0028】
図3に例示されるように、隣接する2つの層210のノードがエッジ230で接続される。エッジ230は、上位層のノードから下位層のノードへ信号を伝達する。
隣接する2つの層210間で、上位層のノード220と下位層のノード220との全ての組み合わがエッジ230で接続されていてもよい。あるいは、エッジ230で接続されていない組み合わせがあってもよい。
【0029】
ノード220のうち、入力層211のノード220は、入力信号を次の層210のノード220へ分配する。入力層211のノード220を入力ノード221とも称する。
一方、隠れ層212のノード220および出力層213のノード220には、何れもニューロンモデルが用いられる。隠れ層212のノード220と、出力層213のノード220とを総称して、ニューロンモデルノード222とも表記する。隠れ層212と出力層213とを総称して、ニューロンモデル層214とも表記する。
【0030】
人工ニューラルネットワーク110では、ニューロンモデルノード222として人工ニューロンモデルが用いられる。スパイキングニューラルネットワーク120では、ニューロンモデルノード222としてスパイキングニューロンモデルが用いられる。
【0031】
以下、入力ノード221とニューロンモデルノード222とを区別する必要がない場合は、ノード220をニューロンモデルとして扱う。特に、下位層のノード220を構成するニューロンモデルが上位層のノード220から信号を取得する場合、上位層のノード220が入力ノード221であってもニューロンモデルノード222であっても信号を出力する点で共通しており、説明上区別する必要は無い。この場合、上位層のノード220をニューロンモデルとして扱って説明する。
【0032】
(人工ニューラルネットワークについて)
上述したように、人工ニューラルネットワーク110は、人工ニューロンモデルを用いて構成されたニューラルネットワークである。人工ニューロンモデルは、入力値の重み付け合計を算出し、算出された合計値またはその合計値にバイアス値を加えた値を活性化関数に入力し、得られる関数値を出力するニューロンモデルである。
人工ニューロンモデルの出力値は、式(1)のように示される。
【0033】
【0034】
x(l)
iは、第l層のi番目の人工ニューロンモデルの出力を表す。w(l)
ijは、第l-1層のj番目の人工ニューロンモデルから第l層のi番目の人工ニューロンモデルへの結合の強さを示す係数であり、重みと呼ばれる。第l-1層のj番目の人工ニューロンモデルと第l層のi番目の人工ニューロンモデルとがエッジ230で接続されていない場合は、そのことをw(l)
ij=0とすることで表す。
「Σjw(l)
ijx(l-1)
j」は、上記の入力値の重み付け合計を表す。b(l)
iはバイアス項と呼ばれ、上記のバイアス値を示す。fは活性化関数を表す。
【0035】
学習フェーズでは、重みw(l)
ijの値、および、バイアス項b(l)
iの値が、学習による更新の対象となる。
式(1)に示される変換のうち活性化関数を除いた部分の変換は、アフィン変換(Affine Transformation)として把握することができ、式(2)のように示される。
【0036】
【0037】
x(l-1)は、第l-1層の人工ニューロンモデルの出力のベクトル(x(l-1)
1,・・・,x(l-1)
N(l-1))を表す。N(l-1)は、第l-1層の人工ニューロンモデルの個数を示す。
「Affine」は、アフィン関数(アフィン変換を示す関数)である。
以下では、活性化関数fとしてランプ関数(Ramp Function)を用いる場合を例に説明する。ランプ関数は、正規化線形関数(Rectified Linear Function)とも称される。
【0038】
図4は、ランプ関数を示す図である。
図4のグラフの横軸はランプ関数への入力、すなわちランプ関数の引数値を示す。縦軸は、ランプ関数の出力、すなわちランプ関数の関数値を示す。
図4に示されるように、ランプ関数をReLUで表す。また、
図4では、ランプ関数への入力をxで表している。
図4に示されように、入力xがx≧0の場合は、ReLU(x)=xである。一方、入力xがx<0の場合は、ReLU(x)=0である。ランプ関数ReLUは、式(3)のように示される。
【0039】
【0040】
「max」は、引数のうち最大値を出力する関数である。
ただし、人工ニューロンモデルにおける活性化関数はランプ関数に限定されない。人工ニューロンモデルにおける活性化関数として、後述するような時間方式での表現が可能な、いろいろな関数を用いることができる。
【0041】
図5は、人工ニューロンモデルの構成例を示す概略ブロック図である。
図5に示す構成で、人工ニューロンモデル111は、アフィン変換部112と、活性化関数部113とを備える。
アフィン変換部112は、人工ニューロンモデル111への入力の重み付け合計、および、得られた合計値へのバイアス値の加算を行う。例えば、アフィン変換部112は、上記の式(2)に基づいてAffine(x
(l-1))を算出する。
【0042】
活性化関数部113は、人工ニューロンモデル111における活性化関数の計算を行う。例えば、活性化関数部113は、アフィン変換部112が算出するAffine(x(l-1))をランプ関数ReLUに入力した関数値ReLU(Affine(x(l-1))を算出する。
【0043】
(スパイキングニューラルネットワークについて)
上述したように、スパイキングニューラルネットワークは、スパイキングニューロンモデルを用いて構成されたニューラルネットワークである。スパイキングニューロンモデルは、時間発展する内部状態に基づいて、スパイクと呼ばれる二値信号を出力する。
【0044】
これにより、スパイキングニューロンモデルは、生物学的神経細胞の細胞体部による信号の統合およびスパイクの生成(発火)を模擬する。
例えば、スパイキングニューロンモデルの1つである漏れ積分発火ニューロンモデルでは、膜電位が式(1)のような微分方程式に従って時間発展する。
【0045】
【0046】
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番目のニューロンの発火タイミング(発火時刻)を示す。r(・)は前段の層から伝達されたスパイクがシナプス後電流へ与える影響を示す関数である。
【0047】
膜電位が閾値Vthに達すると、そのスパイキングニューロンモデルはスパイクを出力する。閾値Vthは、活動電位を模擬する閾値である。上述したように、スパイクは、スパイキングニューロンモデルが出力する二値信号である。スパイキングニューロンモデルがスパイクを出力することを発火とも称する。スパイキングニューロンモデルの種類にもよるが、発火後は、膜電位がリセット値Vresetへと戻るようにしてもよい。
スパイキングニューロンモデルが出力したスパイクは、そのスパイキングニューロンモデルと結合している下位層のスパイキングニューロンモデルへと伝達される。
【0048】
図6は、スパイキングニューロンの膜電位の時間発展の例を示す図である。
図6のグラフの横軸は時刻を示し、縦軸は膜電位を示す。
図6は、第n層のi番目のスパイキングニューロンの膜電位の時間発展の例を示しており、膜電位は、v
(n)
iと表されている。
【0049】
上記のように、Vthは、膜電位の閾値を示す。Vresetは、膜電位のリセット値を示す。t(n-1)
1は第n-1層の1番目のニューロンの発火タイミングを示す。t(n-1)
2は第n-1層の2番目のニューロンの発火タイミングを示す。t(n-1)
3は第n-1層の3番目のニューロンの発火タイミングを示す。
【0050】
時刻t(n-1)
1における1番目の発火および時刻t(n-1)
3における3番目の発火では、何れも膜電位v(n)
iは閾値Vthに達していない。一方、時刻t(n-1)
2における2番目の発火では、膜電位v(n)
iが閾値Vthに達し、その後すぐに、リセット値であるVresetに低下している。
【0051】
スパイキングニューラルネットワークはCMOS(Complementary MOS)などでハードウェア化したときに、深層学習モデルよりも消費電力を下げられると期待されている。その理由の一つは、人の脳は30ワット(W)相当の低消費電力な計算媒体であり、スパイキングニューラルネットワークはそのような低消費電力の脳の活動を模倣することができるためである。
例えば、スパイキングニューラルネットワークでは二値信号を用いる点で、人工ニューラルネットワークでアナログ信号を用いる場合よりも、信号による消費電力を低減することができる。
【0052】
(スパイキングニューラルネットワークにおける情報伝達方式について)
ニューラルネットワーク生成装置10は、スパイキングニューラルネットワーク120における情報伝達方式として時間方式を用いる。時間方式では、発火タイミングで情報を伝達する。
【0053】
図7は、時間方式におけるスパイクの例を示す図である。
図7の横軸は時刻を示す。具体的には、横軸は、基準時刻となる時刻「0」に対する相対時刻を示す。縦軸は、信号値を示す。
図7では、時刻「1」に発火する場合の例と、時刻「3」に発火する場合の例と、時刻「5」に発火する場合の例の、3つの例が示されている。時間方式では、スパイキングニューロンモデルは、発火時刻によって定量的な情報を示すことができる。例えば、時刻「3」に発火したスパイクが数値「3」を示すなど、スパイクが、発火時刻の数値を示すものとしてもよい。すなわち、スパイキングニューロンモデルが、基準時刻と発火時刻との時間の長さで数値を示すようにしてもよい。
発火時刻は整数の時刻に限定されず、スパイキングニューロンモデルが、発火時刻によって実数値を示すようにしてもよい。
【0054】
図7では、スパイクとしてステップ信号を用いる場合を例に示しているが、これに限定されない。発火時刻を示すことのできるいろいろな形状のスパイクを用いることができる。例えば、立ち上がりから一定時間後に立ち下がるパルス信号をスパイクとして用いるようにしてもよい。この場合、信号がオフになることで、ステップ信号の場合よりもさらに、信号による消費電力を低減できると期待される。
【0055】
また、時間方式では、スパイキングニューロンモデルの各々が高々1回のみ発火するものとしてもよい。これにより、スパイクの個数で数値を示す頻度方式の場合よりも、信号による消費電力を低減できる。
時間方式のスパイキングニューラルネットワークを時間方式スパイキングニューラルネットワークとも称する。時間方式のスパイキングニューロンを時間方式スパイキングニューロンとも称する。
【0056】
(スパイキングニューラルネットワークの学習について)
上記のように、スパイキングニューラルネットワーク120によれば、人工ニューラルネットワーク110を用いる場合よりも消費電力を低減できると期待される。一方、人工ニューラルネットワーク110のほうが、スパイキングニューラルネットワーク120よりも、高精度な学習を容易に行えると考えられる。
【0057】
そこで、ニューラルネットワーク生成装置10が、学習済みの人工ニューラルネットワーク110と同等なスパイキングニューラルネットワーク120を生成するようにしてもよい。例えば、ニューラルネットワーク生成装置10が、学習済みの人工ニューラルネットワーク110と同等なスパイキングニューラルネットワーク120を、スパイキングニューラルネットワーク装置として生成するようにしてもよい。これにより、高精度な計算の実行と消費電力の低減との両立を図ることができる。
【0058】
(人工ニューラルネットワークと同等のスパイキングニューラルネットワークについて)
図8は、人工ニューラルネットワーク110とスパイキングニューラルネットワーク120との対応関係の例を示す図である。人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120を生成するために、ニューラルネットワークの1つの層を、さらに複数の層に細分化する。
図8は、順伝搬型ニューラルネットワーク200におけるニューロンモデル層214の1層分の構成例を示している。上述したように、ニューロンモデル層214は、隠れ層212または出力層213である。
【0059】
以下では、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120を生成することを、人工ニューラルネットワーク110をスパイキングニューラルネットワーク120に変換する、とも称する。人工ニューラルネットワーク110の部分に対応する、スパイキングニューラルネットワーク120の部分を生成することも、(その部分を)変換するとも称する。
【0060】
また、以下では、人工ニューラルネットワーク110における1つのニューロンモデル層214を対象層と称し、ニューラルネットワーク生成装置10が、対象層をスパイキングニューラルネットワーク120のニューロンモデル層214に変換する場合について説明する。ニューラルネットワーク生成装置10は、人工ニューラルネットワーク110に含まれる全てのニューロンモデル層214のそれぞれを、スパイキングニューラルネットワーク120のニューロンモデル層214に変換する。
【0061】
人工ニューラルネットワーク110の場合、1つのニューロンモデル層214をさらにアフィン変換層231とReLU層232との組み合わせとして把握することができる。
1つのニューロンモデル層214に含まれる全ての人工ニューロンモデル111のアフィン変換部112を纏めて層として捉えたものが、アフィン変換層231の例に該当する。
1つのニューロンモデル層214に含まれる全ての人工ニューロンモデル111の活性化関数部113を纏めて層として捉えたものが、ReLU層232の例に該当する。
【0062】
ニューラルネットワーク生成装置10は、アフィン変換層231に対して、設定スパイク生成器241と、時間方式スパイキングニューロン層242と、遅延層243とを設ける。また、ニューラルネットワーク生成装置10は、ReLU層232に対して、t-ReLU層244を設ける。
時間方式スパイキングニューロン層242は、時間方式スパイキングニューロンモデルを含む。ニューラルネットワーク生成装置10は、対象層に含まれる人工ニューロンモデル111の個数と同じ個数の時間方式スパイキングニューロンモデルを含む時間方式スパイキングニューロン層242を生成する。
【0063】
以下では、式を見易くするために、対象層である第l層のニューロンモデルの個数が1つであり、第l-1層のニューロンモデルの個数がN個である場合を想定する。そして、第何層かを示すlの表記、および、第l層の何番目のニューロンモデルかを示すiの表記を省略する。また、第l-1層の何番目のニューロンモデルかを、上記のjに代えてiで示す。
【0064】
人工ニューラルネットワーク110の対象層の人工ニューロンモデルの個数が2個以上である場合、ニューラルネットワーク生成装置10が、以下で説明する処理を対象層の人工ニューロンモデルごとに行うようにすればよい。また、人工ニューラルネットワーク110のニューロンモデル層214の個数が2個以上である場合、ニューラルネットワーク生成装置10が、ニューロンモデル層214のそれぞれを対象層として、以下で説明する処理を行うようにすればよい。
【0065】
ニューラルネットワーク生成装置10が、漏れの大きさ(αleak)が0の時間方式スパイキングニューロンモデルを時間方式スパイキングニューロン層242に用いるものとし、式(4)を式(5)のように変形する。
【0066】
【0067】
tは時刻を示す。vは膜電位を示す。w^iは、上位層の第i番目のスパイキングニューロンからの結合の重みを表す。
式(5)では、式(4)の関数rとしてステップ関数θを用いている。ステップ関数θは、式(6)のように示される。
【0068】
【0069】
図8に示すように、時間方式スパイキングニューロン層242の時間方式スパイキングニューロンモデルの各々は、上位層からのスパイクに加えてさらに、設定スパイク生成器241からの設定スパイクの入力を受ける。
式(5)では、上位層からのスパイクがi=1、・・・、Nで示され、設定スパイクがi=0で示されている。具体的にはt
1、・・・、t
Nは、上位層からのスパイクの入力時刻を示す。t
0は、設定スパイクの入力時刻を示す。
設定スパイク生成器241は、スパイキングニューラルネットワーク120への入力データの値に依存しない設定時刻(時刻t
0)に設定スパイクを出力する。設定時刻は、学習等によって更新可能であってもよい。
【0070】
【0071】
この時間方式スパイキングニューロンモデルの発火時刻は、式(7)でv(t)=Vthとおいて式(8)のように示される。
【0072】
【0073】
なお、発火時刻までにすべての入力スパイクが入力済みであるとする。
遅延層243は、時間方式スパイキングニューロンの出力スパイクを遅延させる。遅延層243での遅延時間をτとすると、遅延層243のスパイク出力時刻は式(9)のように示される。
【0074】
【0075】
遅延時間τは任意に設定できるものとする。
また、人工ニューラルネットワーク110のアフィン変換層231について、式(2)のアフィン関数「Affine」への入力をx=(x1,x2,・・・,xn)と表記すると、出力は式(10)のように示される。
【0076】
【0077】
式(10)は、式(2)で第何層の何番目のスパイキングニューロンかを示すlおよびiの表記を省略し、式(2)のjをiと表記した式に相当する。
人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120として、人工ニューラルネットワーク110のアフィン変換層231の出力値を、スパイキングニューラルネットワーク120の遅延層243のスパイク出力時刻で示すことを考える。
具体的には、スパイキングニューロンモデルへのスパイク入力時刻が-x=(-x1,-x2,・・・,-xn)であるときに、スパイク出力時刻が-Σi=1
Nwixi-bとなるようにする。式(9)で、ti=-xi(i=1,2,…,N)、および、t=-Σi=1
Nwixi-bとして、式(11)を得られる。
【0078】
【0079】
xiの値によらず式(11)が成り立てばよい。そのためのWiの条件は、式(12)のように表される。
【0080】
【0081】
bの条件は、式(13)のように表される。
【数13】
【0082】
式(12)および式(13)が満たされれば、xiの値によらず式(11)が成り立つ。
式(13)の遅延時間τは、任意の値をとることができる。遅延時間τの値を調整することで、式(13)を満たすことは容易である。
また、式(12)を変形すると、式(14)のようになる。
【0083】
【0084】
i=1、2、・・・Nについて式(14)を纏めると、式(15)のように表せる。
【0085】
【0086】
ここで、行列Aを式(16)のように定める。
【0087】
【0088】
時間方式スパイキングニューロン層242における重みw^1、w^2、・・・、w^Nは、式(17)のように計算することができる。
【0089】
【0090】
行列A-1は、行列Aの逆行列である。
式(17)で計算される重みw^iの値を式(18)に入力して遅延時間τを計算できる。
【0091】
【0092】
式(18)に示されるように、遅延時間τは負の値になり得る。各層におけるスパイキングニューラルネットワークの情報は各ニューロンの時刻差にある。すなわち、ある層のニューロンがすべて同じ時刻遅延したとしても、ネットワーク全体の出力がその分だけ遅延するだけであり、遅延時刻の大きさにかかわらず同じ情報を表現できる。このことから、遅延時刻として、ある層に共通の量を任意に加えることができる。すなわち、式(18)で算出された遅延時刻τが負の場合は、その遅延時刻τが正になるように、対象の層に共通の遅延量を適宜くわえればよい。
【0093】
上述したように、人工ニューラルネットワーク110の対象層の人工ニューロンモデルの個数が2個以上である場合、ニューラルネットワーク生成装置10が、対象層の人工ニューロンモデルごとに処理を行うようにすればよい。また、人工ニューラルネットワーク110のニューロンモデル層214の個数が2個以上である場合、ニューラルネットワーク生成装置10が、ニューロンモデル層214のそれぞれを対象層として、処理を行うようにすればよい。
対象層を第l層と表し、対象層における何番目のニューロンモデルかをiで表し、対象層の上位層における何番目のニューロンモデルかをjで表すと、式(17)は式(19)のように示される。
【0094】
【0095】
w^(l)
ijは、第l-1層のj番目のスパイキングニューロンモデルから第l層のi番目のスパイキングニューロンモデルへの結合の重みを示す。ただし、w^(l)
i0は、設定スパイクに対する重みを示す。
行列(A(l)
i)-1は、式(16)の左辺で重みwj(j=1、2、・・・、N)をw(l)
ijと表記した行列A(l)
iの逆行列である。
式(18)は式(20)のように示される。
【0096】
【0097】
τi
(l)は、第l層の時間方式スパイキングニューロン層242のi番目の時間方式スパイキングニューロンモデルの出力スパイクに対する、遅延層243による遅延時間を示す。
t(l-1)
0は、設定スパイク生成器241から、第l層の時間方式スパイキングニューロン層242のi番目の時間方式スパイキングニューロンモデルへの、スパイク入力時刻を示す。
Vth
(l)
(i)は、第l層の時間方式スパイキングニューロン層242のi番目の時間方式スパイキングニューロンモデルにおける膜電位の閾値を示す。上述したように、この閾値は活動電位を模擬する。
【0098】
図9は、t-ReLU層244の構成例を示す図である。
図9では、時間方式スパイキングニューロン層242に含まれる時間方式スパイキングニューロンの個数をMで表している。
遅延層243からt-ReLU層244に、M個のスパイクがそれぞれ時刻t
1、t
2、・・・、t
Mで入力されている。さらに、時刻t
ReLUに設定スパイクが入力されている。t-ReLU層244における設定スパイクは、時間方式スパイキングニューロン層242における設定スパイクとは別のスパイクである。t-ReLU層244における設定スパイクを、t-ReLUスパイクとも称する。
t-ReLU層のスパイク出力時刻は、t’
1、t’
2、・・・、t’
Mとなる。
【0099】
図9では、t-ReLU層への入力スパイクの各々と、設定スパイクとのORをとっている。これにより、t-ReLU層へのスパイク入力時刻t
iと、設定スパイクの時刻t
ReLUとの何れか早い時刻に、t-ReLU層がスパイクを出力する。
スパイク出力時刻t’
i(i=1、2、・・・M)は、式(21)のように示される。
【0100】
【0101】
図9および式(21)に示されるように、t-ReLU層244は、時刻t
iまたは時刻t
ReLUの何れか早い方の時刻t’
iにスパイクを出力する。
図10は、t-ReLU層244におけるスパイクの入出力時刻の例を示す図である。
図10のグラフの横軸は時刻を示し、縦軸は、上位層のノードの識別番号iを示す。上位層のノードの識別番号は、スパイクの識別番号としても用いられる。
図10は、t-ReLU層244への入力スパイクの個数が3個の場合を示している。
【0102】
図10の上側のグラフは、t-ReLU層244へのスパイクの入力時刻t
1、t
2、t
3を示す。
図10の下側のグラフは、t-ReLU層244からのスパイクの出力時刻t’
1、t’
2、t’
3を示す。
上述したように、t-ReLU層244は、時刻t
iまたは時刻t
ReLUの何れか早い方の時刻t’
iにスパイクを出力する。
図10の例で、時刻t
1およびt
2は、何れも時刻t
ReLUよりも早いため、t’
1=t
1、t’
2=t
2となっている。
【0103】
一方、時刻t3は、時刻tReLUよりも遅いため、t’3=tReLUとなっている。
ここでtReLU=0とおく。すなわち、ReLUスパイクが、基準時刻t=0にt-ReLU層244に入力されるようにする。これにより、式(21)の右辺は、入出力の符号が逆であることを除いてランプ関数(式(3)参照)と同じ関数となる。この点で、t-ReLU層244は、スパイクの出力時刻に対してランプ関数を適用する、といえる。
【0104】
ニューラルネットワーク生成装置10が、人工ニューラルネットワーク110をスパイキングニューラルネットワーク120に変換する際、人工ニューロンモデルごとに、スパイキングニューラルネットワーク120のニューロンモデルを設けるようにしてもよい。上述したように、この場合のニューロンモデルを、時間調整型スパイキングニューロンモデルとも称する。
【0105】
図11は、時間調整型スパイキングニューロンモデルの構成例を示す概略ブロック図である。
図11に示す構成で、時間調整型スパイキングニューロンモデル131は、時間方式スパイキングニューロンモデル132と、第一設定スパイク供給部135と、遅延部136と、t-ReLU部137と、第二設定スパイク供給部138とを備える。時間方式スパイキングニューロンモデル132は、膜電位計算部133と、スパイク生成部134とを備える。
【0106】
時間方式スパイキングニューロンモデル132は、上述した、時間方式スパイキングニューロン層242における時間方式スパイキングニューロンモデルの例に該当する。
膜電位計算部133は、時間方式スパイキングニューロンモデル132における膜電位を、式(5)に基づいて計算する。
スパイク生成部134は、膜電位計算部133が算出する膜電位と閾値とを比較する。膜電位が閾値以上であると判定した場合、スパイク生成部134は、スパイクを出力する。
【0107】
図12は、時間方式スパイキングニューロンモデル132の構成例を示す図である。
図12に示す構成で、時間方式スパイキングニューロンモデル132は、N個のシナプス回路141-1から141-Nまでと、コンデンサ142と、閾値電源143と、比較器144とを備える。
シナプス回路141-1から141-Nまでを総称してシナプス回路141とも表記する。
【0108】
シナプス回路141は、上位層の時間調整型スパイキングニューロンモデル131からのスパイクに応じて、コンデンサ142への電流のオンオフ(On/Off)を切り替える。また、シナプス回路141は、コンデンサ142への電流に対する重み付けを行う。
【0109】
図13は、シナプス回路141の構成例を示す概略構成図である。
図13に示す構成で、シナプス回路141は、スイッチング素子151と、可変抵抗152とを備える。また、シナプス回路141は、電源160に接続される。
図13の例で、電源160と、可変抵抗152と、スイッチング素子151とが直列に接続されている。
電源160は、シナプス回路141の出力電流のための電流を供給する。
【0110】
スイッチング素子151は、シナプス回路141の出力電流のオンオフを、入力信号に応じて切り替える。ここでいう入力信号は、上位層の時間調整型スパイキングニューロンモデル131からのスパイクである。
図13では、シナプス回路141-j(jは、0≦j≦Nの整数)への入力信号を電圧V
in(j)で示している。また、シナプス回路141-jからの出力電流をI
jで表している。
【0111】
スパイクとしてステップ信号を用いるようにしてもよい。そして、スイッチング素子151が、スパイクが入力されているときに電流をオンにし、スパイクが入力されていないときに電流をオフにするようにしてもよい。電流オンは、電流を流すこと(通電させること)であってもよい。電流オフは、電流を流さない(通電させない)ことであってもよい。
【0112】
可変抵抗152は、スイッチング素子151が電流をオンにするときの電流の流量を調整する。例えば、電源160の電位が一定であり、オームの法則に従って可変抵抗152の抵抗値に反比例する電流がシナプス回路141から出力されるようにしてもよい。
【0113】
コンデンサ142は、シナプス回路141の出力電流の蓄電によって電位を生じさせる。
図12では、コンデンサの電位をV
mで表している。この電位V
mは膜電位を表す。
閾値電源143は、膜電位(電位V
m)との比較対象となる閾値電位を供給する。
【0114】
比較器144は、膜電位が閾値電位に達すると出力信号を変化させる。具体的には、比較器144は、膜電位が閾値電位以上になると比較器144自らの出力電圧を変化させることでスパイクを出力する。
図12では、比較器144の出力信号を電圧V
outで示している。
【0115】
シナプス回路141と、コンデンサ142との組み合わせは、膜電位計算部133の例に該当する。閾値電源143と比較器144との組み合わせは、スパイク生成部134の例に該当する。
ただし、時間方式スパイキングニューロンモデル132の実装方法は、特定の方法に限定されない。例えば、ニューラルネットワーク生成装置10が、時間方式スパイキングニューロンモデル132をコンピュータ上でソフトウェア的に実装するようにしてもよい。
【0116】
遅延部136は、時間方式スパイキングニューロンモデル132の出力スパイクを、設定された遅延時間だけ遅延させる。これにより、遅延部136は、遅延層243におけるスパイクの遅延を実行する。
【0117】
t-ReLU部137は、遅延部136が出力するスパイクに対し、式(21)でtReLU=0とした場合の処理を行う。具体的には、時刻t=0となる基準時刻までに遅延部136からのスパイクの入力を受けた場合、t-ReLU部137は、スパイクの入力を受けたタイミングでそのままスパイクを出力する。一方、時刻t=0までに遅延部136からのスパイクの入力が無かった場合、t-ReLU部137は、時刻t=0に第二設定スパイク供給部138から入力されるスパイクを、入力を受けたタイミングでそのまま出力する。
これにより、t-ReLU部137は、t-ReLU層244における、スパイクの出力時刻に対するランプ関数の適用を実行する。
【0118】
第二設定スパイク供給部138は、時刻t=0にスパイクを出力する。上述したように、時刻t=0までに遅延部136からのスパイクの入力が無かった場合、t-ReLU部137は、第二設定スパイク供給部138が出力するランプ関数をそのまま出力することで、時刻t=0にスパイクを出力する。
【0119】
ここで、スパイキングニューラルネットワーク120の1つの層に含まれる全てのスパイキングニューロンモデルにおける基準時刻を同じタイミングに揃えることで、下位層に入力されるスパイクの基準時刻を揃えることができる。そこで、スパイキングニューラルネットワーク120が、1つの層に1つずつ第二設定スパイク供給部138を備えるようにしてもよい。
【0120】
スパイキングニューラルネットワーク120が時間調整型スパイキングニューロンモデル131を用いて構成される場合について考える。
この場合、第一設定スパイク供給部135が、設定スパイク生成器241の例に該当する。
【0121】
また、1つのニューロンモデル層214に含まれる全ての時間調整型スパイキングニューロンモデル131の時間方式スパイキングニューロンモデル132を纏めて層として捉えたものが、時間方式スパイキングニューロン層242の例に該当する。
【0122】
また、1つのニューロンモデル層214に含まれる全ての時間調整型スパイキングニューロンモデル131の遅延部136を纏めて層として捉えたものが、遅延層243の例に該当する。
また、1つのニューロンモデル層214に含まれる全ての時間調整型スパイキングニューロンモデル131のt-ReLU部137を纏めて層として捉えたものが、t-ReLU層244の例に該当する。
【0123】
ベースネットワーク生成部11は、時間方式スパイキングニューロン層242における重み、および、遅延層243における遅延時間を設定可能な状態のスパイキングニューラルネットワーク120を生成する。この状態のスパイキングニューラルネットワーク120をベースネットワークとも称する。
【0124】
重み設定部12は、ベースネットワーク生成部11が生成したスパイキングニューラルネットワーク120の時間方式スパイキングニューロン層242における重みを設定する。例えば、重み設定部12は、式(19)に基づいて重みw^(l)
ijを算出し、算出した重みw^(l)
ijを時間方式スパイキングニューロン層242に設定する。
【0125】
遅延設定部13は、ベースネットワーク生成部11が生成したスパイキングニューラルネットワーク120の遅延層243における遅延時間を設定する。例えば、遅延設定部13は、式(20)に基づいて遅延時間τ(l)
iを算出し、算出した遅延時間τ(l)
iを遅延層243に設定する。
【0126】
図14は、ニューラルネットワーク生成装置10が人工ニューラルネットワーク110をスパイキングニューラルネットワーク120に変換する処理手順の例を示すフローチャートである。
図14の処理で、ベースネットワーク生成部11は、時間方式スパイキングニューロン層242における重み、および、遅延層243における遅延時間を設定可能な状態のスパイキングニューラルネットワーク120を生成する(ステップS11)。
【0127】
次に、重み設定部12は、ベースネットワーク生成部11が生成したスパイキングニューラルネットワーク120の時間方式スパイキングニューロン層242における重みを設定する(ステップS12)。
そして、遅延設定部13は、ベースネットワーク生成部11が生成したスパイキングニューラルネットワーク120の遅延層243における遅延時間を設定する(ステップS13)。
ステップS13の後、ニューラルネットワーク生成装置10は、
図14の処理を終了する。
【0128】
ニューロンモデル単位で人工ニューロンモデル111から時間調整型スパイキングニューロンモデル131への変換を行うようにしてもよい。
図15は、実施形態に係るニューロンモデル生成装置の構成例を示す概略ブロック図である。
図15に示す構成で、ニューロンモデル生成装置20は、ベースモデル生成部21と、重み設定部22と、遅延設定部23とを備える。
【0129】
ニューロンモデル生成装置20は、人工ニューロンモデル111の構成情報を取得して、その人工ニューロンモデル111と同等の時間調整型スパイキングニューロンモデル131を生成する。ニューロンモデル生成装置20が、時間調整型スパイキングニューロンモデル131として、時間調整型スパイキングニューロンモデル装置を生成するようにしてもよい。
【0130】
ベースモデル生成部21は、時間方式スパイキングニューロンモデル132における重み、および、遅延部136における遅延時間を設定可能な状態の時間調整型スパイキングニューロンモデル131を生成する。この状態の時間調整型スパイキングニューロンモデル131をベースモデルとも称する。
【0131】
重み設定部22は、ベースモデル生成部21が生成した時間調整型スパイキングニューロンモデル131の時間方式スパイキングニューロンモデル132における重みを設定する。例えば、重み設定部22は、式(19)に基づいて重みw^(l)
ijを算出し、算出した重みw^(l)
ijを時間方式スパイキングニューロンモデル132に設定する。
【0132】
遅延設定部23は、ベースモデル生成部21が生成した時間方式スパイキングニューロンモデル132の遅延部136における遅延時間を設定する。例えば、遅延設定部23は、式(20)に基づいて遅延時間τ(l)
iを算出し、算出した遅延時間τ(l)
iを遅延部136に設定する。
【0133】
図16は、ニューロンモデル生成装置20が人工ニューロンモデル111を時間調整型スパイキングニューロンモデル131に変換する処理手順の例を示すフローチャートである。
図16の処理で、ベースモデル生成部21は、時間方式スパイキングニューロンモデル132における重み、および、遅延部136における遅延時間を設定可能な状態の時間調整型スパイキングニューロンモデル131を生成する(ステップS21)。
【0134】
次に、重み設定部22は、ベースモデル生成部21が生成した時間調整型スパイキングニューロンモデル131の時間方式スパイキングニューロンモデル132における重みを設定する(ステップS22)。
そして、遅延設定部23は、ベースモデル生成部21が生成した時間方式スパイキングニューロンモデル132の遅延部136における遅延時間を設定する(ステップS23)。
ステップS23の後、ニューロンモデル生成装置20は、
図16の処理を終了する。
【0135】
このように、ニューラルネットワーク生成装置10は、人工ニューラルネットワーク110と同等の、時間方式のスパイキングニューラルネットワーク120を生成する。
ニューラルネットワーク生成装置10によれば、時間方式のスパイキングニューラルネットワーク120を用いることで消費電力を低減させながら、人工ニューラルネットワーク110と同様の演算を行うことができる。
【0136】
ニューラルネットワーク生成装置10の全部または一部が、専用ハードウェアに実装されていてもよい。
ニューラルネットワーク生成装置10の全部または一部がASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)に実装されていてもよい。
【0137】
ニューラルネットワーク生成装置10が生成するスパイキングニューラルネットワーク120の全部または一部が、専用ハードウェアに実装されていてもよい。
スパイキングニューラルネットワーク120の全部または一部がASICまたはFPGAに実装されていてもよい。
【0138】
時間方式スパイキングニューロン層242は、時間方式スパイキングニューロンモデル手段の例に該当し、時間方式スパイキングニューロンモデルを用いて構成される。
遅延層243は、遅延手段の例に該当し、時間方式スパイキングニューロン層242のスパイク出力時刻から設定された時間だけ変化させた時刻にスパイクを出力する。
【0139】
t-ReLU層244は、時間方式ランプ関数手段の例に該当し、遅延層243のスパイク出力時刻または基準時刻の何れか早い時刻に信号を出力する。
設定スパイク生成器241は、設定スパイク供給手段の例に該当し、時間方式スパイキングニューロン層242への入力信号に依存しない時刻に、時間方式スパイキングニューロン層242にスパイクを出力する。
【0140】
時間方式スパイキングニューロンモデル132は、時間方式スパイキングニューロンモデル手段の例に該当し、時間方式スパイキングニューロンモデルを用いて構成される。
遅延部136は、遅延手段の例に該当し、時間方式スパイキングニューロンモデル132のスパイク出力時刻から設定された時間だけ変化させた時刻にスパイクを出力する。
【0141】
t-ReLU部137は、時間方式ランプ関数手段の例に該当し、遅延部136のスパイク出力時刻または基準時刻の何れか早い時刻に信号を出力する。
第一設定スパイク供給部135は、設定スパイク供給手段の例に該当し、時間方式スパイキングニューロンモデル132への入力信号に依存しない時刻に、時間方式スパイキングニューロンモデル132にスパイクを出力する。
【0142】
ベースネットワーク生成部11は、ベースネットワーク生成手段の例に該当し、時間方式スパイキングニューロン層242と、遅延層243とを備えるスパイキングニューラルネットワーク120を生成する。
重み設定部12は、重み設定手段の例に該当し、時間方式スパイキングニューロン層242への入力スパイクの重みを、式(17)または式(19)に基づく重みw^iまたはw^(l)
ijに設定する。
【0143】
式(17)または式(19)は、時間方式スパイキングニューロン層242への入力スパイクの入力時刻tiまたはt(l-1)
jが、その入力スパイクが示す数値の符号を逆にした時刻-xiまたは-x(l-1)
jである場合に、遅延層243の出力スパイクの出力時刻tまたはt(l)
iが、その出力スパイクが示す数値の符号を逆にした時刻Σi=1
Nwixi-bまたはΣj=1
Nw(l)
ijx(l-1)
j-b(l)
iになるとした式の例に該当する。
【0144】
遅延設定部13は、遅延設定手段の例に該当し、遅延層243における設定時間を、式(18)または式(20)に基づく遅延時間τまたはτ(l)
iに設定する。
式(18)または式(20)は、時間方式スパイキングニューロン層242への入力スパイクの入力時刻tiまたはt(l-1)
jが、その入力スパイクが示す数値の符号を逆にした時刻-xiまたは-x(l-1)
jである場合に、遅延層243の出力スパイクの出力時刻tまたはt(l)
iが、その出力スパイクが示す数値の符号を逆にした時刻Σi=1
Nwixi-bまたはΣj=1
Nw(l)
ijx(l-1)
j-b(l)
iになるとした式の例に該当する。
【0145】
ベースモデル生成部21は、ベースモデル生成手段の例に該当し、時間方式スパイキングニューロンモデル132と、遅延部136とを備える時間調整型スパイキングニューロンモデル131を生成する。
重み設定部22は、重み設定手段の例に該当し、時間方式スパイキングニューロンモデル132への入力スパイクの重みを、式(17)または式(19)に基づく重みw^iまたはw^(l)
ijに設定する。
遅延設定部23は、遅延設定手段の例に該当し、遅延部136における設定時間を、式(18)または式(20)に基づく遅延時間τまたはτ(l)
iに設定する。
【0146】
次に、人工ニューラルネットワーク110からスパイキングニューラルネットワーク120への変換の例について説明する。変換対象の人工ニューラルネットワーク110の構成は、4-3-3の構成とする。すなわち、入力データの次元が4次元(入力データの個数が4つ)、隠れ層のニューロンモデルの個数が3つ、出力層のニューロンモデルの個数が3つである。
【0147】
この人工ニューラルネットワーク110に対して、深層学習の一般的な手法で、アヤメのデータセットを学習させた。学習には、150個の4次元ベクトルと、4次元ベクトルに一対一対応で紐付けられるラベルデータとで構成される、あやめ分類のデータセットを用いた。
そして、学習後の人工ニューラルネットワーク110をスパイキングニューラルネットワーク120に変換した。
【0148】
図17は、スパイキングニューラルネットワーク120におけるスパイクの出力時刻の例を示す図である。
図17は、スパイキングニューラルネットワーク120への同一の入力データに対する処理における、入力層、隠れ層、出力層それぞれのスパイクの出力時刻を示している。
図17の各グラフの横軸は時刻を示す。縦軸は、スパイクの識別番号iを示す。上述したように、上位層のノードの識別番号がスパイクの識別番号としても用いられる。
【0149】
図18は、人工ニューラルネットワーク110とスパイキングニューラルネットワーク120とにおけるスパイクの出力時刻の例を示す図である。
図18は、
図17の例における入力データに対する処理における、隠れ層、出力層それぞれの出力値を、人工ニューラルネットワーク110、スパイキングニューラルネットワーク120それぞれについて示している。
図18の「#1」、「#2」、「#3」は、それぞれスパイクの識別番号1、2、3を示す。
【0150】
図18の例で、人工ニューラルネットワーク110の隠れ層におけるニューロンモデルの出力値は、1番目のニューロンモデルから順に3.794、0、1.772となっている。これに対し、スパイキングニューラルネットワーク120の隠れ層におけるニューロンモデルのスパイク出力時刻は、1番目のニューロンモデルから順に-3.794、0、-1.772となっている。
【0151】
また、人工ニューラルネットワーク110の出力層におけるニューロンモデルの出力値は、1番目のニューロンモデルから順に12.263、5.605、18.239となっている。これに対し、スパイキングニューラルネットワーク120の隠れ層におけるニューロンモデルのスパイク出力時刻は、1番目のニューロンモデルから順に-12.263、-5.605、-18.239となっている。
【0152】
このように、中間層および出力層の各ノードについて、人工ニューラルネットワーク110の出力値の符号を逆にした値が、スパイキングニューラルネットワーク120の出力値となっている。
この点で、スパイキングニューラルネットワーク120におけるニューロンモデルの出力値は、人工ニューラルネットワーク110におけるニューロンモデルの出力値と同等であることが示されている。
【0153】
図19は、遅延時間を反映させた場合の隠れ層のニューロンモデルの膜電位の時間発展の例を示す図である。
図19は、
図17の例における入力データに対する処理における、膜電位の時間発展の例を示す。
図19のグラフの横軸は時刻を示す。縦軸は、膜電位を示す。膜電位の値1.0が発火の閾値に設定されている。また、
図19に示される時刻には、式(18)または式(20)に示される遅延時間τまたはτ
(l)
iが反映されている。
【0154】
線L111は、1番目のニューロンモデルにおける膜電位の時間発展の例を示す。1番目のニューロンモデルにおける膜電位は、
図18に示される時刻-3.7994において閾値に達している。
線L112は、2番目のニューロンモデルにおける膜電位の時間発展の例を示す。2番目のニューロンモデルにおける膜電位は、
図18に示される時刻0よりも後の時刻において閾値に達している。
【0155】
線L113は、3番目のニューロンモデルにおける膜電位の時間発展の例を示す。3番目のニューロンモデルにおける膜電位は、
図18に示される時刻-1.772において閾値に達している。
このように、
図19による場合の発火時刻は、人工ニューロンモデルの出力値の符号を逆にしたものになっている。
【0156】
図20は、遅延時間を反映させない場合の隠れ層のニューロンモデルの膜電位の時間発展の例を示す図である。
図20は、
図17の例における入力データに対する処理における、膜電位の時間発展の例を示す。
図20のグラフの横軸は時刻を示す。縦軸は、膜電位を示す。膜電位の値1.0が発火の閾値に設定されている。また、
図20に示される時刻には、式(18)または式(20)に示される遅延時間τまたはτ
(l)
iは、反映されていない。
【0157】
線L121は、1番目のニューロンモデルにおける膜電位の時間発展の例を示す。線L122は、2番目のニューロンモデルにおける膜電位の時間発展の例を示す。線L123は、3番目のニューロンモデルにおける膜電位の時間発展の例を示す。
【0158】
図20による場合の発火時刻は、
図19による場合の発火時刻とは異なる。したがって、
図20における発火時刻は、人工ニューロンモデルの出力値の符号を逆にしたものとはなっていない。
このように、
図19と
図20とを比較すると、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120を生成するために、遅延層243または遅延部136を設けることが有効であることが示されている。
【0159】
図21は、遅延時間を反映させた場合の出力層のニューロンモデルの膜電位の時間発展の例を示す図である。
図21は、
図17の例における入力データに対する処理における、膜電位の時間発展の例を示す。
図21のグラフの横軸は時刻を示す。縦軸は、膜電位を示す。膜電位の値1.0が発火の閾値に設定されている。また、
図21に示される時刻には、式(18)または式(20)に示される遅延時間τまたはτ
(l)
iが反映されている。
【0160】
線L211は、1番目のニューロンモデルにおける膜電位の時間発展の例を示す。1番目のニューロンモデルにおける膜電位は、
図18に示される時刻-12.263において閾値に達している。
線L212は、2番目のニューロンモデルにおける膜電位の時間発展の例を示す。2番目のニューロンモデルにおける膜電位は、
図18に示される時刻-5.605において閾値に達している。
【0161】
線L213は、3番目のニューロンモデルにおける膜電位の時間発展の例を示す。3番目のニューロンモデルにおける膜電位は、
図18に示される時刻18.239において閾値に達している。
このように、
図21による場合の発火時刻は、人工ニューロンモデルの出力値の符号を逆にしたものになっている。
【0162】
図22は、遅延時間を反映させない場合の出力層のニューロンモデルの膜電位の時間発展の例を示す図である。
図22は、
図17の例における入力データに対する処理における、膜電位の時間発展の例を示す。
図22のグラフの横軸は時刻を示す。縦軸は、膜電位を示す。膜電位の値1.0が発火の閾値に設定されている。また、
図22に示される時刻には、式(18)または式(20)に示される遅延時間τまたはτ
(l)
iは、反映されていない。
【0163】
線L221は、1番目のニューロンモデルにおける膜電位の時間発展の例を示す。線L222は、2番目のニューロンモデルにおける膜電位の時間発展の例を示す。線L223は、3番目のニューロンモデルにおける膜電位の時間発展の例を示す。
【0164】
図22による場合の発火時刻は、
図21による場合の発火時刻とは異なる。したがって、
図22における発火時刻は、人工ニューロンモデルの出力値の符号を逆にしたものとはなっていない。
このように、
図21と
図22とを比較すると、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120を生成するために、遅延層243または遅延部136を設けることが有効であることが示されている。
【0165】
以上のように、時間方式スパイキングニューロン層242は、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する。遅延層243は、時間方式スパイキングニューロン層242の出力信号が基準時刻に対する相対時刻で示すスパイキング時刻を、設定された時間だけ変化させた信号を出力する。
【0166】
スパイキングニューラルネットワーク120によれば、人工ニューラルネットワーク110と同等の処理をスパイキングニューラルネットワークの方式で行うことができる。例えば、人工ニューラルネットワーク110を用いて高精度な学習を行った後、それと同等のスパイキングニューラルネットワーク120をハードウェア的に実装することで、高精度な処理と消費電力の低減との両立を図ることができる。
【0167】
特に、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120が、人工ニューラルネットワーク110が備える人工ニューロンモデル111の個数と同じ個数の時間調整型スパイキングニューロンモデル131を用いて構成される。この点で、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120の構成を、比較的簡単な構成とすることができる。
【0168】
スパイキングニューラルネットワーク120の構成が簡単な構成であることで、スパイキングニューラルネットワーク120の消費電力の軽減およびスパイキングニューラルネットワーク120のコンパクト化を図ることができる。
【0169】
また、時間方式スパイキングニューロン層242への入力スパイクの重みが、時間方式スパイキングニューロン層242へのスパイク入力時刻がその入力スパイクが示す数値の符号を逆にした時刻である場合に遅延層243のスパイク出力時刻がその出力スパイクが示す数値の符号を逆にした時刻になるとした式に基づく重みに設定される。
【0170】
これにより、スパイキングニューラルネットワーク120では、正の数値を負の時刻で表すことができる。したがって、スパイキングニューラルネットワーク120では、例えばランプ関数等により数値の下限値を設定すると、待ち時間の最大値を限定することができ、入力信号の待ち時間による遅延を低減させることができる。
【0171】
また、t-ReLU層244は、遅延層243のスパイク出力時刻または基準時刻の何れか早い時刻に信号を出力する。
これにより、スパイキングニューラルネットワーク120では、人工ニューラルネットワーク110における活性化関数としてのランプ関数を模擬することができ、かつ、上記のように入力信号の待ち時間による遅延を低減させることができる。
【0172】
また、設定スパイク生成器241は、時間方式スパイキングニューロン層242への入力スパイクに依存しない時刻に、時間方式スパイキングニューロン層242に信号を出力する。
これにより、時間方式スパイキングニューロン層242における重みおよび遅延層243における遅延時間を式(17)から式(20)までのような比較的簡単な式で表すことができる。
この点で、スパイキングニューラルネットワーク120によれば、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワークを比較的簡単に得られる。
【0173】
また、時間方式スパイキングニューロンモデル132は、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する。遅延部136は、時間方式スパイキングニューロンモデル132の出力信号が基準時刻に対する相対時刻で示すスパイキング時刻を、設定された時間だけ変化させた信号を出力する。
【0174】
これにより、人工ニューロンモデル111と同等の処理を時間調整型スパイキングニューロンモデル131で行うことができる。人工ニューロンモデル111を用いて人工ニューラルネットワーク110を構成することができる。時間調整型スパイキングニューロンモデル131を用いてスパイキングニューラルネットワーク120を構成することができる。
例えば、人工ニューラルネットワーク110を用いて高精度な学習を行った後、それと同等のスパイキングニューラルネットワーク120をハードウェア的に実装することで、高精度な処理と消費電力の低減との両立を図ることができる。
【0175】
特に、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120が、人工ニューラルネットワーク110が備える人工ニューロンモデル111の個数と同じ個数の時間調整型スパイキングニューロンモデル131を用いて構成される。この点で、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120の構成を、比較的簡単な構成とすることができる。
【0176】
スパイキングニューラルネットワーク120の構成が簡単な構成であることで、スパイキングニューラルネットワーク120の消費電力を軽減させ、また、スパイキングニューラルネットワーク120のコンパクト化を図ることができると期待される。
【0177】
また、時間方式スパイキングニューロンモデル132への入力スパイクの重みが、時間方式スパイキングニューロンモデル132へのスパイク入力時刻がその入力スパイクが示す数値の符号を逆にした時刻である場合に遅延部136のスパイク出力時刻がその出力スパイクが示す数値の符号を逆にした時刻になるとした式に基づく重みに設定される。
【0178】
これにより、時間調整型スパイキングニューロンモデル131では、正の数値を負の時刻で表すことができる。したがって、時間調整型スパイキングニューロンモデル131では、例えばランプ関数等により数値の下限値を設定すると、待ち時間の最大値を限定することができ、入力信号の待ち時間による遅延を低減させることができる。
【0179】
また、t-ReLU部137は、遅延部136のスパイク出力時刻または基準時刻の何れか早い時刻に信号を出力する。
これにより、時間調整型スパイキングニューロンモデル131では、人工ニューロンモデル111における活性化関数としてのランプ関数を模擬することができ、かつ、上記のように入力信号の待ち時間による遅延を低減させることができる。
【0180】
また、第一設定スパイク供給部135は、時間方式スパイキングニューロンモデル132への入力スパイクに依存しない時刻に、時間方式スパイキングニューロンモデル132に信号を出力する。
これにより、時間方式スパイキングニューロンモデル132における重みおよび遅延部136における遅延時間を式(17)から式(20)までのような比較的簡単な式で表すことができる。
この点で、時間調整型スパイキングニューロンモデル131によれば、人工ニューロンモデル111と同等のスパイキングニューロンモデルを比較的簡単に得られる。
【0181】
また、ベースネットワーク生成部11は、時間方式スパイキングニューロン層242と、遅延層243とを備えるスパイキングニューラルネットワーク120を生成する。重み設定部12は、時間方式スパイキングニューロン層242への入力信号の重みを、式(17)または式(19)に基づく時間に設定する。遅延設定部13は、遅延層243における遅延時間を、式(18)または式(20)に基づく時間に設定する。
【0182】
ニューラルネットワーク生成装置10によれば、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120を得られる。例えば、人工ニューラルネットワーク110を用いて高精度な学習を行った後、それと同等のスパイキングニューラルネットワーク120をハードウェア的に実装することで、高精度な処理と消費電力の低減との両立を図ることができる。
【0183】
特に、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120が、人工ニューラルネットワーク110が備える人工ニューロンモデル111の個数と同じ個数の時間調整型スパイキングニューロンモデル131を用いて構成される。この点で、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120の構成を、比較的簡単な構成とすることができる。
【0184】
スパイキングニューラルネットワーク120の構成が簡単な構成であることで、スパイキングニューラルネットワーク120の消費電力の軽減、および、スパイキングニューラルネットワーク120のコンパクト化を図ることができる。
【0185】
また、ベースモデル生成部21は、時間方式スパイキングニューロンモデル132と、遅延部136とを備える時間調整型スパイキングニューロンモデル131を生成する。重み設定部22は、時間方式スパイキングニューロンモデル132への入力信号の重みを、式(17)または式(19)に基づく時間に設定する。遅延設定部23は、遅延部136における遅延時間を、式(18)または式(20)に基づく時間に設定する。
【0186】
ニューロンモデル生成装置20によれば、人工ニューロンモデル111と同等の時間調整型スパイキングニューロンモデル131を得られる。人工ニューロンモデル111を用いて人工ニューラルネットワーク110を構成することができる。時間調整型スパイキングニューロンモデル131を用いてスパイキングニューラルネットワーク120を構成することができる。
例えば、人工ニューラルネットワーク110を用いて高精度な学習を行った後、それと同等のスパイキングニューラルネットワーク120をハードウェア的に実装することで、高精度な処理と消費電力の低減との両立を図ることができる。
【0187】
特に、ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120が、人工ニューラルネットワーク110が備える人工ニューロンモデル111の個数と同じ個数の時間調整型スパイキングニューロンモデル131を用いて構成される。この点で、人工ニューラルネットワーク110と同等のスパイキングニューラルネットワーク120の構成を、比較的簡単な構成とすることができる。
【0188】
スパイキングニューラルネットワーク120の構成が簡単な構成であることで、スパイキングニューラルネットワーク120の消費電力を軽減させ、また、スパイキングニューラルネットワーク120のコンパクト化を図ることができると期待される。
【0189】
図23は、実施形態に係るニューラルネットワーク装置の構成例を示す図である。
図23に示す構成で、ニューラルネットワーク装置610は、時間方式スパイキングニューロンモデル611と、遅延部612とを備える。
かかる構成で、時間方式スパイキングニューロンモデル611は、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する。遅延部612は、時間方式スパイキングニューロンモデル611の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた信号を出力する。
【0190】
ニューラルネットワーク装置610によれば、人工ニューラルネットワークと同等の処理をスパイキングニューラルネットワークの方式で行うことができる。例えば、人工ニューラルネットワークを用いて高精度な学習を行った後、それと同等のニューラルネットワーク装置610にてスパイキングニューラルネットワークをハードウェア的に実装することで、高精度な処理と消費電力の低減との両立を図ることができる。
【0191】
特に、ニューラルネットワークと同等のニューラルネットワーク装置610が、人工ニューラルネットワークが備える人工ニューロンモデルの個数と同じ個数のニューロンモデルを用いて構成される。この点で、人工ニューラルネットワークと同等のスパイキングニューラルネットワークの構成を、比較的簡単な構成とすることができる。
ニューラルネットワーク装置610の構成が簡単な構成であることで、ニューラルネットワーク装置610の消費電力の軽減およびニューラルネットワーク装置610のコンパクト化を図ることができる。
【0192】
図24は、実施形態に係る生成装置の構成例を示す図である。
図24に示す構成で、生成装置620は、ベースネットワーク生成部621と、重み設定部622と、遅延設定部623とを備える。
かかる構成で、ベースネットワーク生成部621は、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する時間方式スパイキングニューロンモデルと、時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた信号を出力する遅延部と、を備えるニューラルネットワークを生成する。
【0193】
重み設定部622は、時間方式スパイキングニューロンモデルへの入力信号の重みを、入力信号の入力時刻がその入力信号が示す数値の符号を逆にした時刻である場合に遅延部の出力信号の出力時刻がその出力信号が示す数値の符号を逆にした時刻になるとした式に基づく重みに設定する。
遅延設定部623は、遅延部における設定時間を、時間方式スパイキングニューロンモデル手段への入力信号の入力時刻がその入力信号が示す数値の符号を逆にした時刻である場合に遅延部の出力信号の出力時刻がその出力信号が示す数値の符号を逆にした時刻になるとした式に基づく時間に設定する。
【0194】
生成装置620によれば、人工ニューラルネットワークと同等でスパイキングニューラルネットワークの方式のニューラルネットワーク装置を得られる。例えば、人工ニューラルネットワークを用いて高精度な学習を行った後、それと同等のニューラルネットワーク装置をハードウェア的に実装することで、高精度な処理と消費電力の低減との両立を図ることができる。
【0195】
特に、人工ニューラルネットワークと同等のニューラルネットワーク装置が、人工ニューラルネットワークが備える人工ニューロンモデルの個数と同じ個数のスパイキングニューロンモデルを用いて構成される。この点で、人工ニューラルネットワークと同等のスパイキングニューラルネットワークの構成を、比較的簡単な構成とすることができる。
ニューラルネットワーク装置の構成が簡単な構成であることで、ニューラルネットワーク装置の消費電力を軽減させ、また、スパイキングニューラルネットワーク120のコンパクト化を図ることができると期待される。
【0196】
図25は、実施形態に係る情報処理方法における処理手順の例を示す図である。
図25に示す方法は、第一信号を出力すること(ステップS611)と、第二信号を出力すること(ステップS612)とを含む。
第一信号を出力すること(ステップS611)では、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると第一信号を出力する。第二信号を出力すること(ステップS612)では、第一信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた第二信号を出力する。
【0197】
図25に示す方法によれば、人工ニューラルネットワークと同等の処理をスパイキングニューラルネットワークの方式で行うことができる。例えば、人工ニューラルネットワークを用いて高精度な学習を行った後、それと同等のスパイキングニューラルネットワークをハードウェア的に実装して
図25の処理を行うことで、高精度な処理と消費電力の低減との両立を図ることができる。
【0198】
図26は、実施形態に係る生成方法における処理手順の例を示す図である。
図26に示す方法は、ニューラルネットワークを生成すること(ステップS621)と、重みを設定すること(ステップS622)と、遅延を設定すること(ステップS623)とを含む。
【0199】
ニューラルネットワークを生成すること(ステップS621)では、信号入力時刻に応じて時間発展する内部状態量が閾値以上になると信号を出力する時間方式スパイキングニューロンモデル手段と、前記時間方式スパイキングニューロンモデル手段の出力信号が基準時刻に対する相対時刻で示すスパイク時刻を、設定された時間だけ変化させた信号を出力する遅延手段と、を備えるニューラルネットワークを生成する。
【0200】
重みを設定すること(ステップS622)では、前記時間方式スパイキングニューロンモデル手段への入力信号の重みが、前記入力信号の入力時刻がその入力信号が示す数値の符号を逆にした時刻である場合に前記遅延手段の出力信号の出力時刻がその出力信号が示す数値の符号を逆にした時刻になるとした式に基づく重みに設定する。
【0201】
遅延を設定すること(ステップS623)では、遅延手段における前記設定された時間を、前記時間方式スパイキングニューロンモデル手段への入力信号の入力時刻がその入力信号が示す数値の符号を逆にした時刻である場合に前記遅延手段の出力信号の出力時刻がその出力信号が示す数値の符号を逆にした時刻になるとした式に基づく時間に設定する。
【0202】
図26に記載の方法によれば、人工ニューラルネットワークと同等のスパイキングニューラルネットワークを得られる。例えば、人工ニューラルネットワークを用いて高精度な学習を行った後、それと同等のスパイキングニューラルネットワークをハードウェア的に実装することで、高精度な処理と消費電力の低減との両立を図ることができる。
【0203】
特に、人工ニューラルネットワークと同等のスパイキングニューラルネットワークが、人工ニューラルネットワークが備える人工ニューロンモデルの個数と同じ個数のスパイキングニューロンモデルを用いて構成される。この点で、人工ニューラルネットワークと同等のスパイキングニューラルネットワークの構成を、比較的簡単な構成とすることができる。
【0204】
スパイキングニューラルネットワークの構成が簡単な構成であることで、スパイキングニューラルネットワークの消費電力の軽減、および、スパイキングニューラルネットワークのコンパクト化を図ることができる。
【0205】
図27は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図27に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
【0206】
ニューラルネットワーク生成装置10、スパイキングニューラルネットワーク120、時間調整型スパイキングニューロンモデル131、ニューロンモデル生成装置20、ニューラルネットワーク装置610、および、生成装置620のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
【0207】
ニューラルネットワーク生成装置10がコンピュータ700に実装される場合、ベースネットワーク生成部11、重み設定部12、および、遅延設定部13の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0208】
また、CPU710は、プログラムに従って、ニューラルネットワーク生成装置10が行う処理のための記憶領域を主記憶装置720に確保する。
ニューラルネットワーク生成装置10と他の装置との通信は、例えば、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0209】
ニューラルネットワーク生成装置10とユーザとのインタラクションは、例えば、インタフェース740が表示画面を有してCPU710の制御に従って各種画像を表示し、また、インタフェース740がキーボード等の入力デバイスを有してユーザ操作を受け付けることで実行される。
【0210】
スパイキングニューラルネットワーク120がコンピュータ700に実装される場合、設定スパイク生成器241、時間方式スパイキングニューロン層242、遅延層243、および、t-ReLU層244の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0211】
また、CPU710は、プログラムに従って、スパイキングニューラルネットワーク120が行う処理のための記憶領域を主記憶装置720に確保する。
スパイキングニューラルネットワーク120と他の装置との通信は、例えば、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0212】
スパイキングニューラルネットワーク120とユーザとのインタラクションは、例えば、インタフェース740が表示画面を有してCPU710の制御に従って各種画像を表示し、また、インタフェース740がキーボード等の入力デバイスを有してユーザ操作を受け付けることで実行される。
【0213】
時間調整型スパイキングニューロンモデル131がコンピュータ700に実装される場合、時間方式スパイキングニューロンモデル132、第一設定スパイク供給部135、遅延部136、t-ReLU部137、および、第二設定スパイク供給部138およびそれらの各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0214】
また、CPU710は、プログラムに従って、時間調整型スパイキングニューロンモデル131が行う処理のための記憶領域を主記憶装置720に確保する。
時間調整型スパイキングニューロンモデル131と他の装置との通信は、例えば、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0215】
時間調整型スパイキングニューロンモデル131とユーザとのインタラクションは、例えば、インタフェース740が表示画面を有してCPU710の制御に従って各種画像を表示し、また、インタフェース740がキーボード等の入力デバイスを有してユーザ操作を受け付けることで実行される。
【0216】
ニューロンモデル生成装置20がコンピュータ700に実装される場合、ベースモデル生成部21、重み設定部22、および、遅延設定部23の各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0217】
また、CPU710は、プログラムに従って、ニューロンモデル生成装置20が行う処理のための記憶領域を主記憶装置720に確保する。
ニューロンモデル生成装置20と他の装置との通信は、例えば、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0218】
ニューロンモデル生成装置20とユーザとのインタラクションは、例えば、インタフェース740が表示画面を有してCPU710の制御に従って各種画像を表示し、また、インタフェース740がキーボード等の入力デバイスを有してユーザ操作を受け付けることで実行される。
【0219】
ニューラルネットワーク装置610がコンピュータ700に実装される場合、時間方式スパイキングニューロンモデル611、および、遅延部612の各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0220】
また、CPU710は、プログラムに従って、ニューラルネットワーク装置610が行う処理のための記憶領域を主記憶装置720に確保する。
ニューラルネットワーク装置610と他の装置との通信は、例えば、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0221】
ニューラルネットワーク装置610とユーザとのインタラクションは、例えば、インタフェース740が表示画面を有してCPU710の制御に従って各種画像を表示し、また、インタフェース740がキーボード等の入力デバイスを有してユーザ操作を受け付けることで実行される。
【0222】
生成装置620がコンピュータ700に実装される場合、ベースネットワーク生成部621、重み設定部622、および、遅延設定部623の各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0223】
また、CPU710は、プログラムに従って、生成装置620が行う処理のための記憶領域を主記憶装置720に確保する。
生成装置620と他の装置との通信は、例えば、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。
【0224】
生成装置620とユーザとのインタラクションは、例えば、インタフェース740が表示画面を有してCPU710の制御に従って各種画像を表示し、また、インタフェース740がキーボード等の入力デバイスを有してユーザ操作を受け付けることで実行される。
【0225】
なお、ニューラルネットワーク生成装置10、スパイキングニューラルネットワーク120、時間調整型スパイキングニューロンモデル131、ニューロンモデル生成装置20、ニューラルネットワーク装置610、および、生成装置620が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0226】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0227】
本発明の実施形態は、ニューラルネットワーク装置、生成装置、情報処理方法、生成方法および記録媒体に適用してもよい。
【符号の説明】
【0228】
10 ニューラルネットワーク生成装置
11、621 ベースネットワーク生成部
12、22、622 重み設定部
13、23、623 遅延設定部
20 ニューロンモデル生成装置
21 ベースモデル生成部
110 人工ニューラルネットワーク
120 スパイキングニューラルネットワーク
121 スパイキングニューロンモデル
131 時間調整型スパイキングニューロンモデル
132、611 時間方式スパイキングニューロンモデル
133 膜電位計算部
134 スパイク生成部
135 第一設定スパイク供給部
136、612 遅延部
137 t-ReLU部
138 第二設定スパイク供給部
241 設定スパイク生成器
242 時間方式スパイキングニューロン層
243 遅延層
244 t-ReLU層
610 ニューラルネットワーク装置
620 生成装置