(57)【要約】【課題】因果関係を学習するのに用いるデータを、効率的に収集する。【解決手段】情報量ゲイン算出部は、状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、因子と状態遷移との因果関係について、因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求める。そして、評価値算出部は、因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、情報量ゲインに基づいて求め、決定部は、その評価値に基づいて、生起する因子を決定する。本技術は、例えば、自律的に行動するエージェント等に適用できる。【選択図】図８
2013058120.tif 000002
【特許請求の範囲】
【請求項１】
状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求める情報量ゲイン算出部と、
因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求める評価値算出部と、
前記評価値に基づいて、生起する因子を決定する決定部と
を備える情報処理装置。
【請求項２】
前記情報量ゲイン算出部は、
所定の状態において、状態遷移が生じる確率であるベース確率の確率分布と、所定の因子が生起し、前記所定の状態において、前記状態遷移が生じる確率である因子条件付き確率の確率分布との間の違いを表す分布間距離を、前記所定の因子と前記所定の状態からの前記状態遷移との間にある因果関係の程度を表す因果関係量として求め、
前記所定の因子を生起し、その結果を観察した後の前記因果関係量と、所定の因子が生起する前の前記因果関係量との差分を、前記情報量ゲインとして求める
請求項１に記載の情報処理装置。
【請求項３】
前記分布間距離は、前記ベース確率の確率分布、及び、前記因子条件付き確率の確率分布のKL(KullbackLeibler)ダイバージェンスである
請求項２に記載の情報処理装置。
【請求項４】
前記状態遷移が生じる確率は、ベータ分布に従う
請求項３に記載の情報処理装置。
【請求項５】
所定の状態において、他の所定の状態への状態遷移が生じる確率であるベース確率の期待値が、所定の状態にいた回数BSと、前記所定の状態からの前記他の所定の状態への状態遷移が生じた回数BTとを用いて、BT/BSで表され、
所定の因子が生起し、所定の状態において、他の所定の状態への状態遷移が生じる確率である因子条件付き確率の期待値が、前記BS回だけいた前記所定の状態において、前記所定の因子が生起した回数NS回と、前記所定の因子が生起した場合に、前記所定の状態から前記他の所定の状態への状態遷移が生じた回数NTとを用いて、NT/NSで表され、
前記ベース確率は、ベータ関数B(BT+1,BS-BT+1)のベータ分布に従い、
前記因子条件付き確率は、ベータ関数B(NT+1,NS-NT+1)のベータ分布に従う
請求項４に記載の情報処理装置。
【請求項６】
前記評価値算出部は、前記状態遷移モデルの状態遷移の遷移確率を重みとして、前記情報量ゲインの期待値の重み付け加算を行うことにより得られる重み付け加算値を、前記所定の因子と前記所定の状態からの状態遷移との因果関係を獲得するのに、前記所定の因子を生起することの有効性を評価する前記評価値として求める
請求項５に記載の情報処理装置。
【請求項７】
前記決定部は、
現在生起している因子である現在因子から、各因子が生起するまでの因子の系列である因子経路を求め、
前記因子の評価値の積算値の平均値が最大の前記因子経路を、因果関係を獲得するために生起する因子の系列である因果獲得プランに決定する
請求項６に記載の情報処理装置。
【請求項８】
前記決定部は、前記因子経路を構成する因子の数を制限して、前記因子経路を求める
請求項７に記載の情報処理装置。
【請求項９】
前記決定部は、ループを含まない因子の系列を、前記因子経路として求める
請求項７に記載の情報処理装置。
【請求項１０】
前記決定部は、前記現在因子から各因子までの最短経路を、前記因子経路として求める
請求項７に記載の情報処理装置。
【請求項１１】
前記状態遷移モデルは、HMM(Hidden Markov Model)であり、
エージェントにおいて観測される観測値を用いて学習が行われた複数のHMMのうちの１つのHMMである第１のHMMの現在状態と、他の１つ以上のHMMである第２のHMMの現在状態とが、前記観測値を用いて認識される場合において、
前記情報量ゲイン算出部は、
前記第２のHMMの各状態にいることを各因子とし、前記第２のHMMの各状態にいることが原因となって、前記第１のHMMの現在状態からの状態遷移が生じると仮定して、前記第２のHMMの各状態と前記第１のHMMの状態遷移との因果関係について、前記第２のHMMの各状態にいることによって得られる前記情報量ゲインを求め、
前記評価値算出部は、
前記第１のHMMの状態遷移の遷移確率を重みとして、前記情報量ゲインの期待値を重み付け加算することにより得られる重み付け加算値を、前記第２のHMMの状態と前記第１のHMMの状態遷移との因果関係を獲得するのに、前記第２のHMMの各状態にいることの有効性を評価する評価値として求め、
前記決定部は、
前記第２のHMMの現在状態から、前記第２のHMMの各状態に到達するまでの状態の系列を、前記因子経路として求め、
前記評価値の積算値の平均値が最大の因子経路である前記第２のHMMの状態の系列を、前記因果獲得プランに決定する
請求項７に記載の情報処理装置。
【請求項１２】
前記第２のHMMの状態遷移に制限がない場合、前記第２のHMMの現在状態と、前記第２のHMMの各状態との系列を、前記因子経路として求める
請求項１１に記載の情報処理装置。
【請求項１３】
前記第２のHMMは、アームを動かすアクションが可能なエージェントの前記アームの動きを学習したHMMであり、
前記第１のHMMは、前記アームが接触することによって移動する移動物体の動きを学習したHMMであり、
前記エージェントは、前記因果獲得プランとしての系列を構成する前記第２のHMMの状態が、順次、現在状態になっていくように、前記アームを動かす
請求項１１に記載の情報処理装置。
【請求項１４】
状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求め、
因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求め、
前記評価値に基づいて、生起する因子を決定する
ステップを含む情報処理方法。
【請求項１５】
状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求める情報量ゲイン算出部と、
因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求める評価値算出部と、
前記評価値に基づいて、生起する因子を決定する決定部と
して、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、例えば、アクションを行うエージェントが、因果関係を学習するのに用いるデータを、効率的に収集することができるようにする情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
例えば、工場等のように、事前に定められた環境ではなく、家庭のような、いわゆるオープンな環境で行動するロボットや知能機械等のエージェントを実現するには、事前知識のない環境で、エージェント自ら行動して必要なデータを収集し、そのデータを用いて環境を学習するという自律発達的な知能が必要である。
【０００３】
通常の機械学習では、エージェントが収集したデータを用いていかに学習を行うかという点が問題となるが、オープンな環境で行動するエージェントについては、さらに、学習に用いるデータそれ自体をどのように獲得（収集）するのか、が大きな問題となる。
【０００４】
すなわち、学習に用いるデータの収集にあたっては、単にデータを収集すればよいのではなく、重要な範囲を網羅するように、データを収集する必要がある。
【０００５】
また、データを収集しながら学習を行うオンライン学習では、学習自体が効率的に進むような順序で適切なデータを、学習に用いる工夫が必要になる。
【０００６】
そこで、特許文献１には、エージェントがおかれた環境等の構造を獲得する構造学習に用いるデータを効率良く収集するエージェントが提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2010-287028号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、事前知識のない環境において、状態遷移等の事象と、その事象が生じる原因となる要素である因子との間の因果関係を獲得する因果学習に用いるデータを効率良く収集する方法については、まだ提案されていない。
【０００９】
本技術は、このような状況に鑑みてなされたものであり、因果関係を学習するのに用いるデータを、効率的に収集することができるようにするものである。
【課題を解決するための手段】
【００１０】
本技術の一側面の情報処理装置、又は、プログラムは、状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求める情報量ゲイン算出部と、因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求める評価値算出部と、前記評価値に基づいて、生起する因子を決定する決定部とを備える情報処理装置、又は、そのような情報処理装置として、コンピュータを機能させるためのプログラムである。
【００１１】
本技術の一側面の情報処理方法は、状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求め、因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求め、前記評価値に基づいて、生起する因子を決定するステップを含む情報処理方法である。
【００１２】
以上のような一側面においては、状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインが求められる。そして、因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値が、前記情報量ゲインに基づいて求められ、前記評価値に基づいて、生起する因子が決定される。
【００１３】
なお、情報処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【００１４】
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【００１５】
本技術の一側面によれば、因果関係を学習するのに用いるデータを、効率的に収集することができる。
【図面の簡単な説明】
【００１６】
【図１】自律的に行動するエージェントの構成例を示すブロック図である。
【図２】エージェントが行う処理を説明するフローチャートである。
【図３】自律的に行動するエージェントの他の構成例を示すブロック図である。
【図４】因果処理部４２の構成例を示すブロック図である。
【図５】因果処理部４２が行う処理（因果処理）を説明するフローチャートである。
【図６】学習認識部１２1ないし１２Mに記憶されるHMMの例を示す図である。
【図７】本技術を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【図８】因果処理部６０の構成を示すブロック図である。
【図９】エージェントが行うタスクの例である物体移動タスクを説明する図である。
【図１０】物体移動タスクにおいて、エージェントが観測する観測値を模式的に示す図である。
【図１１】因果処理部６０が行う因果獲得プラン生成処理を説明するフローチャートである。
【図１２】ステップＳ３２の情報量ゲイン算出処理を説明するフローチャートである。
【図１３】ベータ分布で表される確率分布を示す図である。
【図１４】ステップＳ３３の評価値算出処理を説明するフローチャートである。
【図１５】ステップＳ３４の決定処理を説明する図である。
【図１６】ステップＳ３４の決定処理を説明するフローチャートである。
【図１７】物体移動タスクのシミュレーションの結果を示す図である。
【図１８】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本技術の実施の形態について説明するが、その前段階の準備として、自律的に行動するエージェントについて説明する。
【００１８】
［自律的に行動するエージェントの構成例］
【００１９】
図１は、自律的に行動するエージェントの構成例を示すブロック図である。
【００２０】
図１において、エージェントは、センサ部１１、学習認識部１２、アクション制御部１３、及び、アクション部１４を有する。
【００２１】
センサ部１１は、例えば、被写体を撮影して、その被写体が映った画像を出力するカメラや、アクション部１４の、回転する可動部分（図示せず）の角度を検出する検出器等の、物理量をセンシングするセンサで構成される。
【００２２】
センサ部１１は、センシングの結果得られる、被写体が映った画像や、その画像を処理することにより得られる情報、アクション部１４の可動部分の角度等を、観測可能な観測値として、時系列に出力する。
【００２３】
センサ部１１が出力する観測値（の時系列）は、学習認識部１２に供給される。
【００２４】
学習認識部１２は、バッファ２１、モデル学習部２２、認識部２３、及び、モデル記憶部２４を有し、センサ部１１からの観測値の時系列である時系列データを用いての状態遷移モデルの学習と、その学習後の状態遷移モデルを用いての、時系列データの認識とを行う。
【００２５】
すなわち、バッファ２１には、センサ部１１からの観測値が供給される。
【００２６】
バッファ２１は、センサ部１１からの観測値を、順次記憶する。
【００２７】
モデル学習部２２は、バッファ２１に記憶された観測値の時系列を、モデル記憶部２４に記憶された状態遷移モデルの学習に用いるモデル学習用データとして読み出し、そのモデル学習用データを用いて、モデル記憶部２４に記憶された状態遷移モデルの学習を行う。
【００２８】
認識部２３は、バッファ２１に記憶された観測値の時系列を、その時系列が観測される状態遷移モデルの状態（の系列）の認識に用いる認識用データとして読み出し、モデル記憶部２４に記憶された状態遷移モデルを用いて、認識用データが観測される状態を認識する。
【００２９】
モデル記憶部２４は、状態遷移モデルを記憶する。
【００３０】
モデル記憶部２４に記憶される状態遷移モデルとしては、内部状態を有し、内部状態の遷移モデル、及び、内部状態から観測値が観測（生成）される観測モデルを持つ学習モデルを採用することができる。
【００３１】
すなわち、状態遷移モデルとしては、例えば、観測値が観測される内部状態どうしの間の状態遷移の遷移確率（遷移モデル）と、内部状態から観測値が観測される観測尤度（観測モデル）とを有する、例えば、HMM(Hidden Markov Model)を採用することができる。
【００３２】
ここで、モデル学習部２２は、モデル記憶部２４に記憶された状態遷移モデルを自己組織化(Self-organization)する学習（状態遷移モデルのモデルパラメータがモデル学習用データのみを用いて決定され、モデルパラメータを、外部から強制的に制御することをしない学習）を、バッファ２１に記憶される観測値の時系列をモデル学習用データとして用いて行う。
【００３３】
また、認識部２３は、モデル記憶部２４に記憶された状態遷移モデルを用いて、認識用データが観測される状態を認識するときに、状態遷移モデルの各状態（内部状態）にいる状態確率を求めるとともに、状態遷移モデルにおいて、認識用データが観測される尤度が最大の状態遷移が生じる、状態（内部状態）の系列である最尤系列（最尤状態系列）を求める。
【００３４】
そして、認識部２３は、認識用データの認識時に求めた最尤系列、認識用データの最後のサンプル値となっている観測値（最新の観測値）、及び、認識用データが観測される最尤系列において、認識用データのサンプル値のうちの最新の観測値が観測される状態である現在状態（最尤系列の最後の状態）を、必要に応じて、アクション制御部１３に供給する。
【００３５】
アクション制御部１３は、モデル記憶部２４に記憶された状態遷移モデルや、認識部２３から供給される最尤系列（現在状態が含まれる）、最新の観測値等を用いて、エージェントのアクションを制御する。
【００３６】
すなわち、アクション制御部１３は、プランニング部３１、アクション信号生成部３２、アクション学習部３３、アクション生成情報記憶部３４、及び、生得コントローラ３５を有する。
【００３７】
プランニング部３１には、認識部２３からの現在状態（最尤系列の最後の状態）が供給されるとともに、エージェントの外部、又は、内部から、状態遷移モデルの状態のうちの、目標とすべき状態を表す目標情報が供給される。
【００３８】
いま、状態遷移モデルの１つの状態Ssから、他の１つの状態Seに辿り着く状態系列（状態遷移モデルの状態の系列）を、プランということとし、プランの最初の状態（状態Ss）を、スタート状態というとともに、プランの最後の状態（状態Se）を、目標状態ということとする。
【００３９】
プランニング部３１は、モデル記憶部２４に記憶された状態遷移モデルを参照して、例えば、認識部２３からの現在状態を、スタート状態とするとともに、目標情報が表す状態を、目標状態として、スタート状態から目標状態までの状態遷移の尤度が最大の状態系列を、プランとして求めるプランニングを行い、プランニングによって得られるプランを、アクション信号生成部３２に供給する。
【００４０】
アクション信号生成部３２には、プランニング部３１からのプランが供給される他、認識部２３からの観測値、及び、現在状態が供給される。
【００４１】
アクション信号生成部３２は、モデル記憶部２４に記憶された状態遷移モデル、アクション生成情報記憶部３４に記憶されたアクション生成情報、並びに、認識部２３からの観測値、及び、現在状態に基づき、エージェントに、プランニング部３１からのプランに従ったアクション等の所定のアクションを行わせるためのアクション信号（コマンド）を求め（生成し）、アクション部１４に供給する。
【００４２】
アクション学習部３３には、認識部２３からの現在状態、及び、最新の観測値が供給される。さらに、アクション学習部３３には、生得コントローラ３５が生成するアクション信号が供給される。
【００４３】
アクション学習部３３は、認識部２３からの現在状態、及び、最新の観測値、並びに、生得コントローラ３５からのアクション信号を用いて、エージェントに所定のアクションを行わせるためのアクション信号と、そのアクション信号に従ったアクションが行われることにより生じる状態遷移モデルの状態遷移との関係を学習するアクション学習を行う。
【００４４】
アクション学習部３３は、アクション学習によって、状態遷移モデルの所定の状態遷移を生じさせるアクション信号を生成するのに用いられるアクション生成情報を得て、アクション生成情報記憶部３４に供給する。
【００４５】
アクション生成情報記憶部３４は、アクション学習部３３から供給される、アクション学習の結果得られるアクション生成情報を記憶する。
【００４６】
ここで、図１では、アクション生成情報は、コントローラテーブルとコントローラとから構成される。
【００４７】
状態遷移モデルのある状態Siから、ある状態Sjへの状態遷移を、Tijと表すこととすると、コントローラは、例えば、観測値oを入力として、アクション信号を出力する関数Fij(o)であり、状態遷移Tijごとに存在する。
【００４８】
コントローラとしての関数Fij(o)には、そのコントローラに固有のコントローラID(Identification)が対応付けられ、コントローラテーブルには、状態遷移Tijと、その状態遷移Tijを生じさせるアクションを行うためのアクション信号の生成に使用すべきコントローラ（関数Fij(o)）のコントローラIDとが対応付けられる。
【００４９】
したがって、アクション信号生成部３２は、ある状態遷移Tijを生じさせるアクションを行うためのアクション信号を生成する場合、まず、コントローラテーブルを参照して、その状態遷移Tijに対応付けられているコントローラIDを認識する。そして、アクション信号生成部３２は、コントローラテーブルから認識したコントローラIDに対応付けられているコントローラ（関数Fij(o)）を用いて、アクション信号を生成する。
【００５０】
生得コントローラ３５は、エージェントに、各種のアクションを行わせるためのアクション信号を、ランダムに生成する。
【００５１】
あるいは、生得コントローラ３５は、エージェントの設計者等によってあらかじめ決められたパターンの信号に、適度な摂動を加えた信号を、エージェントが生得的に可能なアクションを行うためのアクション信号として生成する。
【００５２】
生得コントローラ３５が生成するアクション信号は、アクション部１４と、アクション学習部３３とに供給される。
【００５３】
アクション部１４は、エージェントの身体のアーム（腕）や足等の可動部分（図示せず）と、その可動部分を駆動するアクチュエータ等を含む。
【００５４】
アクション部１４では、アクション信号生成部３２や、生得コントローラ３５からのアクション信号に従って、アクチュエータが、可動部分を駆動し、これにより、エージェントは、所定のアクションを行う。
【００５５】
図２は、図１のエージェントが行う処理を説明するフローチャートである。
【００５６】
エージェントでは、ステップＳ１１，Ｓ１２，Ｓ１３，Ｓ１４、及び、Ｓ１５の処理が、必要に応じて行われる。
【００５７】
図２のステップＳ１１では、モデル学習処理が行われる。モデル学習処理では、モデル学習部２２が、モデル記憶部２４に記憶された状態遷移モデルであるHMMの学習であるモデル学習を行う。
【００５８】
すなわち、エージェントは、生得コントローラ３５において、エージェントが生得的に可能なアクションを行うためのアクション信号を生成し、アクション部１４と、アクション学習部３３とに供給する。
【００５９】
アクション部１４は、生得コントローラ３５からのアクション信号に従って、可動部分を駆動し、これにより、エージェントは、アクション信号に従ったアクションを行う。
【００６０】
センサ部１１は、エージェントがアクションを行った後に観測される観測値を観測し、バッファ２１に供給して記憶させる。
【００６１】
バッファ２１に、ある程度のサンプル数の観測値の時系列（時系列データ）が記憶されると、モデル学習部２２は、バッファ２１に記憶された時系列データを、モデル学習用データとして用いて、モデル記憶部２４に（モデルパラメータが）記憶されたHMMの学習を行い、その結果得られるHMMのモデルパラメータを、モデル記憶部２４に上書きの形で記憶する。
【００６２】
ここで、HMMの学習は、例えば、EMアルゴリズムを利用したBaum-Welchアルゴリズム（Baum-Welchの再推定法）に従って行うことができる。また、HMMの学習では、モデルパラメータとして、初期状態確率πi、遷移確率aij、及び、観測尤度bj(o)が求められる。
【００６３】
なお、HMMが、N個の状態を有し、そのN個の状態のうちのi番目の状態をSiと表すこととすると、初期状態確率πiは、最初の時刻に、状態Siにいる確率を、遷移確率aijは、状態Siから状態Sjに遷移する確率を、観測尤度bj(o)は、状態Sjにおいて、観測値oが観測される確率、又は、確率分布を、それぞれ表す。
【００６４】
モデル学習処理では、以上のように、センサ部１１で得られる観測値（の時系列データ）を用いて、モデル記憶部２４に記憶されたHMMの学習（構造学習）が行われる。
【００６５】
例えば、いま、エージェントの１回のアクションとして、エージェントのアームが、アクション信号に従って、２次元平面であるテーブル上を、所定の方向に所定の距離だけ移動することが行われることとする。さらに、HMMの学習が、テーブル上のアームの画像から認識される（２次元平面であるテーブル上の）アームの位置を表す位置情報を観測値として用いて行われることとする。
【００６６】
この場合、HMMでは、エージェントのアームの動きが獲得（学習）される。
【００６７】
なお、HMMの状態Siの観測確率bi(o)は、その状態Siにおいて、アームの位置情報である各観測値oが観測される確率であるから、状態Siは、その状態Siの観測確率bi(o)で各観測値oが観測されるテーブル上のアームの位置に対応させることができる（対応すると考えることができる）。
【００６８】
エージェントでは、モデル記憶部２４に記憶されたHMMの学習が行われていない場合、ステップＳ２１のモデル学習処理が、最初に行われる。そして、モデル学習処理によって、HMMが、エージェントのアームの動きをある程度獲得（学習）すると、そのHMMを用いて、ステップＳ１２ないしＳ１５の処理を行うことが可能となる。
【００６９】
なお、ここでは、エージェントが、生得コントローラ３５において生成されるアクション信号に従ってアクションを行っているときにだけ観測される観測値を用いて、モデル記憶部２４に記憶されたHMMの学習を行うこととしたが、HMMの学習は、その後、エージェントが、アクション信号生成部３２において生成されるアクション信号に従ってアクションを行っているときに観測される観測値を用いて、いわゆる追加学習の形で行うことができる。
【００７０】
図２のステップＳ１２では、認識処理が行われる。認識処理では、認識部２３が、バッファ２１に記憶された観測値の時系列を、認識用データとして用いて、モデル記憶部２４に記憶されたHMMにおいて、その認識用データが観測される状態（の系列）を認識する。
【００７１】
すなわち、認識部２３は、モデル学習がある程度進行したHMM（モデル学習が終了したHMMモデルを含む）を用い、例えば、ビタビアルゴリズム(Viterbi Algorithm)に従って、HMMにおいて、認識用データが観測される尤度が最大の状態の系列（最尤系列）、つまり、認識用データの各サンプル値が時系列に観測され、最新のサンプル値が観測されたときの状態確率を最大にする状態系列を求める。
【００７２】
そして、認識部２３は、最尤系列において、認識用データの最新（現在）のサンプル値（観測値）が観測される状態、つまり、最尤系列の最後の状態を、エージェントのアームの現在の状況に対応する現在状態として求める（認識する）。
【００７３】
図２のステップＳ１３では、アクション学習処理が行われる。アクション学習処理では、アクション学習部３３が、エージェントに所定のアクションを行わせるためのアクション信号と、そのアクション信号に従ったアクションが行われることにより生じるHMMの状態遷移との関係の学習であるアクション学習を行う。
【００７４】
すなわち、エージェントにおいて、アクション部１４は、アクション信号に従って駆動し、これにより、エージェントのアームが移動するアクションが行われるが、アクション学習前のエージェントは、どのようなアクション信号によって、どのようにアームが動くのか（どのようなアクションが行われるのか）の知識を有していない。
【００７５】
アクション学習では、アクション信号と、そのアクション信号に従って行われるアクションとしてのアームの移動との関係（どのようなアクション信号によって、どのようにアームが動くのかの知識）の学習が行われる。
【００７６】
なお、モデル学習によってアームの動きを獲得したHMMでは、各状態Siは、上述したように、テーブル上のアームの位置に対応させることができ、アームの移動によって、移動前のアームの位置に対応する状態から、移動後のアームの位置に対応する状態への状態遷移が生じる。
【００７７】
アクション学習では、アクション信号と、そのアクション信号に従って行われるアクションとしてのアームの移動との関係として、アクション信号と、そのアクション信号に従ったアクションが行われることにより生じるHMMの状態遷移との関係が獲得される。
【００７８】
具体的には、アクション学習部３３は、HMMの学習がある程度進行した後に、生得コントローラ３５から供給されるアクション信号を収集するとともに、そのアクション信号に従ったアクションが行われたとき（後）に観測される観測値と、その観測値が観測されるHMMの現在状態とを、認識部２３から収集する。
【００７９】
そして、アクション学習部３３は、各時刻tにおいて、１時刻前の時刻t-1の観測値ot-1と、１時刻前の時刻t-1のアクション信号mt-1とのセットを、アクション学習に用いるアクション学習用データとして、時刻t-1の現在状態st-1から、最新の時刻tの現在状態stへの状態遷移Tijに対応付けて記憶する。
【００８０】
アクション学習部３３は、HMMの各状態遷移Tijについて、十分な数のアクション学習用データが得られると、各状態遷移Tijについて、アクション学習用データとしてセットになっている観測値oとアクション信号mとを用い、観測値oを入力として、アクション信号mを出力する関数m=Fij(o)であるコントローラを求める。
【００８１】
ここで、関数Fij()としては、例えば、ニューラルネットワーク等を採用することができる。また、コントローラとしては、観測値oを入力として、アクション信号mを出力する関数m=Fij(o)の他、例えば、状態遷移Tijについてのアクション学習用データになっているアクション信号mの平均値等の一定値を、観測値oに関係なく出力する関数を採用することができる。
【００８２】
各状態遷移Tijについて、関数m=Fij(o)であるコントローラが求められると、アクション学習部３３は、各状態遷移Tijについて求められたコントローラとしての関数m=Fij(o)に、コントローラを識別するユニークなコントローラIDを対応付ける。
【００８３】
さらに、アクション学習部３３は、各状態遷移Tijと、その状態遷移Tijについて求められたコントローラとしての関数m=Fij(o)に対応付けられたコントローラIDとを対応付けたコントローラテーブルを生成する。
【００８４】
そして、アクション学習部３３は、コントローラIDを対応付けたコントローラとしての関数m=Fij(o)、及び、コントローラテーブルを、アクション生成情報として、アクション生成情報記憶部３４に供給して記憶させる。
【００８５】
図２のステップＳ１４では、プランニング処理が行われる。プランニング処理では、プランニング部３１が、モデル記憶部２４に記憶されたHMMの１つの状態Ssをスタート状態ととするとともに、他の１つの状態Seを目標状態として、スタート状態から目標状態に辿り着く状態系列であるプランを求めるプランニングを行う。
【００８６】
プランニングによってプランが得られると、エージェントは、そのプランを構成する状態に、順次、状態遷移をして、最終的に、目標状態に辿り着くアクションを行うことができる。
【００８７】
プラニング処理において、プランを求める方法としては、スタート状態と目標状態が与えられた場合に、例えば、スタート状態を遷移元の状態とする状態遷移の遷移確率が所定の閾値以上の状態遷移を、１つだけランダムに選択し、その状態遷移の遷移先の状態を遷移元の状態とする状態遷移の遷移確率が所定の閾値以上の状態遷移を、再び、１つだけランダムに選択することを、状態遷移の遷移先の状態が、目標状態となるまで繰り返す方法がある。
【００８８】
しかしながら、この方法では、多くの場合、スタート状態から目標状態に辿り着くのに時間を要するプラン（状態遷移（及び状態）の数が多いプラン）が求められる。
【００８９】
そこで、短時間で、スタート状態から目標状態に辿り着くプランを求める方法として、例えば、ビタビアルゴリズムを応用した方法がある。
【００９０】
ビタビアルゴリズムを応用した方法では、プランニング部３１は、認識部２３からの現在状態を、プランのスタート状態として、そのスタート状態（になっている状態）の時刻t=1の状態確率を、初期値としての1.0に設定するとともに、スタート状態以外の他の状態の時刻tの状態確率を、0.0に設定する。
【００９１】
また、プランニング部３１は、HMMの遷移確率aijのうちの、所定の閾値（例えば、0.01等）以上の遷移確率aijを、プランニング処理で用いるのに限って、大きな値（例えば、0.9等）に設定するとともに、他の遷移確率aijを、プランニング処理で用いるのに限って、小さな値（例えば、0.0等）に設定する。
【００９２】
さらに、プランニング部３１は、時刻t+1のHMMの各状態Sjについて、時刻tの各状態Siの状態確率に、状態Sjへの遷移確率aijを乗算し、その結果得られる、HMMの状態数であるN個の乗算値のうちの最大値を、時刻t+1の状態Sjの状態確率として求めることを、時刻tをインクリメントしながら、目標状態の状態確率が0.0より大になるまで繰り返す。
【００９３】
そして、プランニング部３１は、目標状態の状態確率が0.0より大になると、すなわち、遷移確率aijが大きな値に設定された状態遷移のみによって、スタート状態から目標状態に辿り着くことができる状態系列が得られると、その状態系列を、プランとして出力する。
【００９４】
図２のステップＳ１５では、アクション信号生成処理が行われる。アクション信号生成処理は、ステップＳ１１のモデル学習処理、及び、ステップＳ１３のアクション学習処理の後、プランニング部３１において、プランが得られると、行うことができる。
【００９５】
アクション信号生成処理では、アクション信号生成部３２は、プランニング部３１からのプラン上の状態に、順次、状態遷移をして、最終的に、目標状態に辿り着くアクションを行うためのアクション信号を生成し、アクション部１４に供給する。
【００９６】
すなわち、アクション信号生成部３２は、プランニング部３１からのプランとしての状態系列から、認識部２３からの現在状態を検出し、状態系列における、現在状態から次の状態への状態遷移を、次に生じさせるべき状態遷移として認識する。
【００９７】
さらに、アクション信号生成部３２は、アクション生成情報記憶部３４のアクション生成情報を参照し、次に生じさせるべき状態遷移Tijに対応付けられた関数m=Fij(o)であるコントローラに対して、認識部２３からの観測値（現在状態において観測される観測値）を入力として与えることで、プランに従った状態遷移（次に生じさせるべき状態遷移）を生じさせるアクションを行うためのアクション信号mを生成し（求め）、アクション部１４に供給する。
【００９８】
アクション部１４は、アクション信号生成部３２からのアクション信号mに従って、可動部分を駆動し、これにより、エージェントは、アクション信号mに従って、テーブル上のアームを移動する等アクションを行う。
【００９９】
その後、アクション信号生成部３２は、エージェントのアクション後に、認識部２３から新たな現在状態と観測値が供給されるのを待って、再び、プランニング部３１からのプランとしての状態系列から、認識部２３からの現在状態を検出し、以下、認識部２３からの現在状態が、プランニング部３１からのプランの最後の状態である目標状態に一致するまで、同様の処理を繰り返す。
【０１００】
［因果関係を利用して、自律的に行動するエージェントの構成例］
【０１０１】
図３は、自律的に行動するエージェントの他の構成例を示すブロック図である。
【０１０２】
なお、図中、図１の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０１０３】
図３において、エージェントは、センサ部１１、複数であるM個の学習認識部１２1ないし１２M、アクション部１４、アクション制御部４１、及び、因果処理部４２を有する。
【０１０４】
したがって、図３のエージェントは、センサ部１１及びアクション部１４を有する点で、図１のエージェントと共通する。また、図３のエージェントは、1個の学習認識部１２に代えて、M個の学習認識部１２1ないし１２Mが設けられているとともに、アクション制御部１３に代えて、アクション制御部４１が設けられ、因果処理部４２が新たに設けられている点で、図１の場合と相違する。
【０１０５】
図３のエージェントでは、センサ部１１は、複数であるM個の観測値を観測し（センシングし）、そのうちのm番目（m=1,2,・・・,M）の観測値を、M個の学習認識部１２1ないし１２Mのうちのm番目の学習認識部１２mに供給する。
【０１０６】
ここで、図１のエージェントでは、アーム（の動き）をモデル化対象とし、そのアームを観測することにより得られるアームの位置情報を用いて、HMMの学習、すなわち、HMMにより、アームの動きを獲得する学習を行ったが、HMMの学習は、その他、例えば、１つのモデル化対象から観測される様々なモーダルの観測値（例えば、モデル化対象としてのアームから観測されるアームの位置や速度等）や、複数のモデル化対象それぞれから観測される１つのモーダル（種類）の観測値等の、複数の（時系列となる）観測値を用いて行うことができる。
【０１０７】
図３のエージェントでは、複数の観測値それぞれに、１つのHMMを割り当て、各HMMの学習が、そのHMMに対応付けられた観測値を用いて行われる。
【０１０８】
ここで、図３では、例えば、エージェントが、移動するアクションが可能なロボットであり、そのようなエージェントが、光源が設置された迷路内に置かれ、その迷路内を移動する移動タスクを行うこととする。したがって、図３のエージェントにおいて、アクション部１４は、エージェントの足を構成し、アクション制御部１３に代えて設けられているアクション制御部４１から供給されるアクション信号に従って駆動することにより、エージェントを、アクション信号に従った方向に、所定の移動量だけ移動させる。
【０１０９】
また、エージェントは、エージェントを中心とする4方向や8方向等の複数の方向それぞれの、迷路内の壁までの距離、エージェントを中心とする複数の方向それぞれで受光される光の光量、及び、その光量に比例して増加し、かつ、エージェントの移動量に比例して減少するエネルギの、３つのモーダルの観測値を観測することができることとする。
【０１１０】
この場合、エージェントに設けられる学習認識部１２1ないし１２Mの個数Mは、3（以上）となる。
【０１１１】
また、センサ部１１では、エージェントから壁までの距離、エージェントで受光される光の光量、及び、エージェントのエネルギの３つのモーダルの観測値が観測される。そして、センサ部１１は、距離のモーダルの観測値としての、エージェントから壁までの距離を、学習認識部１２1に、光のモーダルの観測値としての、エージェントで受光される光の光量を、学習認識部１２2に、エネルギのモーダルの観測値としての、エージェントのエネルギを、学習認識部１２3に、それぞれ供給する。
【０１１２】
学習認識部１２1ないし１２3では、そこに供給される観測値を用いて、図１の学習認識部１２と同様の処理が行われる。その結果、学習認識部１２1では、距離のモーダルの観測値を用いて学習が行われたHMM（以下、距離HMMともいう）が、学習認識部１２2では、光のモーダルの観測値を用いて学習が行われたHMM（以下、光HMMともいう）が、学習認識部１２3では、エネルギのモーダルの観測値を用いて学習が行われたHMM（以下、エネルギHMMともいう）が、それぞれ獲得される。
【０１１３】
なお、学習認識部１２1ないし１２3において、距離HMM、光HMM、及び、エネルギHMMや、その距離HMM、光HMM、及び、エネルギHMMを用いた認識処理により得られる最尤系列（現在状態）、並びに、認識処理に用いられる観測値は、図１の学習認識部１２の場合と同様に、アクション制御部１３に対応するアクション制御部４１に供給される。
【０１１４】
また、距離HMM、光HMM、及び、エネルギHMM、並びに、認識処理により得られる最尤系列は、学習認識部１２1ないし１２3から因果処理部４２にも供給される。
【０１１５】
アクション制御部４１は、プランニング部３１、アクション信号生成部３２、アクション学習部３３、アクション生成情報記憶部３４、生得コントローラ３５、及び、プラン制御部３６を有する。
【０１１６】
したがって、アクション制御部４１は、プランニング部３１ないし生得コントローラ３５を有する点で、図１のアクション制御部１３と共通し、プラン制御部３６が新たに設けられている点で、図１のアクション制御部１３と相違する。
【０１１７】
アクション制御部４１では、図１のアクション制御部１３と同様の処理が行われる。
【０１１８】
したがって、アクション制御部４１では、図１のアクション制御部１３と同様に、アクション信号が、アクション部１４に供給される他、アクション学習部３３が、学習認識部１２mから供給される現在状態、及び、最新の観測値と、生得コントローラ３５が生成するアクション信号とを用いて、状態遷移Tijごとのコントローラである関数Fij(o)等のアクション生成情報を求めるアクション学習を行う。
【０１１９】
但し、ここでは、説明を簡単にするため、アクション学習部３３では、学習認識部１２1ないし１２3のうちの、学習認識部１２1から供給される距離HMMの現在状態、及び、最新の観測値と、生得コントローラ３５が生成するアクション信号とを用いて、距離HMMの状態遷移Tijごとのコントローラである関数Fij(o)等のアクション生成情報を求めるアクション学習が行われることとする。
【０１２０】
したがって、図３では、アクション信号生成部３２は、距離HMM、光HMM、及び、エネルギHMMのうちの、距離HMMの状態遷移Tijを生じさせるアクションを行うためのアクション信号だけを生成することができ、光HMMやエネルギHMMの状態遷移を生じさせるアクションを行うためのアクション信号については、いわば直接に生成することはできない。
【０１２１】
また、プランニング部３１には、学習認識部１２1ないし１２3から、距離HMM、光HMM、及び、エネルギHMMそれぞれの現在状態（最尤系列の最後の状態）が供給されるとともに、プラン制御部３６から、距離HMM、光HMM、又は、エネルギHMMの状態のうちの、目標とすべき状態を表す目標情報が供給される。
【０１２２】
プランニング部３１は、プラン制御部３６から目標状態が供給されると、距離HMM、光HMM、及び、エネルギHMMのうちの、目標状態を有するHMMを注目HMMとする。
【０１２３】
そして、プランニング部３１は、学習認識部１２1ないし１２3からの距離HMM、光HMM、及び、エネルギHMMそれぞれの現在状態のうちの、注目HMMの現在状態を、スタート状態とするとともに、目標情報が表す注目HMMの状態を、目標状態として、スタート状態から目標状態までの状態遷移の尤度が最大の状態系列を、プランとして求めるプランニングを行う。
【０１２４】
プランニング部３１において、プランを求めるのに用いた注目HMMが、状態遷移を生じさせるアクションを行うためのアクション信号を生成することができるHMMではない場合（注目HMMが、アクション学習において、アクション信号と、そのアクション信号に従ったアクションが行われることにより生じる状態遷移Tijとの関係が関数Fij(o)として獲得されているHMMではない場合）、すなわち、ここでは、注目HMMが、距離HMM以外の光HMM、又は、エネルギHMMである場合、距離HMMの状態遷移Tijごとに求められたコントローラである関数Fij(o)等のアクション生成情報では、距離HMM以外の光HMM、又は、エネルギHMMを用いて求められたプランに従った状態遷移を生じさせるアクションを行うためのアクション信号を、直接に生成することができないため、プランニング部３１は、プランを、アクション信号生成部３２に供給せずに、プラン制御部３６に供給する。
【０１２５】
プラン制御部３６は、プランニング部３１からプランが供給されると、そのプランに従った注目HMMの状態遷移を認識し、因果処理部４２に供給する。
【０１２６】
因果処理部４２は、プラン制御部３６から、注目HMMの状態遷移が供給されると、その注目HMMの状態遷移と因果関係がある、注目HMM以外の1以上のHMMの状態、すなわち、注目HMMの状態遷移が生じる原因となる、注目以外のHMM（以下、原因HMMともいう）の状態（を要素とする状態ベクトル）を戻すようになっており、プラン制御部３６は、そのようにして、因果処理部４２から、注目HMMの状態遷移に対して戻ってくる原因HMMの状態を受信する。
【０１２７】
そして、プラン制御部３６は、因果処理部４２からの原因HMMの状態（状態ベクトルの要素になっている状態の任意の１つ）を、目標状態として、プランニング部３１に供給する。
【０１２８】
プランニング部３１は、プラン制御部３６から目標状態が供給されると、距離HMM、光HMM、及び、エネルギHMMのうちの、目標状態を有するHMMを、新たに、注目HMMとし、以下、同様の処理が再帰的に繰り返される。
【０１２９】
そして、プランニング部３１において、プランを求めるのに用いた注目HMMが、状態遷移を生じさせるアクションを行うためのアクション信号を生成することができるHMMである場合（注目HMMが、アクション学習において、アクション信号と、そのアクション信号に従ったアクションが行われることにより生じる状態遷移Tijとの関係が関数Fij(o)として獲得されているHMMである場合）、すなわち、ここでは、注目HMMが、距離HMMである場合、距離HMMの状態遷移Tijごとに求められたコントローラである関数Fij(o)等のアクション生成情報によって、注目HMMである距離HMMを用いて求められたプランに従った状態遷移を生じさせるアクションを行うためのアクション信号を、直接に生成することができるため、プランニング部３１は、プランを、アクション信号生成部３２に供給する。
【０１３０】
ここで、アクション学習において、アクション信号と、そのアクション信号に従ったアクションが行われることにより生じる状態遷移Tijとの関係が関数Fij(o)として獲得されているHMMを、アクション可能HMMともいう。
【０１３１】
因果処理部４２は、学習認識部１２1ないし１２3からの距離HMM、光HMM、及び、エネルギHMMの現在状態から、距離HMM、光HMM、及び、エネルギHMMのうちの１つのHMMである第１のHMMの状態遷移と、他の１つ以上のHMMである第２のHMMの状態との間の因果関係を獲得する学習である因果学習に用いる因果学習用データを取得し、その因果学習用データを用いて、因果学習を行う。
【０１３２】
また、因果処理部４２は、プラン制御部３６から、注目HMMの状態遷移が供給されると、その注目HMMの状態遷移と因果関係があるHMM（原因HMM）の状態を、因果学習の結果に基づいて推定する因果推定を行い、原因HMMの状態（を要素とする状態ベクトル）を、プラン制御部３６に供給する。
【０１３３】
［因果処理部４２の構成例］
【０１３４】
図４は、図３の因果処理部４２の構成例を示すブロック図である。
【０１３５】
ここで、例えば、図３で説明した距離HMM、光HMM、及び、エネルギHMM等のような、複数の観測値それぞれを用いて学習が行われた複数のHMMについては、そのうちの１つのHMMである第１のHMMで生じる状態遷移という事象は、他の１つ以上のHMMである第２のHMMにおいて、ある状態にいること（第２のHMMの現在状態が、ある状態であること）を因子（原因）として生じることがあり、この場合、第２のHMMにおいて、ある状態にいることと、第１のHMMにおいて、状態遷移が生じることとの間には、因果（関係）がある。
【０１３６】
因果処理部４２では、第１のHMMの状態遷移と、その状態遷移が生じる原因となり得る因子の生起としての、第２のHMMにおいて、ある状態にいることとの間の因果関係の学習（因果学習）が行われる。
【０１３７】
そして、因果処理部４２では、プラン制御部３６（図３）から、第１のHMMとしての注目HMM（プランの生成に用いられたHMM）の状態遷移が供給されると、その注目HMMの状態遷移と因果関係がある第２のHMMとしての原因HMMの状態（因子）を、因果学習の結果に基づいて推定する因果推定が行われ、原因HMMの状態（を要素とする状態ベクトル）が、プラン制御部３６に供給される（戻される）。
【０１３８】
すなわち、図４において、因果処理部４２は、因果学習用データ取得部５１、因果学習部５２、因子候補リスト記憶部５３、マージ部５４、及び、因果推定部５５を有する。
【０１３９】
因果学習用データ取得部５１は、学習認識部１２1ないし１２Mからの距離HMM、光HMM、及び、エネルギHMM等の現在状態から、因果学習に用いる因果学習用データを取得し、因果学習部５２に供給する。
【０１４０】
因果学習部５２は、因果学習用データ取得部５１から供給される因果学習用データを用いて、因果学習を行う。因果学習部５２は、因果学習を行うことによって得られる、第１のHMMの状態遷移と、その状態遷移が生じる原因となり得る因子としての第２のHMMの状態との因果関係を表すリストである因子候補リストを、因子候補リスト記憶部５３に供給する。
【０１４１】
因子候補リスト記憶部５３は、因果学習部５２からの因子候補リストを記憶する。
【０１４２】
マージ部５４は、因子候補リスト記憶部５３に記憶されている因子候補リストの項目をマージすることで、因子候補リストを整理する。
【０１４３】
因果推定部５５には、プラン制御部３６（図３）から、第１のHMMとしての注目HMM（プランの生成に用いられたHMM）の状態遷移が供給される。
【０１４４】
因果推定部５５は、プラン制御部３６からの注目HMMの状態遷移と因果関係がある第２のHMMとしての原因HMMの状態（因子）を、因果学習の結果である、因子候補リスト記憶部５３に記憶された因子候補リストに基づいて推定する因果推定を行い、その原因HMMの状態（を要素とする状態ベクトル）を、プラン制御部３６に供給する（戻す）。
【０１４５】
図５は、図４の因果処理部４２が行う処理（因果処理）を説明するフローチャートである。
【０１４６】
因果処理部４２では、ステップＳ２１，Ｓ２２，Ｓ２３、及び、Ｓ２４の処理が、必要に応じて行われる。
【０１４７】
ステップＳ２１では、因果学習用データ取得処理が行われる。因果学習用データ取得処理では、因果学習用データ取得部５１が、因果学習用データを取得し、データを因果学習部５２に供給する。
【０１４８】
ステップＳ２２では、因果学習処理が行われる。因果学習処理では、因果学習部５２が、因果学習用データ取得部５１からの因果学習用データを用いて、因果学習を行い、その結果得られる因子候補リストを、因子候補リスト記憶部５３に供給して記憶させる。
【０１４９】
ステップＳ２３では、マージ処理が行われる。マージ処理では、マージ部５４が、因子候補リスト記憶部５３に記憶された因子候補リストを整理し、その整理後の因子候補リストを、因子候補リスト記憶部５３に記憶させる。
【０１５０】
ステップＳ２４では、因果推定処理が行われる。因果推定処理は、プラン制御部３６（図３）から因果推定部５５（図４）に対して、第１のHMMとしての注目HMMの状態遷移が供給されると、開始される。
【０１５１】
因果推定処理では、因果推定部５５が、プラン制御部３６からの注目HMMの状態遷移と因果関係がある第２のHMMとしての原因HMMの状態を、因子候補リスト記憶部５３に記憶された（整理後の）因子候補リストに基づいて推定し、その原因HMMの状態を要素とする状態ベクトルを、プラン制御部３６に供給する。
【０１５２】
以下、図５のステップＳ２１ないし２４の各処理について、さらに説明する。
【０１５３】
なお、図３の学習認識部１２mに記憶されたHMMを、m番目のHMM#mともいい、そのHMM#mの状態数を、N(m)と表すこととする。
【０１５４】
また、以下、適宜、m番目のHMM#mのi番目の状態Si（i=1,2,・・・,N(m))を、Smiと表すこととする。例えば、状態S25は2番目のHMM#2の状態S5を表す。
【０１５５】
さらに、1ないしN(m)の範囲の任意の整数を、i(m)と表すこととすると、M個のHMM#1ないしHMM#Mのそれぞれにおいて、ある状態Smi(m)にいることは、状態Smi(m)を要素とするM次元のベクトルである状態ベクトル[S1i(1)，S2i(2)，・・・，SMi(M)]で表される。
【０１５６】
ここで、状態ベクトルの各次元の要素がどのHMMの状態を表すのかが明らかな場合、記述を簡単にするため、状態ベクトルの要素になっているHMMの状態を、何番目の状態であるかを示す数字で表す。
【０１５７】
例えば、HMM#1,#2、及び、#3において、それぞれ、状態S15,S27、及び、S311にいることは、状態ベクトル[S15,S27,S311]＝[5,7,11]で表される。また、例えば、HMM#1,#2、及び、#3のうちの、HMM#2及び#3に注目している場合、状態ベクトルは、注目しているHMM#2及び#3の状態のみを要素とするベクトル[S27,S311]＝[7,11]で表される。
【０１５８】
ステップＳ２１の因果学習用データ取得処理（図５）では、まず、状態カウンタと遷移カウンタのカウント値が、0にリセットされる。
【０１５９】
すなわち、因果学習用データ取得部５１（図５）は、状態カウンタと遷移カウンタを内蔵しており、因果学習用データ取得処理の開始時に、状態カウンタと遷移カウンタのカウント値を、0にリセットする。
【０１６０】
なお、因果学習用データ取得部５１は、因果学習用データ取得処理の開始時に、状態カウンタと遷移カウンタをリセットする他、状態カウンタと遷移カウンタの時刻（を表す変数）tを0にリセットする。
【０１６１】
状態カウンタと遷移カウンタのカウント値は、時刻tの経過とともに、γ=0.999等のあらかじめ定められた減衰率γに従って減衰させることができる。
【０１６２】
因果学習用データ取得部５１は、学習認識部１２1ないし１２M（図３）それぞれからの時刻tのHMM#1ないし#Mそれぞれの状態（現在状態）と、1時刻前の時刻t-1のHMM#1ないし#Mそれぞれの状態（現在状態）とを比較し、時刻tとt-1とで状態が異なるHMMをリストアップする。
【０１６３】
そして、因果学習用データ取得部５１は、M個のHMM#1ないし#Mから選択するHMMの数を表す変数Lを、1,2,・・・,M-1に順次変えて、各値のLについて、以下の処理を行う。
【０１６４】
ここで、M個のHMM#1ないし#Mの中からL+1個のHMMを選択したときのD=MCL+1通りのHMMの組み合わせのうちの、d番目（d＝1,2,・・・,D）のHMMの組み合わせを、cM(L+1;)(d)と表す。
【０１６５】
また、D=MCL+1通りのHMMの組み合わせのうちの、d番目のHMMの組み合わせcM(L+1;)(d)であるL+1個のHMMのうちの、c番目（c=1,2,・・・,L+1）のHMMの１つの状態S(d,c)を、c番目の要素とするL+1次元のベクトルである状態ベクトルを、V(cM(L+1;)(d))＝[S(d,1)，S(d,2)，・・・，S(d,L+1)]と表す。
【０１６６】
状態カウンタは、L+1次元の状態ベクトルV(cM(L+1;)(d))に対応して設けられており、以下、適宜、状態ベクトルV(cM(L+1;)(d))に対応する状態カウンタ、及び、そのカウント値を、NS(V(cM(L+1;)(d)))と表す。
【０１６７】
いま、d番目のHMMの組み合わせcM(L+1;)(d)であるL+1個のHMMのそれぞれの時刻tの現在状態を要素とするL+1次元の状態ベクトルV(cM(L+1;)(d))を、vS(t)と表すこととする。
【０１６８】
因果学習用データ取得部５１（図４）は、時刻tにおいて、1時刻前の時刻t-1のL+1次元の状態ベクトルvS(t-1)に対応する状態カウンタNS(vS(t-1))を、1だけインクリメントする。
【０１６９】
したがって、状態カウンタNS(V(cM(L+1;)(d)))によれば、対応する状態ベクトルV(cM(L+1;)(d))の要素になっているL+1個のHMMの状態S(d,1)，S(d,2)，・・・，S(d,L+1)が、同時に、現在状態になった回数（状態S(d,1)，S(d,2)，・・・，S(d,L+1)に、同時にいた回数）がカウントされる。
【０１７０】
また、M個のHMMのうちの、時刻tにおいて、現在状態が（時刻t-1の現在状態から）変化（遷移）したHMMを、遷移有りHMMということとすると、因果学習用データ取得部５１は、遷移有りHMMを、順次、注目HMMとして注目し、注目HMMについて、以下の処理を行う。
【０１７１】
すなわち、注目HMMが、M個のHMMのうちの、m'番目のHMM#m'であるとすると、因果学習用データ取得部５１は、M個のHMMからHMM#m'を除いたM-1個のHMMの中から、L個のHMMを選択したときのD=M-1CL通りのHMMの組み合わせのうちの、d番目（d＝1,2,・・・,D）のHMMの組み合わせを、cM(L;m')(d)と表す。
【０１７２】
また、D=M-1CL通りのHMMの組み合わせのうちの、d番目のHMMの組み合わせcM(L;m')(d)であるL個のHMMのうちの、c番目（c=1,2,・・・,L）のHMMの１つの状態S(d,c)を、c番目の要素とするL次元のベクトルである状態ベクトルを、V(cM(L;m')(d))＝[S(d,1)，S(d,2)，・・・，S(d,L)]と表す。
【０１７３】
遷移カウンタは、L次元の状態ベクトルV(cM(L;m')(d))と、HMM#m'で生じる状態遷移Tij（以下、T(m')ijとも表す）とのセットに対応して設けられており、以下、適宜、状態ベクトルV(cM(L;m')(d))と状態遷移T(m')ijとのセットに対応する遷移カウンタ、及び、そのカウント値を、NT(T(m')ij，V(cM(L;m')(d)))と表す。
【０１７４】
いま、d番目のHMMの組み合わせcM(L;m')(d)であるL個のHMMそれぞれの時刻tの現在状態を要素とするL次元の状態ベクトルV(cM(L;m')(d))を、vT(t)と表すこととする。
【０１７５】
また、状態ベクトルvT(t)の要素になっているL個のHMMの状態が現在状態になっているとき（直後）に、HMM#m'において生じた状態遷移を、T(t)と表すこととする。
【０１７６】
因果学習用データ取得部５１（図４）は、時刻tにおいて、1時刻前の時刻t-1のL次元の状態ベクトルvT(t-1)と状態遷移T(t-1)に対応する遷移カウンタNT(T(t-1)，vT(t-1))を、1だけインクリメントする。
【０１７７】
したがって、遷移カウンタNT(T(m')ij，V(cM(L;m')(d)))によれば、HMM#m'において、対応する状態遷移T(m')ijが生じたときに、対応する状態ベクトルV(cM(L;m')(d))の要素になっているL個のHMMの状態S(d,1)，S(d,2)，・・・，S(d,L)が、同時に、現在状態になっていた回数（状態S(d,1)，S(d,2)，・・・，S(d,L)に、同時にいた回数）がカウントされる。
【０１７８】
因果学習用データ取得部５１は、状態カウンタNS(V(cM(L+1;)(d)))、及び、遷移カウンタNT(T(m')ij，V(cM(L;m')(d)))のカウントを、因果学習用データ取得処理として行い、その状態カウンタのカウント値NS(V(cM(L+1;)(d)))、及び、遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))を、因果学習用データとして取得する。
【０１７９】
状態カウンタNS(V(cM(L+1;)(d)))、及び、遷移カウンタNT(T(m')ij，V(cM(L;m')(d)))のカウントの具体例について説明する。
【０１８０】
図６は、学習認識部１２1ないし１２Mに記憶されるHMMの例を示す図である。
【０１８１】
図６では、M=3であり、3個のHMM#1,#2,#3が存在する。
【０１８２】
また、図６において、HMM#1の状態数N(1)は、状態S11,S12の2個に、HMM#2の状態数N(2)は、状態S21,S22,S23,S24の4個に、HMM#3の状態数N(3)は、状態S31,S32,S33の3個に、それぞれなっている。
【０１８３】
さらに、HMM#1ないし#3それぞれの現在状態S1now，S2now、及び、S3nowを要素とする状態ベクトルを、[S1now，S2now，S3now]と表すこととすると、時刻t=0ないしt=5において、ある観測値の時系列が観測されたときの状態ベクトル[S1now，S2now，S3now]が、例えば、以下のようになったとする。
【０１８４】
t=0：[1,1,1]
t=1：[1,2,1]
t=2：[1,2,1]
t=3：[2,2,1]
t=4：[2,4,3]
t=5：[3,4,5]
・・・（１）
【０１８５】
式（１）において、例えば、時刻t=0の状態ベクトル[1,1,1]は、HMM#1ないし#3それぞれの現在状態S1now，S2now、及び、S3nowが、いずれも状態S1（以下、状態#1とも記載する）であることを表す。また、時刻t=1の状態ベクトル[1,2,1]は、HMM#1の現在状態S1nowが状態#1であり、HMM#2の現在状態S2nowが状態#2であり、HMM#3の現在状態S3nowが状態#1であることを表す。
【０１８６】
Lは、値1,2,・・・,M-1をとるため、M=3である場合には、Lは、値1,2をとる。M=3個のHMM#1ないし#3の中からL+1個のHMMを選択したときのD=MCL+1通りのHMMの組み合わせは、{1,2}，{1,3}，{2,3}，{1,2,3}になる。
【０１８７】
ここで、例えば、{1,2}は、HMM#1及び#2の組み合わせを表す。
【０１８８】
HMMの組み合わせ{1,2}、{1,3}，{2,3}，{1,2,3}のうちの、d番目（d＝1,2,・・・,D）のHMMの組み合わせが、上述のcM(L+1;)(d)で表される。
【０１８９】
あるHMMの組み合わせに関して、HMMの状態を要素とする状態ベクトルは、その組み合わせに含まれるHMMの状態の数を乗算した数になる。
【０１９０】
したがって、HMMの組み合わせ{1,2}（HMM#1及び#2の組み合わせ）に注目したとき、その組み合わせ{1,2}に含まれるHMM#1の状態の数N(1)とHMM#2の状態の数N(2)は、それぞれ、2と4であるから、HMMの組み合わせ{1,2}の状態（HMMの組み合わせ{1,2}のHMM#1及び#2の状態）を要素とする状態ベクトルとしては、8(=2×4)通りのベクトルが存在する。
【０１９１】
すなわち、注目するHMMの組み合わせ{1,2}に含まれないHMM#3の状態に対応する要素を「-」で表すこととすると、HMMの組み合わせ{1,2}のHMM#1及び#2それぞれの状態を要素とする状態ベクトルとしては、[1,1,-]、[1,2,-]，[1,3,-]，[1,4,-]，[2,1,-]，[2,2,-]，[2,3,-]，[2,4,-]の8通りのベクトルが存在する。
【０１９２】
同様に、HMMの組み合わせ{1,3}のHMM#1及び#3それぞれの状態を要素とする状態ベクトルとしては、HMM#1の状態の数N(1)が2で、HMM#3の状態の数N(3)が3であるから、6(=2×3)通りのベクトルが存在する。また、HMMの組み合わせ{2,3}のHMM#2及び#3それぞれの状態を要素とする状態ベクトルとしては、HMM#2の状態の数N(2)が4で、HMM#3の状態の数N(3)が3であるから、12(=4×3)通りのベクトルが存在する。さらに、HMMの組み合わせ{1,2,3}のHMM#1ないし#3それぞれの状態を要素とする状態ベクトルとしては、HMM#1の状態の数N(1)が2で、HMM#2の状態の数N(1)が4で、HMM#3の状態の数N(3)が3であるから、24(=2×4×3)通りのベクトルが存在する。
【０１９３】
状態カウンタNS(V(cM(L+1;)(d)))は、L+1次元の状態ベクトルV(cM(L+1;)(d))に対応して設けられるので、図６の3個のHMM#1ないし#3については、50(=8+6+12+24)個の状態カウンタNS(V(cM(L+1;)(d)))が設けられる。
【０１９４】
上述したように、Lが、値1,2をとる場合において、M=3個のHMM#1ないし#3から、例えば、m'=1に対応するHMM#1を除いたM-1=2個のHMM#2及び#3の中から、L個のHMMを選択したときのD=M-1CL通りのHMMの組み合わせは、{2}，{3}，{2,3}になる。
【０１９５】
また、HMMの組み合わせ{2}，{3}，{2,3}のうちの、d番目（d＝1,2,・・・,D）のHMMの組み合わせが、上述のcM(L;1)(d)で表される。
【０１９６】
上述したように、あるHMMの組み合わせの状態を要素とする状態ベクトルは、その組み合わせに含まれるHMMの状態の数を乗算した数になるので、HMMの組み合わせ{2}，{3}，{2,3}のうちの、例えば、HMMの組み合わせ{2}（HMM#2のみの組み合わせ）に注目したとき、その組み合わせ{2}に含まれるHMM#2の状態の数N(2)は、4であるから、HMMの組み合わせ{2}の状態を要素とする状態ベクトルとしては、4通りのベクトルが存在する。
【０１９７】
すなわち、注目するHMMの組み合わせ{2}を得るときの選択の対象から除かれるHMM#1の状態に対応する要素を、「*」で、注目するHMMの組み合わせ{2}に含まれないHMM#3の状態に対応する要素を「-」で、それぞれ表すこととすると、HMMの組み合わせ{2}のHMM#2の状態を要素とする状態ベクトルとしては、[*,1,-]，[*,2,-]，[*,3,-]，[*,4,-]の4通りのベクトルが存在する。
【０１９８】
同様に、HMMの組み合わせ{3}のHMM#3の状態を要素とする状態ベクトルとしては、HMM#3の状態の数N(3)が3であるから、3通りのベクトルが存在する。また、HMMの組み合わせ{2,3}のHMM#2及び#3それぞれの状態を要素とする状態ベクトルとしては、HMM#2の状態の数N(2)が4で、HMM#3の状態の数N(3)が3であるから、12(=4×3)通りのベクトルが存在する。
【０１９９】
したがって、m'=1については、L次元の状態ベクトルV(cM(L;1)(d))として、19(=4+3+12)通りのベクトルが存在する。
【０２００】
上述したように、遷移カウンタは、L次元の状態ベクトルV(cM(L;m')(d))と、HMM#m'で生じる状態遷移T(m')ijとのセットに対応して設けられる。
【０２０１】
図６において、HMM#1の状態遷移T(m')ijとしては、状態#1から#2への状態遷移T(1)12と、状態#2から#1への状態遷移T(1)21との2通りが存在する。
【０２０２】
したがって、m'=1については、19(=4+3+12)通りの状態ベクトルV(cM(L;1)(d))と、2通りの状態遷移T(1)ijとのセットに対応して、19×2個の遷移カウンタNT(V(cM(L;1)(d)))が設けられる。
【０２０３】
次に、M=3個のHMM#1ないし#3から、例えば、m'=2に対応するHMM#2を除いたM-1=2個のHMM#1及び#3の中から、L個のHMMを選択したときのD=M-1CL通りのHMMの組み合わせは、{1}，{3}，{1,3}になる。
【０２０４】
また、HMMの組み合わせ{1}，{3}，{1,3}のうちの、d番目（d＝1,2,・・・,D）のHMMの組み合わせが、上述のcM(L;2)(d)で表される。
【０２０５】
上述したように、あるHMMの組み合わせの状態を要素とする状態ベクトルは、その組み合わせに含まれるHMMの状態の数を乗算した数になるので、HMMの組み合わせ{1}，{3}，{1,3}のうちの、例えば、HMMの組み合わせ{1}に注目したとき、その組み合わせ{1}に含まれるHMM#1の状態の数N(1)は、2であるから、HMMの組み合わせ{1}の状態を要素とする状態ベクトルとしては、2通りのベクトルが存在する。
【０２０６】
すなわち、注目するHMMの組み合わせ{1}を得るときの選択の対象から除かれるHMM#2の状態に対応する要素を、「*」で、注目するHMMの組み合わせ{1}に含まれないHMM#3の状態に対応する要素を「-」で、それぞれ表すこととすると、HMMの組み合わせ{1}のHMM#1の状態を要素とする状態ベクトルとしては、[1,*,-]，[2,*,-]の2通りのベクトルが存在する。
【０２０７】
同様に、HMMの組み合わせ{3}のHMM#3の状態を要素とする状態ベクトルとしては、HMM#3の状態の数N(3)が3であるから、3通りのベクトルが存在する。また、HMMの組み合わせ{1,3}のHMM#1及び#3それぞれの状態を要素とする状態ベクトルとしては、HMM#1の状態の数N(1)が2で、HMM#3の状態の数N(3)が3であるから、6(=2×3)通りのベクトルが存在する。
【０２０８】
したがって、m'=2については、L次元の状態ベクトルV(cM(L;2)(d))として、11(=2+3+6)通りのベクトルが存在する。
【０２０９】
一方、図６において、HMM#2の状態遷移T(m')ijとしては、状態#1から#2への状態遷移T(2)12、状態#2から#1への状態遷移T(2)21、状態#1から#3への状態遷移T(2)13、状態#3から#1への状態遷移T(2)31、状態#1から#4への状態遷移T(2)14、状態#4から#1への状態遷移T(2)41、状態#2から#3への状態遷移T(2)23、状態#3から#2への状態遷移T(2)32、状態#2から#4への状態遷移T(2)24、状態#4から#2への状態遷移T(2)42、状態#3から#4への状態遷移T(2)34、及び、状態#4から#3への状態遷移T(2)43の12通りが存在する。
【０２１０】
遷移カウンタNT(V(cM(L;m')(d)))は、L次元の状態ベクトルV(cM(L;m')(d))と、HMM#m'の状態遷移T(m')ijとのセットに対応して設けられるので、m'=2については、11通りの状態ベクトルV(cM(L;2)(d))と、12通りの状態遷移T(2)ijとのセットに対応して、11×12個の遷移カウンタNT(V(cM(L;2)(d)))が設けられる。
【０２１１】
次に、M=3個のHMM#1ないし#3から、例えば、m'=3に対応するHMM#3を除いたM-1=2個のHMM#1及び#2の中から、L個のHMMを選択したときのD=M-1CL通りのHMMの組み合わせは、{1}，{2}、{1,2}になる。
【０２１２】
また、HMMの組み合わせ{1}，{2}、{1,2}のうちの、d番目（d＝1,2,・・・,D）のHMMの組み合わせが、上述のcM(L;3)(d)で表される。
【０２１３】
上述したように、あるHMMの組み合わせの状態を要素とする状態ベクトルは、その組み合わせに含まれるHMMの状態の数を乗算した数になるので、HMMの組み合わせ{1}，{2}、{1,2}のうちの、例えば、HMMの組み合わせ{1}に注目したとき、その組み合わせ{1}に含まれるHMM#1の状態の数N(1)は、2であるから、HMMの組み合わせ{1}の状態を要素とする状態ベクトルとしては、2通りのベクトルが存在する。
【０２１４】
すなわち、注目するHMMの組み合わせ{1}を得るときの選択の対象から除かれるHMM#3の状態に対応する要素を、「*」で、注目するHMMの組み合わせ{1}に含まれないHMM#2の状態に対応する要素を「-」で、それぞれ表すこととすると、HMMの組み合わせ{1}のHMM#1の状態を要素とする状態ベクトルとしては、[1,-,*]，[2,-,*]の2通りのベクトルが存在する。
【０２１５】
同様に、HMMの組み合わせ{2}のHMM#2の状態を要素とする状態ベクトルとしては、HMM#2の状態の数N(2)が4であるから、4通りのベクトルが存在する。また、HMMの組み合わせ{1,2}のHMM#1及び#2それぞれの状態を要素とする状態ベクトルとしては、HMM#1の状態の数N(1)が2で、HMM#2の状態の数N(2)が4であるから、8(=2×4)通りのベクトルが存在する。
【０２１６】
したがって、m'=3については、L次元の状態ベクトルV(cM(L;3)(d))として、14(=2+4+8)通りのベクトルが存在する。
【０２１７】
一方、図６において、HMM#3の状態遷移T(m')ijとしては、状態#1から#2への状態遷移T(3)12、状態#2から#1への状態遷移T(3)21、状態#1から#3への状態遷移T(3)13、状態#3から#1への状態遷移T(3)31、状態#2から#3への状態遷移T(3)23、及び、状態#3から#2への状態遷移T(3)32、の6通りが存在する。
【０２１８】
遷移カウンタNT(V(cM(L;m')(d)))は、L次元の状態ベクトルV(cM(L;m')(d))と、HMM#m'の状態遷移T(m')ijとのセットに対応して設けられるので、m'=3については、14通りの状態ベクトルV(cM(L;3)(d))と、6通りの状態遷移T(3)ijとのセットに対応して、14×6個の遷移カウンタNT(V(cM(L;3)(d)))が設けられる。
【０２１９】
因果学習用データ取得部５１は、学習認識部１２1ないし１２Mそれぞれから、各時刻tの現在状態が供給されると、時刻tの現在状態と、その1時刻前の時刻t-1の現在状態とに基づき、状態カウンタNS(V(cM(L+1;)(d)))、及び、遷移カウンタNT(T(m')ij，V(cM(L;m')(d)))をインクリメントする。
【０２２０】
すなわち、例えば、時刻t=1では、因果学習用データ取得部５１には、式（１）に示したように、HMM#1ないし#3それぞれの現在状態を要素とする状態ベクトル（以下、現在状態ベクトルともいう）[1,2,1]が供給される。
【０２２１】
因果学習用データ取得部５１は、時刻t=1において、その時刻t=1の現在状態ベクトル[1,2,1]と、その1時刻前の時刻t=0の現在状態ベクトル[1,1,1]とを比較し、HMM#1ないし#3の中から、状態遷移（状態の変化）があったHMMを、遷移有りHMMとしてリストアップする。
【０２２２】
時刻t=1では、HMM#2が、遷移有りHMMとしてリストアップされる。
【０２２３】
また、因果学習用データ取得部５１は、L=1,2の各値のLについてのD=MCL+1通りのHMMの組み合わせ{1,2}、{1,3}，{2,3}，{1,2,3}に、順次、注目する。
【０２２４】
そして、因果学習用データ取得部５１は、注目するHMMの組み合わせのHMMの状態を要素とするL+1次元の状態ベクトルV(cM(L+1;)(d))のうちの、1時刻前の時刻t=0の現在状態ベクトル[1,1,1]の要素である時刻t=0のHMM#1ないし#3の現在状態に一致する状態を要素とする状態ベクトルV(cM(L+1;)(d))＝vS(0)に対応する状態カウンタNS(V(cM(L+1;)(d)))を１だけインクリメントする。
【０２２５】
すなわち、HMMの組み合わせ{1,2}に注目したとき、HMMの組み合わせ{1,2}のHMM#1及び#2それぞれの状態を要素とする状態ベクトルとしては、上述したように、[1,1,-]、[1,2,-]，[1,3,-]，[1,4,-]，[2,1,-]，[2,2,-]，[2,3,-]，[2,4,-]の8通りのベクトルが存在する。
【０２２６】
HMMの組み合わせ{1,2}については、8通りの状態ベクトル[1,1,-]、[1,2,-]，[1,3,-]，[1,4,-]，[2,1,-]，[2,2,-]，[2,3,-]，[2,4,-]のうちの、1時刻前の時刻t=0におけるHMMの組み合わせ{1,2}であるHMM#1及び#2の現在状態S11及びS21を要素とする状態ベクトル[1,1,-]に対応する状態カウンタが1だけインクリメントされる。
【０２２７】
HMMの組み合わせ{1,3}に注目したとき、HMMの組み合わせ{1,3}のHMM#1及び#3それぞれの状態を要素とする状態ベクトルとしては、上述したように、6通りのベクトルが存在する。
【０２２８】
HMMの組み合わせ{1,3}については、6通りの状態ベクトルのうちの、1時刻前のt=0におけるHMMの組み合わせ{1,3}であるHMM#1及び#3の現在状態S11及びS31を要素とする状態ベクトル[1,-,1]に対応する状態カウンタが1だけインクリメントされる。
【０２２９】
HMMの組み合わせ{2,3}に注目したとき、HMMの組み合わせ{2,3}のHMM#2及び#3それぞれの状態を要素とする状態ベクトルとしては、上述したように、12通りのベクトルが存在する。
【０２３０】
HMMの組み合わせ{2,3}については、12通りの状態ベクトルのうちの、1時刻前のt=0におけるHMMの組み合わせ{2,3}であるHMM#2及び#3の現在状態S21及びS31を要素とする状態ベクトル[-,1,1]に対応する状態カウンタが1だけインクリメントされる。
【０２３１】
HMMの組み合わせ{1,2,3}に注目したとき、HMMの組み合わせのHMM#1ないし#3それぞれの状態を要素とする状態ベクトルとしては、上述したように、24通りのベクトルが存在する。
【０２３２】
HMMの組み合わせ{1,2,3}については、24通りの状態ベクトルのうちの、1時刻前のt=0におけるHMMの組み合わせ{1,2,3}であるHMM#1ないし#3の現在状態S11，S21、及び、S31を要素とする状態ベクトル[1,1,1]に対応する状態カウンタが1だけインクリメントされる。
【０２３３】
以上のように、時刻t=1では、4個の状態ベクトル[1,1,-]、[1,-,1]，[-,1,1]，[1,1,1]それぞれに対応する状態カウンタが1だけインクリメントされる。
【０２３４】
また、因果学習用データ取得部５１は、遷移有りHMMに、順次、注目し、さらに、注目する遷移有りHMM#m'以外のHMMの中からL個のHMMを選択したときの、L=1,2の各値のLについてのD=M-1CL通りのHMMの組み合わせに、順次、注目する。
【０２３５】
そして、因果学習用データ取得部５１は、注目するHMMの組み合わせのHMMの状態を要素とするL次元の状態ベクトルV(cM(L;m')(d))のうちの、1時刻前の時刻t=0の現在状態ベクトル[1,1,1]の要素である時刻t=0の現在状態に一致する状態を要素とする状態ベクトルV(cM(L;m')(d))＝vT(0)と、注目する遷移有りHMM#m'において生じた状態遷移T(m')ij＝T(0)に対応する遷移カウンタNT(T(m')ij，V(cM(L;m')(d)))を１だけインクリメントする。
【０２３６】
すなわち、式（１）において、時刻t=1では、遷移有りHMMは、HMM#2のみであり、そのHMM#2に生じている状態遷移は、状態#1から状態#2への状態遷移T(2)12である。
【０２３７】
さらに、時刻t=1において、遷移有りHMMであるHMM#2に注目した場合に、その遷移有りHMM#2以外のHMMの中からL個のHMMを選択したときのD=M-1CL通りのHMMの組み合わせとしては、組み合わせ{1}，{3}，{1,3}がある。
【０２３８】
そして、HMMの組み合わせ{1}に注目したとき、HMMの組み合わせ{1}のHMM#1の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=0におけるHMMの組み合わせ{1}であるHMM#1の現在状態S11を要素とする状態ベクトル[1,*,-]と、遷移有りHMMであるHMM#2の状態遷移T(2)12とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２３９】
HMMの組み合わせ{3}に注目したとき、HMMの組み合わせ{3}のHMM#3の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=0におけるHMMの組み合わせ{3}であるHMM#3の現在状態S31を要素とする状態ベクトル[-,*,1]と、遷移有りHMMであるHMM#2の状態遷移T(2)12とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２４０】
HMMの組み合わせ{1,3}に注目したとき、HMMの組み合わせ{1,3}のHMM#1及び#3の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=0におけるHMMの組み合わせ{1,3}であるHMM#1及び#3の現在状態S11及びS31を要素とする状態ベクトル[1,*,1]と、遷移有りHMMであるHMM#2の状態遷移T(2)12とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２４１】
以上のように、現在状態ベクトルが、[1,1,1]から[1,2,1]に遷移（変化）した時刻t=1では、状態ベクトル[1,*,-]，[-,*,1]、及び、[1,*,1]それぞれと、状態遷移T(2)12とのセットそれぞれに対応する遷移カウンタが１だけインクリメントされる。
【０２４２】
時刻t=2では、因果学習用データ取得部５１には、式（１）に示したように、現在状態ベクトル[1,2,1]が供給される。
【０２４３】
時刻t=2では、現在状態ベクトル[1,2,1]が、1時刻前の時刻t=1の現在状態ベクトル[1,2,1]と一致しているため、因果学習用データ取得部５１では、遷移有りHMMは、リストアップされない。
【０２４４】
遷移有りHMMがリストアップされない場合、因果学習用データ取得部５１では、状態カウンタのインクリメントが行われるが、遷移カウンタのインクリメントは行われない。
【０２４５】
すなわち、因果学習用データ取得部５１は、L=1,2の各値のLについての、D=MCL+1通りのHMMの組み合わせ{1,2}、{1,3}，{2,3}，{1,2,3}に、順次、注目する。
【０２４６】
そして、因果学習用データ取得部５１は、注目するHMMの組み合わせのHMMの状態を要素とするL+1次元の状態ベクトルV(cM(L+1;)(d))のうちの、1時刻前の時刻t=1の現在状態ベクトル[1,2,1]の要素である時刻t=1の現在状態に一致する状態を要素とする状態ベクトルV(cM(L+1;)(d))＝vS(1)に対応する状態カウンタNS(V(cM(L+1;)(d)))を１だけインクリメントする。
【０２４７】
具体的には、HMMの組み合わせ{1,2}に注目したとき、HMMの組み合わせ{1,2}のHMM#1及び#2それぞれの状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=1におけるHMM#1及び#2の現在状態S11及びS22を要素とする状態ベクトル[1,2,-]に対応する状態カウンタが1だけインクリメントされる。
【０２４８】
HMMの組み合わせ{1,3}に注目したとき、HMMの組み合わせ{1,3}のHMM#1及び#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=1におけるHMM#1及び#3の現在状態S11及びS31を要素とする状態ベクトル[1,-,1]に対応する状態カウンタが1だけインクリメントされる。
【０２４９】
HMMの組み合わせ{2,3}に注目したとき、HMMの組み合わせ{2,3}のHMM#2及び#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=1におけるHMM#2及び#3の現在状態S22及びS31を要素とする状態ベクトル[-,2,1]に対応する状態カウンタが1だけインクリメントされる。
【０２５０】
HMMの組み合わせ{1,2,3}に注目したとき、HMMの組み合わせのHMM#1ないし#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=1におけるHMM#1ないし#3の現在状態S11，S22、及び、S31を要素とする状態ベクトル[1,2,1]に対応する状態カウンタが1だけインクリメントされる。
【０２５１】
以上のように、時刻t=2では、4個の状態ベクトル[1,2,-]、[1,-,1]，[-,2,1]，[1,2,1]それぞれに対応する状態カウンタが1だけインクリメントされる。
【０２５２】
時刻t=3では、因果学習用データ取得部５１には、式（１）に示したように、現在状態ベクトル[2,2,1]が供給される。
【０２５３】
因果学習用データ取得部５１は、時刻t=3において、その時刻t=3の現在状態ベクトル[2,2,1]と、その1時刻前の時刻t=2の現在状態ベクトル[1,2,1]とを比較し、HMM#1ないしH#の中から、状態遷移（状態の変化）があったHMMであるHMM#1を、遷移有りHMMとしてリストアップする。
【０２５４】
また、因果学習用データ取得部５１は、各値のLについての、D=MCL+1通りのHMMの組み合わせ{1,2}、{1,3}，{2,3}，{1,2,3}に、順次、注目する。
【０２５５】
そして、因果学習用データ取得部５１は、注目するHMMの組み合わせのHMMの状態を要素とするL+1次元の状態ベクトルV(cM(L+1;)(d))のうちの、1時刻前の時刻t=2の現在状態ベクトル[1,2,1]の要素である時刻t=2の現在状態に一致する状態を要素とする状態ベクトルV(cM(L+1;)(d))＝vS(2)に対応する状態カウンタNS(V(cM(L+1;)(d)))を１だけインクリメントする。
【０２５６】
具体的には、HMMの組み合わせ{1,2}に注目したとき、HMMの組み合わせ{1,2}のHMM#1及び#2それぞれの状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=2におけるHMM#1及び#2の現在状態S11及びS22を要素とする状態ベクトル[1,2,-]に対応する状態カウンタが1だけインクリメントされる。
【０２５７】
HMMの組み合わせ{1,3}に注目したとき、HMMの組み合わせ{1,3}のHMM#1及び#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=2におけるHMM#1及び#3の現在状態S11及びS31を要素とする状態ベクトル[1,-,1]に対応する状態カウンタが1だけインクリメントされる。
【０２５８】
HMMの組み合わせ{2,3}に注目したとき、HMMの組み合わせ{2,3}のHMM#2及び#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=2におけるHMM#2及び#3の現在状態S22及びS31を要素とする状態ベクトル[-,2,1]に対応する状態カウンタが1だけインクリメントされる。
【０２５９】
HMMの組み合わせ{1,2,3}に注目したとき、HMMの組み合わせのHMM#1ないし#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=2におけるHMM#1ないし#3の現在状態S11，S22、及び、S31を要素とする状態ベクトル[1,2,1]に対応する状態カウンタが1だけインクリメントされる。
【０２６０】
以上のように、時刻t=3では、4個の状態ベクトル[1,2,-]、[1,-,1]，[-,2,1]，[1,2,1]それぞれに対応する状態カウンタが1だけインクリメントされる。
【０２６１】
また、因果学習用データ取得部５１は、遷移有りHMMに、順次、注目し、さらに、注目する遷移有りHMM#m'以外のHMMの中からL個のHMMを選択したときの、各値のLについてのD=M-1CL通りのHMMの組み合わせに、順次、注目する。
【０２６２】
そして、因果学習用データ取得部５１は、注目するHMMの組み合わせのHMMの状態を要素とするL次元の状態ベクトルV(cM(L;m')(d))のうちの、1時刻前の時刻t=2の現在状態ベクトル[1,2,1]の要素である時刻t=2の現在状態に一致する状態を要素とする状態ベクトルV(cM(L;m')(d))＝vT(2)と、注目する遷移有りHMM#m'において生じた状態遷移T(m')ij＝T(2)に対応する遷移カウンタNT(T(m')ij，V(cM(L;m')(d)))を１だけインクリメントする。
【０２６３】
すなわち、式（１）において、時刻t=3では、遷移有りHMMは、HMM#1のみであり、そのHMM#1に生じている状態遷移は、状態#1から状態#2への状態遷移T(1)12である。
【０２６４】
さらに、時刻t=3において、遷移有りHMMであるHMM#1に注目した場合に、その遷移有りHMM#1以外のHMMの中からL個のHMMを選択したときの、各値のLについてのD=M-1CL通りのHMMの組み合わせとしては、組み合わせ{2}，{3}，{2,3}がある。
【０２６５】
そして、HMMの組み合わせ{2}に注目したとき、HMMの組み合わせ{2}のHMM#2の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=2におけるHMM#2の現在状態S22を要素とする状態ベクトル[*,2,-]と、遷移有りHMMであるHMM#1の状態遷移T(1)12とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２６６】
HMMの組み合わせ{3}に注目したとき、HMMの組み合わせ{3}のHMM#3の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=2におけるHMM#3の現在状態S31を要素とする状態ベクトル[*,-,1]と、遷移有りHMMであるHMM#1の状態遷移T(1)12とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２６７】
HMMの組み合わせ{2,3}に注目したとき、HMMの組み合わせ{2,3}のHMM#2及び#3の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=2におけるHMM#2及び#3の現在状態S22及びS31を要素とする状態ベクトル[*,2,1]と、遷移有りHMMであるHMM#1の状態遷移T(1)12とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２６８】
以上のように、現在状態ベクトルが、[1,2,1]から[2,2,1]に遷移（変化）した時刻t=3では、状態ベクトル[*,2,-]，[*,-,1]，[*,2,1]それぞれと、状態遷移T(1)12とのセットそれぞれに対応する遷移カウンタが１だけインクリメントされる。
【０２６９】
時刻t=4では、因果学習用データ取得部５１には、式（１）に示したように、現在状態ベクトル[2,4,3]が供給される。
【０２７０】
因果学習用データ取得部５１は、時刻t=4において、その時刻t=4の現在状態ベクトル[2,4,3]と、その1時刻前の時刻t=2の現在状態ベクトル[2,2,1]とを比較し、HMM#1ないしH#の中から、状態遷移（状態の変化）があったHMMであるHMM#2及び#3を、遷移有りHMMとしてリストアップする。
【０２７１】
また、因果学習用データ取得部５１は、各値のLについてのD=MCL+1通りのHMMの組み合わせ{1,2}、{1,3}，{2,3}，{1,2,3}に、順次、注目する。
【０２７２】
そして、因果学習用データ取得部５１は、注目するHMMの組み合わせのHMMの状態を要素とするL+1次元の状態ベクトルV(cM(L+1;)(d))のうちの、1時刻前の時刻t=3の現在状態ベクトル[2,2,1]の要素である時刻t=3の現在状態に一致する状態を要素とする状態ベクトルV(cM(L+1;)(d))＝vS(3)に対応する状態カウンタNS(V(cM(L+1;)(d)))を１だけインクリメントする。
【０２７３】
具体的には、HMMの組み合わせ{1,2}に注目したとき、HMMの組み合わせ{1,2}のHMM#1及び#2それぞれの状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=3におけるHMM#1及び#2の現在状態S12及びS22を要素とする状態ベクトル[2,2,-]に対応する状態カウンタが1だけインクリメントされる。
【０２７４】
HMMの組み合わせ{1,3}に注目したとき、HMMの組み合わせ{1,3}のHMM#1及び#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=3におけるHMM#1及び#3の現在状態S12及びS31を要素とする状態ベクトル[2,-,1]に対応する状態カウンタが1だけインクリメントされる。
【０２７５】
HMMの組み合わせ{2,3}に注目したとき、HMMの組み合わせ{2,3}のHMM#2及び#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=3におけるHMM#2及び#3の現在状態S22及びS31を要素とする状態ベクトル[-,2,1]に対応する状態カウンタが1だけインクリメントされる。
【０２７６】
HMMの組み合わせ{1,2,3}に注目したとき、HMMの組み合わせのHMM#1ないし#3それぞれの状態を要素とする状態ベクトルのうちの、1時刻前のt=3におけるHMM#1ないし#3の現在状態S12，S22、及び、S31を要素とする状態ベクトル[2,2,1]に対応する状態カウンタが1だけインクリメントされる。
【０２７７】
以上のように、時刻t=3では、4個の状態ベクトル[2,2,-]、[2,-,1]，[-,2,1]，[2,2,1]それぞれに対応する状態カウンタが1だけインクリメントされる。
【０２７８】
また、因果学習用データ取得部５１は、遷移有りHMMに、順次、注目し、さらに、注目する遷移有りHMM#m'以外のHMMの中からL個のHMMを選択したときの、各値のLについてのD=M-1CL通りのHMMの組み合わせに、順次、注目する。
【０２７９】
そして、因果学習用データ取得部５１は、注目するHMMの組み合わせのHMMの状態を要素とするL次元の状態ベクトルV(cM(L;m')(d))のうちの、1時刻前の時刻t=3の現在状態ベクトル[2,2,1]の要素である時刻t=3の現在状態に一致する状態を要素とする状態ベクトルV(cM(L;m')(d))＝vT(3)と、注目する遷移有りHMM#m'において生じた状態遷移T(m')ij＝T(3)に対応する遷移カウンタNT(T(m')ij，V(cM(L;m')(d)))を１だけインクリメントする。
【０２８０】
すなわち、式（１）において、時刻t=4では、遷移有りHMMは、HMM#2及び#3であり、HMM#2に生じている状態遷移は、状態#2から状態#4への状態遷移T(2)24であり、HMM#3に生じている状態遷移は、状態#1から状態#3への状態遷移T(3)13である。
【０２８１】
因果学習用データ取得部５１は、遷移有りHMMであるHMM#2及び#3のうちの、例えば、HMM#2に注目する。
【０２８２】
時刻t=4において、遷移有りHMMの１つであるHMM#2に注目した場合に、その遷移有りHMM#2以外のHMMの中からL個のHMMを選択したときの、各値のLについてのD=M-1CL通りのHMMの組み合わせとしては、組み合わせ{1}，{3}，{1,3}がある。
【０２８３】
HMMの組み合わせ{1}に注目したとき、HMMの組み合わせ{1}のHMM#1の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=3におけるHMM#1の現在状態S12を要素とする状態ベクトル[2,*,-]と、注目している遷移有りHMMであるHMM#2の状態遷移T(2)24とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２８４】
HMMの組み合わせ{3}に注目したとき、HMMの組み合わせ{3}のHMM#3の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=3におけるHMM#3の現在状態S31を要素とする状態ベクトル[-,*,1]と、遷移有りHMMであるHMM#2の状態遷移T(2)24とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２８５】
HMMの組み合わせ{1,3}に注目したとき、HMMの組み合わせ{1,3}のHMM#1及び#3の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=3におけるHMM#1及び#3の現在状態S12及びS31を要素とする状態ベクトル[2,*,1]と、遷移有りHMMであるHMM#2の状態遷移T(2)24とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２８６】
その後、因果学習用データ取得部５１は、遷移有りHMMであるHMM#2及び#3のうちの、残りのHMM#3に注目する。
【０２８７】
時刻t=4において、遷移有りHMMの１つであるHMM#3に注目した場合に、その遷移有りHMM#3以外のHMMの中からL個のHMMを選択したときの、各値のLについてのD=M-1CL通りのHMMの組み合わせとしては、組み合わせ{1}，{2}，{1,2}がある。
【０２８８】
HMMの組み合わせ{1}に注目したとき、HMMの組み合わせ{1}のHMM#1の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=3におけるHMM#1の現在状態S12を要素とする状態ベクトル[2,-,*]と、注目している遷移有りHMMであるHMM#3の状態遷移T(3)13とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２８９】
HMMの組み合わせ{2}に注目したとき、HMMの組み合わせ{2}のHMM#2の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=3におけるHMM#2の現在状態S22を要素とする状態ベクトル[-,2,*]と、遷移有りHMMであるHMM#3の状態遷移T(3)13とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２９０】
HMMの組み合わせ{1,2}に注目したとき、HMMの組み合わせ{1,2}のHMM#1及び#2の状態を要素とする状態ベクトルのうちの、1時刻前の時刻t=3におけるHMM#1及び#2の現在状態S12及びS22を要素とする状態ベクトル[2,2,*]と、遷移有りHMMであるHMM#3の状態遷移T(3)13とのセットに対応する遷移カウンタが１だけインクリメントされる。
【０２９１】
以上のように、現在状態ベクトルが、[2,2,1]から[2,4,3]に遷移（変化）した時刻t=4では、状態ベクトル[2,*,-]，[-,*,1]，[2,*,1]それぞれと、状態遷移T(2)34とのセットそれぞれに対応する遷移カウンタが１だけインクリメントされるとともに、状態ベクトル[2,-,*]，[-,2,*}，[2,2,*]それぞれと、状態遷移T(3)13とのセットそれぞれに対応する遷移カウンタが１だけインクリメントされる
【０２９２】
以下、同様に、因果学習用データ取得部５１は、時刻の経過に従って、学習認識部１２1ないし１２Mから現在状態が供給されるごとに、状態カウンタ及び遷移カウンタのインクリメントを行う。
【０２９３】
因果学習用データ取得部５１は、状態カウンタのカウント値NS(V(cM(L+1;)(d)))、及び、遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))を、因果学習用データとして、因果学習部５２に供給する。
【０２９４】
次に、ステップＳ２２の因果学習処理（図５）について説明する。
【０２９５】
因果学習処理では、因果学習部５２は、因果学習用データ取得部５１からの因果学習用データとしての状態カウンタのカウント値NS(V(cM(L+1;)(d)))、及び、遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))を用いて、M個のHMMのうちの１つのHMMである第１のHMM#m'の状態遷移T(m')ijと、他の１つ以上のHMMである第２のHMMの状態としての状態ベクトルV(cM(L;m')(d))（状態ベクトルV(cM(L;m')(d))の要素となっている状態が現在状態になること）との間の因果関係を獲得する因果学習を行う。
【０２９６】
HMM#m'の状態遷移T(m')ijの因果関係の学習（獲得）では、因果学習部５２は、Lを、1,2,・・・,M-1に順次変えて、各値のLについて、以下の処理を行う。
【０２９７】
すなわち、因果学習部５２は、L次元の状態ベクトルV(cM(L;m')(d))＝[S(d,1)，S(d,2)，・・・，S(d,L)]について、その状態ベクトルV(cM(L;m')(d))の要素となっている状態が現在状態になっているときに、状態遷移T(m')ijが生じる条件付き確率p(T(m')ij|V(cM(L;m')(d)))を求める。
【０２９８】
条件付き確率p(T(m')ij|V(cM(L;m')(d)))は、因果学習用データとしての状態カウンタのカウント値NS(V(cM(L+1;)(d)))、及び、遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))を用いて求められる。
【０２９９】
すなわち、因果学習部５２は、L次元の状態ベクトルV(cM(L;m')(d))に、HMM#m'の状態遷移T(m')ijの遷移元の状態Sm'iを補って、HMM#m'の遷移元の状態Sm'iを要素として必ず含むL+1次元の状態ベクトル[Sm'i，V(cM(L;m')(d))]を生成し、その状態ベクトル[Sm'i，V(cM(L;m')(d))]に対応する状態カウンタのカウント値NS([Sm'i，V(cM(L;m')(d))])を取得する。
【０３００】
ここで、L+1次元の状態ベクトル[Sm'i，V(cM(L;m')(d))]は、L+1次元の状態ベクトルV(cM(L+1;)(d))に含まれるベクトルである。
【０３０１】
状態ベクトル[Sm'i，V(cM(L;m')(d))]に対応する状態カウンタのカウント値NS([Sm'i，V(cM(L;m')(d))])が、0である場合、すなわち、いままで、HMM#m'を含むL+1個のHMMの組み合わせにおいて、状態ベクトル[Sm'i，V(cM(L;m')(d))]の要素になっている状態が、同時に、現在状態になったことがない場合、因果学習部５２は、条件付き確率p(T(m')ij|V(cM(L;m')(d)))に、所定の値σ0を設定する。
【０３０２】
ここで、所定の値σ0は、条件付き確率p(T(m')ij|V(cM(L;m')(d)))の最低確率を与える、0以上1以下の固定値である。
【０３０３】
一方、状態ベクトル[Sm'i，V(cM(L;m')(d))]に対応する状態カウンタのカウント値NS([Sm'i，V(cM(L;m')(d))])が、1以上である場合、因果学習部５２は、状態ベクトルV(cM(L;m')(d))と状態遷移T(m')ijとのセットに対応する遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))、すなわち、HMM#m'を含むL+1個のHMMの組み合わせにおいて、状態ベクトル[Sm'i，V(cM(L;m')(d))]の要素になっている状態が、同時に、現在状態になったときに、HMM#m'において状態遷移T(m')ijが生じた回数を取得する。
【０３０４】
そして、因果学習部５２は、遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))を、状態カウンタのカウント値NS([Sm'i，V(cM(L;m')(d))])で除算することにより、条件付き確率p(T(m')ij|V(cM(L;m')(d)))の期待値NT(T(m')ij，V(cM(L;m')(d)))／NS([Sm'i，V(cM(L;m')(d))])を、条件付き確率p(T(m')ij|V(cM(L;m')(d)))の暫定確率値p0として求める。
【０３０５】
そして、因果学習部５２は、例えば、式（２）にしたがい、暫定確率値p0を用いて、条件付き確率p(T(m')ij|V(cM(L;m')(d)))を求める。
【０３０６】
p(T(m')ij|V(cM(L;m')(d)))＝min{1,p0+σ}
・・・（２）
【０３０７】
なお、式（２）において、min{1,p0+σ}は、1とp0+σのうちの小さい方の値を表す。
【０３０８】
また、式（２）において、値σは、次式で表される。
【０３０９】
σ＝√((p0(1-p0)＋σ02)／NS([Sm'i，V(cM(L;m')(d))]))
・・・（３）
【０３１０】
因果学習部５２は、条件付き確率p(T(m')ij|V(cM(L;m')(d)))が、あらかじめ決められた閾値（例えば、所定の値σ0より大の閾値）以上であるかどうかを判定し、条件付き確率p(T(m')ij|V(cM(L;m')(d)))が閾値以上である場合には、その条件付き確率p(T(m')ij|V(cM(L;m')(d)))を、状態ベクトルV(cM(L;m')(d))とともに、状態遷移T(m')ijに対応付けて、因子候補リストに登録する。
【０３１１】
すなわち、因子候補リストには、状態遷移T(m')ijごとに、条件付き確率p(T(m')ij|V(cM(L;m')(d)))の高い順に状態ベクトルV(cM(L;m')(d))が登録される。
【０３１２】
したがって、因子候補リストは、HMM#m'（第１のHMM）の状態遷移T(m')ijが生じる原因となる因子としての、HMMの組み合わせcM(L;m')(d)のHMMの状態（第２のHMMの状態）（状態ベクトルV(cM(L;m')(d))の要素になっている状態）のリスト、つまり、状態遷移T(m')ijと因果関係のある状態ベクトルV(cM(L;m')(d))のリストになる。
【０３１３】
因子候補リストにおいて、状態遷移T(m')ijに対応付けて登録されている状態ベクトルV(cM(L;m')(d))（の要素になっている状態）が、その状態遷移T(m')ijが生じる原因となる因子の候補（因子候補）になる。
【０３１４】
因果学習部５２では、状態遷移T(m')ijと、状態ベクトルV(cM(L;m')(d))との間の因果関係が、因子候補リストにおいて、その状態遷移T(m')ijに、状態ベクトルV(cM(L;m')(d))を、条件付き確率p(T(m')ij|V(cM(L;m')(d)))とともに対応付けて登録するという形で獲得される。
【０３１５】
学習認識部１２1ないし１２M（図３）に記憶されるHMMが、図６に示したように、3個のHMM#1,#2,#3である場合(M=3)の、因果学習部５２で行われる因果学習処理の具体例について説明する。
【０３１６】
例えば、HMM#2の状態#1から状態#2への状態遷移T(2)12については(m'=2)、Lの値を1と2とした場合に、HMM#1ないし#3からHMM#2を除いたHMM#1及び#3の中からL個のHMMを選択したときの、各値のLについてのD=M-1CL通りのHMMの組み合わせcM(L;2)(d)として（d=1,2,・・・,D）、HMMの組み合わせ{1}，{3}，{1,3}が得られる。
【０３１７】
上述したように、HMMの組み合わせ{1}については、その組み合わせ{1}に含まれるHMM#1の状態の数N(1)は、2であるから、HMMの組み合わせ{1}のHMM#1の状態を要素とする状態ベクトルとしては、2通りのベクトルが存在する。
【０３１８】
また、HMMの組み合わせ{3}については、その組み合わせ{3}に含まれるHMM#3の状態の数N(3)が3であるから、HMMの組み合わせ{3}のHMM#3の状態を要素とする状態ベクトルとしては、3通りのベクトルが存在する。さらに、HMMの組み合わせ{1,3}については、その組み合わせ{1,3}に含まれるHMM#1の状態の数N(1)が2であり、HMM#3の状態の数N(3)が3であるから、HMMの組み合わせ{1,3}のHMM#1及び#3の状態を要素とする状態ベクトルとしては、6(=2×3)通りのベクトルが存在する。
【０３１９】
したがって、HMM#2の状態遷移T(2)12については、因子となり得るL次元の状態ベクトルV(cM(L;2)(d))として、11(=2+3+6)通りのベクトルが存在する。
【０３２０】
ここで、例えば、HMMの組み合わせ{1}のHMM#1の状態を要素とする2通りの状態ベクトルの１つとしては、例えば、ベクトル[1,*,-]がある。また、例えば、HMMの組み合わせ{1,3}のHMM#1及び#3の状態を要素とする6通りの状態ベクトルの１つとしては、例えば、ベクトル[1,*,1]がある。
【０３２１】
以下、これらの状態ベクトル[1,*,-]及び[1,*,1]を例として、状態ベクトルV(cM(L;2)(d))の要素となっている状態が現在状態になっているときに、状態遷移T(2)12が生じる条件付き確率p(T(2)12|V(cM(L;2)(d)))を求める方法について説明する。
【０３２２】
状態ベクトル[1,*,-]については、因果学習部５２は、L次元の状態ベクトルV(cM(L;2)(d))としての状態ベクトル[1,*,-]に、HMM#2の状態遷移T(2)12の遷移元の状態S21を補って、HMM#2の遷移元の状態S21を要素として必ず含むL+1次元の状態ベクトル[S21，V(cM(L;2)(d))]＝[S21，[1,*,-]]としての状態ベクトル[1,1,-]を生成する。
【０３２３】
そして、因果学習部５２は、状態ベクトル[S21，V(cM(L;2)(d))]＝[S21，[1,*,-]]としての状態ベクトル[1,1,-]に対応する状態カウンタのカウント値NS([Sm'i，V(cM(L;m')(d))])＝NS([1,1,-])を取得する。
【０３２４】
状態カウンタのカウント値NS([1,1,-])が0である場合には、因果学習部５２は、条件付き確率p(T(2)12|[1,*,-])に、所定の値σ0を設定する。
【０３２５】
一方、状態カウンタのカウント値NS([1,1,-])が1以上である場合には、因果学習部５２は、状態ベクトルV(cM(L;2)(d))＝[1,*,-]と状態遷移T(2)12とのセットに対応する遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))＝NT(T(2)12，[1,*,-])を取得する。
【０３２６】
そして、因果学習部５２は、カウント値NS([1,1,-])及びNT(T(2)12,[1,*,-])を用いて、式（２）にしたがい、条件付き確率p(T(m')ij|V(cM(L;m')(d)))＝p(T(2)12|[1,*,-])を求める。
【０３２７】
条件付き確率p(T(m')ij|V(cM(L;m')(d)))＝p(T(2)12|[1,*,-])が閾値以上である場合には、因果学習部５２は、その条件付き確率p(T(2)12|[1,*,-])を、状態ベクトルV(cM(L;m')(d))＝[1,*,-]とともに、状態遷移T(2)12に対応付けて、因子候補リストに登録する。
【０３２８】
次に、状態ベクトル[1,*,1]については、因果学習部５２は、L次元の状態ベクトルV(cM(L;2)(d))としての状態ベクトル[1,*,1]に、HMM#2の状態遷移T(2)12の遷移元の状態S21を補って、HMM#2の遷移元の状態S21を要素として必ず含むL+1次元の状態ベクトル[S21，V(cM(L;2)(d))]＝[S21，[1,*,1]]としての状態ベクトル[1,1,1]を生成する。
【０３２９】
そして、因果学習部５２は、状態ベクトル[S21，V(cM(L;2)(d))]＝[S21，[1,*,1]]としての状態ベクトル[1,1,1]に対応する状態カウンタのカウント値NS([Sm'i，V(cM(L;m')(d))])＝NS([1,1,1])を取得する。
【０３３０】
状態カウンタのカウント値NS([1,1,1])が0である場合には、因果学習部５２は、条件付き確率p(T(2)12|[1,*,1])に、所定の値σ0を設定する。
【０３３１】
一方、状態カウンタのカウント値NS([1,1,1])が1以上である場合には、因果学習部５２は、状態ベクトルV(cM(L;2)(d))＝[1,*,1]と状態遷移T(2)12とのセットに対応する遷移カウンタのカウント値NT(T(m')ij，V(cM(L;m')(d)))＝NT(T(2)12，[1,*,1])を取得する。
【０３３２】
そして、因果学習部５２は、カウント値NS([1,1,1])及びNT(T(2)12，[1,*,1])を用いて、式（２）にしたがい、条件付き確率p(T(m')ij|V(cM(L;m')(d)))＝p(T(2)12|[1,*,1])を求める。
【０３３３】
条件付き確率p(T(m')ij|V(cM(L;m')(d)))＝p(T(2)12|[1,*,1])が閾値以上である場合には、因果学習部５２は、その条件付き確率p(T(2)12|[1,*,1])を、状態ベクトルV(cM(L;m')(d))＝[1,*,1]とともに、状態遷移T(2)12に対応付けて、因子候補リストに登録する。
【０３３４】
以上のように、条件付き確率p(T(m')ij|V(cM(L;m')(d)))が、状態ベクトルV(cM(L;m')(d))とともに、状態遷移T(m')ijに対応付けて登録された因子候補リストは、因果学習部５２から因子候補リスト記憶部５３に供給されて記憶される。
【０３３５】
次に、ステップＳ２３のマージ処理（図５）について説明する。
【０３３６】
マージ処理では、マージ部５４は、因子候補リスト記憶部５３に記憶された因子候補リストに登録された状態ベクトルを必要に応じてマージし、不要な状態ベクトルをなくすことで、因子候補リストを整理する。
【０３３７】
マージ部５４は、因子候補リストにおいて、同一の状態遷移T(m')ijに対応付けて登録された２つの状態ベクトルを、マージ対象として、そのマージ対象としての２つの状態ベクトルのマージの可否を判定する。
【０３３８】
ここで、マージ対象となる２つの状態ベクトルは、因子候補リストにおいて、同一の状態遷移T(m')ijに対応付けて登録されたL次元の状態ベクトルV(cM(L;m')(d))と、その状態ベクトルV(cM(L;m')(d))に、あるHMM#m''の状態Sm''iを補って得られる、そのHMM#m''の状態Sm''iを要素に含むL+1次元の状態ベクトル[Sm''i，V(cM(L;m')(d))]との２つの状態ベクトルである。
【０３３９】
なお、状態ベクトルV(cM(L;m')(d))に状態Sm''iを補うHMM#m''は、状態遷移T(m')ijが生じるHMM#m'でもなく、状態ベクトルV(cM(L;m')(d))の要素になっている状態のHMMでもないHMMである。
【０３４０】
状態ベクトルV(cM(L;m')(d))に、HMM#m''の状態Sm''iを補って得られるL+1次元の状態ベクトル[Sm''i，V(cM(L;m')(d))]としては、HMM#m''の状態の数N(m'')だけのベクトル、すなわち、ベクトル[Sm''1，V(cM(L;m')(d))]，[Sm''2，V(cM(L;m')(d))]，・・・，[Sm''N(m'')，V(cM(L;m')(d))]が存在する。
【０３４１】
L+1次元の状態ベクトル[Sm''i，V(cM(L;m')(d))]は、L次元の状態ベクトルV(cM(L;m')(d))に、HMM#m''の状態Sm''iを補ったベクトルであるから、概念的には、L次元の状態ベクトルV(cM(L;m')(d))は、L+1次元の状態ベクトル[Sm''i，V(cM(L;m')(d))]の上位の状態ベクトルである（状態ベクトル[Sm''i，V(cM(L;m')(d))]は、状態ベクトルV(cM(L;m')(d))の下位の状態ベクトルである）ということができる。
【０３４２】
状態ベクトル[Sm''i，V(cM(L;m')(d))]と、状態ベクトルV(cM(L;m')(d))とのマージの可否は、下位の状態ベクトルとしての状態ベクトル[Sm''i，V(cM(L;m')(d))]を、上位の状態ベクトルとしての状態ベクトルV(cM(L;m')(d))に含めて同じ状態ベクトルとして扱うことができるかどかによって判定される。
【０３４３】
すなわち、上位の状態ベクトルV(cM(L;m')(d))の暫定確率値p0と、式（３）に従って求められる値σを、それぞれ、pUとσUと表すとともに、下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]の暫定確率値p0と、式（３）に従って求められる値σを、それぞれ、pDとσDと表すこととする。
【０３４４】
マージ部５４は、例えば、式（４）が満たされるかどうかによって、マージの可否を判定する。
【０３４５】
|pU-pD|＞α(σU+σD)
・・・（４）
【０３４６】
ここで、式（４）において、αは、閾値α(σU+σD)を調整する係数である。
【０３４７】
式（４）が満たされる場合、すなわち、上位の状態ベクトルV(cM(L;m')(d))の暫定確率値pUと、下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]の暫定確率値pDとが、大きく異なる場合、マージ部５４は、上位の状態ベクトルV(cM(L;m')(d))と、下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]とのマージができない（マージ不可）と判定する。
【０３４８】
また、式（４）が満たされない場合、すなわち、上位の状態ベクトルV(cM(L;m')(d))の暫定確率値pUと、下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]の暫定確率値pDとが、それほど異ならない場合、マージ部５４は、上位の状態ベクトルV(cM(L;m')(d))と、下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]とのマージができる（マージ可能）と判定する。
【０３４９】
マージの可否の判定は、上位の状態ベクトルV(cM(L;m')(d))と、その上位の状態ベクトルV(cM(L;m')(d))に、HMM#m''の各状態Sm''iを補って得られるN(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]であるベクトル[Sm''1，V(cM(L;m')(d))]，[Sm''2，V(cM(L;m')(d))]，・・・，[Sm''N(m'')，V(cM(L;m')(d))]それぞれとを対象に行われる。
【０３５０】
上位の状態ベクトルV(cM(L;m')(d))と、N(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]それぞれとマージの可否の判定において、N(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]のうちの1以上がマージ不可であると判定された場合、マージ部５４は、上位の状態ベクトルV(cM(L;m')(d))を、因子候補リストから削除し、N(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]を、そのまま残す。
【０３５１】
一方、上位の状態ベクトルV(cM(L;m')(d))と、N(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]それぞれとマージの可否の判定において、N(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]のすべてがマージ可能であると判定された場合、マージ部５４は、N(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]を、因子候補リストから削除することにより、そのN(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]を、上位の状態ベクトルV(cM(L;m')(d))にマージする。
【０３５２】
さらに、マージ部５４は、上位の状態ベクトルV(cM(L;m')(d))とともに、状態遷移T(m')ijに対応付けられている状態ベクトルの中で、N(m'')個の下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]のうちのいずれかを一部に含む状態ベクトル(下位の状態ベクトル[Sm''i，V(cM(L;m')(d))]のさらに下位の状態ベクトル）を、因子候補リストから削除することにより、上位の状態ベクトルV(cM(L;m')(d))にマージする。
【０３５３】
以上のように、マージ部５４では、同一の状態遷移に対応付けられた上位の状態ベクトルと、下位の状態ベクトルとの暫定確率値p0の差が、それほどない場合には、下位の状態ベクトルが、上位の状態ベクトルにマージされ、いわば、上位の状態ベクトルによって、下位の状態ベクトルがまとめて扱われることになる。
【０３５４】
なお、マージ処理は、より上位のベクトルを、優先的にマージ対象に選択して行うことができる。
【０３５５】
学習認識部１２1ないし１２M（図３）に記憶されるHMMが、図６に示したように、3個のHMM#1,#2,#3である場合(M=3)の、マージ部５４で行われるマージ処理の具体例について説明する。
【０３５６】
例えば、因子候補リストにおいて、m'=2のHMMであるHMM#2のある状態遷移T(2)ijに対応付けて、状態ベクトル[1,*,-]，[1,*,1]，[1,*,2]，[1,*,3]が登録されていることとする。
【０３５７】
ここで、状態ベクトル[1,*,-]，[1,*,1]，[1,*,2]，[1,*,3]のうちの、例えば、HMM#1の状態のみが要素になっている状態ベクトル[1,*,-]を、上位の状態ベクトルとすると、状態遷移T(2)ijが生じるHMM#2でもなく、上位の状態ベクトル[1,*,-]の要素になっている状態のHMM#1でもないHMMであるHMM#3（m''=3のHMM）の状態Sm''i＝S3iを、上位の状態ベクトル[1,*,-]に補って得られるL+1次元の状態ベクトル[S3i，[1,*,-]]としては、HMM#3の状態の数N(3)に等しい3個の状態ベクトルが存在し、その状態ベクトル[S3i，[1,*,-]]は、状態ベクトル[1,*,1]，[1,*,2]，[1,*,3]である。
【０３５８】
すなわち、上位の状態ベクトル[1,*,-]については、状態ベクトル[1,*,1]，[1,*,2]，[1,*,3]が、下位の状態ベクトルとなる。
【０３５９】
マージ部５４は、上位の状態ベクトル[1,*,-]、並びに、下位の状態ベクトル[1,*,1]，[1,*,2]、及び、[1,*,3]それぞれの暫定確率値p0を計算し、その暫定確率値p0が式（４）を満たすかどうかによって、上位の状態ベクトル[1,*,-]と、下位の状態ベクトル[1,*,1]，[1,*,2]、及び、[1,*,3]それぞれとのマージの可否を判定する。
【０３６０】
そして、下位の状態ベクトル[1,*,1]，[1,*,2]、及び、[1,*,3]のすべてがマージ可能であると判定された場合、マージ部５４は、その下位の状態ベクトル[1,*,1]，[1,*,2]，[1,*,3]を、因子候補リストから削除することにより、上位の状態ベクトル[1,*,-]にマージする。
【０３６１】
一方、下位の状態ベクトル[1,*,1]，[1,*,2]、及び、[1,*,3]のうちの1以上がマージ不可であると判定された場合、マージ部５４は、上位の状態ベクトル[1,*,-]を、因子候補リストから削除し、下位の状態ベクトル[1,*,1]，[1,*,2]，[1,*,3]を、因子候補リストに、そのまま残す。
【０３６２】
以上のようなマージ処理によれば、ある状態遷移との因果関係を表すという点で必要性のある状態ベクトルだけを、因子候補リストに残すことができる。
【０３６３】
次に、ステップＳ２４の因果推定処理（図５）について説明する。
【０３６４】
因果推定処理では、因果推定部５５は、因子候補リスト記憶部５３に記憶された因子候補リスト（マージ処理後の因子候補リスト）において、プラン制御部３６（図３）からの注目HMMの状態遷移に対応付けられている状態ベクトルを、注目HMMの状態遷移と因果関係がある原因HMMの状態（因子）の推定結果として読み出し、プラン制御部３６に供給する（戻す）。
【０３６５】
なお、因子候補リストにおいて、注目HMMの状態遷移に対応付けられている状態ベクトルとして、複数の状態ベクトルが存在する場合には、因果推定部５５は、注目HMMの状態遷移に対応付けられている状態ベクトルのうちの、例えば、条件付き確率が最大の1つの状態ベクトルや、条件付き確率が所定値以上の状態ベクトルからランダムに選択した1つの状態ベクトル等を、注目HMMの状態遷移と因果関係がある原因HMMの状態（因子）の推定結果として読み出す。
【０３６６】
［本技術を適用したエージェントの一実施の形態］
【０３６７】
図７は、本技術を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【０３６８】
なお、図中、図３の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０３６９】
図７において、エージェントは、センサ部１１、複数であるM個の学習認識部１２1ないし１２M、アクション部１４、アクション制御部４１、及び、因果処理部６０を有する。
【０３７０】
したがって、図７のエージェントは、センサ部１１、M個の学習認識部１２1ないし１２M、アクション部１４、及び、アクション制御部４１を有する点で、図３のエージェントと共通する。但し、図７のエージェントは、因果処理部４２に代えて、因果処理部６０が設けられている点で、図３の場合と相違する。
【０３７１】
因果処理部６０は、図３の因果処理部４２と同様に、因果学習を行い、プラン制御部３６から、注目HMM（プランの生成に用いられたHMM）の状態遷移が供給されると、その注目HMMの状態遷移と因果関係がある原因HMMの状態（因子）としての状態ベクトルを、因果学習の結果に基づいて推定する因果推定を行う。
【０３７２】
さらに、因果処理部６０は、エージェントが、因果学習に用いる因果学習用データを効率的に収集するためのプラン（以下、因果獲得プランともいう）を生成する因果獲得プラン生成処理を行い、その結果得られる因果獲得プランを、アクション制御部４１のアクション信号生成部３２に供給する。
【０３７３】
アクション信号生成部３２は、因果処理部６０から因果獲得プランが供給されると、その因果獲得プランとしてのスタート状態から目標状態までの状態遷移を生じさせるアクション信号を求め、アクション部１４に供給する。
【０３７４】
アクション部１４は、アクション信号生成部３２からのアクション信号に従って駆動し、これにより、エージェントは、因果学習用データを効率的に収集するアクションを行う。
【０３７５】
［因果処理部６０の構成例］
【０３７６】
図８は、図７の因果処理部６０の構成を示すブロック図である。
【０３７７】
なお、図中、図４の因果処理部４２の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０３７８】
図８において、因果処理部６０は、因果学習用データ取得部５１ないし因果推定部５５、並びに、情報量ゲイン算出部６１、評価値算出部６２、及び、決定部６３を有する。
【０３７９】
したがって、因果処理部６０は、因果学習用データ取得部５１ないし因果推定部５５を有する点で、図４の因果処理部４２と共通し、情報量ゲイン算出部６１ないし決定部６３が新たに設けられている点で、図４の因果処理部４２と相違する。
【０３８０】
情報量ゲイン算出部６１、評価値算出部６２、及び、決定部６３では、因果学習用データを効率的に収集するための因果獲得プランを生成する因果獲得プラン生成処理が行われる。
【０３８１】
すなわち、情報量ゲイン算出部６１は、学習認識部１２1ないし１２Mから供給されるHMM#1ないし#Mの現在状態に基づき、HMM#1ないし#Mのうちのある1個のHMMを、状態遷移を生じさせるHMM#m'として、そのHMM#m'において状態遷移T(m')ijが生じる原因となり得る因子としての状態ベクトルV(cM(L;m')(d))が生起し（HMM#m'以外の1以上のHMMの状態が現在状態になり）、その因子としての状態ベクトルV(cM(L;m')(d))の生起を原因として、状態遷移T(m')ijが生じると仮定して、因子としての状態ベクトルV(cM(L;m')(d))と状態遷移T(m')ijとの因果関係について、因子としての状態ベクトルV(cM(L;m')(d))を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求める。
【０３８２】
情報量ゲイン算出部６１は、HMM#m'の状態遷移T(m')ijについて、情報量ゲインを求めると、その情報量ゲインを、評価値算出部６２に供給する。
【０３８３】
評価値算出部６２は、因子としての状態ベクトルV(cM(L;m')(d))（の生起）と状態遷移T(m')ijとの因果関係を獲得するにあたって、各因子としての各状態ベクトルV(cM(L;m')(d))を生起することの有効性を評価する評価値を、情報量ゲイン算出部６１からの情報量ゲインに基づいて求め、決定部６３に供給する。
【０３８４】
決定部６３は、評価値算出部６２からの評価値に基づいて、生起する因子としての状態ベクトルV(cM(L;m')(d))の系列としての因果獲得プランを決定し、アクション信号生成部３２（図７）に供給する。
【０３８５】
［エージェントが行うタスクの例］
【０３８６】
図９は、図７のエージェントが行うタスクの例である物体移動タスクを説明する図である。
【０３８７】
エージェントは、アクション部１４として、アームを有し、アクションとして、アームを動かす（移動する）ことができる。
【０３８８】
図９では、２次元平面のテーブル上に１つの物体が置かれており、物体は、エージェントのアームが接触することによって、テーブル上を移動する。
【０３８９】
なお、テーブルの周囲には、枠（壁）があり、物体が、テーブルの端まで移動し、枠と接触した場合には、物体は、枠と接触している側には、それ以上移動せず、したがって、テーブルから落下しない。
【０３９０】
物体移動タスクでは、エージェントは、所定の位置に置かれた物体を、アームを動かすことによって、他の所定の位置まで移動させる。
【０３９１】
以下では、説明を簡単にするために、物体移動タスクを例に、図７のエージェントの処理を説明する。
【０３９２】
図１０は、物体移動タスクにおいて、エージェントが観測する観測値を模式的に示す図である。
【０３９３】
エージェントでは、センサ部１１において、図１０に示すような、テーブル上のアームと物体の画像が撮影され、その画像が、観測値として、学習認識部１２1ないし１２Mに供給される。
【０３９４】
ここで、物体移動タスクを行うために必要なHMMは、例えば、アームが接触することによって移動する物体（移動物体）の動きを学習するHMMと、エージェントのアームの動きを学習するHMMとの2個のHMMであるため、M=2とし、学習認識部１２1に記憶されているHMM#1が、物体の動きを学習し、学習認識部１２2に記憶されているHMM#2が、アームの動きを学習することとする。
【０３９５】
以下、物体の動きを学習するHMM#1を、物体HMMともいい、アームの動きを学習するHMM#2をアームHMMともいう。
【０３９６】
また、説明を簡単にするため、エージェントでは、アームの観測値としてのアームの画像と、物体の観測値としての物体の画像とを、区別して（別々に）観測することができることとする。
【０３９７】
さらに、学習認識部１２1では、物体HMMのモデル学習処理、及び、物体HMMの現在状態（最尤系列）を認識する認識処理は、物体の観測値を用いて行われ、学習認識部１２2では、アームHMMのモデル学習処理、及び、アームHMMの現在状態（最尤系列）を認識する認識処理は、アームの観測値を用いて行われることとする。
【０３９８】
また、アクション学習部３３（図７）では、アクション信号と、そのアクション信号に従ったアクションとしてのアームの動きを学習するアームHMMの状態遷移との関係の学習が、アクション学習として行われることとする。
【０３９９】
この場合、アクション学習によれば、アームHMMの各状態遷移Tijに、コントローラとしての関数m=Fij(o)を対応付けたアクション生成情報が生成される。
【０４００】
したがって、アクション信号生成部３２は、そのようなアクション生成情報に基づき、アームHMMの、ある状態遷移を生じさせるアクション信号を生成する。
【０４０１】
また、ここでは、エージェントが、生得コントローラ３５において生成されるアクション信号に従ってアクションを行っているときに観測されるアーム及び物体の観測値を用いて、アームHMM及び物体HMMの学習（モデル学習処理）が、既に終了していることとする。
【０４０２】
したがって、エージェントでは、物体HMMを記憶している学習認識部１２1において、物体の観測値を用いて、物体（物体HMM）の現在状態を認識することができ、アームHMMを記憶している学習認識部１２2において、アームの観測値を用いて、アーム（アームHMM）の現在状態を認識することができる。
【０４０３】
さらに、エージェントでは、プランニング部３１において、アームHMMの任意の状態を目標状態とするプランをプランニングし、アクション信号生成部３２において、そのプランに従って、アクション信号を生成することで、アームを、現在状態（に対応するテーブル上の位置）から目標状態（に対応するテーブル上の位置）に移動することができる。
【０４０４】
但し、エージェントでは、因果学習部５２（図８）において、まだ、因果学習が行われていない。このため、エージェントは、アームHMMのどの状態と、物体HMMのどの状態とが、テーブル上の同一の位置に対応するのか、つまり、アームHMMの現在状態を、どの状態にすると、アームが、物体と接触し、物体が移動するのかは、分からない（認識できない）。
【０４０５】
テーブル上の物体は、アームが接触することによって移動する。すなわち、物体の移動は、アームが物体の位置に移動したことを原因として生じる。
【０４０６】
したがって、テーブル上の所定の位置に置かれた物体を、他の所定の位置まで移動させるには、物体の移動が、アームがどの位置にあるときに生じるのかの情報、つまり、物体HMMの状態遷移と、その状態遷移が生じる原因となる得る因子としてのアームHMMの状態の生起（物体HMMの状態遷移が生じたときにアームHMMにおいて現在状態になっている状態）との因果関係を獲得する因果学習を行う必要がある。
【０４０７】
因果学習部５２（図８）では、因果学習用データ取得部５１において収集された因果学習用データを用いて、因果学習が行われるため、因果学習を行うには、因果学習用データ取得部５１において、因果学習用データを収集する必要がある。
【０４０８】
因果学習用データ取得部５１による因果学習用データの収集には、アームHMM及び物体HMMの現在状態が必要であり、したがって、エージェントは、アームを動かし、その後、アーム及び物体の観測値を観測して、アームHMM及び物体HMMの現在状態を認識することを繰り返す必要がある。
【０４０９】
物体HMMの状態遷移と、その状態遷移が生じる原因となり得るアームHMMの状態との因果関係を獲得するには、アームHMM及び物体HMMの状態の中でも、エージェントが動かしたアームが物体に接触したとき（物体の接触に成功したとき）のアームHMM及び物体HMMの状態が、現在状態として、特に必要であると予想される。
【０４１０】
すなわち、エージェントが、物体に接触しないような位置でアームを動かし続け、物体がまったく移動しないケースだけのアーム及び物体を観測しても、物体HMMの状態遷移と、アームHMMの状態との因果関係を獲得することができる因果学習用データ（以下、有効な因果学習用データともいう）を収集することは、困難である。
【０４１１】
しかしながら、エージェントでは、因果学習を行う前においては、アームHMMの現在状態を、どの状態にすると、アームが、物体と接触して、物体が移動するのかが不明であるため、物体に接触するように、アームを動かすことは、困難である。
【０４１２】
アームHMM及び物体HMMの学習（モデル学習処理）の終了後、因果学習の前に、エージェントが、因果学習用データを収集するために、アームを動かす方法としては、例えば、アームを、ランダムに動かす方法や、あらかじめ、アームの動かし方を作り込んでおく方法、すなわち、生得的な動きを行うための知識である生得ルールをエージェントに与えておき、その生得ルールに従って、アームを動かす方法がある。
【０４１３】
しかしながら、アームを、ランダムに動かす方法では、例えば、マウスポインタが不可視に設定された状態で、任意の位置にあるウィンドウを所定位置に移動しようとする場合に、やみくもにマウスをクリックして動かしても、ウィンドウが移動しないことがほとんどであるのと同様に、アームが物体の接触しない（物体の接触に失敗する）ことがほとんどであり、有効な因果学習用データを収集するのに、膨大な時間を要する。
【０４１４】
また、生得ルールに従って、アームを動かす方法では、アームを、ランダムに動かす方法に比較して、物体の接触に成功しやすくなると予想されるが、それでも、有効な因果学習用データを収集するのに、相応の時間を要する。
【０４１５】
そこで、図７のエージェントでは、因果処理部６０において、因果学習用データを効率的に収集するための因果獲得プランを生成する因果獲得プラン生成処理が行われる。そして、エージェントは、因果獲得プランに従って、アクションを行う（アームを動かす）ことにより、有効な因果学習用データを、効率的に収集する。
【０４１６】
なお、因果処理部６０（図８）は、因果獲得プラン生成処理の他、図４の因果処理部４２と同様に、因果学習用データ取得処理、因果学習処理、マージ処理、及び、因果推定処理（図５）も行う。
【０４１７】
［因果獲得プラン生成処理］
【０４１８】
図１１は、図８の因果処理部６０が行う因果獲得プラン生成処理を説明するフローチャートである。
【０４１９】
ステップＳ３１では、情報量ゲイン算出部６１（図８）が、学習認識部１２1から、物体HMMの現在状態si[now]が供給されるとともに、学習認識部１２2から、現在生起している因子である現在因子としてのアームHMMの現在状態ck[now]が供給されるのを待って、その物体HMMの現在状態si[now]、及び、アームHMMの現在状態ck[now]を取得して、処理は、ステップＳ３２に進む。
【０４２０】
ステップＳ３２では、情報量ゲイン算出部６１が、情報量ゲイン算出処理を行って、処理は、ステップＳ３３に進む。
【０４２１】
すなわち、情報量ゲイン算出処理では、情報量ゲイン算出部６１は、物体HMMの現在状態si[now]において、因子ckとしてのアームHMMの状態ckの生起（現在状態ck[now]が状態ckであること）を原因として、物体HMMの現在状態si[now]から他の状態siへの状態遷移Ti[now]jが生じると仮定して、状態ckが生起し、その結果を観察することによって得られる情報量ゲインGi[now]j;k、つまり、状態ckが生起し、その結果を観察したならば得られるであろう情報量ゲインGi[now]j;kを、各因子ckとしてのアームHMMの状態c1,c2,・・・,cKのそれぞれについて算出する。
【０４２２】
そして、情報量ゲイン算出部６１は、情報量ゲインGi[now]j;kを、評価値算出部６２（図８）に供給する。
【０４２３】
ここで、上述のM個のHMMのうちのHMM#m'の状態遷移T(m')ijについては、状態ベクトルV(cM(L;m')(d))の要素になるHMMの状態、つまり、M個のHMMからHMM#m'を除いたM-1個のHMMの中から選択されたL個のHMMの組み合わせの各HMMの状態が、状態遷移T(m')ijを生じさせる因子ckであり、したがって、因子c1,c2,・・・,cKの数Kは、Lのパターン（L=1,2,・・・,M-1）、M-1個のHMMの中から選択することができるL個のHMMの組み合わせのパターン、及び、M-1個のHMMの中から選択されたL個のHMMの組み合わせの各HMMの現在状態のパターンの数の乗算値となる。
【０４２４】
なお、ここでは、説明を簡単にするため、因子ckを、1個のHMMであるアームHMMの状態（１次元の状態ベクトル）にしており、したがって、因子ckの数（総数）Kは、アームHMMの状態の数に等しい。
【０４２５】
ステップＳ３３では、評価値算出部６２（図８）が、評価値算出処理を行って、処理は、ステップＳ３４に進む。
【０４２６】
すなわち、評価値算出処理では、評価値算出部６２は、物体HMMの状態遷移とアームHMMの状態との間の因果関係を獲得するにあたって、物体HMMの現在状態si[now]において、因子としてのアームHMMの状態c1,c2,・・・,cKのそれぞれが生起することの有効性を評価する評価値Vi[now];1，Vi[now];2，・・・，Vi[now];Kを、情報量ゲイン算出部６１からの情報量ゲインGi[now]j;kに基づいて算出する。
【０４２７】
そして、評価値算出部６２は、評価値Vi[now];1，Vi[now];2，・・・，Vi[now];Kを、決定部６３（図８）に供給する。
【０４２８】
ステップＳ３４では、決定部６３が、決定処理を行って、処理は、ステップＳ３５に進む。
【０４２９】
すなわち、決定処理では、決定部６３は、評価値算出部６２からの評価値Vi[now];1，Vi[now];2，・・・，Vi[now];Kに基づいて、生起する因子としてのアームHMMの状態が1個以上だけ並ぶ系列を、因果獲得プランに決定し、アクション信号生成部３２（図７）に供給する。
【０４３０】
アクション信号生成部３２は、決定部６３からの（最新の）因果獲得プランに従い、その因果獲得プランとしての状態の系列のうちの、アームHMMの現在状態ck[now]から次の状態への状態遷移を生じさせるアクション信号を生成し、アクション部１４に供給する。
【０４３１】
アクション部１４は、アクション信号生成部３２からのアクション信号に従って、アームを動かす。なお、このとき、アームが、物体に接触すれば、その接触によって、物体も動く。
【０４３２】
以上のように、アームが動いた後、センサ部１１において、アーム及び物体の観測値が観測され、学習認識部１２1において、物体の観測値を用いて、物体HMMの現在状態si[now]が認識されるとともに、学習認識部１２2において、アームの観測値を用いて、アームHMMの現在状態ck[now]が認識される。
【０４３３】
そして、情報量ゲイン算出部６１は、学習認識部１２1から、物体HMMの現在状態si[now]が供給されるとともに、学習認識部１２2から、アームHMMの現在状態ck[now]が供給されるのを待って、ステップＳ３５において、学習認識部１２1及び１２2それぞれからの物体HMMの現在状態si[now]、及び、アームHMMの現在状態ck[now]を取得して、処理は、ステップＳ３６に進む。
【０４３４】
ステップＳ３６では、情報量ゲイン算出部６１は、物体HMMの今回の現在状態si[now]が、前回（1時刻前）の現在状態から変化したかどうかと、因子としてのアームHMMの現在状態ck[now]が、決定部６３で得られた最新の因果獲得プランの最後の状態であるかどうかとを判定する。
【０４３５】
ステップＳ３６において、物体HMMの今回の現在状態si[now]が、前回の現在状態から変化していないと判定され、かつ、因子としてのアームHMMの現在状態ck[now]が、最新の因果獲得プランの最後の状態でないと判定された場合、アクション信号生成部３２において、最新の因果獲得プランに従い、その因果獲得プランとしての状態の系列のうちの、アームHMMの現在状態ck[now]から次の状態への状態遷移を生じさせるアクション信号が生成され、そのアクション信号に従って、アームが動いた後のアーム及び物体の観測値を用いて認識される物体HMMの現在状態si[now]及びアームHMMの現在状態ck[now]が、学習認識部１２1及び１２2から情報量ゲイン算出部６１に、それぞれ供給されるのを待って、処理は、ステップＳ３５に戻る。
【０４３６】
ステップＳ３５では、情報量ゲイン算出部６１において、上述したように、学習認識部１２1及び１２2それぞれからの物体HMMの現在状態si[now]、及び、アームHMMの現在状態ck[now]が取得され、以下、同様の処理が繰り返される。
【０４３７】
一方、ステップＳ３６において、物体HMMの今回の現在状態si[now]が、前回の現在状態から変化したと判定されるか、又は、アームHMMの現在状態ck[now]が、最新の因果獲得プランの最後の状態であると判定された場合、すなわち、直前に行われたアームの動きにおいて、アームが物体に接触し、物体が動いた場合、又は、アームが、因果獲得プランに従って動き、因果獲得プランの最後の状態に対応する位置にまで移動した場合、処理は、ステップＳ３７に進み、情報量ゲイン算出部６１は、因果獲得プラン生成処理の終了条件が満たされるかどうかを判定する。
【０４３８】
ステップＳ３７において、因果獲得プラン生成処理の終了条件が満たされていないと判定された場合、処理は、ステップＳ３２に戻り、以下、ステップＳ３２ないしＳ３７の処理が繰り返される。
【０４３９】
また、ステップＳ３７において、因果獲得プラン生成処理の終了条件が満たされていると判定された場合、因果獲得プラン生成処理は終了する。
【０４４０】
なお、因果獲得プラン生成処理の終了条件としては、例えば、ステップＳ３２ないしＳ３７のループ処理が、あらかじめ決められた回数だけ行われたことや、因果獲得プラン生成処理が開始されてからのアクションの数（アームを動かした回数）が、あらかじめ決められた数に到達したことを採用することができる。
【０４４１】
また、因果獲得プラン生成処理の終了条件としては、例えば、ステップＳ３３の評価値算出処理で求められる評価値Vi[now];1，Vi[now];2，・・・，Vi[now];Kの中の最大値が、あらかじめ決められた閾値以下であること等を採用することができる。
【０４４２】
ここで、評価値Vi[now];1，Vi[now];2，・・・，Vi[now];Kの中の最大値が、あらかじめ決められた閾値以下である場合とは、物体HMMの状態遷移とアームHMMの状態との間の因果関係を獲得するのに有効なアームHMMの状態がない場合、つまり、物体HMMの状態遷移とアームHMMとの間の因果関係を獲得するのに有効なアームHMMの状態が、最初からない（アームHMMの状態が、物体HMMの状態遷移に影響しない）場合や、物体HMMの状態遷移とアームHMMとの間の因果関係を獲得するのに有効なアームHMMの状態を現在状態とすることが何度も行われ、物体HMMの状態遷移とアームHMMとの間の因果関係を獲得するのに十分な因果学習用データの収集が完了している場合である。
【０４４３】
［情報量ゲイン算出処理］
【０４４４】
図１２は、図１１のステップＳ３２の情報量ゲイン算出処理を説明するフローチャートである。
【０４４５】
ここで、物体HMMの状態siにおいて（物体が状態siに対応する位置にあったときに）、物体HMMの状態遷移Tijが生じる（物体が状態siに対応する位置から状態sjに対応する位置に移動する）確率を、ベース確率ともいい、p(Tij|si)で表す。さらに、ベース確率p(Tij|si)の確率分布を、P(Tij|si)と表すこととする。
【０４４６】
また、物体HMMの状態siにおいて、因子としてのアームHMMの状態ckが生起し（アームHMMの現在状態が状態ckであり）、物体HMMの状態遷移Tijが生じる確率を、因子条件付き確率ともいい、p(Tij|si,ck)で表す。さらに、因子条件付き確率p(Tij|si,ck)の確率分布を、P(Tij|si,ck)と表すこととする。
【０４４７】
情報量ゲイン算出処理では、ステップＳ４１において、情報量ゲイン算出部６１は、物体HMMの現在状態si[now]において、状態遷移Ti[now]jが生じるベース確率p(Ti[now]j|si[now])の確率分布P(Ti[now]j|si[now])と、因子としてのアームHMMの状態ckが生起し、物体HMMの現在状態si[now]において、状態遷移Ti[now]jが生じる因子条件付き確率p(Ti[now]j|si[now],ck)の確率分布P(Ti[now]j|si[now],ck)との間の距離である分布間距離Di[now]j;kを、物体HMMの状態遷移Ti[now]jとアームHMMの状態ckとの間にある因果関係の程度を表す因果関係量として求め、処理は、ステップＳ４２に進む。
【０４４８】
ここで、物体HMMにおいて、状態siにいた回数を、BSと表すとともに、その状態siからの他の状態sjへの状態遷移Tijが生じた回数を、BTと表すこととすると、ベース確率p(Tij|si)の期待値p~(Tij|si)は、BT/BSで表される。
【０４４９】
また、BS回だけいた物体HMMの状態siにおいて、因子としてのアームHMMの状態ckが生起した回数を、NSと表すとともに、そのアームHMMの状態ckが生起した場合に、物体HMMにおいて、状態siから他の状態sjへの状態遷移Tijが生じた回数を、NTと表すこととすると、因子条件付き確率p(Tij|si,ck)の期待値p~(Tij|si,ck)は、NT/NSで表される。
【０４５０】
回数BS,BT,NS、及び、NTは、情報量ゲイン算出部６１において、学習認識部１２、及び１２2から供給される物体HMMの現在状態、及び、アームHMMの現在状態に基づいてカウントされる。
【０４５１】
アームHMMの状態ckと物体HMMの状態遷移Tijとの間に因果関係があるほど、すなわち、アームHMMの現在状態が状態ckであることが、物体HMMの状態遷移Tijが生じることに大きく影響するほど、因子条件付き確率の期待値（平均値）p~(Tij|si,ck)＝NT/NSは、ベース確率の期待値p~(Tij|si)＝BT/BSに比較して大きくなるので、ベース確率の確率分布P(Tij|si)と、因子条件付き確率の確率分布P(Tij|si,ck)との違いは、アームHMMの状態ckと物体HMMの状態遷移Tijとの間にある因果関係の程度である因果関係量を表す。
【０４５２】
そこで、情報量ゲイン算出処理では、因子としてのアームHMMの状態ckの、物体HMMの状態遷移Tijに対する因果関係量として、確率分布P(Tij|si)とP(Tij|si,ck)との違いとしての確率分布P(Tij|si)とP(Tij|si,ck)との間の分布間距離Dij;kを採用し、その分布間距離Dij;kが、アームHMMの状態ckの、物体HMMの状態遷移Tijに対する因果関係量として求められる。
【０４５３】
なお、情報量ゲイン算出処理では、アームHMMの状態ckが生起したことを原因として、物体HMMの状態遷移Tijが生じる場合、つまり、因子条件付き確率の期待値p~(Tij|si,ck)＝NT/NSが、ベース確率の期待値p~(Tij|si)＝BT/BSより大きい場合（NT/NS＞BT/BS）のアームHMMの状態ckと物体HMMの状態遷移Tijだけを、処理の対象（因果関係量、ひいては、情報量ゲインを求める対象）とする。
【０４５４】
アームHMMの状態ckが生起したことを原因として、物体HMMの状態遷移Tijが抑制されるという因果関係については、アームHMMの状態ckが生起したことを原因として、物体HMMの状態遷移Tijが生じないことが生じると考えることで、アームHMMの状態ckが生起したことを原因として、物体HMMの状態遷移Tijが生じる場合と同様に扱うことができる。
【０４５５】
ここで、ベース確率p(Tij|si)、及び、因子条件付き確率p(Tij|si,ck)は、ベータ分布に従うこととする。
【０４５６】
この場合、期待値p~(Tij|si)が、BT/BSで表されるベース確率p(Tij|si)は、ベータ関数B(BT+1,BS-BT+1)のベータ分布に従い、期待値p~(Tij|si,ck)がNT/NSで表される因子条件付き確率p(Tij|si,ck)は、ベータ関数B(NT+1,NS-NT+1)のベータ分布に従う。
【０４５７】
また、確率分布P(Tij|si)とP(Tij|si,ck)との間の分布間距離Dij;kとしては、確率分布どうしの任意の距離を採用することができるが、ここでは、例えば、KL(KullbackLeibler)ダイバージェンスを採用する。
【０４５８】
確率分布P(Tij|si)とP(Tij|si,ck)とのKLダイバージェンスを、DKL(P(Tij|si)||P(Tij|si,ck))と表すこととする。
【０４５９】
ステップＳ４２では、情報量ゲイン算出部６１は、物体HMMの現在状態si[now]において、因子としてのアームHMMの状態ckの生起を原因として、物体HMMの状態遷移Ti[now]jが生じると仮定して、アームHMMの状態ckの生起後のベース確率の確率分布P(Ti[now]j|si[now])及び因子条件付き確率の確率分布P(Ti[now]j|si[now],ck)を参照して、アームHMMの状態ckの生起後の因果関係量としての分布間距離D'i[now]j;kを求め、処理は、ステップＳ４３に進む。
【０４６０】
なお、ステップＳ４２では、あくまで、因子としてのアームHMMの状態ckの生起を原因として、物体HMMの状態遷移Ti[now]jが生じると仮定するだけであり、したがって、実際に、アームHMMの状態ckを生起すること、つまり、アームHMMの現在状態が状態ckになるように、アームを動かすことは、行われない。
【０４６１】
すなわち、情報量ゲイン算出部６１は、アームHMMの状態ckが生起し、かつ、物体HMMの状態遷移Ti[now]jが生じたと仮定して、物体HMMにおいて、状態si[now]にいた回数を1だけインクリメントして、BS+1回に更新するとともに、状態遷移Ti[now]jが生じた回数を1だけインクリメントして、BT+1回に更新する。
【０４６２】
さらに、情報量ゲイン算出部６１は、物体HMMの状態si[now]において、アームHMMの状態ckが生起した回数を1だけインクリメントして、NS+1に更新するとともに、アームHMMの状態ckが生起した場合に、物体HMMにおいて、状態遷移Ti[now]jが生じた回数を1だけインクリメントして、NT+1に更新する。
【０４６３】
その後、情報量ゲイン算出部６１は、更新後の回数BS+1回及びBT+1回を用いて、ベース確率の確率分布P(Ti[now]j|si[now])を、ベータ関数B(BT+2,BS-BT+1)のベータ分布に更新する。さらに、情報量ゲイン算出部６１は、更新後の回数NS+1回及びNT+1回を用いて、因子条件付き確率の確率分布P(Ti[now]j|si[now],ck)を、ベータ関数B(NT+2,NS-NT+1)のベータ分布に更新する。
【０４６４】
そして、情報量ゲイン算出部６１は、更新後のベータ分布で表されるベース確率の確率分布P'(Ti[now]j|si[now])及び因子条件付き確率の確率分布P'(Ti[now]j|si[now],ck)のKLダイバージェンスDKL(P'(Tii[now]j|sii[now])||P'(Tii[now]j|sii[now],ck))を、アームHMMの状態ckの生起後の因果関係量D'i[now]j;kとして求める。
【０４６５】
ここで、ステップＳ４２での回数BS,BT,NS、及び、NTの更新は、因果関係量D'i[now]j;kを求めることに関してのみ行われる。
【０４６６】
ステップＳ４３では、情報量ゲイン算出部６１は、因子としてのアームHMMの状態ckの（仮の）生起後の因果関係量D'i[now]j;kから、生起前の因果関係量Di[now]j;kを減算した減算値D'i[now]j;k-Di[now]j;kを、因子としてのアームHMMの状態ckの情報量ゲインGi[now]j;kとして求め、評価値算出部６２に供給して、処理はリターンする。
【０４６７】
ここで、因子としてのアームHMMの状態ckが生起し、さらに、物体HMMの状態遷移Tijが生じた場合に、アームHMMの状態ckが生起することによって得られる情報量（アームHMMの状態ck（の生起）の情報量ゲイン）Gij;kは、アームHMMの状態ckと物体HMMの状態遷移Tijとの間の因果関係量が、アームHMMの状態ckが生起する前と後とで、どれだけ増加したかに相当する。
【０４６８】
すなわち、アームHMMの状態ckが生起し、さらに、物体HMMの状態遷移Tijが生じた場合に、アームHMMの状態ckが生起することによって得られる情報量（アームHMMの状態ckの情報量ゲイン）Gij;kは、物体HMMの状態遷移Tijとの間に因果関係があることをより明らかにするアームHMMの状態ckほど多い。
【０４６９】
以上のように、因子としてのアームHMMの状態ckが生起することによって得られる情報量（情報量ゲイン）Gij;kは、アームHMMの状態ckと物体HMMの状態遷移Tijとの間の因果関係量が、アームHMMの状態ckが生起する前と後とで、どれだけ増加したかに相当するので、アームHMMの状態ckが生起した後の因果関係量（分布間距離）D'ij;kが、アームHMMの状態ckが生起する前の因果関係量距離Dij;kから、どれだけ増加しているかによって表すことができる。
【０４７０】
すなわち、アームHMMの状態ckが生起し、さらに、物体HMMにおいて、状態遷移Tijが生じた場合に、アームHMMの状態ckが生起することによって得られる情報量（アームHMMの状態ckの情報量ゲイン）Gij;kは、アームHMMの状態ckが生起した後の因果関係量D'ij;kから、アームHMMの状態ckが生起する前の因果関係量Dij;kを減算した減算値D'ij;k−Dij;kで表すことができる。
【０４７１】
そこで、情報量ゲイン算出処理では、アームHMMの状態ckが生起した後の因果関係量D'ij;kから、アームHMMの状態ckが生起する前の因果関係量Dij;kを減算した減算値D'ij;k−Dij;kが、アームHMMの状態ckの情報量ゲインGij;kとして求められる。
【０４７２】
なお、ステップＳ４１ないしＳ４３の処理は、すべてのj＝1,2,・・・,N（Nは物体HMMの状態の数）と、すべてのk＝1,2,・・・,K（Kは因子の総数で、ここでは、アームHMMの状態の数）との組み(i,k)のすべてについて行われ、物体HMMの現在状態si[now]について、物体HMMの状態sj（現在状態si[now]を除く）とアームHMMの状態ckとの組み合わせごとの情報量ゲインGi[now]j;kが求められる。
【０４７３】
図１３は、ベータ分布で表される確率分布を示す図である。
【０４７４】
図１３において、確率分布P(T|c1)は、8回の試行において5回だけ成功した場合の確率分布であり、ベータ関数B(5+1,8-5+1)＝B(6,4)のベータ分布である。
【０４７５】
確率分布P(T|c2)は、43回の試行において24回だけ成功した場合の確率分布であり、ベータ関数B(24+1,43-24+1)＝B(25,20)のベータ分布である。
【０４７６】
確率分布P(T|c3)は、20回の試行において1回だけ成功した場合の確率分布であり、ベータ関数B(1+1,20-1+1)＝B(2,20)のベータ分布である。
【０４７７】
確率分布P(T)は、48回の試行において9回だけ成功した場合の確率分布であり、ベータ関数B(9+1,48-9+1)＝B(10,40)のベータ分布である。
【０４７８】
また、図１３において、確率分布P(T)と、確率分布P(T|c1)，P(T|c2)、及び、P(T|c3)それぞれとのKLダイバージェンスDKLは、それぞれ、14.0，4.2、及び、1.4になっている。
【０４７９】
さらに、図１３において、確率分布P(T|c1)，P(T|c2)、及び、P(T|c3)のうちの、確率分布P(T|c3)（に従う確率）の期待値は、確率分布P(T)（に従うベース確率）の期待値より小さく、確率分布P(T|c1)及びP(T|c2)の期待値は、いずれも、確率分布P(T)の期待値より大きい。
【０４８０】
いま、確率分布P(T)が、ベース確率の確率分布P(Ti[now]j|si[now])であり、確率分布P(T|c1)，P(T|c2)、及び、P(T|c3)が、それぞれ、因子c1，c2、及び、c3が生起した場合の因子条件付き確率の確率分布P(Ti[now]j|si[now],c1)，P(Ti[now]j|si[now],c2)、及び、P(Ti[now]j|si[now],c2)であるとする。
【０４８１】
この場合、図１２で説明したように、情報量ゲイン算出部６１は、期待値が、ベース確率の期待値より大きい因子条件付き確率の因子だけを対象として、因果関係量、ひいては、情報量ゲインを求める。
【０４８２】
図１３では、因子条件付き確率の確率分布P(T|c1)，P(T|c2)、及び、P(T|c3)のうちの、確率分布P(T|c3)（に従う因子条件付き確率）の期待値は、ベース確率の確率分布P(T)（に従うベース確率）の期待値より小さく、確率分布P(T|c1)及びP(T|c2)の期待値は、ベース確率の確率分布P(T)より大きい。
【０４８３】
したがって、情報量ゲイン算出部６１では、因子c1及びc2については、情報量ゲインが求められ、因子c3については、情報量ゲインは、求められない（例えば、0とされる）。
【０４８４】
［評価値算出処理］
【０４８５】
図１４は、図１１のステップＳ３３の評価値算出処理を説明するフローチャートである。
【０４８６】
評価値算出処理では、ステップＳ５１において、評価値算出部６２は、情報量ゲイン算出部６１からの情報量ゲインGi[now]j;kの期待値G~i[now]j;kを求めて、処理は、ステップＳ５２に進む。
【０４８７】
ここで、情報量ゲインGi[now]j;kの期待値G~i[now]j;kは、因子としてのアームHMMの状態ckが生起した場合に、物体HMMの現在状態si[now]において、状態遷移Ti[now]jが生じる因子条件付き確率p(Ti[now]j|si[now],ck)の期待値p~(Ti[now]j|si[now],ck)＝NT/NSを用い、式G~i[now]j;k＝p~(Ti[now]j|si[now],ck)×Gi[now]j;kに従って求めることができる。
【０４８８】
ステップＳ５２では、評価値算出部６２は、物体HMMの状態遷移Ti[now]jの遷移確率ai[now]jを重みとして、情報量ゲインGi[now]j;kの期待値G~i[now]j;kを、物体HMMの現在状態si[now]からの状態遷移Ti[now]jの遷移先となる状態sjのすべてに関して重み付け加算を行い、その結果得られる重み付け加算値Σ(ai[now]j×G~i[now]j;k)を、因子としてのアームのHMMの状態ck（の生起）と物体HMMの状態遷移Ti[now]jとの因果関係を獲得するにあたって、因子としてのアームHMMの状態ckが生起することの有効性を評価する評価値Vi[now];kとして求めて、決定部６３に供給し、処理はリターンする。
【０４８９】
ここで、評価値Vi[now];kは、式Vi[now];k＝Σ(ai[now]j×G~i[now]j;k)に従って求められる。式Vi[now];k＝Σ(ai[now]j×G~i[now]j;k)のΣは、変数jを、1から、物体HMMの状態の数Nまでの範囲の整数に変えてのサメーションを表す。
【０４９０】
なお、ステップＳ５１及びＳ５２の処理は、すべてのk＝1,2,・・・,K（Kは因子の総数で、ここでは、アームHMMの状態の数）について行われ、物体HMMの現在状態si[now]について、アームHMMの状態ckごとの評価値Vi[now];kが、アームHMMの状態ckを生起することの有効性を表す値として求められる。
【０４９１】
また、評価値Vi[now];kは、式Vi[now];k＝Σ(ai[now]j×G~i[now]j;k)に従って求める他、例えば、物体HMMの状態遷移Tijに対し、何らかの方法で、重要度wijが割り当てられている場合には、評価値Vi[now];kは、重要度wijを用いた式Vi[now];k＝Σ(wi[now]jai[now]j×G~i[now]j;k)に従って求めることができる。
【０４９２】
［決定処理］
【０４９３】
図１５は、図１１のステップＳ３４の決定処理を説明する図である。
【０４９４】
決定処理では、決定部６３は、評価値算出部６２からの評価値Vi[now];kに基づいて、生起する因子としてのアームHMMの状態が1個以上だけ並ぶ系列を、因果獲得プランに決定する。
【０４９５】
ここで、評価値Vi[now];kは、アームHMMの状態ck（の生起）と物体HMMの状態遷移Ti[now]jとの因果関係を獲得するにあたって、アームHMMの各状態c1,2,・・・,cKを生起することの有効性を評価する値であり、したがって、評価値Vi[now];kが大きいアームHMMの状態ckを生起することによって、有効な情報、すなわち、アームHMMの状態ckと物体HMMの状態遷移Ti[now]jとの間に因果関係があることをより明らかにする情報を得ることができる。
【０４９６】
評価値Vi[now];kが大きいアームHMMの状態ckを即座に生起することができる場合、すなわち、アームHMMにおいて、現在状態ck[now]から評価値Vi[now];kが大きいアームHMMの状態ckへの（直接の）状態遷移が可能であり（アームHMMにおいて、現在状態ck[now]から評価値Vi[now];kが大きいアームHMMの状態ckに状態遷移するように、アームを動かすことができ）、したがって、アームHMMの状態遷移に制限がない場合、決定部６３では、アームHMMの現在状態ck[now]と、評価値Vi[now];kが最大のアームHMMの状態ckとの2個の状態の系列が、因果獲得プランに決定される。
【０４９７】
一方、評価値Vi[now];kが大きいアームHMMの状態ckを即座に生起することができないことがある場合、すなわち、アームHMMにおいて、現在状態ck[now]を、評価値Vi[now];kが大きいアームHMMの状態ckにするには、複数回の状態遷移が必要であることがあり（アームHMMにおいて、現在状態ck[now]から評価値Vi[now];kが大きいアームHMMの状態ckに直接状態遷移するように、アームを動かすことができないことがあり）、したがって、アームHMMの状態遷移に制限がある場合、決定部６３では、アームHMMの現在状態ck[now]を最初の状態として、状態遷移をしていくことが可能な因子としての状態ckの系列である因子経路のうちの、その因子経路を構成する因子としての状態ckの評価値Vi[now];kの積算値の平均値（重み付け平均値を含む）が最大の因子経路が、因果獲得プランに決定される。
【０４９８】
すなわち、図１５は、因子経路の例を示している。
【０４９９】
因子経路は、アームがテーブル上を動く軌道に対応し（対応させることができ）、したがって、アームHMMの現在状態ck[now]を最初の状態とする因子経路としては、図１５に示すように、多数の状態系列が存在する。
【０５００】
決定部６３では、そのような多数の因子経路の中から、因子経路を構成する因子としての状態ckの評価値Vi[now];kの積算値の平均値が最大の因子経路が、因果獲得プランに決定される。
【０５０１】
なお、図１５において、斜線を付してある部分は、評価値Vi[now];kが大きいアームHMMの状態ckに対応するテーブル上の位置を表しており、決定部６３では、観念的には、そのような位置を多く通るようなアームの軌道に対応する因子経路が、因果獲得プランに決定される。
【０５０２】
図１６は、図１１のステップＳ３４の決定処理を説明するフローチャートである。
【０５０３】
決定処理では、ステップＳ６１において、決定部６３は、アームHMMの現在状態ck[now]から、アームHMMの各状態ckまでの因子としての状態の系列である因子経路PS1,PS2,・・・,PSQを、因果獲得プランの候補（プラン候補）として求め、処理は、ステップＳ６２に進む。
【０５０４】
ここで、決定部６３は、例えば、アームHMMの1個の状態ckに対して、その状態ckまでの因子経路として、1個以上の系列を求める。
【０５０５】
したがって、因子経路PSq（q＝1,2,・・・,Q）の数Qは、アームHMMの状態ckの数K以上の数となる（Q≧K）。
【０５０６】
なお、アームHMMの現在状態ck[now]からアームHMMのある状態ckまでの因子経路としては、アームHMMの2個以上の状態をループするような状態遷移を許せば、無限の数の因子経路が存在することになるので、決定部６３は、所定の制限（条件）の下で、因子経路を求めることにより、プラン候補として求められる因子経路（の数）を制限する。
【０５０７】
すなわち、アームHMMの状態遷移に制限がない場合（例えば、エージェントが、ビデオゲームのキャラクタであり、瞬時に、任意の位置に、アームを移動することができる場合等）、決定部６３は、アームHMMの各状態ckについて、アームHMMの現在状態ck[now]と、アームHMMの状態ckとの2個の状態の系列を、因子経路PSkとして求める。
【０５０８】
したがって、アームHMMの状態遷移に制限がない場合、因子経路PSq（q＝1,2,・・・,Q）の数Qは、アームHMMの状態ckの数Kに一致する。
【０５０９】
また、アームHMMの状態遷移に制限がある場合、決定部６３は、アームHMMの各状態ckについて、アームHMMの現在状態ck[now]を最初の状態として、アームHMMの状態ckまで状態遷移をしていくことが可能なアームHMMの状態の系列である因子経路の中から、プラン候補となる因子経路を、所定の探索方法で探索する。
【０５１０】
すなわち、決定部６３は、アームHMMの状態c1，c2，・・・，cKのそれぞれについて、アームHMMの現在状態ck[now]を、注目する注目状態に選択し、注目状態から（直接に）状態遷移が可能なアームHMMの状態を、新たな注目状態に選択することを繰り返すことで、アームHMMの現在状態ck[now]から状態ckに到達する状態の系列を、因子経路として探索する。
【０５１１】
なお、決定部６３は、アームHMMの1個の状態ckについて、1個以上の因子経路を探索する。
【０５１２】
決定部６３では、因子経路の探索において、例えば、因子経路を構成するアームHMMの状態の数（探索深さ）を所定数に制限することができる。
【０５１３】
また、決定部６３では、因子経路の探索において、例えば、新たな注目状態に選択するアームHMMの状態の数を所定数に制限する幅優先探索を行うことができる。
【０５１４】
さらに、決定部６３では、因子経路の探索において、例えば、因子経路に、ループが含まれることを禁止することにより、ループを含まない状態の系列を、因子経路として探索することができる。なお、この場合、因子経路の系列長（経路長）（因子経路を構成するアームHMMの状態の数）が有限長になることが保証される。
【０５１５】
その他、決定部６３では、例えば、動的計画法（例えば、ダイクストラ法等）によって、アームHMMの現在状態ck[now]から状態ckに到達する最短の状態系列（系列長が最小の状態系列）を、因子経路として探索することができる。
【０５１６】
ステップＳ６２では、決定部６３は、各因子経路PSqについて、因子経路PSqを構成する因子としてのアームHMMの状態ckの評価値Vi[now];kを積算し、その結果得られる評価値Vi[now];kの積算値の平均値（以下、平均評価値ともいう）AVqを、アームHMMの状態と物体HMMの状態遷移との因果関係を獲得するにあたって、因子経路PSqに従ったアクションを行うことの有効性（以下、因子経路PSqの有効性ともいう）を表す値として求めて、処理は、ステップＳ６３に進む。
【０５１７】
ここで、上述の場合には、因子経路PSqを構成するアームHMMの状態ckの評価値Vi[now];kの積算値の平均値である平均評価値AVqを、因子経路PSqの有効性を表す値として求めることとしたが、因子経路PSqの探索において、系列長が一定値の因子経路が探索される場合には、因子経路PSqを構成するアームHMMの状態ckの評価値Vi[now];kの積算値を、因子経路PSqの有効性を表す値として求めることができる。
【０５１８】
なお、因子経路PS1,PS2,・・・,PSQそれぞれの系列長が一定値であるという条件の下では、因子経路PSqを構成するアームHMMの状態ckの評価値Vi[now];kの積算値は、その積算値の平均値AVqと等価であり、したがって、因子経路PSqを構成するアームHMMの状態ckの評価値Vi[now];kの積算値を求めることは、その積算値の平均値AVqを求めることと等価である。
【０５１９】
ステップＳ６３では、決定部６３は、因子経路PS1,PS2,・・・,PSQそれぞれの平均評価値AV1,AV2,・・・,AVQの中から、最大値（以下、最大平均評価値ともいう）AVq[MAX]を検出し、その最大平均評価値AVq[MAX]が得られる因子経路PSq[MAX]を、因果獲得プランに決定する。
【０５２０】
そして、決定部６３は、因果獲得プランを、アクション信号生成部３２に供給して、処理はリターンする。
【０５２１】
アクション信号生成部３２は、決定部６３からの因果獲得プランに従って、アクション信号を生成し、アクション部１４に供給する。
【０５２２】
アクション部１４は、アクション信号生成部３２からのアクション信号に従って、エージェントのアームを駆動する。これにより、エージェントは、因果獲得プランを構成するアームHMMの状態が、順次、アームHMMの現在状態になっていくように、アームを動かしていく。
【０５２３】
以上のように、因果処理部６０（図８）では、情報量ゲイン算出部６１において、アームHMMの状態の生起を原因として、物体HMMの状態遷移が生じると仮定して、アームHMMの状態（の生起）と物体HMMの状態遷移との因果関係について、アームHMMの状態を生起し、その結果を観察することによって得られる（得られるであろう）情報量ゲインが求められる。そして、評価値算出部６２において、アームHMMの状態と物体HMMの状態遷移との因果関係を獲得するにあたって、アームHMMの各状態を生起することの有効性を評価する評価値が、情報量ゲインに基づいて求められ、決定部６３において、その評価値に基づいて、評価値の積算値の平均値が最大のアームHMMの状態の系列である因子経路が、生起するアームHMMの状態の系列である因果獲得プランに決定される。
【０５２４】
したがって、エージェントは、因果獲得プランに従ってアクションを行うことにより、アームHMMの状態と物体HMMの状態遷移との因果関係を獲得するにあたって、情報量の多い因果学習用データを収集すること、すなわち、有効な因果学習用データを、効率的に収集することができ、因果関係を獲得するのに要する時間を短縮することができる。
【０５２５】
［シミュレーション］
【０５２６】
図１７は、因果学習用データを収集して、因果学習を行い、その因果学習の結果（因子候補リスト）を用いた因果推定を実行しながら行った物体移動タスクのシミュレーションの結果を示す図である。
【０５２７】
シミュレーションでは、生得コントローラ３５が出力するアクション信号に従って、エージェントが1万回のアクションを行う間に観測される観測値を用いて、アームHMM及び物体HMMの学習を行い、その後、エージェントに、因果学習用データの収集のためのアクションを行わせ、因果学習用データを収集した。
【０５２８】
ここで、因果学習用データの収集のために、エージェントが行ったアクションを因果収集アクションともいう。
【０５２９】
シミュレーションでは、エージェントが、因果収集アクションによって収集した因果学習用データを用いて因果学習を行い、その因果学習の結果（因子候補リスト）を用いた因果推定を行いながら、物体移動タスクを行った。
【０５３０】
物体移動タスクでは、エージェントは、アームを動かして、物体を、スタート位置からゴール位置まで移動させるが、シミュレーションでは、100組の２カ所の位置の組みをランダムに決定し、その100組それぞれについて、２カ所の位置のうちの一方をスタート位置とするとともに、他方をゴール位置として、物体移動タスクを行った。
【０５３１】
図１７は、エージェントが学習のために行ったアクションの回数(Exploration step)と、物体移動タスクの成功率(Success rate)との関係を示している。
【０５３２】
図１７において、横軸は、エージェントが学習のために行ったアクションの回数を、ログスケールで示している。
【０５３３】
上述したように、シミュレーションでは、エージェントは、アームHMM及び物体HMMの学習に用いるデータ（観測値）を収集するのに、1万回のアクションを行った後、因果学習用データの収集のための因果収集アクションを行うので、1万回を超えるアクションの回数が、因果収集アクションが行われた回数となる。
【０５３４】
図１７において、縦軸は、横軸の回数のアクション（因果収集アクション）が行われた後、その因果収集アクションによって収集された因果学習用データを用いた因果学習を行い、その因果学習の結果（因子候補リスト）を用いた因果推定を行いながら、物体移動タスクを行ったときの成功率を示している。
【０５３５】
シミュレーションでは、所定の時間内に、物体を、ゴール位置に移動することができなかった場合等の一定の場合を、物体移動タスクを中止する中止条件として設定し、中止条件に該当せずに、物体を、ゴール位置に移動することができた場合を、物体移動タスクの成功としてカウントするとともに、物体をゴール位置に移動する前に中止条件に該当した場合を、物体移動タスクの失敗としてカウントすることによって、物体移動タスクの成功率を求めた。
【０５３６】
また、シミュレーションでは、因果処理部６０で得られる因果獲得プランに従ったアクションを、因果収集アクションとして行った場合（以下、「因果獲得プラン」とも記載する）、いわゆる作り込みのルール（例えば、「物体を動かすには物体を押せばよい」や「物体を壁に押し付けると動かなくなってしまうので、そういう時は反対側に回り込んで押せばよい」というような、人が持つ知識をフルに使って実装されたルール）に従ったアクションを、因果収集アクションとして行った場合（以下、「作り込み」とも記載する）、及び、ランダムなアクションを、因果収集アクションとして行った場合（以下、「ランダム」とも記載する）のそれぞれについて、物体移動タスクの成功率を求めた。
【０５３７】
なお、シミュレーションにおいて、「因果獲得プラン」、「作り込み」、及び、「ランダム」では、因果収集アクション以外の条件、すなわち、例えば、因果収集アクションによって収集した因果学習用データを用いての因果学習や、その因果学習の結果を用いての因果推定を行うモジュール等は、すべて共通化した。
【０５３８】
図１７は、「因果獲得プラン」、「作り込み」、及び、「ランダム」それぞれの場合の物体移動タスクの成功率を示している。
【０５３９】
図１７によれば、成功率が100%の物体移動タスクを実行するには、「作り込み」では、「因果獲得プラン」の場合の5倍の回数の因果収集アクションを行うことが必要であり、「ランダム」では、「作り込み」の場合の10倍の回数の因果収集アクションを行うことが必要であることを確認することができる。
【０５４０】
したがって、「因果獲得プラン」によれば、「作り込み」と比較した場合には、1/5の時間で、有効な因果学習用データを収集することができ、「ランダム」と比較した場合には、1/50の時間で、有効な因果学習用データを収集することができる。
【０５４１】
［本技術を適用したコンピュータの説明］
【０５４２】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０５４３】
そこで、図１８は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０５４４】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やROM１０３に予め記録しておくことができる。
【０５４５】
あるいはまた、プログラムは、リムーバブル記録媒体１１１に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体１１１としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【０５４６】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク１０５にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【０５４７】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵しており、CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されている。
【０５４８】
CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、入力部１０７が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、CPU１０２は、ハードディスク１０５に格納されたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。
【０５４９】
これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０５５０】
なお、入力部１０７は、キーボードや、マウス、マイク等で構成される。また、出力部１０６は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【０５５１】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含む。
【０５５２】
また、プログラムは、１のコンピュータ（プロセッサ）により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０５５３】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０５５４】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０５５５】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０５５６】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０５５７】
また、本実施の形態では、本技術を、物体移動タスクに適用した場合について説明したが、本技術は、物体移動タスク以外の任意のタスクに適用可能である。
【０５５８】
さらに、本実施の形態では、1個のHMMであるアームHMMの状態（の生起）を、因子ckとして採用したが、因子ckとしては、複数のHMMそれぞれの状態（を要素とする状態ベクトル）を採用することができる。
【０５５９】
なお、本技術は、以下の構成をとることができる。
【０５６０】
［１］
状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求める情報量ゲイン算出部と、
因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求める評価値算出部と、
前記評価値に基づいて、生起する因子を決定する決定部と
を備える情報処理装置。
［２］
前記情報量ゲイン算出部は、
所定の状態において、状態遷移が生じる確率であるベース確率の確率分布と、所定の因子が生起し、前記所定の状態において、前記状態遷移が生じる確率である因子条件付き確率の確率分布との間の違いを表す分布間距離を、前記所定の因子と前記所定の状態からの前記状態遷移との間にある因果関係の程度を表す因果関係量として求め、
前記所定の因子を生起し、その結果を観察した後の前記因果関係量と、所定の因子が生起する前の前記因果関係量との差分を、前記情報量ゲインとして求める
［１］に記載の情報処理装置。
［３］
前記分布間距離は、前記ベース確率の確率分布、及び、前記因子条件付き確率の確率分布のKL(KullbackLeibler)ダイバージェンスである
［２］に記載の情報処理装置。
［４］
前記状態遷移が生じる確率は、ベータ分布に従う
［２］又は［３］に記載の情報処理装置。
［５］
所定の状態において、他の所定の状態への状態遷移が生じる確率であるベース確率の期待値が、所定の状態にいた回数BSと、前記所定の状態からの前記他の所定の状態への状態遷移が生じた回数BTとを用いて、BT/BSで表され、
所定の因子が生起し、所定の状態において、他の所定の状態への状態遷移が生じる確率である因子条件付き確率の期待値が、前記BS回だけいた前記所定の状態において、前記所定の因子が生起した回数NS回と、前記所定の因子が生起した場合に、前記所定の状態から前記他の所定の状態への状態遷移が生じた回数NTとを用いて、NT/NSで表され、
前記ベース確率は、ベータ関数B(BT+1,BS-BT+1)のベータ分布に従い、
前記因子条件付き確率は、ベータ関数B(NT+1,NS-NT+1)のベータ分布に従う
［４］に記載の情報処理装置。
［６］
前記評価値算出部は、前記状態遷移モデルの状態遷移の遷移確率を重みとして、前記情報量ゲインの期待値の重み付け加算を行うことにより得られる重み付け加算値を、前記所定の因子と前記所定の状態からの状態遷移との因果関係を獲得するのに、前記所定の因子を生起することの有効性を評価する前記評価値として求める
［１］ないし［５］のいずれかに記載の情報処理装置。
［７］
前記決定部は、
現在生起している因子である現在因子から、各因子が生起するまでの因子の系列である因子経路を求め、
前記因子の評価値の積算値の平均値が最大の前記因子経路を、因果関係を獲得するために生起する因子の系列である因果獲得プランに決定する
［１］ないし［６］のいずれかに記載の情報処理装置。
［８］
前記決定部は、前記因子経路を構成する因子の数を制限して、前記因子経路を求める
［７］に記載の情報処理装置。
［９］
前記決定部は、ループを含まない因子の系列を、前記因子経路として求める
［７］に記載の情報処理装置。
［１０］
前記決定部は、前記現在因子から各因子までの最短経路を、前記因子経路として求める
［７］に記載の情報処理装置。
［１１］
前記状態遷移モデルは、HMM(Hidden Markov Model)であり、
エージェントにおいて観測される観測値を用いて学習が行われた複数のHMMのうちの１つのHMMである第１のHMMの現在状態と、他の１つ以上のHMMである第２のHMMの現在状態とが、前記観測値を用いて認識される場合において、
前記情報量ゲイン算出部は、
前記第２のHMMの各状態にいることを各因子とし、前記第２のHMMの各状態にいることが原因となって、前記第１のHMMの現在状態からの状態遷移が生じると仮定して、前記第２のHMMの各状態と前記第１のHMMの状態遷移との因果関係について、前記第２のHMMの各状態にいることによって得られる前記情報量ゲインを求め、
前記評価値算出部は、
前記第１のHMMの状態遷移の遷移確率を重みとして、前記情報量ゲインの期待値を重み付け加算することにより得られる重み付け加算値を、前記第２のHMMの状態と前記第１のHMMの状態遷移との因果関係を獲得するのに、前記第２のHMMの各状態にいることの有効性を評価する評価値として求め、
前記決定部は、
前記第２のHMMの現在状態から、前記第２のHMMの各状態に到達するまでの状態の系列を、前記因子経路として求め、
前記評価値の積算値の平均値が最大の因子経路である前記第２のHMMの状態の系列を、前記因果獲得プランに決定する
［７］に記載の情報処理装置。
［１２］
前記第２のHMMの状態遷移に制限がない場合、前記第２のHMMの現在状態と、前記第２のHMMの各状態との系列を、前記因子経路として求める
［１１］に記載の情報処理装置。
［１３］
前記第２のHMMは、アームを動かすアクションが可能なエージェントの前記アームの動きを学習したHMMであり、
前記第１のHMMは、前記アームが接触することによって移動する移動物体の動きを学習したHMMであり、
前記エージェントは、前記因果獲得プランとしての系列を構成する前記第２のHMMの状態が、順次、現在状態になっていくように、前記アームを動かす
［１１］又は［１２］に記載の情報処理装置。
［１４］
状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求め、
因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求め、
前記評価値に基づいて、生起する因子を決定する
ステップを含む情報処理方法。
［１５］
状態遷移モデルにおいて状態遷移が生じる原因となり得る因子が生起し、その因子の生起を原因として、状態遷移が生じると仮定して、前記因子と状態遷移との因果関係について、前記因子を生起し、その結果を観察することによって得られる情報量である情報量ゲインを求める情報量ゲイン算出部と、
因子と状態遷移との因果関係を獲得するにあたって、各因子を生起することの有効性を評価する評価値を、前記情報量ゲインに基づいて求める評価値算出部と、
前記評価値に基づいて、生起する因子を決定する決定部と
して、コンピュータを機能させるためのプログラム。
【符号の説明】
【０５６１】
１１  センサ部，  １２，１２1ないし１２M  学習認識部，  １３  アクション制御部，  １４  アクション部，  ２１  バッファ，  ２２  モデル学習部，  ２３  認識部，  ２４  モデル記憶部，  ３１  プランニング部，  ３２  アクション信号生成部，  ３３  アクション学習部，  ３４  アクション生成情報記憶部，  ３５  生得コントローラ，  ３６  プラン制御部，  ４１  アクション制御部，  ４２  因果処理部，  ５１  因果学習用データ取得部，  ５２  因果学習部，  ５３  因子候補リスト記憶部，  ５４  マージ部，  ５５  因果推定部，  ６０  因果処理部，  ６１  情報量ゲイン算出部，  ６２  評価値算出部，  ６３  決定部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
2013058120.tif 000003
【図２】
2013058120.tif 000004
【図３】
2013058120.tif 000005
【図４】
2013058120.tif 000006
【図５】
2013058120.tif 000007
【図６】
2013058120.tif 000008
【図７】
2013058120.tif 000009
【図８】
2013058120.tif 000010
【図９】
2013058120.tif 000011
【図１０】
2013058120.tif 000012
【図１１】
2013058120.tif 000013
【図１２】
2013058120.tif 000014
【図１３】
2013058120.tif 000015
【図１４】
2013058120.tif 000016
【図１５】
2013058120.tif 000017
【図１６】
2013058120.tif 000018
【図１７】
2013058120.tif 000019
【図１８】
2013058120.tif 000020