説明

前の及び次の連合を表現する重みとカウントのべき級数を含む人工ニューロン

【課題】膨大な入力変数等のスケーリング問題を解決するための人工ニューロンを提供する。
【解決手段】人工ニューロン700は、入力及び樹状突起を含み、樹状突起のそれぞれは、入力のそれぞれと連合(関連付け)される。各樹状突起は、重みのべき級数を含み、べき級数の各重みは、連合されたべきに対する連合されたカウントを含む。重みのべき級数は、好ましくは、重みの2を底とするべき級数であり、この2を底とするべき級数の各重みは、ビット位置を表す連合されたカウントを含む。連合されたべきに対するカウントは、統計的カウントである。より具体的には、樹状突起は、シーケンシャルに順序付けられ、重みのべき級数は、一対の重みの第1及び第2のべき級数を含む。第1のべき級数の各重みは、先行の樹状突起の連合の関数である第1のカウントを含み、且つ、第2のべき級数の各重みは、次の樹状突起の連合の関数である第2のカウントを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人工知能システム,方法及びコンピュータプログラム製品に関し、より詳細には、人工ニューロンシステム,方法,及びコンピュータプログラム製品に関する。
【背景技術】
【0002】
コンテント・アクセサブル・メモリ(content addressable memory)とも呼ばれる連想メモリは、パターンマッチング及び識別、エキスパートシステム及び人工知能の分野で広く使用されている。広く使用されている連想メモリは、ホップフィールド(Hopfield)型人工ニューロンネットワークである。このホップフィールド型人工ニューロンネットワークは、例えば、Hopfield氏に対する「Electronic NetWork for collective Decision Based on Large Number of Connections BetWeen Signals」と題する米国特許第4,660,166号に記述されている。
【0003】
連想メモリは、バック伝播ネットワークにおける問題を回避できるけれども、連想メモリは、スケーリングとスプリアスメモリの問題を提起することがある。連想メモリにおける最近の改良が、これら及び他の問題を解決するために試みられている。例えば、コインベンダーのAparacio VI等に対する「Artificial Neural NetWorks Including Boolean−Complete Compartments」と題する米国特許第6,052,679号は、複数の人工ニューロンと、それぞれがそれぞれの対の人工ニューロンを連結する複数のブール−コンプリート・コンパートメントと、を提供する。ブール−コンプリート・コンパートメントを提供することによって、スプリアス補数メモリが回避され得る。
【0004】
また、連想メモリは、市場で販売されている。例えば、インターナショナルビジネスマシーン(IBM)社によって市販されているMemoryAgentとして知られる製品は、用語「smart assistance」によって特徴付けられる、埋め込み学習エージェントを創設するために使用される低レベルセットのアプリケーションインターフェースを提供する。Intelligence in Industryの1999年1月第8巻1号の第5〜9ページの「Report:IBM’s Memory Agent」と題される出版物を参照されたい。Haley Enterprises及びIntellix A/Sを含む他のベンダーもまた連想メモリツールを提供している。特に、Haley Enterprisesは、「The Intellignet Memory」と呼ばれる市販の連想メモリをサポートしている。http//:WWW.haley.com/TIM.htmlを参照されたい。Intellix A/Sは、SOUL(Self-Optimizing Universal Leaner)と呼ばれるソフトウエアフレームワークを使用する「KnoWman」と呼ばれる他の市販の連想メモリをサポートしている。http://WWW.intellix.com.を参照されたい。いくつかのベンダーは、「Self−Organizing Neural NetWork for Pattern Classificationと題するYoda氏へ付与された米国特許第5,870,729号や、System and Method for Categorizing Objects in Combined categoriesと題するPrager氏へ付与された米国特許第5,943,670号に記述されているような自己最適化機能マップを提供し、これらは、連想メモリの形態である。また、連想メモリは、System and Method of Context Vector Generaton and Retrievalと題するCaid氏に付与された米国特許第5,619,709号に示されているように、電子商取引へ適用されている。連想メモリの他の用途は、3Comによって市販されているPalm Pilotのような手持ちデバイスにおける手書き認識を含む。
【0005】
連想メモリは、最近市販され始めたに過ぎないが、それらは、個人専用で知識管理を望む用途に対して急速に成長することが期待される。実際に、あるエキスパートは、「自動連想メモリを作ることは、非常に大きなビジネスであり、何時か、より多くのシリコンが何か他の目的ではなくて、このようなデバイスの製作に消費されるであろう」ということを予想している。Technology RevieWの1999年7月/8月の第102巻、第4号の79ページを参照されたい。
【発明の概要】
【発明が解決しようとする課題】
【0006】
残念ながら、連想メモリの使用が実際の問題を解決するのを制限し得る基本的なスケーリング問題がある。特に、多くの連想メモリは、線形重みを使用する。図1Aに示されるように、各入力は、一旦、重みWA〜WEに従って各出力に連合(関連付け)(associate)される。しかしならが、このような線形ネットワークにおける入力は、一般的には、互いに連合しない。このことは、入力同士間の共通要求やトレードオフに見られる、入力同士間の相互作用のような可能性のある非線形性をこのようなネットワークの機能(能力)が学習して表示することを厳しく制限することがある。
【0007】
図1Aの線形ネットワークの代替としては、図1Bに示す幾何学的ホップフィールド型ネットワークがある。このホップフィールド型ネットワークにおいて、1対1接続は、全てのノードの間で設けられ、且つ、その重みは、前記ノード同士間の各アーチに対して設けられる。図1Bに示されるように、全ての入力同士間に設けられる重みの展開に起因して実際のアプリケーションに対してホップフィールド型ネットワークをスケーリング(scale)することは困難である。非線形ネットワークは、一般に、全ての入力を互いにインターセプトするために、N2又は幾何学的スケーリング機能が提供される。より具体的には、入力同士間の接続の数は、一般的に、Nを入力数とすると、N(N−1)/2に等しくなる。
【0008】
この幾何学的スケーリングは、一般的に、このようなテクノロジーを保障する複雑度のスケールでアプリケーションをサポートするためには不合理的である。例えば、一般的な目的のサーチ及び個人モデリングのために、数万の入力変数と数百万のモデルが管理される必要がある。もう一方の極端な場合には、オペレーティングシステムにおけるマシン学習は、クライアントマシンがより小さな無線デバイスになると、より効率的になる必要がある。このような状態において、単位のユーザモデルが必要であるが、コンテキストと入力変数の数は、なお、非常に大きい。2、3人の個人がいる家族のレベルでさえ、入力の数は、数十万のオーダーである。従って、今後2、3年の内に期待される、より大きな物理的メモリ容量でさえ、このような用途に現在の技術を使用することが不合理である。こ
のように、このような環境に対するエージェントベースの学習のアプリケーションが現在現れているが、非線形連合を学習して使用する場合のスケーリング問題に起因して、これらのアプリケーションをサポートするための学習テクノロジーを実施することは困難である。
【課題を解決するための手段】
【0009】
本発明は、複数の入力と複数の樹状突起(dendrite)を含み、樹状突起のそれぞれが前記複数の入力のそれぞれに連合(関連付け)される、人工ニューロンを提供することができる。各樹状突起は、重みのべき級数を含み、且つ、べき級数の各重みは、連合されたべき(poWer)に対する連合されたカウントを含む。重みは、一般的に、カウント用のプレースホルダであり、それは、別個の物理的エンティティである必要はないことが理解されるであろう。重みのべき級数は、2を底とする重みのべき級数であることが好ましく、この2を底とするべき級数における各重みは、ビット位置を表す連合カウントを含む。本発明によれば、重みをべき級数として表すことによって、従来の人工ニューロンにおける入力の関数としての幾何学的スケーリングは、入力の関数として線形スケーリングに減少され得ることがわかった。多くの数の入力は、実際のシステムを使用して処理されて実際のアプリケーションを解決する。
【0010】
連合べきに対するカウントは、統計的カウントが好ましい。より具体的には、樹状突起は、連続的に順序付けられることが好ましく、且つ、重みのべき級数は、一対の重みの第1及び第2のべき級数を備えることが好ましい。第1のべき級数の各重みは、前の(先行の)樹状突起の連合数の関数である第1のカウントを含み、且つ、第2のべき級数の各重みは、次の樹状突起の連合数の関数である第2のカウントを含む。より好ましくは、重みの第1及び第2のべき級数は、複数の観測フェーズの各々に対して設けられる。
【0011】
入力信号を人工ニューロンへ伝播するために、その連合入力で入力信号に応答するトレースが設けられることが好ましい。このトレースは、前の樹状突起での入力信号の連合数の関数である第1のトレースカウントと、次の樹状突起での入力信号の連合数の関数である第2のトレースカウントと、を含むことが好ましい。第1及び第2のべき級数は、それぞれの第1及び第2のトレースカウントへ応答する。重みと同様に、各トレースは、前の樹状突起での入力信号の連合数の関数である少なくとも1つの第1のトレースカウントと、次の樹状突起での入力信号の連合数の関数である少なくとも1つの第2のトレースカウントと、を備えることが好ましい。また、第1及び第2のトレースカウントは、べき級数で表されてもよい。
【0012】
記憶動作を行うために、入力信号が第1及び第2のトレースカウントへ変換されることが好ましく、且つ、トレースウエーブ伝播装置がそれぞれの第1及び第2のトレースカウントをそれぞれの重みの第1及び第2のべき級数へ伝播する。このトレースウエーブ伝播装置は、連続的に順序付けられた樹状突起に沿って順方向及び逆方向へトレースを伝播することが好ましい。また、キャリー(桁上げ;繰上げ)結果(carry result)は、複数の樹状突起において重みのべき級数に沿って伝達されて入力信号の記憶を行う。ダブルマッチ/フィルタが次により高いべき重みへの伝播のために、樹状突起において重みに対するキャリー結果を識別することが好ましい。また、ダブルマッチ/フィルタは、重みとトレースの同時発生に基いて、樹状突起における重みに対するキャリー結果を識別することが好ましい。
【0013】
読み取り動作を行うために、アキュムレータは、第1及び第2のトレースカウントと、重みの第1及び第2のべき有数との間のマッチング数を累算する。アキュムレータは、キャリー結果が生成されるか否かに関係無く、第1及び第2のトレースカウントと、重みの第1及び第2のべき級数におけるカウントの全てとの間にマッチング数を累算することが好ましい。合計装置は、アキュムレータに応答して、重みの第1及び第2のべき有数に対する第1及び第2のトレースカウントのマッチング数の累算の結果を合計する。
【0014】
上述のように、重みは、前の樹状突起の連合数及び次の樹状突起の連合数のそれぞれの関数である第1及び第2のべき級数を含むことが好ましい。連合数は、連合自体ではなくてむしろ連合の特性を表す統計的関数の例である。好ましくは、前の樹状突起の連合数の合計と次の樹状突起の連合数の合計が使用される。しかしながら、統計的関数が使用されてもよい。「前の(先行の)/次の」関係は、べき級数重みと共に使用されるのが好ましいが、この「前の/次の」関係は、従来のニューラルネットワーク重みと共に使用されてニューラルネットワークの入力ノード同士間の改良された非線形相互作用を提供してもよい。最後に、本発明は、システム,方法,コンピュータプログラム製品,及び/又はそれらの組み合わせとして具体化され得る。
【図面の簡単な説明】
【0015】
【図1】図1Aおよび図1Bは、従来における線形且つ幾何学的な神経ネットワークをそれぞれ示すブロック図である。
【図2】小脳皮質のニューロンの図である。
【図3】図3A及び図3Bは、極フェーズとしての観測値を概念的に示す図である。
【図4】図4A及び図4Bは、観測値をフェーズ・グラフに分解して概念的に示す図である。
【図5】フェーズ・グラフを重みの無いグラフに分解して概念的に示す図である。
【図6】ダイナミックプログラム重みを概念的に示す図である。
【図7】単一の観測フェーズに対する本発明による神経樹状突起構造のブロック図である。
【図8】本発明による複数の観測フェーズを含む多極ニューロンのブロック図である。
【図9】単一の観測フェーズに対する本発明によるトレースウエーブ伝播を概念的に示す図である。
【図10】本発明によるトレース形成のための動作を示すフローチャートである。
【図11】本発明によるトレース形成のための動作を示すフローチャートである。
【図12】本発明による神経ネットワークのための記憶のブロック図である。
【図13】本発明による記憶のための動作のフローチャートである。
【図14】本発明による記憶のための動作のフローチャートである。
【図15】本発明によるダブルマッチ/フィルタのブロック図である。
【図16】本発明による図15のダブルマッチ/フィルタの動作の例を示す図である。
【図17】図17A〜図17Cは、本発明によるダブルマッチ/フィルタの動作のフローチャートである。
【図18】本発明によるダブルマッチ/フィルタの動作のフローチャートである。
【図19】本発明による読み取りのブロック図である。
【図20】本発明による読み取り動作のフローチャートである。
【図21】本発明による読み取り動作のフローチャートである。
【発明を実施するための形態】
【0016】
本発明は、ここで、本発明の好適な実施の形態が示されている添付の図面を参照して、より十分に記述される。しかしながら、本発明は、多くの異なる形態で具体化されるが、ここで述べられる実施の形態に制限されるものと解されるべきではなく、むしろ、これらの実施の形態は、ここでの開示が綿密で且つ完全であり、当業者に本発明の範囲を十分に知らせるように提供される。同様の参照番号は、全体を通して同様の要素を示す。
【0017】
本発明は、図3〜図20の図面を使用して、ここで記述される。図面中の要素及び図面の要素の組合せは、特定の機能又はステップを実行する汎用及び/又は特殊目的のハードウエアベースのシステムや、汎用及び/又は特殊目的のハードウエア及びコンピュータ命令の組合せによって実施され得ることが理解されるであろう。
【0018】
これらのプログラム命令は、プロセッサに提供されてマシンを生成することができ、それによって、プロセッサ上で実行する命令は、図示された機能を実施するための手段を生成する。コンピュータプログラム命令は、プロセッサによって実行されて一連の動作ステップがそのプロセッサによって実行され、プロセッサ上で実行する命令が図示された機能を実施するためのステップを提供するようにコンピュータ施行処理をもたらすことができる。従って、図3〜図20は、特定の機能を実行するための手段の組合せ、特定の機能を実行するためのステップの組合せ、及び特定の機能を実行するためのプログラム命令をサポートする。
【0019】
本発明の完全な理解を容易とするために、観測行列(observation matrix)の分離及び線形構造への再構成の理論的議論を最初に行う。次に、本発明の人工ニューロン構造を詳細に説明する。更に、トレースウエーブ(trace Wave)の発生と伝播を一般的に説明する。最後に、記憶(書込み)及びイマジネーション(読出し)の動作を詳細に説明する。
【0020】
理論的考察
本発明は、自動連想メモリであると長く信じられている小脳構造によって示唆されている。小脳は、伝統的に無意識の運動技能を記録して発揮すると考えられていたが、現在では、全ての認識活動、特に、一般的な想像をすること及び決定をすることにおいて、役割を演じると理解されている。
【0021】
図2は、1975年出版、LlinasのScientific Americaの第232巻第1号の56乃至71ページのThe Cortex of the Cerebellum(小脳の皮質)から複製された小脳皮質のニューロンの複写である。小脳におけるプルキンエニューロン(Purkinje neuron)Puは、連想メモリそれ自体を表すと考えられる。各プルキンエニューロンPuは、100,000個までの入力シナプス(これは他のタイプのニューロンよりも多い)を有する。全てのこの入力を演算しそして合計すると、各プルキンエニューロンPuは、1つの軸索を小脳から送り出す。この莫大なファンイン(fan-in)が与えられると、1つの仮定は、これらの入力の出力への連想性(連合性)(associativity)は、各入力での1つの簡単な重みと、これらの入力とシナプスの重みとの合計(ドット積)とに基づいて、線形であることである。しかしながら、これのニューロンと最も多い他のニューロンのリアルダイナミックスは、高度の非線形であることが知られている。このように、非線形演算パワーがこれらの実際の高度に進化したシステムに存在するように現れるが、連想メモリを生成するための演算の性質は、未知であるように現れる。しかしながら、プルキンエニューロン構造体は、ホップフィールド型ニューラルネットワークによって定義される非線形連想装置に使用されるようなツリーであり、O(100,0002)相互接続の天文学的な叢(plexus)ではないことが明らかとなる。
【0022】
本発明は、入力同士の間での学習された相互作用を実質的に表現でき、実現可能なシステムにおいて物理的に実施され得るような人工ニューロンシステム,方法及び/又はコンピュータプログラム製品を提供することができる。実際に、O(N2)の実質的な表現を近似すると、O(N)の物理的マシンに相当することが示される。このような純粋な線形性は、上はインターネットまで下は小さな無線デバイスまでにおける高性能予測のスケーリング及びパターンマッチングを可能ならしめることができる。
【0023】
理論的考察は、統計において使用される2×2観測マトリックス(観測行列)から開始され得る。任意の二つの二進入力変数(二つのコインのフリップのような)が与えられると、4つの可能な観測(observation)がある。この2×2観測マトリックスは、観測された組合せのための4つのカウンタのセットである。例えば、図3(A)は、二つの変数A及びBを示す。Aは、オン又はオフ、或いはA又は!Aでありうる。これはBに対しても同様である。観測カウントは、例えば、A及びBの同時発生が、三回観測されたことを示す。全体として、A及びBが互いを排除する傾向がある(強力な確率的XOR関係を表す)ことが現れる。
【0024】
図3Bに示されるように、これらの4個のセル・カウンタの各々は、4つのフェーズの1つとして表され得る。各フェーズは、二つの入力の各々のオン(1)又はオフ(0)状態に対して、00,01,10又は11によって識別される。この場合、低ビットはA座標を表し、高ビットはB座標を表す。
【0025】
二つの入力変数より多い場合には、O(N2)個の2×2マトリックスが必要とされる。例えば、図4Aに示されるように、三つの入力(A,B及びC)に対して、三つのマトリックス(A×B,A×C,B×C)がある。幾何学的スケーリングがより多くの入力で発生し、それによって4つの入力が6個のマトリックスを使用したり、5つの入力が10個のマトリックスを使用したりする。しかしながら、三つの入力の単純なグラフは、三角形として全ての関係をより明瞭に示す。その三角形の各対毎のエッジは2×2観測マトリックスを有する。観測数の合計は、異なっており、それによって、真,偽,及び未知の3状態入力値を可能とする。
【0026】
本発明は、この連合(連想)の表示を線形形状に圧縮することができる。任意の二つのマトリックスにわたる共通性を見つけることは殆ど不可能であると思われる。例えば、たった二つのこのようなマトリックスの崩壊は、4つの観測カウントが互いにマッチングする場合に達成されるに過ぎない。最悪の場合、全ての可能な対毎のマトリックスは、互いに異なることができ、幾つかの組合せによっては圧縮不能とされる。しかしながら、本発明は、このようなカウントをそれらの圧縮が可能とされるように分離することができる。
【0027】
これらのマトリックスの二つの再配置によって、適切な特性を有するグラフが得られる。第1の再配置は、フェーズ(phase)の各々を互いから分離して、各フェーズに対して1つであるようにそれらを4つのグラフに再結合を行う。図4Bを参照されたい。各グラフの結果は、そのグラフの各エッジに、重みのマトリックスではなくて、唯1つの重みのみを残すことができる。
【0028】
第2の再配置は、そのフェーズ・グラフの各重みをべき級数、好ましくは、2が底のべき級数に分離する。図5は、入力変数A,B及びC間の6,5及び3の重みを有する1つのフェーズ・グラフを示す。各重みの2値表示も、また、図5に示されている。重みの各ビットは、その重みの2が底のべきを表す。
【0029】
これらのビットべきが重み(6=22+21)のフルマグニチュードを表示する場合に加法的なものであるために、各フェーズ・グラフは、各ビットに対して1つであるように、1セットのべきグラフに更に分離され得る。図5は、22、21及び20マグニチュードに対して、三つのべきグラフへ分離された例示のフェーズ・グラフを示す。このグラフのべきは、グラフ自体に連合されるが、各グラフは、ウエイトレス(重み無し)のものであり、このことは、各アークが特定のフェーズ及びべきに対する任意の二つの入力の間の連合の一回の発生又は発生しないことを表すことを意味する。
【0030】
従って、一セットのウエイトレスのグラフが生成され得る。これらのグラフは、各々が幾何学的サイズのものであり、更に減少され得るが、ここでは、このようなグラフの数が含まれてもよい。2×2個のマトリックスの表示(その他の基本形は、そのように分解されてもよい)が与えられる場合には、4つだけのフェーズがある。次に、指数的に大きな重みの効率的な2値表示に関して、任意の重みの2値分離は、べきグラフの数をlog2(重み)へ制限する。特定の重みは、全体のメモリ負荷の総数M(全ての観測が1つのフェーズのみであると仮定して)に制限される。なお、この数は、M/4の期待値を有する。
【0031】
この理論的記述を続けると、ウエイトレスのグラフは、また、各ノード周りの統計量を使用して線形形状に圧縮され得る。統計量は、ノード周りの特性を表すが、それ自体の特性ではない。例えば、各ノードに対するリンクの数は、1つのそのような統計量である。各ノードは、1つの数によって特徴付けられることができ、それは、そのノードの全ての他のノードに対する連合の数を表す。しかしながら、この統計量は、どのノード対ノード連合が実際に表されるのかというような、非常に強力な制約(拘束)条件を伝えることができない。
【0032】
好適な統計量は、ダイナミックプログラミングからのアナロジーによって得られる。ダイナミックプログラミング技術は、組合せに関する複雑性を減少し得る。ダイナミックプログラミングによれば、全ての組合せを明瞭に勘案するよりも、むしろ、一度に多くの要素の列挙を間接的に可能とするような性質を見つけることができる。ダイナミックプログラミングは、従来より、ツリー構造体において使用される。例えば、ツリーの各ブランチが指数的数量のリーフノードを含むが、幾つかの問題は、ブランチ全体が一度に勘案されるような制約を有する。指数的数量のリーフが、実際に各リーフを勘案する計算負担無しに、暗黙的に勘案される。
【0033】
図6は、この暗黙のアカウントを提供できる好適な統計量を示す。図5のべきグラフは、重み無しであるので、線形アレイの重みは、そのグラフの各頂点に属するエッジの数をアカウントするために使用され得る。例えば、20に対する図6のべきグラフは、Aが二つのエッジ(Bへの1つの連合とCへの1つの連合)を有することを示す。1つのノードの全ての他のノードへの連合の合計は、非常に強力な制約を強制できず、頂点の順序付けと各合計を前の(先行の)ノードへの連合の合計と次のノードへの連合の合計への分離は、非常に堅い制約を強制でき、それによって、特定の連合をアカウントするために使用され得る。
【0034】
より具体的には、各べきグラフは、順序付けられた重み対のべき級数として表され、各対の内の一方の重みは、その(前の入力)前の入力への全ての連合を表し、且つ、他方の重みは、その(次の入力)の全ての連合をそれらの順序で表す。その対に対する表示は、[前]/[次]として表され、且つ、各対は、1つであり、ただ1つの入力と連合されるように示される。これらの重み対は、一般的に互いに対して高度に制約されている。例えば、Aの重みは、20重みべきに対して0/2であり、BとCを有する二つのエッジを表す。BとCの重みペアは、1/0と1/0である。A,B,Cの辞書的順序付けを仮定すると、BとCの前の重みは、Aの次に重みにマッチングする。一般に、全ての前の重みの合計は、次の重みの補集合を有する。後で示されるように、これらの対同士間の制約は、実際には、一層より強力であり得る。
【0035】
また、図6は、連続的順序の入力が重み対の正確な分布を変更できる。単一の重みは、常時グラフ上のエッジの数へマッピングされるのではない。例えば、Bに対する重みは、BがAとCとの間で順序付けられているにすぎないので、べきグラフ21に対して1/1である。Aを有する1つのエッジは、Aに先行し、Cを有する1つのエッジは、Cの次である。そうでない場合は、順序付け自体は、任意である。
【0036】
これで観測マトリックスの分離と線形構造への再構成の理論的議論を終了する。特に、スケーリングファクタは、一般的に4(log2(M)(2Nである。この場合、4つのフェーズがある。各フェーズに対するべきグラフの数は、観測数のログ関数Mとして成長する。各グラフは、このような入力がNとすると、各入力に対する二つの重みによって表される。
【0037】
人工ニューロン構造
図7は、本発明の一実施の形態に係る人工ニューロンのブロック図である。図7に示されるように、人工ニューロン700は、複数の入力710a〜710cと複数の樹状突起720a〜720cとを含んでいる。それぞれの樹状突起720a〜720cは、入力710a〜710cのそれぞれに連合される(関連付けされる)。各樹状突起は、重みのべき級数730を含む。重みのべき級数の各重みは、関連付けされたべきに対する関連付けされたカウントを含んでいる。好ましくは、図7に示されているように、重みのべき級数は、重みの2を底とするべき級数であり、それによって2を底とするべき級数の各重みは、ビット位置を表す関連付けされたカウントを含んでいる。図7の人工ニューロン700は、単一の観測フェーズ、ここでは、図6の観測フェーズ11を表している。各樹状突起720a〜720cは、図8により詳細に示されるように、第2の観測フェーズに対応する少なくとも重みの第2のべき級数よりなることが好ましい。最後に、図7を参照して、重みの各べき級数は、一対の重みの第1及び第2のべき級数よりなることが好ましい。第1のべき級数の各重みは、前の樹状突起の関連付け値の関数である第1のカウントを含むことが好ましく、且つ、第2のべき級数の各重みは、次の樹状突起の関連付け値の関数である第2のカウントを含むことが好ましい。前(先行)の及び次の樹状突起のカウントは、「/」によって示され、それによって、例えば、樹状突起720cの22べきに対する表記0/1は、0個の前の関連付け値と1個の次の関連付け値を示す。
【0038】
このように、各入力すなわちセンサニューロン710a〜710cは、1つの樹状突起ブランチ720a〜720cへ接続される。このブランチでは、各べきに対する重み対は、最も強力なものから最も弱いものへ配置されることが好ましい。これらの重みが存続する。それらは、特定の多極ニューロンに記憶されている累積された体験の全てを表す。
【0039】
更に、各樹状突起720a〜720cは、トレースと呼ばれるトレース記憶740を含む。このトレース記憶740は、一時的である。トレース740は、現在のアクティブのセンサ信号を表す。トレースは、センサ信号を送信することによって残されるシナプス後の生化学トレース(細胞内のカルシューム蓄積)に類推される。このような学習の生化学によれば、信号を記憶するための強力な信号がセンサ信号に追従する場合、トレース信号が記憶信号と相互作用して樹状突起の重みの永久変更を行う。
【0040】
本発明によるトレースの表示は、センサ信号の直接記録ほど単純でない方が好ましい。このトレース表示は、重みと同じ構造、好ましくは、前の/次の連合、へ変換されることが好ましい。ある意味では、トレースは、最も弱い「重み」と見做され得る。むしろセンサ信号自体としてではないトレースが、ニューロンの計算ダイナミックスで使用される。重みとトレースは、後述されるように、それらの最も効率的な計算のために共に同じ形態であることが好ましい。
【0041】
図7は、1つのフェーズに対する樹状突起720a〜720cの配置を示しているが、図8は、全てのフェーズ,べき,重み対を表し、多極ニューロンを提供する。図8は、このようなニューロンの初期化された状態を示す。全ての重み及びトレースは、ゼロに初期化され、より高い重みべきはない。ニューロン800の各メジャーブランチ810a〜810dは、可能な観測フェーズの1つを表している。ブランチ810a〜810dの出力は、合計ノード820で合算され、多極出力ライン830上に出力を提供する。
【0042】
入力710a〜710cが、センサニューロンによって表されることに留意されたい。各センサニューロンは、その適切なレベルで側方樹状突起ブランチへ繋がる。センサニューロンは、そのレベルで全ての側方樹状突起ブランチに繋がるが、これは簡単化のために図示されていない。各側方樹状突起ブランチは、図7で詳述されたように、全てのべきを横切るようにその重み対を記憶する。
【0043】
数学により、センサ及びそれらのダイナミックプログラミングのための重みの任意の順序付けが可能なので、生物学的神経アーキテクチャは、生誕順で明瞭に決定されている。「前」及び「次」のという用語よりもむしろ「基部」及び「末梢部」のという用語が、それぞれ、図8で使用されており、その各々は、最も古い及び最も新しい樹状突起を指示する。後者の用語は、センサと多極ニューロンへの接続の生誕順序を表すが、前者の用語は、より明瞭でより構造的であり得る。基部の樹状突起は、細胞体(合計ノード820)により近い。それらは、最初に接続する最も早いセンサ入力によって形成される。神経−皮質系への類推によって、新たな成長が末梢の「面」で追加される。換言すれば、より新しい樹状突起より早い樹状突起の後に、末梢的に接続される。
【0044】
樹状突起構造は、時間経過に従って変化し得る。樹状突起の順序付けは、図示されるように、最も古いものから最も新しいものの順であるが、この順序付けは、性能を改良するために及びより多くの情報を追加するために再配置され得る。例えば、より強い樹状突起は、より基部であるように順序付けられることが可能である。これは、フェーズのより強い順序付けをなし、それによって、例えば、フェーズ01が10よりも弱いと考えられ得る。
【0045】
トレースウエーブ伝播
トレースの生成は、本発明に係る人工ニューロン用の多極ダイナミックスの最も単純なものであり、重み対の線形アレイが観測及びそれらのメモリを如何に表すかを示すことができる。従って、トレース生成及びトレースウエーブ伝播がここで記述される。
【0046】
多極ニューロンのダイナミックスは、1つの樹状突起から他の樹状突起へのウエーブの伝播によって仲介される。このようなウエーブ伝播は、生物学的神経系を介して知られており、それはプルキンエニューロンにおいて非常によく研究されている。図9は、ウエーブが樹状突起を介して移動してセンサ信号をトレースする方法を示している。生物学は、並行プロセッサのより大きなものであり、各センサ信号が変化するとそのトレースを更新できるが、計算モデルは、多極ニューロンの体細胞(細胞体)でウエーブをスタートする。このウエーブは、基部の樹状突起(矢印920)からそして次に末梢樹状突起(矢印930)からワンパスで移動することが好ましい。
【0047】
まず、図9を参照すると、矢印910によって示されるように、ウエーブは、樹状突起の所与のフェーズを表すために初期化される。そのフェーズの二つのビット、「ハイ(高)」及び「ロー(低)」は、ハイフィルタ及びローフィルタとしてウエーブ中に維持される。「ハイ」及び「ロー」の設定は、各樹状突起が二つの様相:1)その前の樹状突起へのその連合を計算すること、及び2)その後の樹状突起へのその連合を計算すること、を想定する限りにおいて、任意であってもよい。このような樹状突起の間の連合の存在を計算するために、特定のフェーズを仮定すると、1つの樹状突起は、そのフェーズの一方のビットとして働き、他の1つの樹状突起は、そのフェーズの他方のビットとして働く。例えば、フェーズ10に対して、1つの樹状突起は、その入力がオンか否かを決定しなければならないが、他の1つの樹状突起は、それらの二つが1つのそのような連合を
表すように、その入力がオフか否かを決定しなければならない。慣習によって、前の樹状突起は、高ビットとして働くが、次の樹状突起は低ビットとして働くと仮定される。より正確には、各樹状突起は、前の樹状突起への連合を計算すると、最初に、低ビットとして働き、次に、その自身信号をウエーブ中において次の樹状突起へ移すと、高ビット(前の樹状突起のように働く)。
【0048】
ウエーブが樹状突起を横切って移動すると、ハイ・フィルタは、他の末梢樹状突起と連携する基部樹状突起である様相から所与のフェーズ内でアクティブであると考えられる樹状突起に対するセンサ信号を表す。ロー・フィルタは、反対の様相を取る。すなわち、このロー・フィルタは、他の基部樹状突起と連携する末梢樹状突起として樹状突起の様相に対するセンサ信号を表す。また、この「ハイ」と「ロー」の割り当ては、単に慣習に過ぎない。一般に、各樹状突起は、一方の様相に対するフェーズの一方のビットとして働き、次に、他方の様相に対する他方のビットとして働く。
【0049】
ウエーブの先行信号カウンタが0に初期化される。ウエーブが樹状突起を横切るように移動すると、それらは、次の樹状突起への連合に対するそれらの信号を累算する。
【0050】
図10は、各樹状突起内の計算のフローチャートである。ウエーブが最初に樹状突起に移ると、その樹状突起は、ロー・ビットの末梢樹状突起の様相を取る。それは、ウエーブのローフィルタをセンサ信号を比較する。それらが同じである場合、次に、それはこの様相においてアクティブである。末梢部でアクティブである連合の数は、先行の信号のウエーブの累積でわかる。最初の樹状突起が前の(先行の)信号を見ないことが理解されるであろう。
【0051】
次に、樹状突起は、ウエーブが樹状突起へ移動する前に、高ビット基部樹状突起の様相を取る。ウエーブの低ビットフィルタがセンサの信号とマッチングすると、その樹状突起は、このフェーズに対するこの様相においてアクティブであり、ウエーブの先行信号カウンタにそれ自体を累算する。多極のダイナミックプログラミングの最も簡単な形態として、トレースウエーブ伝播は、1つのセンサ入力を表す1つの樹状突起が他の樹状突起への連合の全てとそれらの信号のパターンを如何に暗黙に数えることができるかを示す。
【0052】
特に、ブロック1010において、センサ信号がフェーズのウエーブの低ビットと同じか否かのテストが行われる。イエスの場合、ブロック1012で、基部トレースがウエーブ中に累算される基部樹状突起信号の数にセットされる。ノーの場合、ブロック1014において、センサ信号がフェーズのウエーブの高ビットと同じか否かのテストが行われる。イエスの場合、ブロック1016において、ウエーブ中の累算された樹状突起信号が次の樹状突起へのパスのために増分(インクリメント)される。ブロック1018において、より末梢の樹状突起があるか否かのテストが行われ、そして、イエスの場合、ブロック1022において、トレースプロセスがこのより末梢の樹状突起で開始される。もう末梢の樹状突起がない場合には、ブロック1024において、信号のウエーブ累算が0に設定(リセット)され、ブロック1026において、センサ信号がフェーズのウエーブ高ビットと同じか否かのテストが行われる。イエスの場合、ブロック1028において、末梢トレースが、ウエーブ中に累積された末梢樹状突起の数に設定される。ブロック1032において、センサ信号がフェーズのウエーブの低ビットと同じか否かのテストが行われる。イエスの場合、ブロック1034において、累算された樹状突起信号が、次の樹状突起へパスするためにウエーブにおいて増分される。
【0053】
樹状突起構造は、再帰的であることが好ましい。各樹状突起は、可能な次の樹状突起へ接続される。各樹状突起は、トレース信号を次の樹状突起へ伝播し、最も末梢の樹状突起は、このウエーブを告げてそれ自体をリセットし(先行信号を0に設定し戻し)そして制御を先行の樹状突起へ再帰的に戻す。戻り伝播は、順方向伝播と同様に働くことが好ましい。ウエーブの末梢パスは、基部トレースを計算し、且つ、ウエーブの基部トレースは、末梢トレースを計算する。
【0054】
電子設計及び並行処理の当業者は、これらのトレースが物理的ハードウエアにおいて、リアルタイム伝播で更新され得ることを認識している。例えば、あらゆる信号変化は、変化するセンサに連携する樹状突起から始まって、同時に基部へ及び末梢部へ伝播できる。このようなウエーブは、先行信号ではなくて信号中の先行変化を伝播することが好ましいが、そうでない場合は、ダイナミックスが同一である。上述された信号パス動作は、シーケンシャル処理コンピュータアーキテクチャにとってはより効率的である。全てのセンサ信号は、トレース信号が呼び出されると、仮想上クランプされて安定である。すなわち、全ての可能な並行伝播が、単一のシーケンシャルパスにおいて一度に計算される。
【0055】
図11は、それはプログラミングコードとしてではないが、図10におけるのと同じフローチャートを表す。プライム(’)符号表記を有する同様の参照番号が使用される。樹状突起オブジェクトは、その引数としてウエーブオブジェクトを取るトレース番号関数を有する。各樹状突起は、センサオブジェクトをその番号として有する。樹状突起は、そのセンサの信号をウエーブおフィルタと比較する(ブロック1010’,1014’,1026’,及び1032’)。ローフィルタの場合、一方が他方と等しいならば、樹状突起は、その末梢トレースをウエーブによって支持される先行信号へ設定する(ブロック1012’及び1034’)。ハイフィルタの場合、樹状突起は、ウエーブの先行信号を増分してセンサの信号をアカウントする(ブロック1016’及び1028')。
【0056】
各樹状突起ブジェクトは、他のより末梢のデントライトへ再帰的に接続される。各樹状突起は、もしあるならば、このような次の樹状突起のトレース番号関数を呼び出す。トレース関数は、ボイド(void)を戻す。
【0057】
記憶
本発明による人工ニューロンへの記憶又は書込みについて、ここで記述される。記憶は、好ましくは、1つより多くのウエーブ伝播を使用し、一般的には、より複雑である。また、マルチウエーブ伝播は、クライミングフィルタからの単一の信号がプルキンエニューロンにおけるアクティビティのバースを引き起こす小脳において指示され得る。図2は、クライミングフィルタ(CI)とそれが如何にプルキンエニューロンの樹状突起を囲むかを示す。トレース信号のセンサ信号の形成が与えられると、クライミングフィルタが記憶信号を提供し得る。
【0058】
生物学と同様に、本発明の多極ニューロンへの記憶信号は、ウエーブアクティビティのバースト(burst)を引き起こす。図12は、トレースの形成と非常によく似て、ニューロンがウエーブを初期化し(矢印910参照)、樹状突起フィールドを介してそれを伝播する(矢印1220,1230参照)ことを示す。しかしながら、重み構造は、トレースよりも複雑であり、幾つかのパスを使用してもよい。図示されているように、各ウエーブは、重みの各べきを通過する。最も弱い20重みコラムからスタートして、記憶信号は、トレースからより永続的な重みへの転送を引き起こす。
【0059】
図12に示される例は、単純である。トレース重みは、20で永久重みに簡単に累算される。しかしながら、観測重みのべきグラフへの分離と、樹状突起フィールドでの結果としてのべきコラムは、1つの重みべきから他の重みべきへのキャリー関数を生成し得る。例えば、2値コードにおける追加とキャリーイング(carrying)は単純である。1つのビットを他の1つのビットへ追加する時、そのビットの値は倍となり、従って、次のより高いビットコラムへのシフトが必要となる。より高いビットがオフの場合、それはオンにされる。より高いビットがオンの場合、それは倍とされ、次のより高いビットコラムへの左シフトが必要となる。この動作は、キャリービットが適切に伝播するまで、継続する。
【0060】
図12は、1つの重みコラムの結果を他の1つの重みコラムの追加へキャリーするこの必要性を表す。各重みべきに対して、戻りのウエーブが幾つかの値がキャリーされなければならないことを指示する限り、多極ニューロンはウェーブを伝播する。メモリロード及び新たな信号パターンの影響に依存して、ウエーブバーストのlog2(O)数が期待される。実際のプラクティスにおいて、キャリーが全ての道を最も高い順位のべきへ流れるまで、ウエーブがサブセットのべきのみを通ってパスするので、2,3のそのようなウエーブが期待され得る。
【0061】
記憶関数は複雑であるけれども、それは、上述のトレース形成に幾分類似するように見える。ウエーブは、一般的に、連続して各樹状突起へ移動して、(基部トレースを形成するように)基部重みを変更し、そのウエーブを良好に変更して、ダイナミックプログラミングを介してそのアクティビティを他のより末梢の樹状突起へ暗黙裡に伝達する。ウエーブは、基部重みを調節し、次に、末梢重みを調節するために逆転する。しかしながら、ダイナミックプログラミングの性質は、ここで記述されるように、一般的に、より複雑で且つエレガントである。
【0062】
最初に、記憶が一般的に記述される。次に、1つの重みべきから他の1つの重みべきへのキャリーがより詳細に記述される。図13は、全体の記憶動作と、次に導入されるダブルマッチ/フィルタへのその呼び出しを示している。
【0063】
特に、ウエーブが最初に樹状突起へ入ると、その樹状突起は、末梢樹状突起の様相を呈する。その基部重みとトレース値の両方が与えられると、樹状突起は、そのトレースによって引き起こされる追加が現在の重みへ追加されるか又は次のべきへキャリーされるかについて決定しなければならない。その決定の論理は、2値コーディングにおける場合と非常に似ている。すなわち、連想が存在しない場合、その重みはそれが存在するように設定される。連想が存在すると、古い且つ新しい連想が同じもの二つを調べ、且つより高いべきへ向けて左シフトされるべきである。下記のように、ダブルマッチ/フィルタは、次のべきへキャリーされるべき、現在既知の連想のこのような「ダブル化」を検出する。
【0064】
ここで、図13を参照すると、ダブルマッチ/フィルタ(ブロック1302)は、前へキャリーされるべき基部ダブルの数を抽出し、ウエーブを変更し、1がある時に(ブロック1304)、樹状突起は、このウエーブを次の樹状突起へ送る(ブロック1306)。ウエーブは、戻り(ブロック1308)、ダブルマッチ/フィルタが再び呼び出され(ブロック1312)、この時に、末梢ダブルの数を抽出する(ブロック1314)。
【0065】
ダブルの数が、次のべきへ前方へキャリーするように一旦決定されると(ブロック1316)、現在のべきの重みが決定され得る(ブロック1318)。基部及び末梢重みの両方が前方へキャリーされるべき連合(ダブル)の数によって減分される。換言すれば、重みが既に連合を保持し且つセンサ信号がそれを再び追加しているならば、連合は現在のべきから除去されて次にダブル化される。次に、各重みは新たなトレース値をアカウントするために増分され、古い連合とマッチングした値をマイナスし、それてキャリーされるべきダブルに帰される。
【0066】
最後に、最も低い重みべきに対してなされたように、ダブルは、それらを次の重みべきのためにトレースとして割り当て追加することによってキャリーされる。実際に、ダブルがあり、且つそれらが次のウエーブに対するトレース値として設定される時、ウエーブのキャリートリガーが真に設定される。多極ニューロンは、ウエーブのバーストを送り、各ウエーブは、前方へキャリーされる連合がもうなくなるまで、より高い重みべきへチューンされる。
【0067】
タイムスケーリングファクタは、それが空間の複雑性に対するのと同じ線形O(N)関数である。ニューロンが1つのウエーブを生成し、このウエーブは、その樹状突起フィールドの各フェーズ毎に4回チューンされる。各フェーズ内で、log2(O)個のバースト(最大可能バースト)が重み変化を完了する。
【0068】
図14は、重み変更動作のためのプログラミングコードの例を示す。図13に対するものと同様の参照番号がプライム(’)表記を持って使用される。樹状突起ブジェクトは、トレース関数と非常に類似しており、ウエーブを引数とする記憶番号関数を有する。次の樹状突起を呼び出して記憶することは、再帰的であり、ボイドを戻す。或いは、記憶は、ダブルマッチ/フィルタプロセスを実行する別個の関数を介するmatchedProximalDoubles(マッチング基部ダブル)(ブロック1302’)とmatchedDistalDoubles(マッチング末梢ダブル)(ブロック1312’)の計算を含む。各樹状突起は、重みの2重にインデックス付けされたアレイを有する。一方のインデックスは、DISTAL(末梢)又はPROXIMAL(基部)方向を指し、他方
のインデックスは、重みべきを指し、それは、そのべきとしてウエーブの通過によって決定される。重みは、二つの方法で調節される。第1は、あらゆるマッチングダブルが減算され(それらがキャリーされるので)ると共に、トレースは、後に追加される(マッチングダブルをマイナスし、キャリーされることが必要なものを表す)。ブロック1314’を参照されたい。
【0069】
トレースは、マッチングダブルの数へ再割当される。これは、次にウエーブべきへキャリーされるべき値を表す。ウエーブの引き続くパスで同じ記憶関数を使用するため(ブロック1306’)、これらのキャリー値は、あたかもそれらが次の重みべきを表すように(実際にその通りである)、トレースに配される。
【0070】
リターンする前に、樹状突起は、実際に、そのトレースにキャリーされるものがあるのか否かを決定する(ブロック1316’)。もしそうであるならば、樹状突起は、ウエーブのcarryTrigger(キャリートリガー)をトリップし(ブロック1318’)、それによって樹状突起は、より高いウエーブべきでパスバックする。
【0071】
この線形スケーリングの最も複雑な部分は、ダブルを見つけるための動作である。実際のべきグラフは、グラフのエッジを明瞭に表し、それによって、特定の連合が存在するか否かが決定され得る。二つの入力の間の特定のべきの連合は、1つの及びそれぞれの入力頂点の間のただ1つのエッジとして表される。樹状突起内の線形重みスキームは、非常に特殊であってもよく、連合の幾何学的数を表すが、それは、1つの樹状突起/センサが他の1つのそれとの連携を有することを見ることは非常に困難である。
【0072】
しかしながら、ウエーブ伝播のダイナミックプログラミングは、これらの連携をアカウントし得る。図6に示されたように、2の抹消重みは、マッチングのために2個の基部重みに遭遇しなければならない。図6における最も高いべきを考察すると、Aでの2の重みは最初にBで1つの1に(AとBは連合される)且つCでの他の1(AとCは連合される)に遭遇する。また、BとCは、マッチング対の基部重みと末梢重みを持っていることができるが、それらは、この例では、そのような連合を持たない。
【0073】
図15は、これらの制約を演算するための適切な値と動作シーケンスを確立する。図15において、ニューロンは、明瞭のために概略的に表される。重みとトレースが同じフォーマットであることが好ましく、これらが与えられると、ウエーブは伝播でき且つそれが樹状突起を横断するようにパスすると、重みとトレースをアカウントすることができる。実際に、ウエーブは、priorWeights(先行重み)とpriorTraces(先行トレース)のためのアキュムレータを備える。更に、ダブルの数は、一般的には、トレースと突合せのためにより重要な関係である。ウエーブは、priorDoubles(先行ダブル)のためのアキュムレータを有する。丁度1つの連合を考えると、ダブルは、重みとトレースの同時発生である。換言すると、連合が既に存在しており、トレースの追加は、それを強化又はダブル化する。樹状突起重みは、連合の数をアカウン
トするので、そのダブルは、重みとトレースのカウンタの最小値である。
【0074】
より具体的には、樹状突起は、一般的には、可能なダブルの数のみを計算できる。樹状突起は、重みのある数とトレースのある数を有することができるが、一般的にはそれらが同じ連合を表すという局所的保障はない。例えば、入力Aは、Bとの古い連合とCを有する新たなトレースを有する。しかし、Aは、これを決定するためにB又はCとの明示の接続を有さない。基部樹状突起は、突合されるべき他のダブルがあるか否かを決定しようとする他の樹状突起の重みを介して末梢部を「見ている」ことを仮定する。そのような様相において、非常に多くのノイズと重みの混乱がある。幸いにも、多くの複雑な制約があり、ダイナミックプログラミングの他の形態がそのようなダブルとマッチングされ且つフィルタ処理され得る。
【0075】
図16は、幾つかの例を提供している。ダブルマッチ/フィルタの仕様は、非常に複雑であり、多数の入力で理解するのが困難である。このような複雑性は、一般に特に多くの入力を有する重みの全ての可能な構成を補償できるが、ここで示される例は、より基本的であり且つ説明的である。
【0076】
第1の例(図16の最初の行)は、幾つかの連合が新たな観測によってダブルにされると共に他の連合が新たな単一の連合として付加するために残される方法を示す。第2の例(図16の第2の行)は、重みの可能なダブル化が1つの樹状突起内に現れる方法を示すが、以下の処理を行うことによって、新たな連合の何れもが先行のメモリの連合と実際にマッチングしない。
【0077】
例えば、入力Aに対する初期重みとトレースは、二つの例の両方で同一である。入力Aは、その下に2個の連合の重みを有し、且つ1個の連合の新たなトレースが既に記憶されている連合とマッチングすることが想定される。もしそうであるならば、連合のダブル化は、高いべきへキャリーされるべきである。しかしながら、第1の例のみが既存の連合の真のダブル化を有する。Aは、両方の例においてAによるダブルが生じうることを示しているものの、第2の例では、Cのトレース値によって、その上のAとBの両方に対するトレースの勘案がどのように強制されているかが示される。Aにおけるトレース値は、Cによって勘案されるが、対応する重みはない。CがAの重みとトレースとの間のダブルにマッチングできる第1の例とは異なり、Aにおいて可能なダブルはスプリットされ、且つ実際にも、第2の例ではダブルではない。
【0078】
図17A乃至17Cは、要素,+,−,最小及び最大の関数を使用して、このような論理に対するデータフロープロセスの動作を概説する。上述のように、そのウエーブがpriorWeights,priorDoubles,及びpriorTracesの数を累算したと仮定する。末梢樹状突起がこのような記憶ウエーブを受け取るために「見る」ことの様相から、この樹状突起は、その基部重みとトレース(ブロック1702,1704)の最小として可能なダブルを演算できる(ブロック1706)。これは、これらの候補ダブルをマイナスした元の重み及びトレースの数として多くの可能な重み(ブロック1708)及びトレース(ブロック1712)を残す。
【0079】
これらの可能なダブルが真のダブルであり、連合の真のダブル化として互いに、マッチングされ得るならば、末梢樹状突起の可能な重みと残留トレースは、ウエーブ中の重みとトレースをマッチングすることによってアカウントされ得る。これは、厳しい制約であり、末梢ウエーブをアカウントする時、樹状突起の全ての基部カウントがウエーブの累算をマッチングするためにアカウントされる。マッチングされた重みとトレース(ブロック1722,1724)は、樹状突起とウエーブの重みとトレース(ブロック1714,1716)の最小値としてそれぞれ計算される。
【0080】
樹状突起の可能な重みとトレースがウエーブの累算へのマッチングによってアカウントされることができない場合には、そのウエーブ中の可能なダブルが余りに強欲であったかもしれない。これは、残りの重みとトレース、すなわち、それぞれ、ブロック1726及び1728でマッチングされなかった可能な値を見つけることによって計算される。より大きな残りは、アカウントをバランスさせるために、別個の重みとトレースにスプリットされなければならないウエーブのダブルの数である。この強制されたスプリット(ブロック1732)は、ダブルのウエーブの累算から除去され(ブロック1736)、個々の重みとトレースへ付与される(ブロック1714,1716)。
【0081】
次に、図17Bを参照すると、そのウエーブが移動する前に完全にアカウントされるべきである樹状突起の可能なダブル(ブロック1706)が真のダブル(ブロック1706)である可能性があるが、それは、そのウエーブがマッチングのために、可能なダブル(ブロック1706)をキャリーしている場合のみである。これらの可能なダブルの最小とウエーブのダブルは、実際に、マッチングされたダブル(ブロック1746)として検出され互いにマッチングされた真のダブルである。
【0082】
真のマッチングされたダブル(true matchedDoubles)の数を知ると、真の重みとトレースの数が計算され得る。マッチングされたダブル(matchedDoubles)が記憶された重みから減算されて真の前のトレース(truePriorTrace)を決定する(ブロック1748)。マッチングされたダブルが記憶されたトレースから減算されて真の前のトレース(truePriorTraces)を決定する(ブロック1756)。
【0083】
最後に、図17Cを参照すると、樹状突起は、ウエーブを次の樹状突起へ送る前に末梢部を見る事の様相を取る。それは、可能な次のダブル(ブロック1766)をその末梢重み(ブロック1762)とトレース(ブロック1764)の最小として計算する。また、これら可能なダブルであり、この処理は、次の樹状突起でこれらのダブルを分解する。また、ウエーブの重みとトレースは、繰返された動作に対して全ての連合のバランスされたアカウントを維持するために、樹状突起の末梢の様相から更新される。
【0084】
図18は、図17A乃至17Cのダブルマッチフィルタのためのプログラミングコードの例を示す。各コードブロック1802,1804,及び1806は、図17A乃至17Cにそれぞれ示されるデータフロー論理に対応して、シーケン
シャルに実行されることが好ましい。第1のブロック1802は、樹状突起中の可能なダブルを計算し、強制スプリットの計算によって偽のダブルの除去を含む。第2のブロック1804は、真のマッチングしたダブルを計算し、ウエーブから先行の累算をアカウント(除去)する。次に、第3のブロック1806は、次のカウントを重み,ダブル,及びトレースのウエーブの累算へ追加する。これらのコードブロックは、「classDendrite」の記憶及びイメージング方法によって呼び出され得る1つ又はそれより多くのプライベート方法(サブルーチン)として実行されることが好ましい。
【0085】
読出し
人工ニューロンの読出しが記述される。マッチングされたダブルの計算は、書込み及び読出し動作の両方において使用される。記憶に対して記述されたように、マッチングされたダブルは、現在のセンサパターンにおけるどの連合が既に知られているかを指示し、それによって、それらは、次の重みべきへキャリーされ得る。「想像」とも呼ばれる、読出し動作のために、マッチングされたダブルは、新たな観測中の連合(トレース)をマッチングするメモリ中の連合(重み)の数を表す。ダブルマッチ/フィルタ処理は、この連想メモリマッチング関数の核心であり、類似度/距離の尺度である。
【0086】
読出し動作は、過去の連合の呼び出しや想像が一セットの新たな観測に与えられると、作られる。換言すると、観測の新たなパターンがセンサ入力ニューロンへクランプされて、多極ニューロンへフォーカスされる。次に、この多極ニューロンが可能な出力(フィードフォワード予報)を想像し且つ他の入力への可能な連合(フィードバックパターンの完成)を想像する。これら二つの読込み動作はしばしばヘテロ連合(出力への入力)及びオート連合(他の入力への入力)と呼ばれた。学習理論の心理学において、これらの要素は、刺激−応答連合及び刺激−刺激連合とそれぞれ呼ばれる。
【0087】
ダブルマッチ/フィルタ処理は、このようなメモリの呼出のために使用されることが好ましい。簡単に言えば、呼出は、現在の観測のトレース連合と過去を表す永久重み連合との間のマッチングのための比較である。ヘテロ連合とオート連合画像の強度は、過去の経験が現在の経験とマッチングする度合いへ直接的に相関されることができる。
【0088】
図19は、イメージングウエーブ伝播が記憶機能のように「バースト」であることを示すが、もはやキャリーが必要とされないときに中止するのではなく、イメージング関数がウエーブを全ての重みべきを介して送信する。各べきは、全てが加算的である、可能な連合の幾つかを表す。各べき1910a及び1910bに対しするウエーブの各パスにおいて、樹状突起は、現在の観測に対するマッチング1920の数を計算し、これらのマッチングを二つの方向、すなわち、関連と呼ばれる出力合計へ向ける前方及び各それぞれのセンサへ向かう後方へ累算する。累算されたマッチングが合計装置1930で合計される。
【0089】
各多極ニューロンがある出力アクションや他のバベルカテゴリを表すとすると、関連は、現在の観測がアクション又はカテゴリに関連する度合いである。また、これは、新たな観測がこの特定の出力と連合するセットの観測に如何によく属するかというメンバシップ関数として理解され得る。
【0090】
図20は、本発明による読出しのための動作を示すフローチャートである。読出しは、書込みと類似しており(図13参照)、且つ、ダブルマッチ/フィルタを使用し得る。しかしながら、重みを変化するのではなく、想像関数は、ブロック2006でマッチングされたダブルを累算する。合計関連は、樹状突起の再帰的構造を介して累算され、各樹状突起はその基部マッチングと末梢マッチングを追加する。マッチングは、関連と呼ばれる値へ累算される(ブロック2014)。新たな観測は、パターンがメモリに格納された全ての過去の観測のパターンとマッチングする度合いに関連する。
【0091】
この累算の非線形関数は、図1で導入される線形及び非線形連合モデルの両方から導出され得る。任意の観測マトリックスに対する関連性は、線形項と非線形項の両方から構成されると仮定される。
関連=WAA+WBB−WABAB
各重みは、生の観測カウントから以下のように計算され得る。
A=W11+W01−W10−W00
B=W11+W10−W01−W00
AB=W11+W00−W01−W10
それらは、各フェーズに関して以下の部分公式に再配置され得る。
関連00=W00(−A*B−A−B)
関連01=W01(A−B+A*B)
関連10=W10(B−A+A*B)
関連11=W11(A+B−A*B)
フェーズが既にAとBの信号状態のフィルタである場合、センサ項は、任意のフェーズに対する定数であり、実際に、各フェーズに対して1の定数である。一例では、関連00=W00である。換言すれば、各フェーズの部分的関連は、観測重みの累算である。このように、本発明は、物理的表現が線形であり且つ呼出関数が観測カウントの累算であっても、線形と非線形連合をアカウントできる。ダブルマッチ/フィルタは、現在の観測を表すこれらの観測カウントを選択する。
【0092】
図21は、図19のイメージングの実施の形態のためのプログラミングコードを示す。プライム(’)表記が使用される。「Dendrite(樹状突起)」オブジェクトは、ウエーブを引数とするメンバ関数イマジンを有する。他の関数と同様に、樹状突起の呼出は、再帰的であるが、イマジン処理がREAD動作であり、樹状突起を介して累算されたtotalRelevance(総合関連)を戻す(ブロック2014’)。記憶関数と同様に、イマジン動作は、ダブルマッチ/フィルタを呼び出して基部と末梢マッチダブルの数を計算する。しかしながら、記憶(WRITE動作;書き込み動作)におけるような重みを変更するのではなく、イマジンは、関連を累算する。末梢と基部マッチダブルの両方にとって、関連は、重みべきをアカウントする。関連性におけるこの指数的増加は、マッチダブルの左シフトによって計算される。各樹状突起の計算の局所関連は、他の樹状突起によって戻される全関連へ追加される(ブロック2006’)。これで読出し動作の記述を終了する。
【0093】
プルキンエニューロンは、多極ニューロンの唯1つの形態であると理解される。大脳皮質のピラミッドニューロンは周知であるが、神経系は、一般に非常に広範な樹状突起ブランチパターンを表示し、それらの多くは、複雑であり、多極である。同様に、本発明は、観測カウンティングの多くの他の形態へ適用され得る。2×2観測マトリックスは、観測と対話を記録することの基本的要素として導入された。しかしながら、当業者は、より高い次元のマトリックス,極座標,カルノー図,ブール関数,及び/又は階層構造もまた、上述されたように、次に分解及び圧縮され得る観測カウントを収集するために使用され得ることを認識している。
【0094】
実際に、単極ニューロンは、そのただ1つの樹状突起内で本発明を使用できる。例えば、AとBとの間の比率は、単一の1×1細胞となり、入力の各対毎の組合せに対して1つの値である。これは、単一の重み付けグラフに等価であり、それは、1セットの重み付けのないべきグラフに分解されることができ、上述のように、ダイナミックにプログラミングされる。単一のデンドリックの再帰は、多分、単一極のニューロンにおけるただ1つのものであり、そのように比率数を表すことができる。
【0095】
概説すれば、観測の増分的学習並びに呼出は、項の各可能な対ごとの組合せに対する主ブランチよりなる多極ニューロン内で記述された。他の多極構造体は、表現され得るが、これは2×2観測マトリックスが、4つのフェーズの例を提供した。各ブランチは、再帰的樹状突起からなることが好ましく、各樹状突起は、1つの2極入力ニューロンに接続され、且つ一セットの重みとトレースを含む。各樹状突起は、重み対を格納し、1つの重みは、それの基部の他の樹状突起への連合の数を格納し、且つ1つの重みは、それの末梢の他の樹状突起への連合の数を格納する。樹状突起は、複数の重み対を格納することが好ましく、可能な重みの各底が2のべきに対して一対である。このように、樹状突起当り重み対の全数は、全ての格納された観測数のlog2である。また、各樹状突起は、ただ1つの対の遷移トレースを含むことが好ましく、それらのトレースは、累算重みの同じ基部/末梢の形態を使用して、現在の観測を表す。
【0096】
ダイナミックプログラミングを使用する幾つかの動作は、アカウントが全ての入力の間の非線形連合を近似するけれども、線形空間と時間内において、メモリからの読出し及びそれへの書込みを可能とする。全ての動作は、ウエーブが1つの樹状突起から他の1つの樹状突起へ移動すると、そのウエーブが樹状突起のフェーズ配向のフィルタ処理を行い且つ信号の累算をキャリーするウエーブ伝播を使用できる。ダブルマッチ/フィルタは、樹状突起の重みとトレースの間の強固な制約を処理でき、その結果、現在の観測によってマッチングされる過去の連合数の暗黙の計算となる。このように、重みは、記憶動作中に、追加され且つ1つの重みべきから他の1つの重みべきへキャリーされる。また、新たな観測の適合性と、このような適合性の決定における各入力の感度を決定するために、過去のメモリと新たな入力との間のパターンマッチを測定する。
【0097】
本発明のハイパーマシンスケーリングファクタは、連想メモリの汎用ユーティリティを完全に広くできる。ここで記述された実施では、非線形から線形までの圧縮において幾らかロスがあるが、増分的ローディング,パラメータフリー,非線形連合装置は、インターネットの最大スケール及び無線デバイスの最小スケールの両方で、マシン学習のための新たな可能性を拓くために、線形サイズと速度で物理的に実施され得る。
【0098】
図面及び明細書において、本発明の典型的な好適な実施の形態が開示され、且つ指定の用語が使用されるが、それらは、総括的且つ記述的意味でのみ使用されており、制限のためではなく、本発明の範囲は、以下の特許請求の範囲で記述される。

【特許請求の範囲】
【請求項1】
複数の入力と、
複数の樹状突起と、
を備え、前記樹状突起の各々が前記複数の入力の各1つと連合され、各樹状突起が重みのべき級数を含み、べき級数の各重みが前記連合されたべきに対する連合されたカウントを含むことを特徴とする人工ニューロン。
【請求項2】
前記重みのべき級数は、重みの底が2のべき級数であり、この底が2のべき級数の各重みは、前記連合されたカウントのビット位置を表す連合されたカウントを含むことを特徴とする請求項1に記載の人工ニューロン。
【請求項3】
前記カウントは、統計的カウントであることを特徴とする請求項1に記載の人工ニューロン。
【請求項4】
前記樹状突起は、連続的に順序付けられ、且つ、前記重みのべき級数は、一対の重みの第1及び第2のべき級数よりなり、第1のべき級数の各重みは、前の樹状突起の連合の関数である第1のカウントを含み、第2のべき級数の各重みは、次の樹状突起の連合の関数である第2のカウントを含むことを特徴とする請求項1に記載の人工ニューロン。
【請求項5】
前記重みのべき級数は、更に、第1の観測フェーズに対応する重みの第1のべき級数であり、且つ、各樹状突起は、第2の観測フェーズに対応する重みの第2のべき級数を含み、第2のべき級数の各重みは、前記第2の観測フェーズ中の連合されたべきに対するカウントを含むことを特徴とする請求項1に記載の人工ニューロン。
【請求項6】
各樹状突起は、前記連合された入力での入力信号に応答するトレースを備え、前記トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントと、次の樹状突起での入力の連合の関数である第2のトレースカウントを含み、それぞれの第1及び第2のべき級数は、それぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項4に記載の人工ニューロン。
【請求項7】
前の樹状突起の連合の関数は、前の樹状突起の連合の合計であり、次の樹状突起の連合の関数は、次の樹状突起の連合の合計であることを特徴とする請求項4に記載の人工ニューロン。
【請求項8】
前記重みの一対の第1及び第2のべき級数は、前記複数の入力の第1の観測フェーズに対応する重みの第1の対の第1及び第2のべき級数であり、且つ各樹状突起は、更に、前記複数の入力の第2の観測フェーズに対応する第2の対の重みの第1及び第2のべき級数よりなることを特徴とする請求項4に記載の人工ニューロン。
【請求項9】
各トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントのべき級数と次の樹状突起での入力信号の連合の関数である第2のトレースカウントのべき級数とを有することを特徴とする請求項6に記載の人工ニューロン。
【請求項10】
前記入力信号を前記第1及び第2のトレースカウントへ変換するコンバータを更に備えることを特徴とする請求項6に記載の人工ニューロン。
【請求項11】
それぞれの第1及び第2のトレースカウントをそれぞれの重みの第1及び第2のべき級数へ伝播するトレースウエーブ伝播装置を更に備えることを特徴とする請求項6に記載の人工ニューロン。
【請求項12】
前の樹状突起での入力信号の連合の関数は、前の樹状突起での入力信号の連合の合計であり、次の樹状突起での入力信号の連合の関数は、次の樹状突起での入力信号の連合の合計であることを特徴とする請求項6に記載の人工ニューロン。
【請求項13】
前記第1及び第2のトレースカウントと前記重みの第1及び第2のべき級数との間のマッチングを累算するアキュムレータを更に備えることを特徴とする請求項6に記載の人工ニューロン。
【請求項14】
各樹状突起は、更に、前記連合された入力での入力信号に応答するトレースを備え、前記トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントと、次の樹状突起での入力の連合の関数である第2のトレースカウントを含み、前記第1及び第2の対におけるそれぞれの第1及び第2のべき級数は、それぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項8に記載の人工ニューロン。
【請求項15】
前記トレースウエーブ伝播装置は、順方向と逆方向へ前記連続的に順序付けられた樹状突起に沿って前記トレースを伝播することを特徴とする請求項9に記載の人工ニューロン。
【請求項16】
前記トレースウエーブ伝播装置は、更に、前記複数の樹状突起における前記重みのべき級数に沿って前記トレースのキャリー結果を伝播して、前記入力信号の記憶を行うことを特徴とする請求項9に記載の人工ニューロン。
【請求項17】
前記アキュムレータは、キャリー結果が生成されるか否かとは無関係に、前記重みの第1及び第2のトレースカウントにおけるカウントの全てに対して前記第1のトレースカウントと第2のトレースカウントとの間のマッチングを累算することを特徴とする請求項13に記載の人工ニューロン。
【請求項18】
重みの前記第1及び第2のべき級数に対する第1及び第2のトレースカウントのマッチングの累算の結果を合計するために前記アキュムレータに応答する合計装置を更に備えることを特徴とする請求項13に記載の人工ニューロン。
【請求項19】
各トレースは、前の樹状突起での前記入力信号の連合の関数である第1のトレースカウントのべき級数と、次の樹状突起での前記入力信号の連合の関数である第2のトレースカウントのべき級数とを備えることを特徴とする請求項14に記載の人工ニューロン。
【請求項20】
前記トレースウエーブ伝播装置は、次のより高位のべき重みへの伝播のために、樹状突起での重みに対するキャリー結果を識別するダブルマッチ/フィルタを更に備えることを特徴とする請求項16に記載の人工ニューロン。
【請求項21】
前記入力信号から前記第1及び第2のトレースカウントを発生するための手段を更に備えることを特徴とする請求項19に記載の人工ニューロン。
【請求項22】
前記それぞれの第1及び第2のトレースカウントを前記それぞれの第1及び第2の対の重みのべき級数へ伝播するための手段を更に備えることを特徴とする請求項19に記載の人工ニューロン。
【請求項23】
前記ダブルマッチ/フィルタは、重みとトレースの発生に基づいて、樹状突起における重みに対するキャリー結果を識別することを特徴とする請求項20に記載の人工ニューロン。
【請求項24】
連続的に順序付けられる複数の入力と、
複数の対の第1及び第2の重みと、
を備え、それぞれの対は、前記複数の入力の内のそれぞれの入力に連合され、各第1の重みは、前記複数の連続的に順序付けられた入力の内の前の入力の連合の関数であり、且つ、各第2の重みは、前記複数の連続的に順序付けられた入力における次の入力の連合の関数であることを特徴とする人工ニューロン。
【請求項25】
前の入力と次の入力の連合の関数は、前の入力と次の入力の連合の統計的関数であることを特徴とする請求項24に記載の人工ニューロン。
【請求項26】
前の入力と次の入力の連合の関数は、前の入力と次の入力の連合の合計であることを特徴とする請求項24に記載の人工ニューロン。
【請求項27】
前記連合された入力での入力信号に応答するトレースを更に備え、前記トレースは、前記複数の連続的に順序付けられた入力の前の入力で入力信号の連合の関数である第1のトレースカウントと、前記複数の連続的に順序付けられた入力において次の入力で入力信号の連合の関数である第2のトレースカウントとを含み、それぞれの第1及び第2の重みがそれぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項24に記載の人工ニューロン。
【請求項28】
人工ニューロンであって、
連続的に順序付けられる複数の入力と、
複数の対の第1及び第2の重みと、
を備え、それぞれの対は、前記複数の入力の内のそれぞれの入力に連合され、各第1の重みは、前記複数の連続的に順序付けられた入力の第1の統計的関数であり、且つ、各第2の重みは、前記複数の連続的に順序付けられた入力の第2の統計的関数であることを特徴とする人工ニューロン。
【請求項29】
前記連合された入力での入力信号に応答するトレースを更に備え、前記トレースは、前記入力信号の前記第1の統計的関数である第1のトレースカウントと、前記入力信号の前記第2の統計的関数である第2のトレースカウントとを含み、それぞれの第1及び第2の重みがそれぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項28に記載の人工ニューロン。
【請求項30】
複数の入力と、
複数の重みのべき級数と、
を備え、それぞれの重みのべき級数は、前記複数の入力のそれぞれの入力に応答し、べき級数の各重みは、前記連合された入力の連合されたべきに対する連合されたカウントを含むことを特徴とする人工ニューロン。
【請求項31】
前記複数の重みのべき級数は、複数の、2を底とする重みのべき級数であり、2を底とするべき級数における各重みは、前記連合されたカウントのビット位置を表す連合されたカウントを含むことを特徴とする請求項30に記載の人工ニューロン。
【請求項32】
前記カウントは、統計的カウントであることを特徴とする請求項30に記載の人工ニューロン。
【請求項33】
前記入力は、連続的に順序付けられ、且つ、前記複数の重みのべき級数は、前記複数の入力の内のそれぞれに対して応答する重みの第1及び第2のべき級数を備え、前記第1のべき級数の各重みは、前記連続的に順序付けられた入力における連合された入力の連合されたべきに対する前のべきの合計を表す連結された第1のカウントを含むと共に、前記第2のべき級数の各重みは、前記連合された入力の連合されたべきに対して前記連続的に順序付けられた入力における次の入力の合計を表す連合された第2のカウントを含むことを特徴とする請求項30に記載の人工ニューロン。
【請求項34】
前記複数の重みのべき級数は、第1の観測フェーズに対応する複数の第1の重みのべき級数であり、前記人工ニューロンは、更に第2の観測フェーズに対応する複数の第2の重みのべき級数を含み、それぞれの重みの第2のべき級数が前記複数の入力のそれぞれに応答し、べき級数の各重みは、前記第2の観測フェーズに対し前記連合された入力の連合されたべきに対する連合されたカウントを含むことを特徴とする請求項30に記載の人工ニューロン。
【請求項35】
複数のトレースを更に備え、前記トレースのそれぞれは、前記複数の入力のそれぞれに対して応答し、各トレースは、前の入力を表す第1のとレースカウントと、次の入力の合計を表す第2のトレースカウントとを含み、それぞれの第1及び第2のべき級数は、前記それぞれの第1及び第2のトレースカウントに対して応答することを特徴とする請求項33に記載の人工ニューロン。
【請求項36】
複数の樹状突起を含む人工ニューロンに複数の入力を記憶するための方法であり、前記樹状突起のそれぞれは、前記複数の入力のそれぞれと連合されるようにした方法であって、
各樹状突起に対して重みのべき級数を提供するステップであって、べき級数中の各重みが連合されたべきの対する連合されたカウントを含むステップと、
入力信号を前記入力信号の連合の関数であるトレースカウントのべき級数に変換するステップと、
それぞれの第1及び第2のトレースカウントを前記それぞれの重みのべき級数へ伝播するステップと、
を備えることを特徴とする方法。
【請求項37】
前記樹状突起は、連続的に順序付けられ、且つ、前記重みのべき級数は、一対の第1及び第2の重みのべき級数よりなり、第1のべき級数の各重みは、前の樹状突起の連合の関数である第1のカウントを含み、第2のべき級数の各重みは、次の樹状突起の連合の関数である第2のカウントを含み、
各トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントのべき級数と、次の樹状突起での入力信号の連合の関数である第2のトレースカウントのべき級数とを含む、
ことを特徴とする請求項36に記載の方法。
【請求項38】
前記伝播するステップは、前記複数の樹状突起における重みのべき級数に沿って前記トレースのキャリー結果を伝播するステップを更に備えることを特徴とする請求項36に記載の方法。
【請求項39】
前記第1及び第2のトレースカウントと前記第1及び第2の重みのべき級数との間のマッチングを累算して前記人工ニューロンを読み出すステップを更に備えることを特徴とする請求項36に記載の方法。
【請求項40】
前記伝播するステップは、それぞれの第1及び第2のトレースカウントを順方向及び逆方向へそれぞれの重みのべき級数へ伝播するステップを含むことを特徴とする請求項37に記載の方法。
【請求項41】
キャリー結果を伝播するステップは、次のより高位のべきへの重みの伝播のために、前記トレースをダブルマッチフィルタ処理を行って樹状突起の重みに対するキャリー結果を識別するステップを含むことを特徴とする請求項38に記載の方法。
【請求項42】
前記累算するステップは、キャリー結果が生成されるか否かに関係なく、前記第1及び第2のトレースカウントと前記重みの第1及び第2のべき級数におけるカウントの全てとの間のマッチングを累算するステップを含むことを特徴とする請求項39に記載の方法。
【請求項43】
前記累算するステップの結果を合計するステップを更に含むことを特徴とする請求項39に記載の方法。
【請求項44】
前記ダブルマッチフィルタ処理するステップは、重みとトレースの同時発生に基づいて樹状突起における重みに対するキャリー結果を識別するステップを含むことを特徴とする請求項41に記載の方法。
【請求項45】
複数の樹状突起を含む人工ニューロンを読み出す方法であって、
各樹状突起毎に重みのべき級数を提供するステップであり、べき級数の各重みが連合されたべきに対する連合されたカウントを含むステップと、
入力信号を前記入力信号の連合の関数であるトレースカウントのべき級数へ変換するステップと、
前記第1及び第2のトレースカウントと前記重みの第1及び第2のべき級数との間のマッチングを累算するステップと、
を備えることを特徴とする方法。
【請求項46】
前記累算するステップは、キャリー結果が生成されるか否かに関係なく、前記第1及び第2のトレースカウントと前記重みの第1及び第2のべき級数におけるカウントの全てとの間のマッチングを累算するステップを含むことを特徴とする請求項45に記載の方法。
【請求項47】
前記累算するステップの結果を合計するステップを更に含むことを特徴とする請求項45に記載の方法。
【請求項48】
前記樹状突起は、連続的に順序付けられ、且つ、前記重みのべき級数は、一対の第1及び第2の重みのべき級数よりなり、第1のべき級数の各重みは、前の樹状突起の連合の関数である第1のカウントを含み、第2のべき級数の各重みは、次の樹状突起の連合の関数である第2のカウントを含み、
各トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントのべき級数と、次の樹状突起での入力信号の連合の関数である第2のトレースカウントのべき級数とを含む、ことを特徴とする請求項45に記載の方法。
【請求項49】
人工ニューロンを提供するためのコンピュータプログラム製品であって、記憶媒体の中に埋め込まれたコンピュータ読取可能プログラムコードを有するコンピュータ読取可能記憶媒体を備えたコンピュータプログラム製品において、
前記コンピュータ読取可能プログラムコードが、
複数の入力を提供するコンピュータ読取可能プログラムコードと、
複数の樹状突起を提供するコンピュータ読取可能プログラムコードと、
を備え、前記樹状突起の各々が前記複数の入力の各1つと連合され、各樹状突起が重みのべき級数を含み、べき級数の各重みが前記連合されたべきに対する連合されたカウントと、
を含むことを特徴とするコンピュータプログラム製品。
【請求項50】
前記重みのべき級数は、重みの底が2のべき級数であり、
この底が2のべき級数の各重みは、前記連合されたカウントのビット位置を表す連合されたカウントを含むことを特徴とする請求項49に記載のコンピュータプログラム製品。
【請求項51】
前記カウントは、統計的カウントであることを特徴とする請求項49に記載のコンピュータプログラム製品。
【請求項52】
前記樹状突起は、連続的に順序付けられ、且つ、前記重みのべき級数は、一対の重みの第1及び第2のべき級数よりなり、第1のべき級数の各重みは、前の樹状突起の連合の関数である第1のカウントを含み、第2のべき級数の各重みは、次の樹状突起の連合の関数である第2のカウントを含むことを特徴とする請求項49に記載のコンピュータプログラム製品。
【請求項53】
前記重みのべき級数は、第1の観測フェーズに対応する重みの第1のべき級数であり、且つ、各樹状突起は、更に第2の観測フェーズに対応する重みの第2のべき級数を含み、第2のべき級数の各重みは、前記第2の観測フェーズ中の連合されたべきに対するカウントを含むことを特徴とする請求項49に記載のコンピュータプログラム製品。
【請求項54】
各樹状突起は、前記連合された入力での入力信号に応答するトレースを備え、前記トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントと、次の樹状突起での入力の連合の関数である第2のトレースカウントとを含み、それぞれの第1及び第2のべき級数は、それぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項52に記載のコンピュータプログラム製品。
【請求項55】
前記前の樹状突起の連合の関数は、前の樹状突起の連合の合計であり、前記次の樹状突起の連合の関数は、次の樹状突起の連合の合計であることを特徴とする請求項52に記載のコンピュータプログラム製品。
【請求項56】
前記対の重みの第1及び第2のべき級数は、前記複数の入力の第1の観測フェーズに対応する重みの第1の対の第1及び第2のべき級数であり、且つ、各樹状突起は、更に前記複数の入力の第2の観測フェーズに対応する第2の対の重みの第1及び第2のべき級数よりなることを特徴とする請求項52に記載のコンピュータプログラム製品。
【請求項57】
各トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントのべき級数と次の樹状突起での入力信号の連合の関数である第2のトレースカウントのべき級数とを有することを特徴とする請求項54に記載のコンピュータプログラム製品。
【請求項58】
前記入力信号を前記第1及び第2のトレースカウントへ変換するコンバータを提供するコンピュータ読取可能プログラムコードを更に備えることを特徴とする請求項54に記載のコンピュータプログラム製品。
【請求項59】
それぞれの第1及び第2のトレースカウントをそれぞれの重みの第1及び第2のべき級数へ伝播するトレースウエーブ伝播装置を提供するコンピュータ読取可能プログラムコードを更に備えることを特徴とする請求項54に記載のコンピュータプログラム製品。
【請求項60】
前の樹状突起での入力信号の連合の関数は、前の樹状突起での入力信号の連合の合計であり、次の樹状突起での入力信号の連合の関数は、次の樹状突起での入力信号の連合の合計であることを特徴とする請求項54に記載のコンピュータプログラム製品。
【請求項61】
前記第1及び第2のトレースカウントと前記重みの第1及び第2のべき級数との間のマッチングを累算するアキュムレータを提供するコンピュータ読取可能プログラムコードを更に備えることを特徴とする請求項54に記載のコンピュータプログラム製品。
【請求項62】
各樹状突起は、前記連合された入力での入力信号に応答するトレースを更に備え、前記トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントと、次の樹状突起での入力の連合の関数である第2のトレースカウントとを含み、前記第1及び第2の対におけるそれぞれの第1及び第2のべき級数は、それぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項56に記載のコンピュータプログラム製品。
【請求項63】
前記プログラム読取可能プログラムコードは、順方向と逆方向へ前記連続的に順序付けられた樹状突起に沿って前記トレースを伝播するトレースウエーブ伝播装置を提供することを特徴とする請求項57に記載のコンピュータプログラム製品。
【請求項64】
前記コンピュータ読取可能プログラムコードは、前記複数の樹状突起における前記重みのべき級数に沿って前記トレースのキャリー結果を更に伝播して前記入力信号の記憶を行うトレースウエーブ伝播装置を提供することを特徴とする請求項57に記載のコンピュータプログラム製品。
【請求項65】
前記コンピュータ読取可能プログラムコードは、キャリー結果が生成されるか否かとは無関係に、前記重みの第1及び第2のトレースカウントにおけるカウントの全てに対して前記第1のトレースカウントと第2のトレースカウントとの間のマッチングを累算するアキュムレータを提供することを特徴とする請求項61に記載のコンピュータプログラム製品。
【請求項66】
前記重みの第1及び第2のべき級数に対する第1及び第2のトレースカウントのマッチングの累算の結果を合計するために前記アキュムレータに応答する合計装置を提供するコンピュータ読取可能プログラムコードを更に備えることを特徴とする請求項61に記載のコンピュータプログラム製品。
【請求項67】
各トレースは、前の樹状突起での前記入力信号の連合の関数である第1のトレースカウントのべき級数と、次の樹状突起での前記入力信号の連合の関数である第2のトレースカウントのべき級数とを備えることを特徴とする請求項62に記載のコンピュータプログラム製品。
【請求項68】
前記コンピュータ読取可能プログラムコードは、次のより高位のべき重みへの伝達のために、樹状突起における重みに対するキャリー結果を識別するダブルマッチ/フィルタを提供するコンピュータ読取可能プログラムコードを更に備えるトレースウエーブ伝達装置を提供することを特徴とする請求項64に記載のコンピュータプログラム製品。
【請求項69】
前記入力信号から前記第1及び第2のトレースカウントを発生するコンピュータ読取可能プログラムコード手段を更に備えることを特徴とする請求項67に記載のコンピュータプログラム製品。
【請求項70】
前記それぞれの第1及び第2のトレースカウントを前記それぞれ第1及び第2の対の重みのべき級数へ伝播するためのコンピュータ読取可能プログラムコード手段を更に備えることを特徴とする請求項67に記載のコンピュータプログラム製品。
【請求項71】
前記ダブルマッチ/フィルタは、重みとトレースの同時発生に基づいて、樹状突起での重みに対するキャリー結果を識別することを特徴とする請求項68に記載のコンピュータプログラム製品。
【請求項72】
人工ニューロンを提供するためのコンピュータプログラム製品であって、記憶媒体の中に埋め込まれたコンピュータ読取可能プログラムコードを有するコンピュータ読取可能記憶媒体を備えたコンピュータプログラム製品において、
前記コンピュータ読取可能プログラムコードが、
連続的に順序付けられる複数の入力を提供するコンピュータ読取可能プログラムコードと、
複数の対の第1及び第2の重みを提供するコンピュータ読取可能プログラムコードと、
を備え、それぞれの対が前記複数の入力のそれぞれと連合され、各第1の重みが前記複数の連続的に順序付けられた入力の中の前の入力の連合の関数であり、各第2の重みが前記複数の連続的に順序付けられた入力の中の次の入力の連合の関数であることを特徴とするコンピュータプログラム製品。
【請求項73】
前の入力と次の入力の連合の前記関数は、前の入力と次の入力の連合の統計的関数であることを特徴とする請求項72に記載のコンピュータプログラム製品。
【請求項74】
前の入力と次の入力の連合の前記関数は、前の入力と次の入力の連合の合計であることを特徴とする請求項72に記載のコンピュータプログラム製品。
【請求項75】
前記連合された入力での入力信号に応答するトレースを提供するコンピュータ読取可能プログラムコードを更に備え、前記トレースは、前の樹状突起での入力信号の連合の関数である第1のトレースカウントと、次の樹状突起での入力の連合の関数である第2のトレースカウントとを含み、前記それぞれの第1及び第2の重みは、前記それぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項72に記載のコンピュータプログラム製品。
【請求項76】
人工ニューロンを提供するためのコンピュータプログラム製品であって、記憶媒体の中に埋め込まれたコンピュータ読取可能プログラムコードを有するコンピュータ読取可能記憶媒体を備えたコンピュータプログラム製品において、
前記コンピュータ読取可能プログラムコードが、
連続的に順序付けられる複数の入力を提供するコンピュータ読取可能プログラムコードと、
複数対の第1及び第2の重みを提供するコンピュータ読取可能プログラムコードと、
を備え、それぞれの対が前記複数の入力のそれぞれと連合され、各第1の重みが前記複数の連続的に順序付けられた入力の第1の統計的関数であり、各第2の重みが前記複数の連続的に順序付けられた入力の第2の統計的関数であることを特徴とするコンピュータプログラム製品。
【請求項77】
前記連合された入力での入力信号に応答するトレースを提供するコンピュータ読取可能プログラムコードを更に備え、前記トレースは、前記入力信号の前記第1の統計的関数である第1のトレースカウントと、前記入力信号の前記第2の統計的関数である第2のトレースカウントとを含み、前記それぞれの第1及び第2の重みは、前記それぞれの第1及び第2のトレースカウントへ応答することを特徴とする請求項76に記載のコンピュータプログラム製品。
【請求項78】
人工ニューロンを提供するためのコンピュータプログラム製品であって、記憶媒体の中に埋め込まれたコンピュータ読取可能プログラムコードを有するコンピュータ読取可能記憶媒体を備えるコンピュータプログラム製品において、
前記コンピュータ読取可能プログラムコードが、
複数の入力を提供するコンピュータ読取可能プログラムコードと、
複数の重みのべき級数を提供するコンピュータ読取可能プログラムコードと、を備え、それぞれの重みのべき級数が前記複数の入力のそれぞれに応答し、べき級数の各重みは、前記連合された入力の連合されたべきに対する連合されたカウントを含むことを特徴とするコンピュータプログラム製品。
【請求項79】
前記複数の重みのべき級数は、複数の、底が2の重みのべき級数であり、底が2のべき級数中の各重みは、前記連合されたカウントのビット位置を表す連合されたカウントを含むことを特徴とする請求項78に記載のコンピュータプログラム製品。
【請求項80】
前記カウントが統計的カウントであることを特徴とする請求項78に記載のコンピュータプログラム製品。
【請求項81】
前記入力は、連続的に順序付けられ、且つ、前記複数の重みのべき級数は、前記複数の入力の内のそれぞれに対して応答する重みの第1及び第2のべき級数を備え、前記第1のべき級数の各重みは、前記連続的に順序付けられた入力における連合された入力の連合されたべきに対する前のべきの合計を表す連結された第1のカウントを含むと共に、前記第2のべき級数の各重みは、前記連合された入力の連合されたべきに対して前記連続的に順序付けられた入力における次の入力の合計を表す連合された第2のカウントを含むことを特徴とする請求項78に記載のコンピュータプログラム製品。
【請求項82】
前記複数の重みのべき級数は、第1の観測フェーズに対応する複数の第1の重みのべき級数であり、前記人工ニューロンは、更に第2の観測フェーズに対応する複数の第2の重みのべき級数を含み、それぞれの重みの第2のべき級数が前記複数の入力のそれぞれに応答し、べき級数の各重みは、前記第2の観測フェーズに対し前記連合された入力の連合されたべきに対する連合されたカウントを含むことを特徴とする請求項78に記載のコンピュータプログラム製品。
【請求項83】
複数のトレースを更に備え、前記トレースのそれぞれは、
前記複数の入力のそれぞれに対して応答し、各トレースは、前の入力を表す第1のとレースカウントと、次の入力の合計を表す第2のトレースカウントとを含み、それぞれの第1及び第2のべき級数は、前記それぞれの第1及び第2のトレースカウントに対して応答することを特徴とする請求項81に記載のコンピュータプログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図17C】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2010−15578(P2010−15578A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−183422(P2009−183422)
【出願日】平成21年8月6日(2009.8.6)
【分割の表示】特願2001−536995(P2001−536995)の分割
【原出願日】平成12年9月19日(2000.9.19)
【出願人】(504052800)サフロン・テクノロジー,インコーポレイテッド (2)