JP2016532216A - 人工神経システムにおけるブレークポイント決定ユニットを実現するための方法および装置 - Google Patents

人工神経システムにおけるブレークポイント決定ユニットを実現するための方法および装置 Download PDF

Info

Publication number
JP2016532216A
JP2016532216A JP2016538956A JP2016538956A JP2016532216A JP 2016532216 A JP2016532216 A JP 2016532216A JP 2016538956 A JP2016538956 A JP 2016538956A JP 2016538956 A JP2016538956 A JP 2016538956A JP 2016532216 A JP2016532216 A JP 2016532216A
Authority
JP
Japan
Prior art keywords
condition
determination unit
artificial neural
spike
neural system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016538956A
Other languages
English (en)
Other versions
JP2016532216A5 (ja
Inventor
キャノイ、マイケル−デイビッド・ナカヨシ
ベル・ザ・セカンド、ウィリアム・リチャード
キンタダ、ラマクリシュナ
ランガン、ベンカト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016532216A publication Critical patent/JP2016532216A/ja
Publication of JP2016532216A5 publication Critical patent/JP2016532216A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • Neurology (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Debugging And Monitoring (AREA)

Abstract

人工神経システムを検査するためにブレークポイント決定ユニットを用いるための方法および装置。一例である方法は一般に、人工神経システムの少なくとも一部を動作させることと、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用いることと、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも1つを行うことと、を含む。

Description

35 U.S.C.119の下の優先権主張
[0001]本願は、ともにその全体が参照によって本明細書に組み込まれている、2013年9月3日出願の米国仮特許出願61/873,044号と、2014年5月19日出願の米国特許出願14/281,118号との優先権を主張する。
[0002]本開示の幾つかの態様は一般に、人工神経システムに関し、さらに詳しくは、ニューラル処理システムにおいて、1つまたは複数のブレークポイント決定ユニットを用いることに関する。
[0003]人工ニューラル・ネットワークは、相互結合された人工ニューロンのグループ(すなわち、ニューラル処理ユニット)を備え得、計算デバイスであるか、または、計算デバイスによって実行されるべき方法を表す。人工ニューラル・ネットワークは、生物学的なニューラル・ネットワークにおける対応する構成および/または関数を有しうる。しかしながら、人工ニューラル・ネットワークは、従来の計算技術が、扱いにくい、非現実的、または不適切である幾つかのアプリケーションのための革新的かつ有用な計算技術を提供しうる。人工ニューラル・ネットワークは、観察から関数を推論しうるので、そのようなネットワークは、タスクまたはデータの複雑さが、従来技術による関数の設計を面倒にするアプリケーションにおいて特に有用である。
[0004]人工ニューラル・ネットワークの1つのタイプは、ニューロン状態およびシナプス状態のみならず、時間の概念をその動作モデルに組み込んだスパイク・ニューラル・ネットワークである。これによって、豊富な挙動の集合を提供し、ここから、計算機能が、ニューラル・ネットワークにおいて出現しうる。スパイク・ニューラル・ネットワークは、特定の時間において、または、ニューロンの状態に基づく時間において、ニューロンが発火する、すなわち「スパイクする」概念に基づいており、この時間は、ニューロン機能に重要である。ニューロンが発火した場合、それは、他のニューロンへ転送するスパイクを生成する一方、他のニューロンは、このスパイクが受け取られた時間に基づいて、その状態を調節しうる。言い換えれば、情報は、ニューラル・ネットワークにおけるスパイクの相対的または絶対的なタイミングでエンコードされうる。
[0005]本開示の幾つかの態様は一般に、人工神経システムにおけるブレークポイント決定ユニットを実現することに関する。
[0006]本開示の幾つかの態様は、人工神経システムを検査するためにブレークポイント決定ユニットを用いるための方法を提供する。この方法は一般に、人工神経システムの少なくとも一部を動作させることと、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用いることと、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも1つを行うことと、を含む。
[0007]本開示の幾つかの態様は、人工神経システムを検査するために、ブレークポイント決定ユニットを用いるための装置を提供する。この装置は一般に、処理システムと、処理システムに結合されたメモリとを含んでいる。処理システムは典型的には、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも1つを行う、ように構成される。
[0008]本開示の幾つかの態様は、人工神経システムを検査するために、ブレークポイント決定ユニットを用いるための装置を提供する。この装置は一般に、人工神経システムの少なくとも一部を動作させるための手段と、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用いるための手段と、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも1つを行うための手段と、を含む。
[0009]本開示の幾つかの態様は、人工神経システムを検査するためにブレークポイント決定ユニットを用いるためのコンピュータ・プログラム製品を提供する。このコンピュータ・プログラム製品は一般に、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けることのうちの少なくとも1つを行う、ように実行可能な命令を有するコンピュータ読取可能な媒体(例えば、ストレージ・デバイスまたはその他の非一時的な媒体)を含む。
[0010]本開示の前述した特徴が、より詳細に理解される方式で、簡潔に要約された上記具体的な記載が、態様に対する参照によってなされている。そして、それらの幾つかは、添付図面で例示されている。しかしながら、この記載は、その他の等しく有効な態様に対しても適合するので、添付図面は、本開示のある典型的な態様のみを示しており、この範囲を限定するものとしては考慮されるべきではないことが注目されるべきである。
[0011]図1は、本開示の幾つかの態様に従うニューロンの例示的なネットワークを例示する。 [0012]図2は、本開示の幾つかの態様に従う、計算ネットワーク(ニューラル・システムまたはニューラル・ネットワーク)の例示的な処理ユニット(ニューロン)を例示する。 [0013]図3は、本開示の幾つかの態様に従う、例示的なスパイク・タイミング依存塑性(STDP:spike-timing dependent plasticity)曲線を例示する。 [0014]図4は、本開示の幾つかの態様に従う、ニューロンの挙動を定義するための肯定的レジームおよび否定的レジームを例示する人工ニューロンのための状態の例示的なグラフである。 [0015]図5は、本開示の幾つかの態様に従う、ブレークポイント・ニューロンを有する例示的なニューラル処理システムを例示する。 [0016]図6は、本開示の幾つかの態様に従う、ブレークポイント決定ユニットのための例示的なステート・マシンを例示する。 [0017]図7は、本開示の幾つか態様に従って、ブレークポイント・ニューロンを用いる同時イベント処理のための例示的なタイミング図を例示する。 [0018]図8は、本開示の幾つかの態様に従って、ブレークポイント・ニューロンを用いる遅延イベント処理のための例示的なタイミング図である。 [0019]図9は、本開示の幾つかの態様に従って、ブレークポイント決定ユニットを用いて人工神経システムを検査するための例示的な動作のフロー図である。 [0020]図9Aは、図9に図示された動作を実行することが可能な例示的な手段を例示する。 [0021]図10は、本開示の幾つかの態様に従って、汎用プロセッサを用いて、人工神経システムの少なくとも一部の検査を実施するための例示的な構成要素を例示する。 [0022]図11は、本開示の幾つかの態様に従って、メモリが、分散された個々の処理ユニットとインタフェースされうる人工神経システムの少なくとも一部の検査を実施するための例示的な構成要素を例示する。 [0023]図12は、本開示の幾つかの態様に従って、分散されたメモリおよび分散された処理ユニットに基づいて、人工神経システムの少なくとも一部の検査を実施するための例示的な構成要素を例示する。 [0024]図13は、本開示の幾つかの態様に従う、ニューラル・ネットワークの例示的な実装を例示する。
[0025]本開示のさまざまな態様は、添付図面を参照して以下により十分に記載される。しかしながら、本開示は、異なる多くの形態で具体化され、本開示を通じて示されたどの具体的な構成または機能にも限定されるものとは解釈されるべきではない。むしろ、これらの態様は、本開示が十分で完全であり、本開示の範囲を当業者に十分に伝達できるように提供される。本明細書における教示に基づいて、当業者は、本開示の範囲は、独立して実施されようが、あるいは、本開示の任意の他の態様と組み合わされようが、本明細書で示された開示の態様をカバーすることが意図されていることを認識すべきである。例えば、本明細書に記載された任意の数の態様を用いて装置が実施され、方法が実現されうる。さらに、本開示の範囲は、別の構成、機能、または、本明細書に記載された開示のさまざまな態様またはそれ以外の態様が追加された構成および機能を用いて実現される装置または方法をカバーすることが意図されている。本明細書で示された開示のあらゆる態様は、特許請求の範囲の1または複数の要素によって具体化されうる。
[0026]「典型的である」という単語は「例、事例、あるいは実例として役立つ」ことを意味するために本明細書で使用される。本明細書において「典型的」と記載されるいかなる態様も、他の態様よりも好適であるとか、有利であると必ずしも解釈される必要はない。
[0027]本明細書では、特定の態様が記載されているが、これら態様の多くの変形および置換が、本開示の範囲内にある。好適な態様の幾つかの利点および長所が述べられているが、本開示の範囲は、特定の利点、使用、および目的に限定されることは意図されていない。むしろ、本開示の態様は、このうちの幾つかが図面における例示によって、および、以下の好適な態様の記載によって例示されている異なる技術、システム構成、ネットワークおよびプロトコルに広く適用可能であることが意図されている。詳細な記載および図面は、限定ではない開示の単なる例示であり、本開示の範囲は、特許請求の範囲およびその均等物によって定義される。
例示的なニューラル・システム
[0028]図1は、本開示の幾つかの態様に従って複数レベルのニューロンを備えた例示的なニューラル・ネットワーク100を例示する。ニューラル・システム100は、シナプス結合104(すなわち、フィード・フォワード結合)のネットワークによって、別のレベルのニューロン106に結合されたレベルのニューロン102を備えうる。簡略のために、図1には2つのレベルのニューロンしか例示されていないが、それよりも少ないまたは多いレベルのニューロンが、典型的なニューラル・システムに存在しうる。ニューロンのうちの幾つかは、側面結合(lateral connection)によって同じ層の他のニューロンへ結合しうることが注目されるべきである。さらに、ニューロンのうちの幾つかは、フィードバック結合によって、前の層のニューロンに戻って結合しうる。
[0029]図1に例示されるように、レベル102における各ニューロンは、(図1に図示されていない)前のレベルの複数のニューロンによって生成されうる入力信号108を受け取りうる。信号108は、レベル102のニューロンへの入力(例えば、入力電流)を提示しうる。そのような入力は、膜電位を充電するために、ニューロン・メンブレンに蓄積されうる。膜電位が、そのしきい値に達した場合、ニューロンは発火し、次のレベル(例えば、レベル106)のニューロンへ転送されるべき出力スパイクを生成しうる。そのような挙動は、アナログおよびデジタルによる実施を含む、ハードウェアおよび/またはソフトウェアにおいてエミュレートまたはシミュレートされうる。
[0030]生物学的なニューロンでは、ニューロンが発火した場合に生成される出力スパイクは、活動電位と称される。この電気信号は、比較的迅速で、一時的な、あるかないかの神経インパルスであり、約100ミリ・ボルトの振幅と、約1ミリ秒の持続時間とを有する。結合されている一連のニューロンを有するニューラル・システムの特定の態様(例えば、図1におけるニューロンの1つのレベルから別のレベルへのスパイクの転送)では、すべての活動電位は基本的に、同じ振幅および持続時間を有し、従って、信号における情報は、周波数およびスパイクの数(または、スパイクの時間)によってのみ表され、振幅によって表されない。活動電位によって伝送される情報は、スパイク、スパイクしたニューロン、および、1つまたは複数の他のスパイクに対するスパイクの時間によって決定される。
[0031]図1に例示されるように、ニューロンの1つのレベルから別のレベルへのスパイクの転送は、シナプス結合(または単に「シナプス」)104のネットワークによって達成されうる。シナプス104は、レベル102ニューロン(シナプス104に対するプレ・シナプス・ニューロン)から出力信号(すなわち、スパイク)を受け取りうる。幾つかの態様の場合、これら信号は、調節可能なシナプス重み
Figure 2016532216
,…,
Figure 2016532216
に従ってスケールされうる(ここで、Pは、レベル102のニューロンとレベル106のニューロンとの間のシナプス結合の合計数である)。他の態様の場合、シナプス104は、何れのシナプス重みも適用しないことがありうる。さらに、(スケールされた)信号は、レベル106における各ニューロン(シナプス104に対するポスト・シナプス・ニューロン)の入力信号として結合されうる。レベル106におけるすべてのニューロンは、対応する結合された入力信号に基づいて、出力スパイク110を生成しうる。その後、出力スパイク110は、シナプス結合の別のネットワークを用いて、別のレベルのニューロンへ転送されうる(図1に図示されず)。
[0032]生物学的なシナプスは、電気的または化学的の何れかに分類されうる。電気的なシナプスは主として興奮性信号を送るために使用されるが、化学的なシナプスは、ポスト・シナプス・ニューロンにおける興奮性または抑制的な(過分極化)動作を仲介し、ニューロン信号を増幅するためにも役立ちうる。興奮性信号は典型的には、膜電位を脱分極する(すなわち、静止電位に対する膜電位を増加させる)。しきい値を超えて膜電位を脱分極するために、十分な興奮性信号が、ある期間内に受け取られたのであれば、ポスト・シナプス・ニューロンにおいて活動電位が生じる。一方、抑制信号が一般に膜電位を過分極化(すなわち、低下)させる。抑制信号は、十分に強いのであれば、興奮性信号の総和を打ち消し、膜電位が、しきい値に達することを阻止できうる。シナプス興奮を打ち消すことに加えて、シナプス抑制は、自発的に活動的なニューロンに対して強力な制御を及ぼしうる。自発的に活動的になったニューロンは、たとえば、それのダイナミクスまたはフィードバックに起因するさらなる入力なしにスパイクするニューロンを指す。これらニューロンにおける活動電位の自発的な生成を抑制することによって、シナプス抑制が、ニューロンにおける発火のパターンを形成できうる。これは一般にスカルプチャリングと称される。さまざまなシナプス104は、所望される挙動に依存して、興奮シナプスまたは抑制シナプスの任意の組合せとして動作しうる。
[0033]ニューラル・システム100は、汎用プロセッサ、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)またはその他のプログラマブル論理デバイス(PLD)、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア構成要素、プロセッサによって実行されるソフトウェア・モジュール、または、およびこれらの任意の組合せによってエミュレートされうる。ニューラル・システム100は、画像およびパターン認識、マシン学習、モータ制御等のような、広い応用範囲において利用されうる。ニューラル・システム100における各ニューロンは、ニューロン回路として実現されうる。出力スパイクを発生させるしきい値に荷電されたニューロン膜は、例えば、そこを流れる電流を積分するキャパシタとして実現されうる。
[0034]態様では、キャパシタは、ニューロン回路の電流積分デバイスとして除かれ得、より小さなメモリスタ素子が、その場所に使用されうる。このアプローチは、ニューロン回路においてのみならず、大きなキャパシタが電流積分器として利用されるその他さまざまなアプリケーションにおいても適用されうる。さらに、シナプス104の各々は、メモリスタ素子に基づいて実現され、ここでは、シナプス重み変化が、メモリスタ抵抗の変化に関連しうる。ナノメータ・フィーチャ・サイズのメモリスタを用いて、シナプスおよびニューロン回路のエリアは、実質的に低減されうる。これは、非常に大規模なニューラル・システム・ハードウェア実装を現実的に実現しうる。
[0035]ニューラル・システム100をエミュレートするニューラル・プロセッサの機能は、シナプス結合の重みに依存しうる。これは、ニューロン間の結合の強度を制御しうる。シナプス重みは、パワー・ダウン後のプロセッサの機能を保存するために、不揮発性メモリに記憶されうる。態様では、シナプス重みメモリは、メイン・ニューラル・プロセッサ・チップとは別の外部チップ上に実装されうる。シナプス重みメモリは、リプレース可能なメモリ・カードとして、ニューラル・プロセッサ・チップとは別にパッケージされうる。これは、ニューラル・プロセッサへ種々の機能を提供しうる。ここでは、特定の機能が、ニューラル・プロセッサに現在取り付けられているメモリ・カードに記憶されたシナプス重みに基づきうる。
[0036]図2は、本開示の幾つかの態様に従う、計算ネットワーク(例えば、ニューラル・システムまたはニューラル・ネットワーク)の処理ユニット(例えば、人工ニューロン202)の例200を例示する。例えば、ニューロン202は、図1からのレベル102およびレベル106のニューロンのうちの何れかに対応しうる。ニューロン202は、複数の入力信号204−204(x−x)を受け取り得、これは、ニューロン・システムの外部の信号、または、同じニューロン・システムの他のニューロンによって生成された信号、またはその両方でありうる。入力信号は、実数値または複素数値である電流または電圧でありうる。入力信号は、固定小数点または浮動小数点の表示を備えた数値を備えうる。これらの入力信号は、調節可能なシナプス重み206−206(w−w)に従って、信号をスケールするシナプス結合を介してニューロン202へ伝達され得、ここで、Nは、ニューロン202の入力結合の総数でありうる。
[0037]ニューロン202は、スケールされた入力信号を合成し、合成されたスケールされた入力を用いて、出力信号208(すなわち、信号y)を生成しうる。出力信号208は、実数値または複素数値である電流または電圧でありうる。出力信号は、固定小数点または浮動小数点の表示を備えた数値を備えうる。出力信号208は、その後、同じニューラル・システムの他のニューロンへの入力信号として、または、同じニューロン202への入力信号として、または、ニューラル・システムの出力として転送されうる。
[0038]処理ユニット(ニューロン202)は、電気的な回路によってエミュレートされ、その入力結合および出力結合は、シナプス回路を用いて配線によってエミュレートされうる。処理ユニット、その入力結合および出力結合はまた、ソフトウェア・コードによってエミュレートされうる。処理ユニットはまた、電気回路によってエミュレートされうる一方、その入力結合および出力結合は、ソフトウェア・コードによってエミュレートされうる。態様では、計算ネットワークにおける処理ユニットは、アナログ電気回路を備えうる。別の態様では、処理ユニットは、デジタル電気回路を備えうる。また別の態様では、処理ユニットは、アナログ構成要素とデジタル構成要素との両方を備えた混合信号電気回路を備えうる。計算ネットワークは、前述した形式のうちの何れかにおける処理ユニットを備えうる。そのような処理ユニットを用いる計算ネットワーク(ニューラル・システムまたはニューラル・ネットワーク)は、画像およびパターン認識、マシン学習、モータ制御等のような、広い応用範囲において利用されうる。
[0039]ニューラル・ネットワークの学習過程中、シナプス重み(例えば、図1からの重み
Figure 2016532216
,…,
Figure 2016532216
および/または図2からの重み206−206)は、乱数を用いて初期化され、学習ルールに従って増加または減少されうる。学習ルールの幾つかの例は、スパイク・タイミング依存塑性(STDP)学習ルール、Hebbルール、Ojaルール、Bienenstock−Copper−Munro(BCM)ルール等である。極めて頻繁に、重みは、2つの値(すなわち、重みの双峰分布)のうちの1つに落ち着きうる。この効果は、シナプス重み毎のビットの数を低減し、シナプス重みを記憶するメモリからの読み取り、および/または、このメモリへの書き込みの速度を増加させ、さらに、シナプス・メモリの電力消費量を低減するために利用されうる。
シナプス・タイプ
[0040]ニューラル・ネットワークのハードウェア・モデルおよびソフトウェア・モデルでは、シナプス関連機能の処理は、シナプス・タイプに基づきうる。シナプス・タイプは、非塑性シナプス(重みおよび遅延の変化無し)、塑性シナプス(重みが変化しうる)、構造的遅延塑性シナプス(重みおよび遅延が変化しうる)、十分な塑性シナプス(重み、遅延、および結合が変化しうる)、およびこれらのバリエーション(例えば、遅延が変化しうるが、重みまたは結合の変化無し)、を備えうる。この利点は、処理が細分化できうることである。例えば、非塑性シナプスは、非塑性機能が実行されること(または、そのような機能が完了することを待つこと)を必要としない。同様に、遅延および重みの塑性が、共にまたは個別に連続的または並列的に動作しうる動作に細分化されうる。異なるタイプのシナプスは、適合する異なる塑性タイプの各々のために、異なるルックアップ・テーブルまたは定式およびパラメータを有しうる。従って、方法は、シナプスのタイプに関する、関連するテーブルにアクセスするであろう。
[0041]さらに、スパイク・タイミング依存構造塑性が、シナプス塑性と独立して実行されうるという事実が含まれている。構造的な塑性(すなわち、遅延変化量)は、プレ・ポスト・スパイク時間差の直接的な関数でありうるので、重みの大きさに対する変化がない場合(例えば、重みが最小または最大の値に達した場合、または、その他幾つかの理由によって変化しない場合)であっても、実行されうる。あるいは、それは、重み変化量の関数として、または、重み変化または重みの範囲に関する条件に基づいて設定されうる。例えば、シナプス遅延は、重み変化が生じた場合、または、重みがゼロに達した場合にのみ変化しうるが、重みが最大値に達した場合には変化しない。しかしながら、これら処理が並列化され、メモリ・アクセスの数およびオーバラップを低減することができる独立した機能を有することが有利でありうる。
シナプス塑性の決定
[0042]ニューロ塑性(または単に「塑性」)は、新たな情報、知覚的刺激、進化、損害、または機能障害に応じて、そのシナプス結合および挙動を変化させる、脳内のニューロンおよびニューラル・ネットワークの能力である。塑性は、生物学における学習および記憶のみならず、計算ニューロサイエンスおよびニューラル・ネットワークにも重要である。(例えば、Hebbian理論に従う)シナプス塑性、スパイク・タイミング依存塑性(STDP)、非シナプス塑性、動作依存塑性、構造的な塑性、およびホメオスタシス塑性のようなさまざまな形式の塑性が研究されている。
[0043]STDPは、脳内の場合のようなニューロン間のシナプス結合の強度を調節する学習処理である。結合強度は、特定のニューロンの出力と、受け取られた入力スパイク(すなわち、活動電位)に基づいて調節される。STDP処理の下では、あるニューロンへの入力スパイクが、平均して、そのニューロンの出力スパイクの直前に生じる傾向にあるのであれば、長期増強(LTP)が生じうる。その後、この特定の入力は、幾分強くされる。対照的に、入力スパイクが、平均して、出力スパイクの直後の生じる傾向にあるのであれば、長期抑圧(LTD)が生じうる。その後、その特定の入力は、幾分弱くされるので、「スパイク・タイミング依存塑性」という名称となる。その結果、ポスト・シナプス・ニューロンの興奮の原因となりうる入力は、将来において寄与する確率がより高くなる一方、ポスト・シナプス・スパイクの原因ではない入力は、将来において寄与する可能性がより低くなる。この処理は、結合の最初の集合の部分集合が残るまで続く一方、その他すべての影響は、ゼロまたはほぼゼロへ低減される。
[0044]ニューロンは、一般に、その入力の多くが短期間内に生じる(すなわち、出力を引き起こすのに十分に累積している)場合に、出力スパイクを生成するので、典型的に残っている入力の部分集合は、時間において相関付けられる傾向のあるものを含む。さらに、出力スパイクの前に生じる入力が強化されるので、最も早期の十分な累積を示す相関するインジケーション(indication)を提供する入力は、結果的には、ニューロンに対する最終入力となるであろう。
[0045]STDP学習ルールは、プレ・シナプス・ニューロンをポスト・シナプス・ニューロンへ結合するシナプスのシナプス重みを、プレ・シナプス・ニューロンのスパイク時間tpreと、ポスト・シナプス・ニューロンのスパイク時間tpostとの間の時間差(すなわち、t=tpost−tpre)の関数として効果的に適用しうる。STDPの典型的な定式は、時間差が正である(プレ・シナプス・ニューロンが、ポスト・シナプス・ニューロンの前に発火する)のであれば、シナプス重みを増加させ(すなわち、シナプスを強め)、時間差が負である(ポスト・シナプス・ニューロンが、プレ・シナプス・ニューロンよりも前に発火する)のであれば、シナプス重みを減少させる(すなわち、シナプスを抑制する)ことである。
[0046]STDP処理では、シナプス重みの経時的な変化は、典型的には、
Figure 2016532216
によって与えられるように、指数関数的な減衰を用いて達成されうる。ここで、kおよびk_は、正の時間差および負の時間差それぞれのための時間定数であり、aおよびa_は、対応するスケーリング大きさであり、μは、正の時間差および/または負の時間差に適用されうるオフセットである。
[0047]図3は、STDPに従って、プレ・シナプス・スパイクおよびポスト・シナプス・スパイクの相対的なタイミングに応じたシナプス重み変化の例示的なグラフ300を例示する。プレ・シナプス・ニューロンが、ポスト・シナプス・ニューロンよりも前に発火すると、グラフ300の部分302に例示されるように、対応するシナプス重みが増加されうる。この重みは、シナプスのLTPと称されうる。グラフ部分302から、LTPの量は、プレ・シナプス・スパイク時間とポスト・シナプス・スパイク時間との差分に応じて略指数関数的に減少しうることが観察されうる。逆の順序の発火は、グラフ300の部分304に例示されるように、シナプス重みを低減しうる。これは、シナプスのLTDを引き起こす。
[0048]図3のグラフ300に例示されるように、負のオフセットμが、STDPグラフのLTP(原因)部分302に適用されうる。x軸の交差点306(y=0)が、層i−1(プレ・シナプス層)からの原因入力のための相関を考慮するための最大タイム・ラグと一致するように構成されうる。フレーム・ベースの入力である(すなわち、入力が、スパイクまたはパルスを備える特定の持続時間のフレームの形態である)ケースでは、オフセット値μは、フレーム境界を反映するように計算されうる。フレームにおける第1の入力スパイク(パルス)は、ポスト・シナプス電位によって直接的にモデル化されるように、あるいは、ニューラル状態における影響の観点から、経時的に減衰するように考慮されうる。フレーム中の第2の入力スパイク(パルス)が、特定の時間フレームに相関する、または関連していると考えられているのであれば、フレームの前および後の関連する時間が、その時間フレーム境界において分離され、STDP曲線の1つまたは複数の部分をオフセットすることによって塑性項において異なって取り扱われ、これによって、関連する時間における値が、異なりうる(例えば、1つのフレームより大きい場合、負であり、1つのフレームよりも小さい場合、正となる)。例えば、曲線が、フレーム時間よりも大きい前後の時間で実際にゼロよりも下になり、結果的にLTPの代わりにLTDの一部であるようにLTPをオフセットするために負のオフセットμが設定され得る。
ニューロン・モデルおよび演算
[0049]有用なスパイク・ニューロン・モデルを設計するための幾つかの一般的な原理がある。良好なニューロン・モデルは、2つの計算レジーム、すなわち、一致性検出と、関数計算との観点から、豊富な潜在的挙動を有しうる。さらに、良好なニューロン・モデルは、テンポラル・コーディングを可能にするために2つの要素を有していなければならず、入力の到着時間が、出力時間に影響を与え、一致性検出が、狭い時間ウィンドウを有しうる。最後に、計算上魅力あるものにするために、良好なニューロン・モデルは、連続した時間において、閉形式解(closed-form solution)を有し、ニアアトラクター(near attractor)および鞍点を含む安定した挙動を有しうる。言い換えれば、有用なニューロン・モデルは、実用的なものであり、豊富で、現実的で、生物学上一貫した振る舞いをモデル化するために使用されうるのみならず、ニューラル回路をエンジニアおよびリバース・エンジニアの両方を行うためにも使用されうる。
[0050]ニューロン・モデルは、入力到着、出力スパイク、または、内部または外部に関わらないその他のイベントのようなイベントに依存しうる。豊富な挙動レパートリを達成するために、複雑な挙動を表しうるステート・マシンが所望されうる。(もしあれば)入力寄与とは別の、イベント自体の発生が、ステート・マシンに影響を与え、イベントに後続するダイナミクスを抑制するのであれば、システムの将来の状態は、入力および状態の関数であるのみならず、むしろ、状態、イベント、および入力の関数である。
[0051]態様では、ニューロンnが、以下のダイナミクスによって支配される膜電圧v(t)によるスパイクリーキー積分発火ニューロンとしてモデル化されうる。
Figure 2016532216
ここで、αおよびβはパラメータであり、wm,nは、プレ・シナプス・ニューロンmをポスト・シナプス・ニューロンnへ結合するシナプスのためのシナプス重みであり、y(t)は、ニューロンnの細胞体における到着まで、Δtm,nに従って、樹状遅延または軸索遅延によって遅延されうるニューロンmのスパイク出力である。
[0052] ポスト・シナプス・ニューロンへの十分な入力が確立された時間からポスト・シナプス・ニューロンが実際に発火する時間まで、遅延があることが注目されるべきである。Izhikevichの単純モデルのような動的なスパイク・ニューロン・モデルでは、脱分極しきい値νとピーク・スパイク電圧νpeakとの間に差がある場合、時間遅延を招きうる。例えば、この単純モデルでは、ニューロン細胞体ダイナミクスが、電圧および回復のための微分方程式のペアによって決定されうる。すなわち、
Figure 2016532216
Figure 2016532216
であり、
ここで、νは膜電位、uは膜回復変数であり、kは膜電位νの時間スケールを記述するパラメータであり、aは、回復変数uの時間スケールを記述するパラメータであり、bは、膜電位νのしきい値未満の変動に対する回復変数uの感度を記述するパラメータであり、νは、膜静止電位であり、Iは、シナプス電流であり、Cは膜のキャパシタンスである。このモデルによれば、ニューロンは、ν>νpeakである場合、スパイクするように定義される。
Hunzinger Coldモデル
[0053]Hunzinger Coldニューロン・モデルは、種々の豊富なニューラル挙動を再生できうる最小デュアル・レジーム・スパイク線形ダイナミック・モデルである。このモデルの1次元または2次元の線形ダイナミクスは、2つのレジームを有しえ、ここでは、時定数(およびカップリング)が、レジームに依存しうる。しきい値未満のレジームでは、時定数は、慣例によって負であり、生物学的に一貫した線形方式で静止状態に細胞を戻す役目を果たすリーキーチャネルダイナミクスを表す。しきい値上レジームにおける時間定数は、慣例により正であり、一般にスパイク生成のレイテンシを生じさせる一方でスパイク状態に細胞を駆り立てる反リーキーチャネルダイナミクスを反映する。 [0054]図4に例示されるように、このモデルのダイナミクスは、2つ(またはそれ以上の)レジームに分割されうる。これらのレジームは、負のレジーム402(リーキー積分発火(LIF)ニューロン・モデルと混同しないように、LIFレジームとも互換的に称される)および正のレジーム404(反リーキー積分発火(ALIF)ニューロン・モデルと混同しないように、ALIFレジームとも互換的に称される)と呼ばれうる。負のレジーム402では、状態は将来のイベント時に、静止(ν)に向かう傾向にある。この負のレジームでは、モデルは一般に、一時的な入力検出特性と他のしきい値未満の挙動とを示す。正のレジーム404では、状態はスパイク・イベント(ν)に向かう傾向がある。この正のレジームでは、モデルは、後続する入力イベントに依存してスパイクするレイテンシを招くような、計算特性を示す。イベントに関するダイナミクスの公式化と、このダイナミクスの2つのレジームへの分離とが、このモデルの基本的な特性である。
[0055](状態νおよびuに関する)線形デュアル・レジーム2次元ダイナミクスが、
Figure 2016532216
Figure 2016532216
として慣例的に定義されうる。ここで、qρおよびrは、カップリングのための線形変換変数である。
[0056]シンボルρは、特定のレジームのための関係を議論または表現する場合、シンボルρを、負のレジームおよび正のレジームのために、符号「−」または「+」に置き換えるという慣例を用いてダイナミクス・レジームを示すためにここで使用される。
[0057]モデル状態は、膜電位(電圧)νおよび回復電流uによって定義される。基本的な形式では、レジームは、モデル状態によって実質的に決定される。正確かつ一般的な定義のために、微妙だが重要な態様があるものの、さしあたり、電圧νがしきい値(ν)を上回るのであれば、モデルは、正のレジーム404にあり、そうではない場合には、負のレジーム402にあると考慮されたい。
[0058]レジーム依存の時定数は、負のレジームの時定数であるτと、正のレジームの時定数であるτとを含む。回復電流の時定数τは典型的には、レジームに依存しない。便宜上、τuと同様に、指数およびτ+が一般に正となる正レジームに関して、電圧発展(voltage evolution)に関する同じ表現が使用され得るように、減衰を反映するために負の量として負レジーム時間定数τ-が一般に指定される。
[0059]2つの状態要素のダイナミクスは、状態をヌル・クラインからオフセットさせる変換によって、イベント時に結合され得、ここで、変換変数は、
ρ=−τρβu−νρ (7)
r=δ(ν+ε) (8)
である。
ここで、δ、ε、β、およびν_、νは、パラメータである。νρのための2つの値は、2つのレジームのための基準電圧のためのベースである。パラメータν_は、負のレジームのためのベース電圧であり、膜電位は一般に、負のレジームにおいて、ν_に向かって減衰するであろう。パラメータνは、正のレジームのためのベース電圧であり、膜電位は一般に、正のレジームにおいて、νから離れる傾向にあるであろう。
[0060]νおよびuに関するヌル・クラインは、変換係数qρおよびrそれぞれの負の値によって得られる。パラメータδは、uヌル・クラインの傾きを制御するスケール・ファクタである。パラメータεは典型的には、−ν_に等しく設定される。パラメータβは、両レジームにおいて、νヌル・クラインの傾きを制御する抵抗値である。τρ時定数パラメータは、指数関数的な減衰のみならず、各レジームそれぞれにおけるヌル・クライン傾きをも制御する。
[0061]このモデルは、電圧νが値νに達した場合にスパイクすると定義される。それに続いて、状態は典型的にリセット・イベント(技術的には、1であり、スパイク・イベントと同じでありうる)においてリセットされる。
Figure 2016532216
u=u+Δu (10)
ここで
Figure 2016532216
およびΔuはパラメータである。リセット電圧
Figure 2016532216
は、典型的にν_に設定される。
[0062]瞬間的カップリングの原理によって、状態のため(および1つの指数関数項を持つ)のみならず特定の状態に達するために必要な時間のためにも、閉形式解が可能である。閉形式状態解は、
Figure 2016532216
Figure 2016532216
である。
[0063]したがって、モデル状態は、入力時(プレ・シナプス・スパイク)または出力時(ポスト・シナプス・スパイク)のようなイベント発生時にのみ更新されうる。(入力または出力があるかないかに関わらず)任意の特定の時間においても演算が実行されうる。
[0064]さらに、瞬間的カップリング原理によって、ポスト・シナプス・スパイクの時間が予期されうるので、反復的技法または数値解法(例えば、オイラー数値解法)無しで、特定の状態に達するための時間が前もって決定されうる。以前の電圧状態νが与えられると、電圧状態νに達するまでの遅延時間は
Figure 2016532216
によって与えられる。
[0065]スパイクが、電圧状態νがνに達した時に生じるものと定義される場合、電圧が所与の状態νである時から測定され、スパイクが生じるまで、時間の長さ、または相対的な遅延に関する閉形式解は、
Figure 2016532216
である。ここで、
Figure 2016532216
は、典型的にはパラメータνに設定されるが、他のバリエーションも可能でありうる。
[0066]モデル・ダイナミクスの上記定義は、モデルが正のレジームであるか負のレジームであるかに依存する。前述したように、カップリングおよびレジームρは、イベント時に計算されうる。状態の伝搬の目的のために、レジームおよびカップリング(変換)変数は、最後の(前の)イベントの時間における状態に基づいて定義されうる。スパイク出力時間を引き続き予測するために、レジームおよびカップリング変数は、次の(現在の)イベントの時間における状態に基づいて定義されうる。
[0067]適時の、シミュレーション、エミュレーション、またはモデルの実行、およびColdモデルの、幾つかの可能な実装がある。これは例えば、イベント更新、ステップ・イベント更新、およびステップ更新モードを含む。イベント更新は、イベントまたは(特定の瞬間における)「イベント更新」に基づいて状態が更新される更新である。ステップ更新は、モデルがインタバル(例えば、1ミリ秒)において更新される場合における更新である。これは必ずしも、反復方法または数値的方法を必要としない。イベント・ベースの実装はまた、イベントがステップにおいてまたはステップ間において生じる場合にモデルを更新するのみのよって、または、「ステップ・イベント」更新によって、ステップ・ベースのシミュレータにおける限られた時間分解能においても可能である。
ニューラル・コーディング
[0068]図1の人工ニューロン102,106で構成されるもののような有用なニューラル・ネットワーク・モデルは、コインシデンス・コーディング(coincidence coding)、テンポラル・コーディング(temporal coding)またはレート・コーディング(rate coding)のような種々の適切なニューラル・コーディング・スキームの何れかによって情報をエンコードしうる。コインシデンス・コーディングでは、情報は、ニューロン母集団の活動電位(スパイク活動)の一致(または時間的な近接)においてエンコードされる。テンポラル・コーディングでは、絶対時間または相対時間に関わらず、ニューロンは、活動電位(すなわち、スパイク)の正確なタイミングで情報をエンコードする。従って、情報は、ニューロンの母集団のうち、スパイクの相対的なタイミングでエンコードされうる。対照的に、レート・コーディングは、発火レートまたは母集団発火レートでニューラル情報をコーディングすることを含む。
[0069]ニューロン・モデルが、テンポラル・コーディングを実行するのであれば、レート・コーディングも実行しうる(なぜなら、レートは、タイミングまたはスパイク間インタバルの単なる関数であるからである)。テンポラル・コーディングを提供するために、良好なニューロン・モデルは、2つの要素、すなわち、(1)入力の到着時間が出力時間に影響を与えること、および、(2)一致検出が、狭い時間ウィンドウを有しうること、有していなければならない。結合遅延は、テンポラル・パターン・デコードへ一致検出を拡大する1つの手段を与える。なぜなら、テンポラル・パターンの要素を適切に遅延させることによって、これら要素にタイミング一致がもたらされうるからである。
到着時間
[0070]良好なニューロン・モデルでは、入力の到着時間は、出力の時間に影響を有するはずである。ディラックのデルタ関数であれシェープト・ポスト・シナプス電位(PSP:shaped post-synaptic potential)であれ、興奮性(EPSP)であれ抑制性(IPSP)であれ、シナプス入力は、到着時間(例えば、デルタ関数の時間、または、ステップの開始またはピーク、または、その他の入力関数)を有し、これは、入力時間と称されうる。ニューロン出力(すなわち、スパイク)は、(例えば、細胞体において、軸索に沿ったポイントにおいて、または、軸索の末端において、どこで測定されようと、)発生時間を有する。これは、出力時間と称されうる。その出力時間は、スパイクのピークの時間、スパイクの開始、または、出力波形に関するその他任意の時間でありうる。支配的な原則は、出力時間が入力時間に依存することである。
[0071]一見すると、すべてのニューロン・モデルが、この原則に従うように思うかもしれないが、一般にはそうではない。例えば、レート・ベースのモデルは、この特徴を有していない。多くのスパイク・モデルも、一般には従わない。リーキー積分発火(LIF)モデルは、(しきい値を超える)余分な入力がある場合、さらに速くは発火しない。さらに、非常に高いタイミング分解能でモデル化される場合に従いうるモデルは、タイミング分解能が例えば1ミリ秒ステップに制限されているときには、しばしば従わないであろう。
入力
[0072]ニューロン・モデルへの入力は、電流としての入力、またはコンダクタンス・ベースの入力のような、ディラックのデルタ関数を含みうる。後者のケースでは、ニューロン状態への寄与は、連続的または状態依存でありうる。
例示的なブレークポイント決定ユニット
[0073]ニューラル・プロセッサは、挙動を実行するために、(例えば、スパイク、人工ニューロン、ニューロモジュレータ等を用いて)ニューラル処理を実行するデバイスである。挙動は、プロセッサへ学習される。しかしながら、学習は、不完全な技術であり、長時間を要しうる。従って、問題をより早く発見させることができる方法を定義することが有利になる。
[0074]デバッグは、ニューラル・プロセッサにおける問題を検出する処理である。デバッグのタイプは、遠隔モニタリングと、ニューラル状態の検査が後に続く実行の停止と、を含む。しかしながら、プロセッサの実行をいつ停止するのかを知ることは、些細なことではない。
[0075]したがって、必要とされることは、人工神経システムまたはその一部の実行を保留すること(suspending)、検査すること、修正すること、またはフラグ付けすること、のうちの少なくとも1つに関する技術および装置である。
[0076]本開示の幾つかの態様は、ニューラル・プロセッサがデバッグを開始すべき条件が存在するときに、イベントをトリガすることによって、デバッグのためにニューラル状態の検査をいつ開始するのかに関する問題を解決することを目的とする。この検出は、外部エンティティからのモニタリング無しで、実行中にシームレスに行われる。対照的に、モニタリングは、ブレークポイント決定ユニットを用いて達成され得、それは、人工神経システムの内部でありうる。幾つかの態様の場合、ブレークポイント決定ユニットは、ブレークポイント・ニューロンとして実装され得、ブレークポイント・ニューロンは、特定の条件において通知イベントを生成するように構成され得ることを除き、ニューラル・プロセッサにおける典型的なスパイク・ニューロンと同様に振る舞いうる。この生成された通知イベントは、スパイク処理の保留に至りうる。
[0077]ニューラル・プロセッサにおけるスパイク・ニューロンは、スパイクを生成し、シナプスを用いて相互結合される。スパイク情報は、スパイク・ニューロン間で伝送される。受信スパイク・ニューロンは、受信スパイク・ニューロンに結合されたすべての送信スパイク・ニューロンからのスパイクを処理する。受信スパイク・ニューロンは、情報を処理し、スパイクが生成されるべきか否かを決定しうる。スパイク生成は、受信スパイク・ニューロンが、しきい値パラメータ(すなわち、電圧)値よりも高められた場合に生じる。しきい値パラメータは設定可能である。
[0078]ブレークポイント・ニューロンは、同様に情報を処理する。しかしながら、しきい値を越えると、ブレークポイント・ニューロンは、ニューラル・プロセッサに、すべてのスパイク処理を停止させおよびすべての遷移状態を保留させるイベントを送信しうる。例示的なイベント通知メカニズムは、割込み、メッセージ・パケット、および、ステータス・レジスタにおける変化を含む。
[0079]例えば、図5は、ブレークポイント・ニューロンB1 504を有する例示的なニューラル処理システム500を例示する。ブレークポイント・ニューロンB1 504は、人工ニューロンN1 506が発火した場合に、ニューラル・プロセッサ・スパイク処理を停止させるように構成される。時間ゼロで、人工ニューロンN3 510が発火し、2タイムステップ後、N1 506が発火する。B1 504は、N1 506が発火したことを直ちに検出する。現在の時間ステップの終了時に、B1 504は、イベント送信機502からのイベントを生成し、処理が停止される。イベントは、例えば、直ちに、または、同期時間の境界の終了時に生じうる。スパイク処理遅延は、モニタされているスパイク・ニューロンからのスパイクを処理しているときに使用されうる。
[0080]ブレークポイント決定ユニットはまた、または、代替的に、1つまたは複数の人工ニューロンの発火以外の条件に基づいて、ニューラル・プロセッサのスパイク処理を停止するように構成されうる。例えば、ブレークポイント決定ユニットは、人工神経システムまたはその一部のための変数またはシステム・パラメータを記憶するために使用されうるグローバル・ストレージ、または、1つまたは複数の人工ニューロンに関連付けられたレジスタまたはメモリに結合されうる。1つまたは複数の人工ニューロンのレジスタまたはメモリまたはグローバル・ストレージにおける1つまたは複数の値をモニタすることによって、ブレークポイント決定ユニットは、これらの場所に記憶された1つまたは複数の値における変化を検出し、イベント送信機からイベントを生成しうる。これは、動作を停止させうる。別の例として、ブレークポイント決定ユニットは、記憶された値のうちの1つまたは複数が、特定の不等式関係(例えば、予め決定されたしきい値よりも大きいか等しい)またはその組合せを満たすのであれば、人工神経システム(またはその一部)の実行を停止させるように構成されうる。
[0081]図6は、図5におけるブレークポイント・ニューロンB1のようなブレークポイント決定ユニットのための例示的なステート・マシン600を例示する。リセット状態602は、スパイク・モニタリングが生じていない初期状態である。ブレークポイント決定ユニットは、条件(しきい値設定)を用いて設定され、モニタされるべき送信ニューロンのセットが識別されうる。ブレークポイント決定ユニットは、送信ニューロンのセットのための受信ニューロンである。設定されると、ブレークポイント決定ユニットは、アイドル状態604に遷移しうる。
[0082]アイドル状態604において、ブレークポイント決定ユニットは、モニタリングを開始する開始コマンドを待っている。停止コマンドは、リセット状態602への状態遷移を引き起こしうる。
[0083]実行状態606では、ブレークポイント決定ユニットが、送信ニューロン・スパイクについてモニタしている。受信されたスパイクの処理後、送信ニューロンのスパイクが、システムを、しきい値を超えて(または、その他幾つかの条件が存在する)駆動した場合ブレークポイント決定ユニットは、イベントを生成するであろう。スパイクも同様に生成されうる。イベント生成は、ブレーク状態608への遷移を引き起こしうる。ポーズ・トリガは、アイドル状態604への遷移を引き起こしうる。
[0084]ブレーク状態608では、モニタリングが停止している。ブレークポイント決定ユニットは、ブレーク・イベントが(例えば、トラブルシューティング後に)取り扱われるまでこの状態にとどまり得、実行状態606へ戻る遷移を引き起こす。
[0085]図7は、本開示の幾つかの態様に従う、同期イベント処理の例示的なタイミング図700、710を例示する。同期イベント処理中、ブレークポイント・ニューロン(B1)は、送信ニューロン(N1)からのスパイクをモニタしうる。t0において、N1は、スパイク入力を処理している。B1は、実行状態にあり、N1(および、恐らくは、1つまたは複数のその他の人工ニューロン)をモニタしている。t1において、N1は、しきい値を超え、スパイクを生成する。B1は、N1からのスパイクを受信し、ブレーク状態に遷移し、そこにとどまる。t1とt2との間の期間において、N1およびB1は、状態を変えないが、デバッグが、N1とB1との何れかまたは両方の状態を変化させうる。t2において、N1ニューロン処理が再開する。B1は、取り扱われた遷移を受け取り、モニタリングのために実行状態に戻る。
[0086]図8は、本開示の幾つかの態様に従って、第1の送信ニューロン(N1)、第2の送信ニューロン(N2)、ブレークポイント・ニューロン(B1)、およびステート・マシンそれぞれのための遅延イベント処理(非同期イベント処理としても知られている)の例示的なタイミング図800、810、820、830を例示する。非同期イベント処理中に、B1は、送信ニューロンN1およびN2からのスパイクをモニタしうる。この例において、B1は、特定の時間ウィンドウ内で、N1から2つのスパイクを、N2から1つのスパイクを受信した場合にしきい値を越えるように構成される。ブレークポイント決定ユニットは、その他の所望される条件、または、条件の組合せにも同様に応答するように構成されうる。
[0087]t0において、N1およびN2は、スパイク入力を処理し、B1は、実行状態にあり、モニタしている。t1において、N1およびN2は、それらのしきい値を超えてゆき、各々がスパイクを生成する。B1はそのしきい値を越えていないので、B1は実行状態にとどまる。t2において、N1はしきい値を越えてゆき、スパイクを生成する、一方、N2は、通常通り処理している。B1は、変化を検出するが、そこでの動作を遅延させるように設定される。t2とt3との間の差分は、シナプス送信の遅延として示されうるか、または、ニューロン処理の遅延として構成されうる。B1は、実行状態における遅延されたサブ状態(遅延の後、B1は、ブレーク状態に遷移するであろう)に保持される。t3において、B1は、N1およびN2スパイク入力に対して動作し、そのしきい値を超えてゆき、ブレーク・イベントを生成する。t3からt4まで、N1、N2、およびB1は、状態を変化させないが、成分パラメータをデバッグまたは意図的に修正する処理が、N1、N2、および/または、B1の状態を変化させうる。t4において、N1およびN2ニューロン処理が継続する。B1は、取り扱われた遷移を受け取り、モニタリングのために、実行状態に戻る。
[0088]図9は、本開示の幾つかの態様に従って、人工神経システムの少なくとも一部を検査またはデバッグするための例示的な動作900のフロー図である。動作900は、例えば、ブレークポイント決定ユニットを備えたシステム(人工ニューロン、シナプス、ニューロモジュレータ等のネットワークから構成されうる)の観点から見られうる。動作900は、ハードウェアにおいて(例えば、ニューロモフィック・プロセッサのような1つまたは複数のニューラル処理ユニット)、ソフトウェアにおいて、またはファームウェアにおいて実行されうる。人工神経システムは、視覚神経システム、聴覚神経システム、海馬等のようなさまざまな生物学的または想像上の神経システムの何れかにおいてモデル化されうる。
[0089]動作900は、902において、人工神経システムの少なくとも一部を動作させることによって開始しうる。904において、人工神経システムにおける1つまたは複数の構成要素をモニタリングすることに少なくとも部分的に基づいて、条件が存在することを検出するために、ブレークポイント決定ユニット(人工神経システムの内部または外部にありうる)が使用されうる。例えば、この構成要素は、ニューロン、シナプス、ニューロモジュレータ、神経膠、および/または、人工神経システムにおけるその他さまざまな適切な構成要素のうちの何れかを含みうる。906において、人工神経システムの少なくとも一部の動作は、904における検出に少なくとも部分的に基づいて、保留され、検査され、修正され、またはフラグ付けされることのうちの少なくとも1つが行われうる。
[0090]幾つかの態様によれば、動作900はさらに、検出に少なくとも部分的に基づいて、条件のインジケーションを出力することと、このインジケーションに少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を停止、保留、修正、またはフラグ付けのうちの少なくとも1つを行うように決定することと、を含みうる。例えば、条件のインジケーションは、割込み、フラグが設定されていること、またはステータス・レジスタにおける変化、の少なくとも1つを含みうる。幾つかの態様については、ブレークポイント決定ユニットは、条件のインジケーションを出力するように構成される。幾つかの態様については、条件のインジケーションは、人工神経システムにおける1つまたは複数の構成要素のうちの1つまたは複数の特性の警告を提供しうる。このインジケーションは、人工神経システムまたはその一部が、デバッグ状態またはブレーク状態にあることを示すフラグ、または、人工神経システム内の特定のデバイスまたは人工神経システムの一部が、デバッグ状態にあるかブレーク状態にあるかを示すその他幾つかの警告、を設定することを含みうる。
[0091]幾つかの態様によれば、ブレークポイント決定ユニットは、検出に少なくとも部分的に基づいて、イベント送信機をトリガするように構成される。このケースでは、イベント送信機は、条件のインジケーションを出力するように構成されうる。トリガされた後、イベント送信機は、直ちに、現在の時間ステップの終了時、次の時間ステップの前、または、予め決定された数の時間ステップの経過後、条件のインジケーションを出力するように構成されうる。
[0092]幾つかの態様によれば、条件は、1つまたは複数の人工ニューロンからの、スパイク・イベント、スパイク・イベントの予測、スパイク・イベントの結合、スパイク・イベントの結合の予測、またはこれらの任意の組合せのうちの少なくとも1つを含みうる。幾つかの態様の場合、条件は、特定の時間ウィンドウ内で生じるスパイク・イベントの組合せを含みうる。幾つかの態様によれば、条件は、しきい値を満たすか、またはしきい値を超えるブレークポイント決定ユニットの状態を含む。他の態様の場合、条件は、スパイク・レートまたはスパイク・レートの予測に少なくとも部分的に基づく。
[0093]幾つかの態様によれば、条件は、1つまたは複数の構成要素の少なくとも1つのパラメータ(例えば、システム変数)が、予め決定された量変化したことに少なくとも部分的に基づきうる。例えば、条件は、シナプス・パラメータ、ニューロモジュレータの導入、神経膠活性化、1つまたは複数のニューロンによるスパイク・レート、または、人工神経システムにおけるその他の特性における変化を含みうる。シナプス・パラメータは、シナプス重みおよびシナプス遅延の量のような特性を含みうる。1つまたは複数のニューロンの塑性または強化のような特性を修正するために、シミュレートされたニューロモジュレータを備える人工神経システムにおいて、条件は、ニューラル入力がスケールされる量における変化を含みうる。神経膠活性化に基づいた条件は、1つまたは複数の神経膠ニューロンによって人工神経システムへ導入された背景ノイズの量を含みうる。幾つかの態様によれば、条件は、特定の時間ウィンドウ内で生じる1つまたは複数のパラメータまたはネットワーク変数における変化の量を含みうる。
[0094]幾つかの態様によれば、ブレークポイント決定ユニットは、人工ニューロンと同じ機能のうちの少なくとも幾つかを有する。このケースでは、ブレークポイント決定ユニットは、活性化された後に1つまたは複数のスパイク・イベントを出力するように構成されうる。
[0095]幾つかの態様によれば、人工神経システムは、1つよりも多くのブレークポイント決定ユニットを有しうる。例えば、人工神経システムは、第1のブレークポイント決定ユニットと、1つまたは複数の第2のブレークポイント決定ユニットとを有しうる。第1のブレークポイント決定ユニットは、例えば、1つまたは複数の第2のブレークポイント決定ユニットのうちの少なくとも1つを活性化(すなわち、オン)するために使用されうる。活性化された場合、1つまたは複数の第2のブレークポイント決定ユニットは、前述したように、人工神経システムにおけるさまざまなパラメータをモニタし、ブレーク・イベントをトリガしうる。第1のブレークポイント決定ユニットはまた、1つまたは複数のパラメータに基づいて、活性化された1つまたは複数の第2のブレークポイント決定ユニットを非活性化(すなわち、オフ)しうる。
[0096]幾つかの態様によれば、動作900はさらに、904における検出前に、モニタされるべき1つまたは複数の人工ニューロンと条件を用いてブレークポイント決定ユニットを設定することを含みうる。
[0097]図10は、本開示の幾つかの態様に従って、汎用プロセッサ1002を用いて、人工神経システムの少なくとも一部を検査するための例示的な構成要素の図解1000を例示する。計算ネットワーク(ニューラル・ネットワーク)に関連付けられたシステム・パラメータ、シナプス重み、および/または、変数(ニューラル信号)は、メモリ・ブロック1004に記憶されうる一方、汎用プロセッサ1002において実行されるものに関連する命令が、プログラム・メモリ1006からロードされうる。本開示の態様では、汎用プロセッサ1002へロードされる命令は、人工ニューロンのネットワークの少なくとも一部を動作させるためのコードと、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在することを検出するために、ブレークポイント決定ユニットを用いるためのコードと、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留すること、検査すること、修正すること、またはフラグ付けすること、のうちの少なくとも1つのためのコードと、を備えうる。
[0098]図11は、本開示の幾つかの態様に従って、人工神経システムの少なくとも一部を検査するための例示的な構成要素のブロック図1100を例示しており、ここで、メモリ1102は、計算ネットワーク(ニューラル・ネットワーク)の個々の(分散された)処理ユニット(ニューラル・プロセッサ)1106との相互接続ネットワーク1104を介してインタフェースされうる。計算ネットワーク(ニューラル・ネットワーク)に関連付けられたシステム・パラメータ、シナプス重み、および/または、変数(ニューラル信号)は、メモリ1102に記憶され、相互接続ネットワーク1104の結合を介してメモリ1102から各処理ユニット(ニューラル・プロセッサ)1106へロードされうる。本開示の態様では、処理ユニット1106は、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在することを検出するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作を保留、検査、修正、またはフラグ付けすることのうちの少なくとも1つを行う、ように構成されうる。
[0099]図12は、本開示の幾つかの態様に従って、分散メモリ1202および分散処理ユニット(ニューラル・プロセッサ)1204に基づいて、人工神経システムの少なくとも一部を検査するための例示的な構成要素のブロック図1200を例示する。図12に例示されるように、1つのメモリ・バンク1202は、計算ネットワーク(ニューラル・ネットワーク)の1つの処理ユニット1204にダイレクトにインタフェースされうる。ここで、メモリ・バンク1202は、その処理ユニット(ニューラル・プロセッサ)1204に関連付けられたシステム・パラメータ、シナプス重み、および/または、変数(ニューラル信号)を記憶しうる。本開示の態様では、処理ユニット1204は、人工神経システムの少なくとも一部を動作させ、人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在することを決定するために、ブレークポイント決定ユニットを用い、この検出に少なくとも部分的に基づいて、人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けするように構成されうる。
[0100]図13は、本開示の幾つかの態様に従うニューラル・ネットワーク1300の例示的な実施を例示する。図13に例示されるように、ニューラル・ネットワーク1300は、前述した方法のさまざまな動作を実行しうる複数のローカル処理ユニット1302を備えうる。各処理ユニット1302は、ニューラル・ネットワークのパラメータを記憶するローカル・パラメータ・メモリ1306およびローカル状態メモリ1304を備えうる。さらに、処理ユニット1302は、ローカル(ニューロン)モデル・プログラムを備えたメモリ1308、ローカル学習プログラムを備えたメモリ1310、およびローカル接続メモリ1312を備えうる。さらに、図13に例示されるように、各ローカル処理ユニット1302は、ローカル処理ユニットのローカル・メモリのための設定を提供しうる設定処理のためのユニット1314、および、ローカル処理ユニット1302間のルーティングを提供するルーティング接続処理要素1316、とインタフェースされうる。
[0101]本開示の幾つかの態様によれば、各ローカル処理ユニット1302は、ニューラル・ネットワークの1つまたは複数の機能的な特徴に基づいて、ニューラル・ネットワークのパラメータを決定し、決定されたパラメータがさらに適合され、調整され、更新されると、1つまたは複数の機能的な特徴を、所望される機能的な特徴へ発展させる、ように構成されうる。
[0102]上述した方法のさまざまな動作は、対応する機能を実行することが可能な任意の適切な手段によって実行されうる。これら手段は、限定される訳ではないが、回路、特定用途向け集積回路(ASIC)、またはプロセッサを含むさまざまなハードウェア構成要素および/またはソフトウェア構成要素および/またはモジュールを含みうる。例えば、さまざまな動作が、図10〜図13に図示されるさまざまなプロセッサのうちの1つまたは複数によって実行されうる。一般に、図面に例示された動作が存在する場合、これら動作は、同じ符番を付された対応するmeans−puls−function構成要素を有しうる。例えば、図9に例示された動作900は、図9Aに例示される手段900Aに対応する。
[0103]例えば、表示のための手段は、ディスプレイ(例えば、モニタ、フラット・スクリーン、タッチ・スクリーン等)、プリンタ、または、視覚的な描写(例えば、テーブル、チャート、グラフ)のためにデータを出力するためのその他任意の適切な手段を備えうる。処理のための手段、動作のための手段、検出のための手段、保留、検査、またはフラグ付けのうちの少なくとも1つのための手段、出力するための手段、設定するための手段、決定するための手段は、1つまたは複数のプロセッサまたは処理ユニットを含みうる処理システムを備えうる。記憶するための手段は、処理システムによってアクセスされうるメモリまたはその他任意の適切な記憶デバイス(例えば、RAM)を備えうる。
[0104]本明細書で使用される場合、用語「決定すること(determining)」は、さまざまな動作を含む。例えば、「決定すること」は、計算、コンピューティング、処理、導出、調査、ルックアップ(例えば、テーブル、データベース、または他のデータ構造内のルックアップ)、確認等を含むことができる。また、「決定すること」は、受信(例えば、情報の受信)、アクセス(例えば、メモリ内のデータへのアクセス)等を含むことができる。また、「決定すること」は、解決、選択、選定、確立等を含むことができる。
[0105]本明細書に記載されるように、項目のリストのうちの「少なくとも1つ」と称する文言は、単数を含むこれら項目のうちの任意の組合せを称する。例として、「a、b、またはcの少なくとも1つ」は、a、b、c、a−b、a−c、b−c、およびa−b−cをカバーするように意図される。
[0106]本開示に関して記載された例示的なさまざまな論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログマブル・ゲート・アレイ信号(FPGA)またはその他のプログラマブル論理デバイス(PLD)、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア構成要素、または、本明細書に記載された機能を実行するように設計されたこれら任意の組合せを用いて実施または実行されうる。汎用プロセッサは、マイクロプロセッサでありうるが、代替案では、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、またはステート・マシンでありうる。プロセッサは、例えばDSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、またはその他任意のこのような構成であるコンピューティング・デバイスの組合せとして実現されうる。
[0107]本開示に関連して記載される方法またはアルゴリズムのステップは、ハードウェアで直接的に、プロセッサによって実行されるソフトウェア・モジュールで、あるいは、これらの組合せで具体化されうる。ソフトウェア・モジュールは、当該技術分野において周知のすべての形式の記憶媒体に常駐しうる。使用されうる記憶媒体の幾つかの例は、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、フラッシュメモリ、EPROMメモリ、EEPROM(登録商標)メモリ、レジスタ、ハードディスク、リムーバブル・ディスク、CD−ROMなどを含む。ソフトウェア・モジュールは、単一の命令または複数の命令を備えることができ、複数の異なるコード・セグメント上で、異なるプログラムの間で、および複数の記憶媒体にわたって分散されうる。記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込めるように、プロセッサに結合されうる。あるいは、この記憶媒体は、プロセッサに統合されうる。
[0108]本明細書で開示された方法は、説明された方法を達成するための1つまたは複数のステップまたは動作を備える。方法ステップおよび/または動作は、特許請求の範囲から逸脱せずに相互に置換されうる。言い換えると、ステップまたは動作の特定の順序が指定されていない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲から逸脱せずに変更されうる。
[0109]記載された機能は、ハードウェア、ソフトウェア、ファームウェア、あるいは、これらの任意の組合せによって実現されうる。ハードウェアで実現されるのであれば、例示的なハードウェア構成は、デバイス内の処理システムを備えうる。処理システムは、バス・アーキテクチャを用いて実現されうる。バスは、全体的な設計制約および処理システムの特定の用途に依存して、任意の数の相互接続バスおよびブリッジを含みうる。バスは、プロセッサ、機械読取可能な媒体、およびバス・インタフェースを含む回路をともにリンクしうる。バス・インタフェースは、とりわけ、ネットワーク・アダプタを、バスを介して、処理システムへ接続するために使用されうる。ネットワーク・アダプタは、信号処理機能を実現するために使用されうる。幾つかの態様の場合、ユーザ・インタフェース(例えば、キーパッド、ディスプレイ、マウス、ジョイスティック等)も、バスに接続されうる。バスはさらに、例えば、タイミング・ソース、周辺機器、電圧制御装置、および電力管理回路等のようなその他さまざまな回路をリンクしうる。これらは、当該技術分野で良く知られているので、さらなる説明はしない。
[0110]プロセッサは、バスの管理、および、機械読取可能な媒体に格納されたソフトウェアの実行を含む一般的な処理を担当する。プロセッサは、1または複数の汎用プロセッサおよび/または特別目的プロセッサを用いて実現されうる。例は、マイクロプロセッサ、マイクロコントローラ、DSPプロセッサ、および、ソフトウェアを実行することができるその他の回路、を含みうる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マクロコード、ハードウェア記述言語、あるいはその他で称されようとも、命令群、データ、あるいは、これらの任意の組合せを意味するように広く解釈されるものとする。機械読取可能な媒体は、例によれば、RAM(ランダム・アクセス・メモリ)、フラッシュメモリ、ROM(リード・オンリー・メモリ)、PROM(プログラマブル・リード・オンリー・メモリ)、EPROM(消去可能プログラマブル・リード・オンリー・メモリ)、EEPROM(電気的消去可能プログラマブル・リード・オンリー・メモリ)、レジスタ、磁気ディスク、光ディスク、ハード・ドライブ、またはその他任意の適切な記憶媒体、あるいはこれら任意の組合せを含みうる。機械読取可能な媒体は、コンピュータ・プログラム製品内に組み込まれうる。コンピュータ・プログラム製品は、パッケージング・マテリアルを備えうる。
[0111]ハードウェアによる実施では、機械読取可能な媒体は、プロセッサとは別の処理システムの一部でありうる。しかしながら、当業者であれば容易に理解するであろうが、機械読取可能な媒体またはその任意の部分は、処理システムの外部にありうる。例によれば、マシン読取可能な媒体は、伝送路、データによって変調された搬送波、および/または、デバイスから分離されたコンピュータ製品を含みうる。そして、これらすべては、バス・インタフェースを介してプロセッサによってアクセスされうる。あるいは、または、それに加えて、機械読取可能な媒体またはこれら任意の部分は、キャッシュおよび/または汎用レジスタ・ファイルによくあるように、プロセッサへ統合されうる。
[0112]処理システムは、プロセッサ機能を提供する1または複数のマイクロプロセッサと、機械読取可能な媒体のうちの少なくとも一部を提供する外部メモリと、を備える汎用処理システムとして構成されうる。1または複数のマイクロプロセッサと外部メモリはすべて、外部バス・アーキテクチャを介して他の支援回路にリンクされている。あるいは、処理システムは、プロセッサを備えたASIC(特定用途向け集積回路)、バス・インタフェース、ユーザ・インタフェース、支援回路、および、単一チップへ組み込まれたマシン読取可能な媒体の少なくとも一部で、または、1つまたは複数のFPGA(フィールド・プログラマブル・ゲート・アレイ)、PLD(プログラマブル論理デバイス)、コントローラ、ステート・マシン、ゲート・ロジック、ディスクリート・ハードウェア構成要素、またはその他の適切な回路、あるいは、本開示を通じて記載されたさまざまな機能を実行できうる回路の任意の組合せで実現されうる。当業者であれば、システム全体に課せられる全体的な設計制約および特定のアプリケーションに依存して、処理システムのために、記載された機能をどうやって最良に実施するかを認識するだろう。
[0113]機械読取可能な媒体は、多くのソフトウェア・モジュールを備えうる。ソフトウェア・モジュールは、プロセッサによって実行された場合、処理システムに対して、さまざまな機能を実行させるための命令群を含む。ソフトウェア・モジュールは、送信モジュールおよび受信モジュールを含みうる。ソフトウェア・モジュールはそれぞれ、単一のストレージ・デバイス内に存在するか、または、複数のストレージ・デバイスにわたって分散されうる。例によれば、ソフトウェア・モジュールは、トリガ・イベントが生じると、ハード・ドライブからRAMへロードされうる。ソフトウェア・モジュールの実行中、プロセッサは、アクセス速度を増加させるために、命令のうちの幾つかをキャッシュにロードしうる。その後、プロセッサによる実行のために、1または複数のキャッシュ・ラインが、汎用レジスタ・ファイルへロードされうる。以下に示すソフトウェア・モジュールの機能を参照する場合、このような機能は、このソフトウェア・モジュールからの命令群を実行するときに、プロセッサによって実施されることが理解されるだろう。
[0114]ソフトウェアで実現される場合、これら機能は、コンピュータ読取可能な媒体上に格納されるか、あるいは、コンピュータ読取可能な媒体上の1または複数の命令群またはコードとして送信されうる。コンピュータ読取可能な媒体は、コンピュータ・プログラムを1つの場所から別の場所へ転送することを容易にする任意の媒体を含む通信媒体とコンピュータ記憶媒体との両方を含んでいる。記憶媒体は、コンピュータによってアクセスされる利用可能な任意の媒体でありうる。例として、限定することなく、このようなコンピュータ読取可能な媒体は、RAM、ROM、EEPROM、CD−ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、あるいは、所望のプログラム・コード手段を命令群またはデータ構造の形式で搬送または格納するために使用され、しかも、コンピュータによってアクセスされうるその他任意の媒体を備えうる。さらに、いかなる接続も、コンピュータ読取可能な媒体として適切に称される。同軸ケーブル、光ファイバ・ケーブル、対より線、デジタル加入者線(DSL)、あるいは、例えば赤外線(IR)、無線およびマイクロ波のような無線技術を使用して、ウェブサイト、サーバ、あるいはその他の遠隔ソースからソフトウェアが送信される場合、同軸ケーブル、光ファイバ・ケーブル、対より線、DSL、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術が、媒体の定義に含まれる。本明細書で使用されるようなディスク(diskおよびdisc)は、コンパクト・ディスク(disc)(CD)、レーザ・ディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu−ray(登録商標)ディスク(disc)を含んでいる。ここで、diskは通常、データを磁気的に再生する一方、discは、レーザを用いてデータを光学的に再生する。従って、幾つかの態様では、コンピュータ読取可能な媒体は、非一時的なコンピュータ読取可能な媒体(例えば、具体的な媒体)を備えうる。さらに、別の態様の場合、コンピュータ読取可能な媒体は、一時的なコンピュータ読取可能な媒体(例えば、信号)を備えうる。上記の組合せもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
[0115]したがって、ある態様は、本明細書に記載された動作を実行するためのコンピュータ・プログラム製品を備えうる。例えば、このようなコンピュータ・プログラム製品は、格納された(および/またはエンコードされた)命令群を有するコンピュータ読取可能な媒体を備える。これら命令群は、本明細書において記載された動作を実行するために、1つまたは複数のプロセッサによって実行されることが可能である。ある態様の場合、コンピュータ・プログラム製品は、パッケージング・マテリアルを含みうる。
[0116]さらに、本明細書に記載された技術および方法を実行するためのモジュールおよび/またはその他の適切な手段は、規定通りに、ダウンロードされうるか、および/または、そうでなければ、デバイスによって取得されうることが理解されるべきである。例えば、このようなデバイスは、本明細書で説明した方法を実行するための手段の転送を容易にするためにサーバに結合されうる。あるいは、本明細書に記載されたさまざまな方法は、デバイスへの記憶手段の結合または提供がなされると、デバイスがさまざまな方法を取得できうるように、記憶手段(例えば、RAMや、ROMや、コンパクト・ディスク(CD)またはフロッピー・ディスク等のような物理的な記憶媒体)を介して提供されうる。さらに、本明細書で説明された方法および技法をデバイスに提供するために、その他任意の適切な技法が利用されうる。
[0117]特許請求の範囲は、前述した正確な構成および構成要素に限定されないことを理解されたい。さまざまな修正、変更、および変形が、特許請求の範囲の範囲から逸脱せずに、前述した方法および装置の構成、動作、および詳細において実施されうる。

Claims (32)

  1. 人工神経システムを検査するためにブレークポイント決定ユニットを用いるための方法であって、
    前記人工神経システムの少なくとも一部を動作させることと、
    前記人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用いることと、
    前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留すること、検査すること、修正すること、またはフラグ付けすることのうちの少なくとも1つと、
    を備える方法。
  2. 前記検出に少なくとも部分的に基づいて、前記条件のインジケーションを出力することと、
    前記インジケーションに少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作を保留、検査、修正、またはフラグ付けのうちの少なくとも1つ行うと決定することと、
    をさらに備える請求項1に記載の方法。
  3. 前記条件のインジケーションは、割込み、フラグが設定されていること、またはステータス・レジスタにおける変化、のうちの少なくとも1つを備える、請求項2に記載の方法。
  4. 前記ブレークポイント決定ユニットは、前記条件のインジケーションを出力するように構成される、請求項2に記載の方法。
  5. 前記条件のインジケーションは、前記人工神経システムにおける1つまたは複数の構成要素の1つまたは複数の特性の警告を提供する、請求項4に記載の方法。
  6. 前記ブレークポイント決定ユニットは、前記検出に少なくとも部分的に基づいてイベント送信機をトリガするように構成され、前記イベント送信機は、前記条件のインジケーションを出力するように構成される、請求項2に記載の方法。
  7. 前記イベント送信機は、トリガされた後、条件のインジケーションを、現在の時間ステップの終了時、次の時間ステップの前、または、予め決定された数の時間ステップの経過後、直ちに出力するように構成される、請求項6に記載の方法。
  8. 前記条件は、前記1つまたは複数の構成要素からの、スパイク・イベント、スパイク・イベントの予測、スパイク・イベントの結合、スパイク・イベントの結合の予測、またはこれらの任意の組合せ、のうちの少なくとも1つを備える、請求項1に記載の方法。
  9. 前記条件は、特定の時間ウィンドウ内で生じるスパイク・イベントの組合せを備える、請求項8に記載の方法。
  10. 前記条件は、しきい値を満たすか、または超える前記ブレークポイント決定ユニットの状態を備える、請求項1に記載の方法。
  11. 前記条件は、スパイク・レート、または、前記スパイク・レートの予測に、少なくとも部分的に基づく、請求項1に記載の方法。
  12. 前記条件は、前記1つまたは複数の構成要素の少なくとも1つのパラメータが、予め決定された量変化したことに少なくとも部分的に基づく、請求項1に記載の方法。
  13. 前記ブレークポイント決定ユニットは、人工ニューロンと同じ機能のうちの少なくとも幾つかを有する、請求項1に記載の方法。
  14. 前記ブレークポイント決定ユニットは、活性化された後に1つまたは複数のスパイク・イベントを出力するように構成された、請求項13に記載の方法。
  15. 前記検出の前に、モニタされるべき前記1つまたは複数の構成要素と前記条件で、前記ブレークポイント決定ユニットを構成すること、をさらに備える請求項1に記載の方法。
  16. 人工神経システムを検査するためにブレークポイント決定ユニットを用いるための装置であって、
    前記人工神経システムの少なくとも一部を動作させ、
    前記人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用い、
    前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも1つを行う、
    ように構成された処理システムと、
    前記処理システムに結合されたメモリと、
    を備える装置。
  17. 前記処理システムはさらに、前記検出に少なくとも部分的に基づいて、前記条件のインジケーションを出力し、
    前記インジケーションに少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも1つを行うと決定する、
    ように構成された、請求項16に記載の装置。
  18. 前記条件のインジケーションは、割込み、フラグが設定されていること、またはステータス・レジスタにおける変化、のうちの少なくとも1つを備える、請求項17に記載の装置。
  19. 前記ブレークポイント決定ユニットは、前記条件のインジケーションを出力するように構成される、請求項17に記載の装置。
  20. 前記条件のインジケーションは、前記人工神経システムにおける1つまたは複数の構成要素の1つまたは複数の特性の警告を提供する、請求項19に記載の装置。
  21. 前記ブレークポイント決定ユニットは、前記検出に少なくとも部分的に基づいてイベント送信機をトリガするように構成され、前記イベント送信機は、前記条件のインジケーションを出力するように構成される、請求項17に記載の装置。
  22. 前記イベント送信機は、トリガされた後、条件のインジケーションを、現在の時間ステップの終了時、次の時間ステップの前、または、予め決定された数の時間ステップの経過後、直ちに出力するように構成された、請求項21に記載の装置。
  23. 前記条件は、前記1つまたは複数の構成要素からの、スパイク・イベント、スパイク・イベントの予測、スパイク・イベントの結合、スパイク・イベントの結合の予測、またはこれらの任意の組合せ、のうちの少なくとも1つを備える、請求項16に記載の装置。
  24. 前記条件は、特定の時間ウィンドウ内で生じるスパイク・イベントの組合せを備える、請求項23に記載の装置。
  25. 前記条件は、しきい値を満たすか、または超える前記ブレークポイント決定ユニットの状態を備える、請求項16に記載の装置。
  26. 前記条件は、スパイク・レート、または、前記スパイク・レートの予測に、少なくとも部分的に基づく、請求項16に記載の装置。
  27. 前記条件は、前記1つまたは複数の構成要素の少なくとも1つのパラメータが、予め決定された量変化したことに少なくとも部分的に基づく、請求項16に記載の装置。
  28. 前記ブレークポイント決定ユニットは、人工ニューロンと同じ機能のうちの少なくとも幾つかを有する、請求項16に記載の装置。
  29. 前記ブレークポイント決定ユニットは、活性化された後に1つまたは複数のスパイク・イベントを出力するように構成された、請求項28に記載の装置。
  30. 前記処理システムはさらに、前記検出の前に、モニタされるべき前記1つまたは複数の構成要素と前記条件で、前記ブレークポイント決定ユニットを構成するように適合された請求項16に記載の装置。
  31. 人工神経システムを検査するためにブレークポイント決定ユニットを用いるための装置であって、
    前記人工神経システムの少なくとも一部を動作させるための手段と、
    前記人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用いるための手段と、
    前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも1つを行うための手段と、
    を備える装置。
  32. 人工神経システムを検査するためにブレークポイント決定ユニットを用いるためのコンピュータ・プログラム製品であって、
    前記人工神経システムの少なくとも一部を動作させ、
    前記人工神経システムにおける1つまたは複数の構成要素をモニタすることに少なくとも部分的に基づいて、条件が存在していることを検出するために、前記ブレークポイント決定ユニットを用い、
    前記検出に少なくとも部分的に基づいて、前記人工神経システムの少なくとも一部の動作の保留、検査、修正、またはフラグ付けのうちの少なくとも1つを行う、
    ための実行可能な命令を有する非一時的なコンピュータ読取可能な媒体を備える、コンピュータ・プログラム製品。
JP2016538956A 2013-09-03 2014-08-14 人工神経システムにおけるブレークポイント決定ユニットを実現するための方法および装置 Pending JP2016532216A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361873044P 2013-09-03 2013-09-03
US61/873,044 2013-09-03
US14/281,118 2014-05-19
US14/281,118 US9710749B2 (en) 2013-09-03 2014-05-19 Methods and apparatus for implementing a breakpoint determination unit in an artificial nervous system
PCT/US2014/051044 WO2015034640A2 (en) 2013-09-03 2014-08-14 Methods and apparatus for implementing a breakpoint determination unit in an artificial nervous system

Publications (2)

Publication Number Publication Date
JP2016532216A true JP2016532216A (ja) 2016-10-13
JP2016532216A5 JP2016532216A5 (ja) 2017-08-31

Family

ID=52584658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016538956A Pending JP2016532216A (ja) 2013-09-03 2014-08-14 人工神経システムにおけるブレークポイント決定ユニットを実現するための方法および装置

Country Status (7)

Country Link
US (1) US9710749B2 (ja)
EP (1) EP3042343A2 (ja)
JP (1) JP2016532216A (ja)
KR (1) KR20160047581A (ja)
CN (1) CN105518721B (ja)
CA (1) CA2919718A1 (ja)
WO (1) WO2015034640A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016183522A1 (en) * 2015-05-14 2016-11-17 Thalchemy Corporation Neural sensor hub system
KR101806833B1 (ko) 2015-12-31 2017-12-11 인천대학교 산학협력단 인공 신경망의 희소 활동을 활용하는 동기 직접 회로의 소비 전력 절감 장치 및 방법
CN105956658A (zh) * 2016-04-29 2016-09-21 北京比特大陆科技有限公司 数据处理方法、数据处理装置及芯片
CN107545304A (zh) * 2017-09-16 2018-01-05 胡明建 一种根据网络需求改变激活函数人工神经元的设计方法
US11694066B2 (en) * 2017-10-17 2023-07-04 Xilinx, Inc. Machine learning runtime library for neural network acceleration
CN110515754B (zh) * 2018-05-22 2021-01-26 深圳云天励飞技术有限公司 神经网络处理器的调试系统及方法
US11694090B2 (en) 2019-04-10 2023-07-04 International Business Machines Corporation Debugging deep neural networks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005352591A (ja) * 2004-06-08 2005-12-22 Canon Inc マルチプロセッサシステム、デバッグ方法、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0782439B2 (ja) 1990-01-26 1995-09-06 インターナショナル・ビジネス・マシーンズ・コーポレイション 推論エンジンの実行監視方法及び装置
JP3178884B2 (ja) * 1992-03-30 2001-06-25 株式会社東芝 ニューラルネットワーク装置
US6560592B1 (en) * 1998-03-19 2003-05-06 Micro Data Base Systems, Inc. Multi-model computer database storage system with integrated rule engine
FR2824936B1 (fr) 2001-05-16 2005-09-02 Schneider Automation Systeme de diagnostic predictif dans un automate programmable
US7634761B2 (en) 2004-10-29 2009-12-15 Microsoft Corporation Breakpoint logging and constraint mechanisms for parallel computing systems
US7770155B2 (en) * 2005-11-03 2010-08-03 International Business Machines Corporation Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program
US20070130491A1 (en) 2005-12-06 2007-06-07 Mazumder Didarul A Error detection of digital logic circuits using hierarchical neural networks
US9665822B2 (en) 2010-06-30 2017-05-30 International Business Machines Corporation Canonical spiking neuron network for spatiotemporal associative memory
US8560474B2 (en) 2011-03-07 2013-10-15 Cisco Technology, Inc. System and method for providing adaptive manufacturing diagnoses in a circuit board environment
KR101838560B1 (ko) 2011-07-27 2018-03-15 삼성전자주식회사 뉴로모픽 칩에서 스파이크 이벤트를 송수신하는 송수신 장치 및 방법
US9111224B2 (en) * 2011-10-19 2015-08-18 Qualcomm Incorporated Method and apparatus for neural learning of natural multi-spike trains in spiking neural networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005352591A (ja) * 2004-06-08 2005-12-22 Canon Inc マルチプロセッサシステム、デバッグ方法、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XIN JIN ET AL.: "ALGORITHM AND SOFTWARE FOR SIMULATION OF SPIKING NEURAL NETWORKS ON THE MULTI-CHIP SPINNAKER SYSTEM", THE 2010 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN), JPN6018023327, 23 July 2010 (2010-07-23), pages 1 - 8, XP031771712 *

