[エージェントがアクションを行う環境]
図1は、本発明の情報処理装置を適用したエージェントがアクションを行う環境であるアクション環境の例を示す図である。
エージェントは、移動等のアクション(行動)を自律的に行うことが可能(アクション可能)な、例えば、ロボット(実世界で行動するロボットでも良いし、仮想世界で行動する仮想的なロボットでも良い)等の装置である。
エージェントは、アクションを行うことによって、エージェント自身の状況を変化させること、及び、外部から観測可能な情報を観測し、その観測結果である観測値を用いて、状況を認識することができる。
また、エージェントは、状況の認識や、各状況において行うべきアクションの決定(選択)のために、エージェントがアクションを行うアクション環境のモデル(環境モデル)を構築する。
エージェントは、構造が固定のアクション環境は勿論、構造が固定ではなく、確率的に変化するアクション環境についても、効率的なモデル化(環境モデルの構築)を行う。
図1では、アクション環境は、2次元平面の迷路になっており、その構造は、確率的に変化するようになっている。なお、図1のアクション環境において、エージェントは、図中、白抜きの部分を、通路として移動することができる。
図2は、アクション環境の構造が変化する様子を示す図である。
図2のアクション環境では、時刻t=t1において、位置p1が壁になっており、位置p2が通路になっている。したがって、時刻t=t1では、アクション環境は、エージェントが位置p1を通ることはできないが、位置p2を通ることはできる構造になっている。
その後、時刻t=t2(>t1)では、位置p1が壁から通路に変化し、その結果、アクション環境は、エージェントが位置p1及びp2のいずれをも通ることができる構造になっている。
さらに、その後の時刻t=t3では、位置p2が通路から壁に変化し、その結果、アクション環境は、エージェントが位置p1を通ることができ、位置p2を通ることができない構造になっている。
[エージェントが行うアクションと、エージェントが観測する観測値]
図3は、アクション環境において、エージェントが行うアクション、及び、エージェントが観測する観測値の例を示している。
エージェントは、図1に示したようなアクション環境の、図中、点線で正方形状に区切ったエリアを、観測値を観測する単位(観測単位)とし、その観測単位で移動するアクションを行う。
図3Aは、エージェントが行うアクションの種類を示している。
図3Aでは、エージェントは、図中、上方向に観測単位だけ移動するアクションU1、右方向に観測単位だけ移動するアクションU2、下方向に観測単位だけ移動するアクションU3、左方向に観測単位だけ移動するアクションU4、及び、移動しない(何もしない)アクションU5の、合計で、5つのアクションU1ないしU5を行うことが可能になっている。
図3Bは、エージェントが観測単位で観測する観測値の種類を、模式的に示している。
本実施の形態では、エージェントは、観測単位において、15種類の観測値(シンボル)O1ないしO15のうちのいずれかを観測する。
観測値O1は、上と、下と、左とが壁で、左が通路になっている観測単位で観測され、観測値O2は、上と、左と、右とが壁で、下が通路になっている観測単位で観測される。
観測値O3は、上と、左とが壁で、下と、右とが通路になっている観測単位で観測され、観測値O4は、上と、下と、右とが壁で、左が通路になっている観測単位で観測される。
観測値O5は、上と、下とが壁で、左と、右とが通路になっている観測単位で観測され、観測値O6は、上と、右とが壁で、下と、左とが通路になっている観測単位で観測される。
観測値O7は、上が壁で、下と、左と、右とが通路になっている観測単位で観測され、観測値O8は、下と、左と、右とが壁で、上が通路になっている観測単位で観測される。
観測値O9は、下と、左とが壁で、上と、右とが通路になっている観測単位で観測され、観測値O10は、左と、右とが壁で、上と、下とが通路になっている観測単位で観測される。
観測値O11は、左が壁で、上と、下と、右とが通路になっている観測単位で観測され、観測値O12は、下と、右とが壁で、上と、左とが通路になっている観測単位で観測される。
観測値O13は、下が壁で、上と、左と、右とが通路になっている観測単位で観測され、観測値O14は、右が壁で、上と、下と、左とが通路になっている観測単位で観測される。
観測値O15は、上下左右すべてが通路になっている観測単位で観測される。
なお、アクションUm(m=1,2,・・・,M(Mはアクションの(種類の)総数))、及び、観測値Ok(m=1,2,・・・,K(Kは観測値の総数))は、いずれも離散値である。
[エージェントの構成例]
図4は、本発明の情報処理装置を適用したエージェントの一実施の形態の構成例を示すブロック図である。
エージェントは、アクション環境をモデル化した環境モデルを、学習により獲得する。
また、エージェントは、観測値の系列(観測値系列)を用いて、エージェント自身の現在の状況の認識を行う。
さらに、エージェントは、現在の状況から、ある目標に向かうのに行うべきアクションのプラン(アクションプラン)をプランニングし、そのアクションプランに従って、次に行うべきアクションを決定する。
なお、エージェントが行う学習、状況の認識、アクションプランのプランニング(アクションの決定)は、エージェントが観測単位で上、下、左、又は右に移動する問題(タスク)の他、一般的に強化学習の課題として取り上げられる、マルコフ決定過程(MDP(Markov decision process))の枠組みで定式化が可能な問題に適用することができる。
図4において、エージェントは、アクション環境において、図3Aに示したアクションUmを行うことによって、観測単位で移動し、移動後の観測単位で観測される観測値Okを取得する。
そして、エージェントは、現在までに行ったアクションUm(を表すシンボル)の系列であるアクション系列、及び、現在までに観測された観測値(を示すシンボル)Okの系列である観測値系列を用いて、アクション環境(の構造(をモデル化した環境モデル))の学習や、次に行うべきアクションの決定を行う。
エージェントがアクションを行うモードとしては、反射アクションモード(反射行動モード)と、認識アクションモード(認識行動モード)との2つのモードがある。
反射アクションモードでは、過去に得られた観測値系列とアクション系列とから、次に行うべきアクションを決定するルールを、生得的なルールとして設計しておく。
ここで、生得的なルールとしては、例えば、壁にぶつからないように、アクションを決定する(通路中での往復運動を許す)ルール、又は、壁にぶつからにように、かつ、行き止まるまでは、来た道を戻らないように、アクションを決定するルール等を採用することができる。
エージェントでは、生得的なルールに従い、エージェントにおいて観測される観測値に対して、次に行うべきアクションを決定し、そのアクションを行った後の観測単位で観測値を観測することを繰り返す。
これにより、エージェントは、アクション環境を移動したときのアクション系列と観測値系列とを獲得する。このようにして反射アクションモードで獲得されたアクション系列と観測値系列は、アクション環境の学習に用いられる。すなわち、反射アクションモードは、主として、アクション環境の学習に用いる学習データとなるアクション系列と観測値系列を獲得するために用いられる。
認識アクションモードでは、エージェントは、目標を決定し、現在の状況を認識して、その現在の状況から目標を達成するためのアクションプランを決定する。そして、エージェントは、アクションプランに従って、次に行うべきアクションを決定する。
なお、反射アクションモードと、認識アクションモードとの切り替えは、例えば、ユーザの操作等に応じて行うことができる。
図4において、エージェントは、反射アクション決定部11、アクチュエータ12、センサ13、履歴記憶部14、アクション制御部15、及び、目標決定部16から構成される。
反射アクション決定部11には、センサ13が出力する、アクション環境において観測された観測値が供給される。
反射アクション決定部11は、反射アクションモードにおいて、生得的なルールに従い、センサ13から供給される観測値に対して、次に行うべきアクションを決定し、アクチュエータ12を制御する。
アクチュエータ12は、例えば、エージェントが、実世界を歩行するロボットである場合には、エージェントを歩行させるためのモーター等であり、反射アクション決定部11や、後述するアクション決定部24の制御に従って駆動する。アクチュエータが駆動することにより、アクション環境において、エージェントは、反射アクション決定部11やアクション決定部24で決定されたアクションを行う。
センサ13は、外部から観測可能な情報をセンシングし、そのセンシング結果としての観測値を出力する。
すなわち、センサ13は、アクション環境の、エージェントが存在する観測単位を観測し、その観測単位を表すシンボルを、観測値として出力する。
なお、図4では、センサ13は、アクチュエータ12をも観測し、これにより、エージェントが行ったアクション(を表すシンボル)も出力する。
センサ13が出力する観測値は、反射アクション決定部11と、履歴記憶部14とに供給される。また、センサ13が出力するアクションは、履歴記憶部14に供給される
履歴記憶部14は、センサ13が出力する観測値とアクションを順次記憶する。これにより、履歴記憶部14には、観測値の系列(観測値系列)とアクションの系列(アクション系列)とが記憶される。
なお、ここでは、外部から観測可能な観測値として、エージェントが存在する観測単位を表すシンボルを採用するが、観測値としては、エージェントが存在する観測単位を表すシンボルと、エージェントが行ったアクションを表すシンボルとのセットを採用することが可能である。
アクション制御部15は、履歴記憶部14に記憶された観測値系列、及び、アクション系列を用いて、アクション環境の構造を記憶(獲得)させる環境モデルとしての状態遷移確率モデルの学習を行う。
また、アクション制御部15は、学習後の状態遷移確率モデルに基づき、アクションプランを算出する。さらに、アクション制御部15は、アクションプランに従って、エージェントが次に行うべきアクションを決定し、そのアクションに従って、アクチュエータ12を制御することで、エージェントにアクションを行わせる。
すなわち、アクション制御部15は、学習部21、モデル記憶部22、状態認識部23、及び、アクション決定部24から構成される。
学習部21は、履歴記憶部14に記憶されたアクション系列、及び、観測値系列を用いて、モデル記憶部22に記憶された状態遷移確率モデルの学習を行う。
ここで、学習部21が学習の対象とする状態遷移確率モデルは、エージェントが行うアクションによって、状態が状態遷移する、アクションごとの状態遷移確率と、状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルである。
状態遷移確率モデルとしては、例えば、HMM(Hidden Marcov Model)があるが、一般のHMMの状態遷移確率は、アクションごとに存在しない。そこで、本実施の形態では、HMM(Hidden Marcov Model)の状態遷移確率を、エージェントが行うアクションごとの状態遷移確率に拡張し、そのように状態遷移確率が拡張されたHMM(以下、拡張HMMともいう)を、学習部21による学習の対象として採用する。
モデル記憶部22は、拡張HMM(を規定するモデルパラメータである状態遷移確率や、観測確率等)を記憶する。また、モデル記憶部22は、後述する抑制子を記憶する。
状態認識部23は、認識アクションモードにおいて、モデル記憶部22に記憶された拡張HMMに基づき、履歴記憶部14に記憶されたアクション系列、及び、観測値系列を用いて、エージェントの現在の状況を認識し、その現在の状況に対応する、拡張HMMの状態である現在状態を求める(認識する)。
そして、状態認識部23は、現在状態を、アクション決定部24に供給する。
また、状態認識部23は、現在状態等に応じて、モデル記憶部22に記憶された抑制子の更新と、後述する経過時間管理テーブル記憶部32に記憶された経過時間管理テーブルの更新とを行う。
アクション決定部24は、認識アクションモードにおいて、エージェントが行うべきアクションをプランニングするプランナとして機能する。
すなわち、アクション決定部24には、状態認識部23から現在状態が供給される他、目標決定部16から、モデル記憶部22に記憶された拡張HMMの状態のうちの1つの状態が、目標とする目標状態として供給される。
アクション決定部24は、モデル記憶部22に記憶された拡張HMMに基づき、状態認識部23からの現在状態から、目標決定部16からの目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出(決定)する。
さらに、アクション決定部24は、アクションプランに従い、エージェントが次に行うべきアクションを決定し、その決定したアクションに従って、アクチュエータ12を制御する。
目標決定部16は、認識アクションモードにおいて、目標状態を決定し、アクション決定部24に供給する。
すなわち、目標決定部16は、目標選択部31、経過時間管理テーブル記憶部32、外部目標入力部33、及び、内部目標生成部34から構成される。
目標選択部31には、外部目標入力部33からの、目標状態としての外部目標と、内部目標生成部34からの、目標状態としての内部目標とが供給される。
目標選択部31は、外部目標入力部33からの外部目標としての状態、又は、内部目標生成部34からの内部目標としての状態を選択し、その選択した状態を、目標状態に決定して、アクション決定部24に供給する。
経過時間管理テーブル記憶部32は、経過時間管理テーブルを記憶する。経過時間管理テーブルには、モデル記憶部22に記憶された拡張HMMの各状態について、その状態が現在状態になってから経過した経過時間等が登録される。
外部目標入力部33は、(エージェントの)外部から与えられる状態を、目標状態としての外部目標として、目標選択部31に供給する。
すなわち、外部目標入力部33は、例えば、ユーザが目標状態とする状態を、外部から指定するときに、ユーザによって操作される。外部目標入力部33は、ユーザの操作によって指定された状態を、目標状態である外部目標として、目標選択部31に供給する。
内部目標生成部34は、(エージェントの)内部で、目標状態としての内部目標を生成し、目標選択部31に供給する。
すなわち、内部目標生成部34は、ランダム目標生成部35、分岐構造検出部36、及び、オープン端検出部37から構成される。
ランダム目標生成部35は、モデル記憶部22に記憶された拡張HMMの状態の中から、ランダムに、1つの状態を、ランダム目標として選択し、そのランダム目標を、目標状態である内部目標として、目標選択部31に供給する。
分岐構造検出部36は、モデル記憶部22に記憶された拡張HMMの状態遷移確率に基づいて、同一のアクションが行われた場合に異なる状態への状態遷移が可能な状態である、分岐構造の状態を検出し、その分岐構造の状態を、目標状態である内部目標として、目標選択部31に供給する。
なお、分岐構造検出部36において、拡張HMMから、分岐構造の状態として、複数の状態が検出された場合には、目標選択部31は、経過時間管理テーブル記憶部32の経過時間管理テーブルを参照し、複数の分岐構造の状態の中で、経過時間が最大の分岐構造の状態を、目標状態に選択する。
オープン端検出部37は、モデル記憶部22に記憶された拡張HMMにおいて、所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、所定の観測値と同一の観測値が観測される他の状態であるオープン端として検出する。そして、オープン端検出部37は、オープン端を、目標状態である内部目標として、目標選択部31に供給する。
[反射アクションモードの処理]
図5は、図4のエージェントが行う、反射アクションモードの処理を説明するフローチャートである。
ステップS11において、反射アクション決定部11は、時刻をカウントする変数tを、初期値としての、例えば、1に設定し、処理は、ステップS12に進む。
ステップS12では、センサ13が、アクション環境から、現在の観測値(時刻tの観測値)otを取得して出力し、処理は、ステップS13に進む。
ここで、時刻tの観測値otは、本実施の形態では、図3Bに示した15個の観測値O1ないしO15のうちのいずれかである。
ステップS13では、エージェントは、センサ13が出力した観測値otを、反射アクション決定部11に供給し、処理は、ステップS14に進む。
ステップS14では、反射アクション決定部11が、生得的なルールに従い、センサ13からの観測値otに対して、時刻tに行うべきアクションutを決定し、そのアクションutに従って、アクチュエータ12を制御して、処理は、ステップS15に進む。
ここで、時刻tのアクションutは、本実施の形態では、図3Aに示した5個のアクションU1ないしU5のうちのいずれかである。
また、以下、ステップS14で決定されたアクションutを、決定アクションutともいう。
ステップS15では、アクチュエータ12は、反射アクション決定部11の制御に従って駆動し、これにより、エージェントは、決定アクションutを行う。
このとき、センサ13は、アクチュエータ12を観測しており、エージェントが行ったアクションut(を表すシンボル)を出力する。
そして、処理は、ステップS15からステップS16に進み、履歴記憶部14は、センサ13が出力した観測値otとアクションutとを、観測値及びアクションの履歴として、既に記憶している観測値及びアクションの系列に追加する形で記憶し、処理は、ステップS17に進む。
ステップS17では、反射アクション決定部11は、反射アクションモードで行うアクションの回数として、あらかじめ指定(設定)された回数だけ、エージェントがアクションを行ったかどうかを判定する。
ステップS17において、エージェントが、あらかじめ指定された回数だけのアクションを、まだ、行っていないと判定された場合、処理は、ステップS18に進み、反射アクション決定部11は、時刻tを1だけインクリメントする。そして、処理は、ステップS18からステップS12に戻り、以下、同様の処理が繰り返される。
また、ステップS17において、エージェントが、あらかじめ指定された回数だけのアクションを行ったと判定された場合、すなわち、時刻tが、あらかじめ指定された回数に等しい場合、反射アクションモードの処理は、終了する。
反射アクションモードの処理によれば、観測値otの系列(観測値系列)と、観測値otが観測されるときにエージェントが行ったアクションutの系列(アクション系列)とが(アクションutの系列と、アクションutが行われたときにエージェントにおいて観測される値ot+1の系列とが)、履歴記憶部14に記憶されていく。
そして、エージェントでは、学習部21が、履歴記憶部14に記憶された観測値系列とアクション系列とを、学習データとして用いて、拡張HMMの学習を行う。
拡張HMMでは、一般(従来)のHMMの状態遷移確率が、エージェントが行うアクションごとの状態遷移確率に拡張されている。
図6は、拡張HMMの状態遷移確率を説明する図である。
すなわち、図6Aは、一般のHMMの状態遷移確率を示している。
いま、拡張HMMを含むHMMとして、ある状態から任意の状態に状態遷移が可能なエルゴディックなHMMを採用することとする。また、HMMの状態の数がN個であるとする。
この場合、一般のHMMでは、N個の各状態Siから、N個の状態Sjのそれぞれへの、N×N個の状態遷移の状態遷移確率aijを、モデルパラメータとして有する。
一般のHMMのすべての状態遷移確率は、状態Siから状態Sjへの状態遷移の状態遷移確率aijを、上からi番目で、左からj番目に配置した2次元のテーブルで表現することができる。
ここで、HMMの状態遷移確率のテーブルを、状態遷移確率Aとも記載する。
図6Bは、拡張HMMの状態遷移確率Aを示している。
拡張HMMでは、状態遷移確率が、エージェントが行うアクションUmごとに存在する。
ここで、あるアクションUmについての、状態Siから状態Sjへの状態遷移の状態遷移確率を、aij(Um)とも記載する。
状態遷移確率aij(Um)は、エージェントがアクションUmを行ったときに、状態Siから状態Sjへの状態遷移が生じる確率を表す。
拡張HMMのすべての状態遷移確率は、アクションUmについての、状態Siから状態Sjへの状態遷移の状態遷移確率aij(Um)を、上からi番目で、左からj番目の、奥行き方向に手前側からm番目に配置した3次元のテーブルで表現することができる。
ここで、状態遷移確率Aの3次元のテーブルにおいて、垂直方向の軸を、i軸と、水平方向の軸を、j軸と、奥行き方向の軸を、m軸、又は、アクション軸と、それぞれいうこととする。
また、状態遷移確率Aの3次元のテーブルを、アクション軸のある位置mで、アクション軸に垂直な平面で切断して得られる、状態遷移確率aIj(Um)で構成される平面を、アクションUmについての状態遷移確率平面ともいう。
さらに、状態遷移確率Aの3次元のテーブルを、i軸のある位置Iで、i軸に垂直な平面で切断して得られる、状態遷移確率aIj(Um)で構成される平面を、状態SIについてのアクション平面ともいう。
状態SIについてのアクション平面を構成する状態遷移確率aIj(Um)は、状態SIを遷移元とする状態遷移が生じるときに各アクションUmが行われる確率を表す。
なお、拡張HMMは、モデルパラメータとして、アクションごとの状態遷移確率aij(Um)の他、一般のHMMと同様に、最初の時刻t=1に、状態Siにいる初期状態確率πiと、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)とを有する。
[拡張HMMの学習]
図7は、図4の学習部21が、履歴記憶部14に記憶された学習データとしての観測値系列及びアクション系列を用いて行う、拡張HMMの学習の処理を説明するフローチャートである。
ステップS21において、学習部21は、拡張HMMを初期化する。
すなわち、学習部21は、モデル記憶部22に記憶された拡張HMMのモデルパラメータである初期状態確率πi、(アクションごとの)状態遷移確率aij(Um)、及び、観測確率bi(Ok)を初期化する。
なお、拡張HMMの状態の数(総数)がN個であるとすると、初期状態確率πiは、例えば、1/Nに初期化される。ここで、2次元平面の迷路であるアクション環境が、横×縦がa×b個の観測単位で構成されることとすると、拡張HMMの状態の数Nとしては、マージンとする整数を△として、(a+△)×(b×△)個を採用することができる。
また、状態遷移確率aij(Um)、及び、観測確率bi(Ok)は、例えば、確率の値としてとり得るランダムな値に初期化される。
ここで、状態遷移確率aij(Um)の初期化は、各アクションUmについての状態遷移確率平面の各行について、その行の状態遷移確率aij(Um)の総和(ai,1(Um)+ai,2(Um)+・・・+ai,N(Um))が1.0になるように行われる。
同様に、観測確率bi(Ok)の初期化は、各状態Siについて、その状態Siから観測値O1,O2,・・・,OKが観測される観測確率の総和(bi(O1)+bi(O2)+・・・+bi(OK))が1.0になるように行われる。
なお、いわゆる追加学習が行われる場合には、モデル記憶部22に記憶されている拡張HMMの初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bi(Ok)が、そのまま初期値として用いられる。すなわち、ステップS21の初期化は、行われない。
ステップS21の後、処理は、ステップS22に進み、以下、ステップS22以降において、Baum-Welchの再推定法(をアクションについて拡張した方法)に従い、履歴記憶部14に記憶された学習データとしてのアクション系列、及び、観測値系列を用いて、初期状態確率πi、各アクションについての状態遷移確率aij(Um)、及び、観測確率bi(Ok)を推定する、拡張HMMの学習が行われる。
すなわち、ステップS22では、学習部22は、前向き確率(Forward probability)αt+1(j)と、後ろ向き確率(Backward probability)βt(i)とを算出する。
ここで、拡張HMMにおいては、時刻tにおいて、アクションutが行われると、現在の状態Siから状態Sjに状態遷移し、次の時刻t+1において、状態遷移後の状態Sjで、観測値ot+1が観測される。
かかる拡張HMMでは、前向き確率αt+1(j)は、現在の拡張HMM(モデル記憶部22に現に記憶されている初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bi(Ok)で規定される拡張HMM)であるモデルΛにおいて、学習データのアクション系列u1,u2,・・・,utが観測されるとともに、観測値系列o1,o2,・・・,ot+1が観測され、時刻t+1に、状態Sjにいる確率P(o1,o2,・・・,ot+1,u1,u2,・・・,ut,st+1=j|Λ)であり、式(1)で表される。
なお、状態stは、時刻tにいる状態を表し、拡張HMMの状態の数がN個である場合には、状態S1ないしSNのうちのいずれかである。また、式st+1=jは、時刻t+1にいる状態st+1が、状態Sjであることを表す。
式(1)の前向き確率αt+1(j)は、学習データのアクション系列u1,u2,・・・,ut-1、及び、観測値系列o1,o2,・・・,otを観測して、時刻tに、状態stにいる場合に、アクションutが行われることにより(観測され)、状態遷移が生じ、時刻t+1に、状態Sjにいて、観測値ot+1を観測する確率を表す。
なお、前向き確率αt+1(j)の初期値α1(j)は、式(2)で表される。
式(2)の初期値α1(j)は、最初(時刻t=0)に、状態Sjにいて、観測値o1を観測する確率を表す。
また、拡張HMMでは、後ろ向き確率βt(i)は、現在の拡張HMMであるモデルΛにおいて、時刻tに、状態Siにいて、その後、学習データのアクション系列ut+1,ut+2,・・・,uT-1が観測されるとともに、観測値系列ot+1,ot+2,・・・,oTが観測される確率P(ot+1,ot+2,・・・,oT,ut+1,ut+2,・・・,uT-1,st=i|Λ)であり、式(3)で表される。
なお、Tは、学習データの観測値系列の観測値の個数を表す。
式(3)の後ろ向き確率βt(i)は、時刻t+1に、状態Sjにいて、その後に、学習データのアクション系列ut+1,ut+2,・・・,uT-1が観測されるとともに、観測値系列ot+2,ot+3,・・・,oTが観測される場合において、時刻tに、状態Siにいて、アクションutが行われることにより(観測され)、状態遷移が生じ、時刻t+1の状態st+1が、状態Sjとなって、観測値ot+1が観測されるときに、時刻tの状態stが、状態Siである確率を表す。
なお、後ろ向き確率βt(i)の初期値βT(i)は、式(4)で表される。
式(4)の初期値βT(i)は、最後(時刻t=T)に、状態Siにいる確率が、1.0であること、つまり、最後に、必ず、状態Siにいることを表す。
拡張HMMでは、式(1)及び式(3)に示したように、ある状態Siからある状態Sjへの状態遷移の状態遷移確率として、アクションごとの状態遷移確率aij(ut)を用いる点が、一般のHMMと異なる。
ステップS22において、前向き確率αt+1(j)と、後ろ向き確率βt(i)とを算出した後、処理は、ステップS23に進み、学習部21は、前向き確率αt+1(j)と、後ろ向き確率βt(i)とを用いて、拡張HMMのモデルパラメータΛである初期状態確率πi、アクションUmごとの状態遷移確率aij(Um)、及び、観測確率bi(Ok)を再推定する。
ここで、モデルパラメータの再推定は、状態遷移確率が、アクションUmごとの状態遷移確率aij(Um)に拡張されていることに伴い、Baum-Welchの再推定法を拡張して、以下のように行われる。
すなわち、現在の拡張HMMであるモデルΛにおいて、アクション系列U=u1,u2,・・・,uT-1と、観測値系列O=o1,o2,・・・,oTとが観測される場合に、時刻tで、状態Siにいて、アクションUmが行われることにより、時刻t+1に、状態Sjに状態遷移している確率ξt+1(i,j,Um)は、前向き確率αt(i)と、後ろ向き確率βt+1(j)とを用いて、式(5)で表される。
さらに、時刻tに、状態Siにいて、アクションut=Umが行われる確率γt(i,Um)は、確率ξt+1(i,j,Um)について、時刻t+1にいる状態Sjに関して周辺化した確率として計算することができ、式(6)で表される。
学習部21は、式(5)の確率ξt+1(i,j,Um)、及び、式(6)の確率γt(i,Um)を用い、拡張HMMのモデルパラメータΛの再推定を行う。
ここで、モデルパラメータΛの再推定を行って得られる推定値を、ダッシュ(')を用いて、モデルパラメータΛ'と表すこととすると、モデルパラメータΛ'である初期状態確率の推定値π'iは、式(7)に従って求められる。
また、モデルパラメータΛ'であるアクションごとの状態遷移確率の推定値a'ij(Um)は、式(8)に従って求められる。
ここで、式(8)の状態遷移確率の推定値a'ij(Um)の分子は、状態Siにいて、アクションut=Umを行って、状態Sjに状態遷移する回数の期待値を表し、分母は、状態Siにいて、アクションut=Umを行って、状態遷移する回数の期待値を表す。
モデルパラメータΛ'である観測確率の推定値b'j(Ok)は、式(9)に従って求められる。
ここで、式(9)の観測確率の推定値b'j(Ok)の分子は、状態Sjへの状態遷移が行われ、その状態Sjで、観測値Okが観測される回数の期待値を表し、分母は、状態Sjへの状態遷移が行われる回数の期待値を表す。
ステップS23において、モデルパラメータΛ'である初期状態確率、状態遷移確率、及び、観測確率の推定値π'i,a'ij(Um)、及び、b'j(Ok)を再推定した後、学習部21は、推定値π'iを、新たな初期状態確率πiとして、推定値a'ij(Um)を、新たな状態遷移確率aij(Um)として、推定値b'j(Ok)を、新たな観測確率bj(Ok)として、それぞれ、モデル記憶部22に、上書きの形で記憶させ、処理は、ステップS24に進む。
ステップS24では、拡張HMMのモデルパラメータ、すなわち、モデル記憶部22に記憶された(新たな)初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bj(Ok)が、収束したかどうかを判定する。
ステップS24において、拡張HMMのモデルパラメータが、まだ収束していないと判定された場合、処理は、ステップS22に戻り、モデル記憶部22に記憶された新たな初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bj(Ok)を用いて、同様の処理が繰り返される。
また、ステップS24において、拡張HMMのモデルパラメータが収束したと判定された場合、すなわち、例えば、ステップS23の再推定の前と後とで、拡張HMMのモデルパラメータが、ほとんど変化しなくなった場合、拡張HMMの学習の処理は終了する。
以上のように、アクションごとの状態遷移確率aij(Um)で規定される拡張HMMの学習を、エージェントが行うアクションのアクション系列と、エージェントがアクションを行ったときにエージェントにおいて観測される観測値の観測値系列とを用いて行うことにより、拡張HMMにおいて、観測値系列を通して、アクション環境の構造が獲得されるとともに、各観測値と、その観測値が観測されるときに行われたアクションとの関係(エージェントが行うアクションと、そのアクションが行われたときに観測される観測値(アクション後に観測される観測値)との関係)が獲得される。
その結果、かかる学習後の拡張HMMを用いることにより、認識アクションモードにおいて、後述するように、アクション環境内のエージェントが行うべきアクションとして、適切なアクションを決定することができる。
[認識アクションモードの処理]
図8は、図4のエージェントが行う、認識アクションモードの処理を説明するフローチャートである。
認識アクションモードでは、エージェントは、上述したように、目標の決定、及び、現在の状況の認識を行い、現在の状況から目標を達成するためのアクションプランを算出する。さらに、エージェントは、アクションプランに従って、次に行うべきアクションを決定し、そのアクションを行う。そして、エージェントは、以上の処理を繰り返す。
すなわち、ステップS31において、状態認識部23は、時刻をカウントする変数tを、初期値としての、例えば、1に設定し、処理は、ステップS32に進む。
ステップS32では、センサ13が、アクション環境から、現在の観測値(時刻tの観測値)otを取得して出力し、処理は、ステップS33に進む。
ステップS33では、履歴記憶部14は、センサ13が取得した時刻tの観測値otと、その観測値otが観測されるときに(センサ13において観測値otが取得される直前に)、センサ13が出力したアクションut-1(直前の時刻t-1にエージェントが行ったアクションut-1)とを、観測値及びアクションの履歴として、既に記憶している観測値及びアクションの系列に追加する形で記憶し、処理は、ステップS34に進む。
ステップS34では、状態認識部23は、拡張HMMに基づき、エージェントが行ったアクションと、そのアクションが行われたときにエージェントにおいて観測された観測値とを用いて、エージェントの現在の状況を認識し、その現在の状況に対応する拡張HMMの状態である現在状態を求める。
すなわち、状態認識部23は、履歴記憶部14から、最新の0個以上のアクションのアクション系列と、最新の1個以上の観測値の観測値系列とを、エージェントの現在の状況を認識するのに用いる認識用のアクション系列、及び、観測値系列として読み出す。
さらに、状態認識部23は、モデル記憶部22に記憶された学習済みの拡張HMMにおいて、認識用のアクション系列、及び、観測値系列を観測して、時刻(現在時刻)tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)と、その最適状態確率δt(j)が得られる状態系列である最適経路(パス)ψt(j)とを、例えば、Viterbiアルゴリズム(をアクションに拡張したアルゴリズム)に従って求める。
ここで、Viterbiアルゴリズムによれば、一般のHMMにおいて、ある観測値系列が観測されるときに辿る状態の系列(状態系列)のうちの、その観測値系列が観測される尤度を最大にする状態系列(最尤状態系列)を推定することができる。
但し、拡張HMMでは、状態遷移確率が、アクションについて拡張されているため、Viterbiアルゴリズムを拡張HMMに適用するには、Viterbiアルゴリズムを、アクションについて拡張する必要がある。
このため、状態認識部23では、式(10)及び式(11)に従って、それぞれ、最適状態確率δt(j)、及び、最適経路ψt(j)が求められる。
ここで、式(10)のmax[X]は、状態Siを表すサフィックスiを、1から、状態の数Nまでの範囲の整数に変えて得られるXのうちの最大値を表す。また、式(11)のargmax{X}は、サフィックスiを、1からNまでの範囲の整数に変えて得られるXを最大にするサフィックスiを表す。
状態認識部23は、認識用のアクション系列、及び、観測値系列を観測して、時刻tに、式(10)の最適状態確率δt(j)を最大にする状態Sjに辿り着く状態系列である最尤状態系列を、式(11)の最適経路ψt(j)から求める。
さらに、状態認識部23は、最尤状態系列を、現在の状況の認識結果として、その最尤状態系列の最後の状態を、現在状態stとして求める(推定する)。
状態認識部23は、現在状態stを求めると、その現在状態にstに基づき、経過時間管理テーブル記憶部32に記憶された経過時間管理テーブルを更新し、処理は、ステップS34からステップS35に進む。
すなわち、経過時間管理テーブル記憶部32の経過時間管理テーブルには、拡張HMMの各状態に対応付けて、その状態が現在状態になってからの経過時間が登録されている。状態認識部23は、経過時間管理テーブルにおいて、現在状態stとなった状態の経過時間を、例えば、0にリセットするとともに、他の状態の経過時間を、例えば、1だけインクリメントする。
ここで、経過時間管理テーブルは、上述したように、目標選択部31において、目標状態を選択するときに、必要に応じて参照される。
ステップS35では、状態認識部23は、現在状態stに基づき、モデル記憶部22に記憶された抑制子を更新する。抑制子の更新については、後述する。
さらに、ステップS35では、状態認識部23は、現在状態stを、アクション決定部24に供給して、処理は、ステップS36に進む。
ステップS36では、目標決定部16が、拡張HMMの状態の中から、目標状態を決定し、アクション決定部24に供給して、処理は、ステップS37に進む。
ステップS37では、アクション決定部24は、モデル記憶部22に記憶された抑制子(直前のステップS35で更新された抑制子)を用いて、同じく、モデル記憶部22に記憶された拡張HMMの状態遷移確率を補正し、補正後の状態遷移確率である補正遷移確率を算出する。
後述するアクション決定部24のアクションプランの算出では、補正遷移確率が、拡張HMMの状態遷移確率として用いられる。
ステップS37の後、処理は、ステップS38に進み、アクション決定部24は、モデル記憶部22に記憶された拡張HMMに基づき、状態認識部23からの現在状態から、目標決定部16からの目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを、例えば、Viterbiアルゴリズム(をアクションに拡張したアルゴリズム)に従って算出する。
ここで、Viterbiアルゴリズムによれば、一般のHMMにおいて、2つの状態のうちの一方から他方に到達する状態系列、すなわち、例えば、現在状態から目標状態に到達する状態系列のうちの、ある観測値系列が観測される尤度を最も高くする最尤状態系列を推定することができる。
但し、上述したように、拡張HMMでは、状態遷移確率が、アクションについて拡張されているため、Viterbiアルゴリズムを拡張HMMに適用するには、Viterbiアルゴリズムを、アクションについて拡張する必要がある。
このため、アクション決定部24では、式(12)に従って、状態確率δ't(j)が求められる。
ここで、式(12)のmax[X]は、状態Siを表すサフィックスiを、1から、状態の数Nまでの範囲の整数に変え、かつ、アクションUmを表すサフィックスmを、1から、アクションの数Mまでの範囲の整数に変えて得られるXのうちの最大値を表す。
式(12)は、最適状態確率δt(j)を求める式(10)から、観測確率bj(ot)を削除した式になっている。また、式(12)では、アクションUmを考慮して、状態確率δ't(j)が求められるが、その点が、Viterbiアルゴリズムの、アクションについての拡張に相当する。
アクション決定部24は、式(12)の計算を、前向き方向に実行し、時刻ごとに、最大の状態確率δ't(j)をとるサフィックスiと、そのサフィックスiが表す状態Siに至る状態遷移が生じるときに行われるアクションUmを表すサフィックスmを一時保存する。
なお、式(12)の計算にあたり、状態遷移確率aij(Um)としては、学習済みの拡張HMMの状態遷移確率aij(Um)を、抑制子で補正した補正遷移確率が用いられる。
アクション決定部24は、現在状態stを最初の状態として、式(12)の状態確率δ't(j)を計算していき、目標状態Sgoalの状態確率δ't(Sgoal)が、式(13)に示すように、所定の閾値δ'th以上となったときに、式(12)の状態確率δ't(j)の計算を終了する。
なお、式(13)の閾値δ'thは、例えば、式(14)に従って設定される。
ここで、式(14)において、T'は、式(12)の計算回数(式(12)から求められる最尤状態系列の系列長)を表す。
式(14)によれば、尤もらしい状態遷移が1回生じた場合の状態確率として、0.9を採用して、閾値δ'thが設定される。
したがって、式(13)によれば、尤もらしい状態遷移がT'回だけ連続した場合に、式(12)の状態確率δ't(j)の計算が終了する。
アクション決定部24は、式(12)の状態確率δ't(j)の計算を終了すると、その終了時にいる状態、つまり、目標状態Sgoalから、状態Si及びアクションUmについて保存しておいたサフィックスi及びmを、逆方向に、現在状態stに至るまで辿ることで、現在状態stから目標状態Sgoalに到達する最尤状態系列(多くの場合、最短経路)と、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションUmの系列とを求める。
すなわち、アクション決定部24は、上述したように、式(12)の状態確率δ't(j)の計算を、前向き方向に実行するときに、最大の状態確率δ't(j)をとるサフィックスiと、そのサフィックスiが表す状態Siに至る状態遷移が生じるときに行われるアクションUmを表すサフィックスmとを、時刻ごとに保存する。
時刻ごとのサフィックスiは、時間を遡る方向に、状態Sjから、どの状態Siに戻る場合が、最大の状態確率が得られるかを表し、時刻ごとのサフィックスmは、その最大の状態確率が得られる状態遷移が生じるアクションUmを表す。
したがって、時刻ごとのサフィックスi及びmを、式(12)の状態確率δ't(j)の計算を終了した時刻から1時刻ずつ遡っていき、式(12)の状態確率δ't(j)の計算を開始した時刻まで到達すると、現在状態stから目標状態Sgoalに至るまでの状態系列の状態のサフィックスの系列と、その状態系列の状態遷移が生じるときに行われるアクション系列のアクションのサフィックスの系列とのそれぞれを、時間を遡る順に並べた系列を得ることができる。
アクション決定部24は、この時間を遡る順に並べた系列を、時間順に並べ替えることで、現在状態stから目標状態Sgoalに至るまでの状態系列(最尤状態系列)と、その状態系列の状態遷移が生じるときに行われるアクション系列とを求める。
以上のようにして、アクション決定部24で求められる、現在状態stから目標状態Sgoalに至るまでの最尤状態系列の状態遷移が生じるときに行われるアクション系列が、アクションプランである。
ここで、アクション決定部24において、アクションプランとともに求められる最尤状態系列は、エージェントが、アクションプラン通りにアクションを行った場合に生じる(はずの)状態遷移の状態系列である。したがって、エージェントが、アクションプラン通りにアクションを行った場合に、最尤状態系列である状態の並びの通りでない状態遷移が生じたときには、エージェントが、アクションプラン通りにアクションを行っても、目標状態に到達しない可能性がある。
ステップS38において、アクション決定部24が、上述したようにして、アクションプランを求めると、処理は、ステップS39に進み、アクション決定部24は、アクションプランに従い、エージェントが次に行うべきアクションutを決定し、処理は、ステップS40に進む。
すなわち、アクション決定部24は、アクションプランとしてのアクション系列のうちの最初のアクションを、エージェントが次に行うべき決定アクションutとする。
ステップS40では、アクション決定部24は、直前のステップS39で決定したアクション(決定アクション)utに従って、アクチュエータ12を制御し、これにより、エージェントは、アクションutを行う。
その後、処理は、ステップS40からステップS41に進み、状態認識部23は、時刻tを1だけインクリメントして、処理は、ステップS32に戻り、以下、同様の処理が繰り返される。
なお、図8の認識アクションモードの処理は、例えば、認識アクションモードの処理を終了するように、エージェントが操作された場合や、エージェントの電源がオフにされた場合、エージェントのモードが、認識アクションモードから他のモード(反射アクションモード等)に変更された場合等に、終了する。
以上のように、状態認識部23において、拡張HMMに基づき、エージェントが行ったアクションと、そのアクションが行われたときにエージェントにおいて観測された観測値とを用いて、エージェントの現在の状況を認識し、その現在の状況に対応する現在状態を求め、目標決定部16において、目標状態を決定し、アクション決定部24において、拡張HMMに基づき、現在状態から目標状態までの状態遷移の尤度(状態確率)を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、エージェントが次に行うべきアクションを決定するので、エージェントが目標状態に到達するために、エージェントが行うべきアクションとして、適切なアクションを決定することができる。
ここで、従来の行動決定手法では、観測値系列を学習する状態遷移確率モデルと、その状態遷移確率モデルの状態遷移を実現するアクションのモデルであるアクションモデルとを、別個に用意して、学習が行われていた。
したがって、状態遷移確率モデルとアクションモデルとの2つのモデルの学習が行われるために、学習に、多くの計算コストと記憶リソースとが必要であった。
これに対して、図4のエージェントでは、1つのモデルである拡張HMMにおいて、観測値系列とアクション系列とを関連づけて学習するので、少ない計算コストと記憶リソースで、学習を行うことができる。
また、従来の行動決定手法では、状態遷移確率モデルを用いて、目標状態までの状態系列を算出し、その状態系列を得るためのアクションの算出を、アクションモデルを用いて行う必要があった。すなわち、目標状態までの状態系列の算出と、その状態系列を得るためのアクションの算出とを、別個のモデルを用いて行う必要があった。
そのため、従来の行動決定手法では、アクションを算出するまでの計算コストが大であった。
これに対して、図4のエージェントでは、現在状態から目標状態までの最尤状態系列と、その最尤状態系列を得るためのアクション系列とを同時に求めることができるので、少ない計算コストで、エージェントが次に行うべきアクションを決定することができる。
[目標状態の決定]
図9は、図8のステップS36で、図4の目標決定部16が行う目標状態の決定の処理を説明するフローチャートである。
目標決定部16では、ステップS51において、目標選択部31が、外部目標が設定されているかどうかを判定する。
ステップS51において、外部目標が設定されていると判定された場合、すなわち、例えば、ユーザによって、外部目標入力部33が操作され、モデル記憶部22に記憶された拡張HMMのいずれかの状態が、目標状態である外部目標として指定され、その目標状態(を表すサフィックス)が、外部目標入力部33から目標選択部31に供給されている場合、処理は、ステップS52に進み、目標選択部31は、外部目標入力部33からの外部目標を選択し、アクション決定部24に供給して、処理はリターンする。
なお、ユーザは、外部目標入力部33を操作する他、例えば、図示せぬPC(Personal Computer)等の端末を操作して、目標状態とする状態(のサフィックス)を指定することができる。この場合、外部目標入力部33は、ユーザが操作する端末と通信を行うことによって、ユーザが指定した状態を認識し、目標選択部31に供給する。
一方、ステップS51において、外部目標が設定されていないと判定された場合、処理は、ステップS53に進み、オープン端検出部37は、モデル記憶部22に記憶された拡張HMMに基づき、拡張HMMの状態の中から、オープン端を検出して、処理は、ステップS54に進む。
ステップS54では、目標選択部31は、オープン端が検出されたかどうかを判定する。
ここで、オープン端検出部37は、拡張HMMの状態の中から、オープン端を検出した場合、そのオープン端である状態(を表すサフィックス)を、目標選択部31に供給する。目標選択部31は、オープン端検出部37からオープン端が供給されたかどうかによって、オープン端が検出されたかどうかを判定する。
ステップS54において、オープン端が検出されたと判定された場合、すなわち、オープン端検出部37から目標選択部31に対して、1個以上のオープン端が供給された場合、処理は、ステップS55に進み、目標選択部31は、オープン端検出部37からの1個以上のオープン端の中から、例えば、状態を表すサフィックスが最小のオープン端を、目標状態として選択し、アクション決定部24に供給して、処理はリターンする。
また、ステップS54において、オープン端が検出されなかったと判定された場合、すなわち、オープン端検出部37から目標選択部31に対して、オープン端が供給されなかった場合、処理は、ステップS56に進み、分岐構造検出部36は、モデル記憶部22に記憶された拡張HMMに基づき、拡張HMMの状態の中から、分岐構造の状態を検出して、処理は、ステップS57に進む。
ステップS57では、目標選択部31は、分岐構造の状態が検出されたかどうかを判定する。
ここで、分岐構造検出部36は、拡張HMMの状態の中から、分岐構造の状態を検出した場合、その分岐構造の状態(を表すサフィックス)を、目標選択部31に供給する。目標選択部31は、分岐構造検出部36から分岐構造の状態が供給されたかどうかによって、分岐構造の状態が検出されたかどうかを判定する。
ステップS57において、分岐構造の状態が検出されたと判定された場合、すなわち、分岐構造検出部36から目標選択部31に対して、1個以上の分岐構造の状態が供給された場合、処理は、ステップS58に進み、目標選択部31は、分岐構造検出部36からの1個以上の分岐構造の状態のうちの1つの状態を、目標状態として選択し、アクション決定部24に供給して、処理はリターンする。
すなわち、目標選択部31は、経過時間管理テーブル記憶部32の経過時間管理テーブルを参照し、分岐構造検出部36からの1個以上の分岐構造の状態の経過時間を認識する。
さらに、目標選択部31は、分岐構造検出部36からの1個以上の分岐構造の状態の中から、経過時間が最も長い状態を検出し、その状態を、目標状態として選択する。
一方、ステップS57において、分岐構造の状態が検出されなかったと判定された場合、すなわち、分岐構造検出部36から目標選択部31に対して、分岐構造の状態が供給されなかった場合、処理は、ステップS59に進み、ランダム目標生成部35が、モデル記憶部22に記憶された拡張HMMの1つの状態をランダムに選択して、目標選択部31に供給する。
さらに、ステップS59では、目標選択部31が、ランダム目標選択部35からの状態を、目標状態として選択し、アクション決定部24に供給して、処理はリターンする。
なお、オープン端検出部37によるオープン端の検出、及び、分岐構造検出部36による分岐構造の状態の検出の詳細については、後述する。
[アクションプランの算出]
図10は、図4のアクション決定部24によるアクションプランの算出を説明する図である。
図10Aは、アクションプランの算出に用いられる学習済みの拡張HMMを模式的に示している。
図10Aにおいて、丸(○)印は、拡張HMMの状態を表し、丸印の中に記載されている数字は、その丸印が表す状態のサフィックスである。また、丸印で表される状態どうしを表す矢印は、可能な状態遷移(状態遷移確率が0.0(とみなせる値)以外の状態遷移)を表す。
図10Aの拡張HMMでは、状態Siが、その状態Siに対応する観測単位の位置に配置されている。
そして、状態遷移が可能な2つの状態は、その2つの状態それぞれに対応する2つの観測単位どうしの間で、エージェントが移動することができることを表現する。したがって、拡張HMMの状態遷移を表す矢印は、アクション環境において、エージェントが移動可能な通路を表す。
ここで、図10Aにおいて、1つの観測単位の位置に、2つ(複数)の状態Si及びSi'が、一部分を重ねて配置されている場合があるが、これは、その1つの観測単位に、2つ(複数)の状態Si及びSi'が対応することを表す。
例えば、図10Aにおいて、状態S3及びS30は、1つの観測単位に対応し、状態S34及びS35も、1つの観測単位に対応する。同様に、状態S21及びS23、状態S2及びS17、状態S37及びS48、状態S31及びS32も、それぞれ、1つの観測単位に対応する。
学習データとして、構造が変化するアクション環境で得られた観測値系列とアクション系列とを用いて、拡張HMMの学習を行った場合、図10Aに示したような、1つの観測単位に、複数の状態が対応する拡張HMMが得られる。
すなわち、図10Aでは、例えば、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁又は通路のうちの一方になっている構造のアクション環境で得られた観測値系列及びアクション系列を、学習データとして用いて、拡張HMMの学習が行われている。
さらに、図10Aでは、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁又は通路のうちの他方になっている構造のアクション環境で得られた観測値系列及びアクション系列をも、学習データとして用いて、拡張HMMの学習が行われている。
その結果、図10Aの拡張HMMでは、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁になっている構造のアクション環境が、状態S21と状態S17とによって獲得されている。
すなわち、拡張HMMにおいて、状態S21及びS23に対応する観測単位の状態S21と、状態S2及びS17に対応する観測単位の状態S17との間では、状態遷移が行われないようになっており、壁があって通ることができないアクション環境の構造が獲得されている。
また、拡張HMMでは、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、通路になっている構造のアクション環境が、状態S23と状態S2とによって獲得されている。
すなわち、拡張HMMにおいて、状態S21及びS23に対応する観測単位の状態S23と、状態S2及びS17に対応する観測単位の状態S2との間では、状態遷移が行われるようになっており、通路として通ることができるアクション環境の構造が獲得されている。
以上のように、拡張HMMでは、アクション環境の構造が変化する場合でも、そのような構造が変化するアクション環境の構造を獲得することができる。
図10B、及び、図10Cは、アクション決定部24が算出するアクションプランの例を示している。
図10B、及び、図10Cでは、図10Aの状態S30(又は、状態S3)が、目標状態になっており、エージェントがいる観測単位に対応する状態S28を、現在状態として、現在状態から目標状態に至るまでのアクションプランが算出されている。
図10Bは、時刻t=1に、アクション決定部24が算出するアクションプランPL1を示している。
図10Bでは、図10Aの状態S28,S23,S2,S16,S22,S29,S30の系列を、現在状態から目標状態に到達する最尤状態系列として、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列が、アクションプランPL1として算出されている。
アクション決定部24は、アクションプランPL1のうちの、最初の状態S28から、次の状態S23に移動するアクションを、決定アクションとし、エージェントは、決定アクションを行う。
その結果、エージェントは、現在状態である状態S28に対応する観測単位から、状態S21及びS23に対応する観測単位に向かって、右方向に移動し(図3AのアクションU2を行い)、時刻tは、時刻t=1から1時刻経過した時刻t=2となる。
ここで、図10Bでは(図10Cでも同様)、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁になっている、
状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁になっている構造を獲得している状態は、上述したように、状態S21及びS23に対応する観測単位については、状態S21であり、時刻t=2では、状態認識部23において、現在状態が、状態S21であると認識される。
状態認識部23は、現在状態の直前の状態から現在状態への状態遷移のときにエージェントが行ったアクションについての、直前の状態と現在状態以外の状態との間の状態遷移を抑制し、かつ、直前の状態と現在状態との間の状態遷移を抑制しない(以下、有効にする、ともいう)ように、状態遷移の抑制を行う抑制子を更新する。
すなわち、いまの場合、現在状態は、状態S21であり、直前の状態は、状態S28であるから、直前の状態S28と現在状態S21以外の状態との間の状態遷移、すなわち、例えば、時刻t=1に得られたアクションプランPL1の、最初の状態S28と次の状態S23との間の状態遷移等を抑制するように、抑制子が更新される。
さらに、直前の状態S28と現在状態S21との間の状態遷移を有効にするように、抑制子が更新される。
そして、時刻t=2では、アクション決定部24は、現在状態を、状態S21とするとともに、目標状態を、状態S30として、現在状態から目標状態に到達する最尤状態系列S21,S28,S27,S26,S25,S20,S15,S10,S1,S17,S16,S22,S29,S30を求め、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列を、アクションプランとして算出する。
さらに、アクション決定部24は、アクションプランのうちの、最初の状態S21から、次の状態S28に移動するアクションを、決定アクションとし、エージェントは、決定アクションを行う。
その結果、エージェントは、現在状態である状態S21に対応する観測単位から、状態S28に対応する観測単位に向かって、左方向に移動し(図3AのアクションU4を行い)、時刻tは、時刻t=2から1時刻経過した時刻t=3となる。
時刻t=3では、状態認識部23において、現在状態が、状態S28であると認識される。
そして、時刻t=3では、アクション決定部24は、現在状態を、状態S28とするとともに、目標状態を、状態S30として、現在状態から目標状態に到達する最尤状態系列を求め、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列を、アクションプランとして算出する。
図10Cは、時刻t=3に、アクション決定部24が算出するアクションプランPL3を示している。
図10Cでは、状態S28,S27,S26,S25,S20,S15,S10,S1,S17,S16,S22,S29,S30の系列が、最尤状態系列として求められ、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列が、アクションプランPL3として算出されている。
すなわち、時刻t=3では、現在状態が、時刻t=1の場合と同一の状態S28であり、目標状態も、時刻t=1の場合と同一の状態S30であるのにもかかわらず、時刻t=1の場合のアクションプランPL1と異なるアクションプランPL3が算出される。
これは、時刻t=2において、上述したように、状態S28と状態S23との間の状態遷移を抑制するように、抑制子が更新され、これにより、時刻t=3では、最尤状態系列を求めるにあたって、現在状態である状態S28からの状態遷移の遷移先として、状態S23を選択することが抑制され、状態S23以外の、状態S28からの状態遷移が可能な状態である状態S27が選択されたためである。
アクション決定部24は、アクションプランPL3の算出後、そのアクションプランPL3のうちの、最初の状態S28から、次の状態S27に移動するアクションを、決定アクションとし、エージェントは、決定アクションを行う。
その結果、エージェントは、現在状態である状態S28に対応する観測単位から、状態S27に対応する観測単位に向かって、下方向に移動し(図3AのアクションU3を行い)、以下、同様に、各時刻に、アクションプランの算出が行われる。
[抑制子を用いた状態遷移確率の補正]
図11は、図8のステップS37で、アクション決定部24が行う、抑制子を用いての、拡張HMMの状態遷移確率の補正を説明する図である。
アクション決定部24は、図11に示すように、拡張HMMの状態遷移確率Altmに、抑制子Ainhibitを乗算することにより、拡張HMMの状態遷移確率Altmを補正し、補正後の状態遷移確率Altmである補正遷移確率Astmを求める。
そして、アクション決定部24は、補正遷移確率Astmを、拡張HMMの状態遷移確率として用いて、アクションプランを算出する。
ここで、アクションプランの算出にあたり、その算出に用いる状態遷移確率を、抑制子で補正するのは、以下のような理由による。
すなわち、学習後の拡張HMMの状態の中には、1つのアクションが行われた場合に異なる状態への状態遷移が可能な状態である、分岐構造の状態が生じることがある。
例えば、上述の図10Aの状態S29では、左方向に移動するアクションU4(図3A)が行われた場合に、左側の状態S3への状態遷移が行われることと、同じく左側の状態S30への状態遷移が行われることとがある。
したがって、状態S29では、ある1つのアクションが行われた場合に異なる状態遷移が生じることがあり、状態S29は、分岐構造の状態である。
抑制子は、ある1つのアクションについて、異なる状態遷移が生じることがあるときに、すなわち、例えば、ある1つのアクションが行われた場合に、ある状態への状態遷移が生じることがあり、他の状態への状態遷移も生じることがあるときに、生じうる異なる状態遷移のうちの、1つの状態遷移だけが生じるように、その1つの状態遷移以外の状態遷移が生じることを抑制する。
すなわち、ある1つのアクションについて生じうる異なる状態遷移を、分岐構造と呼ぶこととすると、構造が変化するアクション環境から得られた観測値系列及びアクション系列を、学習データとして、拡張HMMの学習を行った場合、拡張HMMは、アクション環境の構造の変化を、分岐構造として獲得し、その結果、分岐構造の状態が生じる。
このように、拡張HMMでは、分岐構造の状態が生じることによって、アクション環境の構造が様々な構造に変化する場合であっても、そのアクション環境の様々な構造のすべてを獲得する。
ここで、拡張HMMが獲得する、構造が変化するアクション環境の様々な構造は、忘却せずに、長期的に記憶しておくべき情報であることから、そのような情報を獲得した拡張HMM(の、特に、状態遷移確率)を、長期記憶ともいう。
現在状態が、分岐構造の状態である場合、現在状態からの状態遷移として、分岐構造としての異なる状態遷移のうちのいずれの状態遷移が可能であるかは、構造が変化するアクション環境の現在の構造による。
すなわち、長期記憶としての拡張HMMの状態遷移確率からすれば、可能な状態遷移であっても、構造が変化するアクション環境の現在の構造によっては、行うことができないことがある。
そこで、エージェントは、長期記憶とは独立に、エージェントの現在の状況の認識によって得られる現在状態に基づき、抑制子を更新する。そして、エージェントは、抑制子を用いて、長期記憶としての拡張HMMの状態遷移確率を補正することで、アクション環境の現在の構造において行うことができない状態遷移を抑制し、かつ、行うことができた状態遷移を有効にする、補正後の状態遷移確率である補正遷移確率を求め、その補正遷移確率を用いて、アクションプランを算出する。
ここで、補正遷移確率は、長期記憶としての状態遷移確率を、各時刻の現在状態に基づいて更新される抑制子を用いて補正することにより、各時刻ごとに得られる情報であり、短期的に記憶しておけばよい情報であるから、短期記憶ともいう。
アクション決定部24(図4)では、抑制子を用いて、拡張HMMの状態遷移確率を補正し、補正遷移確率を求める処理が、以下のようにして行われる。
すなわち、拡張HMMのすべての状態遷移確率Altmを、図6Bに示したように、3次元のテーブルで表現する場合、抑制子Ainhibitも、拡張HMMの状態遷移確率Altmの3次元のテーブルと同一サイズの3次元のテーブルで表現される。
ここで、拡張HMMの状態遷移確率Altmを表現する3次元のテーブルを、状態遷移確率テーブルともいう。また、抑制子Ainhibitを表現する3次元のテーブルを抑制子テーブルともいう。
拡張HMMの状態の数がN個で、エージェントが可能なアクションの数がM個である場合、状態遷移確率テーブルは、横×縦×奥行きがN×N×M要素の3次元のテーブルとなる。したがって、この場合、抑制子テーブルも、N×N×M要素の3次元のテーブルとなる。
なお、抑制子Ainhibitの他、補正遷移確率Astmも、N×N×M要素の3次元のテーブルで表現される。補正遷移確率Astmを表現する3次元のテーブルを、補正遷移確率テーブルともいう。
例えば、いま、状態遷移確率テーブルの、上からi番目の、左からj番目で、奥行き方向に手前側からm番目の位置を(i,j,m)と表すこととすると、アクション決定部24は、式(15)に従い、状態遷移確率テーブルの位置(i,j,m)の要素としての状態遷移確率Altm(=aij(Um))と、抑制子テーブルの位置(i,j,m)の要素としての抑制子Ainhibitとを乗算することで、補正遷移確率テーブルの位置(i,j,m)の要素としての補正遷移確率Astmを求める。
なお、抑制子は、エージェントの状態認識部23(図4)において、各時刻に、以下のように更新される。
すなわち、状態認識部23は、現在状態Sjの直前の状態Siから現在状態Sjへの状態遷移のときにエージェントが行ったアクションUmについての、直前の状態Siと現在状態Sj以外の状態との間の状態遷移を抑制し、かつ、直前の状態Siと現在状態Sjとの間の状態遷移を抑制しない(有効にする)ように、抑制子を更新する。
具体的には、抑制子テーブルを、アクション軸の位置mで、アクション軸に垂直な平面で切断して得られる平面を、アクションUmについての抑制子平面ということとすると、状態認識部23は、アクションUmについての抑制子平面の、横×縦がN×N個の抑制子のうちの、上からi番目で、左からj番目の位置(i,j)の要素としての抑制子に、1.0を上書きし、上からi番目の1行にあるN個の抑制子のうちの、位置(i,j)以外の位置の要素としての抑制子に、0.0を上書きする。
その結果、抑制子を用いて、状態遷移確率を補正して得られる補正遷移確率によれば、分岐構造の状態からの状態遷移(分岐構造)のうちの、直近の経験、つまり、間近に行われた状態遷移だけを行うことが可能となり、他の状態遷移は、行うことができなくなる。
ここで、拡張HMMは、エージェントが現在までに経験した(学習によって獲得した)アクション環境の構造を表現する。さらに、拡張HMMは、アクション環境の構造が様々な構造に変化する場合には、そのアクション環境の様々な構造を、分岐構造として表現する。
一方、抑制子は、長期記憶である拡張HMMが有する分岐構造である複数の状態遷移のうちのいずれの状態遷移が、アクション環境の現在の構造をモデル化しているのかを表現する。
したがって、長期記憶である拡張HMMの状態遷移確率に、抑制子を乗算することにより、状態遷移確率を補正し、その補正後の状態遷移確率である補正遷移確率(短期記憶)を用いて、アクションプランを算出することにより、アクション環境の構造が変化した場合であっても、その変化後の構造を、拡張HMMで再学習することなく、変化後の構造(現在の構造)を考慮したアクションプランを得ることができる。
すなわち、構造が変化した後のアクション環境の構造が、拡張HMMが既に獲得している構造である場合には、現在状態に基づいて、抑制子を更新し、その更新後の抑制子を用いて、拡張HMMの状態遷移確率を補正することにより、拡張HMMの再学習を行うことなく、アクション環境の変化後の構造を考慮したアクションプランを得ることができる。
つまり、アクション環境の構造の変化に適応したアクションプランを、計算コストを抑えて、高速、かつ効率的に得ることができる。
なお、アクション環境が、拡張HMMが獲得していない構造に変化した場合に、その変化後の構造のアクション環境において、適切なアクションを決定するには、変化後のアクション環境において観測される観測値系列及びアクション系列を用いて、拡張HMMの再学習を行う必要がある。
また、アクション決定部24において、拡張HMMの状態遷移確率を、そのまま用いて、アクションプランを算出する場合には、アクション環境の現在の構造が、分岐構造としての複数の状態遷移のうちの1つの状態遷移だけを行うことができ、他の状態遷移を行うことができない構造になっていても、Vitarbiアルゴリズムに従い、分岐構造としての複数の状態遷移のすべてを行うことができることとして、現在状態stから目標状態Sgoalに至るまでの最尤状態系列の状態遷移が生じるときに行われるアクション系列が、アクションプランとして算出される。
一方、アクション決定部24において、拡張HMMの状態遷移確率を、抑制子により補正し、その補正後の状態遷移確率である補正遷移確率を用いて、アクションプランを算出する場合には、抑制子によって抑制される状態遷移は行うことができないこととして、そのような状態遷移がない、現在状態stから目標状態Sgoalに至るまでの最尤状態系列の状態遷移が生じるときに行われるアクション系列を、アクションプランとして算出することができる。
すなわち、例えば、上述した図10Aでは、状態S28は、右方向に移動するアクションU2が行われたときに、状態S21にも、状態S23にも、状態遷移が可能な分岐構造の状態になっている。
また、図10では、上述したように、時刻t=2において、状態認識部23は、現在状態S21の直前の状態S28から現在状態S21への状態遷移のときにエージェントが行った、右方向に移動するアクションU2についての、直前の状態S28から現在状態S21以外の状態S23への状態遷移を抑制し、かつ、直前の状態S28から現在状態S21への状態遷移を有効にするように、抑制子を更新する。
その結果、図10Cの時刻t=3では、現在状態が状態S28で、目標状態が、状態S30であり、現在状態及び目標状態が、いずれも、図10Bの時刻t=1の場合と同一であるにもかかわらず、抑制子によって、右方向に移動するアクションU2が行われたときの、状態S28から状態S21以外の状態S23への状態遷移が抑制されるために、現在状態から目標状態に到達する最尤状態系列として、時刻t=1の場合と異なる状態系列、すなわち、状態S28から状態S23への状態遷移が行われない状態系列S28,S27,S26,S25,・・・,S30が求められ、その状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列が、アクションプランPL3として算出される。
ところで、抑制子の更新は、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制するように行われる。
すなわち、現在状態の直前の状態から現在状態への状態遷移のときにエージェントが行ったアクションについての、直前の状態と現在状態以外の状態との間の状態遷移(直前の状態から現在状態以外の状態への状態遷移)を抑制し、かつ、直前の状態と現在状態との間の状態遷移(直前の状態から現在状態への状態遷移)を有効にするように、抑制子が更新される。
抑制子の更新として、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制することしか行わない場合には、抑制子が更新されることによって抑制された状態遷移は、エージェントが、その後に、その状態遷移を経験しない限り、抑制されたままとなる。
エージェントが次に行うべきアクションの決定が、上述したように、アクション決定部24において、抑制子によって拡張HMMの状態遷移確率を補正して得られる補正遷移確率を用いて算出されるアクションプランに従って行われる場合、抑制子によって抑制されている状態遷移が生じるアクションを含むアクションプランが算出されることはないため、次に行うべきアクションの決定を、アクションプランに従って行う方法以外の方法で行うことによって、又は偶然に、エージェントが、抑制子によって抑制されている状態遷移を経験しないと、抑制子によって抑制されている状態遷移は、抑制されたままとなる。
したがって、アクション環境の構造が、抑制子によって抑制されている状態遷移を行うことができない構造から、その状態遷移を行うことができる構造に変化しても、エージェントが、いれば運良く、抑制子によって抑制されている状態遷移を経験するまでは、その状態遷移が生じるアクションを含むアクションプランを算出することができない。
そこで、状態認識部23は、抑制子の更新として、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制することの他、時間の経過に応じて、状態遷移の抑制を緩和することを行う。
すなわち、状態認識部23は、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制するように、抑制子を更新する他、さらに、時間の経過に応じて、状態遷移の抑制を緩和するように、抑制子を更新する。
具体的には、状態認識部23は、時間の経過に応じて、抑制子が、1.0に収束するように、例えば、式(16)に従い、時刻tの抑制子Ainhibit(t)を、時刻t+1の抑制子Ainhibit(t+1)に更新する。
ここで、式(16)において、係数cは、0.0より大で1.0より小さい値であり、係数cが大であるほど、抑制子は、より速く、1.0に収束する。
式(16)によれば、一度抑制された状態遷移(抑制子が0.0にされた状態遷移)の抑制が、時間の経過に伴って緩和されていき、エージェントが、その状態遷移を経験しなくても、その状態遷移を生じるアクションを含むアクションプランが算出されるようになる。
ここで、時間の経過に応じて、状態遷移の抑制を緩和するように行う抑制子の更新を、以下、自然減衰による忘却に対応する更新ともいう。
[抑制子の更新]
図12は、図8のステップS35で、図4の状態認識部23が行う抑制子の更新の処理を説明するフローチャートである。
なお、抑制子は、図8の認識アクションモードの処理のステップS31において、時刻tが1に初期化されるときに、初期値である1.0に初期化される。
抑制子の更新の処理では、ステップS71において、状態認識部23は、モデル記憶部22に記憶された抑制子Ainhibitのすべての、自然減衰による忘却に対応する更新、すなわち、式(16)に従った更新を行い、処理は、ステップS72に進む。
ステップS72では、状態認識部23は、現在状態Sjの直前の状態Siが分岐構造の状態であり、かつ、現在状態Sjが、直前の状態Siである分岐構造の状態から、同一のアクションが行われることによって状態遷移が可能な異なる状態のうちの1つの状態であるかどうかを、モデル記憶部22に記憶された拡張HMM(の状態遷移確率)に基づいて判定する。
ここで、直前の状態Siが分岐構造の状態であるかどうかは、分岐構造検出部36(図4)が、分岐構造の状態を検出する場合と同様にして判定することができる。
ステップS72において、直前の状態Siが分岐構造の状態でないと判定されるか、又は、直前の状態Siが分岐構造の状態であるが、現在状態Sjが、直前の状態Siである分岐構造の状態から、同一のアクションが行われることによって状態遷移が可能な異なる状態のうちの1つの状態でないと判定された場合、処理は、ステップS73及びS74をスキップして、リターンする。
また、ステップS72において、直前の状態Siが分岐構造の状態であり、かつ、現在状態Sjが、直前の状態Siである分岐構造の状態から、同一のアクションが行われることによって状態遷移が可能な異なる状態のうちの1つの状態であると判定された場合、処理は、ステップS73に進み、状態認識部23は、モデル記憶部22に記憶された抑制子Ainhibitのうちの、直前のアクションUmについての、直前の状態Siから、現在状態Sjへの状態遷移の抑制子(抑制子テーブルの位置(i,j,m)の抑制子)hij(Um)を、1.0に更新して、処理は、ステップS74に進む。
ステップS74では、状態認識部23は、モデル記憶部22に記憶された抑制子Ainhibitのうちの、直前のアクションUmについての、直前の状態Siから、現在状態Sj以外の状態Sj'への状態遷移の抑制子(抑制子テーブルの位置(i,j',m)の抑制子)hij'(Um)を、0.0に更新して、処理はリターンする。
ここで、従来の行動決定手法では、HMM等の状態遷移確率モデルの学習は、静的な構造をモデル化することを前提として行われるため、状態遷移確率モデルの学習後に、学習の対象の構造が変化した場合には、その変化後の構造を対象として、状態遷移確率モデルの再学習を行う必要があり、学習の対象の構造の変化に対処する計算コストが大であった。
これに対して、図4のエージェントでは、拡張HMMが、アクション環境の構造の変化を、分岐構造として獲得し、直前の状態が分岐構造の状態である場合には、直前の状態から現在状態への状態遷移のときにエージェントが行ったアクションについての、直前の状態と現在状態以外の状態との間の状態遷移を抑制するように、抑制子を更新し、その更新後の抑制子を用いて、拡張HMMの状態遷移確率を補正して、補正後の状態遷移確率である補正遷移確率に基づき、アクションプランを算出する。
したがって、アクション環境の構造が変化する場合に、その変化する構造に適応(追従)するアクションプランを、少ない計算コストで(拡張HMMの再学習をすることなしに)算出することができる。
また、抑制子は、時間の経過に応じて、状態遷移の抑制を緩和するように更新されるので、過去に抑制された状態遷移を、エージェントが偶然に経験しなくても、時間の経過とともに、過去に抑制された状態遷移が生じるアクションを含むアクションプランを算出することが可能となり、その結果、アクション環境の構造が、過去に、状態遷移を抑制したときの構造と異なる構造に変化した場合に、その変化後の構造に適切なアクションプランを、迅速に算出することが可能となる。
[オープン端の検出]
図13は、図4のオープン端検出部37が検出するオープン端である拡張HMMの状態を説明する図である。
オープン端とは、大雑把には、拡張HMMにおいて、ある状態を遷移元として、エージェントが未経験の状態遷移が起こり得ることがあらかじめ分かっている、その遷移元の状態である。
具体的には、ある状態の状態遷移確率と、その状態と同一の観測値を観測する観測確率が割り当てられた(0.0(とみなされる値)でない値になっている)他の状態の状態遷移確率とを比較した場合に、あるアクションを行ったときに次の状態に状態遷移することが可能なことが分かるにも関わらず、まだ、その状態で、そのアクションを行ったことがないため、状態遷移確率が割り当てられておらず(0.0(とみなされる値)になっており)、状態遷移ができないことになっている状態が、オープン端に該当する。
したがって、拡張HMMにおいて、所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、所定の観測値と同一の観測値が観測される他の状態を検出すれば、その、他の状態が、オープン端である。
オープン端は、概念的には、図13に示すように、例えば、エージェントが部屋に置かれ、その部屋のある範囲を対象とした学習が行われることによって、拡張HMMが獲得する構造の端部(部屋の中の学習済みの範囲の端部)や、エージェントが置かれた部屋の全範囲を対象とした学習が行われた後、その部屋に隣接して、エージェントが移動可能な新しい部屋を追加することによって現れる、新しい部屋への入り口等に対応する状態である。
オープン端を検出すると、拡張HMMが獲得している構造のどの部分の先に、エージェントが未知の領域が広がっているかを知ることができる。したがって、オープン端を目標状態として、アクションプランを算出することにより、エージェントは、積極的に未知の領域に踏み込むアクションを行うようになる。その結果、エージェントは、より広くアクション環境の構造を学習し(アクション環境の構造の学習のための学習データとなる観測系列及びアクション系列を獲得し)、拡張HMMにおいて、構造を獲得していない曖昧な部分(アクション環境の、オープン端となっている状態に対応する観測単位付近の構造)を補強するために必要な経験を効率的に得ることが可能になる。
オープン端検出部37は、オープン端を検出するのに、まず、アクションテンプレートを生成する。
オープン端検出部37は、アクションテンプレートの生成にあたり、拡張HMMの観測確率B={bi(Ok)}を閾値処理し、各観測値Okに対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップする。
図14は、オープン端検出部37が、観測値Okが閾値以上の確率で観測される状態Siをリストアップする処理を説明する図である。
図14Aは、拡張HMMの観測確率Bの例を示している。
すなわち、図14Aは、状態Siの数Nが5個で、観測値Okの数Mが3個の拡張HMMの観測確率Bの例を示している。
オープン端検出部37は、閾値を、例えば、0.5等として、閾値以上の観測確率Bを検出する閾値処理を行う。
この場合、図14Aでは、状態S1については、観測値O3が観測される観測確率b1(O3)=0.7が、状態S2については、観測値O2が観測される観測確率b2(O2)=0.8が、状態S3については、観測値O3が観測される観測確率b3(O3)=0.8が、状態S4については、観測値O2が観測される観測確率b4(O2)=0.7が、状態S5については、観測値O1が観測される観測確率b5(O1)=0.9が、それぞれ、閾値処理によって検出される。
その後、オープン端検出部37は、各観測値O1,O2,O3に対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップ検出する。
図14Bは、観測値O1,O2,O3それぞれに対してリストアップされる状態Siを示している。
観測値O1に対しては、その観測値O1が閾値以上の確率で観測される状態として、状態S5がリストアップされ、観測値O2に対しては、その観測値O2が閾値以上の確率で観測される状態として、状態S2及びS4がリストアップされる。また、観測値O3に対して、その観測値O3が閾値以上の確率で観測される状態として、状態S1及びS3がリストアップされる。
その後、オープン端検出部37は、拡張HMMの状態遷移確率A={aij(Um)}を用い、各観測値Okについて、その観測値Okに対してリストアップされた状態Siからの状態遷移のうちの、状態遷移確率aij(Um)が最大の状態遷移の状態遷移確率状態遷移確率aij(Um)に対応する値である遷移確率対応値を、アクションUmごとに算出し、各観測値Okについて、アクションUmごとに算出された遷移確率対応値を、観測値Okが観測されたときにアクションUmが行われるアクション確率として、アクション確率を要素とする行列であるアクションテンプレートCを生成する。
すなわち、図15は、観測値Okに対してリストアップされた状態Siを用いて、アクションテンプレートCを生成する方法を説明する図である。
オープン端検出部37は、3次元の状態遷移確率テーブルにおいて、観測値Okに対してリストアップされた状態Siからの状態遷移の、列(横)方向(j軸方向)に並ぶ状態遷移確率から、最大の状態遷移確率を検出する。
すなわち、例えば、いま、観測値O2に注目し、観測値O2に対して、状態S2及びS4がリストアップされていることとする。
この場合、オープン端検出部37は、3次元の状態遷移確率テーブルを、i軸のi=2の位置で、i軸に垂直な平面で切断して得られる、状態S2についてのアクション平面に注目し、その状態S2についてのアクション平面の、アクションU1を行ったときに生じる状態S2からの状態遷移の状態遷移確率a2,j(U1)の最大値を検出する。
すなわち、オープン端検出部37は、状態S2についてのアクション平面の、アクション軸の、m=1の位置に、j軸方向に並ぶ状態遷移確率a2,1(U1),a2,2(U1),・・・,a2,N(U1)の中の最大値を検出する。
同様に、オープン端検出部37は、状態S2についてのアクション平面から、他のアクションUmを行ったときに生じる状態S2からの状態遷移の状態遷移確率の最大値を検出する。
さらに、オープン端検出部37は、観測値O2に対してリストアップされている、他の状態である状態S4についても、同様に、状態S4についてのアクション平面から、各アクションUmを行ったときに生じる状態S4からの状態遷移の状態遷移確率の最大値を検出する。
以上のように、オープン端検出部37は、観測値O2に対してリストアップされた状態S2及びS4のそれぞれについて、各アクションUmが行われたときに生じる状態遷移の状態遷移確率の最大値を検出する。
その後、オープン端検出部37は、上述したようにして検出された状態遷移確率の最大値を、アクションUmごとに、観測値O2に対してリストアップされた状態S2及びS4について、平均化し、その平均化によって得られる平均値を、観測値O2についての、状態遷移確率の最大値に対応する遷移確率対応値とする。
観測値O2についての、遷移確率対応値は、アクションUmごとに求められるが、この、観測値O2について得られる、アクションUmごとの遷移確率対応値は、観測値O2が観測されたときに、アクションUmが行われる確率(アクション確率)を表す。
オープン端検出部37は、他の観測値Okについても、同様にして、アクションUmごとのアクション確率としての遷移確率対応値を求める。
そして、オープン端検出部37は、観測値Okが観測されたときに、アクションUmが行われるアクション確率を、上からk番目で、左からm番目の要素とした行列を、アクションテンプレートCとして生成する。
したがって、アクションテンプレートCは、行数が、観測値Okの数Kに等しく、列数が、アクションUmの数Mに等しいK行M列の行列となる。
オープン端検出部37は、アクションテンプレートCの生成後、そのアクションテンプレートCを用いて、観測確率に基づくアクション確率Dを算出する。
図16は、観測確率に基づくアクション確率Dを算出する方法を説明する図である。
いま、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)を、第i行第k列の要素とする行列を、観測確率行列Bということとすると、観測確率行列Bは、行数が、状態Siの数Nに等しく、列数が観測値Okの数Kに等しいN行K列の行列となる。
オープン端検出部37は、式(17)に従い、N行K列の観測確率行列Bに、K行M列の行列であるアクションテンプレートCを乗算することにより、観測値Okが観測される状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、観測確率に基づくアクション確率Dを算出する。
オープン端検出部37は、以上のようにして、観測確率に基づくアクション確率Dを算出する他、状態遷移確率に基づくアクション確率Eを算出する。
図17は、状態遷移確率に基づくアクション確率Eを算出する方法を説明する図である。
オープン端検出部37は、i軸、j軸、及び、アクション軸からなる3次元の状態遷移確率テーブルAの、i軸方向の各状態Siについて、状態遷移確率aij(Um)を、アクションUmごとに加算することで、状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、状態遷移確率に基づくアクション確率Eを算出する。
すなわち、オープン端検出部37は、i軸、j軸、及び、アクション軸からなる状態遷移確率テーブルAの、水平方向(列方向)に並ぶ状態遷移確率aij(Um)の総和、つまり、i軸のある位置iと、アクション軸のある位置mに注目した場合に、点(i,m)を通るj軸に平行な直線上に並ぶ状態遷移確率aij(Um)の総和を求め、その総和を、行列の第i行第m列の要素とすることで、N行M列の行列である、状態遷移確率に基づくアクション確率Eを算出する。
オープン端検出部37は、以上のようにして、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとを算出すると、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとの差分である差分アクション確率Fを、式(18)に従って算出する。
差分アクション確率Fは、観測確率に基づくアクション確率Dや、状態遷移確率に基づくアクション確率Eと同様に、N行M列の行列となる。
図18は、差分アクション確率Fを模式的に示す図である。
図18において、小さな正方形は、行列の要素を表している。また、模様を付していない正方形は、0.0(とみなせる値)になっている要素を表し、黒で塗りつぶしてある正方形は、0.0(とみなせる値)でない値になっている要素を表している。
差分アクション確率Fによれば、観測値Okが観測される状態として、複数の状態が存在する場合に、その複数の状態の一部の状態(エージェントがアクションUmを行ったことがある状態)からは、アクションUmを行うことができることが分かっているが、そのアクションUmが行われたときに生じる状態遷移が、状態遷移確率aij(Um)に反映されていない、残りの状態(エージェントがアクションUmを行ったことがない状態)、つまり、オープン端を検出することができる。
すなわち、状態Siの状態遷移確率aij(Um)に、アクションUmが行われたときに生じる状態遷移が反映されている場合、観測確率に基づくアクション確率Dの第i行第m列の要素と、状態遷移確率に基づくアクション確率Eの第i行第m列の要素とは、同じような値となる。
一方、状態Siの状態遷移確率aij(Um)に、アクションUmが行われたときに生じる状態遷移が反映されていない場合、観測確率に基づくアクション確率Dの第i行第m列の要素は、状態Siと同一の観測値が観測される、アクションUmが行われたことがある状態の状態遷移確率の影響によって、0.0とはみなせない、ある程度の値となるが、状態遷移確率に基づくアクション確率Eの第i行第m列の要素は、0.0(0.0とみなせる小さい値を含む)となる。
したがって、状態Siの状態遷移確率aij(Um)に、アクションUmが行われたときに生じる状態遷移が反映されていない場合、差分アクション確率Fの第i行第m列の要素は、値(絶対値)が、0.0とみなせない値となるので、差分アクション確率Fにおいて、0.0とみなせない値になっている要素を検出することで、オープン端、及び、オープン端で行ったことがないアクションを検出することができる。
すなわち、差分アクション確率Fにおいて、第i行第m列の要素の値が、0.0とみなせない値となっている場合、オープン端検出部37は、状態Siを、オープン端として検出するとともに、アクションUmを、オープン端である状態Siで行ったことがないアクションとして検出する。
図19は、図4のオープン端検出部37が、図9のステップS53で行うオープン端の検出の処理を説明するフローチャートである。
ステップS81において、オープン端検出部37は、モデル記憶部22(図4)に記憶された拡張HMMの観測確率B={bi(Ok)}を閾値処理し、これにより、図14で説明したように、各観測値Okに対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップする。
ステップS81の後、処理は、ステップS82に進み、オープン端検出部37は、図15で説明したように、モデル記憶部22に記憶された拡張HMMの状態遷移確率A={aij(Um)}を用い、各観測値Okについて、その観測値Okに対してリストアップされた状態Siからの状態遷移のうちの、状態遷移確率aij(Um)が最大の状態遷移の状態遷移確率aij(Um)に対応する値である遷移確率対応値を、アクションUmごとに算出し、各観測値Okについて、アクションUmごとに算出された遷移確率対応値を、観測値Okが観測されたときにアクションUmが行われるアクション確率として、アクション確率を要素とする行列であるアクションテンプレートCを生成する。
その後、処理は、ステップS82からステップS83に進み、オープン端検出部37は、式(17)に従い、観測確率行列Bに、アクションテンプレートCを乗算することにより、観測確率に基づくアクション確率Dを算出し、処理は、ステップS84に進む。
ステップS84では、オープン端検出部37は、図17で説明したようにして、状態遷移確率テーブルAの、i軸方向の各状態Siについて、状態遷移確率aij(Um)を、アクションUmごとに加算することで、状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、状態遷移確率に基づくアクション確率Eを算出する。
そして、処理は、ステップS84からステップS85に進み、オープン端検出部37は、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとの差分である差分アクション確率Fを、式(18)に従って算出し、処理は、ステップS86に進む。
ステップS86では、オープン端検出部37は、差分アクション確率Fを閾値処理することで、その差分アクション確率Fにおいて、値が所定の閾値以上の要素を、検出の対象の検出対象要素として検出する。
さらに、オープン端検出部37は、検出対象要素の行iと列mとを検出し、状態Siをオープン端として検出するとともに、アクションUmを、オープン端Siにおいて行ったことがない未経験アクションとして検出して、リターンする。
エージェントは、オープン端において、未経験アクションを行うことにより、オープン端の先に続く未知の領域を開拓することができる。
ここで、従来の行動決定手法では、エージェントの目標は、エージェントの経験を考慮せずに、既知の領域(学習済みの領域)と、未知の領域(未学習の領域)とを対等に(区別なく)扱って決定される。このため、未知の領域の経験を積むのに、多くのアクションを行う必要があり、その結果、アクション環境の構造を広く学習するのに、多くの試行と多大な時間を要していた。
これに対して、図4のエージェントでは、オープン端を検出し、そのオープン端を目標状態として、アクションを決定するので、アクション環境の構造を、効率的に学習することができる。
すなわち、オープン端は、その先に、エージェントが経験していない未知の領域が広がっている状態であるから、オープン端を検出し、そのオープン端を目標状態としてアクションを決定することにより、エージェントは、積極的に未知の領域に踏み込むことができる。これにより、エージェントは、アクション環境の構造を、より広く学習するための経験を効率的に積むことができる。
[分岐構造の状態の検出]
図20は、図4の分岐構造検出部36による分岐構造の状態の検出の方法を説明する図である。
拡張HMMは、アクション環境において、構造が変化する部分を、分岐構造の状態として獲得する。エージェントがすでに経験した構造の変化に対応する分岐構造の状態は、長期記憶である拡張HMMの状態遷移確率を参照することで検出することができる。そして、分岐構造の状態が検出されれば、エージェントは、アクション環境において、構造が変化する部分の存在を認識することができる。
アクション環境において、構造が変化する部分が存在する場合、そのような部分については、定期的、又は、不定期に、現在の構造を、積極的に確認し、抑制子、ひいては、短期記憶である補正遷移確率に反映しておくことが望ましい。
そこで、図4のエージェントでは、分岐構造検出部36において、分岐構造の状態を検出し、目標選択部31において、分岐構造の状態を、目標状態に選択することが可能となっている。
分岐構造検出部36は、図20に示すように、分岐構造の状態を検出する。
すなわち、状態遷移確率テーブルAの各アクションUmについての状態遷移確率平面は、各行の水平方向(列方向)の総和が1.0になるように正規化されている。
したがって、アクションUmについての状態遷移確率平面において、ある行iに注目した場合に、状態Siが分岐構造の状態でないときには、第i行の状態遷移確率aij(Um)の最大値は、1.0、又は、1.0に極めて近い値になる。
一方、状態Siが分岐構造の状態であるときには、第i行の状態遷移確率aij(Um)の最大値は、図20に示す0.6や0.5のように、1.0より十分小さく、かつ、総和が1.0の状態遷移確率を状態の数Nで均等に分けた場合の値(平均値)1/Nよりも大きくなる。
そこで、分岐構造検出部36は、式(19)に従い、各アクションUmについての状態遷移確率平面の各行iの状態遷移確率aij(Um)の最大値が、1.0より小さい閾値amax_thより小で、平均値1/Nより大である場合に、状態Siを、分岐構造の状態として検出する。
ここで、式(19)において、Aijmは、3次元の状態遷移確率テーブルAにおいて、i軸方向の位置が上からi番目で、j軸方向の位置が左からj番目で、アクション軸方向の位置が手前からm番目の状態遷移確率aij(Um)を表す。
また、式(19)において、max(Aijm)は、状態遷移確率テーブルAにおいて、j軸方向の位置が左からS番目(状態Siからの状態遷移の遷移先の状態が、状態S)で、アクション軸方向の位置が手前からU番目(状態Siからの状態遷移が生じるときに行われるアクションが、アクションU)の、N個の状態遷移確率A1,S,UないしAN,S,U(a1,S(U)ないしaN,S(U))の中の最大値を表す。
なお、式(19)において、閾値amax_thは、分岐構造の状態の検出の敏感さを、どの程度にするかに応じて、1/N<amax_th<1.0の範囲で調整することができ、閾値amax_thを、1.0に近づけるほど、分岐構造の状態を、敏感に検出することができる。
分岐構造検出部36は、1以上の分岐構造の状態を検出した場合、図9で説明したように、その1以上の分岐構造の状態を、目標選択部31に供給する。
さらに、目標選択部31は、経過時間管理テーブル記憶部32の経過時間管理テーブルを参照し、分岐構造検出部36からの1個以上の分岐構造の状態の経過時間を認識する。
そして、目標選択部31は、分岐構造検出部36からの1個以上の分岐構造の状態の中から、経過時間が最も長い状態を検出し、その状態を、目標状態として選択する。
以上のように、1個以上の分岐構造の状態の中から、経過時間が最も長い状態を検出し、その状態を、目標状態として選択することで、1個以上の分岐構造の状態のそれぞれを、いわば時間的に均等に目標状態として、分岐構造の状態に対応する構造が、どのようになっているかを確認するアクションを行うことができる。
ここで、従来の行動決定手法では、分岐構造の状態に注目することなく、目標が決定されるため、分岐構造の状態ではない状態が目標とされることが多い。このため、アクション環境の最新の構造を把握しようとする場合に、無駄なアクションが行われることが多かった。
これに対して、図4のエージェントでは、分岐構造の状態を目標状態として、アクションが決定されるので、分岐構造の状態に対応する部分の最新の構造を、早期に把握し、抑制子に反映することができる。
なお、分岐構造の状態が目標状態にされた場合、エージェントは、目標状態となった分岐構造の状態(に対応する観測単位)に到達した後、その分岐構造の状態から、異なる状態に状態遷移が可能なアクションを、拡張HMMに基づいて特定し、そのアクションを行って移動することができ、これにより、分岐構造の状態に対応する部分の構造、すなわち、現在、分岐構造の状態から状態遷移が可能な状態を認識(把握)することができる。
[シミュレーション]
図21は、本件発明者が行った、図4のエージェントについてのシミュレーションで採用したアクション環境を示す図である。
すなわち、図21Aは、第1の構造のアクション環境を示しており、図21Bは、第2の構造のアクション環境を示している。
第1の構造のアクション環境では、位置pos1,pos2、及び、pos3が、通路になっており、通ることができるのに対して、第2の構造のアクション環境では、位置pos1ないしpos3が、壁になって、通ることができないようになっている。
なお、位置pos1ないしpos3のそれぞれは、個別に、通路、又は、壁にすることができる。
シミュレーションでは、第1及び第2の構造のアクション環境それぞれにおいて、反射アクションモード(図5)で、エージェントにアクションを行わせ、4000ステップ(時刻)分の学習データとなる観測系列、及び、アクション系列を得て、拡張HMMの学習を行った。
図22は、学習後の拡張HMMを模式的に示す図である。
図22において、丸(○)印は、拡張HMMの状態を表し、丸印の中に記載されている数字は、その丸印が表す状態のサフィックスである。また、丸印で表される状態どうしを表す矢印は、可能な状態遷移(状態遷移確率が0.0(とみなせる値)以外の状態遷移)を表す。
図22の拡張HMMでは、状態Siが、その状態Siに対応する観測単位の位置に配置されている。
そして、状態遷移が可能な2つの状態は、その2つの状態それぞれに対応する2つの観測単位どうしの間で、エージェントが移動することができることを表現する。したがって、拡張HMMの状態遷移を表す矢印は、アクション環境において、エージェントが移動可能な通路を表す。
ここで、図22において、1つの観測単位の位置に、2つ(複数)の状態Si及びSi'が、一部分を重複して配置されている場合があるが、これは、その1つの観測単位に、2つ(複数)の状態Si及びSi'が対応することを表す。
図22においては、図10Aの場合と同様に、状態S3及びS30が、1つの観測単位に対応し、状態S34及びS35も、1つの観測単位に対応する。同様に、状態S21及びS23、状態S2及びS17、状態S37及びS48、状態S31及びS32も、それぞれ、1つの観測単位に対応する。
また、図22では、左方向に移動するアクションU4(図3B)が行われた場合に、異なる状態S3及びS30に状態遷移が可能な状態S29、右方向に移動するアクションU2が行われた場合に、異なる状態S34及びS35に状態遷移が可能な状態S39、左方向に移動するアクションU4が行われた場合に、異なる状態S34及びS35に状態遷移が可能な状態S28(状態S28は、右方向に移動するアクションU2が行われた場合に、異なる状態S21及びS23に状態遷移が可能な状態でもある)、上方向に移動するアクションU1が行われた場合に、異なる状態S2及びS17に状態遷移が可能な状態S1、下方向に移動するアクションU3が行われた場合に、異なる状態S2及びS17に状態遷移が可能な状態S16、左方向に移動するアクションU4が行われた場合に、異なる状態S2及びS17に状態遷移が可能な状態S12、下方向に移動するアクションU3が行われた場合に、異なる状態S37及びS48に状態遷移が可能な状態S42、下方向に移動するアクションU3が行われた場合に、異なる状態S31及びS32に状態遷移が可能な状態S36、並びに、左方向に移動するアクションU4が行われた場合に、状態S31及びS32に状態遷移が可能な状態S25が、分岐構造の状態になっている。
なお、図22において、点線の矢印は、第2の構造のアクション環境でのみ可能な状態遷移を表している。したがって、アクション環境の構造が、第1の構造(図21A)になっている場合、図22において点線の矢印で表す状態遷移は、行うことができない。
シミュレーションでは、図22において点線の矢印で表す状態遷移に対応する抑制子を、0.0にするとともに、他の状態遷移に対応する抑制子を1.0にする初期設定を行い、これにより、エージェントが、シミュレーションの開始直後は、第2の構造のアクション環境でのみ可能な状態遷移が生じるアクションを含むアクションプランを算出することができないようにした。
図23ないし図29は、学習後の拡張HMMに基づき、目標状態に到達するまでのアクションプランを算出し、そのアクションプランに従って決定されたアクションを行うエージェントを示す図である。
なお、図23ないし図29において、上側には、アクション環境内のエージェントと、目標状態(に対応する観測単位)とを示してあり、下側には、拡張HMMを示してある。
図23は、時刻t=t0のエージェントを示している。
時刻t=t0では、アクション環境の構造が、位置pos1ないしpos3が通路の第1の構造(図21A)になっている。
さらに、時刻t=t0では、目標状態(に対応する観測単位)が、左下の状態S37になっており、エージェントは、状態S20(に対応する観測単位)に位置している。
そして、エージェントは、目標状態である状態S37に向かうアクションプランを算出し、そのアクションプランに従って決定されたアクションとして、現在状態である状態S20から左方向への移動を行っている。
図24は、時刻t=t1(>t0)のエージェントを示している。
時刻t=t1では、アクション環境の構造が、第1の構造から、位置pos1は通路で通れるが、位置pos2及びpos3は壁で通れない構造に変化している。
さらに、時刻t=t1では、目標状態が、時刻t=t0の場合と同様に、左下の状態S37になっており、エージェントは、状態S31に位置している。
図25は、時刻t=t2(>t1)のエージェントを示している。
時刻t=t2では、アクション環境の構造が、位置pos1は通路で通れるが、位置pos2及びpos3は壁で通れない構造(以下、変化後構造ともいう)になっている。
さらに、時刻t=t2では、目標状態が、上側の状態3になっており、エージェントは、状態S31に位置している。
そして、エージェントは、目標状態である状態S3に向かうアクションプランを算出し、そのアクションプランに従って決定されたアクションとして、現在状態である状態S31から上方向への移動を行おうとしている。
ここで、時刻t=t2では、状態系列S31,S36,S39,S35,S3の状態遷移が生じるアクションプランが算出されている。
なお、アクション環境が、第1の構造になっている場合、状態S37及びS48に対応する観測単位と、状態S31及びS32に対応する観測単位との間の位置pos1(図21)、状態S3及びS30に対応する観測単位と、状態S34及びS35に対応する観測単位との間の位置pos2、並びに、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間の位置pos3は、いずれも通路であるから、エージェントは、位置pos1ないしpos3を通ることができる。
しかしながら、アクション環境が、変化後構造になった場合には、位置pos2及びpos3は、壁になっているから、エージェントは、位置pos2及びpos3を通ることができない。
上述したように、シミュレーションの初期設定では、第2の構造のアクション環境でのみ可能な状態遷移に対応する抑制子のみが、0.0に設定されており、時刻t=t2では、第1の構造のアクション環境で可能な状態遷移が抑制されていない。
このため、時刻t=t2では、状態S3及びS30に対応する観測単位と、状態S34及びS35に対応する観測単位との間の位置pos2は、壁になっていて通ることができないが、エージェントは、状態S3及びS30に対応する観測単位と、状態S34及びS35に対応する観測単位との間の位置pos2を通る、状態S35から状態S3への状態遷移が生じるアクションを含むアクションプランを算出してしまっている。
図26は、時刻t=t3(>t2)のエージェントを示している。
時刻t=t3では、アクション環境の構造が、変化後構造のままになっている。
さらに、時刻t=t3では、目標状態が、上側の状態3になっており、エージェントは、状態S28に位置している。
そして、エージェントは、目標状態である状態S3に向かうアクションプランを算出し、そのアクションプランに従って決定されたアクションとして、現在状態である状態S28から右方向への移動を行おうとしている。
ここで、時刻t=t3では、状態系列S28,S23,S2,S16,S22,S29,S3の状態遷移が生じるアクションプランが算出されている。
エージェントは、時刻t=t2以降にも、時刻t=t2で算出された状態系列S31,S36,S39,S35,S3の状態遷移が生じるアクションプラン(図25)と同様のアクションプランを算出し、そのアクションプランに従って決定されたアクションを行うことで、状態S35に対応する観測単位まで移動するが、そのときに、状態S3(及びS30)に対応する観測単位と、状態(S34及び)S35に対応する観測単位との間の位置pos2を通ることができないことを認識し、すなわち、アクションプランに従って決定されたアクションを行うことで、アクションプランに対応する状態系列S31,S36,S39,S35,S3の中の状態S39から到達することができた状態が、状態S39の次の状態S35ではなく、状態S34であることを認識し、行うことができなかった状態S39から状態S35への状態遷移に対応する抑制子を、0.0に更新する。
その結果、時刻t=t3では、エージェントは、位置pos2を通ることができる、状態S39から状態S35への状態遷移が生じないアクションプランである、状態系列S28,S23,S2,S16,S22,S29,S3の状態遷移が生じるアクションプランを算出する。
なお、アクション環境が、変化後構造になっている場合、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間の位置pos3(図21)は、壁になっており、エージェントは通ることができない。
上述したように、シミュレーションの初期設定では、位置pos1ないしpos3が壁で通ることができない第2の構造のアクション環境でのみ可能な状態遷移に対応する抑制子のみが、0.0に設定されており、時刻t=t3では、第1の構造のアクション環境で可能な、位置pos3を通ることに対応する状態S23から状態S2への状態遷移が抑制されていない。
このため、時刻t=t3では、エージェントは、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間の位置pos3を通る、状態S23から状態S2への状態遷移が生じるアクションプランを算出する。
図27は、時刻t=t4(=t3+1)のエージェントを示している。
時刻t=t4では、アクション環境の構造が、変化後構造になっている。
さらに、時刻t=t4では、目標状態が、上側の状態3になっており、エージェントは、状態S21に位置している。
エージェントは、時刻t=t3で算出された状態系列S28,S23,S2,S16,S22,S29,S3の状態遷移が生じるアクションプラン(図26)に従って決定されたアクションを行うことで、状態S28に対応する観測単位から、状態S21及びS23に対応する観測単位に移動するが、そのときに、アクションプランに従って決定されたアクションを行うことで、アクションプランに対応する状態系列S28,S23,S2,S16,S22,S29,S3の中の状態S28から到達することができた状態が、状態S28の次の状態S23ではなく、状態S21であることを認識し、状態S28から状態S23への状態遷移に対応する抑制子を、0.0に更新する。
その結果、時刻t=t4では、エージェントは、状態S28から状態S23への状態遷移を含まない(さらに、その結果として、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間の位置pos3を通らない)アクションプランを算出する。
ここで、時刻t=t4では、状態S28,S27,S26,S25,S20,S15,S10,S1,S2,S16,S22,S29,S3の状態遷移が生じるアクションプランが算出されている。
図28は、時刻t=t5(=t5+1)のエージェントを示している。
時刻t=t5では、アクション環境の構造が、変化後構造になっている。
さらに、時刻t=t5では、目標状態が、上側の状態3になっており、エージェントは、状態S28に位置している。
エージェントは、時刻t=t4で算出された状態系列S28,S27,S26,S25,S20,S15,S10,S1,S2,S16,S22,S29,S3の状態遷移が生じるアクションプラン(図27)に従って決定されたアクションを行うことで、状態S21に対応する観測単位から、状態S28に対応する観測単位に移動する。
図29は、時刻t=t6(>t5)のエージェントを示している。
時刻t=t6では、アクション環境の構造が、変化後構造になっている。
さらに、時刻t=t6では、目標状態が、上側の状態3になっており、エージェントは、状態S15に位置している。
そして、エージェントは、目標状態である状態S3に向かうアクションプランを算出し、そのアクションプランに従って決定されたアクションとして、現在状態である状態S15から右方向への移動を行おうとしている。
ここで、時刻t=t6では、状態系列S10,S1,S2,S16,S22,S29,S3の状態遷移が生じるアクションプランが算出されている。
以上のように、エージェントは、アクション環境の構造が変化しても、その変化後の構造を観測し(現在状態が、どの状態かを求め(認識し))、抑制子を更新する。そして、エージェントは、更新後の抑制子を用いて、アクションプランを算出し直し、最終的には、目標状態に到達することができる。
[エージェントの応用例]
図30は、図4のエージェントを応用した掃除ロボットの概要を示す図である。
図30において、掃除ロボット51は、掃除機として機能するブロック、図4のエージェントのアクチュエータ12、及び、センサ13に相当するブロック、及び、無線通信を行うブロックを内蔵する。
そして、図30では、掃除ロボットは、リビングルームを、アクション環境として、アクションとしての移動を行い、リビングルーム内の掃除を行う。
ホストコンピュータ52は、図4の反射行動決定部11、履歴記憶部14、アクション制御部15、及び、目標決定部16として機能する(反射行動決定部11、履歴記憶部14、アクション制御部15、及び、目標決定部16に相当するブロックを有する)。
また、ホストコンピュータ52は、リビングルーム内、又は、他の部屋に設置され、無線LAN(Local Area Network)等による無線通信を制御するアクセスポイント53と接続されている。
ホストコンピュータ53は、アクセスポイント53を介して、掃除ロボット51との間で無線通信を行うことにより、必要なデータをやりとりし、これにより、掃除ロボット51は、図4のエージェントと同様なアクションとしての移動を行う。
なお、図30では、掃除ロボット51の小型化のために、掃除ロボット51に、十分な電源と計算性能とを搭載することが困難であることに鑑みて、掃除ロボット51には、図4のエージェントを構成するブロックのうちの、必要最小限のブロックである、アクチュエータ12、及び、センサ13に相当するブロックだけを設け、他のブロックを、掃除ロボット51とは別個のホストコンピュータ52に設けてある。
但し、掃除ロボット51と、ホストコンピュータ52とのそれぞれに、図4のエージェントを構成するブロックのうちのいずれのブロックを設けるかは、上述したブロックに限定されるものではない。
すなわち、例えば、掃除ロボット51には、アクチュエータ、及び、センサ13の他、それほど高度な計算機能が要求されない反射アクション決定部11に相当するブロックを設け、ホストコンピュータ53は、高度な計算機能と大きな記憶容量を必要とする履歴記憶部14、アクション制御部15、及び、目標決定部16に相当するブロックを設けることができる。
ここで、拡張HMMによれば、異なる位置の観測単位で、同一の観測値が観測されるアクション環境において、観測値系列、及び、アクション系列を用いて、エージェントの現在の状況を認識し、現在状態、ひいては、エージェントが位置する観測単位(場所)を一意に特定することができる。
そして、図4のエージェントは、現在状態に応じて、抑制子を更新し、更新後の抑制子で、拡張HMMの状態遷移確率を補正しながら、アクションプランを、逐次的に算出することで、構造が確率的に変化するアクション環境でも、目標状態に到達することができる。
かかるエージェントは、例えば、人間の生活行動によって、動的に構造が変化する、例えば、人間が居住する住環境で活動する掃除ロボット等の実用ロボットに応用することができる。
例えば、部屋等の住環境では、部屋のドア(扉)の開閉や、部屋の中の家具の配置の変更等によって、構造が変化することがある。
但し、部屋自体の形状が変化することはないから、住環境は、構造が変化する部分と、変化しない部分とが共存する。
拡張HMMによれば、構造が変化する部分を、分岐構造の状態として記憶することができ、したがって、構造が変化する部分を含む住環境を、効率的に(少ない記憶容量で)表現することができる。
一方、住環境において、人間が操作する掃除機の代替機器として使用される掃除ロボットには、部屋全体を掃除するという目標を達成するために、掃除ロボットが、掃除ロボット自身の位置を特定し、構造が確率的に変化する部屋(構造が変化する可能性がある部屋)の中を、経路を適応的に切り替えながら移動する必要がある。
このように、構造が確率的に変化する住環境において、掃除ロボット自身の位置を特定し、適応的に経路を切り替えながら、目標(部屋全体の掃除)を実現するには、図4のエージェントは、特に有用である。
なお、掃除ロボットの製造コストを下げる観点から、観測値を観測する手段として、掃除ロボットに、高度なセンサとしてのカメラと、カメラが出力する画像の認識等の画像処理を行う画像処理装置とを搭載することは、避けることが望ましい。
すなわち、掃除ロボットの製造コストを下げるには、掃除ロボットが観測値を観測する手段としては、複数方向への超音波やレーザ等の出力を行うことで測距を行う測距装置等の安価な手段を採用することが望ましい。
しかしながら、観測値を観測する手段として、測距装置等の安価な手段を採用する場合には、住環境の異なる位置において、同一の観測値が観測されるケースが多くなり、1時刻の観測値だけでは、掃除ロボットの位置を、一意に特定することが困難となる。
このように、1時刻の観測値だけでは、掃除ロボットの位置を、一意に特定することが困難な住環境であっても、拡張HMMによれば、観測値系列、及び、アクション系列を用いて、位置を、一意に特定することができる。
[1状態1観測値制約]
ところで、図4の学習部21において、学習データを用いた拡張HMMの学習は、Baum-Welchの再推定法に従い、学習データが観測される尤度を最大化するように行われる。
Baum-Welchの再推定法は、基本的には、勾配法により、モデルパラメータを収束させていく方法であるため、モデルパラメータが、ローカルミニマムに陥ることがある。
モデルパラメータがローカルミニマムに陥るかどうかには、モデルパラメータの初期値に依存する初期値依存性がある。
本実施の形態では、拡張HMMとして、エルゴディックなHMMを採用しているが、エルゴディックなHMMは、初期値依存性が、特に大きい。
学習部21(図4)では、初期値依存性を低減するために、1状態1観測値制約の下で、拡張HMMの学習を行うことができる。
ここで、1状態1観測値制約とは、拡張HMM(を含むHMM)の1つの状態において、1つの観測値(だけ)が観測されるようにする制約である。
なお、構造が変化するアクション環境において、拡張HMMの学習を、何らの制約もなしに行うと、学習後の拡張HMMにおいて、アクション環境の構造の変化が、観測確率に分布を持つことによって表現される場合と、状態遷移の分岐構造を持つことによって表現される場合とが混在することがある。
ここで、アクション環境の構造の変化が、観測確率に分布を持つことによって表現される場合とは、ある1つの状態において、複数の観測値が観測される場合である。また、アクション環境の構造の変化が、状態遷移の分岐構造を持つことによって表現される場合とは、同一のアクションによって、異なる状態への状態遷移が生じる場合(あるアクションが行われた場合に、現在状態から、ある状態に状態遷移する可能性もあるし、その状態とは異なる状態に状態遷移する可能性もあるとき)である。
1状態1観測値制約によれば、拡張HMMにおいて、アクション環境の構造の変化が、状態遷移の分岐構造を持つことのみによって表現される。
なお、アクション環境の構造が変化しない場合には、1状態1観測値制約を課さずに、拡張HMMの学習を行うことができる。
1状態1観測値制約は、拡張HMMの学習に、状態の分割、さらに、望ましくは、状態のマージ(統合)を導入することで課すことができる。
[状態の分割]
図31は、1状態1観測値制約を実現するための状態の分割の概要を説明する図である。
状態の分割では、Baum-Welchの再推定法により、モデルパラメータ(初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bi(Ok))が収束した拡張HMMにおいて、1つの状態で、複数の観測値が観測される場合に、その複数の観測値の1つずつが、1つの状態で観測されるように、状態が、複数の観測値の数と同一の数の複数の状態に分割される。
図31Aは、Baum-Welchの再推定法により、モデルパラメータが収束した直後の拡張HMM(の一部)を示している。
図31Aでは、拡張HMMは、3つの状態S1,S2,S3を有し、状態S1とS2との間、及び、状態S2とS3との間のそれぞれで、状態遷移が可能となっている。
さらに、図31Aでは、状態S1において、1つの観測値O15が、状態S2において、2つの観測値O7及びO13が、状態S3において、1つの観測値O5が、それぞれ観測されるようになっている。
図31Aでは、状態S2において、複数である2つの観測値O7及びO13が観測されるので、状態S2が、その2つの観測値O7及びO13と同一の数の2つの状態に分割される。
図31Bは、状態の分割後の拡張HMM(の一部)を示している。
図31Bでは、図31Aの分割前の状態S2が、分割後の状態S2と、モデルパラメータが収束した直後の拡張HMMでは有効でない状態(例えば、状態遷移確率、及び、観測確率のすべてが、0.0(とみなせる値)になっている状態)のうちの1つである状態S4との2つに分割されている。
さらに、図31Bでは、分割後の状態S2において、分割前の状態S2で観測される2つの観測値O7及びO13のうちの1つである観測値O13のみが観測され、分割後の状態S4において、分割前の状態S2で観測される2つの観測値O7及びO13のうちの残りの1つである観測値O7のみが観測されるようになっている。
また、図31Bでは、分割後の状態S2については、分割前の状態S2と同様に、状態S1及びS3のそれぞれとの間で、状態遷移が可能になっている。分割後の状態S4についても、分割前の状態S2と同様に、状態S1及びS3のそれぞれとの間で、状態遷移が可能になっている。
学習部21(図4)は、状態の分割にあたって、まず、学習後(モデルパラメータが収束した直後)の拡張HMMにおいて、複数の観測値が観測される状態を、分割対象の分割対象状態として検出する。
図32は、分割対象状態の検出の方法を説明する図である。
すなわち、図32は、拡張HMMの観測確率行列Bを示している。
観測確率行列Bは、図16で説明したように、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)を、第i行第k列の要素とする行列である。
拡張HMM(を含むHMM)の学習では、観測確率行列Bにおいて、ある状態Siにおいて、観測値O1ないしOKを観測する観測確率bi(O1)ないしbi(OK)それぞれは、その観測確率bi(O1)ないしbi(OK)の総和が1.0になるように正規化される。
したがって、1つの状態Siにおいて、1つの観測値(のみ)が観測される場合には、その状態Siの観測確率bi(O1)ないしbi(OK)のうちの最大値は、1.0(とみなせる値)になり、最大値以外の観測確率は、0.0(とみなせる値)になる。
一方、1つの状態Siにおいて、複数の観測値が観測される場合には、その状態Siの観測確率bi(O1)ないしbi(OK)のうちの最大値は、図32に示す0.6や0.5のように、1.0より十分小さく、かつ、総和が1.0の観測確率を観測値O1ないしOKの数Kで均等に分けた場合の値(平均値)1/Kよりも大きくなる。
したがって、分割対象状態は、式(20)に従い、各状態Siについて、1.0より小さい閾値bmax_thより小さく、かつ、平均値1/Kより大きい観測確率Bik=bi(Ok)を検索することで検出することができる。
ここで、式(20)において、Bikは、観測確率行列Bの第i行第k列の要素を表し、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)に等しい。
また、式(20)において、argfind(1/K<Bik<bmax_th)は、状態SiのサフィックスiがSである場合において、かっこ内の条件式1/K<Bik<bmax_thを満たす観測確率BSkを検索する(見つける)ことができたときの、かっこ内の条件式1/K<Bik<bmax_thを満たす観測確率BSkすべてのサフィックスkを表す。
なお、式(20)において、閾値bmax_thは、分割対象状態の検出の敏感さを、どの程度にするかに応じて、1/K<bmax_th<1.0の範囲で調整することができ、閾値bmax_thを、1.0に近づけるほど、分割対象状態を、敏感に検出することができる。
学習部21(図4)は、式(20)のかっこ内の条件式1/K<Bik<bmax_thを満たす観測確率BSkを検索する(見つける)ことができたときの、サフィックスiがSの状態を、分割対象状態として検出する。
さらに、学習部21は、式(20)で表されるすべてのサフィックスkの観測値Okを、分割対象状態(サフィックスiがSの状態)で観測される複数の観測値として検出する。
そして、学習部21は、分割対象状態を、その分割対象状態で観測される複数の観測値と同一の数の複数の状態に分割する。
ここで、分割対象状態を分割した分割後の状態を、分割後状態ということとすると、分割後状態の1つとしては、分割対象状態を採用し、残りの分割後状態としては、分割時に、拡張HMMにおいて有効でない状態を採用することができる。
すなわち、例えば、分割対象状態を、3つの分割後状態に分割する場合には、その3つの分割後状態のうちの1つとして、分割対象状態を採用し、残りの2つとして、分割時に、拡張HMMにおいて有効でない状態を採用することができる。
また、複数の分割後状態としては、すべて、分割時に、拡張HMMにおいて有効でない状態を採用することができる。但し、この場合、状態の分割後に、分割対象状態を有効でない状態とする必要がある。
図33は、分割対象状態を、分割後状態に分割する方法を説明する図である。
図33では、拡張HMMは、7個の状態S1ないしS7を有し、そのうちの、2個の状態S6及びS7が有効でない状態になっている。
さらに、図33では、状態S3を、2つの観測値O1及びO2が観測される分割対象状態として、その分割対象状態S3が、観測値O1が観測される分割後状態S3と、観測値O2が観測される分割後状態S6とに分割されている。
学習部21(図4)は、以下のようにして、分割対象状態S3を、2つの分割後状態S3及びS6に分割する
すなわち、学習部21は、分割対象状態S3を分割した分割後状態S3に、複数の観測値O1及びO2のうちの1つの観測値である、例えば、観測値O1を割り当て、分割後状態S3において、その分割後状態S3に割り当てられた観測値O1が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定する。
さらに、学習部21は、分割後状態S3を遷移元とする状態遷移の状態遷移確率a3,j(Um)を、分割対象状態S3を遷移元とする状態遷移の状態遷移確率a3,j(Um)に設定するとともに、分割後状態S3を遷移先とする状態遷移の状態遷移確率を、分割後状態S3に割り当てられた観測値の、分割対象状態S3における観測確率で、分割対象状態S3を遷移先とする状態遷移の状態遷移確率を補正した値に設定する。
学習部21は、他の分割後状態S6についても、同様に、観測確率、及び、状態遷移確率を設定する。
図33Aは、分割後状態S3及びS6の観測確率の設定を説明する図である。
図33では、分割対象状態S3を分割した2つの分割後状態S3及びS6のうちの一方である分割後状態S3に、分割対象状態S3で観測される2つの観測値O1及びO2のうちの一方である観測値O1が割り当てられ、他方の分割後状態S6に、他方の観測値O2が割り当てられている。
この場合、学習部21は、図33Aに示すように、観測値O1を割り当てた分割後状態S3において、その観測値O1が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定する。
さらに、学習部21は、図33Aに示すように、観測値O2を割り当てた分割後状態S6において、その観測値O2が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定する。
以上のような観測確率の設定は、式(21)で表される。
ここで、式(21)において、B(,)は、2次元の配列であり、配列の要素B(S,O)は、状態Sにおいて、観測値Oが観測される観測確率を表す。
また、サフィックスがコロン(:)になっている配列は、そのコロンになっている次元の要素のすべてを表す。したがって、式(21)において、例えば、式B(S3,:)=0.0は、状態S3において、各観測値O1ないしOKが観測される観測確率を、すべて、0.0に設定することを表す。
式(21)によれば、状態S3において、各観測値O1ないしOKが観測される観測確率が、すべて、0.0に設定され(B(S3,:)=0.0)、その後、観測値O1が観測される観測確率だけが、1.0に設定される(B(S3,O1)=1.0)。
さらに、式(21)によれば、状態S6において、各観測値O1ないしOKが観測される観測確率が、すべて、0.0に設定され(B(S6,:)=0.0)、その後、観測値O2が観測される観測確率だけが、1.0に設定される(B(S6,O2)=1.0)。
図33Bは、分割後状態S3及びS6の状態遷移確率の設定を説明する図である。
分割後状態S3及びS6のそれぞれを遷移元とする状態遷移としては、分割対象状態S3を遷移元とする状態遷移と同様の状態遷移が行われるべきである。
そこで、学習部21は、図33Bに示すように、分割後状態S3を遷移元とする状態遷移の状態遷移確率を、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定する。さらに、学習部21は、図33Bに示すように、分割後状態S6を遷移元とする状態遷移の状態遷移確率も、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定する。
一方、観測値O1が割り当てられた分割後状態S3、及び、観測値O2が割り当てられた分割後状態S6のそれぞれを遷移先とする状態遷移としては、分割対象状態S3を遷移先とする状態遷移を、その分割対象状態S3で観測値O1及びO2それぞれが観測される観測確率の割合(比)で分割したような状態遷移が行われるべきである。
そこで、学習部21は、図33Bに示すように、分割対象状態S3を遷移先とする状態遷移の状態遷移確率に、分割後状態S3に割り当てられた観測値O1の、分割対象状態S3における観測確率を乗算することで、分割対象状態S3を遷移先とする状態遷移の状態遷移確率を補正し、観測値O1の観測確率によって状態遷移確率を補正した補正値を求める。
そして、学習部21は、観測値O1が割り当てられた分割後状態S3を遷移先とする状態遷移の状態遷移確率を、観測値O1の観測確率によって状態遷移確率を補正した補正値に設定する。
さらに、学習部21は、図33Bに示すように、分割対象状態S3を遷移先とする状態遷移の状態遷移確率に、分割後状態S6に割り当てられた観測値O2の、分割対象状態S3における観測確率を乗算することで、分割対象状態S3を遷移先とする状態遷移の状態遷移確率を補正し、観測値O2の観測確率によって状態遷移確率を補正した補正値を求める。
そして、学習部21は、観測値O2が割り当てられた分割後状態S6を遷移先とする状態遷移の状態遷移確率を、観測値O2の観測確率によって状態遷移確率を補正した補正値に設定する。
以上のような状態遷移確率の設定は、式(22)で表される。
ここで、式(21)において、A(,,)は、3次元の配列であり、配列の要素A(S,S',U)は、アクションUが行われた場合に、状態Sを遷移元として、状態S'に状態遷移する状態遷移確率を表す。
また、サフィックスがコロン(:)になっている配列は、式(21)の場合と同様に、そのコロンになっている次元の要素のすべてを表す。
したがって、式(22)において、例えば、A(S3,:,:)は、各アクションが行われた場合の、状態S3を遷移元とする各状態Sへの状態遷移の状態遷移確率すべてを表す。また、式(22)において、例えば、A(:,S3,:)は、各アクションが行われた場合の、状態S3を遷移先とする、各状態から状態S3への状態遷移の状態遷移確率すべてを表す。
式(22)によれば、すべてのアクションについて、分割後状態S3を遷移元とする状態遷移の状態遷移確率が、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定される(A(S3,:,:)=A(S3,:,:))。
また、すべてのアクションについて、分割後状態S6を遷移元とする状態遷移の状態遷移確率も、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定される(A(S6,:,:)=A(S3,:,:))。
さらに、式(22)によれば、すべてのアクションについて、分割対象状態S3を遷移先とする状態遷移の状態遷移確率A(:,S3,:)に、分割後状態S3に割り当てられた観測値O1の、分割対象状態S3における観測確率B(S3,O1)を乗算することで、分割対象状態S3を遷移先とする状態遷移の状態遷移確率A(:,S3,:)を補正した補正値B(S3,O1)A(:,S3,:)が求められる。
そして、すべてのアクションについて、観測値O2が割り当てられた分割後状態S6を遷移先とする状態遷移の状態遷移確率A(:,S3,:)が、補正値B(S3,O1)A(:,S3,:)に設定される(A(:,S3,:)=B(S3,O1)A(:,S3,:))。
また、式(22)によれば、すべてのアクションについて、分割対象状態S3を遷移先とする状態遷移の状態遷移確率A(:,S3,:)に、分割後状態S6に割り当てられた観測値O2の、分割対象状態S3における観測確率B(S3,O2)を乗算することで、分割対象状態S3を遷移先とする状態遷移の状態遷移確率A(:,S3,:)を補正した補正値B(S3,O2)A(:,S3,:)が求められる。
そして、すべてのアクションについて、観測値O2が割り当てられた分割後状態S6を遷移先とする状態遷移の状態遷移確率A(:,S6,:)が、補正値B(S3,O2)A(:,S3,:)に設定される(A(:,S6,:)=B(S3,O2)A(:,S3,:))。
[状態のマージ]
図34は、1状態1観測値制約を実現するための状態のマージの概要を説明する図である。
状態のマージでは、Baum-Welchの再推定法により、モデルパラメータが収束した拡張HMMにおいて、あるアクションが行われたときの、1つの状態を遷移元とする状態遷移の遷移先の状態として、複数の状態(異なる状態)が存在し、その複数の状態それぞれにおいて、同一の観測値が観測される状態が存在する場合に、その同一の観測値が観測される複数の状態が、1つの状態にマージされる。
また、状態のマージでは、モデルパラメータが収束した拡張HMMにおいて、あるアクションが行われたときの、1つの状態を遷移先とする状態遷移の遷移元の状態として、複数の状態が存在し、その複数の状態それぞれにおいて、同一の観測値が観測される状態が存在する場合に、その同一の観測値が観測される複数の状態が、1つの状態にマージされる。
すなわち、状態のマージは、モデルパラメータが収束した拡張HMMにおいて、各アクションについて、同一の状態を遷移元、又は、遷移先とする状態遷移が生じ、かつ、同一の観測値が観測される複数の状態が存在する場合に、そのような複数の状態は、冗長であるため、1つの状態にマージされる。
ここで、状態のマージには、あるアクションが行われたときの1つの状態からの状態遷移の遷移先の状態として、複数の状態が存在する場合に、その遷移先の複数の状態をマージするフォワードマージと、あるアクションが行われたときの1つの状態への状態遷移の遷移元の状態として、複数の状態が存在する場合に、その遷移元の複数の状態をマージするバックワードマージとがある。
図34Aは、フォワードマージの例を示している。
図34Aでは、拡張HMMは、状態S1ないしS5を有し、状態S1から状態S2及びS3への状態遷移、状態S2から状態S4への状態遷移、並びに、状態S3から状態S5への状態遷移が可能になっている。
また、状態S1からの、複数の状態S2及びS3を遷移先とする状態遷移それぞれ、すなわち、遷移先を状態S2とする状態S1からの状態遷移と、遷移先を状態S3とする状態S1からの状態遷移とは、状態S1において、同一のアクションが行われた場合に行われるようになっている。
さらに、状態S2及び状態S3では、同一の観測値O5が観測されるようになっている。
この場合、学習部21(図4)は、同一のアクションによって生じる、1つの状態S1からの状態遷移の遷移先であり、同一の観測値O5が観測される複数の状態S2及びS3を、マージの対象であるマージ対象状態として、そのマージ対象状態S2及びS3を、1つの状態にマージする。
ここで、複数のマージ対象状態をマージして得られる1つの状態を、代表状態ともいうこととする。図34Aでは、2つのマージ対象状態S2及びS3が、1つの代表状態S2にマージされている。
また、あるアクションが行われた場合に、ある1つの状態から生じ得る、同一の観測値が観測される状態への複数の状態遷移は、1つの遷移元の状態から、複数の遷移先の状態に向かって分岐しているように見えるので、そのような状態遷移を、フォワード方向の分岐ともいう。図34Aでは、状態S1から、状態S2への状態遷移と、状態S3への状態遷移とが、フォワード方向の分岐である。
なお、フォワード方向の分岐では、分岐元の状態が、遷移元の状態S1となり、分岐先の状態が、同一の観測値が観測される遷移先の状態S2及びS3となる。そして、遷移先の状態でもある分岐先の状態S2及びS3が、マージ対象状態となる。
図34Bは、バックワードマージの例を示している。
図34Bでは、拡張HMMは、状態S1ないしS5を有し、状態S1から状態S3への状態遷移、状態S2から状態S4への状態遷移、状態S3から状態S5への状態遷移、及び、状態S4から状態S5への状態遷移が可能になっている。
また、状態S5への、複数の状態S3及びS4を遷移元とする状態遷移それぞれ、すなわち、遷移元を状態S3とする状態S3から状態S5への状態遷移と、遷移元を状態S4とする状態S5への状態遷移とは、状態S3及びS4において、同一のアクションが行われた場合に行われるようになっている。
さらに、状態S3及び状態S4では、同一の観測値O7が観測されるようになっている。
この場合、学習部21(図4)は、同一のアクションによって生じる、1つの状態S5への状態遷移の遷移元であり、同一の観測値O7が観測される状態S3及びS4を、マージ対象状態として、そのマージ対象状態S3及びS4を、1つの状態である代表状態にマージする。
図34Bでは、2つのマージ対象状態S3及びS4のうちの1つである状態S3が、代表状態になっている。
ここで、あるアクションが行われた場合に、ある1つの状態を遷移先とする、同一の観測値が観測される複数の状態からの状態遷移は、1つの遷移先の状態から、複数の遷移元の状態に向かって分岐しているように見えるので、そのような状態遷移を、バックワード方向の分岐ともいう。図34Bでは、状態S5への、状態S3からの状態遷移と、状態S4からの状態遷移とが、バックワード方向の分岐である。
なお、バックワード方向の分岐では、分岐元の状態が、遷移先の状態S5となり、分岐先の状態が、同一の観測値が観測される遷移元の状態S3及びS4となる。そして、遷移元の状態でもある分岐先の状態S3及びS4が、マージ対象状態となる。
学習部21(図4)は、状態のマージにあたって、まず、学習後(モデルパラメータが収束した直後)の拡張HMMにおいて、分岐先の状態となっている複数の状態を、マージ対象状態として検出する。
図35は、マージ対象状態の検出の方法を説明する図である。
学習部21は、所定のアクションが行われたときの状態遷移の遷移元又は遷移先の拡張HMMの状態として、複数の状態が存在し、その複数の状態それぞれにおいて観測される、観測確率が最大の観測値が一致する場合の、複数の状態を、マージ対象状態として検出する。
図35Aは、フォワード方向の分岐の分岐先となっている複数の状態を、マージ対象状態として検出する方法を示している。
すなわち、図35Aは、あるアクションUmについての状態遷移確率平面Aと、観測確率行列Bとを示している。
各アクションUmについての状態遷移確率平面Aでは、各状態Siについて、その状態Siを遷移元とする状態遷移確率aij(Um)の総和(サフィックスi及びmを固定にし、サフィックスjを、1ないしNに変化させてとったaij(Um)の総和)が、1.0になるように、状態遷移確率が正規化されている。
したがって、あるアクションUmについて、ある状態Siを遷移元とする状態遷移確率(アクションUmについての状態遷移確率平面Aにおいて、ある行iに、水平方向に並ぶ状態遷移確率)の最大値は、状態Siを分岐元とするフォワード方向の分岐が存在しない場合には、1.0(とみなせる値)になり、最大値以外の状態遷移確率は、0.0(とみなせる値)になる。
一方、あるアクションUmについて、ある状態Siを遷移元とする状態遷移確率の最大値は、状態Siを分岐元とするフォワード方向の分岐が存在する場合には、図35Aに示す0.5のように、1.0より十分小さく、かつ、総和が1.0の状態遷移確率を状態S1ないしSNの数Nで均等に分けた場合の値(平均値)1/Nよりも大きくなる。
したがって、フォワード方向の分岐の分岐元となっている状態は、上述した、分岐構造の状態を検出する場合と同様に、式(19)に従い、アクションUmについての状態遷移確率平面の行iの状態遷移確率aij(Um)(=Aijm)の最大値が、1.0より小さい閾値amax_thより小で、平均値1/Nより大である状態Siを検索することで検出することができる。
なお、この場合、式(19)において、閾値amax_thは、フォワード方向の分岐の分岐元となっている状態の検出の敏感さを、どの程度にするかに応じて、1/N<amax_th<1.0の範囲で調整することができ、閾値amax_thを、1.0に近づけるほど、分岐元となっている状態を、敏感に検出することができる。
学習部21(図4)は、上述したようにして、フォワード方向の分岐の分岐元となっている状態(以下、分岐元状態ともいう)を検出すると、その分岐元状態からの、フォワード方向の分岐の分岐先になっている複数の状態を検出する。
すなわち、学習部21は、アクションUmのサフィックスmが、Uであり、フォワード方向の分岐の分岐元状態Siのサフィックスiが、Sである場合の、分岐元状態からの、フォワード方向の分岐の分岐先になっている複数の状態を式(23)に従って検出する。
ここで、式(23)において、Aijmは、3次元の状態遷移確率テーブルにおいて、i軸方向の位置が上からi番目で、j軸方向の位置が左からj番目で、アクション軸方向の位置が手前からm番目の状態遷移確率aij(Um)を表す。
また、式(23)において、argfind(amin_th1<Aijm)は、アクションUmのサフィックスmがUであり、分岐元状態SiのサフィックスiがSである場合において、かっこ内の条件式amin_th1<Aijmを満たす状態遷移確率AS,j,Uを検索する(見つける)ことができたときの、かっこ内の条件式amin_th1<Aijmを満たす状態遷移確率AS,j,Uすべてのサフィックスjを表す。
なお、式(23)において、閾値amin_th1は、フォワード方向の分岐の分岐先になっている複数の状態の検出の敏感さを、どの程度にするかに応じて、0.0<amin_th1<1.0の範囲で調整することができ、閾値amin_th1を、1.0に近づけるほど、フォワード方向の分岐の分岐先になっている複数の状態を、敏感に検出することができる。
学習部21(図4)は、式(23)のかっこ内の条件式amin_th1<Aijmを満たす状態遷移確率Aijmを検索する(見つける)ことができたときの、サフィックスがjの状態Sjを、フォワード方向の分岐の分岐先になっている状態(以下、分岐先状態ともいう)の候補として検出する。
その後、学習部21は、フォワード方向の分岐の分岐先状態の候補として、複数の状態が検出された場合、その複数の分岐先状態の候補それぞれにおいて観測される、観測確率が最大の観測値が一致するかどうかを判定する。
そして、学習部21は、複数の分岐先状態の候補のうちの、観測確率が最大の観測値が一致する候補を、フォワード方向の分岐の分岐先状態として検出する。
すなわち、学習部21は、複数の分岐先状態の候補それぞれについて、式(24)に従って、観測確率が最大の観測値Omaxを求める。
ここで、式(24)において、Bikは、状態Siにおいて、観測値Okが観測される観測確率bi(Ok)を表す。
また、式(24)において、argmax(Bik)は、観測確率行列Bにおいて、状態SiのサフィックスがSの状態の、最大の観測確率観測確率BS,kのサフィックスkを表す。
学習部21は、複数の分岐先状態の候補としての複数の状態Siそれぞれのサフィックスiについて、式(24)で得られる、最大の観測確率BS,kのサフィックスkが一致する場合に、複数の分岐先状態の候補のうちの、式(24)で得られるサフィックスkが一致する候補を、フォワード方向の分岐の分岐先状態として検出する。
ここで、図35Aでは、状態S3が、フォワード方向の分岐の分岐元状態として検出され、その分岐元状態S3からの状態遷移の状態遷移確率が、いずれも0.5である状態S1及びS4が、フォワード方向の分岐の分岐先状態の候補として検出されている。
そして、フォワード方向の分岐の分岐先状態の候補である状態S1及びS4については、状態S1で観測される、観測確率が1.0で最大の観測値O2と、状態S4で観測される、観測確率が0.9で最大の観測値O2とが一致しているので、状態S1及びS4が、フォワード方向の分岐の分岐先状態として検出される。
図35Bは、バックワード方向の分岐の分岐先となっている複数の状態を、マージ対象状態として検出する方法を示している。
すなわち、図35Bは、あるアクションUmについての状態遷移確率平面Aと、観測確率行列Bとを示している。
各アクションUmについての状態遷移確率平面Aでは、各状態Siについて、図35Aで説明したように、状態遷移確率は、状態Siを遷移元とする状態遷移確率aij(Um)の総和が、1.0になるように正規化されているが、状態Sjを遷移先とする状態遷移確率aij(Um)の総和(サフィックスj及びmを固定にし、サフィックスiを、1ないしNに変化させてとったaij(Um)の総和)が1.0になるような正規化は、行われていない。
但し、状態Siから状態Sjへの状態遷移が行われる可能性がある場合には、状態Sjを遷移先とする状態遷移確率aij(Um)は、0.0(とみなせる値)ではない正の値になっている。
したがって、バックワード方向の分岐の分岐元状態(となり得る状態)と、分岐先状態の候補とは、式(25)に従って検出することができる。
ここで、式(25)において、Aijmは、3次元の状態遷移確率テーブルにおいて、i軸方向の位置が上からi番目で、j軸方向の位置が左からj番目で、アクション軸方向の位置が手前からm番目の状態遷移確率aij(Um)を表す。
また、式(25)において、argfind(amin_th2<Aijm)は、アクションUmのサフィックスmがUであり、遷移先の状態SjのサフィックスjがSである場合において、かっこ内の条件式amin_th2<Aijmを満たす状態遷移確率Ai,S,Uを検索する(見つける)ことができたときの、かっこ内の条件式amin_th2<Aijmを満たす状態遷移確率Ai,S,Uすべてのサフィックスiを表す。
なお、式(25)において、閾値amin_th2は、バックワード方向の分岐の分岐元状態、及び、分岐先状態(の候補)の検出の敏感さを、どの程度にするかに応じて、0.0<amin_th2<1.0の範囲で調整することができ、閾値amin_th2を、1.0に近づけるほど、バックワード方向の分岐の分岐元状態、及び、分岐先状態を、敏感に検出することができる。
学習部21(図4)は、式(25)のかっこ内の条件式amin_th2<Aijmを満たす複数の状態遷移確率Aijmを検索する(見つける)ことができたときの、サフィックスjがSの状態を、バックワード方向の分岐の分岐元状態(となり得る状態)として検出する。
さらに、学習部21は、式(25)のかっこ内の条件式amin_th2<Aijmを満たす複数の状態遷移確率Aijmを検索することができたときの、その複数の状態遷移確率Aijmに対応する状態遷移の遷移元の複数の状態、つまり、条件式amin_th2<Aijmを満たす複数個の状態遷移確率Ai,S,Uを検索することができたときの、かっこ内の条件式amin_th2<Aijmを満たす複数個の状態遷移確率Ai,S,Uそれぞれのi(式(25)が表す複数のi)をサフィックスとする複数の状態Siを、分岐先状態の候補として検出する。
その後、学習部21は、バックワード方向の分岐の複数の分岐先状態の候補それぞれにおいて観測される、観測確率が最大の観測値が一致するかどうかを判定する。
そして、学習部21は、フォワード方向の分岐の分岐先状態を検出する場合と同様に、複数の分岐先状態の候補のうちの、観測確率が最大の観測値が一致する候補を、バックワード方向の分岐の分岐先状態として検出する。
ここで、図35Bでは、状態S2が、バックワード方向の分岐の分岐元状態として検出され、その分岐元状態S2への状態遷移の状態遷移確率が、いずれも0.5である状態S2及びS5が、バックワード方向の分岐の分岐先状態の候補として検出されている。
そして、バックワード方向の分岐の分岐先状態の候補である状態S2及びS5については、状態S2で観測される、観測確率が1.0で最大の観測値O3と、状態S5で観測される、観測確率が0.8で最大の観測値O3とが一致しているので、状態S2及びS5が、バックワード方向の分岐の分岐先状態として検出される。
学習部21は、以上のようにして、フォワード方向、及び、バックワード方向の分岐の分岐元状態と、その分岐先状態から分岐する複数の分岐先状態とを検出すると、その複数の分岐先状態を、1つの代表状態にマージする。
ここで、学習部21は、例えば、複数の分岐先状態のうちの、サフィックスが最小の分岐先状態を、代表状態として、複数の分岐先状態を、代表状態にマージする。
すなわち、例えば、ある分岐元状態から分岐する複数の分岐先状態として、3つの状態が検出された場合には、学習部21は、その複数の分岐先状態のうちの、サフィックスが最小の分岐先状態を、代表状態として、複数の分岐先状態を、代表状態にマージする。
また、学習部21は、3つの分岐先状態のうちの、代表状態とならなかった残りの2つの状態を、有効でない状態とする。
なお、状態のマージにおいては、代表状態を分岐先状態ではなく、有効でない状態から選択することができる。この場合、複数の分岐先状態が代表状態にマージされた後、複数の分岐先状態は、すべて、有効でない状態にされる。
図36は、ある1つの分岐元状態から分岐する複数の分岐先状態を、1つの代表状態にマージする方法を説明する図である。
図36では、拡張HMMは、7個の状態S1ないしS7を有している。
さらに、図36では、2つの状態S1及びS4を、マージ対象状態とするとともに、その2つのマージ対象状態S1及びS4のうちの、サフィックスが最小の状態S1を、代表状態として、2つのマージ対象状態S1及びS4が、1つの代表状態S1にマージされている。
学習部21(図4)は、以下のようにして、2つのマージ対象状態S1及びS4を、1つの代表状態S1にマージする。
すなわち、学習部21は、代表状態S1において、各観測値Okが観測される観測確率b1(Ok)を、マージ対象状態である複数の状態S1及びS4それぞれにおいて、各観測値Okが観測される観測確率b1(Ok)及びb4(Ok)の平均値に設定するとともに、マージ対象状態である複数の状態S1及びS4のうちの、代表状態S1以外の状態S4において、各観測値Okが観測される観測確率b4(Ok)を、0に設定する。
また、学習部21は、代表状態S1を遷移元とする状態遷移の状態遷移確率a1,j(Um)を、マージ対象状態である複数の状態S1及びS4それぞれを遷移元とする状態遷移の状態遷移確率a1,j(Um)及びa4,j(Um)の平均値に設定するとともに、代表状態S1を遷移先とする状態遷移の状態遷移確率ai,1(Um)を、マージ対象状態である複数の状態S1及びS4それぞれを遷移先とする状態遷移の状態遷移確率ai,1(Um)及びai,4(Um)の和に設定する。
さらに、学習部21は、マージ対象状態である複数の状態S1及びS4のうちの、代表状態S1以外の状態S4を遷移元とする状態遷移の状態遷移確率a4,j(Um)、及び、遷移先とする状態遷移の状態遷移確率ai,4(Um)を、0に設定する。
図36Aは、状態のマージで行われる観測確率の設定を説明する図である。
学習部21は、代表状態S1において、観測値O1が観測される観測確率b1(O1)を、マージ対象状態S1及びS4それぞれにおいて、観測値O1が観測される観測確率b1(O1)及びb4(O1)の平均値(b1(O1)+びb4(O1))/2に設定する。
代表状態S1において、他の観測値Okが観測される観測確率b1(Ok)も、同様に設定される。
さらに、学習部21は、マージ対象状態S1及びS4のうちの、代表状態S1以外の状態S4において、各観測値Okが観測される観測確率b4(Ok)を、0に設定する。
以上のような観測確率の設定は、式(26)で表される。
ここで、式(26)において、B(,)は、2次元の配列であり、配列の要素B(S,O)は、状態Sにおいて、観測値Oが観測される観測確率を表す。
また、サフィックスがコロン(:)になっている配列は、そのコロンになっている次元の要素のすべてを表す。したがって、式(26)において、例えば、式B(S4,:)=0.0は、状態S4において、各観測値が観測される観測確率を、すべて、0.0に設定することを表す。
式(26)によれば、代表状態S1において、各観測値Okが観測される観測確率b1(Ok)が、マージ対象状態S1及びS4それぞれにおいて、各観測値Okが観測される観測確率b1(Ok)及びb4(Ok)の平均値に設定される(B(S1,:)=(B(S1,:)+B(S4,:))/2)。
さらに、式(26)によれば、マージ対象状態S1及びS4のうちの、代表状態S1以外の状態S4において、各観測値Okが観測される観測確率b4(Ok)が、0に設定される(B(S4,:)=0.0)。
図36Bは、状態のマージで行われる状態遷移確率の設定を説明する図である。
マージ対象状態である複数の状態それぞれを遷移元とする状態遷移は、一致しているとは限らない。そして、マージ対象状態をマージした代表状態を遷移元とする状態遷移としては、マージ対象状態である複数の状態それぞれを遷移元とする状態遷移が可能であるべきである。
そこで、学習部21は、図36Bに示すように、代表状態S1を遷移元とする状態遷移の状態遷移確率a1,j(Um)を、マージ対象状態S1及びS4それぞれを遷移元とする状態遷移の状態遷移確率a1,j(Um)及びa4,j(Um)の平均値に設定する。
一方、マージ対象状態である複数の状態それぞれを遷移先とする状態遷移も、一致しているとは限らない。そして、マージ対象状態をマージした代表状態を遷移先とする状態遷移としては、マージ対象状態である複数の状態それぞれを遷移先とする状態遷移が可能であるべきである。
そこで、学習部21は、図36Bに示すように、代表状態S1を遷移先とする状態遷移の状態遷移確率ai,1(Um)を、マージ対象状態S1及びS4それぞれを遷移先とする状態遷移の状態遷移確率ai,1(Um)及びai,4(Um)の和に設定する。
なお、代表状態S1を遷移元とする状態遷移の状態遷移確率a1,j(Um)として、マージ対象状態S1及びS4を遷移元とする状態遷移の状態遷移確率a1,j(Um)及びa4,j(Um)の平均値を採用するのに対して、代表状態S1を遷移先とする状態遷移の状態遷移確率ai,1(Um)として、マージ対象状態S1及びS4を遷移先とする状態遷移の状態遷移確率ai,1(Um)及びai,4(Um)の和を採用するのは、各アクションUmについての状態遷移確率平面Aでは、状態Siを遷移元とする状態遷移確率aij(Um)の総和は、1.0になるように、状態遷移確率aij(Um)が正規化されているのに対して、状態Sjを遷移先とする状態遷移確率aij(Um)の総和が、1.0になるような正規化は、行われていないためである。
学習部21は、代表状態S1を遷移元とする状態遷移確率と、遷移先とする状態遷移確率との設定の他、マージ対象状態S1及びS4を、代表状態S1にマージすることによって、アクション環境の構造の表現に不要となるマージ対象状態(代表状態以外のマージ対象状態)S4を遷移元とする状態遷移確率と、遷移先とする状態遷移確率とを、0に設定する。
以上のような状態遷移確率の設定は、式(27)で表される。
ここで、式(27)において、A(,,)は、3次元の配列であり、配列の要素A(S,S',U)は、アクションUが行われた場合に、状態Sを遷移元として、状態S'に状態遷移する状態遷移確率を表す。
また、サフィックスがコロン(:)になっている配列は、式(26)の場合と同様に、そのコロンになっている次元の要素のすべてを表す。
したがって、式(27)において、例えば、A(S1,:,:)は、各アクションが行われた場合の、状態S1を遷移元とする各状態への状態遷移の状態遷移確率すべてを表す。また、式(27)において、例えば、A(:,S1,:)は、各アクションが行われた場合の、状態S1を遷移先とする、各状態から状態S1への状態遷移の状態遷移確率すべてを表す。
式(27)によれば、すべてのアクションについて、代表状態S1を遷移元とする状態遷移の状態遷移確率が、マージ対象状態S1及びS4を遷移元とする状態遷移の状態遷移確率a1,j(Um)及びa4,j(Um)の平均値に設定される(A(S1,:,:)=(A(S1,:,:)+A(S4,:,:))/2)。
また、すべてのアクションについて、代表状態S1を遷移先とする状態遷移の状態遷移確率が、マージ対象状態S1及びS4を遷移先とする状態遷移の状態遷移確率ai,1(Um)及びai,4(Um)の和に設定される(A(:,S1,:)=A(:,S1,:)+A(:,S4,:))
さらに、式(27)によれば、すべてのアクションについて、マージ対象状態S1及びS4を、代表状態S1にマージすることによって、アクション環境の構造の表現に不要となるマージ対象状態S4を遷移元とする状態遷移確率と、遷移先とする状態遷移確率とが、0に設定される(A(S4,:,:)=0.0,A(:,S4,:)=0.0)。
以上のように、マージ対象状態S1及びS4を、代表状態S1にマージすることによって、アクション環境の構造の表現に不要となるマージ対象状態S4を遷移元とする状態遷移確率と、遷移先とする状態遷移確率とを、0.0に設定するとともに、その不要となるマージ対象状態S4において、各観測値が観測される観測確率を0.0に設定することにより、不要となるマージ対象状態S4は、有効でない状態となる。
[1状態1観測値制約の下での拡張HMMの学習]
図37は、図4の学習部21が、1状態1観測値制約の下で行う、拡張HMMの学習の処理を説明するフローチャートである。
ステップS91において、学習部21は、履歴記憶部14に記憶された学習データとしての観測値系列及びアクション系列を用いて、Baum-Welchの再推定法に従い、拡張HMMの初期学習、すなわち、図7のステップS21ないしS24と同様の処理を行う。
ステップS91の初期学習において、拡張HMMのモデルパラメータが収束すると、学習部21は、その拡張HMMのモデルパラメータを、モデル記憶部22(図4)に記憶させて、処理は、ステップS92に進む。
ステップS92では、学習部21は、モデル記憶部22に記憶された拡張HMMから、分割対象状態を検出し、処理は、ステップS93に進む。
ここで、ステップS92において、学習部21が分割対象状態を検出することができなかった場合、すなわち、モデル記憶部22に記憶された拡張HMMに、分割対象状態が存在しない場合、処理は、ステップS93及びS94をスキップして、ステップS95に進む。
ステップS93では、学習部21は、ステップS92で検出された分割対象状態を、複数の分割後状態に分割する状態の分割を行い、処理は、ステップS94に進む。
ステップS94では、学習部21は、履歴記憶部14に記憶された学習データとしての観測値系列及びアクション系列を用いて、Baum-Welchの再推定法に従い、モデル記憶部22に記憶された、直前のステップS93で状態の分割が行われた拡張HMMの学習、すなわち、図7のステップS22ないしS24と同様の処理を行う。
なお、ステップS94の学習では(後述するステップS97でも同様)、モデル記憶部22に記憶されている拡張HMMのモデルパラメータが、そのままモデルパラメータの初期値として用いられる。
ステップS94の学習において、拡張HMMのモデルパラメータが収束すると、学習部21は、その拡張HMMのモデルパラメータを、モデル記憶部22(図4)に記憶させて(上書きして)、処理は、ステップS95に進む。
ステップS95では、学習部21は、モデル記憶部22に記憶された拡張HMMから、マージ対象状態を検出し、処理は、ステップS96に進む。
ここで、ステップS95において、学習部21がマージ対象状態を検出することができなかった場合、すなわち、モデル記憶部22に記憶された拡張HMMに、マージ対象状態が存在しない場合、処理は、ステップS96及びS97をスキップして、ステップS98に進む。
ステップS96では、学習部21は、ステップS95で検出されたマージ対象状態を、代表状態にマージする状態のマージを行い、処理は、ステップS97に進む。
ステップS97では、学習部21は、履歴記憶部14に記憶された学習データとしての観測値系列及びアクション系列を用いて、Baum-Welchの再推定法に従い、モデル記憶部22に記憶された、直前のステップS96で状態のマージが行われた拡張HMMの学習、すなわち、図7のステップS22ないしS24と同様の処理を行う。
ステップS97の学習において、拡張HMMのモデルパラメータが収束すると、学習部21は、その拡張HMMのモデルパラメータを、モデル記憶部22(図4)に記憶させて(上書きして)、処理は、ステップS98に進む。
ステップS98では、学習部21は、直前のステップS92での分割対象状態の検出の処理で、分割対象状態が検出されず、かつ、直前のステップS95でのマージ対象状態の検出の処理で、マージ対象状態が検出されなかったかどうかを判定する。
ステップS98において、分割対象状態、及び、マージ対象状態のうちの、少なくとも一方が検出されたと判定された場合、処理は、ステップS92に戻り、以下、同様の処理が繰り返される。
また、ステップS98において、分割対象状態、及び、マージ対象状態の両方が検出されなかったと判定された場合、拡張HMMの学習の処理は終了する。
以上のように、状態の分割、状態の分割後の拡張HMMの学習、状態のマージ、及び、状態のマージ後の拡張HMMの学習を、分割対象状態、及び、マージ対象状態の両方が検出されなくなるまで繰り返すことで、1状態1観測値制約を充足する学習が行われ、1つの状態において、1つの観測値(だけ)が観測される拡張HMMを得ることができる。
図38は、図4の学習部21が、図37のステップS92で行う、分割対象状態の検出の処理を説明するフローチャートである。
ステップS111において、学習部21は、状態Siのサフィックスを表す変数iを、例えば、1に初期化して、処理は、ステップS112に進む。
ステップS112では、学習部21は、観測値Okのサフィックスを表す変数kを、例えば、1に初期化して、処理は、ステップS113に進む。
4
ステップS113では、学習部21は、状態Siにおいて、観測値Okが観測される観測確率Bik=bi(Ok)が、式(20)のかっこ内の条件式1/K<Bik<bmax_thを満たすかどうかを判定する。
ステップS113において、観測確率Bik=bi(Ok)が、条件式1/K<Bik<bmax_thを満たさないと判定された場合、処理は、ステップS114をスキップして、ステップS115に進む。
また、ステップS113において、観測確率Bik=bi(Ok)が、条件式1/K<Bik<bmax_thを満たすと判定された場合、処理は、ステップS114に進み、学習部21は、観測値Okを、分割対象の観測値(分割後状態に1つずつ割り当てる観測値)として、状態Siに対応付けて、図示せぬメモリに、一時記憶する。
その後、処理は、ステップS114からステップS115に進み、サフィックスkが、観測値の数(以下、シンボル数ともいう)Kに等しいかどうかを判定する。
ステップS115において、サフィックスkがシンボル数Kに等しくないと判定された場合、処理は、ステップS116に進み、学習部21は、サフィックスkを1だけインクリメントする。そして、処理は、ステップS116からステップS113に戻り、以下、同様の処理が繰り返される。
また、ステップS115において、サフィックスkがシンボル数Kに等しいと判定された場合、処理は、ステップS117に進み、学習部21は、サフィックスiが状態数(拡張HMMの状態の数)Nに等しいかどうかを判定する。
ステップS117において、サフィックスiが状態数Nに等しくないと判定された場合、処理は、ステップS118に進み、学習部21は、サフィックスiを1だけインクリメントする。そして、処理は、ステップS118からステップS112に戻り、以下、同様の処理が繰り返される。
また、ステップS117において、サフィックスiが状態数Nに等しいと判定された場合、処理は、ステップS119に進み、学習部21は、ステップS114で分割対象の観測値と対応付けて記憶されている状態Siのそれぞれを、分割対象状態として検出し、処理はリターンする。
図39は、図4の学習部21が、図37のステップS93で行う、状態の分割(分割対象状態の分割)の処理を説明するフローチャートである。
ステップS131において、学習部21は、分割対象状態の中で、まだ、注目する注目状態としていない状態の1つを、注目状態に選択して、処理は、ステップS132に進む。
ステップS132では、学習部21は、注目状態に対応付けられている分割対象の観測値の数を、注目状態を分割した分割後状態の数(以下、分割数ともいう)CSとして、拡張HMMの状態のうちの、注目状態と、有効でない状態のうちのCS-1個の状態との、合計で、Cs個の状態を、分割後状態に選択する。
その後、処理は、ステップS132からステップS133に進み、学習部21は、Cs個の分割後状態のそれぞれに、注目状態に対応付けられているCS個の分割対象の観測値の1個ずつを割り当て、処理は、ステップS134に進む。
ステップS134では、学習部21は、Cs個の分割後状態をカウントする変数cを、例えば1に初期化して、処理は、ステップS135に進む。
ステップS135では、学習部21は、Cs個の分割後状態のうちの、c番目の分割後状態を、注目する注目分割後状態に選択し、処理は、ステップS136に進む。
ステップS136では、学習部21は、注目分割後状態において、その注目分割後状態に割り当てられた分割対象の観測値が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定して、処理は、ステップS137に進む。
ステップS137では、学習部21は、注目分割後状態を遷移元とする状態遷移の状態遷移確率を、注目状態を遷移元とする状態遷移の状態遷移確率に設定して、処理は、ステップS138に進む。
ステップS138では、学習部21は、図33で説明したように、注目分割後状態に割り当てられた分割対象状態の観測値が、注目状態において観測される観測確率によって、注目状態を遷移先とする状態遷移の状態遷移確率を補正し、状態遷移確率の補正値を求めて、処理は、ステップS139に進む。
ステップS139では、学習部21は、注目分割後状態を遷移先とする状態遷移の状態遷移確率を、直前のステップS138で求めた補正値に設定し、処理は、ステップS140に進む。
ステップS140では、学習部21は、変数cが分割数CSに等しいかどうかを判定する。
ステップS140において、変数cが分割数CSに等しくないと判定された場合、処理は、ステップS141に進み、学習部21は、変数cを1だけインクリメントして、処理は、ステップS135に戻る。
また、ステップS140において、変数cが分割数CSに等しいと判定された場合、処理は、ステップS142に進み、学習部21は、分割対象状態のすべてを、注目状態に選択したかどうかを判定する。
ステップS142において、分割対象状態のすべてを、まだ、注目状態に選択していないと判定された場合、処理は、ステップS131に戻り、以下、同様の処理が繰り返される。
4
また、ステップS142において、分割対象状態のすべてを、注目状態に選択したと判定された場合、すなわち、分割対象状態すべての分割が完了した場合、処理はリターンする。
図40は、図4の学習部21が、図37のステップS95で行う、マージ対象状態の検出の処理を説明するフローチャートである。
ステップS161において、学習部21は、アクションUmのサフィックスを表す変数mを、例えば、1に初期化して、処理は、ステップS162に進む。
ステップS162では、学習部21は、状態Siのサフィックスを表す変数iを、例えば、1に初期化して、処理は、ステップS163に進む。
4
ステップS163では、学習部21は、モデル記憶部22に記憶された拡張HMMにおいて、アクションUmについての、状態Siを遷移元とする各状態Sjへの状態遷移の状態遷移確率Aijm=aij(Um)の中の最大値max(Aijm)を検出して、処理は、ステップS164に進む。
ステップS164では、学習部21は、最大値max(Aijm)が、式(19)、すなわち、式1/N<max(Aijm)<amax_thを満たすかどうかを判定する。
ステップS164において、最大値max(Aijm)が、式(19)を満たさないと判定された場合、処理は、ステップS165をスキップして、ステップS166に進む。
また、ステップS164において、最大値max(Aijm)が、式(19)を満たすと判定された場合、処理は、ステップS165に進み、学習部21は、状態Siを、フォワード方向の分岐の分岐元状態として検出する。
さらに、学習部21は、アクションUmについての、フォワード方向の分岐の分岐元状態Siを遷移元とする状態遷移の中で、状態遷移確率Aijm=aij(Um)が、式(23)のかっこ内の条件式amin_th1<Aijmを満たす状態遷移の遷移先の状態Sjを、フォワード方向の分岐の分岐先状態として検出し、処理は、ステップS165からステップS166に進む。
ステップS166では、学習部21は、サフィックスiが状態数Nに等しいかどうかを判定する。
ステップS166において、サフィックスiが状態数Nに等しくないと判定された場合、処理は、ステップS167に進み、学習部21は、サフィックスiを1だけインクリメントして、処理は、ステップS163に戻る。
また、ステップS166において、サフィックスiが状態数Nに等しいと判定された場合、処理は、ステップS168に進み、学習部21は、状態Sjのサフィックスを表す変数jを、例えば、1に初期化して、処理は、ステップS169に進む。
ステップS169では、学習部21は、アクションUmについての、状態Sjを遷移先とする各状態Si'からの状態遷移の中で、状態遷移確率Ai'jm=ai'j(Um)が、式(25)のかっこ内の条件式amin_th2<Ai'jmを満たす状態遷移の遷移元の状態Si'が複数存在するかどうかを判定する。
ステップS169において、式(25)のかっこ内の条件式amin_th2<Ai'jmを満たす状態遷移の遷移元の状態Si'が複数存在しないと判定された場合、処理は、ステップS170をスキップして、ステップS171に進む。
また、ステップS169において、式(25)のかっこ内の条件式amin_th2<Ai'jmを満たす状態遷移の遷移元の状態Si'が複数存在すると判定された場合、処理は、ステップS170に進み、学習部21は、状態Sjをバックワード方向の分岐の分岐元状態として検出する。
4
さらに、学習部21は、アクションUmについての、バックワード方向の分岐の分岐元状態Sjを遷移先とする各状態Si'からの状態遷移の中で、状態遷移確率Ai'jm=ai'j(Um)が、式(25)のかっこ内の条件式amin_th2<Ai'jmを満たす状態遷移の、複数の遷移元の状態Si'を、バックワード方向の分岐の分岐先状態として検出し、処理は、ステップS170からステップS171に進む。
ステップS171では、学習部21は、サフィックスjが状態数Nに等しいかどうかを判定する。
ステップS171において、サフィックスjが状態数Nに等しくないと判定された場合、処理は、ステップS172に進み、学習部21は、サフィックスjを1だけインクリメントして、処理は、ステップS169に戻る。
また、ステップS171において、サフィックスjが状態数Nに等しいと判定された場合、処理は、ステップS173に進み、学習部21は、サフィックスmがアクションUmの数(以下、アクション数ともいう)Mに等しいかどうかを判定する。
ステップS173において、サフィックスmがアクション数Mに等しくないと判定された場合、処理は、ステップS174に進み、学習部21は、サフィックスmを1だけインクリメントして、処理は、ステップS162に戻る。
また、ステップS173において、サフィックスmがアクション数Mに等しいと判定された場合、処理は、図41のステップS191に進む。
すなわち、図41は、図40に続くフローチャートである。
図41のステップS191では、学習部21は、図40のステップS161ないしS174の処理によって検出された分岐元状態の中で、まだ、注目状態としていない分岐元状態の1つを、注目状態に選択して、処理は、ステップS192に進む。
ステップS192では、学習部21は、注目状態に対して検出された複数の分岐先状態(の候補)、つまり、注目状態を分岐元として分岐する複数の分岐先状態(の候補)それぞれについて、分岐先状態において観測される、観測確率が最大の観測値(以下、最大確率観測値ともいう)Omaxを、式(24)に従って検出し、処理は、ステップS193に進む。
ステップS193では、学習部21は、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する分岐先状態があるかどうかを判定する。
ステップS193において、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する分岐先状態がないと判定された場合、処理は、ステップS194をスキップして、ステップS195に進む。
また、ステップS193において、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する分岐先状態があると判定された場合、処理は、ステップS194に進み、学習部21は、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する複数の分岐先状態を、1グループのマージ対象状態として検出し、処理は、ステップS195に進む。
ステップS195では、学習部21は、分割元状態のすべてを、注目状態に選択したかどうかを判定する。
ステップS195において、分割元状態のすべてを、まだ、注目状態に選択していないと判定された場合、処理は、ステップS191に戻る。
また、ステップS195において、分割元状態のすべてを、注目状態に選択したと判定された場合、処理はリターンする。
図42は、図4の学習部21が、図37のステップS96で行う、状態のマージ(マージ対象状態のマージ)の処理を説明するフローチャートである。
ステップS211において、学習部21は、マージ対象状態のグループの中で、まだ、注目グループとしていないグループの1つを、注目グループに選択して、処理は、ステップS212に進む。
ステップS212では、学習部21は、注目グループの複数のマージ対象状態のうちの、例えば、サフィックスが最小のマージ対象状態を、注目グループの代表状態に選択して、処理は、ステップS213に進む。
ステップS213では、学習部21は、代表状態において、各観測値が観測される観測確率を、注目グループの複数のマージ対象状態それぞれにおいて、各観測値が観測される観測確率の平均値に設定する。
さらに、ステップS213では、学習部21は、注目グループの代表状態以外のマージ対象状態において、各観測値が観測される観測確率を、0.0に設定して、処理は、ステップS214に進む。
ステップS214では、学習部21は、代表状態を遷移元とする状態遷移の状態遷移確率を、注目グループのマージ対象状態それぞれを遷移元とする状態遷移の状態遷移確率の平均値に設定して、処理は、ステップS215に進む。
ステップS215では、学習部21は、代表状態を遷移先とする状態遷移の状態遷移確率を、注目グループのマージ対象状態それぞれを遷移先とする状態遷移の状態遷移確率の和に設定して、処理は、ステップS216に進む。
ステップS216では、学習部21は、注目グループの代表状態以外のマージ対象状態を遷移元とする状態遷移、及び、注目グループの代表状態以外のマージ対象状態を遷移先とする状態遷移の状態遷移確率を、0.0に設定して、処理は、ステップS217に進む。
ステップS217では、学習部21は、マージ対象状態のグループのすべてを、注目グループに選択したかどうかを判定する。
ステップS217において、マージ対象状態のグループのすべてを、まだ、注目グループに選択していないと判定された場合、処理は、ステップS211に戻る。
また、ステップS217において、マージ対象状態のグループのすべてを、注目グループに選択したと判定された場合、処理はリターンする。
図43は、本件発明者が行った、1状態1観測値制約の下での拡張HMMの学習のシミュレーションを説明する図である。
図43Aは、シミュレーションで採用したアクション環境を示す図である。
シミュレーションでは、アクション環境として、構造が、第1の構造と第2の構造とに変換する環境を採用した。
第1の構造のアクション環境では、位置posが、壁になって、通ることができないようになっているのに対して、第2の構造のアクション環境では、位置posが、通路になっており、通ることができるようになっている。
シミュレーションでは、第1及び第2の構造のアクション環境それぞれにおいて、学習データとなる観測系列、及び、アクション系列を得て、拡張HMMの学習を行った。
図43Bは、1状態1観測値制約なしで行った学習の結果得られた拡張HMMを示しており、図43Cは、1状態1観測値制約ありで行った学習の結果得られた拡張HMMを示している。
図43B及び図43Cにおいて、丸(○)印は、拡張HMMの状態を表し、丸印の中に記載されている数字は、その丸印が表す状態のサフィックスである。また、丸印で表される状態どうしを表す矢印は、可能な状態遷移(状態遷移確率が0.0(とみなせる値)以外の状態遷移)を表す。
また、図43B及び図43Cにおいて、左側の位置に、垂直方向に並べてある状態(を表す丸印)は、拡張HMMにおいて、有効でない状態になっている。
図43Bの拡張HMMによれば、1状態1観測値制約なしの学習では、モデルパラメータがローカルミニマムに陥り、学習後の拡張HMMにおいて、構造が変化するアクション環境の第1及び第2の構造が、観測確率に分布を持つことによって表現される場合と、状態遷移の分岐構造を持つことによって表現される場合とが混在してしまい、その結果、構造が変化するアクション環境の構造を、拡張HMMの状態遷移によって適切に表現することができていないことを確認することができる。
一方、図43Cの拡張HMMによれば、1状態1観測値制約ありの学習では、学習後の拡張HMMにおいて、構造が変化するアクション環境の第1及び第2の構造が、状態遷移の分岐構造を持つことのみによって表現され、構造が変化するアクション環境の構造を、拡張HMMの状態遷移によって適切に表現することができていることを確認することができる。
1状態1観測値制約ありの学習によれば、アクション環境の構造が変化する場合に、構造が変化しない部分は、拡張HMMにおいて共通に記憶され、構造が変化する部分は、拡張HMMにおいて、状態遷移の分岐構造(あるアクションが行われた場合に生じる状態遷移として、異なる状態への(複数の)状態遷移があること)によって表現される。
したがって、構造が変化するアクション環境を、構造ごとにモデルを用意せずに、1つの拡張HMMだけで、適切に表現することができるので、環境が変化するアクション環境のモデル化を、少ない記憶リソースで行うことができる。
[所定のストラテジに従ってアクションを決定する認識アクションモードの処理]
ところで、図8の認識アクションモードの処理では、図4のエージェントが、アクション環境の既知の領域(その領域で観測される観測値系列及びアクション系列を用いて、拡張HMMの学習が行われている場合の、その領域(学習済みの領域))に位置することを前提として、エージェントの現在の状況を認識し、その現在の状況に対応する拡張HMMの状態である現在状態を求めて、現在状態から、目標状態に到達するためのアクションを決定するが、エージェントは、必ずしも、既知の領域に位置するとは限らず、未知の領域(未学習の領域)に位置することがある。
エージェントが、未知の領域に位置する場合に、図8で説明したようにして、アクションを決定しても、そのアクションが、目標状態に到達するための適切なアクションになるとは限らず、逆に、未知の領域をさまようような、いわば、無駄な、又は、冗長なアクションになることがある。
そこで、エージェントでは、認識アクションモードにおいて、エージェントの現在の状況が、未知の状況(いままでに観測したことがない観測値系列及びアクション系列が観測される状況)(拡張HMMで獲得されていない状況)であるか、又は、未知の状況(いままでに観測したことがある観測値系列及びアクション系列が観測される状況)(拡張HMMで獲得されている状況)であるかを判定し、その判定結果に基づいて、適切なアクションを決定することができる。
すなわち、図44は、そのような認識アクションモードの処理を説明するフローチャートである。
図44の認識アクションモードでは、エージェントは、図8のステップS31ないしS33と同様の処理を行う。
その後、処理は、ステップS301に進み、エージェントの状態認識部23(図4)は、履歴記憶部14から、系列長(系列を構成する値の数)qが所定の長さQの最新の観測値系列と、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列とを、エージェントの現在の状況を認識するのに用いる認識用の観測値系列、及び、アクション系列として読み出すことにより取得する。
そして、処理は、ステップS301からステップS302に進み、状態認識部23は、モデル記憶部22に記憶された学習済みの拡張HMMにおいて、認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路(パス)ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式(10)及び式(11)に従って求める。
さらに、状態認識部23は、認識用の観測値系列、及び、アクション系列を観測して、時刻tに、式(10)の最適状態確率δt(j)を最大にする状態Sjに辿り着く状態系列である最尤状態系列を、式(11)の最適経路ψt(j)から求める。
その後、処理は、ステップS302からステップS303に進み、状態認識部23は、最尤状態系列に基づき、エージェントの現在の状況が、既知の状況(既知状況)、又は、未知の状況(未知状況)のいずれであるかを判定する。
ここで、認識用の観測値系列(、又は、認識用の観測値系列、及び、アクション系列)を、Oと表すとともに、認識用の観測値系列O、及び、アクション系列が観測される最尤状態系列を、Xと表す。なお、最尤状態系列Xを構成する状態の数は、認識用の観測値系列Oの系列長qに等しい。
また、認識用の観測値系列Oの最初の観測値が観測される時刻tを、例えば、1として、最尤状態系列Xの、時刻tの状態(先頭からt番目の状態)を、Xtと表すとともに、時刻tの状態Xtから、時刻t+1の状態Xt+1への状態遷移の状態遷移確率を、A(Xt,Xt+1)と表すこととする。
さらに、最尤状態系列Xにおいて、認識用の観測値系列Oが観測される尤度を、P(O|X)と表すこととする。
ステップS303では、状態認識部23は、式(28)、及び、式(29)が満たされるかどうかを判定する。
ここで、式(28)のThrestransは、状態Xtから状態Xt+1への状態遷移があり得るのかどうかを切り分けるための閾値である。また、式(29)のThresobsは、最尤状態系列Xにおいて、認識用の観測値系列Oが観測されることがあり得るのかどうかを切り分けるための閾値である。閾値Threstrans及びThresobsとしては、例えば、シミュレーション等によって、上述の切り分けを適切に行うことができる値が設定される。
式(28)及び式(29)のうちの少なくとも一方が満たされない場合、状態認識部23は、ステップS303において、エージェントの現在の状況が、未知状況であると判定する。
また、式(28)及び式(29)の両方が満たされる場合、状態認識部23は、ステップS303において、エージェントの現在の状況が、既知状況であると判定する。
ステップS303において、現在の状況が、既知状況であると判定された場合、状態認識部23は、最尤状態系列Xの最後の状態を、現在状態stとして求め(推定し)、処理は、ステップS304に進む。
ステップS304では、状態認識部23は、現在状態にstに基づき、経過時間管理テーブル記憶部32(図4)に記憶された経過時間管理テーブルを、図8のステップS34の場合と同様に更新する。
その後、エージェントでは、図8のステップS35以降と同様の処理が行われる。
一方、ステップS303において、現在の状況が、未知状況であると判定された場合、処理は、ステップS305に進み、状態認識部23は、モデル記憶部22に記憶された拡張HMMに基づき、エージェントが現在の状況に至るための状態系列である現況状態系列の候補の1以上を算出する。
さらに、状態認識部23は、1以上の現況状態系列の候補を、アクション決定部24(図4)に供給して、処理は、ステップS305からステップS306に進む。
ステップS306では、アクション決定部24が、状態認識部23からの1以上の現状状態系列の候補を用い、所定のストラテジ(strategy)に従って、エージェントが次に行うべきアクションを決定する。
その後、エージェントでは、図8のステップS40以降と同様の処理が行われる。
以上のように、現在の状況が、未知状況である場合には、エージェントは、1以上の現況状態系列の候補を算出し、その1以上の現況状態系列の候補を用い、所定のストラテジに従って、エージェントのアクションを決定する。
すなわち、現在の状況が、未知状況である場合には、エージェントは、過去の経験から獲得することができる状態系列、つまり、学習済みの拡張HMMで生じる状態遷移の状態系列(以下、経験済みの状態系列ともいう)の中から、現在の状況に至る、ある系列長qの、最新の観測値系列、及び、アクション系列が観測される状態系列を、現況状態系列の候補として取得する。
そして、エージェントは、経験済みの状態系列である現況状態系列を(再)利用し、所定のストラテジに従って、エージェントのアクションを決定する。
[現況状態系列の候補の算出]
図45は、図4の状態認識部23が、図44のステップS305で行う、現況状態系列の候補の算出の処理を説明するフローチャートである。
ステップS311において、状態認識部23は、履歴記憶部14(図4)から、系列長qが所定の長さQ'の最新の観測値系列、及び、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列(エージェントが行ったアクションの、系列長qが所定の長さQ'の最新のアクション系列、及び、そのアクション系列のアクションが行われたときにエージェントにおいて観測された観測値の観測値系列)を、認識用の観測値系列、及び、アクション系列として読み出すことにより取得する。
ここで、状態認識部23がステップS311で取得する認識用の観測値系列の系列長qである長さQ'としては、図44のステップS301で取得される観測値系列の系列長qである長さQよりも短い、例えば、1などが採用される。
すなわち、エージェントは、上述したように、経験済みの状態系列の中から、最新の観測値系列、及び、アクション系列である認識用の観測値系列、及び、アクション系列が観測される状態系列を、現況状態系列の候補として取得するが、認識用の観測値系列、及び、アクション系列の系列長qが長すぎると、そのような長い系列長qの認識用の観測値系列、及び、アクション系列が観測される状態系列が、経験済みの状態系列の中にない(、又は、あっても、ないに等しい程度の尤度しかない)ことがある。
そこで、状態認識部23は、経験済みの状態系列の中から、認識用の観測値系列、及び、アクション系列が観測される状態系列を取得することができるように、ステップS311では、短い系列長qの認識用の観測値系列、及び、アクション系列を取得する。
ステップS311の後、処理は、ステップS312に進み、状態認識部23は、モデル記憶部22に記憶された学習済みの拡張HMMにおいて、ステップS311で取得した認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式(10)及び式(11)に従って求める。
すなわち、状態認識部23は、経験済みの状態系列の中から、認識用の観測値系列、及び、アクション系列が観測される、系列長qがQ'の状態系列である最適経路ψt(j)を取得する。
ここで、Viterbiアルゴリズムに基づいて求められる(推定される)最適経路ψt(j)である状態系列を、認識用状態系列ともいう。
ステップS312では、拡張HMMのN個の状態Sjそれぞれについて、最適状態確率δe(j)と、認識用状態系列(最適経路)ψt(j))とが求められる。
ステップS312において、認識用状態系列が取得されると、処理は、ステップS313に進み、状態認識部23は、ステップS312で取得された認識用状態系列の中から、1以上の認識用状態系列を、現況状態系列の候補として選択し、処理は、リターンする。
すなわち、ステップS313では、例えば、尤度、つまり、最適状態確率δt(j)が、閾値(例えば、最適状態確率δt(j)の最大値(最大尤度)の0.8倍の値等)以上の認識用状態系列が、現況状態系列の候補として選択される。
あるいは、例えば、最適状態確率δt(j)が、上位R(Rは1以上の整数)位以内のR個の認識用状態系列が、現況状態系列の候補として選択される。
図46は、図4の状態認識部23が、図44のステップS305で行う、現況状態系列の候補の算出の処理の他の例を説明するフローチャートである。
図45の現況状態系列の候補の算出の処理では、認識用の観測値系列、及び、アクション系列の系列長qを、短い長さQ'に固定して、その長さQ'の認識用状態系列、ひいては、現況状態系列の候補が求められる。
これに対して、図46の現況状態系列の候補の算出の処理では、エージェントは、適応的(自律的)に、認識用の観測値系列、及び、アクション系列の系列長qを調整し、これにより、拡張HMMが獲得しているアクション環境の構造の中で、エージェントの現在の位置の構造により類似する構造、つまり、経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列(最新の観測値系列、及び、アクション系列)が観測される、系列長qが最長の状態系列を、現況状態系列の候補として取得する。
図46の現況状態系列の候補の算出の処理では、ステップS321において、状態認識部23(図4)は、系列長qを、例えば、最小の1に初期化して、処理は、ステップS322に進む。
ステップS322では、状態認識部23は、履歴記憶部14(図4)から、系列長が長さqの最新の観測値系列と、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列とを、認識用の観測値系列、及び、アクション系列として読み出すことにより取得して、処理は、ステップS323に進む。
ステップS323では、状態認識部23は、モデル記憶部22に記憶された学習済みの拡張HMMにおいて、系列長がqの認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式(10)及び式(11)に従って求める。
さらに、状態認識部23は、認識用の観測値系列、及び、アクション系列を観測して、時刻tに、式(10)の最適状態確率δt(j)を最大にする状態Sjに辿り着く状態系列である最尤状態系列を、式(11)の最適経路ψt(j)から求める。
その後、処理は、ステップS323からステップS324に進み、状態認識部23は、最尤状態系列に基づき、エージェントの現在の状況が、既知状況、又は、未知状況のいずれであるかを、図44のステップS303の場合と同様にして判定する。
ステップS324において、現在の状況が、既知状況であると判定された場合、すなわち、経験済みの状態系列の中から、系列長がqの認識用の観測値系列、及び、アクション系列(最新の観測値系列、及び、アクション系列)が観測される状態系列を取得することができる場合、処理は、ステップS325に進み、状態認識部23は、系列長qを1だけインクリメントする。
そして、処理は、ステップS325からステップS322に戻り、以下、同様の処理が繰り返される。
一方、ステップS324において、現在の状況が、未知状況であると判定された場合、すなわち、経験済みの状態系列の中から、系列長がqの認識用の観測値系列、及び、アクション系列(最新の観測値系列、及び、アクション系列)が観測される状態系列を取得することができない場合、処理は、ステップS326に進み、状態認識部23は、以下、ステップS326ないしS328において、経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列(最新の観測値系列、及び、アクション系列)が観測される、系列長が最長の状態系列を、現況状態系列の候補として取得する。
すなわち、ステップS322ないしS325では、認識用の観測値系列、及び、アクション系列の系列長qを1ずつインクリメントしながら、その認識用の観測値系列、及び、アクション系列が観測される最尤状態系列に基づき、エージェントの現在の状況が、既知状況、又は、未知状況のいずれであるかが判定される。
したがって、ステップS324において、現在の状況が、未知状況であると判定された直後の系列長qを1だけデクリメントした系列長q-1の認識用の観測値系列、及び、アクション系列が観測される最尤状態系列が、経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列が観測される、系列長が最長の状態系列(の1つ)として存在する。
そこで、ステップS326では、状態認識部23は、履歴記憶部14(図4)から、系列長が長さq-1の最新の観測値系列と、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列とを、認識用の観測値系列、及び、アクション系列として読み出すことにより取得して、処理は、ステップS327に進む。
ステップS327では、状態認識部23は、モデル記憶部22に記憶された学習済みの拡張HMMにおいて、ステップS326で取得した、系列長がq-1の認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式(10)及び式(11)に従って求める。
すなわち、状態認識部23は、学習済みの拡張HMMで生じる状態遷移の状態系列の中から、認識用の観測値系列、及び、アクション系列が観測される、系列長がq-1の状態系列である最適経路ψt(j)(認識用状態系列)を取得する。
ステップS327において、認識用状態系列が取得されると、処理は、ステップS328に進み、状態認識部23は、図45のステップS313の場合と同様にして、ステップS327で取得された認識用状態系列の中から、1以上の認識用状態系列を、現況状態系列の候補として選択し、処理は、リターンする。
以上のように、系列長qをインクリメントしていき、現在の状況が、未知状況であると判定された直後の系列長qを1だけデクリメントした系列長q-1の認識用の観測値系列、及び、アクション系列を取得することにより、経験済みの状態系列の中から、適切な現況状態系列の候補(拡張HMMが獲得しているアクション環境の構造の中で、エージェントの現在の位置の構造により類似する構造に対応する状態系列)を取得することができる。
すなわち、現況状態系列の候補を取得するのに用いる認識用の観測値系列、及び、アクション系列の系列長を固定にした場合、その固定の系列長が短すぎても、また、長すぎても、適切な現況状態系列の候補を取得することができないことがある。
すなわち、認識用の観測値系列、及び、アクション系列の系列長が短すぎる場合には、経験済みの状態系列の中で、そのような系列長の認識用の観測値系列、及び、アクション系列が観測される尤度が高くなる状態系列が多くなり、多数の、尤度が高い認識用状態系列が取得される。
その結果、そのような多数の、尤度が高い認識用状態系列から、現況状態系列の候補を選択すると、経験済みの状態系列の中で、現在の状況をより適切に表現する状態系列が、現況状態系列の候補として選択されない可能性が高くなることがある。
一方、認識用の観測値系列、及び、アクション系列の系列長が長すぎる場合には、経験済みの状態系列の中で、そのような長すぎる系列長の認識用の観測値系列、及び、アクション系列が観測される尤度が高くなる状態系列が存在せず、結果として、現況状態系列の候補を取得することができない可能性が高くなることがある。
これに対して、図46で説明したように、認識用の観測値系列、及び、アクション系列が観測される尤度が最も高い状態遷移が生じる状態系列である最尤状態系列を推定し、その最尤状態系列に基づいて、エージェントの現在の状況が、拡張HMMにおいて獲得している既知状況であるか、又は、獲得していない未知状況であるかを判定することを、認識用の観測値系列、及び、アクション系列の系列長をインクリメント(増加)しながら、エージェントの現在の状況が、未知状況であると判定されるまで繰り返し、エージェントの現在の状況が、未知状況であると判定されたときの系列長qよりも1サンプル分だけ短い系列長q-1の認識用の観測値系列、及び、アクション系列が観測される状態遷移が生じる状態系列である認識用状態系列の1以上を推定し、その1以上の認識用状態系列の中から、1以上の現況状態系列の候補を選択することにより、拡張HMMが獲得しているアクション環境の構造の中で、エージェントの現在の位置の構造により類似する構造を表現する状態系列を、現況状態系列の候補として取得することができる。
そして、その結果、経験済みの状態系列を、最大限に利用して、アクションを決定することが可能となる。
[ストラテジに従ったアクションの決定]
図47は、図4のアクション決定部24が、図44のステップS306で行う、ストラテジに従ったアクションの決定の処理を説明するフローチャートである。
図47では、アクション決定部24は、拡張HMMにおいて獲得している既知状況のうちの、エージェントの現在の状況に類似する既知状況で、エージェントが行ったアクションを行う第1のストラテジに従って、アクションを決定する。
すなわち、ステップS341において、アクション決定部24は、状態認識部23(図4)からの1以上の現況状態系列の候補の中から、まだ、注目する注目状態系列としていない候補の1つを、注目状態系列に選択して、処理は、ステップS342に進む。
ステップS342では、アクション決定部24は、モデル記憶部22に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後の状態(以下、最後状態ともいう)を遷移元とする状態遷移の状態遷移確率の和を、アクションUmごとに、(第1のストラテジに従った)アクションUmを行う適正さを表すアクション適正度として求める。
すなわち、最後状態を、SI(Iは、1ないしNのうちの、いずれかの整数)と表すこととすると、アクション決定部24は、各アクションUmについての状態遷移確率平面の、j軸方向(水平方向)に並ぶ状態遷移確率aI,1(Um),aI,2(Um),・・・,aI,N(Um)の和を、アクション適正度として求める。
その後、処理は、ステップS342からステップS343に進み、アクション決定部24は、アクション適正度が求められたM個(種類)のアクションU1ないしUMの中で、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度を、0.0とする。
すなわち、アクション決定部24は、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度を、0.0とすることにより、注目状態系列に対し、アクション適正度が閾値未満のアクションUmを、第1のストラテジに従って行うべき次のアクションの候補から除外し、結果として、アクション適正度が閾値以上のアクションUmを、第1のストラテジに従って行うべき次のアクションの候補として選択する。
ステップS343の後、処理は、ステップS344に進み、アクション決定部24は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
ステップS344において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップS341に戻る。そして、ステップS341では、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の1つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
また、ステップS344において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、処理は、ステップS345に進み、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補それぞれに対して求められた各アクションUmについてのアクション適正度に基づき、次のアクションの候補の中から、次のアクションを決定して、処理はリターンする。
すなわち、アクション決定部24は、例えば、アクション適正度が最大の候補を、次のアクションに決定する。
また、アクション決定部24は、各アクションUmについて、アクション適正度の期待値(平均値)を求め、その期待値に基づき、次のアクションを決定する。
具体的には、例えば、アクション決定部24は、各アクションUmについて、1以上の現況状態系列の候補それぞれに対して求められたアクションUmについてのアクション適正度の期待値(平均値)を求める。
そして、アクション決定部24は、各アクションUmについての期待値に基づき、例えば、期待値が最大のアクションUmを、次のアクションに決定する。
あるいは、アクション決定部24は、各アクションUmについての期待値に基づき、例えば、SoftMax法により、次のアクションを決定する。
すなわち、アクション決定部24は、M個のアクションU1ないしUMのサフィックス1ないしMの範囲の整数mを、整数mをサフィックスとするアクションUmについての期待値に対応する確率でランダムに発生し、その発生した整数mをサフィックスとするアクションUmを、次のアクションに決定する。
以上のように、第1のストラテジに従って、アクションを決定する場合には、エージェントは、エージェントの現在の状況に類似する既知状況で、エージェントが行ったアクションを行う。
したがって、第1のストラテジによれば、エージェントが未知状況にいる場合に、エージェントに、既知状況でとるアクションと同様のアクションを行わせたいときに、エージェントに適切なアクションを行わせることができる。
かかる第1のストラテジに従ったアクションの決定は、エージェントが未知状況にいる場合の他、例えば、エージェントが、上述したオープン端に到達した後に行うべきアクションを決定する場合に行うことができる。
ところで、エージェントが未知状況にいる場合に、エージェントに、既知状況でとるアクションと同様のアクションを行わせると、エージェントが、アクション環境をさまようおそれがある。
エージェントが、アクション環境をさまよう場合、エージェントは、既知の場所(領域)に戻る(現在の状況が、既知状況になる)可能性もあるし、未知の場所を開拓していく(現在の状況を、未知状況のままにし続ける)可能性もある。
したがって、エージェントを、既知の場所に戻らせたい場合、又は、エージェントに、未知の場所を開拓させたい場合に、エージェントが、アクション環境をさまようようなアクションは、エージェントが行うべきアクションとして、適切であるとは言い難い。
そこで、アクション決定部24は、第1のストラテジの他、以下の第2のストラテジや、第3のストラテジに従って、次のアクションを決定することができるようになっている。
図48は、第2のストラテジに従ったアクションの決定の概要を説明する図である。
第2のストラテジは、エージェントの(現在の)状況を認識可能にする情報を増加させるストラテジであり、この第2のストラテジに従って、アクションを決定することにより、エージェントが既知の場所に戻るアクションとして、適切なアクションを決定することができ、その結果、エージェントは、効率的に、既知の場所に戻ることができる。
すなわち、第2のストラテジに従ったアクションの決定では、アクション決定部24は、例えば、図48に示すように、状態認識部23からの1以上の現況状態系列の候補の最後状態stから、その最後状態stの直前の状態である直前状態st-1への状態遷移が生じるアクションを、次のアクションに決定する。
図49は、図4のアクション決定部24が、図44のステップS306で行う、第2のストラテジに従ったアクションの決定の処理を説明するフローチャートである。
ステップS351において、アクション決定部24は、状態認識部23(図4)からの1以上の現況状態系列の候補の中から、まだ、注目する注目状態系列としていない候補の1つを、注目状態系列に選択して、処理は、ステップS352に進む。
ここで、アクション決定部24は、状態認識部23からの現況状態系列の候補の系列長が1であり、最後状態の直前の直前状態が存在しない場合、ステップS351の処理を行う前に、モデル記憶部22に記憶された拡張HMM(の状態遷移確率)を参照し、状態認識部23からの1以上の現況状態系列の候補それぞれについて、最後状態を遷移先とする状態遷移が可能な状態を求める。
そして、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補それぞれについて、最後状態を遷移先とする状態遷移が可能な状態と、最後状態とを並べた状態系列を、現況状態系列の候補として扱う。後述する図51でも同様である。
ステップS352では、アクション決定部24は、モデル記憶部22に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後状態から、その最後状態の直前の直前状態への状態遷移の状態遷移確率を、アクションUmごとに、(第2のストラテジに従った)アクションUmを行う適正さを表すアクション適正度として求める。
すなわち、アクション決定部24は、アクションUmが行われた場合に、最終状態Siから直前状態Sjに状態遷移する状態遷移確率aij(Um)を、アクションUmについてのアクション適正度として求める。
その後、処理は、ステップS352からステップS353に進み、アクション決定部24は、M個(種類)のアクションU1ないしUMの中で、アクション適正度が最大のアクション以外のアクションについて求められたアクション適正度を、0.0とする。
すなわち、アクション決定部24は、アクション適正度が最大のアクション以外のアクションについて求められたアクション適正度を、0.0とすることにより、結果として、注目状態系列に対して、アクション適正度が最大のアクションを、第2のストラテジに従って行うべき次のアクションの候補として選択する。
ステップS353の後、処理は、ステップS354に進み、アクション決定部24は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
ステップS354において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップS351に戻る。そして、ステップS351では、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の1つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
また、ステップS354において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、処理は、ステップS355に進み、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補それぞれに対して求められた各アクションUmについてのアクション適正度に基づき、次のアクションの候補の中から、次のアクションを、図47のステップS345の場合と同様に決定して、処理はリターンする。
以上のように、第2のストラテジに従って、アクションを決定する場合には、エージェントは、来た道を戻るようなアクションを行い、その結果、エージェントの状況を認識可能にする情報(観測値)が増加していく。
したがって、第2のストラテジによれば、エージェントが未知状況にいる場合において、エージェントに、既知の場所に戻るアクションを行わせたいときに、エージェントに適切なアクションを行わせることができる。
図50は、第3のストラテジに従ったアクションの決定の概要を説明する図である。
第3のストラテジは、拡張HMMにおいて獲得していない未知状況の情報(観測値)を増加させるストラテジであり、この第3のストラテジに従って、アクションを決定することにより、エージェントに、未知の場所を開拓させるアクションとして、適切なアクションを決定することができ、その結果、エージェントは、効率的に、未知の場所を開拓することができる。
すなわち、第3のストラテジに従ったアクションの決定では、アクション決定部24は、例えば、図50に示すように、状態認識部23からの1以上の現況状態系列の候補の最後状態stから、その最後状態stの直前の状態である直前状態st-1への状態遷移以外の状態遷移が生じるアクションを、次のアクションに決定する。
図51は、図4のアクション決定部24が、図44のステップS306で行う、第3のストラテジに従ったアクションの決定の処理を説明するフローチャートである。
ステップS361において、アクション決定部24は、状態認識部23(図4)からの1以上の現況状態系列の候補の中から、まだ、注目する注目状態系列としていない候補の1つを、注目状態系列に選択して、処理は、ステップS362に進む。
ステップS362では、アクション決定部24は、モデル記憶部22に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後状態から、その最後状態の直前の直前状態への状態遷移の状態遷移確率を、アクションUmごとに、(第2のストラテジに従った)アクションUmを行う適正さを表すアクション適正度として求める。
すなわち、アクション決定部24は、アクションUmが行われた場合に、最終状態Siから直前状態Sjに状態遷移する状態遷移確率aij(Um)を、アクションUmについてのアクション適正度として求める。
その後、処理は、ステップS362からステップS363に進み、アクション決定部24は、注目状態系列に対して、M個(種類)のアクションU1ないしUMの中で、アクション適正度が最大のアクションを、状態を直前状態に戻す状態遷移が生じるアクション(以下、戻りアクションともいう)として検出する。
ステップS363の後、処理は、ステップS364に進み、アクション決定部24は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
ステップS364において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップS361に戻る。そして、ステップS361では、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の1つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
また、ステップS364において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、アクション決定部24は、現況状態系列の候補のすべてを、注目状態系列に選択したことをリセットして、処理は、ステップS365に進む。
ステップS365では、アクション決定部24は、ステップS361と同様に、状態認識部23からの1以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の1つを、注目状態系列に選択して、処理は、ステップS366に進む。
ステップS366では、アクション決定部24は、図47のステップS342の場合と同様に、モデル記憶部22に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後状態を遷移元とする状態遷移の状態遷移確率の和を、アクションUmごとに、(第3のストラテジに従った)アクションUmを行う適正さを表すアクション適正度として求める。
その後、処理は、ステップS366からステップS367に進み、アクション決定部24は、アクション適正度が求められたM個(種類)のアクションU1ないしUMの中で、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度と、戻りアクションについて求められたアクション適正度とを、0.0とする。
すなわち、アクション決定部24は、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度を、0.0とすることにより、結果として、注目状態系列に対し、アクション適正度が閾値以上のアクションUmを、第3のストラテジに従って行うべき次のアクションの候補として選択する。
さらに、アクション決定部24は、注目状態系列に対して選択したアクション適正度が閾値以上のアクションUmのうちの、戻りアクションについて求められたアクション適正度を、0.0とすることにより、結果として、注目状態系列に対し、戻りアクション以外のアクションを、第3のストラテジに従って行うべき次のアクションの候補として選択する。
ステップS367の後、処理は、ステップS368に進み、アクション決定部24は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
ステップS368において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップS365に戻る。そして、ステップS365では、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の1つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
また、ステップS368において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、処理は、ステップS369に進み、アクション決定部24は、状態認識部23からの1以上の現況状態系列の候補それぞれに対して求められた各アクションUmについてのアクション適正度に基づき、次のアクションの候補の中から、次のアクションを、図47のステップS345の場合と同様に決定して、処理はリターンする。
以上のように、第3のストラテジに従って、アクションを決定する場合には、エージェントは、戻りアクション以外のアクション、つまり、未知の場所を開拓していくアクションを行い、その結果、拡張HMMにおいて獲得していない未知状況の情報が増加していく。
したがって、第3のストラテジによれば、エージェントが未知状況にいる場合において、エージェントに、未知の場所を開拓させたいときに、エージェントに適切なアクションを行わせることができる。
以上のように、エージェントにおいて、拡張HMMに基づき、エージェントが現在の状況に至るための状態系列である現況状態系列の候補を算出し、その現状状態系列の候補を用い、所定のストラテジに従って、エージェントが次に行うべきアクションを決定することにより、エージェントは、アクションに対する報酬を算出する報酬関数等の、行うべきアクションのメトリックを与えられていなくても、拡張HMMで獲得した経験に基づき、アクションを決定することができる。
なお、状況の曖昧性を解消する行動決定手法として、例えば、特開2008-186326号公報には、1つの報酬関数によって行動(アクション)を決定する方法が記載されている。
図44の認識アクションモードの処理は、例えば、拡張HMMに基づき、エージェントが現在の状況に至るための状態系列である現況状態系列の候補を算出し、その現状状態系列の候補を用いて、アクションを決定する点や、エージェントが経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列が観測される、系列長qが最長の状態系列を、現況状態系列の候補として取得することが可能である点(図46)、後述するように、アクションの決定時に従うストラテジを切り替える(複数のストラテジの中から選択する)ことが可能である点等において、特開2008-186326号公報の行動決定手法と異なる。
ここで、上述したように、第2のストラテジは、エージェントの状況を認識可能にする情報を増加させるストラテジであり、第3のストラテジは、拡張HMMにおいて獲得していない未知状況の情報を増加させるストラテジであるから、第2及び第3のストラテジは、何らかの情報を増加させるストラテジである。
このように、何らかの情報を増加させる第2及び第3のストラテジに従ったアクションの決定は、図48ないし図51で説明した方法の他、以下のようにして行うことができる。
すなわち、ある時刻tにおいて、エージェントがアクションUmを行った場合に、観測値Oが観測される確率Pm(O)は、式(30)で表される。
なお、ρiは、時刻tに、状態Siにいる状態確率を表す。
いま、発生確率が、確率Pm(O)で表される情報の量を、I(Pm(O))と表すこととすると、何らかの情報を増加させるストラテジに従って、アクションを決定する場合の、そのアクションUm'のサフィックスm'は、式(31)で表される。
ここで、式(31)のargmax{I(Pm(O))}は、アクションUmのサフィックスmのうちの、かっこ内の情報の量I(Pm(O))を最大にするサフィックスm'を表す。
いま、情報として、エージェントの状況を認識可能にする情報(以下、認識可能化情報ともいう)を採用することとすると、式(31)に従って、アクションUm'を決定することは、認識可能化情報を増加させる第2のストラテジに従って、アクションを決定することになる。
また、情報として、拡張HMMにおいて獲得していない未知状況の情報(以下、未知状況情報ともいう)を採用することとすると、式(31)に従って、アクションUm'を決定することは、未知状況情報を増加させる第3のストラテジに従って、アクションを決定することになる。
ここで、発生確率が、確率Pm(O)で表される情報のエントロピーを、Ho(Pm)と表すこととすると、式(31)は、等価的に、以下の式で表すことができる。
すなわち、エントロピーHo(Pm)は、式(32)で表すことができる。
式(32)のエントロピーHo(Pm)が、大きい場合には、観測値Oが観測される確率Pm(O)が、各観測値で均等になるので、どのような観測値が観測されるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が増加し、エージェントが知らない、いわば未知の世界の情報を獲得する可能性が高くなる。
したがって、エントロピーHo(Pm)を大きくすることで、未知状況情報は増加するから、未知状況情報を増加させる第3のストラテジに従って、アクションを決定する場合の式(31)は、等価的に、エントロピーHo(Pm)を最大化する式(33)で表すことができる。
ここで、式(33)のargmax{ Ho(Pm)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーHo(Pm)を最大にするサフィックスm'を表す。
一方、式(32)のエントロピーHo(Pm)が、小さい場合には、観測値Oが観測される確率Pm(O)が、ある特定の観測値でのみ高くなるので、どのような観測値が観測されるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が解消され、エージェントの位置を確定しやすくなる。
したがって、エントロピーHo(Pm)を小さくすることで、認識可能化情報は増加するから、認識可能化情報を増加させる第2のストラテジに従って、アクションを決定する場合の式(31)は、等価的に、エントロピーHo(Pm)を最小化する式(34)で表すことができる。
ここで、式(34)のargmin{ Ho(Pm)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーHo(Pm)を最小にするサフィックスm'を表す。
なお、その他、例えば、確率Pm(O)の最大値と閾値との大小関係に基づいて、確率Pm(O)を最大にするアクションUmを、次のアクションに決定することができる。
確率Pm(O)の最大値が閾値より大である(以上である)場合に、確率Pm(O)を最大にするアクションUmを、次のアクションに決定することは、曖昧性を解消するようにアクションを決定すること、つまり、第2のストラテジに従って、アクションを決定することになる。
一方、確率Pm(O)の最大値が閾値以下である(未満である)場合に、確率Pm(O)を最大にするアクションUmを、次のアクションに決定することは、曖昧さが増加するようにアクションを決定すること、つまり、第3のストラテジに従って、アクションを決定することになる。
以上においては、ある時刻tにおいて、エージェントがアクションUmを行った場合に、観測値Oが観測される確率Pm(O)を用いて、アクションを決定したが、その他、アクションの決定は、例えば、ある時刻tにおいて、エージェントがアクションUmを行った場合に、状態Siから状態Sjに状態遷移する式(35)の確率Pmjを用いて行うことができる。
すなわち、いま、発生確率が、確率Pmjで表される情報の量I(Pmj)を増加させるストラテジに従って、アクションを決定する場合の、そのアクションUm'のサフィックスm'は、式(36)で表される。
ここで、式(36)のargmax{I(Pmj)}は、アクションUmのサフィックスmのうちの、かっこ内の情報の量I(Pmj)を最大にするサフィックスm'を表す。
いま、情報として、認識可能化情報を採用することとすると、式(36)に従って、アクションUm'を決定することは、認識可能化情報を増加させる第2のストラテジに従って、アクションを決定することになる。
また、情報として、未知状況情報を採用することとすると、式(36)に従って、アクションUm'を決定することは、未知状況情報を増加させる第3のストラテジに従って、アクションを決定することになる。
ここで、発生確率が、確率Pmjで表される情報のエントロピーを、Hj(Pm)と表すこととすると、式(36)は、等価的に、以下の式で表すことができる。
すなわち、エントロピーHj(Pm)は、式(37)で表すことができる。
式(37)のエントロピーHj(Pm)が、大きい場合には、状態Siから状態Sjに状態遷移する確率Pmjが、各状態遷移で均等になるので、どのような状態遷移が生じるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が増加し、エージェントが知らない、未知の世界の情報を獲得する可能性が高くなる。
したがって、エントロピーHj(Pm)を大きくすることで、未知状況情報は増加するから、未知状況情報を増加させる第3のストラテジに従って、アクションを決定する場合の式(36)は、等価的に、エントロピーHj(Pm)を最大化する式(38)で表すことができる。
ここで、式(38)のargmax{ Hj(Pm)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーH(Pmj)を最大にするサフィックスm'を表す。
一方、式(37)のエントロピーHj(Pm)が、小さい場合には、状態Siから状態Sjに状態遷移する確率Pmjが、ある特定の状態遷移でのみ高くなるので、どのような観測値が観測されるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が解消され、エージェントの位置を確定しやすくなる。
したがって、エントロピーHj(Pm)を小さくすることで、認識可能化情報は増加するから、認識可能化情報を増加させる第2のストラテジに従って、アクションを決定する場合の式(36)は、等価的に、エントロピーHj(Pm)を最小化する式(39)で表すことができる。
ここで、式(39)のargmin{H(Pmj)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーHj(Pm)を最小にするサフィックスm'を表す。
なお、その他、例えば、確率Pmjの最大値と閾値との大小関係に基づいて、確率Pmjを最大にするアクションUmを、次のアクションに決定することができる。
確率Pmjの最大値が閾値より大である(以上である)場合に、確率Pmjを最大にするアクションUmを、次のアクションに決定することは、曖昧性を解消するようにアクションを決定すること、つまり、第2のストラテジに従って、アクションを決定することになる。
一方、確率Pmjの最大値が閾値以下である(未満である)場合に、確率Pmjを最大にするアクションUmを、次のアクションに決定することは、曖昧さが増加するようにアクションを決定すること、つまり、第3のストラテジに従って、アクションを決定することになる。
その他、曖昧性を解消するようなアクションの決定、つまり、第2のストラテジに従ったアクションの決定は、観測値Oが観測されたときに、状態SXにいる事後確率P(X|O)を用いて行うことができる。
すなわち、事後確率P(X|O)は、式(40)で表される。
事後確率P(X|O)のエントロピーを、H(P(X|O))と表すこととすると、エントロピーH(P(X|O))を小さくするように、アクションを決定することで、第2のストラテジに従ったアクションの決定を行うことができる。
すなわち、式(41)に従って、アクションUmを決定することで、第2のストラテジに従ったアクションの決定を行うことができる。
ここで、式(41)のargmin{}は、アクションUmのサフィックスmのうちの、かっこ内の値を最小にするサフィックスm'を表す。
式(41)のargmin{}のかっこ内のΣP(O)H(P(X|O))は、観測値Oが観測される確率P(O)と、その観測値Oが観測されたときに、状態SXにいる事後確率P(X|O)のエントロピーH(P(X|O))との積の、観測値Oを、観測値O1ないしOKに変化させての総和であり、アクションUmが行われた場合に、観測値O1ないしOKが観測されるエントロピー全体を表す。
式(41)によれば、エントロピーΣP(O)H(P(X|O))を最小化するアクション、つまり、観測値Oが一意に決まる可能性が高いアクションが、次のアクションに決定される。
したがって、式(41)に従ってアクションを決定することは、曖昧性を解消するようにアクションを決定すること、つまり、第2のストラテジに従って、アクションを決定することになる。
また、曖昧さを増加するようなアクションの決定、つまり、第3のストラテジに従ったアクションの決定は、状態SXにいる事前確率P(X)のエントロピーH(P(X))に対して、事後確率P(X|O)のエントロピーH(P(X|O))が、どれだけ減少しているかを表す減少分を、未知状況情報の量であるとして、その減少分を最大にするように行うことができる。
すなわち、事前確率P(X)は、式(42)で表される。
状態SXにいる事前確率P(X)のエントロピーH(P(X))に対する、事後確率P(X|O)のエントロピーH(P(X|O))の減少分を最大にするアクションUm'は、式(43)に従って決定することができる。
ここで、式(43)のargmax{}は、アクションUmのサフィックスmのうちの、かっこ内の値を最大にするサフィックスm'を表す。
式(43)によれば、観測値Oが分からない場合に、状態Sxにいる状態確率である事前確率P(X)のエントロピーH(P(X))と、アクションUmが行われた場合に、観測値Oが観測され、状態SXにいる事後確率P(X|O)のエントロピーH(P(X|O))との差分H(P(X))-H(P(X|O))に、観測値Oが観測される確率P(O)を乗算した乗算値P(O)(H(P(X))-H(P(X|O)))の、観測値Oを、観測値O1ないしOKに変化させての総和ΣP(O)(H(P(X))-H(P(X|O)))が、アクションUmが行われることによって増加した未知状況情報の量として、その未知状況情報の量を最大化するアクションが、次のアクションに決定される。
[ストラテジの選択]
エージェントは、図47ないし図51で説明したように、第1ないし第3のストラテジに従って、アクションを決定することができる。アクションを決定するときに従うストラテジは、あらかじめ設定しておくことができるが、その他、複数のストラテジである第1ないし第3のストラテジの中から、適応的に選択することができる。
図52は、エージェントが、複数のストラテジの中から、アクションを決定するときに従うストラテジを選択する処理を説明するフローチャートである。
ここで、第2のストラテジによれば、認識可能化情報が増加し、曖昧性を解消するように、つまり、エージェントが、既知の場所(領域)に戻るように、アクションが決定される。
一方、第3のストラテジによれば、未知状況情報が増加し、曖昧さが増加するように、つまり、エージェントが、未知の場所を開拓していくように、アクションが決定される。
なお、第1のストラテジによれば、エージェントが、既知の場所に戻るか、未知の場所を開拓していくかは、分からないが、エージェントの現在の状況に類似する既知状況で、エージェントが行ったアクションが行われる。
ここで、アクション環境の構造を、広く獲得すること、すなわち、いわば、エージェントの知識(既知の世界)を増加させていくには、エージェントが、未知の場所を開拓していくように、アクションを決定する必要がある。
一方、エージェントが、未知の場所を、既知の場所として獲得するには、未知の場所から、既知の場所に戻って、未知の場所を、既知の場所と結びつけるために、拡張HMMの学習(追加学習)を行う必要がある。したがって、エージェントが、未知の場所を、既知の場所として獲得するには、エージェントが、既知の場所に戻るように、アクションを決定する必要がある。
そして、エージェントが、未知の場所を開拓していくように、アクションを決定することと、既知の場所に戻るように、アクションを決定することとを、バランス良く行うことで、アクション環境の全体の構造を、効率的に、拡張HMMにモデル化することができる。
そこで、エージェントは、第2及び第3のストラテジの中から、アクションを決定するときに従うストラテジを、図52に示すように、エージェントの状況が未知状況になってからの経過時間に基づいて選択することができる。
すなわち、ステップS381において、アクション決定部24(図4)は、状態認識部23における、現在の状況の認識結果に基づいて、未知状況になってからの経過時間(以下、未知状況経過時間ともいう)を取得し、処理は、ステップS382に進む。
ここで、未知状況経過時間とは、状態認識部23において、現在の状況が、未知状況であるとの認識結果が連続している回数であり、現在の状況が、既知状況であるとの認識結果が得られた場合には、0にリセットされる。したがって、現在の状況が未知状況でない場合(既知状況である場合)には、未知状況経過時間は、0となる。
ステップS382では、アクション決定部24は、未知状況経過時間が、所定の閾値より大であるかどうかを判定する。
ステップS382において、未知状況経過時間が、所定の閾値より大でないと判定された場合、すなわち、エージェントの状況が未知状況になっている時間が、それほど経過していない場合、処理は、ステップS383に進み、アクション決定部24は、アクションを決定するときに従うストラテジとして、第2及び第3のストラテジのうちの、未知状況情報を増加させる第3のストラテジを選択して、処理は、ステップS381に戻る。
また、ステップS382において、未知状況経過時間が、所定の閾値より大であると判定された場合、すなわち、エージェントの状況が未知状況になっている時間が、かなり経過している場合、処理は、ステップS384に進み、アクション決定部24は、アクションを決定するときに従うストラテジとして、第2及び第3のストラテジのうちの、認識可能化情報を増加させる第2のストラテジを選択して、処理は、ステップS381に戻る。
図52では、アクションを決定するときに従うストラテジを、エージェントの状況が未知状況になってからの経過時間に基づいて選択することとしたが、アクションを決定するときに従うストラテジは、その他、例えば、間近の所定時間のうちの、既知状況の時間、又は、未知状況の時間の割合に基づいて選択することができる。
図53は、アクションを決定するときに従うストラテジを、間近の所定時間のうちの、既知状況の時間、又は、未知状況の時間の割合に基づいて選択する処理を説明するフローチャートである。
ステップS391において、アクション決定部24(図4)は、状態認識部23から、間近の所定時間分の状況の認識結果を取得し、その認識結果から、状況が未知状況であった割合(以下、未知率ともいう)を算出して、処理は、ステップS392に進む。
ステップS392では、アクション決定部24は、未知率が、所定の閾値より大であるかどうかを判定する。
ステップS392において、未知率が、所定の閾値より大でないと判定された場合、すなわち、エージェントの状況が未知状況になっている割合が、それほど多くない場合、処理は、ステップS393に進み、アクション決定部24は、アクションを決定するときに従うストラテジとして、第2及び第3のストラテジのうちの、未知状況情報を増加させる第3のストラテジを選択して、処理は、ステップS391に戻る。
また、ステップS382において、未知率が、所定の閾値より大であると判定された場合、すなわち、エージェントの状況が未知状況になっている割合が、かなり多い場合、処理は、ステップS394に進み、アクション決定部24は、アクションを決定するときに従うストラテジとして、第2及び第3のストラテジのうちの、認識可能化情報を増加させる第2のストラテジを選択して、処理は、ステップS391に戻る。
なお、図53では、間近の所定時間分の状況の認識結果における、状況が未知状況であった割合(未知率)に基づいて、ストラテジの選択を行うようにしたが、ストラテジの選択は、間近の所定時間分の状況の認識結果における、状況が既知状況であった割合(以下、既知率ともいう)に基づいて行うことができる。
ストラテジの選択を、既知率に基づいて行う場合、既知率が閾値より大である場合には、第3のストラテジが、既知率が閾値より大でない場合には、第2のストラテジが、それぞれ、アクションを決定するときのストラテジとして選択される。
また、図52のステップS383、及び、図53のステップS393では、何回かに1回の割合等で、第3のストラテジに代えて、第1のストラテジを、アクションを決定するときのストラテジとして選択することができる。
以上のようにストラテジを選択することで、アクション環境の全体の構造を、効率的に、拡張HMMにモデル化することができる。
[本発明を適用したコンピュータの説明]
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図54は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。