IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌパーバー,インコーポレイテッドの特許一覧

<>
  • 特許-相互相関のための方法及び装置 図1
  • 特許-相互相関のための方法及び装置 図2
  • 特許-相互相関のための方法及び装置 図3
  • 特許-相互相関のための方法及び装置 図4
  • 特許-相互相関のための方法及び装置 図5
  • 特許-相互相関のための方法及び装置 図6
  • 特許-相互相関のための方法及び装置 図7
  • 特許-相互相関のための方法及び装置 図8
  • 特許-相互相関のための方法及び装置 図9
  • 特許-相互相関のための方法及び装置 図10
  • 特許-相互相関のための方法及び装置 図11
  • 特許-相互相関のための方法及び装置 図12
  • 特許-相互相関のための方法及び装置 図13
  • 特許-相互相関のための方法及び装置 図14
  • 特許-相互相関のための方法及び装置 図15
  • 特許-相互相関のための方法及び装置 図16
  • 特許-相互相関のための方法及び装置 図17
  • 特許-相互相関のための方法及び装置 図18
  • 特許-相互相関のための方法及び装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-21
(45)【発行日】2023-11-30
(54)【発明の名称】相互相関のための方法及び装置
(51)【国際特許分類】
   G06F 17/15 20060101AFI20231122BHJP
   G06N 3/063 20230101ALI20231122BHJP
   H03K 5/159 20060101ALI20231122BHJP
   H03K 5/19 20060101ALI20231122BHJP
   H03K 5/26 20060101ALI20231122BHJP
   G06G 7/60 20060101ALI20231122BHJP
   G06N 3/049 20230101ALI20231122BHJP
