(57)【要約】【課題】階層型人工ニューラル・ネットワーク（ＡＮＮ）を動作させるための計算方法を提供する。【解決手段】単一の相関器が、単一の時間ステップ中に、１つまたは複数の下位レベルの、以前に予測されたニューロンおよび現在活性のニューロンからの２つ以上の連続するフィード・フォワード入力をプールする。【選択図】図３
2020534595.tif 000002
【特許請求の範囲】
【請求項１】
階層型人工ニューラル・ネットワーク（ＡＮＮ）を動作させるための計算方法であって、単一の相関器が、単一の時間ステップ中に、１つまたは複数の下位レベルの以前に予測されたニューロンおよび現在活性であるニューロンからの２つ以上の連続するフィード・フォワード入力をプールする、方法。
【請求項２】
前記単一の相関器は、静的相関器である、請求項１に記載の方法。
【請求項３】
フィード・フォワード入力をプールすることは、連続するフィード・フォワード入力の論理ＯＲによって行われる、請求項１に記載の方法。
【請求項４】
フィード・フォワード入力をプールすることは、連続する入力を連結することによって行われる、請求項１に記載の方法。
【請求項５】
プールすることの前に、変換演算が各フィード・フォワード入力に適用される、請求項１に記載の方法。
【請求項６】
前記変換演算は、置換演算、論理ＸＯＲ演算または論理ＡＮＤ演算のうちのいずれかである、請求項５に記載の方法。
【請求項７】
階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法であって、前記方法は、
（ａ）全ての時間ｔについて、２つのプールされたフィード・フォワード入力である時間ステップｔからの入力Ｓ（ｔ）と時間ステップｔ−１からの入力Ｓ（ｔ−１）とを相関付けるステップと、
（ｂ）入力Ｓ（ｔ）と入力Ｓ（ｔ−ｔ’）との間の相関を間接的に学習するステップであって、ｔ’は、２以上の正の整数である、ステップと、
（ｃ）（ａ）および（ｂ）において学習された相関を出力するステップと、
を含む、方法。
【請求項８】
前記相関付けるステップ（ａ）は、全ての時間ｔについて、３つのプールされたフィード・フォワード入力である時間ステップｔからの入力Ｓ（ｔ）と、時間ステップｔ−１からの入力Ｓ（ｔ−１）と、時間ステップｔ−２からの入力Ｓ（ｔ−２）と、を相関付けることを含み、ｔ’は、３以上の正の整数である、請求項７に記載の方法。
【請求項９】
前記出力は、スパース分散表現（ＳＤＲ）行列である、請求項７または８に記載の方法。
【請求項１０】
前記相関付けるステップ（ａ）は、静的相関器によって行われる、請求項７または８に記載の方法。
【請求項１１】
フィード・フォワード入力をプールすることは、連続するフィード・フォワード入力の論理ＯＲによって行われる、請求項７または８に記載の方法。
【請求項１２】
フィード・フォワード入力をプールすることは、連続する入力を連結することによって行われる、請求項７または８に記載の方法。
【請求項１３】
プールすることの前に、各フィード・フォワード入力に変換演算が適用される、請求項７または８に記載の方法。
【請求項１４】
前記変換演算は、置換演算、論理ＸＯＲ演算または論理ＡＮＤ演算のうちのいずれかである、請求項１２に記載の方法。
【請求項１５】
階層型人工ニューラル・ネットワーク（ＡＮＮ）を動作させるための計算方法を実施するためのコンピュータ・プログラム製品であって、前記方法は、請求項７ないし１４のいずれかに記載のステップを含む、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、人工ニューラル・ネットワークの分野に関する。より詳細には、本発明は、人工ニューラル・ネットワークにおける時間プーリングおよび相関のための計算方法に関する。
【背景技術】
【０００２】
人工ニューラル・ネットワーク（ＡＮＮ）は、人工知能における問題、特に、処理に大量のデータおよび長時間を要する問題に対処するのにますます成功を収めている。そのようなネットワークは、通常、階層形式で編成され、データは、階層の下位レベルから上位レベルまでフィード・フォワードされる。図１は、３つのレベルにおける７つの領域からなる階層ネットワークの例を示し、ここで、実線の矢印は、下位レベルから上位レベルへのデータのフィード・フォワード経路を示し、受信側の領域は、下位から到来するデータをプールし、相関付ける（互いに関係付ける）。最も単純な事例では、データは静的な特徴を表し、ネットワークの役割は、特定の特徴または特徴のセットが存在することをシグナリングすることである。任意選択により、信号は、階層の下方にフィードバックし（図１における点線の矢印）、下位領域が入力を処理する際に、下位領域に追加のコンテキストを与えることができる。
【０００３】
特定の例として、いくつかのピクセルからなる静止画像を検討する。各ピクセル、色および（相対）位置に関するデータが「プール」され、すなわち、組み合わされて複合データセットとされ、階層の最下位レベルにフィードされる。本発明の記載において、異なるソースからのデータのマージまたは組合せを示すために、プール、プールされる、プーリング等の用語を用いる。
【０００４】
特定のピクセルが黒であり、その上下のピクセルも黒であるが、３つ全ての左右のピクセルが白である場合、３つのピクセルは合わせて垂直線（の一部）を示す。これが頻繁に発生するパターンであるという意味で、９つ全てのピクセル（３つの黒および６つの白）が相関付けられる。階層内の最下位領域は、それらのプールされたデータを相関付けて、各特定の特徴の（新たな）表現を形成する。垂直線の表現は、階層の次のレベルに上方に渡され、ここで、例えば水平線と組み合わせることができる。それらの相対ロケーションに依拠して、これらの２つの特徴は合わせて、Ｌ字型角部、＋符号のような交差、Ｔ字形状またはおそらくは文字Ｅの一部等の、より複雑な特徴の一部を形成することができる。そのような合成の連続ステップによって、階層ネットワークのより上位レベルにおいて、ますます複雑な特徴が表される。
【０００５】
ほとんどの場合のようにデータが時間的に連続している場合、ネットワークは、物体を認識するのみでなく、物体がどのように動いているか、したがって次にどこに行く可能性が高いかも認識するべきである。ボールが観察者に向かって投げられる事例を検討する。静的表現は非常に単純であり、単なる円である。しかしながら、時間が経過すると、円が大きくなり、視野内のその位置が変化するか、もしくは背景に対する位置が変化するか、または双方が変化する可能性がより高い。観察者は、この連続した入力データからボールの動きを特定し、ボールが観察者にいつ到達するかを推定することができ、おそらくは、ボールを回避する、ボールをキャッチする、ボールを打つ等のために行わなくてはならないことを特定する。
【０００６】
この時間依存データを処理するネットワークは、より複雑な表現を形成しなくてはならない。最下位レベルにおいて、特徴は依然として円のみとして表すことができるが、その円の属性（そのサイズおよび位置）が変化しており、時間的に連続した観測がまとめられて、「ボール接近中」が示される。
【０００７】
簡潔に言うと、ＡＮＮは、幾分脳のニューロンのように機能するようにプログラムされた複数の「ノード」を含む。各ノードは、シナプスとして機能する接続を通じて多くの他のノードに接続される。各ノードの活性は、そのシナプスの各々に軸索を介して渡される。シナプスは、活性のどれ位が目標ノードの樹状突起に渡されるかを示す特定の重みを割り当てられる。数学的に、これは積ｘｉｗｉｊとして表され、ここで、ｘｉは、レベルｘにおけるノードｉの活性であり、ｗｉｊは、ノードｉおよびｊを接続するシナプスの重みであり、ここで、ｊは、ノードｙを有する階層の異なるレベルのインデックスである。各ノードの基本動作は、そのノードが接続されている全てのノードからの重み付けされた入力を合算し、次に、非線形（「スカッシング」または閾値）関数（σ）を適用して自身の活性、すなわちｙｊ＝σ（Σｉｘｉｗｉｊ）を特定することである。誤差またはコスト関数を最小化するために、重み（ｗ）を調整することによって学習が達成される。
【０００８】
静的ＡＮＮは、単に、階層を通じてデータを上方にフィードする。リカレント・ニューラル・ネットワーク（ＲＮＮ）において、時間依存の挙動は、ネットワーク内の各ノードの時点ｔにおける出力活性を取り、これを（潜在的に）任意の他のノードの時点ｔ＋１における入力にルーティングすることによって処理される。時間と共に変動する出力がどこにルーティングされるかに依拠して、ＲＮＮの多くの変形形態が存在する。ＲＮＮは、時間と共に変動するデータの分析において有用であることが証明されたが、「ボール接近中」等の明確な意味論的意味を有する表現を形成するようには設計されていない。
【０００９】
ＨａｗｋｉｎｓおよびＮｕｍｅｎｔａ社における彼の同僚によって、非常に異なるタイプの階層ネットワークが説明されている。基本的に、彼らは複数のネットワークからなるネットワークについて説明している。「領域」と呼ぶサブネットワーク（図１を参照）は、哺乳類の大脳皮質の層およびミニ円柱に対応する構造で配置された多くのニューロンを含む。ニューロンの各層は、認知機能の特定の組を担当する。特に、脳の皮層４（Ｌ４）に関して、その樹状突起が階層の下位レベルおよび視床のコア細胞からボトムアップ・データを受け取るニューロンが存在する。Ｌ４樹状突起のシナプスの重みを変更するヘッブの学習法則により、入力間の相関が導かれ、すなわち、同時に活性である複数の軸索が、同じＬ４ニューロンに接続する傾向がある。逆に、そのニューロンの発火により、その接続された軸索間の活性の相関がシグナリングされる。Ｌ４は相関器である。
【００１０】
Ｌ４ニューロンが発火するとき、これらは、上位の層２および３のミニ円柱内のニューロンのうちのいくつかを活性化する。（層２と層３との間の従来の区別は、現代のニューロサイエンスではもはや行われず、大脳皮質のこの部分は、単にＬ２／３として識別される。）Ｌ２／３は、シーケンス・メモリとして機能する。異なるミニ円柱におけるニューロン間の横方向の接続は、即時の発火を引き起こすのではなく、挙動が変調しており、受信側のニューロンは、ミニ円柱の最下部のＬ４ニューロンからの入力を受信するとき、より発火しやすくなる状態に入る。これは、「予測」と称することができ、生物学的脱分極に類似している。そして、円柱がその後実際に活性になる場合、学習法則は、正しい予測に寄与したシナプスの重みを強化する。各ミニ円柱内に複数の細胞が存在するため、そのうちの僅かな数のみがＬ４入力に応答して発火し、正しく予測された細胞の特定の組が、予測に貢献した以前に活性であったセルに関する情報を符号化する。換言すれば、以前に活性であった細胞は、現在活性である細胞にコンテキストを与え、時間を遡って以下同様である。Ｌ２／３は発火パターンのシーケンスを学習する。
【００１１】
しかしながら、シーケンスにおける任意の単一の発火パターンの意味論的意味が僅かしか存在せず、シーケンス全体の新たな表現を形成するために更なる処理が必要とされる。これは、Ｌ２／３ニューロンの発火活性の時間的相関により達成され、本発明の主題である。
【００１２】
ニューロンの組の発火パターンをスパース分散表現（ＳＤＲ）と呼ぶことが慣例である。これは、１およびゼロの大きなバイナリアレイ、ほとんどの場合ベクトルにすぎない。アレイ内の各要素は、単一のニューロンを表す。ニューロンが活性であるとき、そのビットは１であり、そうでない場合、０である。ビットの僅かな部分、２０％未満、より一般的には５％未満のみが同時にオンであるため、ベクトルは「スパース」である。ベクトルは、活性ビットがベクトル全体にわたって拡散しているため、「分散している」。
【００１３】
ウェブサイトにおいて、Ｎｕｍｅｎｔａ社は、階層的時間的記憶（ＨＴＭ）の実施に関する時間プーラ（ｐｏｏｌｅｒ）について記載している。Ｎｕｍｅｎｔａ社のプーラは本発明とはかなり異なり、はるかに複雑である。このプーラは、２つの別個のＳＤＲのフィード・フォワード（ＦＦ、階層を上方へ）を必要とする。ＦＦ入力は、別個に処理され、加重和として組み合わされ、そして閾値処理関数に渡される。結果は「持続性」を与えられ、持続性は活性が継続する場合に増大し、そうでない場合に減衰する。最も持続性のある結果が第２のプーラにフィードされる。このアルゴリズムは多くのステップを有するのみでなく、多くの調整可能なパラメータ、すなわち、合算和、閾値、持続性の減衰率、継続した活性の増大、および第２のプーラのパラメータが存在する。
【００１４】
Ｔｈｅｙｅｌ他は、１つの大脳皮質領域から別の大脳皮質領域への、直接のまたは視床を通じて間接的なフィード・フォワードのための２つの経路が存在することを示す、神経生理学的研究からのデータを提供している。このため、受信側の皮質領域は、同じデータの（少なくとも）２つのバージョンを受信する。経視床の経路がより多くの中間ニューロンを通過し、したがって、目的地に到達するのにより長くかかる（と推定される）。この理解が本発明のインスピレーションを形成する。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明の実施形態は、従来技術の方法を上回る改善を提供しようとするものである。
【課題を解決するための手段】
【００１６】
１つの実施形態において、本発明は、階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法であって、単一の相関器が、単一の時間ステップ中に、１つまたは複数の下位レベルの、以前に予測されたニューロンおよび現在活性であるニューロンからの２つ以上の連続するフィード・フォワード入力をプールする、方法を提供する。
【００１７】
別の実施形態において、本発明は、階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法であって、本方法は、（ａ）全ての時間ｔについて、２つのプールされたフィード・フォワード入力、すなわち、時間ステップｔからのＳ（ｔ）および時間ステップｔ−１からのＳ（ｔ−１）を相関付けることと、（ｂ）入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習することであって、ｔ’は、２以上の正の整数であることと、（ｃ）（ａ）および（ｂ）において学習された相関を出力することとを含む、方法を提供する。
【００１８】
更に別の実施形態において、本発明は、階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法であって、本方法は、（ａ）全ての時間ｔについて、３つのプールされたフィード・フォワード入力、すなわち、時間ステップｔからのＳ（ｔ）、時間ステップｔ−１からのＳ（ｔ−１）および時間ステップｔ−２からのＳ（ｔ−２）を相関付けることと、（ｂ）入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習することであって、ｔ’は、３以上の正の整数であることと、（ｃ）（ａ）および（ｂ）において学習された相関を出力することとを含む、方法を提供する。
【００１９】
別の実施形態において、本発明は、階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法を実施するコンピュータ可読プログラム・コードを記憶する製造品を提供し、この媒体は、（ａ）全ての時間ｔについて、２つのプールされたフィード・フォワード入力、すなわち、時間ステップｔからのＳ（ｔ）および時間ステップｔ−１からのＳ（ｔ−１）を相関付けるコンピュータ可読プログラム・コードと、（ｂ）入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習するコンピュータ可読プログラム・コードであって、ｔ’は、２以上の正の整数である、コンピュータ可読プログラム・コードと、（ｃ）（ａ）および（ｂ）において学習された相関を出力するコンピュータ可読プログラム・コードとを備える、製造品を提供する。
【００２０】
更に別の実施形態において、本発明は、階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法を実施するコンピュータ可読プログラム・コードを記憶する製造品を提供し、この媒体は、（ａ）全ての時間ｔについて、３つのプールされたフィード・フォワード入力、すなわち、時間ステップｔからのＳ（ｔ）、時間ステップｔ−１からのＳ（ｔ−１）および時間ステップｔ−２からのＳ（ｔ−２）を相関付けるコンピュータ可読プログラム・コードと、（ｂ）入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習するコンピュータ可読プログラム・コードであって、ｔ’は、３以上の正の整数である、コンピュータ可読プログラム・コードと、（ｃ）（ａ）および（ｂ）において学習された相関を出力するコンピュータ可読プログラム・コードとを備える、製造品を提供する。
【００２１】
本開示は、１つまたは複数の様々な例に従って、以下の図を参照して詳細に説明される。図面は説明のためにのみ提供され、単に本開示の例を表す。これらの図面は、本開示の読み手の理解を促すために提供されるものであり、本開示の広さ、範囲または適用可能性を限定するものとみなされるべきでない。説明を明確かつ容易にするために、これらの図面は必ずしも縮尺どおりに作成されていないことに留意するべきである。
【図面の簡単な説明】
【００２２】
【図１】３つのレベルにおける７つの領域からなる階層ネットワークの例を示す。
【図２】階層ネットワークの各領域内の２つのコンポーネント、すなわち、相関器およびシーケンス・メモリを示す。
【図３】本発明の時間プーリングおよび相関を実施するサンプル擬似コードを示す。
【図４】領域Ｒ１から領域Ｒ２への単一のフィード・フォワード入力のみを用いた、すなわち、時間プーリングを用いない、２つのみの領域Ｒ１およびＲ２の単純化されたネットワークのための学習メトリックを示す。
【図５】領域Ｒ１から領域Ｒ２への単一のフィード・フォワード入力のみを用いた、単純化された２領域ネットワークの領域Ｒ２における相関器出力のための持続性（persistence）メトリックを示す。
【図６】領域Ｒ１から領域Ｒ２への２つの連続するフィード・フォワード入力のプーリングを用いた、領域Ｒ２における相関器出力のための学習メトリックを示す。
【図７】領域Ｒ１から領域Ｒ２への２つの連続するフィード・フォワード入力のプーリングを用いた、領域Ｒ２における相関器出力のための持続性メトリックを示す。
【図８】領域Ｒ１から領域２への３つの連続するフィード・フォワード入力のプーリングを用いた、双方の領域のための学習メトリックを示す。
【図９】領域Ｒ１から領域２への３つの連続するフィード・フォワード入力のプーリングを用いた、領域Ｒ２における相関器出力のための持続性メトリックを示す。
【図１０】本発明の方法を実施するためのシステムを示す。
【発明を実施するための形態】
【００２３】
本発明は、好ましい実施形態に関して例示および説明されるが、本発明は、多数の異なる構成で生成されてもよい。本発明の好ましい実施形態が図面に示され、本明細書において詳細に説明されるが、本開示は、本発明の原理およびその構造の関連する機能的仕様の例示とみなされ、本発明を示される実施形態に限定することは意図されないことが理解される。当業者であれば、本発明の範囲内の多数の他の可能な変形形態を想定するであろう。
【００２４】
本明細書において、「１つの実施形態」または「一実施形態」への言及は、言及される特徴が本発明の少なくとも１つの実施形態に含まれることを意味することに留意されたい。更に、本明細書における「１つの実施形態」への別個の言及は、必ずしも同じ実施形態に言及しているわけではないが、そのような実施形態は、互いに排他的であると述べられない限り、当業者に容易に明らかである場合を除いて、互いに排他的ではない。このため、本発明は、本明細書に記載の実施形態の任意の多岐にわたる組合せまたは統合あるいはその両方を含むことができる。
【００２５】
本発明は、入力データのシーケンスの表現（ＳＤＲ）を形成することに関する。これは、下位レベルからの２つ以上の連続するフィード・フォワード入力をプーリングし、相関付けることによって動作する。結果として得られる表現は、異なる入力シーケンスについて直交性が高く、高容量をもたらす。更に、この表現は、下位レベルが学習するにつれて安定化する傾向があり、より正確により長いシーケンスを予測する。
【００２６】
階層ニューラル・ネットワークを実行するアルゴリズムは、以下のように動作する。ネットワーク内の各領域が、その下の１つまたは複数の領域からデータを受信する。最下位レベルにおける領域が、例えばセンサから、カメラから、テキスト文字として等、（符号化された）入力データを受信する。各領域は、別個のタスクを実行する少なくとも２つのコンポーネント、すなわち、相関器およびシーケンス・メモリを含む。図２は、各領域の２つのコンポーネントを示すサンプルアーキテクチャを示す。例えば、下位レベルの領域１のコンポーネントは、（１）入力データストリームを受信し、それらの間の相関として特徴を識別する第１の相関器と、（２）第１の相関器から出力Ｓ１を受信し、これを領域１に関連付けられた第１のメモリに記憶する第１のシーケンス・メモリとを含む。同様に、上位レベルの領域２のコンポーネントは、（１）下位の第１のシーケンス・メモリから渡された入力Ｖ１を受信し、受信した入力間で特徴を識別する第２の相関器と、（２）第２の相関器から出力Ｓ２を受信し、これを領域２に関連付けられた第２のメモリに記憶する第２のシーケンス・メモリとを含む。したがって、各領域内の相関器は、下位から到来する異なるデータストリームをプールし、特徴を、それらの間の相関として、すなわち、同じ時間ステップ中にオンになる傾向があるビットとして識別する。
【００２７】
階層の最下位レベルは、通常、静的（または空間）相関器を有する。この相関器は、単一の時間ステップに関する特徴を見つけ、これらの特徴を表すＳＤＲを形成し、これをシーケンス・メモリに渡し、シーケンス・メモリは、その名称が示すように、特徴のシーケンスを識別するように学習する。例えば、最低レベルへの入力が、文字「ｄ」の画像を形成するピクセルである場合があり、「ｄ」の全ての発生は、空間相関器によって同じＳＤＲとして符号化された同じ特徴として識別される。しかしながら、「ａｎｄ」における「ｄ」は、「ｂｌａｎｄ」または「ｂｒａｎｄ」におけるものと同じではない。したがって、シーケンス・メモリは、文字「ｄ」のためのこれらの３つの異なるコンテキストについて、ニューロンの異なる組（すなわち、異なるＳＤＲ）を活性化する。次に、シーケンス、例えば「ｂｌａｎ」が、「ｄ」細胞の適切な組の予測を生成する。次の文字が実際に「ｄ」である場合、予測された細胞が活性化される。これらの検証された細胞（例えば、Ｖ１、Ｖ２等）が、階層の次のレベルに供給されるシーケンス・メモリの出力である。
【００２８】
階層の上位領域は、その下の１つまたは複数の領域から、軸索を介してＦＦデータを受信する。各軸索は、下位レベルにおける特定のニューロンを起点とするため、これらの入力データは、ＳＤＲの形態で、下位レベルにおける活性の近時の履歴、すなわち、先行するものが何であれ、それとの関連における現在の活性を表す。本発明において、時間的相関は、例えば、論理ＯＲを介して、２つ以上の連続するＦＦ入力をプールすることによって達成される。例において検討したように、２つの入力は十分であり、第３の入力は本方法の性能を改善する。３つを超える更なる入力がもたらす改善は順次少なくなる。
【００２９】
本発明は、以下のように動作する。簡単にするために、プールされた入力が２つのみである事例を検討する。この実施形態では、本発明は、階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法を提供する。ここで、本方法は、（ａ）全ての時間ｔについて、２つのプールされたフィード・フォワード入力である時間ステップｔからのＳ（ｔ）と時間ステップｔ−１からのＳ（ｔ−１）とを相関付ける（互いに関係付ける）ステップと、（ｂ）入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習するステップであって、ここで、ｔ’は、２以上の正の整数である、ステップと、（ｃ）（ａ）および（ｂ）において学習した相関を出力するステップとを含む。これは、任意の長時間にわたって持続する相関が見つかり、相関器の出力ＳＤＲにおいて反映されることを意味する。最も重要なことには、下位レベルから到来するパターンが予測可能な方式で変化していることに反映されているように、シーケンスがシステムに「既知」であるとき、時間相関器の出力は安定し、下位階層のものよりもはるかに低速に変化する。
【００３０】
同じ概念は、３つのプールされた入力に拡張することができ、以下同様である。例えば、３つのプールされた入力が存在するシナリオでは、本発明は、階層型人工ニューラル・ネットワーク（ＡＮＮ）のシミュレーションのための計算方法を提供し、この方法は、（ａ）全ての時間ｔについて、３つのプールされたフィード・フォワード入力である、時間ステップｔからのＳ（ｔ）と、時間ステップｔ−１からのＳ（ｔ−１）と、時間ステップｔ−２からのＳ（ｔ−２）とを相関付けるステップと、（ｂ）入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習するステップであって、ここで、ｔ’は、３以上の正の整数である、ステップと、（ｃ）（ａ）および（ｂ）において学習した相関を出力するステップと、を含む。
【００３１】
図３は、時間プーリングおよび相関のための擬似コードの例を示す。擬似コードは、本発明において用いられる計算手順の１つの例を要約する。反復的であり、連続的に学習することが意図されるこの実施形態において、各手順は、全ての時間ステップ（ｔ）について繰り返され、ここで、各時間ステップ（ｔ）において、ネットワークの全ての領域（Ｒ）内の到来するデータに対し、手順の厳密に同じシーケンスが実行される。
【００３２】
データは、相関器と呼ばれるセクション内の各領域に入る。階層の下位領域からの各時間ステップにおける入力データは、ネットワーク設計中に設定された既知の長さのベクトルの形態をとる。複数の下位領域からのデータは、結果として得られる入力ベクトル（Ｉ０、ここで、ゼロの下付き文字は、現在の入力を示す；図２を参照されたい）の長さが、下位領域の全ての出力ベクトルの長さの和になるように、連結により組み合わされる。連結の順序により、各入力データからのベクトル要素の入力ベクトルにおける位置が決まる。擬似コードはバイナリ・ベクトルに関係する。連結は、実数のベクトルにも適用することができることが明らかである。連結によるそのようなデータの組合せは、「空間プーリング」と呼ばれる。
【００３３】
本発明の特徴は、「時間プーリング」と呼ばれる手順である。領域が、時間プーリングを用いるように選択される場合（通例、階層の第１のレベルの上の領域）、連続した入力ベクトルが組み合わされる。この実施形態において、時間プーリングまたは組合せ手順は、適切なプーリング手順が和集合（論理ＯＲとしても知られる）であるバイナリ・ベクトルを用いて示される。より一般的には、加重和または（平坦化された）外積等の連続した入力ベクトルを組み合わせる他のベクトル演算が用いられてもよい。このように組み合わされる連続した（連結された）ベクトルの数は、２つ以上とすることができる。２つの入力が組み合わされる場合、結果はＩＲ＝ＯＲ（Ｉ０，Ｉ−１）であり、ここで、−１の下付き文字は、前回の入力時間ステップを指す。ＯＲの結合特性を用いて、更なる前の時間ステップが同様に組み合わされてもよい。手順は、次の時間ステップにおける時間プーリングに必要な数の入力をメモリに保存し、それに応じて下付き文字を変更する。
【００３４】
このため、相関器への入力ベクトルは、階層内の下位の１つまたは複数の領域からの１つの（プーリングなし）入力、または２つ以上の連続した（時間的にプールされた）入力の時間プーリングである。相関器は、シナプス重みの行列であり、入力（軸索または行列の行）と出力（樹状突起または行列の列）との間の接続の強度を示す。出力は、既知の乗算、累算および閾値メカニズムを用いて活性化される。乗算および累算は、シナプス重み行列による入力ベクトルの行列乗算によって達成される。バイナリ・ベクトルおよび行列の場合、この結果として、出力列ごとに整数値が得られる。その値は、（例えば、ヘビサイドステップ）閾値と比較され、列が活性であるか否かが判断される。アナログ入力、アナログ重みおよび連続閾値関数を用いた他の非バイナリの実施態様も明らかとなろう。出力活性である別のバイナリ・ベクトルＳＲが領域のシーケンス・メモリへの入力である。
【００３５】
入力および出力のニューラル活性が知られている場合、例えば、ヘッブの学習法則を用いてシナプス更新が決定される。所与のシナプスについて、入力ニューロンおよび出力ニューロンが共に活性である場合、シナプスが強化または作成される。入力のみまたは出力のみが活性である場合、シナプスは弱められる。入力も出力も活性でない場合、シナプス強度は変化しない。
【００３６】
シーケンス・メモリは、ニューロンのミニ円柱からなり、各ミニ円柱は、（永続的）シナプスによって相関器の出力ニューロンに接続されている。相関器出力ニューロンが活性である場合、ミニ円柱は活性となり、これは、ミニ円柱内の１つまたは複数のニューロンが発火することを意味する。発火の規則は、ミニ円柱内の任意のニューロンが予測される場合（以下の検討を参照）、発火するというものである。ニューロンが予測されない場合、ミニ円柱内の全ての細胞が発火する。
【００３７】
ミニ円柱内のニューロンは、シーケンス・メモリ内の他のニューロンとシナプスを（電位的に）形成する。すなわち、領域内の全てのニューロンの軸索と樹状突起との間に横方向の接続のアレイが存在する。現在の実施態様において、ニューロンの発火パターンは、バイナリ・ベクトル（ＡＲ）によって表され、シナプス重みはバイナリ行列によって表される。重み行列と活性ベクトルとの積は別のベクトルであり、その要素は、閾値と比較され、各樹状突起出力が活性であるか否かが判断される。活性樹状突起のニューロンは、即時に発火するのではなく、次のまたは後の時間ステップにおいて相関器から入力を受信する場合に発火することが予測される。この変調された挙動は、ニューロンの入力信号に対する感度を高め、ニューロンが発火する可能性をより高くする、生物学的脱分極と類似している。予測される細胞は、バイナリ・ベクトルＰ０によって表される。
【００３８】
前の時間ステップにおいて予測された細胞（例えば、ベクトルＰ−１）、相関器の出力によって現在活性化されている細胞（ＡＲ）が「検証される」、すなわち、ＶＲ＝ＡＮＤ（ＡＲ，Ｐ−１）である。下位領域の検証されたニューロンのベクトル（ＶＲ）は、上位領域への入力を提供する。
【００３９】
通例のヘッブの法則に従ってシナプスが更新される。以前に活性であった細胞（Ａ−１）を検証された細胞（ＶＲ）に接続するシナプス、すなわち、正しい予測に寄与したシナプスが強化される。検証されなかった予測に寄与したシナプス、または発火しているが予測されていなかった細胞の樹状突起上のシナプスは弱められる。
【００４０】
最終的に、現在の活性ベクトル（ＡＲ）および予測ベクトル（Ｐ０）が、次の時間ステップの準備においてＡ−１、Ｐ−１として保存される。
【００４１】
例えば、２つの連続した入力をプールすることによって、検証されたシーケンス「．．．ａｎｄ」が、１つの事例では、前の検証されたシーケンス「．．．ｒａｎ」と相関付けられ、別の事例では、「．．．ｌａｎ」と相関付けられる。このため、「ｂｒａｎｄ」および「ｂｌａｎｄ」の表現は完全に異なる。スパースなバイナリ・ベクトルの特性に起因して、これらの表現は互いに容易に区別することができる。
【００４２】
人工ニューラル・ネットワークにおいて、連続した入力の数を２つのみに限定する理由がない。３つ以上の入力により学習が高速になる。実際に、２つの入力からなる識別可能なシーケンスは存在しない。「ｂ」が常に「ａ」の後に続く場合、「ｂ」の後に続くものは何か？別の文字、またはピリオドもしくはスペース等の、シーケンスの終了を示すものである。いずれの場合も、シーケンスは少なくとも３つの時間ステップである。
【００４３】
シーケンスを表すためにＳＤＲを形成するための相関器を用いる更なる利点は、データの次元を同時に低減することである。各シーケンス・メモリの出力は、全ての時間ステップにおいて変化するのみでなく、シーケンス・メモリが機能する方式に起因して、非常に大きく過度にスパースなベクトルである。通常、約１００００ビット（各々がニューロンに対応する）を有することができ、そのうちの１００個未満が（活性ニューロンを示す）１に設定される。しかしながら、ここでもシーケンス・メモリの動作に起因して、約１０６０〜１０７０の異なる値「しか」とることができない。この入力を受信する相関器において、同じ容量は、１０２４ビットのみの出力ＳＤＲにおいて到達することができ、そのうちの３２ビットが活性である。相関プロセスは、ベクトルの長さを１桁低減する。
【００４４】
実施例
以下に説明する３つ全ての例において、下位レベル１における領域１（Ｒ１）、および上位レベル２における領域２（Ｒ２）の２つの領域のみからなるネットワークがセット・アップされた。３つの任意のセンテンスを有する試験データが生成された。センテンスは各々が約４０〜５０文字からなり、３つのうちの１つがランダムに選ばれ、これらを一続きにして１００００文字の長さのシーケンスが作成された。文字ごとに、ＡＳＣＩＩコードがスパースにされ、一度に１文字ずつＲ１内にフィードされた。数百回の反復（時間ステップあたり１文字）後、Ｒ１のシーケンス・メモリは、シーケンス内の次の文字の正しい予測を行い始めた。正しく予測された（検証された）ニューロンによって形成されたスパース分散表現（ＳＤＲ）が、論理ＯＲによる連続ステップのプーリングを用いてＲ２の相関器内にフィード・フォワードされる。Ｒ１内の検証されたニューロンは幾分相関しており、同じニューロンが同じシーケンス内の同じ文字について活性である傾向にある。
【００４５】
各例において、ネットワークの性能は、学習メトリックの計算によって評価された。統計学的シーケンスを扱う際の一般的慣例であるように、予測がランダムな機会によってなされ得た確率が使用される。特に、入力ＳＤＲと予測ＳＤＲとの重複（交差）が計算される。ランダムなＳＤＲの場合、重複は、超幾何学的分布に従うことが既知である。ランダムな確率のとり得る値の極端な範囲（１または２ビットの重なり合いの場合の約０．１から、１０〜２０ビットの場合の指数関数的小ささまで）に起因して、確率の負の対数を用いることが好都合である。これを、負の対数尤度すなわちＮＬＬ（Negative Log Likelihood）と呼ぶ。確率は１未満であるため、これは正の数である。異なるサイズのネットワークを比較するために、ＮＬＬは、可能なＳＤＲの総数（Ｈ０）の対数によって除算することにより正規化される。最後に、数回の反復にわたって実行平均を計算することによって、データを「平滑化」することが好都合であり得る。このとき、学習メトリックは以下となる。
【数１】
2020534595.tif 000003
【００４６】
他の学習メトリックも用いられ得るが、理想的には、これらはシステムが任意の正確な予想を行うよう学習する前の第１の反復時にゼロ付近で開始し、全ての入力が正しく予測されたときに既知の最大値（ここでのように１等）に近づくべきである。
【００４７】
加えて、複数の反復が完了すると、領域２の相関器によって生成された表現の安定性（または「持続性」）を評価することが望ましい。これは、連続した反復において活性のままであるカラムの数を、活性であるカラムの数に対し正規化したものをカウントすることによって行われる。結果は、いくつかの反復にわたって平均をとられる。
【００４８】
実施例１：プーリングなし
連続した入力の相関がとられなかった。すなわち、各現在の入力のみを用いて相関器をトレーニングした。Ｒ２の相関器は、検証されたニューロン間の相関を、下位の次元の別のＳＤＲに符号化し、そしてこれがＲ２のシーケンス・メモリに渡される。数千回の反復（各センテンスの概ね１００回の観測に対応する）後、Ｒ２のシーケンス・メモリは、その入力ＳＤＲの各々の正しい予測を行い始める。双方の領域のシーケンス・メモリ内の予測ＳＤＲおよび実際のＳＤＲ間の重複に学習メトリックが適用される。
【００４９】
１００００回の反復の後、Ｒ１およびＲ２における平均学習はそれぞれ０．４１および０．３２に達した（図４を参照）。上位領域（Ｒ２）における学習は、４０００回の反復において開始した。平均持続性は０．０１６で終了した（図５を参照されたい）。
【００５０】
実施例２：２つの連続入力のプーリング
この例では、Ｒ２相関器は、各ステップにおいて２つの連続した入力、すなわち、現在のフィード・フォワードＳＤＲおよび前の時間ステップからの入力をプールするようにプログラムされた。
【００５１】
１００００回の反復後、Ｒ１およびＲ２における平均学習はそれぞれ０．４４および０．４６に達した（図６を参照）。予期されるように、下位領域の挙動に大きな変化はない。上位領域は、かなり正確な学習を示す。また、上位領域（Ｒ２）における学習は、より早期に、３０００回の反復で開始する。平均持続性は０．４６に達した（図７を参照）。これらの結果は、プーリングに起因したネットワークの改善された性能を、上位領域の学習の速度および正確性の観点において、ならびに生成された表現の安定性の観点において明確に示す。
【００５２】
実施例３：３つの連続入力のプーリング
この例において、領域２の相関器は、各ステップにおいて３つの連続入力、すなわち現在のフィード・フォワードＳＤＲおよび２つの以前の時間ステップからの入力をプールするようにプログラムされた。
【００５３】
１００００回の反復後、Ｒ１およびＲ２における平均学習はそれぞれ０．４２（実施例２に対する僅かな変化）および０．５１（改善された）に達した（図８を参照）。上位領域（領域２）における学習は、２０００回の反復において開始した。平均持続性は０．６３において終了した（図９を参照）。ここでも、これらの結果は、プーリングに起因したネットワークの改善された性能を、上位領域の学習の速度および正確性の観点において、ならびに生成された表現の安定性の観点において示す。
【００５４】
４つ以上の連続入力がプールされてもよいことが当業者には明らかとなろう。示される例に加えて、４つおよび５つの連続入力のプーリングがそれぞれ同じデータおよびネットワークに適用された。４つの場合の性能は３つの場合より僅かに増大したが、学習の急な開始を除いて、５つの場合と４つの場合との間の差は非常に僅かであった。これらの例は、階層ニューラル・ネットワークの時間相関器における複数の連続した入力のプーリングの効果を実証する。
【００５５】
様々な実施形態の論理演算は以下のように実施される：（１）汎用コンピュータ内のプログラマブル回路上で実行される、一連のコンピュータにより実施されるステップ、動作もしくは手順、（２）専用プログラマブル回路上で実行される、一連のコンピュータにより実施されるステップ、動作もしくは手順、または（３）プログラマブル回路内の相互接続されたマシン・モジュールもしくはプログラム・エンジン、あるいはその組合せとして実施される。図１０に示すシステム１０００は、挙げられた方法の全てもしくは一部を実施することができるか、挙げられたシステムの一部とすることができるか、または挙げられた非一過性コンピュータ可読ストレージ媒体における命令に従って動作することができるか、あるいはその組合せである。図１０を参照すると、例示的なシステムは、処理ユニット（例えば、ＣＰＵ）１００２と、読み出し専用・メモリ（ＲＯＭ）５１６およびランダム・アクセス・メモリ（ＲＡＭ）１０１２等のシステム・メモリを含む様々なシステム・コンポーネントを処理ユニット１００２に結合するシステム・バス１０２６とを含む、汎用コンピューティング・デバイス１０００を含む。他のシステム・メモリ１０１４も利用可能である。本発明は、２つ以上の処理ユニット１００２を有するコンピューティング・デバイス、またはより優れた処理能力を提供するように共にネットワーク化されたコンピューティング・デバイスのグループもしくはクラスタに対し動作することができることを理解することができる。処理ユニット１００２は、ソフトウェアによって制御される汎用ＣＰＵおよび専用プロセッサを含むことができる。
【００５６】
コンピューティング・デバイス１０００は、ストレージ・デバイス１００４（限定ではないが、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等）等のストレージ・デバイスを更に含む。ストレージ・デバイス１００４は、ドライブ・インタフェースによってシステム・バス１０２６に接続することができる。ドライブおよび関連付けられたコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、およびコンピューティング・デバイス１０００のための他のデータの不揮発性ストレージを提供する。１つの態様において、特定の機能を実行するハードウェア・モジュールは、ＣＰＵ、バス、ディスプレイ等のような必要なハードウェア・コンポーネントと接続して機能を実行するための、有形コンピュータ可読媒体に記憶されたソフトウェア
・コンポーネントを含む。基本的なコンポーネントは当業者に既知であり、デバイスが小さなハンドヘルド・コンピューティング・デバイスであるか、デスクトップ・コンピュータであるか、またはコンピュータ・サーバであるか等のデバイスのタイプに依拠して、適切な変形が予期される。
【００５７】
本明細書に記載の例示的な環境はハード・ディスクを用いるが、磁気カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用・メモリ（ＲＯＭ）、ケーブル、またはビットストリームを含む無線信号等のような、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体も例示的な動作環境において用いることができることが当業者には理解されるべきである。
【００５８】
コンピューティング・デバイス１０００とのユーザ・インタラクションを可能にするために、入力デバイス１０２０は、発話用のマイクロフォン、ジェスチャまたはグラフィック入力用のタッチセンサー式スクリーン、キーボード、マウス、動き入力、発話等のような任意の数の入力メカニズムを表す。出力デバイス１０２２は、当業者に既知の複数の出力メカニズムのうちの１つまたは複数も含むことができる。いくつかの例では、マルチモード・システムが、ユーザがコンピューティング・デバイス１０００と通信するために複数のタイプの入力を提供することを可能にする。通信インタフェース１０２４は、通例、ユーザ入力およびシステム出力を管轄および管理する。発明に対し、いかなる特定のハードウェア構成で動作する制限もなく、したがって、ここでの基本的特徴は、開発される際に、改善されたハードウェアまたはファームウェア構成と容易に置き換えることができる。
【００５９】
プロセッサ１００２を、モジュールのプログラミングに従って特定の機能を実行するように制御するように構成されたモジュールとして論理演算を実装することができる。図１０は、プロセッサ１００２を、特定のステップまたは一連のステップを実行するように制御するモジュールである、３つのモジュールＭＯＤ１  １００６、ＭＯＤ２  １００８およびＭＯＤ３  １０１０も示す。これらのモジュールは、ストレージ・デバイス１００４上に記憶することができ、実行時にＲＡＭ１０１２またはメモリ１０１４にロードすることができるか、または当業者に既知のように他のコンピュータ可読メモリ・ロケーションに記憶することができる。
【００６０】
１つの実施形態では、モジュールＭＯＤ１  １００６、ＭＯＤ２  １００８およびＭＯＤ３  １０１０は、例えば、プロセッサ５０２を、以下のステップ、すなわち、単一の時間ステップ中に、１つまたは複数の下位レベルの以前に予測されたニューロンおよび現在活性であるニューロンからの２つ以上の連続するフィード・フォワード入力をプールする単一の相関器を実装するステップを実行ように制御するモジュールとすることができる。
【００６１】
別の実施形態では、モジュールＭＯＤ１  １００６、ＭＯＤ２  １００８およびＭＯＤ３  １０１０は、例えば、プロセッサ１００２を、以下のステップ、すなわち、（ａ）全ての時間ｔについて、２つのプールされたフィード・フォワード入力、すなわち、時間ステップｔからのＳ（ｔ）および時間ステップｔ−１からのＳ（ｔ−１）を相関付けるステップと、（ｂ）コンピュータ可読プログラム・コードが、入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習するステップであって、ｔ’は、２以上の正の整数である、ステップと、（ｃ）コンピュータ可読プログラム・コードが、（ａ）および（ｂ）において学習された相関を出力するステップとを実行するように制御するモジュールとすることができる。
【００６２】
別の実施形態では、モジュールＭＯＤ１  １００６、ＭＯＤ２  １００８およびＭＯＤ３  １０１０は、例えば、プロセッサ１００２を、以下のステップ、すなわち、（ａ）全ての時間ｔについて、３つのプールされたフィード・フォワード入力、すなわち、時間ステップｔからのＳ（ｔ）、時間ステップｔ−１からのＳ（ｔ−１）および時間ステップｔ−２からのＳ（ｔ−２）を相関付けるステップと、（ｂ）コードが、入力Ｓ（ｔ）とＳ（ｔ−ｔ’）との間の相関を間接的に学習するステップであって、ｔ’は、３以上の正の整数である、ステップと、（ｃ）コンピュータ可読プログラム・コードが、（ａ）および（ｂ）において学習された相関を出力するステップとを実行するように制御するモジュールとすることができる。
【００６３】
上記で説明した特徴および応用は、コンピュータ可読ストレージ媒体（コンピュータ可読媒体とも呼ばれる）に記録された命令セットとして指定されたソフトウェア・プロセスとして実施することができる。これらの命令が１つまたは複数の処理ユニット（例えば、１つまたは複数のプロセッサ、プロセッサのコアまたは他の処理ユニット）によって実行されるとき、これらは、処理ユニットに、命令において示された動作を実行させる。本開示の範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造を搬送するかまたはそれらが記憶された有形または非一過性あるいはその両方のコンピュータ可読ストレージ媒体も含むことができる。そのような非一過性コンピュータ可読ストレージ媒体は、任意の専用プロセッサの機能的設計を含む、汎用または専用コンピュータによってアクセスすることができる任意の利用可能な媒体とすることができる。限定ではなく例として、そのような非一過性コンピュータ可読媒体は、フラッシュ・メモリ、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク・ストレージ、磁気ディスク・ストレージもしくは他の磁気ストレージ・デバイス、またはコンピュータ実行可能命令、データ構造、もしくはプロセッサ・チップ設計の形態の所望のプログラム・コード手段を搬送または記憶するのに用いることができる任意の他の媒体を含むことができる。コンピュータ可読媒体は、無線でまたは有線接続を介して渡される搬送波および電子信号を含まない。
【００６４】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータまたは専用処理デバイスに特定の機能または機能のグループを実行させる命令およびデータを含む。コンピュータ実行可能命令は、コンピュータによってスタンドアローンでまたはネットワーク環境内で実行されるプログラム・モジュールも含む。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装する、専用プロセッサ等の設計において固有のルーチン、プログラム、コンポーネント、データ構造、オブジェクトおよび機能を含む。コンピュータ実行可能命令、関連データ構造、およびプログラム・モジュールは、本明細書において開示される方法のステップを実行するためのプログラム・コード手段の例を表す。そのような実行可能命令または関連データ構造の特定のシーケンスは、そのようなステップにおいて記載される機能を実施するための対応する動作の例を表す。
【００６５】
本明細書において、「ソフトウェア」という用語は、プロセッサによる処理のためにメモリ内に読み込むことができる、磁気ストレージまたはフラッシュ・ストレージ、例えばソリッドステート・ドライブに記憶された読み出し専用メモリまたはアプリケーション内に存在するファームウェアを含むように意図される。また、いくつかの実施態様において、複数のソフトウェア技術を、別個のソフトウェア技術を保ちながら、より大きなプログラムのサブ部分として実施することができる。いくつかの実施態様では、複数のソフトウェア技術を別個のプログラムとして実施することもできる。最終的に、合わせて本明細書に記載のソフトウェア技術を実施する別個のプログラムの任意の組合せが、主題技術の範囲内にある。いくつかの実施態様では、ソフトウェア・プログラムは、１つまたは複数の電子システム上で動作するようにインストールされると、ソフトウェア・プログラムの動作を実行および実施する１つまたは複数の特定のマシン実施態様を定義する。
【００６６】
コンピュータ・プログラム（プログラム、ソフトウェア、ソフトウェア・アプリケーション、スクリプトまたはコードとしても知られる）は、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含むプログラム言語の任意の形態で書くことができ、またコンピュータ・プログラムは、スタンドアロン・プログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに適した他のユニットとしてを含む任意の形態で展開することができる。コンピュータ・プログラムは、ファイル・システムにおけるファイルに対応することができるが、その必要はない。プログラムは、他のプログラムまたはデータ（例えばマークアップ言語ドキュメントに記憶された１つまたは複数のスクリプト）を保持するファイルの一部分に、当該プログラムに専用の単一ファイルに、または複数の協調ファイル（coordinated file）（例えば、１つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル）に記憶することができる。コンピュータ・プログラムは、１つのサイトに位置するか、または複数のサイトにわたって分散し、通信ネットワークによって相互接続される、１つまたは複数のコンピュータ上で実行されるように展開することができる。
【００６７】
上記で説明したこれらの機能は、デジタル電子回路部で、コンピュータ・ソフトウェア、ファームウェアまたはハードウェアにおいて実施することができる。技法は、１つまたは複数のコンピュータ・プログラム製品を用いて実施することができる。プログラマブル・プロセッサおよびコンピュータは、モバイル・デバイスに含めるか、またはモバイル・デバイスにパッケージングすることができる。プロセスおよび論理フローは、１つまたは複数のプログラマブル・プロセッサおよび１つまたは複数のプログラマブル論理回路部によって行うことができる。専用および汎用コンピューティング・デバイスおよびストレージ・デバイスを、通信ネットワークを通じて相互接続することができる。
【００６８】
いくつかの実施態様は、コンピュータ・プログラム命令をマシン可読またはコンピュータ可読媒体（代替的に、コンピュータ可読ストレージ媒体、マシン可読媒体またはマシン可読ストレージ媒体とも呼ぶ）に記憶する電子コンポーネント、例えばマイクロプロセッサ、ストレージおよびメモリを含む。そのようなコンピュータ可読媒体のいくつかの例は、ＲＡＭ、ＲＯＭ、読み出し専用コンパクト・ディスク（ＣＤ−ＲＯＭ）、記録可能コンパクト・ディスク（ＣＤ−Ｒ）、再書き込み可能コンパクト・ディスク（ＣＤ−ＲＷ）、読み出し専用デジタル多用途ディスク（例えば、ＤＶＤ−ＲＯＭ、二重層ＤＶＤ−ＲＯＭ）、多岐にわたる記録可能／再書き込み可能ＤＶＤ（例えば、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ等）、フラッシュ・メモリ（例えば、ＳＤカード、ミニＳＤカード、マイクロＳＤカード等）、磁気またはソリッド・ステート・ハード・ドライブ、読み出し専用および記録可能Ｂｌｕ−Ｒａｙ（登録商標）ディスク、ウルトラ・デンシティ光ディスク、任意の他の光または磁気媒体、およびフロッピー（Ｒ）・ディスクを含む。コンピュータ可読媒体は、少なくとも１つの処理ユニットによって実行可能なコンピュータ・プログラムを記憶することができ、様々な動作を実行するための命令のセットを含む。コンピュータ・プログラムまたはコンピュータ・コードの例は、例えば、コンパイラによって生成されるマシン・コード、およびインタープリタを用いてコンピュータ、電子コンポーネントまたはマイクロプロセッサによって実行される高レベル・コードを含むファイルを含む。
【００６９】
上記の検討は、主に、ソフトウェアを実行するマイクロプロセッサまたはマルチコア・プロセッサを指すが、いくつかの実施態様は、１つまたは複数の集積回路、例えば特定用途向け集積回路（ＡＳＩＣ）またはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）によって行われる。いくつかの実施態様において、そのような集積回路は、回路自体に記憶された命令を実行する。
【００７０】
開示されたプロセスにおけるステップの任意の特定の順序または階層が、例示的手法を示すことを理解されたい。設計選好に基づいて、プロセスにおけるステップの特定の順序または階層を再配置することができるか、または全ての示されたステップを実行することができることを理解されたい。ステップのいくつかは、同時に実行されてもよい。例えば、特定の環境において、マルチタスクおよび並列処理が有利であり得る。更に、上記で示された様々なシステム・コンポーネントの分離は、そのような分離を要求するものと解釈されるべきでなく、説明されたプログラム・コンポーネントおよびシステムは、通常、合わせて単一のソフトウェア製品に統合するか、複数のソフトウェア製品にパッケージングすることができることが理解されるべきである。
【００７１】
本発明は、米国国防高等研究計画局（ＤＡＲＰＡ）によって与えられた契約第Ｎ６６００１−１５−Ｃ−４０３４の下で米国政府の援助によって行われた。米国政府は本発明における一定の権利を有する。
【００７２】
上記で説明した様々な実施形態は、説明のためにのみ提供され、本開示の範囲を限定するものと解釈されるべきでない。当業者は、本明細書に示され説明された例示的な実施形態および応用に従うことなく、また添付の特許請求の範囲において定義される本発明の範囲から逸脱することなく、本明細書に記載の原理に対し行うことができる様々な変更および変形を容易に認識するであろう。
【図１】
2020534595.tif 000004
【図２】
2020534595.tif 000005
【図３】
2020534595.tif 000006
【図４】
2020534595.tif 000007
【図５】
2020534595.tif 000008
【図６】
2020534595.tif 000009
【図７】
2020534595.tif 000010
【図８】
2020534595.tif 000011
【図９】
2020534595.tif 000012
【図１０】
2020534595.tif 000013
【国際調査報告】
2020534595.tif 000014
2020534595.tif 000015
2020534595.tif 000016
2020534595.tif 000017
2020534595.tif 000018