(57)【要約】  人工神経システムを検査するためにブレークポイント決定ユニットを用いるための方法および装置。一例である方法は一般に、人工神経システムの少なくとも一部を動作させることと、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用いることと、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも１つを行うことと、を含む。
2016532216.tif 000002
【特許請求の範囲】
【請求項１】
人工神経システムを検査するためにブレークポイント決定ユニットを用いるための方法であって、
前記人工神経システムの少なくとも一部を動作させることと、
前記人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用いることと、
前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留すること、検査すること、修正すること、またはフラグ付けすることのうちの少なくとも１つと、
を備える方法。
【請求項２】
前記検出に少なくとも部分的に基づいて、前記条件のインジケーションを出力することと、
前記インジケーションに少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作を保留、検査、修正、またはフラグ付けのうちの少なくとも１つ行うと決定することと、
をさらに備える請求項１に記載の方法。
【請求項３】
前記条件のインジケーションは、割込み、フラグが設定されていること、またはステータス・レジスタにおける変化、のうちの少なくとも１つを備える、請求項２に記載の方法。
【請求項４】
前記ブレークポイント決定ユニットは、前記条件のインジケーションを出力するように構成される、請求項２に記載の方法。
【請求項５】
前記条件のインジケーションは、前記人工神経システムにおける１つまたは複数の構成要素の１つまたは複数の特性の警告を提供する、請求項４に記載の方法。
【請求項６】
前記ブレークポイント決定ユニットは、前記検出に少なくとも部分的に基づいてイベント送信機をトリガするように構成され、前記イベント送信機は、前記条件のインジケーションを出力するように構成される、請求項２に記載の方法。
【請求項７】
前記イベント送信機は、トリガされた後、条件のインジケーションを、現在の時間ステップの終了時、次の時間ステップの前、または、予め決定された数の時間ステップの経過後、直ちに出力するように構成される、請求項６に記載の方法。
【請求項８】
前記条件は、前記１つまたは複数の構成要素からの、スパイク・イベント、スパイク・イベントの予測、スパイク・イベントの結合、スパイク・イベントの結合の予測、またはこれらの任意の組合せ、のうちの少なくとも１つを備える、請求項１に記載の方法。
【請求項９】
前記条件は、特定の時間ウィンドウ内で生じるスパイク・イベントの組合せを備える、請求項８に記載の方法。
【請求項１０】
前記条件は、しきい値を満たすか、または超える前記ブレークポイント決定ユニットの状態を備える、請求項１に記載の方法。
【請求項１１】
前記条件は、スパイク・レート、または、前記スパイク・レートの予測に、少なくとも部分的に基づく、請求項１に記載の方法。
【請求項１２】
前記条件は、前記１つまたは複数の構成要素の少なくとも１つのパラメータが、予め決定された量変化したことに少なくとも部分的に基づく、請求項１に記載の方法。
【請求項１３】
前記ブレークポイント決定ユニットは、人工ニューロンと同じ機能のうちの少なくとも幾つかを有する、請求項１に記載の方法。
【請求項１４】
前記ブレークポイント決定ユニットは、活性化された後に１つまたは複数のスパイク・イベントを出力するように構成された、請求項１３に記載の方法。
【請求項１５】
前記検出の前に、モニタされるべき前記１つまたは複数の構成要素と前記条件で、前記ブレークポイント決定ユニットを構成すること、をさらに備える請求項１に記載の方法。
【請求項１６】
人工神経システムを検査するためにブレークポイント決定ユニットを用いるための装置であって、
前記人工神経システムの少なくとも一部を動作させ、
前記人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用い、
前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも１つを行う、
ように構成された処理システムと、
前記処理システムに結合されたメモリと、
を備える装置。
【請求項１７】
前記処理システムはさらに、前記検出に少なくとも部分的に基づいて、前記条件のインジケーションを出力し、
前記インジケーションに少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも１つを行うと決定する、
ように構成された、請求項１６に記載の装置。
【請求項１８】
前記条件のインジケーションは、割込み、フラグが設定されていること、またはステータス・レジスタにおける変化、のうちの少なくとも１つを備える、請求項１７に記載の装置。
【請求項１９】
前記ブレークポイント決定ユニットは、前記条件のインジケーションを出力するように構成される、請求項１７に記載の装置。
【請求項２０】
前記条件のインジケーションは、前記人工神経システムにおける１つまたは複数の構成要素の１つまたは複数の特性の警告を提供する、請求項１９に記載の装置。
【請求項２１】
前記ブレークポイント決定ユニットは、前記検出に少なくとも部分的に基づいてイベント送信機をトリガするように構成され、前記イベント送信機は、前記条件のインジケーションを出力するように構成される、請求項１７に記載の装置。
【請求項２２】
前記イベント送信機は、トリガされた後、条件のインジケーションを、現在の時間ステップの終了時、次の時間ステップの前、または、予め決定された数の時間ステップの経過後、直ちに出力するように構成された、請求項２１に記載の装置。
【請求項２３】
前記条件は、前記１つまたは複数の構成要素からの、スパイク・イベント、スパイク・イベントの予測、スパイク・イベントの結合、スパイク・イベントの結合の予測、またはこれらの任意の組合せ、のうちの少なくとも１つを備える、請求項１６に記載の装置。
【請求項２４】
前記条件は、特定の時間ウィンドウ内で生じるスパイク・イベントの組合せを備える、請求項２３に記載の装置。
【請求項２５】
前記条件は、しきい値を満たすか、または超える前記ブレークポイント決定ユニットの状態を備える、請求項１６に記載の装置。
【請求項２６】
前記条件は、スパイク・レート、または、前記スパイク・レートの予測に、少なくとも部分的に基づく、請求項１６に記載の装置。
【請求項２７】
前記条件は、前記１つまたは複数の構成要素の少なくとも１つのパラメータが、予め決定された量変化したことに少なくとも部分的に基づく、請求項１６に記載の装置。
【請求項２８】
前記ブレークポイント決定ユニットは、人工ニューロンと同じ機能のうちの少なくとも幾つかを有する、請求項１６に記載の装置。
【請求項２９】
前記ブレークポイント決定ユニットは、活性化された後に１つまたは複数のスパイク・イベントを出力するように構成された、請求項２８に記載の装置。
【請求項３０】
前記処理システムはさらに、前記検出の前に、モニタされるべき前記１つまたは複数の構成要素と前記条件で、前記ブレークポイント決定ユニットを構成するように適合された請求項１６に記載の装置。
【請求項３１】
人工神経システムを検査するためにブレークポイント決定ユニットを用いるための装置であって、
前記人工神経システムの少なくとも一部を動作させるための手段と、
前記人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用いるための手段と、
前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも１つを行うための手段と、
を備える装置。
【請求項３２】
人工神経システムを検査するためにブレークポイント決定ユニットを用いるためのコンピュータ・プログラム製品であって、
前記人工神経システムの少なくとも一部を動作させ、
前記人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用い、
前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも１つを行う、
ための実行可能な命令を有する非一時的なコンピュータ読取可能な媒体を備える、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
３５  Ｕ．Ｓ．Ｃ．１１９の下の優先権主張
[0001]本願は、ともにその全体が参照によって本明細書に組み込まれている、２０１３年９月３日出願の米国仮特許出願６１／８７３，０４４号と、２０１４年５月１９日出願の米国特許出願１４／２８１，１１８号との優先権を主張する。
【０００２】
[0002]本開示の幾つかの態様は一般に、人工神経システムに関し、さらに詳しくは、ニューラル処理システムにおいて、１つまたは複数のブレークポイント決定ユニットを用いることに関する。
【背景技術】
【０００３】
[0003]人工ニューラル・ネットワークは、相互結合された人工ニューロンのグループ（すなわち、ニューラル処理ユニット）を備え得、計算デバイスであるか、または、計算デバイスによって実行されるべき方法を表す。人工ニューラル・ネットワークは、生物学的なニューラル・ネットワークにおける対応する構成および／または関数を有しうる。しかしながら、人工ニューラル・ネットワークは、従来の計算技術が、扱いにくい、非現実的、または不適切である幾つかのアプリケーションのための革新的かつ有用な計算技術を提供しうる。人工ニューラル・ネットワークは、観察から関数を推論しうるので、そのようなネットワークは、タスクまたはデータの複雑さが、従来技術による関数の設計を面倒にするアプリケーションにおいて特に有用である。
【０００４】
[0004]人工ニューラル・ネットワークの１つのタイプは、ニューロン状態およびシナプス状態のみならず、時間の概念をその動作モデルに組み込んだスパイク・ニューラル・ネットワークである。これによって、豊富な挙動の集合を提供し、ここから、計算機能が、ニューラル・ネットワークにおいて出現しうる。スパイク・ニューラル・ネットワークは、特定の時間において、または、ニューロンの状態に基づく時間において、ニューロンが発火する、すなわち「スパイクする」概念に基づいており、この時間は、ニューロン機能に重要である。ニューロンが発火した場合、それは、他のニューロンへ転送するスパイクを生成する一方、他のニューロンは、このスパイクが受け取られた時間に基づいて、その状態を調節しうる。言い換えれば、情報は、ニューラル・ネットワークにおけるスパイクの相対的または絶対的なタイミングでエンコードされうる。
【発明の概要】
【０００５】
[0005]本開示の幾つかの態様は一般に、人工神経システムにおけるブレークポイント決定ユニットを実現することに関する。
【０００６】
[0006]本開示の幾つかの態様は、人工神経システムを検査するためにブレークポイント決定ユニットを用いるための方法を提供する。この方法は一般に、人工神経システムの少なくとも一部を動作させることと、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用いることと、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも１つを行うことと、を含む。
【０００７】
[0007]本開示の幾つかの態様は、人工神経システムを検査するために、ブレークポイント決定ユニットを用いるための装置を提供する。この装置は一般に、処理システムと、処理システムに結合されたメモリとを含んでいる。処理システムは典型的には、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも１つを行う、ように構成される。
【０００８】
[0008]本開示の幾つかの態様は、人工神経システムを検査するために、ブレークポイント決定ユニットを用いるための装置を提供する。この装置は一般に、人工神経システムの少なくとも一部を動作させるための手段と、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用いるための手段と、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも１つを行うための手段と、を含む。
【０００９】
[0009]本開示の幾つかの態様は、人工神経システムを検査するためにブレークポイント決定ユニットを用いるためのコンピュータ・プログラム製品を提供する。このコンピュータ・プログラム製品は一般に、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも１つを行う、ように実行可能な命令を有するコンピュータ読取可能な媒体（例えば、ストレージ・デバイスまたはその他の非一時的な媒体）を含む。
【００１０】
[0010]本開示の前述した特徴が、より詳細に理解される方式で、簡潔に要約された上記具体的な記載が、態様に対する参照によってなされている。そして、それらの幾つかは、添付図面で例示されている。しかしながら、この記載は、その他の等しく有効な態様に対しても適合するので、添付図面は、本開示のある典型的な態様のみを示しており、この範囲を限定するものとしては考慮されるべきではないことが注目されるべきである。
【図面の簡単な説明】
【００１１】
【図１】[0011]図１は、本開示の幾つかの態様に従うニューロンの例示的なネットワークを例示する。
【図２】[0012]図２は、本開示の幾つかの態様に従う、計算ネットワーク（ニューラル・システムまたはニューラル・ネットワーク）の例示的な処理ユニット（ニューロン）を例示する。
【図３】[0013]図３は、本開示の幾つかの態様に従う、例示的なスパイク・タイミング依存塑性（ＳＴＤＰ：spike-timing dependent plasticity）曲線を例示する。
【図４】[0014]図４は、本開示の幾つかの態様に従う、ニューロンの挙動を定義するための肯定的レジームおよび否定的レジームを例示する人工ニューロンのための状態の例示的なグラフである。
【図５】[0015]図５は、本開示の幾つかの態様に従う、ブレークポイント・ニューロンを有する例示的なニューラル処理システムを例示する。
【図６】[0016]図６は、本開示の幾つかの態様に従う、ブレークポイント決定ユニットのための例示的なステート・マシンを例示する。
【図７】[0017]図７は、本開示の幾つか態様に従って、ブレークポイント・ニューロンを用いる同時イベント処理のための例示的なタイミング図を例示する。
【図８】[0018]図８は、本開示の幾つかの態様に従って、ブレークポイント・ニューロンを用いる遅延イベント処理のための例示的なタイミング図である。
【図９】[0019]図９は、本開示の幾つかの態様に従って、ブレークポイント決定ユニットを用いて人工神経システムを検査するための例示的な動作のフロー図である。
【図９Ａ】[0020]図９Ａは、図９に図示された動作を実行することが可能な例示的な手段を例示する。
【図１０】[0021]図１０は、本開示の幾つかの態様に従って、汎用プロセッサを用いて、人工神経システムの少なくとも一部の検査を実施するための例示的な構成要素を例示する。
【図１１】[0022]図１１は、本開示の幾つかの態様に従って、メモリが、分散された個々の処理ユニットとインタフェースされうる人工神経システムの少なくとも一部の検査を実施するための例示的な構成要素を例示する。
【図１２】[0023]図１２は、本開示の幾つかの態様に従って、分散されたメモリおよび分散された処理ユニットに基づいて、人工神経システムの少なくとも一部の検査を実施するための例示的な構成要素を例示する。
【図１３】[0024]図１３は、本開示の幾つかの態様に従う、ニューラル・ネットワークの例示的な実装を例示する。
【発明を実施するための形態】
【００１２】
[0025]本開示のさまざまな態様は、添付図面を参照して以下により十分に記載される。しかしながら、本開示は、異なる多くの形態で具体化され、本開示を通じて示されたどの具体的な構成または機能にも限定されるものとは解釈されるべきではない。むしろ、これらの態様は、本開示が十分で完全であり、本開示の範囲を当業者に十分に伝達できるように提供される。本明細書における教示に基づいて、当業者は、本開示の範囲は、独立して実施されようが、あるいは、本開示の任意の他の態様と組み合わされようが、本明細書で示された開示の態様をカバーすることが意図されていることを認識すべきである。例えば、本明細書に記載された任意の数の態様を用いて装置が実施され、方法が実現されうる。さらに、本開示の範囲は、別の構成、機能、または、本明細書に記載された開示のさまざまな態様またはそれ以外の態様が追加された構成および機能を用いて実現される装置または方法をカバーすることが意図されている。本明細書で示された開示のあらゆる態様は、特許請求の範囲の１または複数の要素によって具体化されうる。
【００１３】
[0026]「典型的である」という単語は「例、事例、あるいは実例として役立つ」ことを意味するために本明細書で使用される。本明細書において「典型的」と記載されるいかなる態様も、他の態様よりも好適であるとか、有利であると必ずしも解釈される必要はない。
【００１４】
[0027]本明細書では、特定の態様が記載されているが、これら態様の多くの変形および置換が、本開示の範囲内にある。好適な態様の幾つかの利点および長所が述べられているが、本開示の範囲は、特定の利点、使用、および目的に限定されることは意図されていない。むしろ、本開示の態様は、このうちの幾つかが図面における例示によって、および、以下の好適な態様の記載によって例示されている異なる技術、システム構成、ネットワークおよびプロトコルに広く適用可能であることが意図されている。詳細な記載および図面は、限定ではない開示の単なる例示であり、本開示の範囲は、特許請求の範囲およびその均等物によって定義される。
【００１５】
例示的なニューラル・システム
[0028]図１は、本開示の幾つかの態様に従って複数レベルのニューロンを備えた例示的なニューラル・ネットワーク１００を例示する。ニューラル・システム１００は、シナプス結合１０４（すなわち、フィード・フォワード結合）のネットワークによって、別のレベルのニューロン１０６に結合されたレベルのニューロン１０２を備えうる。簡略のために、図１には２つのレベルのニューロンしか例示されていないが、それよりも少ないまたは多いレベルのニューロンが、典型的なニューラル・システムに存在しうる。ニューロンのうちの幾つかは、側面結合（lateral connection）によって同じ層の他のニューロンへ結合しうることが注目されるべきである。さらに、ニューロンのうちの幾つかは、フィードバック結合によって、前の層のニューロンに戻って結合しうる。
【００１６】
[0029]図１に例示されるように、レベル１０２における各ニューロンは、（図１に図示されていない）前のレベルの複数のニューロンによって生成されうる入力信号１０８を受け取りうる。信号１０８は、レベル１０２のニューロンへの入力（例えば、入力電流）を提示しうる。そのような入力は、膜電位を充電するために、ニューロン・メンブレンに蓄積されうる。膜電位が、そのしきい値に達した場合、ニューロンは発火し、次のレベル（例えば、レベル１０６）のニューロンへ転送されるべき出力スパイクを生成しうる。そのような挙動は、アナログおよびデジタルによる実施を含む、ハードウェアおよび／またはソフトウェアにおいてエミュレートまたはシミュレートされうる。
【００１７】
[0030]生物学的なニューロンでは、ニューロンが発火した場合に生成される出力スパイクは、活動電位と称される。この電気信号は、比較的迅速で、一時的な、あるかないかの神経インパルスであり、約１００ミリ・ボルトの振幅と、約１ミリ秒の持続時間とを有する。結合されている一連のニューロンを有するニューラル・システムの特定の態様（例えば、図１におけるニューロンの１つのレベルから別のレベルへのスパイクの転送）では、すべての活動電位は基本的に、同じ振幅および持続時間を有し、従って、信号における情報は、周波数およびスパイクの数（または、スパイクの時間）によってのみ表され、振幅によって表されない。活動電位によって伝送される情報は、スパイク、スパイクしたニューロン、および、１つまたは複数の他のスパイクに対するスパイクの時間によって決定される。
【００１８】
[0031]図１に例示されるように、ニューロンの１つのレベルから別のレベルへのスパイクの転送は、シナプス結合（または単に「シナプス」）１０４のネットワークによって達成されうる。シナプス１０４は、レベル１０２ニューロン（シナプス１０４に対するプレ・シナプス・ニューロン）から出力信号（すなわち、スパイク）を受け取りうる。幾つかの態様の場合、これら信号は、調節可能なシナプス重み
【数１】
2016532216.tif 000003
，…，
【数２】
2016532216.tif 000004
に従ってスケールされうる（ここで、Ｐは、レベル１０２のニューロンとレベル１０６のニューロンとの間のシナプス結合の合計数である）。他の態様の場合、シナプス１０４は、何れのシナプス重みも適用しないことがありうる。さらに、（スケールされた）信号は、レベル１０６における各ニューロン（シナプス１０４に対するポスト・シナプス・ニューロン）の入力信号として結合されうる。レベル１０６におけるすべてのニューロンは、対応する結合された入力信号に基づいて、出力スパイク１１０を生成しうる。その後、出力スパイク１１０は、シナプス結合の別のネットワークを用いて、別のレベルのニューロンへ転送されうる（図１に図示されず）。
【００１９】
[0032]生物学的なシナプスは、電気的または化学的の何れかに分類されうる。電気的なシナプスは主として興奮性信号を送るために使用されるが、化学的なシナプスは、ポスト・シナプス・ニューロンにおける興奮性または抑制的な（過分極化）動作を仲介し、ニューロン信号を増幅するためにも役立ちうる。興奮性信号は典型的には、膜電位を脱分極する（すなわち、静止電位に対する膜電位を増加させる）。しきい値を超えて膜電位を脱分極するために、十分な興奮性信号が、ある期間内に受け取られたのであれば、ポスト・シナプス・ニューロンにおいて活動電位が生じる。一方、抑制信号が一般に膜電位を過分極化（すなわち、低下）させる。抑制信号は、十分に強いのであれば、興奮性信号の総和を打ち消し、膜電位が、しきい値に達することを阻止できうる。シナプス興奮を打ち消すことに加えて、シナプス抑制は、自発的に活動的なニューロンに対して強力な制御を及ぼしうる。自発的に活動的になったニューロンは、たとえば、それのダイナミクスまたはフィードバックに起因するさらなる入力なしにスパイクするニューロンを指す。これらニューロンにおける活動電位の自発的な生成を抑制することによって、シナプス抑制が、ニューロンにおける発火のパターンを形成できうる。これは一般にスカルプチャリングと称される。さまざまなシナプス１０４は、所望される挙動に依存して、興奮シナプスまたは抑制シナプスの任意の組合せとして動作しうる。
【００２０】
[0033]ニューラル・システム１００は、汎用プロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）またはその他のプログラマブル論理デバイス（ＰＬＤ）、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア構成要素、プロセッサによって実行されるソフトウェア・モジュール、または、およびこれらの任意の組合せによってエミュレートされうる。ニューラル・システム１００は、画像およびパターン認識、マシン学習、モータ制御等のような、広い応用範囲において利用されうる。ニューラル・システム１００における各ニューロンは、ニューロン回路として実現されうる。出力スパイクを発生させるしきい値に荷電されたニューロン膜は、例えば、そこを流れる電流を積分するキャパシタとして実現されうる。
【００２１】
[0034]態様では、キャパシタは、ニューロン回路の電流積分デバイスとして除かれ得、より小さなメモリスタ素子が、その場所に使用されうる。このアプローチは、ニューロン回路においてのみならず、大きなキャパシタが電流積分器として利用されるその他さまざまなアプリケーションにおいても適用されうる。さらに、シナプス１０４の各々は、メモリスタ素子に基づいて実現され、ここでは、シナプス重み変化が、メモリスタ抵抗の変化に関連しうる。ナノメータ・フィーチャ・サイズのメモリスタを用いて、シナプスおよびニューロン回路のエリアは、実質的に低減されうる。これは、非常に大規模なニューラル・システム・ハードウェア実装を現実的に実現しうる。
【００２２】
[0035]ニューラル・システム１００をエミュレートするニューラル・プロセッサの機能は、シナプス結合の重みに依存しうる。これは、ニューロン間の結合の強度を制御しうる。シナプス重みは、パワー・ダウン後のプロセッサの機能を保存するために、不揮発性メモリに記憶されうる。態様では、シナプス重みメモリは、メイン・ニューラル・プロセッサ・チップとは別の外部チップ上に実装されうる。シナプス重みメモリは、リプレース可能なメモリ・カードとして、ニューラル・プロセッサ・チップとは別にパッケージされうる。これは、ニューラル・プロセッサへ種々の機能を提供しうる。ここでは、特定の機能が、ニューラル・プロセッサに現在取り付けられているメモリ・カードに記憶されたシナプス重みに基づきうる。
【００２３】
[0036]図２は、本開示の幾つかの態様に従う、計算ネットワーク（例えば、ニューラル・システムまたはニューラル・ネットワーク）の処理ユニット（例えば、人工ニューロン２０２）の例２００を例示する。例えば、ニューロン２０２は、図１からのレベル１０２およびレベル１０６のニューロンのうちの何れかに対応しうる。ニューロン２０２は、複数の入力信号２０４１−２０４Ｎ（ｘ１−ｘＮ）を受け取り得、これは、ニューロン・システムの外部の信号、または、同じニューロン・システムの他のニューロンによって生成された信号、またはその両方でありうる。入力信号は、実数値または複素数値である電流または電圧でありうる。入力信号は、固定小数点または浮動小数点の表示を備えた数値を備えうる。これらの入力信号は、調節可能なシナプス重み２０６１−２０６Ｎ（ｗ１−ｗＮ）に従って、信号をスケールするシナプス結合を介してニューロン２０２へ伝達され得、ここで、Ｎは、ニューロン２０２の入力結合の総数でありうる。
【００２４】
[0037]ニューロン２０２は、スケールされた入力信号を合成し、合成されたスケールされた入力を用いて、出力信号２０８（すなわち、信号ｙ）を生成しうる。出力信号２０８は、実数値または複素数値である電流または電圧でありうる。出力信号は、固定小数点または浮動小数点の表示を備えた数値を備えうる。出力信号２０８は、その後、同じニューラル・システムの他のニューロンへの入力信号として、または、同じニューロン２０２への入力信号として、または、ニューラル・システムの出力として転送されうる。
【００２５】
[0038]処理ユニット（ニューロン２０２）は、電気的な回路によってエミュレートされ、その入力結合および出力結合は、シナプス回路を用いて配線によってエミュレートされうる。処理ユニット、その入力結合および出力結合はまた、ソフトウェア・コードによってエミュレートされうる。処理ユニットはまた、電気回路によってエミュレートされうる一方、その入力結合および出力結合は、ソフトウェア・コードによってエミュレートされうる。態様では、計算ネットワークにおける処理ユニットは、アナログ電気回路を備えうる。別の態様では、処理ユニットは、デジタル電気回路を備えうる。また別の態様では、処理ユニットは、アナログ構成要素とデジタル構成要素との両方を備えた混合信号電気回路を備えうる。計算ネットワークは、前述した形式のうちの何れかにおける処理ユニットを備えうる。そのような処理ユニットを用いる計算ネットワーク（ニューラル・システムまたはニューラル・ネットワーク）は、画像およびパターン認識、マシン学習、モータ制御等のような、広い応用範囲において利用されうる。
【００２６】
[0039]ニューラル・ネットワークの学習過程中、シナプス重み（例えば、図１からの重み
【数３】
2016532216.tif 000005
，…，
【数４】
2016532216.tif 000006
および／または図２からの重み２０６１−２０６Ｎ）は、乱数を用いて初期化され、学習ルールに従って増加または減少されうる。学習ルールの幾つかの例は、スパイク・タイミング依存塑性（ＳＴＤＰ）学習ルール、Ｈｅｂｂルール、Ｏｊａルール、Ｂｉｅｎｅｎｓｔｏｃｋ−Ｃｏｐｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）ルール等である。極めて頻繁に、重みは、２つの値（すなわち、重みの双峰分布）のうちの１つに落ち着きうる。この効果は、シナプス重み毎のビットの数を低減し、シナプス重みを記憶するメモリからの読み取り、および／または、このメモリへの書き込みの速度を増加させ、さらに、シナプス・メモリの電力消費量を低減するために利用されうる。
【００２７】
シナプス・タイプ
[0040]ニューラル・ネットワークのハードウェア・モデルおよびソフトウェア・モデルでは、シナプス関連機能の処理は、シナプス・タイプに基づきうる。シナプス・タイプは、非塑性シナプス（重みおよび遅延の変化無し）、塑性シナプス（重みが変化しうる）、構造的遅延塑性シナプス（重みおよび遅延が変化しうる）、十分な塑性シナプス（重み、遅延、および結合が変化しうる）、およびこれらのバリエーション（例えば、遅延が変化しうるが、重みまたは結合の変化無し）、を備えうる。この利点は、処理が細分化できうることである。例えば、非塑性シナプスは、非塑性機能が実行されること（または、そのような機能が完了することを待つこと）を必要としない。同様に、遅延および重みの塑性が、共にまたは個別に連続的または並列的に動作しうる動作に細分化されうる。異なるタイプのシナプスは、適合する異なる塑性タイプの各々のために、異なるルックアップ・テーブルまたは定式およびパラメータを有しうる。従って、方法は、シナプスのタイプに関する、関連するテーブルにアクセスするであろう。
【００２８】
[0041]さらに、スパイク・タイミング依存構造塑性が、シナプス塑性と独立して実行されうるという事実が含まれている。構造的な塑性（すなわち、遅延変化量）は、プレ・ポスト・スパイク時間差の直接的な関数でありうるので、重みの大きさに対する変化がない場合（例えば、重みが最小または最大の値に達した場合、または、その他幾つかの理由によって変化しない場合）であっても、実行されうる。あるいは、それは、重み変化量の関数として、または、重み変化または重みの範囲に関する条件に基づいて設定されうる。例えば、シナプス遅延は、重み変化が生じた場合、または、重みがゼロに達した場合にのみ変化しうるが、重みが最大値に達した場合には変化しない。しかしながら、これら処理が並列化され、メモリ・アクセスの数およびオーバラップを低減することができる独立した機能を有することが有利でありうる。
【００２９】
シナプス塑性の決定
[0042]ニューロ塑性（または単に「塑性」）は、新たな情報、知覚的刺激、進化、損害、または機能障害に応じて、そのシナプス結合および挙動を変化させる、脳内のニューロンおよびニューラル・ネットワークの能力である。塑性は、生物学における学習および記憶のみならず、計算ニューロサイエンスおよびニューラル・ネットワークにも重要である。（例えば、Ｈｅｂｂｉａｎ理論に従う）シナプス塑性、スパイク・タイミング依存塑性（ＳＴＤＰ）、非シナプス塑性、動作依存塑性、構造的な塑性、およびホメオスタシス塑性のようなさまざまな形式の塑性が研究されている。
【００３０】
[0043]ＳＴＤＰは、脳内の場合のようなニューロン間のシナプス結合の強度を調節する学習処理である。結合強度は、特定のニューロンの出力と、受け取られた入力スパイク（すなわち、活動電位）に基づいて調節される。ＳＴＤＰ処理の下では、あるニューロンへの入力スパイクが、平均して、そのニューロンの出力スパイクの直前に生じる傾向にあるのであれば、長期増強（ＬＴＰ）が生じうる。その後、この特定の入力は、幾分強くされる。対照的に、入力スパイクが、平均して、出力スパイクの直後の生じる傾向にあるのであれば、長期抑圧（ＬＴＤ）が生じうる。その後、その特定の入力は、幾分弱くされるので、「スパイク・タイミング依存塑性」という名称となる。その結果、ポスト・シナプス・ニューロンの興奮の原因となりうる入力は、将来において寄与する確率がより高くなる一方、ポスト・シナプス・スパイクの原因ではない入力は、将来において寄与する可能性がより低くなる。この処理は、結合の最初の集合の部分集合が残るまで続く一方、その他すべての影響は、ゼロまたはほぼゼロへ低減される。
【００３１】
[0044]ニューロンは、一般に、その入力の多くが短期間内に生じる（すなわち、出力を引き起こすのに十分に累積している）場合に、出力スパイクを生成するので、典型的に残っている入力の部分集合は、時間において相関付けられる傾向のあるものを含む。さらに、出力スパイクの前に生じる入力が強化されるので、最も早期の十分な累積を示す相関するインジケーション（indication）を提供する入力は、結果的には、ニューロンに対する最終入力となるであろう。
【００３２】
[0045]ＳＴＤＰ学習ルールは、プレ・シナプス・ニューロンをポスト・シナプス・ニューロンへ結合するシナプスのシナプス重みを、プレ・シナプス・ニューロンのスパイク時間ｔｐｒｅと、ポスト・シナプス・ニューロンのスパイク時間ｔｐｏｓｔとの間の時間差（すなわち、ｔ＝ｔｐｏｓｔ−ｔｐｒｅ）の関数として効果的に適用しうる。ＳＴＤＰの典型的な定式は、時間差が正である（プレ・シナプス・ニューロンが、ポスト・シナプス・ニューロンの前に発火する）のであれば、シナプス重みを増加させ（すなわち、シナプスを強め）、時間差が負である（ポスト・シナプス・ニューロンが、プレ・シナプス・ニューロンよりも前に発火する）のであれば、シナプス重みを減少させる（すなわち、シナプスを抑制する）ことである。
【００３３】
[0046]ＳＴＤＰ処理では、シナプス重みの経時的な変化は、典型的には、
【数５】
2016532216.tif 000007
によって与えられるように、指数関数的な減衰を用いて達成されうる。ここで、ｋ＋およびｋ＿は、正の時間差および負の時間差それぞれのための時間定数であり、ａ＋およびａ＿は、対応するスケーリング大きさであり、μは、正の時間差および／または負の時間差に適用されうるオフセットである。
【００３４】
[0047]図３は、ＳＴＤＰに従って、プレ・シナプス・スパイクおよびポスト・シナプス・スパイクの相対的なタイミングに応じたシナプス重み変化の例示的なグラフ３００を例示する。プレ・シナプス・ニューロンが、ポスト・シナプス・ニューロンよりも前に発火すると、グラフ３００の部分３０２に例示されるように、対応するシナプス重みが増加されうる。この重みは、シナプスのＬＴＰと称されうる。グラフ部分３０２から、ＬＴＰの量は、プレ・シナプス・スパイク時間とポスト・シナプス・スパイク時間との差分に応じて略指数関数的に減少しうることが観察されうる。逆の順序の発火は、グラフ３００の部分３０４に例示されるように、シナプス重みを低減しうる。これは、シナプスのＬＴＤを引き起こす。
【００３５】
[0048]図３のグラフ３００に例示されるように、負のオフセットμが、ＳＴＤＰグラフのＬＴＰ（原因）部分３０２に適用されうる。ｘ軸の交差点３０６（ｙ＝０）が、層ｉ−１（プレ・シナプス層）からの原因入力のための相関を考慮するための最大タイム・ラグと一致するように構成されうる。フレーム・ベースの入力である（すなわち、入力が、スパイクまたはパルスを備える特定の持続時間のフレームの形態である）ケースでは、オフセット値μは、フレーム境界を反映するように計算されうる。フレームにおける第１の入力スパイク（パルス）は、ポスト・シナプス電位によって直接的にモデル化されるように、あるいは、ニューラル状態における影響の観点から、経時的に減衰するように考慮されうる。フレーム中の第２の入力スパイク（パルス）が、特定の時間フレームに相関する、または関連していると考えられているのであれば、フレームの前および後の関連する時間が、その時間フレーム境界において分離され、ＳＴＤＰ曲線の１つまたは複数の部分をオフセットすることによって塑性項において異なって取り扱われ、これによって、関連する時間における値が、異なりうる（例えば、１つのフレームより大きい場合、負であり、１つのフレームよりも小さい場合、正となる）。例えば、曲線が、フレーム時間よりも大きい前後の時間で実際にゼロよりも下になり、結果的にＬＴＰの代わりにＬＴＤの一部であるようにＬＴＰをオフセットするために負のオフセットμが設定され得る。
【００３６】
ニューロン・モデルおよび演算
[0049]有用なスパイク・ニューロン・モデルを設計するための幾つかの一般的な原理がある。良好なニューロン・モデルは、２つの計算レジーム、すなわち、一致性検出と、関数計算との観点から、豊富な潜在的挙動を有しうる。さらに、良好なニューロン・モデルは、テンポラル・コーディングを可能にするために２つの要素を有していなければならず、入力の到着時間が、出力時間に影響を与え、一致性検出が、狭い時間ウィンドウを有しうる。最後に、計算上魅力あるものにするために、良好なニューロン・モデルは、連続した時間において、閉形式解（closed-form solution）を有し、ニアアトラクター（near attractor）および鞍点を含む安定した挙動を有しうる。言い換えれば、有用なニューロン・モデルは、実用的なものであり、豊富で、現実的で、生物学上一貫した振る舞いをモデル化するために使用されうるのみならず、ニューラル回路をエンジニアおよびリバース・エンジニアの両方を行うためにも使用されうる。
【００３７】
[0050]ニューロン・モデルは、入力到着、出力スパイク、または、内部または外部に関わらないその他のイベントのようなイベントに依存しうる。豊富な挙動レパートリを達成するために、複雑な挙動を表しうるステート・マシンが所望されうる。（もしあれば）入力寄与とは別の、イベント自体の発生が、ステート・マシンに影響を与え、イベントに後続するダイナミクスを抑制するのであれば、システムの将来の状態は、入力および状態の関数であるのみならず、むしろ、状態、イベント、および入力の関数である。
【００３８】
[0051]態様では、ニューロンｎが、以下のダイナミクスによって支配される膜電圧ｖｎ（ｔ）によるスパイクリーキー積分発火ニューロンとしてモデル化されうる。
【数６】
2016532216.tif 000008
ここで、αおよびβはパラメータであり、ｗｍ，ｎは、プレ・シナプス・ニューロンｍをポスト・シナプス・ニューロンｎへ結合するシナプスのためのシナプス重みであり、ｙｍ（ｔ）は、ニューロンｎの細胞体における到着まで、Δｔｍ，ｎに従って、樹状遅延または軸索遅延によって遅延されうるニューロンｍのスパイク出力である。
【００３９】
[0052] ポスト・シナプス・ニューロンへの十分な入力が確立された時間からポスト・シナプス・ニューロンが実際に発火する時間まで、遅延があることが注目されるべきである。Ｉｚｈｉｋｅｖｉｃｈの単純モデルのような動的なスパイク・ニューロン・モデルでは、脱分極しきい値νｔとピーク・スパイク電圧νｐｅａｋとの間に差がある場合、時間遅延を招きうる。例えば、この単純モデルでは、ニューロン細胞体ダイナミクスが、電圧および回復のための微分方程式のペアによって決定されうる。すなわち、
【数７】
2016532216.tif 000009
【数８】
2016532216.tif 000010
であり、
ここで、νは膜電位、ｕは膜回復変数であり、ｋは膜電位νの時間スケールを記述するパラメータであり、ａは、回復変数ｕの時間スケールを記述するパラメータであり、ｂは、膜電位νのしきい値未満の変動に対する回復変数ｕの感度を記述するパラメータであり、νｒは、膜静止電位であり、Ｉは、シナプス電流であり、Ｃは膜のキャパシタンスである。このモデルによれば、ニューロンは、ν＞νｐｅａｋである場合、スパイクするように定義される。
【００４０】
Ｈｕｎｚｉｎｇｅｒ  Ｃｏｌｄモデル
[0053]Ｈｕｎｚｉｎｇｅｒ  Ｃｏｌｄニューロン・モデルは、種々の豊富なニューラル挙動を再生できうる最小デュアル・レジーム・スパイク線形ダイナミック・モデルである。このモデルの１次元または２次元の線形ダイナミクスは、２つのレジームを有しえ、ここでは、時定数（およびカップリング）が、レジームに依存しうる。しきい値未満のレジームでは、時定数は、慣例によって負であり、生物学的に一貫した線形方式で静止状態に細胞を戻す役目を果たすリーキーチャネルダイナミクスを表す。しきい値上レジームにおける時間定数は、慣例により正であり、一般にスパイク生成のレイテンシを生じさせる一方でスパイク状態に細胞を駆り立てる反リーキーチャネルダイナミクスを反映する。  [0054]図４に例示されるように、このモデルのダイナミクスは、２つ（またはそれ以上の）レジームに分割されうる。これらのレジームは、負のレジーム４０２（リーキー積分発火（ＬＩＦ）ニューロン・モデルと混同しないように、ＬＩＦレジームとも互換的に称される）および正のレジーム４０４（反リーキー積分発火（ＡＬＩＦ）ニューロン・モデルと混同しないように、ＡＬＩＦレジームとも互換的に称される）と呼ばれうる。負のレジーム４０２では、状態は将来のイベント時に、静止（ν−）に向かう傾向にある。この負のレジームでは、モデルは一般に、一時的な入力検出特性と他のしきい値未満の挙動とを示す。正のレジーム４０４では、状態はスパイク・イベント（νｓ）に向かう傾向がある。この正のレジームでは、モデルは、後続する入力イベントに依存してスパイクするレイテンシを招くような、計算特性を示す。イベントに関するダイナミクスの公式化と、このダイナミクスの２つのレジームへの分離とが、このモデルの基本的な特性である。
【００４１】
[0055]（状態νおよびｕに関する）線形デュアル・レジーム２次元ダイナミクスが、
【数９】
2016532216.tif 000011
【数１０】
2016532216.tif 000012
として慣例的に定義されうる。ここで、ｑρおよびｒは、カップリングのための線形変換変数である。
【００４２】
[0056]シンボルρは、特定のレジームのための関係を議論または表現する場合、シンボルρを、負のレジームおよび正のレジームのために、符号「−」または「＋」に置き換えるという慣例を用いてダイナミクス・レジームを示すためにここで使用される。
【００４３】
[0057]モデル状態は、膜電位（電圧）νおよび回復電流ｕによって定義される。基本的な形式では、レジームは、モデル状態によって実質的に決定される。正確かつ一般的な定義のために、微妙だが重要な態様があるものの、さしあたり、電圧νがしきい値（ν＋）を上回るのであれば、モデルは、正のレジーム４０４にあり、そうではない場合には、負のレジーム４０２にあると考慮されたい。
【００４４】
[0058]レジーム依存の時定数は、負のレジームの時定数であるτ−と、正のレジームの時定数であるτ＋とを含む。回復電流の時定数τｕは典型的には、レジームに依存しない。便宜上、τuと同様に、指数およびτ+が一般に正となる正レジームに関して、電圧発展（voltage evolution）に関する同じ表現が使用され得るように、減衰を反映するために負の量として負レジーム時間定数τ-が一般に指定される。
【００４５】
[0059]２つの状態要素のダイナミクスは、状態をヌル・クラインからオフセットさせる変換によって、イベント時に結合され得、ここで、変換変数は、
ｑρ＝−τρβｕ−νρ      （７）
ｒ＝δ（ν＋ε）      （８）
である。
ここで、δ、ε、β、およびν＿、ν＋は、パラメータである。νρのための２つの値は、２つのレジームのための基準電圧のためのベースである。パラメータν＿は、負のレジームのためのベース電圧であり、膜電位は一般に、負のレジームにおいて、ν＿に向かって減衰するであろう。パラメータν＋は、正のレジームのためのベース電圧であり、膜電位は一般に、正のレジームにおいて、ν＋から離れる傾向にあるであろう。
【００４６】
[0060]νおよびｕに関するヌル・クラインは、変換係数ｑρおよびｒそれぞれの負の値によって得られる。パラメータδは、ｕヌル・クラインの傾きを制御するスケール・ファクタである。パラメータεは典型的には、−ν＿に等しく設定される。パラメータβは、両レジームにおいて、νヌル・クラインの傾きを制御する抵抗値である。τρ時定数パラメータは、指数関数的な減衰のみならず、各レジームそれぞれにおけるヌル・クライン傾きをも制御する。
【００４７】
[0061]このモデルは、電圧νが値νｓに達した場合にスパイクすると定義される。それに続いて、状態は典型的にリセット・イベント（技術的には、１であり、スパイク・イベントと同じでありうる）においてリセットされる。
【数１１】
2016532216.tif 000013
ｕ＝ｕ＋Δｕ      （１０）
ここで
【数１２】
2016532216.tif 000014
およびΔｕはパラメータである。リセット電圧
【数１３】
2016532216.tif 000015
は、典型的にν＿に設定される。
【００４８】
[0062]瞬間的カップリングの原理によって、状態のため（および１つの指数関数項を持つ）のみならず特定の状態に達するために必要な時間のためにも、閉形式解が可能である。閉形式状態解は、
【数１４】
2016532216.tif 000016
【数１５】
2016532216.tif 000017
である。
【００４９】
[0063]したがって、モデル状態は、入力時（プレ・シナプス・スパイク）または出力時（ポスト・シナプス・スパイク）のようなイベント発生時にのみ更新されうる。（入力または出力があるかないかに関わらず）任意の特定の時間においても演算が実行されうる。
【００５０】
[0064]さらに、瞬間的カップリング原理によって、ポスト・シナプス・スパイクの時間が予期されうるので、反復的技法または数値解法（例えば、オイラー数値解法）無しで、特定の状態に達するための時間が前もって決定されうる。以前の電圧状態ν０が与えられると、電圧状態νｆに達するまでの遅延時間は
【数１６】
2016532216.tif 000018
によって与えられる。
【００５１】
[0065]スパイクが、電圧状態νがνｓに達した時に生じるものと定義される場合、電圧が所与の状態νである時から測定され、スパイクが生じるまで、時間の長さ、または相対的な遅延に関する閉形式解は、
【数１７】
2016532216.tif 000019
である。ここで、
【数１８】
2016532216.tif 000020
は、典型的にはパラメータν＋に設定されるが、他のバリエーションも可能でありうる。
【００５２】
[0066]モデル・ダイナミクスの上記定義は、モデルが正のレジームであるか負のレジームであるかに依存する。前述したように、カップリングおよびレジームρは、イベント時に計算されうる。状態の伝搬の目的のために、レジームおよびカップリング（変換）変数は、最後の（前の）イベントの時間における状態に基づいて定義されうる。スパイク出力時間を引き続き予測するために、レジームおよびカップリング変数は、次の（現在の）イベントの時間における状態に基づいて定義されうる。
【００５３】
[0067]適時の、シミュレーション、エミュレーション、またはモデルの実行、およびＣｏｌｄモデルの、幾つかの可能な実装がある。これは例えば、イベント更新、ステップ・イベント更新、およびステップ更新モードを含む。イベント更新は、イベントまたは（特定の瞬間における）「イベント更新」に基づいて状態が更新される更新である。ステップ更新は、モデルがインタバル（例えば、１ミリ秒）において更新される場合における更新である。これは必ずしも、反復方法または数値的方法を必要としない。イベント・ベースの実装はまた、イベントがステップにおいてまたはステップ間において生じる場合にモデルを更新するのみのよって、または、「ステップ・イベント」更新によって、ステップ・ベースのシミュレータにおける限られた時間分解能においても可能である。
【００５４】
ニューラル・コーディング
[0068]図１の人工ニューロン１０２，１０６で構成されるもののような有用なニューラル・ネットワーク・モデルは、コインシデンス・コーディング（coincidence coding）、テンポラル・コーディング（temporal coding）またはレート・コーディング（rate coding）のような種々の適切なニューラル・コーディング・スキームの何れかによって情報をエンコードしうる。コインシデンス・コーディングでは、情報は、ニューロン母集団の活動電位（スパイク活動）の一致（または時間的な近接）においてエンコードされる。テンポラル・コーディングでは、絶対時間または相対時間に関わらず、ニューロンは、活動電位（すなわち、スパイク）の正確なタイミングで情報をエンコードする。従って、情報は、ニューロンの母集団のうち、スパイクの相対的なタイミングでエンコードされうる。対照的に、レート・コーディングは、発火レートまたは母集団発火レートでニューラル情報をコーディングすることを含む。
【００５５】
[0069]ニューロン・モデルが、テンポラル・コーディングを実行するのであれば、レート・コーディングも実行しうる（なぜなら、レートは、タイミングまたはスパイク間インタバルの単なる関数であるからである）。テンポラル・コーディングを提供するために、良好なニューロン・モデルは、２つの要素、すなわち、（１）入力の到着時間が出力時間に影響を与えること、および、（２）一致検出が、狭い時間ウィンドウを有しうること、有していなければならない。結合遅延は、テンポラル・パターン・デコードへ一致検出を拡大する１つの手段を与える。なぜなら、テンポラル・パターンの要素を適切に遅延させることによって、これら要素にタイミング一致がもたらされうるからである。
【００５６】
到着時間
[0070]良好なニューロン・モデルでは、入力の到着時間は、出力の時間に影響を有するはずである。ディラックのデルタ関数であれシェープト・ポスト・シナプス電位（ＰＳＰ：shaped post-synaptic potential）であれ、興奮性（ＥＰＳＰ）であれ抑制性（ＩＰＳＰ）であれ、シナプス入力は、到着時間（例えば、デルタ関数の時間、または、ステップの開始またはピーク、または、その他の入力関数）を有し、これは、入力時間と称されうる。ニューロン出力（すなわち、スパイク）は、（例えば、細胞体において、軸索に沿ったポイントにおいて、または、軸索の末端において、どこで測定されようと、）発生時間を有する。これは、出力時間と称されうる。その出力時間は、スパイクのピークの時間、スパイクの開始、または、出力波形に関するその他任意の時間でありうる。支配的な原則は、出力時間が入力時間に依存することである。
【００５７】
[0071]一見すると、すべてのニューロン・モデルが、この原則に従うように思うかもしれないが、一般にはそうではない。例えば、レート・ベースのモデルは、この特徴を有していない。多くのスパイク・モデルも、一般には従わない。リーキー積分発火（ＬＩＦ）モデルは、（しきい値を超える）余分な入力がある場合、さらに速くは発火しない。さらに、非常に高いタイミング分解能でモデル化される場合に従いうるモデルは、タイミング分解能が例えば１ミリ秒ステップに制限されているときには、しばしば従わないであろう。
【００５８】
入力
[0072]ニューロン・モデルへの入力は、電流としての入力、またはコンダクタンス・ベースの入力のような、ディラックのデルタ関数を含みうる。後者のケースでは、ニューロン状態への寄与は、連続的または状態依存でありうる。
【００５９】
例示的なブレークポイント決定ユニット
[0073]ニューラル・プロセッサは、挙動を実行するために、（例えば、スパイク、人工ニューロン、ニューロモジュレータ等を用いて）ニューラル処理を実行するデバイスである。挙動は、プロセッサへ学習される。しかしながら、学習は、不完全な技術であり、長時間を要しうる。従って、問題をより早く発見させることができる方法を定義することが有利になる。
【００６０】
[0074]デバッグは、ニューラル・プロセッサにおける問題を検出する処理である。デバッグのタイプは、遠隔モニタリングと、ニューラル状態の検査が後に続く実行の停止と、を含む。しかしながら、プロセッサの実行をいつ停止するのかを知ることは、些細なことではない。
【００６１】
[0075]したがって、必要とされることは、人工神経システムまたはその一部の実行を保留すること（suspending）、検査すること、修正すること、またはフラグ付けすること、のうちの少なくとも１つに関する技術および装置である。
【００６２】
[0076]本開示の幾つかの態様は、ニューラル・プロセッサがデバッグを開始すべき条件が存在するときに、イベントをトリガすることによって、デバッグのためにニューラル状態の検査をいつ開始するのかに関する問題を解決することを目的とする。この検出は、外部エンティティからのモニタリング無しで、実行中にシームレスに行われる。対照的に、モニタリングは、ブレークポイント決定ユニットを用いて達成され得、それは、人工神経システムの内部でありうる。幾つかの態様の場合、ブレークポイント決定ユニットは、ブレークポイント・ニューロンとして実装され得、ブレークポイント・ニューロンは、特定の条件において通知イベントを生成するように構成され得ることを除き、ニューラル・プロセッサにおける典型的なスパイク・ニューロンと同様に振る舞いうる。この生成された通知イベントは、スパイク処理の保留に至りうる。
【００６３】
[0077]ニューラル・プロセッサにおけるスパイク・ニューロンは、スパイクを生成し、シナプスを用いて相互結合される。スパイク情報は、スパイク・ニューロン間で伝送される。受信スパイク・ニューロンは、受信スパイク・ニューロンに結合されたすべての送信スパイク・ニューロンからのスパイクを処理する。受信スパイク・ニューロンは、情報を処理し、スパイクが生成されるべきか否かを決定しうる。スパイク生成は、受信スパイク・ニューロンが、しきい値パラメータ（すなわち、電圧）値よりも高められた場合に生じる。しきい値パラメータは設定可能である。
【００６４】
[0078]ブレークポイント・ニューロンは、同様に情報を処理する。しかしながら、しきい値を越えると、ブレークポイント・ニューロンは、ニューラル・プロセッサに、すべてのスパイク処理を停止させおよびすべての遷移状態を保留させるイベントを送信しうる。例示的なイベント通知メカニズムは、割込み、メッセージ・パケット、および、ステータス・レジスタにおける変化を含む。
【００６５】
[0079]例えば、図５は、ブレークポイント・ニューロンＢ１  ５０４を有する例示的なニューラル処理システム５００を例示する。ブレークポイント・ニューロンＢ１  ５０４は、人工ニューロンＮ１  ５０６が発火した場合に、ニューラル・プロセッサ・スパイク処理を停止させるように構成される。時間ゼロで、人工ニューロンＮ３  ５１０が発火し、２タイムステップ後、Ｎ１  ５０６が発火する。Ｂ１  ５０４は、Ｎ１  ５０６が発火したことを直ちに検出する。現在の時間ステップの終了時に、Ｂ１  ５０４は、イベント送信機５０２からのイベントを生成し、処理が停止される。イベントは、例えば、直ちに、または、同期時間の境界の終了時に生じうる。スパイク処理遅延は、モニタされているスパイク・ニューロンからのスパイクを処理しているときに使用されうる。
【００６６】
[0080]ブレークポイント決定ユニットはまた、または、代替的に、１つまたは複数の人工ニューロンの発火以外の条件に基づいて、ニューラル・プロセッサのスパイク処理を停止するように構成されうる。例えば、ブレークポイント決定ユニットは、人工神経システムまたはその一部のための変数またはシステム・パラメータを記憶するために使用されうるグローバル・ストレージ、または、１つまたは複数の人工ニューロンに関連付けられたレジスタまたはメモリに結合されうる。１つまたは複数の人工ニューロンのレジスタまたはメモリまたはグローバル・ストレージにおける１つまたは複数の値をモニタすることによって、ブレークポイント決定ユニットは、これらの場所に記憶された１つまたは複数の値における変化を検出し、イベント送信機からイベントを生成しうる。これは、動作を停止させうる。別の例として、ブレークポイント決定ユニットは、記憶された値のうちの１つまたは複数が、特定の不等式関係（例えば、予め決定されたしきい値よりも大きいか等しい）またはその組合せを満たすのであれば、人工神経システム（またはその一部）の実行を停止させるように構成されうる。
【００６７】
[0081]図６は、図５におけるブレークポイント・ニューロンＢ１のようなブレークポイント決定ユニットのための例示的なステート・マシン６００を例示する。リセット状態６０２は、スパイク・モニタリングが生じていない初期状態である。ブレークポイント決定ユニットは、条件（しきい値設定）を用いて設定され、モニタされるべき送信ニューロンのセットが識別されうる。ブレークポイント決定ユニットは、送信ニューロンのセットのための受信ニューロンである。設定されると、ブレークポイント決定ユニットは、アイドル状態６０４に遷移しうる。
【００６８】
[0082]アイドル状態６０４において、ブレークポイント決定ユニットは、モニタリングを開始する開始コマンドを待っている。停止コマンドは、リセット状態６０２への状態遷移を引き起こしうる。
【００６９】
[0083]実行状態６０６では、ブレークポイント決定ユニットが、送信ニューロン・スパイクについてモニタしている。受信されたスパイクの処理後、送信ニューロンのスパイクが、システムを、しきい値を超えて（または、その他幾つかの条件が存在する）駆動した場合ブレークポイント決定ユニットは、イベントを生成するであろう。スパイクも同様に生成されうる。イベント生成は、ブレーク状態６０８への遷移を引き起こしうる。ポーズ・トリガは、アイドル状態６０４への遷移を引き起こしうる。
【００７０】
[0084]ブレーク状態６０８では、モニタリングが停止している。ブレークポイント決定ユニットは、ブレーク・イベントが（例えば、トラブルシューティング後に）取り扱われるまでこの状態にとどまり得、実行状態６０６へ戻る遷移を引き起こす。
【００７１】
[0085]図７は、本開示の幾つかの態様に従う、同期イベント処理の例示的なタイミング図７００、７１０を例示する。同期イベント処理中、ブレークポイント・ニューロン（Ｂ１）は、送信ニューロン（Ｎ１）からのスパイクをモニタしうる。ｔ０において、Ｎ１は、スパイク入力を処理している。Ｂ１は、実行状態にあり、Ｎ１（および、恐らくは、１つまたは複数のその他の人工ニューロン）をモニタしている。ｔ１において、Ｎ１は、しきい値を超え、スパイクを生成する。Ｂ１は、Ｎ１からのスパイクを受信し、ブレーク状態に遷移し、そこにとどまる。ｔ１とｔ２との間の期間において、Ｎ１およびＢ１は、状態を変えないが、デバッグが、Ｎ１とＢ１との何れかまたは両方の状態を変化させうる。ｔ２において、Ｎ１ニューロン処理が再開する。Ｂ１は、取り扱われた遷移を受け取り、モニタリングのために実行状態に戻る。
【００７２】
[0086]図８は、本開示の幾つかの態様に従って、第１の送信ニューロン（Ｎ１）、第２の送信ニューロン（Ｎ２）、ブレークポイント・ニューロン（Ｂ１）、およびステート・マシンそれぞれのための遅延イベント処理（非同期イベント処理としても知られている）の例示的なタイミング図８００、８１０、８２０、８３０を例示する。非同期イベント処理中に、Ｂ１は、送信ニューロンＮ１およびＮ２からのスパイクをモニタしうる。この例において、Ｂ１は、特定の時間ウィンドウ内で、Ｎ１から２つのスパイクを、Ｎ２から１つのスパイクを受信した場合にしきい値を越えるように構成される。ブレークポイント決定ユニットは、その他の所望される条件、または、条件の組合せにも同様に応答するように構成されうる。
【００７３】
[0087]ｔ０において、Ｎ１およびＮ２は、スパイク入力を処理し、Ｂ１は、実行状態にあり、モニタしている。ｔ１において、Ｎ１およびＮ２は、それらのしきい値を超えてゆき、各々がスパイクを生成する。Ｂ１はそのしきい値を越えていないので、Ｂ１は実行状態にとどまる。ｔ２において、Ｎ１はしきい値を越えてゆき、スパイクを生成する、一方、Ｎ２は、通常通り処理している。Ｂ１は、変化を検出するが、そこでの動作を遅延させるように設定される。ｔ２とｔ３との間の差分は、シナプス送信の遅延として示されうるか、または、ニューロン処理の遅延として構成されうる。Ｂ１は、実行状態における遅延されたサブ状態（遅延の後、Ｂ１は、ブレーク状態に遷移するであろう）に保持される。ｔ３において、Ｂ１は、Ｎ１およびＮ２スパイク入力に対して動作し、そのしきい値を超えてゆき、ブレーク・イベントを生成する。ｔ３からｔ４まで、Ｎ１、Ｎ２、およびＢ１は、状態を変化させないが、成分パラメータをデバッグまたは意図的に修正する処理が、Ｎ１、Ｎ２、および／または、Ｂ１の状態を変化させうる。ｔ４において、Ｎ１およびＮ２ニューロン処理が継続する。Ｂ１は、取り扱われた遷移を受け取り、モニタリングのために、実行状態に戻る。
【００７４】
[0088]図９は、本開示の幾つかの態様に従って、人工神経システムの少なくとも一部を検査またはデバッグするための例示的な動作９００のフロー図である。動作９００は、例えば、ブレークポイント決定ユニットを備えたシステム（人工ニューロン、シナプス、ニューロモジュレータ等のネットワークから構成されうる）の観点から見られうる。動作９００は、ハードウェアにおいて（例えば、ニューロモフィック・プロセッサのような１つまたは複数のニューラル処理ユニット）、ソフトウェアにおいて、またはファームウェアにおいて実行されうる。人工神経システムは、視覚神経システム、聴覚神経システム、海馬等のようなさまざまな生物学的または想像上の神経システムの何れかにおいてモデル化されうる。
【００７５】
[0089]動作９００は、９０２において、人工神経システムの少なくとも一部を動作させることによって開始しうる。９０４において、人工神経システムにおける１つまたは複数の構成要素をモニタリングすることに少なくとも部分的に基づいて、条件が存在することを検出するために、ブレークポイント決定ユニット（人工神経システムの内部または外部にありうる）が使用されうる。例えば、この構成要素は、ニューロン、シナプス、ニューロモジュレータ、神経膠、および／または、人工神経システムにおけるその他さまざまな適切な構成要素のうちの何れかを含みうる。９０６において、人工神経システムの少なくとも一部の動作は、９０４における検出に少なくとも部分的に基づいて、保留され、検査され、修正され、またはフラグ付けされることのうちの少なくとも１つが行われうる。
【００７６】
[0090]幾つかの態様によれば、動作９００はさらに、検出に少なくとも部分的に基づいて、条件のインジケーションを出力することと、このインジケーションに少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を停止、保留、修正、またはフラグ付けのうちの少なくとも１つを行うように決定することと、を含みうる。例えば、条件のインジケーションは、割込み、フラグが設定されていること、またはステータス・レジスタにおける変化、の少なくとも１つを含みうる。幾つかの態様については、ブレークポイント決定ユニットは、条件のインジケーションを出力するように構成される。幾つかの態様については、条件のインジケーションは、人工神経システムにおける１つまたは複数の構成要素のうちの１つまたは複数の特性の警告を提供しうる。このインジケーションは、人工神経システムまたはその一部が、デバッグ状態またはブレーク状態にあることを示すフラグ、または、人工神経システム内の特定のデバイスまたは人工神経システムの一部が、デバッグ状態にあるかブレーク状態にあるかを示すその他幾つかの警告、を設定することを含みうる。
【００７７】
[0091]幾つかの態様によれば、ブレークポイント決定ユニットは、検出に少なくとも部分的に基づいて、イベント送信機をトリガするように構成される。このケースでは、イベント送信機は、条件のインジケーションを出力するように構成されうる。トリガされた後、イベント送信機は、直ちに、現在の時間ステップの終了時、次の時間ステップの前、または、予め決定された数の時間ステップの経過後、条件のインジケーションを出力するように構成されうる。
【００７８】
[0092]幾つかの態様によれば、条件は、１つまたは複数の人工ニューロンからの、スパイク・イベント、スパイク・イベントの予測、スパイク・イベントの結合、スパイク・イベントの結合の予測、またはこれらの任意の組合せのうちの少なくとも１つを含みうる。幾つかの態様の場合、条件は、特定の時間ウィンドウ内で生じるスパイク・イベントの組合せを含みうる。幾つかの態様によれば、条件は、しきい値を満たすか、またはしきい値を超えるブレークポイント決定ユニットの状態を含む。他の態様の場合、条件は、スパイク・レートまたはスパイク・レートの予測に少なくとも部分的に基づく。
【００７９】
[0093]幾つかの態様によれば、条件は、１つまたは複数の構成要素の少なくとも１つのパラメータ（例えば、システム変数）が、予め決定された量変化したことに少なくとも部分的に基づきうる。例えば、条件は、シナプス・パラメータ、ニューロモジュレータの導入、神経膠活性化、１つまたは複数のニューロンによるスパイク・レート、または、人工神経システムにおけるその他の特性における変化を含みうる。シナプス・パラメータは、シナプス重みおよびシナプス遅延の量のような特性を含みうる。１つまたは複数のニューロンの塑性または強化のような特性を修正するために、シミュレートされたニューロモジュレータを備える人工神経システムにおいて、条件は、ニューラル入力がスケールされる量における変化を含みうる。神経膠活性化に基づいた条件は、１つまたは複数の神経膠ニューロンによって人工神経システムへ導入された背景ノイズの量を含みうる。幾つかの態様によれば、条件は、特定の時間ウィンドウ内で生じる１つまたは複数のパラメータまたはネットワーク変数における変化の量を含みうる。
【００８０】
[0094]幾つかの態様によれば、ブレークポイント決定ユニットは、人工ニューロンと同じ機能のうちの少なくとも幾つかを有する。このケースでは、ブレークポイント決定ユニットは、活性化された後に１つまたは複数のスパイク・イベントを出力するように構成されうる。
【００８１】
[0095]幾つかの態様によれば、人工神経システムは、１つよりも多くのブレークポイント決定ユニットを有しうる。例えば、人工神経システムは、第１のブレークポイント決定ユニットと、１つまたは複数の第２のブレークポイント決定ユニットとを有しうる。第１のブレークポイント決定ユニットは、例えば、１つまたは複数の第２のブレークポイント決定ユニットのうちの少なくとも１つを活性化（すなわち、オン）するために使用されうる。活性化された場合、１つまたは複数の第２のブレークポイント決定ユニットは、前述したように、人工神経システムにおけるさまざまなパラメータをモニタし、ブレーク・イベントをトリガしうる。第１のブレークポイント決定ユニットはまた、１つまたは複数のパラメータに基づいて、活性化された１つまたは複数の第２のブレークポイント決定ユニットを非活性化（すなわち、オフ）しうる。
【００８２】
[0096]幾つかの態様によれば、動作９００はさらに、９０４における検出前に、モニタされるべき１つまたは複数の人工ニューロンと条件を用いてブレークポイント決定ユニットを設定することを含みうる。
【００８３】
[0097]図１０は、本開示の幾つかの態様に従って、汎用プロセッサ１００２を用いて、人工神経システムの少なくとも一部を検査するための例示的な構成要素の図解１０００を例示する。計算ネットワーク（ニューラル・ネットワーク）に関連付けられたシステム・パラメータ、シナプス重み、および／または、変数（ニューラル信号）は、メモリ・ブロック１００４に記憶されうる一方、汎用プロセッサ１００２において実行されるものに関連する命令が、プログラム・メモリ１００６からロードされうる。本開示の態様では、汎用プロセッサ１００２へロードされる命令は、人工ニューロンのネットワークの少なくとも一部を動作させるためのコードと、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在することを検出するために、ブレークポイント決定ユニットを用いるためのコードと、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けすること、のうちの少なくとも１つのためのコードと、を備えうる。
【００８４】
[0098]図１１は、本開示の幾つかの態様に従って、人工神経システムの少なくとも一部を検査するための例示的な構成要素のブロック図１１００を例示しており、ここで、メモリ１１０２は、計算ネットワーク（ニューラル・ネットワーク）の個々の（分散された）処理ユニット（ニューラル・プロセッサ）１１０６との相互接続ネットワーク１１０４を介してインタフェースされうる。計算ネットワーク（ニューラル・ネットワーク）に関連付けられたシステム・パラメータ、シナプス重み、および／または、変数（ニューラル信号）は、メモリ１１０２に記憶され、相互接続ネットワーク１１０４の結合を介してメモリ１１０２から各処理ユニット（ニューラル・プロセッサ）１１０６へロードされうる。本開示の態様では、処理ユニット１１０６は、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在することを検出するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留、検査、修正、またはフラグ付けすることのうちの少なくとも１つを行う、ように構成されうる。
【００８５】
[0099]図１２は、本開示の幾つかの態様に従って、分散メモリ１２０２および分散処理ユニット（ニューラル・プロセッサ）１２０４に基づいて、人工神経システムの少なくとも一部を検査するための例示的な構成要素のブロック図１２００を例示する。図１２に例示されるように、１つのメモリ・バンク１２０２は、計算ネットワーク（ニューラル・ネットワーク）の１つの処理ユニット１２０４にダイレクトにインタフェースされうる。ここで、メモリ・バンク１２０２は、その処理ユニット（ニューラル・プロセッサ）１２０４に関連付けられたシステム・パラメータ、シナプス重み、および／または、変数（ニューラル信号）を記憶しうる。本開示の態様では、処理ユニット１２０４は、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける１つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在することを決定するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けするように構成されうる。
【００８６】
[0100]図１３は、本開示の幾つかの態様に従うニューラル・ネットワーク１３００の例示的な実施を例示する。図１３に例示されるように、ニューラル・ネットワーク１３００は、前述した方法のさまざまな動作を実行しうる複数のローカル処理ユニット１３０２を備えうる。各処理ユニット１３０２は、ニューラル・ネットワークのパラメータを記憶するローカル・パラメータ・メモリ１３０６およびローカル状態メモリ１３０４を備えうる。さらに、処理ユニット１３０２は、ローカル（ニューロン）モデル・プログラムを備えたメモリ１３０８、ローカル学習プログラムを備えたメモリ１３１０、およびローカル接続メモリ１３１２を備えうる。さらに、図１３に例示されるように、各ローカル処理ユニット１３０２は、ローカル処理ユニットのローカル・メモリのための設定を提供しうる設定処理のためのユニット１３１４、および、ローカル処理ユニット１３０２間のルーティングを提供するルーティング接続処理要素１３１６、とインタフェースされうる。
【００８７】
[0101]本開示の幾つかの態様によれば、各ローカル処理ユニット１３０２は、ニューラル・ネットワークの１つまたは複数の機能的な特徴に基づいて、ニューラル・ネットワークのパラメータを決定し、決定されたパラメータがさらに適合され、調整され、更新されると、１つまたは複数の機能的な特徴を、所望される機能的な特徴へ発展させる、ように構成されうる。
【００８８】
[0102]上述した方法のさまざまな動作は、対応する機能を実行することが可能な任意の適切な手段によって実行されうる。これら手段は、限定される訳ではないが、回路、特定用途向け集積回路（ＡＳＩＣ）、またはプロセッサを含むさまざまなハードウェア構成要素および／またはソフトウェア構成要素および／またはモジュールを含みうる。例えば、さまざまな動作が、図１０〜図１３に図示されるさまざまなプロセッサのうちの１つまたは複数によって実行されうる。一般に、図面に例示された動作が存在する場合、これら動作は、同じ符番を付された対応するｍｅａｎｓ−ｐｕｌｓ−ｆｕｎｃｔｉｏｎ構成要素を有しうる。例えば、図９に例示された動作９００は、図９Ａに例示される手段９００Ａに対応する。
【００８９】
[0103]例えば、表示のための手段は、ディスプレイ（例えば、モニタ、フラット・スクリーン、タッチ・スクリーン等）、プリンタ、または、視覚的な描写（例えば、テーブル、チャート、グラフ）のためにデータを出力するためのその他任意の適切な手段を備えうる。処理のための手段、動作のための手段、検出のための手段、保留、検査、またはフラグ付けのうちの少なくとも１つのための手段、出力するための手段、設定するための手段、決定するための手段は、１つまたは複数のプロセッサまたは処理ユニットを含みうる処理システムを備えうる。記憶するための手段は、処理システムによってアクセスされうるメモリまたはその他任意の適切な記憶デバイス（例えば、ＲＡＭ）を備えうる。
【００９０】
[0104]本明細書で使用される場合、用語「決定すること（ｄｅｔｅｒｍｉｎｉｎｇ）」は、さまざまな動作を含む。例えば、「決定すること」は、計算、コンピューティング、処理、導出、調査、ルックアップ（例えば、テーブル、データベース、または他のデータ構造内のルックアップ）、確認等を含むことができる。また、「決定すること」は、受信（例えば、情報の受信）、アクセス（例えば、メモリ内のデータへのアクセス）等を含むことができる。また、「決定すること」は、解決、選択、選定、確立等を含むことができる。
【００９１】
[0105]本明細書に記載されるように、項目のリストのうちの「少なくとも１つ」と称する文言は、単数を含むこれら項目のうちの任意の組合せを称する。例として、「ａ、ｂ、またはｃの少なくとも１つ」は、ａ、ｂ、ｃ、ａ−ｂ、ａ−ｃ、ｂ−ｃ、およびａ−ｂ−ｃをカバーするように意図される。
【００９２】
[0106]本開示に関して記載された例示的なさまざまな論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログマブル・ゲート・アレイ信号（ＦＰＧＡ）またはその他のプログラマブル論理デバイス（ＰＬＤ）、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア構成要素、または、本明細書に記載された機能を実行するように設計されたこれら任意の組合せを用いて実施または実行されうる。汎用プロセッサは、マイクロプロセッサでありうるが、代替案では、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、またはステート・マシンでありうる。プロセッサは、例えばＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、またはその他任意のこのような構成であるコンピューティング・デバイスの組合せとして実現されうる。
【００９３】
[0107]本開示に関連して記載される方法またはアルゴリズムのステップは、ハードウェアで直接的に、プロセッサによって実行されるソフトウェア・モジュールで、あるいは、これらの組合せで具体化されうる。ソフトウェア・モジュールは、当該技術分野において周知のすべての形式の記憶媒体に常駐しうる。使用されうる記憶媒体の幾つかの例は、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ（登録商標）メモリ、レジスタ、ハードディスク、リムーバブル・ディスク、ＣＤ−ＲＯＭなどを含む。ソフトウェア・モジュールは、単一の命令または複数の命令を備えることができ、複数の異なるコード・セグメント上で、異なるプログラムの間で、および複数の記憶媒体にわたって分散されうる。記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込めるように、プロセッサに結合されうる。あるいは、この記憶媒体は、プロセッサに統合されうる。
【００９４】
[0108]本明細書で開示された方法は、説明された方法を達成するための１つまたは複数のステップまたは動作を備える。方法ステップおよび／または動作は、特許請求の範囲から逸脱せずに相互に置換されうる。言い換えると、ステップまたは動作の特定の順序が指定されていない限り、特定のステップおよび／または動作の順序および／または使用は、特許請求の範囲から逸脱せずに変更されうる。
【００９５】
[0109]記載された機能は、ハードウェア、ソフトウェア、ファームウェア、あるいは、これらの任意の組合せによって実現されうる。ハードウェアで実現されるのであれば、例示的なハードウェア構成は、デバイス内の処理システムを備えうる。処理システムは、バス・アーキテクチャを用いて実現されうる。バスは、全体的な設計制約および処理システムの特定の用途に依存して、任意の数の相互接続バスおよびブリッジを含みうる。バスは、プロセッサ、機械読取可能な媒体、およびバス・インタフェースを含む回路をともにリンクしうる。バス・インタフェースは、とりわけ、ネットワーク・アダプタを、バスを介して、処理システムへ接続するために使用されうる。ネットワーク・アダプタは、信号処理機能を実現するために使用されうる。幾つかの態様の場合、ユーザ・インタフェース（例えば、キーパッド、ディスプレイ、マウス、ジョイスティック等）も、バスに接続されうる。バスはさらに、例えば、タイミング・ソース、周辺機器、電圧制御装置、および電力管理回路等のようなその他さまざまな回路をリンクしうる。これらは、当該技術分野で良く知られているので、さらなる説明はしない。
【００９６】
[0110]プロセッサは、バスの管理、および、機械読取可能な媒体に格納されたソフトウェアの実行を含む一般的な処理を担当する。プロセッサは、１または複数の汎用プロセッサおよび／または特別目的プロセッサを用いて実現されうる。例は、マイクロプロセッサ、マイクロコントローラ、ＤＳＰプロセッサ、および、ソフトウェアを実行することができるその他の回路、を含みうる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マクロコード、ハードウェア記述言語、あるいはその他で称されようとも、命令群、データ、あるいは、これらの任意の組合せを意味するように広く解釈されるものとする。機械読取可能な媒体は、例によれば、ＲＡＭ（ランダム・アクセス・メモリ）、フラッシュメモリ、ＲＯＭ（リード・オンリー・メモリ）、ＰＲＯＭ（プログラマブル・リード・オンリー・メモリ）、ＥＰＲＯＭ（消去可能プログラマブル・リード・オンリー・メモリ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブル・リード・オンリー・メモリ）、レジスタ、磁気ディスク、光ディスク、ハード・ドライブ、またはその他任意の適切な記憶媒体、あるいはこれら任意の組合せを含みうる。機械読取可能な媒体は、コンピュータ・プログラム製品内に組み込まれうる。コンピュータ・プログラム製品は、パッケージング・マテリアルを備えうる。
【００９７】
[0111]ハードウェアによる実施では、機械読取可能な媒体は、プロセッサとは別の処理システムの一部でありうる。しかしながら、当業者であれば容易に理解するであろうが、機械読取可能な媒体またはその任意の部分は、処理システムの外部にありうる。例によれば、マシン読取可能な媒体は、伝送路、データによって変調された搬送波、および／または、デバイスから分離されたコンピュータ製品を含みうる。そして、これらすべては、バス・インタフェースを介してプロセッサによってアクセスされうる。あるいは、または、それに加えて、機械読取可能な媒体またはこれら任意の部分は、キャッシュおよび／または汎用レジスタ・ファイルによくあるように、プロセッサへ統合されうる。
【００９８】
[0112]処理システムは、プロセッサ機能を提供する１または複数のマイクロプロセッサと、機械読取可能な媒体のうちの少なくとも一部を提供する外部メモリと、を備える汎用処理システムとして構成されうる。１または複数のマイクロプロセッサと外部メモリはすべて、外部バス・アーキテクチャを介して他の支援回路にリンクされている。あるいは、処理システムは、プロセッサを備えたＡＳＩＣ（特定用途向け集積回路）、バス・インタフェース、ユーザ・インタフェース、支援回路、および、単一チップへ組み込まれたマシン読取可能な媒体の少なくとも一部で、または、１つまたは複数のＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）、ＰＬＤ（プログラマブル論理デバイス）、コントローラ、ステート・マシン、ゲート・ロジック、ディスクリート・ハードウェア構成要素、またはその他の適切な回路、あるいは、本開示を通じて記載されたさまざまな機能を実行できうる回路の任意の組合せで実現されうる。当業者であれば、システム全体に課せられる全体的な設計制約および特定のアプリケーションに依存して、処理システムのために、記載された機能をどうやって最良に実施するかを認識するだろう。
【００９９】
[0113]機械読取可能な媒体は、多くのソフトウェア・モジュールを備えうる。ソフトウェア・モジュールは、プロセッサによって実行された場合、処理システムに対して、さまざまな機能を実行させるための命令群を含む。ソフトウェア・モジュールは、送信モジュールおよび受信モジュールを含みうる。ソフトウェア・モジュールはそれぞれ、単一のストレージ・デバイス内に存在するか、または、複数のストレージ・デバイスにわたって分散されうる。例によれば、ソフトウェア・モジュールは、トリガ・イベントが生じると、ハード・ドライブからＲＡＭへロードされうる。ソフトウェア・モジュールの実行中、プロセッサは、アクセス速度を増加させるために、命令のうちの幾つかをキャッシュにロードしうる。その後、プロセッサによる実行のために、１または複数のキャッシュ・ラインが、汎用レジスタ・ファイルへロードされうる。以下に示すソフトウェア・モジュールの機能を参照する場合、このような機能は、このソフトウェア・モジュールからの命令群を実行するときに、プロセッサによって実施されることが理解されるだろう。
【０１００】
[0114]ソフトウェアで実現される場合、これら機能は、コンピュータ読取可能な媒体上に格納されるか、あるいは、コンピュータ読取可能な媒体上の１または複数の命令群またはコードとして送信されうる。コンピュータ読取可能な媒体は、コンピュータ・プログラムを１つの場所から別の場所へ転送することを容易にする任意の媒体を含む通信媒体とコンピュータ記憶媒体との両方を含んでいる。記憶媒体は、コンピュータによってアクセスされる利用可能な任意の媒体でありうる。例として、限定することなく、このようなコンピュータ読取可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、あるいは、所望のプログラム・コード手段を命令群またはデータ構造の形式で搬送または格納するために使用され、しかも、コンピュータによってアクセスされうるその他任意の媒体を備えうる。さらに、いかなる接続も、コンピュータ読取可能な媒体として適切に称される。同軸ケーブル、光ファイバ・ケーブル、対より線、デジタル加入者線（ＤＳＬ）、あるいは、例えば赤外線（ＩＲ）、無線およびマイクロ波のような無線技術を使用して、ウェブサイト、サーバ、あるいはその他の遠隔ソースからソフトウェアが送信される場合、同軸ケーブル、光ファイバ・ケーブル、対より線、ＤＳＬ、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術が、媒体の定義に含まれる。本明細書で使用されるようなディスク（ｄｉｓｋおよびｄｉｓｃ）は、コンパクト・ディスク（ｄｉｓｃ）（ＣＤ）、レーザ・ディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、デジタル多用途ディスク（ｄｉｓｃ）（ＤＶＤ）、フロッピー（登録商標）ディスク（ｄｉｓｋ）、およびＢｌｕ−ｒａｙ（登録商標）ディスク（ｄｉｓｃ）を含んでいる。ここで、ｄｉｓｋは通常、データを磁気的に再生する一方、ｄｉｓｃは、レーザを用いてデータを光学的に再生する。従って、幾つかの態様では、コンピュータ読取可能な媒体は、非一時的なコンピュータ読取可能な媒体（例えば、具体的な媒体）を備えうる。さらに、別の態様の場合、コンピュータ読取可能な媒体は、一時的なコンピュータ読取可能な媒体（例えば、信号）を備えうる。上記の組合せもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【０１０１】
[0115]したがって、ある態様は、本明細書に記載された動作を実行するためのコンピュータ・プログラム製品を備えうる。例えば、このようなコンピュータ・プログラム製品は、格納された（および／またはエンコードされた）命令群を有するコンピュータ読取可能な媒体を備える。これら命令群は、本明細書において記載された動作を実行するために、１つまたは複数のプロセッサによって実行されることが可能である。ある態様の場合、コンピュータ・プログラム製品は、パッケージング・マテリアルを含みうる。
【０１０２】
[0116]さらに、本明細書に記載された技術および方法を実行するためのモジュールおよび／またはその他の適切な手段は、規定通りに、ダウンロードされうるか、および／または、そうでなければ、デバイスによって取得されうることが理解されるべきである。例えば、このようなデバイスは、本明細書で説明した方法を実行するための手段の転送を容易にするためにサーバに結合されうる。あるいは、本明細書に記載されたさまざまな方法は、デバイスへの記憶手段の結合または提供がなされると、デバイスがさまざまな方法を取得できうるように、記憶手段（例えば、ＲＡＭや、ＲＯＭや、コンパクト・ディスク（ＣＤ）またはフロッピー・ディスク等のような物理的な記憶媒体）を介して提供されうる。さらに、本明細書で説明された方法および技法をデバイスに提供するために、その他任意の適切な技法が利用されうる。
【０１０３】
[0117]特許請求の範囲は、前述した正確な構成および構成要素に限定されないことを理解されたい。さまざまな修正、変更、および変形が、特許請求の範囲の範囲から逸脱せずに、前述した方法および装置の構成、動作、および詳細において実施されうる。
【図１】
2016532216.tif 000021
【図２】
2016532216.tif 000022
【図３】
2016532216.tif 000023
【図４】
2016532216.tif 000024
【図５】
2016532216.tif 000025
【図６】
2016532216.tif 000026
【図７】
2016532216.tif 000027
【図８】
2016532216.tif 000028
【図９】
2016532216.tif 000029
【図９Ａ】
2016532216.tif 000030
【図１０】
2016532216.tif 000031
【図１１】
2016532216.tif 000032
【図１２】
2016532216.tif 000033
【図１３】
2016532216.tif 000034
【国際調査報告】
2016532216.tif 000035
2016532216.tif 000036
2016532216.tif 000037