(57)【要約】【課題】エージェントが行うべきアクションとして、適切なアクションを決定する。【解決手段】学習部２１は、アクション可能なエージェントが行うアクションによって、状態が状態遷移する、アクションごとの状態遷移確率と、状態から、所定の観測値が観測される観測確率とで規定される拡張HMMの学習を、エージェントが行うアクションと、エージェントがアクションを行ったときにエージェントにおいて観測される観測値とを用いて行う。本発明は、例えば、自律的にアクションを行うエージェントに適用できる。【選択図】図４
2010287027.tif 000002
【特許請求の範囲】
【請求項１】
アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、所定の観測値が観測される観測確率と
で規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う学習手段
を備える情報処理装置。
【請求項２】
前記学習手段は、前記状態遷移確率モデルの１つの状態において、１つの観測値が観測される１状態１観測値制約の下で、前記状態遷移確率モデルの学習を行う
請求項１に記載の情報処理装置。
【請求項３】
前記学習手段は、
学習後の前記状態遷移確率モデルにおいて、複数の観測値が観測される状態を、分割対象の分割対象状態として検出し、
前記分割対象状態を、前記複数の観測値の１つずつが観測される複数の状態に分割し、
前記分割対象状態を前記複数の状態に分割した後の前記状態遷移確率モデルの学習を再度行う
ことを、前記分割対象状態が検出されなくなるまで繰り返すことで、前記１状態１観測値制約を充足する学習を行う
請求項２に記載の情報処理装置。
【請求項４】
前記学習手段は、
前記分割対象状態を分割した分割後状態に、前記複数の観測値のうちの１つの観測値を割り当て、
前記分割後状態において、前記分割後状態に割り当てられた観測値が観測される観測確率を、1に設定するとともに、他の観測値が観測される観測確率を、0に設定し、
前記分割後状態を遷移元とする状態遷移の状態遷移確率を、前記分割対象状態を遷移元とする状態遷移の状態遷移確率に設定するとともに、前記分割後状態を遷移先とする状態遷移の状態遷移確率を、前記分割後状態に割り当てられた観測値の、前記分割対象状態における観測確率で、前記分割対象状態を遷移先とする状態遷移の状態遷移確率を補正した値に設定する
ことで、前記分割対象状態を、複数の前記分割後状態に分割する
請求項３に記載の情報処理装置。
【請求項５】
前記学習手段は、
所定のアクションが行われたときの状態遷移の遷移元又は遷移先の状態として、複数の状態が存在し、その複数の状態それぞれにおいて、同一の観測値が観測される場合に、前記複数の状態を、１つの状態にマージする
請求項２に記載の情報処理装置。
【請求項６】
前記学習手段は、
所定のアクションが行われたときの状態遷移の遷移元又は遷移先の前記状態遷移確率モデルの状態として、複数の状態が存在し、その複数の状態それぞれにおいて観測される、前記観測確率が最大の観測値が一致する場合の、前記複数の状態を、マージ対象のマージ対象状態として検出し、
前記マージ対象状態である複数の状態をマージして、前記１つの状態にするときの、その１つの状態である代表状態において、各観測値が観測される観測確率を、前記マージ対象状態である複数の状態それぞれにおいて、各観測値が観測される観測確率の平均値に設定するとともに、前記マージ対象状態において、各観測値が観測される観測確率を、0に設定し、
前記代表状態を遷移元とする状態遷移の状態遷移確率を、前記マージ対象状態である複数の状態それぞれを遷移元とする状態遷移の状態遷移確率の平均値に設定するとともに、前記代表状態を遷移先とする状態遷移の状態遷移確率を、前記マージ対象状態である複数の状態それぞれを遷移先とする状態遷移の状態遷移確率の和に設定し、
前記マージ対象状態を遷移元とする状態遷移の状態遷移確率、及び、遷移先とする状態遷移の状態遷移確率を、0に設定する
ことで、前記マージ対象状態である複数の状態を、前記代表状態にマージする
請求項５に記載の情報処理装置。
【請求項７】
前記学習手段は、
学習後の前記状態遷移確率モデルから、前記マージ対象状態である複数の状態を検出し、
前記マージ対象状態である複数の状態を、前記代表状態にマージし、
マージ後の前記状態遷移確率モデルの学習を再度行う
ことを、前記マージ対象状態が検出されなくなるまで繰り返すことで、前記１状態１観測値制約を充足する学習を行う
請求項６に記載の情報処理装置。
【請求項８】
前記状態遷移確率モデルは、HMM(Hidden Marcov Model)の状態遷移確率を、前記エージェントが行うアクションごとの状態遷移確率に拡張した拡張HMMであり、
前記学習手段は、Baum-Welchの再推定法に従い、各アクションについての前記状態遷移確率と、前記観測確率とを推定する、前記拡張HMMの学習を行う
請求項２に記載の情報処理装置。
【請求項９】
情報処理装置が、
アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、所定の観測値が観測される観測確率と
で規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う
ステップを含む情報処理方法。
【請求項１０】
アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、所定の観測値が観測される観測確率と
で規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う学習手段
として、コンピュータを機能させるためのプログラム。
【請求項１１】
アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、所定の観測値が観測される観測確率と
で規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う
ことにより得られる前記状態遷移確率モデルに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記エージェントの現在の状況を認識し、その現在の状況に対応する前記状態遷移確率モデルの状態である現在状態を求める状態認識手段と、
前記状態遷移確率モデルの状態の１つを、目標とする目標状態に決定する目標決定手段と、
前記状態遷移確率モデルに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定するアクション決定手段と
を備える情報処理装置。
【請求項１２】
前記状態認識手段は、さらに、前記現在状態の直前の状態から前記現在状態への状態遷移のときに前記エージェントが行ったアクションについての、前記直前の状態と前記現在状態以外の状態との間の状態遷移を抑制するように、状態遷移の抑制を行う抑制子を更新し、
前記アクション決定手段は、
前記抑制子を用いて、前記状態遷移確率モデルの前記状態遷移確率を補正し、
補正後の前記状態遷移確率に基づき、前記アクションプランを算出する
請求項１１に記載の情報処理装置。
【請求項１３】
前記状態認識手段は、さらに、時間の経過に応じて、状態遷移の抑制を緩和するように、前記抑制子を更新する
請求項１２に記載の情報処理装置。
【請求項１４】
所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、前記所定の観測値と同一の観測値が観測される他の状態であるオープン端を検出するオープン端検出手段をさらに備え、
前記目標決定手段は、前記オープン端を、前記目標状態に決定する
請求項１１に記載の情報処理装置。
【請求項１５】
前記オープン端検出手段は、
前記状態遷移確率と、前記観測確率とを用いて、各観測値が観測されるときに、前記エージェントが各アクションを行う確率であるアクション確率を求め、
前記アクション確率と、前記観測確率との乗算により、各観測値が観測される各状態において、前記エージェントが各アクションを行う確率である、観測確率に基づくアクション確率を算出し、
各状態について、その状態を遷移元とする状態遷移の前記状態遷移確率を、アクションごとに加算することにより、各状態において、前記エージェントが各アクションを行う確率である、状態遷移確率に基づくアクション確率を算出し、
前記観測確率に基づくアクション確率と、前記状態遷移確率に基づくアクション確率との差分が所定の閾値以上となる状態を、前記オープン端として検出する
請求項１４に記載の情報処理装置。
【請求項１６】
前記状態遷移確率に基づいて、１つのアクションが行われた場合に異なる状態への状態遷移が可能な状態である、分岐構造の状態を検出する分岐構造検出手段をさらに備え、
前記目標決定手段は、前記分岐構造の状態を、前記目標状態に決定する
請求項１１に記載の情報処理装置。
【請求項１７】
前記分岐構造の状態に到達してから経過した経過時間を記憶する記憶手段をさらに備え、
前記目標決定手段は、前記分岐構造検出手段において、複数の前記分岐構造の状態が検出された場合に、前記経過時間が最大の前記分岐構造の状態を、前記目標状態に決定する
請求項１６に記載の情報処理装置。
【請求項１８】
前記状態遷移確率モデルは、HMM(Hidden Marcov Model)の状態遷移確率を、前記エージェントが行うアクションごとの状態遷移確率に拡張した拡張HMMである
請求項１１に記載の情報処理装置。
【請求項１９】
情報処理装置が、
アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、所定の観測値が観測される観測確率と
で規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う
ことにより得られる前記状態遷移確率モデルに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記エージェントの現在の状況を認識し、その現在の状況に対応する前記状態遷移確率モデルの状態である現在状態を求め、
前記状態遷移確率モデルの状態の１つを、目標とする目標状態に決定し、
前記状態遷移確率モデルに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定する
ステップを含む情報処理方法。
【請求項２０】
アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、所定の観測値が観測される観測確率と
で規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う
ことにより得られる前記状態遷移確率モデルに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記エージェントの現在の状況を認識し、その現在の状況に対応する前記状態遷移確率モデルの状態である現在状態を求める状態認識手段と、
前記状態遷移確率モデルの状態の１つを、目標とする目標状態に決定する目標決定手段と、
前記状態遷移確率モデルに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定するアクション決定手段と
して、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び、プログラムに関し、例えば、各種のアクションを自律的に行うことが可能なエージェント（自律エージェント）の適切なアクションの決定を行うことができるようにする情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
状態予測や行動決定手法としては、例えば、部分観測マルコフ決定過程（Partially Observed Markov Decision Process）を適用し、学習データから静的な部分観測マルコフ決定過程を自動的に構築する方法がある（例えば、特許文献１を参照）。
【０００３】
また、自律移動ロボットや振り子の動作計画法として、マルコフ状態モデルで離散化された行動計画を行い、さらに、計画された目標を制御器に入力し、制御対象に与えるべき出力を導出することで所望の制御を行う方法がある（例えば、特許文献２や３を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2008-186326号公報
【特許文献２】特開2007-317165号公報
【特許文献３】特開2006-268812号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
各種のアクションを自律的に行うことが可能なエージェントの適切なアクションの決定を行う方法としては、種々の方法が提案されているが、さらなる新たな方法の提案が要請されている。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、エージェントの適切なアクションの決定を行うこと、つまり、エージェントが行うべきアクションとして、適切なアクションを決定することができるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の第１の側面の情報処理装置、及び、プログラムは、アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、前記状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う学習手段を備える情報処理装置、又は、情報処理装置として、コンピュータを機能させるためのプログラムである。
【０００８】
本発明の第１の側面の情報処理方法は、情報処理装置が、アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、前記状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行うステップを含む情報処理方法である。
【０００９】
以上のような第１の側面においては、アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、前記状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルの学習が、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行われる。
【００１０】
本発明の第２の側面の情報処理装置、又は、プログラムは、アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、前記状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行うことにより得られる前記状態遷移確率モデルに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記エージェントの現在の状況を認識し、その現在の状況に対応する前記状態遷移確率モデルの状態である現在状態を求める状態認識手段と、前記状態遷移確率モデルの状態の１つを、目標とする目標状態に決定する目標決定手段と、前記状態遷移確率モデルに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定するアクション決定手段とを備える情報処理装置、又は、情報処理装置として、コンピュータを機能させるためのプログラムである。
【００１１】
本発明の第２の側面の情報処理方法は、情報処理装置が、アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、前記状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行うことにより得られる前記状態遷移確率モデルに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記エージェントの現在の状況を認識し、その現在の状況に対応する前記状態遷移確率モデルの状態である現在状態を求め、前記状態遷移確率モデルの状態の１つを、目標とする目標状態に決定し、前記状態遷移確率モデルに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定する  ステップを含む情報処理方法である。
【００１２】
以上のような第２の側面においては、アクション可能なエージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、前記状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行うことにより得られる前記状態遷移確率モデルに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記エージェントの現在の状況が認識され、その現在の状況に対応する前記状態遷移確率モデルの状態である現在状態が求められる。また、前記状態遷移確率モデルの状態の１つが、目標とする目標状態に決定される。そして、前記状態遷移確率モデルに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランが算出され、そのアクションプランに従い、前記エージェントが次に行うべきアクションが決定される。
【００１３】
なお、情報処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【００１４】
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【００１５】
本発明の第１及び第２の側面によれば、エージェントが行うべきアクションとして、適切なアクションを決定することができる。
【図面の簡単な説明】
【００１６】
【図１】アクション環境を示す図である。
【図２】アクション環境の構造が変化する様子を示す図である。
【図３】エージェントが行うアクション、及び、エージェントが観測する観測値を示す図である。
【図４】本発明の情報処理装置を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【図５】反射アクションモードの処理を説明するフローチャートである。
【図６】拡張HMMの状態遷移確率を説明する図である。
【図７】拡張HMMの学習の処理を説明するフローチャートである。
【図８】認識アクションモードの処理を説明するフローチャートである。
【図９】目標決定部１６が行う目標状態の決定の処理を説明するフローチャートである。
【図１０】アクション決定部２４によるアクションプランの算出を説明する図である。
【図１１】アクション決定部２４が行う、抑制子を用いての、拡張HMMの状態遷移確率の補正を説明する図である。
【図１２】状態認識部２４が行う抑制子の更新の処理を説明するフローチャートである。
【図１３】オープン端検出部３７が検出するオープン端である拡張HMMの状態を説明する図である。
【図１４】オープン端検出部３７が、観測値Okが閾値以上の確率で観測される状態Siをリストアップする処理を説明する図である。
【図１５】観測値Okに対してリストアップされた状態Siを用いて、アクションテンプレートCを生成する方法を説明する図である。
【図１６】観測確率に基づくアクション確率Dを算出する方法を説明する図である。
【図１７】状態遷移確率に基づくアクション確率Eを算出する方法を説明する図である。
【図１８】差分アクション確率Fを模式的に示す図である。
【図１９】オープン端の検出の処理を説明するフローチャートである。
【図２０】分岐構造検出部３６による分岐構造の状態の検出の方法を説明する図である。
【図２１】シミュレーションで採用したアクション環境を示す図である。
【図２２】シミュレーションでの学習後の拡張HMMを模式的に示す図である。
【図２３】シミュレーションの結果を示す図である。
【図２４】シミュレーションの結果を示す図である。
【図２５】シミュレーションの結果を示す図である。
【図２６】シミュレーションの結果を示す図である。
【図２７】シミュレーションの結果を示す図である。
【図２８】シミュレーションの結果を示す図である。
【図２９】シミュレーションの結果を示す図である。
【図３０】エージェントを応用した掃除ロボットの概要を示す図である。
【図３１】１状態１観測値制約を実現するための状態の分割の概要を説明する図である。
【図３２】分割対象状態の検出の方法を説明する図である。
【図３３】分割対象状態を、分割後状態に分割する方法を説明する図である。
【図３４】１状態１観測値制約を実現するための状態のマージの概要を説明する図である。
【図３５】マージ対象状態の検出の方法を説明する図である。
【図３６】複数の分岐先状態を、１つの代表状態にマージする方法を説明する図である。
【図３７】１状態１観測値制約の下で行われる、拡張HMMの学習の処理を説明するフローチャートである。
【図３８】分割対象状態の検出の処理を説明するフローチャートである。
【図３９】状態の分割の処理を説明するフローチャートである。
【図４０】マージ対象状態の検出の処理を説明するフローチャートである。
【図４１】マージ対象状態の検出の処理を説明するフローチャートである。
【図４２】状態のマージの処理を説明するフローチャートである。
【図４３】１状態１観測値制約の下での拡張HMMの学習のシミュレーションを説明する図である。
【図４４】認識アクションモードの処理を説明するフローチャートである。
【図４５】現況状態系列の候補の算出の処理を説明するフローチャートである。
【図４６】現況状態系列の候補の算出の処理を説明するフローチャートである。
【図４７】第１のストラテジに従ったアクションの決定の処理を説明するフローチャートである。
【図４８】第２のストラテジに従ったアクションの決定の概要を説明する図である。
【図４９】第２のストラテジに従ったアクションの決定の処理を説明するフローチャートである。
【図５０】第３のストラテジに従ったアクションの決定の概要を説明する図である。
【図５１】第３のストラテジに従ったアクションの決定の処理を説明するフローチャートである。
【図５２】複数のストラテジの中から、アクションを決定するときに従うストラテジを選択する処理を説明するフローチャートである。
【図５３】複数のストラテジの中から、アクションを決定するときに従うストラテジを選択する処理を説明するフローチャートである。
【図５４】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
［エージェントがアクションを行う環境］
【００１８】
図１は、本発明の情報処理装置を適用したエージェントがアクションを行う環境であるアクション環境の例を示す図である。
【００１９】
エージェントは、移動等のアクション（行動）を自律的に行うことが可能（アクション可能）な、例えば、ロボット（実世界で行動するロボットでも良いし、仮想世界で行動する仮想的なロボットでも良い）等の装置である。
【００２０】
エージェントは、アクションを行うことによって、エージェント自身の状況を変化させること、及び、外部から観測可能な情報を観測し、その観測結果である観測値を用いて、状況を認識することができる。
【００２１】
また、エージェントは、状況の認識や、各状況において行うべきアクションの決定（選択）のために、エージェントがアクションを行うアクション環境のモデル（環境モデル）を構築する。
【００２２】
エージェントは、構造が固定のアクション環境は勿論、構造が固定ではなく、確率的に変化するアクション環境についても、効率的なモデル化（環境モデルの構築）を行う。
【００２３】
図１では、アクション環境は、２次元平面の迷路になっており、その構造は、確率的に変化するようになっている。なお、図１のアクション環境において、エージェントは、図中、白抜きの部分を、通路として移動することができる。
【００２４】
図２は、アクション環境の構造が変化する様子を示す図である。
【００２５】
図２のアクション環境では、時刻t=t1において、位置p1が壁になっており、位置p2が通路になっている。したがって、時刻t=t1では、アクション環境は、エージェントが位置p1を通ることはできないが、位置p2を通ることはできる構造になっている。
【００２６】
その後、時刻t=t2（＞t1）では、位置p1が壁から通路に変化し、その結果、アクション環境は、エージェントが位置p1及びp2のいずれをも通ることができる構造になっている。
【００２７】
さらに、その後の時刻t=t3では、位置p2が通路から壁に変化し、その結果、アクション環境は、エージェントが位置p1を通ることができ、位置p2を通ることができない構造になっている。
【００２８】
［エージェントが行うアクションと、エージェントが観測する観測値］
【００２９】
図３は、アクション環境において、エージェントが行うアクション、及び、エージェントが観測する観測値の例を示している。
【００３０】
エージェントは、図１に示したようなアクション環境の、図中、点線で正方形状に区切ったエリアを、観測値を観測する単位（観測単位）とし、その観測単位で移動するアクションを行う。
【００３１】
図３Ａは、エージェントが行うアクションの種類を示している。
【００３２】
図３Ａでは、エージェントは、図中、上方向に観測単位だけ移動するアクションU1、右方向に観測単位だけ移動するアクションU2、下方向に観測単位だけ移動するアクションU3、左方向に観測単位だけ移動するアクションU4、及び、移動しない（何もしない）アクションU5の、合計で、５つのアクションU1ないしU5を行うことが可能になっている。
【００３３】
図３Ｂは、エージェントが観測単位で観測する観測値の種類を、模式的に示している。
【００３４】
本実施の形態では、エージェントは、観測単位において、１５種類の観測値（シンボル）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は観測値の総数））は、いずれも離散値である。
【００４４】
［エージェントの構成例］
【００４５】
図４は、本発明の情報処理装置を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【００４６】
エージェントは、アクション環境をモデル化した環境モデルを、学習により獲得する。
【００４７】
また、エージェントは、観測値の系列（観測値系列）を用いて、エージェント自身の現在の状況の認識を行う。
【００４８】
さらに、エージェントは、現在の状況から、ある目標に向かうのに行うべきアクションのプラン（アクションプラン）をプランニングし、そのアクションプランに従って、次に行うべきアクションを決定する。
【００４９】
なお、エージェントが行う学習、状況の認識、アクションプランのプランニング（アクションの決定）は、エージェントが観測単位で上、下、左、又は右に移動する問題（タスク）の他、一般的に強化学習の課題として取り上げられる、マルコフ決定過程(MDP(Markov decision process))の枠組みで定式化が可能な問題に適用することができる。
【００５０】
図４において、エージェントは、アクション環境において、図３Ａに示したアクションUmを行うことによって、観測単位で移動し、移動後の観測単位で観測される観測値Okを取得する。
【００５１】
そして、エージェントは、現在までに行ったアクションUm（を表すシンボル）の系列であるアクション系列、及び、現在までに観測された観測値（を示すシンボル）Okの系列である観測値系列を用いて、アクション環境（の構造（をモデル化した環境モデル））の学習や、次に行うべきアクションの決定を行う。
【００５２】
エージェントがアクションを行うモードとしては、反射アクションモード（反射行動モード）と、認識アクションモード（認識行動モード）との２つのモードがある。
【００５３】
反射アクションモードでは、過去に得られた観測値系列とアクション系列とから、次に行うべきアクションを決定するルールを、生得的なルールとして設計しておく。
【００５４】
ここで、生得的なルールとしては、例えば、壁にぶつからないように、アクションを決定する（通路中での往復運動を許す）ルール、又は、壁にぶつからにように、かつ、行き止まるまでは、来た道を戻らないように、アクションを決定するルール等を採用することができる。
【００５５】
エージェントでは、生得的なルールに従い、エージェントにおいて観測される観測値に対して、次に行うべきアクションを決定し、そのアクションを行った後の観測単位で観測値を観測することを繰り返す。
【００５６】
これにより、エージェントは、アクション環境を移動したときのアクション系列と観測値系列とを獲得する。このようにして反射アクションモードで獲得されたアクション系列と観測値系列は、アクション環境の学習に用いられる。すなわち、反射アクションモードは、主として、アクション環境の学習に用いる学習データとなるアクション系列と観測値系列を獲得するために用いられる。
【００５７】
認識アクションモードでは、エージェントは、目標を決定し、現在の状況を認識して、その現在の状況から目標を達成するためのアクションプランを決定する。そして、エージェントは、アクションプランに従って、次に行うべきアクションを決定する。
【００５８】
なお、反射アクションモードと、認識アクションモードとの切り替えは、例えば、ユーザの操作等に応じて行うことができる。
【００５９】
図４において、エージェントは、反射アクション決定部１１、アクチュエータ１２、センサ１３、履歴記憶部１４、アクション制御部１５、及び、目標決定部１６から構成される。
【００６０】
反射アクション決定部１１には、センサ１３が出力する、アクション環境において観測された観測値が供給される。
【００６１】
反射アクション決定部１１は、反射アクションモードにおいて、生得的なルールに従い、センサ１３から供給される観測値に対して、次に行うべきアクションを決定し、アクチュエータ１２を制御する。
【００６２】
アクチュエータ１２は、例えば、エージェントが、実世界を歩行するロボットである場合には、エージェントを歩行させるためのモーター等であり、反射アクション決定部１１や、後述するアクション決定部２４の制御に従って駆動する。アクチュエータが駆動することにより、アクション環境において、エージェントは、反射アクション決定部１１やアクション決定部２４で決定されたアクションを行う。
【００６３】
センサ１３は、外部から観測可能な情報をセンシングし、そのセンシング結果としての観測値を出力する。
【００６４】
すなわち、センサ１３は、アクション環境の、エージェントが存在する観測単位を観測し、その観測単位を表すシンボルを、観測値として出力する。
【００６５】
なお、図４では、センサ１３は、アクチュエータ１２をも観測し、これにより、エージェントが行ったアクション（を表すシンボル）も出力する。
【００６６】
センサ１３が出力する観測値は、反射アクション決定部１１と、履歴記憶部１４とに供給される。また、センサ１３が出力するアクションは、履歴記憶部１４に供給される
【００６７】
履歴記憶部１４は、センサ１３が出力する観測値とアクションを順次記憶する。これにより、履歴記憶部１４には、観測値の系列（観測値系列）とアクションの系列（アクション系列）とが記憶される。
【００６８】
なお、ここでは、外部から観測可能な観測値として、エージェントが存在する観測単位を表すシンボルを採用するが、観測値としては、エージェントが存在する観測単位を表すシンボルと、エージェントが行ったアクションを表すシンボルとのセットを採用することが可能である。
【００６９】
アクション制御部１５は、履歴記憶部１４に記憶された観測値系列、及び、アクション系列を用いて、アクション環境の構造を記憶（獲得）させる環境モデルとしての状態遷移確率モデルの学習を行う。
【００７０】
また、アクション制御部１５は、学習後の状態遷移確率モデルに基づき、アクションプランを算出する。さらに、アクション制御部１５は、アクションプランに従って、エージェントが次に行うべきアクションを決定し、そのアクションに従って、アクチュエータ１２を制御することで、エージェントにアクションを行わせる。
【００７１】
すなわち、アクション制御部１５は、学習部２１、モデル記憶部２２、状態認識部２３、及び、アクション決定部２４から構成される。
【００７２】
学習部２１は、履歴記憶部１４に記憶されたアクション系列、及び、観測値系列を用いて、モデル記憶部２２に記憶された状態遷移確率モデルの学習を行う。
【００７３】
ここで、学習部２１が学習の対象とする状態遷移確率モデルは、エージェントが行うアクションによって、状態が状態遷移する、アクションごとの状態遷移確率と、状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルである。
【００７４】
状態遷移確率モデルとしては、例えば、HMM(Hidden Marcov Model)があるが、一般のHMMの状態遷移確率は、アクションごとに存在しない。そこで、本実施の形態では、HMM(Hidden Marcov Model)の状態遷移確率を、エージェントが行うアクションごとの状態遷移確率に拡張し、そのように状態遷移確率が拡張されたHMM（以下、拡張HMMともいう）を、学習部２１による学習の対象として採用する。
【００７５】
モデル記憶部２２は、拡張HMM（を規定するモデルパラメータである状態遷移確率や、観測確率等）を記憶する。また、モデル記憶部２２は、後述する抑制子を記憶する。
【００７６】
状態認識部２３は、認識アクションモードにおいて、モデル記憶部２２に記憶された拡張HMMに基づき、履歴記憶部１４に記憶されたアクション系列、及び、観測値系列を用いて、エージェントの現在の状況を認識し、その現在の状況に対応する、拡張HMMの状態である現在状態を求める（認識する）。
【００７７】
そして、状態認識部２３は、現在状態を、アクション決定部２４に供給する。
【００７８】
また、状態認識部２３は、現在状態等に応じて、モデル記憶部２２に記憶された抑制子の更新と、後述する経過時間管理テーブル記憶部３２に記憶された経過時間管理テーブルの更新とを行う。
【００７９】
アクション決定部２４は、認識アクションモードにおいて、エージェントが行うべきアクションをプランニングするプランナとして機能する。
【００８０】
すなわち、アクション決定部２４には、状態認識部２３から現在状態が供給される他、目標決定部１６から、モデル記憶部２２に記憶された拡張HMMの状態のうちの１つの状態が、目標とする目標状態として供給される。
【００８１】
アクション決定部２４は、モデル記憶部２２に記憶された拡張HMMに基づき、状態認識部２３からの現在状態から、目標決定部１６からの目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出（決定）する。
【００８２】
さらに、アクション決定部２４は、アクションプランに従い、エージェントが次に行うべきアクションを決定し、その決定したアクションに従って、アクチュエータ１２を制御する。
【００８３】
目標決定部１６は、認識アクションモードにおいて、目標状態を決定し、アクション決定部２４に供給する。
【００８４】
すなわち、目標決定部１６は、目標選択部３１、経過時間管理テーブル記憶部３２、外部目標入力部３３、及び、内部目標生成部３４から構成される。
【００８５】
目標選択部３１には、外部目標入力部３３からの、目標状態としての外部目標と、内部目標生成部３４からの、目標状態としての内部目標とが供給される。
【００８６】
目標選択部３１は、外部目標入力部３３からの外部目標としての状態、又は、内部目標生成部３４からの内部目標としての状態を選択し、その選択した状態を、目標状態に決定して、アクション決定部２４に供給する。
【００８７】
経過時間管理テーブル記憶部３２は、経過時間管理テーブルを記憶する。経過時間管理テーブルには、モデル記憶部２２に記憶された拡張HMMの各状態について、その状態が現在状態になってから経過した経過時間等が登録される。
【００８８】
外部目標入力部３３は、（エージェントの）外部から与えられる状態を、目標状態としての外部目標として、目標選択部３１に供給する。
【００８９】
すなわち、外部目標入力部３３は、例えば、ユーザが目標状態とする状態を、外部から指定するときに、ユーザによって操作される。外部目標入力部３３は、ユーザの操作によって指定された状態を、目標状態である外部目標として、目標選択部３１に供給する。
【００９０】
内部目標生成部３４は、（エージェントの）内部で、目標状態としての内部目標を生成し、目標選択部３１に供給する。
【００９１】
すなわち、内部目標生成部３４は、ランダム目標生成部３５、分岐構造検出部３６、及び、オープン端検出部３７から構成される。
【００９２】
ランダム目標生成部３５は、モデル記憶部２２に記憶された拡張HMMの状態の中から、ランダムに、１つの状態を、ランダム目標として選択し、そのランダム目標を、目標状態である内部目標として、目標選択部３１に供給する。
【００９３】
分岐構造検出部３６は、モデル記憶部２２に記憶された拡張HMMの状態遷移確率に基づいて、同一のアクションが行われた場合に異なる状態への状態遷移が可能な状態である、分岐構造の状態を検出し、その分岐構造の状態を、目標状態である内部目標として、目標選択部３１に供給する。
【００９４】
なお、分岐構造検出部３６において、拡張HMMから、分岐構造の状態として、複数の状態が検出された場合には、目標選択部３１は、経過時間管理テーブル記憶部３２の経過時間管理テーブルを参照し、複数の分岐構造の状態の中で、経過時間が最大の分岐構造の状態を、目標状態に選択する。
【００９５】
オープン端検出部３７は、モデル記憶部２２に記憶された拡張HMMにおいて、所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、所定の観測値と同一の観測値が観測される他の状態であるオープン端として検出する。そして、オープン端検出部３７は、オープン端を、目標状態である内部目標として、目標選択部３１に供給する。
【００９６】
［反射アクションモードの処理］
【００９７】
図５は、図４のエージェントが行う、反射アクションモードの処理を説明するフローチャートである。
【００９８】
ステップＳ１１において、反射アクション決定部１１は、時刻をカウントする変数tを、初期値としての、例えば、1に設定し、処理は、ステップＳ１２に進む。
【００９９】
ステップＳ１２では、センサ１３が、アクション環境から、現在の観測値（時刻tの観測値）otを取得して出力し、処理は、ステップＳ１３に進む。
【０１００】
ここで、時刻tの観測値otは、本実施の形態では、図３Ｂに示した１５個の観測値O1ないしO15のうちのいずれかである。
【０１０１】
ステップＳ１３では、エージェントは、センサ１３が出力した観測値otを、反射アクション決定部１１に供給し、処理は、ステップＳ１４に進む。
【０１０２】
ステップＳ１４では、反射アクション決定部１１が、生得的なルールに従い、センサ１３からの観測値otに対して、時刻tに行うべきアクションutを決定し、そのアクションutに従って、アクチュエータ１２を制御して、処理は、ステップＳ１５に進む。
【０１０３】
ここで、時刻tのアクションutは、本実施の形態では、図３Ａに示した５個のアクションU1ないしU5のうちのいずれかである。
【０１０４】
また、以下、ステップＳ１４で決定されたアクションutを、決定アクションutともいう。
【０１０５】
ステップＳ１５では、アクチュエータ１２は、反射アクション決定部１１の制御に従って駆動し、これにより、エージェントは、決定アクションutを行う。
【０１０６】
このとき、センサ１３は、アクチュエータ１２を観測しており、エージェントが行ったアクションut（を表すシンボル）を出力する。
【０１０７】
そして、処理は、ステップＳ１５からステップＳ１６に進み、履歴記憶部１４は、センサ１３が出力した観測値otとアクションutとを、観測値及びアクションの履歴として、既に記憶している観測値及びアクションの系列に追加する形で記憶し、処理は、ステップＳ１７に進む。
【０１０８】
ステップＳ１７では、反射アクション決定部１１は、反射アクションモードで行うアクションの回数として、あらかじめ指定（設定）された回数だけ、エージェントがアクションを行ったかどうかを判定する。
【０１０９】
ステップＳ１７において、エージェントが、あらかじめ指定された回数だけのアクションを、まだ、行っていないと判定された場合、処理は、ステップＳ１８に進み、反射アクション決定部１１は、時刻tを1だけインクリメントする。そして、処理は、ステップＳ１８からステップＳ１２に戻り、以下、同様の処理が繰り返される。
【０１１０】
また、ステップＳ１７において、エージェントが、あらかじめ指定された回数だけのアクションを行ったと判定された場合、すなわち、時刻tが、あらかじめ指定された回数に等しい場合、反射アクションモードの処理は、終了する。
【０１１１】
反射アクションモードの処理によれば、観測値otの系列（観測値系列）と、観測値otが観測されるときにエージェントが行ったアクションutの系列（アクション系列）とが（アクションutの系列と、アクションutが行われたときにエージェントにおいて観測される値ot+1の系列とが）、履歴記憶部１４に記憶されていく。
【０１１２】
そして、エージェントでは、学習部２１が、履歴記憶部１４に記憶された観測値系列とアクション系列とを、学習データとして用いて、拡張HMMの学習を行う。
【０１１３】
拡張HMMでは、一般（従来）のHMMの状態遷移確率が、エージェントが行うアクションごとの状態遷移確率に拡張されている。
【０１１４】
図６は、拡張HMMの状態遷移確率を説明する図である。
【０１１５】
すなわち、図６Ａは、一般のHMMの状態遷移確率を示している。
【０１１６】
いま、拡張HMMを含むHMMとして、ある状態から任意の状態に状態遷移が可能なエルゴディックなHMMを採用することとする。また、HMMの状態の数がN個であるとする。
【０１１７】
この場合、一般のHMMでは、N個の各状態Siから、N個の状態Sjのそれぞれへの、N×N個の状態遷移の状態遷移確率aijを、モデルパラメータとして有する。
【０１１８】
一般のHMMのすべての状態遷移確率は、状態Siから状態Sjへの状態遷移の状態遷移確率aijを、上からi番目で、左からj番目に配置した２次元のテーブルで表現することができる。
【０１１９】
ここで、HMMの状態遷移確率のテーブルを、状態遷移確率Aとも記載する。
【０１２０】
図６Ｂは、拡張HMMの状態遷移確率Aを示している。
【０１２１】
拡張HMMでは、状態遷移確率が、エージェントが行うアクションUmごとに存在する。
【０１２２】
ここで、あるアクションUmについての、状態Siから状態Sjへの状態遷移の状態遷移確率を、aij(Um)とも記載する。
【０１２３】
状態遷移確率aij(Um)は、エージェントがアクションUmを行ったときに、状態Siから状態Sjへの状態遷移が生じる確率を表す。
【０１２４】
拡張HMMのすべての状態遷移確率は、アクションUmについての、状態Siから状態Sjへの状態遷移の状態遷移確率aij(Um)を、上からi番目で、左からj番目の、奥行き方向に手前側からm番目に配置した３次元のテーブルで表現することができる。
【０１２５】
ここで、状態遷移確率Aの３次元のテーブルにおいて、垂直方向の軸を、i軸と、水平方向の軸を、j軸と、奥行き方向の軸を、m軸、又は、アクション軸と、それぞれいうこととする。
【０１２６】
また、状態遷移確率Aの３次元のテーブルを、アクション軸のある位置mで、アクション軸に垂直な平面で切断して得られる、状態遷移確率aIj(Um)で構成される平面を、アクションUmについての状態遷移確率平面ともいう。
【０１２７】
さらに、状態遷移確率Aの３次元のテーブルを、i軸のある位置Iで、i軸に垂直な平面で切断して得られる、状態遷移確率aIj(Um)で構成される平面を、状態SIについてのアクション平面ともいう。
【０１２８】
状態SIについてのアクション平面を構成する状態遷移確率aIj(Um)は、状態SIを遷移元とする状態遷移が生じるときに各アクションUmが行われる確率を表す。
【０１２９】
なお、拡張HMMは、モデルパラメータとして、アクションごとの状態遷移確率aij(Um)の他、一般のHMMと同様に、最初の時刻t=1に、状態Siにいる初期状態確率πiと、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)とを有する。
【０１３０】
［拡張HMMの学習］
【０１３１】
図７は、図４の学習部２１が、履歴記憶部１４に記憶された学習データとしての観測値系列及びアクション系列を用いて行う、拡張HMMの学習の処理を説明するフローチャートである。
【０１３２】
ステップＳ２１において、学習部２１は、拡張HMMを初期化する。
【０１３３】
すなわち、学習部２１は、モデル記憶部２２に記憶された拡張HMMのモデルパラメータである初期状態確率πi、（アクションごとの）状態遷移確率aij(Um)、及び、観測確率bi(Ok)を初期化する。
【０１３４】
なお、拡張HMMの状態の数（総数）がN個であるとすると、初期状態確率πiは、例えば、1/Nに初期化される。ここで、２次元平面の迷路であるアクション環境が、横×縦が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になるように行われる。
【０１３８】
なお、いわゆる追加学習が行われる場合には、モデル記憶部２２に記憶されている拡張HMMの初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bi(Ok)が、そのまま初期値として用いられる。すなわち、ステップＳ２１の初期化は、行われない。
【０１３９】
ステップＳ２１の後、処理は、ステップＳ２２に進み、以下、ステップＳ２２以降において、Baum-Welchの再推定法（をアクションについて拡張した方法）に従い、履歴記憶部１４に記憶された学習データとしてのアクション系列、及び、観測値系列を用いて、初期状態確率πi、各アクションについての状態遷移確率aij(Um)、及び、観測確率bi(Ok)を推定する、拡張HMMの学習が行われる。
【０１４０】
すなわち、ステップＳ２２では、学習部２２は、前向き確率(Forward probability)αt+1(j)と、後ろ向き確率(Backward probability)βt(i)とを算出する。
【０１４１】
ここで、拡張HMMにおいては、時刻tにおいて、アクションutが行われると、現在の状態Siから状態Sjに状態遷移し、次の時刻t+1において、状態遷移後の状態Sjで、観測値ot+1が観測される。
【０１４２】
かかる拡張HMMでは、前向き確率αt+1(j)は、現在の拡張HMM（モデル記憶部２２に現に記憶されている初期状態確率π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|Λ)であり、式（１）で表される。
【０１４３】
【数１】
2010287027.tif 000003
・・・（１）
【０１４４】
なお、状態stは、時刻tにいる状態を表し、拡張HMMの状態の数がN個である場合には、状態S1ないしSNのうちのいずれかである。また、式st+1=jは、時刻t+1にいる状態st+1が、状態Sjであることを表す。
【０１４５】
式（１）の前向き確率αt+1(j)は、学習データのアクション系列u1,u2,・・・,ut-1、及び、観測値系列o1,o2,・・・,otを観測して、時刻tに、状態stにいる場合に、アクションutが行われることにより（観測され）、状態遷移が生じ、時刻t+1に、状態Sjにいて、観測値ot+1を観測する確率を表す。
【０１４６】
なお、前向き確率αt+1(j)の初期値α1(j)は、式（２）で表される。
【０１４７】
【数２】
2010287027.tif 000004
・・・（２）
【０１４８】
式（２）の初期値α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|Λ)であり、式（３）で表される。
【０１５０】
【数３】
2010287027.tif 000005
・・・（３）
【０１５１】
なお、Tは、学習データの観測値系列の観測値の個数を表す。
【０１５２】
式（３）の後ろ向き確率β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)は、式（４）で表される。
【０１５４】
【数４】
2010287027.tif 000006
・・・（４）
【０１５５】
式（４）の初期値βT(i)は、最後（時刻t=T）に、状態Siにいる確率が、1.0であること、つまり、最後に、必ず、状態Siにいることを表す。
【０１５６】
拡張HMMでは、式（１）及び式（３）に示したように、ある状態Siからある状態Sjへの状態遷移の状態遷移確率として、アクションごとの状態遷移確率aij(ut)を用いる点が、一般のHMMと異なる。
【０１５７】
ステップＳ２２において、前向き確率αt+1(j)と、後ろ向き確率βt(i)とを算出した後、処理は、ステップＳ２３に進み、学習部２１は、前向き確率α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)とを用いて、式（５）で表される。
【０１６０】
【数５】
2010287027.tif 000007
・・・（５）
【０１６１】
さらに、時刻tに、状態Siにいて、アクションut＝Umが行われる確率γt(i,Um)は、確率ξt+1(i,j,Um)について、時刻t+1にいる状態Sjに関して周辺化した確率として計算することができ、式（６）で表される。
【０１６２】
【数６】
2010287027.tif 000008
・・・（６）
【０１６３】
学習部２１は、式（５）の確率ξt+1(i,j,Um)、及び、式（６）の確率γt(i,Um)を用い、拡張HMMのモデルパラメータΛの再推定を行う。
【０１６４】
ここで、モデルパラメータΛの再推定を行って得られる推定値を、ダッシュ(')を用いて、モデルパラメータΛ'と表すこととすると、モデルパラメータΛ'である初期状態確率の推定値π'iは、式（７）に従って求められる。
【０１６５】
【数７】
2010287027.tif 000009
・・・（７）
【０１６６】
また、モデルパラメータΛ'であるアクションごとの状態遷移確率の推定値a'ij(Um)は、式（８）に従って求められる。
【０１６７】
【数８】
2010287027.tif 000010
・・・（８）
【０１６８】
ここで、式（８）の状態遷移確率の推定値a'ij(Um)の分子は、状態Siにいて、アクションut=Umを行って、状態Sjに状態遷移する回数の期待値を表し、分母は、状態Siにいて、アクションut=Umを行って、状態遷移する回数の期待値を表す。
【０１６９】
モデルパラメータΛ'である観測確率の推定値b'j(Ok)は、式（９）に従って求められる。
【０１７０】
【数９】
2010287027.tif 000011
・・・（９）
【０１７１】
ここで、式（９）の観測確率の推定値b'j(Ok)の分子は、状態Sjへの状態遷移が行われ、その状態Sjで、観測値Okが観測される回数の期待値を表し、分母は、状態Sjへの状態遷移が行われる回数の期待値を表す。
【０１７２】
ステップＳ２３において、モデルパラメータΛ'である初期状態確率、状態遷移確率、及び、観測確率の推定値π'i，a'ij(Um)、及び、b'j(Ok)を再推定した後、学習部２１は、推定値π'iを、新たな初期状態確率πiとして、推定値a'ij(Um)を、新たな状態遷移確率aij(Um)として、推定値b'j(Ok)を、新たな観測確率bj(Ok)として、それぞれ、モデル記憶部２２に、上書きの形で記憶させ、処理は、ステップＳ２４に進む。
【０１７３】
ステップＳ２４では、拡張HMMのモデルパラメータ、すなわち、モデル記憶部２２に記憶された（新たな）初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bj(Ok)が、収束したかどうかを判定する。
【０１７４】
ステップＳ２４において、拡張HMMのモデルパラメータが、まだ収束していないと判定された場合、処理は、ステップＳ２２に戻り、モデル記憶部２２に記憶された新たな初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bj(Ok)を用いて、同様の処理が繰り返される。
【０１７５】
また、ステップＳ２４において、拡張HMMのモデルパラメータが収束したと判定された場合、すなわち、例えば、ステップＳ２３の再推定の前と後とで、拡張HMMのモデルパラメータが、ほとんど変化しなくなった場合、拡張HMMの学習の処理は終了する。
【０１７６】
以上のように、アクションごとの状態遷移確率aij(Um)で規定される拡張HMMの学習を、エージェントが行うアクションのアクション系列と、エージェントがアクションを行ったときにエージェントにおいて観測される観測値の観測値系列とを用いて行うことにより、拡張HMMにおいて、観測値系列を通して、アクション環境の構造が獲得されるとともに、各観測値と、その観測値が観測されるときに行われたアクションとの関係（エージェントが行うアクションと、そのアクションが行われたときに観測される観測値（アクション後に観測される観測値）との関係）が獲得される。
【０１７７】
その結果、かかる学習後の拡張HMMを用いることにより、認識アクションモードにおいて、後述するように、アクション環境内のエージェントが行うべきアクションとして、適切なアクションを決定することができる。
【０１７８】
［認識アクションモードの処理］
【０１７９】
図８は、図４のエージェントが行う、認識アクションモードの処理を説明するフローチャートである。
【０１８０】
認識アクションモードでは、エージェントは、上述したように、目標の決定、及び、現在の状況の認識を行い、現在の状況から目標を達成するためのアクションプランを算出する。さらに、エージェントは、アクションプランに従って、次に行うべきアクションを決定し、そのアクションを行う。そして、エージェントは、以上の処理を繰り返す。
【０１８１】
すなわち、ステップＳ３１において、状態認識部２３は、時刻をカウントする変数tを、初期値としての、例えば、1に設定し、処理は、ステップＳ３２に進む。
【０１８２】
ステップＳ３２では、センサ１３が、アクション環境から、現在の観測値（時刻tの観測値）otを取得して出力し、処理は、ステップＳ３３に進む。
【０１８３】
ステップＳ３３では、履歴記憶部１４は、センサ１３が取得した時刻tの観測値otと、その観測値otが観測されるときに（センサ１３において観測値otが取得される直前に）、センサ１３が出力したアクションut-1（直前の時刻t-1にエージェントが行ったアクションut-1）とを、観測値及びアクションの履歴として、既に記憶している観測値及びアクションの系列に追加する形で記憶し、処理は、ステップＳ３４に進む。
【０１８４】
ステップＳ３４では、状態認識部２３は、拡張HMMに基づき、エージェントが行ったアクションと、そのアクションが行われたときにエージェントにおいて観測された観測値とを用いて、エージェントの現在の状況を認識し、その現在の状況に対応する拡張HMMの状態である現在状態を求める。
【０１８５】
すなわち、状態認識部２３は、履歴記憶部１４から、最新の０個以上のアクションのアクション系列と、最新の１個以上の観測値の観測値系列とを、エージェントの現在の状況を認識するのに用いる認識用のアクション系列、及び、観測値系列として読み出す。
【０１８６】
さらに、状態認識部２３は、モデル記憶部２２に記憶された学習済みの拡張HMMにおいて、認識用のアクション系列、及び、観測値系列を観測して、時刻（現在時刻）tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)と、その最適状態確率δt(j)が得られる状態系列である最適経路（パス）ψt(j)とを、例えば、Viterbiアルゴリズム（をアクションに拡張したアルゴリズム）に従って求める。
【０１８７】
ここで、Viterbiアルゴリズムによれば、一般のHMMにおいて、ある観測値系列が観測されるときに辿る状態の系列（状態系列）のうちの、その観測値系列が観測される尤度を最大にする状態系列（最尤状態系列）を推定することができる。
【０１８８】
但し、拡張HMMでは、状態遷移確率が、アクションについて拡張されているため、Viterbiアルゴリズムを拡張HMMに適用するには、Viterbiアルゴリズムを、アクションについて拡張する必要がある。
【０１８９】
このため、状態認識部２３では、式（１０）及び式（１１）に従って、それぞれ、最適状態確率δt(j)、及び、最適経路ψt(j)が求められる。
【０１９０】
【数１０】
2010287027.tif 000012
・・・（１０）
【０１９１】
【数１１】
2010287027.tif 000013
・・・（１１）
【０１９２】
ここで、式（１０）のmax［X］は、状態Siを表すサフィックスiを、1から、状態の数Nまでの範囲の整数に変えて得られるXのうちの最大値を表す。また、式（１１）のargmax{X}は、サフィックスiを、1からNまでの範囲の整数に変えて得られるXを最大にするサフィックスiを表す。
【０１９３】
状態認識部２３は、認識用のアクション系列、及び、観測値系列を観測して、時刻tに、式（１０）の最適状態確率δt(j)を最大にする状態Sjに辿り着く状態系列である最尤状態系列を、式（１１）の最適経路ψt(j)から求める。
【０１９４】
さらに、状態認識部２３は、最尤状態系列を、現在の状況の認識結果として、その最尤状態系列の最後の状態を、現在状態stとして求める（推定する）。
【０１９５】
状態認識部２３は、現在状態stを求めると、その現在状態にstに基づき、経過時間管理テーブル記憶部３２に記憶された経過時間管理テーブルを更新し、処理は、ステップＳ３４からステップＳ３５に進む。
【０１９６】
すなわち、経過時間管理テーブル記憶部３２の経過時間管理テーブルには、拡張HMMの各状態に対応付けて、その状態が現在状態になってからの経過時間が登録されている。状態認識部２３は、経過時間管理テーブルにおいて、現在状態stとなった状態の経過時間を、例えば、0にリセットするとともに、他の状態の経過時間を、例えば、1だけインクリメントする。
【０１９７】
ここで、経過時間管理テーブルは、上述したように、目標選択部３１において、目標状態を選択するときに、必要に応じて参照される。
【０１９８】
ステップＳ３５では、状態認識部２３は、現在状態stに基づき、モデル記憶部２２に記憶された抑制子を更新する。抑制子の更新については、後述する。
【０１９９】
さらに、ステップＳ３５では、状態認識部２３は、現在状態stを、アクション決定部２４に供給して、処理は、ステップＳ３６に進む。
【０２００】
ステップＳ３６では、目標決定部１６が、拡張HMMの状態の中から、目標状態を決定し、アクション決定部２４に供給して、処理は、ステップＳ３７に進む。
【０２０１】
ステップＳ３７では、アクション決定部２４は、モデル記憶部２２に記憶された抑制子（直前のステップＳ３５で更新された抑制子）を用いて、同じく、モデル記憶部２２に記憶された拡張HMMの状態遷移確率を補正し、補正後の状態遷移確率である補正遷移確率を算出する。
【０２０２】
後述するアクション決定部２４のアクションプランの算出では、補正遷移確率が、拡張HMMの状態遷移確率として用いられる。
【０２０３】
ステップＳ３７の後、処理は、ステップＳ３８に進み、アクション決定部２４は、モデル記憶部２２に記憶された拡張HMMに基づき、状態認識部２３からの現在状態から、目標決定部１６からの目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを、例えば、Viterbiアルゴリズム（をアクションに拡張したアルゴリズム）に従って算出する。
【０２０４】
ここで、Viterbiアルゴリズムによれば、一般のHMMにおいて、２つの状態のうちの一方から他方に到達する状態系列、すなわち、例えば、現在状態から目標状態に到達する状態系列のうちの、ある観測値系列が観測される尤度を最も高くする最尤状態系列を推定することができる。
【０２０５】
但し、上述したように、拡張HMMでは、状態遷移確率が、アクションについて拡張されているため、Viterbiアルゴリズムを拡張HMMに適用するには、Viterbiアルゴリズムを、アクションについて拡張する必要がある。
【０２０６】
このため、アクション決定部２４では、式（１２）に従って、状態確率δ't(j)が求められる。
【０２０７】
【数１２】
2010287027.tif 000014
・・・（１２）
【０２０８】
ここで、式（１２）のmax［X］は、状態Siを表すサフィックスiを、1から、状態の数Nまでの範囲の整数に変え、かつ、アクションUmを表すサフィックスmを、1から、アクションの数Mまでの範囲の整数に変えて得られるXのうちの最大値を表す。
【０２０９】
式（１２）は、最適状態確率δt(j)を求める式（１０）から、観測確率bj(ot)を削除した式になっている。また、式（１２）では、アクションUmを考慮して、状態確率δ't(j)が求められるが、その点が、Viterbiアルゴリズムの、アクションについての拡張に相当する。
【０２１０】
アクション決定部２４は、式（１２）の計算を、前向き方向に実行し、時刻ごとに、最大の状態確率δ't(j)をとるサフィックスiと、そのサフィックスiが表す状態Siに至る状態遷移が生じるときに行われるアクションUmを表すサフィックスmを一時保存する。
【０２１１】
なお、式（１２）の計算にあたり、状態遷移確率aij(Um)としては、学習済みの拡張HMMの状態遷移確率aij(Um)を、抑制子で補正した補正遷移確率が用いられる。
【０２１２】
アクション決定部２４は、現在状態stを最初の状態として、式（１２）の状態確率δ't(j)を計算していき、目標状態Sgoalの状態確率δ't(Sgoal)が、式（１３）に示すように、所定の閾値δ'th以上となったときに、式（１２）の状態確率δ't(j)の計算を終了する。
【０２１３】
【数１３】
2010287027.tif 000015
・・・（１３）
【０２１４】
なお、式（１３）の閾値δ'thは、例えば、式（１４）に従って設定される。
【０２１５】
【数１４】
2010287027.tif 000016
・・・（１４）
【０２１６】
ここで、式（１４）において、T'は、式（１２）の計算回数（式（１２）から求められる最尤状態系列の系列長）を表す。
【０２１７】
式（１４）によれば、尤もらしい状態遷移が１回生じた場合の状態確率として、0.9を採用して、閾値δ'thが設定される。
【０２１８】
したがって、式（１３）によれば、尤もらしい状態遷移がT'回だけ連続した場合に、式（１２）の状態確率δ't(j)の計算が終了する。
【０２１９】
アクション決定部２４は、式（１２）の状態確率δ't(j)の計算を終了すると、その終了時にいる状態、つまり、目標状態Sgoalから、状態Si及びアクションUmについて保存しておいたサフィックスi及びmを、逆方向に、現在状態stに至るまで辿ることで、現在状態stから目標状態Sgoalに到達する最尤状態系列（多くの場合、最短経路）と、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションUmの系列とを求める。
【０２２０】
すなわち、アクション決定部２４は、上述したように、式（１２）の状態確率δ't(j)の計算を、前向き方向に実行するときに、最大の状態確率δ't(j)をとるサフィックスiと、そのサフィックスiが表す状態Siに至る状態遷移が生じるときに行われるアクションUmを表すサフィックスmとを、時刻ごとに保存する。
【０２２１】
時刻ごとのサフィックスiは、時間を遡る方向に、状態Sjから、どの状態Siに戻る場合が、最大の状態確率が得られるかを表し、時刻ごとのサフィックスmは、その最大の状態確率が得られる状態遷移が生じるアクションUmを表す。
【０２２２】
したがって、時刻ごとのサフィックスi及びmを、式（１２）の状態確率δ't(j)の計算を終了した時刻から１時刻ずつ遡っていき、式（１２）の状態確率δ't(j)の計算を開始した時刻まで到達すると、現在状態stから目標状態Sgoalに至るまでの状態系列の状態のサフィックスの系列と、その状態系列の状態遷移が生じるときに行われるアクション系列のアクションのサフィックスの系列とのそれぞれを、時間を遡る順に並べた系列を得ることができる。
【０２２３】
アクション決定部２４は、この時間を遡る順に並べた系列を、時間順に並べ替えることで、現在状態stから目標状態Sgoalに至るまでの状態系列（最尤状態系列）と、その状態系列の状態遷移が生じるときに行われるアクション系列とを求める。
【０２２４】
以上のようにして、アクション決定部２４で求められる、現在状態stから目標状態Sgoalに至るまでの最尤状態系列の状態遷移が生じるときに行われるアクション系列が、アクションプランである。
【０２２５】
ここで、アクション決定部２４において、アクションプランとともに求められる最尤状態系列は、エージェントが、アクションプラン通りにアクションを行った場合に生じる（はずの）状態遷移の状態系列である。したがって、エージェントが、アクションプラン通りにアクションを行った場合に、最尤状態系列である状態の並びの通りでない状態遷移が生じたときには、エージェントが、アクションプラン通りにアクションを行っても、目標状態に到達しない可能性がある。
【０２２６】
ステップＳ３８において、アクション決定部２４が、上述したようにして、アクションプランを求めると、処理は、ステップＳ３９に進み、アクション決定部２４は、アクションプランに従い、エージェントが次に行うべきアクションutを決定し、処理は、ステップＳ４０に進む。
【０２２７】
すなわち、アクション決定部２４は、アクションプランとしてのアクション系列のうちの最初のアクションを、エージェントが次に行うべき決定アクションutとする。
【０２２８】
ステップＳ４０では、アクション決定部２４は、直前のステップＳ３９で決定したアクション（決定アクション）utに従って、アクチュエータ１２を制御し、これにより、エージェントは、アクションutを行う。
【０２２９】
その後、処理は、ステップＳ４０からステップＳ４１に進み、状態認識部２３は、時刻tを1だけインクリメントして、処理は、ステップＳ３２に戻り、以下、同様の処理が繰り返される。
【０２３０】
なお、図８の認識アクションモードの処理は、例えば、認識アクションモードの処理を終了するように、エージェントが操作された場合や、エージェントの電源がオフにされた場合、エージェントのモードが、認識アクションモードから他のモード（反射アクションモード等）に変更された場合等に、終了する。
【０２３１】
以上のように、状態認識部２３において、拡張HMMに基づき、エージェントが行ったアクションと、そのアクションが行われたときにエージェントにおいて観測された観測値とを用いて、エージェントの現在の状況を認識し、その現在の状況に対応する現在状態を求め、目標決定部１６において、目標状態を決定し、アクション決定部２４において、拡張HMMに基づき、現在状態から目標状態までの状態遷移の尤度（状態確率）を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、エージェントが次に行うべきアクションを決定するので、エージェントが目標状態に到達するために、エージェントが行うべきアクションとして、適切なアクションを決定することができる。
【０２３２】
ここで、従来の行動決定手法では、観測値系列を学習する状態遷移確率モデルと、その状態遷移確率モデルの状態遷移を実現するアクションのモデルであるアクションモデルとを、別個に用意して、学習が行われていた。
【０２３３】
したがって、状態遷移確率モデルとアクションモデルとの２つのモデルの学習が行われるために、学習に、多くの計算コストと記憶リソースとが必要であった。
【０２３４】
これに対して、図４のエージェントでは、１つのモデルである拡張HMMにおいて、観測値系列とアクション系列とを関連づけて学習するので、少ない計算コストと記憶リソースで、学習を行うことができる。
【０２３５】
また、従来の行動決定手法では、状態遷移確率モデルを用いて、目標状態までの状態系列を算出し、その状態系列を得るためのアクションの算出を、アクションモデルを用いて行う必要があった。すなわち、目標状態までの状態系列の算出と、その状態系列を得るためのアクションの算出とを、別個のモデルを用いて行う必要があった。
【０２３６】
そのため、従来の行動決定手法では、アクションを算出するまでの計算コストが大であった。
【０２３７】
これに対して、図４のエージェントでは、現在状態から目標状態までの最尤状態系列と、その最尤状態系列を得るためのアクション系列とを同時に求めることができるので、少ない計算コストで、エージェントが次に行うべきアクションを決定することができる。
【０２３８】
［目標状態の決定］
【０２３９】
図９は、図８のステップＳ３６で、図４の目標決定部１６が行う目標状態の決定の処理を説明するフローチャートである。
【０２４０】
目標決定部１６では、ステップＳ５１において、目標選択部３１が、外部目標が設定されているかどうかを判定する。
【０２４１】
ステップＳ５１において、外部目標が設定されていると判定された場合、すなわち、例えば、ユーザによって、外部目標入力部３３が操作され、モデル記憶部２２に記憶された拡張HMMのいずれかの状態が、目標状態である外部目標として指定され、その目標状態（を表すサフィックス）が、外部目標入力部３３から目標選択部３１に供給されている場合、処理は、ステップＳ５２に進み、目標選択部３１は、外部目標入力部３３からの外部目標を選択し、アクション決定部２４に供給して、処理はリターンする。
【０２４２】
なお、ユーザは、外部目標入力部３３を操作する他、例えば、図示せぬPC(Personal Computer)等の端末を操作して、目標状態とする状態（のサフィックス）を指定することができる。この場合、外部目標入力部３３は、ユーザが操作する端末と通信を行うことによって、ユーザが指定した状態を認識し、目標選択部３１に供給する。
【０２４３】
一方、ステップＳ５１において、外部目標が設定されていないと判定された場合、処理は、ステップＳ５３に進み、オープン端検出部３７は、モデル記憶部２２に記憶された拡張HMMに基づき、拡張HMMの状態の中から、オープン端を検出して、処理は、ステップＳ５４に進む。
【０２４４】
ステップＳ５４では、目標選択部３１は、オープン端が検出されたかどうかを判定する。
【０２４５】
ここで、オープン端検出部３７は、拡張HMMの状態の中から、オープン端を検出した場合、そのオープン端である状態（を表すサフィックス）を、目標選択部３１に供給する。目標選択部３１は、オープン端検出部３７からオープン端が供給されたかどうかによって、オープン端が検出されたかどうかを判定する。
【０２４６】
ステップＳ５４において、オープン端が検出されたと判定された場合、すなわち、オープン端検出部３７から目標選択部３１に対して、１個以上のオープン端が供給された場合、処理は、ステップＳ５５に進み、目標選択部３１は、オープン端検出部３７からの１個以上のオープン端の中から、例えば、状態を表すサフィックスが最小のオープン端を、目標状態として選択し、アクション決定部２４に供給して、処理はリターンする。
【０２４７】
また、ステップＳ５４において、オープン端が検出されなかったと判定された場合、すなわち、オープン端検出部３７から目標選択部３１に対して、オープン端が供給されなかった場合、処理は、ステップＳ５６に進み、分岐構造検出部３６は、モデル記憶部２２に記憶された拡張HMMに基づき、拡張HMMの状態の中から、分岐構造の状態を検出して、処理は、ステップＳ５７に進む。
【０２４８】
ステップＳ５７では、目標選択部３１は、分岐構造の状態が検出されたかどうかを判定する。
【０２４９】
ここで、分岐構造検出部３６は、拡張HMMの状態の中から、分岐構造の状態を検出した場合、その分岐構造の状態（を表すサフィックス）を、目標選択部３１に供給する。目標選択部３１は、分岐構造検出部３６から分岐構造の状態が供給されたかどうかによって、分岐構造の状態が検出されたかどうかを判定する。
【０２５０】
ステップＳ５７において、分岐構造の状態が検出されたと判定された場合、すなわち、分岐構造検出部３６から目標選択部３１に対して、１個以上の分岐構造の状態が供給された場合、処理は、ステップＳ５８に進み、目標選択部３１は、分岐構造検出部３６からの１個以上の分岐構造の状態のうちの１つの状態を、目標状態として選択し、アクション決定部２４に供給して、処理はリターンする。
【０２５１】
すなわち、目標選択部３１は、経過時間管理テーブル記憶部３２の経過時間管理テーブルを参照し、分岐構造検出部３６からの１個以上の分岐構造の状態の経過時間を認識する。
【０２５２】
さらに、目標選択部３１は、分岐構造検出部３６からの１個以上の分岐構造の状態の中から、経過時間が最も長い状態を検出し、その状態を、目標状態として選択する。
【０２５３】
一方、ステップＳ５７において、分岐構造の状態が検出されなかったと判定された場合、すなわち、分岐構造検出部３６から目標選択部３１に対して、分岐構造の状態が供給されなかった場合、処理は、ステップＳ５９に進み、ランダム目標生成部３５が、モデル記憶部２２に記憶された拡張HMMの１つの状態をランダムに選択して、目標選択部３１に供給する。
【０２５４】
さらに、ステップＳ５９では、目標選択部３１が、ランダム目標選択部３５からの状態を、目標状態として選択し、アクション決定部２４に供給して、処理はリターンする。
【０２５５】
なお、オープン端検出部３７によるオープン端の検出、及び、分岐構造検出部３６による分岐構造の状態の検出の詳細については、後述する。
【０２５６】
［アクションプランの算出］
【０２５７】
図１０は、図４のアクション決定部２４によるアクションプランの算出を説明する図である。
【０２５８】
図１０Ａは、アクションプランの算出に用いられる学習済みの拡張HMMを模式的に示している。
【０２５９】
図１０Ａにおいて、丸（○）印は、拡張HMMの状態を表し、丸印の中に記載されている数字は、その丸印が表す状態のサフィックスである。また、丸印で表される状態どうしを表す矢印は、可能な状態遷移（状態遷移確率が0.0（とみなせる値）以外の状態遷移）を表す。
【０２６０】
図１０Ａの拡張HMMでは、状態Siが、その状態Siに対応する観測単位の位置に配置されている。
【０２６１】
そして、状態遷移が可能な２つの状態は、その２つの状態それぞれに対応する２つの観測単位どうしの間で、エージェントが移動することができることを表現する。したがって、拡張HMMの状態遷移を表す矢印は、アクション環境において、エージェントが移動可能な通路を表す。
【０２６２】
ここで、図１０Ａにおいて、１つの観測単位の位置に、２つ（複数）の状態Si及びSi'が、一部分を重ねて配置されている場合があるが、これは、その１つの観測単位に、２つ（複数）の状態Si及びSi'が対応することを表す。
【０２６３】
例えば、図１０Ａにおいて、状態S3及びS30は、１つの観測単位に対応し、状態S34及びS35も、１つの観測単位に対応する。同様に、状態S21及びS23、状態S2及びS17、状態S37及びS48、状態S31及びS32も、それぞれ、１つの観測単位に対応する。
【０２６４】
学習データとして、構造が変化するアクション環境で得られた観測値系列とアクション系列とを用いて、拡張HMMの学習を行った場合、図１０Ａに示したような、１つの観測単位に、複数の状態が対応する拡張HMMが得られる。
【０２６５】
すなわち、図１０Ａでは、例えば、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁又は通路のうちの一方になっている構造のアクション環境で得られた観測値系列及びアクション系列を、学習データとして用いて、拡張HMMの学習が行われている。
【０２６６】
さらに、図１０Ａでは、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁又は通路のうちの他方になっている構造のアクション環境で得られた観測値系列及びアクション系列をも、学習データとして用いて、拡張HMMの学習が行われている。
【０２６７】
その結果、図１０Ａの拡張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では、アクション環境の構造が変化する場合でも、そのような構造が変化するアクション環境の構造を獲得することができる。
【０２７２】
図１０Ｂ、及び、図１０Ｃは、アクション決定部２４が算出するアクションプランの例を示している。
【０２７３】
図１０Ｂ、及び、図１０Ｃでは、図１０Ａの状態S30（又は、状態S3）が、目標状態になっており、エージェントがいる観測単位に対応する状態S28を、現在状態として、現在状態から目標状態に至るまでのアクションプランが算出されている。
【０２７４】
図１０Ｂは、時刻t=1に、アクション決定部２４が算出するアクションプランPL1を示している。
【０２７５】
図１０Ｂでは、図１０Ａの状態S28,S23,S2,S16,S22,S29,S30の系列を、現在状態から目標状態に到達する最尤状態系列として、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列が、アクションプランPL1として算出されている。
【０２７６】
アクション決定部２４は、アクションプランPL1のうちの、最初の状態S28から、次の状態S23に移動するアクションを、決定アクションとし、エージェントは、決定アクションを行う。
【０２７７】
その結果、エージェントは、現在状態である状態S28に対応する観測単位から、状態S21及びS23に対応する観測単位に向かって、右方向に移動し（図３ＡのアクションU2を行い）、時刻tは、時刻t=1から1時刻経過した時刻t=2となる。
【０２７８】
ここで、図１０Ｂでは（図１０Ｃでも同様）、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁になっている、
【０２７９】
状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間が、壁になっている構造を獲得している状態は、上述したように、状態S21及びS23に対応する観測単位については、状態S21であり、時刻t=2では、状態認識部２３において、現在状態が、状態S21であると認識される。
【０２８０】
状態認識部２３は、現在状態の直前の状態から現在状態への状態遷移のときにエージェントが行ったアクションについての、直前の状態と現在状態以外の状態との間の状態遷移を抑制し、かつ、直前の状態と現在状態との間の状態遷移を抑制しない（以下、有効にする、ともいう）ように、状態遷移の抑制を行う抑制子を更新する。
【０２８１】
すなわち、いまの場合、現在状態は、状態S21であり、直前の状態は、状態S28であるから、直前の状態S28と現在状態S21以外の状態との間の状態遷移、すなわち、例えば、時刻t=1に得られたアクションプランPL1の、最初の状態S28と次の状態S23との間の状態遷移等を抑制するように、抑制子が更新される。
【０２８２】
さらに、直前の状態S28と現在状態S21との間の状態遷移を有効にするように、抑制子が更新される。
【０２８３】
そして、時刻t=2では、アクション決定部２４は、現在状態を、状態S21とするとともに、目標状態を、状態S30として、現在状態から目標状態に到達する最尤状態系列S21,S28,S27,S26,S25,S20,S15,S10,S1,S17,S16,S22,S29,S30を求め、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列を、アクションプランとして算出する。
【０２８４】
さらに、アクション決定部２４は、アクションプランのうちの、最初の状態S21から、次の状態S28に移動するアクションを、決定アクションとし、エージェントは、決定アクションを行う。
【０２８５】
その結果、エージェントは、現在状態である状態S21に対応する観測単位から、状態S28に対応する観測単位に向かって、左方向に移動し（図３ＡのアクションU4を行い）、時刻tは、時刻t=2から1時刻経過した時刻t=3となる。
【０２８６】
時刻t=3では、状態認識部２３において、現在状態が、状態S28であると認識される。
【０２８７】
そして、時刻t=3では、アクション決定部２４は、現在状態を、状態S28とするとともに、目標状態を、状態S30として、現在状態から目標状態に到達する最尤状態系列を求め、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列を、アクションプランとして算出する。
【０２８８】
図１０Ｃは、時刻t=3に、アクション決定部２４が算出するアクションプランPL3を示している。
【０２８９】
図１０Ｃでは、状態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が選択されたためである。
【０２９２】
アクション決定部２４は、アクションプランPL3の算出後、そのアクションプランPL3のうちの、最初の状態S28から、次の状態S27に移動するアクションを、決定アクションとし、エージェントは、決定アクションを行う。
【０２９３】
その結果、エージェントは、現在状態である状態S28に対応する観測単位から、状態S27に対応する観測単位に向かって、下方向に移動し（図３ＡのアクションU3を行い）、以下、同様に、各時刻に、アクションプランの算出が行われる。
【０２９４】
［抑制子を用いた状態遷移確率の補正］
【０２９５】
図１１は、図８のステップＳ３７で、アクション決定部２４が行う、抑制子を用いての、拡張HMMの状態遷移確率の補正を説明する図である。
【０２９６】
アクション決定部２４は、図１１に示すように、拡張HMMの状態遷移確率Altmに、抑制子Ainhibitを乗算することにより、拡張HMMの状態遷移確率Altmを補正し、補正後の状態遷移確率Altmである補正遷移確率Astmを求める。
【０２９７】
そして、アクション決定部２４は、補正遷移確率Astmを、拡張HMMの状態遷移確率として用いて、アクションプランを算出する。
【０２９８】
ここで、アクションプランの算出にあたり、その算出に用いる状態遷移確率を、抑制子で補正するのは、以下のような理由による。
【０２９９】
すなわち、学習後の拡張HMMの状態の中には、１つのアクションが行われた場合に異なる状態への状態遷移が可能な状態である、分岐構造の状態が生じることがある。
【０３００】
例えば、上述の図１０Ａの状態S29では、左方向に移動するアクションU4（図３Ａ）が行われた場合に、左側の状態S3への状態遷移が行われることと、同じく左側の状態S30への状態遷移が行われることとがある。
【０３０１】
したがって、状態S29では、ある１つのアクションが行われた場合に異なる状態遷移が生じることがあり、状態S29は、分岐構造の状態である。
【０３０２】
抑制子は、ある１つのアクションについて、異なる状態遷移が生じることがあるときに、すなわち、例えば、ある１つのアクションが行われた場合に、ある状態への状態遷移が生じることがあり、他の状態への状態遷移も生じることがあるときに、生じうる異なる状態遷移のうちの、１つの状態遷移だけが生じるように、その１つの状態遷移以外の状態遷移が生じることを抑制する。
【０３０３】
すなわち、ある１つのアクションについて生じうる異なる状態遷移を、分岐構造と呼ぶこととすると、構造が変化するアクション環境から得られた観測値系列及びアクション系列を、学習データとして、拡張HMMの学習を行った場合、拡張HMMは、アクション環境の構造の変化を、分岐構造として獲得し、その結果、分岐構造の状態が生じる。
【０３０４】
このように、拡張HMMでは、分岐構造の状態が生じることによって、アクション環境の構造が様々な構造に変化する場合であっても、そのアクション環境の様々な構造のすべてを獲得する。
【０３０５】
ここで、拡張HMMが獲得する、構造が変化するアクション環境の様々な構造は、忘却せずに、長期的に記憶しておくべき情報であることから、そのような情報を獲得した拡張HMM（の、特に、状態遷移確率）を、長期記憶ともいう。
【０３０６】
現在状態が、分岐構造の状態である場合、現在状態からの状態遷移として、分岐構造としての異なる状態遷移のうちのいずれの状態遷移が可能であるかは、構造が変化するアクション環境の現在の構造による。
【０３０７】
すなわち、長期記憶としての拡張HMMの状態遷移確率からすれば、可能な状態遷移であっても、構造が変化するアクション環境の現在の構造によっては、行うことができないことがある。
【０３０８】
そこで、エージェントは、長期記憶とは独立に、エージェントの現在の状況の認識によって得られる現在状態に基づき、抑制子を更新する。そして、エージェントは、抑制子を用いて、長期記憶としての拡張HMMの状態遷移確率を補正することで、アクション環境の現在の構造において行うことができない状態遷移を抑制し、かつ、行うことができた状態遷移を有効にする、補正後の状態遷移確率である補正遷移確率を求め、その補正遷移確率を用いて、アクションプランを算出する。
【０３０９】
ここで、補正遷移確率は、長期記憶としての状態遷移確率を、各時刻の現在状態に基づいて更新される抑制子を用いて補正することにより、各時刻ごとに得られる情報であり、短期的に記憶しておけばよい情報であるから、短期記憶ともいう。
【０３１０】
アクション決定部２４（図４）では、抑制子を用いて、拡張HMMの状態遷移確率を補正し、補正遷移確率を求める処理が、以下のようにして行われる。
【０３１１】
すなわち、拡張HMMのすべての状態遷移確率Altmを、図６Ｂに示したように、３次元のテーブルで表現する場合、抑制子Ainhibitも、拡張HMMの状態遷移確率Altmの３次元のテーブルと同一サイズの３次元のテーブルで表現される。
【０３１２】
ここで、拡張HMMの状態遷移確率Altmを表現する３次元のテーブルを、状態遷移確率テーブルともいう。また、抑制子Ainhibitを表現する３次元のテーブルを抑制子テーブルともいう。
【０３１３】
拡張HMMの状態の数がN個で、エージェントが可能なアクションの数がM個である場合、状態遷移確率テーブルは、横×縦×奥行きがN×N×M要素の３次元のテーブルとなる。したがって、この場合、抑制子テーブルも、N×N×M要素の３次元のテーブルとなる。
【０３１４】
なお、抑制子Ainhibitの他、補正遷移確率Astmも、N×N×M要素の３次元のテーブルで表現される。補正遷移確率Astmを表現する３次元のテーブルを、補正遷移確率テーブルともいう。
【０３１５】
例えば、いま、状態遷移確率テーブルの、上からi番目の、左からj番目で、奥行き方向に手前側からm番目の位置を(i,j,m)と表すこととすると、アクション決定部２４は、式（１５）に従い、状態遷移確率テーブルの位置(i,j,m)の要素としての状態遷移確率Altm(=aij(Um))と、抑制子テーブルの位置(i,j,m)の要素としての抑制子Ainhibitとを乗算することで、補正遷移確率テーブルの位置(i,j,m)の要素としての補正遷移確率Astmを求める。
【０３１６】
【数１５】
2010287027.tif 000017
・・・（１５）
【０３１７】
なお、抑制子は、エージェントの状態認識部２３（図４）において、各時刻に、以下のように更新される。
【０３１８】
すなわち、状態認識部２３は、現在状態Sjの直前の状態Siから現在状態Sjへの状態遷移のときにエージェントが行ったアクションUmについての、直前の状態Siと現在状態Sj以外の状態との間の状態遷移を抑制し、かつ、直前の状態Siと現在状態Sjとの間の状態遷移を抑制しない（有効にする）ように、抑制子を更新する。
【０３１９】
具体的には、抑制子テーブルを、アクション軸の位置mで、アクション軸に垂直な平面で切断して得られる平面を、アクションUmについての抑制子平面ということとすると、状態認識部２３は、アクション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の再学習を行う必要がある。
【０３２７】
また、アクション決定部２４において、拡張HMMの状態遷移確率を、そのまま用いて、アクションプランを算出する場合には、アクション環境の現在の構造が、分岐構造としての複数の状態遷移のうちの１つの状態遷移だけを行うことができ、他の状態遷移を行うことができない構造になっていても、Vitarbiアルゴリズムに従い、分岐構造としての複数の状態遷移のすべてを行うことができることとして、現在状態stから目標状態Sgoalに至るまでの最尤状態系列の状態遷移が生じるときに行われるアクション系列が、アクションプランとして算出される。
【０３２８】
一方、アクション決定部２４において、拡張HMMの状態遷移確率を、抑制子により補正し、その補正後の状態遷移確率である補正遷移確率を用いて、アクションプランを算出する場合には、抑制子によって抑制される状態遷移は行うことができないこととして、そのような状態遷移がない、現在状態stから目標状態Sgoalに至るまでの最尤状態系列の状態遷移が生じるときに行われるアクション系列を、アクションプランとして算出することができる。
【０３２９】
すなわち、例えば、上述した図１０Ａでは、状態S28は、右方向に移動するアクションU2が行われたときに、状態S21にも、状態S23にも、状態遷移が可能な分岐構造の状態になっている。
【０３３０】
また、図１０では、上述したように、時刻t=2において、状態認識部２３は、現在状態S21の直前の状態S28から現在状態S21への状態遷移のときにエージェントが行った、右方向に移動するアクションU2についての、直前の状態S28から現在状態S21以外の状態S23への状態遷移を抑制し、かつ、直前の状態S28から現在状態S21への状態遷移を有効にするように、抑制子を更新する。
【０３３１】
その結果、図１０Ｃの時刻t=3では、現在状態が状態S28で、目標状態が、状態S30であり、現在状態及び目標状態が、いずれも、図１０Ｂの時刻t=1の場合と同一であるにもかかわらず、抑制子によって、右方向に移動するアクションU2が行われたときの、状態S28から状態S21以外の状態S23への状態遷移が抑制されるために、現在状態から目標状態に到達する最尤状態系列として、時刻t=1の場合と異なる状態系列、すなわち、状態S28から状態S23への状態遷移が行われない状態系列S28,S27,S26,S25,・・・,S30が求められ、その状態系列が得られる状態遷移が生じるときに行われるアクションのアクション系列が、アクションプランPL3として算出される。
【０３３２】
ところで、抑制子の更新は、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制するように行われる。
【０３３３】
すなわち、現在状態の直前の状態から現在状態への状態遷移のときにエージェントが行ったアクションについての、直前の状態と現在状態以外の状態との間の状態遷移（直前の状態から現在状態以外の状態への状態遷移）を抑制し、かつ、直前の状態と現在状態との間の状態遷移（直前の状態から現在状態への状態遷移）を有効にするように、抑制子が更新される。
【０３３４】
抑制子の更新として、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制することしか行わない場合には、抑制子が更新されることによって抑制された状態遷移は、エージェントが、その後に、その状態遷移を経験しない限り、抑制されたままとなる。
【０３３５】
エージェントが次に行うべきアクションの決定が、上述したように、アクション決定部２４において、抑制子によって拡張HMMの状態遷移確率を補正して得られる補正遷移確率を用いて算出されるアクションプランに従って行われる場合、抑制子によって抑制されている状態遷移が生じるアクションを含むアクションプランが算出されることはないため、次に行うべきアクションの決定を、アクションプランに従って行う方法以外の方法で行うことによって、又は偶然に、エージェントが、抑制子によって抑制されている状態遷移を経験しないと、抑制子によって抑制されている状態遷移は、抑制されたままとなる。
【０３３６】
したがって、アクション環境の構造が、抑制子によって抑制されている状態遷移を行うことができない構造から、その状態遷移を行うことができる構造に変化しても、エージェントが、いれば運良く、抑制子によって抑制されている状態遷移を経験するまでは、その状態遷移が生じるアクションを含むアクションプランを算出することができない。
【０３３７】
そこで、状態認識部２３は、抑制子の更新として、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制することの他、時間の経過に応じて、状態遷移の抑制を緩和することを行う。
【０３３８】
すなわち、状態認識部２３は、分岐構造としての複数の状態遷移のうちの、エージェントが経験した状態遷移を有効にし、かつ、その状態遷移以外の状態遷移を抑制するように、抑制子を更新する他、さらに、時間の経過に応じて、状態遷移の抑制を緩和するように、抑制子を更新する。
【０３３９】
具体的には、状態認識部２３は、時間の経過に応じて、抑制子が、1.0に収束するように、例えば、式（１６）に従い、時刻tの抑制子Ainhibit(t)を、時刻t+1の抑制子Ainhibit(t+1)に更新する。
【０３４０】
【数１６】
2010287027.tif 000018
・・・（１６）
【０３４１】
ここで、式（１６）において、係数cは、0.0より大で1.0より小さい値であり、係数cが大であるほど、抑制子は、より速く、1.0に収束する。
【０３４２】
式（１６）によれば、一度抑制された状態遷移（抑制子が0.0にされた状態遷移）の抑制が、時間の経過に伴って緩和されていき、エージェントが、その状態遷移を経験しなくても、その状態遷移を生じるアクションを含むアクションプランが算出されるようになる。
【０３４３】
ここで、時間の経過に応じて、状態遷移の抑制を緩和するように行う抑制子の更新を、以下、自然減衰による忘却に対応する更新ともいう。
【０３４４】
［抑制子の更新］
【０３４５】
図１２は、図８のステップＳ３５で、図４の状態認識部２３が行う抑制子の更新の処理を説明するフローチャートである。
【０３４６】
なお、抑制子は、図８の認識アクションモードの処理のステップＳ３１において、時刻tが1に初期化されるときに、初期値である1.0に初期化される。
【０３４７】
抑制子の更新の処理では、ステップＳ７１において、状態認識部２３は、モデル記憶部２２に記憶された抑制子Ainhibitのすべての、自然減衰による忘却に対応する更新、すなわち、式（１６）に従った更新を行い、処理は、ステップＳ７２に進む。
【０３４８】
ステップＳ７２では、状態認識部２３は、現在状態Sjの直前の状態Siが分岐構造の状態であり、かつ、現在状態Sjが、直前の状態Siである分岐構造の状態から、同一のアクションが行われることによって状態遷移が可能な異なる状態のうちの１つの状態であるかどうかを、モデル記憶部２２に記憶された拡張HMM（の状態遷移確率）に基づいて判定する。
【０３４９】
ここで、直前の状態Siが分岐構造の状態であるかどうかは、分岐構造検出部３６（図４）が、分岐構造の状態を検出する場合と同様にして判定することができる。
【０３５０】
ステップＳ７２において、直前の状態Siが分岐構造の状態でないと判定されるか、又は、直前の状態Siが分岐構造の状態であるが、現在状態Sjが、直前の状態Siである分岐構造の状態から、同一のアクションが行われることによって状態遷移が可能な異なる状態のうちの１つの状態でないと判定された場合、処理は、ステップＳ７３及びＳ７４をスキップして、リターンする。
【０３５１】
また、ステップＳ７２において、直前の状態Siが分岐構造の状態であり、かつ、現在状態Sjが、直前の状態Siである分岐構造の状態から、同一のアクションが行われることによって状態遷移が可能な異なる状態のうちの１つの状態であると判定された場合、処理は、ステップＳ７３に進み、状態認識部２３は、モデル記憶部２２に記憶された抑制子Ainhibitのうちの、直前のアクションUmについての、直前の状態Siから、現在状態Sjへの状態遷移の抑制子（抑制子テーブルの位置(i,j,m)の抑制子）hij(Um)を、1.0に更新して、処理は、ステップＳ７４に進む。
【０３５２】
ステップＳ７４では、状態認識部２３は、モデル記憶部２２に記憶された抑制子Ainhibitのうちの、直前のアクションUmについての、直前の状態Siから、現在状態Sj以外の状態Sj'への状態遷移の抑制子（抑制子テーブルの位置(i,j',m)の抑制子）hij'(Um)を、0.0に更新して、処理はリターンする。
【０３５３】
ここで、従来の行動決定手法では、HMM等の状態遷移確率モデルの学習は、静的な構造をモデル化することを前提として行われるため、状態遷移確率モデルの学習後に、学習の対象の構造が変化した場合には、その変化後の構造を対象として、状態遷移確率モデルの再学習を行う必要があり、学習の対象の構造の変化に対処する計算コストが大であった。
【０３５４】
これに対して、図４のエージェントでは、拡張HMMが、アクション環境の構造の変化を、分岐構造として獲得し、直前の状態が分岐構造の状態である場合には、直前の状態から現在状態への状態遷移のときにエージェントが行ったアクションについての、直前の状態と現在状態以外の状態との間の状態遷移を抑制するように、抑制子を更新し、その更新後の抑制子を用いて、拡張HMMの状態遷移確率を補正して、補正後の状態遷移確率である補正遷移確率に基づき、アクションプランを算出する。
【０３５５】
したがって、アクション環境の構造が変化する場合に、その変化する構造に適応（追従）するアクションプランを、少ない計算コストで（拡張HMMの再学習をすることなしに）算出することができる。
【０３５６】
また、抑制子は、時間の経過に応じて、状態遷移の抑制を緩和するように更新されるので、過去に抑制された状態遷移を、エージェントが偶然に経験しなくても、時間の経過とともに、過去に抑制された状態遷移が生じるアクションを含むアクションプランを算出することが可能となり、その結果、アクション環境の構造が、過去に、状態遷移を抑制したときの構造と異なる構造に変化した場合に、その変化後の構造に適切なアクションプランを、迅速に算出することが可能となる。
【０３５７】
［オープン端の検出］
【０３５８】
図１３は、図４のオープン端検出部３７が検出するオープン端である拡張HMMの状態を説明する図である。
【０３５９】
オープン端とは、大雑把には、拡張HMMにおいて、ある状態を遷移元として、エージェントが未経験の状態遷移が起こり得ることがあらかじめ分かっている、その遷移元の状態である。
【０３６０】
具体的には、ある状態の状態遷移確率と、その状態と同一の観測値を観測する観測確率が割り当てられた（0.0（とみなされる値）でない値になっている）他の状態の状態遷移確率とを比較した場合に、あるアクションを行ったときに次の状態に状態遷移することが可能なことが分かるにも関わらず、まだ、その状態で、そのアクションを行ったことがないため、状態遷移確率が割り当てられておらず（0.0（とみなされる値）になっており）、状態遷移ができないことになっている状態が、オープン端に該当する。
【０３６１】
したがって、拡張HMMにおいて、所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、所定の観測値と同一の観測値が観測される他の状態を検出すれば、その、他の状態が、オープン端である。
【０３６２】
オープン端は、概念的には、図１３に示すように、例えば、エージェントが部屋に置かれ、その部屋のある範囲を対象とした学習が行われることによって、拡張HMMが獲得する構造の端部（部屋の中の学習済みの範囲の端部）や、エージェントが置かれた部屋の全範囲を対象とした学習が行われた後、その部屋に隣接して、エージェントが移動可能な新しい部屋を追加することによって現れる、新しい部屋への入り口等に対応する状態である。
【０３６３】
オープン端を検出すると、拡張HMMが獲得している構造のどの部分の先に、エージェントが未知の領域が広がっているかを知ることができる。したがって、オープン端を目標状態として、アクションプランを算出することにより、エージェントは、積極的に未知の領域に踏み込むアクションを行うようになる。その結果、エージェントは、より広くアクション環境の構造を学習し（アクション環境の構造の学習のための学習データとなる観測系列及びアクション系列を獲得し）、拡張HMMにおいて、構造を獲得していない曖昧な部分（アクション環境の、オープン端となっている状態に対応する観測単位付近の構造）を補強するために必要な経験を効率的に得ることが可能になる。
【０３６４】
オープン端検出部３７は、オープン端を検出するのに、まず、アクションテンプレートを生成する。
【０３６５】
オープン端検出部３７は、アクションテンプレートの生成にあたり、拡張HMMの観測確率B={bi(Ok)}を閾値処理し、各観測値Okに対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップする。
【０３６６】
図１４は、オープン端検出部３７が、観測値Okが閾値以上の確率で観測される状態Siをリストアップする処理を説明する図である。
【０３６７】
図１４Ａは、拡張HMMの観測確率Bの例を示している。
【０３６８】
すなわち、図１４Ａは、状態Siの数Nが5個で、観測値Okの数Mが3個の拡張HMMの観測確率Bの例を示している。
【０３６９】
オープン端検出部３７は、閾値を、例えば、0.5等として、閾値以上の観測確率Bを検出する閾値処理を行う。
【０３７０】
この場合、図１４Ａでは、状態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が、それぞれ、閾値処理によって検出される。
【０３７１】
その後、オープン端検出部３７は、各観測値O1,O2,O3に対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップ検出する。
【０３７２】
図１４Ｂは、観測値O1,O2,O3それぞれに対してリストアップされる状態Siを示している。
【０３７３】
観測値O1に対しては、その観測値O1が閾値以上の確率で観測される状態として、状態S5がリストアップされ、観測値O2に対しては、その観測値O2が閾値以上の確率で観測される状態として、状態S2及びS4がリストアップされる。また、観測値O3に対して、その観測値O3が閾値以上の確率で観測される状態として、状態S1及びS3がリストアップされる。
【０３７４】
その後、オープン端検出部３７は、拡張HMMの状態遷移確率A={aij(Um)}を用い、各観測値Okについて、その観測値Okに対してリストアップされた状態Siからの状態遷移のうちの、状態遷移確率aij(Um)が最大の状態遷移の状態遷移確率状態遷移確率aij(Um)に対応する値である遷移確率対応値を、アクションUmごとに算出し、各観測値Okについて、アクションUmごとに算出された遷移確率対応値を、観測値Okが観測されたときにアクションUmが行われるアクション確率として、アクション確率を要素とする行列であるアクションテンプレートCを生成する。
【０３７５】
すなわち、図１５は、観測値Okに対してリストアップされた状態Siを用いて、アクションテンプレートCを生成する方法を説明する図である。
【０３７６】
オープン端検出部３７は、３次元の状態遷移確率テーブルにおいて、観測値Okに対してリストアップされた状態Siからの状態遷移の、列（横）方向（j軸方向）に並ぶ状態遷移確率から、最大の状態遷移確率を検出する。
【０３７７】
すなわち、例えば、いま、観測値O2に注目し、観測値O2に対して、状態S2及びS4がリストアップされていることとする。
【０３７８】
この場合、オープン端検出部３７は、３次元の状態遷移確率テーブルを、i軸のi=2の位置で、i軸に垂直な平面で切断して得られる、状態S2についてのアクション平面に注目し、その状態S2についてのアクション平面の、アクションU1を行ったときに生じる状態S2からの状態遷移の状態遷移確率a2,j(U1)の最大値を検出する。
【０３７９】
すなわち、オープン端検出部３７は、状態S2についてのアクション平面の、アクション軸の、m=1の位置に、j軸方向に並ぶ状態遷移確率a2,1(U1),a2,2(U1),・・・,a2,N(U1)の中の最大値を検出する。
【０３８０】
同様に、オープン端検出部３７は、状態S2についてのアクション平面から、他のアクションUmを行ったときに生じる状態S2からの状態遷移の状態遷移確率の最大値を検出する。
【０３８１】
さらに、オープン端検出部３７は、観測値O2に対してリストアップされている、他の状態である状態S4についても、同様に、状態S4についてのアクション平面から、各アクションUmを行ったときに生じる状態S4からの状態遷移の状態遷移確率の最大値を検出する。
【０３８２】
以上のように、オープン端検出部３７は、観測値O2に対してリストアップされた状態S2及びS4のそれぞれについて、各アクションUmが行われたときに生じる状態遷移の状態遷移確率の最大値を検出する。
【０３８３】
その後、オープン端検出部３７は、上述したようにして検出された状態遷移確率の最大値を、アクションUmごとに、観測値O2に対してリストアップされた状態S2及びS4について、平均化し、その平均化によって得られる平均値を、観測値O2についての、状態遷移確率の最大値に対応する遷移確率対応値とする。
【０３８４】
観測値O2についての、遷移確率対応値は、アクションUmごとに求められるが、この、観測値O2について得られる、アクションUmごとの遷移確率対応値は、観測値O2が観測されたときに、アクションUmが行われる確率（アクション確率）を表す。
【０３８５】
オープン端検出部３７は、他の観測値Okについても、同様にして、アクションUmごとのアクション確率としての遷移確率対応値を求める。
【０３８６】
そして、オープン端検出部３７は、観測値Okが観測されたときに、アクションUmが行われるアクション確率を、上からk番目で、左からm番目の要素とした行列を、アクションテンプレートCとして生成する。
【０３８７】
したがって、アクションテンプレートCは、行数が、観測値Okの数Kに等しく、列数が、アクションUmの数Mに等しいK行M列の行列となる。
【０３８８】
オープン端検出部３７は、アクションテンプレートCの生成後、そのアクションテンプレートCを用いて、観測確率に基づくアクション確率Dを算出する。
【０３８９】
図１６は、観測確率に基づくアクション確率Dを算出する方法を説明する図である。
【０３９０】
いま、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)を、第i行第k列の要素とする行列を、観測確率行列Bということとすると、観測確率行列Bは、行数が、状態Siの数Nに等しく、列数が観測値Okの数Kに等しいN行K列の行列となる。
【０３９１】
オープン端検出部３７は、式（１７）に従い、N行K列の観測確率行列Bに、K行M列の行列であるアクションテンプレートCを乗算することにより、観測値Okが観測される状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、観測確率に基づくアクション確率Dを算出する。
【０３９２】
【数１７】
2010287027.tif 000019
・・・（１７）
【０３９３】
オープン端検出部３７は、以上のようにして、観測確率に基づくアクション確率Dを算出する他、状態遷移確率に基づくアクション確率Eを算出する。
【０３９４】
図１７は、状態遷移確率に基づくアクション確率Eを算出する方法を説明する図である。
【０３９５】
オープン端検出部３７は、i軸、j軸、及び、アクション軸からなる３次元の状態遷移確率テーブルAの、i軸方向の各状態Siについて、状態遷移確率aij(Um)を、アクションUmごとに加算することで、状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、状態遷移確率に基づくアクション確率Eを算出する。
【０３９６】
すなわち、オープン端検出部３７は、i軸、j軸、及び、アクション軸からなる状態遷移確率テーブルAの、水平方向（列方向）に並ぶ状態遷移確率aij(Um)の総和、つまり、i軸のある位置iと、アクション軸のある位置mに注目した場合に、点(i,m)を通るj軸に平行な直線上に並ぶ状態遷移確率aij(Um)の総和を求め、その総和を、行列の第i行第m列の要素とすることで、N行M列の行列である、状態遷移確率に基づくアクション確率Eを算出する。
【０３９７】
オープン端検出部３７は、以上のようにして、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとを算出すると、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとの差分である差分アクション確率Fを、式（１８）に従って算出する。
【０３９８】
【数１８】
2010287027.tif 000020
・・・（１８）
【０３９９】
差分アクション確率Fは、観測確率に基づくアクション確率Dや、状態遷移確率に基づくアクション確率Eと同様に、N行M列の行列となる。
【０４００】
図１８は、差分アクション確率Fを模式的に示す図である。
【０４０１】
図１８において、小さな正方形は、行列の要素を表している。また、模様を付していない正方形は、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とみなせない値となっている場合、オープン端検出部３７は、状態Siを、オープン端として検出するとともに、アクションUmを、オープン端である状態Siで行ったことがないアクションとして検出する。
【０４０７】
図１９は、図４のオープン端検出部３７が、図９のステップＳ５３で行うオープン端の検出の処理を説明するフローチャートである。
【０４０８】
ステップＳ８１において、オープン端検出部３７は、モデル記憶部２２（図４）に記憶された拡張HMMの観測確率B={bi(Ok)}を閾値処理し、これにより、図１４で説明したように、各観測値Okに対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップする。
【０４０９】
ステップＳ８１の後、処理は、ステップＳ８２に進み、オープン端検出部３７は、図１５で説明したように、モデル記憶部２２に記憶された拡張HMMの状態遷移確率A={aij(Um)}を用い、各観測値Okについて、その観測値Okに対してリストアップされた状態Siからの状態遷移のうちの、状態遷移確率aij(Um)が最大の状態遷移の状態遷移確率aij(Um)に対応する値である遷移確率対応値を、アクションUmごとに算出し、各観測値Okについて、アクションUmごとに算出された遷移確率対応値を、観測値Okが観測されたときにアクションUmが行われるアクション確率として、アクション確率を要素とする行列であるアクションテンプレートCを生成する。
【０４１０】
その後、処理は、ステップＳ８２からステップＳ８３に進み、オープン端検出部３７は、式（１７）に従い、観測確率行列Bに、アクションテンプレートCを乗算することにより、観測確率に基づくアクション確率Dを算出し、処理は、ステップＳ８４に進む。
【０４１１】
ステップＳ８４では、オープン端検出部３７は、図１７で説明したようにして、状態遷移確率テーブルAの、i軸方向の各状態Siについて、状態遷移確率aij(Um)を、アクションUmごとに加算することで、状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、状態遷移確率に基づくアクション確率Eを算出する。
【０４１２】
そして、処理は、ステップＳ８４からステップＳ８５に進み、オープン端検出部３７は、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとの差分である差分アクション確率Fを、式（１８）に従って算出し、処理は、ステップＳ８６に進む。
【０４１３】
ステップＳ８６では、オープン端検出部３７は、差分アクション確率Fを閾値処理することで、その差分アクション確率Fにおいて、値が所定の閾値以上の要素を、検出の対象の検出対象要素として検出する。
【０４１４】
さらに、オープン端検出部３７は、検出対象要素の行iと列mとを検出し、状態Siをオープン端として検出するとともに、アクションUmを、オープン端Siにおいて行ったことがない未経験アクションとして検出して、リターンする。
【０４１５】
エージェントは、オープン端において、未経験アクションを行うことにより、オープン端の先に続く未知の領域を開拓することができる。
【０４１６】
ここで、従来の行動決定手法では、エージェントの目標は、エージェントの経験を考慮せずに、既知の領域（学習済みの領域）と、未知の領域（未学習の領域）とを対等に（区別なく）扱って決定される。このため、未知の領域の経験を積むのに、多くのアクションを行う必要があり、その結果、アクション環境の構造を広く学習するのに、多くの試行と多大な時間を要していた。
【０４１７】
これに対して、図４のエージェントでは、オープン端を検出し、そのオープン端を目標状態として、アクションを決定するので、アクション環境の構造を、効率的に学習することができる。
【０４１８】
すなわち、オープン端は、その先に、エージェントが経験していない未知の領域が広がっている状態であるから、オープン端を検出し、そのオープン端を目標状態としてアクションを決定することにより、エージェントは、積極的に未知の領域に踏み込むことができる。これにより、エージェントは、アクション環境の構造を、より広く学習するための経験を効率的に積むことができる。
【０４１９】
［分岐構造の状態の検出］
【０４２０】
図２０は、図４の分岐構造検出部３６による分岐構造の状態の検出の方法を説明する図である。
【０４２１】
拡張HMMは、アクション環境において、構造が変化する部分を、分岐構造の状態として獲得する。エージェントがすでに経験した構造の変化に対応する分岐構造の状態は、長期記憶である拡張HMMの状態遷移確率を参照することで検出することができる。そして、分岐構造の状態が検出されれば、エージェントは、アクション環境において、構造が変化する部分の存在を認識することができる。
【０４２２】
アクション環境において、構造が変化する部分が存在する場合、そのような部分については、定期的、又は、不定期に、現在の構造を、積極的に確認し、抑制子、ひいては、短期記憶である補正遷移確率に反映しておくことが望ましい。
【０４２３】
そこで、図４のエージェントでは、分岐構造検出部３６において、分岐構造の状態を検出し、目標選択部３１において、分岐構造の状態を、目標状態に選択することが可能となっている。
【０４２４】
分岐構造検出部３６は、図２０に示すように、分岐構造の状態を検出する。
【０４２５】
すなわち、状態遷移確率テーブルAの各アクションUmについての状態遷移確率平面は、各行の水平方向（列方向）の総和が1.0になるように正規化されている。
【０４２６】
したがって、アクションUmについての状態遷移確率平面において、ある行iに注目した場合に、状態Siが分岐構造の状態でないときには、第i行の状態遷移確率aij(Um)の最大値は、1.0、又は、1.0に極めて近い値になる。
【０４２７】
一方、状態Siが分岐構造の状態であるときには、第i行の状態遷移確率aij(Um)の最大値は、図２０に示す0.6や0.5のように、1.0より十分小さく、かつ、総和が1.0の状態遷移確率を状態の数Nで均等に分けた場合の値（平均値）1/Nよりも大きくなる。
【０４２８】
そこで、分岐構造検出部３６は、式（１９）に従い、各アクションUmについての状態遷移確率平面の各行iの状態遷移確率aij(Um)の最大値が、1.0より小さい閾値amax_thより小で、平均値1/Nより大である場合に、状態Siを、分岐構造の状態として検出する。
【０４２９】
【数１９】
2010287027.tif 000021
・・・（１９）
【０４３０】
ここで、式（１９）において、Aijmは、３次元の状態遷移確率テーブルＡにおいて、i軸方向の位置が上からi番目で、j軸方向の位置が左からj番目で、アクション軸方向の位置が手前からm番目の状態遷移確率aij(Um)を表す。
【０４３１】
また、式（１９）において、max(Aijm)は、状態遷移確率テーブルAにおいて、j軸方向の位置が左からS番目（状態Siからの状態遷移の遷移先の状態が、状態S）で、アクション軸方向の位置が手前からU番目（状態Siからの状態遷移が生じるときに行われるアクションが、アクションU）の、N個の状態遷移確率A1,S,UないしAN,S,U（a1,S(U)ないしaN,S(U)）の中の最大値を表す。
【０４３２】
なお、式（１９）において、閾値amax_thは、分岐構造の状態の検出の敏感さを、どの程度にするかに応じて、1/N＜amax_th＜1.0の範囲で調整することができ、閾値amax_thを、1.0に近づけるほど、分岐構造の状態を、敏感に検出することができる。
【０４３３】
分岐構造検出部３６は、１以上の分岐構造の状態を検出した場合、図９で説明したように、その１以上の分岐構造の状態を、目標選択部３１に供給する。
【０４３４】
さらに、目標選択部３１は、経過時間管理テーブル記憶部３２の経過時間管理テーブルを参照し、分岐構造検出部３６からの１個以上の分岐構造の状態の経過時間を認識する。
【０４３５】
そして、目標選択部３１は、分岐構造検出部３６からの１個以上の分岐構造の状態の中から、経過時間が最も長い状態を検出し、その状態を、目標状態として選択する。
【０４３６】
以上のように、１個以上の分岐構造の状態の中から、経過時間が最も長い状態を検出し、その状態を、目標状態として選択することで、１個以上の分岐構造の状態のそれぞれを、いわば時間的に均等に目標状態として、分岐構造の状態に対応する構造が、どのようになっているかを確認するアクションを行うことができる。
【０４３７】
ここで、従来の行動決定手法では、分岐構造の状態に注目することなく、目標が決定されるため、分岐構造の状態ではない状態が目標とされることが多い。このため、アクション環境の最新の構造を把握しようとする場合に、無駄なアクションが行われることが多かった。
【０４３８】
これに対して、図４のエージェントでは、分岐構造の状態を目標状態として、アクションが決定されるので、分岐構造の状態に対応する部分の最新の構造を、早期に把握し、抑制子に反映することができる。
【０４３９】
なお、分岐構造の状態が目標状態にされた場合、エージェントは、目標状態となった分岐構造の状態（に対応する観測単位）に到達した後、その分岐構造の状態から、異なる状態に状態遷移が可能なアクションを、拡張HMMに基づいて特定し、そのアクションを行って移動することができ、これにより、分岐構造の状態に対応する部分の構造、すなわち、現在、分岐構造の状態から状態遷移が可能な状態を認識（把握）することができる。
【０４４０】
［シミュレーション］
【０４４１】
図２１は、本件発明者が行った、図４のエージェントについてのシミュレーションで採用したアクション環境を示す図である。
【０４４２】
すなわち、図２１Ａは、第１の構造のアクション環境を示しており、図２１Ｂは、第２の構造のアクション環境を示している。
【０４４３】
第１の構造のアクション環境では、位置pos1，pos2、及び、pos3が、通路になっており、通ることができるのに対して、第２の構造のアクション環境では、位置pos1ないしpos3が、壁になって、通ることができないようになっている。
【０４４４】
なお、位置pos1ないしpos3のそれぞれは、個別に、通路、又は、壁にすることができる。
【０４４５】
シミュレーションでは、第１及び第２の構造のアクション環境それぞれにおいて、反射アクションモード（図５）で、エージェントにアクションを行わせ、4000ステップ（時刻）分の学習データとなる観測系列、及び、アクション系列を得て、拡張HMMの学習を行った。
【０４４６】
図２２は、学習後の拡張HMMを模式的に示す図である。
【０４４７】
図２２において、丸（○）印は、拡張HMMの状態を表し、丸印の中に記載されている数字は、その丸印が表す状態のサフィックスである。また、丸印で表される状態どうしを表す矢印は、可能な状態遷移（状態遷移確率が0.0（とみなせる値）以外の状態遷移）を表す。
【０４４８】
図２２の拡張HMMでは、状態Siが、その状態Siに対応する観測単位の位置に配置されている。
【０４４９】
そして、状態遷移が可能な２つの状態は、その２つの状態それぞれに対応する２つの観測単位どうしの間で、エージェントが移動することができることを表現する。したがって、拡張HMMの状態遷移を表す矢印は、アクション環境において、エージェントが移動可能な通路を表す。
【０４５０】
ここで、図２２において、１つの観測単位の位置に、２つ（複数）の状態Si及びSi'が、一部分を重複して配置されている場合があるが、これは、その１つの観測単位に、２つ（複数）の状態Si及びSi'が対応することを表す。
【０４５１】
図２２においては、図１０Ａの場合と同様に、状態S3及びS30が、１つの観測単位に対応し、状態S34及びS35も、１つの観測単位に対応する。同様に、状態S21及びS23、状態S2及びS17、状態S37及びS48、状態S31及びS32も、それぞれ、１つの観測単位に対応する。
【０４５２】
また、図２２では、左方向に移動するアクションU4（図３Ｂ）が行われた場合に、異なる状態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が、分岐構造の状態になっている。
【０４５３】
なお、図２２において、点線の矢印は、第２の構造のアクション環境でのみ可能な状態遷移を表している。したがって、アクション環境の構造が、第１の構造（図２１Ａ）になっている場合、図２２において点線の矢印で表す状態遷移は、行うことができない。
【０４５４】
シミュレーションでは、図２２において点線の矢印で表す状態遷移に対応する抑制子を、0.0にするとともに、他の状態遷移に対応する抑制子を1.0にする初期設定を行い、これにより、エージェントが、シミュレーションの開始直後は、第２の構造のアクション環境でのみ可能な状態遷移が生じるアクションを含むアクションプランを算出することができないようにした。
【０４５５】
図２３ないし図２９は、学習後の拡張HMMに基づき、目標状態に到達するまでのアクションプランを算出し、そのアクションプランに従って決定されたアクションを行うエージェントを示す図である。
【０４５６】
なお、図２３ないし図２９において、上側には、アクション環境内のエージェントと、目標状態（に対応する観測単位）とを示してあり、下側には、拡張HMMを示してある。
【０４５７】
図２３は、時刻t=t0のエージェントを示している。
【０４５８】
時刻t=t0では、アクション環境の構造が、位置pos1ないしpos3が通路の第１の構造（図２１Ａ）になっている。
【０４５９】
さらに、時刻t=t0では、目標状態（に対応する観測単位）が、左下の状態S37になっており、エージェントは、状態S20（に対応する観測単位）に位置している。
【０４６０】
そして、エージェントは、目標状態である状態S37に向かうアクションプランを算出し、そのアクションプランに従って決定されたアクションとして、現在状態である状態S20から左方向への移動を行っている。
【０４６１】
図２４は、時刻t=t1（＞t0）のエージェントを示している。
【０４６２】
時刻t=t1では、アクション環境の構造が、第１の構造から、位置pos1は通路で通れるが、位置pos2及びpos3は壁で通れない構造に変化している。
【０４６３】
さらに、時刻t=t1では、目標状態が、時刻t=t0の場合と同様に、左下の状態S37になっており、エージェントは、状態S31に位置している。
【０４６４】
図２５は、時刻t=t2（＞t1）のエージェントを示している。
【０４６５】
時刻t=t2では、アクション環境の構造が、位置pos1は通路で通れるが、位置pos2及びpos3は壁で通れない構造（以下、変化後構造ともいう）になっている。
【０４６６】
さらに、時刻t=t2では、目標状態が、上側の状態3になっており、エージェントは、状態S31に位置している。
【０４６７】
そして、エージェントは、目標状態である状態S3に向かうアクションプランを算出し、そのアクションプランに従って決定されたアクションとして、現在状態である状態S31から上方向への移動を行おうとしている。
【０４６８】
ここで、時刻t=t2では、状態系列S31,S36,S39,S35,S3の状態遷移が生じるアクションプランが算出されている。
【０４６９】
なお、アクション環境が、第１の構造になっている場合、状態S37及びS48に対応する観測単位と、状態S31及びS32に対応する観測単位との間の位置pos1（図２１）、状態S3及びS30に対応する観測単位と、状態S34及びS35に対応する観測単位との間の位置pos2、並びに、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間の位置pos3は、いずれも通路であるから、エージェントは、位置pos1ないしpos3を通ることができる。
【０４７０】
しかしながら、アクション環境が、変化後構造になった場合には、位置pos2及びpos3は、壁になっているから、エージェントは、位置pos2及びpos3を通ることができない。
【０４７１】
上述したように、シミュレーションの初期設定では、第２の構造のアクション環境でのみ可能な状態遷移に対応する抑制子のみが、0.0に設定されており、時刻t=t2では、第１の構造のアクション環境で可能な状態遷移が抑制されていない。
【０４７２】
このため、時刻t=t2では、状態S3及びS30に対応する観測単位と、状態S34及びS35に対応する観測単位との間の位置pos2は、壁になっていて通ることができないが、エージェントは、状態S3及びS30に対応する観測単位と、状態S34及びS35に対応する観測単位との間の位置pos2を通る、状態S35から状態S3への状態遷移が生じるアクションを含むアクションプランを算出してしまっている。
【０４７３】
図２６は、時刻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の状態遷移が生じるアクションプラン（図２５）と同様のアクションプランを算出し、そのアクションプランに従って決定されたアクションを行うことで、状態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（図２１）は、壁になっており、エージェントは通ることができない。
【０４８１】
上述したように、シミュレーションの初期設定では、位置pos1ないしpos3が壁で通ることができない第２の構造のアクション環境でのみ可能な状態遷移に対応する抑制子のみが、0.0に設定されており、時刻t=t3では、第１の構造のアクション環境で可能な、位置pos3を通ることに対応する状態S23から状態S2への状態遷移が抑制されていない。
【０４８２】
このため、時刻t=t3では、エージェントは、状態S21及びS23に対応する観測単位と、状態S2及びS17に対応する観測単位との間の位置pos3を通る、状態S23から状態S2への状態遷移が生じるアクションプランを算出する。
【０４８３】
図２７は、時刻t=t4（＝t3+1）のエージェントを示している。
【０４８４】
時刻t=t4では、アクション環境の構造が、変化後構造になっている。
【０４８５】
さらに、時刻t=t4では、目標状態が、上側の状態3になっており、エージェントは、状態S21に位置している。
【０４８６】
エージェントは、時刻t=t3で算出された状態系列S28,S23,S2,S16,S22,S29,S3の状態遷移が生じるアクションプラン（図２６）に従って決定されたアクションを行うことで、状態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の状態遷移が生じるアクションプランが算出されている。
【０４８９】
図２８は、時刻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の状態遷移が生じるアクションプラン（図２７）に従って決定されたアクションを行うことで、状態S21に対応する観測単位から、状態S28に対応する観測単位に移動する。
【０４９３】
図２９は、時刻t=t6（＞t5）のエージェントを示している。
【０４９４】
時刻t=t6では、アクション環境の構造が、変化後構造になっている。
【０４９５】
さらに、時刻t=t6では、目標状態が、上側の状態3になっており、エージェントは、状態S15に位置している。
【０４９６】
そして、エージェントは、目標状態である状態S3に向かうアクションプランを算出し、そのアクションプランに従って決定されたアクションとして、現在状態である状態S15から右方向への移動を行おうとしている。
【０４９７】
ここで、時刻t=t6では、状態系列S10,S1,S2,S16,S22,S29,S3の状態遷移が生じるアクションプランが算出されている。
【０４９８】
以上のように、エージェントは、アクション環境の構造が変化しても、その変化後の構造を観測し（現在状態が、どの状態かを求め（認識し））、抑制子を更新する。そして、エージェントは、更新後の抑制子を用いて、アクションプランを算出し直し、最終的には、目標状態に到達することができる。
【０４９９】
［エージェントの応用例］
【０５００】
図３０は、図４のエージェントを応用した掃除ロボットの概要を示す図である。
【０５０１】
図３０において、掃除ロボット５１は、掃除機として機能するブロック、図４のエージェントのアクチュエータ１２、及び、センサ１３に相当するブロック、及び、無線通信を行うブロックを内蔵する。
【０５０２】
そして、図３０では、掃除ロボットは、リビングルームを、アクション環境として、アクションとしての移動を行い、リビングルーム内の掃除を行う。
【０５０３】
ホストコンピュータ５２は、図４の反射行動決定部１１、履歴記憶部１４、アクション制御部１５、及び、目標決定部１６として機能する（反射行動決定部１１、履歴記憶部１４、アクション制御部１５、及び、目標決定部１６に相当するブロックを有する）。
【０５０４】
また、ホストコンピュータ５２は、リビングルーム内、又は、他の部屋に設置され、無線LAN(Local Area Network)等による無線通信を制御するアクセスポイント５３と接続されている。
【０５０５】
ホストコンピュータ５３は、アクセスポイント５３を介して、掃除ロボット５１との間で無線通信を行うことにより、必要なデータをやりとりし、これにより、掃除ロボット５１は、図４のエージェントと同様なアクションとしての移動を行う。
【０５０６】
なお、図３０では、掃除ロボット５１の小型化のために、掃除ロボット５１に、十分な電源と計算性能とを搭載することが困難であることに鑑みて、掃除ロボット５１には、図４のエージェントを構成するブロックのうちの、必要最小限のブロックである、アクチュエータ１２、及び、センサ１３に相当するブロックだけを設け、他のブロックを、掃除ロボット５１とは別個のホストコンピュータ５２に設けてある。
【０５０７】
但し、掃除ロボット５１と、ホストコンピュータ５２とのそれぞれに、図４のエージェントを構成するブロックのうちのいずれのブロックを設けるかは、上述したブロックに限定されるものではない。
【０５０８】
すなわち、例えば、掃除ロボット５１には、アクチュエータ、及び、センサ１３の他、それほど高度な計算機能が要求されない反射アクション決定部１１に相当するブロックを設け、ホストコンピュータ５３は、高度な計算機能と大きな記憶容量を必要とする履歴記憶部１４、アクション制御部１５、及び、目標決定部１６に相当するブロックを設けることができる。
【０５０９】
ここで、拡張HMMによれば、異なる位置の観測単位で、同一の観測値が観測されるアクション環境において、観測値系列、及び、アクション系列を用いて、エージェントの現在の状況を認識し、現在状態、ひいては、エージェントが位置する観測単位（場所）を一意に特定することができる。
【０５１０】
そして、図４のエージェントは、現在状態に応じて、抑制子を更新し、更新後の抑制子で、拡張HMMの状態遷移確率を補正しながら、アクションプランを、逐次的に算出することで、構造が確率的に変化するアクション環境でも、目標状態に到達することができる。
【０５１１】
かかるエージェントは、例えば、人間の生活行動によって、動的に構造が変化する、例えば、人間が居住する住環境で活動する掃除ロボット等の実用ロボットに応用することができる。
【０５１２】
例えば、部屋等の住環境では、部屋のドア（扉）の開閉や、部屋の中の家具の配置の変更等によって、構造が変化することがある。
【０５１３】
但し、部屋自体の形状が変化することはないから、住環境は、構造が変化する部分と、変化しない部分とが共存する。
【０５１４】
拡張HMMによれば、構造が変化する部分を、分岐構造の状態として記憶することができ、したがって、構造が変化する部分を含む住環境を、効率的に（少ない記憶容量で）表現することができる。
【０５１５】
一方、住環境において、人間が操作する掃除機の代替機器として使用される掃除ロボットには、部屋全体を掃除するという目標を達成するために、掃除ロボットが、掃除ロボット自身の位置を特定し、構造が確率的に変化する部屋（構造が変化する可能性がある部屋）の中を、経路を適応的に切り替えながら移動する必要がある。
【０５１６】
このように、構造が確率的に変化する住環境において、掃除ロボット自身の位置を特定し、適応的に経路を切り替えながら、目標（部屋全体の掃除）を実現するには、図４のエージェントは、特に有用である。
【０５１７】
なお、掃除ロボットの製造コストを下げる観点から、観測値を観測する手段として、掃除ロボットに、高度なセンサとしてのカメラと、カメラが出力する画像の認識等の画像処理を行う画像処理装置とを搭載することは、避けることが望ましい。
【０５１８】
すなわち、掃除ロボットの製造コストを下げるには、掃除ロボットが観測値を観測する手段としては、複数方向への超音波やレーザ等の出力を行うことで測距を行う測距装置等の安価な手段を採用することが望ましい。
【０５１９】
しかしながら、観測値を観測する手段として、測距装置等の安価な手段を採用する場合には、住環境の異なる位置において、同一の観測値が観測されるケースが多くなり、１時刻の観測値だけでは、掃除ロボットの位置を、一意に特定することが困難となる。
【０５２０】
このように、１時刻の観測値だけでは、掃除ロボットの位置を、一意に特定することが困難な住環境であっても、拡張HMMによれば、観測値系列、及び、アクション系列を用いて、位置を、一意に特定することができる。
【０５２１】
［１状態１観測値制約］
【０５２２】
ところで、図４の学習部２１において、学習データを用いた拡張HMMの学習は、Baum-Welchの再推定法に従い、学習データが観測される尤度を最大化するように行われる。
【０５２３】
Baum-Welchの再推定法は、基本的には、勾配法により、モデルパラメータを収束させていく方法であるため、モデルパラメータが、ローカルミニマムに陥ることがある。
【０５２４】
モデルパラメータがローカルミニマムに陥るかどうかには、モデルパラメータの初期値に依存する初期値依存性がある。
【０５２５】
本実施の形態では、拡張HMMとして、エルゴディックなHMMを採用しているが、エルゴディックなHMMは、初期値依存性が、特に大きい。
【０５２６】
学習部２１（図４）では、初期値依存性を低減するために、１状態１観測値制約の下で、拡張HMMの学習を行うことができる。
【０５２７】
ここで、１状態１観測値制約とは、拡張HMM（を含むHMM）の１つの状態において、１つの観測値（だけ）が観測されるようにする制約である。
【０５２８】
なお、構造が変化するアクション環境において、拡張HMMの学習を、何らの制約もなしに行うと、学習後の拡張HMMにおいて、アクション環境の構造の変化が、観測確率に分布を持つことによって表現される場合と、状態遷移の分岐構造を持つことによって表現される場合とが混在することがある。
【０５２９】
ここで、アクション環境の構造の変化が、観測確率に分布を持つことによって表現される場合とは、ある１つの状態において、複数の観測値が観測される場合である。また、アクション環境の構造の変化が、状態遷移の分岐構造を持つことによって表現される場合とは、同一のアクションによって、異なる状態への状態遷移が生じる場合（あるアクションが行われた場合に、現在状態から、ある状態に状態遷移する可能性もあるし、その状態とは異なる状態に状態遷移する可能性もあるとき）である。
【０５３０】
１状態１観測値制約によれば、拡張HMMにおいて、アクション環境の構造の変化が、状態遷移の分岐構造を持つことのみによって表現される。
【０５３１】
なお、アクション環境の構造が変化しない場合には、１状態１観測値制約を課さずに、拡張HMMの学習を行うことができる。
【０５３２】
１状態１観測値制約は、拡張HMMの学習に、状態の分割、さらに、望ましくは、状態のマージ（統合）を導入することで課すことができる。
【０５３３】
［状態の分割］
【０５３４】
図３１は、１状態１観測値制約を実現するための状態の分割の概要を説明する図である。
【０５３５】
状態の分割では、Baum-Welchの再推定法により、モデルパラメータ（初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bi(Ok)）が収束した拡張HMMにおいて、１つの状態で、複数の観測値が観測される場合に、その複数の観測値の１つずつが、１つの状態で観測されるように、状態が、複数の観測値の数と同一の数の複数の状態に分割される。
【０５３６】
図３１Ａは、Baum-Welchの再推定法により、モデルパラメータが収束した直後の拡張HMM（の一部）を示している。
【０５３７】
図３１Ａでは、拡張HMMは、３つの状態S1,S2,S3を有し、状態S1とS2との間、及び、状態S2とS3との間のそれぞれで、状態遷移が可能となっている。
【０５３８】
さらに、図３１Ａでは、状態S1において、１つの観測値O15が、状態S2において、２つの観測値O7及びO13が、状態S3において、１つの観測値O5が、それぞれ観測されるようになっている。
【０５３９】
図３１Ａでは、状態S2において、複数である２つの観測値O7及びO13が観測されるので、状態S2が、その２つの観測値O7及びO13と同一の数の２つの状態に分割される。
【０５４０】
図３１Ｂは、状態の分割後の拡張HMM（の一部）を示している。
【０５４１】
図３１Ｂでは、図３１Ａの分割前の状態S2が、分割後の状態S2と、モデルパラメータが収束した直後の拡張HMMでは有効でない状態（例えば、状態遷移確率、及び、観測確率のすべてが、0.0（とみなせる値）になっている状態）のうちの１つである状態S4との２つに分割されている。
【０５４２】
さらに、図３１Ｂでは、分割後の状態S2において、分割前の状態S2で観測される２つの観測値O7及びO13のうちの１つである観測値O13のみが観測され、分割後の状態S4において、分割前の状態S2で観測される２つの観測値O7及びO13のうちの残りの１つである観測値O7のみが観測されるようになっている。
【０５４３】
また、図３１Ｂでは、分割後の状態S2については、分割前の状態S2と同様に、状態S1及びS3のそれぞれとの間で、状態遷移が可能になっている。分割後の状態S4についても、分割前の状態S2と同様に、状態S1及びS3のそれぞれとの間で、状態遷移が可能になっている。
【０５４４】
学習部２１（図４）は、状態の分割にあたって、まず、学習後（モデルパラメータが収束した直後）の拡張HMMにおいて、複数の観測値が観測される状態を、分割対象の分割対象状態として検出する。
【０５４５】
図３２は、分割対象状態の検出の方法を説明する図である。
【０５４６】
すなわち、図３２は、拡張HMMの観測確率行列Bを示している。
【０５４７】
観測確率行列Bは、図１６で説明したように、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)を、第i行第k列の要素とする行列である。
【０５４８】
拡張HMM（を含むHMM）の学習では、観測確率行列Bにおいて、ある状態Siにおいて、観測値O1ないしOKを観測する観測確率bi(O1)ないしbi(OK)それぞれは、その観測確率bi(O1)ないしbi(OK)の総和が1.0になるように正規化される。
【０５４９】
したがって、１つの状態Siにおいて、１つの観測値（のみ）が観測される場合には、その状態Siの観測確率bi(O1)ないしbi(OK)のうちの最大値は、1.0（とみなせる値）になり、最大値以外の観測確率は、0.0（とみなせる値）になる。
【０５５０】
一方、１つの状態Siにおいて、複数の観測値が観測される場合には、その状態Siの観測確率bi(O1)ないしbi(OK)のうちの最大値は、図３２に示す0.6や0.5のように、1.0より十分小さく、かつ、総和が1.0の観測確率を観測値O1ないしOKの数Kで均等に分けた場合の値（平均値）1/Kよりも大きくなる。
【０５５１】
したがって、分割対象状態は、式（２０）に従い、各状態Siについて、1.0より小さい閾値bmax_thより小さく、かつ、平均値1/Kより大きい観測確率Bik=bi(Ok)を検索することで検出することができる。
【０５５２】
【数２０】
2010287027.tif 000022
・・・（２０）
【０５５３】
ここで、式（２０）において、Bikは、観測確率行列Bの第i行第k列の要素を表し、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)に等しい。
【０５５４】
また、式（２０）において、argfind(1/K＜Bik＜bmax_th)は、状態SiのサフィックスiがSである場合において、かっこ内の条件式1/K＜Bik＜bmax_thを満たす観測確率BSkを検索する（見つける）ことができたときの、かっこ内の条件式1/K＜Bik＜bmax_thを満たす観測確率BSkすべてのサフィックスkを表す。
【０５５５】
なお、式（２０）において、閾値bmax_thは、分割対象状態の検出の敏感さを、どの程度にするかに応じて、1/K＜bmax_th＜1.0の範囲で調整することができ、閾値bmax_thを、1.0に近づけるほど、分割対象状態を、敏感に検出することができる。
【０５５６】
学習部２１（図４）は、式（２０）のかっこ内の条件式1/K＜Bik＜bmax_thを満たす観測確率BSkを検索する（見つける）ことができたときの、サフィックスiがSの状態を、分割対象状態として検出する。
【０５５７】
さらに、学習部２１は、式（２０）で表されるすべてのサフィックスkの観測値Okを、分割対象状態（サフィックスiがSの状態）で観測される複数の観測値として検出する。
【０５５８】
そして、学習部２１は、分割対象状態を、その分割対象状態で観測される複数の観測値と同一の数の複数の状態に分割する。
【０５５９】
ここで、分割対象状態を分割した分割後の状態を、分割後状態ということとすると、分割後状態の１つとしては、分割対象状態を採用し、残りの分割後状態としては、分割時に、拡張HMMにおいて有効でない状態を採用することができる。
【０５６０】
すなわち、例えば、分割対象状態を、３つの分割後状態に分割する場合には、その３つの分割後状態のうちの１つとして、分割対象状態を採用し、残りの２つとして、分割時に、拡張HMMにおいて有効でない状態を採用することができる。
【０５６１】
また、複数の分割後状態としては、すべて、分割時に、拡張HMMにおいて有効でない状態を採用することができる。但し、この場合、状態の分割後に、分割対象状態を有効でない状態とする必要がある。
【０５６２】
図３３は、分割対象状態を、分割後状態に分割する方法を説明する図である。
【０５６３】
図３３では、拡張HMMは、7個の状態S1ないしS7を有し、そのうちの、2個の状態S6及びS7が有効でない状態になっている。
【０５６４】
さらに、図３３では、状態S3を、２つの観測値O1及びO2が観測される分割対象状態として、その分割対象状態S3が、観測値O1が観測される分割後状態S3と、観測値O2が観測される分割後状態S6とに分割されている。
【０５６５】
学習部２１（図４）は、以下のようにして、分割対象状態S3を、２つの分割後状態S3及びS6に分割する
【０５６６】
すなわち、学習部２１は、分割対象状態S3を分割した分割後状態S3に、複数の観測値O1及びO2のうちの１つの観測値である、例えば、観測値O1を割り当て、分割後状態S3において、その分割後状態S3に割り当てられた観測値O1が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定する。
【０５６７】
さらに、学習部２１は、分割後状態S3を遷移元とする状態遷移の状態遷移確率a3,j(Um)を、分割対象状態S3を遷移元とする状態遷移の状態遷移確率a3,j(Um)に設定するとともに、分割後状態S3を遷移先とする状態遷移の状態遷移確率を、分割後状態S3に割り当てられた観測値の、分割対象状態S3における観測確率で、分割対象状態S3を遷移先とする状態遷移の状態遷移確率を補正した値に設定する。
【０５６８】
学習部２１は、他の分割後状態S6についても、同様に、観測確率、及び、状態遷移確率を設定する。
【０５６９】
図３３Ａは、分割後状態S3及びS6の観測確率の設定を説明する図である。
【０５７０】
図３３では、分割対象状態S3を分割した２つの分割後状態S3及びS6のうちの一方である分割後状態S3に、分割対象状態S3で観測される２つの観測値O1及びO2のうちの一方である観測値O1が割り当てられ、他方の分割後状態S6に、他方の観測値O2が割り当てられている。
【０５７１】
この場合、学習部２１は、図３３Ａに示すように、観測値O1を割り当てた分割後状態S3において、その観測値O1が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定する。
【０５７２】
さらに、学習部２１は、図３３Ａに示すように、観測値O2を割り当てた分割後状態S6において、その観測値O2が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定する。
【０５７３】
以上のような観測確率の設定は、式（２１）で表される。
【０５７４】
【数２１】
2010287027.tif 000023
・・・（２１）
【０５７５】
ここで、式（２１）において、B(,)は、２次元の配列であり、配列の要素Ｂ（S,O)は、状態Sにおいて、観測値Oが観測される観測確率を表す。
【０５７６】
また、サフィックスがコロン(:)になっている配列は、そのコロンになっている次元の要素のすべてを表す。したがって、式（２１）において、例えば、式B(S3,:)=0.0は、状態S3において、各観測値O1ないしOKが観測される観測確率を、すべて、0.0に設定することを表す。
【０５７７】
式（２１）によれば、状態S3において、各観測値O1ないしOKが観測される観測確率が、すべて、0.0に設定され（B(S3,:)=0.0）、その後、観測値O1が観測される観測確率だけが、1.0に設定される（B(S3,O1)=1.0）。
【０５７８】
さらに、式（２１）によれば、状態S6において、各観測値O1ないしOKが観測される観測確率が、すべて、0.0に設定され（B(S6,:)=0.0）、その後、観測値O2が観測される観測確率だけが、1.0に設定される（B(S6,O2)=1.0）。
【０５７９】
図３３Ｂは、分割後状態S3及びS6の状態遷移確率の設定を説明する図である。
【０５８０】
分割後状態S3及びS6のそれぞれを遷移元とする状態遷移としては、分割対象状態S3を遷移元とする状態遷移と同様の状態遷移が行われるべきである。
【０５８１】
そこで、学習部２１は、図３３Ｂに示すように、分割後状態S3を遷移元とする状態遷移の状態遷移確率を、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定する。さらに、学習部２１は、図３３Ｂに示すように、分割後状態S6を遷移元とする状態遷移の状態遷移確率も、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定する。
【０５８２】
一方、観測値O1が割り当てられた分割後状態S3、及び、観測値O2が割り当てられた分割後状態S6のそれぞれを遷移先とする状態遷移としては、分割対象状態S3を遷移先とする状態遷移を、その分割対象状態S3で観測値O1及びO2それぞれが観測される観測確率の割合（比）で分割したような状態遷移が行われるべきである。
【０５８３】
そこで、学習部２１は、図３３Ｂに示すように、分割対象状態S3を遷移先とする状態遷移の状態遷移確率に、分割後状態S3に割り当てられた観測値O1の、分割対象状態S3における観測確率を乗算することで、分割対象状態S3を遷移先とする状態遷移の状態遷移確率を補正し、観測値O1の観測確率によって状態遷移確率を補正した補正値を求める。
【０５８４】
そして、学習部２１は、観測値O1が割り当てられた分割後状態S3を遷移先とする状態遷移の状態遷移確率を、観測値O1の観測確率によって状態遷移確率を補正した補正値に設定する。
【０５８５】
さらに、学習部２１は、図３３Ｂに示すように、分割対象状態S3を遷移先とする状態遷移の状態遷移確率に、分割後状態S6に割り当てられた観測値O2の、分割対象状態S3における観測確率を乗算することで、分割対象状態S3を遷移先とする状態遷移の状態遷移確率を補正し、観測値O2の観測確率によって状態遷移確率を補正した補正値を求める。
【０５８６】
そして、学習部２１は、観測値O2が割り当てられた分割後状態S6を遷移先とする状態遷移の状態遷移確率を、観測値O2の観測確率によって状態遷移確率を補正した補正値に設定する。
【０５８７】
以上のような状態遷移確率の設定は、式（２２）で表される。
【０５８８】
【数２２】
2010287027.tif 000024
・・・（２２）
【０５８９】
ここで、式（２１）において、A(,,)は、３次元の配列であり、配列の要素A（S,S',U)は、アクションUが行われた場合に、状態Sを遷移元として、状態S'に状態遷移する状態遷移確率を表す。
【０５９０】
また、サフィックスがコロン(:)になっている配列は、式（２１）の場合と同様に、そのコロンになっている次元の要素のすべてを表す。
【０５９１】
したがって、式（２２）において、例えば、A(S3,:,:)は、各アクションが行われた場合の、状態S3を遷移元とする各状態Sへの状態遷移の状態遷移確率すべてを表す。また、式（２２）において、例えば、A(:,S3,:)は、各アクションが行われた場合の、状態S3を遷移先とする、各状態から状態S3への状態遷移の状態遷移確率すべてを表す。
【０５９２】
式（２２）によれば、すべてのアクションについて、分割後状態S3を遷移元とする状態遷移の状態遷移確率が、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定される（A(S3,:,:)=A(S3,:,:)）。
【０５９３】
また、すべてのアクションについて、分割後状態S6を遷移元とする状態遷移の状態遷移確率も、分割対象状態S3を遷移元とする状態遷移の状態遷移確率に設定される（A(S6,:,:)=A(S3,:,:)）。
【０５９４】
さらに、式（２２）によれば、すべてのアクションについて、分割対象状態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,:)）。
【０５９６】
また、式（２２）によれば、すべてのアクションについて、分割対象状態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,:)）。
【０５９８】
［状態のマージ］
【０５９９】
図３４は、１状態１観測値制約を実現するための状態のマージの概要を説明する図である。
【０６００】
状態のマージでは、Baum-Welchの再推定法により、モデルパラメータが収束した拡張HMMにおいて、あるアクションが行われたときの、１つの状態を遷移元とする状態遷移の遷移先の状態として、複数の状態（異なる状態）が存在し、その複数の状態それぞれにおいて、同一の観測値が観測される状態が存在する場合に、その同一の観測値が観測される複数の状態が、１つの状態にマージされる。
【０６０１】
また、状態のマージでは、モデルパラメータが収束した拡張HMMにおいて、あるアクションが行われたときの、１つの状態を遷移先とする状態遷移の遷移元の状態として、複数の状態が存在し、その複数の状態それぞれにおいて、同一の観測値が観測される状態が存在する場合に、その同一の観測値が観測される複数の状態が、１つの状態にマージされる。
【０６０２】
すなわち、状態のマージは、モデルパラメータが収束した拡張HMMにおいて、各アクションについて、同一の状態を遷移元、又は、遷移先とする状態遷移が生じ、かつ、同一の観測値が観測される複数の状態が存在する場合に、そのような複数の状態は、冗長であるため、１つの状態にマージされる。
【０６０３】
ここで、状態のマージには、あるアクションが行われたときの１つの状態からの状態遷移の遷移先の状態として、複数の状態が存在する場合に、その遷移先の複数の状態をマージするフォワードマージと、あるアクションが行われたときの１つの状態への状態遷移の遷移元の状態として、複数の状態が存在する場合に、その遷移元の複数の状態をマージするバックワードマージとがある。
【０６０４】
図３４Ａは、フォワードマージの例を示している。
【０６０５】
図３４Ａでは、拡張HMMは、状態S1ないしS5を有し、状態S1から状態S2及びS3への状態遷移、状態S2から状態S4への状態遷移、並びに、状態S3から状態S5への状態遷移が可能になっている。
【０６０６】
また、状態S1からの、複数の状態S2及びS3を遷移先とする状態遷移それぞれ、すなわち、遷移先を状態S2とする状態S1からの状態遷移と、遷移先を状態S3とする状態S1からの状態遷移とは、状態S1において、同一のアクションが行われた場合に行われるようになっている。
【０６０７】
さらに、状態S2及び状態S3では、同一の観測値O5が観測されるようになっている。
【０６０８】
この場合、学習部２１（図４）は、同一のアクションによって生じる、１つの状態S1からの状態遷移の遷移先であり、同一の観測値O5が観測される複数の状態S2及びS3を、マージの対象であるマージ対象状態として、そのマージ対象状態S2及びS3を、１つの状態にマージする。
【０６０９】
ここで、複数のマージ対象状態をマージして得られる１つの状態を、代表状態ともいうこととする。図３４Ａでは、２つのマージ対象状態S2及びS3が、１つの代表状態S2にマージされている。
【０６１０】
また、あるアクションが行われた場合に、ある１つの状態から生じ得る、同一の観測値が観測される状態への複数の状態遷移は、１つの遷移元の状態から、複数の遷移先の状態に向かって分岐しているように見えるので、そのような状態遷移を、フォワード方向の分岐ともいう。図３４Ａでは、状態S1から、状態S2への状態遷移と、状態S3への状態遷移とが、フォワード方向の分岐である。
【０６１１】
なお、フォワード方向の分岐では、分岐元の状態が、遷移元の状態S1となり、分岐先の状態が、同一の観測値が観測される遷移先の状態S2及びS3となる。そして、遷移先の状態でもある分岐先の状態S2及びS3が、マージ対象状態となる。
【０６１２】
図３４Ｂは、バックワードマージの例を示している。
【０６１３】
図３４Ｂでは、拡張HMMは、状態S1ないしS5を有し、状態S1から状態S3への状態遷移、状態S2から状態S4への状態遷移、状態S3から状態S5への状態遷移、及び、状態S4から状態S5への状態遷移が可能になっている。
【０６１４】
また、状態S5への、複数の状態S3及びS4を遷移元とする状態遷移それぞれ、すなわち、遷移元を状態S3とする状態S3から状態S5への状態遷移と、遷移元を状態S4とする状態S5への状態遷移とは、状態S3及びS4において、同一のアクションが行われた場合に行われるようになっている。
【０６１５】
さらに、状態S3及び状態S4では、同一の観測値O7が観測されるようになっている。
【０６１６】
この場合、学習部２１（図４）は、同一のアクションによって生じる、１つの状態S5への状態遷移の遷移元であり、同一の観測値O7が観測される状態S3及びS4を、マージ対象状態として、そのマージ対象状態S3及びS4を、１つの状態である代表状態にマージする。
【０６１７】
図３４Ｂでは、２つのマージ対象状態S3及びS4のうちの１つである状態S3が、代表状態になっている。
【０６１８】
ここで、あるアクションが行われた場合に、ある１つの状態を遷移先とする、同一の観測値が観測される複数の状態からの状態遷移は、１つの遷移先の状態から、複数の遷移元の状態に向かって分岐しているように見えるので、そのような状態遷移を、バックワード方向の分岐ともいう。図３４Ｂでは、状態S5への、状態S3からの状態遷移と、状態S4からの状態遷移とが、バックワード方向の分岐である。
【０６１９】
なお、バックワード方向の分岐では、分岐元の状態が、遷移先の状態S5となり、分岐先の状態が、同一の観測値が観測される遷移元の状態S3及びS4となる。そして、遷移元の状態でもある分岐先の状態S3及びS4が、マージ対象状態となる。
【０６２０】
学習部２１（図４）は、状態のマージにあたって、まず、学習後（モデルパラメータが収束した直後）の拡張HMMにおいて、分岐先の状態となっている複数の状態を、マージ対象状態として検出する。
【０６２１】
図３５は、マージ対象状態の検出の方法を説明する図である。
【０６２２】
学習部２１は、所定のアクションが行われたときの状態遷移の遷移元又は遷移先の拡張HMMの状態として、複数の状態が存在し、その複数の状態それぞれにおいて観測される、観測確率が最大の観測値が一致する場合の、複数の状態を、マージ対象状態として検出する。
【０６２３】
図３５Ａは、フォワード方向の分岐の分岐先となっている複数の状態を、マージ対象状態として検出する方法を示している。
【０６２４】
すなわち、図３５Ａは、あるアクション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を分岐元とするフォワード方向の分岐が存在する場合には、図３５Ａに示す0.5のように、1.0より十分小さく、かつ、総和が1.0の状態遷移確率を状態S1ないしSNの数Nで均等に分けた場合の値（平均値）1/Nよりも大きくなる。
【０６２８】
したがって、フォワード方向の分岐の分岐元となっている状態は、上述した、分岐構造の状態を検出する場合と同様に、式（１９）に従い、アクションUmについての状態遷移確率平面の行iの状態遷移確率aij(Um)（＝Aijm）の最大値が、1.0より小さい閾値amax_thより小で、平均値1/Nより大である状態Siを検索することで検出することができる。
【０６２９】
なお、この場合、式（１９）において、閾値amax_thは、フォワード方向の分岐の分岐元となっている状態の検出の敏感さを、どの程度にするかに応じて、1/N＜amax_th＜1.0の範囲で調整することができ、閾値amax_thを、1.0に近づけるほど、分岐元となっている状態を、敏感に検出することができる。
【０６３０】
学習部２１（図４）は、上述したようにして、フォワード方向の分岐の分岐元となっている状態（以下、分岐元状態ともいう）を検出すると、その分岐元状態からの、フォワード方向の分岐の分岐先になっている複数の状態を検出する。
【０６３１】
すなわち、学習部２１は、アクションUmのサフィックスmが、Uであり、フォワード方向の分岐の分岐元状態Siのサフィックスiが、Sである場合の、分岐元状態からの、フォワード方向の分岐の分岐先になっている複数の状態を式（２３）に従って検出する。
【０６３２】
【数２３】
2010287027.tif 000025
・・・（２３）
【０６３３】
ここで、式（２３）において、Aijmは、３次元の状態遷移確率テーブルにおいて、i軸方向の位置が上からi番目で、j軸方向の位置が左からj番目で、アクション軸方向の位置が手前からm番目の状態遷移確率aij(Um)を表す。
【０６３４】
また、式（２３）において、argfind(amin_th1＜Aijm)は、アクションUmのサフィックスmがUであり、分岐元状態SiのサフィックスiがSである場合において、かっこ内の条件式amin_th1＜Aijmを満たす状態遷移確率AS,j,Uを検索する（見つける）ことができたときの、かっこ内の条件式amin_th1＜Aijmを満たす状態遷移確率AS,j,Uすべてのサフィックスjを表す。
【０６３５】
なお、式（２３）において、閾値amin_th1は、フォワード方向の分岐の分岐先になっている複数の状態の検出の敏感さを、どの程度にするかに応じて、0.0＜amin_th1＜1.0の範囲で調整することができ、閾値amin_th1を、1.0に近づけるほど、フォワード方向の分岐の分岐先になっている複数の状態を、敏感に検出することができる。
【０６３６】
学習部２１（図４）は、式（２３）のかっこ内の条件式amin_th1＜Aijmを満たす状態遷移確率Aijmを検索する（見つける）ことができたときの、サフィックスがjの状態Sjを、フォワード方向の分岐の分岐先になっている状態（以下、分岐先状態ともいう）の候補として検出する。
【０６３７】
その後、学習部２１は、フォワード方向の分岐の分岐先状態の候補として、複数の状態が検出された場合、その複数の分岐先状態の候補それぞれにおいて観測される、観測確率が最大の観測値が一致するかどうかを判定する。
【０６３８】
そして、学習部２１は、複数の分岐先状態の候補のうちの、観測確率が最大の観測値が一致する候補を、フォワード方向の分岐の分岐先状態として検出する。
【０６３９】
すなわち、学習部２１は、複数の分岐先状態の候補それぞれについて、式（２４）に従って、観測確率が最大の観測値Omaxを求める。
【０６４０】
【数２４】
2010287027.tif 000026
・・・（２４）
【０６４１】
ここで、式（２４）において、Bikは、状態Siにおいて、観測値Okが観測される観測確率bi(Ok)を表す。
【０６４２】
また、式（２４）において、argmax(Bik)は、観測確率行列Bにおいて、状態SiのサフィックスがSの状態の、最大の観測確率観測確率BS,kのサフィックスkを表す。
【０６４３】
学習部２１は、複数の分岐先状態の候補としての複数の状態Siそれぞれのサフィックスiについて、式（２４）で得られる、最大の観測確率BS,kのサフィックスkが一致する場合に、複数の分岐先状態の候補のうちの、式（２４）で得られるサフィックスkが一致する候補を、フォワード方向の分岐の分岐先状態として検出する。
【０６４４】
ここで、図３５Ａでは、状態S3が、フォワード方向の分岐の分岐元状態として検出され、その分岐元状態S3からの状態遷移の状態遷移確率が、いずれも0.5である状態S1及びS4が、フォワード方向の分岐の分岐先状態の候補として検出されている。
【０６４５】
そして、フォワード方向の分岐の分岐先状態の候補である状態S1及びS4については、状態S1で観測される、観測確率が1.0で最大の観測値O2と、状態S4で観測される、観測確率が0.9で最大の観測値O2とが一致しているので、状態S1及びS4が、フォワード方向の分岐の分岐先状態として検出される。
【０６４６】
図３５Ｂは、バックワード方向の分岐の分岐先となっている複数の状態を、マージ対象状態として検出する方法を示している。
【０６４７】
すなわち、図３５Ｂは、あるアクションUmについての状態遷移確率平面Aと、観測確率行列Bとを示している。
【０６４８】
各アクションUmについての状態遷移確率平面Aでは、各状態Siについて、図３５Ａで説明したように、状態遷移確率は、状態Siを遷移元とする状態遷移確率aij(Um)の総和が、1.0になるように正規化されているが、状態Sjを遷移先とする状態遷移確率aij(Um)の総和（サフィックスj及びmを固定にし、サフィックスiを、1ないしNに変化させてとったaij(Um)の総和）が1.0になるような正規化は、行われていない。
【０６４９】
但し、状態Siから状態Sjへの状態遷移が行われる可能性がある場合には、状態Sjを遷移先とする状態遷移確率aij(Um)は、0.0（とみなせる値）ではない正の値になっている。
【０６５０】
したがって、バックワード方向の分岐の分岐元状態（となり得る状態）と、分岐先状態の候補とは、式（２５）に従って検出することができる。
【０６５１】
【数２５】
2010287027.tif 000027
・・・（２５）
【０６５２】
ここで、式（２５）において、Aijmは、３次元の状態遷移確率テーブルにおいて、i軸方向の位置が上からi番目で、j軸方向の位置が左からj番目で、アクション軸方向の位置が手前からm番目の状態遷移確率aij(Um)を表す。
【０６５３】
また、式（２５）において、argfind(amin_th2＜Aijm)は、アクションUmのサフィックスmがUであり、遷移先の状態SjのサフィックスjがSである場合において、かっこ内の条件式amin_th2＜Aijmを満たす状態遷移確率Ai,S,Uを検索する（見つける）ことができたときの、かっこ内の条件式amin_th2＜Aijmを満たす状態遷移確率Ai,S,Uすべてのサフィックスiを表す。
【０６５４】
なお、式（２５）において、閾値amin_th2は、バックワード方向の分岐の分岐元状態、及び、分岐先状態（の候補）の検出の敏感さを、どの程度にするかに応じて、0.0＜amin_th2＜1.0の範囲で調整することができ、閾値amin_th2を、1.0に近づけるほど、バックワード方向の分岐の分岐元状態、及び、分岐先状態を、敏感に検出することができる。
【０６５５】
学習部２１（図４）は、式（２５）のかっこ内の条件式amin_th2＜Aijmを満たす複数の状態遷移確率Aijmを検索する（見つける）ことができたときの、サフィックスjがSの状態を、バックワード方向の分岐の分岐元状態（となり得る状態）として検出する。
【０６５６】
さらに、学習部２１は、式（２５）のかっこ内の条件式amin_th2＜Aijmを満たす複数の状態遷移確率Aijmを検索することができたときの、その複数の状態遷移確率Aijmに対応する状態遷移の遷移元の複数の状態、つまり、条件式amin_th2＜Aijmを満たす複数個の状態遷移確率Ai,S,Uを検索することができたときの、かっこ内の条件式amin_th2＜Aijmを満たす複数個の状態遷移確率Ai,S,Uそれぞれのi（式（２５）が表す複数のi）をサフィックスとする複数の状態Siを、分岐先状態の候補として検出する。
【０６５７】
その後、学習部２１は、バックワード方向の分岐の複数の分岐先状態の候補それぞれにおいて観測される、観測確率が最大の観測値が一致するかどうかを判定する。
【０６５８】
そして、学習部２１は、フォワード方向の分岐の分岐先状態を検出する場合と同様に、複数の分岐先状態の候補のうちの、観測確率が最大の観測値が一致する候補を、バックワード方向の分岐の分岐先状態として検出する。
【０６５９】
ここで、図３５Ｂでは、状態S2が、バックワード方向の分岐の分岐元状態として検出され、その分岐元状態S2への状態遷移の状態遷移確率が、いずれも0.5である状態S2及びS5が、バックワード方向の分岐の分岐先状態の候補として検出されている。
【０６６０】
そして、バックワード方向の分岐の分岐先状態の候補である状態S2及びS5については、状態S2で観測される、観測確率が1.0で最大の観測値O3と、状態S5で観測される、観測確率が0.8で最大の観測値O3とが一致しているので、状態S2及びS5が、バックワード方向の分岐の分岐先状態として検出される。
【０６６１】
学習部２１は、以上のようにして、フォワード方向、及び、バックワード方向の分岐の分岐元状態と、その分岐先状態から分岐する複数の分岐先状態とを検出すると、その複数の分岐先状態を、１つの代表状態にマージする。
【０６６２】
ここで、学習部２１は、例えば、複数の分岐先状態のうちの、サフィックスが最小の分岐先状態を、代表状態として、複数の分岐先状態を、代表状態にマージする。
【０６６３】
すなわち、例えば、ある分岐元状態から分岐する複数の分岐先状態として、３つの状態が検出された場合には、学習部２１は、その複数の分岐先状態のうちの、サフィックスが最小の分岐先状態を、代表状態として、複数の分岐先状態を、代表状態にマージする。
【０６６４】
また、学習部２１は、３つの分岐先状態のうちの、代表状態とならなかった残りの２つの状態を、有効でない状態とする。
【０６６５】
なお、状態のマージにおいては、代表状態を分岐先状態ではなく、有効でない状態から選択することができる。この場合、複数の分岐先状態が代表状態にマージされた後、複数の分岐先状態は、すべて、有効でない状態にされる。
【０６６６】
図３６は、ある１つの分岐元状態から分岐する複数の分岐先状態を、１つの代表状態にマージする方法を説明する図である。
【０６６７】
図３６では、拡張HMMは、7個の状態S1ないしS7を有している。
【０６６８】
さらに、図３６では、２つの状態S1及びS4を、マージ対象状態とするとともに、その２つのマージ対象状態S1及びS4のうちの、サフィックスが最小の状態S1を、代表状態として、２つのマージ対象状態S1及びS4が、１つの代表状態S1にマージされている。
【０６６９】
学習部２１（図４）は、以下のようにして、２つのマージ対象状態S1及びS4を、１つの代表状態S1にマージする。
【０６７０】
すなわち、学習部２１は、代表状態S1において、各観測値Okが観測される観測確率b1(Ok)を、マージ対象状態である複数の状態S1及びS4それぞれにおいて、各観測値Okが観測される観測確率b1(Ok)及びb4(Ok)の平均値に設定するとともに、マージ対象状態である複数の状態S1及びS4のうちの、代表状態S1以外の状態S4において、各観測値Okが観測される観測確率b4(Ok)を、0に設定する。
【０６７１】
また、学習部２１は、代表状態S1を遷移元とする状態遷移の状態遷移確率a1,j(Um)を、マージ対象状態である複数の状態S1及びS4それぞれを遷移元とする状態遷移の状態遷移確率a1,j(Um)及びa4,j(Um)の平均値に設定するとともに、代表状態S1を遷移先とする状態遷移の状態遷移確率ai,1(Um)を、マージ対象状態である複数の状態S1及びS4それぞれを遷移先とする状態遷移の状態遷移確率ai,1(Um)及びai,4(Um)の和に設定する。
【０６７２】
さらに、学習部２１は、マージ対象状態である複数の状態S1及びS4のうちの、代表状態S1以外の状態S4を遷移元とする状態遷移の状態遷移確率a4,j(Um)、及び、遷移先とする状態遷移の状態遷移確率ai,4(Um)を、0に設定する。
【０６７３】
図３６Ａは、状態のマージで行われる観測確率の設定を説明する図である。
【０６７４】
学習部２１は、代表状態S1において、観測値O1が観測される観測確率b1(O1)を、マージ対象状態S1及びS4それぞれにおいて、観測値O1が観測される観測確率b1(O1)及びb4(O1)の平均値(b1(O1)＋びb4(O1))／2に設定する。
【０６７５】
代表状態S1において、他の観測値Okが観測される観測確率b1(Ok)も、同様に設定される。
【０６７６】
さらに、学習部２１は、マージ対象状態S1及びS4のうちの、代表状態S1以外の状態S4において、各観測値Okが観測される観測確率b4(Ok)を、0に設定する。
【０６７７】
以上のような観測確率の設定は、式（２６）で表される。
【０６７８】
【数２６】
2010287027.tif 000028
・・・（２６）
【０６７９】
ここで、式（２６）において、B(,)は、２次元の配列であり、配列の要素Ｂ（S,O)は、状態Sにおいて、観測値Oが観測される観測確率を表す。
【０６８０】
また、サフィックスがコロン(:)になっている配列は、そのコロンになっている次元の要素のすべてを表す。したがって、式（２６）において、例えば、式B(S4,:)=0.0は、状態S4において、各観測値が観測される観測確率を、すべて、0.0に設定することを表す。
【０６８１】
式（２６）によれば、代表状態S1において、各観測値Okが観測される観測確率b1(Ok)が、マージ対象状態S1及びS4それぞれにおいて、各観測値Okが観測される観測確率b1(Ok)及びb4(Ok)の平均値に設定される（B(S1,:)=(B(S1,:)+B(S4,:))/2)。
【０６８２】
さらに、式（２６）によれば、マージ対象状態S1及びS4のうちの、代表状態S1以外の状態S4において、各観測値Okが観測される観測確率b4(Ok)が、0に設定される(B(S4,:)=0.0)。
【０６８３】
図３６Ｂは、状態のマージで行われる状態遷移確率の設定を説明する図である。
【０６８４】
マージ対象状態である複数の状態それぞれを遷移元とする状態遷移は、一致しているとは限らない。そして、マージ対象状態をマージした代表状態を遷移元とする状態遷移としては、マージ対象状態である複数の状態それぞれを遷移元とする状態遷移が可能であるべきである。
【０６８５】
そこで、学習部２１は、図３６Ｂに示すように、代表状態S1を遷移元とする状態遷移の状態遷移確率a1,j(Um)を、マージ対象状態S1及びS4それぞれを遷移元とする状態遷移の状態遷移確率a1,j(Um)及びa4,j(Um)の平均値に設定する。
【０６８６】
一方、マージ対象状態である複数の状態それぞれを遷移先とする状態遷移も、一致しているとは限らない。そして、マージ対象状態をマージした代表状態を遷移先とする状態遷移としては、マージ対象状態である複数の状態それぞれを遷移先とする状態遷移が可能であるべきである。
【０６８７】
そこで、学習部２１は、図３６Ｂに示すように、代表状態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になるような正規化は、行われていないためである。
【０６８９】
学習部２１は、代表状態S1を遷移元とする状態遷移確率と、遷移先とする状態遷移確率との設定の他、マージ対象状態S1及びS4を、代表状態S1にマージすることによって、アクション環境の構造の表現に不要となるマージ対象状態（代表状態以外のマージ対象状態）S4を遷移元とする状態遷移確率と、遷移先とする状態遷移確率とを、0に設定する。
【０６９０】
以上のような状態遷移確率の設定は、式（２７）で表される。
【０６９１】
【数２７】
2010287027.tif 000029
・・・（２７）
【０６９２】
ここで、式（２７）において、A(,,)は、３次元の配列であり、配列の要素A（S,S',U)は、アクションUが行われた場合に、状態Sを遷移元として、状態S'に状態遷移する状態遷移確率を表す。
【０６９３】
また、サフィックスがコロン(:)になっている配列は、式（２６）の場合と同様に、そのコロンになっている次元の要素のすべてを表す。
【０６９４】
したがって、式（２７）において、例えば、A(S1,:,:)は、各アクションが行われた場合の、状態S1を遷移元とする各状態への状態遷移の状態遷移確率すべてを表す。また、式（２７）において、例えば、A(:,S1,:)は、各アクションが行われた場合の、状態S1を遷移先とする、各状態から状態S1への状態遷移の状態遷移確率すべてを表す。
【０６９５】
式（２７）によれば、すべてのアクションについて、代表状態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,:)）
【０６９７】
さらに、式（２７）によれば、すべてのアクションについて、マージ対象状態S1及びS4を、代表状態S1にマージすることによって、アクション環境の構造の表現に不要となるマージ対象状態S4を遷移元とする状態遷移確率と、遷移先とする状態遷移確率とが、0に設定される(A(S4,:,:)=0.0，A(:,S4,:)=0.0)。
【０６９８】
以上のように、マージ対象状態S1及びS4を、代表状態S1にマージすることによって、アクション環境の構造の表現に不要となるマージ対象状態S4を遷移元とする状態遷移確率と、遷移先とする状態遷移確率とを、0.0に設定するとともに、その不要となるマージ対象状態S4において、各観測値が観測される観測確率を0.0に設定することにより、不要となるマージ対象状態S4は、有効でない状態となる。
【０６９９】
［１状態１観測値制約の下での拡張HMMの学習］
【０７００】
図３７は、図４の学習部２１が、１状態１観測値制約の下で行う、拡張HMMの学習の処理を説明するフローチャートである。
【０７０１】
ステップＳ９１において、学習部２１は、履歴記憶部１４に記憶された学習データとしての観測値系列及びアクション系列を用いて、Baum-Welchの再推定法に従い、拡張HMMの初期学習、すなわち、図７のステップＳ２１ないしＳ２４と同様の処理を行う。
【０７０２】
ステップＳ９１の初期学習において、拡張HMMのモデルパラメータが収束すると、学習部２１は、その拡張HMMのモデルパラメータを、モデル記憶部２２（図４）に記憶させて、処理は、ステップＳ９２に進む。
【０７０３】
ステップＳ９２では、学習部２１は、モデル記憶部２２に記憶された拡張HMMから、分割対象状態を検出し、処理は、ステップＳ９３に進む。
【０７０４】
ここで、ステップＳ９２において、学習部２１が分割対象状態を検出することができなかった場合、すなわち、モデル記憶部２２に記憶された拡張HMMに、分割対象状態が存在しない場合、処理は、ステップＳ９３及びＳ９４をスキップして、ステップＳ９５に進む。
【０７０５】
ステップＳ９３では、学習部２１は、ステップＳ９２で検出された分割対象状態を、複数の分割後状態に分割する状態の分割を行い、処理は、ステップＳ９４に進む。
【０７０６】
ステップＳ９４では、学習部２１は、履歴記憶部１４に記憶された学習データとしての観測値系列及びアクション系列を用いて、Baum-Welchの再推定法に従い、モデル記憶部２２に記憶された、直前のステップＳ９３で状態の分割が行われた拡張HMMの学習、すなわち、図７のステップＳ２２ないしＳ２４と同様の処理を行う。
【０７０７】
なお、ステップＳ９４の学習では（後述するステップＳ９７でも同様）、モデル記憶部２２に記憶されている拡張HMMのモデルパラメータが、そのままモデルパラメータの初期値として用いられる。
【０７０８】
ステップＳ９４の学習において、拡張HMMのモデルパラメータが収束すると、学習部２１は、その拡張HMMのモデルパラメータを、モデル記憶部２２（図４）に記憶させて（上書きして）、処理は、ステップＳ９５に進む。
【０７０９】
ステップＳ９５では、学習部２１は、モデル記憶部２２に記憶された拡張HMMから、マージ対象状態を検出し、処理は、ステップＳ９６に進む。
【０７１０】
ここで、ステップＳ９５において、学習部２１がマージ対象状態を検出することができなかった場合、すなわち、モデル記憶部２２に記憶された拡張HMMに、マージ対象状態が存在しない場合、処理は、ステップＳ９６及びＳ９７をスキップして、ステップＳ９８に進む。
【０７１１】
ステップＳ９６では、学習部２１は、ステップＳ９５で検出されたマージ対象状態を、代表状態にマージする状態のマージを行い、処理は、ステップＳ９７に進む。
【０７１２】
ステップＳ９７では、学習部２１は、履歴記憶部１４に記憶された学習データとしての観測値系列及びアクション系列を用いて、Baum-Welchの再推定法に従い、モデル記憶部２２に記憶された、直前のステップＳ９６で状態のマージが行われた拡張HMMの学習、すなわち、図７のステップＳ２２ないしＳ２４と同様の処理を行う。
【０７１３】
ステップＳ９７の学習において、拡張HMMのモデルパラメータが収束すると、学習部２１は、その拡張HMMのモデルパラメータを、モデル記憶部２２（図４）に記憶させて（上書きして）、処理は、ステップＳ９８に進む。
【０７１４】
ステップＳ９８では、学習部２１は、直前のステップＳ９２での分割対象状態の検出の処理で、分割対象状態が検出されず、かつ、直前のステップＳ９５でのマージ対象状態の検出の処理で、マージ対象状態が検出されなかったかどうかを判定する。
【０７１５】
ステップＳ９８において、分割対象状態、及び、マージ対象状態のうちの、少なくとも一方が検出されたと判定された場合、処理は、ステップＳ９２に戻り、以下、同様の処理が繰り返される。
【０７１６】
また、ステップＳ９８において、分割対象状態、及び、マージ対象状態の両方が検出されなかったと判定された場合、拡張HMMの学習の処理は終了する。
【０７１７】
以上のように、状態の分割、状態の分割後の拡張HMMの学習、状態のマージ、及び、状態のマージ後の拡張HMMの学習を、分割対象状態、及び、マージ対象状態の両方が検出されなくなるまで繰り返すことで、１状態１観測値制約を充足する学習が行われ、１つの状態において、１つの観測値（だけ）が観測される拡張HMMを得ることができる。
【０７１８】
図３８は、図４の学習部２１が、図３７のステップＳ９２で行う、分割対象状態の検出の処理を説明するフローチャートである。
【０７１９】
ステップＳ１１１において、学習部２１は、状態Siのサフィックスを表す変数iを、例えば、1に初期化して、処理は、ステップＳ１１２に進む。
【０７２０】
ステップＳ１１２では、学習部２１は、観測値Okのサフィックスを表す変数kを、例えば、1に初期化して、処理は、ステップＳ１１３に進む。
４
ステップＳ１１３では、学習部２１は、状態Siにおいて、観測値Okが観測される観測確率Bik＝bi(Ok)が、式（２０）のかっこ内の条件式1/K＜Bik＜bmax_thを満たすかどうかを判定する。
【０７２１】
ステップＳ１１３において、観測確率Bik＝bi(Ok)が、条件式1/K＜Bik＜bmax_thを満たさないと判定された場合、処理は、ステップＳ１１４をスキップして、ステップＳ１１５に進む。
【０７２２】
また、ステップＳ１１３において、観測確率Bik＝bi(Ok)が、条件式1/K＜Bik＜bmax_thを満たすと判定された場合、処理は、ステップＳ１１４に進み、学習部２１は、観測値Okを、分割対象の観測値（分割後状態に１つずつ割り当てる観測値）として、状態Siに対応付けて、図示せぬメモリに、一時記憶する。
【０７２３】
その後、処理は、ステップＳ１１４からステップＳ１１５に進み、サフィックスkが、観測値の数（以下、シンボル数ともいう）Kに等しいかどうかを判定する。
【０７２４】
ステップＳ１１５において、サフィックスkがシンボル数Kに等しくないと判定された場合、処理は、ステップＳ１１６に進み、学習部２１は、サフィックスkを1だけインクリメントする。そして、処理は、ステップＳ１１６からステップＳ１１３に戻り、以下、同様の処理が繰り返される。
【０７２５】
また、ステップＳ１１５において、サフィックスkがシンボル数Kに等しいと判定された場合、処理は、ステップＳ１１７に進み、学習部２１は、サフィックスiが状態数（拡張HMMの状態の数）Nに等しいかどうかを判定する。
【０７２６】
ステップＳ１１７において、サフィックスiが状態数Nに等しくないと判定された場合、処理は、ステップＳ１１８に進み、学習部２１は、サフィックスiを1だけインクリメントする。そして、処理は、ステップＳ１１８からステップＳ１１２に戻り、以下、同様の処理が繰り返される。
【０７２７】
また、ステップＳ１１７において、サフィックスiが状態数Nに等しいと判定された場合、処理は、ステップＳ１１９に進み、学習部２１は、ステップＳ１１４で分割対象の観測値と対応付けて記憶されている状態Siのそれぞれを、分割対象状態として検出し、処理はリターンする。
【０７２８】
図３９は、図４の学習部２１が、図３７のステップＳ９３で行う、状態の分割（分割対象状態の分割）の処理を説明するフローチャートである。
【０７２９】
ステップＳ１３１において、学習部２１は、分割対象状態の中で、まだ、注目する注目状態としていない状態の１つを、注目状態に選択して、処理は、ステップＳ１３２に進む。
【０７３０】
ステップＳ１３２では、学習部２１は、注目状態に対応付けられている分割対象の観測値の数を、注目状態を分割した分割後状態の数（以下、分割数ともいう）CSとして、拡張HMMの状態のうちの、注目状態と、有効でない状態のうちのCS-1個の状態との、合計で、Cs個の状態を、分割後状態に選択する。
【０７３１】
その後、処理は、ステップＳ１３２からステップＳ１３３に進み、学習部２１は、Cs個の分割後状態のそれぞれに、注目状態に対応付けられているCS個の分割対象の観測値の1個ずつを割り当て、処理は、ステップＳ１３４に進む。
【０７３２】
ステップＳ１３４では、学習部２１は、Cs個の分割後状態をカウントする変数cを、例えば1に初期化して、処理は、ステップＳ１３５に進む。
【０７３３】
ステップＳ１３５では、学習部２１は、Cs個の分割後状態のうちの、c番目の分割後状態を、注目する注目分割後状態に選択し、処理は、ステップＳ１３６に進む。
【０７３４】
ステップＳ１３６では、学習部２１は、注目分割後状態において、その注目分割後状態に割り当てられた分割対象の観測値が観測される観測確率を、1.0に設定するとともに、他の観測値が観測される観測確率を、0.0に設定して、処理は、ステップＳ１３７に進む。
【０７３５】
ステップＳ１３７では、学習部２１は、注目分割後状態を遷移元とする状態遷移の状態遷移確率を、注目状態を遷移元とする状態遷移の状態遷移確率に設定して、処理は、ステップＳ１３８に進む。
【０７３６】
ステップＳ１３８では、学習部２１は、図３３で説明したように、注目分割後状態に割り当てられた分割対象状態の観測値が、注目状態において観測される観測確率によって、注目状態を遷移先とする状態遷移の状態遷移確率を補正し、状態遷移確率の補正値を求めて、処理は、ステップＳ１３９に進む。
【０７３７】
ステップＳ１３９では、学習部２１は、注目分割後状態を遷移先とする状態遷移の状態遷移確率を、直前のステップＳ１３８で求めた補正値に設定し、処理は、ステップＳ１４０に進む。
【０７３８】
ステップＳ１４０では、学習部２１は、変数cが分割数CSに等しいかどうかを判定する。
【０７３９】
ステップＳ１４０において、変数cが分割数CSに等しくないと判定された場合、処理は、ステップＳ１４１に進み、学習部２１は、変数cを1だけインクリメントして、処理は、ステップＳ１３５に戻る。
【０７４０】
また、ステップＳ１４０において、変数cが分割数CSに等しいと判定された場合、処理は、ステップＳ１４２に進み、学習部２１は、分割対象状態のすべてを、注目状態に選択したかどうかを判定する。
【０７４１】
ステップＳ１４２において、分割対象状態のすべてを、まだ、注目状態に選択していないと判定された場合、処理は、ステップＳ１３１に戻り、以下、同様の処理が繰り返される。
４
また、ステップＳ１４２において、分割対象状態のすべてを、注目状態に選択したと判定された場合、すなわち、分割対象状態すべての分割が完了した場合、処理はリターンする。
【０７４２】
図４０は、図４の学習部２１が、図３７のステップＳ９５で行う、マージ対象状態の検出の処理を説明するフローチャートである。
【０７４３】
ステップＳ１６１において、学習部２１は、アクションUmのサフィックスを表す変数mを、例えば、1に初期化して、処理は、ステップＳ１６２に進む。
【０７４４】
ステップＳ１６２では、学習部２１は、状態Siのサフィックスを表す変数iを、例えば、1に初期化して、処理は、ステップＳ１６３に進む。
４
ステップＳ１６３では、学習部２１は、モデル記憶部２２に記憶された拡張HMMにおいて、アクションUmについての、状態Siを遷移元とする各状態Sjへの状態遷移の状態遷移確率Aijm=aij(Um)の中の最大値max(Aijm)を検出して、処理は、ステップＳ１６４に進む。
【０７４５】
ステップＳ１６４では、学習部２１は、最大値max(Aijm)が、式（１９）、すなわち、式1/N＜max(Aijm)＜amax_thを満たすかどうかを判定する。
【０７４６】
ステップＳ１６４において、最大値max(Aijm)が、式（１９）を満たさないと判定された場合、処理は、ステップＳ１６５をスキップして、ステップＳ１６６に進む。
【０７４７】
また、ステップＳ１６４において、最大値max(Aijm)が、式（１９）を満たすと判定された場合、処理は、ステップＳ１６５に進み、学習部２１は、状態Siを、フォワード方向の分岐の分岐元状態として検出する。
【０７４８】
さらに、学習部２１は、アクションUmについての、フォワード方向の分岐の分岐元状態Siを遷移元とする状態遷移の中で、状態遷移確率Aijm=aij(Um)が、式（２３）のかっこ内の条件式amin_th1＜Aijmを満たす状態遷移の遷移先の状態Sjを、フォワード方向の分岐の分岐先状態として検出し、処理は、ステップＳ１６５からステップＳ１６６に進む。
【０７４９】
ステップＳ１６６では、学習部２１は、サフィックスiが状態数Nに等しいかどうかを判定する。
【０７５０】
ステップＳ１６６において、サフィックスiが状態数Nに等しくないと判定された場合、処理は、ステップＳ１６７に進み、学習部２１は、サフィックスiを1だけインクリメントして、処理は、ステップＳ１６３に戻る。
【０７５１】
また、ステップＳ１６６において、サフィックスiが状態数Nに等しいと判定された場合、処理は、ステップＳ１６８に進み、学習部２１は、状態Sjのサフィックスを表す変数jを、例えば、1に初期化して、処理は、ステップＳ１６９に進む。
【０７５２】
ステップＳ１６９では、学習部２１は、アクションUmについての、状態Sjを遷移先とする各状態Si'からの状態遷移の中で、状態遷移確率Ai'jm=ai'j(Um)が、式（２５）のかっこ内の条件式amin_th2＜Ai'jmを満たす状態遷移の遷移元の状態Si'が複数存在するかどうかを判定する。
【０７５３】
ステップＳ１６９において、式（２５）のかっこ内の条件式amin_th2＜Ai'jmを満たす状態遷移の遷移元の状態Si'が複数存在しないと判定された場合、処理は、ステップＳ１７０をスキップして、ステップＳ１７１に進む。
【０７５４】
また、ステップＳ１６９において、式（２５）のかっこ内の条件式amin_th2＜Ai'jmを満たす状態遷移の遷移元の状態Si'が複数存在すると判定された場合、処理は、ステップＳ１７０に進み、学習部２１は、状態Sjをバックワード方向の分岐の分岐元状態として検出する。
４
さらに、学習部２１は、アクションUmについての、バックワード方向の分岐の分岐元状態Sjを遷移先とする各状態Si'からの状態遷移の中で、状態遷移確率Ai'jm=ai'j(Um)が、式（２５）のかっこ内の条件式amin_th2＜Ai'jmを満たす状態遷移の、複数の遷移元の状態Si'を、バックワード方向の分岐の分岐先状態として検出し、処理は、ステップＳ１７０からステップＳ１７１に進む。
【０７５５】
ステップＳ１７１では、学習部２１は、サフィックスjが状態数Nに等しいかどうかを判定する。
【０７５６】
ステップＳ１７１において、サフィックスjが状態数Nに等しくないと判定された場合、処理は、ステップＳ１７２に進み、学習部２１は、サフィックスjを1だけインクリメントして、処理は、ステップＳ１６９に戻る。
【０７５７】
また、ステップＳ１７１において、サフィックスjが状態数Nに等しいと判定された場合、処理は、ステップＳ１７３に進み、学習部２１は、サフィックスmがアクションUmの数（以下、アクション数ともいう）Mに等しいかどうかを判定する。
【０７５８】
ステップＳ１７３において、サフィックスmがアクション数Mに等しくないと判定された場合、処理は、ステップＳ１７４に進み、学習部２１は、サフィックスmを1だけインクリメントして、処理は、ステップＳ１６２に戻る。
【０７５９】
また、ステップＳ１７３において、サフィックスmがアクション数Mに等しいと判定された場合、処理は、図４１のステップＳ１９１に進む。
【０７６０】
すなわち、図４１は、図４０に続くフローチャートである。
【０７６１】
図４１のステップＳ１９１では、学習部２１は、図４０のステップＳ１６１ないしＳ１７４の処理によって検出された分岐元状態の中で、まだ、注目状態としていない分岐元状態の１つを、注目状態に選択して、処理は、ステップＳ１９２に進む。
【０７６２】
ステップＳ１９２では、学習部２１は、注目状態に対して検出された複数の分岐先状態（の候補）、つまり、注目状態を分岐元として分岐する複数の分岐先状態（の候補）それぞれについて、分岐先状態において観測される、観測確率が最大の観測値（以下、最大確率観測値ともいう）Omaxを、式（２４）に従って検出し、処理は、ステップＳ１９３に進む。
【０７６３】
ステップＳ１９３では、学習部２１は、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する分岐先状態があるかどうかを判定する。
【０７６４】
ステップＳ１９３において、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する分岐先状態がないと判定された場合、処理は、ステップＳ１９４をスキップして、ステップＳ１９５に進む。
【０７６５】
また、ステップＳ１９３において、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する分岐先状態があると判定された場合、処理は、ステップＳ１９４に進み、学習部２１は、注目状態に対して検出された複数の分岐先状態の中で、最大確率観測値Omaxが一致する複数の分岐先状態を、１グループのマージ対象状態として検出し、処理は、ステップＳ１９５に進む。
【０７６６】
ステップＳ１９５では、学習部２１は、分割元状態のすべてを、注目状態に選択したかどうかを判定する。
【０７６７】
ステップＳ１９５において、分割元状態のすべてを、まだ、注目状態に選択していないと判定された場合、処理は、ステップＳ１９１に戻る。
【０７６８】
また、ステップＳ１９５において、分割元状態のすべてを、注目状態に選択したと判定された場合、処理はリターンする。
【０７６９】
図４２は、図４の学習部２１が、図３７のステップＳ９６で行う、状態のマージ（マージ対象状態のマージ）の処理を説明するフローチャートである。
【０７７０】
ステップＳ２１１において、学習部２１は、マージ対象状態のグループの中で、まだ、注目グループとしていないグループの１つを、注目グループに選択して、処理は、ステップＳ２１２に進む。
【０７７１】
ステップＳ２１２では、学習部２１は、注目グループの複数のマージ対象状態のうちの、例えば、サフィックスが最小のマージ対象状態を、注目グループの代表状態に選択して、処理は、ステップＳ２１３に進む。
【０７７２】
ステップＳ２１３では、学習部２１は、代表状態において、各観測値が観測される観測確率を、注目グループの複数のマージ対象状態それぞれにおいて、各観測値が観測される観測確率の平均値に設定する。
【０７７３】
さらに、ステップＳ２１３では、学習部２１は、注目グループの代表状態以外のマージ対象状態において、各観測値が観測される観測確率を、0.0に設定して、処理は、ステップＳ２１４に進む。
【０７７４】
ステップＳ２１４では、学習部２１は、代表状態を遷移元とする状態遷移の状態遷移確率を、注目グループのマージ対象状態それぞれを遷移元とする状態遷移の状態遷移確率の平均値に設定して、処理は、ステップＳ２１５に進む。
【０７７５】
ステップＳ２１５では、学習部２１は、代表状態を遷移先とする状態遷移の状態遷移確率を、注目グループのマージ対象状態それぞれを遷移先とする状態遷移の状態遷移確率の和に設定して、処理は、ステップＳ２１６に進む。
【０７７６】
ステップＳ２１６では、学習部２１は、注目グループの代表状態以外のマージ対象状態を遷移元とする状態遷移、及び、注目グループの代表状態以外のマージ対象状態を遷移先とする状態遷移の状態遷移確率を、0.0に設定して、処理は、ステップＳ２１７に進む。
【０７７７】
ステップＳ２１７では、学習部２１は、マージ対象状態のグループのすべてを、注目グループに選択したかどうかを判定する。
【０７７８】
ステップＳ２１７において、マージ対象状態のグループのすべてを、まだ、注目グループに選択していないと判定された場合、処理は、ステップＳ２１１に戻る。
【０７７９】
また、ステップＳ２１７において、マージ対象状態のグループのすべてを、注目グループに選択したと判定された場合、処理はリターンする。
【０７８０】
図４３は、本件発明者が行った、１状態１観測値制約の下での拡張HMMの学習のシミュレーションを説明する図である。
【０７８１】
図４３Ａは、シミュレーションで採用したアクション環境を示す図である。
【０７８２】
シミュレーションでは、アクション環境として、構造が、第１の構造と第２の構造とに変換する環境を採用した。
【０７８３】
第１の構造のアクション環境では、位置posが、壁になって、通ることができないようになっているのに対して、第２の構造のアクション環境では、位置posが、通路になっており、通ることができるようになっている。
【０７８４】
シミュレーションでは、第１及び第２の構造のアクション環境それぞれにおいて、学習データとなる観測系列、及び、アクション系列を得て、拡張HMMの学習を行った。
【０７８５】
図４３Ｂは、１状態１観測値制約なしで行った学習の結果得られた拡張HMMを示しており、図４３Ｃは、１状態１観測値制約ありで行った学習の結果得られた拡張HMMを示している。
【０７８６】
図４３Ｂ及び図４３Ｃにおいて、丸（○）印は、拡張HMMの状態を表し、丸印の中に記載されている数字は、その丸印が表す状態のサフィックスである。また、丸印で表される状態どうしを表す矢印は、可能な状態遷移（状態遷移確率が0.0（とみなせる値）以外の状態遷移）を表す。
【０７８７】
また、図４３Ｂ及び図４３Ｃにおいて、左側の位置に、垂直方向に並べてある状態（を表す丸印）は、拡張HMMにおいて、有効でない状態になっている。
【０７８８】
図４３Ｂの拡張HMMによれば、１状態１観測値制約なしの学習では、モデルパラメータがローカルミニマムに陥り、学習後の拡張HMMにおいて、構造が変化するアクション環境の第１及び第２の構造が、観測確率に分布を持つことによって表現される場合と、状態遷移の分岐構造を持つことによって表現される場合とが混在してしまい、その結果、構造が変化するアクション環境の構造を、拡張HMMの状態遷移によって適切に表現することができていないことを確認することができる。
【０７８９】
一方、図４３Ｃの拡張HMMによれば、１状態１観測値制約ありの学習では、学習後の拡張HMMにおいて、構造が変化するアクション環境の第１及び第２の構造が、状態遷移の分岐構造を持つことのみによって表現され、構造が変化するアクション環境の構造を、拡張HMMの状態遷移によって適切に表現することができていることを確認することができる。
【０７９０】
１状態１観測値制約ありの学習によれば、アクション環境の構造が変化する場合に、構造が変化しない部分は、拡張HMMにおいて共通に記憶され、構造が変化する部分は、拡張HMMにおいて、状態遷移の分岐構造（あるアクションが行われた場合に生じる状態遷移として、異なる状態への（複数の）状態遷移があること）によって表現される。
【０７９１】
したがって、構造が変化するアクション環境を、構造ごとにモデルを用意せずに、１つの拡張HMMだけで、適切に表現することができるので、環境が変化するアクション環境のモデル化を、少ない記憶リソースで行うことができる。
【０７９２】
［所定のストラテジに従ってアクションを決定する認識アクションモードの処理］
【０７９３】
ところで、図８の認識アクションモードの処理では、図４のエージェントが、アクション環境の既知の領域（その領域で観測される観測値系列及びアクション系列を用いて、拡張HMMの学習が行われている場合の、その領域（学習済みの領域））に位置することを前提として、エージェントの現在の状況を認識し、その現在の状況に対応する拡張HMMの状態である現在状態を求めて、現在状態から、目標状態に到達するためのアクションを決定するが、エージェントは、必ずしも、既知の領域に位置するとは限らず、未知の領域（未学習の領域）に位置することがある。
【０７９４】
エージェントが、未知の領域に位置する場合に、図８で説明したようにして、アクションを決定しても、そのアクションが、目標状態に到達するための適切なアクションになるとは限らず、逆に、未知の領域をさまようような、いわば、無駄な、又は、冗長なアクションになることがある。
【０７９５】
そこで、エージェントでは、認識アクションモードにおいて、エージェントの現在の状況が、未知の状況（いままでに観測したことがない観測値系列及びアクション系列が観測される状況）（拡張HMMで獲得されていない状況）であるか、又は、未知の状況（いままでに観測したことがある観測値系列及びアクション系列が観測される状況）（拡張HMMで獲得されている状況）であるかを判定し、その判定結果に基づいて、適切なアクションを決定することができる。
【０７９６】
すなわち、図４４は、そのような認識アクションモードの処理を説明するフローチャートである。
【０７９７】
図４４の認識アクションモードでは、エージェントは、図８のステップＳ３１ないしＳ３３と同様の処理を行う。
【０７９８】
その後、処理は、ステップＳ３０１に進み、エージェントの状態認識部２３（図４）は、履歴記憶部１４から、系列長(系列を構成する値の数)qが所定の長さQの最新の観測値系列と、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列とを、エージェントの現在の状況を認識するのに用いる認識用の観測値系列、及び、アクション系列として読み出すことにより取得する。
【０７９９】
そして、処理は、ステップＳ３０１からステップＳ３０２に進み、状態認識部２３は、モデル記憶部２２に記憶された学習済みの拡張HMMにおいて、認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路（パス）ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式（１０）及び式（１１）に従って求める。
【０８００】
さらに、状態認識部２３は、認識用の観測値系列、及び、アクション系列を観測して、時刻tに、式（１０）の最適状態確率δt(j)を最大にする状態Sjに辿り着く状態系列である最尤状態系列を、式（１１）の最適経路ψt(j)から求める。
【０８０１】
その後、処理は、ステップＳ３０２からステップＳ３０３に進み、状態認識部２３は、最尤状態系列に基づき、エージェントの現在の状況が、既知の状況（既知状況）、又は、未知の状況（未知状況）のいずれであるかを判定する。
【０８０２】
ここで、認識用の観測値系列（、又は、認識用の観測値系列、及び、アクション系列）を、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)と表すこととする。
【０８０５】
ステップＳ３０３では、状態認識部２３は、式（２８）、及び、式（２９）が満たされるかどうかを判定する。
【０８０６】
【数２８】
2010287027.tif 000030
・・・（２８）
【０８０７】
【数２９】
2010287027.tif 000031
・・・（２９）
【０８０８】
ここで、式（２８）のThrestransは、状態Xtから状態Xt+1への状態遷移があり得るのかどうかを切り分けるための閾値である。また、式（２９）のThresobsは、最尤状態系列Xにおいて、認識用の観測値系列Oが観測されることがあり得るのかどうかを切り分けるための閾値である。閾値Threstrans及びThresobsとしては、例えば、シミュレーション等によって、上述の切り分けを適切に行うことができる値が設定される。
【０８０９】
式（２８）及び式（２９）のうちの少なくとも一方が満たされない場合、状態認識部２３は、ステップＳ３０３において、エージェントの現在の状況が、未知状況であると判定する。
【０８１０】
また、式（２８）及び式（２９）の両方が満たされる場合、状態認識部２３は、ステップＳ３０３において、エージェントの現在の状況が、既知状況であると判定する。
【０８１１】
ステップＳ３０３において、現在の状況が、既知状況であると判定された場合、状態認識部２３は、最尤状態系列Xの最後の状態を、現在状態stとして求め（推定し）、処理は、ステップＳ３０４に進む。
【０８１２】
ステップＳ３０４では、状態認識部２３は、現在状態にstに基づき、経過時間管理テーブル記憶部３２（図４）に記憶された経過時間管理テーブルを、図８のステップＳ３４の場合と同様に更新する。
【０８１３】
その後、エージェントでは、図８のステップＳ３５以降と同様の処理が行われる。
【０８１４】
一方、ステップＳ３０３において、現在の状況が、未知状況であると判定された場合、処理は、ステップＳ３０５に進み、状態認識部２３は、モデル記憶部２２に記憶された拡張HMMに基づき、エージェントが現在の状況に至るための状態系列である現況状態系列の候補の１以上を算出する。
【０８１５】
さらに、状態認識部２３は、１以上の現況状態系列の候補を、アクション決定部２４（図４）に供給して、処理は、ステップＳ３０５からステップＳ３０６に進む。
【０８１６】
ステップＳ３０６では、アクション決定部２４が、状態認識部２３からの１以上の現状状態系列の候補を用い、所定のストラテジ(strategy)に従って、エージェントが次に行うべきアクションを決定する。
【０８１７】
その後、エージェントでは、図８のステップＳ４０以降と同様の処理が行われる。
【０８１８】
以上のように、現在の状況が、未知状況である場合には、エージェントは、１以上の現況状態系列の候補を算出し、その１以上の現況状態系列の候補を用い、所定のストラテジに従って、エージェントのアクションを決定する。
【０８１９】
すなわち、現在の状況が、未知状況である場合には、エージェントは、過去の経験から獲得することができる状態系列、つまり、学習済みの拡張HMMで生じる状態遷移の状態系列（以下、経験済みの状態系列ともいう）の中から、現在の状況に至る、ある系列長qの、最新の観測値系列、及び、アクション系列が観測される状態系列を、現況状態系列の候補として取得する。
【０８２０】
そして、エージェントは、経験済みの状態系列である現況状態系列を（再）利用し、所定のストラテジに従って、エージェントのアクションを決定する。
【０８２１】
［現況状態系列の候補の算出］
【０８２２】
図４５は、図４の状態認識部２３が、図４４のステップＳ３０５で行う、現況状態系列の候補の算出の処理を説明するフローチャートである。
【０８２３】
ステップＳ３１１において、状態認識部２３は、履歴記憶部１４（図４）から、系列長qが所定の長さQ'の最新の観測値系列、及び、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列（エージェントが行ったアクションの、系列長qが所定の長さQ'の最新のアクション系列、及び、そのアクション系列のアクションが行われたときにエージェントにおいて観測された観測値の観測値系列）を、認識用の観測値系列、及び、アクション系列として読み出すことにより取得する。
【０８２４】
ここで、状態認識部２３がステップＳ３１１で取得する認識用の観測値系列の系列長qである長さQ'としては、図４４のステップＳ３０１で取得される観測値系列の系列長qである長さQよりも短い、例えば、1などが採用される。
【０８２５】
すなわち、エージェントは、上述したように、経験済みの状態系列の中から、最新の観測値系列、及び、アクション系列である認識用の観測値系列、及び、アクション系列が観測される状態系列を、現況状態系列の候補として取得するが、認識用の観測値系列、及び、アクション系列の系列長qが長すぎると、そのような長い系列長qの認識用の観測値系列、及び、アクション系列が観測される状態系列が、経験済みの状態系列の中にない（、又は、あっても、ないに等しい程度の尤度しかない）ことがある。
【０８２６】
そこで、状態認識部２３は、経験済みの状態系列の中から、認識用の観測値系列、及び、アクション系列が観測される状態系列を取得することができるように、ステップＳ３１１では、短い系列長qの認識用の観測値系列、及び、アクション系列を取得する。
【０８２７】
ステップＳ３１１の後、処理は、ステップＳ３１２に進み、状態認識部２３は、モデル記憶部２２に記憶された学習済みの拡張HMMにおいて、ステップＳ３１１で取得した認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式（１０）及び式（１１）に従って求める。
【０８２８】
すなわち、状態認識部２３は、経験済みの状態系列の中から、認識用の観測値系列、及び、アクション系列が観測される、系列長qがQ'の状態系列である最適経路ψt(j)を取得する。
【０８２９】
ここで、Viterbiアルゴリズムに基づいて求められる（推定される）最適経路ψt(j)である状態系列を、認識用状態系列ともいう。
【０８３０】
ステップＳ３１２では、拡張HMMのＮ個の状態Sjそれぞれについて、最適状態確率δe(j)と、認識用状態系列（最適経路）ψt(j)）とが求められる。
【０８３１】
ステップＳ３１２において、認識用状態系列が取得されると、処理は、ステップＳ３１３に進み、状態認識部２３は、ステップＳ３１２で取得された認識用状態系列の中から、１以上の認識用状態系列を、現況状態系列の候補として選択し、処理は、リターンする。
【０８３２】
すなわち、ステップＳ３１３では、例えば、尤度、つまり、最適状態確率δt(j)が、閾値（例えば、最適状態確率δt(j)の最大値（最大尤度）の0.8倍の値等）以上の認識用状態系列が、現況状態系列の候補として選択される。
【０８３３】
あるいは、例えば、最適状態確率δt(j)が、上位R（Rは１以上の整数）位以内のR個の認識用状態系列が、現況状態系列の候補として選択される。
【０８３４】
図４６は、図４の状態認識部２３が、図４４のステップＳ３０５で行う、現況状態系列の候補の算出の処理の他の例を説明するフローチャートである。
【０８３５】
図４５の現況状態系列の候補の算出の処理では、認識用の観測値系列、及び、アクション系列の系列長qを、短い長さQ'に固定して、その長さQ'の認識用状態系列、ひいては、現況状態系列の候補が求められる。
【０８３６】
これに対して、図４６の現況状態系列の候補の算出の処理では、エージェントは、適応的（自律的）に、認識用の観測値系列、及び、アクション系列の系列長qを調整し、これにより、拡張HMMが獲得しているアクション環境の構造の中で、エージェントの現在の位置の構造により類似する構造、つまり、経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列（最新の観測値系列、及び、アクション系列）が観測される、系列長qが最長の状態系列を、現況状態系列の候補として取得する。
【０８３７】
図４６の現況状態系列の候補の算出の処理では、ステップＳ３２１において、状態認識部２３（図４）は、系列長qを、例えば、最小の1に初期化して、処理は、ステップＳ３２２に進む。
【０８３８】
ステップＳ３２２では、状態認識部２３は、履歴記憶部１４（図４）から、系列長が長さqの最新の観測値系列と、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列とを、認識用の観測値系列、及び、アクション系列として読み出すことにより取得して、処理は、ステップＳ３２３に進む。
【０８３９】
ステップＳ３２３では、状態認識部２３は、モデル記憶部２２に記憶された学習済みの拡張HMMにおいて、系列長がqの認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式（１０）及び式（１１）に従って求める。
【０８４０】
さらに、状態認識部２３は、認識用の観測値系列、及び、アクション系列を観測して、時刻tに、式（１０）の最適状態確率δt(j)を最大にする状態Sjに辿り着く状態系列である最尤状態系列を、式（１１）の最適経路ψt(j)から求める。
【０８４１】
その後、処理は、ステップＳ３２３からステップＳ３２４に進み、状態認識部２３は、最尤状態系列に基づき、エージェントの現在の状況が、既知状況、又は、未知状況のいずれであるかを、図４４のステップＳ３０３の場合と同様にして判定する。
【０８４２】
ステップＳ３２４において、現在の状況が、既知状況であると判定された場合、すなわち、経験済みの状態系列の中から、系列長がqの認識用の観測値系列、及び、アクション系列（最新の観測値系列、及び、アクション系列）が観測される状態系列を取得することができる場合、処理は、ステップＳ３２５に進み、状態認識部２３は、系列長qを1だけインクリメントする。
【０８４３】
そして、処理は、ステップＳ３２５からステップＳ３２２に戻り、以下、同様の処理が繰り返される。
【０８４４】
一方、ステップＳ３２４において、現在の状況が、未知状況であると判定された場合、すなわち、経験済みの状態系列の中から、系列長がqの認識用の観測値系列、及び、アクション系列（最新の観測値系列、及び、アクション系列）が観測される状態系列を取得することができない場合、処理は、ステップＳ３２６に進み、状態認識部２３は、以下、ステップＳ３２６ないしＳ３２８において、経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列（最新の観測値系列、及び、アクション系列）が観測される、系列長が最長の状態系列を、現況状態系列の候補として取得する。
【０８４５】
すなわち、ステップＳ３２２ないしＳ３２５では、認識用の観測値系列、及び、アクション系列の系列長qを1ずつインクリメントしながら、その認識用の観測値系列、及び、アクション系列が観測される最尤状態系列に基づき、エージェントの現在の状況が、既知状況、又は、未知状況のいずれであるかが判定される。
【０８４６】
したがって、ステップＳ３２４において、現在の状況が、未知状況であると判定された直後の系列長qを1だけデクリメントした系列長q-1の認識用の観測値系列、及び、アクション系列が観測される最尤状態系列が、経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列が観測される、系列長が最長の状態系列（の１つ）として存在する。
【０８４７】
そこで、ステップＳ３２６では、状態認識部２３は、履歴記憶部１４（図４）から、系列長が長さq-1の最新の観測値系列と、その観測値系列の各観測値が観測されるときに行われたアクションのアクション系列とを、認識用の観測値系列、及び、アクション系列として読み出すことにより取得して、処理は、ステップＳ３２７に進む。
【０８４８】
ステップＳ３２７では、状態認識部２３は、モデル記憶部２２に記憶された学習済みの拡張HMMにおいて、ステップＳ３２６で取得した、系列長がq-1の認識用の観測値系列、及び、アクション系列を観測して、時刻tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)、及び、その最適状態確率δt(j)が得られる状態系列である最適経路ψt(j)とを、Viterbiアルゴリズムに基づく、上述の式（１０）及び式（１１）に従って求める。
【０８４９】
すなわち、状態認識部２３は、学習済みの拡張HMMで生じる状態遷移の状態系列の中から、認識用の観測値系列、及び、アクション系列が観測される、系列長がq-1の状態系列である最適経路ψt(j)（認識用状態系列）を取得する。
【０８５０】
ステップＳ３２７において、認識用状態系列が取得されると、処理は、ステップＳ３２８に進み、状態認識部２３は、図４５のステップＳ３１３の場合と同様にして、ステップＳ３２７で取得された認識用状態系列の中から、１以上の認識用状態系列を、現況状態系列の候補として選択し、処理は、リターンする。
【０８５１】
以上のように、系列長qをインクリメントしていき、現在の状況が、未知状況であると判定された直後の系列長qを1だけデクリメントした系列長q-1の認識用の観測値系列、及び、アクション系列を取得することにより、経験済みの状態系列の中から、適切な現況状態系列の候補（拡張HMMが獲得しているアクション環境の構造の中で、エージェントの現在の位置の構造により類似する構造に対応する状態系列）を取得することができる。
【０８５２】
すなわち、現況状態系列の候補を取得するのに用いる認識用の観測値系列、及び、アクション系列の系列長を固定にした場合、その固定の系列長が短すぎても、また、長すぎても、適切な現況状態系列の候補を取得することができないことがある。
【０８５３】
すなわち、認識用の観測値系列、及び、アクション系列の系列長が短すぎる場合には、経験済みの状態系列の中で、そのような系列長の認識用の観測値系列、及び、アクション系列が観測される尤度が高くなる状態系列が多くなり、多数の、尤度が高い認識用状態系列が取得される。
【０８５４】
その結果、そのような多数の、尤度が高い認識用状態系列から、現況状態系列の候補を選択すると、経験済みの状態系列の中で、現在の状況をより適切に表現する状態系列が、現況状態系列の候補として選択されない可能性が高くなることがある。
【０８５５】
一方、認識用の観測値系列、及び、アクション系列の系列長が長すぎる場合には、経験済みの状態系列の中で、そのような長すぎる系列長の認識用の観測値系列、及び、アクション系列が観測される尤度が高くなる状態系列が存在せず、結果として、現況状態系列の候補を取得することができない可能性が高くなることがある。
【０８５６】
これに対して、図４６で説明したように、認識用の観測値系列、及び、アクション系列が観測される尤度が最も高い状態遷移が生じる状態系列である最尤状態系列を推定し、その最尤状態系列に基づいて、エージェントの現在の状況が、拡張HMMにおいて獲得している既知状況であるか、又は、獲得していない未知状況であるかを判定することを、認識用の観測値系列、及び、アクション系列の系列長をインクリメント（増加）しながら、エージェントの現在の状況が、未知状況であると判定されるまで繰り返し、エージェントの現在の状況が、未知状況であると判定されたときの系列長qよりも１サンプル分だけ短い系列長q-1の認識用の観測値系列、及び、アクション系列が観測される状態遷移が生じる状態系列である認識用状態系列の１以上を推定し、その１以上の認識用状態系列の中から、１以上の現況状態系列の候補を選択することにより、拡張HMMが獲得しているアクション環境の構造の中で、エージェントの現在の位置の構造により類似する構造を表現する状態系列を、現況状態系列の候補として取得することができる。
【０８５７】
そして、その結果、経験済みの状態系列を、最大限に利用して、アクションを決定することが可能となる。
【０８５８】
［ストラテジに従ったアクションの決定］
【０８５９】
図４７は、図４のアクション決定部２４が、図４４のステップＳ３０６で行う、ストラテジに従ったアクションの決定の処理を説明するフローチャートである。
【０８６０】
図４７では、アクション決定部２４は、拡張HMMにおいて獲得している既知状況のうちの、エージェントの現在の状況に類似する既知状況で、エージェントが行ったアクションを行う第１のストラテジに従って、アクションを決定する。
【０８６１】
すなわち、ステップＳ３４１において、アクション決定部２４は、状態認識部２３（図４）からの１以上の現況状態系列の候補の中から、まだ、注目する注目状態系列としていない候補の１つを、注目状態系列に選択して、処理は、ステップＳ３４２に進む。
【０８６２】
ステップＳ３４２では、アクション決定部２４は、モデル記憶部２２に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後の状態（以下、最後状態ともいう）を遷移元とする状態遷移の状態遷移確率の和を、アクションUmごとに、（第１のストラテジに従った）アクションUmを行う適正さを表すアクション適正度として求める。
【０８６３】
すなわち、最後状態を、SI（Iは、1ないしNのうちの、いずれかの整数）と表すこととすると、アクション決定部２４は、各アクションUmについての状態遷移確率平面の、j軸方向（水平方向）に並ぶ状態遷移確率aI,1(Um)，aI,2(Um)，・・・，aI,N(Um)の和を、アクション適正度として求める。
【０８６４】
その後、処理は、ステップＳ３４２からステップＳ３４３に進み、アクション決定部２４は、アクション適正度が求められたM個（種類）のアクションU1ないしUMの中で、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度を、0.0とする。
【０８６５】
すなわち、アクション決定部２４は、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度を、0.0とすることにより、注目状態系列に対し、アクション適正度が閾値未満のアクションUmを、第１のストラテジに従って行うべき次のアクションの候補から除外し、結果として、アクション適正度が閾値以上のアクションUmを、第１のストラテジに従って行うべき次のアクションの候補として選択する。
【０８６６】
ステップＳ３４３の後、処理は、ステップＳ３４４に進み、アクション決定部２４は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
【０８６７】
ステップＳ３４４において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップＳ３４１に戻る。そして、ステップＳ３４１では、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の１つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
【０８６８】
また、ステップＳ３４４において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、処理は、ステップＳ３４５に進み、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補それぞれに対して求められた各アクションUmについてのアクション適正度に基づき、次のアクションの候補の中から、次のアクションを決定して、処理はリターンする。
【０８６９】
すなわち、アクション決定部２４は、例えば、アクション適正度が最大の候補を、次のアクションに決定する。
【０８７０】
また、アクション決定部２４は、各アクションUmについて、アクション適正度の期待値（平均値）を求め、その期待値に基づき、次のアクションを決定する。
【０８７１】
具体的には、例えば、アクション決定部２４は、各アクションUmについて、１以上の現況状態系列の候補それぞれに対して求められたアクションUmについてのアクション適正度の期待値（平均値）を求める。
【０８７２】
そして、アクション決定部２４は、各アクションUmについての期待値に基づき、例えば、期待値が最大のアクションUmを、次のアクションに決定する。
【０８７３】
あるいは、アクション決定部２４は、各アクションUmについての期待値に基づき、例えば、SoftMax法により、次のアクションを決定する。
【０８７４】
すなわち、アクション決定部２４は、M個のアクションU1ないしUMのサフィックス1ないしMの範囲の整数mを、整数mをサフィックスとするアクションUmについての期待値に対応する確率でランダムに発生し、その発生した整数mをサフィックスとするアクションUmを、次のアクションに決定する。
【０８７５】
以上のように、第１のストラテジに従って、アクションを決定する場合には、エージェントは、エージェントの現在の状況に類似する既知状況で、エージェントが行ったアクションを行う。
【０８７６】
したがって、第１のストラテジによれば、エージェントが未知状況にいる場合に、エージェントに、既知状況でとるアクションと同様のアクションを行わせたいときに、エージェントに適切なアクションを行わせることができる。
【０８７７】
かかる第１のストラテジに従ったアクションの決定は、エージェントが未知状況にいる場合の他、例えば、エージェントが、上述したオープン端に到達した後に行うべきアクションを決定する場合に行うことができる。
【０８７８】
ところで、エージェントが未知状況にいる場合に、エージェントに、既知状況でとるアクションと同様のアクションを行わせると、エージェントが、アクション環境をさまようおそれがある。
【０８７９】
エージェントが、アクション環境をさまよう場合、エージェントは、既知の場所（領域）に戻る（現在の状況が、既知状況になる）可能性もあるし、未知の場所を開拓していく（現在の状況を、未知状況のままにし続ける）可能性もある。
【０８８０】
したがって、エージェントを、既知の場所に戻らせたい場合、又は、エージェントに、未知の場所を開拓させたい場合に、エージェントが、アクション環境をさまようようなアクションは、エージェントが行うべきアクションとして、適切であるとは言い難い。
【０８８１】
そこで、アクション決定部２４は、第１のストラテジの他、以下の第２のストラテジや、第３のストラテジに従って、次のアクションを決定することができるようになっている。
【０８８２】
図４８は、第２のストラテジに従ったアクションの決定の概要を説明する図である。
【０８８３】
第２のストラテジは、エージェントの（現在の）状況を認識可能にする情報を増加させるストラテジであり、この第２のストラテジに従って、アクションを決定することにより、エージェントが既知の場所に戻るアクションとして、適切なアクションを決定することができ、その結果、エージェントは、効率的に、既知の場所に戻ることができる。
【０８８４】
すなわち、第２のストラテジに従ったアクションの決定では、アクション決定部２４は、例えば、図４８に示すように、状態認識部２３からの１以上の現況状態系列の候補の最後状態stから、その最後状態stの直前の状態である直前状態st-1への状態遷移が生じるアクションを、次のアクションに決定する。
【０８８５】
図４９は、図４のアクション決定部２４が、図４４のステップＳ３０６で行う、第２のストラテジに従ったアクションの決定の処理を説明するフローチャートである。
【０８８６】
ステップＳ３５１において、アクション決定部２４は、状態認識部２３（図４）からの１以上の現況状態系列の候補の中から、まだ、注目する注目状態系列としていない候補の１つを、注目状態系列に選択して、処理は、ステップＳ３５２に進む。
【０８８７】
ここで、アクション決定部２４は、状態認識部２３からの現況状態系列の候補の系列長が1であり、最後状態の直前の直前状態が存在しない場合、ステップＳ３５１の処理を行う前に、モデル記憶部２２に記憶された拡張HMM（の状態遷移確率）を参照し、状態認識部２３からの１以上の現況状態系列の候補それぞれについて、最後状態を遷移先とする状態遷移が可能な状態を求める。
【０８８８】
そして、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補それぞれについて、最後状態を遷移先とする状態遷移が可能な状態と、最後状態とを並べた状態系列を、現況状態系列の候補として扱う。後述する図５１でも同様である。
【０８８９】
ステップＳ３５２では、アクション決定部２４は、モデル記憶部２２に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後状態から、その最後状態の直前の直前状態への状態遷移の状態遷移確率を、アクションUmごとに、（第２のストラテジに従った）アクションUmを行う適正さを表すアクション適正度として求める。
【０８９０】
すなわち、アクション決定部２４は、アクションUmが行われた場合に、最終状態Siから直前状態Sjに状態遷移する状態遷移確率aij(Um)を、アクションUmについてのアクション適正度として求める。
【０８９１】
その後、処理は、ステップＳ３５２からステップＳ３５３に進み、アクション決定部２４は、M個（種類）のアクションU1ないしUMの中で、アクション適正度が最大のアクション以外のアクションについて求められたアクション適正度を、0.0とする。
【０８９２】
すなわち、アクション決定部２４は、アクション適正度が最大のアクション以外のアクションについて求められたアクション適正度を、0.0とすることにより、結果として、注目状態系列に対して、アクション適正度が最大のアクションを、第２のストラテジに従って行うべき次のアクションの候補として選択する。
【０８９３】
ステップＳ３５３の後、処理は、ステップＳ３５４に進み、アクション決定部２４は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
【０８９４】
ステップＳ３５４において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップＳ３５１に戻る。そして、ステップＳ３５１では、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の１つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
【０８９５】
また、ステップＳ３５４において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、処理は、ステップＳ３５５に進み、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補それぞれに対して求められた各アクションUmについてのアクション適正度に基づき、次のアクションの候補の中から、次のアクションを、図４７のステップＳ３４５の場合と同様に決定して、処理はリターンする。
【０８９６】
以上のように、第２のストラテジに従って、アクションを決定する場合には、エージェントは、来た道を戻るようなアクションを行い、その結果、エージェントの状況を認識可能にする情報（観測値）が増加していく。
【０８９７】
したがって、第２のストラテジによれば、エージェントが未知状況にいる場合において、エージェントに、既知の場所に戻るアクションを行わせたいときに、エージェントに適切なアクションを行わせることができる。
【０８９８】
図５０は、第３のストラテジに従ったアクションの決定の概要を説明する図である。
【０８９９】
第３のストラテジは、拡張HMMにおいて獲得していない未知状況の情報（観測値）を増加させるストラテジであり、この第３のストラテジに従って、アクションを決定することにより、エージェントに、未知の場所を開拓させるアクションとして、適切なアクションを決定することができ、その結果、エージェントは、効率的に、未知の場所を開拓することができる。
【０９００】
すなわち、第３のストラテジに従ったアクションの決定では、アクション決定部２４は、例えば、図５０に示すように、状態認識部２３からの１以上の現況状態系列の候補の最後状態stから、その最後状態stの直前の状態である直前状態st-1への状態遷移以外の状態遷移が生じるアクションを、次のアクションに決定する。
【０９０１】
図５１は、図４のアクション決定部２４が、図４４のステップＳ３０６で行う、第３のストラテジに従ったアクションの決定の処理を説明するフローチャートである。
【０９０２】
ステップＳ３６１において、アクション決定部２４は、状態認識部２３（図４）からの１以上の現況状態系列の候補の中から、まだ、注目する注目状態系列としていない候補の１つを、注目状態系列に選択して、処理は、ステップＳ３６２に進む。
【０９０３】
ステップＳ３６２では、アクション決定部２４は、モデル記憶部２２に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後状態から、その最後状態の直前の直前状態への状態遷移の状態遷移確率を、アクションUmごとに、（第２のストラテジに従った）アクションUmを行う適正さを表すアクション適正度として求める。
【０９０４】
すなわち、アクション決定部２４は、アクションUmが行われた場合に、最終状態Siから直前状態Sjに状態遷移する状態遷移確率aij(Um)を、アクションUmについてのアクション適正度として求める。
【０９０５】
その後、処理は、ステップＳ３６２からステップＳ３６３に進み、アクション決定部２４は、注目状態系列に対して、M個（種類）のアクションU1ないしUMの中で、アクション適正度が最大のアクションを、状態を直前状態に戻す状態遷移が生じるアクション（以下、戻りアクションともいう）として検出する。
【０９０６】
ステップＳ３６３の後、処理は、ステップＳ３６４に進み、アクション決定部２４は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
【０９０７】
ステップＳ３６４において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップＳ３６１に戻る。そして、ステップＳ３６１では、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の１つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
【０９０８】
また、ステップＳ３６４において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、アクション決定部２４は、現況状態系列の候補のすべてを、注目状態系列に選択したことをリセットして、処理は、ステップＳ３６５に進む。
【０９０９】
ステップＳ３６５では、アクション決定部２４は、ステップＳ３６１と同様に、状態認識部２３からの１以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の１つを、注目状態系列に選択して、処理は、ステップＳ３６６に進む。
【０９１０】
ステップＳ３６６では、アクション決定部２４は、図４７のステップＳ３４２の場合と同様に、モデル記憶部２２に記憶された拡張HMMに基づき、注目状態系列に対して、注目状態系列の最後状態を遷移元とする状態遷移の状態遷移確率の和を、アクションUmごとに、（第３のストラテジに従った）アクションUmを行う適正さを表すアクション適正度として求める。
【０９１１】
その後、処理は、ステップＳ３６６からステップＳ３６７に進み、アクション決定部２４は、アクション適正度が求められたM個（種類）のアクションU1ないしUMの中で、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度と、戻りアクションについて求められたアクション適正度とを、0.0とする。
【０９１２】
すなわち、アクション決定部２４は、アクション適正度が閾値未満のアクションUmについて求められたアクション適正度を、0.0とすることにより、結果として、注目状態系列に対し、アクション適正度が閾値以上のアクションUmを、第３のストラテジに従って行うべき次のアクションの候補として選択する。
【０９１３】
さらに、アクション決定部２４は、注目状態系列に対して選択したアクション適正度が閾値以上のアクションUmのうちの、戻りアクションについて求められたアクション適正度を、0.0とすることにより、結果として、注目状態系列に対し、戻りアクション以外のアクションを、第３のストラテジに従って行うべき次のアクションの候補として選択する。
【０９１４】
ステップＳ３６７の後、処理は、ステップＳ３６８に進み、アクション決定部２４は、現況状態系列の候補のすべてを、注目状態系列としたかどうかを判定する。
【０９１５】
ステップＳ３６８において、現況状態系列の候補のすべてを、まだ、注目状態系列としていないと判定された場合、処理は、ステップＳ３６５に戻る。そして、ステップＳ３６５では、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補の中から、まだ、注目状態系列としていない候補の１つを、注目状態系列に新たに選択し、以下、同様の処理を繰り返す。
【０９１６】
また、ステップＳ３６８において、現況状態系列の候補のすべてを、注目状態系列としたと判定された場合、処理は、ステップＳ３６９に進み、アクション決定部２４は、状態認識部２３からの１以上の現況状態系列の候補それぞれに対して求められた各アクションUmについてのアクション適正度に基づき、次のアクションの候補の中から、次のアクションを、図４７のステップＳ３４５の場合と同様に決定して、処理はリターンする。
【０９１７】
以上のように、第３のストラテジに従って、アクションを決定する場合には、エージェントは、戻りアクション以外のアクション、つまり、未知の場所を開拓していくアクションを行い、その結果、拡張HMMにおいて獲得していない未知状況の情報が増加していく。
【０９１８】
したがって、第３のストラテジによれば、エージェントが未知状況にいる場合において、エージェントに、未知の場所を開拓させたいときに、エージェントに適切なアクションを行わせることができる。
【０９１９】
以上のように、エージェントにおいて、拡張HMMに基づき、エージェントが現在の状況に至るための状態系列である現況状態系列の候補を算出し、その現状状態系列の候補を用い、所定のストラテジに従って、エージェントが次に行うべきアクションを決定することにより、エージェントは、アクションに対する報酬を算出する報酬関数等の、行うべきアクションのメトリックを与えられていなくても、拡張HMMで獲得した経験に基づき、アクションを決定することができる。
【０９２０】
なお、状況の曖昧性を解消する行動決定手法として、例えば、特開2008-186326号公報には、１つの報酬関数によって行動（アクション）を決定する方法が記載されている。
【０９２１】
図４４の認識アクションモードの処理は、例えば、拡張HMMに基づき、エージェントが現在の状況に至るための状態系列である現況状態系列の候補を算出し、その現状状態系列の候補を用いて、アクションを決定する点や、エージェントが経験済みの状態系列の中で、認識用の観測値系列、及び、アクション系列が観測される、系列長qが最長の状態系列を、現況状態系列の候補として取得することが可能である点（図４６）、後述するように、アクションの決定時に従うストラテジを切り替える（複数のストラテジの中から選択する）ことが可能である点等において、特開2008-186326号公報の行動決定手法と異なる。
【０９２２】
ここで、上述したように、第２のストラテジは、エージェントの状況を認識可能にする情報を増加させるストラテジであり、第３のストラテジは、拡張HMMにおいて獲得していない未知状況の情報を増加させるストラテジであるから、第２及び第３のストラテジは、何らかの情報を増加させるストラテジである。
【０９２３】
このように、何らかの情報を増加させる第２及び第３のストラテジに従ったアクションの決定は、図４８ないし図５１で説明した方法の他、以下のようにして行うことができる。
【０９２４】
すなわち、ある時刻tにおいて、エージェントがアクションUmを行った場合に、観測値Oが観測される確率Pm(O)は、式（３０）で表される。
【０９２５】
【数３０】
2010287027.tif 000032
・・・（３０）
【０９２６】
なお、ρiは、時刻tに、状態Siにいる状態確率を表す。
【０９２７】
いま、発生確率が、確率Pm(O)で表される情報の量を、I(Pm(O))と表すこととすると、何らかの情報を増加させるストラテジに従って、アクションを決定する場合の、そのアクションUm'のサフィックスm'は、式（３１）で表される。
【０９２８】
【数３１】
2010287027.tif 000033
・・・（３１）
【０９２９】
ここで、式（３１）のargmax{I(Pm(O))}は、アクションUmのサフィックスmのうちの、かっこ内の情報の量I(Pm(O))を最大にするサフィックスm'を表す。
【０９３０】
いま、情報として、エージェントの状況を認識可能にする情報（以下、認識可能化情報ともいう）を採用することとすると、式（３１）に従って、アクションUm'を決定することは、認識可能化情報を増加させる第２のストラテジに従って、アクションを決定することになる。
【０９３１】
また、情報として、拡張HMMにおいて獲得していない未知状況の情報（以下、未知状況情報ともいう）を採用することとすると、式（３１）に従って、アクションUm'を決定することは、未知状況情報を増加させる第３のストラテジに従って、アクションを決定することになる。
【０９３２】
ここで、発生確率が、確率Pm(O)で表される情報のエントロピーを、Ho(Pm)と表すこととすると、式（３１）は、等価的に、以下の式で表すことができる。
【０９３３】
すなわち、エントロピーHo(Pm)は、式（３２）で表すことができる。
【０９３４】
【数３２】
2010287027.tif 000034
・・・（３２）
【０９３５】
式（３２）のエントロピーHo(Pm)が、大きい場合には、観測値Oが観測される確率Pm(O)が、各観測値で均等になるので、どのような観測値が観測されるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が増加し、エージェントが知らない、いわば未知の世界の情報を獲得する可能性が高くなる。
【０９３６】
したがって、エントロピーHo(Pm)を大きくすることで、未知状況情報は増加するから、未知状況情報を増加させる第３のストラテジに従って、アクションを決定する場合の式（３１）は、等価的に、エントロピーHo(Pm)を最大化する式（３３）で表すことができる。
【０９３７】
【数３３】
2010287027.tif 000035
・・・（３３）
【０９３８】
ここで、式（３３）のargmax{ Ho(Pm)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーHo(Pm)を最大にするサフィックスm'を表す。
【０９３９】
一方、式（３２）のエントロピーHo(Pm)が、小さい場合には、観測値Oが観測される確率Pm(O)が、ある特定の観測値でのみ高くなるので、どのような観測値が観測されるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が解消され、エージェントの位置を確定しやすくなる。
【０９４０】
したがって、エントロピーHo(Pm)を小さくすることで、認識可能化情報は増加するから、認識可能化情報を増加させる第２のストラテジに従って、アクションを決定する場合の式（３１）は、等価的に、エントロピーHo(Pm)を最小化する式（３４）で表すことができる。
【０９４１】
【数３４】
2010287027.tif 000036
・・・（３４）
【０９４２】
ここで、式（３４）のargmin{ Ho(Pm)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーHo(Pm)を最小にするサフィックスm'を表す。
【０９４３】
なお、その他、例えば、確率Pm(O)の最大値と閾値との大小関係に基づいて、確率Pm(O)を最大にするアクションUmを、次のアクションに決定することができる。
【０９４４】
確率Pm(O)の最大値が閾値より大である（以上である）場合に、確率Pm(O)を最大にするアクションUmを、次のアクションに決定することは、曖昧性を解消するようにアクションを決定すること、つまり、第２のストラテジに従って、アクションを決定することになる。
【０９４５】
一方、確率Pm(O)の最大値が閾値以下である（未満である）場合に、確率Pm(O)を最大にするアクションUmを、次のアクションに決定することは、曖昧さが増加するようにアクションを決定すること、つまり、第３のストラテジに従って、アクションを決定することになる。
【０９４６】
以上においては、ある時刻tにおいて、エージェントがアクションUmを行った場合に、観測値Oが観測される確率Pm(O)を用いて、アクションを決定したが、その他、アクションの決定は、例えば、ある時刻tにおいて、エージェントがアクションUmを行った場合に、状態Siから状態Sjに状態遷移する式（３５）の確率Pmjを用いて行うことができる。
【０９４７】
【数３５】
2010287027.tif 000037
・・・（３５）
【０９４８】
すなわち、いま、発生確率が、確率Pmjで表される情報の量I(Pmj)を増加させるストラテジに従って、アクションを決定する場合の、そのアクションUm'のサフィックスm'は、式（３６）で表される。
【０９４９】
【数３６】
2010287027.tif 000038
・・・（３６）
【０９５０】
ここで、式（３６）のargmax{I(Pmj)}は、アクションUmのサフィックスmのうちの、かっこ内の情報の量I(Pmj)を最大にするサフィックスm'を表す。
【０９５１】
いま、情報として、認識可能化情報を採用することとすると、式（３６）に従って、アクションUm'を決定することは、認識可能化情報を増加させる第２のストラテジに従って、アクションを決定することになる。
【０９５２】
また、情報として、未知状況情報を採用することとすると、式（３６）に従って、アクションUm'を決定することは、未知状況情報を増加させる第３のストラテジに従って、アクションを決定することになる。
【０９５３】
ここで、発生確率が、確率Pmjで表される情報のエントロピーを、Hj(Pm)と表すこととすると、式（３６）は、等価的に、以下の式で表すことができる。
【０９５４】
すなわち、エントロピーHj(Pm)は、式（３７）で表すことができる。
【０９５５】
【数３７】
2010287027.tif 000039
・・・（３７）
【０９５６】
式（３７）のエントロピーHj(Pm)が、大きい場合には、状態Siから状態Sjに状態遷移する確率Pmjが、各状態遷移で均等になるので、どのような状態遷移が生じるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が増加し、エージェントが知らない、未知の世界の情報を獲得する可能性が高くなる。
【０９５７】
したがって、エントロピーHj(Pm)を大きくすることで、未知状況情報は増加するから、未知状況情報を増加させる第３のストラテジに従って、アクションを決定する場合の式（３６）は、等価的に、エントロピーHj(Pm)を最大化する式（３８）で表すことができる。
【０９５８】
【数３８】
2010287027.tif 000040
・・・（３８）
【０９５９】
ここで、式（３８）のargmax{ Hj(Pm)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーH(Pmj)を最大にするサフィックスm'を表す。
【０９６０】
一方、式（３７）のエントロピーHj(Pm)が、小さい場合には、状態Siから状態Sjに状態遷移する確率Pmjが、ある特定の状態遷移でのみ高くなるので、どのような観測値が観測されるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が解消され、エージェントの位置を確定しやすくなる。
【０９６１】
したがって、エントロピーHj(Pm)を小さくすることで、認識可能化情報は増加するから、認識可能化情報を増加させる第２のストラテジに従って、アクションを決定する場合の式（３６）は、等価的に、エントロピーHj(Pm)を最小化する式（３９）で表すことができる。
【０９６２】
【数３９】
2010287027.tif 000041
・・・（３９）
【０９６３】
ここで、式（３９）のargmin{H(Pmj)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーHj(Pm)を最小にするサフィックスm'を表す。
【０９６４】
なお、その他、例えば、確率Pmjの最大値と閾値との大小関係に基づいて、確率Pmjを最大にするアクションUmを、次のアクションに決定することができる。
【０９６５】
確率Pmjの最大値が閾値より大である（以上である）場合に、確率Pmjを最大にするアクションUmを、次のアクションに決定することは、曖昧性を解消するようにアクションを決定すること、つまり、第２のストラテジに従って、アクションを決定することになる。
【０９６６】
一方、確率Pmjの最大値が閾値以下である（未満である）場合に、確率Pmjを最大にするアクションUmを、次のアクションに決定することは、曖昧さが増加するようにアクションを決定すること、つまり、第３のストラテジに従って、アクションを決定することになる。
【０９６７】
その他、曖昧性を解消するようなアクションの決定、つまり、第２のストラテジに従ったアクションの決定は、観測値Oが観測されたときに、状態SXにいる事後確率P(X|O)を用いて行うことができる。
【０９６８】
すなわち、事後確率P(X|O)は、式（４０）で表される。
【０９６９】
【数４０】
2010287027.tif 000042
・・・（４０）
【０９７０】
事後確率P(X|O)のエントロピーを、H(P(X|O))と表すこととすると、エントロピーH(P(X|O))を小さくするように、アクションを決定することで、第２のストラテジに従ったアクションの決定を行うことができる。
【０９７１】
すなわち、式（４１）に従って、アクションUmを決定することで、第２のストラテジに従ったアクションの決定を行うことができる。
【０９７２】
【数４１】
2010287027.tif 000043
・・・（４１）
【０９７３】
ここで、式（４１）のargmin{}は、アクションUmのサフィックスmのうちの、かっこ内の値を最小にするサフィックスm'を表す。
【０９７４】
式（４１）の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が観測されるエントロピー全体を表す。
【０９７５】
式（４１）によれば、エントロピーΣP(O)H(P(X|O))を最小化するアクション、つまり、観測値Oが一意に決まる可能性が高いアクションが、次のアクションに決定される。
【０９７６】
したがって、式（４１）に従ってアクションを決定することは、曖昧性を解消するようにアクションを決定すること、つまり、第２のストラテジに従って、アクションを決定することになる。
【０９７７】
また、曖昧さを増加するようなアクションの決定、つまり、第３のストラテジに従ったアクションの決定は、状態SXにいる事前確率P(X)のエントロピーH(P(X))に対して、事後確率P(X|O)のエントロピーH(P(X|O))が、どれだけ減少しているかを表す減少分を、未知状況情報の量であるとして、その減少分を最大にするように行うことができる。
【０９７８】
すなわち、事前確率P(X)は、式（４２）で表される。
【０９７９】
【数４２】
2010287027.tif 000044
・・・（４２）
【０９８０】
状態SXにいる事前確率P(X)のエントロピーH(P(X))に対する、事後確率P(X|O)のエントロピーH(P(X|O))の減少分を最大にするアクションUm'は、式（４３）に従って決定することができる。
【０９８１】
【数４３】
2010287027.tif 000045
・・・（４３）
【０９８２】
ここで、式（４３）のargmax{}は、アクションUmのサフィックスmのうちの、かっこ内の値を最大にするサフィックスm'を表す。
【０９８３】
式（４３）によれば、観測値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が行われることによって増加した未知状況情報の量として、その未知状況情報の量を最大化するアクションが、次のアクションに決定される。
【０９８４】
［ストラテジの選択］
【０９８５】
エージェントは、図４７ないし図５１で説明したように、第１ないし第３のストラテジに従って、アクションを決定することができる。アクションを決定するときに従うストラテジは、あらかじめ設定しておくことができるが、その他、複数のストラテジである第１ないし第３のストラテジの中から、適応的に選択することができる。
【０９８６】
図５２は、エージェントが、複数のストラテジの中から、アクションを決定するときに従うストラテジを選択する処理を説明するフローチャートである。
【０９８７】
ここで、第２のストラテジによれば、認識可能化情報が増加し、曖昧性を解消するように、つまり、エージェントが、既知の場所（領域）に戻るように、アクションが決定される。
【０９８８】
一方、第３のストラテジによれば、未知状況情報が増加し、曖昧さが増加するように、つまり、エージェントが、未知の場所を開拓していくように、アクションが決定される。
【０９８９】
なお、第１のストラテジによれば、エージェントが、既知の場所に戻るか、未知の場所を開拓していくかは、分からないが、エージェントの現在の状況に類似する既知状況で、エージェントが行ったアクションが行われる。
【０９９０】
ここで、アクション環境の構造を、広く獲得すること、すなわち、いわば、エージェントの知識（既知の世界）を増加させていくには、エージェントが、未知の場所を開拓していくように、アクションを決定する必要がある。
【０９９１】
一方、エージェントが、未知の場所を、既知の場所として獲得するには、未知の場所から、既知の場所に戻って、未知の場所を、既知の場所と結びつけるために、拡張HMMの学習（追加学習）を行う必要がある。したがって、エージェントが、未知の場所を、既知の場所として獲得するには、エージェントが、既知の場所に戻るように、アクションを決定する必要がある。
【０９９２】
そして、エージェントが、未知の場所を開拓していくように、アクションを決定することと、既知の場所に戻るように、アクションを決定することとを、バランス良く行うことで、アクション環境の全体の構造を、効率的に、拡張HMMにモデル化することができる。
【０９９３】
そこで、エージェントは、第２及び第３のストラテジの中から、アクションを決定するときに従うストラテジを、図５２に示すように、エージェントの状況が未知状況になってからの経過時間に基づいて選択することができる。
【０９９４】
すなわち、ステップＳ３８１において、アクション決定部２４（図４）は、状態認識部２３における、現在の状況の認識結果に基づいて、未知状況になってからの経過時間（以下、未知状況経過時間ともいう）を取得し、処理は、ステップＳ３８２に進む。
【０９９５】
ここで、未知状況経過時間とは、状態認識部２３において、現在の状況が、未知状況であるとの認識結果が連続している回数であり、現在の状況が、既知状況であるとの認識結果が得られた場合には、0にリセットされる。したがって、現在の状況が未知状況でない場合（既知状況である場合）には、未知状況経過時間は、0となる。
【０９９６】
ステップＳ３８２では、アクション決定部２４は、未知状況経過時間が、所定の閾値より大であるかどうかを判定する。
【０９９７】
ステップＳ３８２において、未知状況経過時間が、所定の閾値より大でないと判定された場合、すなわち、エージェントの状況が未知状況になっている時間が、それほど経過していない場合、処理は、ステップＳ３８３に進み、アクション決定部２４は、アクションを決定するときに従うストラテジとして、第２及び第３のストラテジのうちの、未知状況情報を増加させる第３のストラテジを選択して、処理は、ステップＳ３８１に戻る。
【０９９８】
また、ステップＳ３８２において、未知状況経過時間が、所定の閾値より大であると判定された場合、すなわち、エージェントの状況が未知状況になっている時間が、かなり経過している場合、処理は、ステップＳ３８４に進み、アクション決定部２４は、アクションを決定するときに従うストラテジとして、第２及び第３のストラテジのうちの、認識可能化情報を増加させる第２のストラテジを選択して、処理は、ステップＳ３８１に戻る。
【０９９９】
図５２では、アクションを決定するときに従うストラテジを、エージェントの状況が未知状況になってからの経過時間に基づいて選択することとしたが、アクションを決定するときに従うストラテジは、その他、例えば、間近の所定時間のうちの、既知状況の時間、又は、未知状況の時間の割合に基づいて選択することができる。
【１０００】
図５３は、アクションを決定するときに従うストラテジを、間近の所定時間のうちの、既知状況の時間、又は、未知状況の時間の割合に基づいて選択する処理を説明するフローチャートである。
【１００１】
ステップＳ３９１において、アクション決定部２４（図４）は、状態認識部２３から、間近の所定時間分の状況の認識結果を取得し、その認識結果から、状況が未知状況であった割合（以下、未知率ともいう）を算出して、処理は、ステップＳ３９２に進む。
【１００２】
ステップＳ３９２では、アクション決定部２４は、未知率が、所定の閾値より大であるかどうかを判定する。
【１００３】
ステップＳ３９２において、未知率が、所定の閾値より大でないと判定された場合、すなわち、エージェントの状況が未知状況になっている割合が、それほど多くない場合、処理は、ステップＳ３９３に進み、アクション決定部２４は、アクションを決定するときに従うストラテジとして、第２及び第３のストラテジのうちの、未知状況情報を増加させる第３のストラテジを選択して、処理は、ステップＳ３９１に戻る。
【１００４】
また、ステップＳ３８２において、未知率が、所定の閾値より大であると判定された場合、すなわち、エージェントの状況が未知状況になっている割合が、かなり多い場合、処理は、ステップＳ３９４に進み、アクション決定部２４は、アクションを決定するときに従うストラテジとして、第２及び第３のストラテジのうちの、認識可能化情報を増加させる第２のストラテジを選択して、処理は、ステップＳ３９１に戻る。
【１００５】
なお、図５３では、間近の所定時間分の状況の認識結果における、状況が未知状況であった割合（未知率）に基づいて、ストラテジの選択を行うようにしたが、ストラテジの選択は、間近の所定時間分の状況の認識結果における、状況が既知状況であった割合（以下、既知率ともいう）に基づいて行うことができる。
【１００６】
ストラテジの選択を、既知率に基づいて行う場合、既知率が閾値より大である場合には、第３のストラテジが、既知率が閾値より大でない場合には、第２のストラテジが、それぞれ、アクションを決定するときのストラテジとして選択される。
【１００７】
また、図５２のステップＳ３８３、及び、図５３のステップＳ３９３では、何回かに１回の割合等で、第３のストラテジに代えて、第１のストラテジを、アクションを決定するときのストラテジとして選択することができる。
【１００８】
以上のようにストラテジを選択することで、アクション環境の全体の構造を、効率的に、拡張HMMにモデル化することができる。
【１００９】
［本発明を適用したコンピュータの説明］
【１０１０】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【１０１１】
そこで、図５４は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【１０１２】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やROM１０３に予め記録しておくことができる。
【１０１３】
あるいはまた、プログラムは、リムーバブル記録媒体１１１に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体１１１としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【１０１４】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク１０５にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【１０１５】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵しており、CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されている。
【１０１６】
CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、入力部１０７が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、CPU１０２は、ハードディスク１０５に格納されたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。
【１０１７】
これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【１０１８】
なお、入力部１０７は、キーボードや、マウス、マイク等で構成される。また、出力部１０６は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【１０１９】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含む。
【１０２０】
また、プログラムは、１のコンピュータ（プロセッサ）により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【１０２１】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【１０２２】
１１  反射アクション決定部，  １２  アクチュエータ，  １３  センサ，  １４  履歴記憶部，  １５  アクション制御部，  １６  目標決定部，  ２１  学習部，  ２２  モデル記憶部，  ２３  状態認識部，  ２４  アクション決定部，  ３１  目標選択部，  ３２  経過時間管理テーブル記憶部，  ３３  外部目標入力部，  ３４  内部目標生成部，  ３５  ランダム目標生成部，  ３６  分岐構造検出部，  ３７  オープン端検出部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
2010287027.tif 000046
【図２】
2010287027.tif 000047
【図３】
2010287027.tif 000048
【図４】
2010287027.tif 000049
【図５】
2010287027.tif 000050
【図６】
2010287027.tif 000051
【図７】
2010287027.tif 000052
【図８】
2010287027.tif 000053
【図９】
2010287027.tif 000054
【図１０】
2010287027.tif 000055
【図１１】
2010287027.tif 000056
【図１２】
2010287027.tif 000057
【図１３】
2010287027.tif 000058
【図１４】
2010287027.tif 000059
【図１５】
2010287027.tif 000060
【図１６】
2010287027.tif 000061
【図１７】
2010287027.tif 000062
【図１８】
2010287027.tif 000063
【図１９】
2010287027.tif 000064
【図２０】
2010287027.tif 000065
【図２１】
2010287027.tif 000066
【図２２】
2010287027.tif 000067
【図２３】
2010287027.tif 000068
【図２４】
2010287027.tif 000069
【図２５】
2010287027.tif 000070
【図２６】
2010287027.tif 000071
【図２７】
2010287027.tif 000072
【図２８】
2010287027.tif 000073
【図２９】
2010287027.tif 000074
【図３０】
2010287027.tif 000075
【図３１】
2010287027.tif 000076
【図３２】
2010287027.tif 000077
【図３３】
2010287027.tif 000078
【図３４】
2010287027.tif 000079
【図３５】
2010287027.tif 000080
【図３６】
2010287027.tif 000081
【図３７】
2010287027.tif 000082
【図３８】
2010287027.tif 000083
【図３９】
2010287027.tif 000084
【図４０】
2010287027.tif 000085
【図４１】
2010287027.tif 000086
【図４２】
2010287027.tif 000087
【図４３】
2010287027.tif 000088
【図４４】
2010287027.tif 000089
【図４５】
2010287027.tif 000090
【図４６】
2010287027.tif 000091
【図４７】
2010287027.tif 000092
【図４８】
2010287027.tif 000093
【図４９】
2010287027.tif 000094
【図５０】
2010287027.tif 000095
【図５１】
2010287027.tif 000096
【図５２】
2010287027.tif 000097
【図５３】
2010287027.tif 000098
【図５４】
2010287027.tif 000099