図1は、ニューロモーフィックコンピューティングシステム105を含む例示的なコンピューティングシステムを示し、ニューロモーフィックコンピューティングシステム105は、1つ又は様々なソースからデータを入力として受け取ることができる。例えば、これらのソースには、センサデバイス(例えば、110a〜c)が含まれてよい。そのようなデバイス110a〜cは、環境の属性を検出及び/又は測定することができ、環境の特性を表す又は取り込むセンサデータを生成することができる。例えば、所与のセンサが、いくつかある例の中でも特に、運動、重量、物理的接触、温度、風、雑音、光、コンピュータ通信、無線信号、湿度、放射線又は特定の化学化合物の存在などの特性を検出するように構成されてよい。センサは、いくつかあるセンサデータの中でも特に、これらの属性、音声データ、写真画像、映像を表す数値データを生成することができる。これらのソースは追加的に、1つ又は複数のコンピューティングシステムのデータベース(例えば、115)などのデータ記憶装置を含むことができ、これにより、政府、企業、科学関連、又は他のエンティティ若しくはプロジェクトなどと関連した、データを集約する及び/又は(例えば、集約したデータを後処理することで)追加のデータを生成することができる。1つ又は複数のソース(例えば、110a〜c、115など)からのデータが、機械学習及び深層学習並びにデータにカプセル化された情報に関する他のタスクを実行するために、ニューロモーフィックコンピューティングシステム105に提供されてよい。ニューロモーフィックコンピューティングシステム105により生み出される結果が、例えば、1つ又は複数の他のプロセス、プログラム、又はアプリケーションをホストするアプリケーションシステム120により、追加的に用いられてよい。パーソナルコンピュータ、モバイルデバイスなどのユーザエンドポイントデバイス(例えば、140、145)が、ユーザデバイス(例えば、140、145)によりホストされる1つ又は複数のアプリケーションによる結果の使用を通じるなどして、ニューロモーフィックコンピューティングシステム105から生成された、又はニューロモーフィックコンピューティングシステム105に関連して生成された結果を追加的に活用し、ユーザデバイスのグラフィカルユーザインタフェースに結果を示すことができる。さらに他の例において、ニューロモーフィックコンピューティングシステム105の機械学習機能が、いくつかある例の中でも特に、ロボット、自律走行車両、自律型装置により用いられてよい。
場合によっては、図1に示される例が暗示するように、ニューロモーフィックコンピューティングシステム105が、1つ又は複数の他のシステム(例えば、120、140、145)に(例えば、ネットワーク130を通じて)サービスとして提供されてよい。ニューロモーフィックコンピューティングシステム105は、リモートシステム(例えば、複数のセンサデバイス(例えば、110a〜c)から構成されるモノのインターネット(IoT)ネットワーク)により生成された入力を追加的に利用することができる。他の例では、ニューロモーフィックコンピューティングシステム105の機能が、その他の例示的なシステム(例えば、110a〜c、115、120、130、140、145など)のうちいずれか1つに統合されてよく、またその逆も当てはまる。例えば、自律型装置(ロボットなど)に、(例えば、位置を決定するために)センサが設けられてよく、デバイスのセンサにより生成された入力を直接処理するために、さらにニューロモーフィックコンピューティングリソースが設けられてよい。別の例として、アプリケーション又はサービスが、(例えば、アプリケーションサーバシステム120により)提供されてよく、様々な他の例及びユースケースの中でも特に、アプリケーション又はサービスは、ニューロモーフィックコンピューティングリソースを含み、これらを活用する。一般に、例示的なコンピューティング環境100における「サーバ」、「クライアント」、「コンピューティングデバイス」、「ネットワーク要素」、「ホスト」、「システム型システムエンティティ」、「ユーザデバイス」、「センサデバイス」、及び「システム」(例えば、105、110a〜c、115、120、130、140、145など)は、コンピューティング環境100に関連したデータ及び情報を受信、送信、処理、格納、又は管理するように動作可能な電子コンピューティングデバイスを含むことができる。本文書で用いられるとき、「コンピュータ」、「プロセッサ」、「プロセッサデバイス」、又は「処理デバイス」という用語は、任意の好適な処理装置を包含することが意図されている。例えば、コンピューティング環境100内の単一のデバイスとして示される要素が、複数のサーバコンピュータを含むサーバプールなど、複数のコンピューティングデバイス及びプロセッサを用いて実装されてよい。さらに、複数のコンピューティングデバイスのうちいずれか、全て、又は一部が、Linux(登録商標)、UNIX(登録商標)、Microsoft Windows(登録商標)、Apple OS、Apple iOS、Google Android(登録商標)、Windows Server(登録商標)などを含む任意のオペレーティングシステム、並びにカスタマイズした独自のオペレーティングシステムを含む特定のオペレーティングシステムの実行を仮想化するように適合された仮想マシンを、実行するように適合されてよい。
図1は、複数の要素を含む又はこれらの要素に関連しているように説明されているが、図1のコンピューティング環境100内に示される要素の全てが、本開示のそれぞれの代替的な実装に利用されなくてよい。さらに、図1の例に関連して説明される要素のうち1つ又は複数が、コンピューティング環境100の外部に位置してよく、他の例において、その他の説明された要素及び示された実装において説明されていない他の要素のうち1つ又は複数の一部の中に、又は一部として、特定の要素が含まれてよい。さらに、図1に示される特定の要素が、他のコンポーネントと組み合わされてよく、また本明細書で説明されるこれらの目的に加えて、代替的又は追加的な目的に用いられてよい。
ニューロモーフィックコンピューティングには、コンピューティングシステムに「インテリジェンス」を与えるために、神経系に存在する神経生物学的アーキテクチャを模倣した電子回路を含む超大規模集積回路(VLSI)システムの使用が含まれてよい。ニューロモーフィックコンピューティングの望ましい特徴とは、学習中のシステムの基本的な物理的性質を明らかにすることができる高次元の時空間的特徴を生のデータストリームから自律的に引き出す能力、したがって、これらのデータストリームを高速認識のために扱いやすくする能力である。そのような特徴は、ビッグデータに有益となり得る。
実装態様によっては、スケーラブルで且つエネルギー効率のよい脳から発想を得たエネルギー効率のよいアーキテクチャを採用し、またオンチップ学習に関する複数のモードをサポートする、改良されたニューロモーフィックコンピューティングプラットフォームが提供されてよい。さらに、そのようなニューロモーフィックコンピューティングハードウェアが、広範な従来のワークロード、並びに、動的なパターン学習及びパターン適合、単一の計算プラットフォームを用いた制約の充足及びスパースコーディングなど、従来と異なるワークロードをサポートするために、一般的なコンピューティングハードウェア(例えば、CPU)に接続されても、これと統合されても、又は別の方法でこれと共に用いられてもよい。そのような解決方法は、いくつかある例示的な特徴及び考慮すべき問題の中でも特に、教師なし学習、教師あり学習、並びにスパイクタイミング及び非同期計算を用いた強化学習など、様々な学習モードを活用することによるシステムレベルの性能改善に関して、生物神経科学の知識を活用することができる。
1つの実装態様において、マルチコアアーキテクチャを採用するニューロモーフィックコンピューティングシステムが提供され、それぞれのコアは、ニューロン、オンチップ学習能力を備えたシナプス、並びにシナプス荷重及びルーティングテーブルを格納するローカルメモリを含むコンピューティング要素を実装する。図2Aは、そのようなニューロモーフィックコンピューティングデバイス205の少なくとも一部の一例を示す簡略ブロック図の200である。この例に示されるように、ニューロモーフィックコンピューティングデバイス205には、場合によっては複数の異なる接続によってコア間を規定できるように、オンデバイスネットワークにより相互接続された複数のニューラルネットワークコア(例えば、215)からなるネットワーク210を設けることができる。例えば、スパイキングニューラルネットワークコアからなるネットワーク210が装置205に設けられてよく、ネットワークチャネルを通じてコアからコアへ送信されるパケット化された短いスパイクメッセージを介してそれぞれ通信することができる。各コア(例えば、215)は、処理リソース及びメモリリソース、並びにニューロモーフィックコアを用いて1つ又は複数のニューロンを実装するいくつかのプリミティブな非線形一時的コンピューティング要素を実装するためのロジックを備えることができる。例えば、各ニューロモーフィックコア(例えば、215)は、(例えば、その処理リソースの時間多重化を通じて)複数の(例えば、1000個を超える)別個の人工ニューロン(本明細書では「ニューロン」と呼ばれる)を同時に実装することができる。例えば、各コア(例えば、215)は、ニューロモーフィックコアの集合がデバイスを用いて多数のニューロンを実装できるように、複数のニューロンを同時に実装することが可能であってよい。
図2Aの例を続けると、ニューロモーフィックコンピューティングデバイス205は、ニューロモーフィックコンピューティングデバイス205の機能を管理し提供するロジック及び1つ又は複数のコンポーネントを実装するために、プロセッサ225及びシステムメモリ230を追加的に含むことができる。ニューロモーフィックコンピューティングデバイスのマルチコアアーキテクチャは、様々な異なるニューラルネットワークのうちいずれか1つが、デバイス205を用いて実装されることを可能にし得る。例えば、1つの例において、ニューロモーフィックコンピューティングデバイスは、特定のネットワークトポロジを定義するデータを受け取るために、プログラミングインタフェース235を含むことができ、このデータには、いくつかある構成可能な属性の中でも特に、ニューラルネットワークに実装するニューロンの数、ニューロンを相互接続するのに用いられるシナプス、シナプスのそれぞれのシナプス荷重、ニューロモーフィックコンピューティングデバイスに実装されるニューロンの個々のパラメータが含まれる。プログラミングインタフェース235は、プログラマの入力データを受け取って、ニューロモーフィックコンピューティングデバイス205のニューロモーフィックコア上での様々なニューロンの形成を促進することができ、また対応するルーティングテーブルを生成し、個々のニューロモーフィックコア(例えば、215)のローカルメモリに、指定されたパラメータを追加して、ニューロモーフィックコアにより実装された人工ニューロンの対応するカスタマイズされたネットワークを実装することができる。プログラミングインタフェース235は、ユーザプログラマが、場合によってはユーザが望む任意のスパイキングニューラルネットワーク(SNN)を定義することを可能にしてよい(所望のSNNの範囲をサポートするニューロモーフィックコンピューティングデバイス205のプロセッサ及びメモリリソースに左右される)。実装態様によっては、ネットワーク定義データが、外部のコンピューティングシステムを通じて受信されてよい。
いくつかある例の中でも特に、1つの例において、(異なるシステム又はニューロモーフィックコンピューティングデバイスと同じシステム(又はニューロモーフィックコンピューティングデバイスそのもの)上でホストされるハードウェア及び/又はソフトウェアを基にしたロジックに実装される)1つ又は複数のシステムマネージャ224が、ニューロモーフィックコンピューティングデバイス205のロジックとインタフェースをとり、ニューロモーフィックコンピューティングデバイス205を用いる特定のSNNの定義及び実装を含むニューロモーフィックコンピューティングデバイス205の機能及び構成を管理し、ニューロモーフィックコンピューティングデバイス205上に実装されたSNNに(例えば、特定のアルゴリズム又は手順に関連して)入力を供給するために提供されてよい。SNNの定義には、いくつかある潜在的な機能の中でも特に、(例えば、SNNにおいて定義されたシナプスに対応する)ネットワーク210内の様々なルータに関する特定のルーティングテーブルの定義及びプロビジョニング、ネットワーク内で適用されるネットワーク定義及び属性(例えば、荷重、減衰率など)のオーケストレーション、コアの同期及び時間多重化の管理、適切なコアへの入力データのルーティングが含まれてよい。場合によっては、システムマネージャ224の機能は、いくつかある例の中でも特に、ニューロモーフィックコンピューティングデバイスの内部若しくは外部のシステム、又はニューロモーフィックコンピューティングデバイスが実装されているシステムを含む、場合によっては複数の異なるシステムに分割されてよい。
実装態様によっては、ニューロモーフィックコンピューティングデバイス205には、人工ニューロン、人工シナプス、細胞体、軸索などの様々な特徴及びモデルを実装し、ニューロモーフィックコンピューティングデバイス205を用いて実装されるSNNの任意の追加機能を提供するために、追加のロジックが設けられてよい。例えば、1つの例では、ニューロモーフィックコンピューティングデバイス205は、ニューロモーフィックコンピューティングデバイス205を用いて実装されたSNN内に、スパイクタイミング依存可塑性(STDP)をサポートするロジック240を含むことができる。場合によっては、STDPロジック240は、ニューロモーフィックコンピューティングデバイス205のニューロモーフィックコア(例えば、215)のそれぞれ(又は一部)に分散されて実装されてよい。生体ニューロン内のSTDPをモデル化するSTDPロジック240は、ニューロンの実装を可能にし得る。神経科学では、STDPは、特定のニューロンの出力と、特定のニューロンによって他のニューロンから受信された入力活動電位(又はスパイク)との相対的タイミングに基づいて、生体ニューロン間の接続強度を調整する生物学的プロセスを指してよい。具体的には、STDPによれば、第2のニューロンが出力スパイクを送信する直前に、第1のニューロンから第2のニューロンへの入力スパイクが発生しやすい場合、第1のニューロンから第2のニューロンへの入力又はシナプスは、出力スパイクと入力スパイクとが正相関であるとの示唆に基づいて強化されてよい。これに対して、第1のニューロンから第2のニューロンへの入力スパイクが、第2のニューロンによる出力スパイクの直後に発生しやすい場合、(言い換えれば、第1のニューロンからの着信スパイクと第2のニューロンの次の発信スパイクとの間に、より大きい遅延が観察される場合)、第1のニューロンからのこの特定の入力は、STDPに基づいていくらか弱くなることがある。入力又はシナプスは、STDPに基づいてシナプスのシナプス荷重を調整することで、より強くなるか、又はより弱くなることがある。STDPは、第1のニューロンのスパイクから第2のニューロンへのスパイクと、第2のニューロンの次の発信スパイクとの間の可能性の高い因果関係を決定することに基づいて、ニューロン間接続の強化をもたらすことができる。STDPロジック240は、あるニューロンで受信された特定のスパイクと、そのニューロンにより送信される次の発信スパイクとの平均時間差を追跡及び/又は決定することで、人工ニューロン及びシナプスがこの挙動をモデル化することを可能にし得る。実装態様によっては、STDPロジックが、受信側ニューロンの次のスパイクに対して強い相関を有する送信スパイクに関連するシナプスに報酬を与え、そうではないシナプスにペナルティを課すことができる。STDPロジック240は、ニューロモーフィックコンピューティングデバイス205に実装されたSNNに基づいて、より高性能の学習アプリケーションを促進することができる。
追加のロジックが、例示的なニューロモーフィックコンピューティングデバイス(又はニューロモーフィックコンピューティングデバイス内の個々のニューロモーフィックコア)に提供されてよい。例えば、ニューロモーフィックコンピューティングデバイスが、不応モデル(refractory modeling)ロジック245を含むことができる。不応モデルロジック245は、定義された(例えば、ニューロンの不応期パラメータに定義された)不応期の終了まで、人工ニューロンが次の出力スパイクを送信しない不応期を強制する挙動を含む人工ニューロンを実装するのに、ニューロモーフィックコアによって用いられてよい。この特徴は、フィードバックループがSNN内で起こらないようにするのに有益である場合がある。さらに、ニューロンに不応期を強制することで、本明細書で説明されるアプリケーションを含むネットワーク経路発見アプリケーションなどにおいて、STDPの有用性を高めることができる。ニューロモーフィックコンピューティングデバイス205は、排他的選択ロジック250も含むことができ、これは、STDPと関連して競合解消を行うのに用いられてよく、これにより、2つのスパイクが同時に(例えば、ニューロモーフィックコンピューティングデバイス205を用いてそのように実装されたデジタルSNNの同じ時間ステップ内で)受信された場合、同時に起こったスパイクを伝達するシナプスのうち一方のみが報酬を与えられて強化される。
例示的なニューロモーフィックコンピューティングデバイス205はさらに、ニューロモーフィックコンピューティングデバイス内の複数のニューロモーフィックコアに送信される広域信号が、ニューロモーフィックコンピューティングデバイス205内の複数の異なるコア上に実装された複数の(又は全ての)ニューロンに変化をもたらすことを可能にする神経調節シグナリングロジック255を含むことができる。複数の異なる神経調節信号が、ニューロモーフィックコンピューティングデバイスにより実装されたSNNに様々な変化をもたらすように定義されてよい。そのような信号は、(例えば、SNNを利用する特定のアプリケーション又はアルゴリズムに関連して)ニューロモーフィックコンピューティングデバイスの内部又は外部にあるコントローラ(例えば、224)によって提供されてよい。外部インタフェース260が設けられてよく、それを通じて外部システムがデータ(例えば、ニューロモーフィックコンピューティングデバイスを用いて実装されるニューロン間のスパイクメッセージを表す、ニューロモーフィックコンピューティングデバイスのルータ上のトラフィック)を受信、検査、又は別の方法でデータにアクセスすることができる。一例として、(例えば、SNNの出力レイヤ内のニューロン、又はコンシューマシステムのコントローラに接続された特定のニューロンからの)SNNの出力が、ニューロモーフィックコンピューティングデバイスの外部インタフェース260を介して外部のシステムに提供されてよい。場合によっては、ニューロモーフィックコンピューティングデバイス205が、特定の用途及びユースケースを実現するために、汎用コンピューティングデバイスを含む他のデバイスと有利にインタフェースをとって相互運用することができる。したがって、いくつかある例示的な特徴及び使用法の中でも特に、(例えば、1つ又は複数の定義された通信プロトコルを介して)1つ又は複数の他のデバイスと通信するために、場合によっては外部インタフェースロジック260が提供されてよい。
図2Bに示されるように、複数のニューロモーフィックコア(例えば、215a〜d)を相互接続するネットワークファブリックの一部を示すブロック図の200bが示されている。例えば、複数のニューロモーフィックコア(例えば、215a〜d)がメッシュ状に設けられてよく、各コアが複数のルータ(例えば、220)を含むネットワークにより相互接続されている。1つの実装態様において、各ニューロモーフィックコア(例えば、215a〜d)は、複数のルータのうち1つだけ(例えば、220)に接続されてよく、それぞれのルータが(図2Aの210で示されるように)少なくとも1つの他のルータに接続されてよい。一例として、1つの特定の実装態様では、4つのニューロモーフィックコア(例えば、215a〜d)が単一のルータ(例えば、220)に接続されてよく、また複数のルータのそれぞれが、2つ又はそれより多くの他のルータに接続されてメニーコアメッシュを形成してよく、その結果、それぞれのニューロモーフィックコアがデバイス内の他のニューロモーフィックコアのそれぞれと互いに相互接続することが可能になる。さらに、各ニューロモーフィックコアが、複数の別個のニューロンを実装するように構成されてよいので、デバイスのルータネットワークは同様に、ニューロモーフィックコンピューティングデバイスに設けられたニューロモーフィックコアのネットワークを用いて定義された潜在的に多数の(例えば、30,000個を超える)ニューロンのうち任意の2つの間に定義される、接続又は人工シナプス(若しくは単に「シナプス」)を可能にし得る。
図2Cは、ニューロモーフィックコア215の1つの例示的な実装態様の内部コンポーネントを示すブロック図の200cを示す。1つの例では、単一のニューロモーフィックコアが、ニューロモーフィックコアのアーキテクチャリソースを時間多重化方式で共有するいくつかのニューロン(例えば、1024個)を実装することができる。1つの例では、各ニューロモーフィックコア215は、本明細書で説明されるように、デジタル方式で実装された人工ニューロンの実現に関連して、演算機能を実行しルーティングすることができるプロセッサブロック265を含むことができる。各ニューロモーフィックコア215は、いくつかあるデータ及び使用法の中でも特に、内部にルーティングテーブルが格納されてよく、ニューラルネットワークのためにアクセスされてよいローカルメモリを追加的に設けることができ、コアを用いて実装された各ニューロンの各細胞体の蓄積電位が追跡されてよく、コアにより実装された各ニューロンのパラメータが記録されてよい。ニューロモーフィックコア215のコンポーネント、又はアーキテクチャリソースはさらに、他のニューロモーフィックコア上の他のニューロンにより生成された入力スパイクメッセージを受け取るための入力インタフェース275と、スパイクメッセージを他のニューロモーフィックコアにメッシュネットワークを介して送信するための出力インタフェース280とを含むことができる。場合によっては、ニューロモーフィックコア215用のルーティングロジックが、出力インタフェース280を用いて少なくとも部分的に実装されてよい。
各ニューロモーフィックコアは、人工樹状突起290及び人工細胞体295(本明細書ではそれぞれ、単に「樹状突起」及び「細胞体」と呼ばれる)を、ニューロン285ごとに実装するロジックを追加的に含むことができる。ネットワークからスパイクを受信する樹状突起290は、ハードウェア実装されたプロセスであってよい。各樹状突起の蓄積神経伝達物質量を現時間の間に受信し、各樹状突起及び細胞体の電位状態を導き出して、適切な時間に発信スパイクメッセージを生成する細胞体295は、ハードウェア実装されたプロセスであってよい。樹状突起290は、別のソース(例えば、別のニューロン)から入力を受信する接続ごとに定義されてよい。1つの実装態様において、樹状突起プロセス290は、スパイクメッセージが時間多重化方式でネットワークから連続的に到達するので、スパイクメッセージを受信して処理することができる。スパイクが受信されると、(細胞体295(及びローカルメモリ270)を用いて追跡される)ニューロンの活性化が増大し得る。ニューロンの活性化がニューロン285用に設定された閾値を超えた場合、ニューロンは、出力インタフェース280を介して、固定セットのファンアウトニューロンに伝搬されるスパイクメッセージを生成することができる。実際の生物学的ニューラルネットワークにおいてみられるように、ネットワークは、スパイクメッセージを全てのデスティネーションニューロンに配信し、それに応じて、これらのニューロンは、それぞれの活性化を一時的方式、時間依存方式などで順に更新し、場合によっては、これらのデスティネーションニューロンのいくつかの活性化を引き起こして、対応する閾値も超えて、さらなるスパイクメッセージをトリガする。
上述されたように、ニューロモーフィックコンピューティングデバイスは、スパイクを基にしたニューラルコンピューテーションのモデルを確実に実装することができる。そのようなモデルは、スパイキングニューラルネットワーク(SNN)とも呼ばれることがある。ニューロンの状態及びシナプスの状態に加えて、SNNは時間の概念も組み込んでいる。例えばSNNでは、スパイク時間以外の明示的な情報を伝達せず、スパイクの送信に対応する暗黙のソースニューロン・デスティネーションニューロン対を伝達するイベント駆動型活動電位又はスパイクを通じて通信が発生する。重み付けされたスパイク入力を動的に非線形に集積した結果として、計算が各ニューロンにおいて発生する。実装態様によっては、再帰的及び動的なフィードバックが、SNN計算モデルに組み込まれてよい。さらに、様々なネットワーク接続モデルが、いくつかある例の中でも特に、完全接続(オールツーオール)ネットワーク、フィードフォワードツリー、完全ランダムプロジェクション、「スモールワールド」ネットワークを含む様々な現実世界のネットワーク又は関係をモデル化するために採用されてよい。図2A〜図2Cの例に示されるような、ニューロモーフィックコアの同種の2次元ネットワークが、これらのネットワークモデル全てを有利にサポートすることができる。デバイスの全てのコアが接続されるので、その結果、コア内に定義される全てのニューロンも、いくつかのルータホップを通じて完全に接続される。各コアのニューロンが自身のスパイクをメッシュ内の任意の数のコアに配信して、完全に任意の連結性グラフを実現することを可能にすることで、デバイスはさらに、様々な異なるニューラルネットワークを定義する完全に構成可能なルーティングテーブルを含むことができる。
SNNをサポートすることができるシステムの改良された実装態様では、図2A〜図2Cの例に示される超大規模集積回路(VLSI)ハードウェアデバイスなど、高速で信頼性のある回路が、脳が利用するような情報処理アルゴリズムをよりプログラマブルな方式でモデル化するSNNを実装するために設けられてよい。例えば、生物の脳は、定義された特定のセットの挙動しか実装できないが、ニューロモーフィックプロセッサデバイスは、何年にもわたる開発で調整されたように、全てのニューラルパラメータを速やかに再プログラミングする能力を提供することができる。したがって、単一のニューロモーフィックプロセッサが、一片の生物脳組織により提供されるものより広範囲の挙動を実現するのに利用されてよい。この相違は、自然界で見られる神経回路のものとは明らかに異なるニューロモーフィック設計を実現したニューロモーフィックプロセッサを採用することで実現され得る。
一例として、ニューロモーフィックプロセッサは、スパイク通信ネットワーク及びSNNを実装するデバイスのニューロン機構の両方で、時間多重化計算を利用することができる。したがって、より高いニューロン密度を実現するために、プロセッサデバイスの同じ物理回路が多数のニューロンの間で共有されてよい。時間多重化を用いると、ネットワークはN個のコアをO(N)の総配線長で接続することができるのに対して、別々のポイントツーポイント配線であればO(N2)に拡大することになり、その結果、いくつかある例の中でも特に、プレーナ型で非塑性のVLSI配線技術に対応する配線リソースの著しい削減が実現される。ニューロモーフィックコアでは、高密度のメモリ割り当てを通じて時間多重化が実施されてよく、これは、例えば、スタティックランダムアクセスメモリ(SRAM)を、共有バス、アドレス復号化ロジック、及び他の多重化ロジック要素と共に用いて行われる。各ニューロンの状態は、いくつかある例示的な情報(構成及び他の情報など)の中でも特に、各ニューロンの集合シナプスの状態、その膜にかかる全ての電流及び電圧を含め、各ニューロン状態を表すデータと共にプロセッサのメモリに格納されてよい。
1つの例示的な実装態様において、より「アナログ」又は「同形」のニューロモーフィック手法を採用する他のプロセッサから転じたニューロモーフィックプロセッサは、「デジタル」の実装態様を採用することができる。例えば、デジタルの実装態様は、デジタルの加算器回路及び乗算器回路を用いてシナプス電流の集積を実装することができるが、これは、ニューロンがシナプス電荷を自身の脂質膜に蓄積する方法と電気的に類似の方式で、キャパシタに電荷を蓄積するアナログの同形ニューロモーフィック手法とは対照的である。蓄積されたシナプス電荷は、例えば、対応するコアのローカルメモリ内のニューロンごとに格納されてよい。さらに、例示的なデジタルニューロモーフィックプロセッサのアーキテクチャレベルでは、信頼性のある決定的な動作が、コアのネットワーク全体にわたって時間を同期することで実現されてよく、その結果、同じ初期条件及び構成を与えられると、設計の任意の2つの実行が同一の結果をもたらすことになる。個々のコアが可能な限り高速且つ自由に動作することを可能にするために、非同期性が回路レベルで維持されてよいが、システムレベルでは決定性を維持する。したがって、一時変数としての時間の概念は、ニューラルコンピューテーションでは取り除かれてよく、ハードウェアが計算を実行するのに利用した「実測」時間からこれを分離する。したがって、実装態様によっては、別々の時間間隔でニューロモーフィックコアを全体的に同期させる時間同期化メカニズムが設けられてよい。この同期メカニズムは、実行時間とニューロモーフィックシステムがモデル化する生物学的時間との間に相違がある状態で、回路が許す限り高速に、システムがニューラルコンピューテーションを完了することを可能にする。
動作にあたっては、ニューロモーフィックメッシュデバイスは、全てのニューロモーフィックコアが不活性となるアイドル状態で開始することができる。各コアが自身のニューロンを通じて非同期にサイクル動作するので、全てのデスティネーションニューロンを含む適切なデスティネーションコアにメッシュ相互接続がルーティングするスパイクメッセージを、各コアは生成する。単一のニューロモーフィックコアにおける複数のニューロンの実装は時間多重化され得るので、複数のニューロンを含む全てのスパイクが、対応するコアの共有リソースを用いて処理され検討され得る時間ステップが定義されてよい。各コアが、それぞれの時間ステップの間に自身のニューロンの処理を終了するので、コアは、実装態様によっては、同期メッセージを用いる隣接コアと(例えば、ハンドシェイクを用いて)通信して、全てのスパイクメッセージのメッシュをインフライトでフラッシュすることができ、全てのスパイクがこの時間ステップの間に処理されたと、コアが安全に判定することが可能になる。その時点で、全てのコアが同期しているとみなされてよく、これらのコアが、自身の時間ステップを進め、次の時間ステップを開始するために初期状態に戻ることを可能にする。
この文脈を仮定すると、上述されたように、相互接続されたニューロモーフィックコアのメッシュ210を実装するデバイス(例えば、205)が提供されてよく、場合によっては複数の人工ニューロンを実装するコアは、SNNを実装するために相互接続されることが可能である。各ニューロモーフィックコア(例えば、215)は、2つの緩く結合された非同期プロセスを提供することができる。すなわち、ネットワークからスパイクを受信し、これらのスパイクを今後の適切な時間において適切なデスティネーション樹状突起コンパートメントに適用する入力樹状突起プロセス(例えば、290)と、各樹状突起コンパートメントの蓄積神経伝達物質量を現時間に間に受信し、各樹状突起及び細胞体の膜電位状態を導き出し、適切な時間に(例えば、細胞体の閾値電位に達したときに)発信スパイクメッセージを生成する出力細胞体プロセス(例えば、295)とである。ここで用いられる樹状突起及び細胞体の名称は、生物学的見地から、単にこれらの機能の役割を模倣しているにすぎず、文字通りに解釈しすぎるべきではないことに留意されたい。
スパイクメッセージは、コア内の樹状突起の特定のディストリビューションセットを識別することができる。ディストリビューションセットの各要素は、モデル化されたニューロンのシナプスを表すことができ、場合によってはいくつかある属性の中でも特に、樹状突起数、接続強度(例えば、荷重W)、遅延オフセットD、シナプスの種類で定義される。場合によっては、今後の時間ステップT+Diにおいて処理するためにスケジューリングされた、デスティネーション樹状突起δiの総神経伝達物質量(WeightSum)に、各荷重Wiが加えられてよい。樹状突起プロセスは、入力スパイクを処理しないが、全ての樹状突起δiを連続的に順次処理することができ、総蓄積神経伝達物質量を時間Tの間に細胞体段階に伝達する。細胞体プロセスは、各時間ステップにおいて、細胞体の特定の樹状突起コンパートメントに位置付けられたシナプスを介して受信された、総スパイク荷重の蓄積(WeightSum)を受信する。最も簡単な場合には、各樹状突起コンパートメントは、単一のニューロン細胞体にマッピングする。他の例では、ニューロモーフィックコアメッシュアーキテクチャはさらに、マルチコンパートメントニューロンモデルをサポートすることができる。コアメモリは、細胞体の構成された属性及び細胞体の状態、細胞体での総蓄積電位などを格納することができる。場合によっては、シナプス入力応答が、いくつかある例示的な特徴の中でも特に、単一時間ステップ電流インパルスを有するコア、線形減衰を伴う低状態変数分解能、ゼロ時間軸索遅延でモデル化されてよい。場合によっては、コアのニューロンモデルがより複雑になることがあり、いくつかある例示的な特徴の中でも特に、指数関数的な減衰を伴う高分解能の状態変数、イオンチャネル種別ごとの複数の静止電位、より高度なスパイキングダイナミクス向けの追加のニューロン状態変数、ホメオスタシス効果を実装する動的閾値、並びに、正確なバーストモデリング及び大きい軸索遅延用の複数の出力スパイクタイマ状態を実装することがある。1つの例において、ニューロモーフィックコアのそれぞれによって実装された細胞体プロセスは、電流を基にした簡単なリーキー積分発火型(LIF)ニューロンモデルを実装することができる。
上記の例において導入されたようなニューロモーフィックコンピューティングデバイスが、スパースコーディング問題の階層を効果的に解決することができるスパイキングニューラルネットワークアーキテクチャの抽象概念を定義するために提供されてよい。上述のように、このアーキテクチャにおける基本計算単位はニューロンであってよく、またニューロンはシナプスによって接続されてよく、これらによって、ニューラルネットワークのトポロジが定義される。シナプスは指向性があり、シナプスが存在するならば、ニューロンは互いに通信することができる。図3Aは、簡単な例示的なニューラルネットワークを示す簡略ブロック図の300aであり、シナプスで接続されたニューロン305、310、315、320が含まれる。シナプスは、スパイクメッセージがニューロン間で送信されることを可能にする。例えば、ニューロン305は、ニューロン315、320により生成されたスパイクメッセージを受信することができる。ニューロン305が、自身が接続されているその他のニューロンからスパイクメッセージを受信すると、ニューロン305の電位が、ニューロン305用に定義された(例えば、ニューロン305の細胞体プロセスに関して定義された)閾値を超え、これによりニューロン305自身がスパイクメッセージを生成、送信することになり得る。言及されたように、シナプスには指向性があってよい。場合によっては、ネットワーク及び対応するシナプスは、いくつかある例の中でも特に、あるニューロン(例えば、315)がその他のニューロンの一部(例えば、305)とだけ受信又は送信するように定義されてよく、ニューロンを他のニューロンと双方向に接続して(例えば、ニューロン315と320との間)フィードバックループを作成するシナプスが定義されてよい。
例示的なニューロモーフィックコンピューティングデバイスが、リーキー積分発火型ニューロン及びコンダクタンスを基にしたシナプスを採用することができる。したがって、ネットワークのダイナミクスは、各ニューロンにおける状態変数の進展によって推進されてよい。1つの例において、各ニューロンは2種類の状態変数、すなわち1つの膜電位v(t)と、1つ又は複数の樹状突起電流u1(t)、…us(t)とを有する。個々のニューロンのダイナミクスが、以下の連続時間微分方程式(1)〜(3)によって定義されてよい。
方程式(1)は、樹状突起電流のダイナミクスを示す。各樹状突起電流の変数は、それぞれの減衰時定数τk sに従って、時間と共に指数関数的に減衰するように定義されてよい。樹状突起電流は、(方程式(2)に示されるように)膜電位の集積を制御するために、線形に加算されてよい。樹状突起電流と同様に、膜電位も別個の膜電位時定数τmで指数関数的な減衰の影響を受けることがある。方程式(3)は、ニューロンのスパイキングイベントを定義することができる。ニューロンの膜電位がニューロン用に定義された特定の閾値電位θに達した場合、ニューロンは(例えば、その細胞体プロセスを通じて)膜電位をゼロにリセットし、対応するシナプスにより接続された隣接ニューロンにスパイクを送出する。各ニューロンの樹状突起プロセスは、スパイク到着によって樹状突起電流に変化がもたらされるように定義されてよい。そのようなニューロン間の相互作用が、ネットワークの複雑なダイナミクスをもたらす。スパイクがシナプスに沿って送信され、着信シナプスは、例えば樹状突起コンパートメントを用いて、1つの樹状突起電流変数と関連するように定義されてよい。そのような実装態様では、スパイク到着ごとに、1つの樹状突起電流uk(t)だけが変更される。この変化は、方程式(4)で定義されるように、シナプス荷重Wijの大きさに基づいて、即時ジャンプとしてuk(t)に現れるように定義されてよい。
したがって実装態様によっては、ニューロンの状態変数に加えて、いくつかの他の構成可能なパラメータが存在し、これらのパラメータは、個々の樹状突起コンパートメントの時定数τs 1、…、τs s、各ニューロン用の単一のτm、θ、Ibias、各シナプス用のニューロンjからiまでの構成可能な荷重値wijを含み、特定のネットワークをモデル化するように定義され構成されてよい。
例えば図3Bは、ネットワークにおけるニューロンの個々の樹状突起間のシナプス結合と、これらのニューロン及びシナプス用に定義され得るパラメータを示している一例を示す。一例として図3Bには、例示的なニューロモーフィックコンピューティングデバイスのコアにより実装されたニューロン325、330、335が、ニューロン325、330、335を用いて実装されたニューラルネットワーク内の相互接続のために(例えば、ルーティングテーブルを用いて)定義されたシナプスと共に示されている。各ニューロンには、1つ又は複数の樹状突起(プロセス)(例えば、340、360、375、380)と、それぞれの細胞体(プロセス)(例えば、345、365、385)とが含まれてよい。それぞれのニューロンの樹状突起のそれぞれで受信されたスパイクメッセージは、細胞体の活性化電位に寄与することができ、細胞体固有の電位閾値に達すると、細胞体がスパイクメッセージを発火する。シナプスによって2つのニューロンが接続される。シナプスは、送信側ニューロンの細胞体を、受信側ニューロンの複数の樹状突起のうち1つに効果的に接続することができる。さらに、各シナプスには、それぞれの荷重(例えば、350、355,370)が割り当てられてよい。図3Bの例では、第1の荷重350を有するシナプスが、ニューロン325の細胞体345を、ニューロン330の樹状突起360に接続することができる。ニューロン325の細胞体345はさらに、(場合によっては異なる荷重355を有する)別のシナプスを介してニューロン380に接続することができる。ニューロン330の細胞体365も、それぞれのシナプス370を介してニューロン380に接続することができる。場合によっては、複数のニューロンが、特定のニューロンの同じ樹状突起において、特定のニューロンに接続することができる。そのような例では、この1つの樹状突起用に定義されたパラメータが、接続されたニューロンのそれぞれからの着信スパイクメッセージの作用を決定する。他の場合では、図3Bなどに示されるように、異なるニューロン(例えば、325、330)が、同じニューロン(例えば、335)に、異なる樹状突起(例えばそれぞれ、375、380)で接続することができ、(これらの樹状突起(例えば、375、380)のそれぞれに定義された)異なるパラメータが、これらの異なるニューロン(例えば、325、330)のそれぞれから到達するそれぞれのスパイクに作用することを可能にする。同様に、これらのパラメータが、ネットワークに定義される様々なニューロン(例えば、325、330、335)のそれぞれの細胞体(例えば、345、365、385)ごとに定義されてよく、これらのパラメータが同様に、いくつかある例の中でも特に、ニューロモーフィックコンピューティングデバイスを用いて実装されたニューラルネットワークの全体的なコンフィギュアビリティに寄与することを可能にする。
要約すると、ニューロンパラメータは、シナプス減衰時定数τs、バイアス電流Ib、発火電位閾値θ、及びニューロンからニューロンへの(すなわち、ニューロンjからニューロンiへの)シナプス荷重wijといった例を含むことができる。これらのパラメータは、例えば、実際のネットワーク、マトリックス、又は他のエンティティをモデル化するようにネットワークを構成するために、ニューラルネットワークのプログラマによって設定されてよい。さらに、ニューロンの状態変数が、時間で変動する電流u(t)、及び電位、つまり電圧v(t)を含むように定義されてよく、対応する通常の微分方程式で表されてよい。
上述されたように、方程式(1)〜(4)がスパイキングニューラルネットワークのダイナミクスを継続時間で定義する。デジタルニューロモーフィックコンピューティングデバイスでは、ニューロモーフィックコアのネットワークが(図2A〜図2Cに関連して示され論じられたように)設けられており、プロセッサリソースを有するニューロモーフィックコア及びロジックのそれぞれは、別々の時間ステップを用いてSNNダイナミクスを模倣するなどによる一次技術を用いて、継続的なネットワークダイナミクスを解決するように実行可能である。1つの例において、それぞれのコアにおいて個々のニューロンの時間ステップの更新を調整するために、仮想のグローバルクロックがニューロモーフィックコンピューティングデバイスに設けられている。時間ステップの中で、コアのネットワークにより実装された全てのニューロンは(例えば、時間多重化方式で)それぞれの状態変数を調整することができ、時間ステップごとに1度だけ調整することになる。さらに、SNN内のニューロンにより生成された各スパイクメッセージは、対応する時間ステップ内に伝達されることが保証されてよい。そのようなデジタル近似は、以下のように実現されてよい。時間t1において状態変数の値が与えられると、固定時間間隔Δt後のt2(t2=t1+Δt)における状態変数の値は、方程式(5)〜(8)を用いて求めることができる。
要約すると、所与のニューロンのパラメータとSNN内の他のニューロンを所与のニューロンに接続する様々なシナプスの荷重とに基づいて、スパイクメッセージがニューロンにより受信されると、各スパイクを通じてもたらされた電流は、所与のニューロンの膜電位を、そのニューロン用に設定されたスパイキング閾値が満たされるまで増加させることができ、これにより、ニューロンはSNN内の1つ又は複数の他の隣接ニューロンに発信スパイクメッセージを送信することになる。STDPが特定のSNN内に適用されるように構成されている場合(又は、STDP内の特定のシナプスだけに適用されるように構成されている場合)、スパイクメッセージが送信される対応するシナプスのシナプス荷重に、様々なスパイクメッセージがどれほど影響を与えるかを規定する追加のパラメータが提供されてよい。1つのモデルでは、シナプス前ニューロン又はシナプス後ニューロンにスパイクが存在するときにはいつでも、関連シナプスでの荷重が方程式(9)に従って変更されるように、ニューロモーフィックコンピューティングデバイス内のSTDPが実装されてよい。
ここで、Δwはシナプス前ニューロンとシナプス後ニューロンとの間のシナプスに適用される荷重の変化分であり、tpostはシナプス後ニューロンのスパイクの最後の時間であり、tpreはシナプス前ニューロンのスパイクの最後の時間であり、δ1及びδ2は学習のレート及び方向を設定する調整可能なパラメータであり、dは、シナプス前スパイク及びシナプス後スパイクを共起させることで、シナプス荷重に変化がもたらされ得る時間ウィンドウを設定する別の調整可能なパラメータである。tpost−tpreが方程式(9)の2つの基準のどちらも満たさない場合、荷重は変更されない(すなわち、Δw=0)。
実装態様によっては、例示的なニューロモーフィックコンピューティングデバイスに実装されたSTDPが、ニューロモーフィックコンピューティングデバイスを用いて実装されたSNNを用いる様々なアプリケーションを実行するのに活用されてよい。例えば、図4A〜図4Bの例では、例示的なSNNの部分400が図4Aに示されており、この部分は、特定のグラフ又はネットワークトポロジに従って接続された複数の人工ニューロン(例えば、401〜406)を含むように定義され実装される。各ニューロンは、ネットワークトポロジ内のノードに対応することができる。さらに、例示的なSNNの少なくともこの部分は、隣接ニューロン間の各接続が双方向であるように定義され実装されてよく、これにより各接続は、第1のニューロン(例えば、401)から第2のニューロン(例えば、402)へのスパイクをサポートするシナプス(例えば、407)と、第2のニューロン(例えば、402)から第1のニューロン(例えば、401)へのスパイクをサポートするシナプス(例えば、408)との両方で実装されるなどである。双方向に接続されたニューロンを有し、STDPをサポートするSNNでは、図4Aの例に見られるように、最初に任意のスパイクが受信側ニューロンによって次のスパイクを引き起こすことを可能にするニューロン(例えば、401〜406)及びシナプス(例えば、407、408など)が(例えば、スパイキング閾値及びシナプス荷重を用いて)構成されてよい。そのようなSNNは、単一のニューロンでの単一の活性化を可能にすることができ、それに応じて、スパイクの波、チェーン、又はシーケンスがSNNのこの部分(又は全体)にわたって送信されることになる。例えば、表現405では、スパイクメッセージのシーケンス415が、ニューロン406から始まり、ニューロン405、404、403、402、及び401に(この順序で)伝搬しながら送信されてよい。スパイクメッセージのシーケンス415は、(例えば、コントローラ又は別のニューロンなどから受信された)電流又はスパイクメッセージなどの信号(例えば、420)により活性化されたニューロンのうち1つ(例えば、406)から生じてよい。
図4A〜図4Bの例を続けると、ニューロモーフィックコンピューティングデバイスは、STDPをモデル化するSNNの実装をサポートすることができる。実装態様によっては、STDPが所与のSNNにどのように実装されるかを決定する属性を、SNNのプログラマがプログラムで定義することができる。例えば、STDP挙動が、方程式(9)の例で利用されるパラメータδ1、δ2、及びdのうち1つ又は複数を設定することで定義されてよい。図4Aの例において、ブロック図の410に示されるように、スパイクメッセージのシーケンス415においてスパイクを伝えたこれらのシナプスのシナプス荷重が減少し、このシーケンスでスパイクメッセージを伝えなかったその他のシナプスが、410に表されているように、自身のそれぞれのシナプス荷重を増加させることになるように、SNNのSTDPモデリングが定義されてよい。例えばこの挙動は、δ1を負の値に、δ2を正の値に設定することで実現することができる。このSNNにおけるSTDPモデリングのそのような構成は、入力スパイクと出力スパイクの負相関に基づいて増加するシナプス荷重を提供することができる。STDPは、そのような構成を用いて、例示的なSNNのこの部分にある任意の2つのニューロンを接続する2つの方向のうち1つに、荷重の非対称性を引き起こすように活用されてよい。したがって、スパイクメッセージの初期シーケンス415をトリガしたニューロン(例えば、406)の上流にあるニューロン(例えば、401〜405)でスパイク又は活性化が発生した場合、荷重の非対称性は、スパイクメッセージの初期シーケンス415の方向と逆方向にチェーンをさかのぼるスパイクのシーケンスを伝搬するために、送信側ニューロンをバイアスすることができる。
図4Bを参照すると、図4Aに導入されたSTDPメカニズムの1つの例示的な実装態様を示すブロック図のセットが示されている。1つの例において、シナプス前スパイクが、シナプス後スパイクを(例えば、別のニューロンから)受信するそのニューロンの時間の1単位(例えば、時間ステップ1つ分、1msなど)内に、ニューロンによりそのシナプスで送信される場合、シナプスが、所与のシナプスのシナプス荷重を増えるように変化させるように、STDP学習ルールが特定のSNNのために構成されてよい。言い換えれば、SNNは、シナプス前スパイクと先行するシナプス後スパイクの相関を識別して、シナプス後スパイクに続く相関のあるシナプス前スパイクの荷重を増加させ、図4Aに示されるSTDP効果を実現するように構成されてよい。図4Bは、これがSNN内でどのように展開できるかについての一例を示す。例えば、時間t=0で、ニューロン406が活性化されてよく、これによって、ニューロン406がそのアウトバウンドシナプス(435、440)でスパイクをニューロン405及び425に送信することになる。ニューロン405及び425で受信されたスパイクにより、ニューロン405及び425はt=1で、自身のアウトバウンドシナプス(例えば、445、450、455、460)の全てにスパイクを順に送信することになり得る。t=1で、ニューロン405及び425は、ニューロン406への双方向接続によって、(それぞれシナプス445、460で)スパイクをニューロン406へエコーバックすることに留意されたい。t=1で、ニューロン405、425でシナプス445、460により送信されたシナプス前スパイクが、t=0で、ニューロン406により送信されたシナプス後スパイクに続いたという点で、このSNNのSTDPルールはシナプス445、460に満たされており、これらのシナプスのそれぞれの荷重は(例えば、Δwの値だけ)増加してよい。スパイク波は、t=1で、ニューロン404及び430がニューロン405及び425から受信されたスパイクに応答し、t=2で、シナプス前スパイクがニューロン404及び430によってシナプス465、470をそれぞれ用いて送信されて、t=2で継続することができる。ニューロン406(及び例示的なSNNの少なくともこの部分のニューロン全て)で強制された、先行するアウトバウンドスパイクの送信に続く定められた期間の間にニューロンが任意の次のスパイクを送信することを防ぐ不応期が与えられると、ニューロン406は、t=1でニューロン405及び425によりエコーバックされたスパイクに応答して、t=2で別のスパイクを送信することはない。さらに、t=2で、ニューロン404および430によりシナプス465、470でニューロン405、425に送信されたシナプス前スパイクが、t=1で、ニューロン405、425により送信されたシナプス後スパイクに続いたので、シナプス465、470のシナプス荷重は同様に、STDP学習ルールに基づいて調整されてよく、結果として、図の480により表される強化型学習後の荷重を有するSNNになる。
図4A〜図4Bに示される例に導入された原理を基に、ネットワークトポロジをモデル化するSNNに適用されるような、図4A〜図4Bの例に導入された原理及びSTDP学習ルールを利用するネットワークトポロジ内の任意の2つのノード間で、最短経路又は最も効率のよい経路が決定されてよい。SNNが、(本明細書で説明されるなどの)例示的なニューロモーフィックコンピューティングデバイス上に構成、実装され、いくつかある例の中でも特に、通常のネットワーク(例えば、リング型、格子型など)、ランダムネットワーク、スモールワールドネットワーク、スケールフリーネットワーク、階層ネットワークなどの任意の構造を備えた複合ネットワークをモデル化してよい。複合ネットワークは、様々なユースケース及び例に関連して存在してよい。表1は、現実世界のネットワーク及びそれぞれのネットワーク構造の例を提供しており、これらは、例示的なSNNを用いて実装され得る例示的なネットワークの中に(場合によっては多数の他の例の中に)あってよい。
上述されたこれらの例示的なネットワークを含む、ネットワーク内の任意の2つのノード間の経路を決定することが望ましい場合がある。さらに、2つのノード間の最短経路、最も効率のよい経路、又は最も好ましい経路を計算することが望ましい場合がある。大きな複合ネットワークでは、そのような経路を決定することが、重大且つ困難な問題である場合がある。例えば、数十万又は数百万のノードを有するソーシャルネットワークにおいて、2人の人物間の最短経路を決定することが望ましい場合がある。別の例として、いくつかある例の中でも特に、物理環境がネットワーク(例えば、2次元又は3次元物理空間の格子グリッドネットワーク)としてモデル化されてよく、最短経路が(例えば、ロボット又はドローンが用いるために)決定されてよい。
図5A〜図5Gは、SNNによりモデル化されたネットワークにおいて任意の2つのノード間の最短経路を決定するために、例示的なSNNのSTDPを利用する一例を示す簡略ブロック図、500a〜gを示す。図5Aに示されるように、図5B〜図5Gの例に図式的に表された各接続要素(例えば、502)が、SNN内の(例えば、2つの逆方向性の人工シナプスを通じて実装された)ニューロン間に定められた双方向接続を表す。図5Bのブロック図、500bは、10個の双方向に接続されたニューロンを含む簡略化されたSNNを示しており、各ニューロンは、特定のネットワーク内のそれぞれのノードを表す。特定のネットワーク内の隣接ノード又はノード間接続が、SNN内のノードをモデル化する人工ニューロン間の接続又はシナプスを通じてモデル化されてよい。特定のネットワーク内の任意の2つのノード間の最短経路を求めるために、SNNは、図4Aについて上述された構成に類似したSTDPをモデル化するように構成されてよい。
さらに、SNNは、SNN内のシナプスの各荷重と、各ニューロンのスパイキング閾値とが等しくなるように初期化されてよい。これにより、ニューロンで受信された任意のスパイクが、それに応じて、ニューロンにアウトバウンドスパイクを送信させることを可能にすることができる。さらに、SNNは、各ニューロンが不応期に従ってスパイクを送信するために(ニューロモーフィックコンピューティングデバイス及びそれを構成するニューロモーフィックコアにより)モデル化されるように構成されてよい。具体的には、最後のアウトバウンドスパイクの送信に続くある期間(すなわち、不応期)に、アウトバウンドスパイクの送信及び/又は着信スパイクの処理が許されないように、例示的なSNN内の各ニューロンが構成されてよい。図5Cを参照すると、SNN内の複数のニューロンのうち特定の1つ(例えば、ニューロン6)が、(例えば、ニューロンに入力を与えることで、又はニューロンを(ニューロモーフィックコンピューティングデバイスの内部又は外部のコントローラを通じて)外部から駆動することで)活性化505されてよく、これにより、ニューロンが自身の隣接ニューロン(例えば、ニューロン4、8、及び9)にスパイクを送信することになる。実際に図5Cの例では、ニューロン6が(505で)活性化されてよく、第1の時間又は時間ステップ(すなわち、t=0)において、ニューロン6をニューロン4、8、及び9にそれぞれ接続するアウトバウンドシナプスで、スパイクメッセージをニューロン4、8、及び9に送信することになる。
SNNの初期構成が与えられると、t=0でニューロン6からニューロン4、8、及び9に送信されたスパイクによって、ニューロン4、8、及び9はこれらのアウトバウンドシナプスの全てにスパイクを送信することになる。この例では、ニューロン4及び8が、時間t=1でそれぞれニューロン2及び7にスパイクを送信することになる。しかし、ニューロン4、8、及び9もそれぞれ、ニューロン6へのアウトバウンドシナプス結合を持っているので、図4Bで論じて示した例に見られるように、これらのニューロンもt=1でニューロン6にスパイクを返信することになる。これらの「エコー」スパイクは、この例に関連して論じられる概念を表す際の説明を分かりやすくするために、図5Cの説明図には含まれていない。その代わり、図5Cは、単一のニューロン(例えば、ニューロン6)の活性化によって、スパイクの波がそれに応じて、活性化されたニューロンから外側にネットワーク全体にわたって伝搬することになり得るように、SNNがどのように構成され得るかを示す。スパイク波のそのような外側への伝搬には、t=1でニューロン4、8、及び9により送信されたスパイクだけでなく、t=2で応答スパイクをニューロン1及び5に送信するニューロン2及び7、t=3で応答スパイクをニューロン3に送信するニューロン1及び5、並びに、t=4で応答スパイクをニューロン10に送信するニューロン3も含まれてよい。
図4A〜図4Bで論じられた例に見られるように、ニューロンのインバウンドシナプスの荷重が、そのニューロンでのシナプス後スパイクの送信に続く時間ウィンドウ(例えば、単一の時間ステップ)内で、(隣接ニューロンからの)シナプス前スパイクの受信に応答して変化するように、STDPルールが図5B〜図5GのSNN内で定義されてよい。受信側ニューロン(例えば、ニューロン4)が、すぐ前を先行するスパイクが(例えば、t=0で)送信されたニューロン(例えば、ニューロン6)に(例えば、t=1で)返信することになるエコースパイクが与えられると、例示的なSNNのSTDPルールが、図4Bに関連して示され説明された例に類似して、活性化されたニューロン(例えば、ニューロン6)から外側に進む波と逆方向に、(ニューロン間の双方向接続において)シナプスの強化をもたらすことができる。図5Dは、例示的なSNN内の個々のシナプスの表現を示しており、これらのシナプスは、図5Cに示されたスパイク波に基づくSTDPに従って強化された荷重を有する。図5Dの例において結果として得られたシナプス荷重の強化は、エコースパイクによりトリガされてよく、さらに、例示的なSNNのニューロンにおいてモデル化された不応期の強制に基づいて実現されてよい。例えば、図5Cに示されるように、ニューロン2は、時間t=1でニューロン4からスパイクを受信することができ、ニューロン2は次に、スパイク波を伝搬するためにニューロン1にスパイクを送信することができ、スパイク波の伝搬から上流の方向にニューロン4へエコースパイクを送信することもできる(全て時間t=2で実行)。ニューロン4が、(例えば、t=1でニューロン2に)スパイクを送信するニューロン4から1つの時間ステップ隔てられたエコースパイクを受信すると、追加の例の中で、ニューロン4によって、ニューロン2からニューロン4へのシナプスの荷重が強化されることになる。実際に、代替メカニズム及びSTDPルールが、双方向に接続されたSNNにおいて同じ効果を実現するのに利用されてよい。
上述されたように、ニューロンは自身のシナプスのシナプス荷重を、シナプスで受信された及び/又は送信されたスパイクに基づいて強化する(又はその代わりに弱くする)ように構成されてよい。SNNの実装態様によっては、ニューロンは、所与の時間ステップ又は他の単位間隔において、自身のシナプスのうち1つだけを強化してよい。ニューロンは、複数のシナプス前スパイクを同時に受信するニューロンに関する稀なケースに対処するために、そのようなルールを強制するように構成されてよく、それぞれが、(特定のSTDPルールに応じて、受信されたスパイクに続く、又はそれに先行する)シナプス後スパイクとのこれらの受信されたスパイクの対応に基づいて、STDPルールを満たすのに十分である。例えば、図5Cに示されるように、単一のニューロン(例えば、ニューロン3)が、複数のニューロンのうち1つだけ(例えば、ニューロン6)を活性化することで生じたスパイクの波において、2つの(又はそれより多くの)スパイクを同時に受信することができる。例によっては、ニューロモーフィックコンピューティングデバイスにより実装されたニューロンが、受信側ニューロンにより送信された発信スパイクメッセージに対応するように、同時に受信されたスパイクメッセージのうち1つだけをニューロンが(例えば、任意で)選択するように排他的選択を強制することでSTDPを実装することができ、複数のスパイクのうち選択されていない1つが無視されることにつながり、その結果、複数の着信シナプス経路のうち1つだけの荷重がSTDPに従って調整されることになる。したがって、図5Dの例に示されるように、ニューロン3から(ニューロン5へ)のシナプスのみが、図5Cに示される例示的なスパイク波に応答して強化される。
機械学習の用語では、図5Cの例は、特定のネットワークトポグラフィをモデル化する例示的なSNNのトレーニング段階に対応することができ、図5Dは、結果として得られるトレーニングされたSNNを反映することができる。双方向に接続されたニューロンのシナプス荷重が、SNNに定義されたSTDPルールに従って、複数のニューロンのうち1つ(例えば、ニューロン6)により生成されたスパイク波の方向と逆方向に強化されると、調整されたシナプス荷重は、複数のニューロンのうちいずれか1つから、スパイク波が生じたニューロン(例えば、ニューロン6)への最短経路を決定するのに活用されてよい。実装態様によっては、図5Eに示されるように、SNN内のニューロンの1つ又は複数の他のパラメータを調整することで、SNNはさらに、ネットワークトラバーサル計算を容易にするように拡大されてよい。例えば、ニューロモーフィックコンピューティングデバイス(及び/又はSNNにニューロンを実装するニューロモーフィックコアのそれぞれ)に、SNN内のニューロンの全て(又は、ニューロンの特定のサブセット)に変更を適用するように、全体的に命令するために神経調節信号(例えば、510)が送信されてよい。例えば図5Eでは、(図5C〜図5Dに導入されたように)SNN内の初期スパイク波及び結果として得られるシナプス荷重の調整に続いて神経調節信号510が送信されてよく、これにより、シナプス前スパイクが、増加した荷重を有するシナプスのうち1つに送信された場合、単一のシナプス前スパイクがシナプス後スパイクだけを確実にトリガできる値に、各ニューロンの膜電位又はスパイキング閾値電位(例えば、θ)が増加することになる。他のニューロンパラメータはまた(又は代替的に)、特定の広域神経調節信号に基づいて調整され、SNN内の特定のニューロン(例えば、ニューロン6)と任意の他のニューロンとの間の経路を決定する際に使用するために、SNNをトレーニング又は準備するのに役立つことができる。
図5Fを参照すると、SNNの表現が、STDPルールに基づき、またニューロン6により生成されたスパイク波に応答して調整されたシナプス荷重で示されている。図5Fの例で表されたSNNは、神経調節信号を受信し処理した後のSNNも反映することができ、これにより、(図5Cにおいて)スパイク波の伝搬中に用いられた値を超えてスパイキング閾値電位が増加した。初期スパイク波を生成する特定のニューロン(例えば、ニューロン6)の活性化は、SNNを用いて決定される特定のネットワークトラバーサル経路内のデスティネーションノードとして、特定のニューロンを指定することに基づいてよい。さらに、SNN内の複数のニューロンのうち別の1つが、ネットワーク内のソースノードに対応して選択されてよく、ソースノードがネットワークトラバーサル経路の開始を表し、デスティネーションノードが終了を表す。図5Fの例では、ニューロン1が選択され、対応するノードをソースノードに指定して問題ステートメントを定義する。すなわち、ニューロン1により表されるノードから(この例では)ニューロン6により表されるデスティネーションノードまでの、特定のネットワークにおける経路を決定する。他の処理では、複数のニューロンのうち異なる1つ(すなわち、ニューロン6以外)がデスティネーションに指定されてよく、他のニューロンがソースに指定されるなどであってよい。(例えば、初期スパイク波及び対応するSTDPの調整、並びに(図5C〜図5Eに論じられたような)SNN内のスパイキング閾値の増加を通じて)SNNをトレーニングした後にソースニューロン(例えば、ニューロン1)を指定するために、指定されたソースニューロンが、(例えば、図5Cにおける)デスティネーションニューロンの活性化(例えば、510)と同様の方式で(例えば、515で)活性化されてよい。シナプス荷重及びニューロンのスパイキング閾値電位の一部に変化を与えると、ソースニューロン(例えば、ニューロン1)の活性化515の効果がさらにもっと限定されることがある。例えば、図5Fの例に示されるように、ニューロン1がSNNのトレーニングの後に活性化されてよく、これにより、スパイクが時間t=0でニューロン1からニューロン2に送信されることになる。ニューロン1によってスパイクが他の隣接ニューロン(例えば、ニューロン3)に送信されてもよいが、SNN全体にわたって適用される閾値電位の増加に起因して、ニューロン1をこれらの他の隣接ニューロン(例えば、ニューロン3)に接続するシナプスが、STDPに従ってトレーニング中に強化されなかった場合、スパイクは、受信側ニューロンの新たに増加したスパイキング閾値電位を満たすには不十分であり、スパイクはこれ以上先に伝搬することはないであろう。実際に、図5Fの表現では、ソースニューロンの活性化515に起因するスパイクのチェーンにおいて次のスパイクをトリガするのに作用するスパイクだけが示されている(とはいえ実際には、示されていないその他のスパイクが依然として、図5Fに示されるフロー内で送信されることを理解されたい)。
図5Fの例を続けると、時間t=1では、(例えば、図5C〜図5Dに示されるように)ニューロン1からニューロン2へのシナプスの荷重がトレーニング中に強化されたと仮定すると、ニューロン1からのスパイクの受信によってニューロン2も発火し、自身の隣接ニューロンにスパイクを送信することになる。例えば、時間t=1において、ニューロン2はニューロン1及び4にスパイクを送信できるが、ニューロン2とニューロン4を接続するシナプスだけが(例えば、t=2でニューロン4により)シナプス後スパイクを引き起こすのに十分に(STDPを通じて)強化されている。この例では、時間t=2でニューロン4がニューロン2及び6にスパイクを送信し、ニューロン2へのスパイクが「弱い」シナプスで送信され、ニューロン6(デスティネーションニューロン)へのスパイクが「強化された」シナプスで送信される。ニューロン6に送信されるスパイクは、これによりニューロン6が自身の隣接ニューロンに追加のスパイクを送信することになるのに十分であってよいが、SNNのトレーニングが、デスティネーションであるニューロン6に基づいていたため、また双方向のSNN内のシナプスがニューロン6に「向かう」方向又はニューロン6への方向にだけ強化されたため、ニューロン6のアウトバウンドシナプスはどれもトレーニング中に強化されておらず、この例においてニューロン1の活性化515を通じて始まったスパイクチェーンの伝搬は、ニューロン6で終了する。
この例を続けると、ソースニューロン1からニューロン2、ニューロン4を経て、デスティネーションニューロン6へのスパイクチェーンは、ソースニューロン1とデスティネーションニューロン6の間の最短経路を表すと解釈されてよい。監視ロジック及び/又は報告ロジックが、スパイクのこのチェーンで送信されるスパイクの順序及びソースを識別するのに提供されてよい。例えば、SNNのトレーニング後にニューロン1を活性化することで生じるスパイクメッセージを識別して、指定されたデスティネーションノードまでのネットワークを横断する最短経路を決定するニューロモーフィックコンピューティングデバイスのルータが、1つ又は複数のニューロモーフィックコア間(又は内)のトラフィックを識別するために監視されてよい。(ニューロモーフィックコンピューティングデバイスの内部又は外部の)コントローラユーティリティが、SNN内のトラフィックの監視と関連してよく、これにより監視が、SNNのトレーニング及び指定されたソースニューロンの活性化(及びトレーニング中の指定されたデスティネーションニューロンの活性化)に関連してオーケストレートされる。さらに、ネットワーク内の特定のノード(及び対応するニューロン)への最短経路を決定するためのSNNのトレーニングの後に、(特定のノード(例えば、ニューロン6)をデスティネーションノードに指定することに対応して、SNNのトレーニングを効果的に再利用しながら)追加の代替的なソースノードも、これらの他のソースノードからの最短経路を決定するのにテストされてよい。例えば、図5Gに示されるように、ニューロン1とニューロン6との間の経路を決定する図5Fの例示的な手順の実行の後に、(また、この手順の結果の観察、記録、報告など(すなわち、トレーニングに基づいてニューロン1からニューロン6にSNNを横断して伝搬されたスパイクチェーンに基づく経路の識別)を許可しながら)、複数のニューロンのうち別の1つ(例えば、ニューロン7)が、ニューロン7を活性化520することでトレーニングされたSNNを用いて第2の経路計算において、ソースに指定される可能性がある。これにより、図5Fの例に見られるように、ニューロン7からデスティネーションニューロンであるニューロン6に送信されるスパイクのチェーンをもたらすことができる。この例では、スパイクのこのチェーンが、ニューロン7からニューロン8を介してニューロン6で終了するネットワークを通じた最短経路に対応し得る。このスパイクチェーンも、ニューロン7により表されるノードからニューロン6により表されるノードまでのネットワークトポロジなどにおいて経路を表すために、観察又は記録され用いられてよい。[Nabil:私は上記段落の詳細を読み通す機会がなかったが、まだそこに言及されていないならば、最短経路を表す(及び記録/監視される)スパイクのシーケンスが、再度STDPを通じて荷重を変更してしまわないように、神経調節信号を有効にすることでSTDPを無効にすることを述べなければならない。この「STDPを無効にする」ことは、上述したような代替的なソースノードからの最短経路を見つけるために、「トレーニング段階」で学習された荷重を再利用する場合には必要となるであろう]。
実装態様によっては、特定のネットワークトポロジをモデル化して、1つ又は複数のソースノードから別のデスティネーションノードへの最短経路を決定するために実装されたSNNを用いることが望ましい場合がある。例えば、モデル化されたネットワーク内の任意の他の例示的な経路の中で、ニューロン4により表されたノードからニューロン10により表されたデスティネーションノードまでのネットワーク経路の計算を、ユーザが望む場合がある。そのような経路計算において、異なるニューロンをデスティネーションニューロンとして指定するのを容易にするために、SNNは、新たなデスティネーションニューロンに従って再トレーニングされる必要があり得る。これにはまず、SNNをその初期パラメータ及び初期特性にリセットすることが含まれてよい。例えば、図5Hの例に示されるように、別の神経調節信号525が送信され、SNN内に定義されたそれぞれのニューロン及びシナプスを(例えば、全てのシナプス荷重及びスパイキング閾値電位の値をSNN全体にわたって等価に設定することで)初期値に設定させてよい。SNNをリセットすると、別のニューロンが、(図5Cの例に見られるように)そのニューロンを活性化することでデスティネーションニューロンとして指定され、(例えば、図5Dの例に見られるように)スパイク波の伝搬に基づいて、SNN内のシナプスの相対的な強化及び弱化を(STDPルールを通じて)引き起こすことができるスパイク波をもたらすことができる。次に、ニューロンのスパイキング閾値電位の値は(図5Eの例に見られるように)再度増加してよく、ソースノードがニューロンを活性化することで指定され、SNNの新たなトレーニングに基づいて、ソースニューロンからデスティネーションに送信される別のスパイクチェーンを引き起こし、このスパイクチェーンがソースからデスティネーションへの最短経路などを表してよい。
トレーニング及び(上記の例にあるような)例示的なSNNとの相互作用から導出されたネットワークトラバーサル経路の結果が、さらなる処置、計算、及び結果を実現するために、コンシューマシステムにより利用されてよい。図6Aの簡略ブロック図の600aを参照すると、1つの特定の例において、(上述されたように)様々なネットワークトポロジのモデル化に用いることができ、ネットワーク内のノード間の最短経路を導出することができるプログラマブルニューロモーフィックコンピューティングデバイス(例えば、205)とインタフェースをとる管理システム224が提供されてよい。管理システム224は、例示的なコンシューマシステム605と追加的にインタフェースをとることができ、これは、ニューロモーフィックコンピューティングデバイス205により実装されたSNNを用いて生成されるネットワーク経路結果を活用することができる。例えば、管理システム224のネットワークマネージャ610が、ネットワーク定義625をニューロモーフィックコンピューティングデバイス205に提供し、コンシューマシステム605を含む1つ又は複数の活動に対応する特定のSNNを実装するようにニューロモーフィックコンピューティングデバイス205に命令することができる。実装態様によっては、ネットワーク定義データ625は、コンシューマシステム605により管理システム224に提供される要求又は他の情報に応答してよい。実装態様によっては、管理システム224は、コンシューマシステム605上に実装されても、これと統合されてもよく、管理システム224は次に、いくつかある例示的な実装態様の中でも特に、ニューロモーフィックコンピューティングデバイス205と相互作用することができる(又はこれを組み込むことさえできる)。
図6Aの例を続けると、ネットワーク定義データ625が、特定のネットワークトポロジに対応する双方向に接続されたSNNを実装するようにニューロモーフィックコンピューティングデバイス205に要求することができ、さらに、SNN内のニューロン間の経路を決定する際に用いることを目的に、SNNが構成されるよう要求することができる。例えば、ネットワーク定義データ625は、(シナプスがそれぞれの隣接ニューロンに、及びそれぞれの隣接ニューロンから実装されるという点で)ニューロンが双方向に接続されるようにSNNが実装されていること、特定のSTDPルールが適用されていること、並びに全てのニューロンが特定のスパイキング閾値電位の値を有すること、及び全てのシナプス荷重が同じ値に設定されることを示すことができ、これにより、ネットワークに最初に送信された任意のスパイクがネットワーク全体にわたって伝搬することになる。
実装態様によっては、管理システム224の経路マネージャ615が、特定のネットワーク内のソースノード及びデスティネーションノードを識別するロジックを含むことができ、これらのノードの経路が、ニューロモーフィックコンピューティングデバイス205上に実装されたSNNを用いて決定される。場合によっては、コンシューマシステム605は、ソースノード及びデスティネーションノードのうち一方又は両方に識別子を提供することができる。他の例において、経路マネージャ615はコンシューマシステムに代わって、いくつかある例示的な実装態様の中でも特に、ソースノード及びデスティネーションノードのうち一方又は両方を判定することができる(例えば、コンシューマシステムが自身でそのような判定をするための機能又はリソースを欠いている場合)。1つの実装態様において、経路マネージャ615は、デスティネーションノードをモデル化するSNN内の特定のニューロンを活性化させる信号をニューロモーフィックコンピューティングデバイス205に送信することで、ニューロモーフィックコンピューティングデバイス205にデスティネーションノードを示すことができる。図5B〜図5Hの例に詳述されるように、デスティネーションニューロンを活性化することで、スパイク波が、デスティネーションニューロンからネットワークのその他の部分全体にわたって伝搬することになる。さらに、SNNに設定されたSTDPルールによって、スパイク波の伝搬と逆方向のシナプスが上方に調整されることになり得る(但し、活性化されたニューロンから外側に向かうスパイク波(すなわち、エコースパイクを含まない)を伝えるシナプスの荷重は、増加も減少もしない)。実装態様によっては、経路マネージャ615はさらに、SNN内の全てのニューロンのスパイキング閾値電位を全体的に変更して(例えば、増大させて)、ネットワーク内の指定されたデスティネーションノードへの経路を決定することに備えたSNNのトレーニングを終了するために、ニューロモーフィックコンピューティングデバイスに神経調節信号を送信させることができる。実装態様によっては、ニューロモーフィックコンピューティングデバイスは、例示的な管理システム224が特定の神経調節信号を送信することができるピン又は別のインタフェースを含むことができ、この信号は、ニューロモーフィックコンピューティングデバイス205内の全てのニューロモーフィックコア及びそれらのニューロンに配信されることになる。
SNNをトレーニングすると、次に例示的な経路マネージャ615は、ニューロモーフィックコンピューティングデバイス205に信号を送信することができ、これにより、複数のニューロンのうち、所望のネットワーク経路計算のソースノード又は開始ノードに対応する別のニューロンが活性化されることになる。ソースニューロンを活性化することで、ニューロモーフィックコンピューティングデバイス内のソースニューロンは、自身の隣接ニューロンにスパイクを送出することになってよく、このスパイクは、SNNのトレーニングに基づいて、ソースニューロンからデスティネーションニューロンへの経路に沿って送信されるスパイクメッセージのチェーンを通じて伝搬することになる。ソースニューロンの活性化に関連して、経路マネージャ615は、1つの例において、トラフィックモニタ620と通信640し、ソースニューロンの活性化と関連するニューロモーフィックコンピューティングデバイス205に対してトラフィックの監視634を開始することができる。監視されたトラフィックは、ニューロモーフィックコンピューティングデバイス205上に実装されたニューロン用のニューロモーフィックコア間に送信されるスパイクチェーンのスパイクメッセージに対応してよい。1つの例において、トラフィックモニタ620は、ニューロモーフィックコンピューティングデバイス上で観察されたトラフィックを経路マネージャ615に報告640することができる。経路マネージャ615(又は別のモジュール、若しくは管理システム224のサブシステム)は、特定のネットワークにおけるソースノードからデスティネーションノードまでの最短経路を表す、監視されたトラフィックに対応するネットワーク経路データを生成することができる。このネットワーク経路データは次に、(例えば、コンシューマシステムの特定の機能に関連して)コンシューマシステムによってさらに使用し処理するために、コンシューマシステム605に伝達645されてよい。例えば、コンシューマシステムは、ソーシャルネットワークの2人の会員間の最短経路を識別し、その最短経路に基づいて1つ又は複数のサービス又は処置を提供するために、ニューロモーフィックコンピューティングデバイスを利用するソーシャルネットワーキングプラットフォームであってよい。別の例として、コンシューマシステムは、いくつかある例の中でも特に、生物学的ネットワーク又は神経学的ネットワーク内で決定される最短ネットワーク経路に基づいて、生物学的解析又は神経学的解析を実行するように適合されたコンピューティングシステムであってよい。
図6Bの例を参照すると、上述されたように、(図6Aの例で論じられたような)管理システムロジックが、ニューロモーフィックコンピューティングデバイス205上に実装されてよく、SNNを用いる実装、トレーニング、及び経路決定のオーケストレーションがニューロモーフィックコンピューティングデバイス205上で全体的に(又は少なくとも部分的に)発生することを可能にしてよい。さらに、場合によっては、ニューロモーフィックコンピューティングデバイス205は、ニューロモーフィックコンピューティングデバイス上に実装されたSNNを用いることによって生成されたネットワーク経路結果を用いるように構成された、コンシューマシステム又はロジックと直接インタフェースをとることができる。一例として、図6Bは、特定のネットワークをモデル化するように実装されたSNNの一部の表現を示す簡略ブロック図の600bを示す。この例では、「ネットワーク」は自身で物理環境をモデル化することができ、ネットワーク内のノード間の経路を決定することは、2次元又は3次元物理空間において2つのポイント間の最適経路を決定することに対応してよい。図6Bの例は、ニューロモーフィックコンピューティングデバイスを用いて生成された経路データを用いるロジック(例えば、650)と、直接インタフェースをとるニューロモーフィックコンピューティングデバイスの例を示す。この例では、(SNNに関する前述のトレーニングを通じて強化されたシナプス(例えば、657〜661)上のソースニューロン(例えば、652)の活性化を通じて生成されたスパイクチェーンによって)ネットワーク内のポイント間の経路をモデル化するのに用いられるSNNのニューロン(例えば、651〜656)が、出力スパイク(例えば、665)を運動制御ロジック650に送信し、自律型乗用車両、ドローン、ロボットなどを方向づけて、SNNに対応する物理空間をナビゲートするために、さらなるシナプスを含むことができる。例えば、スパイクチェーンにより、受信側ニューロン(例えば、653)がスパイクチェーンを(例えば、シナプス659上の)経路で次のニューロン(例えば、654)に伝搬することになり得るだけでなく、出力スパイク665を運動制御650にもたらすこともでき、これにより、いくつかある例の中でも特に、運動制御がデバイス(例えば、ドローン、ロボット、など)を対応する経路に沿って方向づける方向を、運動制御が示すものと解釈することができる。
図6Bの例を基に、特定のネットワークトポロジのノード間の経路を決定するための構成可能なSNNを用いることが、ハードウェアを基にした経路計画を物理空間に実現するためのSNNを実装するのに活用されてよい。例えば、図7の簡略ブロック図の700に示されるように、経路計画が、物理環境における特定の開始ポイント(例えば、705)で、ナビゲーション判断を行うことを含んでよく、ここで、ナビゲーションの目標は、所望のデスティネーション又は報酬位置(例えば、710)への最適経路を見つけることである。そのような例では、SNNがニューロモーフィックコンピューティングデバイスを用いて実装されてよく、SNN内の各ニューロンは物理環境内のポイントに対応するように割り当てられる。図4A〜図5Hの例に見られるように、(物理デスティネーションに対応する)デスティネーションニューロンが選択され活性化され、SNNをトレーニングし、次のスパイクチェーンをデスティネーションに対する最短経路に沿って方向づけられるようにバイアスしてよい。例えば、報酬位置(例えば、配達用ドローンの飛行の目的地、ロボット装置の充電ステーション、自律型ツールにより検索された対象の位置など)に対応するデスティネーションニューロンが活性化されてよく、SNN内のデスティネーションニューロン710から全ての他のニューロンに伝搬するスパイク波(例えば、715)がもたらされる。図5B〜図5Hの例に見られるように、デスティネーションニューロンに対して方向づけられたシナプスをスパイク波に基づいて強化させるために、STDPルールがSNNに適用されてよい。さらに、スパイキング閾値電位が、トレーニングされたSNNをさらにバイアスするために調整されてよい。デバイス(又はデバイスを装着又は搬送する個人)の現在位置が決定されてよく、この位置は、SNN内の複数のニューロンのうち別の1つを経路内のソースニューロンとして活性化する基準であってよい。上述されたように、トレーニングされたSNN内のソースニューロンを活性化することで、スパイクチェーンがSNNを通じてデスティネーションまで最短経路に沿って伝搬することになり得る。物理デスティネーション環境への最短経路を(例えば、スパイクチェーン内のニューロン(例えば、ニューロンA〜F)に対応する位置の1つ1つを通じて順にナビゲートすることで)決定するために、スパイクチェーンでスパイクを送信するニューロンごとに対応する物理位置が決定されてよい。
場合によっては、デバイスのナビゲーション中に、デバイスがデスティネーションに達する前に複数のソースニューロンが活性化される場合がある。特定のニューロンを活性化し、デスティネーションとして特定のニューロンについて解くようにSNNをトレーニングすることで、トレーニングされたSNNが、SNN内の任意の他のニューロンから特定のデスティネーションニューロンへの最短経路を決定するのに複数回用いられてよい。1つの例では、ロボットがニューロモーフィックコンピューティングデバイスを組み込むことができ、ビジュアルコンピューティング、全地球測位、ロボットの位置を追跡するサードパーティシステムによる測位などの技術を用いて、ロボットの現在位置を周期的に判定することができる。ロボットが自身の現在位置を判定すると、これにより、ニューロモーフィックコンピューティングデバイスのトレーニングされたSNN内の対応するニューロンが活性化され、特定のデスティネーションへの更新された経路を決定することになり得る。ソースニューロンの活性化により生成されたスパイクチェーンに基づいて返される経路結果から、ロボットは、対応する経路に沿った自身の運動を調整又は継続することができる。しばらくしてから、ロボットは自身の位置を再計算して、最新の計算位置に対応するニューロンを活性化し、ロボットが前に計算された経路上にとどまっているかどうか、デスティネーションに達したかどうか、又は新たな位置に対応するニューロンの活性化から決定される経路に基づいて自身の方向を調整する必要があるかどうかを判定することができる。ロボットは自身の位置の再計算を継続して、ロボットがデスティネーションに達するまで、ニューロモーフィックコンピューティングデバイスにデスティネーションへの更新された最短経路を提供させることができる。
図8Aを参照すると、805、810、815、820の各図が、2次元(2D)物理環境をモデル化するSNNにおいて、デスティネーションニューロン825の活性化により生成されたスパイク波の伝搬を示す。805、810、815、820の各図には、格子型ネットワークのノードを表すポイントの格子が含まれており、各ノードが物理環境内のポイント(例えば、座標、緯度/経度など)に位置付けられている。1つの例では、格子型ネットワークの各ノードが、自身のすぐ上/下及び左/右にある隣接ノードに双方向に接続されてよい。他の実装態様では、各ノードが自身のすぐ左/右の隣接ノードに、さらに双方向に接続されてよい。3次元(3D)物理空間が、3D格子型ネットワーク及び他の例を用いて、同様にモデル化されてよい。
805の図では、デスティネーション又は報酬デスティネーションとして対応する位置の指定に対応して、特定のニューロンが時間(例えば、時間ステップ)t=0で活性化される。特定のニューロンの活性化によって、アウトバウンドスパイク信号の波が引き起こされ、(デスティネーションノード825から放射上に外側に位置するノードの一部(例えば、830)を表す)ニューロンの第1のサブセットが、時間t=10でスパイク波のスパイクメッセージを受信すると活性化されることになる。815及び820の図は同様に、物理空間内のデスティネーションノードから放射上に延在するノードを表すニューロンを通じた、スパイク波の伝搬の経過を示す。ニューロモーフィックコアの物理方向又はアーキテクチャは、ニューロモーフィックコアにより実装されたニューロンによって表される物理位置に対応する必要がないことを理解されたい。実際に、ニューロモーフィックコアは、物理空間において互いから遠く離れた物理位置を表す2つ又はそれより多くのニューロンを含む複数の(又は多数の)ニューロンを、SNN内に同時に実装することができる。しかし、実装態様によっては、いくつかのニューロンが他のニューロンと(すなわち、スパイクメッセージを通じて)より通信しやすいという可能性に基づいて、ノード間トラフィックを最適化するために、ニューロンがそれぞれのニューロモーフィックコア上に実装されてよい。例えば、すぐ近くの位置を表すニューロンが、いくつかある例の中でも特に、ニューロモーフィックコンピューティングデバイスのメニーコアネットワーク内にごく近接して存在するコア上に実装されてよい。
図8Aに示されるように、スパイク波がニューロンのネットワークを通じて伝搬することができる。さらに、上述されたように、SNNに適用されたSTDPルールにより、外側に伝搬する波の方向と反対に方向づけられたシナプスの荷重が増加して、選択されたデスティネーションノードへの経路を計算するためにSNNをトレーニングすることになり得る。図8Bは、図8Aの例で指定されたデスティネーションノード825から伝搬された波に基づいて、格子型ネットワーク内の各ノードからデスティネーションノードへの最短経路について一般化された方向を表すベクトル場の表現840である。各ノードに対応するベクトル又は矢印図(例えば、845)によって示された方向は、ネットワーク内の様々なノードのシナプスがターゲットノードに対して強化された方向を示す。結果として、ソースノードの選択により、図8Bに示されるトレーニングされたSNNの表現において矢印図で示された方向をたどる経路が、(ソースニューロンを活性化することで生成されたスパイクチェーンに対応するように)決定されることになる。図9B、図10A、図10C、及び図11B〜図11Eが、そのそれぞれの例に基づいて類似の表現を利用している。
上記各例では、単一のデスティネーションノードが選択されており、対応するニューロンが活性化されて、選択されたノードへの経路を決定するためにSNNをトレーニングする。他の例では、図9A〜図9Bに示されるように、複数の代替のデスティネーションが選択されてよく、SNN内の対応するニューロンが活性化されて、複数のノードのうち1つへの経路を決定するときに用いるためにSNNをトレーニングしてよい。そのような例は、自律型装置が複数のターゲットのうちいずれか1つにナビゲートするユースケース(例えば、低バッテリ状態の検出に応答して、複数の充電ステーションのうちいずれか1つにナビゲートするドローン)にとって適切な場合がある。例えば、905の図は(例えば、物理環境における座標に対応する)複数のノードからなる格子型ネットワークを示しており、このうち4つ(例えば、920a〜d)が、ネットワーク内のターゲット又はデスティネーションとして指定されている。4つのデスティネーションノードの各ニューロンは同時に活性化されてよく、これにより、対応するスパイク波が4つのニューロンのそれぞれから伝搬することになる。デジタルSNNが形成され、(全ての発信スパイク及び着信スパイクが処理される)別々の時間ステップ又はウィンドウを通じて同期が実現される実装態様において、複数のデスティネーションニューロンにより生成されたスパイク及びスパイク波は、一時的な時間に同時に発火しなくてよいが、同時とみなされてよい理由は、これらのスパイク及びスパイク波が、SNNに定義された同じ時間ステップ内でニューロモーフィックコンピューティングデバイスにより処理されるからである。
図9Aの例を続けると、910〜915の図は、複数のデスティネーションニューロンにより生成された複数のスパイク波が、どのようにして最終的に収束し、単一の波としてSNN内のニューロンの一部に伝搬することができるかを示している。図9Bは、図9Aに示されるスパイク波トレーニングに基づいて、ネットワーク内の潜在的なソースノードのそれぞれに対して、結果として得られる経路方向を例示するベクトル場を示す。複数のデスティネーションニューロンがスパイク波を引き起こした場合、2つの異なるデスティネーションニューロンが同時に(例えば、同じ時間ステップで)引き起こした波を、少なくとも1つの他のニューロンが受信することが可能である。そのような例は、2つの異なるスパイク波を同時に受信する潜在的なソースニューロンが、スパイクを引き起こす2つのデスティネーションニューロンから等距離に事実上位置するように、SNNによる位置のモデル化に基づいて、複数のデスティネーション間の境界を形成することができる。上述されたように、ノードが複数のスパイク波のどれを認識して、どれを無視するかを選択できるように排他的選択が利用されてよく、こうして、そのソースノードが経路決定において選択された場合、どの経路が選択されるかを決める。そのような境界ノードが図9Bに、例えば領域925、930、935に示されており、これらの領域の潜在的なソースノードには、図9Aの例にあるトレーニングに基づいて、指定されたデスティネーションノードのうち特定の1つに対して明確な方向が特定されていない。
複数のデスティネーションニューロンが指定されて活性化され、複数のスパイク波を用いて対応するSNNのトレーニングを引き起こす例において、図9Bに関連して上述されたような境界が形成されてよい。場合によっては、どのソースノードが、選択された場合に、複数の可能なデスティネーションのうちどれに方向づけられるかを判定するのに、そのような境界が用いられてよい。例えば、図10Aを参照すると、複数の潜在的なデスティネーションノード(例えば、1005、1010)を有するネットワークの別の例に関するベクトル図の1000aが示されており、ノード1005及び1010に対応するニューロンを活性化して、2つの別個のスパイク波の伝搬をもたらすことで、SNNのトレーニング中に対応するSNNに与えるSTDPルールの影響を表している。マルチデスティネーションネットワークのトレーニングで定められた境界を示すために、1015aのラインがベクトル表現に追加されている。境界1015aの一方の側又は他方の側に位置するノードが選択された場合、スパイクチェーンが(対応ソースニューロンの活性化によって)生じ、複数のデスティネーションニューロンのうち対応する1つへの経路を定めることが予測されてよい。例えば、図10Aの例では、ソースノードA(1020)が選択され、対応するニューロンがSNNのトレーニング(例えば、複数のデスティネーションニューロンのうち1つに向けて(対応するニューロンにより最初に受信されたスパイク波と逆方向に)方向づけられたシナプスの荷重を増加させ、SNN内のニューロンのスパイキング閾値を増加させる)の後に発火する。活性化されたソースニューロンは、自身の隣接ニューロンの全てに送信されるスパイクを送信することになるが、他の例に見られるように、複数のデスティネーションニューロンにより生成されたスパイク波に基づいて、STDPを通じて強化されたシナプスにスパイクが送信される場合、そのスパイクは、さらなるスパイクを引き起こすのに十分なだけの強さになる。図10Aの例では、ソースノードA(1020)に対応するニューロンが、デスティネーションノード1005に対応するニューロンの活性化により生じたスパイク波のスパイクを、別のデスティネーションのスパイク波がノードAのニューロンの達する前に受信した。したがって、ノードA(1020)からノード1005に通じるシナプスが強化されており、これにより、ノードA1020により送信される次のスパイクが、ノード1005に送信されるスパイクで最終的に終結するシナプスでスパイクのチェーンを開始することになり、その結果、ノードAからネットワーク内の複数の指定されたデスティネーションのうち最も近い1つへの経路が定められる。
図9A、9B、及び10Aの例では、所与のネットワーク内で指定された複数のデスティネーションが等価にみなされるべきであると仮定された。言い換えれば、指定されたデスティネーションノードは、デスティネーションが代替可能、又は等価に好適である現実世界のネットワークをモデル化することができる。他の場合では、いくつかのデスティネーションが他より望ましくてよく、ソースからの経路がそのデスティネーションノードで終結するのか、別のデスティネーションノードで終結するのかを判定する際に、デスティネーションノードの望ましさが、デスティネーションに達するための距離と比較検討される。一例として、物理環境の経路をモデル化するのにSNNを用いる場合、配達用ドローンが、配達のために複数の荷物のうち1つを拾い上げる仕事を課されてよい。しかし、複数の荷物のうちの1つが、より高い優先順位を持つ場合がある。あるターゲットの別のターゲットにまさる優先度をモデル化するために、SNNを用いる経路計画が、そのような優先度をモデル化するように拡大されてよい。
例えば、図10Bに示される1000b〜eの図を参照すると、指定されたデスティネーションノードのうち1つ(例えば、1010)がその他のデスティネーションノード(例えば、1005)に対して優先される又はバイアスされるように、図10Aの例が拡大されている。優先されたデスティネーションノードをモデル化するために、その他の(優先されていない)デスティネーションニューロン(例えば、1005)の活性化を通じて引き起こされるスパイク波の開始のいくらか(例えば、いくつかの時間ステップ)前に、優先されたノードと関連するニューロンにそのスパイク波を開始させるように、SNNが構成されてよい。例えば、図10Bの1000cの図に示されるように、(例えば、位置を表している)優先されたノードと関連するニューロンが発火して、その他のニューロンによってスパイクが送信される前に、ネットワークを通じてスパイク波の送信を開始することができる。しばらくしてから(例えば、T=20で)、より低い優先度のデスティネーションノードを表す他のノードが、追加のスパイク波をネットワーク内に伝搬させるためにスパイクを送信することができる。例によっては、STDP及び不応期がSNNに適用されてよく、これによりシナプス荷重が、双方向に接続されたニューロン間に送信された第1のスパイク波に対応するように調整される。したがって、1000eの図に示されるように、2つのスパイク波が最終的に合流して、刺激されていないノードにスパイクを伝搬することができる。しかし、SNNのトレーニング中に他のスパイク波の前に送信されるスパイク波により、このスパイク波が、トレーニング中にスパイク波が他のスパイク波と同時に送信されたとしたら発生すると考えられるより多くの他のニューロンによって受信されることになり得る。こうして、結果として得られるトレーニングされたSNNは、優先されたデスティネーションで終了する経路を決定する方へバイアスされてよい。
例えば、図10Cの1000fの図は、図10Bに示されるスパイク波によりトレーニングされたSNNの、結果として得られるベクトル場表現を示す。スパイク波がニューロン1005及び1010により同時に送信されるトレーニング段階に対応する、図10Aに示されるベクトル場と比較すると、図10Cに示されるベクトル場は、ニューロン1005により送信されるスパイク波のいくらか前に、ニューロン1010でスパイク波を送信する影響を示している。さらに、図10Aの表現と比較すると、異なる境界(例えば、1015b)が、1つのデスティネーションノードを他方よりバイアスすることで現れてよい。例えばここで、同じソースノード1020が、境界1015bの、デスティネーションノード1010に対応する側に位置することができ、これにより、ソースノード1020から、図10Aの例にあるようなデスティネーションノード1005の代わりにデスティネーションノード1010への経路が決定されることになる。ネットワークにおいて、デスティネーションノード1005の方が、デスティネーションノード1010よりソースノード1020に近くても、この例でデスティネーションノード1010に与えられる優先度によって、トレーニングされたSNNは、デスティネーション1010に対する経路計画をバイアスすることになる。いくつかある例の中でも特に、デスティネーションノード1005のさらに近くに位置する他のソースノード(例えば、1025)の場合、デスティネーションノード1005に近接していることが、優先されたデスティネーションノード1010に対するバイアスより勝ることがあり、その結果、その他のソースノード1025から、デスティネーションノード1010の代わりにデスティネーションノード1005への経路が決定されることになる。
実装態様によっては、複数の指定されたデスティネーションノードの他と異なる望ましさ又は報酬に関するモデル化を実装するために、複数のデスティネーションノードの活性化が、各ノードの相対的な望ましさをモデル化するようにタイミングを調節されてよい。例えば、複数のデスティネーションノードのうち第1のデスティネーションノードに対応する第1のニューロンが、t=0で活性化されてよく、複数のデスティネーションノードのうち第2のデスティネーションノードがその後、時間t=t1で活性化される。活性化の遅延は、ニューロモーフィックコンピューティングデバイス上に常駐するロジックを用いてオーケストレートされてよく、又はニューロモーフィックコンピューティングデバイスに送信される信号のタイミングを調節するシステムマネージャによりオーケストレートされてよく、これにより、特定のSNNのトレーニングにおいてデスティネーションニューロンに指定された複数のニューロンの活性化の間に遅延が生じる。他の実装態様では、複数の指定されたノードの相対的な望ましさをモデル化するのに用いられるスパイク遅延が、ニューロンレベルで構成されてよく、これにより、デスティネーションニューロンの全てが同時に活性化され、あまり望ましくないノードをモデル化するニューロンのパラメータが、これらのニューロンに自身のスパイクの送信を遅延させて、スパイク波の間に所望の遅延を実現させるように調整される。
第1のデスティネーションノードが第2のデスティネーションノードに優先するという望ましさをモデル化するための、第1及び第2のデスティネーションニューロンによるスパイク波の送信間の遅延量は、第1のノードが第2のノードに優先するという優先度又は望ましさの相対的な度合いに対応してよい。言い換えれば、第1のニューロンによる第1のスパイク波の開始と、第2のニューロンによる第2のスパイク波の開始との間のより長い遅延が、第1のニューロンにより表されたネットワークノードの、第2のニューロンにより表された第2のノードより優れた相対的な望ましさが、より高いことを示している。同様に、より短い遅延は、1つのノードの別のノードより優れた相対的な望ましさがより小さいことを示す。
実例として、物理空間を表す複数のネットワークノードが、(図9A〜図10Cの例に見られるように)デスティネーションノードとして同時に指定されてよく、複数の再充電ステーション又は燃料補給ステーションの位置に対応してよく、ドローン又は自律走行車両は、低電力状態又は低燃料状態の際にそこに向かってナビゲートする。複数の燃料補給ステーションのうち1つが、再充電/燃料補給と関連する財務コストがより高い、需要がより高いステーションである、充電がより遅い又は非効率なステーションである、特定の自律型装置マネージャにより制御されていない又は所有されていないステーションであるという点などで、他のステーションより「高価」であると識別されてよい。場合によっては、1つのステーションを他のステーションより高価にしている状態が動的であってよく、変化してもよい。結果として、1つのステーションの他方より優れた相対的な望ましさが同様に、時間と共に変化してよい。各ステーションの相対的な望ましさに基づいて、望ましさを測る基準が定義されてよく、対応するSNNのトレーニング中に送信されるスパイクメッセージが、現在の望ましさを測る基準に関する相対的な値を反映するためにタイミングを調節されてよい。望ましさを測る基準が変化することになる場合、それに応じて、望ましさを測る基準の新たな差異に従ってタイミングを調節されたスパイク波を再送信することで、SNNが再トレーニングされてよい。トレーニング後、自律型装置は、自身の現在位置を識別することができ、デバイスの現在位置に対応するニューロンでスパイクを送信することができる。SNNが、より望ましい位置を優先してバイアスするようにトレーニングされると、いくつかある例の中でも特に、現在位置から複数のデスティネーションのうち特定の1つまでの決定された経路は、複数のデスティネーション位置のうちいずれか1つに対するデバイスの相対的な近さに基づくだけでなく、デスティネーションの望ましさにも基づいてよい。
いくつかのデスティネーションノードが他のデスティネーションノードより望ましい(すなわち、より高い度合いの「報酬」を有する)ことに加えて、いくつかの経路が「ハザード」と指定されたネットワークノードの存在によって推奨されない場合がある。場合によっては、ノードが絶対ハザード又は通行不能ハザードと指定されてよく、これにより、ハザードノードを横断するネットワーク経路が決定されないことになる。他の場合では、ハザード評価が絶対を下回るハザードとしてノードが指定されてよく、これにより、これらの経路は推奨されなくてよいが、そのノード上を横断することを禁止されることはない。図11Aを参照すると、ネットワーク内にハザードノード1105の集合を導入したことを示す1100a〜dの図が示されている。実装態様によっては、ネットワークは物理環境内の座標をモデル化してよく、ハザードノードは物理ハザード(例えば、壁、水域、家具、特定のデバイスの立ち入り禁止領域など)の位置に対応してよい。
図11Aの例では、単一のデスティネーションノード1110が、ネットワークに指定されている(しかし、複数のデスティネーションノード(異なるレベルの望ましさを有する複数のデスティネーションノードを含む)が、他の例において指定されてよい)。他の例に見られるように、(例えば、時間t=0での)デスティネーションノード1110に対応するニューロンの活性化により、(例えば、1100bの図に示されるように)スパイク波が伝搬して、活性化されたニューロン1110から放射上に配置された隣接ニューロンを活性化することになり得る。この例では、ハザードノード1105は絶対ハザードノードとして構成されてよく、これは(ノード1110に対応する)デスティネーションニューロンから生じたスパイク波が、これらのノードに対応するニューロンを活性化しないことを意味する。スパイク波は、1100c、1100dの図に示されるように進行して、可能な限りハザードノードの周囲を伝搬し、最終的にSNN内の全てのノードのニューロンに伝搬することになる。他の例に見られるように、スパイク波により活性化されたニューロンが、STDPルールに従って自身のシナプスの1つを(スパイク波の伝搬と逆方向に)調整し、SNNをトレーニングしてよい。場合によっては、トレーニングはさらに、SNN内の全ニューロンのスパイキング閾値電位を調整することを含んでよい。場合によっては、スパイキング閾値電位の調整は、非ハザードニューロンに限定されてもよく、又は、ニューロンのノードのハザードレベルに基づいて調整されてよい。
図11Bは、図11Aの例に示されたスパイク波に基づいて、任意の潜在的なソースノードがデスティネーションノード1110(及びハザードノード場1105の周囲)に向かって移動しやすい方向を示すベクトル場1100eの図を示す。図11Bの例に示されるように、SNNのトレーニングにより、ソースノードから次のハザードノード又は近くのハザードノードへの決定された経路が、指定されたデスティネーションノード1110に向けて方向づけされる前に、ハザードから離れてその周囲に方向づけられることになり得る。
図11A〜図11Bの例は、ネットワーク内の単一の矩形ハザードに関する定義を示すが、SNNは、様々なサイズ、形状、及び数の潜在的なあらゆるハザードをモデル化するように構成可能であってよいことを理解されたい。例えば、図11Cの例は、5つの異なるサイズのハザードノード場を有する例示的な格子型ネットワークを示す。図11Cの1100fの図はさらに、デスティネーションノード1120及び本明細書の他の箇所で論じられるようなSTDPルールの適用によってトリガされたスパイク波を仮定して、そのようなハザードを有するネットワークをモデル化するSNNのトレーニングによって生じるベクトル場を示す。ハザードノードは、非矩形状であってよく、(例えば、物理環境をモデル化するネットワーク内の)物理的な物体に対応してよいことを理解されたい。実際に、他の無数の例の中でも特に、ハザードノードは分離して指定されてよく、これにより、単一のノードがハザードに指定されてよいが、その隣接ノードの全てはハザードに指定されない。
上述されたように、ハザードノードは、様々な度合いのハザードをモデル化するように構成されてよい。図11D〜図11Eを参照すると、絶対を下回るハザードノードが定義されたネットワークの例が示されている。例えば、図11Dの例では、低ハザード特性で構成されたハザードノードの集合を示す1100gの図が示されている。スパイク波がハザードノードを通じて活性化し伝搬することを可能にするように、低ハザードノードが構成されてよいが、ハザードノードは、スパイク波に非ハザードノード上よりも遅くハザードノード上を伝搬させることで、スパイク波の伝搬を遅らせることができる。図11Dは、デスティネーションノードに対応するニューロンで引き起こされたスパイク波に基づいて、ベクトル場1100gの図を示しており、このスパイクは、低ハザードノード上をより遅く伝搬する。ベクトル場の図が示唆することは、トレーニングされたSNNを用いて決定されたいくつかの経路が、ハザードノードを組み込む経路(例えば、ハザードノードの近くに位置する潜在的なソースノードの経路)をもたらすことができるが、ハザードノードの存在により、ハザードノード上の横断を避けるか又は最小化しようとするように経路をバイアスするということである。
図11Eを参照すると、高ハザードノードの一例が示されている。高ハザードノードにより、トレーニングスパイク波は高ハザードノード上をさらに遅く横断することになるという点で、高ハザードノードは低ハザードノードと異なってよい。結果として、ベクトル場の図の1100hに示されるように、ノードが有するように構成されるハザードが高ければ高いほど、それによって、そのハザード(絶対ハザードノードの可能性がある)を避ける経路がより多く生じる。ネットワーク内の異なるハザードノードが、異なる度合いのハザードを割り当てられてよいことを理解されたい。ネットワークが物理環境をモデル化する例では、それらの物理座標に関連付けられたハザードの度合いを指定するために、ノードがハザードの度合いを割り当てられてよく、いくつかの障害又はハザードは他のものより重大である。割り当てられたハザードの度合いは、ハザードを避けるために経路がどれほどバイアスされるかに影響を与えることができ、ハザードを越える又は通る使いやすい経路は、より低レベルのハザードに使用可能であるが、対応するノードにより高いハザードレベルを割り当てることで、より強く推奨されない。
1つの実例では、地上のロボットが、ロボットの物理環境をモデル化するSNNを利用することができる。ハザードが物理環境内で検出されると、これらのハザードの座標に対応するニューロンがハザードを表すように構成されてよく、これにより、SNNを用いて行われる経路決定がこれらのハザードを説明する。場合によっては、(例えば、ビジュアルコンピューティング、レーダ、サードパーティのシステム(例えば、ハザードに遭遇した他のロボット、環境を監視して様々なハザードを認識するビジュアルコンピューティングシステムなど)から受信された通信、及び、対応するニューロンを、検出されたハザード(それぞれのハザードの度合い又は深刻さ(例えば、低い、高い、絶対など)を含む)を表すように構成させるSNNを実装するニューロモーフィックコンピューティングデバイスを用いて)、ロボットが自身の現在位置を判定することができ、さらにすぐ近くのハザードを識別することができる。SNNにおいて発見された又は知られている(例えば、常設又は固定の)ハザードをモデル化することで、ロボットの現在判定された位置に基づく、指定されたデスティネーションへの経路決定は、ハザードの存在を説明するようにトレーニングされたSNNに基づいてよい。
SNNによりモデル化されたネットワーク(及び/又はネットワークによりモデル化された物理環境)に応じて、ハザードの性質、数、及び重大度が、ハザードに対応するニューロンをSNNに構成することでモデル化されてよい。1つの実装態様では、対応する人工ニューロンによってハザードをモデル化することは、ニューロンが遅延方式でシナプス前スパイクに応答することになるように、ニューロンの1つ又は複数のパラメータを調整することを含んでよい。トレーニング前に、ニューロンで受信された任意のスパイクにより、ニューロンのスパイキング閾値電位が満たされ、ニューロンが追加のスパイクを自身の隣接ニューロンに送信する(すなわち、SNNをトレーニングするのに用いられるスパイク波を伝搬する)ことになるように、特定のネットワーク内の経路発見及び経路計画のために構成されたSNN内の非ハザードニューロンが構成されてよい。非ハザードニューロンの応答は、(ニューロンが、前に受信されたスパイクに応答してスパイクを送信した後に、その不応期になっていないという条件で)任意の受信されたスパイクに直接応答して発生するように構成されてよい。例えば、非ハザードニューロンは、シナプス前スパイクが受信される時間ステップの直後の時間ステップで、シナプス後スパイクを送信することができる。ハザードノードに対応するとして指定されたニューロン(又は「ハザードニューロン」)が代わりに、ハザードニューロンにおいて(スパイク波で)受信されたシナプス前スパイクに応答して、遅れて(又は全く遅れずに)シナプス後スパイクを送信するように構成されてよい。
絶対ハザードの場合では、ハザードをモデル化するニューロン、又はニューロンにつながるシナプスが、ニューロンを残りのSNNから効果的に分離するように無効にされてよく、これにより、着信スパイクによる無効ニューロンの活性化が制限され、スパイク波が、無効ニューロンを回避して、SNN内の残りのニューロンへのあまり直接的ではない経路に沿って伝搬するように強いられる。絶対を下回るハザードの場合では、ニューロンのパラメータが、対応するノード(又は位置)の相対的なハザードレベルと相関するように調整されてよい。これらのパラメータは、ハザードレベルが大きければ大きいほど、対応するニューロンが着信スパイクに対するシナプス後応答をより長く遅らせるように調整されてよい。言い換えれば、ニューロンが、(例えば、スパイク波に含まれた)着信スパイクに応答して発信スパイクを送信するのに時間が長くかかればかかるほど、対応するノードに関連付けられたハザードレベルがより高くなる。
1つの例では、ニューロンの応答遅延が、着信スパイクをニューロンに供給するシナプスの軸索遅延パラメータを調整することで、構成されてよい。軸索遅延パラメータは、(例えば、その細胞体プロセスを用いて)着信スパイクを処理するニューロンに遅延を引き起こすように調整されてよく、これにより、着信スパイクに対するニューロンの応答に、対応する遅延がもたらされる。パラメータは、それぞれのニューロンの相対的なハザードレベルに対応するように調整されてよく、軸索遅延パラメータは、受信されたスパイクに応答して、より長い遅延を有する高ハザードをモデル化するように増加し、より低い軸索遅延値がより低い重大度のハザードに対応する。
別の例では、様々なレベルのハザードが、ネットワーク(又は物理環境)内のハザードノードをモデル化するニューロンに神経抑制を導入するパラメータを調整することで、追加的に又は代替的に実装されてよい。場合によっては、神経抑制によっても、スパイクがニューロンに到達する時間と、この着信スパイクが、ニューロンの膜電位又はスパイキング閾値電位をニューロンによるアウトバウンドシナプス後スパイクの送信を引き起こす状態に到達させるのに要する時間との間に、さらなる遅延をもたらすことができる。1つの例では、各ハザードニューロンは追加の抑制性ニューロンに関連付けられてよい。ハザードニューロン及びその関連する抑制性ニューロンは、同じシナプス前ニューロンを共有することができ、これにより、そのシナプス前ニューロンがスパイクを発火すると、スパイクは、ハザードニューロン及びその関連した抑制性介在ニューロンの両方に送信される。このシナプス前ニューロン及びハザードニューロンの間のシナプス荷重は、シナプス前ニューロン及び抑制性介在ニューロンの間のシナプス荷重と比較してより低くなるように構成されてよい。結果として、抑制性介在ニューロンは、その関連したハザードニューロンがスパイクを発火できる前に、スパイクを発火することになる。抑制性介在ニューロンのスパイクは、その関連したハザードニューロンに送信されてよい。このシナプス結合での荷重は、負(抑制性)の値を持つように構成され、これにより、このシナプスに到達するスパイクが、ハザードニューロンの膜電圧を減少させることになる。それに応じて、この段階でのハザードニューロンは、2つの着信シナプス電流を有し、一方が正(ハザードニューロン及び関連した抑制性介在ニューロンの両方によって共有されたシナプス前ニューロンのスパイクに起因)であり、他方が負(抑制性介在ニューロンからのスパイクに起因)である。任意の所与の時間において、負のシナプス電流は正のシナプス電流より小さいが、その効果は、ハザードノードが遅延時間でスパイキング閾値に達するように、ハザードノードによる正のシナプス電流の集積を減速することである。こうして、この(抑制によって引き起こされた)遅延は、ハザードノードを表すニューロンのスパイク伝搬に、遅延の基準を提供することができる。
実装態様によっては、ハザードニューロンのハザードレベルが、神経調節信号を用いて調節されてよい。これにより、(SNNによりモデル化された)対応する物理位置をナビゲートする自律型エージェント(例えば、ロボット)が、フィードバックを提供して、その内部挙動状態に基づいて、計画された経路に影響を与えることが可能になり得る。例えば、非常に低い充電状態で動いているロボットが、非常に「緊急」の挙動状態に対応してよい。この状態は、ネットワーク内の全てのハザードノードのハザードレベルを下げて、より短い経路が高ハザード領域を通過するとしても、より長い経路の代わりにより短い経路を選択するように経路計画処理をバイアスすることがある。ハザードの軸索遅延の実装態様では、広域の神経調節信号が、ネットワーク内の全てのハザードノードにおいて、軸索遅延を増やす又は減らすのに用いられることがある。ハザードの抑制性介在ニューロンを基にした実装態様では、広域の神経調節信号が、ネットワーク内の全ての抑制性介在ニューロンに送信されることがある。抑制性介在ニューロンは、神経調節信号を受信すると、自身の興奮性を表す(各ニューロンの内部にある)パラメータを調節することになる。この興奮性パラメータは、介在ニューロンがスパイキング閾値を超えたときに、介在ニューロンがその対応するハザードニューロンにいくつのスパイクを送信するかを設定する。したがって、神経調節信号は、抑制性介在ニューロンによってその関連したハザードニューロンに送信されるスパイクの数を変化させることができ、これにより、ハザードニューロンのスパイク生成において遅延量が調節される。したがって、自律型エージェントは、高度の緊急性を示す信号を提供されてよく、これにより、(図11Fの1100iの図に示されるように)ハザードに関連したベクトル場が変更される。実際に、図11Eの例に示されるベクトル場においてモデル化されたより低い緊急性と比較すると、図11Fの例は、(ハザードニューロンと組み合わされた抑制性介在ニューロンの興奮性パラメータによってモデル化された)緊急性の変化の影響を示す。ベクトル場は、ハザード位置の周囲のほぼ全ての経路をバイアスするが、いくつかある例の中でも特に、図11Fの例においてモデル化されたより高い緊急性は、より多くの経路がハザード位置を通るコースをとることを可能にしてよい。
(図10A〜図10Cの例で論じられたような)潜在的に変化する望ましさのデスティネーションをモデル化することができるニューロンを定義し、潜在的に変化するハザードレベルを有する他のニューロンを定義することで、SNNは(例えば、本明細書で説明される特徴に類似の特徴を有するニューロモーフィックコンピューティングデバイスを用いて)、物理空間において座標をモデル化するネットワークを含む複合ネットワークをモデル化するように定義され実装されてよい。例えば、ランドスケープは、図10B〜図11Eの例に示され説明された特徴(例えば、相対的な報酬位置及びハザード)を単一のネットワーク又は物理空間において組み合わせることで、及び、様々な報酬デスティネーション及びハザードを物理空間においてモデル化するSNNを開発することで、モデル化されてよい。さらに、ニューロモーフィックコンピューティングデバイスのコンフィギュアビリティはさらに、環境内の変化を(場合によっては、リアルタイムで)説明するために、環境をモデル化するSNNにおいてニューロンに対して行われる調整を可能にすることができる。例えば、デスティネーションニューロンが定義されてよく、対応するデスティネーションの相対的な望ましさが、デスティネーションの相対的な望ましさの変化を示唆する情報に基づいて(例えば、環境から収集された情報、又は環境内で経路計画を実行するためのニューロモーフィックコンピューティングデバイスを用いる装置、ドローン、若しくはロボットから収集された情報に基づいて)調整されてよい。例えば、相対的な報酬位置をモデル化するデスティネーションニューロンのうち1つ又は複数のパラメータを、状態の変化を反映させるように変更させるために、ニューロモーフィック信号がニューロモーフィックコンピューティングデバイス内に(例えば、ニューロモーフィックコンピューティングデバイスに送信された要求又は信号に基づいて)送信されてよい。
同様に、例示的なSNN内のニューロンが動的に構成されてよく、これらのニューロンのパラメータは調整され、ニューロンにハザード位置をモデル化させる、又はシステムにより取得された追加情報に基づいて位置に関連したハザードレベルを調整させる。例えば、既知の経路(例えば、地上のドローン又はロボット用)に対応する位置をモデル化するニューロンが、非ハザードニューロンとして構成されてよく、経路から外れた座標をモデル化する他のニューロンが低ハザードニューロンとしてモデル化され、壁、樹木、又は他の障害物が発見され得る位置をモデル化するニューロンが、高ハザードニューロン又は絶対ハザードニューロンとして構成されてよい。ハザードが除去された場合、再配置された場合、又は環境に導入された場合、ニューロンのパラメータを変更して、対応する位置のハザード状態(又はその欠如)をより適切にモデル化させるために、対応する位置をモデル化するニューロンが(例えば、神経調節信号を用いて)拡大されてよい。
上述されたように、特定のデスティネーションノードに対する経路発見のために特定のSNNをトレーニングすると、特定のソースノードに関連したニューロンを活性化することで、特定のソースノードとデスティネーションノードとの間に経路が発見され得る。ネットワークの状態が変化せず、デスティネーションが同じままである場合、トレーニングされたSNNが、任意のソースから指定されたデスティネーションへの経路を発見するのに再利用されてよい。場合によっては、トレーニングされたSNNを用いて特定のソースから特定のデスティネーションへの経路が決定された場合、経路決定の結果はキャッシュされてよく、これにより、決定された経路は、次回その経路が要求されたときに、キャッシュから検索されてよい(すなわち、SNN内の経路シミュレーションを再実行するのではない)。SNN及びそのニューロンに対して変更が行われると(例えば、ハザードレベルの変更、デスティネーション及びそれらの相対的な望ましさに対する変更など)、いくつかある例の中でも特に、指定されたデスティネーションニューロンを再活性化して、SNNに対する変更に従ってSNNを通じて新たなスパイク波を伝搬させることで、SNNは、ニューロンパラメータに対する調整の後に、再トレーニングされてよい。
物理環境をモデル化するSNNを用いて決定された経路により、コントローラが、物理環境内で、車両、玩具、ロボット、ドローンなどの自律型エージェント装置の運動を方向づけることになり得る。上述されたように、ネットワークトラバーサルが、対応するネットワーク内の経路に対応するSNN内の経路を生成し読み出すために、SNNを利用することができる。例えば、ターゲットノードを表すニューロンが刺激されてネットワークを通じて広がるスパイク波を引き起こしてよく、これにより、スパイク波伝搬の方向に対して負に相関したシナプスのシナプス荷重に変化が引き起こされる。次に、ニューロン閾値が神経調節信号によって増加してよく、ネットワーク内のソースノードに対応するニューロンが刺激されて、ソースニューロンからターゲットまでのスパイクチェーンを生成してよい。実装態様によっては、SNNが物理環境をモデル化することができ、経路計画が、物理環境における経路の計画に対応することができる。経路計画は、文脈によっては、自律型ナビゲーションを容易にするために利用されてよい。したがって、SNN内で発見された経路を用いることができる、又はその経路を、対応する経路を通って自律型エージェントをガイドし得る実際の運動コマンド及び/又は操縦コマンドに変換することができる制御ロジックが提供されてよい。そうする1つの方法は、ニューロモーフィックシステムの外部にある装置(例えば、経路マネージャ)を用いることである。
1つの例では、SNNを通じて識別された経路を表すデータを受け入れることができる制御ロジックが提供されてよい。例えば、制御ロジックは、SNNにおいてモデル化された任意の2つの位置のノード間の移動方向(例えば、北、南、東、西など)に関するマッピングを格納し、そのマッピングにアクセスすることができる。したがって、制御ロジックは、SNNを通じて識別された経路を表す経路データを受信して、経路データを処理し、対応する物理経路を決定して、ソースノードからデスティネーションノードに進むための運動コマンドの関連シーケンスを生成することができる。
他の例では、リアルタイムのセンサと運動の相互作用が、運動ニューロンを直接SNNに実装することで提供されてよい。運動ニューロンは、物理環境内の場所を表す位置ニューロンに加えて存在してよい。図12を参照すると、そのようなネットワークの簡略された例を示す簡略ブロック図の1200が示されている。この例では、位置ニューロンA(1205)、B(1210)、C(1215)が与えられ、それぞれが物理空間内のそれぞれの場所をモデル化する。本明細書で論じられた上記各例に見られるように、位置ニューロン(例えば、1205、1210、1215)は空間内の物理的な場所(例えば、位置A、B、C、Dなど)を表し、双方向に接続され、特定のターゲットノードへの経路計画のトレーニングを容易にするように構成されている。例えば、それぞれの位置ニューロンは最初に、単一のシナプス前スパイクに応答してスパイクするように構成されてよい。運動ニューロン(例えば、1220、1225、1230、1235)は一般的に、特定の方向(例えば、右、左、前方、後方、上、下、東、西、北、南など)、又は、場合によっては、任意の2つの位置の間の移動又は運動に対応する相対的な方向に位置することができる。例えば、位置Aから位置Bへの移動がニューロン1220により表されてよく、位置Bから位置Aへの移動がニューロン1225により表されてよく、位置Bから位置Cへの移動がニューロン1230により表されてよく、位置Cから位置Bへの移動がニューロン1235により表されてよい、などである。各運動ニューロン(例えば、1220、1225、1230、1235)は、SNNの位置ニューロン(例えば、1205、1210、1215)を用いて決定する経路に従って、対応する駆動メカニズム又は操縦メカニズムに自律型エージェントを直接に方向づけさせるために、出力スパイクを生成するように構成されてよい。例えば、ニューロンB→A(1225)のスパイクは、システムによって「西へ進め」と解釈されて(エージェントを自動的に東方に方向づけさせて)よく、ニューロンB→C(1230)のスパイクは、「東へ進め」と解釈されて(エージェントを自動的に西方に方向づけさせて)よい、などである。
1つの例では、SNNは、2つのシナプス前スパイクを(例えば、同時に又は順次に)受信して、運動ニューロン用に設定されたスパイキング閾値に達すると、運動ニューロン(例えば、1220、1225、1230、1235)のうちいずれか1つだけが活性化される(及び自律型エージェントを制御するための出力スパイクを発火する)ように構成されてよい。さらに、SNNは、運動ニューロン(例えば、1220、1225、1230、1235)が活性化されて(又はSNNの位置ニューロンに接続されて)よく、例えば、神経調節信号を通じて不活性化されて(又は位置ニューロンに接続されて)よいように構成されてよい。その結果として、1つの例では、トレーニング中に(すなわち、デスティネーションニューロンの活性化から)放出されたスパイク波が運動ニューロンに影響を与えないように、運動ニューロンが、位置ニューロンのサブネットワークのトレーニング中に不活性化されてよい。位置ニューロンのサブネットワークがスパイク波に基づいてトレーニングされることで、運動ニューロンは(例えば、別の神経調節信号を通じて)再活性化されてよく、これにより、ソースの位置ニューロンが活性化され、スパイクチェーンが生成されると、経路に沿った位置ニューロンの活性化により、結果として、スパイクメッセージが対応する運動ニューロンに送信されることになってもよい。
図12に示された1つの例として、(ニューロン1215で表される)ノードCがターゲット位置に指定され、時間t=0で活性化されてよい。次に、以下の活動パターンが生成されてよい。
T=1:位置ニューロンCがスパイクする。
T=2:位置ニューロンBがスパイクする。
T=3:運動ニューロンB→Cがスパイクし、位置ニューロンAがスパイクする。
T=4:運動ニューロンA→Bがスパイクする。
この例では、運動ニューロンC→B、及びB→Aはスパイクしない。なぜならば、設定された軸索遅延によって、これらの運動ニューロンが2つのシナプス前スパイクを同時に受信できないからである。さらに、この例では、STDPが特定のシナプスに対して選択的に有効及び無効になってよい。例えば、図12に示されるように、ネットワーク内の特定のシナプスでのみ、STDPが有効にされてよい。したがって、STDPが有効になったこれらのシナプスでのみ、STDP学習ルールに基づいて、荷重が変化することになる。図12の特定の例では、上記の活動パターンにより、ニューロンB(1210)からニューロンB→C(1230)へのシナプス、及びニューロンA(1205)からニューロンA→B(1220)へのシナプスで(STDPを介して)荷重が増加する。次の段階では、この荷重の増加で、ニューロンB(1210)からのスパイクが、ニューロンC(1215)において共起スパイクを必要とせずに、ニューロンB→C(1230)を、スパイキング閾値を超えた状態にすることができるようになる。同様に、ニューロンA→B(1220)は、ニューロンB(1210)からの共起スパイクなしで、ニューロンA(1205)からのスパイクだけによって、スパイキング閾値を超えた状態にされてよい。
この例を続けると、実装態様によっては、SNN内の全ての位置ニューロンのスパイキング閾値を上げるために、神経調節信号が送信されてよい。この信号が送信されると、位置ニューロン(例えば、1205、1210、1215)は、隣接する場所のニューロンにおけるシナプス前スパイクによって、スパイキング閾値を超えた状態にされなくてよい。指定されたターゲット位置への経路を発見するためのSNNのトレーニングの後に、ニューロモーフィックコンピューティングデバイスに結合された自律型エージェントは、例えば、GPSモジュール、ビジュアルシーン認識エンジンなどの何らかの位置測定ロジックを通じて、環境から継続的に測定値を取得することで、自身の現在位置を判定することができる。これらの測定値は、システムによって、その現在位置を継続的に追跡するのに用いられてよい。一例として、自律型エージェント(すなわち、装置)は、自身が位置ニューロンA(1205)により表された特定の位置にいると判定することができる。エージェントがその特定の位置にいる限り、ニューロンA(1205)は、自身を、スパイキング閾値を超えた状態にする刺激を(例えば、位置測定ロジックから)受信することができる。本明細書で論じられた前述の例に見られるように、ニューロンAの刺激がニューロンAを活性化し、これにより、スパイクチェーンがニューロンAからデスティネーションニューロン(例えば、ニューロンC)に送信されることになり得る。この例では、ニューロンAからの(その刺激に基づく)あらゆるスパイクの後に、ニューロンA→B(1220)のスパイクが続くことになる。ニューロンA→B(1220)は事前に設定された移動方向(例えば、東の方へ)に対応するので、ニューロンA→B(1220)の活性化により、出力スパイクが、自律型エージェントの運動コントローラ又は他の方向コントローラに対して直接発火することになり得る。例えば、コントローラは、ニューロンA→B(1220)からスパイク信号を受信することができ、この移動方向及び(例えば、コンパスによって測定される)エージェントの現在の方向に基づいて、コントローラは対応する運動コマンドを生成することになる。エージェントは、ニューロンB(1210)により表された場所に達するまで、この方向に移動し続けることになる。この段階で、ニューロンB(1210)が、ニューロンA(1205)の代わりに(例えば、位置測定ロジックからの)外部信号によって刺激されてよく、これにより、ニューロンB→C(1230)が活性化されて、方向制御ロジックに信号を送信することになる。したがって、自律型エージェントは、ニューロンBにより表された場所からニューロンCにより表された場所の方へ移動させられてよい。SNNのロケーションサブネットを用いて、物理環境内の経路を定義するスパイクチェーンによって駆動されるこのシーケンスは、位置測定ロジックが、デスティネーションニューロン(例えば、この例ではニューロンC)に対応する位置内に現在位置していると判定するまで、繰り返されてよい。自律型エージェントがデスティネーションに達したと判定すると、全てのスパイキング閾値及び全てのシナプス荷重をそれらの初期値に戻すために、位置測定ロジックが、第2の神経調節信号を送信させるようにニューロモーフィックコンピューティングデバイスを促すことができる。いくつかある例の中でも特に、神経調節信号は無効になってよく、システムは、別の物理的な経路計算(及び、自律型エージェント装置による対応する移動)のためにリセットされてよい。
図13A〜図13Cは、様々なトポロジのネットワーク内の経路を決定するための、スパイキングニューラルネットワーク(SNN)を含む例示的な技術を示すフローチャート1300a〜cである。例えば、図13Aの例では、所与のネットワークトポロジを横断する最適経路を、SNNを用いて決定するための技術が示されている。例えば、特定のSNNが(例えば、構成可能なニューロンパラメータ及びスパイクタイミング依存可塑性(STDP)ルールを用いて、様々なSNNのうちいずれか1つを実装することができる構成可能ニューロモーフィックコンピューティングデバイスをプログラムすることで)実装1305されてよい。SNNは、特定のネットワークトポロジをモデル化するように実装されてよい。さらに、SNNの構成及びパラメータが、ネットワークトポロジ内のノード間の最短経路又は最適経路を決定する際に用いる目的に、SNNを適合させるように設定されてよい。例えば、2つのノード間の各接続が、それぞれ1対のシナプス、つまり、ノードをモデル化するニューロン間の各方向に1つのシナプスを用いて実装されてよい。さらに、SNN内のニューロンを相互接続するシナプスの各荷重は同じ荷重に設定されてよく、この荷重は最初に、任意の着信(シナプス前)スパイクが、それに応じて受信側ニューロンに発信(シナプス後)スパイクを生成させることを可能にすることができる。STDPルールが、各ニューロンにおいて、スパイク送信に不応期を強制するパラメータと共に定義されてよい。STDPルールと不応期の組み合わせにより、スパイク波が発生元ニューロンから外へ向かう特定の方向に(例えば、放射上に)伝搬し、STDPルールに従って、各シナプス対においてスパイク波でスパイクを伝える最初のシナプスでなかったこれらのシナプスの荷重を増やすことで、SNNをトレーニングすることになってよい。
図13Aの例を続けると、SNN内の複数のニューロンのうち第1のニューロンが活性化1310され、第1のニューロンによりモデル化されたネットワークノードをデスティネーションノードに指定してよい。第1のニューロンの活性化により、第1のニューロンは、そのすぐ隣のニューロンの全てにスパイクを送信することになり得、これにより、スパイクがさらに順に送信され、全てのニューロン(例えば、SNNで別のニューロンに接続されたニューロン(例えば、絶対ハザードノードをモデル化するニューロンなど、切り離されたニューロンを除く))がSNN内で接続されるまで伝搬し得るスパイク波を形成することになる。SNNの構成ごとに、STDPルールにより、SNNのシナプスの一部のシナプス荷重が調整1315されることになってよく、これにより、スパイク波の伝搬と逆方向に方向づけられたシナプス(すなわち、スパイク波の伝搬方向にスパイク波のスパイクを伝えたシナプス以外のシナプス)の荷重が増加する。これにより、SNNは、指定されたデスティネーションノード(及びその対応するニューロン)への経路を発見するように「トレーニング」されることになり得る。SNNはさらに、各ニューロンのスパイキング閾値パラメータの値を増やすことによりSNN内のニューロンの全てに影響を与える神経調節信号を送信1320することでトレーニングされてよい。スパイク電位増大の結果として、増加したシナプス荷重を有するシナプスで送信されたスパイクだけが、受信側ニューロンの増加したスパイキング閾値を満たせるのに十分な電位を供給することができ、これにより、ニューロンがニューロン自身のスパイクを送信することで、スパイクを伝搬することになる。
SNNがトレーニングされると、第2のニューロンが活性化1325されてよく、第2のニューロンは、ソースノードを表すネットワークノードに対応する。第2のニューロンの活性化で、SNN内に結果として生じるスパイクチェーンによってモデル化されるように、ソースノードからデスティネーションノードへの経路の計算を開始することができる。具体的には、ソースニューロンを活性化1325することで、トレーニングされたSNNにスパイクが送信されることになり、スパイクが、ソースニューロンからデスティネーションニューロンへのシナプス(及びニューロン)の経路に沿って、スパイクチェーンの伝搬を引き起こす。スパイクチェーンの経路は、モデル化されたネットワークを横断する最短経路を表すことができる(その経路は、第2のニューロンの活性化1325により引き起こされたスパイクチェーンの伝搬に加わるニューロンによりモデル化されたノードを横断する)。例によっては、スパイクチェーンの経路の検出に基づいてネットワーク経路を表すデータが、生成1330されてよい。所与の経路の決定の後に、同じデスティネーションノードへの異なる経路が、異なるソースノードに対応する異なるニューロンを単に活性化することで、決定されてよい。異なるデスティネーションへの経路を決定することが望まれる場合、ネットワークをモデル化するSNNは、最初にSNNをリセットすることで(例えば、シナプス荷重をそれらの共通の初期値にリセットするために1つ又は複数の神経調節信号を送信して、SNN内のニューロンの発火閾値をリセットすることで)再トレーニングされてよい。異なるデスティネーションノードに対応する別のニューロンを活性化することで、新たなデスティネーションが選択されてよく、これにより、この新たなデスティネーションノードへ向かう経路の決定などのためにSNNが再トレーニングされる。
図13Bの例では、SNNが図13Aの例に類似した方式で実装1340されてよく、SNNは所与のネットワーク内の経路を測定する際に用いるために構成される。しかし図13Bの例では、SNNによりモデル化されたネットワークは、物理的な2D環境又は3D環境を自身でモデル化するネットワークであってよい。図13Aの例に見られるように、環境内の物理位置(例えば、環境内の2D座標又は3D座標)のうち1つをモデル化する第1のニューロンが活性化1345され、対応する位置を所望のデスティネーションに指定して、デスティネーション位置への経路を決定する際に用いるため、スパイク波にSNNをトレーニングさせてよい。スパイク波の伝搬方向と、図13Bの例に見られるように、SNNの実装1340中に設定されたSTDPルールとに基づいて、シナプス荷重がSNNの一部に対して調整1350されてよい。SNN内のニューロンのスパイキング閾値電位パラメータを増大させるために、神経調節信号1355が設定されてもよい。次に、デスティネーション位置が、対応するニューロンを活性化1360することで指定され、活性化されたソースニューロンからその前に活性化されたデスティネーションニューロンへの経路に沿ってスパイクチェーンを伝搬させてよい。場合によっては、自律型装置の現在位置として識別されるデータが受信されてよく、このデータは、この位置に対応するソースニューロンを識別して活性化するのに用いられてよい。経路データが、生成1365され、スパイクチェーンの伝搬経路を表し、スパイクチェーンが伝搬したニューロンをニューロンによりモデル化された物理位置にマッピングしてよい。あるいは、経路データが、経路を横断するのに用いられる位置の相対的な変化を示すことができる。経路データは、コントローラがSNNを用いて決定された経路に沿って物理環境を通る自律型装置の運動を追って方向づける際に用いるために、コントローラに送信1370されてよい。
図13Cの例では、ニューロモーフィックコンピューティングデバイスが、SNNを構成するために、1つ又は複数の人工ニューロンを実装し、人工ニューロン間のシナプスを定義するのにそれぞれ用いられ得るニューロモーフィック処理コア(例えば、各処理コアがそれぞれの演算処理装置及びローカルメモリを有する)のネットワークを含むことができる。図13Cの例では、ニューロモーフィックコンピューティングデバイスの単一のコアが、SNN内に複数のニューロンを実装することができ、複数のニューロンのそれぞれを実装するのに用いられるプロセス(例えば、樹状突起及び細胞体のモデル化プロセス)によって、コアのリソース(例えば、プロセッサリソース)に時間多重方式でアクセスすることができる。例示的なSNNを用いて様々なニューロンを実装する複数のコアの様々なプロセスを同期するために、時間ステップが定義され、ニューロモーフィックコンピューティングデバイスと共に利用されてよい。例えば、時間ステップを開始するために、ニューロモーフィックコアが、(例えば、あらかじめ受信されたシナプス前スパイクに基づいて)送信されることになるスパイクを送信するニューロンを提供することができる。実装態様によっては、前の時間ステップにスケジューリングされた全てのスパイクが、次の時間ステップに移る前に伝達されていることを保証するために、時間同期化バリアプロセスが、ニューロモーフィックコンピューティングデバイスにより利用されてよい。これらのスパイクは、SNN内のニューロンに任意の順番で到達し、(例えば、全て同じ時間ステップにおいて)受信側ニューロンで次の樹状突起及び細胞体のプロセスを引き起こしてよい。例えば、コアによって同時に実装された複数のニューロンのうち第1のニューロンが、送信することになる任意のスパイクを最初に送信してよい。次に、(例えば、入力ベクトルの一部又はスパイクメッセージとして、ニューロンに別の接続されたニューロンから提供された)入力が受信1380され、処理されてよい。例えば、時間ステップn=0の間に、入力が第1のニューロンで受信1380されてよく、(例えば、ニューロンの発火電位閾値が増加して、その時間ステップの間に満たされた場合)対応するニューロモーフィックコアが(例えば、あらかじめ受信されたスパイクから、第1のニューロン用に構成されたパラメータに基づいて)、時間ステップn=0の間に受信された入力に応答して、スパイクが第1のニューロンにより送信されるべきかを判定1382してよい。次に、コアが時間多重化を用いて、同じ時間ステップn=0の間に(すなわち、時間ステップの別の部分で)コアによって実装されたニューロンのうち別の第2のニューロンに変わり、任意の入力(例えば、SNN内の他のニューロンからの外部入力電流又はスパイクメッセージ)を処理1384し、任意のそのような入力により、ニューロンの電位がその発火閾値を満たすか、又は超えることになったかを判定して((SNNの構成に応じて、同じ時間ステップ又は直後の時間ステップで)スパイクを送信させて)よい。任意の受信されたシナプス前スパイクを識別して、結果として生じる任意のシナプス後スパイクを判定するために、コアがSNN内に実装するニューロンの全てが処理されるまで、コアは、継続して時間ステップを分割し、その処理リソースを時間多重化することができる。場合によっては、スパイクの処理は、SNNに適用されたSTDPルールが、関連シナプスの荷重が調整されるべきと規定しているかを判定することを含んでよい。1つ又は複数のSTDPルールによるシナプス荷重の調整は、影響を受けたシナプスによりSNN内で接続されたニューロンを実装するニューロモーフィックコアにおいて、ニューロモーフィックコンピューティングデバイスによりニューロンレベルで実行されてよい。他の場合では、シナプス荷重の変更が、各時間ステップにおいて、ニューロモーフィックコンピューティングデバイス上にロジックを集中化することで、全体的に決定されてよい。全てのスパイクが処理されて(例えば、1388)、送信又は受信されると判定されると(また該当する場合は、シナプス荷重が調整されると)、ニューロモーフィックコンピューティングデバイスの仮想クロックが、先行する時間ステップを閉じて、次の時間ステップ(例えば、n++、又はこの例ではn=1)を開く又はそこに進む1390ことができる。先行する時間ステップにおいても同様であるが、ニューロモーフィックコンピューティングデバイスのコアは、ニューロモーフィックコンピューティングデバイスにより実装されたニューロンごとにスパイクを送信及び受信し、SNNの実行が終了するまで、これらの時間ステップのそれぞれの中でコアリソースを時間多重化することができる。
図14〜図15は、本明細書で開示された実施形態に従って用いられ得る例示的なコンピュータアーキテクチャのブロック図である。プロセッサ及びコンピューティングシステムに関して、当技術分野で知られる他のコンピュータアーキテクチャ設計も用いられてよい。概して、本明細書で開示された実施形態に関する好適なコンピュータアーキテクチャは、限定されないが、図14〜図15に示される構成を含むことができる。
図14は、一実施形態によるプロセッサの例示的な説明図である。プロセッサ1400は、上記の実装態様に関連して用いられ得るハードウェアデバイスの種類に関する一例である。プロセッサ1400は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、マルチコアプロセッサ、シングルコアプロセッサ、又はコードを実行する他のデバイスなど、任意のタイプのプロセッサであってよい。1つのプロセッサ1400だけが図14に示されているが、処理要素は代替的に、図14に示されるプロセッサ1400を1つより多く含むことができる。プロセッサ1400は、シングルスレッドコアであってよく、少なくとも1つの実施形態では、プロセッサ1400は、1つより多くのハードウェアスレッドコンテキスト(又は「論理プロセッサ」)をコアごとに含むことができるという点で、マルチスレッドであってよい。
図14は、一実施形態に従って、プロセッサ1400に結合されたメモリ1402も示す。メモリ1402は、当業者に知られているか、そうでなければ当業者に利用可能な、幅広い種類のメモリ(メモリ階層の様々なレイヤを含む)のうちいずれかであってよい。そのようなメモリ素子には、限定されないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フィールドプログラマブルゲートアレイ(FPGA)のロジックブロック、消去可能プログラマブルリードオンリメモリ(EPROM)、及び電気的消去可能プログラマブルROM(EEPROM)が含まれてよい。
プロセッサ1400は、本明細書で詳述されたアルゴリズム、プロセス、又は動作に関連した任意のタイプの命令を実行することができる。概して、プロセッサ1400は、要素又は物品(例えば、データ)を、ある状態又は物から別の状態又は物に変えることができる。
プロセッサ1400によって実行される1つ又は複数の命令であってよいコード1404が、メモリ1402に格納されてよく、あるいは、ソフトウェア、ハードウェア、ファームウェア、若しくはこれらの任意の好適な組み合わせに、又は必要に応じて特定のニーズに基づき、任意の他の内部又は外部のコンポーネント、デバイス、要素、若しくはオブジェクトに格納されてよい。1つの例では、プロセッサ1400が、コード1404により示される命令のプログラムシーケンスに従うことができる。各命令が、フロントエンドロジック1406に入り、1つ又は複数のデコーダ1408により処理される。デコーダは、その出力として、固定幅のマイクロオペレーションなどのマイクロオペレーションを、予め定義されたフォーマットで生成することができるか、又は他の命令、マイクロ命令、若しくは元のコード命令を反映する制御信号を生成することができる。フロントエンドロジック1406は、レジスタリネーミングロジック1410及びスケジューリングロジック1412も含み、これらは一般に、リソースを割り当て、命令に対応するオペレーションを実行のためにキューに入れる。
プロセッサ1400は、実行ユニット1416a、1416b、1416nなどのセットを有する実行ロジック1414も含むことができる。実施形態によっては、特定の機能又は機能のセットに専用の複数の実行ユニットを含むことができる。他の実施形態は、1つの実行ユニットだけ、又は特定の機能を実行することができる1つの実行ユニットを含むことができる。実行ロジック1414は、コード命令により指定されたオペレーションを実行する。
コード命令により指定されたオペレーションの実行が完了した後、バックエンドロジック1418がコード1404の命令をリタイアすることができる。1つの実施形態では、プロセッサ1400は、アウトオブオーダ実行を可能にするが、命令のインオーダリタイアメントを必要とする。リタイアメントロジック1420は、様々な知られた形態(例えば、リオーダバッファなど)を取ることができる。この方式では、プロセッサ1400は、少なくともデコーダにより生成された出力、レジスタリネーミングロジック1410により利用されたハードウェアレジスタ及びテーブル、並びに実行ロジック1414により変更された任意のレジスタ(不図示)の観点で、コード1404の実行中に変化する。
図14には示されていないが、処理要素が、プロセッサ1400を備えたチップ上に他の要素を含むことができる。例えば、処理要素は、プロセッサ1400と共にメモリ制御ロジックを含むことができる。処理要素は、I/O制御ロジックを含むことができ、及び/又は、メモリ制御ロジックに統合されたI/O制御ロジックを含むことができる。処理要素は、1つ又は複数のキャッシュも含むことができる。実施形態によっては、不揮発性メモリ(フラッシュメモリ又はヒューズなど)も、プロセッサ1400を備えたチップ上に含まれてよい。
図15は、一実施形態によるポイントツーポイント(PtP)構成で配置されたコンピューティングシステム1500を示す。特に、図15は、プロセッサ、メモリ、及び入力/出力装置が複数のポイントツーポイントインタフェースにより相互接続されているシステムを示す。概して、本明細書で説明されるコンピューティングシステムのうち1つ又は複数は、コンピューティングシステム1500と同じ方式又は類似の方式で構成されてよい。
プロセッサ1570及び1580はそれぞれ、メモリ素子1532及び1534と通信するための統合メモリコントローラロジック(MC)1572及び1582も含むことができる。代替的な実施形態では、メモリコントローラロジック1572及び1582は、プロセッサ1570及び1580から分離した別々のロジックであってよい。メモリ素子1532及び/又は1534は、本明細書で概説されたオペレーション及び機能を実現する際にプロセッサ1570及び1580により用いられる様々なデータを格納することができる。
プロセッサ1570及び1580は、他の図に関連して論じられたプロセッサなど、任意のタイプのプロセッサであってよい。プロセッサ1570及び1580は、ポイントツーポイント(PtP)インタフェース1550を介し、それぞれポイントツーポイントインタフェース回路1578及び1588を用いてデータを交換することができる。プロセッサ1570及び1580はそれぞれ、個々のポイントツーポイントインタフェース1552および1554を介し、ポイントツーポイントインタフェース回路1576、1586、1594、及び1598を用いて、チップセット1590とデータを交換することができる。チップセット1590も、高性能グラフィクスインタフェース1539を介し、PtPインタフェース回路であってよいインタフェース回路1592を用いて、高性能グラフィクス回路1538とデータを交換することができる。代替的な実施形態では、図15に示されるPtPリンクのいずれか又は全てが、PtPリンクではなくマルチドロップバスとして実装されることがある。
チップセット1590は、インタフェース回路1596を介してバス1520と通信状態にあってよい。バス1520は、バスブリッジ1518及びI/Oデバイス1516など、バス1520を介して通信する1つ又は複数のデバイスを有することができる。バスブリッジ1518は、バス1510を介して、ユーザインタフェース1512(キーボード、マウス、タッチスクリーン、又は他の入力デバイスなど)、通信デバイス1526(モデム、ネットワークインタフェースデバイス、又はコンピュータネットワーク1560を通じて通信することができる他の種類の通信デバイスなど)、オーディオI/Oデバイス1514、及び/又はデータストレージデバイス1528などの他のデバイスと通信状態にあってよい。データストレージデバイス1528は、プロセッサ1570及び/又は1580により実行されてよいコード1530を格納することができる。代替的な実施形態では、バスアーキテクチャのあらゆる部分が、1つ又は複数のPtPリンクで実装されてよい。
図15に示されるコンピュータシステムは、本明細書で論じられる様々な実施形態を実装するのに利用され得るコンピューティングシステムの一実施形態に関する概略説明図である。図15に示されるシステムの様々なコンポーネントが、システムオンチップ(SoC)アーキテクチャ、又は本明細書で提供された例及び実装態様の機能及び特徴を実現することができる任意の他の好適な構成に、組み合わされてよいことが理解されよう。例えば、そのようなシステムは、システム上の他の要素と相互接続された1つ又は複数のニューロモーフィックコンピューティングデバイスを含むことができる。
本開示は、特定の実装態様及び概ね関連した方法の観点で説明されたが、これらの実装態様及び方法の変更例及び置換例が、当業者には明らかであろう。例えば、本明細書で説明された処置は説明されたものと異なる順序で実行することができ、それでもなお望ましい結果を実現することができる。1つの例として、添付図面に示されたプロセスは、所望の結果を実現するために、示された特定の順序又は順番を必ずしも必要としない。特定の実装態様では、マルチタスク及び並列処理が有利となる場合がある。さらに、他のユーザインタフェースのレイアウト及び機能がサポートされてよい。他の変形例は、以下の特許請求の範囲内に含まれる。
本明細書は多数の特定の実装態様の詳細を含むが、これらは、あらゆる発明の範囲及び特許請求され得ることの範囲を限定するものと解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有の特徴を説明するものと解釈されるべきである。別個の実施形態の文脈で本明細書に説明される特定の特徴が、単一の実施形態に組み合わせて実装されてもよい。反対に、単一の実施形態の文脈で説明される様々な特徴が、複数の実施形態に別個に実装されるか、又は任意の好適なサブコンビネーションに実装されてもよい。さらに、これらの特徴が、特定の組み合わせで作用するように上述され、まさに最初にそのように特許請求される場合があるが、請求された組み合わせによる1つ又は複数の特徴が、場合によっては、その組み合わせから削除されてよく、請求された組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられてよい。
同様に、複数の動作が特定の順序で図面に示されているが、これによって、望ましい結果を実現するために、そのような動作が示された特定の順序で実行される、若しくは順番に実行されること、又は示された全ての動作が実行されることが必要とされていると理解されるべきではない。特定の状況では、マルチタスク及び並列処理が有利となる場合がある。さらに、上述された実施形態の様々なシステムコンポーネントの分離が、全ての実施形態においてそのような分離を必要としていると理解されるべきではなく、説明されたプログラムコンポーネント及びシステムは一般に、単一のソフトウェア製品に共に統合されてよく、又は複数のソフトウェア製品に組み合わされてよいことが理解されるべきである。
以下の例は、本明細書による実施形態に関する。例1は、格納された命令を有する、機械がアクセス可能な記憶媒体であり、命令は機械に対して実行された場合、機械に、スパイキングニューラルネットワーク(SNN)をニューロモーフィックコンピューティングデバイス上に実装されるように定義させることであって、SNNは、複数の人工ニューロン及び複数のニューロンを双方向に接続する複数の人工シナプスを含み、特定のネットワークをモデル化する、定義させることと、複数のニューロンのうち第1のニューロンへ第1の信号を送信させることであって、第1の信号によって、第1のニューロンは1つ又は複数の第1のスパイクをSNN内の隣接ニューロンに放出することになり、またスパイク波がネットワークを通じて伝搬することになり、複数のシナプスの一部の荷重がスパイク波に応答して、SNN用に定義されたスパイクタイミング依存可塑性(STDP)ルールに基づいて増加する、送信させることと、複数のニューロンのうち第2のニューロンへ第2の信号を送信させることであって、第2の信号によって、第2のニューロンは1つ又は複数の第2のスパイクメッセージをネットワーク内の隣接ニューロンに放出することになり、第2のスパイクメッセージによって、スパイクメッセージのチェーンが、シナプスの一部の荷重の増加に基づいて、シナプスの一部のサブセットを含む経路で第1のニューロンを伝搬することになる、送信させることと、経路が、第2のニューロンにより表された第1のネットワークノードから第1のニューロンにより表された第2のネットワークノードへの特定のネットワークにおける最短経路を含むと判定させることとを含む。
例2は例1の主題を含んでよく、命令は実行された場合、さらに機械に、神経調節信号を複数のニューロンへ送信させ、複数のニューロンのそれぞれのスパイク電位閾値を増加させ、神経調節信号は第1の信号を送信した後に送信され、シナプスのサブセットによるスパイクメッセージのチェーンの伝搬はさらに、スパイク電位閾値の増加に基づいている。
例3は例1から2のうちいずれか1つの主題を含んでよく、シナプスのサブセットは、スパイク波の伝搬と逆方向にスパイクを送信する。
例4は例1から3のうちいずれか1つの主題を含んでよく、複数のニューロンにおける2つの隣接ニューロン間の各双方向接続がそれぞれのシナプス対を含み、2つの隣接ニューロンを接続する各シナプス対は、2つの隣接ニューロンのうち第1のニューロンから2つの隣接ニューロンのうち第2のニューロンへのそれぞれの第1のシナプスと、第2の隣接ニューロンから第1の隣接ニューロンへのそれぞれの第2のシナプスとを含む。
例5は例4の主題を含んでよく、スパイク波のスパイクが、複数のシナプスのうち少なくとも1つによってSNN内の各シナプス対に送信され、スパイク波のスパイクのうち1つを最初に送信したシナプス対のシナプス以外のシナプス対のシナプスに対してだけ、STDPルールに従って荷重が増加する。
例6は例5の主題を含んでよく、STDPルールは、所与のニューロンのシナプス後シナプスでスパイクが送信された後の持続時間内に、シナプス前シナプスにスパイクが到達した場合に、所与のニューロンのシナプス前シナプスの荷重が増加することを規定する。
例7は例1から6のうちいずれか1つの主題を含んでよく、複数のシナプスの荷重は、スパイク波の開始前に共通の値に設定されている。
例8は例7の主題を含んでよく、スパイク波のスパイクを受信することで、複数のニューロンのうちいずれか1つが活性化され、ニューロンが不応期に入っていない限り、SNN内の1つ又は複数のそれぞれの隣接ニューロンに発信スパイクを送信することになり、不応期は複数のニューロンのそれぞれに対して実装されている。
例9は例7から8のうちいずれか1つの主題を含んでよく、命令は実行された場合、さらに機械に、スパイクチェーンの伝搬後に神経調節信号を送信させ、複数のシナプスの荷重をリセットする。
例10は例9の主題を含んでよく、命令は実行された場合、さらに機械に、複数のニューロンのうち第3のニューロンを活性化する別の信号を送信させ、第3のニューロンの活性化によって、第3のニューロンから外へ向かう別のスパイク波の伝搬をSNNにもたらし、複数のシナプスの異なるサブセットの荷重が、その他のスパイク波の伝搬に基づいて増加する。
例11は、スパイキングニューラルネットワーク(SNN)をニューロモーフィックコンピューティングデバイス上に実装されるように定義する段階であって、SNNは、複数の人工ニューロン及び複数のニューロンを双方向に接続する複数の人工シナプスを含み、特定のネットワークをモデル化する、定義する段階と、複数のニューロンのうち第1のニューロンへ第1の信号を送信する段階であって、第1の信号によって、第1のニューロンは1つ又は複数の第1のスパイクをSNN内の隣接ニューロンに放出することになり、またスパイク波がネットワークを通じて伝搬することになり、複数のシナプスの一部の荷重がスパイク波に応答して、SNN用に定義されたスパイクタイミング依存可塑性(STDP)ルールに基づいて増加する、送信する段階と、複数のニューロンのうち第2のニューロンへ第2の信号を送信する段階であって、第2の信号によって、第2のニューロンは1つ又は複数の第2のスパイクメッセージをネットワーク内の隣接ニューロンに放出することになり、第2のスパイクメッセージによって、スパイクメッセージのチェーンが、シナプスの一部の荷重の増加に基づいて、シナプスの一部のサブセットを含む経路で第1のニューロンを伝搬することになる、送信する段階と、経路が、第2のニューロンにより表された第1のネットワークノードから第1のニューロンにより表された第2のネットワークノードへの特定のネットワークにおける最短経路を含むと判定する段階とを含む方法である。
例12は例11の主題を含んでよく、さらに、神経調節信号を複数のニューロンに送信し、複数のニューロンのそれぞれのスパイク電位閾値を増加させる段階を含み、神経調節信号は第1の信号を送信した後に送信され、シナプスのサブセットによるスパイクメッセージのチェーンの伝搬はさらに、スパイク電位閾値の増加に基づいている。例13は例11から12のうちいずれか1つの主題を含んでよく、シナプスのサブセットは、スパイク波の伝搬と逆方向にスパイクを送信する。
例14は例11から13のうちいずれか1つの主題を含んでよく、複数のニューロンにおける2つの隣接ニューロン間の各双方向接続がそれぞれのシナプス対を含み、2つの隣接ニューロンを接続する各シナプス対は、2つの隣接ニューロンのうち第1のニューロンから2つの隣接ニューロンのうち第2のニューロンへのそれぞれの第1のシナプスと、第2の隣接ニューロンから第1の隣接ニューロンへのそれぞれの第2のシナプスとを含む。
例15は例14の主題を含んでよく、スパイク波のスパイクが、複数のシナプスのうち少なくとも1つによってSNN内の各シナプス対に送信され、スパイク波のスパイクのうち1つを最初に送信したシナプス対のシナプス以外のシナプス対のシナプスに対してだけ、STDPルールに従って荷重が増加する。
例16は例15の主題を含んでよく、STDPルールは、所与のニューロンのシナプス後シナプスでスパイクが送信された後の持続時間内に、シナプス前シナプスにスパイクが到達した場合に、所与のニューロンのシナプス前シナプスの荷重が増加することを規定する。
例17は例11から16のうちいずれか1つの主題を含んでよく、複数のシナプスの荷重は、スパイク波の開始前に共通の値に設定されている。
例18は例17の主題を含んでよく、スパイク波のスパイクを受信することで、複数のニューロンのうちいずれか1つが活性化され、ニューロンが不応期に入っていない限り、SNN内の1つ又は複数のそれぞれの隣接ニューロンに発信スパイクを送信することになり、不応期は複数のニューロンのそれぞれに対して実装されている。
例19は例17から18のうちいずれか1つの主題を含んでよく、さらに、スパイクチェーンの伝搬後に神経調節信号を送信し、複数のシナプスの荷重をリセットする段階を含む。
例20は例19の主題を含んでよく、さらに、複数のニューロンのうち第3のニューロンを活性化する別の信号を送信する段階を含み、第3のニューロンの活性化によって、第3のニューロンから外へ向かう別のスパイク波の伝搬をSNNにもたらし、複数のシナプスの異なるサブセットの荷重が、その他のスパイク波の伝搬に基づいて増加する。
例21は、ルーティングファブリック及び複数のニューロモーフィックコアを含むニューロモーフィックコンピューティングデバイスを含んだ装置であり、複数のニューロモーフィックコアの少なくとも1つのサブセットがそれぞれ、複数の人工ニューロンのうち1つ又は複数をスパイキングニューラルネットワーク(SNN)に実装して、特定のネットワークトポロジをモデル化し、SNN内の各ニューロンが、特定のネットワークトポロジ内の複数のノードのそれぞれのノードをモデル化する。ニューロモーフィックコンピューティングデバイスはさらに、複数のニューロンのうち第1のニューロンを活性化するために第1の信号をルーティングすることであって、第1のニューロンは複数のノードのうち第1のノードに対応し、第1のニューロンの活性化に基づいてスパイク波を生成し、スパイク波は第1のニューロンから伝搬して、SNN内の人工シナプスの第1のサブセットで複数のニューロンの他のニューロンに伝搬し、人工シナプスはルーティングファブリックを用いて実装される、ルーティングすること、スパイク波の伝搬及びスパイクタイミング依存可塑性(STDP)ルールに基づいてシナプスの第2のサブセットのシナプス荷重を調整することであって、シナプスの第2のサブセットはシナプスの第1のサブセット以外のSNN内のシナプスを含む、調整することと、複数の人工ニューロンのうち第2のニューロンを活性化するために第2の信号をルーティングすることであって、第2のニューロンは複数のノードのうち第2のノードに対応する、ルーティングすること、第2の信号に基づいて、第2のニューロンから生じるスパイクチェーンを生成することであって、スパイクチェーンは、第2のニューロンから第1のニューロンへの経路に沿って伝搬し、経路は、シナプスの第2のサブセットの一部を含む、生成することとを含む。
例22は例21の主題を含んでよく、特定のネットワークトポロジは、ランダムネットワークトポロジ、スモールワールドネットワークトポロジ、スケールフリーネットワークトポロジ、階層ネットワークトポロジ、及び空間組み込みネットワークトポロジのうち1つである。
例23は例21から22のうちいずれか1つの主題を含んでよく、特定のネットワークトポロジは物理環境をモデル化する。
例24は例21から23のうちいずれか1つの主題を含んでよく、ニューロモーフィックコンピューティングデバイスはさらに、経路を表す経路データを生成するためのロジックを含む。
例25は例24の主題を含んでよく、ニューロモーフィックコンピューティングデバイスはさらに、経路データを別のシステムに出力するためのインタフェースを含む。
例26は例21から25のうちいずれか1つの主題を含んでよく、複数のニューロモーフィックコアは、ニューロモーフィックコアのメッシュとして、ルーティングファブリックにより相互接続されている。
例27は例21から26のうちいずれか1つの主題を含んでよく、ニューロモーフィックコンピューティングデバイスは、1つ又は複数のルーティングテーブルを格納するための1つ又は複数のメモリ素子を含み、SNNのシナプスの少なくとも一部は、1つ又は複数のルーティングテーブルを用いて定義されている。
例28は例21から27のうちいずれか1つの主題を含んでよく、複数のニューロモーフィックコアの各ニューロモーフィックコアは、それぞれの処理リソースと、1つ又は複数の人工ニューロンを実装するためのロジックとを含む。
例29は例28の主題を含んでよく、1つ又は複数のニューロンをSNNに実装するためのロジックは、それぞれのニューロモーフィックコアにより実装されるニューロンごとに、細胞体プロセスと1つ又は複数の樹状突起プロセスとを含む。
例30は例28から29のうちいずれか1つの主題を含んでよく、各ニューロモーフィックコアは、複数の人工ニューロンのうち2つ又はそれより多くを実装する。
例31は例30の主題を含んでよく、ニューロモーフィックコアは、それぞれのニューロモーフィックコアの処理リソースに時間多重方式でアクセスし、2つ又はそれより多くの人工ニューロンを同時に実装する。
例32は、例11から20のうちいずれか1つの方法を実行する手段を含むシステムである。
例33は、格納された命令を有する、機械がアクセス可能な記憶媒体であり、命令は機械に対して実行された場合、機械に、スパイクタイミング依存可塑性(STDP)ルールをスパイキングニューラルネットワーク(SNN)に適用されるように定義させることであって、SNNは、複数のニューロンの各ニューロンを双方向に接続して、物理環境内の複数の位置をモデル化するための複数の人工シナプスを含む、定義させることと、複数の人工ニューロンのうち第1のニューロンを活性化する第1の信号を送信させることであって、第1の信号は、複数の位置の第1の位置をデスティネーション位置に指定し、第1のニューロンを活性化することで、スパイク波が第1のニューロンから複数のニューロンの他のニューロンに伝搬することになり、スパイク波の伝搬によって、複数のシナプスのサブセットのシナプス荷重がSTDPルールに基づいて増加することになり、複数のシナプスのサブセットは、スパイク波の伝搬と反対の方向にスパイクを送信するシナプスを含む、送信させることと、複数の人工ニューロンのうち第2のニューロンを活性化する第2の信号を送信させることであって、第2の信号はスパイク波の伝搬後に送信され、複数の位置の第2の位置を開始位置に指定し、第2のニューロンの活性化によって、スパイクチェーンが第2のニューロンから第1のニューロンへの経路に沿って伝搬することになる、送信させることと、開始位置からデスティネーション位置への物理経路を経路に基づいて自律型装置にナビゲートさせる第3の信号を、自律型装置のコントローラへ送信させることとを含む。
例34は例33の主題を含んでよく、複数のニューロンのそれぞれは、複数の位置のそれぞれの位置に対応し、第1のニューロンは第1の位置に対応するように定義されており、第2のニューロンは第2の位置に対応するように定義されている。
例35は例34の主題を含んでよく、スパイクチェーンは、複数のシナプスのサブセットの一部によって、複数のニューロンのサブセットに伝搬し、経路は、複数のニューロンのサブセットにより表された位置に沿った経路を含む。
例36は例33から35のうちいずれか1つの主題を含んでよく、SNNは、物理環境内の座標に対応する格子型ネットワークをモデル化するように定義されている。
例37は例36の主題を含んでよく、格子型ネットワークは、2次元物理空間をモデル化する2次元格子、及び3次元物理空間をモデル化する3次元格子のうち一方を含む。
例38は例33から37のうちいずれか1つの主題を含んでよく、命令は実行された場合、さらに機械に、スパイク波の伝搬後に神経調節信号を送信させ、複数のニューロンのそれぞれについてスパイキング閾値電位パラメータの増加をもたらす。
例39は例33から38のうちいずれか1つの主題を含んでよく、命令は実行された場合、さらに機械に、第1の信号及び第2の信号の後に第4の信号を送信させることであって、第4の信号は複数の人工ニューロンのうち第3のニューロンを活性化させ、第4の信号は第3の位置に対応する第3の位置を異なる開始位置に指定し、第3のニューロンの活性化によって、別のスパイクチェーンが第3のニューロンから第1のニューロンへの特定の経路に沿って伝搬することになる、送信させることと、第3の位置からデスティネーション位置への経路を、特定の経路に基づいて決定させることとを含む。
例40は例33から39のうちいずれか1つの主題を含んでよく、複数のニューロンにおける2つの隣接ニューロン間の各双方向接続がそれぞれのシナプス対を含み、2つの隣接ニューロンを接続する各シナプス対は、2つの隣接ニューロンのうち第1のニューロンから2つの隣接ニューロンのうち第2のニューロンへのそれぞれの第1のシナプスと、第2の隣接ニューロンから第1の隣接ニューロンへのそれぞれの第2のシナプスとを含む。
例41は例40の主題を含んでよく、スパイク波のスパイクが、複数のシナプスのうち少なくとも1つによってSNN内の各シナプス対に送信され、スパイク波のスパイクのうち1つを最初に送信したシナプス対のシナプス以外のシナプス対のシナプスに対してだけ、STDPルールに従って荷重が増加する。
例42は例41の主題を含んでよく、STDPルールは、所与のニューロンのシナプス後シナプスでスパイクが送信された後の持続時間内に、シナプス前シナプスにスパイクが到達した場合に、所与のニューロンのシナプス前シナプスの荷重が増加することを規定する。
例43は例33から42のうちいずれか1つの主題を含んでよく、複数のシナプスの荷重は、スパイク波の開始前に共通の値に設定されている。
例44は例43の主題を含んでよく、スパイク波のスパイクを受信することで、複数のニューロンのうちいずれか1つが活性化され、ニューロンが不応期に入っていない限り、SNN内の1つ又は複数のそれぞれの隣接ニューロンに発信スパイクを送信することになり、不応期は複数のニューロンのそれぞれに対して実装されている。
例45は、スパイクタイミング依存可塑性(STDP)ルールをスパイキングニューラルネットワーク(SNN)に適用されるように定義する段階であって、SNNは、複数のニューロンの各ニューロンを双方向に接続して、物理環境内の複数の位置をモデル化するための複数の人工シナプスを含む、定義する段階と、複数の人工ニューロンのうち第1のニューロンを活性化する第1の信号を送信する段階であって、第1の信号は、複数の位置の第1の位置をデスティネーション位置に指定し、第1のニューロンを活性化することで、スパイク波が第1のニューロンから複数のニューロンの他のニューロンに伝搬することになり、スパイク波の伝搬によって、複数のシナプスのサブセットのシナプス荷重がSTDPルールに基づいて増加することになり、複数のシナプスのサブセットは、スパイク波の伝搬と反対の方向にスパイクを送信するシナプスを含む、送信する段階と、複数の人工ニューロンのうち第2のニューロンを活性化する第2の信号を送信する段階であって、第2の信号はスパイク波の伝搬後に送信され、複数の位置の第2の位置を開始位置に指定し、第2のニューロンの活性化によって、スパイクチェーンが第2のニューロンから第1のニューロンへの経路に沿って伝搬することになる、送信する段階と、開始位置からデスティネーション位置への物理経路を経路に基づいて自律型装置にナビゲートさせる第3の信号を、自律型装置のコントローラへ送信する段階とを含む方法である。
例46は例45の主題を含んでよく、複数のニューロンのそれぞれは、複数の位置のそれぞれの位置に対応し、第1のニューロンは第1の位置に対応するように定義されており、第2のニューロンは第2の位置に対応するように定義されている。
例47は例46の主題を含んでよく、スパイクチェーンは、複数のシナプスのサブセットの一部によって、複数のニューロンのサブセットに伝搬し、経路は、複数のニューロンのサブセットにより表された位置に沿った経路を含む。
例48は例45から47のうちいずれか1つの主題を含んでよく、SNNは、物理環境内の座標に対応する格子型ネットワークをモデル化するように定義されている。
例49は例48の主題を含んでよく、格子型ネットワークは、2次元物理空間をモデル化する2次元格子、及び3次元物理空間をモデル化する3次元格子のうち一方を含む。
例50は例45から49のうちいずれか1つの主題を含んでよく、さらに、スパイク波の伝搬後に神経調節信号を送信し、複数のニューロンのそれぞれについてスパイキング閾値電位パラメータの増加をもたらす段階を含む。
例51は例45から50のうちいずれか1つの主題を含んでよく、さらに、第1の信号及び第2の信号の後に第3の信号を送信する段階であって、第3の信号は複数の人工ニューロンのうち第3のニューロンを活性化させ、第3の信号は第3の位置に対応する第3の位置を異なる開始位置に指定し、第3のニューロンの活性化によって、別のスパイクチェーンが第3のニューロンから第1のニューロンへの特定の経路に沿って伝搬することになる、送信する段階と、第3の位置からデスティネーション位置への経路を、特定の経路に基づいて決定する段階とを含む。
例52は、ルーティングファブリック及び複数のニューロモーフィックコアを含むニューロモーフィックコンピューティングデバイスを含んだ装置であり、複数のニューロモーフィックコアの少なくとも1つのサブセットがそれぞれ、複数の人工ニューロンのうち1つ又は複数をスパイキングニューラルネットワーク(SNN)に実装して、物理環境をモデル化し、SNN内の各ニューロンが、物理環境内の複数の位置のそれぞれの位置をモデル化する。ニューロモーフィックコンピューティングデバイスはさらに、複数の人工ニューロンのうち第1のニューロンを活性化する第1の信号をルーティングし、第1のニューロンは複数の位置のうち第1の位置に対応し、第1のニューロンの活性化に応答して第1のニューロンにより送信されるスパイクの第1のセットを生成し、スパイクの第1のセットによって、SNN内にスパイク波がもたらされ、SNN内の複数の人工シナプスによって複数のニューロンの他のニューロンにスパイク波を伝搬し、複数の人工シナプスはルーティングファブリックを用いて実装され、複数のシナプスのサブセットのシナプス荷重を、スパイク波の伝搬及びスパイクタイミング依存可塑性(STDP)ルールに基づいて調整し、複数のシナプスのサブセットは、スパイク波の伝搬と反対の方向にスパイクを送信するシナプスを含み、複数の人工ニューロンの第2のニューロンを活性化する第2の信号をルーティングし、第2のニューロンは複数の位置のうち第2の位置に対応し、第2のニューロンの活性化に応答して第2のニューロンにより送信されるスパイクの第2のセットを生成し、複数のシナプスのサブセットの一部を横断してスパイクチェーンを伝搬し、スパイクチェーンはスパイクの第2のセットにより引き起こされ、スパイクチェーンは、複数のシナプスのサブセットの一部により定義された経路に沿って、SNN内の第2のニューロンから第1のニューロンに伝搬する。
例53は例52の主題を含んでよく、ニューロモーフィックコンピューティングデバイスはさらに、経路を表すデータを生成するためのロジックを含み、経路は、複数のニューロンのサブセットを含み、複数のニューロンサブセットによりモデル化された位置を含む物理環境内の経路に対応する。
例54は例52から53のうちいずれか1つの主題を含んでよく、ニューロモーフィックコンピューティングデバイスはさらに、SNN内の複数のニューロンのうち少なくとも1つをハザードニューロンとして実装し、物理環境内のハザード位置をモデル化する。
例55は例54の主題を含んでよく、ハザード位置は絶対ハザードを含み、ハザードニューロンは、SNN内の他のニューロンから切り離されるように実装されており、スパイク波を受信することがない。
例56は例54の主題を含んでよく、ニューロモーフィックコンピューティングデバイスはハザードニューロンを実装し、これにより、ハザードニューロンは、ハザードニューロンで受信されるシナプス前スパイクに応答して、シナプス後スパイクの送信を遅延させることになる。
例57は例56の主題を含んでよく、遅延は、ハザードニューロンの軸索遅延パラメータを増加させることで実施される。
例58は例56の主題を含んでよく、遅延は、ハザードニューロンに対応する抑制性介在ニューロンを提供し、ハザードニューロンで神経抑制をモデル化することで実施される。
例59は例56から58のうちいずれか1つの主題を含んでよく、遅延の長さは、ハザード位置の重大度に対応する。
例60は例52から59のうちいずれか1つの主題を含んでよく、第1の信号は複数の第1の信号を含み、複数の第1の信号は、第1のニューロン及び少なくとも第3のニューロンを含むデスティネーションニューロンのセットにルーティングされ、スパイク波はデスティネーションニューロンのセットの各ニューロンで生成されたスパイクによって引き起こされる。
例61は例60の主題を含んでよく、デスティネーションニューロンのセットの第2の部分より優れたデスティネーションニューロンのセットの第1の部分の相対的な望ましさをモデル化するために、スパイク波を引き起こすスパイクの第1の部分が、スパイク波を引き起こすスパイクの第2の部分の前の時間に送信され、スパイクの第1の部分はデスティネーションニューロンの第1の部分により送信され、スパイクの第2の部分はデスティネーションニューロンの第2の部分により送信される。
例62は例61の主題を含んでよく、時間の長さは、相対的な望ましさの差異の度合いに対応する。
例63は例52から62のうちいずれか1つの主題を含んでよく、経路はSNN経路を含み、装置はさらに特定のデバイスを含み、特定のデバイスは、SNN経路に基づく入力を受け取り、この入力に基づいて、物理環境内の物理経路に沿って特定のデバイスの運動を方向づけるための運動制御装置を含む。
例64は例63の主題を含んでよく、特定のデバイスはロボットを含む。
例65は例63の主題を含んでよく、特定のデバイスはドローンを含む。
例66は例63の主題を含んでよく、特定のデバイスは自律走行車両を含む。
例67は例63から66のうちいずれか1つの主題を含んでよく、特定のデバイスは、第2の信号を第2のニューロンにルーティングさせるために、開始位置を決定して、ニューロモーフィックコンピューティングデバイスにデータを提供するためのロジックを含む。
例68は、例52から67のうちいずれか1つの主題を含んでよく、スパイク波を引き起こすスパイクの第1のセットは、特定の時間ステップにおいて共に送信される。
例69は、例52から68のうちいずれか1つの主題を含んでよく、スパイキングニューラルネットワークは、ニューロモーフィックコアのネットワークを含むニューロモーフィックコンピューティングデバイスを用いて実装される。
例70は例69の主題を含んでよく、ニューロモーフィックコアのネットワークは、複数のニューロモーフィックコアであって、複数のニューロモーフィックコアの各ニューロモーフィックコアは、それぞれの処理リソース、及び1つ又は複数の人工ニューロンを実装するためのロジックを含む、複数のニューロモーフィックコアと、複数のニューロモーフィックコアを用いて実装された人工ニューロン間にスパイキングメッセージをルーティングする1つ又は複数のルータと、スパイキングニューラルネットワーク内の複数の人工ニューロンの相互接続を定義するデータを含むメモリとを含む。
例71は例70の主題を含んでよく、各ニューロモーフィックコアは、複数の人工ニューロンのうち2つ又はそれより多くを実装する。
例72は例71の主題を含んでよく、ニューロモーフィックコアは、それぞれのニューロモーフィックコアの処理リソースに時間多重方式でアクセスし、2つ又はそれより多くの人工ニューロンを同時に実装する。
例73は、例45から51のうちいずれか1つの方法を実行する手段を含むシステムである。
こうして、主題に関する特定の実施形態が説明された。他の実施形態は、以下の特許請求の範囲内に含まれる。場合によっては、特許請求の範囲に記載の処置が異なる順序で実行されてよく、それでもなお望ましい結果を実現することができる。さらに、添付図面に示されたプロセスは、望ましい結果を実現するために、示された特定の順序又は順番を必ずしも必要としない。