Also Published As

Publication number Publication date
US20150066826A1 (en) 2015-03-05
CN105518721A (zh) 2016-04-20
WO2015034640A3 (en) 2015-05-14
US9710749B2 (en) 2017-07-18
CN105518721B (zh) 2018-10-02
KR20160047581A (ko) 2016-05-02
EP3042343A2 (en) 2016-07-13
CA2919718A1 (en) 2015-03-12
WO2015034640A2 (en) 2015-03-12

Similar Documents

Publication Publication Date Title
JP6275868B2 (ja) ニューラルウォッチドッグ
JP6130056B2 (ja) スパイキングネットワークの効率的なハードウェア実装
US9558442B2 (en) Monitoring neural networks with shadow networks
JP2016532216A (ja) 人工神経システムにおけるブレークポイント決定ユニットを実現するための方法および装置
JP2017509982A (ja) 原位置ニューラルネットワークコプロセッシング
JP2016539414A (ja) スパイキングニューラルネットワークにおいてリプレーを使用するシナプス学習を実装すること
US9959499B2 (en) Methods and apparatus for implementation of group tags for neural models
JP2017519268A (ja) スパイキングニューラルネットワークにおけるグローバルスカラ値によって可塑性を調節すること
JP2017513108A (ja) サブしきい値変調を介するアナログ信号再構築および認識
JP2017507397A (ja) 自動エラー訂正のための同時レイテンシおよびレートコーディング
JP6193509B2 (ja) 可塑性シナプス管理
JP6219509B2 (ja) シナプス遅延を動的に割り当てることおおよび検査すること
JP2016537711A (ja) スパイキングニューロンのネットワークにおける輻輳回避
JP6096388B2 (ja) ニューラルネットワークモデルにおけるドップラー効果処理
US9418332B2 (en) Post ghost plasticity
JP2016536676A (ja) ニューラルモデル実行をリモートで制御および監視するための方法および装置
US20150278684A1 (en) Time synchronization of spiking neuron models on multiple nodes

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190205