[0023]添付の図面に関連して以下に示される詳細な説明は、様々な構成の説明として意図されたものであり、本明細書において説明される概念が実現され得る唯一の構成を表すことを意図されるものではない。詳細な説明は、様々な概念の完全な理解を提供する目的で、具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしで実施され得ることは、当業者にとっては明らかであろう。いくつかの事例では、よく知られている構造および構成要素が、そのような概念を曖昧にするのを避けるために、ブロック図形式で示される。
[0024]本教示に基づいて、本開示の範囲は、本開示の任意の他の態様とは無関係に実装されるにせよ、本開示の任意の他の態様と組み合わされるにせよ、本開示のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、記載される態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。開示する本開示のいずれの態様も、請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
[0025]「例示的」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用される。「例示的」として本明細書で説明するいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきであるとは限らない。
[0026]本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々な技術、システム構成、ネットワーク、およびプロトコルに広く適用可能であるものとし、そのうちのいくつかを例として図および好ましい態様についての以下の説明で示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
例示的なニューラルシステム、トレーニングおよび動作
[0027]図1は、本開示のいくつかの態様による、複数のレベルのニューロンをもつ例示的な人工ニューラルシステム100を示す。ニューラルシステム100は、シナプス結合のネットワーク104(すなわち、フィードフォワード結合)を介してニューロンの別のレベル106に結合されたニューロンのあるレベル102を有し得る。簡単のために、図1には2つのレベルのニューロンのみが示されているが、ニューラルシステムには、より少ないまたはより多くのレベルのニューロンが存在し得る。ニューロンのいくつかは、ラテラル結合を介して同じ層の他のニューロンに結合し得ることに留意されたい。さらに、ニューロンのいくつかは、フィードバック結合を介して前の層のニューロンに戻る形で結合し得る。
[0028]図1に示すように、レベル102における各ニューロンは、前のレベル(図1に図示せず)のニューロンによって生成され得る入力信号108を受信し得る。信号108は、レベル102のニューロンの入力電流を表し得る。この電流は、膜電位を充電するためにニューロン膜上に蓄積され得る。膜電位がそれのしきい値に達すると、ニューロンは、発火し、ニューロンの次のレベル(たとえば、レベル106)に転送されるべき出力スパイクを生成し得る。いくつかのモデリング手法では、ニューロンは、信号をニューロンの次のレベルに継続的に転送し得る。この信号は、典型的には膜電位の関数である。そのような挙動は、以下で説明するものなどのアナログおよびデジタル実装形態を含むハードウェアおよび/またはソフトウェアでエミュレートまたはシミュレートされ得る。
[0029]生物学的ニューロンでは、ニューロンが発火するときに生成される出力スパイクは、活動電位と呼ばれる。電気信号は、約100mVの振幅と約1msの持続時間とを有する比較的急速で、一時的な神経インパルスである。一連の結合されたニューロンを有するニューラルシステムの特定の実施形態(たとえば、図1におけるあるレベルのニューロンから別のレベルのニューロンへのスパイクの転送)では、あらゆる活動電位が基本的に同じ振幅と持続時間とを有するので、信号における情報は、振幅によってではなく、スパイクの周波数および数、またはスパイクの時間によってのみ表され得る。活動電位によって搬送される情報は、スパイク、スパイクしたニューロン、および他の1つまたは複数のスパイクに対するスパイクの時間によって決定され得る。以下で説明するように、スパイクの重要性は、ニューロン間の接続に適用される重みによって決定され得る。
[0030]図1に示されるように、ニューロンのあるレベルから別のレベルへのスパイクの移動は、シナプス結合(または、単純に「シナプス」)104のネットワークを介して達成され得る。シナプス104に関して、レベル102のニューロンはシナプス前ニューロンと考えられ得、レベル106のニューロンはシナプス後ニューロンと考えられ得る。シナプス104は、レベル102のニューロンから出力信号(すなわち、スパイク)を受信して、調整可能なシナプスの重み
に応じてそれらの信号をスケーリングすることができ、上式で、Pはレベル102のニューロンとレベル106のニューロンとの間のシナプス結合の総数であり、iはニューロンレベルの指標である。図1の例では、iはニューロンレベル102を表し、i+1は、ニューロンレベル106を表す。さらに、スケーリングされた信号は、レベル106における各ニューロンの入力信号として合成され得る。レベル106におけるあらゆるニューロンは、対応する合成された入力信号に基づいて、出力スパイク110を生成し得る。出力スパイク110は、シナプス結合の別のネットワーク(図1には図示せず)を使用して、別のレベルのニューロンに転送され得る。
[0031]生物学的シナプスは、シナプス後ニューロンにおける興奮性活動または抑制性(過分極化)活動のいずれかを調停することができ、ニューロン信号を増幅する役目を果たすことができる。興奮性信号は、膜電位を脱分極する(すなわち、静止電位に対して膜電位を増加させる)。しきい値を超えて膜電位を脱分極するために十分な興奮性信号が一定の時間期間内に受信された場合、シナプス後ニューロンに活動電位が生じる。対照的に、抑制性信号は一般に、膜電位を過分極する(すなわち、低下させる)。抑制性信号は、十分に強い場合、興奮性信号のすべてを相殺し、膜電位がしきい値に達するのを防止することができる。シナプス興奮を相殺することに加えて、シナプス抑制は、自然に活発なニューロンに対して強力な制御を行うことができる。自然に活発なニューロンは、たとえば、それのダイナミクスまたはフィードバックに起因するさらなる入力なしにスパイクするニューロンを指す。これらのニューロンにおける活動電位の自然な生成を抑圧することによって、シナプス抑制は、一般にスカルプチャリングと呼ばれる、ニューロンの発火のパターンを形成することができる。様々なシナプス104は、望まれる挙動に応じて、興奮性シナプスまたは抑制性シナプスの任意の組合せとして働き得る。
[0032]ニューラルシステム100は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス(PLD)、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、プロセッサによって実行されるソフトウェアモジュール、またはそれらの任意の組合せによってエミュレートされ得る。ニューラルシステム100は、たとえば画像およびパターン認識、機械学習、モータ制御、および似ているなど、かなりの適用範囲において利用され得る。ニューラルシステム100における各ニューロンは、ニューロン回路として実装され得る。出力スパイクを開始するしきい値まで充電されるニューロン膜は、たとえば、そこを通って流れる電流を積分するキャパシタとして実装され得る。
[0033]一態様では、キャパシタは、ニューロン回路の電流積分デバイスとして除去され得、その代わりにより小さいメモリスタ(memristor)要素が使用され得る。この手法は、ニューロン回路において、ならびにかさばるキャパシタが電流積分器として利用される様々な他の適用例において適用され得る。さらに、シナプス104の各々は、メモリスタ要素に基づいて実装され得、シナプス重みの変化は、メモリスタ抵抗の変化に関係し得る。ナノメートルの特徴サイズのメモリスタを用いると、ニューロン回路およびシナプスの面積が大幅に低減され得、それによって、大規模なニューラルシステムハードウェア実装形態の実装がより実用的になり得る。
[0034]ニューラルシステム100をエミュレートするニューラルプロセッサの機能は、ニューロン間の結合の強さを制御し得る、シナプス結合の重みに依存し得る。シナプス重みは、パワーダウン後にプロセッサの機能を維持するために、不揮発性メモリに記憶され得る。一態様では、シナプス重みメモリは、主たるニューラルプロセッサチップとは別個の外部チップ上に実装され得る。シナプス重みメモリは、交換可能メモリカードとしてニューラルプロセッサチップとは別個にパッケージ化され得る。これは、ニューラルプロセッサに多様な機能を提供することができ、特定の機能は、ニューラルプロセッサに現在取り付けられているメモリカードに記憶されたシナプス重みに基づき得る。
[0035]図2は、本開示のいくつかの態様による、計算ネットワーク(たとえば、ニューラルシステムまたはニューラルネットワーク)の処理ユニット(たとえば、ニューロンまたはニューロン回路)202の例示的な図200を示す。たとえば、ニューロン202は、図1のレベル102のニューロンおよび106のニューロンのうちのいずれかに対応し得る。ニューロン202は、ニューラルシステムの外部にある信号、または同じニューラルシステムの他のニューロンによって生成された信号、またはその両方であり得る、複数の入力信号2041〜204Nを受信し得る。入力信号は、電流、コンダクタンス、電圧、実数値および/または複素数値であり得る。入力信号は、固定小数点表現または浮動小数点表現をもつ数値を備え得る。これらの入力信号は、調整可能なシナプス重み2061〜206N(w1〜wN)に従って信号をスケーリングするシナプス結合を通してニューロン202に伝えられ得、Nはニューロン202の入力接続の総数であり得る。
[0036]ニューロン202は、スケーリングされた入力信号を合成し、合成された、スケーリングされた入力を使用して、出力信号208(すなわち、信号y)を生成し得る。出力信号208は、電流、コンダクタンス、電圧、実数値および/または複素数値であり得る。出力信号は、固定小数点表現または浮動小数点表現をもつ数値であり得る。出力信号208は、次いで、同じニューラルシステムの他のニューロンへの入力信号として、または同じニューロン202への入力信号として、またはニューラルシステムの出力として伝達され得る。
[0037]処理ユニット(ニューロン)202は電気回路によってエミュレートされ得、それの入力接続および出力接続は、シナプス回路をもつ電気接続によってエミュレートされ得る。処理ユニット202ならびにそれの入力接続および出力接続はまた、ソフトウェアコードによってエミュレートされ得る。処理ユニット202はまた、電気回路によってエミュレートされ得るが、それの入力接続および出力接続はソフトウェアコードによってエミュレートされ得る。一態様では、計算ネットワーク中の処理ユニット202はアナログ電気回路であり得る。別の態様では、処理ユニット202はデジタル電気回路であり得る。さらに別の態様では、処理ユニット202は、アナログ構成要素とデジタル構成要素の両方をもつ混合信号電気回路であり得る。計算ネットワークは、上述の形態のいずれかにおける処理ユニットを含み得る。そのような処理ユニットを使用した計算ネットワーク(ニューラルシステムまたはニューラルネットワーク)は、たとえば画像およびパターン認識、機械学習、モータ制御など、かなりの適用範囲において利用され得る。
[0038]ニューラルネットワークをトレーニングする過程で、シナプス重み(たとえば、図1の重み
および/または図2の重み2061〜206N)がランダム値により初期化され得、学習ルールに従って増加または減少し得る。学習ルールの例は、これに限定されないが、スパイクタイミング依存可塑性(STDP)学習ルール、Hebb則、Oja則、Bienenstock−Copper−Munro(BCM)則等を含むことを当業者は理解するだろう。いくつかの態様では、重みは、2つの値のうちの1つに安定または収束し得る(すなわち、重みの双峰分布)。この効果が利用されて、シナプス重みごとのビット数を低減し、シナプス重みを記憶するメモリとの間の読取りおよび書込みの速度を上げ、シナプスメモリの電力および/またはプロセッサ消費量を低減し得る。
シナプスタイプ
[0039]ニューラルネットワークのハードウェアおよびソフトウェアモデルでは、シナプス関係機能の処理がシナプスタイプに基づき得る。シナプスタイプは、非塑性シナプス(non-plastic synapse)(重みおよび遅延の変化がない)、可塑性シナプス(重みが変化し得る)、構造遅延可塑性シナプス(重みおよび遅延が変化し得る)、完全可塑性シナプス(重み、遅延および結合性が変化し得る)、およびそれの変形(たとえば、遅延は変化し得るが、重みまたは結合性の変化はない)であり得る。複数のタイプの利点は、処理が再分割され得ることである。たとえば、非塑性シナプスは、可塑性機能を使用しないで実行される場合がある(またはそのような機能が完了するのを待つ)。同様に、遅延および重み可塑性は、一緒にまたは別々に、順にまたは並列に動作し得る動作に再分割され得る。異なるタイプのシナプスは、適用される異なる可塑性タイプの各々の異なるルックアップテーブルまたは式およびパラメータを有し得る。したがって、本方法は、シナプスのタイプについての関連する表、式、またはパラメータにアクセスする。
[0040]スパイクタイミング依存構造可塑性がシナプス可塑性とは無関係に実行され得るという事実のさらなる含意がある。構造可塑性は、重みの大きさに変化がない場合(たとえば、重みが最小値または最大値に達したか、あるいはそれが何らかの他の理由により変更されない場合)s構造可塑性(すなわち、遅延量の変化)は前後スパイク時間差(pre-post spike time difference)の直接関数であり得ても実行され得る。代替的に、構造可塑性は、重み変化量に応じて、または重みもしくは重み変化の限界に関係する条件に基づいて設定され得る。たとえば、重み変化が生じたとき、または重みが最大値になるのではなく、重みがゼロに達した場合のみ、シナプス遅延が変化し得る。しかしながら、これらのプロセスが並列化され、メモリアクセスの数および重複を低減し得るように、独立した機能を有することが有利であり得る。
シナプス可塑性の決定
[0041]神経可塑性(または単に「可塑性」)は、脳内のニューロンおよびニューラルネットワークがそれらのシナプス結合と挙動とを新しい情報、感覚上の刺激、発展、損傷または機能不全に応答して変える能力である。可塑性は、生物学における学習および記憶にとって、また計算論的神経科学およびニューラルネットワークにとって重要である。(たとえば、Hebb則理論による)シナプス可塑性、スパイクタイミング依存可塑性(STDP)、非シナプス可塑性、活性依存可塑性、構造可塑性および恒常的可塑性など、様々な形の可塑性が研究されている。
[0042]STDPは、ニューロン間のシナプス結合の強さを調整する学習プロセスである。結合強度は、特定のニューロンの出力スパイクおよび受信入力スパイク(すなわち、活動電位)の相対的タイミングに基づいて調整される。STDPプロセスの下で、あるニューロンに対する入力スパイクが、平均して、そのニューロンの出力スパイクの直前に生じる傾向がある場合、長期増強(LTP)が生じ得る。その場合、その特定の入力はいくらか強くなる。一方、入力スパイクが、平均して、出力スパイクの直後に生じる傾向がある場合、長期抑圧(LTD)が生じ得る。その場合、その特定の入力はいくらか弱くなるので、「スパイクタイミング依存可塑性」と呼ばれる。したがって、シナプス後ニューロンの興奮の原因であり得る入力は、将来的に寄与する可能性がさらに高くなる一方、シナプス後スパイクの原因ではない入力は、将来的に寄与する可能性が低くなる。結合の初期セットのサブセットが残る一方で、その他の部分の影響がわずかなレベルまで低減されるまで、このプロセスは続く。
[0043]ニューロンは一般に出力スパイクを、それの入力の多くが短い期間内に生じる(すなわち、出力をもたらすのに十分な累積がある)ときに生成するので、通常残っている入力のサブセットは、時間的に相関する傾向のあった入力を含む。さらに、出力スパイクの前に生じる入力は強化されるので、最も早い十分に累積的な相関指示を提供する入力は結局、ニューロンへの最終入力となる。
[0044]STDP学習ルールは、シナプス前ニューロンのスパイク時間tpreとシナプス後ニューロンのスパイク時間tpostとの間の時間差(すなわち、t=tpost−tpre)に応じて、シナプス前ニューロンをシナプス後ニューロンに結合するシナプスのシナプス重みを効果的に適合させ得る。STDPの通常の公式化は、時間差が正である(シナプス前ニューロンがシナプス後ニューロンの前に発火する)場合にシナプス重みを増加させ(すなわち、シナプスを増強し)、時間差が負である(シナプス後ニューロンがシナプス前ニューロンの前に発火する)場合にシナプス重みを減少させる(すなわち、シナプスを抑制する)ことである。
[0045]STDPプロセスでは、経時的なシナプス重みの変化は通常、以下の式によって与えられるように、指数関数的減衰を使用して達成され得る。
ここで、k+およびk-τsign(Δt)はそれぞれ、正の時間差および負の時間差の時間定数であり、a+およびa-は対応するスケーリングの大きさであり、μは正の時間差および/または負の時間差に適用され得るオフセットである。
[0046]図3は、STDPによる、シナプス前スパイクおよびシナプス後スパイクの相対的タイミングに応じたシナプス重み変化の例示的な図300を示す。シナプス前ニューロンがシナプス後ニューロンの前に発火する場合、グラフ300の部分302に示すように、対応するシナプス重みは増加し得る。この重み増加は、シナプスのLTPと呼ばれ得る。グラフ部分302から、シナプス前スパイク時間とシナプス後スパイク時間との間の時間差に応じて、LTPの量がほぼ指数関数的に減少し得ることが観測され得る。グラフ300の部分304に示すように、発火の逆の順序は、シナプス重みを減少させ、シナプスのLTDをもたらし得る。
[0047]図3のグラフ300に示すように、STDPグラフのLTP(原因)部分302に負のオフセットμが適用され得る。x軸の交差306のポイント(y=0)は、層i−1からの原因入力の相関を考慮して、最大タイムラグと一致するように構成され得る。フレームベースの入力(すなわち、スパイクまたはパルスを備える特定の持続時間のフレームの形態である入力)の場合、オフセット値μは、フレーム境界を反映するように計算され得る。直接的にシナプス後電位によってモデル化されるように、またはニューラル状態に対する影響の点で、フレームにおける第1の入力スパイク(パルス)が経時的に減衰することが考慮され得る。フレームにおける第2の入力スパイク(パルス)が特定の時間フレームの相関したまたは関連したものと考えられる場合、フレームの前および後の関連する時間は、その時間フレーム境界で分離され、関連する時間の値が異なり得る(たとえば、1つのフレームよりも大きい場合は負、1つのフレームよりも小さい場合は正)ように、STDP曲線の1つまたは複数の部分をオフセットすることによって、可塑性の点で別様に扱われ得る。たとえば、曲線が、フレーム時間よりも大きい前後の時間で実際にゼロよりも下になり、結果的にLTPの代わりにLTDの一部であるようにLTPをオフセットするために負のオフセットμが設定され得る。
ニューロンモデルおよび演算
[0048]有用なスパイキングニューロンモデルを設計するための一般的原理がいくつかある。良いニューロンモデルは、2つの計算レジーム、すなわち、一致検出および関数計算の点で豊かな潜在的挙動を有し得る。その上、良いニューロンモデルは、時間コーディングを可能にするための2つの要素を有する必要がある:入力の到着時間は出力時間に影響を与え、一致検出は狭い時間ウィンドウを有し得る。最終的に、計算上魅力的であるために、良いニューロンモデルは、連続時間に閉形式解と、ニアアトラクター(near attractor)と鞍点とを含む安定した挙動とを有し得る。言い換えれば、有用なニューロンモデルは、実用的なニューロンモデルであり、豊かで、現実的で、生物学的に一貫した挙動をモデル化するために使用され得、神経回路のエンジニアリングとリバースエンジニアリングの両方を行うために使用され得るニューロンモデルである。
[0049]ニューロンモデルは事象、たとえば入力の到着、出力スパイク、または内部的であるか外部的であるかを問わず他の事象に依存し得る。豊かな挙動レパートリーを実現するために、複雑な挙動を示すことができる状態機械が望まれ得る。入力寄与(ある場合)とは別個の事象の発生自体が状態機械に影響を与え、事象の後のダイナミクスを制限し得る場合、システムの将来の状態は、単なる状態および入力の関数ではなく、むしろ状態、事象および入力の関数である。
[0050]一態様では、ニューロンnは、下記のダイナミクスによって決定される膜電圧vn(t)によるスパイキングリーキー積分発火ニューロンとしてモデル化され得る。
ここでαおよびβは、パラメータであり、wm,nは、シナプス前ニューロンmをシナプス後ニューロンnに結合するシナプスのシナプス重みであり、ym(t)は、ニューロンnの細胞体に到着するまでΔtm,nに従って樹状遅延または軸索遅延によって遅延し得るニューロンmのスパイキング出力である。
[0051]シナプス後ニューロンへの十分な入力が達成された時間からシナプス後ニューロンが実際に発火する時間までの遅延があることに留意されたい。イジケヴィッチの単純モデルなど、動的スパイキングニューロンモデルでは、脱分極しきい値vtとピークスパイク電圧vpeakとの間に差がある場合、時間遅延が生じ得る。たとえば、単純モデルでは、電圧および復元のための1対の微分方程式、すなわち、
によってニューロン細胞体ダイナミクス(neuron soma dynamics)が決定され得る。ここでvは膜電位であり、uは、膜復元変数であり、kは、膜電位vの時間スケールを記述するパラメータであり、aは、復元変数uの時間スケールを記述するパラメータであり、bは、膜電位vのしきい値下変動に対する復元変数uの感度を記述するパラメータであり、vrは、膜静止電位であり、Iは、シナプス電流であり、Cは、膜のキャパシタンスである。このモデルによれば、ニューロンはv>vpeakのときにスパイクすると定義される。
Hunzinger Coldモデル
[0052]Hunzinger Coldニューロンモデルは、豊かな様々な神経挙動を再生し得る最小二重レジームスパイキング線形動的モデルである。モデルの1次元または2次元の線形ダイナミクスは2つのレジームを有することができ、時間定数(および結合)はレジームに依存し得る。しきい値下レジームでは、時間定数は、慣例により負であり、一般に生物学的に一貫した線形方式で静止状態に細胞を戻す役目を果たすリーキーチャネルダイナミクスを表す。しきい値上レジームにおける時間定数は、慣例により正であり、一般にスパイク生成のレイテンシを生じさせる一方でスパイク状態に細胞を駆り立てる反リーキーチャネルダイナミクスを反映する。
[0053]図4に示すように、モデル400のダイナミクスは2つの(またはそれよりも多くの)レジームに分割され得る。これらのレジームは、負のレジーム(negative regime)402(leaky−integrate−and−fire(LIF)ニューロンモデルと混同されないように、交換可能にLIFレジームとも呼ばれる)、および正のレジーム(positive regime)404(anti−leaky−integrate−and−fire(ALIF)ニューロンモデルと混同されないように、交換可能にALIFレジームとも呼ばれる)と呼ばれ得る。負レジーム402では、状態は将来の事象の時点における静止(v-)の傾向がある。この負レジームでは、モデルは一般に、時間的入力検出特性と他のしきい値下挙動とを示す。正レジーム404では、状態はスパイキング事象(vs)の傾向がある。この正レジームでは、モデルは、後続の入力事象に応じてスパイクにレイテンシを生じさせるなどの計算特性を示す。事象の点からのダイナミクスの公式化およびこれら2つのレジームへのダイナミクスの分離は、モデルの基本的特性である。
[0054]線形二重レジーム2次元ダイナミクス(状態vおよびuの場合)は、慣例により次のように定義され得る。
ここでqρおよびrは、結合のための線形変換変数である。
[0055]シンボルρは、ダイナミクスレジームを示すためにここで使用され、特定のレジームの関係を論述または表現するときに、それぞれ負レジームおよび正レジームについて符号「−」または「+」にシンボルρを置き換える慣例がある。
[0056]モデル状態は、膜電位(電圧)vおよび復元電流uによって定義される。基本形態では、レジームは基本的にモデル状態によって決定される。正確で一般的な定義の微妙だが重要な側面があるが、差し当たり、モデルが、電圧vがしきい値(v+)を上回る場合に正レジーム404にあり、そうでない場合に負レジーム402にあると考える。
[0057]レジーム依存時間定数は、負レジーム時間定数であるτ-と正レジーム時間定数であるτ+とを含む。復元電流時間定数τuは通常、レジームから独立している。便宜上、τuと同様に、指数およびτ+が一般に正となる正レジームの場合に、電圧発展(voltage evolution)に関する同じ表現が使用され得るように、減衰を反映するために負の量として負レジーム時間定数τ-が一般に指定される。
[0058]2つの状態要素のダイナミクスは、事象において、ヌルクラインから状態をオフセットする変換によって結合され得、ここで変換変数は、
であり、δ、ε、βおよびv-、v+はパラメータである。vρのための2つの値は、2つのレジームのための参照電圧のベースである。パラメータv-は、負レジームのためのベース電圧であり、膜電位は一般に、負レジームにおいてv-に減衰する。パラメータv+は、正レジームのためのベース電圧であり、膜電位は一般に、正レジームにおいてv+から離れる傾向となる。
[0059]vおよびuのためのヌルクラインは、それぞれ変換変数qρおよびrの負によって与えられる。パラメータδは,uヌルクラインの傾きを制御するスケール係数である。パラメータεは通常、−v-に等しく設定される。パラメータβは、両方のレジームにおいてvヌルクラインの傾きを制御する抵抗値である。τρ時間定数パラメータは、指数関数的減衰だけでなく、各レジームにおいて別個にヌルクラインの傾きを制御する。
[0060]モデルは、電圧vが値vsに達したときにスパイクするように定義され得る。続いて、状態は(スパイク事象と同じ1つのものであり得る)リセット事象でリセットされ得る。
ここで、
およびΔuはパラメータである。リセット電圧
は通常、v-にセットされる。
[0061]瞬時(momentary coupling)結合の原理によって、状態について(また、単一の指数項による)だけではなく、特定の状態に到達するための時間についても、閉形式解が可能である。近い形式状態解は、次のとおりである。
[0062]したがって、モデル状態は、入力(シナプス前スパイク)または出力(シナプス後スパイク)などの事象に伴ってのみ更新され得る。また、演算が(入力があるか、出力があるかを問わず)任意の特定の時間に実行され得る。
[0063]その上、瞬時結合原理によって、反復的技法または数値解法(たとえば、オイラー数値解法)なしに、特定の状態に到達する時間が事前に決定され得るように、シナプス後スパイクの時間が予想され得る。前の電圧状態v0を踏まえ、電圧状態vfに到達するまでの時間遅延は、次の式によって与えられる。
[0064]スパイクが、電圧状態vがvsに到達する時間に生じると定義される場合、電圧が所与の状態vにある時間から測定されたスパイクが生じるまでの時間量、または相対的遅延に関する閉形式解は、次のとおりである。
ここで、
は通常、パラメータv+にセットされるが、他の変形も可能であり得る。
[0065]モデルダイナミクスの上記の定義は、モデルが正レジームにあるか、それとも負レジームにあるかに依存する。上述のように、結合およびレジームρは、事象に伴って計算され得る。状態の伝搬のために、レジームおよび結合(変換)変数は、最後の(前の)事象の時間における状態に基づいて定義され得る。続いてスパイク出力時間を予想するために、レジームおよび結合変数は、次の(最新の)事象の時間における状態に基づいて定義され得る。
[0066]Coldモデルの、適時にシミュレーション、エミュレーションまたはモデルを実行するいくつかの可能な実装形態がある。これは、たとえば、事象更新モード、ステップ事象更新モード、およびステップ更新モードを含む。事象更新は、(特定の瞬間における)事象または「事象更新」に基づいて状態が更新される更新である。ステップ更新は、間隔(たとえば、1ms)をおいてモデルが更新される更新である。これは必ずしも、反復的技法または数値解法を利用するとは限らない。また、事象がステップもしくはステップ間で生じる場合または「ステップ事象」更新によってモデルを更新するのみによって、ステップベースのシミュレータにおいて限られた時間分解能で事象ベースの実装形態が可能である。
ニューロモーフィックモデル開発のためのコンテキストリアルタイムフィードバック
[0067]科学者は、ニューラルネットワークの構造、接続性、および挙動を記述するために、脳機能と挙動の計算モデルを開発している。このプロセスは困難であり、モデル定義と結果との間にフィードバックが提供される前に長い期間がある。所望の挙動が達成されたかどうかを確認するために、ユーザは、モデルを定義、構築、および実行して、その後モデルの挙動を分析することができる。場合によっては、より簡単なエラーを見つけるためにすら数時間がかかり、より複雑なエラーを見つけるためにはさらに長い時間がかかることがある。
[0068]本開示の態様は、コンテキスト情報をリアルタイムに提供することを対象とする。たとえば、いくつかの態様では、ニューロモーフィックモデルの作成中に、リアルタイム可視化とテスト結果とが表示され得る。
[0069]図5は、本開示のいくつかの態様による、上述の、汎用プロセッサ502を使用してニューロモーフィックモデルにおいてコンテキストフィードバックを生成することの例示的な実装形態500を示す。計算ネットワーク(ニューラルネットワーク)、遅延、周波数ビン情報アセット定義、グループ定義、接続性情報、およびコンテキスト情報に関連付けられる変数(ニューラル信号)、シナプス重み、システムパラメータは、メモリブロック504に記憶され得、汎用プロセッサ502で実行される命令は、プログラムメモリ506からロードされ得る。本開示のある態様では、汎用プロセッサ502にロードされた命令は、モデルの開発中に監視されるべきアセットを備えるニューロモーフィックモデルにおいてコンテキストフィードバックを生成するための、および/またはコンテキストフィードバックに基づいて表現を示すためにインタラクティブコンテキストパネルを表示するためのコードを備え得る。
[0070]図6は、本開示のいくつかの態様による、上述の、ニューロモーフィックモデルにおいて、コンテキストフィードバックを生成することの例示的な実装形態600を示し、メモリ602は、相互接続ネットワーク604を介して、計算ネットワーク(ニューラルネットワーク)の個々の(分散された)処理ユニット(ニューラルプロセッサ)606とインターフェースされ得る。計算ネットワーク(ニューラルネットワーク)、遅延、周波数ビン情報、アセット定義、グループ定義、接続性情報、およびコンテキスト情報に関連付けられる変数(ニューラル信号)、シナプス重み、システムパラメータは、メモリ602に記憶され得、また相互接続ネットワーク604の接続を介してメモリ602から各処理ユニット(ニューラルプロセッサ)606にロードされ得る。本開示のある態様では、処理ユニット606は、モデルの開発中に監視されるべきアセットを備えるニューロモーフィックモデルにおいてコンテキストフィードバックを生成する、および/またはコンテキストフィードバックに基づいて表現を示すためにインタラクティブコンテキストパネルを表示するように構成され得る。
[0071]図7は、上述の、ニューロモーフィックモデルにおいてコンテキストフィードバックを生成することの例示的な実装形態700を示している。図7に示されるように、1つのメモリバンク702は、計算ネットワーク(ニューラルネットワーク)の1つの処理ユニット704に直接インターフェースされ得る。各メモリバンク702は、対応する処理ユニット(ニューラルプロセッサ)704遅延、周波数ビン情報、アセット定義、グループ定義、接続性情報、およびコンテキスト情報に関連付けられる変数(ニューラル信号)、シナプス重み、および/またはシステムパラメータを記憶し得る。本開示のある態様では、処理ユニット704は、モデルの開発中に監視されるべきアセットを備えるニューロモーフィックモデルにおいてコンテキストフィードバックを生成する、および/またはコンテキストフィードバックに基づいて表現を示すためにインタラクティブコンテキストパネルを表示するように構成され得る。
[0072]図8は、本開示のいくつかの態様による、ニューラルネットワーク800の例示的な実装形態を示す。図8に示すように、ニューラルネットワーク800は、本明細書に記載した方法の様々な動作を実行し得る複数のローカル処理ユニット802を有することができる。各ローカル処理ユニット802は、ニューラルネットワークのパラメータを記憶する、ローカルステートメモリ804およびローカルパラメータメモリ806を備え得る。また、ローカル処理ユニット802は、ローカルモデルプログラムを記憶するためのローカル(ニューロン)モデルプログラム(LMP)メモリ808、ローカル学習プログラムを記憶するためのローカル学習プログラム(LLP)メモリ810、およびローカル接続メモリ812を有し得る。さらに、図8に示されるように、各ローカル処理ユニット802は、ローカル処理ユニットのローカルメモリの構成を提供するための設定プロセッサユニット814とインターフェースされ得る、またローカル処理ユニット802間のルーティングを提供するルーティング接続処理ユニット816とインターフェースされ得る。
[0073]一構成では、ニューロンモデルは、モデルの開発中に監視されるべきアセットを備えるニューロモーフィックモデルにおいてコンテキストフィードバックを生成して、コンテキストフィードバックに基づいて表現を示すためにインタラクティブコンテキストパネルを表示するために構成される。ニューロンモデルは、生成手段と表示手段とを含む。一態様では、生成手段および/または表示手段は、記載された機能を実行するように構成された、汎用プロセッサ502、プログラムメモリ506、メモリブロック504、メモリ602、相互接続ネットワーク604、処理ユニット606、処理ユニット704、ローカル処理ユニット802、およびまたはルーティング接続処理要素816であり得る。別の構成では、上述の手段は、上記の手段によって記載された機能を実行するように構成された任意のモジュールまたは任意の装置であり得る。
[0074]本開示のいくつかの態様によれば、各ローカル処理ユニット802は、ニューラルネットワークの所望の1つまたは複数の機能的特徴に基づいて、ニューラルネットワークのパラメータを決定して、決定されたパラメータがさらに適応され、同調され、更新されるにつれて、所望の機能的特徴に向けて1つまたは複数の機能的特徴を開発するように構成され得る。
[0075]本開示は、ニューロモーフィックモデル開発プロセスのすべての段階中にリアルタイム情報を提供するコンテキストパネルを対象とする。いくつかの態様では、コンテキストパネルは、コードエディタとともに提供されるユーザインターフェースであり得る。コンテキストパネルは、ユーザがニューロモーフィックモデルを記述する(作成するために)プログラムコードを入力すると、リアルタイム可視化とテスト結果とを表示するように構成され得る。いくつかの態様では、コンテキストパネルは、ユーザ入力(実行を選択する−ユーザが指定した実行時間)に応じて、可視化とテスト結果情報とがいつでも選択的に表示され得るように構成され得る。このように、開発者は、デバッグおよび開発時間を減少させることができる、ニューロモーフィックモデルのリアルタイム分析を提供され得る。
[0076]コンテキストパネルは、モデル開発プロセスのすべての段階中に、関連情報を提供し得る。いくつかの態様では、開発プロセスは、可視化および評価コンテキストのための3つのフェーズに分割され得る。
1.アセット(たとえば、ニューロン、シナプス)を定義する
2.集団(populations)(たとえば、ニューロンとシナプスのグループ)を作成する
3.集団を接続(たとえば、シナプスを介するグループの接続)する
もちろん、これは単なる例示であり、限定するものではない。
アセット定義のためのコンテキストパネル
[0077]コンテキストパネルは、ニューロモーフィックモデルの定義されたアセットに関連する可視化を提供し得る。いくつかの態様では、開発環境は、たとえば、ニューロン、シナプス、または小規模ネットワークなどのアセットの定義を自動的に検出し得る。次に、コンテキストパネルは、ニューロモーフィックモデルの対応するコードに基づいて関連するインタラクティブな可視化で起動されてもよく、活性化されてもよい。いくつかの態様では、コンテキストパネルは、1つまたは複数のインターフェース要素として構成され得る。
[0078]コンテキストパネルは、コンテキスト情報の1つまたは複数の形態を提供し得る。いくつかの態様では、コンテキストパネルは、モデルのダイナミクスおよび/または統計に関連するコンテキスト情報を提供し得る。コンテキスト情報は、継時的に、1つまたは複数の変数またはパラメータの値のトレース、グラフィカル表現、または他の表示(indication)を含み得る。たとえば、いくつかの態様では、コンテキストパネルは、ニューロンを駆動するための入力曲線、膜電位vのプロット、および膜回復変数(membrane recovery variable)uのグラフを含み得る。もちろん、追加の、またはより少数の変数またはパラメータのためのコンテキスト情報がコンテキストパネルに表示され得る。
[0079]いくつかの態様では、可視化は調整可能であり得る。一例では、入力曲線は、グラフのドラッグドロップの動き、テキストベースの入力、および入力操作方式、または他のユーザ入力を通じて調整され得る。別の例では、ユーザは、異なる入力変数、入力タイプ、および入力波形タイプを選択し得る。入力グラフが調整されると、出力が調整されて、リアルタイムに表示され得る。したがって、より大規模なネットワークモデルの個々のニューラル成分は、個々のニューロンのための独立した「テストベンチ」に切り替えることなしに、インタラクティブに調整および検証され得る。
[0080]いくつかの態様では、コンテキストパネルは、ニューロモーフィックモデルの実行に基づいて更新され得る。たとえば、コンテキストパネルは、モデルの操作に関連する統計情報(たとえば、ニューロン発火率)提供するように構成され得る。
[0081]図9は、本開示の態様による、調整可能な入力曲線を含む例示的なコンテキストパネルを示すスクリーンショット900である。図9を参照すると、ニューラルネットワークモデル(たとえば、アセット定義)を定義するプログラムコードが、コードエディタ902を介して入力され得る。コンテキストパネル910は、データのリアルタイム可視化とシミュレーション結果とを表示するために、データ可視化機能で構成され得る。たとえば、図9に示されるように、コンテキストパネルは入力フィールド912と出力フィールド920とを含み得る。入力フィールド912は調整可能な入力曲線914を含み得る。図9の例では、入力曲線914は、入力曲線914の指定された点916のうちの1つまたは複数を選択して操作することによって調整され得る。もちろん、調整点の形式、タイプ、および数は例示であり、限定するものではない。
[0082]いくつかの態様では、出力フィールド920(たとえば、出力曲線922)は、入力曲線の調整を反映するためにリアルタイムに更新され得る。
[0083]いくつかの態様では、設計効率を高めるために、双方向の相互作用が利用され得る。たとえば、コンテキストパネル内のコンテキスト情報の視覚またはテストベースの操作はコードに反映され得る。一方、コード更新は、コンテキストパネルにおいて提供されるコンテキスト情報を介して反映され得る。
集団を作成するためのコンテキストパネル
[0084]いくつかの態様では、コンテキストパネルは、ニューロンの集団に関連する可視化を提供し得る。たとえば、コンテキストパネルは、空間内のニューロンのレイアウトまたは配置に関するコンテキスト情報(たとえば、統計)を提供し得る。いくつかの態様では、開発環境は、集団作成を自動的に検出して、関連するインタラクティブな可視化でコンテキストパネルを起動し得る。さらに、集団に対応するコードは、インターフェースを介して表示されてもよく、ファイルに含まれてもよい。一例では、コンテキスト情報は、ユーザが、コードの対応するセクションにアクセスする(たとえば、作業する)とき(たとえば、エディタのカーソルまたはプロンプトが特定のコードセクションに提示されるとき、コードのセクションが焦点を合わせて視野内に表示されるとき、等)に表示され得る。
[0085]コンテキストパネルは、たとえば3次元(3−D)空間内の位置を示すことができ、新しく作成された集団ごとにラベルまたはタグを含み得る。いくつかの態様では、集団/ネットワークは、1次元、2次元、または3次元空間内で定義され得る。ラベルまたはタグは、集団の一部のパラメータを識別して修正し得る。一例では、ラベルはシミュレーションにおいて使用されるモデルニューロン(たとえば、COLDニューロンまたはLIFニューロン)を修正し得る。別の例では、ラベルは、ニューロンの集団の一部のニューロンパラメータを修正し得る。
[0086]モデルは、モデルを定義するプログラムコードを更新することによって更新され得る。コンテキストパネル内の情報は、可視化を介して、または可視化を操作することによって更新されて、反映され得る。同様に、モデルを定義するコードはまた、可視化を操作することによって更新され得る。たとえば、ニューロンの集団内のニューロンのパラメータが操作される、あるいは修正されると、パラメータにおける変更を反映するために対応するコードが更新され得る。
[0087]いくつかの態様では、ニューロン集団の空間的レイアウトは、コンテキストパネル内で提供され得る。このように、ニューラルネットワーク(たとえば、ニューロン集団)の空間的レイアウトは、別のツールに切り替えることなしに視覚的に検証され得る。いくつかの態様では、ニューラルネットワークの空間的レイアウトは、ニューラルネットワークを定義するコードの調整において反映されている空間的レイアウトを調整して操作され得る。いくつかの態様では、空間的レイアウトおよびそれへの調整は、リアルタイムに行われ得る。
[0088]いくつかの態様では、コンテキストパネルはまた、ニューロンの集団に関連するハードウェアレイアウトに関連する情報を提供し得る。このように、コンテキストパネルは、モデルを実装するために使用されるハードウェアと相関する統計情報とパフォーマンスメトリクスとを提供し得る。さらに、コンテキストパネルは、集団定義、または可視化の操作に基づいて、パフォーマンス推定とトレードオフ情報とを提供し得る。一例では、コンテキストパネルは、ニューロンの集団またはそれの一部に関連する電力消費に関連する可視化を提供し得る。さらなる例では、コンテキストパネルは、ニューロンの集団による計算負荷に関連する可視化を提供し得る。この情報を使用して、集団は、システムまたはモデル効率を改善するために、可視化を操作すること、またはプログラムコードセクションを更新することのいずれかによって修正され得る。
集団を接続するためのコンテキストパネル
[0089]いくつかの態様では、コンテキストパネルは、ニューロンの集団の接続性に関連する可視化を提供し得る。たとえば、開発環境は、ニューロモーフィックモデルの部分間の接続(たとえば、シナプス)を自動的に検出し得る。さらに、コンテキストパネルは、接続性情報をリアルタイムに表示するために、関連するインタラクティブな可視化で起動され得る。もちろん、これは単なる例示であり、コンテキストパネルは特定の集団または接続定義から独立して起動され得る。さらに、コンテキストパネルは、ニューラルネットワークの集団および接続を視覚的に定義するために使用され得、次に、定義はコード(たとえば、プログラムコードセクション902内のコード)内に反映され得る。
[0090]いくつかの態様では、ニューロモーフィックモデルの集団および/または他の部分の接続に対応するコードは、インターフェースを介して表示されてもよく、ファイルに含まれてもよい。一例では、コンテキスト情報は、ユーザが、コードの対応するセクションにアクセスする(たとえば、作業する)とき(たとえば、エディタのカーソルまたはプロンプトが特定のコードセクションに提示されるとき、コードのセクションが焦点を合わせて視野内に表示されるとき、等)に表示され得る。
[0091]たとえば、コンテキストパネルは、その接続を有する典型的なニューロンを示し得、またインタラクティブな接続操作のために構成され得る。これは、効果的および便利な方法で、ニューロンの集団間の接続性パターンの探査およびテストを可能にし得る。いくつかの態様では、インタラクティブな接続表示および接続操作はリアルタイムに提供され得る。
[0092]図10Aは、本開示の態様による、例示的なコードブロック1000を示す図である。ブロック1010は、ニューロンなどのアセットを定義するための例を提供する。この例示的なコードブロックでは、ニューロンは、抑制性COLDニューロンか、興奮性COLDニューロンのいずれかであり得る。もちろん、これは説明を容易にするための単なる例示であり、任意のタイプのニューロンが使用され得る。
[0093]ニューロンの集団を作成する例示的なコードが、ブロック1012で提供される。ブロック1012で、2つの異なるタイプの集団(たとえば、抑制性集団と興奮性集団)が、たとえばブロック1010で定義されたニューロンを使用して作成され得る。このように、ニューロンのグリッドが空間アライメントで定義され得る。
[0094]ブロック1014は、ニューロンの集団を接続するための例示的なコードを含む。この例では、集団は1対1方式で接続され得る。しかしながら、他の接続構成も可能である。たとえば、集団は1対10、または1対全の構成で接続され得る。
[0095]いくつかの態様では、ニューロモーフィックモデルの開発中に、シミュレーションおよびデータ可視化のためにコードのブロックが選択され得る。選択すると、コンテキストパネルは、対応するコンテキスト情報を提供するために表示され得る。
[0096]図10Bは、本開示の態様による、コンテキストパネルに含まれ得る例示的なデータ可視化機能1050を示す。図10Bに示されるように、データ可視化機能は、時間的関係におけるスパイクの発生のグラフィカル表現を提供するラスタプロット1052であり得る。別の例では、データ可視化機能は、ニューロモーフィックモデルにおけるニューロンの即時(instantaneous)活動(たとえば、スパイキング)を示すアクティビティマップ1054、および/またはヒートマップ1056であり得、ニューラル活動の時間平均化されたビューを提供し得る。
[0097]いくつかの態様では、データ可視化機能は接続性マップ1058であり得る。接続性マップ1058は、ニューロモーフィックモデル(たとえば、コードブロック1010、1012、および/または1014において定義されるような)内のニューロン(たとえば、1060)またはニューロンの集団の一部のレイアウトと接続をグラフィカルに示し得る。説明を容易にするために、接続性マップ1058は2次元で示されている。しかしながら、これは単なる例示であり、3次元または別の形式の可視化が同様に使用され得る。接続性マップ1058を使用して、ニューロモーフィックモデルは様々な角度から視覚的に観察され得る。たとえば、接続性マップ(たとえば、ニューロン)の要素を選択することによって、ニューロンまたはニューロンの集団のファンインおよび/あるいはファンアウトが表示され得る。
[0098]いくつかの態様では、ニューロンまたはそれへの接続は、データ可視化機能を介して調整され得る。たとえば、選択されたモデル要素のパラメータを調整するために、ニューロン、ニューロンの集団、またはニューロンを接続するシナプスが接続性マップを介して選択され得る。いくつかの態様では、選択されたモデル要素(1060)は、たとえば、あるタイプのニューロンまたはニューロンの集団なしにニューロモーフィックモデルの操作をシミュレートするために無効にされ得る。もちろん、これらはデータ可視化機能の単なる例示的な形式であり、他のタイプおよび/または組合せの可視化機能も利用され得る。
[0099]さらに、データ可視化機能を操作することによって、対応するコードが更新され得る。いくつかの態様では、データ可視化およびコード更新はリアルタイムに行われ得る。
[00100]図11は本開示の態様による、ニューロモーフィックモデルにおいてコンテキストフィードバックを生成するためのアーキテクチャ1100を示すブロック図を示す。本アーキテクチャは、統合開発エンジン(IDE)1102、コンパイラ1104、サーバ1106、および実行エンジン1108を含む。IDE1002は、ニューロモーフィックモデルを定義するモデルクラスのセットを生成するために使用され得る。モデルクラスのセットは、コンパイラ1104を介してコンパイルされ得る。いくつかの態様では、同調されるべきクラスの単一のインスタンスもコンパイラ1104に供給され得る。
[00101]コンパイルされたオブジェクトはサーバ1106に提供され得る。コンパイルされたオブジェクトのシミュレーションは、実行エンジン1108にロードされ得る。シミュレーションがロードされると、ニューロモーフィックモデルのパラメータが調整され得る。次に、更新されたパラメータがサーバ1106に供給され得て、シミュレーションにおいてリアルタイムに反映され得る。
[00102]いくつかの態様では、シミュレーションの結果がサーバ1106に供給され得る。他の態様では、シミュレーション結果は、ニューロモーフィックモデルを定義するモデルクラスの調整のためにIDE1102に供給され得る。
[00103]図12は、ニューロモーフィックモデルにおいてコンテキストフィードバックを生成する方法1200を示す。ブロック1202で、ニューロンモデルは、モデルの開発中に監視されるべきアセットを備えるニューロモーフィックモデルにおいてコンテキストフィードバックを生成する。さらに、ブロック1204で、ニューロンモデルは、コンテキストフィードバックに基づいて表現を示すためにインタラクティブコンテキストパネルを表示する。
[00104]いくつかの態様では、表現がリアルタイムに提供され得る。他の態様では、本方法は、モデルの実行に基づいてインタラクティブコンテキストパネルを更新することをさらに含み得る。他の態様では、本方法は、モデルに対応するコードを更新するためにコンテキストパネルを操作することをさらに含み得る。他の態様では、本方法は、コンテキストパネルを更新するために、モデルに対応するコードを更新することを含み得る。
[00105]上述した方法の様々な動作は、対応する機能を実行することが可能な任意の好適な手段によって実行され得る。それらの手段は、限定はしないが、回路、特定用途向け集積回路(ASIC)、またはプロセッサを含む、様々なハードウェアおよび/またはソフトウェア構成要素および/またはモジュールを含み得る。概して、図に示されている動作がある場合、それらの動作は、同様の番号をもつ対応するカウンターパートのミーンズプラスファンクション構成要素を有し得る。
[00106]本明細書で使用する「決定」という用語は、多種多様なアクションを包含する。たとえば、「決定」は、計算すること、算出すること、処理すること、導出すること、調査すること、ルックアップすること(たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること)、確認することなどを含み得る。さらに、「決定」は、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリ中のデータにアクセスすること)などを含み得る。さらに、「決定」は、解決すること、選択すること、選定すること、確立することなどを含み得る。
[00107]本明細書で使用する、項目のリスト「のうちの少なくとも1つ」を指す句は、単一のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、a−b、a−c、b−c、およびa−b−cを包含するものとする。
[00108]本開示に関連して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)または他のプログラマブル論理デバイス(PLD)、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラまたは状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
[00109]本開示に関連して説明した方法またはプロセスのステップは、ハードウェアで直接実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、当技術分野で知られている任意の形式の記憶媒体で存在し得る。使用され得る記憶媒体のいくつかの例は、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、フラッシュメモリ、消去可能プログラマブル読出し専用メモリ(EPROM)、電気的消去可能プログラマブル読出し専用メモリ(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、CD−ROMなどを含む。ソフトウェアモジュールは、単一の命令、または多数の命令を備えることができ、いくつかの異なるコードセグメント上で、異なるプログラム間で、複数の記憶媒体にわたって分散され得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取ることができ、その記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体化され得る。
[00110]本明細書で開示する方法は、説明した方法を達成するための1つまたは複数のステップまたはアクションを備える。本方法のステップおよび/またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく変更され得る。
[00111]説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ハードウェアで実装される場合、例示的なハードウェア構成はデバイス中に処理システムを備え得る。処理システムは、バスアーキテクチャを用いて実装され得る。バスは、処理システムの特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスとブリッジとを含み得る。バスは、プロセッサと、機械可読媒体と、バスインターフェースとを含む様々な回路を互いにリンクし得る。バスインターフェースは、ネットワークアダプタを、特に、バスを介して処理システムに接続するために使用され得る。ネットワークアダプタは、信号処理機能を実装するために使用され得る。いくつかの態様では、ユーザインターフェース(たとえば、キーパッド、ディスプレイ、マウス、ジョイスティックなど)もバスに接続され得る。バスはまた、タイミングソース、周辺機器、電圧調整器、電力管理回路などの様々な他の回路にリンクし得るが、それらは当技術分野でよく知られており、したがってこれ以上は説明されない。
[00112]プロセッサは、機械可読媒体に記憶されたソフトウェアの実行を含む、バスおよび一般的な処理を管理することを担当し得る。プロセッサは、1つまたは複数の汎用および/または専用プロセッサを用いて実装され得る。例としては、マイクロプロセッサ、マイクロコントローラ、DSPプロセッサ、およびソフトウェアを実行し得る他の回路を含む。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、命令、データ、またはそれらの任意の組合せを意味すると広く解釈されたい。機械可読媒体は、一例として、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読出し専用メモリ(ROM)、プログラマブル読出し専用メモリ(PROM)、消去可能プログラマブル読出し専用メモリ(EPROM)、電気的消去可能プログラム可能読出し専用メモリ(EEPROM)、レジスタ、磁気ディスク、光ディスク、ハードドライブ、または他の任意の適切な記憶媒体、あるいはそれらの任意の組合せを含み得る。機械可読媒体はコンピュータプログラム製品において実施され得る。コンピュータプログラム製品はパッケージング材料を備え得る。
[00113]ハードウェア実装形態では、機械可読媒体は、プロセッサとは別個の処理システムの一部であり得る。しかしながら、当業者なら容易に理解するように、機械可読媒体またはその任意の部分は処理システムの外部にあり得る。例として、機械可読媒体は、すべてバスインターフェースを介してプロセッサによってアクセスされ得る、伝送線路、データによって変調された搬送波、および/またはデバイスとは別個のコンピュータ製品を含み得る。代替的に、または追加で、機械可読媒体またはその任意の部分は、キャッシュおよび/または汎用レジスタファイルがそうであり得るように、プロセッサに統合され得る。論じた様々な構成要素は、ローカル構成要素などの特定の位置を有するものとして説明され得るが、それらはまた、分散コンピューティングシステムの一部として構成されているいくつかの構成要素などの様々な方法で構成され得る。
[00114]処理システムは、すべて外部バスアーキテクチャを介して他のサポート回路と互いにリンクされる、プロセッサ機能を提供する1つまたは複数のマイクロプロセッサと、機械可読媒体の少なくとも一部分を提供する外部メモリとをもつ汎用処理システムとして構成され得る。あるいは、処理システムは、本明細書に記載のニューロンモデルとニューラルシステムのモデルとを実装するための1つまたは複数のニューロモーフィックプロセッサを備え得る。別の代替として、処理システムは、プロセッサを有する特定用途向け集積回路(ASIC)と、バスインターフェースと、ユーザインターフェースと、サポート回路と、単一のチップに統合された機械可読媒体の少なくとも一部とを用いて、あるいは1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、または他の任意の適切な回路、あるいは本開示全体を通じて説明した様々な機能を実行し得る回路の任意の組合せを用いて実装され得る。当業者なら、特定の適用例と、全体的なシステムに課される全体的な設計制約とに応じて、どのようにしたら処理システムについて説明した機能を最も良く実装し得るかを理解されよう。
[00115]機械可読媒体はいくつかのソフトウェアモジュールを備え得る。ソフトウェアモジュールは、プロセッサによって実行されたときに、処理システムに様々な機能を実行させる命令を含む。ソフトウェアモジュールは、送信モジュールと受信モジュールとを含み得る。各ソフトウェアモジュールは、単一の記憶デバイス中に常駐するか、または複数の記憶デバイスにわたって分散され得る。例として、トリガイベントが発生したとき、ソフトウェアモジュールがハードドライブからRAMにロードされ得る。ソフトウェアモジュールの実行中、プロセッサは、アクセス速度を高めるために、命令のいくつかをキャッシュにロードし得る。次いで、1つまたは複数のキャッシュラインが、プロセッサによる実行のために汎用レジスタファイルにロードされ得る。以下でソフトウェアモジュールの機能に言及する場合、そのような機能は、そのソフトウェアモジュールからの命令を実行したときにプロセッサによって実装されることが理解されよう。
[00116]ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体を適切に名づけられる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線(IR)、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は非一時的コンピュータ可読媒体(たとえば、有形媒体)を備え得る。さらに、他の態様では、コンピュータ可読媒体は一時的コンピュータ可読媒体(たとえば、信号)を備え得る。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[00117]したがって、いくつかの態様は、本明細書で提示する動作を実行するためのコンピュータプログラム製品を備え得る。たとえば、そのようなコンピュータプログラム製品は、本明細書で説明する動作を実行するために1つまたは複数のプロセッサによって実行可能である命令を記憶した(および/または符号化した)コンピュータ可読媒体を備え得る。いくつかの態様では、コンピュータプログラム製品はパッケージング材料を含み得る。
[00118]さらに、本明細書で説明した方法および技法を実行するためのモジュールおよび/または他の適切な手段は、適用可能な場合にユーザ端末および/または基地局によってダウンロードされ、および/または他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明した方法を実施するための手段の転送を可能にするためにサーバに結合され得る。代替的に、本明細書で説明した様々な方法は、ユーザ端末および/または基地局が記憶手段をデバイスに結合または提供すると様々な方法を得ることができるように、記憶手段(たとえば、RAM、ROM、コンパクトディスク(CD)またはフロッピーディスクなどの物理記憶媒体など)によって提供され得る。その上、本明細書で説明した方法および技法をデバイスに与えるための任意の他の好適な技法が利用され得る。
[00119]特許請求の範囲は、上記で示した厳密な構成および構成要素に限定されないことを理解されたい。上記で説明した方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
[00119]特許請求の範囲は、上記で示した厳密な構成および構成要素に限定されないことを理解されたい。上記で説明した方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ニューロモーフィックモデルの開発中に監視されるべき少なくとも1つのアセットを備える前記ニューロモーフィックモデルにおいてコンテキストフィードバックを生成することと、
前記コンテキストフィードバックに少なくとも部分的に基づいて表現を示すためにインタラクティブコンテキストパネルを表示することと
を備える、方法。
[C2]
前記モデルの実行に基づいて、前記インタラクティブコンテキストパネルを更新することをさらに備える、C1に記載の方法。
[C3]
前記表現がリアルタイムに発生する、C1に記載の方法。
[C4]
前記ニューロモーフィックモデルに対応するコードを更新するために、前記インタラクティブコンテキストパネルを操作することをさらに備える、C1に記載の方法。
[C5]
前記インタラクティブコンテキストパネルを更新するために、前記ニューロモーフィックモデルに対応するコードを更新することをさらに備える、C1に記載の方法。
[C6]
前記インタラクティブコンテキストパネルが、前記ニューロモーフィックモデルのダイナミクスに関連するパラメータのコンテキスト情報を示す、C1に記載の方法。
[C7]
前記表現が、前記ニューロモーフィックモデルにおける1つまたは複数のニューロンのレイアウト、または、前記ニューロモーフィックモデルにおけるニューロンの接続性、のうちの少なくとも1つの画像表示を含む、C1に記載の方法。
[C8]
前記コンテキストフィードバックが、前記ニューロモーフィックモデルのハードウェアレイアウトに関連する情報を含む、C1に記載の方法。
[C9]
前記情報が、電力消費または計算負荷のうちの少なくとも1つを備える、C8に記載の方法。
[C10]
メモリと、
前記メモリに結合された少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサが、
ニューロモーフィックモデルの開発中に監視されるべき少なくとも1つのアセットを備える前記ニューロモーフィックモデルにおいてコンテキストフィードバックを生成して、
前記コンテキストフィードバックに少なくとも部分的に基づいて表現を示すためにインタラクティブコンテキストパネルを表示する
ように構成されている、装置。
[C11]
前記少なくとも1つのプロセッサが、前記モデルの実行に基づいて、前記インタラクティブコンテキストパネルを更新するようにさらに構成される、C10に記載の装置。
[C12]
前記少なくとも1つのプロセッサが、前記表現をリアルタイムに表示するようにさらに構成される、C10に記載の装置。
[C13]
前記少なくとも1つのプロセッサが、前記ニューロモーフィックモデルに対応するコードを更新するために、前記インタラクティブコンテキストパネルを操作するようにさらに構成される、C10に記載の装置。
[C14]
前記少なくとも1つのプロセッサが、前記インタラクティブコンテキストパネルを更新するために、前記ニューロモーフィックモデルに対応するコードを更新するようにさらに構成される、C10に記載の装置。
[C15]
前記インタラクティブコンテキストパネルが、前記ニューロモーフィックモデルのダイナミクスに関連するパラメータのコンテキスト情報を示す、C10に記載の装置。
[C16]
前記表現が、前記ニューロモーフィックモデルにおける1つまたは複数のニューロンのレイアウト、または、前記ニューロモーフィックモデルにおけるニューロンの接続性、のうちの少なくとも1つの画像表示を含む、C10に記載の装置。
[C17]
前記コンテキストフィードバックが、前記ニューロモーフィックモデルのハードウェアレイアウトに関連する情報を含む、C10に記載の装置。
[C18]
前記情報が、電力消費または計算負荷のうちの少なくとも1つを備える、C17に記載の装置。
[C19]
ニューロモーフィックモデルの開発中に監視されるべき少なくとも1つのアセットを備える前記ニューロモーフィックモデルにおいてコンテキストフィードバックを生成するための手段と、
前記コンテキストフィードバックに少なくとも部分的に基づいて表現を示すためにインタラクティブコンテキストパネルを表示するための手段と
を備える、装置。
[C20]
プログラムコードを符号化した非一時的コンピュータ可読媒体を備え、前記プログラムコードが、
ニューロモーフィックモデルの開発中に監視されるべき少なくとも1つのアセットを備える前記ニューロモーフィックモデルにおいてコンテキストフィードバックを生成するためのプログラムコードと、
前記コンテキストフィードバックに少なくとも部分的に基づいて表現を示すためにインタラクティブコンテキストパネルを表示するためのプログラムコードと
を備える、コンピュータプログラム製品。