本発明は、第1ノードの第1配置の使用に関連するものであり、これらの第1ノードのうちの1つ以上は、第2ノード又はコンポーネント(このコンポーネントは一実施形態ではさらにニューロンを表す)の第2配置であり、第1配置及び/又は第2配置は、好ましくはニューラルネットワークであり、或いは、第1配置は好ましくは「メモリ予測フレームワーク」の実装であり、さらに好ましくは、さらに「メモリ予測フレームワーク」の実装を有する第1ニューラルネットワークである。なお、上記ノードがデータ表現を発見する機能はデータのクラスタ又はそのシーケンスのクラスタを発見することにより実現されることから、上記ノードはクラスタリングノードを表す。第1ノードはコンポーネント集合を基盤とし、このコンポーネント集合は入力データ及びコンポーネント間接続を表し、この接続は、表現されるデータ間の時間的関係又は空間的関係を表す。本発明の一実施形態では、1つ以上又は全ての第1ノードは、ニューラルガスの概念、すなわち適切又は最適な入力データ表現を見つけることのできる人工ニューラルネットワークに基づく。より詳細には、ニューラルガスは量子化方法の1つである。ニューラルガスは、n次元ベクトルの特徴(特徴ベクトル)に基づいて適切又は最適なデータ表現を見つけるためのアルゴリズムである。特に本発明の場合、入力センサ値として受け取る第1レベルの第1ノードを除き、第1ノードに提供される入力値は確率分布であるのに対し、第1ノードの内部では、内部アルゴリズム(例えば、本発明の一実施形態によるニューラルガス法)用の入力は、(第1ノードへの入力として受け取った)確率分布で構成されるn次元特徴ベクトル、及び/又は時間的コンテキストベクトル、及び/又は永続性概算記述子である。本発明は特に、時空間ノードを表すノード又はクラスタリングノードを提供し、入力データシーケンスを処理するので、ノード操作で使用する基本的手法は、時系列分析、好ましくはオンライン又はリアルタイムの時系列分析を行うように構成されている。したがって、本発明が提供する第1ノードは、その1つ以上又は全部が、いわゆるマージニューラルガス概念(時系列分析のための再帰的な成長自己組織化ニューラルネットワーク)或いは時間的ニューラルガスと表現される概念に基づく。このニューラルガス概念は、(i)過去の入力の測定値(例えば指数平均)であるコンテキストデータを入力空間に導入し、(ii)各ニューロンは(短期の時間分割を達成するため)現在の入力と現在のコンテキストを専門に扱う。上記の構成は、ニューラルガスの任意の異型に適用可能であり、例えば、マージSOMの時間的コンテキストとGNGの逐次部分の組み合わせであるMGNG(マージ成長型ニューラルガス)に適用可能である。より詳細には、永続性の概念を導入していることに注目すべきである。本発明の一実施形態では、第1ノードはコンテキストを認識するので、コンテキストを新しい入力データで更新でき、最も近いコンテキストのニューロンを探索できる。マージニューラルガスの時間的コンテキストとは、現在提示されているパターンとシーケンス履歴パターンとを組み合わせたものである。本発明は特に、特徴ベクトルにおける、さらに永続性検出部を併用した永続性概算係数の使用を提供する。本発明は「純粋」なニューラルガス理論とは異なる。その理由は、実施形態において、ニューラルガス理論によってレバレッジされる元の位相幾何学的グラフと並べて使われる時間的グラフを導入して示されているように、本発明に適応されるニューラルガスは一般化マルコフ過程の一表現であるからである。
概要としては、ツール及び操作者の動的挙動と相互作用するための人工記憶を有するアーキテクチャが提供され、このアーキテクチャは、抽象化、一般化、及び学習のための構造及びメカニズムを有する第1ニューラルネットワークであり、このネットワークの実装は人工階層記憶システムを含み、この人工階層記憶システムは、(1)ツール上のセンサが生成したデータを受け取るポートと、(2)頻繁に見られる入力パターン及びそのシーケンスを学習できる1つ以上の(時空間的)(クラスタリング)ノードと、(3)このシステムにより構築された、ツール及び/又は操作者の挙動に関連するデータを出力するポートと、を備え、1つ以上又は本質的に全ての上記ノードの各々は、ニューロンと、2つ以上のニューロンを接続するエッジとを備えた、時系列分析用の第2ネットワーク、好ましくは、再帰的な成長型自己組織化ニューラルネットワークである。このアーキテクチャは、さらに、頻繁に見られる入力パターンをそのようなものとして学習できる(空間的)クラスタリングノードを有してよい。なお、データ受信ポートと1つ以上の第1ノードとの間に、特徴抽出等の前処理ステップを実施するための他のノードが存在してもよい。
したがって、本発明の第1の態様では、ツール及び操作者の動的挙動と相互作用するための人工記憶を有するアーキテクチャが開示され、このアーキテクチャは、抽象化、一般化、及び学習のための構造及びメカニズムを有する第1ニューラルネットワークであり、このネットワークの実装は人工階層記憶システムを含み、この人工階層記憶システムは、(1)ツール上のセンサが生成したデータを受け取るポートと、(2)頻繁に見られる入力パターン及びそのシーケンスを学習し認識できる1つ以上の第1ノードと、(3)このシステムにより構築された、ツール及び/又は操作者の挙動に関連するデータを出力するポートと、を備え、1つ以上又は本質的に全ての上記ノードの各々は、ニューロンと、2つ以上のニューロンをグラフ(好ましくは位相幾何学的グラフ又は時間的グラフ)内で接続するエッジとを備えた、時系列分析に適応する第2ニューラルネットワークである。
本発明の他の態様は、上記アーキテクチャに関連してツール及び操作者の動的挙動と相互作用するためのコンピュータ援用方法、上記アーキテクチャの1つ以上のノードを訓練/学習するためのコンピュータ援用方法、又は上記アーキテクチャを使用することにより入力に関連する出力を決定するためのコンピュータ援用方法に関する。
上記の概念は、後述の方法、システム、及びアーキテクチャに適用でき、これらの方法、システム、及びアーキテクチャと組み合わせて使用することができる。
本発明は、人工の(すなわち、機械表面、又はコンピュータ内に若しくはコンピュータとして、又はツール内に若しくはツールとして実装される)記憶システムを有する方法、システム、アーキテクチャ、より詳細には知覚/認知アーキテクチャに関するものであり、このアーキテクチャは、(1)(例えば長い)入力シーケンスをイベントとしてモデル化し、このような入力シーケンスを保存し呼び出すように構成されている少なくとも1つの第1ノード(イベントプール化ノードとも表示される)と、(2)生データからプロトタイプを抽出し保存するように構成されている少なくとも1つの第2ノード(強制的時間プール化ノードとも表示される)と、を備え、各プロトタイプは、類似の特徴を有する実世界の(周辺環境内のツールの)操作を特徴付けるデータチャンク(データの塊)を表し、第2ノード(強制的時間プール化ノード)はイベントプール化ノード用の入力を提供する。生データとは、通常はセンサ(例えば、機械やツールのアクチュエータ又は制御要素の活動を感知するセンサ)から取得されるデータである。
上記のシステム、機械、又はアーキテクチャは、操作者に応答するツールの動的挙動を理解し制御するのに特に適しており、とりわけ、動的に変化する環境において、操作者及びツールとリアルタイムで実際に安全に相互作用するのに適している。
さらに、この知覚/認知アーキテクチャは、抽象化、一般化、及び学習、さらに選択肢として予測(特に、入力される操作者指令の予測)のための構造とメカニズムを有する。一実施形態では、このアーキテクチャは「メモリ予測フレームワーク」の実装に基づく。より詳細には、この「メモリ予測フレームワーク」の実装は、増強型人工階層記憶システムを含み、この増強型人工階層記憶システムは、(1)イベントとしてモデル化される長い入力シーケンスを保存し呼び出すように構成されている少なくとも1つのイベントプール化ノードと、(2)生データからプロトタイプ/原形(primitive)を抽出し保存するように構成されている少なくとも1つの強制的時間プール化ノードと、を備え、各プロトタイプは、類似の特徴を有する実世界の(ツールの)操作を特徴付けるデータチャンクを表し、強制的時間プール化ノードはイベントプール化ノード用の入力を提供し、さらに具体的には、イベントは、少なくとも1つのプロトタイプ/原形の発生と定義される。
さらなる一実施形態では、このアーキテクチャは、(1)イベントとしてモデル化される(例えば長い)入力シーケンスを保存し呼び出すように各々構成されている単一又は複数のイベントプール化ノードを備える第1処理段階(「意識層」とも表示される)と、(2)第1処理段階とは別の第2処理段階(「ワイヤード層」とも表示される)であって、生データからプロトタイプを抽出し保存するように各々構成されている複数の強制的時間プール化ノードを備える第2処理段階と、を含み、各プロトタイプは、類似の特徴を有するデータチャンクを表し、第2処理段階は、原形(例えば単一モード及び/又は多モードの時空間的原形)を識別し認識するのに適するのに対し、第1処理段階は、これらの原形間のより抽象的な関係(時空間的イベント及びイベント間状態を含む関係)を学習し、保存し、呼び出し、予測するのに適する。
なお、数ある中でも特に上記の方法は、原形自体の時間的進化の予測/予想を可能にする(操作者入力の「予測」として第2処理段階へと押し下げる)。
本発明の一実施形態では、1つ以上の強制的時間プール化ノードを、単一モードの時空間的原形の認識専用とすることができ、この場合、この原形は、単一の物理センサから送られる入力の変動値に関連する。ゆえに、この原形は、単一の物理センサから受信した入力に関連する。さらに、1つ以上の別の強制的時間プール化ノードを、多モードの時空間的原形の認識専用とすることができ、この場合、この原形は、変動値の同時発生に関連し、ゆえに複数の物理センサから受信する入力に関連する。
種々の実施形態に渡って、イベントプール化ノードは、単一モードのプロトタイプ/原形の発生、又は多モードのプロトタイプ/原形の発生、又はこれらの両方をモデル化することができる。
本発明の一実施形態では、強制的時間プール化ノードでの抽出が学習過程で行われて、内部状態とそのシーケンスが定義され、それによりこのノードは、内部状態とそのシーケンスを課す強制的学習過程を使用しながら、既知の入力データを適用する能力が与えられる。
なお、上記のノード全てを汎用ノードアーキテクチャから派生させてもよく、この汎用ノードは、イベント操作、原形操作、その学習等、記載されている機能全てを遂行する能力を有する。複数のノード間の複数の相互接続を有する記憶階層構造を構成してから、各ノードで実行すべき厳密な機能を選択してよい。
本発明は、特に車両に関連してマン−マシンインタフェースの文脈で表現され、ドライバーの挙動の感知から、及び/又は自動車の外部センサから信号を生成しているが、センサが人間の種々の活動を直接的又は間接的に感知するという、より複雑な構成も可能である。例えば、EMG(筋電図検査)取得システムの電極、ドライバーの頭に装着した(例えばEEG(脳波記録))ヘルメット、さらに選択肢としてドライバーの指令及び自動車の外部センサ、BAN(ボティエリアネットワーク)において人の体表に分散させたMEMS加速度計等を用いて、人間の挙動に関連する信号からサンプルを取得することができる。本発明の認知アーキテクチャは、これらのデータ全てを受け付けて予測を行うことができる。さらに、WSN(無線センサネットワーク)データ、及び/又はEEGデータ、及び/又はEMGデータ、及び/又は加速度計データの任意の組み合わせを例とする種々の電子情報源から送られる信号をシステムに供給するなど、本発明の認知アーキテクチャを一段と広い文脈で考えることもできる。
実際、その一実施形態では、サーバをホストとする知覚/認知アーキテクチャが、無線センサネットワークから送られるデータを処理する。このようなセンサを、例えば地上に配置できる。この場合のセンサは、上記のように本発明の実施形態に従ってセンサ入力を提供するが、センサは分散し無線で接続されている。例えば、このようなシステムを使用すれば、家屋の中に配置された周囲センサから人間の挙動その他の任意の挙動を検出し、認識し、予測することもできる。この場合、ユーザーは機械自体と相互作用するのでなく、家屋を制御するため家屋と相互作用するが、例えば調節により家屋を「操作」することになる。
その代替の実施形態では、知覚認知アーキテクチャのノードは無線センサネットワークの物理的な一部分であり、階層構造をなしている。この場合、h−MPFアルゴリズムをホスティングする組み込みのシステムが必要になり得る。結果として、環境内に分散したh−MPFが本発明の一実施形態となる。
要約すれば、本発明は、複数の分散センサが供給された、上記の1つ以上の認知アーキテクチャを備えたシステムであって、これらの1つ以上のアーキテクチャと(例えば場合により無線で)通信するシステムにも関連し、この場合、アーキテクチャ自体も分散していてよい。
したがって、本発明の利点の1つは、動的挙動と相互作用するため、且つ自我意思への応答及び機械操作時に発生する今までに見たことがある又は見たことのない環境影響又は周囲状況への応答としての操作者の活動を予測し予期するための、代替の人工記憶システムと、計算機を用いてこのシステムを教育又は訓練する方法と、を提供することである。
このようなシステムと方法のさらなる利点は、センサ信号及び/又はアクチュエータから送られる大量のデータを処理及び/又は分析する能力にあり、特に、未知の状況に対処する際の操作者の行動を予測し予期するために、大量のデータを分類し、予測し、且つ/又はフィルタリングする能力を有することである。
本発明の一実施形態では、ツール及び操作者の動的挙動と相互作用するための人工記憶を有する知覚/認知アーキテクチャにより、上記利点を実現する。この知覚/認知アーキテクチャは、抽象化、一般化、及び任意で学習のための構造とメカニズムを有する、「メモリ予測フレームワーク」の実装を基盤とし、この「メモリ予測フレームワーク」の実装は、増強型人工階層記憶システムを備え、増強とは、少なくとも前処理段階を提供することであり、このアーキテクチャは、時間的イベント管理に基づいて入力操作者指令に関する予測を提供するように構成され、この前処理段階は、物理センサから送られた入力データを原形と再帰パターンで表すように構成される。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM:Hierarchical Temporal Memory)であり得る。
コンテキストの中で操作者の指令を予測することにより、本システムは操作者の意図を分類することができる。コンテキストは物理センサから取得可能であり、物理センサは環境及び進展中のコンテキストに関する情報を提供することができる。
本発明の別の一態様を実現するのは、ツール及び操作者の動的挙動と相互作用するための人工記憶を有する知覚/認知アーキテクチャであり、この知覚/認知アーキテクチャは、抽象化、一般化、及び任意で学習のための構造とメカニズムを有する、「メモリ予測フレームワーク」の実装を基盤とし、この「メモリ予測フレームワーク」の実装は、増強型人工階層記憶システムを備え、増強とは、少なくとも前処理段階を提供することであり、この前処理段階は、物理センサから送られた入力データを原形と再帰パターンで表すように構成され、このアーキテクチャは、アーキテクチャ内にフィードフォワード信号とフィードバック信号の流れを有し、フィードフォワード信号の流れとフィードバック信号の流れの間の対応関係が、コンテキストチェックの度合いをなす。
なお、フィードフォワードとフィードバックを、アーキテクチャ内の上方向、下方向の信号の流れと理解することもできる。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
コンテキストチェックにより、センサ入力データの高位レベルの解釈がデータ自体と整合しない時が明らかになる。データのフィードフォワード処理とフィードバック処理の後、予測と観察の間に有意な違いが存在する場合、潜在的に問題のある状況がシステムに存在し一貫性が低下していることを表す。
本発明のさらに別の一態様を実現するのは、ツール及び操作者の動的挙動と相互作用するための人工記憶を有する知覚/認知アーキテクチャであり、このアーキテクチャは、抽象化、一般化、及び任意で学習のための構造とメカニズムを有する、「メモリ予測フレームワーク」の実装を基盤とし、この「メモリ予測フレームワーク」の実装は、増強型人工階層記憶システムを備え、増強とは、少なくとも前処理段階を提供することであり、この前処理段階は、物理センサから送られた入力データを原形と再帰パターンで表すように構成され、このアーキテクチャは、物理センサから送られる入力に基づき、ツール及び/又は操作者の挙動に関する圧縮された、より高位レベルの情報を出力するように構成される。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
圧縮された、より高位レベルの情報とは、例えば挙動の分類結果であり得る。より大量で理解しづらい生データを記録するのでなく圧縮した形で挙動を記録するので、このような分類結果は有用であり得る。
好適な実施形態は独立請求項及び以下の説明で明確にされる。
本発明の実施形態は、動的挙動と相互作用するための、計算機を用いる人工記憶システムを含んでよく、この人工記憶システムは、物理I/O層、増強型階層メモリ、タイムマスター、コンテキストチェック、教師ありゲート処理、システム制御部、及びユーザー制御I/O層を備える。物理I/O層は、情報内容を改変せずに、物理センサ入力を増強型階層メモリが管理できるフォーマットに変換するように構成でき、増強型階層メモリは、物理I/O層から受け取った入力パターンのシーケンスを教育され、認識し、予測するように構成できる。ユーザー制御I/O層は、物理I/O層が受信した物理センサ入力に基づき、圧縮された、より高位レベルの情報を出力するように構成できる。通常、センサから取得する「入力パターン」は、コンテキスト/環境の一部として何かをする、又は何かをしないという人間の意図と結び付けられている。すなわち、人間がある特定のパターンで制御物を調整し、こうした制御物の調整をセンサが検知する。
「ドライバー」は自律的ドライバーであってもよい。例えば、ドライバーの指令を、システムが読むことのできる適切な記憶媒体に格納されたコマンドの形で先験的に与えてもよい。指令とは、目的地、到着予想時間、予想燃料消費量、運転の仕方(攻撃的、スポーティ、穏やか)等である。また、実際の人間のドライバーが意図的にシステムにスイッチを入れ、加速、制動力、速度、燃料消費量等が当該ドライバーの通常の動作及び他の動作に従うように指令を与えて、当該ドライバーを目的地まで動かすこともできる。
より一般的に言えば、ドライバーはユーザーである。さらなる説明では、他の種類のユーザー(例えば、システムと接続したセンサを装備する家屋に住む人々)についても論じている。
指令がない場合には、システムが代行することも可能である。例えば、ドライバーが眠っていることが検出されれば、システムは車両を安全に停止させる。ドライバーが眠り込んだかどうかは、認識チェック部(Awareness Check)が検出できる。
本発明の認識機能とドライバーの特性とを組み合わせて使うこともできる。初心者にとっての緊急事態は、F1レーサーには緊急事態でない場合もある。したがって本発明の実施形態は、ツール挙動の認識と、例えば運転挙動により決定されるドライバー特性とを組み合わせて使用する。
本発明の実施形態は、動的挙動と相互作用するための、計算機を使用する人工記憶システムを含んでよく、この人工記憶システムは、物理I/O層、増強型階層メモリ、タイムマスター、コンテキストチェック、教師ありゲート処理、システム制御部、及びユーザー制御I/O層を備え、物理I/O層は、情報内容を改変せずに、物理センサ入力を増強型階層メモリが管理できるフォーマットに変換するように構成され、増強型階層メモリは、物理I/O層から受け取った入力パターンのシーケンスを教育され、認識し、予測するように構成され、ユーザー制御I/O層は、分類結果及び/又はコンテキストチェックを出力するように構成される。
本発明の好適な一実施形態によれば、人工記憶システムの増強型階層メモリは、階層状に用いられ相互接続している複数のメモリレベルブロックを備える。
本発明の別の好適な一実施形態によれば、増強型階層メモリは、階層状に用いられ相互接続している複数のメモリレベルブロックを備える。メモリレベルブロックの各々は、個別カラムの形に配列した少なくとも一集合のノードで構成されてよく、この場合、各ノードカラムは少なくとも1つのイベントプール化ノードを備える。
さらに別の一実施形態によれば、上記少なくとも1つのイベントプール化ノードは、子ノードとして空間プール化ノード又は強制的時間プール化ノードを有する。
さらなる好適な一実施形態では、増強型階層メモリの各メモリレベルブロックは注意分類部と連結している。さらに、この注意分類部は、制御部、ゲート処理、複数親ゲート処理、分類部のうちの少なくとも1つを備えてよい。
人工記憶システムの増強型階層メモリの中で一番最初のメモリレベルブロックは、入力信号を受け取るためのワイヤードメモリレベルブロックを備えていてよい。ワイヤードメモリレベルブロック自体が、個別のカラムの形に配列した少なくとも一集合のノードで構成されてよく、この場合、各ノードカラムは、少なくとも1つの信号量子化ノードと少なくとも1つの強制的時間プール化ノードとを備える。さらに、1つのノードカラムが平滑化ノード及び/又は強制的イベントプール化ノードを追加的に備えてよい。
本発明の別の一態様では、増強型階層記憶システムを有する「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用する方法を提供する。この方法は以下を含む。
−システムの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−人工記憶システム内で信号を収集すること。
−入力データを単純な原形と再帰パターンで表すこと。
−操作者の指令、ツールの挙動、外部環境(任意)、及び人工記憶システムの内容を受信し分析して、受信したイベントが新規/未知のイベントであるか既知のイベントであるかを判断すること。
−受信したイベントを分類すること。
−内部表現から、ツールの現在の状態、短期的時間イベントの識別名、及び推論される長期的な操作者行動を決定すること。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
この方法は以下を含んでよい。
−ツール及び/若しくは操作者の挙動に関する、より高位レベルの圧縮された情報を出力すること。又は
−時間的イベント管理並びに入力データの原形及び再帰パターンに基づき、入力された操作者指令に関する予測をすること。又は
−コンテキストチェックの度合いとして、フィードフォワード信号とフィードバック信号の流れの間の対応関係、若しくはこれらの流れの任意の組み合わせを決定すること。
本発明の別の一態様では、人工記憶システムを備える「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用する方法を提供する。この方法は以下のステップを含む。
−システムの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−システムの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−センサから送られた信号を人工記憶システム内で分類、予測、及び/又はフィルタリングして、計算結果をシステムに送り返すこと。
−内部の記憶の一貫性状態を表し、人工記憶システムの出力に信頼性がある時を明示する働きをするコンテキストチェック信号を、人工記憶システムが生成すること。
この方法はさらに以下を含んでよい。
−コンテキストチェック信号を例外評価部に送ること。
−例外評価部がコンテキストチェック信号を受け取り、このコンテキストチェック信号に基づき、制御信号をパターン記録モジュールに送ることにより、センサから送られた現在の生の信号を記録し、より深いオフライン分析をすることを例外評価部が決定すること。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
この方法は以下を含んでもよい。
−受信した生の信号をデータベースに保存すること。
−センサから送られる信号から人工記憶システムを切り離すこと。
−人工記憶システムを訓練モードに設定すること。
−人工記憶システムへの入力として、センサが生成した信号でなく以前データベースに保存されたパターンを供給して、保存されている当該信号パターンに関して人工記憶システムを訓練すること。
本発明の別の一態様では、人工記憶システムを備える「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用する方法を提供する。この方法は以下のステップを含む。
−無線センサネットワークのノードにより信号を生成すること。この信号はシステムの物理的状態を表し、システムとは、監視される自然環境又は人工環境であり得る。
−センサが生成した信号を無線で人工記憶システムに送信すること。
−システムの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−センサから送られた信号を人工記憶システム内で分類し、予測し、且つ/又はフィルタリングして、無線センサネットワーク、又はウェブサイト、又はモバイルデバイス(スマートフォン等)用アプリケーションを通じて、計算結果をシステムに送り返すこと。
−内部の記憶の一貫性状態を表し、人工記憶システムの出力に信頼性がある時を明示する働きをするコンテキストチェック信号を、人工記憶システムが生成すること。
この方法はさらに以下を含んでよい。
−コンテキストチェック信号を例外評価部に送ること。
−例外評価部がコンテキストチェック信号を受け取り、このコンテキストチェック信号に基づき、制御信号をパターン記録モジュールに送ることにより、センサから送られた現在の生の信号を記録し、より深いオフライン分析をすることを例外評価部が決定すること。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
この方法は以下を含んでもよい。
−受信した生の信号をデータベースに保存すること。
−センサから送られる信号から人工記憶システムを切り離すこと。
−人工記憶システムを訓練モードに設定すること。
−人工記憶システムへの入力として、センサが生成した信号でなく以前データベースに保存されたパターンを供給して、保存されている当該信号パターンに関して人工記憶システムを訓練すること。
本発明の別の一態様では、人工記憶システムを備える「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用する方法を提供する。この方法は以下のステップを含む。
−システムの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−システムの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−センサから送られた信号を人工記憶システム内で分類、予測、及び/又はフィルタリングして、計算結果をシステムに送り返すこと。
−内部の記憶の一貫性状態を表し、人工記憶システムの出力に信頼性がある時を明示する働きをするコンテキストチェック信号を、人工記憶システムが生成すること。
この方法はさらに以下を含んでよい。
−コンテキストチェック信号を例外評価部に送ること。
−例外評価部がコンテキストチェック信号を受け取り、このコンテキストチェック信号に基づき、制御信号をパターン記録モジュールに送ることにより、センサから送られた現在の生の信号を記録し、より深いオフライン分析をすることを例外評価部が決定すること。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
この方法は以下を含んでもよい。
−受信した生の信号をデータベースに保存すること。
−センサから送られる信号から人工記憶システムを切り離すこと。
−人工記憶システムを訓練モードに設定すること。
−人工記憶システムへの入力として、センサが生成した信号でなく以前データベースに保存されたパターンを供給して、保存されている当該信号パターンに関して人工記憶システムを訓練すること。
本発明の別の一態様では、人工記憶システムを備える「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用する方法を提供する。この方法は以下のステップを含む。
−システムの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−システムの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−人工記憶システムにより操作者の挙動を評価し、又は今後予想される操作者の挙動を予測し、又は現在の操作者指令をフィルタリングして再構築し、又は記憶の内部の一貫性状態を表すコンテキストチェック信号を生成すること。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
この方法はさらに以下を含んでよい。
−上記の評価、予測、フィルタリング、再構築、又はコンテキストチェックの信号を認識評価部に送ること。
−受け取った信号に基づき、認識評価部が、受動的制御情報又は能動的制御の情報を操作者に提供することを決定すること。
本発明の別の一態様では、人工記憶システムを備える「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用する方法を提供する。この方法は以下のステップを含む。
−ツールの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−ツールの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−ツールの状態の概要を表す分類結果を人工記憶システムが生成すること。
−記憶の内部の一貫性状態を表すコンテキストチェック信号を人工記憶システムが生成すること。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
この方法はさらに以下を含んでよい。
−入力データに加えてコンテキストチェック信号をコントローラに送ること。
−分類結果を記録すること、及び/又は例外を表すコンテキストチェック信号をコントローラが受信した場合、コントローラが入力データの記録を可能にすること。
本発明の別の一態様では、人工記憶システムを備える「メモリ予測フレームワーク」の実装に基づいて、ゲームシステムの一部であるツール及び操作者の動的挙動と相互作用する方法を提供する。この方法は以下のステップを含む。
−ツールの物理的状態及び操作者の挙動を表す信号をセンサが生成すること。
−この信号を人工記憶システムに送ること。
−操作者の挙動を表すゲームパターンを備えた人工記憶システム内で、上記信号を収集すること。
−操作者のゲームプレイ能力の概要を表す分類結果を人工記憶システムが生成すること。
−操作者によるゲームプレイの非一貫性を表すコンテキストチェック信号を人工記憶システムが生成すること。
この人工階層記憶システムは、増強型の階層的時間メモリ(HTM)であり得る。
この方法はさらに以下を含んでよい。
−コンテキストチェック信号と分類結果をコントローラに送信すること。
−コントローラが対戦ゲームを制御すること。
本発明の方法の好適な一実施形態によれば、ツールI/Oインタフェースは、センサから送られる信号に対して、人工記憶システムが分類、予測、及び/又はフィルタリングするかどうかを制御し、人工記憶システムが訓練可能な状態であるとき、システムを訓練モードに設定する。
別の好適な一実施形態によれば、例外評価部がトリガーするゲートにより、センサから送られる信号から人工記憶システムが切り離され、これにより例外評価部は、人工記憶システムの訓練状態についてツールI/Oインタフェースから通知を受ける。
以下、いくつか特定の実施形態に関して、いくつか特定の図面を参照して本発明を説明するが、本発明はこれらに限定されず、請求項によってのみ限定される。表現されている図面は単なる概略であり、何ら限定するものではない。これらの図面において、場合によっては、図解目的で誇張したサイズで表示され、縮尺通りでない要素がある。本発明の明細書及び特許請求の範囲で使われている「comprising」(備える、含む)という用語は、他の要素やステップを排除しない。単数名詞を指す不定冠詞又は定冠詞(例えば「a」、「an」、「the」)が使われている場合、別段の具体的な記載がない限り、同じ名詞の複数形が含まれる。
特許請求の範囲で使われている「comprising」(備える、含む)という用語は、この用語以降に列記されている手段に制限されるものと解釈すべきではなく、この用語は他の要素やステップを排除しない。したがって、「手段Aと手段Bとを備えたデバイス」という表現の範囲は、構成要素AとBのみからなるデバイスに限定されない。すなわち、本発明に関しては、単にデバイスに関連性のある構成要素がAとBであることを意味する。
さらに、本発明の明細書及び特許請求の範囲に記載されている第1、第2、第3といった用語は、複数の類似要素を区別するために使われており、必ずしも連続的順序や時間的順序を表しているわけではない。上記のように使われている用語同士は適切な状況下で交換可能であり、本明細書に記載されている本発明の実施形態は、本明細書に記載又は図示されている順序以外の順序でも運用可能であると理解すべきである。
本発明は、入力と出力を有するノードを伴う計算処理アーキテクチャに関連するものであり、このノードは、推論モードと呼ばれる第1の動作モードにあるときは、ある特定の入力の供給に基づき、関連付けられた特定の出力を提供し、学習モードと呼ばれる第2の動作モードにあるときは、入力と出力の間のこの関連付け又は関係を創出することができる。
さらに本発明は、少なくとも1つの他の第2(FTP)ノードを有するアーキテクチャにも関連し、この第2ノードは、所定のデータ集合(原形/プロトタイプと表記されるデータ集合)を作成し(学習モード)、入力データを受信したときにデータ集合のいずれか1つを出力する(推論モード)ように構成されている。
本発明の一実施形態では、この第2ノードは、第1ノードから受け取った関連付けをその原形と相関させ、それにより関連の物理センサ制御値と相関させることにより、関連の出力信号をセンサに出力することができる。
本発明は、少なくとも1つの第1(EP)ノードを有するアーキテクチャに関連し、この第1ノードは、第1ノードの入力データが、所定のデータ集合から選ばれる別の入力データ(イベントを表す)に変化した場合のみ内部状態を変更するように構成されている。
ゆえに、本発明は、認識された入力データのインデックス(例えば所定リスト内の番号)及びタイミング関連の情報(発生及び/又は持続時間等)を格納することにより、入力データのシーケンスを圧縮した形で格納する方法を支持する。
本発明の一実施形態では、この第2ノードに対し、入力データと、部分的又は完全に入力されている所定のデータ集合とを強制的に関連付けさせることができる(いわゆる強制的学習過程)。
本発明の一実施形態では、第2ノードの出力は第1ノードの入力として働く。
このアーキテクチャの実施形態はアーキテクチャの使用方法を支持するものであり、この場合、入力が与えられる1つ以上の第2ノード(いわゆるワイヤードレベル又はワイヤード層を定義するノード)が所定のクロックサイクルごとに動作するのに対し、第2ノードの出力が与えられる1つ以上の第1ノード(いわゆる意識レベル又は意識層)は、変化の発生時のみ応答し、ゆえに2ノードと非同期的に応答する。これにより、メモリ実装面積と速度の大幅な低下が実現し、したがって良好な圧縮特性とリアルタイム使用能力が得られ、システムの(数ある中でも)特に重要な技術的利点をなす。
なお、ノードが創出する入出力間の関連付け又は関係は当該ノードのレベルで定義され、例えば第1ノードの場合は、イベント及び一連のイベントのレベル、並びにその表現のレベルで定義されるのに対し、第2ノードの場合は、時間的入力シーケンス及びその表現のレベルで定義される。上記定義のように特化したノードを使用することにより、あるノード層を越えて入出力の関連付け又は関係を作成することが可能になり、実際、学習及び推論モードの使用を制御し、フィードバック(高位のノードから低位のノード)情報とフィードフォワード(低位のノードから高位のノード)情報を制御することで、複数のノードに渡る入出力表現が改善され、それにより、実世界の操作で重要な特性である抽象から具体、具体から抽象への移行が可能になる。
したがって、本発明は、1つ以上のノード上の動作を制御できるマスター(タイミング)ノードも提供できる。ノード上の動作とは、例えば、情報のフィードバック、情報のフィードフォワード、ノード内部状態の更新、学習モードと推論モード間の切り替え等である。
操作者を伴う動的環境でシステムを使用することは、操作者の快適性及び安全性という安全要求を有する一方、システム自体が学習する自由度に一定の境界又は設計考慮事項が加わる。本発明がもたらす別の技術貢献の1つは、境界条件として、強制的時間プール化ノードにより制御された(強制的な)学習を選択することが挙げられる。
本発明は、ツール及び/又は行為者若しくは操作者の動的挙動と相互作用するための、人工記憶を用いたコンピュータベースの知覚/認知アーキテクチャに関する。このアーキテクチャは、アーキテクチャと相互作用し、且つツールと相互作用する行為者を理解し予期できるように、さらに当該行為者の意図を、時には外部コンテキストに応じて理解し予期できるように、センサデータを処理することができる。ツールとは任意の物理的物体であり、例えばキャプテン、ドライバー、パイロットを乗せた航空機、自動車、船舶等の乗り物や、ゲーム環境の一部として仮想テニスコートを併用するダミーラケット等のスポーツツールであり得る。センサとは、例えば電気機械式センサ、光学センサ、機械式センサ、温度センサ、電気センサ、磁気センサ、電磁センサ、オーディオセンサ、タイムセンサであり得る。高レベルの安定した性能を提供するように機能することが期待される対象用途の環境が、非制御、予測不能、かつ未試験であることを考えれば、本発明の実施形態によるアーキテクチャが提供する主要な要求事項を、一般化能力として特定することができる。
一般化能力により、操作者のパフォーマンスパターンの軽微な違いに対してシステムが耐性を持つので、メモリ使用量を有限にすることができ、ゆえに、ツールの個々の動作中に遭遇し得る全ての状況をシステムメモリの内部に格納するという不可能なことに取り組むことが可能になる。一般化能力が(分析アプローチより)勝ることが予想される状況の具体例として、操作スタイルや特性の異なる様々な操作者(複数の操作者間)に対処すること、同一操作者の様々な意図(単一操作者内)に対処すること、及びシステムの設計時には先験的に予測できない様々な計画と時間に対処することが挙げられる。実際、操作者が可変性と適応性を持つことから操作者シナリオを描くことは困難を極め、操作者が関与し得る状況は事実上無数になり、これらの状況を完全に記憶することは不可能である。
本発明に関して説明されるシステムは、上記で列記されている機能を有し、(まだ学習していないため)未知の状況に対処することができる。言い換えれば、今までに見たことのない状況(例えば、おそらく「未知」と特定することになる状況)であっても、(例えば、すでに経験した関連事象から結論付ける/推論することにより)ある種の理解をすることができる。良好な理解が基盤になければ安定した予測を追求できないことから、上記の機能は最終的アーキテクチャにとって実際に最も重要な要件である。
本発明のシステム又は方法は下記の要素を有し、これらの要素は個別にも、複数要素の組み合わせでも貢献する。
前処理:システム/ツールの動作モードに固有の入力データを単純な原形及び再帰パターンで表し、これによりシステムは、個々の知覚チャンネルを確実に処理できるようになる。
理解:操作者の指令、ツールの挙動、場合によって外部環境、及びメモリの内容を分析することにより、システムは状況(例えば文脈)を「理解」し、それが何か新規/未知のものであるか既知のものであるか(すでに経験/「記憶」したものに関連するか)を理解し、さらに、例えば「良い」「悪い」「安全」「危険」「成功」「失敗」のような分類ができる。特に、確実に想起される既知の状況を用いることで、今後発生する可能性の高い操作者の活動及びツールの動作を予測することができる。
相互作用:操作時のツールの挙動(短期の時間的イベントの識別名及びツールの現在の状態を表す内部表現)と操作者の意図(例えば、推論される長期的な操作者行動)の間の、二方向、反復性、又は適応反復性の相互作用/コミュニケーション。
本発明の実施形態では、操作者をドライバー、キャプテン、パイロット、ゲームプレイヤー等と記載する。このような人は「自律的」である。例えば、操作者の指令を、システムが読むことのできる適切な記憶媒体に格納されたコマンドの形で先験的に与えることができる。例えば、操作者がドライバーであり、ツールが自動車等の車両である場合、指令とは、目的地、予想到着時刻、予想燃料消費量、運転の仕方(攻撃的、スポーティ、又は穏やか)等である。また、現実の人間のドライバーが意図的にシステムにスイッチを入れて、加速、制動力、速度、燃料消費量等が当該ドライバーの通常の挙動その他の挙動に従うように指令を与えて、当該ドライバーを目的地まで動かすこともある。指令がない場合に、システムが代行することも可能である。例えば、ドライバーが眠っていることが検出されれば、システムは車両を安全に停止させる。ドライバーが眠り込んだかどうかは、認識チェック部が検出できる。
本発明の実施形態は、「メモリ予測フレームワーク」(MPF:Memory Prediction Framework)に基づいており、人工階層記憶システムを含む。この人工階層記憶システムは、シーン認識/「分類」及び/又は前処理段階の機能を向上させた、増強型の階層的時間メモリ(HTM)であり得る。本発明のシステムと方法は、時間的イベントの管理を導入し、また上記の前処理段階を伴うことから、数ある能力の中でも特に、入力された操作者指令に関する予測1つにつき、10〜15サンプルという数、又は例えば0.5秒程度に必要とされる任意の数のサンプル数を提供できるように構成されている。
「メモリ予測フレームワーク」(MPF)は、良好な学習、抽象化、及び一般化に必要な構造とメカニズム(例えば、ネットワーク内のフィードフォワード信号とフィードバック信号の流れ、これらの信号の流れに対応する、ネットワークの一般化能力を評価するための必須条件である状況理解度)をほぼ全て予測するので、基本モデルとして適切である。MPFの計算処理アプローチ及びそのアルゴリズムは、知覚固有の前処理がいまだ必要であるものの、多様な知覚チャンネルを処理できることが証明されている。本発明の実施形態は、MPFの適切な部分を具体化したものととらえることができる。
上記の方法及びシステムの中核は人工記憶システムであり、以下、この人工記憶システムについて説明する。
図1に、計算機を用いて動的挙動と相互作用するための、本発明の一実施形態による人工記憶システム100を示す。この図において、101はセンサ又はセンサ入力であり、104bは予測後センサ出力であり、104aはセンサフィードバック出力であり、102は分類結果出力であり、107はコンテキストチェックであり、106はリセット入力であり、105は制御入力(予測、訓練、メモリ読み込み等)である。人工記憶システム100内のリンクは次の通りである。211:センサ入力:このポートは、物理センサから送られる全ての生のセンサ値を受け取る。214a:センサフィードバック出力:このポートは、ネットワークで再構築された全ての変換済みの生センサ値を出力する。この出力値を物理センサと直接比較することができる。214b:予測後センサ出力:この出力には、予測後の変換済み生センサ値の全てが含まれる。この出力値を物理センサと直接比較することができる。212:ネットワーク向けに変換されたセンサ入力:この出力は、220が管理できるフォーマットのセンサ値を含む。213a:センサフィードバック:この入力は、ネットワークで再構築され物理センサ値に変換されるセンサ値を受け取る。213b:予測済みセンサ:この入力は、ネットワークで生成され物理センサ値に変換される予測センサ値を受け取る。221:増強型階層メモリ220へのセンサ入力。224a:増強型階層メモリ220からのセンサフィードバック出力。224b:増強型階層メモリ220からのセンサ予測出力。225:タイムマスター制御入力。この入力は、生成されたスケジューリング情報をタイムマスター230から受け取る。226:リセット入力。この入力は、システム制御部260から、220内部の各レベルのメモリ履歴リセットを制御する信号を受け取る。227:コンテキストチェック出力:この出力は、220内の一貫性チェック信号を集計する。228:教師ありゲート処理入力。この入力は、具体的な制御情報を受け取って、ゲート処理及び増強型階層メモリ220内のレベル間分類に利用する。229:教師ありゲート処理出力。この出力はレベル間分類結果を含む。231:タイムマスター制御出力。タイムマスター230モジュールで生成された、220の各コンポーネントの実行をスケジューリングする信号。235:高位レベルの種々のネットワーク実行モード(例:ノーマル、予測)を有効にする、260から送られるスケジュール制御信号。245:システム制御部260から送られるコンテキストチェック制御信号入力。247:増強型階層メモリ220全体の一貫性情報を含む出力。241:コンテキストチェック入力。200内部から送られる全ての一貫性情報を含む信号。251:教師ありゲート処理出力。この出力は、ゲート処理及び増強型階層メモリ220内のレベル間分類に利用するための具体的な制御情報を含む。252:教師ありゲート処理入力。この入力は、220から送られるレベル間分類結果を含む。258:250の様々な挙動を可能にする制御信号を含む入力。259:分類結果を含む出力。261:システム制御部260の制御信号。異なるバスを介して、タイムマスター230(高位レベルネットワーク挙動を増強型階層メモリ220用の実行パターンスケジュールに変換)、及びコンテキストチェック240(ネットワークの一貫性を明示する様々な様式を選択)に送られる。262:ネットワーク全体に関する生の分類結果出力を有する、システム制御部260からの出力。263:メモリリセット指令を有する、システム制御部260からの出力。264:ネットワークの一貫性結果を含む、システム制御部260への入力。265:ネットワーク様式指令(予測、訓練、読み込み等)を有する、システム制御部260への入力。266:システムリセット指令を有する、システム制御部260への入力。267:ネットワーク全体に関する生の一貫性情報を有する、システム制御部260からの出力。268:レベル間分類、教師あり分類部、及びネットワークの注意メカニズムを管理するための制御指令を有する、システム制御部260からの出力。
図示されている増強型階層記憶システムの内部のブロックは次の通りである。210:物理I/O層。このモジュールは、情報の内容を改変することなく、物理センサ入力を増強型階層メモリ220で管理可能なフォーマットに変換し、逆に、増強型階層メモリ220で管理可能なフォーマットを物理センサ入力に変換する。220:増強型階層メモリ。230:タイムマスター。このモジュールは、増強型階層メモリ220の各コンポーネントの内部クロックに対するマスターとなる外部サーバである。ネットワークの特定のタイミングスケジュール及び活性化順序で高位レベルの挙動(予測等)を変換する。240:コンテキストチェック:このモジュールは、フィードフォワード入力221の現在のシーケンスについての増強型階層メモリ220の理解度を提供する。250:教師ありゲート処理。このモジュールは、システム制御部260からの指令を変換して、増強型階層メモリ220の特定の下位部分が注意メカニズムを取得すること、或いは増強型階層メモリ220内のレベル間分類結果を取得することを可能にして、様々な時間的イベントを認識できるようにする。260:システム制御部。このモジュールは、高位レベル機能を実現し、ユーザー要求を満足し、システムパラメータを調整するため、人工記憶システムの全下位モジュール間の通信を処理する。270:ユーザ制御I/O層。このモジュールは、ユーザインタフェースから指令を受け取り、システム制御部260向けの指令に変換する。
タイムマスター230は、人工記憶システム100の内部スケジューラとみなすことができる。タイムマスター230はシステム制御部260に制御され、高位レベルの挙動が選択されると(分類、予測、フィルタリング等)、増強型階層メモリ220の層ごとに最善の実行スケジュールを生成する。タイムマスターは各ノードに対し、フィードフォワード、フィードバック、操作無しのどのモードで作業するべきか、また各ノードの内部状態を保存すべきか、それとも復元するべきかを伝達する。タイムマスター230は、以下の2種類の方法でノードに伝達することができる。
1.マスターモード:実行前に、増強型階層メモリ220内の各ノードがタイムマスター220に(例えばソケットを介して)接触して、実施すべきことに関する命令を受け取る。ノードは、単に現在のタイムステップを表す単一命令を受け取る場合もあれば、累積的な命令の集合を受け取る場合もある。
2.バックグラウンドモード:一度、各ノードが自身をタイムマスター230に登録しておき、その後タイムマスター230が非同期的に全ノードと接触して、異なる「実行サイクル」を設定する。システムに望まれる機能性の程度と通信遅延に応じて、この2つの様式の間で最善のトレードオフを選択することが可能である。第1モードの場合、ノードがタイムマスター230と通信したときでなければスケジュールを変更できない。送信する命令集合が長いほど、挙動の切替えまで(例えばノーマルモードから予測への切替え、予測からノーマルモードへの切替え)の遅延が長くなる。その反面、第1モードは通信オーバーヘッドが低いので、反復性のタスクに特に適している。第2モードの場合、各ノードがサーバ処理にタイムマスター230からの通信を連続的に待ち受けさせる必要があるため、オーバーヘッドが高くなるが、タイムマスター230からの指令に対して速やかに行動できる。
人工記憶システム100は、新しい入力パターンがあるたびに、数回の繰返しを経て分類又は予測を計算する必要があるため、タイムマスター230は、入力データ速度(ワールドクロック)よりも速い速度(人工記憶システムクロック)でシステムを動作させなければならない。
コンテキストチェックモジュール240は、増強型階層メモリ220の内部にある全てのノードから送られる状態一貫性チェック信号(4x7)を、リンク241を通じて受け取る。コンテキストチェック240は、システム制御部260からリンク245を通じて受け取る制御信号に基づき、一貫性信号(の部分集合)を処理し、これにより、増強型階層メモリ220がリンク221を介して感知している一連の入力に関して、増強型階層メモリ220がどの程度理解しているかを表す現在の理解度を、出力リンク247を介して提供する。例えばシステム制御部260は、増強型階層メモリ全体の一貫性評価を要求できる。増強型階層メモリに今後の入力の予測を要求すべきかを判断する上で、この一貫性情報は有用となり得る。増強型階層メモリ220が現在の状況を理解していなければ、予測を要求しても無駄になり得る。別の例では、ユーザーが外部コンテキストに即座に反応しているかを確認する目的で、システム制御部260は、ワイヤードメモリレベル310(図2を参照)についてのみ内部状態の一貫性評価を要求できる。さらに別の例では、システム制御部260は、増強型階層メモリ220の第1レベルについて内部状態の一貫性を尋ねることができる。この情報を外部アプリケーションが使用すれば、増強型階層メモリ220が前に見たことのない、対処方法の分からない入力シーケンスを認識することも可能である。
システム制御部260は、本システムの調整モジュールである。システム制御部260の主な役割は、システム制御部260の所望の機能を果たすために他のモジュールを動かすことである。例えば、ユーザー制御I/O層270から予測要求や特定イベント分類要求等の指令を受け取り、タイムマスター230、コンテキストチェック240、教師ありゲート処理250の各モジュールを利用して増強型階層メモリ220を制御する。また、このシステム制御モジュールは、個々の外部要求に応じて、増強型階層メモリ220で発生し得る訓練を監督する。
増強型階層メモリ220は、本システム全体の中核をなす。増強型階層メモリ220は、情報パターンを増強型階層構造の中にプールする(すなわち、ノイズの多い入力空間を処理して抽象的で堅牢な出力空間にする)ボトムアップアーキテクチャである。増強型階層メモリ220の主な目的は、入力パターンのシーケンスを学習し、認識し、理解し、(例えば要求に応じて)予測することである。また、好ましくは、認知体系のように、クリアなコンテキスト或いはさほどクリアでないコンテキストから意味を抽出/推論するようになっている。この目的で、多くのメモリレベル320が使用され連結されて、増強型階層構造をなす。メモリレベルブロック320の数は、個々のアプリケーションによって異なり得る。各メモリレベルブロックに注意分類部330を連結でき、その場合、個々のレベルで学習したイベントに意味を関連付けたり、メモリレベル320の注意メカニズムを実現するのに有用となり得る。各レベルは1〜Lのインデックスで識別される。通常、最初のレベル(レベル1)は、1つのワイヤードメモリレベルブロック310と1つのメモリレベルブロック320から構成される。高位レベルの再構築/予測精度を必要とする「重要」な単一次元入力信号を処理するには、ワイヤードレベルを使用するべきである。それ以外の入力信号は通常のメモリレベル320に送ってよい。それ以外の入力信号とは、通常、センサから送られる信号のうち、現在の動作コンテキストを表すのに役立つが高精度で再構築/予測する必要のない信号である。
図2は、本発明の人工記憶システムで使用される増強型階層メモリ220の機能構造を示す。多重化ブロック340により、フィードバック出力と予測出力を個別の出力リンクを伝って220の外部に提供することができる。タイムマスターブロック230から直接送られる制御信号225.0に基づき、フィードバックデータはリンク344a経由でリンク224aに送られ、予測データはリンク344b経由でリンク224bに送られる。リンク343は、ブロック310から送られるフィードバック/予測出力と、ブロック320から送られるフィードバック/予測出力とを単一の多次元データ配列に集める。
増強型階層メモリ220内のリンクは次の通りである。221:フィードフォワード入力。この入力は多次元データ配列である。ワイヤードメモリレベル310で処理すべき信号の集合は他の信号から分離されて、リンク221.1経由で送られる。残りの全ての信号はリンク221.2経由で第1メモリレベルブロック320に送られる。224a:フィードバック出力。この出力は多次元データ配列である。224b:予測出力。この出力は多次元データ配列である。225:制御信号。各内部ブロックに提供される全ての制御信号を含む多次元データ配列である。制御信号の大部分の部分集合は「225:C:L」とラベル付けされ、ここでC=[1;c]であり、個々のブロックの所属先カラムのインデックスを指定し(通常は第1レベルのみ)、L=[1;2]であり、レベルのインデックスを識別する。特に、部分集合225c:Lは全ての注意分類部ブロック330に制御信号を提供し、部分集合225:0は多重化ブロック340に制御信号を提供する。226:リセット信号。この信号は、各メモリレベルに提供される全てのリセット信号を含む多次元データ配列である。内部リンクは「226:C:L」又は単に「226:L」とラベル付けされ、ここでC=[1;c]であり、信号送信するメモリレベルの所属先カラムのインデックスを指定し(通常は第1レベルのみ)、L=[0;1]であり、レベルのインデックスを識別する。227:状態一貫性チェック信号。この信号は、ブロック内の各メモリレベルから送られる全ての状態一貫性信号を収集する多次元データ配列である。内部リンクは「227:C:L」又は単に「227:L」とラベル付けされ、ここでC=[1;c]であり、信号送信するメモリレベルの所属先カラムのインデックスを指定し(通常は第1レベルのみ)、L=[0;1]であり、レベルのインデックスを識別する。228:教師ありゲート処理信号。この信号は、内部で228.1、...、228.lの各リンクに分離して注意分類部ブロック330(存在する場合)にゲート処理信号を運ぶ、多次元データ配列である。229:分類結果信号。この信号は、注意分類部ブロック330(存在する場合)から229.1、...、229.lの各リンクを介して送られる全ての分類結果信号を収集する、多次元データ配列である。
図3は、増強型階層メモリ220に組み込まれているワイヤードメモリブロック310の機能構造を示す。ワイヤードメモリレベルブロック310は、個別のカラムを構成する基本ノードの集合を包含する。カラムの総数は、処理すべき入力信号の数によって異なり得る。各カラムは1〜cの範囲のインデックスで識別される。通常、1つのカラムは信号量子化(SQ:Signal Quantizer)ノード420と強制的時間プール化(FTP:Forced Temporal Pooler)ノード440で構成される。フィードバック(又は予測)出力信号の平滑性を向上させるため、カラムのフィードバック出力424に平滑化(Sm:Smoother)ノード470を追加してよい。さらに、特定のケースでは、カラムの最上部に1つ(又は複数)の強制的イベントプール化(FEP:Forced Event Pooler)ノード460を追加してよい。ワイヤードメモリブロックの目的は、ある一定数の単一次元入力信号を「信号の原形(プリミティブ)」で表すことである。各カラムは1つの単一次元信号を扱うので、c個の異なる単一次元入力を処理するにはc個のカラムが必要になる。SQノード420は、単一次元入力信号(その動態は周知でなければならない)を、制御されたやり方で非常に高速に量子化することを可能にする。(特定の統計アルゴリズムを用いて訓練データから抽出された)信号の「原形」がFTPノードとFEPノードに「教え」られ、その結果、親メモリレベルへの入力信号を、頻繁に反復する信号「チャンク」の形で(推論時に)表すことが可能になる。生データから信号の「原形」を抽出することは、ワイヤードレベルの「記憶内容」を作成する上で必要な処理である。この処理で出力されるものは、ノードが学習する必要のある「そのままの姿」の入力信号シーケンスの集合である。この入力信号シーケンスは、ワイヤードメモリレベルが表現すべきイベントを表していなければならない。FTP440の場合とFEP460の場合とでは、抽出すべきシーケンスが異なる。
FTP440に関して提案される抽出方法は次の通りである。
1.ローパスフィルタ:スパイクやセンサエラーを低減するため、生入力データにローパスフィルタをかける。
2.データの量子化:対応する信号量子化ノード420と同じ量子化処理を適用する。
3.データを複数のチャンク(塊)に分離:信号が安定状態を表している量子化済みデータを分離して(例えば、ゼロ交差、値の符号反転、一定時間間隔が挙げられるが、これらに限定されない)、メモリ内でイベントを表すのに充分な長さのチャンクにする(例えば非常に短いチャンクを除去することが挙げられるが、これに限定されない)。
4.チャンク特性の計算:各チャンクについて、信号特性を表す特徴の集合を計算する。例えば、開始点の値、終了点の値、長さ、平均値、値の標準偏差、信号の凹みが挙げられるが、これらに限定されない。
5.チャンク距離の計算:各一対のチャンクについて、互いの類似度を表す距離を計算する。例えば、信号の各ポイント間のピアソン距離と平均距離が挙げられるが、これらに限定されない。
6.チャンクのクラスタ化:直前に計算されたチャンク特性と距離に基づき、クラスタリングアルゴリズムを適用して複数の類似チャンクを一グループにまとめる。例えば、階層的クラスタリングアルゴリズムの使用が挙げられるが、これに限定されない。
7.プロトタイプの抽出:FTP440に教えるプロトタイプとしてクラスタのセントロイド(重心)を選択し、訓練ファイルとして保存する。
FEP460用の原形を抽出するプロセスも同様である。主な違いは、ステップ(3)の分離点の選択にある。FEP460用の原形は、対応するFTP440で記憶された原形の組み合わせであるため、FTP440の原形より長くなければならず、ゆえに、より長いイベントに対応する分離点を選択する必要がある。例えば、全ての入力信号に対する規則の集合、又はデータ取得中に獲得される外部トリガーにより、分離点を定義できるが、これらに限定されない。このメカニズムにより、単一次元入力の長い時間的シーケンスの記述を「圧縮」することが可能になる。同時に、非常に高精度で入力信号を再構築できるので、アプリケーションレベルにおいて、実際の信号の代わりに再構築/予測後の信号を使用できるようになる(必要な場合)。Smノード470(存在する場合)は、SQノード420が導入する量子化効果をマスクする目的で、SQノード420のフィードバック424出力をフィルタリングすることにより、より平滑な出力信号を提供する。増強型階層メモリ220ブロック全体の内部では、ワイヤードメモリブロック310は先頭レベルにのみ現れて、「生」の単一次元信号の集合を処理することができる。別の実装では、この先頭レベルを、個々の単一ワイヤードカラムで処理される多次元信号とみなすこともできる。
ワイヤードメモリレベルブロック310内のリンクは次の通りである。311:フィードフォワード(FF)入力。この入力は多次元データ配列である。この入力は全てのメモリレベルのFF入力を含み、後に内部で各カラムに送られる。カラム1用の単一次元FF入力は他の入力から分離されて、リンク311.1を介して正しいノード入力に送られる。カラム2に送られる単一次元信号はリンク311.2を通じて流れ、以降同様にして、リンク311.cを通じて一次元FF入力が最終カラムに流れる。なお、リンク311上の信号はリンク311.1、...、311.cまで順不同で送られる。312:フィードフォワード出力。この出力は多次元データ配列である。フィードフォワード出力は、全てのカラムから(おそらく順不同で)送られた(多次元)FF出力(312.1、312.2、...、312.c)を収集し、親メモリレベルのブロックの外側に提供する。313:フィードバック(FB)入力。フィードバック(FB)入力は、内部カラムに提供される全てのFB入力を含む多次元データ配列である。信号は下位グループ313.1、313.2、...、313.cに分離されて、対応するカラムに送られる。なお、リンク313上の個々の単一入力をグループ化して、リンク313.1、...、313.cへと順不同で送ることができる。314:フィードバック出力。この出力は多次元データ配列である。フィードバック出力は、全てのカラムから(おそらく順不同で)送られた単一次元FB出力(314.1、...、314.c)を収集して、ブロックの外側に提供する。315:制御信号。この信号は、ブロック内の各ノードに提供される全ての制御信号を含む多次元データ配列である。制御信号の内部部分集合は「315:C:L」とラベル付けされ、ここでC=[1;c]であり、個々のノードの所属先カラムのインデックスを指定し、L=[1;2]であり、レベルのインデックスを識別する。316:リセット信号。この信号は、ブロック内の各ノードに提供される個々のリセット信号全てを含む多次元データ配列である。内部リンクは「316:C:L」とラベル付けされ、ここでC=[1;c]であり、個々のノードの所属先カラムのインデックスを指定し、L=[0;l]であり、レベルのインデックスを識別する。317:状態一貫性チェック信号。この信号は、ブロック内の各ノードから送られる全ての状態一貫性信号を収集する多次元データ配列である。内部リンクは「317:C:L」とラベル付けされ、ここでC=[1;c]であり、信号送信するノードの所属先カラムのインデックスを指定し、L=[0;l]であり、レベルのインデックスを識別する。
図4は、増強型階層メモリ220に組み込まれているメモリレベルブロック320の機能構造を示す。メモリレベルブロックは、個別のカラムを構成する基本ノードの集合を包含する。カラムの総数は、ネットワーク全体の構造によって異なり得る。各カラムは1〜cの範囲のインデックスで識別される。通常、個々のカラムはイベントプール化(EP)ノード450で構成され、場合によっては、その子ノードとして空間プール化(SP)ノード410を有してよい。メモリレベルブロックの目的は、入力リンク321を通じて子メモリレベルから知らされる「同時発生事象」のシーケンスを学習し(訓練時)、認識する(推論時)ことである。実際、メモリレベルブロックはEPノード450の機能に依存しており、EPノード450は長期イベントを(独特に「圧縮」する形で)「記録」し「認識」できる。また、現在認識されているイベント(又は複数イベントの集合)を親メモリレベルに知らせることもできる。増強型階層メモリブロック220の内部には多くのメモリレベルブロック320が存在してよく、階層が下から上に上がるにつれて、個々のブロックは一段と長いイベント(のシーケンス)を学習し認識する。メモリレベルブロック320内のリンクは次の通りである。321:フィードフォワード(FF)入力。この入力は多次元データ配列である。この入力は、後に内部で各カラムに送られる全てのメモリレベルのFF入力を含む。カラム1用の特定のFF入力は他の入力から分離されて、リンク321.1を介して正しいノード入力に送られる。カラム2に送られる入力はリンク321.2を通じて流れ、以降同様にして、リンク321.cを通じてFF入力が最終カラムに流れる。なお、リンク321上の個々の単一入力をグループ化して、リンク321.1、...、321.cへと順不同で送ることができる。322:フィードフォワード(FF)出力。この出力は多次元データ配列である。この出力は、全てのカラムから(おそらく順不同で)送られたFF出力(322.1、322.2、...、322.c)を収集し、親メモリレベルのブロックの外側に提供する。323:フィードバック(FB)入力。この入力は、内部カラムに提供される全てのFB入力を含む多次元データ配列である。信号は下位グループ323.1、323.2、...、323.cに分離されて、対応するカラムに送られる。なお、リンク323上の個々の単一入力をグループ化して、リンク323.1、...、323.cへと順不同で送ることができる。324:フィードバック(FB)出力。この出力は多次元データ配列である。この出力は、全てのカラムから(おそらく順不同で)送られたFB出力(324.1、...、324.c)を収集し、ブロックの外側に提供する。325:制御信号。この信号は、ブロック内の各ノードに提供される全ての制御信号を含む多次元データ配列である。制御信号の内部の部分集合は「325:C:L」とラベル付けされ、ここでC=[1;c]であり、個々のノードの所属先カラムのインデックスを指定し、L=[1;2]であり、レベルのインデックスを識別する。326:リセット信号。この信号は、ブロック内の各ノードに提供される個々のリセット信号全てを含む多次元データ配列である。内部リンクは「326:C:L」とラベル付けされ、ここでC=[1;c]であり、個々のノードの所属先カラムのインデックスを指定し、L=[1;2]であり、レベルのインデックスを識別する。327:状態一貫性チェック信号。この信号は、ブロック内の各ノードから送られる全ての状態一貫性信号を収集する多次元データ配列である。内部リンクは「327:C:L」とラベル付けされ、ここでC=[1;c]であり、信号送信するノードの所属先カラムのインデックスを指定し、L=[1;2...]であり、レベルのインデックスを識別する。
図5は、増強型階層メモリ220に組み込まれている注意分類部330の機能構造を示す。注意分類部は任意のモジュールであり、近傍レベル310、320、330に対して透過的である。注意分類部が存在しない場合、信号はメモリレベル間を直接流れる。このレベルの特徴はフィルタ信号であり、その目的は、FF及びFBにおいて「注意の集中」(Focus-of-Attention)手法を実装し、一貫性チェックを有する複数の親ノードからのFBを有効にし、且つ/又はレベル間信号を分類して様々な時間尺度での挙動を特定することである。注意分類部330は、教師ありゲート処理部250(図1を参照)により接続489を介して制御される。実行のスケジューリングは、タイムマスター230が接続335を介して行う。通常動作中、制御部485は、パススルーとして動作するようにゲート処理486と複数親ゲート処理487を設定する。FB入力信号333が上のメモリレベル内の複数の異なるカラムに属する場合、複数親ゲート処理487は497を利用して単一の一義的FB信号を生成する。例えば、一貫性のあるノードから送られた信号だけを考慮に入れることができる。制御部485は、489を介して指令を受け取って、分類を有効にすることができる。この指令は分類部488に送られる。分類部488は、486又は487から入力を受け取り、496に分類結果を出力する。この処理により、増強型階層メモリ220の任意のレベルの挙動を識別することが可能になる。制御部485は、489を介して指令を受け取って、特定クラスの教師ありゲート処理を有効にすることができる。この指令は488に送られた後、486及び/又は487に送られる。分類部488は、495、498、499を介して指定された所望のクラスに対応する信号の部分集合のみを、486及び/又は487において伝播させることを可能にする。この処理により、増強型階層メモリ220の注意を、起こりうる挙動の部分集合にのみ集中させることが可能になる。注意分類部330において、制御部485は、教師ありゲート処理部250から489を介して指令を受け取り、タイムマスター230から489を介してタイミングを受け取る。この制御部はモジュール全体を制御する。ゲート処理486は、信号遮断が有効にされている場合、信号の一部を遮断することによりゲートの機能を果たすことができ、転送が有効にされている場合、FF入力信号481を分類部に転送することができる。複数親ゲート処理487は、信号遮断が有効にされている場合、信号の一部を遮断することによりゲートの機能を果たすことができ、転送が有効にされている場合、FB入力信号483を分類部488に転送することができる。複数の親が存在する場合、コンテキストチェック497が分析されて、一貫性のないFB信号が破棄される。
注意分類部330内のリンクは次の通りである。331:多次元入力FF信号。332:(多次元)出力FF信号。333:(多次元)入力FB信号。334:(多次元)出力FB信号。335:タイムマスター入力。337:上位レベルの接続先ノードから送られる全てのコンテキストチェックリンクで構成される(多次元)コンテキストチェック327*。481:モジュール内部の(多次元)331。482:ゲート処理486の(多次元)出力。FF信号である。パススルーモードの場合は481であり、ゲート処理されている場合は、その部分集合であり、空の場合もある。483:ノード内部の(多次元)333。484:複数親ゲート処理487の(多次元)出力。FB信号である。パススルーモードの場合は483であり、ゲート処理されている場合は、その部分集合であり、空の場合もある。489:教師ありゲート処理250からの入力。ゲート処理と分類を制御する。490:ゲート処理を有効にし、分類部488への信号転送を有効にする。491:ゲート処理を有効にし、分類部488への信号転送に有効にし、複数の親の選択を有効にする。492:分類部実行モード(選択又は実行)を有効にし、訓練を有効にする。493:分類部488に転送される(多次元)FF信号。494:分類部488に転送される(多次元)FB信号。495:教師ありゲート処理250(図1を参照)から送られるクラス選択。496:教師ありゲート処理250に送られる分類結果出力。497:モジュール内部の(多次元)337。498:FF選択的クラスゲート処理。499:FB選択的クラスゲート処理。
図6は、本発明の人工記憶システムにおける予測を行わない標準の実行スケジュールを層別に示す。この図では、推論モード(フィードバック信号とフィードフォワード信号が有効)の3レベルネットワークのうちの各レベルの実行スケジュールを示している。図6の左側はあり得るネットワークを表し、右側は、タイムステップごとに各レベルがタイムマスター230から受け取る指令を示している。図の下部にはタイムラインが表示されている。
図7は、本発明の人工記憶システム100における、4ステップの予測を伴う実行スケジュールを層別に示す。この図は、4タイムステップ先の予測を実現する実行スケジュールを示している。図から分かるように、4ステップ先の予測を生成するには7つの人工記憶ステップが必要とされる。求められる予測ステップが増えるほど、人工記憶システムの必要ステップ数は直線的に増加する。
図8は、本発明の人工記憶システム100で使われる基本的ネットワークノードの接続構造を示す。基本的ネットワークノードとは、例えば空間プール化ノード(SP:Spatial Pooler)410、信号量子化ノード(SQ:Signal Quantizer)420、時間プール化ノード(TP:Temporal Pooler)430、強制的時間プール化ノード(FTP:Forced Temporal Pooler)440、イベントプール化ノード(EP:Event Pooler)450、強制的イベントプール化ノード(FEP:Forced Event Pooler)460、平滑化ノード(SM:Smoother)470のいずれかであり得る。リンクに関しては、この説明のレベルでは、どのノードも同じ意味を共有するI/Oを有する。下記のリストにおいて、文字「x」は任意の数字に置き換えることができる。例えば、「4x1」は411、421、431、441、451、461等を表す。
リンクは次の通りである。
4x1:フィードフォワード入力。この入力は概して多次元データ配列であるが、SQノードは単一次元信号のみを入力とみなす。
4x2:フィードフォワード(FF)出力。この出力は概して多次元データ配列である。4x3:フィードバック(FB)入力。この入力は概して多次元データ配列である。4x4:フィードバック(FB)出力。この出力は概して多次元データ配列であるが、SQノードは単一次元信号のみ出力する。このリンクを通じて出力された値は、リンク4x5を通じてタイムマスターがトリガーする操作に応じて、フィードバック信号と予測信号のどちらにもなり得る。4x5:制御信号。このリンクを通じて、タイムマスターモジュール(230)がノードの内部機能を制御/トリガーする。各ノードに対して、フィードフォワード内部状態のみの更新や、訓練モードの切り替え、ある予測データの出力等を、何度も要求することができる。
4x6:リセット信号。個々の特定ノードに関する上記の詳細説明を参照。
4x7:状態一貫性チェック信号。各ノードは、各自のFB入力信号(4x3)と各自のFF出力信号(4x2)に何らかの一貫性/整合性があるかについて、このリンクを介して伝達する。この信号は、現在の「状況」に関する各ノードの理解度を表す。
フィードバック計算経路を有する空間プール化ノード(SP)410は、少なくともタイムマスター230のサポートを追加している点で、既知の(数ある中でも)Numenta社の実装とは異なる。この空間プール化ノードの一般的挙動では、多次元入力を受け取り、受け取った入力から再帰的な空間関係を発見し、入力空間をサンプリング及び/又は量子化する。人工記憶システム100は、学習モード時に同時発生事象及び/又は発生事象を(最大maxCoincNまで)保存し、保存した事象からの距離がmaxDist以上の場合に新しい同時発生事象を追加する。距離測定値は、ユークリッド距離その他の適切な距離測定値であってよい。推論モード(フィードフォワード)では、空間プール化ノードは、現在の入力及び全ての保存済み同時発生事象からの距離を計算して、学習済み同時発生事象の確率分布をFF出力信号として提供する。同時に、当然ながら、現在の入力との類似度が比較的高い学習済み同時発生事象はどれかを知らせる。推論モード(フィードバック)では、FB入力信号内で最も高い活性化値を探すことにより、勝者である同時発生事象のインデックスを決定する。次に、対応する同時発生値を内部メモリから取り出し、FB出力信号にコピーする。今後の修正では、FB出力信号を別の方法で計算する可能性がある(例えば、活性化値を重みとして使用することにより、活性化した全ての同時発生事象の加重平均を計算するなど)。その場合、学習後の同時発生事象から取得した値とは異なるフィードバック値を取得できる可能性がある。
図9は、信号量子化ノード420の量子化メカニズムを示す。図の例では、入力信号の範囲を[−2:0;2:0]、予め設定された同時発生数を13と仮定している。この信号量子化ノード(SQ)420は、Numenta社の実装から既知となったものではない。信号量子化ノードの目的は空間プール化ノードの目的と似ているが、より効果的に単一次元入力信号を処理するように設計されている。信号量子化ノードは、既知の範囲の1Dセンサデータを処理することに特化した、全く新しいノードである。このノードは、量子化の中心/レベルを完全に管理し、ゆえにフィードバック出力の質を向上させる目的で、ある一定の入力範囲内の静的に事前定義された同時発生事象を使用する。このノードのパラメータは次の通りである。maxCoincidenceCount:所望される同時発生事象の所定の数、minlnputValue:入力範囲の下限、maxlnputValue:入力範囲の上限、sigma:FF出力信号計算に使われるガウス分布のシグマ値、minOutputValue:単一FF出力要素の最小出力値。下側活性化値はゼロにされる(FF出力信号を「クリーン」に保ち、且つ実行時間を短縮するため)。信号量子化ノード420は、一度ノードのパラメータが設定されれば、このノードが機能するのに必要なものが他になくなるため、学習段階は不要であり、他方、推論モード(フィードフォワード)では、所望される同時発生事象の事前定義された数に基づき、指定された入力範囲を均一に量子化する。実際には、最初と最後の同時発生事象が特別である。これらの同時発生事象は、入力値が指定範囲内に収まらない場合に活性化する。この場合、隣接する量子化中心間の距離がひとたび計算されれば、勝者となる同時発生事象のインデックスの計算は単純になる。このノードを今後さらに専門化する中で、入力範囲を非線形に量子化することも想定されており、その場合、信号範囲の特定の部分区間で一層細かい量子化を必要とする信号などに対して利点を提供できる可能性がある。下記のリストは、勝者となる同時発生事象のインデックスの計算例である。
minlnputValue_ //入力範囲の下限
maxlnputValue_ //入力範囲の上限
maxCoincidenceCount_ //同時発生事象の事前定義された数
inputValue //現在の(生の)入力値
coincidenceID //親ノードへのFF出力値
distance_ = (maxlnputValue_ − minlnputValue_) / (maxCoincidenceCount_ − 3);
if (inputValue > maxlnputValue_)
coincidenceID = maxCoincidenceCount_ −1 ;
else if (inputValue < minlnputValue_)
coincidenceID = 0;
else
coincidenceID = (int) rint( (inputValue − minlnputValue_) / distance_ ) + 1.
信号量子化ノード420の利点は、事前に定義される同時発生事象にあり、これにより、量子化誤差が最小化され、全ての同時発生事象からの距離の計算が不要となることから実行が高速化し、生の信号値に正比例する同時発生インデックスが得られ、さらに、これらの利点は予測にも有用となる。
図10は、基本的ネットワークノードで使用される時間プール化ノード430の内部データ構造を示す。Numenta社の実装と異なり、本発明で使用する時間プール化ノードは、フィードバック計算経路を有し、分離を改善するための、リセット信号の意味を再定義する特別なメカニズム(例えばマーカー)と、タイムマスターのサポートと、予測用にノードの内部状態を保存するスタックと、が追加されている。この時間プール化ノードは多次元入力(同時発生空間)を受け取り、入力シーケンス間の時間的関係を発見する。学習モード時の時間プール化ノード430は、各内部状態が個々の入力同時発生事象と対応付けされた有限状態機械(FSM:finite state machine)と表現するのがおそらく的確である。同一の入力同時発生事象に対して様々な行き先状態を(現在状態に基づいて)指定できるようにするため、状態遷移表も維持される。新しい入力があるたびに、時間隣接行列(TAM:time adjacency matrix)を更新して、「前の状態→現在状態」の遷移カウンタを増加させる。リセット入力435(アクティブになっている場合)は、遷移のマーキングをスキップできる。これにより、特定の入力シーケンスの始まり/終わりをより良好に明示でき、最終TAMにおいて他のシーケンスとつながっているように見えるのを防止できる。
このノードに対し、分離メカニズムをトリガーする高度に相互接続した状態があるかどうかを定期的にチェックするよう要求することができる(図11Aを参照)。分離状態があれば、入力同時発生事象の一部(部分シーケンス)を共有する様々なシーケンスを分離することが可能になるので、グループ化アルゴリズムが異なるシーケンスを異なるグループとして識別するのに役立つ。TAMは、各分離試行の後、新しい内部状態が導入される可能性あるためリセットされる。分離メカニズムを使用した場合でも、同じ開始部分を共有する2つの異なる連鎖を分離することはできない。このため、グループ化の段階になると、図11bに示す状況が発生する可能性が非常に高い。この問題を理解しやすくするには、全く同じ歌い出しから異なる「方向」を取る2つの歌を考えるとよい。この場合、違った部分を除く先頭部分から、できるだけ早い時点で2つの歌を候補として識別できる必要がある。図11bが表すものとは全く異なる。先頭部分から識別できる歌は2つの歌のうち一方だけ(唯一の候補)であり、分化した後でなければ、もう一方が正しい歌であったことを発見できない。グループ化が関係する問題は、a)先頭部分を共有する2つの個別のシーケンス/イベント、b)現在のグループ化アルゴリズムから得られるグループ、c)連鎖が完全に分離した状態の望ましいグループである。
図12は、時間プール化ノードにおいてマーカーを用いる分離メカニズムを図解したものである。一部重なり合う連鎖をより適切に分離するため、我々は、リセット信号435を新たなやり方で使用できる新しいメカニズムを導入した。ここでは、多くの様々なリセット指令を指定して、リセット入力チャンネルに様々な値を設定することができる。各リセット値は別々のマーカーと関連付けられる。マーカーとは、同時発生事象と対応付けされていないノード内部状態である。この特定の学習モードでは、リセット信号xを受信するたびに、(「前の状態→現在状態」でなく)「マーカーx→現在状態」という遷移がマーキングされて、関連事象の始まりであることを知らせる。その結果、図12に示す状況が得られる。2つの異なる事象が入力シーケンスの先頭部分を共有していても(図12a)、2つの異なるマーカーでマーキングされれば(図11b)、分離アルゴリズムは2つの連鎖を完全に分離できるので、グループ化アルゴリズムでは、マーカーを破棄すれば2つの個別グループを正しく形成することができる(図12c)。学習後の段階において、学習段階の直後のステップはいわゆる「グループ化」である。グループ化の目的は、訓練時に見られた最も頻繁な(目立つ)入力シーケンスを表す内部状態のグループを発見することである。この目的で、TAMを連結グラフとして使用し、この連結グラフから、高度に連結した状態を抽出しグループ化する。したがって、個々の単一グループは複数の(内部)状態の集合であり、この集合は、内部状態の連結の程度を指定する独自の下位TAMを備える。個々のグループをマルコフ連鎖ととらえることもできる。この段階で使用可能なアルゴリズムとして、階層型グルーピング、成長等のいくつかのアルゴリズムがある。推論モード(フィードフォワード)では、TPノードは、現在の入力シーケンスの所属先グループを算定しようとするが、実際には、複数グループに対する確率分布を提供している。FFoutput432は、学習済みグループに対する確率分布を提供する。図10を参照すると、タイムマスター230がTPノードにFF経路の更新を要求するたびに、以下の計算が実行される。フィードフォワード内部状態αは次式で更新される。
式中、nsはTAMの内部状態の数であり、Cは、個々の状態とそれに対応する同時発生事象インデックスとを対応付ける関数である。次に、グループの状態の中で最も高い活性化値として、各グループの活性化値を次式により計算する。
式中、ngは、学習段階中にノードが学習したグループの数である。最終的に次式となる。
推論モード(フィードバック)において、フィードフォワード経路に採用された推論メカニズムがFBinput433を使用するように拡張されて、内部状態に対して計算された確率分布をさらにフィルタリングする。FBoutput434は、入力された同時発生事象に対する確率分布を提供する。図10を参照すると、タイムマスター230がTPノードにFB経路の更新を要求するたびに、以下の計算が実行される。フィードバック内部状態(β)は次式で更新される。
式中、nsはTAMの内部状態の数であり、Cは各状態とのその対応する同時発生事象インデックスとを対応付ける関数であり、Gは各状態とその所属先グループのインデックスとを対応付ける関数である。次に、各同時発生事象と対応付けされたTAMの全ての内部状態の総和を取ることにより、当該同時発生事象の活性化値を次式により計算する。
式中、ncは入力された同時発生事象の数である(FFin次元)。最終的に次式となる。
図13は、強制的時間プール化ノード440の内部データ構造を示す。Numenta社の実装と異なり、このノードは通常の時間プール化ノード430の異型である。異なる入力シーケンスを異なるグループ(例えば信号の原形)として直接ノードに「教える」ことを可能にする目的で、「強制的学習」モードを追加した。FFoutの安定性を高め、グループ/原形の追従を改善する目的で、推論過程も修正した(「強制的推論」モードを追加)。ここでは、提供された原形/グループ/シーケンスをノードが「そのまま」学習し、内部状態(及びそのシーケンス)が「手渡し」で与えられる。さらに、グループとそのサイズが予想と全く同じ結果となり、複雑なグループ化や分離操作は不要となる。
学習モードでは、新しい入力があるたびに、TAMに対して新しい内部状態が作成される。この新しい状態が現在の入力同時発生事象と対応付けされ、さらに、リセット信号がアクティブでなければ、前の状態からの遷移が内部遷移表に追加され、TAMにマーキングされる。このようにして、分離アルゴリズムが不要になる。同時に、グループ化が非常に単純で容易になる。すなわち、どの状態も前の状態と次の状態をそれぞれ1つだけ有し、複数の異なる連鎖は、リセット信号により分離状態を保つ。
推論モード(フィードフォワード)では、この「強制的推論」は、時間プール化ノード430の中で使われる本来の推論とは全く異なる。ここでの目的が追従/合図すべきグループをできるだけ少なくして、同時にFFoutputをできるだけクリーン且つ安定した状態に保つことであるため、グループの部分集合(アクティブグループ、AG)のみを繰り返し更新し続ける。他の全てのグループに属する状態は、非活性の状態に維持される(活性化値をゼロに設定)。このアプローチにより、「複数の活性化」、すなわち、この種のノードが複数の同等確率のグループを同時に知らせることが可能になる。各アクティブグループに対し、タイムステップごとに、次に予想される同時発生事象の活性化が点検されてFFinputに書き込まれ、次の状態の活性化値が次のように計算される。
式中、Cは各状態とその対応する同時発生事象インデックスとを対応付ける関数であり、Nは引数の所属先グループの中の次の状態を返す関数であり、Gは、特定グループの現在の状態(最高の活性化値を有する状態)のように各状態とその所属先グループのインデックスとを対応付ける関数であり、Asは全てのアクティブ状態の集合であり、Agはアクティブグループのみを含む集合である。
同時に、全グループの活性化値が次のように更新される。
式中、ngは学習段階中にノードが学習したグループの数であり、Gは、新しく計算されるasとAgに関して、各状態とその所属先グループのインデックスとを対応付ける関数である。アクティブグループの活性化値がゼロに降下するたびに、当該グループが集合Agから削除される。集合Agが空になるたびに、新たな「投票」が実施されて、アクティブになり得るグループの新規集合が選択される。この目的で、現在の入力同時発生事象に対応付けされている状態を含むグループだけが考慮され、この状態とグループ連鎖先頭の間の距離に基づいて、別の票が別のグループに割り当てられる。このように、グループの末端近くでランダムにグループがピックアップされるのでなく、グループの先頭から追従されるので、FFoutputの安定度がはるかに増す。
推論モード(フィードバック)では、FBoutput444が入力同時発生事象に対する確率分布を提供する。図13を参照すると、タイムマスター230がノードにFB経路の更新を要求するたびに、以下の計算が実行される。フィードバック内部状態(β)を更新するには、FFoutputとFBinputの間の共通部分が計算される。何らかの一致がある場合(すなわち共通部分が空でない場合)、共通部分から得られるグループの中から勝者グループが選択される。それ以外の場合は、制御信号445を介して選択される機能モードに基づいて、FFoutputのみ又はFBinputのみから、ノードが勝者グループを選択できる。勝者グループwgが選択された後は、そのグループの状態の活性化値が次式によりαからβにコピーされる。
式中、nsはTAMの内部状態の数であり、Gは、各状態とその所属先グループのインデックスとを対応付ける関数である。次に、Bel状態の中の、最も高い活性化値wsを有する状態に対応する同時発生事象wcだけをマーキングする。
式中、nsはTAMの内部状態の数であり、Cは、個々の状態とそれに対応する同時発生事象インデックスとを対応付ける関数である。最終的に次式となる。
強制的時間プール化440の利点は、訓練が簡単/短時間になり、FF推論(FFout)の安定性がはるかに高くなり、ワイヤードメモリレベル310の内部で使用すれば信号の原形を認識でき、イベントプール化ノードの子ノードとして非常によく適していることである。
図14は、イベントプール化ノード450の内部データ構造を示す。ここで、ciは入力同時発生事象を表し、siは内部状態(様々なグループに所属し得る多くの状態を同一の同時発生事象と対応付けしてよい)を表し、giは、多くの状態Sjで構成されるグループであって、各々の状態は単一の入力同時発生事象Ckと対応付けされるグループを表す。各状態は(排他的に)1グループにのみ属し、αは現在のフィードフォワード内部状態を格納し、αstackは、状態αを保存し復元するために使われるメモリスタックであり(主に予測目的で使用)、αiは状態sjのフィードフォワード活性化値を格納し、βは現在のフィードバック内部状態を格納し、βstackは、状態βを保存し復元するための使われるメモリスタックであり(主に予測目的で使用)、βiは状態sjのフィードバック活性化値を格納する。新しいデータ構造である状態永続性行列(SPM:State Permanence Matrix)を用いて、学習段階で決定される各内部状態の永続性統計情報を保存する。SPMiは状態siに関して決定される平均永続度μi、及びその相対標準偏差σiを格納し、ρは「同時発生事象がグループを指す」確率を格納し、ρiは、(状態siと対応付けされている)同時発生事象cjが、入力とみなされた場合にグループgr(siを格納)を指す確率を表す(統計情報は学習中に収集されるが、ただし他の複数のグループに属する他の複数の状態が同一の同時発生事象と対応付けられることがあり得る)。言い換えれば、ρは、同時発生事象cjを入力とみなした場合に、知らせるべき正しいグループがgrである確率を表す。τは「状態永続性」確率を格納し、τiは状態siの形で残る確率をガウス分布としてモデル化する。その計算と更新は、(学習時に決定され)SPMの中に保存されている統計情報μiとσiに基づいて、且つ対応する同時発生事象cjが最初に入力とみなされた時から経過したタイムステップ数に基づいて行われる。現在の入力がcjでない場合はゼロに設定される。δは状態の減衰期間を格納し、δiは状態siの永続性と関連付けられている減衰期間を表す。δは、生体神経回路網にも存在するメカニズムを模倣するものである。
その目的は、入力シーケンス(又はイベント)をより賢く学習することである(使用メモリをごく少量に維持し、推論時により適切に一般化できるようにする)。イベントプール化ノードは、ネットワークの高位レベル内でイベントをより適切にモデル化するように(例えば、主要情報が空間でなく時間に存在する通常のメモリレベル320の内部で使用するように)設計されている。この目的で、このノードの内部では、新規概念の状態が使われている。子ノードがきわめて安定したFFoutを提供でき、同一の同時発生事象を何度も連続的に知らせると考えるのは妥当であるようなので、ある同時発生事象の時間に存在する「期間」を表す状態を持つことは合理的である。したがって、時間プール化ノード430のように一時点のみを表すのでなく、ある状態は多くの時点を表すことができる。この新しい状態定義は、長い入力シーケンスを保存し呼び出すノードの能力を改善するものであり、時間に存在する複雑なイベントを表すのに必要なTAMが非常に小さくなる(メモリのスリム化)。
各内部状態を「イベント」と呼ぶことができ、このイベントは、学習段階中に決定されSPM内に保存される平均期間で特徴付けられる(可変時間メカニズム)。推論段階中、TAMとSPMを併用して新しいイベント連鎖を追従する。なお、時間プール化ノード430に関して上記で説明した修正学習モード(マーカー利用)を、このノードに使用することも可能である。
学習モードでは、時間プール化ノード430の内部で発生することと異なり、新しい入力があるたびにTAM内の遷移をマーキングすることはない。実際に新しい遷移をマーキングするのは、下方からの証拠に「変化」が検出されたときだけである。すなわち、新しいイベントの始まりがFFinputでトリガーされているときのみ、新しい遷移をマーキングする。下方からの証拠の「変化」を検出するように設計された特殊メカニズムについては、次のサブセクションで説明する。FFinput内部に変化が検出されない間は、現在のイベントが続く時点の数(期間)に関する統計情報を収集し、この情報は後の推論段階で使われる。分離メカニズムも、通常の時間プール化ノード430に関して説明されている目的と同じ目的で使われる。この場合、より単純な連鎖の形成が予想されるという理由で、より「果敢」な分離アルゴリズムを使用することも可能である。加えて、永続性統計情報に基づく状態分離も使用可能である。
多くの場合、子ノードは、各々のFFoutputを通じて同時に複数の勝者グループを知らせると仮定できる。一般にこれを「多重活性化」(multiple-activations)と呼ぶ。このことは特に、子ノードが強制的時間プール化ノード440である場合に当てはまる。後続の多重活性化に着目すると、いくつかのアクティブグループが連続的タイムステップに渡って持続する一方で、他のアクティブグループは同じ期間中に出現し消滅するという事象が頻繁に発生する。したがって、連続した多重活性化をフィルタリングして、勝者であり続けるグループのみを抽出することは理にかなっている。一連の多重活性化から(全ての)持続グループが消滅したときに限り、「イベント」をトリガーしてTAM内に新しい遷移をマーキングすることは意味をなす。この挙動を得るには、連続した多重活性化間の共通部分を更新し点検して、共通部分が空になったときのみイベント変化を知らせればよい。表1は、学習段階中にイベントプール化ノード450のFFinputを通じて受け取る多重活性化の例を示す。1列目は現在のタイムステップを表し、2列目は、子ノードがそのFFoutputを通じて知らせた勝者グループの集合を示す。「共通部分」の列は、前のタイムステップから更新され続けている仮説上の「共通部分」の現在の内容を表す。この共通部分が空となるたびに(ステップ33、41、48)イベント変化が合図され、共通部分自体が、入力とみなされる現在の多重活性化へと再初期化され、繰返し回数の「カウンタ」がゼロになる。イベント変化が知らされたときに以前のイベントの期間を提供できるようにするため、共通部分が空にならない限りは、同じ繰返しカウンタの数字が増加する(列nrepを参照)。末尾の列(「マーキングすべき遷移」)は、このサンプル入力シーケンスの間にTAMにマーキングされるべき遷移のみを示す(入力ステップ数と比べて遷移は明らかに少数である)。
学習例として、以下の入力シーケンスが通常の時間プール化ノードに提示された場合、
111122233333344
(適切な分離ステップの後)以下のシーケンスを学習すると言える。
(1)→(1)→(1)→(1)→(2)→(2)→(2)→(3)→(3)→(3)→(3)→(3)→(3)→(4)→(4)
各一対の括弧はノードの内部状態を表し、括弧内の数字は、個々の状態と対応付けされた同時発生事象を指定する。
これと異なり、イベントプール化ノード450は以下のシーケンスを学習する(この場合は分離する必要が全くない)。
(1;4;1)→(2;3;1)→(3;5;1)→(4;2;1)
各一対の括弧はノードの内部状態を表し、1番目の数字は個々の状態と対応付けされた同時発生事象を指定し、2番目の数字(太字)は当該同時発生事象の学習中に見られた連続した繰返し回数の平均を表し、3番目の数字(斜体)は、平均繰返し回数(2番目の数字)の計算に使われたサンプルの標準偏差(この場合、シーケンス例を1回だけ「提示」したと仮定しているので常に1となる)を指定する。
これと異なり、訓練データ内に以下の2つのシーケンスが(おそらく、それぞれ複数回)含まれているとすると、
...
1 1 1 2 2 2 2 2 4 4
...
1 1 1 1 1 1 2 2 4 4
...
イベントプール化ノード450は以下のシーケンスを学習することになる。
(1;4.5;1.5)→(2;3.5;1.5)→(4;2;1)
この場合、一部の状態の分散が1より大きい。
推論モード(フィードフォワード)では、FFoutput452が学習済みグループの比例分布を提供する。図14を参照すると、タイムマスターがノードにFF経路の更新を要求するたびに、以下の計算が実行される。入力動態に基づき、下記の通り2種類の挙動を用いてフィードフォワード内部状態(α)を更新する。
1.下方からの証拠の変化が検出された場合、EP450は、通常の時間プール化ノード430で使われるのと同一の式を用いて内部状態を更新し、ゆえに全ての内部連鎖を1ステップ前に動かす。
式中、nsはTAMの内部状態の数であり、Cは、個々の状態とそれに対応する同時発生事象インデックスとを対応付ける関数である。
2.下方からの証拠が持続している場合、学習中に収集した統計情報を用いて、現在アクティブとなっている内部状態の動作をモデル化する。
式中、i∈Asであり、Asは、現在アクティブのグループからのみ取得した最もアクティブな状態(勝者である状態)を格納し、nrepは、現在の入力同時発生事象の繰返しが開始した時から経過したタイムステップ数であり、μiとσiは、状態siと関連付けされたSPMiから取り出された繰返し統計情報であり、DecaySpeedは減衰率であり、Cは、各状態とその対応する同時発生事象インデックスとを対応付ける関数である。現在のところ、DecaySpeedはグロバールパラメータ(ある一定レベルで求められるイベントの期間に応じて見出されるパラメータ)であるが、今後の開発に伴い、選択値を学習段階に直接埋め込むことが可能になる。
この後、各グループの状態の中で最も高い活性化値として、各(アクティブ)グループの活性化値を次式により計算する。
式中、ngは、学習段階中にノードが学習したグループの数である。最終的に次式となる。
推論モード(フィードバック)では、FBoutput454が入力同時発生事象に対する確率分布を提供する。図14を参照すると、タイムマスターがノードにFB経路の更新を要求するたびに、以下の計算が実行される。フィードバック内部状態(β)は次式で更新される。
式中、nsはTAMの内部状態の数であり、Gは、各状態とその所属先グループのインデックスとを対応付ける関数である。次に、各同時発生事象と対応付けされたTAMの全ての内部状態のうちの最大値を取ることにより、各同時発生事象の活性化値を次式により計算する。
式中、ncは入力同時発生事象の数である(FFin次元)。最終的に次式となる。
強制的時間プール化ノード440が通常のプール化ノード430の異型であるのと全く同様に、図8に示す強制的イベントプール化ノード(FEP:Forced Event Pooler)460は上記イベントプール化ノード450の異型である。
図16は、量子化された信号を処理する平滑化ノード470の出力例を示す。平滑化ノード470の目的は、量子化の影響から回復するために信号をフィルタリングして、信号を「スムーズ」にすることである。例えば、信号量子化ノード420のフィードバック出力をフィルタリングすることにより、量子化の影響を何らかの形で隠す、或いは量子化の影響から回復することができる。この操作は、ワイヤードメモリレベル310の内部で(任意に)使われる方法そのものである。
図17〜20は、本発明の上記実施形態のいずれかによる人工記憶システムの応用の機能ブロック図をさらなる実施形態の形で示し、図21〜22は別の方法を示す。
以下、図17を参照して説明されるAMSシステムの具体的展開例を説明する。図に示すシステム例の構成要素は次の通りである。100:人工記憶システム(AMS)。101:AMSに至る入力信号バス。102:AMSの高位レベル分類結果。104a:現在の入力に対するAMSの状態に従ってAMSが生成したフィードバック信号。104b:AMSの状態及びモジュール140から送られる制御信号に従ってAMSが生成した予測信号。105:AMS内制御信号の入力バス。106:AMS内リセット信号の入力バス。107:AMSが生成したコンテキストチェック信号。この信号は、現在の入力に対するメモリの一貫性性能インデックスを与える。110:周辺環境感知モジュール。ツール近くの環境を感知するセンサ群が組み込まれている。111:モジュール110が生成する信号の出力バス。120:ツール動態センサモジュール。人間からの指令で生じるツールの動的応答を感知するためのセンサ群を含む。121:モジュール120が生成する信号の出力バス。130:人間指令モジュール。人間がコントローラを介してツールに与える生の指令を感知するためのセンサ群が組み込まれている。131:モジュール130が生成する信号の出力バス。140:ツールI/Oインタフェース:人間はこのインタフェース(例えばダッシュボード)を介してツールの動作を制御できる。141:出力制御指令バス。様々なタスクを実現する目的で、モジュール140からAMSに多くの制御信号を送信できる。142:モジュール150に至る出力信号制御線。143:モジュール140と関連付けられたデータベース。AMS内で読み込み/更新ができる様々な熟練者挙動パターンを保存する。144:モジュール150からの入力信号制御線。150:例外評価部コントローラモジュール。モジュール100が発したコンテキストチェック信号を分析し、新規パターンの記録及び学習過程を制御する。151:モジュール140に送られる制御信号の出力バス。152:モジュール140から送られる制御信号の入力バス。153:モジュール160に送られる制御信号の出力バス。154:ゲート170、171、172に送られる制御信号の出力バス。155:モジュール100から送られるコンテキストチェック信号の入力バス。156:モジュール160から送られる制御信号の入力バス。157:モジュール140から送られる制御信号の入力バス。160:パターン記録部モジュール。モジュール100が使用する信号と同一の「生」の信号を保存する。モジュール100から特定の制御信号を受信したときに、これらのパターンを記録する。161:保存用データベース。162:モジュール150に送られる制御信号の出力バス。163:モジュール150から送られる制御信号の入力バス。164:「生」の入力信号の入力バス。170:モジュール110とモジュール100の間の通信を制御するゲート。171:モジュール120とモジュール100の間の通信を制御するゲート。172:モジュール130とモジュール100の間の通信を制御するゲート。
本発明の継続的学習メカニズムの例として、以下、自動車分野における本システムの具体的展開例を説明する。この例では、「ツール」は自動車、「人間」はドライバーであるものとする。本システムには、「アクティブ」モードと「学習」モードの2つの動作モードがある。自動車を使用している状態が「アクティブ」モードであるのに対し、「学習」モードでは、好ましくは、自動車をガレージ又は適切な場所に駐車させエンジンを切った状態にある。「アクティブモード」では、モジュール100は以下を感知する。
−自動車近傍の環境。センサ群(カメラ、ライダー、GPS、温度/湿度センサ等)を用いて感知する。
−人間の行動に対する自動車の動的応答(横加速、前面加速、速度等)。
−ドライバーの「生」の指令(ハンドル位置等)。
人工記憶システムモジュール100は、モジュール110、120、130で生成された信号をバス101を介して収集する。人工記憶システムモジュールは、自動車の挙動を表す記憶パターンを備えている。この記憶を利用することにより、人工記憶システムモジュールは、自動車から送られるセンサデータを分類、予測、又はフィルタリングして、計算結果を送り返すことができる。このモジュール100を制御するにはモジュール140を使用する(例えば、分類の有効/無効、予測の有効/無効、様々なパターンの学習又はメモリへの読み込みを制御できる)。さらに、モジュール100はコンテキストチェック信号をバス107上に生成する。この信号はメモリの内部の一貫性状態を表し、モジュール100の出力が信頼できる時を明示する働きをする。モジュール150はモジュール100からコンテキストチェック信号を受け取る。また、出力バス153を介してモジュール160に制御信号を送ることにより、現在の「生」の信号を、より深いオフライン分析用に記録することを決定することができる。モジュール160は、該当する信号を受け取った後、(バス164を介して受信する)「生」の入力信号をデータベース161に保存する。さらにモジュール160は、モジュール160の内部状態を報告するためモジュールと150と通信することができる。データベース161は、システム性能の改善に利用可能な、「生」の予期されない入力パターンを保存する。システムが「学習」モードに切り替えられると、ツールI/Oインタフェースは、バス信号142を介して例外評価部にこの変更を伝える。次に、バス141経由でAMSの訓練モードを設定するため、例外評価部はモジュール140に向けて制御信号をトリガーし、モジュール160及びゲート170、171、172に制御信号を送る。パターン記録部160は、モジュールAMSにパターンを学習させるため、データベース161に以前保存したパターンをモジュールAMSに供給する。同時に、モジュール110、120、130とAMSの間のゲートが開く。このようにして、AMSは自動車から提供される「生」の入力信号に応答せずに、160から送られるパターンに集中する。
こうした信号の組み合わせにより、モジュールAMSはパターン記録部モジュールから提供される新規パターンを学習する。この過程の間、例外評価部は、一貫性に関してシステムを調整するため、コンテキストチェック信号を点検して、一貫性のない状態がメモリにあるかどうかを確認する。
以下、図18を参照して説明されるAMSシステムの具体的展開例を説明する。符号説明は次の通りである。
100:人工記憶システム(AMS)。
201:上記実施形態の説明のようにAMSに至る入力信号のバス。
202:AMSの高位レベル分類結果。
204a:現在の入力に対するAMSの状態に従ってAMSが生成したフィードバック信号。
204b:AMSの状態及びモジュール240からの制御信号に従ってAMSが生成した予測信号。
205:AMS内制御信号用の入力バス。
206:AMS内リセット信号用の入力バス。
207:AMSが生成したコンテキストチェック信号。この信号は現在の入力に対する整合性メモリ性能インデックスを与える。
210:周辺環境感知モジュール。ツール近くの環境を感知するセンサ群が組み込まれている。
211:モジュール210が生成する信号用の出力バス。
220:ツール動態センサモジュール。人間からの指令で生じるツールの動的応答を感知するためのセンサ群を含む。
221:モジュール220が生成する信号用の出力バス。
230:人間指令モジュール。人間がツールに与える生の指令を感知するためのセンサ群が組み込まれている。
231:モジュール230が生成する信号用の出力バス。
240:ツールI/Oインタフェース:人間はこのインタフェース(例えばダッシュボード)を介してツールの動作を制御できる。
241:モジュール240と関連付けられたデータベース。AMS内で読み込み/更新ができる様々な認識パターンを保存する。
242:出力制御指令バス。様々なタスクを実現する目的で、モジュール240からAMSに多くの制御信号を送信できる。
243:モジュール250からの入力信号制御線。
244:モジュール250に至る出力信号制御線。
250:認識評価部モジュール。AMSから信号202、204a、204b、207を受け取り、この情報を用いてツール使用中のユーザーの認識を評価する。
251:モジュール250からの出力バス線。
252:モジュール250からの出力バス線。
253:モジュール250に至る入力バス線。AMSが受信する入力と同一の入力を受け取り、モジュール250がこの入力と信号254、255、256、257を併用して出力信号を生成する。
254:モジュール100から送られる予測出力を伴う入力バス線。
255:モジュール100から送られる分類結果出力を伴う入力バス線。
256:モジュール100から送られるフィードバック出力を伴う入力バス線。
257:モジュール100から送られるコンテキストチェック制御出力を伴う入力バス線。
259a:モジュール240から送られる信号用の入力制御線。
259b:モジュール240に送られる信号用の出力制御線。
260:受動制御モジュール。モジュール240に制御されて、ツールのユーザーに対して一連の動作をする。
261:モジュール260からの出力バス線。
270:能動制御モジュール。モジュール240に制御されて、直接ツールに対して一連の動作をする。
271:モジュール270からの出力バス線。
以下、(上記の実施形態で説明した)AMSの具体的展開例を説明する。この展開例は、自動車分野に属し、本発明の一実施形態であり、図18を参照して説明される。
この例では、「ツール」は自動車、「人間」はドライバーであるものとする。モジュール210は、カメラ、ライダー、車線検出器、GPS受信機といった物理的センサにより、自動車近傍の環境を感知する。
モジュール220は、自動車の速度、横加速、及び/又は前面加速のような信号を収集する。モジュール230は、ドライバーが自動車に与える「生」の入力指令を感知する(例えばスロットルの絞り、ハンドルの位置等)。「ドライバー」は自律的ドライバーであってもよい。例えば、ドライバーの指令を、システムが読むことのできる適切な記憶媒体に格納されたコマンドの形で先験的に与えてもよい。指令とは、目的地、到着予想時間、予想燃料消費量、運転の仕方(攻撃的、スポーティ、穏やか)等である。また、実際の人間のドライバーが意図的にシステムにスイッチを入れ、加速、制動力、速度、燃料消費量等が当該ドライバーの通常の挙動その他の挙動に従うように指令を与えて、当該ドライバーを目的地まで動かすこともできる。
指令がない場合には、システムが代行することも可能である。例えば、ドライバーが眠っていることが検出されれば、システムは車両を安全に停止させる。ドライバーが眠り込んだかどうかは、認識チェック部が検出できる。
本発明の認識機能とドライバーの特性とを組み合わせて使うこともできる。初心者にとっての緊急事態は、F1レーサーには緊急事態でない場合もある。したがって本発明の実施形態は、ツール挙動の認識と、例えば運転挙動により決定されるドライバー特性とを組み合わせて使用する。
モジュール100はモジュール210、220、230から入力信号を受け取る。モジュール100は、その内部記憶に従ってドライバーの挙動を評価する。モジュール100は、運転スタイルを評価し(バス202)し、数秒先にドライバーが行うことを予測し(バス204b)、指令の現在の入力パターンをフィルタリング及び/又は再構築する(バス204a)ことができる。さらに、予期されない挙動を明示している現在の入力に対して、モジュール100の状態の一貫性を評価することができる(バス207)。
モジュール100は、自動車のダッシュボード等のツールI/Oインタフェース(モジュール240)を通じて、ドライバーと整備士の双方から制御信号を受け取ることができる。この種の信号を使用して、モジュール100内部のメモリの状態を更新及び/又は修正することができる(例えば、ドライバーは自身の運転スタイルの予測を有効/無効にでき、整備士はAMSに保存された認識パターンを更新できる)。
モジュール250は、モジュール100(信号254〜257)及びオリジナル信号253から入力を受け取り、提供された情報を用いて、ドライバーの認識規則群に従って評価を行う。このようにして出力信号251、252を生成する。モジュール250は、ダッシュボードの状態を適切に設定する目的で、モジュール240に通じる制御バスを備える。
モジュール240は、内部状態を適切に設定する目的で、モジュール250に通じる制御バスを備える。モジュール260はモジュール250から制御信号を受け取り、ドライバーが意識し続けるようにドライバーに関する一連の動作をする(例えば、ドライバーの座席を揺らす、表示及び/又は音声によるアラームをオンにするなど)。
モジュール260は、モジュール250から制御信号を受け取り、予期せぬ挙動を防止するため自動車のアクチュエータを駆動する。
以下、(上記の実施形態で説明した)AMSの具体的展開例を説明する。この展開例は本発明の一実施形態であり、図19を参照して説明される。
100:上記実施形態のいずれかに記載の人工記憶システム(AMS)。
301:AMSに至る入力信号のバス。
302:AMSの高位レベル分類結果。
305:AMS内制御信号用の入力バス。
306:AMS内リセット信号用の入力バス。
307:AMSが生成したコンテキストチェック信号。この信号は、現在の入力に対するメモリの一貫性性能インデックスを与える。
310:周辺環境感知モジュール。ツール近くの環境を感知するセンサ群が組み込まれている。
311:モジュール310が生成する信号用の出力バス。
320:人間入力コントローラモジュール。コントローラを介するゲームプレイヤーの動作を感知する(ボタン押下、左右移動、不規則な揺り動かし等)。
321:モジュール320が生成する信号用の出力バス。
330:プレイヤー入出力インタフェース。この制御インタフェースを通じて、ゲームプレイヤーはモジュール100の多くの挙動を変更できる(新しいゲームプロファイルをAMSメモリに読み込むなど)。
331:多くのゲームプロファイルを保存するデータベース。世界中でこのデータベースを共有できる。
332:出力バス線。この線を通じてモジュール330がモジュール100を制御する。
340:AIゲームコントローラ。ゲームにおける仮想プレイヤーの人工知能コントローラを実装する。
341:モジュール340内戦略プランの出力バス。
342:340への入力コンテキストチェックバス信号。
343:340への入力戦略分類結果バス。
以下、本発明の一実施形態として、エンタテイメントコンソールの内部にあり、(仮想テニスプレイヤー等の)AIゲームアシスタントとして使われる一実施形態である上記AMSを、図19を参照して説明する。
モジュール310は、カメラ、IRイルミネータ等のセンサ群を用いて、プレイヤー又はゲームプレイヤーの位置及び近傍の環境を感知する。
モジュール320は、ゲームプレイヤーが人間入力/コントローラを用いて行う指令を感知する(ボタン押下、コントローラの揺り動かし、一方向への移動等)。
モジュール100は、モジュール310、320が生成した信号を受け取り、信号を分類して、ゲームプレイヤーのスタイル及び潜在的弱点を認識する。このタスクを遂行するため、AMSモジュール100は、様々なゲームパターンを保存するメモリを備える。AMS100は、ゲームプレイヤーのスタイル(果敢、エキスパート、穏やか、初心者等)を認識でき、同時に、入力信号(301)とフィードバック間の一貫性を評価してプレイヤーの弱点を発見することができる。
ゲームプレイヤーは、プレイヤー入出力インタフェースモジュール330を使って、AMSモジュール100内に保存されたゲームパターンを更新/削除/変更できる。
AIゲームコントローラ340は、AMSモジュール100で生成された信号(302、307)を使用することにより、相手と戦うための最善の戦略を計画する(そして、より向上したゲーム経験を生み出す)。
コンテキストチェック信号307はプレイヤーの挙動レベルの弱点を提供するので、モジュール側では、プレイヤーをより困難なチャレンジに関与させるための行動をいつ、どのように遂行すべきかを知ることができる(例えばテニスゲームのゲームアシスタントは、プレイヤーはサービスが下手、右のレスポンスが悪い等を知ることができる)。スタイル分類信号302は、プレイヤーの全体的分類結果を提供する。AIゲームコントローラモジュール340はゲーム経験向上のため難易度を自動で設定でき、ゲームプレイヤーが事前に選択する必要はない。
この目標を達成できるようにAMS100を訓練するには、訓練過程を以下のステップで構成することができる(ただし下記ステップに限定されない)。
1.データの取得:様々な人々が多数のゲームをして全てのゲームプレイヤーのスタイルが実行される間、入力信号(例えばプレイヤー入力)をシステムに記録する。
2.データの前処理:統計的方法により記録データを分析して、様々なレベルの時間的複雑さにおけるプレイヤーの動きとスタイルを表す原形及びプロトタイプを抽出する。
3.データのラベル付け:所望されるゲームプレイヤーのスタイルに応じてプロトタイプにラベルを付ける。
4.データの複製:充分に分離するためデータを複製し、増強型階層メモリ220のレベルことに異なる訓練ファイルを作成する。
5.訓練:AMS100を訓練モードに切り替えて、AMS100の各レベルに訓練ファイルを供給する。
6.テスト:AMS100を推論モードに切り替えて、一部の記録データ及び予めラベル付けしたデータを供給する。AMS100出力とラベルを照合し、システムの精度を計算する。
以下、(上記の実施形態で説明した)AMSの具体的展開例を図20を参照して説明する。参照符号は次の通りである。
100:上記実施形態のいずれかに記載の人工記憶システム(AMS)。
401:AMSに至る入力信号のバス。
402:AMSの高位レベル分類結果。
407:AMSが生成したコンテキストチェック信号。この信号は、現在の入力に対するメモリの一貫性性能インデックスを与える。
310:周辺環境感知モジュール。ツール近くの環境を感知するセンサ群が組み込まれている。
411:モジュール410が生成する信号の出力バス。
420:ツール/車両動態モジュール。このモジュールは、ツール/車両の動的応答を感知するセンサ群を備える。
421:モジュール420が生成する信号の出力バス。
430:人間入力コントローラモジュール。このモジュールは、人間が制御する乗り物(航空機、自動車、船/ボート等)のアクチュエータを感知する。
431:モジュール430が生成する信号の出力バス。
440:ブラックボックスコントローラモジュール。このコントローラは、モジュール100と同一の信号に加えてバス443から送られる別の入力を、入力バス442を介して受信する。このコントローラは、バス443が警報を報告したときにバス442のデータを441に記録する。
441:潜在的な危険な410、420、430から送られる「生」の信号を保存するデータベース。
442:410、420、430から送られる「生」の信号を搬送する、モジュール440に至る入力バス線。
443:モジュール100から送られるコンテキストチェック用の、モジュール440に至る入力バス線。
450:ブラックボックス書き込み部。モジュール100から出力信号分類結果を受け取り、この分類結果を連続的に451に保存する。
451:モジュール100で計算されたパターン分類結果を保存するデータベース。
452:信号分類結果を搬送する、モジュール450に至る入力バス線。
以下、例えば、本発明の一実施形態であるブラックボックスにデータを提供することを目的とした、上記AMSの航空機内部の具体的展開例を図20を参照して説明する。
モジュール410は、センサ群により航空機周辺の環境を感知する。
例えば、天候状態(温度、湿度、大気圧、明るさ等)、航空機正面の障害物の有無、GPS位置等を感知することができる。モジュール420は、人間の行動に対する航空機の動的応答(対気速度、迎角、対地速度、方向安定性、フィート/分等)を感知する。
モジュール430は、航空機のコントローラを介して航空機に与えられる人間の「生」の指令(操縦桿、スロットル、下げ翼の位置等)を感知する。モジュール410、420、430で生成された信号はバス401を介してモジュール100に集められる。
モジュール100は、航空機の挙動に関する様々な記憶パターンを多数備えている。このようにして、モジュール100は、「生」の入力情報を、航空機の状態を要約したより高位レベルの情報に圧縮して、バス402に送信することができる。同時に、メモリ内部のフィードバック信号とフィードフォワード信号の間に一貫性がない場合、モジュール100はバス407に例外を投げる。このようにして、潜在的に危険な状況のような予期せぬ状況を検出することができる。
ブラックボックスコントローラ(モジュール440)は、バス442から「生」の入力信号を受け取り、バス43からコンテキストチェック信号を受け取る。ブラックボックスコントローラがバス443で例外を受け取った場合は、「生」の入力信号をデータベース441に保存する。保存した情報を後で取り出して、より深い分析に使用することができる。
モジュール450は、モジュール100で生成された分類結果出力をバス452経由で受け取り、データベースモジュール451に記録する。
バス443に例外が生じたときに限り、モジュール440が「生」の信号をデータベース441に書き込むのに対し、モジュール450は分類データを連続的に書き込む。このシステムの最終目標は、情報を圧縮することにより、メモリ消費量を常に制御下に置き、航空機で起こっていることをよりよく理解することである。
本発明はプロセッサシステムで実現することができる。処理システムには計算デバイスや処理エンジン(マイクロプロセッサ、FPGA等)が含まれてよい。本発明の実施形態又は請求項に記載のどの方法も、処理システムに実装することができる。このような処理システムには、少なくとも1つのメモリ形態を含むメモリサブシステム(例えばRAM、ROM等)と連結した、少なくとも1つのカスタマイズ可能プロセッサ又はプログラム可能プロセッサを含めてよい。なお、単一又は複数のプロセッサは、汎用、特定用途のどちらかのプロセッサでもよく、デバイス(例えば、他の機能を実行する他のコンポーネントを有するチップ)に組み込まれるように作られたプロセッサであってよい。したがって、本発明の実施形態による方法の1つ以上の態様を、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせに実装することができる。処理システムには、少なくとも1つのディスクドライブ及び/又はCD−ROMドライブ及び/又はDVDドライブを有するストレージサブシステムが含まれていてよい。いくつかの実装では、ユーザーがパラメータ値等の情報を手動で入力できるようにするためのユーザーインタフェースサブシステムの一部として、ディスプレイシステム、キーボード、及びポインティングシステムを含めてよい。図17〜22を参照して説明されているデータ及び/又は指令の入力等のデータを入出力するためのポートを含めてよい。様々な種類の物理センサへの接続を可能にするネットワーク接続、各種デバイスとのインタフェース等のさらなる要素を含めてよい。処理システムの各種要素を、単純化のため単一バスとしてのバスサブシステムを経由させる等の様々な方法で連結してよいが、当業者は、このような連結を、少なくとも1つのバスからなるシステムを含むものと理解する。メモリサブシステムのメモリは、命令集合の一部又は全部をある時期に保持して、処理システム上で命令が実行されると、本明細書に記載の方法の実施形態のステップを実施することができる。
本発明はコンピュータプログラムプロダクトを含んでもよく、このコンピュータプログラムプロダクトは、計算デバイス(例えば上記の種類のプロセッサ)上で実行されると、本発明による方法のいずれかの機能を提供する。本発明によるソフトウェアは、処理エンジン上で実行される場合、ツール及び操作者の動的挙動と相互作用するための人工記憶を有する知覚/認知アーキテクチャを提供するコードセグメントを含むことができ、この知覚/認知アーキテクチャは、抽象化、一般化、及び任意で学習を行うための構造とメカニズムを有する「メモリ予測フレームワーク」の実装に基づくものであり、この実装は、増強型人工階層記憶システムを備える。このソフトウェアは、前処理段階と協働するように構成されてよい。このソフトウェアは、実行時に、時間的イベントの管理に基づき入力操作者指令に関する予測を提供し、物理センサからの入力データを原形及び再帰パターンで表すように構成されてよい。
本発明は、本発明によるソフトウェアを有するコンピュータプログラムプロダクトも含み、このソフトウェアは、処理エンジン上で実行される場合、ツール及び操作者の動的挙動と相互作用するための人工記憶を有する知覚/認知アーキテクチャを提供するコードセグメントを含んでよく、この知覚/認知アーキテクチャは、抽象化、一般化、及び任意で学習を行うための構造とメカニズムを有する「メモリ予測フレームワーク」の実装に基づくものであり、この実装は増強型人工階層記憶システムを備える。このソフトウェアは、前処理段階と協働するように構成されてもよく、その場合、物理センサからの入力データを原形及び再帰パターンで表すように構成される。このソフトウェアは、フィードフォワード信号及びフィードバック信号が流れるように構成されてよく、コンテキストチェックの度合いとしてフィードフォワード信号とフィードバック信号の間に対応関係を形成するように構成されてよい。
本発明は、本発明によるソフトウェアを含むコンピュータプログラムプロダクトも含み、このソフトウェアは、処理エンジン上で実行される場合、ツール及び操作者の動的挙動と相互作用するための人工記憶を有する知覚/認知アーキテクチャを提供するコードセグメントを含んでよい。このアーキテクチャは、「メモリ予測フレームワーク」の諸構造を有する実装を基盤にしてよく、このソフトウェアは、抽象化、一般化、及び任意で記憶の学習を行うためのメカニズムを提供するように構成されてよく、この実装は増強型人工階層記憶システムを備える。このソフトウェアは、前処理段階と協働するように構成されてもよく、その場合、このソフトウェアは、物理センサからの入力データを原形及び再帰パターンで表すように構成され、物理センサからの入力に基づき、ツール及び/又は操作者の挙動に関するより高位レベルの圧縮された情報を出力するように構成される。
上記のソフトウェアを、物理I/O層、増強型階層メモリ、タイムマスター、コンテキストチェック、教師ありゲート処理、システム制御部、及びユーザー制御I/O層を用いて使用するように構成してよい。物理センサ入力を、情報内容を修正せずに増強型階層メモリが管理できるフォーマットに変換するように、ソフトウェアを構成することができる。物理I/O層から受信する入力パターンのシーケンスを教育され、認識し、予測するように、ソフトウェアを構成することができる。物理I/O層が受信する物理センサ入力に基づき、より高位レベルの圧縮された情報を出力するように、ソフトウェアを構成することができる。
また、分類結果出力及び/又はコンテキストチェックを出力するようにソフトウェアを構成してもよい。
個別のカラムの形に配列したノード集合を提供するようにソフトウェアを構成してよく、この場合、各ノードカラムは少なくとも1つのイベントプール化ノードを含む。
提供される上記少なくとも1つのイベントプール化ノードが子ノードとして空間プール化ノード又は強制的時間プール化ノードを有するように、ソフトウェアを構成してよい。
各メモリレベルブロックが注意分類部と連結するように、ソフトウェアを構成してよい。
提供される上記注意分類部が、制御部、ゲート処理、複数親ゲート処理、及び分類部のうちの少なくとも1つを備えるように、ソフトウェアを構成してよい。
個別のカラムの形に配列したノード集合を少なくとも含むワイヤードメモリレベルブロックを提供するように、ソフトウェアを構成してよく、この場合、各ノードカラムは、少なくとも1つの信号量子化ノードと少なくとも1つの強制的時間プール化ノードとを備える。
さらに、平滑化ノード及び/又は強制的イベントプール化ノードを追加的に含むノードカラムを提供するように、ソフトウェアを構成してよい。
増強型階層メモリシステムを有する「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用するためのコンピュータ援用方法を提供するように、ソフトウェアを構成してよく、その場合、このソフトウェアは、実行時に以下のステップを提供するように構成される。
−システムの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−人工記憶システム内で信号を収集すること。
−入力データを単純な原形と再帰パターンで表すこと。
−操作者の指令、ツールの挙動、外部環境(任意)、及び人工記憶システムの内容を受信し分析して、受信したイベントが新規/未知のイベントであるか既知のイベントであるかを判断すること。
−受信したイベントを分類すること。
−内部表現から、ツールの現在の状態、短期的時間イベントの識別名、及び推論される長期的な操作者行動を決定すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−ツール及び/若しくは操作者の挙動に関する、より高位レベルの圧縮された情報を出力すること。又は
−時間的イベント管理並びに入力データの原形及び再帰パターンに基づき、入力された操作者指令に関する予測をすること。又は
−コンテキストチェックの度合いとして、フィードフォワード信号とフィードバック信号の流れの間の対応関係、若しくはこれらの流れの任意の組み合わせを決定すること。
人工記憶システムを備えた、「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用するための方法を提供するように、ソフトウェアを構成してよい。実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−システムの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−システムの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−センサから送られた信号を人工記憶システム内で分類、予測、及び/又はフィルタリングして、計算結果をシステムに送り返すこと。
−内部の記憶の一貫性状態を表し、人工記憶システムの出力に信頼性がある時を明示する働きをするコンテキストチェック信号を、人工記憶システムが生成すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−コンテキストチェック信号を例外評価部に送ること。
−例外評価部がコンテキストチェック信号を受け取り、このコンテキストチェック信号に基づき、制御信号をパターン記録モジュールに送ることにより、センサから送られた現在の生の信号を記録し、より深いオフライン分析をすることを例外評価部が決定すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−受信した生の信号をデータベースに保存すること。
−センサから送られる信号から人工記憶システムを切り離すこと。
−人工記憶システムを訓練モードに設定すること。
−人工記憶システムへの入力として、センサが生成した信号でなく以前データベースに保存されたパターンを供給して、保存されている当該信号パターンに関して人工記憶システムを訓練すること。
このソフトウェアは、人工記憶システムを備えた、「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用するための方法を提供することができる。実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−システムの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−システムの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−人工記憶システムにより操作者の挙動を評価し、又は今後予想される操作者の挙動を予測し、又は現在の操作者指令をフィルタリングして再構築し、又は記憶の内部の一貫性状態を表すコンテキストチェック信号を生成すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−上記の評価、予測、フィルタリング、再構築、又はコンテキストチェックの信号を認識評価部に送ること。
−受け取った信号に基づき、認識評価部が、受動的制御情報又は能動的制御の情報を操作者に提供することを決定すること。
このソフトウェアは、人工記憶システムを備えた、「メモリ予測フレームワーク」の実装に基づいて、ツール及び操作者の動的挙動と相互作用するための方法を提供することができる。実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−ツールの物理的状態を表す信号をセンサが生成すること。
−センサが生成した信号を人工記憶システムに送信すること。
−ツールの挙動を表す記憶パターンを備えた人工記憶システム内で、上記信号を収集すること。
−ツールの状態の概要を表す分類結果を人工記憶システムが生成すること。
−記憶の内部の一貫性状態を表すコンテキストチェック信号を人工記憶システムが生成すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−入力データに加えてコンテキストチェック信号をコントローラに送ること。
−分類結果を記録すること、及び/又は例外を表すコンテキストチェック信号をコントローラが受信した場合、コントローラが入力データの記録を可能にすること。
このソフトウェアは、人工記憶システムを備えた、「メモリ予測フレームワーク」の実装に基づいて、ゲームシステムの一部であるツール及び操作者の動的挙動と相互作用するための方法を提供することができる。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−ツールの物理的状態及び操作者の挙動を表す信号をセンサが生成すること。
−この信号を人工記憶システムに送ること。
−操作者の挙動を表すゲームパターンを備えた人工記憶システム内で、上記信号を収集すること。
−操作者のゲームプレイ能力の概要を表す分類結果を人工記憶システムが生成すること。
−操作者によるゲームプレイの非一貫性を表すコンテキストチェック信号を人工記憶システムが生成すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−コンテキストチェック信号と分類結果をコントローラに送信すること。
−コントローラが対戦ゲームを制御すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−センサから送られる信号に対して、人工記憶システムが分類、予測、及び/又はフィルタリングするかどうかを制御し、システムが訓練可能な動作状態にあるとき、人工記憶システムを訓練モードに設定すること。
実行時に以下のステップを提供するように、ソフトウェアを構成してよい。
−例外評価部がトリガーするゲートにより、センサから送られる信号から人工記憶システムを切り離し、これにより例外評価部は、人工記憶システムの訓練状態についてツールI/Oインタフェースから通知を受けること。
上記のようなコンピュータプログラムプロダクトは、プログラム可能プロセッサで実行される機械可読コードを担持する担持媒体へと有形物として具現することができる。したがって、本発明は、コンピュータプログラムプロダクトを担持する担持媒体に関し、このコンピュータプログラムプロダクトは、計算手段上で実行された場合に上記方法のいずれかを実行するための命令を提供する。「担持媒体」という用語は、命令をプロセッサに提供して実行させることに関与する任意の媒体を指す。このような媒体は多くの形態を取ることができ、例えば不揮発性媒体、伝送媒体等の形態が挙げられるが、これらに限定されない。不揮発性媒体の例として、光学ディスク、磁気ディスク、例えば大容量記憶装置の一部をなす記憶装置が挙げられる。コンピュータ可読媒体の一般的形態の例として、CD−ROM、DVD、フレキシブルディスク、フロッピー(登録商標)ディスク、テープ、メモリチップ、メモリカートリッジ、その他、コンピュータが読み取ることのできる任意の媒体が挙げられる。様々な形態のコンピュータ可読媒体を用いて、1つ以上の命令の1つ以上のシーケンスをプロセッサに搬送し実行させてよい。コンピュータプログラムプロダクトを搬送波に乗せてLAN、WAN、インターネット等のネットワーク内に伝送することもできる。伝送媒体は、例えば電波データ通信や赤外線データ通信で生成されるような音波又は光波の形態を取ることができる。伝送媒体の例として、同軸ケーブル、銅線、光ファイバが挙げられ、コンピュータ内部でバスを形成する電線も伝送媒体に含まれる。
図面及び上記説明において本発明を詳細に図解し説明したが、このような図解及び説明は例示又は模範とみなすべきであり、限定的なものではなく、本発明は上記で開示されている実施形態に限定されない。
当業者であれば、請求項に記載された発明を実践する際、図面、開示内容、及び添付の請求項を検討することにより、上記に開示されている実施形態の他のバリエーションを理解し実施することができる。
例えば、請求項に列記されている数項目の機能を単一単位で実現することもできる。請求項に記載の参照符号は、範囲を限定するものとは解釈されない。
例えば、本発明の実施形態におけるモデリング活動は、マルコフ連鎖を採用した「経路」又は「シーケンス」であってよく、その場合、HTM(階層的時間メモリ)の上記実施形態は単一経路だけを「たどる」ことができる。しかしながら、どの実施形態も、複数経路の潜在的結果を評価しながら最高性能の経路1つを継続的に選択するという、複数の経路を並行して「たどる」能力により、より良好な一般化を提供することができる。マルコフ連鎖に基づくイベント及び記憶内容の表現が柔軟性に欠けるため、非常に多彩な時間動態を特徴とする時間的同時存在イベント(いくつか例を挙げると、直線の幹線道路を走行しながらの追い越し、ハンドルやペダルの短時間で急な修正など)に対処できないという問題があるが、上記の実施形態はこの問題を回避する。このような実施形態では、確率に基づく、伝送行列によるシーケンスの展開の推論がいまだ有効である。訓練中の時点で保存され推論時に使われる情報だけでは、複数の経路には不充分であり、実装にはさらなる制限が課される。解決策として、これらの実施形態では、追従した経路とその相対頻度を訓練セットに保存することにより、予測段階に向けて重要な確率情報を与えると考えられる。
ネットワークのノードがごく厳密に一度に1つだけ(層ごとに)アクティブになるように、枠組みの中にスケジューラを実装することができる。この場合、ネットワークトポロジーに大きな制限が課される。本発明の実施形態は平行の「シミュレーション」が可能であり、例えば側方(レベル内)接続により、抑制メカニズムを実装でき、ある特定状態から経路候補の確率分布を作成できる。
ノードの記憶(マルコフ連鎖)の実施形態では、複数の異なる連鎖が、意味論的観点から全く相関関係がないとみなされ得る。さらなる実施形態では、類似度を用いて2つの異なる連鎖が比較される。したがって、新しく記録されたイベント/連鎖(前に経験したと認識されないもの)を保存済み連鎖と比較して、同じイベント「クラス」に属するかどうかを実際に理解することができる(例えば、前に見たことのない、半径が少し異なる右折など)。ゆえに、本発明は、記憶を保存するマルコフ連鎖の採用だけに基づくのでなく、異なる種類のノードの存在/区別だけに基づくのでもないノードの実装も含む(すなわち空間プール化と時間プール化)。本発明は、ネットワーク部品(例えば各ノード又はノード群)を並行して(同時に)活性化することを含む、ネットワーク部品をより柔軟に活性化するためのアーキテクチャを含み、(垂直方向だけでなく)水平方向の情報の流れも可能にし、高速クロックアーキテクチャにおける非同期入力を受け付けて処理することを可能にする。
本発明はさらに、「メモリ予測フレームワーク」(MPF)理論に準拠して開発されたアーキテクチャを提供し、特に、主要処理要素として人工頭脳を有し特定の分類/予測の問題に対処するように開発された、hMPFに基づくシステムを提供する。
この人工頭脳は層状に組織された多くの処理ノードを備えてよく、ノード間の通信にはフィードフォワード(FF)信号、フィードバック(FB)信号、及び予測信号を用いる。これらの信号は本質的に確率密度関数(PDF)であり、特定の入力パターンが特定世界の原因の結果となる尤度を表す。さらに、同様にネットワークに出力として与えられるコンテキストチェックを用いて、システム全体で階層ネットワークの状態を点検してもよい。
図21は、h−MPF人工頭脳の概略構造を示す。黒色の四角が新規ノードであり、内部記憶はねじれたリボン状で表されている。ノード間を結ぶFFリンクとFBリンクは2種類ある。黒色のリンクはノードの入出力空間に対する「古典的」な確率密度関数であり、赤色のリンクは予測信号を搬送する。
「コンテキストチェック部」と呼ばれる特殊ノードには3種類あり、青色は、ノードの内部記憶の一貫性を(ノード「記憶空間」のインデックスと測定値に基づき)チェックするICC(内部コンテキストチェック部)、黒色は、現在のFF信号とFB信号間の一貫性をチェックするLCC(レベルコンテキストチェック部)、赤色は、予測値の一貫性をチェックするPLCC(予測レベルコンテキストチェック部)である。
ICC、LCC、PLCCは、ネットワーク全体の一貫性を監督するNCC(ネットワークコンテキストチェック部)に接続しており、NCCは、ノード(ICC)、時間(LCC及びPLCC)、空間(NCC)において動作するネットワークの「コンテキスト理解度」を測定するグローバルインデックスである「理解度インデックス」を測定することが可能となる。
NCCはNR/PNR/FoANR(ネットワーク実行部/予測ネットワーク実行部/注意集中ネットワーク実行部)に接続している。NR/PNR/FoANRブロックは「タイムマスター」ブロックの進化形であり、ノード(単一ノード又はノード群)をトリガーして、個々の「通常実行」「予測実行」「注意集中」メカニズムを実現することができる(この機能は複数の予測を並行して追従する能力を含意する)。
NT(ネットワーク訓練部)は、訓練モードでネットワークを動作させるブロックである。
MPF理論で規定されるように、各ノードは少なくともフィードフォワード(FF)信号、フィードバック(FB)信号、及び予測信号を処理できる必要がある。図8では、汎用処理ノードをブラックボックスとして示し、他の処理ノード及び階層ネットワークの外部との接続部を強調表示している。
図22は、本文書に記載のデータ構造とアルゴリズムを目立たせて表示した、hMPFノードの構造の好適な一実施形態を示す。
ノードの主目的は、(1)特徴的な入力パターンを学習、認識し、(2)これらの入力パターンをいくつかの外部(おそらく未知)の要因又はイベントと関連付けし、(3)次の入力パターンを予測することである。
この目的を達成するには、通常は次の2つの段階を踏む。(1)訓練段階:入力パターンを学習する。この段階はノード内部の「記憶」に影響を及ぼす。(2)推論段階:ノードが実際に作動する段階であり、記憶したパターンと入力パターンを比較してFF出力とFB出力を生成する。ノードが「継続的に学習」する動作を妨害するものは何もないので、実際には、訓練と推論は一緒に実施される。加えて、「コールドスタート」の問題を克服するための別の可能性として、継続的学習段階の前にごく短時間の初期訓練段階を有することもある。いずれの場合も、推論段階の目的は、現在の入力パターンを評価して、それを1つ以上の学習済み要因と関連付けることである。その結果、現在の入力パターンが学習済み要因のいずれかに属する尤度を表すFF出力信号が生成される。この処理は通常、親ノードから提供される、現在のFF出力に対する予測を表すFB入力信号の影響も受ける。この特性は、共通の入力パターンを共有している可能性のある種々の要因の間で、ノードが曖昧さを除去(一般に「注意の集中」と呼ばれる)できるようにすることを意図している。ノードは、FF出力を生成した後、FB出力を介して子ノードに知らせるべき次の入力パターンの予測も生成することになる。この操作を行うには、上部ノードから下部ノードに予測を伝播させるため、ネットワーク全体がFFの更新を完了するのを待つ必要があり得る。
我々のアーキテクチャのさらなる一実施形態において、主として(1)空間クラスタリングノード、(2)時空間クラスタリングノード、の2種類のノードを導入した。両方ともニューラルガスアルゴリズム及び関連理論に基づいている。
さらなる特定の実施形態では、前者は基本的にステートレスであり、時間的シーケンスを考慮しない(したがって独力では全く予測できないか、よくても少ししか予測できない)。後者は確実に時間的次元を考慮するので、階層ネットワークが(実質的な)予測を行うための唯一の手段となる。
実際には、(標準の)データ前処理又は後処理で使用すべき他の種類の処理ノードが予見されている。
空間クラスタリングノードはニューラルガス(NG)アルゴリズムに基づくものであり、ニューラルガスとは、特徴ベクトルに基づき最適なデータ表現を見出すことのできる周知の人工ニューラルネットワークである。通常、NGアルゴリズムはデータ圧縮又はベクトル量子化に適用され、特にパターン認識、画像処理、及びクラスタ分析に適用される。空間クラスタリングノードの内部において、頻繁に見られる入力パターンをNGを用いて学習し、場合によっては、様々な入力「源」又は「要因」を表すクラスタを発見する。基本のNGアルゴリズムの異型が「成長」しており、上記の目的でこれらの異型全てが注目される。その理由は、入力空間を適切に表すのに必要な重心(セントロイド)の数を自動で発見でき、これらの重心を可能な限り均等に広げて例えば量子化誤差(QE)を最小化できるからである。
このようなNGアルゴリズムはいずれも、各々の訓練過程の調節に使われる独自のパラメータを有するので、本発明の一実施形態はその一バージョンであり、訓練パターンを自動的に駆動して所定のパフォーマンスを達成する。
さらに他の2つのFF PDF出力計算戦略が開示される。具体的には、(1)目的が単に入力空間を量子化することである場合、それまでにニューラルガスが学習した重心に対するPDFを出力とすることができる。或いは(2)少数の「原因」を探すことが意味をなす場合、それまでにニューラルガス内で見られたクラスタに対するPDFを出力とすることができる。
重心間のエッジにより、NGアルゴリズムの訓練過程の基礎をなす位相幾何学的グラフを視覚化でき、この位相幾何学的グラフを分割することにより、学習済みの重心を複数の異なるクラスタに分離できる。意味のあるクラスタを発見するには、任意のグラフ分割手法を使用でき、例えば、最も単純な接続コンポーネントの検出方法から、より複雑なスペクトル分割方法、或いはマルチレベル分割方法などを使用できる。ノードが自身のFF出力を計算するよう要求されると、ノードは、現在の入力が重心の受容野に所属する尤度を表すPDFを提供でき、入力空間の量子化が焦点である場合は、現在の入力が発見済みクラスタの1つに属する尤度を表すPDFを提供できる。
なお、クラスタに対するPDFは重心に対するPDFから導くことができる。具体的には、重心の所属に基づいて重心のPDFを分割し、各分割の最大値を抽出し、値を正規化して累積和として1:0を得る(実際にはPDFを表す)ことにより、クラスタのPDFを導くことができる。
MPF理論で述べられているように、FF出力の計算では現在のFB入力、すなわちFF出力について親ノードが生成した予測値が考慮され、したがってFF出力の計算は現在のFB入力の影響を受ける可能性がある(おそらく時間的コンテキストを認識するか、又は単に、より広範な空間的コンテキストを認識する)。次の入力パターンがクラスタ2に所属する見込みであると親ノードが述べている場合、この空間クラスタリングノードのFF出力はクラスタ2寄りにバイアスがかかり、クラスタ1の代わりにクラスタ2に対応する最高ピークを示し得る。上記は、予測される見込値を表すFBの流れに基づく曖昧な推論を明確にする上で、親ノードが空間クラスタリングノードを支援する方法を示す一例である。
空間クラスタリングノードはステートレスであるため、そのFB出力及び予測値は完全にFB入力に依存する。最も簡単な例では、FB出力は、重心に対するPDFの最高ピークにより特定される重心位置であり得る。空間クラスタリングノードが、例えばn個の最も尤度が高い重心の質量中心を計算する際、これを妨害するものは全くない。同じことは予測にも当てはまる。すなわち、親ノードから送られるmステップの予測は、学習済み重心の集合を辞書として使用することによりFF入力空間領域に変換される。この場合も、結果は、辞書の中で最も尤度の高いキー、又はn個の最も尤度の高いキーの加重平均に基づくものであり得る。
時空間クラスタリングノードは、時間クラスタリングについてNGアルゴリズムを拡張したもの基づく。このような拡張の一例がマージニューラルガス(MNG:Merge Neural Gas)である。時空間クラスタリングノードの内部では、頻繁に見られる入力パターンシーケンスをMNG(又は元のMNGアルゴリズムの別の異型)を使って学習する。基本のMNGアルゴリズムの異型が「成長」しており、上記の目的で、これらの異型が特に注目すべきものとして選択される。その理由は、入力空間を適切に表すのに必要なニューロンの数を自動で発見でき、これらのニューロンを可能な限り均等に広げて時間量子化誤差を最小化できるからである。
各種NGアルゴリズム及びその時間的異型に関して既に公表されている材料に関して、本発明は特に、時空間クラスタリングノードの内部に時間的NGアルゴリズムを組み込むことを可能にする下記のような特徴への対応を追加している。(1)(既に説明されている位相幾何学的グラフに加えて)ガス訓練時の、ヘブの競争法則(HCR:Hebbian Competitive Rule)に基づく時間的グラフ/モデル学習。(2)位相幾何学的グラフと時間的グラフの両方を利用して入力源の一様な一般化半マルコフモデルを構築する、増強型訓練。これにより、入力パターン間のタイミング(イベントの到着間隔とも呼ばれる)を学習/モデル化することも事実上可能になる。(3)時間的グラフ構造を利用すると同時に、各ニューロンの受容野に関する時間的統計情報(例えばTQE、将来の入力のTQE等)を利用する、時間的イベントを分離するための増強型(又はハイブリッド)グループ化。(4)ニューラルガスデータ構造に基づく推論過程。(5)グラフに基づく予測。
時間的グラフ学習に関しては、NGアルゴリズムが使用する古典的データ構造(例えば、入力空間に誘発される重心間/ニューロン間の位相幾何学的関係を表す位相幾何学的グラフ構造)に加えて、時間エッジで構成される新しいグラフ構造を追加した。ニューロンの活性化軌道を追跡するため、訓練過程中、HCRを用いてニューロン間の時間エッジの作成と削除を(時間エッジの管理とよく似た方法で)行う。訓練過程で構築されるニューロンを別の観点から見ると、入力信号をモデル化する状態機械の内部状態とみなすこともできる。上記の新しい時間的グラフは、この状態機械の状態遷移関数を何らかの形で表すものである。
この時間的グラフの主目的は、時空間クラスタリングノードに関連する推論過程、グループ化過程、及び予測過程を支援することである。
増強型学習に関しては、我々は、時空間クラスタリングノードが「様々な」インプットパターン間のタイミングを学習できるようにするため、ニューロンと関連付けされるデータ構造の範囲を、前の状態/ニューロンの永続性概算値(最も単純な事例は、次のニューロンに移る前に前のニューロンで消費された時間の推定ガウス分布を表す)も含めるように拡大した。言い換えれば、現在の内部状態を知ることにより、発生し得る次の状態と、次の状態にジャンプする前の現在状態での待機時間とを抽出することが可能になる(複数の異なる状態にジャンプする場合は、現在状態での複数の待機時間と関連付けることができる)。上記の永続性概算値とニューロン位置(入力パターン)及び時間的グラフのエッジ(及び関連のトラバースカウンタ)を組み合わせることで、実際に、入力空間に対する一様な一般化半マルコフモデルを学習することができる。すなわち、我々の増強型ニューラルガス(ENG:Enhanced Neural Gas)は、入力信号の特性記述パラメータ全てを学習する一様な一般化半マルコフ過程として、入力信号をモデル化することができる。このモデルは推論過程及び予測過程の良好な基盤となる。
ハイブリッドのグループ化に関しては、ある時空間クラスタリングノードのFF出力を計算するには、時間的イベントの集合を識別して、入力ごとに各入力のPDFを概算する必要がある。我々は、時間的グラフ上で分離された(複数の)経路を抽出することにより、入力信号内部の意味ある下位シーケンスを特定する(グループ化過程)。これらの(複数の)下位経路は時間的イベントであると言われており、同じイベントに属するニューロンに一貫性のあるラベルを付ける。上記の通り、いくつか異なるグラフ分割アルゴリズムを用いてこのグラフのノードクラスタ化を実行できるが、「分離」された(複数の)経路は、実際にはグラフの他の部分からさほど明確に分離されていないことがあるので、我々のアプローチはハイブリッドである。各ニューロンの受容野に関する時間的統計情報(例えばTQE、将来の入力のTQE等)も使用して、分割過程を促進するための切断エッジ(cutting edge)を決定する。例えば、特定ニューロンの将来の入力のTQEから、10回のタイムティック後にQE値が急上昇することが明らかである場合、現在の時間的イベントが当該ニューロンから10回のタイムティック以内に終了する可能性が非常に高いと考えられる。当該ニューロンの時間的後続点についてもこれが確認されれば、当該ニューロンから10回のタイムティック内に到達可能なニューロンの送出エッジを切断エッジとしてマーキングすることになる。
他のグループ化アプローチに関しては、訓練データ及び/又は試験データの少なくとも一部に対して先験的な分類(ラベル付け)が提供できれば、各ニューロンを活性化させた入力データのクラス(ラベル)に関する統計情報を当該ニューロンが収集することは可能である。訓練中にこの統計情報が収集されれば、古いラベルへの考慮を少なくする特定のメカニズムを適用することができる。その理由は、訓練が進行するにつれて、ニューロンの意味が徐々に変化するからである。
ラベルに関するニューロンの統計情報を使用してニューロンを分割(グループ化)することが可能である。
可能なアプローチの1つは、各ニューロンのヒストグラムを計算して、最も確度の高い単一又は複数のグループを明示することである。
別の可能なグループ化アプローチは、同じラベル(クラス)の入力データに対して高い活性化値を有する時間的に連続したニューロン全てをグループ化することである。このアプローチの場合、種々のグループに属する単一ニューロンを考慮することができる。
別の可能なアプローチは、標準のグループ化アルゴリズムを使用した上で、ニューロンのラベルに応じてグループを分離又は統合することによりグループ化をさらに改善することである。
別の可能なアプローチは、標準のグループ化アルゴリズムを使用した上で、グループ内ニューロンのクラスを平均することにより平均のグループ−クラスを計算することである。
本発明は、ニューラルガスデータ構造に基づく推論過程を提供する。訓練過程で学習する一様な一般化半マルコフモデルは、推論過程の非常に良好な基盤となる。NG訓練過程で求められるように、個々の新規入力パターンごとに単一の勝者ニューロンを選択するのでなく、我々は各ニューロンの活性化状態を保存する。次に、ニューロンの位置、コンテキスト、及び永続性情報から抽出される情報、並びに時間的グラフから得られる時間的関係に基づいて、活性化状態を個々の入力ごとに更新する。このように、グループ化過程の結果も考慮することにより、特定された時間的イベントに対するPDFを概算でき、このPDFを時空間クラスタリングノードのFF出力として提供することができる。
本発明はさらに、グラフに基づく予測を提供する。原理上は、一様な一般化半マルコフモデル(訓練過程で構築されたモデル)上で、最も確度の高い現在の内部状態を起点として単にマルコフ過程を実行するだけで、予測を生成することができる。
親ノードから予測データを入手できる場合は、上記と異なり、我々は問題を時間的グラフ上の経路検索に変える。親ノードの予測は常に「イベントn1がX秒間、次にイベントn2がy秒間、次に..」の形であることから、このことが可能になる。このようにして、可能性の高い現在の内部状態を起点として、現在の状態を数ジャンプ内に別のイベントに属するニューロンに変える経路を時間的グラフ上で探せばよいことが分かる(ジャンプ数は中間状態の永続性に依存する)。この手法は、親ノードの予測も考慮に入れることを可能にするだけでなく、内部状態から次の状態へとマルコフ過程を単に「一ステップずつ」実行するのと比べて、はるかに良好な結果をもたらすことができる。グラフの骨組みを用いても現在のニューロンの前方受容野の平均を計算できること、言い換えれば、特定のイベントに関連する入力シーケンスの平均を計算できることを考えると、上記のことが理解しやすくなる。より単純に言えば、次に予測されるイベントが、探求される経路の向かうべき「方向」を与える。