(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-25
(45)【発行日】2024-02-02
(54)【発明の名称】スパイキング・ニューラル・ネットワーク用のスパイキング・シナプス素子
(51)【国際特許分類】
G06N 3/049 20230101AFI20240126BHJP
【FI】
G06N3/049
(21)【出願番号】P 2021553818
(86)(22)【出願日】2020-02-27
(86)【国際出願番号】 IB2020051669
(87)【国際公開番号】W WO2020188380
(87)【国際公開日】2020-09-24
【審査請求日】2022-07-25
(32)【優先日】2019-03-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】パンタツ、アンゲリキ
(72)【発明者】
【氏名】ウォズニアック、スタニスラフ
(72)【発明者】
【氏名】アベル、シュテファン
(72)【発明者】
【氏名】フォンペイリン、ジーン
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2002-008032(JP,A)
【文献】国際公開第2019/034970(WO,A1)
【文献】特開平01-244567(JP,A)
【文献】特開平04-127262(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06F 17/00-17/18
(57)【特許請求の範囲】
【請求項1】
ハードウェア実装のスパイキング・ニューラル・ネットワークのニューロン間でシグナルを伝達するための方法であって、前記スパイキング・ニューラル・ネットワークは、それぞれがシナプス前ニューロンをシナプス後ニューロンに結合するシナプス・ユニットを含むニューロン結合を備え、前記方法は、前記ニューロン結合のニューロン結合ごとに、前記ニューロン結合の各シナプス・ユニットにおいて、
シナプス後スパイクを生成するよう、前記各シナプス・ユニットに記憶されたシナプス荷重に基づいて前記各ニューロン結合の前記シナプス前ニューロンから受け取ったスパイクを周波数において変調することであって、それにより前記シナプス前ニューロンから受け取った第1の数のスパイクが第2の数のシナプス後スパイクに変換される、前記変調することと、
生成された前記シナプス後スパイクを前記各ニューロン結合の前記シナプス後ニューロンに伝達することと
を含
み、
前記各シナプス・ユニットにおいて、前記シナプス荷重を決定する状態を維持することであって、前記状態がコグニティブ学習メカニズムに従って変更され得る、前記維持すること
をさらに含み、
前記シナプス前ニューロンから受け取った前記スパイクが、まず受け取った前記スパイクを前記状態により決定されたシナプス荷重に従って1つまたは複数の電気的なシグナルにコンバートすることにより、次いで、前記電気的なシグナルに基づいて生成される前記シナプス後スパイクの周波数をセットすることにより、前記各シナプス・ユニットにおいて変調される、方法。
【請求項2】
前記各ニューロン結合の前記シナプス後ニューロンにおいて、伝達された前記シナプス後スパイクに基づいて出力スパイクを生成すること
をさらに含む、請求項1に記載の方法。
【請求項3】
一方では前記シナプス前ニューロンから受け取ったスパイクに基づき、他方では前記スパイキング・ニューラル・ネットワークの1つまたは複数のシナプス後ニューロンにおいて生成された出力スパイクに基づいて、前記コグニティブ学習メカニズムに従って前記状態を、前記各シナプス・ユニットにおいて変更すること
をさらに含む、請求項
1に記載の方法。
【請求項4】
前記シナプス・ユニットが、前記シナプス前ニューロンから受け取ったスパイク、および前記シナプス後ニューロンにおいて生成された出力スパイクに基づいて、スパイク-タイミング-依存性可塑性メカニズムを実装するように構成され、それにより前記状態が前記スパイク-タイミング-依存性可塑性メカニズムに基づいて変更される、請求項
3に記載の方法。
【請求項5】
前記出力スパイクが、前記シナプス後ニューロンにおいて受け取ったシナプス後スパイクを、その数に基づいて、積分することによって生成される、請求項2に記載の方法。
【請求項6】
前記状態が、一次状態であり、
前記シナプス前ニューロンから受け取ったスパイクを変調することが、
前記シナプス前ニューロンから受け取ったスパイクに基づいて短期シナプス荷重を決定する二次状態を維持することと、
前記一次状態によって決定された現在のシナプス荷重を、前記二次状態から決定された前記短期シナプス荷重に依存するしきい値と比較することであって、それにより前記現在のシナプス荷重が前記しきい値以上である場合にのみ、前記シナプス後スパイクが生成される、前記比較することと
を含む、請求項
1、
3または
4のいずれか一項に記載の方法。
【請求項7】
前記しきい値が、前記短期シナプス荷重に等しく、それにより、前記現在のシナプス荷重が前記短期シナプス荷重と比較され、前記現在のシナプス荷重が前記短期シナプス荷重以上である場合にのみ、前記シナプス後スパイクが生成され、
前記シナプス前ニューロンから受け取ったスパイクを変調することが、前記短期シナプス荷重を前記しきい値に可能な最大値と比較することと、それに応じて前記値が前記最大値以上であると分かった場合、前記短期シナプス荷重をリセットすることとをさらに含む、請求項
6に記載の方法。
【請求項8】
前記しきい値が最大値と前記短期シナプス荷重との間の差分に等しく、それにより前記現在のシナプス荷重が前記差分と比較され、前記最大値が前記現在のシナプス荷重と前記短期シナプス荷重との総和に許可される最大値であり、それにより、前記現在のシナプス荷重が前記差分以上である場合にのみ、前記シナプス後スパイクが生成され、
前記シナプス前ニューロンから受け取ったスパイクを変調することが、前記シナプス後ニューロンに伝達するためのシナプス後スパイクが生成される都度、前記スパイクを生成した後に、前記短期シナプス荷重をリセットすることをさらに含む、
請求項
6または
7に記載の方法。
【請求項9】
生成された前記シナプス後スパイクが、すべて同一の振幅を有する、
請求項1ないし
8のいずれか一項に記載の方法。
【請求項10】
ハードウェア実装のスパイキング・ニューラル・ネットワークのニューロン間でシグナルを伝達するためのシナプス・ユニット回路であって、
前記回路は、ニューロン結合を形成するべく、シナプス前ニューロンを前記ネットワークのシナプス後ニューロンに結合するよう設計され、
前記回路は、前記シナプス前ニューロンおよび前記シナプス後ニューロンに結合すると、
シナプス後スパイクを生成するよう、前記回路に記憶されたシナプス荷重に基づいて前記シナプス前ニューロンから受け取ったスパイクを周波数において変調することであって、それにより、動作中、前記シナプス前ニューロンから受け取った第1の数のスパイクが第2の数のシナプス後スパイクに変換される、前記変調することと、
生成された前記シナプス後スパイクを前記シナプス後ニューロンに伝達することと
を行うように構成さ
れ、
前記回路が、前記シナプス前ニューロンおよび前記シナプス後ニューロンに結合すると、前記シナプス荷重を決定する状態を維持し、一方では前記シナプス前ニューロンから受け取ったスパイクに基づき、他方では前記シナプス後ニューロンにより発せられたスパイクに基づいて、前記状態を変更するようにさらに構成され、
前記回路が、
動作中、前記シナプス後スパイクを生成し、生成された前記シナプス後スパイクを前記シナプス後ニューロンに伝達するように設計されたスパイク生成ユニットと、
前記シナプス前ニューロンおよび前記シナプス後ニューロンのそれぞれに結合可能であり、動作中、前記状態を変更するように構成される更新ユニットと、
メムリスティブ・デバイスと
を備え、前記メムリスティブ・デバイスは、
前記スパイク生成ユニットに結合されるか、あるいは前記シナプス前ニューロンに結合可能であり、前記メムリスティブ・デバイスは、動作中、前記スパイク生成ユニットが前記状態から決定されたシナプス荷重に基づいて前記シナプス前ニューロンから前記メムリスティブ・デバイスによって受け取ったスパイクを変調し、前記シナプス後スパイクを生成するべく、前記状態を保持するように構成され、
前記更新ユニットに結合され、それにより、動作中、前記更新ユニットにより変更されたあらゆる状態が、前記スパイクを変調するために使用される前記シナプス荷重を決定し、
前記メムリスティブ・デバイスが、前記シナプス前ニューロンから受け取ったスパイクを、前記メムリスティブ・デバイスに保持された前記状態によって決定されるシナプス荷重に従って、1つまたは複数の電気的なシグナルにコンバートするようにさらに構成され、
前記スパイク生成ユニットが、動作中、前記シナプス前ニューロンから受け取ったスパイクを変調すべく、生成される前記シナプス後スパイクの周波数を、前記電気的なシグナルに基づいてセットするようにさらに構成される、
シナプス・ユニット回路。
【請求項11】
前記回路が、前記シナプス前ニューロンおよび前記シナプス後ニューロンに結合すると、すべてが同一の振幅を有するシナプス後スパイクを生成するようさらに構成される、請求項1
0に記載のシナプス・ユニット回路。
【請求項12】
前記更新ユニットが、前記シナプス前ニューロンから受け取ったスパイク、および前記シナプス後ニューロンにおいて生成された出力スパイクに基づいて、スパイク-タイミング-依存性可塑性メカニズムを実装するようにさらに構成され、それにより前記状態が、動作中、前記スパイク-タイミング-依存性可塑性メカニズムに基づいて変更される、請求項1
0に記載のシナプス・ユニット回路。
【請求項13】
前記状態が、一次状態であり、前記メムリスティブ・デバイスが、前記一次状態を保持するように構成された第1のメムリスティブ・デバイスであり、
前記シナプス・ユニット回路が、前記シナプス前ニューロンに結合可能であり、短期シナプス荷重を決定する二次状態を保持するように設計された第2のメムリスティブ・デバイスをさらに備え、前記二次状態が、動作中、前記第2のメムリスティブ・デバイスにより前記シナプス前ニューロンから受け取ったスパイクに依存する、
請求項1
0または1
2に記載のシナプス・ユニット回路。
【請求項14】
前記シナプス・ユニット回路が、比較器をさらに備え、前記一次状態から決定された現在のシナプス荷重をしきい値と比較するべく、前記比較器が前記第1のメムリスティブ・デバイスおよび前記第2のメムリスティブ・デバイスのそれぞれに結合され、前記しきい値が前記二次状態から決定された前記短期シナプス荷重に依存し、それにより、動作中、前記現在のシナプス荷重が前記しきい値以上である場合にのみ、前記スパイク生成ユニットによって前記シナプス後スパイクが生成される、
請求項1
3に記載のシナプス・ユニット回路。
【請求項15】
前記比較器が、前記短期シナプス荷重を前記しきい値として使用するように設計された第1の比較器であり、それにより、前記現在のシナプス荷重が前記短期シナプス荷重以上である場合にのみ、前記スパイク生成ユニットによって前記シナプス後スパイクが生成され、
前記回路が、前記短期シナプス荷重を前記しきい値に可能な最大値と比較するように構成された第2の比較器をさらに含み、あるいは、前記回路は、前記短期シナプス荷重が前記最大値以上であると分かった場合、前記短期シナプス荷重をリセットするように構成される、
請求項1
4に記載のシナプス・ユニット回路。
【請求項16】
前記比較器が、前記現在のシナプス荷重を前記しきい値と比較するために、前記しきい値として、最大値と前記短期シナプス荷重との間の差分に使用するよう設計され、前記最大値が、前記現在のシナプス荷重と前記短期シナプス荷重との総和に許可される最大値であり、それにより、動作中、前記現在のシナプス荷重が前記差分以上である場合にのみ、前記スパイク生成ユニットによって前記シナプス後スパイクが生成され、
前記回路が、前記シナプス後ニューロンに伝達するためのシナプス後スパイクが生成される都度、前記スパイクを生成した後に、前記短期シナプス荷重をリセットするようにさらに構成される、
請求項1
4または
15に記載のシナプス・ユニット回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にハードウェア実装のスパイキング・ニューラル・ネットワークのニューロン間でシグナルを伝達するための技術に関する。特に、スパイキング・ニューラル・ネットワークのニューロン間でシグナルを伝達するための方法を対象としており、シナプス前ニューロン(pre-synaptic neuron)から受け取ったスパイクが、シナプス後スパイク(post-synaptic spike)列をシナプス後ニューロン(post-synaptic neuron)に伝達することに先立って、シナプス後スパイク列を生成するよう(振幅が変化する電流に変換するのではなく)周波数において変調される。
【背景技術】
【0002】
機械学習は、人工ニューラル・ネットワーク(ANN)に依拠することがよくあり、これは人間または動物の脳の生体的なニューラル・ネットワークから発想された計算モデルである。このようなシステムは、実例によって漸進的かつ自律的にタスクを学習する。これらは、例えば発話認識、テキスト処理およびコンピュータ・ビジョンにうまく応用されてきている。
【0003】
ANNは一組の結合されたユニットまたはノードを備えており、これらは、動物の脳の生体ニューロンになぞられるため、人工ニューロンと称される。シグナルは、シナプス同様に、人工ニューロン間の結合(エッジとも称される)に沿って伝達される。つまり、シグナルを受け取る人工ニューロンはそれを処理し、次に結合されたニューロンにシグナル伝達する。典型的には、このような結合に沿って運ばれるシグナルは、アナログの実数であり、その入力の総和の非線形関数により人工ニューロンの出力が計算される。
【0004】
結合荷重(シナプス荷重とも称される)は、結合とノードに関連付けられ、そのような荷重は学習が進むにつれ調節される。各ニューロンはいくつかの入力を有する場合があり、結合荷重は各入力に帰属するものである(ある特定の結合の荷重)。そのような結合荷重は訓練フェーズの間に学習され、それにより更新される。学習プロセスは、反復的である:データ事例がネットワークに、典型的には1つずつ提示され、入力値に関連付けられる荷重が各時間ステップにおいて調節される。
【0005】
多層パーセプトロン、深層ニューラル・ネットワーク、および畳み込みニューラル・ネットワークなどのフィードフォワードのニューラル・ネットワークから始まる多くのタイプのニューラル・ネットワークが知られている。それに加え、スパイキング・ニューラル・ネットワークなどの新しいタイプのニューラル・ネットワークが登場した。スパイキング・ニューラル・ネットワーク(SNN)は、SNNが規則的な時間ステップで計算されるアナログ値ではなく、任意の時点で非同期的に生じ得る離散的なバイナリ事象であるスパイクを使用して動作するため、通常のニューラル・ネットワークとは大きく異なる。つまり、ニューロンの状態、およびシナプスの状態に加えて、SNNは時間の概念をさらに組み込む。すなわち、ニューロンは、例えば多層パーセプトロン・ネットワークにおけるように各伝播サイクルで発火するのではなく、膜電位が特定の値に達したときのみ発火する。SNNのコンテキストにおいて、発火とは、ニューロンが他のニューロンに到達するシグナルを生成し、次にこれが他のニューロンから受け取ったシグナルに応じてそれらの電位を上昇または低下させることを意味する。
【0006】
ニューラル・ネットワークは典型的にはソフトウェアとして実装される。しかしながら、ニューラル・ネットワークはハードウェアに、例えば抵抗型処理ユニット、または光ニューロモーフィック・システムとして実装されてもよい。すなわち、ハードウェア実装のANNは、(訓練目的または推論目的あるいはその両方のために)ANNを実装することを主として特別に設計されているという点で、古典的なコンピュータ(汎用または特殊目的コンピュータ)とは明らかに異なる物理的な機械である。ハードウェア実装のANNは、せいぜい古典的なコンピュータでエミュレートすることができたが(同じ効率ではないが)、古典的なコンピュータのように複数のデータ処理タスクを実行することはできない。
【発明の概要】
【0007】
第1の態様によると、本発明は、ハードウェア実装のスパイキング・ニューラル・ネットワーク(すなわち、SNN)のニューロン間でシグナルを伝達するための方法として具体化される。ネットワークは、ニューロン結合を含み、それぞれはシナプス前ニューロンをシナプス後ニューロンに結合するシナプス・ユニットを含む。基本的に、方法はデジタル変調プロセスに依拠し、これは前記ニューロン結合のニューロン結合ごとに、その各シナプス・ユニットにおいて実装される。すなわち、シナプス後スパイクを生成するよう、前記各ニューロン結合のシナプス前ニューロンから受け取ったスパイクは、まず、前記各シナプス・ユニットに記憶されたシナプス荷重に基づいて、周波数において変調される。このようにして、シナプス前ニューロンから受け取った第1の数のスパイクが、第2の数のシナプス後スパイクに変換される。生成されたシナプス後スパイクは、続いて前記各ニューロン結合のシナプス後ニューロンに伝達される。生成されたシナプス後スパイクは、すべて同一のシグナル振幅を有し得る可能性がある。
【0008】
本手法は、シナプス前ニューロンからの入力スパイクがシナプス出力においてアナログ電流に変換される先行技術ソリューションで用いられるようなアナログなシグナルと比較すると、シナプス・ユニットで生成された離散的な事象は、各出力ニューロンにおいてより判別可能に読み取って積分することができるという事実により、シナプス出力において、より高いダイナミック・レンジを得ることを可能にする。
【0009】
上述のプロセスは、シナプス・ユニット回路に関係する本発明の別の態様と一貫して、シナプス・ユニットで実施される動作を考慮する。しかしながら、実施形態では、上述のプロセスは、シナプス前およびシナプス後ニューロンにより実行されるものなど、追加的なステップにより補完される。特に、このプロセスは、前記各ニューロン結合のシナプス後ニューロンにおいて、伝達されたシナプス後スパイクに基づいて出力スパイクを生成することにつながる。出力スパイクは、シナプス後ニューロンにおいて受け取ったシナプス後スパイクを、その数に基づいて、積分することによって生成することができる。
【0010】
本発明の実施形態では、方法は、前記シナプス荷重を決定する状態を(前記各シナプス・ユニットにおいて)維持することであって、前記状態はコグニティブ学習メカニズムに従って変更され得る、維持することをさらに含む。特に、方法は、一方では前記シナプス前ニューロンから受け取ったスパイクに基づき、他方ではSNNの1つまたは複数のシナプス後ニューロンにおいて生成された出力スパイクに基づいて、前記コグニティブ学習メカニズムに従って前記状態を(やはり、前記各シナプス・ユニットにおいて)変更することをさらに含む。
【0011】
シナプス・ユニットは、前記シナプス前ニューロンから受け取ったスパイク、および前記シナプス後ニューロンにおいて生成された出力スパイクに基づいて、スパイク-タイミング-依存性可塑性(STDP)メカニズムを実装するように構成することができる。つまり、前記状態は、STDPメカニズムに基づいて変更される。
【0012】
シナプス前ニューロンから受け取ったスパイクは、まず受け取ったスパイクを(前記状態により決定されたシナプス荷重に従って)1つまたは複数の電気的なシグナルにコンバートすることにより、次いで、前記電気的なシグナルに基づいて生成されるシナプス後スパイクの周波数をセットすることにより、前記各シナプス・ユニットにおいて特に変調され得る。
【0013】
実施形態では、本方法は、2つの状態、つまり上述の状態(一次状態)に加えて二次状態を伴う。つまり、スパイク変調プロセスは、短期シナプス荷重を決定する二次状態を維持することをさらに含む。この二次状態は、シナプス前ニューロンから受け取ったスパイクに依存する。変調スキームは、前記一次状態により決定された現在のシナプス荷重をしきい値と比較することをさらに含む。しきい値は、前記短期シナプス荷重(前記二次状態より決定された)に依存し、それにより現在のシナプス荷重が前記しきい値以上である場合にのみ、シナプス後スパイクが生成される。
【0014】
所与のクラスの実施形態では、このしきい値は前記短期シナプス荷重に等しく、それにより、現在のシナプス荷重が前記短期シナプス荷重と比較されるが、現在のシナプス荷重が前記短期シナプス荷重以上である場合にのみ、前記シナプス後スパイクが生成される。変調は、短期シナプス荷重を前記しきい値に可能な最大値と比較することと、それに応じて前記値が前記最大値以上であると分かった場合、前記短期シナプス荷重をリセットすることと、にさらに依拠する。
【0015】
別のクラスの実施形態では、前記しきい値は、現在のシナプス荷重を前記しきい値と比較する目的のための、最大値と前記短期シナプス荷重との間の差分と考える。この最大値は、現在のシナプス荷重と前記短期シナプス荷重との総和に許可される最大値である。つまり、シナプス後スパイクは、現在のシナプス荷重が前記差分以上である場合にのみ、生成される。ここで、変調プロセスは、前記シナプス後ニューロンに伝達するためのシナプス後スパイクが生成される都度(そして、このスパイクを生成した後に)、前記短期シナプス荷重をリセットすることにつながる。
【0016】
別の態様によると、本発明は、ハードウェア実装のSNNのニューロン間でシグナルを伝達するためのシナプス・ユニット回路として具体化される。回路は、シナプス前ニューロンをネットワークのシナプス後ニューロンに結合するよう設計され、それによりニューロン結合を形成する。本方法と一貫して、回路は、シナプス前ニューロンおよびシナプス後ニューロンに結合すると、シナプス前ニューロンから受け取ったスパイクを周波数において変調し、生成されたシナプス後スパイクをシナプス後ニューロンに伝達するように構成される。動作中、シナプス前ニューロンから受け取ったスパイクは、シナプス後スパイクを生成するよう回路に記憶されたシナプス荷重に基づいて変調され、それによりシナプス前ニューロンから受け取った第1の数のスパイクが、第2の数のシナプス後スパイクに変換される。先ほど触れたように、回路は、すべて同一の振幅を有するシナプス後スパイクを生成するように構成することができる。
【0017】
実施形態では、回路は、前記シナプス前ニューロンおよび前記シナプス後ニューロンに結合すると、前記シナプス荷重を決定する状態を維持し、一方では前記シナプス前ニューロンから受け取ったスパイクに基づき、他方では前記シナプス後ニューロンにより発せられたスパイクに基づいて、前記状態を変更するようにさらに構成される。
【0018】
回路は、動作中、前記シナプス後スパイクを生成し、前記シナプス後スパイクをシナプス後ニューロンに伝達するように設計されたスパイク生成ユニットを含むことができる。回路は、前記シナプス前ニューロンおよび前記シナプス後ニューロンのそれぞれに結合可能であり、動作中、前記状態を変更するように構成されるメムリスティブ(memristive)・デバイスおよび更新ユニットをさらに含む。一方ではメムリスティブ・デバイスはスパイク生成ユニットに結合されるか、あるいは前記シナプス前ニューロンに結合可能である。あるいは、メムリスティブ・デバイスは、動作中、スパイク生成ユニットが前記状態から決定されたシナプス荷重に基づいてシナプス前ニューロンからメムリスティブ・デバイスによって受け取ったスパイクを変調し、前記シナプス後スパイクを生成するべく、前記状態を保持するように構成される。他方では、メムリスティブ・デバイスは前記更新ユニットに結合され、それにより、動作中、更新ユニットにより変更されたあらゆる状態が、スパイクを変調するために使用されるシナプス荷重を決定する。
【0019】
実施形態では、前記更新ユニットは、前記シナプス前ニューロンから受け取ったスパイクおよび前記シナプス後ニューロンにおいて生成された出力スパイクに基づいてSTDPメカニズムを実装するように構成され、それにより前記状態は、動作中、このSTDPメカニズムに基づいて変更される。
【0020】
メムリスティブ・デバイスは、シナプス前ニューロンから受け取ったスパイクを、メムリスティブ・デバイスに保持された状態によって決定されるシナプス荷重に従って、1つまたは複数の電気的なシグナル(例えば、電流または電圧)にコンバートするようにさらに構成することができ、スパイク生成ユニットは、動作中、シナプス前ニューロンから受け取ったスパイクを変調すべく、生成されるシナプス後スパイクの周波数を、前記電気的なシグナルに基づいてセットするようにさらに設計される。
【0021】
実施形態では、前記状態は、一次状態であり、前記メムリスティブ・デバイスは前記一次状態を保持するように構成された第1のメムリスティブ・デバイスである。シナプス・ユニット回路は、前記シナプス前ニューロンに結合可能であり、短期シナプス荷重を決定する二次状態を保持するように設計された第2のメムリスティブ・デバイスをさらに含み、前記二次状態は、動作中、第2のメムリスティブ・デバイスによりシナプス前ニューロンから受け取ったスパイクに依存する。
【0022】
シナプス・ユニット回路は、比較器をさらに含むことができ、前記一次状態から決定された現在のシナプス荷重をしきい値と比較するべく、比較器は第1のメムリスティブ・デバイスおよび第2のメムリスティブ・デバイスのそれぞれに結合され、しきい値は前記二次状態から決定された前記短期シナプス荷重に依存する。動作中、現在のシナプス荷重が前記しきい値以上である場合にのみ、スパイク生成ユニットによってシナプス後スパイクが生成される。
【0023】
実施形態では、前記比較器は、前記短期シナプス荷重を前記しきい値として使用するように設計された第1の比較器であり、それにより、現在のシナプス荷重が前記短期シナプス荷重以上である場合にのみ、スパイク生成ユニットによって前記シナプス後スパイクが生成される。その場合、回路は、前記短期シナプス荷重を前記しきい値に可能な最大値と比較するように構成された第2の比較器をさらに含み、あるいは、回路は、短期シナプス荷重が前記最大値以上であると分かった場合、短期シナプス荷重をリセットするように構成される。
【0024】
比較器は、現在のシナプス荷重を前記しきい値と比較するために、前記しきい値として、最大値と前記短期シナプス荷重との間の差分に依拠するよう設計される。この最大値は、現在のシナプス荷重と前記短期シナプス荷重との総和に許可される最大値であり、それにより、動作中、現在のシナプス荷重が前記差分以上である場合にのみ、スパイク生成ユニットによって前記シナプス後スパイクが生成される。また、回路は、シナプス後ニューロンに伝達するためのシナプス後スパイクが生成される都度(このスパイクを生成した後に)、短期シナプス荷重をリセットするようにさらに構成される。
【0025】
最後の態様によると、本発明は、SNNを実装するハードウェア装置として具体化され、ネットワークは、それぞれが上述のようなシナプス前ニューロン、シナプス後ニューロン、およびシナプス・ユニット回路を含む、複数のニューロン結合を含む。前記回路はシナプス前ニューロンをシナプス後ニューロンに結合する。
【0026】
シナプス後ニューロンは、複数のそのような回路により結合される場合もある。特に、前記ニューロン結合の各シナプス後ニューロンは、ネットワークの複数のシナプス・ユニット回路によって特に結合され、それに結合するすべてのシナプス・ユニット回路により伝達されたシナプス後スパイクに基づいて出力スパイクを生成するように構成することができる。
【0027】
本発明の実施形態では、前記各シナプス後ニューロンは個々のシナプス・ユニット回路により伝達されたシナプス後スパイクを、その数に基づいて、積分することにより前記出力スパイクを生成するようにさらに構成される。
【0028】
次に、本発明を具体化するデバイス、装置、および方法を、非限定的な例により、また添付の図面を参照して、説明する。
【0029】
添付の図面は、同じ符号は別個の図全体で同一または機能的に類似の要素を指し、以下の詳細な説明とともに、本明細書に組み込まれてその一部を成し、様々な実施形態をさらに図示し、すべて本開示による様々な原理および利点を説明するよう機能する。
【図面の簡単な説明】
【0030】
【
図1A】先行技術ソリューションにおけるように、入力スパイクが、振幅が変化するシナプス後電流にコンバートされるハードウェア実装のスパイキング・ニューラル・ネットワーク(SNN)の選択されたコンポーネントの動作の概略図である。
【
図1B】先行技術ソリューションにおけるように、入力スパイクが、振幅が変化するシナプス後電流にコンバートされるハードウェア実装のスパイキング・ニューラル・ネットワーク(SNN)の選択されたコンポーネントの動作の概略図である。
【
図2A】本手法の基礎となる原理を一般的に図示しており、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図2B】本手法の基礎となる原理を一般的に図示しており、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図3】特定のクラスの実施形態に関し、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図4】特定のクラスの実施形態に関し、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図5】特定のクラスの実施形態に関し、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図6】特定のクラスの実施形態に関し、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図7A】本手法の基礎となる原理を一般的に図示しており、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図7B】本手法の基礎となる原理を一般的に図示しており、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図7C】本手法の基礎となる原理を一般的に図示しており、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図7D】本手法の基礎となる原理を一般的に図示しており、実施形態におけるように、SNNのニューロン間でシグナルを伝達するよう設計されており、シナプス後スパイクをシナプス後ニューロンに伝達することに先立って、シナプス後スパイクを生成するようシナプス前ニューロンから受け取ったスパイクが(振幅ではなく)周波数において変調される、ハードウェア実装のSNNの選択されたコンポーネントの動作の概略図である。
【
図8】実施形態による、ハードウェア実装のSNNのニューロン間でシグナルを伝達するための方法の高次ステップを図示したフローチャートである。
【発明を実施するための形態】
【0031】
実施形態に伴われる場合、添付の図面はデバイスおよびコンポーネントまたはその一部の簡略化された表現を示している。図面において同様の要素、または機能的に同様の要素には、そうではないと示されない限り、同一の符号が割り当てられている。
【0032】
連続的なシグナル(値)が典型的にシナプスによって(その出力において)シナプス後ニューロンに伝達されるため、スパイキング・ニューラル・ネットワーク(SNN)の信頼度が高く効率的なハードウェア実装は困難である。理解され得るように、これはシナプス出力により出力されるシグナルのダイナミック・レンジに影響を与える。この観察ならびに通常のハードウェア実装のSNNの他の欠点が、本発明者らを促して、(振幅が変化する電流にコンバートするのではなく)シナプス前ニューロンから受け取ったスパイクが周波数において変調され、異なる数のシナプス後スパイクを生成するSNNのニューロン間でシグナルを伝達するための新しい技術を開発させた。
【0033】
図2~
図8を参照すると、本発明の態様がまず説明されており、これはハードウェア実装のスパイキング・ニューラル・ネットワーク1、1a~1c(以降、SNN)のニューロン11、14の間でシグナルを伝達するための方法に関する。この方法およびその変形を、「本方法」と総称する。SNNは、いくつかのニューロン結合を含み、それぞれがシナプス前ニューロン11をシナプス後ニューロン14に結合するシナプス・ユニット20、20a~20cを含むものと想定する。このシナプス・ユニットは特に、本発明の別の態様を参照して後述するような回路として実装することができる。SNNは、全体として、本発明の最後の態様を参照してやはり後述するハードウェア装置に実装することができる。
【0034】
この方法は、本質的にSNNの各シナプス・ユニット、つまりネットワークのニューロン結合のそれぞれに実装される変調プロセスに依拠する。このプロセスによると、
図8のフローチャートに反映されるように、シナプス前ニューロン11から受け取ったS22スパイク31は、周波数が変調されるS26。変調は、各シナプス・ユニット20、20a~20cに記憶されるシナプス荷重wに基づいて、シナプス後スパイク32を生成することS27を考慮して、実施される。周波数変調のために、シナプス前ニューロンから受け取ったスパイクの数は、典型的には異なる数のシナプス後スパイクに変換される。例えば、
図7Bおよび
図7Cに図示されるように、シナプス前ニューロン11から受け取ったスパイク31の少なくとも一部は、それぞれ、2つ以上のシナプス後スパイク32の列に変換することができる。生成されたシナプス後スパイク32は、続いてシナプス・ユニットを介してシナプス前ニューロン11により結合されるシナプス後ニューロン14に伝達されるS28。SNNの各ニューロン結合に沿って、同一のプロセスが実施される。
【0035】
スパイクは、生体ニューロンにより生成される活動電位を誘発するパルス・シグナルである。同様に、スパイク列32は、生体ニューロンにより生成される活動電位のシーケンスと比べることができる一時的なパルスのシーケンスである。
【0036】
本手法によると、第1の数のシナプス前ニューロン11から受け取った入力スパイクは、シナプス・ユニット20の出力で第2の数のスパイク32に変換される。シナプス後スパイク32は、典型的には(生成プロセスを簡略化するよう)同一の振幅を有しなければならないが、これは厳密な要求事項ではない。変形例では、発せられたシナプス後スパイク32は異なる振幅を有していてもよい。さらには、発せられたスパイク32は可能性としては入力スパイクと同じ振幅を有する場合があるが、これもやはり厳密な要求事項ではない。
【0037】
シナプス・ユニットにより発せられたスパイクの数は、シナプス・ユニットに記憶されたシナプス荷重wに応じたものとなる。換言すると、ここでは、シナプス荷重は、シナプス・ユニットにより発せられる電流の振幅の代わりに、生成されS27発せられるS28スパイクの数を決定する(
図1および
図2と比較されたい)。それにもかかわらず、本方法は興味深いことにスパイク-タイミング-依存性可塑性(STDP)メカニズムに対応している。より一般的には、そのような方法には、様々な学習メカニズムを伴うことがある。そのようなすべてのメカニズムは、結果として学習が進むにつれてニューロン結合の荷重を変更する。いったん適切に訓練されるとS40、SNNを推論目的に使用することができるS50。さらに、本ネットワーク1、1a~1cは、可能性としては例えば推論目的のみに使用されてもよく、それにより、荷重は、以前の学習フェーズで学習した通りそれぞれ任意の適切な値へと設定(つまり、プログラム化)することができ、推論目的のためには変更されないままになる。つまり、シナプス荷重は別個のハードウェア装置により学習しておくことができる。
【0038】
シナプス・ユニットにより発せられるS28スパイクの数はユニット20、20a~20cに記憶された荷重に依存する変調から決まるため、
図7Aに図示されるように、受け取ったS22すべてのスパイク31が実際にスパイク32を生成させてS27シナプス後ニューロン14に伝達するS28訳ではない。むしろ、実際には受け取ったスパイク31の一部だけが、より多くの(またはより少ない)数のスパイク32にコンバート(変調)されたように見えることがある。これは
図7Bおよび
図7Cを参照されたい。このように生成された連続的なスパイクのシーケンスは、
図7Cで最も良く分かるように、スパイク列を形成する。周波数において変調が行われるため、受け取ったS22スパイク31は、ほとんどの場合、異なる数のスパイクにコンバートされる。このコンバージョンによって多い数になるか、少ない数になるかどうかは、荷重の値および実際のスキームの両方に依存する。例えば、
図3および
図7A~
図7Cに図示される実施形態では、より多くの数のスパイクのスパイク列が取得され得るが、逆にシナプス前ニューロン11から受け取ったスパイクは少ない数のスパイクにコンバートされる場合がある(
図4~
図6、および
図7Dに図示される実施形態におけるように)。コンバージョンは荷重の値にも依存するため、ステップS22で受け取ったスパイクは、時として単一のシナプス後スパイク31を発することS28につながる場合もあるし、スパイクが全くない場合もある。いくつかの構成では、2つ以上のスパイク31がシナプス・ユニットで受け取られS22、シナプス後スパイク32の生成S27をトリガする必要がある場合がある。このような場合、入力スパイク31は、シナプス荷重に応じて、1つまたは複数のシナプス後スパイク32に直接コンバートされない場合がある。
【0039】
本手法により、効率的で信頼度の高いニューラル・ネットワーク実装が可能となり、これには連続的なシグナル値ではなく離散的な事象の伝達を伴う(
図2Bと
図1Bとを比較されたい)。定義上、本手法はデジタル技術に対応している。それ以外では、本発明の別の態様を参照して後で議論する本発明の実施形態におけるように、メムリスティブ・デバイスを使用するシナプス実装形態に対応している。
【0040】
提案されるスキームは、アナログなシグナル34と比較すると、シナプス・ユニットで生成された離散的な事象S27は各出力ニューロン14においてより判別可能に読み取って積分することができるという事実により(
図1参照)、シナプス出力において、より高いダイナミック・レンジを得ることを可能にする。事実、アナログのシナプス後シグナルに依拠する先行技術の手法では、そのようなシグナルの振幅は、そのような振幅から読み取られた値同士で満足のいく区別を可能にするよう十分に分ける必要がある。しかしながら、これはシナプス出力でシグナルに対して取得可能なダイナミック・レンジを限定する。反対に、本手法はシナプス後事象32を識別するために時間分解能に依拠する。出力ニューロン14における十分に速い検出メカニズムを想定すると、シナプス出力において、より高いダイナミック・レンジが得られることが理解されよう。生成されたスパイク32に割り当てられるタイム・スロットが、典型的にはより大きな時間フレームになることが条件である。それにもかかわらず時間フレームは、読み取りについて満足のいく時間分解能で補償される場合がある。加えて、シナプス後電流32は、受け取り側ニューロン14における膜電位でアナログ・シグナル34に使用されるよりも短い時間ステップで積分することができ、それ以外はすべて同じである。必要とされる時間分解能およびそれにより達成されるダイナミック・レンジは、目的用途およびその目的のために選ばれる実装形態に応じたものになることに留意されたい。例として、システムがマイクロ秒の時間で実行しており、スパイキング・シナプスがナノ秒パルスでクロックを刻むと想定すると、既に達成されたレンジは8ビットのダイナミック・レンジでの標準(アナログ)のシナプス設定よりも優れたものとなる。
【0041】
本スキームは他の利点を有する。例えば、勝者総取り(winner-take-all)ネットワークにおいて勝者ニューロンのより効率的な選択を可能にする。つまり、先行技術の方法では、膜電位間の差分および発火しきい値を用いて、しきい値を初めにまたぐニューロンである勝者を推定することがよくある。反対に、本明細書において企図される実施形態では、勝者ニューロンは、追加的な計算の必要なくしきい値処理により直接決定することができる。
【0042】
理想的なアナログ・シナプスは実用上、実装が困難である一方で、本方法は異なるやり方で荷重を表現するための解決策を提供する。そのような方法は、ネイティブなニューロモーフィック・ハードウェア技術に適用することができ、そのためコグニティブ・タスクにおける大規模な能力および効率の向上を提供するよう寄与する。ハードウェア・アクセラレータにより、特にメムリスタのクロスバー・アレイから作製した抵抗型処理ユニット(RPU)においてこのようなタスクの高速化が可能となる。
【0043】
次に、本発明の特定の実施形態を参照して、これらすべてを詳細に説明する。まず、上述のプロセスは、推論または訓練目的のいずれであっても、シナプス・ユニット20、20a~20cにおいて特に実施される動作を考慮することに留意されたい。しかしながら、装置1、1a~1cのレベルでは、特にニューロン11、14を実装する回路において追加的な動作が同時的に実施される。そのような動作は
図8のフローチャートに含まれており、それにより例えば外部システムをSNNに結合して、それにシグナルを伝達することが可能である。フェーズS10を参照されたいが、そのようなシグナルは各受け取り側ニューロンで入力として読み取られるS12。これは、次にシナプス前ニューロン11においてスパイクを生成させS14、このスパイクは続いてシナプス・ユニット20、20a~20cに、それらが上述のようなプロセスS20を実装するよう伝達されるS16。シナプス・ユニットにより続いて伝達されたスパイクは個々のシナプス後ニューロン14で受け取られS32、出力スパイクを生成させS34、生成したスパイクをネットワークの他のレイヤの他のシナプス前ニューロンに伝達しS36、以下同様である。
【0044】
したがって、実施形態では、本方法は特にシナプス後ニューロン14に実装されるステップを含み、それにより
図8に図示されるように伝達されたシナプス後スパイク32に基づいてS32出力スパイク33が生成されるS34。いくつかの入力ニューロン11が同一の出力ニューロン14に結合する場合(
図2B参照)、すべての接合するシナプス20から出力されたスパイクが最終的に加算され141、受け取り側ニューロン14において合計のシナプス後シグナル(例えば電流)を形成する。合計のシナプス後シグナルは、受け取り側ニューロン14で積分されて142、例えば出力スパイク33を生成するS34。
【0045】
上のプロセスS10~S30は、
図8のフローチャートで想定されるように、特に訓練目的で実施される場合がある。訓練が完了するとS40、最終荷重が得られ、これは続いて推論目的のために使用することができるS50。つまり、最終荷重は同一のネットワークで変わらないまま維持されるか、または別のネットワークに、そこで推論を行うために渡される可能性がある。上述のステップS26~S28は、同じように推論目的で実施される場合があることに留意されたい。この場合も、シナプス前ニューロン11から受け取った入力は変調されS26、それによりSNNが結果(推論)として解釈されるシグナルを出力すべく、シナプス後ニューロン14に伝達されるスパイクを生成する。
【0046】
訓練フェーズの間、シナプス荷重は、例えばシナプス・ユニットで維持される状態により決定することができる。したがって
図8から分かるように、各シナプス・ユニット20、20a~20cは状態を維持しなければならずS25、これは次いで入力スパイク31を変調するS26ために用いられるシナプス荷重wを決定する。この状態は、荷重を適切に調節すべくコグニティブ学習メカニズムに従って変更される場合がある。以前に触れたように、コグニティブ・メカニズムは例えばSTDPメカニズムであってもよい。変形例では、この学習メカニズムは、逆伝播メカニズムなどのあらゆる適切な(例えば、グローバルな)学習スキームであってもよい。しかし他の変形例では、前述のように、SNNは単純に推論エンジンを実装するよう設計される場合がある。つまり、荷重はどこか他で学習した荷重に基づいて設定(つまり、プログラム化)することができる。
【0047】
そのような状態は、特にシナプス・ユニット20、20a~20cの部分を形成するデバイス素子の抵抗状態により捉えることができる。例えば、メムリスティブ・デバイス21、21a~21cを特に使用することができる。
図3~
図6を参照されたい。そのようなデバイスは、電気抵抗スイッチと考えることが可能であり、これらは印加された電圧と電流の履歴に基づいて内部抵抗の状態を保持することができる。すなわち、メムリスティブ・デバイスは以前に印加された電圧および電流(つまり、それらの履歴)に基づいて内部抵抗を保持することができる。そのようなデバイスは、それに応じて情報を記憶して処理するために使用することができる。本コンテキストでは、メムリスティブ・デバイスの性能特性は従来の集積回路の性能特性より優れている場合がある。
【0048】
学習メカニズムは、シナプス前ニューロン11から受け取ったS22スパイク31、ならびにSNN1、1a~1cのシナプス後ニューロン14において生成されたS34出力スパイク33に基づいてシナプス・ユニット20、20a~20cにおいて維持される状態を変更させるS24。ローカルの学習メカニズムは、単に、
図2において想定されるように、シナプス前ニューロン11から受け取ったスパイクに加え、シナプス後ニューロン14により局所的に発せられたスパイクに依拠することに留意されたい。つまり、各シナプス結合はその個々の荷重を、個々のシナプス前ニューロン11から受け取ったスパイク31および個々のシナプス後ニューロン14において生成された出力スパイク33に基づいて学習する。例えば、添付の図面において想定されるように、シナプス・ユニット20、20a~20cはSTDPメカニズムまたはSTDP様メカニズムを実装することができる。そのようなメカニズムは、各シナプス・ユニットに、一方で、個々のシナプス前ニューロン11から受け取ったS22スパイク31および対応するシナプス後ニューロン14において生成されたS34出力スパイク33に基づいて各シナプス・ユニットが維持している状態を変更させるS24。変形例では、他のニューロンから発せられた出力スパイクも考慮する、さらにグローバルな学習スキームが使用される場合もある。
【0049】
図2Bに図示されるように、出力スパイク33は、シナプス後ニューロン14において受け取ったシナプス後スパイク32を、その数に基づいて、積分することによって生成するS34ことができる。例えば、シナプス素子20において、シナプス前ニューロン11から受け取った入力スパイク31は、すべてが同一の振幅を有するスパイクの列に変換されることが可能であり、この場合スパイクの数はシナプス荷重に依存する。
図2Bから分かるように、シナプスjにおいて、入力スパイク31は局所的にスパイク列に変換され、その結果、積分発火(IF)ニューロンの場合では、そのニューロン膜電位に次のように寄与する:
【数1】
【0050】
上の方程式では、Δtspは入力スパイクごとの時間間隔を意味し、qj(t)はシナプスjにおけるスパイク出力を示す。すべてのそのような出力は同一の振幅を有し、出力の総和はシナプス荷重wj(最大で係数bまで)に比例する。
【0051】
それ以外では、STDPメカニズムは変わらない。同一の出力ニューロン14に達するすべてのシナプスjからのスパイクは、加算されて、この受け取り側ニューロン14において合計シナプス後電流を形成し、合計シナプス後電流は、受け取り側ニューロン14において膜電位に積分されて出力スパイク33を生成する。したがって、シナプス後電流の合計の寄与は、期間t
0からt
lの範囲に渡る膜電位Vに積分されたものとして、次のように書くことができる:
【数2】
ただし、x
j(t)は時間の瞬間tにおけるシナプスjでの入力スパイクの発生(この場合における対象の出力ニューロンに達するn個の結合がある)を示し、w
jはシナプス荷重であり、bは定数である。
【0052】
反対に、先行技術ソリューション(
図1Aおよび
図1B参照)では、シナプス前ニューロン11からの各入力スパイク31はシナプス出力においてアナログ電流34に変換され(シナプス後電流)、この場合、電流の振幅はシナプス荷重に依存する。
図1Bから分かるように、入力スパイク31は局所的に膜電位への以下の寄与に変換される:
ΔV
j(Δt
sp)=w
ja
ただし、Δt
spは入力スパイクごとの時間間隔を意味し、w
jはシナプス荷重であり、aは定数である。シナプス荷重はシナプス前およびシナプス後ニューロンの活動に従って(例えば、STDPメカニズムに従って)変化する。すべてのシナプスからの電流は、加算されて、受け取り側ニューロンにおいて合計シナプス後電流を形成し、合計シナプス後電流は、受け取り側ニューロンにおいて積分されて出力スパイクを生成する。よって、この場合、シナプス後電流の合計の寄与は、期間t
0からt
lの範囲に渡って積分されたものとして、次のように書くことができる:
【数3】
【0053】
次に、
図3を参照して第1のクラスの実施形態を説明する。この例では、シナプス前ニューロン11から受け取ったS22スパイク31は、まずメムリスティブ・デバイス21により受け取ったスパイク31を電流にコンバートS262することにより(各シナプス・ユニット20において)変調されるS26。より一般的には、このようなスパイクは、まず電気的なシグナル(電圧シグナルに依拠する可能性がある)にコンバートされ得ることに留意されたい。すべての場合において、変調はシナプス20の現在の状態によって定められる現在のシナプス荷重w自身に依存する。次いで、生成されるシナプス後スパイク32の周波数が、前記電気的なシグナルに基づいて、スパイク生成ユニット22によりスパイク32を生成することに先立って、セットされるS264。
【0054】
図3の具体的な例では、描かれるデバイスはハードウェア装置1の一部を形成し、シナプス荷重wを記憶するメムリスティブ・デバイス21、所望の学習規則を実装する回路ブロック15、ならびにスパイクを(所定の間隔で)現在のシナプス荷重wに依存するスパイク周波数で生成するスパイク生成ブロック22を含む。スパイク生成ユニット22は、例えば背景技術セクションで列挙した引例において説明されるようなニューロン回路実装形態から改作される。
図3に示されるシナプス素子の動作は以下の通りである。シナプス前ニューロン11から受け取った入力スパイク31は、メムリスティブ素子21において読み取り事象を生成する。結果として読み取った電流は、スパイク生成ブロック22においてシナプス後スパイク周波数をセットし、それに基づいて、シナプス後スパイクが生成されるS27。それに伴いシナプス荷重wが、所与の学習規則、例えばSTDPベースの学習規則を用いて更新される。
【0055】
以下の条件で、
図4および
図5において、類似のプロセスが伴う。
図4および
図5は、シナプス・ユニットが、それぞれ追加的な状態(二次状態と呼ぶ)を維持するS25必要がある2つの追加的なクラスの実施形態を反映している。つまり、一次状態は荷重wを決定するが、シナプスにおいて維持されるS25二次状態は短期シナプス荷重w
sを決定する。
図4および
図5から分かるように、短期シナプス荷重w
sはシナプス前ニューロン11から受け取ったスパイク31にも依存している。より詳細には、シナプス前ニューロン11から受け取ったS22スパイク31は、今度は現在のシナプス荷重wをしきい値と比較すること23a、23bによって変調されるS26。しきい値は短期シナプス荷重w
sに依存する。シナプス後スパイク32は、現在のシナプス荷重wが前記しきい値以上である場合にのみ、生成されるS27。
【0056】
比較器23a、23bはその目的のために関与している。上述の比較は、前記しきい値に対する現在のシナプス荷重wについての条件付き構成を評価することに等しい。この値は、別の方法で定めることも可能である。特に、しきい値は短期シナプス荷重wsに等しい、または差分wmax-wsと考えるができ、ここで、wmaxは総和w+wsに可能な最大値である。
【0057】
さらに詳細には、
図4で描かれるような実施形態では、しきい値は短期シナプス荷重w
sに等しいと考え、それにより現在のシナプス荷重wがw
sと比較され23a、シナプス後スパイク32は現在のシナプス荷重wが偶然w
s以上になる場合にのみ、生成されるS27。変調および生成プロセスS26~S27は、w
sとw
sに可能な最大値w
maxとの比較24aを含む。次に、w
sが前記最大値以上であると分かると、短期荷重w
sがその初期値、つまり0からw
maxの間の任意の値に調節され得る可能性があるパラメータにリセットされる。
【0058】
図4の具体的な例では、描かれるデバイスはハードウェア装置1aの一部を形成し、シナプス荷重wを記憶するメムリスティブ・デバイス21a、変調時のシナプス後スパイクの数を決定する短期記憶メムリスティブ・デバイス25a、ならびに2つの比較器ブロック23a、24aを含む。
図3におけるように、回路ブロック15は学習規則を実装する。しかしながら、スパイク生成ブロック22aは、今度は比較器ブロック23aの出力に応じてスパイクを生成する。描かれるシナプス素子の動作は以下の通りである。入力は、入来スパイクごとの書き込みパルスを用いて(w
sを記憶している)短期記憶デバイス25aに蓄積される。入来スパイクはメムリスティブ素子21a、25a両方に読み取り事象を生成する。w≧w
sである場合にのみ出力スパイクが生成されるが、w
s≧w
maxである場合、短期記憶メムリスティブ・デバイス25aはリセットされる。その間、シナプス荷重wは所与の学習規則を用いて更新される。したがって、シナプス荷重wが小さい場合、いくつかの入来事象の後、条件w≧w
sは有効ではなく、シナプス20aは発火を止める。反対に、シナプス荷重wが大きい場合、条件w≧w
sは、いくつかの入来事象について有効なままである。
【0059】
図5に図示されるような実施形態では、しきい値は、代わりに最大値w
maxと短期シナプス荷重w
sとの間の差分w
max-w
sと考える。前記最大値は、今度は総和w+w
sに可能な最大値であることに留意されたい。したがって、現在の荷重wは、今度は差分w
max-w
sと比較され23b、シナプス後スパイク32は、現在のシナプス荷重wがこの差分以上である場合にのみ生成されるS27。ここで、短期シナプス荷重w
sは、シナプス後ニューロン14に伝達するためのシナプス後スパイク32が生成されるS27都度、つまりこのスパイクを生成したS27後に、リセットされる22b。
【0060】
図5の具体的な例では、描かれるデバイスはハードウェア装置1bの一部を形成し、
図4のコンポーネント15、21a、22a、および25aに類似のコンポーネント15、21b、22b、および25bを含む。しかしながら、この素子は第2の比較器を含まない。代わりに、加算ブロック26がメムリスティブ素子21b、25bから得たシグナルを加算し、スパイク生成ブロックが比較器ブロック23bの出力に応じたスパイクを生成する。この素子は以下の通りに動作する。入力は、入来スパイク31ごとの書き込みパルスを用いて短期記憶デバイス25bに蓄積される。やはり、入来スパイク31は素子21b、25bの両方で読み取り事象を生成する。出力スパイクは、w+w
s≧w
maxである場合に生成される。変形例では、シナプス20bは、シナプス荷重に依存するスパイク周波数で複数のスパイクを(所定の間隔で)生成することがある。短期記憶デバイス25bは、この場合、各出力の発火事象の後、リセットされる。シナプス荷重wは、回路ブロック15により同時的に更新される。シナプス荷重wが小さい場合、総和w+w
sがw
maxに達するためには、いくつかの入来事象(これは、さらに荷重w
sを増大させる)が必要となる。反対に、シナプス荷重wが既に大きい場合、総和w+w
sは、より簡単に、可能性としては単一の入来事象によりw
maxに達することができる。
【0061】
図6は、各入力スパイクが電圧制御発振器28により発振をトリガするさらなるクラスの実施形態を反映している。ここで、周波数または発振器回路のダンピングは、メムリスタ・デバイス21cに記憶された荷重wにより制御される。大きい荷重値は、高周波数または低いダンピングを生じ、小さい荷重値は、低周波数または高いダンピングを生ずる。つまり、メムリスタ・デバイス21cの荷重を使用して、ユニット29c用のスパイキングしきい値を決定する。電圧がしきい値V
thを超えると、単一のスパイクが生成される。
【0062】
図2A、
図3~
図6を参照すると、今度は本発明の別の態様が詳細に説明されており、これはシグナルをハードウェア実装のSNN1、1a~1cのニューロン11、14間で伝達するためのシナプス・ユニット回路20、20a~20cに関する。このような回路のコンポーネントおよび動作は、本方法を参照して既に説明してきた。したがって、これらの回路の主な特性は、以下でほんの簡単に説明する。このようなシナプス回路は、一般的に、ニューロン結合を形成するべく、シナプス前ニューロン11をネットワークのシナプス後ニューロン14に結合するよう設計される。シナプス前ニューロン11とシナプス後ニューロン14とが適切に結合されると、この回路は、シナプス後スパイク32を生成するべく、シナプス前ニューロン11から受け取ったスパイク31を、回路に記憶されているシナプス荷重wに基づいて周波数において変調することが可能になる。つまり、シナプス前ニューロン11から受け取ったスパイク31は、動作中、生成されたシナプス後スパイク32をシナプス後ニューロン14に伝達することに先立って、異なる数のシナプス後スパイク32に変換することができる。
【0063】
述べたように、このような回路は、すべて同一の振幅を有するシナプス後スパイク32を生成するように構成することができる。加えて、回路は例えば前記シナプス荷重wを決定する状態を維持し、動作中、一方では前記シナプス前ニューロン11から受け取ったスパイク31に基づき、他方では回路が接するシナプス後ニューロン14により発せられたスパイク33に基づいて前記状態を変更することができる。
【0064】
図3~
図5から分かるように、回路はスパイク生成ユニット22、22a~22cを含むことができ、このユニットはシナプス後スパイク32を生成し、動作中、それに従って生成されたシナプス後スパイク32をシナプス後ニューロン14に伝達するように設計される。更新ユニット15は典型的には回路の一部を形成する。このユニット15は、ニューロンの対11、14に結合可能となるように配置される。ユニット15は、回路の状態を(例えば、STDPメカニズムに基づいて)変更するように機能し、それにより、動作中、荷重を学習できるようにする。その上、回路はメムリスティブ・デバイス21、21a~21cを含む場合があり、メムリスティブ・デバイスはスパイク生成ユニットおよび更新ユニット15のそれぞれに結合される。メムリスティブ・デバイスはスパイク生成ユニット22、22a~22cに結合されるか、あるいは、シナプス前ニューロン11に結合可能である。先に説明したように、メムリスティブ・デバイス21、21a~21cは、動作中、スパイク生成ユニット22、22a~22cがシナプス前ニューロン11からメムリスティブ・デバイスによって受け取ったスパイク31をこの状態から決定されたシナプス荷重wに基づいて変調し、続いてシナプス後スパイク32を生成するべく、抵抗状態を保持するように構成される。メムリスティブ・デバイスは、さらに更新ユニット15に結合する:(更新ユニット15により変更された)メムリスティブ・デバイスのあらゆる状態がシナプス荷重w(への変更)を決定し、動作中、シナプス荷重w自身がスパイク31の変調に影響を及ぼす。
【0065】
図3に図示されるように、メムリスティブ・デバイス21、21a、21bは特に、シナプス荷重wにより決定される範囲で、スパイク31を電流にコンバートするように構成することができ、シナプス荷重w自体はメムリスティブ・デバイスによって保持される状態によって決定される。補完的に、スパイク生成ユニット22、22a~22cは、そのような電流に基づいてシナプス後スパイク32の周波数をセットし、動作中、シナプス前ニューロン11から受け取ったスパイク31を変調するように設計することができる。
【0066】
本発明者らは、いくつかの実験を実施して本手法の有効性を確認した。特に、本発明者らは、いくつかの入力ストリームにより結合されたニューロンとの相関を検出する可能性を試験して確認し、それ以外ではこのニューロンは上述のようなシナプス・ユニット回路に結合される。本発明者らが結論づけたように、このようなスパイキング・シナプス素子は、入力データ・ストリームの一部が統計的に相関しているかどうかを明確に判断することを可能にしている。
【0067】
図4、
図5を参照すると、そのようなシナプス・ユニット回路20a、20bは、異なる状態、つまり一次状態および二次状態を保持するようにさらに構成することができる。一次状態は、第1のメムリスティブ・デバイス21a、21bによって保持されるが、第2のメムリスティブ・デバイス25a、25bが二次状態を保持するために(やはり、シナプス前ニューロン11に結合可能に)設けられる。二次状態は短期シナプス荷重wsを決定する。先に述べたように、二次状態は動作中、シナプス前ニューロン11から第2のメムリスティブ・デバイスにより受け取ったスパイク31に依存する。
【0068】
図4、および
図5からさらに分かるように、シナプス・ユニット回路20a、20bはさらに比較器23a、23bを含むことができる。比較器は、現在のシナプス荷重wをしきい値と比較可能にするべく、第1のメムリスティブ・デバイス21a、21bおよび第2のメムリスティブ・デバイス25a、25bのそれぞれに結合される。先に説明したように、しきい値は様々な方法で定義することができる。すべての場合において、このしきい値は、それ自身が二次状態から決定される短期シナプス荷重w
sに依存する。シナプス後スパイク32は、動作中、現在のシナプス荷重wが前記しきい値以上である場合にのみ、スパイク生成ユニット22a、22bによって生成される。
【0069】
先に述べたように、このしきい値は、単純に短期シナプス荷重w
s(
図4参照)に等しくセットすることができ、この場合、前記短期シナプス荷重w
sをしきい値に可能な最大値w
maxと比較するために、第2の比較器24aが含まれる。あるいは、回路は、第2の比較器24aにより短期シナプス荷重w
sが前記最大値以上であると分かった場合、短期シナプス荷重w
sをリセットするように構成される。
【0070】
図5に図示されるような変形例では、単一の比較器23bに依拠し、この比較器は、比較目的のための前記しきい値として差分w
max-w
sを使用するよう設計される。ここでは、シナプス後スパイク32は、動作中、現在のシナプス荷重wが上述の差分w
max-w
s以上であると分かった場合にのみ、スパイク生成ユニットによって生成される。回路は、シナプス後ニューロン14に伝達するためのシナプス後スパイク32が生成される都度(このスパイクを生成した後に)、短期シナプス荷重w
sをリセットする。
【0071】
次に、最後の態様によると、本発明はハードウェア装置1、1a~1cとして具体化することができる。この装置はSNNを実装し、いくつかのニューロン結合を含む。これらの結合のそれぞれは、先ほど述べたように、シナプス前ニューロン11、シナプス後ニューロン14、およびシナプス・ユニット回路20、20a~20cを含む。各シナプス・ユニット回路は、それぞれシナプス前ニューロン11をシナプス後ニューロン14に結合している。各シナプス後ニューロンは、
図2Bに示されるように、特にそのネットワークの複数のシナプス・ユニット回路によって結合され得る。したがって、各シナプス後ニューロン14は、個々のシナプス・ユニット回路20、20a~20cのそれぞれによって伝達されたシナプス後スパイク32に基づいて出力スパイク33を生成するように構成することができる。先ほど詳細に説明したように、各シナプス後ニューロン14は、個々の回路20、20a~20cによって伝達されたシナプス後スパイク32を伝達されたスパイク32の数に基づいて積分することによって出力スパイク33を生成するようにさらに構成することができる。
【0072】
限られた数の実施形態、変形例、および添付の図面を参照して本発明を説明してきたが、当業者であれば、様々な変更が成される可能性があり、本発明の範囲から逸脱することなく等価物が置き換えられ得ることを理解されたい。特に、所与の実施形態、変形例に具陳される、または図面に示される特徴(デバイス様の、または方法様の)は、本発明の範囲から逸脱することなく別の実施形態、変形例、または図面の別の特徴と組み合わせること、または置き換えることができる。したがって、上述の実施形態または変形例のいずれかに関して説明された特徴の様々な組み合わせが企図され得、これは添付の特許請求の範囲内にとどまる。加えて、本発明の教示に対して特定の状況または材料を適合するために、その範囲を逸脱することなく、多くの小さな修正が成され得る。したがって、本発明は開示された特定の実施形態に限定されないことが意図されるが、本発明は添付の請求項の範囲に入るすべての実施形態を含む。加えて、上で明示的に触れたもの以外の多くの他の変形例が企図される可能性がある。