【FI】
G06F17/15
G06N3/063
H03K5/159
H03K5/19 Z
H03K5/26 Z
G06G7/60
G06N3/049
【請求項の数】 6
(21)【出願番号】P 2021551866
(86)(22)【出願日】2020-03-15
(65)【公表番号】
(43)【公表日】2022-05-11
(86)【国際出願番号】 US2020022869
(87)【国際公開番号】W WO2020190825
(87)【国際公開日】2020-09-24
【審査請求日】2023-02-14
(31)【優先権主張番号】62/819,590
(32)【優先日】2019-03-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521387899
【氏名又は名称】エヌパーバー,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】バートン,デイビッド,カール
【審査官】漆原 孝治
(56)【参考文献】
【文献】特表2014-535118(JP,A)
【文献】特表2017-513108(JP,A)
【文献】米国特許出願公開第2015/0242744(US,A1)
【文献】米国特許出願公開第2009/0287624(US,A1)
【文献】米国特許出願公開第2018/0174026(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/15
G06N 3/063
H03K 5/159
H03K 5/19
H03K 5/26
G06G 7/60
G06N 3/049
(57)【特許請求の範囲】
【請求項1】
相互相関のための方法であって、
少なくとも部分的に電子ハードウェアの構成を用いて実施される、有意な確率的コンテンツを含む第1のスパイクストリーム及び第1のイベントを受け取ることと、
少なくとも部分的に電子ハードウェアの構成を用いて実施される、有意な確率的コンテンツを含む第2のスパイクストリーム及び第2のイベントを受け取ることであって、前記第1及び前記第2のイベントは、一定の時間的関係を有する、ことと、
少なくとも部分的に電子ハードウェアの構成を用いて実施される、前記第1のスパイクストリームを第1の遅延ユニットに入力することと、
少なくとも部分的に電子ハードウェアの構成を用いて実施される、前記第1の遅延ユニットから第1の遅延されたスパイクストリームを出力することであって、前記第1の遅延ユニットによって生成される第1の遅延は、ゼロ秒の下限を有することと、
前記第1の遅延されたスパイクストリームから第1の遅延されたスパイクを受け取り次第、少なくとも部分的に電子ハードウェアの構成を用いて実施される、第1の累積値と第2の累積値とを比較して、第1の比較結果を生成することと、
前記第1の比較結果が、前記第1の累積値が前記第2の累積値よりも大きいことを示す場合、前記第1の遅延を増加させることと、
前記第1の比較結果が、前記第1の累積値が前記第2の累積値よりも小さいことを示す場合、前記第1の遅延を減少させることと、
前記第1の比較結果が生成された後で、前記第1の累積値及び前記第2の累積値をリセットすることと、
前記第1の比較結果が生成された後で、第1の重み付け関数及び第2の重み付け関数を生成するための第1のプロセスを再び開始することであって、前記第1の重み付け関数は単調に減少し、前記第2の重み付け関数は、単調に増加すると共に、前記第1の重み付け関数とは対称的に逆である、ことと、
前記第2のスパイクストリームから第2のスパイクを受け取り次第、前記第1の重み付け関数に従って、第1の重み値を第1のアキュムレータに蓄積することと、
前記第2のスパイクストリームから同じ前記第2のスパイクを受け取り次第、前記第2の重み付け関数に従って、第2の重み値を第2のアキュムレータに蓄積することと、を含む方法。
【請求項2】
前記第1の遅延ユニットを構成する第1のキューの長さを増やすことにより、前記第1の遅延を増加させることと、
第1のキューの長さを減らすことにより、前記第1の遅延を低減することと、を更に含む、請求項1に記載の方法。
【請求項3】
前記第1の遅延ユニットによる計時がまだ開始されていない場合、前記第1のスパイクストリームから第1の遅延されていないスパイクが前記第1の遅延ユニットに入力されると、前記第1の遅延に等しい持続時間を計時することと、
前記第1の遅延の任意の計時が完了すると、スパイクを出力することと、
第1の決定変数の第1の状態、及び以前の遅延されていないスパイクの持続時間中の第2の遅延されていないスパイクの受け取りに基づいて、前記以前の遅延されていないスパイクの前記持続時間を継続することを決定することと、
前記第1の決定変数の第2の状態、及び前記以前の遅延されていないスパイクの前記持続時間中の前記第2の遅延されていないスパイクの受け取りに基づいて、前記第1の遅延ユニットによる前記第1の遅延の計時を再び開始することを決定することと、
複数のインスタンスに渡って、前記以前の遅延されていないスパイクの前記持続時間中の、前記第2の遅延されていないスパイクの受け取りを、前記第1の決定変数に対して、前記第1及び前記第2の状態のほぼ等しい出現件数、保証することと、を更に含む、請求項1に記載の方法。
【請求項4】
前記第1のスパイクストリームから第1の遅延されていないスパイクを受け取ったときに、第1の指数関数的減少関数が第1の指数関数的増加関数よりも大きい場合、前記第1の指数関数的減少関数及び前記第1の指数関数的増加関数の両方を生成するために、第1の平均スパイクレートを増加させることと、
前記第1のスパイクストリームから前記第1の遅延されていないスパイクを受け取ったときに、第1の指数関数的減少関数が第1の指数関数的増加関数よりも小さい場合、前記第1の指数関数的減少関数及び前記第1の指数関数的増加関数の両方を生成するために、第1の平均スパイクレートを減少させることと、
前記第1及び前記第2の重み付け関数を生成するために、前記第1の平均スパイクレートを使用することと、を更に含む、請求項1に記載の方法。
【請求項5】
前記第1のスパイクストリームから第1の遅延されていないスパイクを受け取ったときに、第1の指数関数的減少関数が第1の指数関数的増加関数よりも大きい場合、前記第1の指数関数的減少関数及び前記第1の指数関数的増加関数の両方を生成するために、第1の平均スパイクレートを増加させることと、
前記第1のスパイクストリームから前記第1の遅延されていないスパイクを受け取ったときに、第1の指数関数的減少関数が第1の指数関数的増加関数よりも小さい場合、前記第1の指数関数的減少関数及び前記第1の指数関数的増加関数の両方を生成するために、第1の平均スパイクレートを減少させることと、
前記第1の遅延を計時するために、前記第1の平均スパイクレートを使用することと、を更に含む、請求項3に記載の方法。
【請求項6】
相互相関のためのシステムであって、
少なくとも部分的に電子ハードウェアの構成を用いて、有意な確率的コンテンツを含む第1のスパイクストリーム及び第1のイベントを受け取る、第1のサブシステムと、
少なくとも部分的に電子ハードウェアの構成を用いて、有意な確率的コンテンツを含む第2のスパイクストリーム及び第2のイベントを受け取る、第2のサブシステムであって、前記第1及び前記第2のイベントは、一定の時間的関係を有する、第2のサブシステムと、
少なくとも部分的に電子ハードウェアの構成を用いて、前記第1のスパイクストリームを受け取り、第1の遅延されたスパイクストリームを出力する、第1の遅延ユニットであって、前記第1の遅延ユニットによって生成される第1の遅延は、ゼロ秒の下限を有する、第1の遅延ユニットと、
少なくとも部分的に電子ハードウェアの構成を用いて、前記第1の遅延されたスパイクストリームから第1の遅延されたスパイクを受け取り次第、第1の累積値と第2の累積値とを比較して、第1の比較結果を生成する、第3のサブシステムと、
前記第1の比較結果が、前記第1の累積値が前記第2の累積値よりも大きいことを示す場合、少なくとも部分的に電子ハードウェアの構成を用いて、前記第1の遅延を増加させる、第4のサブシステムと、
前記第1の比較結果が、前記第1の累積値が前記第2の累積値よりも小さいことを示す場合、少なくとも部分的に電子ハードウェアの構成を用いて、前記第1の遅延を減少させる、第5のサブシステムと、
前記第1の比較結果が生成された後で、少なくとも部分的に電子ハードウェアの構成を用いて、前記第1の累積値及び前記第2の累積値をリセットする、第6のサブシステムと、
前記第1の比較結果が生成された後で、少なくとも部分的に電子ハードウェアの構成を用いて、第1の重み付け関数及び第2の重み付け関数を生成するための第1のプロセスを再び開始する、第7のサブシステムであって、前記第1の重み付け関数は単調に減少し、前記第2の重み付け関数は、単調に増加すると共に、前記第1の重み付け関数とは対称的に逆である、第7のサブシステムと、
前記第2のスパイクストリームから第2のスパイクを受け取り次第、前記第1の重み付け関数に従って、少なくとも部分的に電子ハードウェアの構成を用いて、第1の重み値を第1のアキュムレータに蓄積する、第8のサブシステムと、
前記第2のスパイクストリームから同じ前記第2のスパイクを受け取り次第、前記第2の重み付け関数に従って、少なくとも部分的に電子ハードウェアの構成を用いて、第2の重み値を第2のアキュムレータに蓄積する、第9のサブシステムと、を含むシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本特許は、2019年3月17日に出願された、David Carl Bartonを発明者とする、「Method and Apparatus for Cross Correlation」と題された米国特許出願第62/819,590号の出願日の利益を主張するものであり、該出願は、その全体が参照により本明細書に組み込まれる。
【0002】
技術分野
本発明は、一般的に相互相関に関し、より具体的には、有意な確率的コンテンツを有するデータストリームの相互相関に関する。
【背景技術】
【0003】
背景技術
相互相関は、信号処理においてよく理解されており、様々なアプリケーションにおいて信号ストリーム間の相対的な遅延を発見するために使用されることが多い。相互相関の確立された方法では、複数の相対的な遅延オフセットにおける信号の類似度が比較され、通常は最大の類似度のオフセットが探索される。
【0004】
必要とされる比較の反復の計算コストを緩和するために、多数の最適化が存在し、これには、FFT及び様々なスライディングウィンドウ方式の使用が含まれる。それらの計算費用に加えて、確立された方法には、多くの比較を実施する必要性、及びストリーミングデータを処理する際のメモリバッファの必要性の両方のせいで、長い待ち時間をシステムに持ち込むという欠点もある。バッファは、継続的に、正及び負の遅延オフセットの両方について、双方向検索を可能にするために必要である。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従って、待ち時間がより少なく、バッファリングを必要としない相互相関の方法が必要である。
【0006】
図面の簡単な説明
本明細書に組み込まれ本明細書の一部を構成する添付の図面は、本発明の幾つかの実施形態を示しており、説明文と共に、本発明の原理を説明するようにはたらく。
【図面の簡単な説明】
【0007】
図1】スパイキングニューラルネットワークの領域における、マルチストリーム相互相関器の、例示的なアプリケーションシナリオを示す。
図2図1の各CCUについての、例示的な内部構造の機能ブロック図である。
図3】遅延学習部(Learn Delay)のOther入力で発生するスパイクを分析するための基準フレームとして、F.O.R.入力に存在するスパイクの各対を使用した、遅延学習部の機能実装を示す。
図4】Pythonプログラミング言語に基づく、遅延学習部の例示的な擬似コード実装を示す。
図5】遅延学習部の例示的な電気的実装を示す。
図6】遅延学習部の例示的な電気的実装を示す。
図7】遅延学習部の例示的な電気的実装を示す。
図8図2のCCUの機能ブロック図であるが、遅延生成部(Produce Delay)のメモリ無し版に、競合解決ブロック(Resolve Conflicts block)が追加されている点が異なる。
図9】指数関数的な減衰曲線と閾値検出とを結合させることによる、遅延生成部の実装の例を示す。
図10】機能ブロック0220について、図8に関連して説明した遅延生成部の機能を実装するための回路を提示する。
図11図8に示したのと同じCCUを示しているが、「Rate All学習部」(又はLRA)機能ブロック0223が追加されている点が異なる。
図12】実際のMEAALLが既知の場合の、スパイクの例示的な分布を示す。
図13】MEAALLの値の推測(MEAguessと呼ぶ)が高過ぎる場合の、スパイクの例示的な分布を示す。
図14】MEAALLの値の推測(MEAguessと呼ぶ)が低過ぎる場合の、スパイクの例示的な分布を示す。
図15】式1がその全範囲の半分をもたらす(例えば、P=0.5)点を解くのではなく、MEAを見つけるための等値性テスト方式を示す。
図16】等値性テスト方式に基づく、Rate All学習部の回路実装を提示する。
図17図6に示した遅延学習部の同じ回路実装を提示するが、rALL入力用のハードウェアが追加されている点が異なる。
図18図7に示した遅延学習部の同じ回路実装を提示するが、rALL入力用のハードウェアが追加されている点が異なる。
図19図10に示した遅延生成部の同じ回路実装を提示するが、rALL入力用のハードウェアが追加されている点が異なる。
【発明を実施するための形態】
【0008】
発明を実施するための様式
ここで、本発明の様々な実施形態を詳細に参照し、これらの実施形態の例が、添付の図面に示されている。できる限り、同一の又は同様の部分を指すために、図面全体を通じて同じ参照番号が使用される。
【0009】
以下で使用される、選ばれた用語の定義については、第3章(「選ばれた用語の用語集」)を参照されたい。
【0010】
詳細な説明の目次
1 はじめに
2 相互相関ユニット
2.1 一般的な考慮事項
2.2 遅延学習部
2.2.1 機能的な説明
2.2.2 順次の動作及び擬似コード実装
2.2.3 電気的実装
2.3 遅延生成部-損失版
2.3.1 競合解決
2.3.2 電気的実装
2.4 Rate All学習部
3 選ばれた用語の用語集
4 計算機器
【0011】
1 はじめに
相互相関には、多数の重要な用途があることが知られている。これらの中でも、スパイキングニューラルネットワークの領域において、相互相関は重要性を増し続けることが予測されており、そこでは、適切な動作のために相対的なスパイクタイミングが重要であり得る。
【0012】
図1は、スパイキングニューラルネットワークの領域における、例示的なアプリケーションシナリオを示す。左側の入力は、スパイクの3つのストリーム、S1、S2、及びS3である。各スパイクストリームは、有意なランダム(又は確率的)コンテンツを含むことが予測されている。
【0013】
確率的コンテンツに関しては、スパイク間ギャップの(又はISGの)時間的サイズとしては、ランダムな分布(ポアソンであることが多い)を想定しており、各ISG iは、以下の範囲内になる:
0秒<i<∞秒
【0014】
iの時間範囲全体について、スパイクストリームの平均スパイクレートを、rALLと呼ぶ(なぜなら、これは、発生し得る全てのスパイクを含むレートであるからである)。
【0015】
そのようなコンテンツは、そのコンテンツが発生するストリームに関して、並びに他のストリームに対して、確率論的である。しかしながら、2つ以上の入力ストリームに渡って発現する、ランダムではないイベントが発生することも予測される。(以下の説明では、ランダムではないイベントを単に「イベント」と呼ぶことが多い。)
【0016】
各ストリームS1、S2、及びS3は、それぞれ、相互相関ユニット(又はCCU)0110、0112、及び0114のF.O.R.入力に結合される。各CCUは、「FOR」とラベルが付された出力を有する。見て分かるように、各FOR出力は、「Soma」0121の入力に接続している。その最も基本的な機能レベルにおいて、Somaは、一種の同時性検出器としてはたらくように設計されることがあり、スパイクが、入力のそれぞれに同時に現れる度に、出力スパイクを生成する。
【0017】
以下の考察では、説明の便宜上、3つの入力ストリームが選択された。図1のシステムなどのシステムは、動作原理を変更することなく、任意の多数の入力に適用することができることが、容易に理解されよう。最少で2つの入力ストリームが必要である。全体として、図1などのシステムは、生物学的に着想を得たニューロンのモデルとして捉えることができる。生物学的に着想を得ている一方で、工学的(且つ非生物学的)観点から、図1は、マルチストリーム相互相関器又は「MCC」を表していると理解することができる。
【0018】
MCCの2つ以上の入力ストリームにおいてイベントが発生すると、各入力ストリームにおける出現は、他のスパイクストリームにおける出現に対して、一定の時間的関係を有すると予測される。あるイベントのマルチストリーム出現は、互いに対して一定の時間的関係を有すると予測されるものの、そのような出現は、同時には起こらないことも予測される。
【0019】
任意の他のスパイク(即ち、任意の非イベントスパイク)は、そのスパイクが発生する入力ストリームの中でと、他の入力ストリームに関連する中での両方を考慮すると、全ての他の非イベントスパイクに対してランダムな関係を有すると予測される。任意のそのような非イベントスパイクを、「ランダムスパイク」と呼ぶ。
【0020】
各CCU、0110、0112、及び0114の仕事は、複数のストリームに渡って、できる限り多くのイベント出現が、CCUの出力において同時に(従って、Soma0121への入力において同時に)発生するように、遅延又は時間的オフセットを決定することである。
【0021】
より具体的には、図01の各CCUは、以下の2つの入力を有するものと観察することができる:
●FOR、及び
●Other。
【0022】
「FOR」(代替的に、「F.O.R.」と表記されることもある)は、「基準フレーム」を意味する(特に断りの無い限り、「FOR」又は「F.O.R.」という用語を本明細書で使用するのは、「基準フレーム」への言及であり、前置詞「for」への言及ではない)。CCUのFOR入力に提示されるスパイクストリームは、何らかの変更の後で、CCUのFOR出力に現れる。遅延を挿入することにより、CCUは、FOR入力に現れるスパイクに対して、FOR出力ストリームを変更する可能性を有する。各CCUの「Other」入力は、他のCCU(即ち、同じSomaに接続された他のCCU)のFOR出力に現れるスパイクの和集合であることが意図されている。
【0023】
見て分かるように、各CCUのOther入力は、以下のように決定される。まず、全てのCCUの出力スパイクが、ORゲート0120によって一緒に結合され、単一の合成されたスパイクストリームが形成される。このORゲートの出力は「ANY」とラベル付けされている、なぜなら、任意のCCUのFOR出力でスパイクが発生する限り、スパイクがそのORゲートの出力で発生すると予測されるからである。
【0024】
各CCU0110、0112、及び0114は、それぞれ、ANDゲート0111、0113、及び0115を備えている。見て分かるように、各ANDゲートは、そのCCUのOther入力が受け取るスパイクストリームをフィルタリング(即ち、除去)する。特に、そのANDゲートのCCUによって与えられたスパイクが除去される。
【0025】
2 相互相関ユニット
2.1 一般的な考慮事項
従来の相関及び相互相関技術とは対照的に、本発明のMCCは、多数の(例えば、数百又は数千の)ランダムスパイクの存在に依拠している。
【0026】
MCCは、各CCUを他のCCUから本質的に独立して動作させることにより、動作する。独立した動作の例外は、各CCUが、(例えば、他のCCUのFOR入力に提示されるようなスパイクストリームの和集合ではなく、)他のCCUのFOR出力の和集合を(Other入力で)受け取るということである。
【0027】
図2は、図1の各CCUについての例示的な内部構造の機能ブロック図である。
【0028】
見て分かるように、CCUは2つの主要なユニットから構成される:
●遅延生成部(ブロック0225)、及び
●遅延学習部(ブロック0226)。
【0029】
遅延生成部は、入力スパイクストリームを(そのF.O.R.入力で)受け入れ、その出力(F.O.R.と呼ばれる)においてこの入力ストリームの遅延版を生成する。遅延生成部のF.O.R.入力は、(0211とラベルを付された)CCUのF.O.R.入力に結合され、遅延生成部のF.O.R.出力は、(0212とラベルを付された)CCUのF.O.R.出力に結合される。
【0030】
遅延学習部は、(CCUのOther入力0210から)CCUのOtherスパイクストリームを受け入れ、且つ、遅延生成部のF.O.R.出力を(遅延学習部のF.O.R.入力において)受け入れる。遅延学習部は、F.O.R.入力に存在するスパイクの各対を、遅延学習部のOther入力で発生するスパイクを分析するための基準フレームとして、使用する。
【0031】
遅延生成部が十分なメモリを搭載している場合、遅延生成部は、遅延する可能性は別として、F.O.R.入力におけるスパイクストリームと同一であるスパイクストリームを(F.O.R.出力において)再生することができる。これを、無損失版の遅延生成部と呼ぶことができる。
【0032】
用途に応じて、遅延生成部のメモリは、アナログ又はデジタル装置を用いて実装することができる。デジタル式の実装の場合、遅延生成部は、例えば、半導体ランダムアクセスメモリ(RAM)を用いて実装される、FIFO(先入れ先出し)キュー又はバッファを含むことがある。アナログ式の実装の場合、遅延生成部は、電気ケーブル又は自由空間波伝搬キャビティなどの、任意の適切な信号又は導波路を含むことがある。
【0033】
しかしながら、一般的に、無損失版の遅延生成部は、無限の(又は無制限の)量のメモリを必要とすることがある。
【0034】
本発明の別の重要な態様は、CCUのF.O.R.入力に提示されるスパイクストリームの確率的性質を利用して、遅延生成部の出力において損失版のF.O.R.を生成することである。実際、遅延生成部による(一度に)1つのスパイクのみのメモリが、CCUのF.O.R.出力において相関の取れた有用なスパイクストリームを生成するのに、十分であることがある。1つのスパイクのみのストレージを使用すると、遅延生成部は一種の「タイマー」と捉えることができる。スパイクがF.O.R.入力に現れたとき、タイマーを開始することができる。遅延期間の終了時に、タイマーは遅延生成部のF.O.R.出力用のスパイクを生成する。単一のスパイクメモリの使用については、以下の第2.3章(「遅延生成部」)で考察する。
【0035】
2.2 遅延学習部
2.2.1 機能的な説明
上記で紹介したように、遅延学習部は、F.O.R.入力に存在するスパイクの各対を、遅延学習部のOther入力で発生するスパイクを分析するための基準フレームとして、使用する。図3は、この種の例示的な状況を示す。
【0036】
見て分かるように、図3は2つの軸を含む:
●水平方向の時間軸。ここで、0.00秒≦t≦0.60秒。
●各Otherスパイクに重みを割り当てるために使用される垂直軸(以下で更に説明する)。ここで、0.00≦重み≦1.00。
【0037】
Otherスパイクを評価するためのフレームワークとしてはたらく、遅延学習部のF.O.R.入力におけるスパイクの連続的な対を、n及びn+1と呼ぶことにする。時間t=0.00における垂直線は、(重み軸を表すのに加えて)、スパイクnを示す(このスパイクは、0310ともラベル付けされている)。逆に、スパイクn+1は、t=0.60に図示されている(このスパイクは、0311ともラベル付けされている)。垂直軸に沿った、n及びn+1スパイクの大きさは、関連性はなく、単にグラフ表示の目的のために選ばれたものである。
【0038】
重み軸は、曲線0320及び0321と関連性がある。見て分かるように、0320は、e-rtの形式をした指数関数的な減衰曲線であり、ここで、rはレート、tは時間であり、rは(例の目的で)3に等しい。逆に、0321は、e-r(m-t)の形式をした指数関数的な増加曲線であり、ここでr及びtは、0320と同じであり、m(「最大(max)」時間)は0.60秒に等しい。以下に説明する理由により、曲線0320及び0321は、それぞれ「Post」及び「Pre」とも呼ばれる。
【0039】
F.O.R.スパイクnとn+1との間に発生するOtherスパイクのそれぞれには、PostとPreの値の両方が割り当てられる。Post値がPre値よりも大きい場合のOtherスパイクは、「pre」(又は前の)スパイクn+1よりも、より強く「post」(又は後の)スパイクnであるとして特徴付けられる。逆に、Pre値がPost値よりも大きい場合のスパイクは、「post」(又は後の)スパイクnよりも、より強く「pre」(又は前の)スパイクn+1であるとして特徴付けられる。
【0040】
図3は、以下の値を有する2つの例示的なOtherスパイクを示す:
●Otherスパイク1:
○t=0.065秒
○Post値=0.723
○Pre値=0.05
●Otherスパイク2:
○t=0.44秒
○Post値=0.112
○Pre値=0.446
【0041】
見て分かるように、各Otherスパイクは、Post及びPre重み付け曲線と交差する場所に応じて、2つの重みを与えられる。
【0042】
1対のF.O.R.スパイクnとn+1との間で発生することがある複数のOtherスパイクに渡って、「post」になるか又は「pre」になるかに向けた最終的な傾向は、以下のように決定及び補正することができる:
●全てのPost値の合計を蓄積する(「postAcc」とも呼ぶ)、及び
●全てのPre値の合計を蓄積する(「preAcc」とも呼ぶ)。
●postAcc>preAccの場合:
○Otherスパイクストリームは、結局のところ、F.O.R.のスパイクの後に発生しているとみなされる。これは、結局のところ、F.O.R.ストリームが早いことも意味する。
○遅延学習部(例えば、図2の遅延学習部ブロック0226)は、「more d」出力においてコマンド(パルスなど)を発することにより、この早さを補正しようと努めることができる。
○「more d」コマンドに応答して、遅延生成部(例えば、遅延生成部ブロック0225を参照)は、F.O.R.入力とF.O.R.出力との間の遅延を、一定の増分量だけ増加させることができる。
●preAcc>postAccの場合:
○Otherスパイクストリームは、結局のところ、F.O.R.のスパイクの前に発生しているとみなされる。これは、結局のところ、F.O.R.ストリームが遅いことも意味する。
○遅延学習部は、「less d」出力においてコマンド(パルスなど)を発することにより、この遅さを補正しようと努めることができる。
○応答して、遅延生成部は、F.O.R.入力とF.O.R.出力との間の遅延を、一定の増分量だけ低減することができる。
【0043】
(「more d」又は「less d」コマンドに応答して)遅延学習部の遅延が変化する増分量は、特定の用途、及びその用途の速度対精度の要件に基づいて、選択されることがある。一般的に、増分が小さいほど(より遅い学習レートとも呼ばれる)、イベントとOtherストリームとの最良な同期を実現する遅延の値をCCUが発見するための時間が長くなる。しかしながら、増分がより小さいと、必要な遅延値のより正確な決定につながるという利点がある。
【0044】
減少しているのと増加しているのと両方の指数関数的曲線を示したが、Post及びPre重み付けの目的のためには、様々な関数が適していることがある。適切な関数の主な基準は、次の通りである:
●Post関数と対称的で反対であるPre関数。
●それぞれスパイクn及びn+1の時点で最大値になるPost関数及びPre関数。
●最大値から単調に減少するPost関数及びPre関数。
【0045】
2.2.2 順次の動作及び擬似コード実装
前の副次的な章の考察では、以下のスパイクが同時に利用可能であるということに適合した態様での、遅延学習部の動作を説明した:
●F.O.R.入力のスパイクn及びn+1、及び
●nF.O.R.スパイクとn+1F.O.R.スパイクとの間の時間間隔中に、遅延学習部のOther入力に存在する任意のスパイク。
【0046】
実際の動作中、CCU(及びCCUを一部とするMCC)は、スパイク毎に動作することが期待されている。例えば、スパイクnと呼ぶことができる各スパイクが遅延学習部のF.O.R.入力に存在すると、遅延学習部が以下の2つの主な動作を実施することが、期待できる:
●n-1スパイクがあった場合、スパイクn-1で始まった相互相関分析を完了するように努める。言い換えると、スパイクn-1及びnを基準フレームとして相互相関分析を完了する。
●スパイクn+1が到着すると、将来完了するであろう新しい相互相関分析を開始する。言い換えると、新たな相互相関分析を開始し、ここで、スパイクn及びn+1は基準フレームとしてはたらく。
【0047】
特定の用途に応じて、遅延学習部をコンピュータプログラムとして、又は電気的ハードウェアとして、又はそれら2つの方式のハイブリッドの組み合わせとして実装することが望ましいことがある。
【0048】
図4は、Pythonプログラミング言語に基づく、遅延学習部の例示的な擬似コード実装を示す。太字の文字は、Pythonの構文及び記号意味と密接に対応している。Pythonの構文に従って、コメントが挿入されている。左側には、説明を助けるために行番号が追加されている。Pythonの構文及び記号意味からの主な発展は、5~17行目の、代入演算子の右側にある。また、プロシージャーへの及びプロシージャーからのパラメータ又は他のデータの受け渡しは、非公式に扱われる。
【0049】
図4のプロシージャーは、「Learn_Delay_PC」と呼ばれ、接尾辞「PC」は擬似コードを示す。1行目。
【0050】
Learn_Delay_PCは、F.O.R.又はOther入力のいずれかでスパイクが発生する度に呼び出される。
【0051】
複数の重要な値及び変数が、5~17行目に渡って割り当てられているが、これらは、22~44行目に渡って、これらの変数を利用する擬似コードを考察する一部として、扱われることになる。
【0052】
22行目では、最後のOtherスパイクがLearn_Delay_PC(T及びTLOは、図4の8~9行目で定義される)を呼び出してからの時間(即ち、T-TLO)の量を基準として、Preアキュムレータの内容を指数関数的に減衰させることにより、Preアキュムレータ“preAcc”を更新する。以下で更に説明するように、preAccのこの指数関数的減衰は、Otherスパイクが発生する度に、preAccに単位値を追加することと結びついている。
【0053】
各Otherスパイクの時点でpreAccに単位値を追加すること、及びpreAccを(次のF.O.R.スパイクの時まで)指数関数的に減衰させることは、図3に関して上述したpreAcc蓄積方法と数学的に等価である。即ち、各Otherスパイクが発生すると、preAccに値e-r(m-t)を追加する(但し、mはtの最大値である)ことと、減衰しないpreAccを有することである。
【0054】
preAccを指数関数的に減衰させることは、Pre値を蓄積するためには不必要に間接的な方法に思えるかもしれない。しかしながら、次の副次的な章で考察するように、e-r(m-t)は、e-rtと比べると、電子ハードウェアで実装するのには比較的に複雑な関数である。
【0055】
preAccへの更新に続いて、現在のスパイクがタイプF.O.R.であるか又はOtherであるかについて、テストが実施される。25行目。F.O.R.スパイクは、現在実行中の遅延学習部ユニットに「属している」とみなされる、というのも、その始まりは、同じCCUに属する遅延生成部ユニットからであるためである。従って、IS_MINE変数がfalseであることは、Otherスパイクを受け取ったことを示し、26~33行目が実行される。さもなければ、現在のスパイクはタイプF.O.R.であり、35~45行目が実施される。
【0056】
IS_MINEがfalseであると仮定すると、以下のステップが実行される:
●現在のスパイクがタイプOtherであることを考慮に入れるために、単位値がpreAccに追加される。26行目。
●postAccに追加される値は、最後のF.O.R.スパイク以降の、単位値の、単純な指数関数的減衰である。30行目。
●Learn_Delay_PCの次の呼び出しに備えて、最後のOtherスパイクの時刻が更新される。32行目。
【0057】
IS_MINEがtrueであると仮定すると、以下のステップが実行される:
●前のF.O.R.スパイクで開始した現在実行中の相互相関分析を完了する一環として、Otherスパイクが発生したかどうかを決定するためのテストがまず行われる。35行目。
●少なくとも1つのOtherスパイクが発生していたと仮定すると、preAccの値とpostAccの値が比較される。38行目。
○preAcc>postAccである場合、結局のところ、F.O.R.スパイクは、Otherスパイクに比べて遅いとみなされる。変数Dによって表わされる遅延生成部からの遅延は、低減される。学習レートを制御する、低減の量は、38行目の「-D_LR」によって表される。
○postAcc>preAccである場合、結局のところ、F.O.R.スパイクは、Otherスパイクに比べて早いとみなされる。変数Dによって表わされる遅延生成部からの遅延は、増加される。学習レートを制御する、増加の量は、38行目の「D_LR」によって表わされる。
●Dが許容限度内に保たれていることを保証するために、チェックを実施することができる。40行目。
●新たな相互相関分析を開始する一環として、以下のステップが実施される:
○preAcc及びpostAccは、ゼロにリセットされる。42行目。
○最後のF.O.R.スパイクの時刻は、現在の時刻に更新される。44行目。
【0058】
2.2.3 電気的実装
図5図7は、遅延学習部の例示的な電気的実装を示す。
【0059】
図5は、遅延学習部モジュールの最上位の制御及びインターフェースを示す。図6は、postAcc値を蓄積するのに関連した回路に焦点を当てており、図7は、preAcc値を蓄積するのに関連した回路に焦点を当てている。
【0060】
図5の輪郭線0510は、遅延学習部の外部インターフェースを示しており、各接続は、図2に関連して前述したように、遅延学習部機能ブロック0221の入力又は出力に対応している。
【0061】
輪郭線0520は、図6のpostAcc回路及び図7のpreAcc回路への、遅延学習部の内部インターフェースを示している。
【0062】
外部インターフェース0510の考察を続ける。
【0063】
F.O.R.入力に提示される各スパイクは、「two shot」0530をトリガーする。第一に、two shotのout1は、比較増幅器0540を読み取ることにより、現在の基準フレームを完了する。第二に、out2は、postAcc回路及びpreAcc回路をリセットし、その結果、次の基準フレームに渡る蓄積が開始できるようになる。
【0064】
out1は、ANDゲート0541及び0542を有効にすることにより、比較器0540を読み取る。比較器0540の出力が論理上の0である場合、これらのANDゲートが有効にされると、ANDゲート0542はone shot0532にトリガー信号を提示する。one shot0532は、トリガーされると、(インターフェース0510の)「less d」出力においてパルスを生成する。逆に、比較器0540の出力が論理上の1である場合、ANDゲート0541はone shot0531にトリガー信号を提示する。one shot0531は、トリガーされると、(インターフェース0510の)「more d」出力においてパルスを生成する。
【0065】
比較器0540は、次の2つの信号、即ち、preAccを表す信号(「preAcc」と呼ばれる)及びpostAccを表す信号(「postAcc」と呼ばれる)を比較する。postAcc信号は、図6の回路によって生成され、一方、preAcc信号は、図7の回路によって蓄積される。preAcc信号及びpostAcc信号はそれぞれアナログであり、電圧レベルは蓄積された値を表している。preAcc信号の電圧がpostAccよりも高い場合、比較器0540は論理上の0を表す信号を出力する。上述したように、(two shot0530のout1によって読み取られた際の)論理上の0は、「less d」出力からのパルスを引き起こす。逆に、postAcc>preAccである場合、比較器0540は論理上の1を出力する。上述したように、(two shot0530のout1によって読み取られた際の)論理上の1は、「more d」出力からのパルスを引き起こす。
【0066】
外部インターフェース0510について、考察すべき最後の接続は、Other入力である。F.O.R.入力と同様に、Otherにおけるスパイクも、two shotをトリガーする。この場合には、それはtwo shot0533になる。以下に更に説明するように、two shot0533のout1は、(アクションの中でもとりわけ)postAccアキュムレータ及びpreAccアキュムレータのそれぞれの現在の電圧レベルのサンプリングを引き起こす。第二に、out2は、postAccアキュムレータ及びpreAccアキュムレータのそれぞれを、新しい電圧レベルまで充電させる。
【0067】
図6に関して、コンデンサ0650は、postAcc信号(又はノード)の電圧を維持する。図3に関して上述したように、Post n関数0320に関しては、コンデンサ0640と抵抗器0641との組み合わせによって決定される。Post n関数は、図6では、減衰可変ノードにおいて利用可能である。
【0068】
上述したように、新しい基準フレームを開始する一環として、two shot0530は(そのout2出力において)「リセット(F.O.R.)」信号をアサートする。図6に関しては、リセット(F.O.R.)信号は、以下のコンデンサのリセットを引き起こすことが分かる:
●スイッチ0660がpostAccノードを接地に結合することにより、postAcc値の蓄積がゼロにリセットされる。
●Post n関数0320は、スイッチングユニット0643のスイッチS1及びS2によって、新しい期間の指数関数的減衰へとリセットされる。具体的には、リセット(F.O.R.)パルスの持続時間の間:
○S1は、コンデンサ0640を単位値電圧源0642に結合する、及び
○S2は、コンデンサ0640が再充電されている間、減衰可変ノードが指数関数的減衰を再び開始するための正しい初期値を維持することを保証する。
●適切な時に、コンデンサ0632は、減衰可変ノードにおける電圧のサンプルを保持するために使用される。コンデンサ0632は、スイッチ0662がコンデンサ0632を接地に結合することにより、リセットされる。
●適切な時に、コンデンサ0622は、postAccノードにおける電圧のサンプルを保持するために使用される。コンデンサ0622は、スイッチ0661がコンデンサ0622を接地に結合することにより、リセットされる。
【0069】
一旦リセット(F.O.R.)信号が終了すると、コンデンサ0640と抵抗器0641との組み合わせは指数関数的減衰を開始し、Post n関数が、減衰可変ノードで利用可能になる。
【0070】
Otherスパイクが発生した場合、(F.O.R.スパイクによる)postAccノードのリセットに続いて、two shot0533がトリガーされる。図6に関して、「サンプル(Other)」信号のアサートにより、以下が引き起こされることが分かる:
●スイッチ0631を閉じることによる、減衰可変ノードにおける現在の電圧のサンプリング。
●スイッチ0621を閉じることによる、postAccノードにおける現在の電圧のサンプリング。
【0071】
「サンプル(Other)」信号のアサートに続いて、以下が発生する:
●スイッチ0631が開き、減衰可変ノードのサンプリングされた電圧がコンデンサ0632によって保持される。
●スイッチ0621が開き、postAccノードのサンプリングされた電圧がコンデンサ0622によって保持される。
●コンデンサ0632及び0622によって保持された電圧は、加算増幅器0610によって合計される。
【0072】
次に、two shot0533は、「充電 Acc(Other)」信号をアサートし、これは、図6のスイッチ0611を閉じる。これにより、比較器0612が、postAccノードにおける電圧を、加算増幅器0611の出力と比較するようになる。加算増幅器からの電圧は、減衰可変ノードでサンプリングされた量だけ、postAccノードの電圧よりも大きくなる。従って、比較器0612は、スイッチ0613を閉じさせ、postAccノードが加算増幅器の出力に実質的に等しい電圧に充電されるまで、閉じたままにする。
【0073】
理解されるように、「サンプル(Other)」信号及び「充電 Acc(Other)」信号の順次のアサートの最終的な効果は、以下の通りである。各Otherスパイクの時点で、postAccノードの電圧は、減衰可変ノードのその時の現在の電圧に等しい量だけ増加する。
【0074】
図7に関して、コンデンサ0720は、preAcc信号(又はノード)の電圧を維持する。しかしながら、図4のLearn_Delay_PC擬似コードに関して上述したように、preAccノードは、抵抗器0721との組み合わせに起因して、減衰するように設計される。上述のように、減衰するpreAccノードと各Otherスパイクの単位電圧の付加との組み合わせは、(図3の)Pre n+1関数0321を決定すること、及びその値を減衰しないPreアキュムレータに追加することと、数学的に等価である。減衰するpreAccノード方式の、回路実装の観点からの相対的な単純さを、図7において理解することができる。
【0075】
上述したように、新しい基準フレームを開始する一環として、two shot0530は(そのout2出力において)「リセット(F.O.R.)」信号をアサートする。図7に関しては、リセット(F.O.R.)信号は、以下のコンデンサのリセットを引き起こすことが分かる:
●スイッチ0741がpreAccノードを接地に結合することにより、preAcc値の蓄積がゼロにリセットされる。
●適切な時に、コンデンサ0732は、postAccノードにおける電圧のサンプルを保持するために使用される。コンデンサ0732は、スイッチ0740がコンデンサ0732を接地に結合することにより、リセットされる。
【0076】
Otherスパイクが発生した場合、(F.O.R.スパイクによる)preAccノードのリセットに続いて、two shot0533がトリガーされる。図7に関して、「サンプル(Other)」信号をアサートすると、スイッチ0731を閉じることにより、preAccノードにおいて、現在の電圧のサンプリングが発生することが分かる。
【0077】
「サンプル(Other)」信号のアサートに続いて、以下が発生する:
●スイッチ0731が開き、preAccノードのサンプリングされた電圧がコンデンサ0732によって保持される。
●コンデンサ0732によって保持された電圧は、加算増幅器0710によって、電圧源0714からの単位電圧と合計される。
【0078】
次に、two shot0533は、「充電 Acc(Other)」信号をアサートし、これは、図7のスイッチ0711を閉じる。これにより、比較器0712が、preAccノードにおける電圧を、加算増幅器0710の出力と比較するようになる。加算増幅器からの電圧は、単位電圧源0714によって提供される量だけ、preAccノードの電圧よりも大きくなる。従って、比較器0712は、スイッチ0713を閉じさせ、preAccノードが加算増幅器の出力に実質的に等しい電圧に充電されるまで、閉じたままにする。
【0079】
理解されるように、「サンプル(Other)」信号及び「充電 Acc(Other)」信号の順次のアサートの最終的な効果は、以下の通りである。各Otherスパイクの時点で、preAccノードの電圧は、電圧源0714の単位電圧に等しい量だけ、増加する。この増加に続いて、preAccノードは、次の何れかが起きるまで、指数関数的減衰を再開する:
●F.O.R.スパイクの発生と共に、現在の基準フレームが終了する。
●別のOtherスパイクが発生する。
【0080】
2.3 遅延生成部-損失版
2.3.1 競合解決
上述したように、第2.1章(「一般的な考慮事項」)では、本発明の別の重要な態様は、遅延生成部の出力において損失版のF.O.R.を生成するために、各CCUのF.O.R.入力に提示されるスパイクストリームの確率的性質を利用する、オプションである。
【0081】
遅延生成部による(例えば、図2の機能ブロック0225による)(一度に)1つのスパイクのみのメモリが、CCUのF.O.R.出力において相関の取れた有用なスパイクストリームを生成するのに、十分であることがある。この場合には、遅延生成部は一種の「タイマー」とみなすことができる。スパイクが遅延生成部のF.O.R.入力に現れたとき、タイマーを開始することができる。遅延期間の終了時に、タイマーは遅延生成部のF.O.R.出力用のスパイクを生成する。単一のスパイクメモリの使用については、以下に説明する。
【0082】
損失版の遅延生成部は、無損失版(これのメモリは、潜在的に無限である必要がある)よりもはるかに少ないメモリ(1つのスパイクのみ)で済むので、損失版を「メモリ無し(memoryless)」と呼ぶ。
【0083】
メモリ無し方式を実装する際の重要な問題は、「競合解決」問題と呼ばれる問題である。競合解決問題は、遅延生成部の遅延が0秒よりも大きいときはいつでも発生する可能性がある。各CCUへのスパイクストリーム入力の確率的性質のせいで、遅延生成部が、F.O.R.スパイクxにより、遅延期間dの時間を計っている最中にあるときにいつでも、次のF.O.R.スパイクx+1が到着する可能性が常にある。そのときには、2つの選択肢がある:
●スパイクx+1を無視し、遅延期間dが完了するまで、スパイクxの時間計測を続行する。これを「最も古いものを維持する」選択肢と呼ぶ。
●遅延期間dがスパイクx+1で開始するように、タイマーを再始動させる。これを「最も新しいものを維持する」選択肢と呼ぶ。
【0084】
これら2つの方針のいずれかが一貫して適用される場合、無限の回数、連続して適用される可能性がある。例えば:
●最も古いものを維持する:遅延dが、スパイクxについて計時されている間に、無限の数の後続のF.O.R.スパイクが到着する可能性がある。それらは全て、無視される。
●最も新しいものを維持する:スパイクx+1のせいで、スパイクxの遅延dが再始動される場合、スパイクx+2がスパイクx+1の期間を再始動させる可能性があり、更に、スパイクx+3が、スパイクx+2の期間を再始動させる可能性がある。遅延期間の再始動は、潜在的に無限の回数、発生し続ける可能性がある。
【0085】
これら2つの選択肢のいずれかが、競合解決のための方針として排他的に適用された場合、遅延学習部によるF.O.R.とOtherスパイクストリームとの比較に、時間バイアスが持ち込まれるという問題がある。具体的には:
●最も古いものを維持する:F.O.R.スパイクストリームを、Otherスパイクストリームに対して、実際よりも早く出現させる効果がある。その結果、遅延生成部によって生成される遅延が、大きくなりすぎる。この効果は、最も古いものを維持するという方針により、より後のスパイク(即ち、スパイクxの後のスパイク)が廃棄されるという事実から理解することができる。
●最も新しいものを維持する:F.O.R.スパイクストリームを、Otherスパイクストリームに対して、実際よりも遅く出現させる効果がある。その結果、遅延生成部によって生成される遅延が、小さくなりすぎる。この効果は、最も新しいものを維持するという方針により、より早いスパイク(例えば、スパイクx+1よりも早いスパイクx)が無視されるという事実から理解することができる。
【0086】
時間バイアス問題は、最も古いものを維持するという方針及び最も新しいものを維持するという方針のそれぞれを、平均して等しい回数選択する、任意の技術によって、解決することができる。図8図2との主な違いは、競合解決ブロック0224が導入されていることであり、このブロックの内部では、提案された実装を見てとることができる。図8の機能ブロック0220(遅延生成部)は、図2の機能ブロック225には存在しない追加の「遅延完了」出力を含む。遅延完了は、遅延生成部が遅延期間を計時しているときには論理上の0になり、そうでなければ、論理上の1になる。遅延完了が論理上の1であるときはいつでも、ANDゲート0230はF.O.R.入力0211におけるスパイクを許可して、遅延動作を開始する。そのような条件下では、既存の遅延期間との競合がないので、このことは理にかなっている。
【0087】
逆に、F.O.R.スパイクが入力0211に到着し、遅延完了が論理上の0である場合に、競合状況が存在することが分かっている。この状況は、競合解決ブロック0224のAND0233によって、解読される。論理上の1を生成するANDゲート0233は、フリップフロップ0234の既存の状態に応じて、2つの動作のうちの1つを発生させる:
●フリップフロップ0234がたまたま、Q出力において既に論理上の1を生成している場合、そのQ出力は、AND0233からの論理上の1と協調して、AND0232が、(ORゲート0231を介して)遅延生成部による計時の再始動を引き起こす信号を生成するようにする。理解されるように、これは、「最も新しいものを維持する」方針の実行である。
●逆に、フリップフロップ0234がたまたま、Q出力において論理上の0を生成している場合、その論理上の0により、AND0232が、遅延生成部による計時の再始動を引き起こす信号を生成するのが防止される。これは、「最も古いものを維持する」方針の実行である。
【0088】
フリップフロップ0234がたまたま既に論理上の1を生成しているかどうかに関わらず、AND0233により論理上の1が生成されるごとに、フリップフロップ0234がトリガーされて状態が変化する。最終的な結果として、競合状況が検出される度に、競合解決ブロック0224は、フリップフロップ0234の現在の状態に基づいて方針を実施し、次いで、次回に反対の方針が実行されるように、フリップフロップ0234の状態を変更する。
【0089】
2.3.2 電気的実装
図9図10は、遅延生成部の例示的な電気的実装を扱っている。
【0090】
図9は、指数関数的な減衰曲線(即ち、0910はe-rtである)と閾値検出(水平線0911)とを結合させることによる、遅延生成部の実装の例を示す。図9の例では、減衰のレートrは3に等しく、検出されることになる閾値(thと呼ばれる)は、0.1に等しい。見て分かるように、これらの条件の下では、生成される遅延期間(「d」と呼ばれる)は、0.77秒である。理解されるように、遅延は、閾値を下げるか又は増やすことにより、それぞれ増加させるか又は減少させることができる。
【0091】
図10は、機能ブロック0220について、図8に示した遅延生成部の機能を実装するための回路を提示する。
【0092】
図10の輪郭線1010は、遅延生成部の外部インターフェースを示しており、各接続は、遅延生成部機能ブロック0220の入力又は出力に対応する。
【0093】
遅延生成部の計時機能の基礎を形成する指数関数的減衰は、コンデンサ1040と抵抗器1041との組み合わせによって、生成される。遅延は、「減衰」ノードにおいて発生し、比較増幅器1030の負の入力に適用される。閾値(thと呼ばれる)は、調節可能な電圧源1031によって設定され、これは、比較器の正の入力に適用される。1031による電圧出力は、インターフェース1010への「more d」又は「less d」入力に適用されるパルスによって、それぞれ、より低く又はより高くに、段階的に調節することができる。任意のある時点で、電圧源1031の状態(即ち、出力するように現在設定されている電圧)は、コンデンサ(図示せず)によって、保持されていることがある。
【0094】
開始/再始動入力における各スパイクは、one shot1020をトリガーする。one shot1020は、パルスを生成し、このパルスは、アサートされている間に、スイッチングユニット1043のスイッチS1及びS2により新しい期間の指数関数的減衰を生成するようにコンデンサ1040を準備する。具体的には、one shotのパルスの持続期間の間:
●S1は、コンデンサ1040を単位値電圧源1042に結合する、及び
●S2は、コンデンサ1040が再充電されている間、減衰ノードが指数関数的減衰を再び開始するための正しい初期値を維持することを保証する。
【0095】
一旦one shot1020の信号が終了すると、コンデンサ1040と抵抗器1041との組み合わせは、指数関数的減衰を開始する。減衰ノードの電圧が電圧源1031により出力される電圧よりも低くなると、比較器1030の出力が、論理上の1を生成する。論理上の1は、以下の両方を引き起こす:
●インターフェース1010における「遅延完了」出力がアサートされる。
●one shot1021がトリガーされ、そのパルスは、インターフェース1010のF.O.R.出力におけるスパイク出力を構成する。
【0096】
2.4 Rate All学習部
上述したように、遅延生成部及び遅延学習部機能ブロック(例えば、図8のブロック0220及び0226など)は両方とも、指数関数的減衰曲線の使用を通じて機能する。それらの関数の減衰レートrは、特定の用途の予期されるスパイク頻度に基づいて選択することができる。
【0097】
しかしながら、F.O.R.入力における平均スパイクレート(rALLと呼ぶ)を発見することが出来る機能ブロックをCCU内に含めることが有用である場合がある。一般的に、rALLは、遅延生成部及び遅延学習部の減衰関数に対して、rとして使用するのに適した値である。
【0098】
例えば、図3に示すような遅延生成部に関して、rALLを、Post関数及びPre関数に使用することができる。rに対してこの値を使用すると、Otherスパイクが、各関数が比較的に速く変化している領域に確実に位置するようになる傾向があり、従って、測定が容易になる。遅延生成部が遅延を測定する際の遅延レート(例えば、図9の関数0910を参照)に対してrALLを使用することにより、同様の利点が実現される。
【0099】
図11は、図8と同じCCUを示すが、以下の点が異なる:
●「Rate All学習部」(又はLRA)機能ブロック0223が追加されている。見て分かるように、LRA0223は、入力としてF.O.R.スパイクを受け入れ、rALLを出力する。
●rALL入力は、遅延生成部及び遅延学習部のそれぞれに追加される(従って、図8の0220及び0226から、図11の0227及び0228へ、ラベル番号が変更されている)。これらのrALL入力は、LRA0223のrALL出力によって駆動される。
【0100】
Rate All学習部は、確率的スパイクストリームsの以下の特性に基づいている:rALLに対する値が正しい場合、次の式は、ある時点t又はそれ以降の任意の時点での、次のスパイクが発生する確率を示している:
【数1】
【0101】
これは、式1に従って指数関数的減衰が生成される場合、P=0.5である時刻は、ストリームsの次のスパイクの到着予想中央値(又はMEA)時刻であることも意味している。この到着予想中央値時刻は、MEAALLとも呼ばれ、以下の特別な特性を有する:
特別な特性1:sの多数発生するスパイクに渡って、MEAALLの前に発生するスパイクの数は、MEAALLの後に発生するスパイクの数に等しくなると予測できる。
【0102】
図12の場合、実際のMEAALLは、rALL=3の場合、0.23秒であると想定される。見て分かるように(説明を明確にする目的のために)、スパイクa~dは、MEAALLの両側に均等に分布するように選択されている。
【0103】
特別な特性1には、以下の意味がある:
●MEAALLの値の推測値(MEAguessと呼ぶ)が高過ぎる場合(即ち、実際には、MEAguess>MEAALL)、sの多数発生するスパイクに渡って、MEAguessの後よりもMEAguessの前に、より多くのスパイクが発生することになる。これの極端な例が図13に示されており、ここでは、MEAguessは0.345秒(r=2の場合)であり、スパイクa~d(r=2の場合の場所に関して、a’~d’とラベル付けされている)は、全て、MEAguessの前になる。
●MEAALLの値の推測値(MEAguessと呼ぶ)が低過ぎる場合(即ち、実際には、MEAguess<MEAALL)、sの多数発生するスパイクに渡って、MEAguessの前よりもMEAguessの後に、より多くのスパイクが発生することになる。これの極端な例が図14に示されており、ここでは、MEAguessは0.115秒(r=6の場合)であり、同じスパイクa~d(r=6に関して、ここではa’’~d’’とラベル付けされている)は、全てMEAguessの後になる。
【0104】
特別な特性1は、その意味するところと共に、MEAALLを発見することができる検索手続きの基礎を提供する。この手続きは、以下の2つの主要なステップを含むものとして説明することができる:
1.MEAguessに対して妥当な初期値を選択する:
○MEAguessの初期値の選択は、特定のシステム設計及び意図する用途に基づいて、例えば、可能な値の範囲内になるように制限することができる。MEAguessの値は、MEAguessを決定することができる、rの初期値を推測する(その値をrguessと呼ぶ)ことによっても決定することができる。次いで、MEAguessの対応する時間を、式1から決定することができる。特に、P=0.5で且つr=rguessの場合、式1は、次のようになる:
【数2】
2.ストリームsのスパイクn及びn+1の各対について、スパイク間の時間(tn+1-t)をMEAguessと比較する:
○(tn+1-t)<MEAguessの場合、MEAguessの推定された値を、(この最新のデータポイントに基づいて)、高過ぎると仮定する:
・スパイクペア間の後続の比較の目的で、MEAguessの値を低減する。
・標準的な量(Δrと呼ぶ)だけ、rguessを増加させ、その後、式2を再決定することにより、MEAguessの低減された値を決定する。
○(tn+1-t)>MEAguessの場合、MEAguessの推定された値を、(この最新のデータポイントに基づいて)、低過ぎると仮定する:
・後続のスパイクのペアを比較する際に、MEAguessの値を増加させる。
・標準的な量(Δrと呼ぶ)だけ、rguessを減少させ、その後、式2を再決定することにより、MEAguessの増加した値を決定する。
【0105】
上記に挙げた検索手続きでは、MEAguessが高過ぎるか低過ぎるかについての、上述した仮定のそれぞれについて、以下の可能性が存在する:
●MEAguessが実際に高すぎる場合、多数のスパイクに渡って、この事は、MEAguessが低過ぎるよりも高過ぎていることを示すより多くの比較が発生することにより決定され、MEAguessの値は、(rguessの最終的な増加によって)、最終的に低減する。
●MEAguessが実際に低すぎる場合、多数のスパイクに渡って、この事は、MEAguessが高過ぎるよりも低過ぎていることを示すより多くの比較が発生することにより決定され、MEAguessの値は、(rguessの最終的な減少によって)、最終的に増加する。
●MEAguessは、事実的に正しい場合(即ち、MEAguess=MEAALLであり且つrguess=rALLである場合)にのみ、最終的な動的安定性を実現する。
【0106】
従って、十分な数のスパイクに渡って、rALLは、rALLへの収束速度(「学習レート」とも呼ばれる)と決定されたrALL値の精度との間の適切なトレードオフを提供するようにΔrを選択して、決定される:
●Δrの値をより大きくすると、学習レートが増加するが、結果の精度は低下する。
●Δrの値をより小さくすると、学習レートが下がるが、結果の精度は高くなる。
【0107】
図15は、式1がその全範囲の半分をもたらす(例えば、P=0.5の)ポイントを解く以外に、MEAを見つけるための代替的な方法を示す。この代替的な方式とは、式1及び以下の式3が等しくなる(式3は累積確率分布を定義する)時間を解くことである。
【数3】
【0108】
図15から分かるように、図12図14に関して以前に説明したMEAのそれぞれは、等値なポイントを探すことにより、見つけられる。
【0109】
この等値試験方式は、図16のハードウェア実装の基礎であり、以下のように説明することができる。
【0110】
図16の輪郭線1610は、LRAの外部インターフェースを示しており、各接続は、図11のLRA機能ブロック0223の入力又は出力に対応する。
【0111】
式1の指数関数的減衰は、図16では、コンデンサ1630と可変抵抗器1631との組み合わせによって、行われる。減衰値は、「減衰」ノード1641で利用可能である。式3(指数関数的増加)は、以下のように、減算増幅器1621によって行われる:
●単位電圧が、増幅器の「A」入力に印加される。
●減衰ノード1641(即ち、式1)は、「B」入力に適用される。
●従って、ノード1640で利用可能な、減算増幅器1621の出力は、式3の電圧レベルの表現になる。
【0112】
式1と式3との間の等値試験は、比較増幅器1622によって行われ、その結果(上記の説明のMEAguessに相当する)は、ノード1642で利用可能である。
【0113】
スパイクnが存在するたびに、インターフェース1610のF.O.R.入力において、two shot1620がトリガーされる。two shotのout1によって始動される第1のステップは、最後のF.O.R.スパイクn-1で始まったMEA測定を完了することである。out1は、ANDゲート1623及び1624が比較器1622の出力を読み取ることができるようにすることにより、これを実現する。
【0114】
比較器1622の出力は、以下のように解釈することができる:
●比較器1622は、比較結果が、スパイクn-1とnとの間の期間が現在のMEAguessよりも小さいことを示す場合に、論理上の1を出力する。これは、指数関数的減衰ノード1641が、比較器の+入力を駆動するからである。
●比較器1622は、比較結果が、スパイクn-1とnとの間の期間が現在のMEAguessよりも大きいことを示す場合に、論理上の0を出力する。これは、指数関数的増加ノード1640が、比較器の-入力を駆動するからである。
【0115】
比較器1622による現在の測定値が、MEAguessが高過ぎることを示す場合、ノード1642の論理上の1により、ANDゲート1623が有効になり、out1パルスが、可変抵抗器1631のR-入力に印加される。理解されるように、抵抗を低減すると、「減衰」ノード1641における減衰のレートが速くなり、MEAguessが下方に調節される。
【0116】
逆に、比較器1622による現在の測定値が、MEAguessが低過ぎることを示す場合、ノード1642の論理上の0により、ANDゲート1624が有効になり、out1パルスが、可変抵抗器1631のR+入力に印加される。理解されるように、抵抗を増加させると、「減衰」ノード1641における減衰のレートが遅くなり、MEAguessが上方に調節される。
【0117】
out1パルスの持続時間、及び可変抵抗器1631の特定の構成などの要因により、rguessの変化の増分が決まる。そのような変化の増分のそれぞれの大きさは、上記の説明では、Δr「学習レート」と呼ばれる。
【0118】
可変抵抗器1631の状態(即ち、現在の抵抗レベル)は、内部状態コンデンサ(図示せず)によって保持することができる。このコンデンサの電圧は、例えば、R-入力へのパルスごとに増加することがあり、R+へのパルスごとに減少することがある。更に、内部状態コンデンサの電圧は、電圧追従増幅器(やはり図示せず)を介して利用可能にすることができ、これは、LRAの外部インターフェース1610のrALL出力を駆動する。
【0119】
図11に関して上述したように、LRA0223は、遅延生成部0227及び遅延学習部0228のそれぞれのrALL入力に、LRA0223のrALL出力を提供することができる。
【0120】
ALL入力を追加することにより変更される、遅延学習部0226の回路実装の一部が、図6及び図7である。遅延学習部0228の回路実装のために、図6及び図7は、それぞれ図17及び図18によって置き換えられる。図17及び図18は、以下の通り、図6及び図7とは異なっている:
●固定抵抗器0641(図6)は、rALL入力0601を受け入れる可変抵抗器0644(図17)と置き換えられている。
●固定抵抗器0721(図7)は、rALL入力0701を受け入れる可変抵抗器0722(図18)と置き換えられている。
【0121】
遅延生成部0227の回路実装のために、図10図19によって置き換えられる。図19は、以下の通り図10とは異なる:固定抵抗器1041(図10)は、外部インターフェース1011の一部としてrALL入力を受け入れる可変抵抗器1044(図19)と置き換えられている。
【0122】
LRAのrALL出力における電圧が、LRA0223によって発見されたrALLに等しいrを有する(遅延生成部0227及び遅延学習部0228の)指数関数的減衰曲線を生成するために、以下を行うことができる:
●コンデンサ0640(図17のpostAccの実装を参照)、0720(図18のpreAccの実装を参照)、及び1040(図19の遅延生成部の実装を参照)は、LRAのコンデンサ1630(図16を参照)と同じ静電容量を有するようにすることができる。
●可変抵抗器0644(図17のpostAccの実装を参照)、0722(図18のpreAccの実装を参照)、及び1044(図19の遅延生成部の実装を参照)は、LRAの可変抵抗器1631(図16を参照)と同じにすることができるが、以下の点が異なる:内部状態を保持するのではなく、0644、0722、及び1044のそれぞれは、外部インターフェースrALL入力によって駆動される、電圧フォロワを使用する。
【0123】
3 選ばれた用語の用語集
加算増幅器:任意の時点で、入力に存在する電圧の合計である電圧を出力する。
one shot:入力トリガー及び1つの出力を有する。トリガー信号を受け取ると、出力においてパルスを生成する。
スパイク:本明細書で使用する場合、スパイクとは、2つの異なるレベルの間で、実質的に(又は概ね)ゼロの遷移時間を有するとみなすことができる信号内の任意のポイントを指すことができる。
減算増幅器:任意の時点で、第1の入力に存在する電圧から第2の入力に存在する電圧を引くことによって得られる電圧を出力する。
two shot:入力トリガー及び2つの出力を有する。トリガー信号を受け取ると、2つの出力のそれぞれにおいて、パルスを順次生成する。
【0124】
4 計算機器
当業者にとって通常は既知である事柄に従って、本明細書に記載する本発明の方法、手続き、又は技術は、任意の適切な計算ハードウェアを使用することにより実装することができる。適切なハードウェアは、1つ又は複数の汎用コンピュータ又はプロセッサの使用を含むことがある。ハードウェア実装技術は、様々な種類の集積回路、プログラム可能メモリ(揮発性及び不揮発性)、又はその両方、の使用を含むことがある。
【0125】
計算ハードウェアは、集積回路の形態をしていようとそれ以外であろうと、通常、トランジスタ(電界効果、バイポーラ、又はその両方)の使用に基づいているが、他の種類の部品(例えば、光学式、微小電気機械式、又は磁気式)が含まれることがある。いずれの計算ハードウェアも、その機能を実施できるようにするための必要な要素として、エネルギーを消費するという特性を有する。また、どれだけ迅速に動作させられるかに関わりなく、計算ハードウェアは、状態を変更するためにある程度の時間を必要とする。物理的機器(電子又はその他の)の基本原理により、計算ハードウェアは、たとえ小さくても、ある程度の物理的空間を占有する。
【0126】
プログラム可能メモリも、集積回路の形態で実装されることが多く、計算ハードウェアについて上述したのと同じ物理的制限を受ける。プログラム可能メモリは、少なくとも非一時的な態様で、用途に見合った長さの時間の間、情報を保存するために、任意の種類の物理学に基づく効果又は特性を使用するデバイスを含むことが意図されている。そのようなストレージを実装するのに使用される物理的効果の種類としては、限定するものではないが、フィードバック信号を通じた特定の状態の維持、電荷貯蔵、材料の光学的特性の変化、磁気変化、又は化学的変化(可逆的又は不可逆的)が挙げられる。
【0127】
特段の断りの無い限り、計算ハードウェア、プログラム可能メモリ、コンピュータ可読媒体、システム、及びサブシステムという用語は、人、又は人が引き受けるであろう心理的なステップを含まない。
【0128】
上述した任意の方法、手続き、又は技術は、コンピュータ又は他のデータ処理システムをプログラミングして実装される限り、コンピュータプログラム製品として説明することもできる。コンピュータプログラム製品は、任意の適切なコンピュータ可読媒体又はプログラム可能メモリ上に組み込むことができる。
【0129】
コンピュータ可読媒体及び/又はプログラム可能メモリ上にある、本明細書に記載する種類の情報(例えば、データ及び/又は命令など)は、それが組み込まれているコンピュータ可読コードデバイス上に保存することができる。コンピュータ可読コードデバイスは、定義された単位の情報(1ビットなど)を保存することができるメモリ、定義された単位の情報を読み出すことができるメモリ、又はその両方、の一部を表すことができる。
【0130】
本発明について、特定の実施形態と併せて説明してきたが、前述の説明を鑑みて、多数の代替形態、修正形態、及び変形形態が明らかになることは、明白である。従って、本発明は、添付の特許請求の範囲及びその均等物の趣旨及び範囲内にあたるような、そのような代替形態、修正形態、及び変形形態の全てを包含することが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19