説明

情報処理装置、情報処理方法、及び、プログラム

【課題】娯楽性のあるエージェントを提供する。
【解決手段】学習部は、アクション可能なエージェントがアクションを行ったときにエージェントにおいて観測される観測値を用いて、エージェントがアクションを行う環境のモデルの学習を行う。ユーザ指示出力部は、ユーザからの指示に応じて、そのユーザからの指示を表す指示情報を出力する。アクション決定部は、モデルに基づいて、エージェントが行うアクションを決定するが、ユーザから指示があった場合には、指示情報に従って、エージェントが行うアクションを決定する。本技術は、例えば、ゲームのキャラクタ等に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、例えば、ゲームのキャラクタ等に適用可能な娯楽性のあるエージェントを提供することができるようにする情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【0002】
ゲーム(ビデオゲーム)については、基本的に、設計者が、ゲームの内容を、事前に作り込み、プログラムとして実装する(特許文献1,2,3,4,及び、5)。
【0003】
例えば、アドベンチャゲームでは、ゲームの舞台となる世界や、シナリオ、キャラクタの振る舞い等のすべてが、事前に設計され、実装される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007-319560号公報
【特許文献2】特開2007-312848号公報
【特許文献3】特開2007-75467号公報
【特許文献4】特開2006-288951号公報
【特許文献5】特開2000-271347号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、ゲームについては、ユーザが飽きないように、事前に作り込まれたキャラクタではなく、実際の人のように、自律的に成長し、かつ、ユーザの育成によって性能(能力)に差がつくキャラクタの登場が要請されている。
【0006】
本技術は、このような状況に鑑みてなされたものであり、例えば、ユーザに飽きさせないキャラクタとなるような、娯楽性のあるエージェントを提供することができるようにするものである。
【課題を解決するための手段】
【0007】
本技術の一側面の情報処理装置、又は、プログラムは、アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部とを備え、前記アクション決定部は、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定する情報処理装置、又は、情報処理装置としてコンピュータを機能させるためのプログラムである。
【0008】
本技術の一側面の情報処理方法は、アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部とを備える情報処理装置の前記アクション決定部が、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定するステップを含む情報処理方法である。
【0009】
以上のような一側面においては、アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習が行われる一方、前記モデルに基づいて、前記エージェントが行うアクションが決定される。但し、ユーザから指示があった場合、その指示に応じて、前記ユーザからの指示を表す指示情報が出力され、前記指示情報に従って、前記エージェントが行うアクションが決定される。
【0010】
なお、情報処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【0011】
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【0012】
本技術の一側面によれば、娯楽性のあるエージェントを提供することができる。
【図面の簡単な説明】
【0013】
【図1】アクション環境を示す図である。
【図2】エージェントが行うアクション、及び、エージェントが観測する観測値を示す図である。
【図3】本技術の情報処理装置を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【図4】反射アクションモードの処理を説明するフローチャートである。
【図5】拡張HMMの状態遷移確率を説明する図である。
【図6】拡張HMMの学習の処理を説明するフローチャートである。
【図7】認識アクションモードの処理を説明するフローチャートである。
【図8】目標決定部16が行う目標状態の決定の処理を説明するフローチャートである。
【図9】オープン端検出部37が検出するオープン端である拡張HMMの状態を説明する図である。
【図10】オープン端検出部37が、観測値Okが閾値以上の確率で観測される状態Siをリストアップする処理を説明する図である。
【図11】観測値Okに対してリストアップされた状態Siを用いて、アクションテンプレートCを生成する方法を説明する図である。
【図12】観測確率に基づくアクション確率Dを算出する方法を説明する図である。
【図13】状態遷移確率に基づくアクション確率Eを算出する方法を説明する図である。
【図14】差分アクション確率Fを模式的に示す図である。
【図15】オープン端の検出の処理を説明するフローチャートである。
【図16】本技術を適用したゲーム機の一実施の形態の構成例を示すブロック図である。
【図17】コイン収集ゲームのゲーム環境の例を示す図である。
【図18】エージェントが迷路のマスにおいて観測することができる範囲の例を示す図である。
【図19】コイン収集ゲームについて、ゲーム機が行う処理(ゲーム制御)を説明するフローチャートである。
【図20】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0014】
[エージェントがアクションを行う環境]
【0015】
図1は、本技術の情報処理装置を適用したエージェントがアクションを行う環境であるアクション環境の例を示す図である。
【0016】
エージェントは、移動等のアクション(行動)を自律的に行うことが可能(アクション可能)な、例えば、ロボット(実世界で行動するロボットでも良いし、仮想世界で行動する仮想的なロボットでも良い)等の装置である。
【0017】
エージェントは、アクションを行うことによって、エージェントの状態を変化させること、及び、外部から観測可能な情報を観測し、その観測結果である観測値を用いて、エージェントの状態を認識することができる。
【0018】
また、エージェントは、状態の認識や、各状態において行うべきアクションの決定(選択)のために、エージェントがアクションを行うアクション環境のモデル(環境モデル)を構築する。
【0019】
図1では、アクション環境は、2次元平面の迷路になっており、エージェントは、図中、白抜きの部分を、通路として移動することができる。
【0020】
[エージェントが行うアクションと、エージェントが観測する観測値]
【0021】
図2は、アクション環境において、エージェントが行うアクション、及び、エージェントが観測する観測値の例を示している。
【0022】
エージェントは、図1に示したようなアクション環境の、図中、点線で正方形状に区切ったエリアを、観測値を観測する単位(観測単位)とし、その観測単位で移動するアクションを行う。
【0023】
図2Aは、エージェントが行うアクションの種類を示している。
【0024】
図2Aでは、エージェントは、図中、上方向に観測単位だけ移動するアクションU1、右方向に観測単位だけ移動するアクションU2、下方向に観測単位だけ移動するアクションU3、左方向に観測単位だけ移動するアクションU4、及び、移動しない(何もしない)アクションU5の、合計で、5つのアクションU1ないしU5を行うことが可能になっている。
【0025】
図2Bは、エージェントが観測単位で観測する観測値の種類を、模式的に示している。
【0026】
本実施の形態では、エージェントは、観測単位において、15種類の観測値(シンボル)O1ないしO15のうちのいずれかを観測する。
【0027】
観測値O1は、上と、下と、左とが壁で、右が通路になっている観測単位で観測され、観測値O2は、上と、左と、右とが壁で、下が通路になっている観測単位で観測される。
【0028】
観測値O3は、上と、左とが壁で、下と、右とが通路になっている観測単位で観測され、観測値O4は、上と、下と、右とが壁で、左が通路になっている観測単位で観測される。
【0029】
観測値O5は、上と、下とが壁で、左と、右とが通路になっている観測単位で観測され、観測値O6は、上と、右とが壁で、下と、左とが通路になっている観測単位で観測される。
【0030】
観測値O7は、上が壁で、下と、左と、右とが通路になっている観測単位で観測され、観測値O8は、下と、左と、右とが壁で、上が通路になっている観測単位で観測される。
【0031】
観測値O9は、下と、左とが壁で、上と、右とが通路になっている観測単位で観測され、観測値O10は、左と、右とが壁で、上と、下とが通路になっている観測単位で観測される。
【0032】
観測値O11は、左が壁で、上と、下と、右とが通路になっている観測単位で観測され、観測値O12は、下と、右とが壁で、上と、左とが通路になっている観測単位で観測される。
【0033】
観測値O13は、下が壁で、上と、左と、右とが通路になっている観測単位で観測され、観測値O14は、右が壁で、上と、下と、左とが通路になっている観測単位で観測される。
【0034】
観測値O15は、上下左右すべてが通路になっている観測単位で観測される。
【0035】
なお、アクションUm(m=1,2,・・・,M(Mはアクションの(種類の)総数))、及び、観測値Ok(k=1,2,・・・,K(Kは観測値の総数))は、いずれも離散値である。
【0036】
[エージェントの一実施の形態]
【0037】
図3は、本技術の情報処理装置を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【0038】
エージェントは、アクション環境をモデル化した環境モデルを、学習により獲得する。
【0039】
また、エージェントは、観測値の系列(観測値系列)を用いて、エージェントの現在の状態(状況)の認識を行う。
【0040】
さらに、エージェントは、現在地(現在の状態)から、ある目標に向かうのに行うべきアクションのプラン(アクションプラン)をプランニング(生成)し、そのアクションプランに従って、次に行うべきアクションを決定する。
【0041】
なお、エージェントが行う学習、状態の認識、アクションプランのプランニング(アクションの決定)は、エージェントが観測単位で上、下、左、又は右に移動する問題(タスク)の他、一般的に強化学習の課題として取り上げられる、マルコフ決定過程(MDP(Markov decision process))の枠組みで定式化が可能な問題に適用することができる。
【0042】
図3において、エージェントは、アクション環境において、図2Aに示したアクションUmを行うことによって、観測単位で移動し、移動後の観測単位で観測される観測値Okを取得する。
【0043】
そして、エージェントは、現在までに行ったアクションUm(を表すシンボル)の系列であるアクション系列、及び、現在までに観測された観測値(を示すシンボル)Okの系列である観測値系列を用いて、アクション環境(の構造(をモデル化した環境モデル))の学習や、次に行うべきアクションの決定を行う。
【0044】
エージェントがアクションを行うモードとしては、反射アクションモード(反射行動モード)と、認識アクションモード(認識行動モード)との2つのモードがある。
【0045】
反射アクションモードでは、過去に得られた観測値系列とアクション系列とから、次に行うべきアクションを決定するルールを、生得的なルールとして設計しておき、その生得的なルールに従って、アクションが決定される。
【0046】
ここで、生得的なルールとしては、例えば、壁にぶつからないように、アクションを決定する(通路中での往復運動を許す)ルール、又は、壁にぶつからないように、かつ、行き止まるまでは、来た道を戻らないように、アクションを決定するルール等を採用することができる。
【0047】
エージェントでは、生得的なルールに従い、エージェントにおいて観測される観測値に対して、次に行うべきアクションを決定し、そのアクションを行った後の観測単位で観測値を観測することを繰り返す。
【0048】
これにより、エージェントは、アクション環境を移動したときのアクション系列と観測値系列とを獲得する。このようにして反射アクションモードで獲得されたアクション系列と観測値系列は、アクション環境の学習に用いられる。
【0049】
認識アクションモードでは、エージェントは、目標を決定し、現在の状態を認識して、その現在の状態から目標を達成するためのアクションプランを決定する。そして、エージェントは、アクションプランに従って、次に行うべきアクションを決定する。なお、反射アクションモードでも、アクション系列と観測値系列を獲得することができ、アクション環境の学習に用いることができる。
【0050】
図3において、エージェントは、ユーザ指示出力部10、反射アクション決定部11、アクチュエータ12、センサ13、履歴記憶部14、アクション制御部15、及び、目標決定部16から構成される。
【0051】
ユーザ指示出力部10は、ユーザが、例えば、リモートコマンダ等の操作部を操作することによって、エージェントに対する指示を入力した場合に、そのユーザからの指示に応じて、その指示を表す指示情報を出力する。
【0052】
ユーザ指示出力部10が出力する指示情報は、反射アクション決定部11、及び、目標決定部16に供給される。
【0053】
反射アクション決定部11には、ユーザ指示出力部10からの指示情報の他、センサ13が出力する、アクション環境において観測された観測値が供給される。
【0054】
反射アクション決定部11は、反射アクションモードにおいて、生得的なルールに従い、センサ13から供給される観測値に対して、次に行うべきアクションを決定し、アクチュエータ12を制御する。
【0055】
なお、反射アクション決定部11は、ユーザ指示出力部10から指示情報が供給された場合には、優先的に、その指示情報に従って、次に行うべきアクションを決定する。
【0056】
アクチュエータ12は、反射アクション決定部11や、後述するアクション決定部24の制御に従って駆動する。アクチュエータが駆動することにより、アクション環境において、エージェントは、反射アクション決定部11やアクション決定部24で決定されたアクション、すなわち、例えば、アクション環境としての迷路内の移動を行う。
【0057】
センサ13は、外部から観測可能な情報をセンシングし、そのセンシング結果としての観測値を出力する。
【0058】
すなわち、センサ13は、アクション環境の、エージェントが存在する観測単位を観測し、その観測単位を表すシンボルを、観測値として出力する。
【0059】
なお、図3では、センサ13は、アクチュエータ12をも観測し、これにより、エージェントが行ったアクション(を表すシンボル)も出力する。
【0060】
センサ13が出力する観測値は、反射アクション決定部11と、履歴記憶部14とに供給される。
【0061】
履歴記憶部14は、センサ13が出力する観測値とアクションを順次記憶する。これにより、履歴記憶部14には、観測値の系列(観測値系列)とアクションの系列(アクション系列)とが記憶される。
【0062】
なお、ここでは、外部から観測可能な観測値として、エージェントが存在する観測単位を表すシンボルを採用するが、観測値としては、エージェントが存在する観測単位を表すシンボルと、エージェントが行ったアクションを表すシンボルとのセットを採用することが可能である。
【0063】
アクション制御部15は、履歴記憶部14に記憶された観測値系列、及び、アクション系列を用いて、アクション環境の構造を記憶(獲得)させる環境モデルとしての状態遷移確率モデルの学習を行う。
【0064】
また、アクション制御部15は、学習後の状態遷移確率モデルに基づき、アクションプランを算出する。さらに、アクション制御部15は、アクションプランに従って、エージェントが次に行うべきアクションを決定し、そのアクションに従って、アクチュエータ12を制御することで、エージェントにアクションを行わせる。
【0065】
すなわち、アクション制御部15は、学習部21、モデル記憶部22、状態認識部23、及び、アクション決定部24から構成される。
【0066】
学習部21は、履歴記憶部14に記憶されたアクション系列、及び、観測値系列を用いて、モデル記憶部22に記憶された状態遷移確率モデルの学習を行う。
【0067】
ここで、学習部21が学習の対象とする状態遷移確率モデルは、エージェントが行うアクションによって、状態が状態遷移する、アクションごとの状態遷移確率と、状態から、所定の観測値が観測される観測確率とで規定される状態遷移確率モデルである。
【0068】
状態遷移確率モデルとしては、例えば、HMM(Hidden Marcov Model)があるが、一般のHMMの状態遷移確率は、アクションごとに存在しない。そこで、本実施の形態では、HMM(Hidden Marcov Model)の状態遷移確率を、エージェントが行うアクションごとの状態遷移確率に拡張し、そのように状態遷移確率が拡張されたHMM(以下、拡張HMMともいう)を、学習部21による学習の対象として採用する。
【0069】
なお、状態遷移確率モデルとしては、一般のHMM(状態遷移確率がアクションごとに存在しないHMM)を採用することができる。但し、状態遷移確率モデルとして、一般のHMMを採用する場合、HMMの状態遷移と、エージェントが行うべきアクションとを対応付ける学習(状態遷移を入力として、その状態遷移を生じさせるために行うアクションを出力する関数等のコントローラの学習)を行う必要がある。HMMの状態遷移と、エージェントが行うアクションとを対応付ける学習の方法については、例えば、本件出願人が先に提案した特許第4596024号に記載されている。
【0070】
モデル記憶部22は、拡張HMM(を規定するモデルパラメータである状態遷移確率や、観測確率等)を記憶する。
【0071】
状態認識部23は、認識アクションモードにおいて、モデル記憶部22に記憶された拡張HMMに基づき、履歴記憶部14に記憶されたアクション系列、及び、観測値系列を用いて、エージェントの現在の状態、すなわち、拡張HMMの、いまいる状態である現在状態を求める(認識する)。
【0072】
そして、状態認識部23は、現在状態を、アクション決定部24に供給する。
【0073】
アクション決定部24は、認識アクションモードにおいて、エージェントが行うべきアクションをプランニングするプランナとして機能する。
【0074】
すなわち、アクション決定部24には、状態認識部23から現在状態が供給される他、目標決定部16から、モデル記憶部22に記憶された拡張HMMの状態のうちの1つの状態が、目標とする目標状態として供給される。
【0075】
アクション決定部24は、モデル記憶部22に記憶された拡張HMMに基づき、状態認識部23からの現在状態から、目標決定部16からの目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出(決定)する。
【0076】
さらに、アクション決定部24は、アクションプランに従い、エージェントが次に行うべきアクションを決定し、その決定したアクションに従って、アクチュエータ12を制御する。
【0077】
目標決定部16は、認識アクションモードにおいて、目標状態を決定し、アクション決定部24に供給する。
【0078】
すなわち、目標決定部16は、目標選択部31、外部目標設定部33、及び、内部目標生成部34から構成される。
【0079】
目標選択部31には、外部目標設定部33からの外部目標と、内部目標生成部34からの内部目標とが供給される。
【0080】
目標選択部31は、外部目標設定部33からの外部目標としての状態、又は、内部目標生成部34からの内部目標としての状態を選択し、その選択した状態を、目標状態に決定して、アクション決定部24に供給する。
【0081】
なお、目標選択部31は、外部目標設定部33から外部目標としての状態が供給されるとともに、内部目標生成部34から内部目標としての状態が供給される場合には、外部目標設定部33から外部目標としての状態を、内部目標生成部34から内部目標としての状態よりも優先的に、目標状態に選択する。
【0082】
外部目標設定部33には、ユーザ指示出力部10からの指示情報が供給される。
【0083】
外部目標設定部33は、ユーザ指示出力部10からの指示情報に従った拡張HMMの状態を、外部からの指示に従って決定される外部目標に設定して、目標選択部31に供給する。
【0084】
内部目標生成部34は、(エージェントの)内部で求められる内部目標となる拡張HMMの状態を取得し、目標選択部31に供給する。
【0085】
すなわち、内部目標生成部34は、ランダム目標生成部35、特定状態検出部36、及び、オープン端検出部37から構成される。
【0086】
ランダム目標生成部35は、モデル記憶部22に記憶された拡張HMMの状態の中から、ランダムに、1つの状態を、ランダム目標として選択し、そのランダム目標を、内部目標(の1つ)として、目標選択部31に供給する。
【0087】
特定状態検出部36は、モデル記憶部22に記憶された拡張HMMの状態から、所定の状態を、特定状態として検出し、内部目標(の1つ)として、目標選択部31に供給する。
【0088】
オープン端検出部37は、モデル記憶部22に記憶された拡張HMMにおいて、所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、所定の観測値と同一の観測値が観測される他の状態を、オープン端として検出する。そして、オープン端検出部37は、オープン端を、内部目標(の1つ)として、目標選択部31に供給する。
【0089】
[反射アクションモードの処理]
【0090】
図4は、図3のエージェントが行う、反射アクションモードの処理を説明するフローチャートである。
【0091】
ステップS11において、反射アクション決定部11は、時刻をカウントする変数tを、初期値としての、例えば、1に設定し、処理は、ステップS12に進む。
【0092】
ステップS12では、センサ13が、アクション環境から、現在の観測値(時刻tの観測値)otを取得して出力し、処理は、ステップS13に進む。
【0093】
ここで、時刻tの観測値otは、本実施の形態では、図2Bに示した15個の観測値O1ないしO15のうちのいずれかである。
【0094】
ステップS13では、ユーザ指示出力部10が、ユーザからの指示があったかどうかを判定する。
【0095】
ステップS13において、ユーザからの指示がなかったと判定された場合、処理は、ステップS14に進み、エージェントは、センサ13が出力した観測値otを、反射アクション決定部11に供給して、処理は、ステップS15に進む。
【0096】
ステップS15では、反射アクション決定部11が、生得的なルールに従い、センサ13からの観測値otに対して、時刻tに行うべきアクションutを決定し、そのアクションutに従って、アクチュエータ12を制御して、処理は、ステップS16に進む。
【0097】
ここで、時刻tのアクションutは、本実施の形態では、図2Aに示した5個のアクションU1ないしU5のうちのいずれかである。
【0098】
また、以下、エージェントが次に行うべきアクションとして決定されたアクションutを、決定アクションutともいう。
【0099】
ステップS16では、アクチュエータ12は、反射アクション決定部11の制御に従って駆動し、これにより、エージェントは、決定アクションutを行う。
【0100】
このとき、センサ13は、アクチュエータ12を観測しており、エージェントが行ったアクションut(を表すシンボル)を出力する。
【0101】
そして、処理は、ステップS16からステップS17に進み、履歴記憶部14は、センサ13が出力した観測値otとアクションutとを、観測値及びアクションの履歴として、既に記憶している観測値及びアクションの系列に追加する形で記憶し、処理は、ステップS18に進む。
【0102】
ステップS18では、反射アクション決定部11は、反射アクションモードで行うアクションの回数として、あらかじめ指定(設定)された回数だけ、エージェントがアクションを行ったかどうかを判定する。
【0103】
ステップS18において、エージェントが、あらかじめ指定された回数だけのアクションを、まだ、行っていないと判定された場合、処理は、ステップS19に進み、反射アクション決定部11は、時刻tを1だけインクリメントする。そして、処理は、ステップS19からステップS12に戻り、以下、同様の処理が繰り返される。
【0104】
また、ステップS18において、エージェントが、あらかじめ指定された回数だけのアクションを行ったと判定された場合、すなわち、時刻tが、あらかじめ指定された回数に等しい場合、反射アクションモードの処理は終了し、認識アクションモードの処理が開始される。認識アクションモードの処理については、後述する。
【0105】
一方、ステップS13において、ユーザからの指示があったと判定された場合、すなわち、ユーザが、エージェントの移動先の位置を指定する指示や、移動方向を指定する指示等を行った場合、処理は、ステップS20に進み、ユーザ指示出力部10は、ユーザの指示を表す指示情報を、反射アクション決定部11に供給して、処理は、ステップS21に進む。
【0106】
ステップS21では、反射アクション決定部11は、ユーザ指示出力部10からの指示情報に従い、その指示情報が表すエージェントの移動先の位置の方向に移動するアクションや、指示情報が表す移動方向に移動するアクションを、次に行うべきアクション(決定アクション)utに決定し、その決定アクションutに従って、アクチュエータ12を制御して、処理は、ステップS16に進む。
【0107】
ステップS16では、アクチュエータ12は、反射アクション決定部11の制御に従って駆動し、これにより、エージェントは、決定アクションutを行う。
【0108】
このとき、センサ13は、アクチュエータ12を観測しており、エージェントが行ったアクションut(を表すシンボル)を出力する。
【0109】
そして、処理は、ステップS16からステップS17に進み、履歴記憶部14は、センサ13が出力した観測値otとアクションutとを、観測値及びアクションの履歴として、既に記憶している観測値及びアクションの系列に追加する形で記憶する。その後、処理は、ステップS18に進み、以下、上述した場合と同様の処理が行われる。
【0110】
以上のように、反射アクションモードでは、ユーザの指示がない限り、エージェントは、生得的なルールに従って、次に行うべきアクションを決定し、そのアクションを行うが、ユーザの指示があった場合には、優先的に、ユーザの指示に従って、次に行うべきアクションを決定し、そのアクションを行う。
【0111】
生得的なルール、又は、ユーザの指示に従ってアクションを行うエージェントにおいて観測される観測値otの系列(観測値系列)と、観測値otが観測されるときにエージェントが行ったアクションutの系列(アクション系列)とは(アクションutの系列と、アクションutが行われたときにエージェントにおいて観測される値ot+1の系列とは)、履歴記憶部14に記憶されていく。
【0112】
そして、エージェントでは、学習部21が、履歴記憶部14に記憶された観測値系列とアクション系列とを、学習データとして用いて、拡張HMMの学習を行う。
【0113】
拡張HMMでは、一般(従来)のHMMの状態遷移確率が、エージェントが行うアクションごとの状態遷移確率に拡張されている。
【0114】
[拡張HMM]
【0115】
図5は、拡張HMMの状態遷移確率を説明する図である。
【0116】
すなわち、図5Aは、一般のHMMの状態遷移確率を模式的に示している。
【0117】
いま、拡張HMMを含むHMMとして、ある状態から任意の状態に状態遷移が可能なエルゴディックなHMMを採用することとする。また、HMMの状態の数がN個であるとする。
【0118】
この場合、一般のHMMは、N個の各状態Siから、N個の状態Sjのそれぞれへの、N×N個の状態遷移の状態遷移確率aijを、モデルパラメータとして有する。
【0119】
一般のHMMのすべての状態遷移確率は、状態Siから状態Sjへの状態遷移の状態遷移確率aijを、上からi番目で、左からj番目に配置した2次元のテーブルで表現することができる。
【0120】
ここで、HMMの状態遷移確率のテーブルを、状態遷移確率Aとも記載する。
【0121】
図5Bは、拡張HMMの状態遷移確率Aを示している。
【0122】
拡張HMMでは、状態遷移確率が、エージェントが行うアクションUmごとに存在する。
【0123】
ここで、あるアクションUmについての、状態Siから状態Sjへの状態遷移の状態遷移確率を、aij(Um)とも記載する。
【0124】
状態遷移確率aij(Um)は、エージェントがアクションUmを行ったときに、状態Siから状態Sjへの状態遷移が生じる確率を表す。
【0125】
拡張HMMのすべての状態遷移確率は、アクションUmについての、状態Siから状態Sjへの状態遷移の状態遷移確率aij(Um)を、上からi番目で、左からj番目の、奥行き方向に手前側からm番目に配置した3次元のテーブルで表現することができる。
【0126】
ここで、状態遷移確率Aの3次元のテーブルにおいて、垂直方向の軸を、i軸と、水平方向の軸を、j軸と、奥行き方向の軸を、m軸、又は、アクション軸と、それぞれいうこととする。
【0127】
また、状態遷移確率Aの3次元のテーブルを、アクション軸のある位置mで、アクション軸に垂直な平面で切断して得られる、状態遷移確率aIj(Um)で構成される平面を、アクションUmについての状態遷移確率平面ともいう。
【0128】
さらに、状態遷移確率Aの3次元のテーブルを、i軸のある位置Iで、i軸に垂直な平面で切断して得られる、状態遷移確率aIj(Um)で構成される平面を、状態SIについてのアクション平面ともいう。
【0129】
状態SIについてのアクション平面を構成する状態遷移確率aIj(Um)は、状態SIを遷移元とする状態遷移が生じるときに各アクションUmが行われる確率を表す。
【0130】
なお、拡張HMMは、その拡張HMMのモデルパラメータとして、アクションごとの状態遷移確率aij(Um)の他、一般のHMMと同様に、最初の時刻t=1に、状態Siにいる初期状態確率πiと、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)とを有する。
【0131】
[拡張HMMの学習]
【0132】
図6は、図3の学習部21が、履歴記憶部14に記憶された学習データとしての観測値系列及びアクション系列を用いて行う、拡張HMMの学習の処理を説明するフローチャートである。
【0133】
エージェントでは、反射アクションモードや認識アクションモードの処理において、履歴記憶部14に、観測値及びアクションの履歴として、観測値及びアクションの系列が記憶される。
【0134】
学習部21は、履歴記憶部14に、観測値及びアクションの系列が新たに記憶されると、その新たな観測値系列及びアクション系列を学習データとして用いて、拡張HMMの学習を行う。
【0135】
すなわち、ステップS31において、学習部21は、拡張HMMを初期化する。
【0136】
具体的には、学習部21は、モデル記憶部22に記憶された拡張HMMのモデルパラメータである初期状態確率πi、(アクションごとの)状態遷移確率aij(Um)、及び、観測確率bi(Ok)を初期化する。
【0137】
なお、拡張HMMの状態の数(総数)がN個であるとすると、初期状態確率πiは、例えば、1/Nに初期化される。ここで、2次元平面の迷路であるアクション環境が、横×縦がa×b個の観測単位で構成されることとすると、拡張HMMの状態の数Nとしては、マージンとする整数を△として、(a+△)×(b+△)個を採用することができる。
【0138】
また、状態遷移確率aij(Um)、及び、観測確率bi(Ok)は、例えば、確率の値としてとり得るランダムな値に初期化される。
【0139】
ここで、状態遷移確率aij(Um)の初期化は、各アクションUmについての状態遷移確率平面の各行について、その行の状態遷移確率aij(Um)の総和(ai,1(Um)+ai,2(Um)+・・・+ai,N(Um))が1.0になるように行われる。
【0140】
同様に、観測確率bi(Ok)の初期化は、各状態Siについて、その状態Siから観測値O1,O2,・・・,OKが観測される観測確率の総和(bi(O1)+bi(O2)+・・・+bi(OK))が1.0になるように行われる。
【0141】
なお、いわゆる追加学習が行われる場合には、モデル記憶部22に記憶されている拡張HMMの初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bi(Ok)が、そのまま初期値として用いられ、ステップS31の初期化は、行われない(スキップされる)。
【0142】
ステップS31の後、処理は、ステップS32に進み、以下、ステップS32以降において、Baum-Welchの再推定法(をアクションについて拡張した方法)に従い、履歴記憶部14に記憶された学習データとしてのアクション系列、及び、観測値系列を用いて、初期状態確率πi、各アクションについての状態遷移確率aij(Um)、及び、観測確率bi(Ok)を推定する、拡張HMMの学習が行われる。
【0143】
すなわち、ステップS32では、学習部22は、前向き確率(Forward probability)αt+1(j)と、後ろ向き確率(Backward probability)βt(i)とを算出する。
【0144】
ここで、拡張HMMにおいては、時刻tにおいて、アクションutが行われると、現在の状態Siから状態Sjに状態遷移し、次の時刻t+1において、状態遷移後の状態Sjで、観測値ot+1が観測される。
【0145】
かかる拡張HMMでは、前向き確率αt+1(j)は、現在の拡張HMM(モデル記憶部22に現に記憶されている初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bi(Ok)で規定される拡張HMM)であるモデルΛにおいて、学習データのアクション系列u1,u2,・・・,utが観測されるとともに、観測値系列o1,o2,・・・,ot+1が観測され、時刻t+1に、状態Sjにいる確率P(o1,o2,・・・,ot+1,u1,u2,・・・,ut,st+1=j|Λ)であり、式(1)で表される。
【0146】
【数1】

・・・(1)
【0147】
なお、状態stは、時刻tにいる状態を表し、拡張HMMの状態の数がN個である場合には、状態S1ないしSNのうちのいずれかである。また、式st+1=jは、時刻t+1にいる状態st+1が、状態Sjであることを表す。
【0148】
式(1)の前向き確率αt+1(j)は、学習データのアクション系列u1,u2,・・・,ut-1、及び、観測値系列o1,o2,・・・,otを観測して、時刻tに、状態stにいる場合に、アクションutが行われることにより(観測され)、状態遷移が生じ、時刻t+1に、状態Sjにいて、観測値ot+1を観測する確率を表す。
【0149】
なお、前向き確率αt+1(j)の初期値α1(j)は、式(2)で表される。
【0150】
【数2】

・・・(2)
【0151】
式(2)の初期値α1(j)は、最初(時刻t=0)に、状態Sjにいて、観測値o1を観測する確率を表す。
【0152】
また、拡張HMMでは、後ろ向き確率βt(i)は、現在の拡張HMMであるモデルΛにおいて、時刻tに、状態Siにいて、その後、学習データのアクション系列ut+1,ut+2,・・・,uT-1が観測されるとともに、観測値系列ot+1,ot+2,・・・,oTが観測される確率P(ot+1,ot+2,・・・,oT,ut+1,ut+2,・・・,uT-1,st=i|Λ)であり、式(3)で表される。
【0153】
【数3】

・・・(3)
【0154】
なお、Tは、学習データの観測値系列の観測値の個数を表す。
【0155】
式(3)の後ろ向き確率βt(i)は、時刻t+1に、状態Sjにいて、その後に、学習データのアクション系列ut+1,ut+2,・・・,uT-1が観測されるとともに、観測値系列ot+2,ot+3,・・・,oTが観測される場合において、時刻tに、状態Siにいて、アクションutが行われることにより(観測され)、状態遷移が生じ、時刻t+1の状態st+1が、状態Sjとなって、観測値ot+1が観測されるときに、時刻tの状態stが、状態Siである確率を表す。
【0156】
なお、後ろ向き確率βt(i)の初期値βT(i)は、式(4)で表される。
【0157】
【数4】

・・・(4)
【0158】
式(4)の初期値βT(i)は、最後(時刻t=T)に、状態Siにいる確率が、1.0であること、つまり、最後に、必ず、状態Siにいることを表す。
【0159】
拡張HMMでは、式(1)及び式(3)に示したように、ある状態Siからある状態Sjへの状態遷移の状態遷移確率として、アクションごとの状態遷移確率aij(ut)を用いる点が、一般のHMMと異なる。
【0160】
ステップS32において、前向き確率αt+1(j)と、後ろ向き確率βt(i)とを算出した後、処理は、ステップS33に進み、学習部21は、前向き確率αt+1(j)と、後ろ向き確率βt(i)とを用いて、拡張HMMのモデルパラメータΛである初期状態確率πi、アクションUmごとの状態遷移確率aij(Um)、及び、観測確率bi(Ok)を再推定する。
【0161】
ここで、モデルパラメータの再推定は、状態遷移確率が、アクションUmごとの状態遷移確率aij(Um)に拡張されていることに伴い、Baum-Welchの再推定法を拡張して、以下のように行われる。
【0162】
すなわち、現在の拡張HMMであるモデルΛにおいて、アクション系列U=u1,u2,・・・,uT-1と、観測値系列O=o1,o2,・・・,oTとが観測される場合に、時刻tで、状態Siにいて、アクションUmが行われることにより、時刻t+1に、状態Sjに状態遷移している確率ξt+1(i,j,Um)は、前向き確率αt(i)と、後ろ向き確率βt+1(j)とを用いて、式(5)で表される。
【0163】
【数5】

・・・(5)
【0164】
さらに、時刻tに、状態Siにいて、アクションut=Umが行われる確率γt(i,Um)は、確率ξt+1(i,j,Um)について、時刻t+1にいる状態Sjに関して周辺化した確率として計算することができ、式(6)で表される。
【0165】
【数6】

・・・(6)
【0166】
学習部21は、式(5)の確率ξt+1(i,j,Um)、及び、式(6)の確率γt(i,Um)を用い、拡張HMMのモデルパラメータΛの再推定を行う。
【0167】
ここで、モデルパラメータΛの再推定を行って得られる推定値を、ダッシュ(')を用いて、モデルパラメータΛ'と表すこととすると、モデルパラメータΛ'である初期状態確率の推定値π'iは、式(7)に従って求められる。
【0168】
【数7】

・・・(7)
【0169】
また、モデルパラメータΛ'であるアクションごとの状態遷移確率の推定値a'ij(Um)は、式(8)に従って求められる。
【0170】
【数8】

・・・(8)
【0171】
ここで、式(8)の状態遷移確率の推定値a'ij(Um)の分子は、状態Siにいて、アクションut=Umを行って、状態Sjに状態遷移する回数の期待値を表し、分母は、状態Siにいて、アクションut=Umを行って、状態遷移する回数の期待値を表す。
【0172】
モデルパラメータΛ'である観測確率の推定値b'j(Ok)は、式(9)に従って求められる。
【0173】
【数9】

・・・(9)
【0174】
ここで、式(9)の観測確率の推定値b'j(Ok)の分子は、状態Sjへの状態遷移が行われ、その状態Sjで、観測値Okが観測される回数の期待値を表し、分母は、状態Sjへの状態遷移が行われる回数の期待値を表す。
【0175】
ステップS33において、モデルパラメータΛ'である初期状態確率、状態遷移確率、及び、観測確率の推定値π'i,a'ij(Um)、及び、b'j(Ok)を再推定した後、学習部21は、推定値π'iを、新たな初期状態確率πiとして、推定値a'ij(Um)を、新たな状態遷移確率aij(Um)として、推定値b'j(Ok)を、新たな観測確率bj(Ok)として、それぞれ、モデル記憶部22に、上書きの形で記憶させ、処理は、ステップS34に進む。
【0176】
ステップS34では、拡張HMMのモデルパラメータ、すなわち、モデル記憶部22に記憶された(新たな)初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bj(Ok)が、収束したかどうかを判定する。
【0177】
ステップS34において、拡張HMMのモデルパラメータが、まだ収束していないと判定された場合、処理は、ステップS32に戻り、モデル記憶部22に記憶された新たな初期状態確率πi、状態遷移確率aij(Um)、及び、観測確率bj(Ok)を用いて、同様の処理が繰り返される。
【0178】
また、ステップS34において、拡張HMMのモデルパラメータが収束したと判定された場合、すなわち、例えば、ステップS33の再推定の前と後とで、拡張HMMのモデルパラメータが、ほとんど変化しなくなった場合や、拡張HMMにおいて、学習データが観測される尤度が、ほとんど変化しなくなった場合、拡張HMMの学習の処理は終了する。
【0179】
以上のように、アクションごとの状態遷移確率aij(Um)で規定される拡張HMMの学習を、エージェントが行うアクションのアクション系列と、エージェントがアクションを行ったときにエージェントにおいて観測される観測値の観測値系列とを用いて行うことにより、拡張HMMにおいて、観測値系列を通して、アクション環境の構造が獲得されるとともに、各観測値と、その観測値が観測されるときに行われたアクションとの関係(エージェントが行うアクションと、そのアクションが行われたときに観測される観測値(アクション後に観測される観測値)との関係)が獲得される。
【0180】
その結果、かかる学習後の拡張HMMを用いることにより、認識アクションモードにおいて、後述するように、アクション環境内のエージェントが行うべきアクションとして、適切なアクションを決定することができる。
【0181】
なお、拡張HMMの状態Siの観測確率bi(Ok)は、その状態Siにおいて、各観測値Okが観測される確率であるから、状態Siは、その状態Siの観測確率bi(Ok)で各観測値Okが観測されるアクション環境(本実施の形態では、迷路)上の位置に対応させることができる(対応すると考えることができる)。
【0182】
[認識アクションモードの処理]
【0183】
図7は、図3のエージェントが行う、認識アクションモードの処理を説明するフローチャートである。
【0184】
認識アクションモードでは、エージェントは、上述したように、目標の決定、及び、現在状態の認識を行い、現在状態から目標を達成するためのアクションプランを算出する。さらに、エージェントは、アクションプランに従って、次に行うべきアクションを決定し、そのアクションを行う。そして、エージェントは、以上の処理を繰り返す。
【0185】
すなわち、ステップS41において、状態認識部23は、時刻をカウントする変数tを、初期値としての、例えば、1に設定し、処理は、ステップS42に進む。
【0186】
ステップS42では、センサ13が、アクション環境から、現在の観測値(時刻tの観測値)otを取得して出力し、処理は、ステップS43に進む。
【0187】
ステップS43では、履歴記憶部14は、センサ13が取得した時刻tの観測値otと、その観測値otが観測されるときに(センサ13において観測値otが取得される直前に)、センサ13が出力したアクションut-1(直前の時刻t-1にエージェントが行ったアクションut-1)とを、観測値及びアクションの履歴として、既に記憶している観測値及びアクションの系列に追加する形で記憶し、処理は、ステップS44に進む。
【0188】
ステップS44では、状態認識部23は、拡張HMMに基づき、エージェントが行ったアクションと、そのアクションが行われたときにエージェントにおいて観測された観測値とを用いて、エージェントの現在の状態、つまり、拡張HMMにおいて、いまいる状態である現在状態を求める。
【0189】
すなわち、状態認識部23は、履歴記憶部14から、最新の0個以上のアクションのアクション系列と、最新の1個以上の観測値の観測値系列とを、エージェントの現在状態を認識するのに用いる認識用のアクション系列、及び、観測値系列として読み出す。
【0190】
さらに、状態認識部23は、モデル記憶部22に記憶された拡張HMM(学習済みの拡張HMM)において、認識用のアクション系列、及び、観測値系列を観測して、時刻(現在時刻)tに、状態Sjにいる状態確率の最大値である最適状態確率δt(j)と、その最適状態確率δt(j)が得られる状態系列である最適経路(パス)ψt(j)とを、例えば、Viterbiアルゴリズム(をアクションに拡張したアルゴリズム)に従って求める。
【0191】
ここで、Viterbiアルゴリズムによれば、一般のHMMにおいて、ある観測値系列が観測されるときに辿る状態の系列(状態系列)のうちの、その観測値系列が観測される尤度を最大にする状態系列(最尤状態系列)を推定することができる。
【0192】
但し、拡張HMMでは、状態遷移確率が、アクションについて拡張されているため、Viterbiアルゴリズムを拡張HMMに適用するには、Viterbiアルゴリズムを、アクションについて拡張する必要がある。
【0193】
このため、状態認識部23では、式(10)及び式(11)に従って、それぞれ、最適状態確率δt(j)、及び、最適経路ψt(j)が求められる。
【0194】
【数10】

・・・(10)
【0195】
【数11】

・・・(11)
【0196】
ここで、式(10)のmax[X]は、状態Siを表すサフィックスiを、1から、状態の数Nまでの範囲の整数に変えて得られるXのうちの最大値を表す。また、式(11)のargmax{X}は、サフィックスiを、1からNまでの範囲の整数に変えて得られるXを最大にするサフィックスiを表す。
【0197】
状態認識部23は、認識用のアクション系列、及び、観測値系列を観測して、時刻tに、式(10)の最適状態確率δt(j)を最大にする状態Sjに辿り着く状態系列である最尤状態系列を、式(11)の最適経路ψt(j)から求める。
【0198】
さらに、状態認識部23は、最尤状態系列の最後の状態を、現在状態stとして求める(認識する)。
【0199】
状態認識部23は、現在状態stを求めると、さらに、ステップS44において、その現在状態stが、既知の状態(既知状態)であるか、又は、未知の状態(未知状態)であるかを判定する。
【0200】
ここで、認識用の観測値系列(、又は、認識用の観測値系列、及び、アクション系列)を、Oと表すとともに、認識用の観測値系列O、及び、アクション系列が観測される最尤状態系列を、Xと表す。なお、最尤状態系列Xを構成する状態の数は、認識用の観測値系列Oの系列長qに等しい。
【0201】
また、認識用の観測値系列Oの最初の観測値が観測される時刻tを、例えば、1として、最尤状態系列Xの、時刻tの状態(先頭からt番目の状態)を、Xtと表すとともに、時刻tの状態Xtから、時刻t+1の状態Xt+1への状態遷移の状態遷移確率を、A(Xt,Xt+1)と表すこととする。
【0202】
さらに、最尤状態系列Xにおいて、認識用の観測値系列Oが観測される尤度を、P(O|X)と表すこととする。
【0203】
ステップS44において、状態認識部23は、現在状態stが既知状態であるか、又は、未知状態であるかを判定するにあたり、例えば、式A(Xt,Xt+1)>Threstrans(但し、t=1,2,・・・,q-1)、及び、式P(O|X)>Thresobsが満たされるかどうかを判定する。
【0204】
ここで、式A(Xt,Xt+1)>Threstransの閾値Threstransは、状態Xtから状態Xt+1への状態遷移があり得るのかどうかを切り分けるための閾値である。
【0205】
また、式P(O|X)>Thresobsの閾値Thresobsは、最尤状態系列Xにおいて、認識用の観測値系列Oが観測されることがあり得るのかどうかを切り分けるための閾値である。
【0206】
閾値Threstrans及びThresobsとしては、例えば、シミュレーション等によって、上述の切り分けを適切に行うことができる値が設定される。
【0207】
式A(Xt,Xt+1)>Threstrans、及び、式P(O|X)>Thresobsのうちの少なくとも一方が満たされない場合、状態認識部23は、ステップS44において、エージェントの現在状態が、未知状態であると判定する。
【0208】
また、式A(Xt,Xt+1)>Threstrans、及び、式P(O|X)>Thresobsの両方が満たされる場合、状態認識部23は、ステップS44において、エージェントの現在状態が、既知状態であると判定する。
【0209】
ここで、上述したように、拡張HMMの状態Siは、その状態Siの観測確率bi(Ok)で各観測値Okが観測されるアクション環境(本実施の形態では、迷路)上の位置に対応させることができる。
【0210】
拡張HMMにおいて、状態Siに対応するアクション環境上の位置付近の構造がある程度獲得されている場合、状態Siは既知状態であり、そうでない場合、状態Siは未知状態である。
【0211】
したがって、拡張HMMの学習が、状態Siに対応するアクション環境上の位置付近で観測される観測値系列、及び、アクション系列を用いて、ある程度(十分に)行われている場合、状態Siは、既知状態である。一方、拡張HMMの学習が、状態Siに対応するアクション環境上の位置付近で観測される観測値系列、及び、アクション系列を用いて、まったく(ほとんど)行われていない場合、状態Siは、未知状態である。
【0212】
ステップS44において、現在状態が、未知状態であると判定された場合、エージェントは、認識アクションモードの処理を終了し、未知状態に対応するアクション環境上の位置付近(で観測される観測値を用いて、拡張HMM)を学習するために、反射アクションモードの処理(図4)を開始する。
【0213】
また、ステップS44において、現在状態が、既知状態であると判定された場合、状態認識部23は、現在状態を、アクション決定部24に供給して、処理は、ステップS45に進む。
【0214】
ステップS45では、目標決定部16が、拡張HMMの状態の中から、目標状態を決定する目標状態決定処理を行い、その目標状態決定処理で決定された目標状態を、アクション決定部24に供給して、処理は、ステップS46に進む。
【0215】
ステップS46では、アクション決定部24は、モデル記憶部22に記憶された拡張HMMに基づき、状態認識部23からの現在状態から、目標決定部16からの目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを、例えば、Viterbiアルゴリズム(をアクションに拡張したアルゴリズム)に従って算出する。
【0216】
ここで、Viterbiアルゴリズムによれば、一般のHMMにおいて、2つの状態のうちの一方から他方に到達する状態系列、すなわち、例えば、現在状態から目標状態に到達する状態系列のうちの、ある観測値系列が観測される尤度を最も高くする最尤状態系列を推定することができる。
【0217】
但し、上述したように、拡張HMMでは、状態遷移確率が、アクションについて拡張されているため、Viterbiアルゴリズムを拡張HMMに適用するには、Viterbiアルゴリズムを、アクションについて拡張する必要がある。
【0218】
このため、アクション決定部24では、式(12)に従って、状態確率δ't(j)が求められる。
【0219】
【数12】

・・・(12)
【0220】
ここで、式(12)のmax[X]は、状態Siを表すサフィックスiを、1から、状態の数Nまでの範囲の整数に変え、かつ、アクションUmを表すサフィックスmを、1から、アクションの数Mまでの範囲の整数に変えて得られるXのうちの最大値を表す。
【0221】
式(12)は、最適状態確率δt(j)を求める式(10)から、観測確率bj(ot)を削除した式になっている。また、式(12)では、アクションUmを考慮して、状態確率δ't(j)が求められるが、その点が、Viterbiアルゴリズムの、アクションについての拡張に相当する。
【0222】
アクション決定部24は、式(12)の計算を、前向き方向に実行し、時刻ごとに、最大の状態確率δ't(j)をとるサフィックスiと、そのサフィックスiが表す状態Siに至る状態遷移が生じるときに行われるアクションUmを表すサフィックスmを一時保存する。
【0223】
アクション決定部24は、現在状態stを最初の状態として、式(12)の状態確率δ't(j)を計算していき、目標状態Sgoalの状態確率δ't(Sgoal)が、式(13)に示すように、所定の閾値δ'th以上となったときに、式(12)の状態確率δ't(j)の計算を終了する。
【0224】
【数13】

・・・(13)
【0225】
なお、式(13)の閾値δ'thは、例えば、式(14)に従って設定される。
【0226】
【数14】

・・・(14)
【0227】
ここで、式(14)において、T'は、式(12)の計算回数(式(12)から求められる最尤状態系列の系列長)を表す。
【0228】
式(14)によれば、尤もらしい状態遷移が1回生じた場合の状態確率として、0.9を採用して、閾値δ'thが設定される。
【0229】
したがって、式(13)によれば、尤もらしい状態遷移がT'回だけ連続した場合に、式(12)の状態確率δ't(j)の計算が終了する。
【0230】
アクション決定部24は、式(12)の状態確率δ't(j)の計算を終了すると、その終了時にいる状態、つまり、目標状態Sgoalから、状態Si及びアクションUmについて保存しておいたサフィックスi及びmを、逆方向に、現在状態stに至るまで辿ることで、現在状態stから目標状態Sgoalに到達する最尤状態系列(多くの場合、最短経路)と、その最尤状態系列が得られる状態遷移が生じるときに行われるアクションUmの系列とを求める。
【0231】
すなわち、アクション決定部24は、上述したように、式(12)の状態確率δ't(j)の計算を、前向き方向に実行するときに、最大の状態確率δ't(j)をとるサフィックスiと、そのサフィックスiが表す状態Siに至る状態遷移が生じるときに行われるアクションUmを表すサフィックスmとを、時刻ごとに保存する。
【0232】
時刻ごとのサフィックスiは、時間を遡る方向に、状態Sjから、どの状態Siに戻る場合が、最大の状態確率が得られるかを表し、時刻ごとのサフィックスmは、その最大の状態確率が得られる状態遷移が生じるアクションUmを表す。
【0233】
したがって、時刻ごとのサフィックスi及びmを、式(12)の状態確率δ't(j)の計算を終了した時刻から1時刻ずつ遡っていき、式(12)の状態確率δ't(j)の計算を開始した時刻まで到達すると、現在状態stから目標状態Sgoalに至るまでの状態系列の状態のサフィックスの系列と、その状態系列の状態遷移が生じるときに行われるアクション系列のアクションのサフィックスの系列とのそれぞれを、時間を遡る順に並べた系列を得ることができる。
【0234】
アクション決定部24は、この時間を遡る順に並べた系列を、時間順に並べ替えることで、現在状態stから目標状態Sgoalに至るまでの状態系列(最尤状態系列)と、その状態系列の状態遷移が生じるときに行われるアクション系列とを求める。
【0235】
以上のようにして、アクション決定部24で求められる、現在状態stから目標状態Sgoalに至るまでの最尤状態系列の状態遷移が生じるときに行われるアクション系列が、アクションプランである。
【0236】
ここで、アクション決定部24において、アクションプランとともに求められる最尤状態系列は、エージェントが、アクションプラン通りにアクションを行った場合に生じる(はずの)状態遷移の状態系列である。したがって、エージェントが、アクションプラン通りにアクションを行った場合に、最尤状態系列である状態の並びの通りでない状態遷移が生じたときには、エージェントが、アクションプラン通りにアクションを行っても、目標状態に到達しない可能性がある。
【0237】
ステップS46において、アクション決定部24が、上述したようにして、アクションプランを求めると、処理は、ステップS47に進み、アクション決定部24は、アクションプランに従い、エージェントが次に行うべきアクションutを決定し、処理は、ステップS48に進む。
【0238】
すなわち、アクション決定部24は、アクションプランとしてのアクション系列のうちの最初のアクションを、エージェントが次に行うべき決定アクションutとする。
【0239】
ステップS48では、アクション決定部24は、直前のステップS47で決定したアクション(決定アクション)utに従って、アクチュエータ12を制御し、これにより、エージェントは、アクションutを行う。
【0240】
その後、処理は、ステップS48からステップS49に進み、状態認識部23は、時刻tを1だけインクリメントして、処理は、ステップS42に戻り、以下、同様の処理が繰り返される。
【0241】
以上のように、状態認識部23において、拡張HMMに基づき、エージェントが行ったアクションと、そのアクションが行われたときにエージェントにおいて観測された観測値とを用いて、エージェントの現在状態を認識する一方、目標決定部16において、目標状態を決定し、アクション決定部24において、拡張HMMに基づき、現在状態から目標状態までの状態遷移の尤度(状態確率)を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、エージェントが次に行うべきアクションを決定するので、エージェントが目標状態に到達するために、エージェントが行うべきアクションとして、適切なアクションを決定することができる。
【0242】
なお、認識アクションモードでは、現在状態が既知状態である場合には、上述したように、現在状態から目標状態に到達するアクションが行われるが、現在状態が未知状態である場合には、ステップS44で説明したように、エージェントは、認識アクションモードを終了し、未知状態に対応するアクション環境上の位置付近(で観測される観測値を用いて、拡張HMM)を学習するために、反射アクションモードの処理(図4)を開始する。
【0243】
ここで、図3で説明したように、モデル記憶部22に記憶させる状態遷移確率モデルとしては、拡張HMMの他、一般のHMMを採用することができる。
【0244】
但し、状態遷移確率モデルとして、一般のHMMを採用する場合には、観測値系列を学習するHMMと、そのHMMの状態遷移を実現するアクションを出力する関数等であるアクションのコントローラとを、別個に用意して、学習を行う必要がある。
【0245】
これに対して、拡張HMMでは、その拡張HMMにおいて、観測値系列とアクション系列とを関連づけて学習するので、少ない計算コストと記憶リソースで、学習を行うことができる。
【0246】
また、状態遷移確率モデルとして、一般のHMMを採用する場合には、HMMを用いて、目標状態までの状態系列を算出し、その状態系列を得るためのアクションの算出を、アクションのコントローラを用いて行う必要がある。
【0247】
これに対して、拡張HMMによれば、現在状態から目標状態までの最尤状態系列と、その最尤状態系列を得るためのアクション系列とを同時に求めることができるので、少ない計算コストで、エージェントが次に行うべきアクションを決定することができる。
【0248】
[目標状態の決定]
【0249】
図8は、図7のステップS45で、図3の目標決定部16が行う目標状態決定処理を説明するフローチャートである。
【0250】
目標決定部16では、ステップS51において、外部目標設定部33が、ユーザからの指示があったかどうかを判定する。
【0251】
ステップS51において、ユーザからの指示があったと判定された場合、すなわち、例えば、ユーザが、アクション環境上の所定の位置を指定する指示を行い、その指示を表す指示情報が、ユーザ指示出力部10から外部目標設定部33に供給された場合、処理は、ステップS52に進み、外部目標設定部33は、ユーザ指示出力部10からの指示情報に従い、例えば、その指示情報によって指示されているアクション環境上の位置に対応する拡張HMMの状態を、外部目標に設定し、目標選択部31に供給して、処理は、ステップS53に進む。
【0252】
ステップS53では、目標選択部31は、外部目標設定部33からの外部目標を、優先的に、目標状態に選択して、アクション決定部24に供給し、処理はリターンする。
【0253】
一方、ステップS51において、ユーザからの指示がなかったと判定された場合、処理は、ステップS54に進み、特定状態検出部36は、モデル記憶部22に記憶された拡張HMMの状態の中から、特定状態(となっている状態)を検出することができたかどうかを判定する。
【0254】
ステップS54において、特定状態を検出することができたと判定された場合、特定状態検出部36は、その特定状態を、内部目標として、目標選択部31に供給し、処理は、ステップS55に進む。
【0255】
ステップS55では、目標選択部31は、特定状態検出部36からの特定状態を、目標状態に選択して、アクション決定部24に供給し、処理はリターンする。
【0256】
ステップS54において、特定状態が検出されなかったと判定された場合、処理は、ステップS56に進み、オープン端検出部37が、モデル記憶部22に記憶された拡張HMMの状態の中から、オープン端を検出することができたかどうかを判定する。
【0257】
ステップS56において、オープン端を検出することができたと判定された場合、オープン端検出部37は、そのオープン端を、内部目標として、目標選択部31に供給し、処理は、ステップS57に進む。
【0258】
ステップS57では、目標選択部31は、特定状態検出部36からのオープン端である拡張HMMの状態を、目標状態に選択して、アクション決定部24に供給し、処理はリターンする。
【0259】
また、ステップS56において、オープン端を検出することができなかったと判定された場合、処理は、ステップS58に進み、目標選択部31は、ランダム目標生成部35がモデル記憶部22に記憶された拡張HMMから、ランダムに選択した状態(ランダム目標)を、目標状態に選択して、アクション決定部24に供給し、処理はリターンする。
【0260】
すなわち、ランダム目標生成部35は、拡張HMMの状態の1つをランダムに選択しており、ステップS58では、そのランダムに選択された状態が、目標状態に選択される。
【0261】
なお、ランダム目標生成部35による状態のランダムな選択、特定状態検出部36による特定状態の検出、及び、オープン端検出部37によるオープン端の検出は、例えば、エージェントがアクションを行うアクション環境を提供するアプリケーションや、ユーザ等の外部からの指示に従って行うことができる。
【0262】
さらに、特定状態検出部36において検出する特定状態としては、拡張HMMの任意の状態を採用することができる。拡張HMMの、どの状態を、特定状態とするかは、例えば、アプリケーションやユーザ等の外部から指示することができる。
【0263】
[オープン端の検出]
【0264】
図9は、図3のオープン端検出部37が検出するオープン端である拡張HMMの状態を説明する図である。
【0265】
オープン端とは、大雑把には、拡張HMMにおいて、ある状態を遷移元として、エージェントが未経験の状態遷移が起こり得ることがあらかじめ分かっている、その遷移元の状態である。
【0266】
具体的には、ある状態の状態遷移確率と、その状態と同一の観測値を観測する観測確率が割り当てられた(0.0(とみなされる値)でない値になっている)他の状態の状態遷移確率とを比較した場合に、あるアクションを行ったときに次の状態に状態遷移することが可能なことが分かるにも関わらず、まだ、その状態で、そのアクションを行ったことがないため、状態遷移確率が割り当てられておらず(0.0(とみなされる値)になっており)、状態遷移ができないことになっている状態が、オープン端に該当する。
【0267】
したがって、拡張HMMにおいて、所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、所定の観測値と同一の観測値が観測される他の状態を検出すれば、その、他の状態が、オープン端である。
【0268】
オープン端は、概念的には、図9に示すように、例えば、エージェントが部屋に置かれ、その部屋のある範囲を対象とした学習が行われることによって、拡張HMMが獲得する構造の端部(部屋の中の学習済みの範囲の端部)や、エージェントが置かれた部屋の全範囲を対象とした学習が行われた後、その部屋に隣接して、エージェントが移動可能な新しい部屋を追加することによって現れる、新しい部屋への入り口等に対応する状態である。
【0269】
オープン端が検出されると、拡張HMMが獲得している構造のどの部分の先に、エージェントが未知の領域(未知状態)が広がっているかを知ることができる。したがって、オープン端を目標状態として、アクションプランを算出することにより、エージェントは、積極的に未知の領域に踏み込むアクションを行うことが可能となる。その結果、エージェントは、より広くアクション環境の構造を学習し(アクション環境の構造の学習のための学習データとなる観測系列及びアクション系列を獲得し)、拡張HMMにおいて、構造を獲得していない曖昧な部分(アクション環境の、オープン端となっている状態に対応する観測単位付近の構造)を補強するために必要な経験を効率的に得ることが可能になる。
【0270】
オープン端検出部37は、オープン端を検出するのに、まず、アクションテンプレートを生成する。
【0271】
オープン端検出部37は、アクションテンプレートの生成にあたり、拡張HMMの観測確率B={bi(Ok)}を閾値処理し、各観測値Okに対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップする。
【0272】
図10は、オープン端検出部37が、観測値Okが閾値以上の確率で観測される状態Siをリストアップする処理を説明する図である。
【0273】
図10Aは、拡張HMMの観測確率Bの例を示している。
【0274】
すなわち、図10Aは、状態Siの数Nが5個で、観測値Okの数Mが3個の拡張HMMの観測確率Bの例を示している。
【0275】
オープン端検出部37は、閾値を、例えば、0.5等として、閾値以上の観測確率Bを検出する閾値処理を行う。
【0276】
この場合、図10Aでは、状態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が、それぞれ、閾値処理によって検出される。
【0277】
その後、オープン端検出部37は、各観測値O1,O2,O3に対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップ検出する。
【0278】
図10Bは、観測値O1,O2,O3それぞれに対してリストアップされる状態Siを示している。
【0279】
観測値O1に対しては、その観測値O1が閾値以上の確率で観測される状態として、状態S5がリストアップされ、観測値O2に対しては、その観測値O2が閾値以上の確率で観測される状態として、状態S2及びS4がリストアップされる。また、観測値O3に対して、その観測値O3が閾値以上の確率で観測される状態として、状態S1及びS3がリストアップされる。
【0280】
その後、オープン端検出部37は、拡張HMMの状態遷移確率A={aij(Um)}を用い、各観測値Okについて、その観測値Okに対してリストアップされた状態Siからの状態遷移のうちの、状態遷移確率aij(Um)が最大の状態遷移の状態遷移確率aij(Um)に対応する値である遷移確率対応値を、アクションUmごとに算出し、各観測値Okについて、アクションUmごとに算出された遷移確率対応値を、観測値Okが観測されたときにアクションUmが行われるアクション確率として、アクション確率を要素とする行列であるアクションテンプレートCを生成する。
【0281】
すなわち、図11は、観測値Okに対してリストアップされた状態Siを用いて、アクションテンプレートCを生成する方法を説明する図である。
【0282】
オープン端検出部37は、3次元の状態遷移確率テーブルにおいて、観測値Okに対してリストアップされた状態Siからの状態遷移の、列(横)方向(j軸方向)に並ぶ状態遷移確率から、最大の状態遷移確率を検出する。
【0283】
すなわち、例えば、いま、観測値O2に注目し、観測値O2に対して、状態S2及びS4がリストアップされていることとする。
【0284】
この場合、オープン端検出部37は、3次元の状態遷移確率テーブルを、i軸のi=2の位置で、i軸に垂直な平面で切断して得られる、状態S2についてのアクション平面に注目し、その状態S2についてのアクション平面の、アクションU1を行ったときに生じる状態S2からの状態遷移の状態遷移確率a2,j(U1)の最大値を検出する。
【0285】
すなわち、オープン端検出部37は、状態S2についてのアクション平面の、アクション軸の、m=1の位置に、j軸方向に並ぶ状態遷移確率a2,1(U1),a2,2(U1),・・・,a2,N(U1)の中の最大値を検出する。
【0286】
同様に、オープン端検出部37は、状態S2についてのアクション平面から、他のアクションUmを行ったときに生じる状態S2からの状態遷移の状態遷移確率の最大値を検出する。
【0287】
さらに、オープン端検出部37は、観測値O2に対してリストアップされている、他の状態である状態S4についても、同様に、状態S4についてのアクション平面から、各アクションUmを行ったときに生じる状態S4からの状態遷移の状態遷移確率の最大値を検出する。
【0288】
以上のように、オープン端検出部37は、観測値O2に対してリストアップされた状態S2及びS4のそれぞれについて、各アクションUmが行われたときに生じる状態遷移の状態遷移確率の最大値を検出する。
【0289】
その後、オープン端検出部37は、上述したようにして検出された状態遷移確率の最大値を、アクションUmごとに、観測値O2に対してリストアップされた状態S2及びS4について、平均化し、その平均化によって得られる平均値を、観測値O2についての、状態遷移確率の最大値に対応する遷移確率対応値とする。
【0290】
観測値O2についての、遷移確率対応値は、アクションUmごとに求められるが、この、観測値O2について得られる、アクションUmごとの遷移確率対応値は、観測値O2が観測されたときに、アクションUmが行われる確率(アクション確率)を表す。
【0291】
オープン端検出部37は、他の観測値Okについても、同様にして、アクションUmごとのアクション確率としての遷移確率対応値を求める。
【0292】
そして、オープン端検出部37は、観測値Okが観測されたときに、アクションUmが行われるアクション確率を、上からk番目で、左からm番目の要素とした行列を、アクションテンプレートCとして生成する。
【0293】
したがって、アクションテンプレートCは、行数が、観測値Okの数Kに等しく、列数が、アクションUmの数Mに等しいK行M列の行列となる。
【0294】
オープン端検出部37は、アクションテンプレートCの生成後、そのアクションテンプレートCを用いて、観測確率に基づくアクション確率Dを算出する。
【0295】
図12は、観測確率に基づくアクション確率Dを算出する方法を説明する図である。
【0296】
いま、状態Siにおいて、観測値Okを観測する観測確率bi(Ok)を、第i行第k列の要素とする行列を、観測確率行列Bということとすると、観測確率行列Bは、行数が、状態Siの数Nに等しく、列数が観測値Okの数Kに等しいN行K列の行列となる。
【0297】
オープン端検出部37は、式(15)に従い、N行K列の観測確率行列Bに、K行M列の行列であるアクションテンプレートCを乗算することにより、観測値Okが観測される状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、観測確率に基づくアクション確率Dを算出する。
【0298】
【数15】

・・・(15)
【0299】
オープン端検出部37は、以上のようにして、観測確率に基づくアクション確率Dを算出する他、状態遷移確率に基づくアクション確率Eを算出する。
【0300】
図13は、状態遷移確率に基づくアクション確率Eを算出する方法を説明する図である。
【0301】
オープン端検出部37は、i軸、j軸、及び、アクション軸からなる3次元の状態遷移確率テーブルAの、i軸方向の各状態Siについて、状態遷移確率aij(Um)を、アクションUmごとに加算することで、状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、状態遷移確率に基づくアクション確率Eを算出する。
【0302】
すなわち、オープン端検出部37は、i軸、j軸、及び、アクション軸からなる状態遷移確率テーブルAの、水平方向(列方向)に並ぶ状態遷移確率aij(Um)の総和、つまり、i軸のある位置iと、アクション軸のある位置mに注目した場合に、点(i,m)を通るj軸に平行な直線上に並ぶ状態遷移確率aij(Um)の総和を求め、その総和を、行列の第i行第m列の要素とすることで、N行M列の行列である、状態遷移確率に基づくアクション確率Eを算出する。
【0303】
オープン端検出部37は、以上のようにして、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとを算出すると、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとの差分である差分アクション確率Fを、式(16)に従って算出する。
【0304】
【数16】

・・・(16)
【0305】
差分アクション確率Fは、観測確率に基づくアクション確率Dや、状態遷移確率に基づくアクション確率Eと同様に、N行M列の行列となる。
【0306】
図14は、差分アクション確率Fを模式的に示す図である。
【0307】
図14において、小さな正方形は、行列の要素を表している。また、模様を付していない正方形は、0.0(とみなせる値)になっている要素を表し、黒で塗りつぶしてある正方形は、0.0(とみなせる値)でない値になっている要素を表している。
【0308】
差分アクション確率Fによれば、観測値Okが観測される状態として、複数の状態が存在する場合に、その複数の状態の一部の状態(エージェントがアクションUmを行ったことがある状態)からは、アクションUmを行うことができることが分かっているが、そのアクションUmが行われたときに生じる状態遷移が、状態遷移確率aij(Um)に反映されていない、残りの状態(エージェントがアクションUmを行ったことがない状態)、つまり、オープン端を検出することができる。
【0309】
すなわち、状態Siの状態遷移確率aij(Um)に、アクションUmが行われたときに生じる状態遷移が反映されている場合、観測確率に基づくアクション確率Dの第i行第m列の要素と、状態遷移確率に基づくアクション確率Eの第i行第m列の要素とは、同じような値となる。
【0310】
一方、状態Siの状態遷移確率aij(Um)に、アクションUmが行われたときに生じる状態遷移が反映されていない場合、観測確率に基づくアクション確率Dの第i行第m列の要素は、状態Siと同一の観測値が観測される、アクションUmが行われたことがある状態の状態遷移確率の影響によって、0.0とはみなせない、ある程度の値となるが、状態遷移確率に基づくアクション確率Eの第i行第m列の要素は、0.0(0.0とみなせる小さい値を含む)となる。
【0311】
したがって、状態Siの状態遷移確率aij(Um)に、アクションUmが行われたときに生じる状態遷移が反映されていない場合、差分アクション確率Fの第i行第m列の要素は、値(絶対値)が、0.0とみなせない値となるので、差分アクション確率Fにおいて、0.0とみなせない値になっている要素を検出することで、オープン端、及び、オープン端で行ったことがないアクションを検出することができる。
【0312】
すなわち、差分アクション確率Fにおいて、第i行第m列の要素の値が、0.0とみなせない値となっている場合、オープン端検出部37は、状態Siを、オープン端として検出するとともに、アクションUmを、オープン端である状態Siで行ったことがないアクションとして検出する。
【0313】
図15は、図3のオープン端検出部37が行うオープン端の検出の処理を説明するフローチャートである。
【0314】
ステップS81において、オープン端検出部37は、モデル記憶部22(図3)に記憶された拡張HMMの観測確率B={bi(Ok)}を閾値処理し、これにより、図10で説明したように、各観測値Okに対して、その観測値Okが閾値以上の確率で観測される状態Siをリストアップする。
【0315】
ステップS81の後、処理は、ステップS82に進み、オープン端検出部37は、図11で説明したように、モデル記憶部22に記憶された拡張HMMの状態遷移確率A={aij(Um)}を用い、各観測値Okについて、その観測値Okに対してリストアップされた状態Siからの状態遷移のうちの、状態遷移確率aij(Um)が最大の状態遷移の状態遷移確率aij(Um)に対応する値である遷移確率対応値を、アクションUmごとに算出し、各観測値Okについて、アクションUmごとに算出された遷移確率対応値を、観測値Okが観測されたときにアクションUmが行われるアクション確率として、アクション確率を要素とする行列であるアクションテンプレートCを生成する。
【0316】
その後、処理は、ステップS82からステップS83に進み、オープン端検出部37は、式(15)に従い、観測確率行列Bに、アクションテンプレートCを乗算することにより、観測確率に基づくアクション確率Dを算出し、処理は、ステップS84に進む。
【0317】
ステップS84では、オープン端検出部37は、図13で説明したようにして、状態遷移確率テーブルAの、i軸方向の各状態Siについて、状態遷移確率aij(Um)を、アクションUmごとに加算することで、状態Siにおいて、アクションUmが行われる確率を、第i行第m列の要素とする行列である、状態遷移確率に基づくアクション確率Eを算出する。
【0318】
そして、処理は、ステップS84からステップS85に進み、オープン端検出部37は、観測確率に基づくアクション確率Dと、状態遷移確率に基づくアクション確率Eとの差分である差分アクション確率Fを、式(16)に従って算出し、処理は、ステップS86に進む。
【0319】
ステップS86では、オープン端検出部37は、差分アクション確率Fを閾値処理することで、その差分アクション確率Fにおいて、値が所定の閾値以上の要素を、検出の対象の検出対象要素として検出する。
【0320】
さらに、オープン端検出部37は、検出対象要素の行iと列mとを検出し、状態Siをオープン端として検出するとともに、アクションUmを、オープン端Siにおいて行ったことがない未経験アクションとして検出して、リターンする。
【0321】
エージェントは、オープン端において、未経験アクションを行うことにより、オープン端の先に続く未知の領域を開拓することができる。
【0322】
ここで、従来の行動決定手法では、エージェントの目標は、エージェントの経験を考慮せずに、既知の領域(学習済みの領域)と、未知の領域(未学習の領域)とを対等に(区別なく)扱って決定される。このため、未知の領域の経験を積むのに、多くのアクションを行う必要があり、その結果、アクション環境の構造を広く学習するのに、多くの試行と多大な時間を要していた。
【0323】
これに対して、図3のエージェントでは、オープン端を検出し、そのオープン端を目標状態として、アクションを決定するので、アクション環境の構造を、効率的に学習することができる。
【0324】
すなわち、オープン端は、その先に、エージェントが経験していない未知の領域が広がっている状態であるから、オープン端を検出し、そのオープン端を目標状態としてアクションを決定することにより、エージェントは、積極的に未知の領域に踏み込むことができる。これにより、エージェントは、アクション環境の構造を、より広く学習するための経験を効率的に積むことができる。
【0325】
以上のように、図3のエージェントは、アクションを行ったときに観測される観測値を用いて、拡張HMMの学習を行う一方、生得的なルールや拡張HMMに基づいて、エージェントが行うアクションを決定するが、ユーザからの指示があった場合には、その指示を表す指示情報に従って、エージェントが行うアクションを決定するので、例えば、ユーザに飽きさせないゲームのキャラクタとなるような、娯楽性のあるエージェントを提供することができる。
【0326】
[ゲーム機の一実施の形態]
【0327】
図16は、本技術の情報処理装置を適用したゲーム機の一実施の形態の構成例を示すブロック図である。
【0328】
図16のゲーム機では、図3のエージェントと同様に構成される仮想的なエージェントが、ゲームのキャラクタに適用されている。
【0329】
図16において、ゲーム機は、操作部51、ゲーム制御部52、及び、表示制御部53を有する。
【0330】
操作部51は、ユーザによって操作され、ユーザの操作に対応する操作信号を、ゲーム制御部52に供給する。
【0331】
ゲーム制御部52は、ゲーム環境制御部61、及び、エージェント制御部62を有し、操作部51からの操作信号等に従って、ゲームのキャラクタや、ゲームのキャラクタが登場する環境(ゲーム環境)等を制御する。
【0332】
すなわち、ゲーム環境制御部61は、操作部51からの操作信号等に従って、ゲーム環境(の画像)を生成する。
【0333】
エージェント制御部62は、操作部51からの操作信号等に従って、図3のエージェントと同様に構成される仮想的なエージェント(の画像)(例えば、エージェントのインスタンス)を、ゲームのキャラクタとして生成する。
【0334】
ゲーム制御部52は、ゲーム環境制御部61で生成されたゲーム環境(の画像)に、エージェント制御部62で生成されたエージェントを重畳することにより、ゲームの画面(の画像)を生成し、表示制御部53に供給する。
【0335】
表示制御部53は、ゲーム制御部52からのゲームの画面を、図示せぬ表示装置に表示させる。
【0336】
ここで、図3のエージェントは、上述したように、迷路等のアクション環境を自律的に移動し、その移動によって観測される観測値を用いて、拡張HMMの学習を行うことにより、アクション環境(迷路)の構造を獲得し、目標状態に選択された状態に対応する迷路上の位置に移動することが可能となる。
【0337】
また、エージェントは、自律的に移動する他、ユーザの指示があった場合には、そのユーザの指示に従って移動する。
【0338】
したがって、エージェントにおいて、拡張HMMの学習(アクション環境の構造の獲得)は、ユーザの指示によって加速し、その加速の程度、つまり、拡張HMMの学習の進捗は、ユーザの指示の質によって異なる。このように、エージェントによる拡張HMMの学習の進捗が、ユーザの指示の質によって異なるので、エージェントには、ユーザの教示の仕方(ユーザの指示の質)によって、成長の仕方(拡張HMMの進捗)が変化するといった娯楽性が認められる。
【0339】
このような娯楽性のあるエージェントを、ゲームのキャラクタに適用することにより、ユーザに新たな感覚を享受させることができる新たなゲームを提供することができる。
【0340】
すなわち、新たなゲームでは、エージェントに、ゲームのための学習(知識を獲得するための学習)(以下、ゲーム学習ともいう)を行わせ、その学習後のエージェントを用いたゲームを行う。ゲーム学習では、ユーザは、エージェントに、各種の教示を行うことができ、エージェントの性能は、ユーザが行う教示に大きく依存する。
【0341】
そして、新たなゲームでは、例えば、ユーザは、ユーザ自身が教示、つまり、育成を行ったエージェントと対戦することや、ユーザ自身が育成を行ったエージェントと、他のユーザが育成を行ったエージェントとを対戦させることができる。
【0342】
また、新たなゲームでは、例えば、ユーザは、ユーザ自身が育成を行ったエージェントとチームを組み、他のユーザ及び他のユーザが育成を行ったエージェントのチームとの対戦を行うことができる。
【0343】
ユーザは、ゲーム学習において、適切な教示を行うことによって、エージェントの性能を変化させることができる。したがって、ユーザは、エージェントの性能を、例えば、エージェントのパラメータやプログラムの変更等によって、直接的に変化させることはできないが、適切な教示によって、間接的に変化させることができる。そして、エージェントの性能は、ユーザの教示によって、必ずしも、ユーザの思い通りに変化するとは限らず、ユーザは、その思い通りにならない感覚を享受することができる。
【0344】
なお、あるユーザAが育成を行ったエージェントと、他のユーザBが育成を行ったエージェントとの対戦は、図16の1台のゲーム機上で行うこともできるし、2台のゲーム機をネットワークを介して接続して行うこともできる。
【0345】
エージェントをゲームのキャラクタに適用した新たなゲームとしては、例えば、プレイヤが、コイン等の景品が置かれた迷路内を移動しながら、コインを収集し、合計金額がより多いコインを収集したプレイヤを勝者とするコイン収集ゲームがある。
【0346】
コイン収集ゲームでは、例えば、プレイヤであるエージェントやユーザが、迷路の構造や、コインが置いてある場所(コイン位置)等の知識を獲得する等の、コインの収集のための事前準備を行う事前準備期間と、事前準備で獲得した知識を用いて、迷路に置かれたコインを収集する収集期間とがあり、収集期間において、合計金額がより多いコインを収集したプレイヤが勝者となる。
【0347】
プレイヤは、事前準備の後、コインの収集(コイン位置への移動)を開始するが、コイン収集ゲームでは、ゲームのスタート時、つまり、事前準備の開始時に、迷路の構造と、コインを置く位置とがリセットされる(新たに設定される)とともに、プレイヤは、迷路上の任意の位置に配置される。
【0348】
このため、ゲームのスタート直後の、プレイヤであるエージェントは、反射アクションモード(図4)により、生得的なルールに従って、迷路上を移動するアクションを行い、そのアクション時に観測される観測値(及びアクション)を用いて、拡張HMMの学習(図6)を行うことにより、迷路の構造を獲得するとともに、その観測値から、コイン位置(に対応する拡張HMMの状態)を獲得する。
【0349】
反射アクションモードにおいて、ある程度の観測値(及びアクション)が観測され、その結果、その観測値を用いた学習によって、拡張HMMにおいて、迷路の構造が多少なりとも獲得されると、エージェントがアクションを行うモードは、反射アクションモードから、認識アクションモード(図7)となる。
【0350】
認識アクションモードでは、例えば、オープン端を、目標状態に選択すると、エージェントは、図7及び図8で説明したように、オープン端、つまり、迷路上の未知の領域に移動するアクションを行う。
【0351】
したがって、オープン端を目標状態に選択することにより、エージェントは、既に移動した場所に何度も移動することがなくなり、迷路の構造、及び、コイン位置を効率的に獲得することができる。
【0352】
また、認識アクションモードにおいて、迷路上のコイン位置に対応する拡張HMMの状態を、特定状態として、その特定状態を、目標状態に選択すると、エージェントは、図7及び図8で説明したように、特定状態、つまり、コイン位置に移動するアクションを行う。
【0353】
したがって、コイン位置に対応する拡張HMMの状態を、特定状態として、その特定状態を、目標状態に選択することにより、エージェントは、コイン位置に移動し、そのコイン位置のコインを収集することができる。
【0354】
さらに、反射アクションモード、及び、認識アクションモードでは、迷路上の所定の位置を指定するように、ユーザが指示を行うと、エージェントは、図4、並びに、図7及び図8で説明したように、ユーザの指示を表す指示情報に従い、所定の位置に移動するアクションを行う。
【0355】
したがって、例えば、事前準備において、エージェントが、高額なコインが置いてあるコイン位置に移動していかない場合に、ユーザが、そのコイン位置を指示してあげることによって、エージェントは、高価なコインが置いてあるコイン位置(及び、現在地からそのコイン位置までの迷路の構造)を獲得することができる。
【0356】
エージェントをゲームのキャラクタに適用したコイン収集ゲームでは、例えば、以下のような、第1ないし第3のルールで、ゲームを行うことができる。
【0357】
すなわち、第1のルールでは、ユーザ(ユーザが操作する、ユーザを模したキャラクタ)と、エージェント(図3のエージェントと同様に構成される仮想的なエージェント)とが対戦し、どれだけのコインを収集することができるかを競う。
【0358】
ここで、エージェントの実体としてのプロセッサ(コンピュータ)と、人間であるユーザとでは、処理の実行サイクルが異なり、エージェント(プロセッサ)の方が、ユーザよりも、処理の実行サイクルがはるかに速い。このため、エージェントにおいては、ユーザがエージェントと競い合うことができるように、実行サイクルが調整される。
【0359】
エージェントの実行サイクルを遅くしすぎると、例えば、ユーザは、事前準備時に、コイン位置のメモをとる等して、コイン位置を正確に把握し、コインの収集時に、大量のコインを収集することが可能となるため、実行サイクルの調整は、そのようなことがないように行われる。
【0360】
例えば、エージェントは、アクションを行う実行サイクルを、3秒に調整して、その3秒の実行サイクル単位で、1つのアクションを行うが、3秒の実行サイクルにおいて、ユーザが、迷路内を移動する操作を行ったときには、その動作に同期して、1つのアクションを行う。このように、実行サイクルを調整することにより、ユーザは、エージェントと競い合って、コインを収集することができる。
【0361】
なお、ユーザが対戦を行う場合、ゲームの画面には、ユーザが操作する、ユーザを模したキャラクタが表示されるが、ユーザを模したキャラクタは、例えば、ゲーム環境制御部61において生成される。
【0362】
第2のルールでは、ユーザは、事前準備において、コイン位置等を指示することによって、エージェントが、コイン位置、及び、迷路の構造を獲得する育成を行い、ユーザが育成を行ったエージェントと、ユーザ、又は、他のユーザが育成を行ったエージェントとが対戦して、どれだけのコインを収集することができるかを競う。
【0363】
ユーザは、事前準備において、エージェントを観察し、高額なコインが置いてあるコイン位置や、近傍に多くのコインが置いてある位置に移動していかない場合に、そのコイン位置を指示し、エージェントを、そのようなコイン位置に誘導して、半強制的に、高価なコインが置いてあるコイン位置や多数のコインが置いてある位置を獲得させる。
【0364】
また、事前準備において、エージェントが移動していかない迷路上の位置がある場合に、ユーザは、その位置を指示し、エージェントを、そのような位置に誘導して、半強制的に、エージェントが移動していかなかった位置付近の迷路の構造を獲得させる。
【0365】
以上のように、ユーザが指示を与えることによって、エージェントは、多くのコイン位置や、迷路内の広範囲の構造を、迅速に獲得することができ、性能の良いエージェントに育成される。
【0366】
ユーザは、育成後のエージェントと対戦し、ユーザ自身の育成(指示)の仕方の良さを楽しむことができる。
【0367】
また、ユーザは、ユーザ自身が育成を行ったエージェントと、他のユーザが育成を行ったエージェントとを対戦させることができる。
【0368】
ユーザが育成を行ったエージェントAと、他のユーザが育成を行ったエージェントBとの対戦では、同一の迷路を使用した事前準備の後、エージェントAとBとが、迷路上の同一の位置に置かれ、コインの収集が開始される。コインの収集では、エージェントA及びBは、同一のタイミングでアクションを行い、例えば、100回のアクションで収集することができたコインの金額(総額)を競う。
【0369】
エージェントA及びBのユーザは、事前準備では、それぞれのエージェントに対して指示を行うが(エージェントの育成を行うが)、コインの収集では、観戦を行うだけとなる。
【0370】
なお、エージェントA及びBの対戦は、例えば、ネットワーク経由で行うことができる。
【0371】
第3のルールでは、ユーザは、エージェントとチームを組んで、コインを収集する。
【0372】
この場合、ユーザとエージェントとは、分担(共同)して作業を行う。
【0373】
すなわち、事前準備において、ユーザが、迷路の一部の範囲について、迷路の構造、及び、コイン位置を記憶し、エージェントに、迷路の残りの範囲について、迷路の構造、及び、コイン位置を獲得させる。
【0374】
そして、コインの収集では、ユーザは、迷路の一部の範囲を対象に、コインの収集を行い、エージェントは、迷路の残りの範囲を対象に、コインの収集を行う。
【0375】
この場合、ユーザが収集したコインとエージェントが収集したコインとの合計のコインの金額が、ユーザとエージェントとのチームの得点とされ、ユーザは、チームの得点として、高い得点をとることを目標として、ゲームを行う。
【0376】
また、第3のルールでは、ユーザのチームと、他のユーザのチームとの対戦を行うことができる。ユーザのチームと、他のユーザのチームとの対戦は、ネットワーク経由で行うことができる。
【0377】
なお、チームには、1つのエージェントの他、複数のエージェントを含めることができる。但し、チームどうしの対戦では、チームに含めるエージェントの数は、一致させることが望ましい。
【0378】
以上のように、図3のエージェントと同様に構成される仮想的なエージェントを、ゲームのキャラクタに適用した(新たな)ゲームによれば、ユーザは、ゲームのキャラクタとしてのエージェントを育成し、その育成後のエージェントと対戦することや、ユーザが育成を行ったエージェントと、他のユーザが育成を行ったエージェントとを対戦させること等ができる。
【0379】
なお、図3のエージェントと同様に構成される仮想的なエージェントは、コイン収集ゲーム以外の、例えば、アドベンチャゲームやボードゲーム等のキャラクタに適用することができる。
【0380】
図17は、コイン収集ゲームのゲーム環境の例を示す図である。
【0381】
図17のゲーム環境では、迷路に、コインが置かれている。迷路内に置かれているコインとしては、金額(価値)が異なる複数種類(図17では、2種類)のコインが採用されている。
【0382】
ゲームのキャラクタに適用されたエージェント(図3のエージェントと同様に構成される仮想的なエージェント)は、ゲーム環境の迷路内を、上下左右の4方向に、1マス単位で移動することができる。
【0383】
エージェントは、迷路の各マスにおいて、そのマスを基準とする一定の範囲だけを観測することができるが、迷路全体を観察することはできない。
【0384】
図18は、エージェントが迷路のマスにおいて観測することができる範囲の例を示す図である。
【0385】
図18Aでは、エージェントは、迷路の各マスにおいて、エージェントがいるマスだけ、すなわち、エージェントがいるマスの壁と、そのマスから移動することができる方向だけを観測することができる。
【0386】
図18Bでは、エージェントは、迷路の各マスにおいて、エージェントがいるマスと、そのマスの8方向それぞれに隣接する8個のマスとの、合計で9マスを観測することができる。
【0387】
図19は、コイン収集ゲームについて、図16のゲーム機が行う処理(ゲーム制御)を説明するフローチャートである。
【0388】
ステップS91において、ゲーム環境制御部61は、コインが置かれた迷路(の画像)を、ゲーム環境(の画像)として生成する。さらに、ステップS91において、エージェント制御部62は、図3のエージェントと同様に構成される仮想的なエージェント(の画像)を、ゲームのキャラクタとして生成する。
【0389】
そして、ゲーム制御部52は、ゲーム環境制御部61で生成されたゲーム環境(の画像)に、エージェント制御部62で生成されたエージェントを重畳することにより、ゲームの画面(の画像)を生成し、表示制御部53に供給する。
【0390】
表示制御部53は、ゲーム制御部52からのゲームの画面の表示を開始し、処理は、ステップS91からステップS92に進む。
【0391】
ステップS92では、エージェント制御部62は、エージェントに事前準備を行わせる事前準備制御を行う。
【0392】
すなわち、エージェント制御部62は、エージェント(図3)を、反射アクションモードにする。
【0393】
反射アクションモード(図4)では、エージェントは、生得的なルールに従って、迷路上を移動するアクションを行い、そのアクション時に観測される観測値(及びアクション)を用いて、拡張HMMの学習(図6)を行うことにより、迷路の構造を獲得するとともに、その観測値から、コイン位置を獲得する。
【0394】
反射アクションモードにおいて、ある程度の観測値(及びアクション)が観測されると、その観測値を用いた学習によって、拡張HMMにおいて、迷路の構造が多少なりとも獲得される。そして、反射アクションモードにおいて、エージェントが、あらかじめ指定された回数だけアクションを行うと(図4のステップS18)、エージェントは、反射アクションモードから、認識アクションモード(図7)となる。
【0395】
事前準備制御では、エージェント制御部62は、エージェント(図3)の外部目標設定部33、ランダム目標生成部35、特定状態検出部36、及び、オープン端検出部37のうちの、外部目標設定部33、ランダム目標生成部35、及び、オープン端検出部37を有効にし(動作させ)、特定状態検出部36を無効にする(停止させる)。
【0396】
その結果、事前準備制御において、エージェントがアクションを行うモードが、認識アクションモードである場合の目標状態は、ユーザからの指示に従った状態、オープン端、及び、拡張HMMの状態の中からランダムに選択された状態のうちのいずれかに制限される。
【0397】
そして、ユーザからの指示があった場合には、図8で説明したように、目標設定部33において、そのユーザからの指示を表す指示情報に従って、外部目標が設定され、目標選択部31において、目標状態に選択される。
【0398】
この場合、エージェントは、迷路上を、指示情報に従って設定された外部目標を目標状態とするアクションプランに従って移動し、すなわち、ユーザからの指示に従って移動し、迷路の構造、及び、コイン位置を獲得する。
【0399】
また、ユーザからの指示がなく、オープン端検出部37において、オープン端が検出された場合には、図8で説明したように、目標選択部31において、オープン端が、目標状態に選択される。
【0400】
この場合、エージェントは、オープン端を目標状態とするアクションプランに従い、迷路上を、オープン端である拡張HMMの状態に対応する位置に向かって、未知の領域を開拓するかのごとく移動し、迷路の構造、及び、コイン位置を獲得する。
【0401】
ユーザからの指示がなく、また、オープン端検出部37において、オープン端が検出されない場合には、図8で説明したように、ランダム目標生成部35において、拡張HMMの状態の中から、1つの状態がランダムに選択され、目標選択部31において、その状態が、目標状態に選択される。
【0402】
ここで、オープン端検出部37において、オープン端が検出されない場合というのは、エージェントが、ゲーム環境(迷路)の構造のすべてを獲得している場合である。迷路の規模や、事前準備期間は、オープン端が検出されなくなることがないように設定される。
【0403】
以上のように、事前準備では、エージェントは、未知の領域を開拓するかのごとく移動することによって、また、ユーザからの指示があった場合には、優先的に、そのユーザからの指示を表す指示情報に従って移動することによって、迷路の構造、及び、コイン位置を獲得する。
【0404】
事前準備が開始されてから、あらかじめ設定された事前準備期間が経過すると、処理は、ステップS92からステップS93に進み、エージェント制御部62は、エージェントにコインを収集させるコイン収集制御を行う。
【0405】
コイン収集制御では、エージェント制御部62は、エージェント(図3)の外部目標設定部33、ランダム目標生成部35、特定状態検出部36、及び、オープン端検出部37のうちの、特定状態検出部36を有効にし、外部目標設定部33、ランダム目標生成部35、及び、オープン端検出部37を無効にする。
【0406】
その結果、コイン収集制御では、エージェントがアクションを行うモードが、認識アクションモードである場合の目標状態は、特定状態に制限される。
【0407】
さらに、コイン収集制御では、エージェント制御部62は、事前準備で獲得したコイン位置の中で、コイン収集制御が開始されてから、エージェントが到着したことがないコイン位置(以下、未到着位置ともいう)に対応する拡張HMMの状態を、特定状態として検出するように、エージェント(図3)の特定状態検出部36を制御する。
【0408】
特定状態検出部36では、エージェント制御部62の制御に従い、拡張HMMの状態の中から、未到着位置の1つに対応する状態が、特定状態として検出され、目標選択部31において、特定状態が、目標状態に選択される。
【0409】
この場合、エージェントは、特定状態を目標状態とするアクションプランに従い、迷路上を、特定状態に対応する位置、すなわち、コイン位置に向かって移動し、そのコイン位置に置いてあるコインを収集する。
【0410】
なお、特定状態検出部36では、未到着位置について、エージェントの現在地から未到着位置までの距離に反比例する値や、未到着位置に置いてあるコインの金額に比例する値、エージェントの現在地から未到着位置までの距離に反比例し、かつ、未到着位置に置いてあるコインの金額に比例する値等が、未到着位置に移動することの価値を表す評価値として求められ、評価値が最大の未到着位置に対応する拡張HMMの状態が、特定状態として優先的に検出される。
【0411】
また、エージェントは、未到着位置であるコイン位置に到着した場合、そのコイン位置を、未到着位置から除外する。
【0412】
コインの収集の時間として、あらかじめ設定された時間が経過すると、ステップS93のコイン収集制御は終了し、コイン収集ゲームが終了する。
【0413】
ここで、上述の場合には、コインの収集において、エージェントが、コイン位置に対応する状態(特定状態)を目標状態とするアクションプランに従って移動し、目標状態に対応するコイン位置においてあるコインを収集することとしたが、エージェントにおいては、アクションプランに従って移動したときに収集することができるコインの金額の総和を最大にする最短の経路(拡張HMMの状態の系列)を、アクションプランとして求め、そのアクションプランに従って移動することにより、コインを収集することができる。
【0414】
また、上述の場合には、事前準備において、エージェントが、オープン端を、目標状態に選択し、その目標状態であるオープン端に向かって移動することで、迷路の構造、及び、コイン位置を獲得することとしたが、事前準備では、その他、例えば、エージェントにおいて、信頼度の低い拡張HMMの状態(その状態に対応する位置付近の迷路の構造を十分に獲得することができていない状態)に対応する位置に向かって移動することで、迷路の構造、及び、コイン位置を獲得することができる。
【0415】
エージェントが信頼度の低い(拡張HMMの)状態に向かう移動は、アクション決定部24において、例えば、拡張HMMにおいて獲得していない迷路の構造の情報(観測値)を増加させるストラテジ(strategy)(以下、未獲得情報増加ストラテジともいう)に従ってアクションを決定することにより行うことができる。
【0416】
アクション決定部24において、未獲得情報増加ストラテジに従ったアクションの決定は、例えば、以下のようにして行うことができる。
【0417】
すなわち、ある時刻tにおいて、エージェントがアクションUmを行った場合に、観測値Oが観測される確率Pm(O)は、式(17)で表すことができる。
【0418】
【数17】

・・・(17)
【0419】
式(17)において、ρiは、時刻tに、状態Siにいる状態確率を表す。
【0420】
いま、発生確率が、確率Pm(O)で表される情報の量を、I(Pm(O))と表すこととすると、何らかの情報を増加させるストラテジに従って、アクションを決定する場合の、そのアクションUm'のサフィックスm'は、式(18)で表される。
【0421】
【数18】

・・・(18)
【0422】
ここで、式(18)のargmax{I(Pm(O))}は、アクションUmのサフィックスmのうちの、かっこ内の情報の量I(Pm(O))を最大にするサフィックスm'を表す。
【0423】
いま、情報として、拡張HMMにおいて獲得していない情報(以下、未知状態情報ともいう)を採用することとすると、式(18)に従って、アクションUm'を決定することは、拡張HMMにおいて獲得していない迷路の構造の情報を増加させる未獲得情報増加ストラテジに従って、アクションを決定することになる。
【0424】
ここで、発生確率が、確率Pm(O)で表される情報のエントロピーを、Ho(Pm)と表すこととすると、式(18)は、等価的に、以下の式で表すことができる。
【0425】
すなわち、エントロピーHo(Pm)は、式(19)で表すことができる。
【0426】
【数19】

・・・(19)
【0427】
式(19)のエントロピーHo(Pm)が、大きい場合には、観測値Oが観測される確率Pm(O)が、各観測値で均等になるので、どのような観測値が観測されるかが分からない、ひいては、エージェントが、どこにいるか分からないというような曖昧性が増加し、エージェントが知らない、いわば未知の世界の情報を獲得する可能性が高くなる。
【0428】
したがって、エントロピーHo(Pm)を大きくすることで、未知状態情報は増加するから、未獲得情報増加ストラテジに従って、アクションを決定する場合の式(18)は、等価的に、エントロピーHo(Pm)を最大化する式(20)で表すことができる。
【0429】
【数20】

・・・(20)
【0430】
ここで、式(20)のargmax{ Ho(Pm)}は、アクションUmのサフィックスmのうちの、かっこ内のエントロピーHo(Pm)を最大にするサフィックスm'を表す。
【0431】
エージェントが、式(20)に従って決定されるアクションUm'を行うことによっても、オープン端を目標状態としてアクションを行う場合と同様に、迷路の構造、及び、コイン位置を効率的に獲得することができる。
【0432】
ここで、特許文献1には、相手の移動を考慮して、相手が移動する場所が少なくなるように弾を撃つ、アルゴリズムが固定的な対戦型シューティングゲームが記載されている。なお、特許文献1では、人工知能技術が探索問題として使われているだけで、学習や、育成を行ったキャラクタを使った対戦については、記載されていない。
【0433】
特許文献2には、ユーザがコマンドを入力して対話や指示をして、ペットを育てるゲームが記載されている。特許文献2に記載のゲームでは、ユーザの話し方の特徴や言葉から得られる特徴でペットの性格やアクションが変化し、これにより、ユーザがゲームに飽きることを抑制する。なお、特許文献2のゲームでは、自律で環境を探索することはなく、常に人間の関与が必要とされる。また、特許文献2には、対話以外のアクションを指示して育成を行うことや、キャラクタどうしの対戦については、記載されていない。
【0434】
特許文献3には、キャラクタが板の上に乗っている状況で、その板の角度をユーザが変えたときに、キャラクタが各種の振る舞いを行うゲームが記載されている。なお、特許文献3には、人工知能という言葉が記載されているが、その言葉は、板の傾きが少ないときにキャラクタが板の上で行う知的な振る舞いを意味しており、また、学習については、記載されていない。
【0435】
特許文献4には、対戦型のゲーム等において、味方のキャラクタと、敵のキャラクタや各種のオブジェクトとの位置関係を把握しやすくする工夫に関する技術が記載されている。なお、特許文献4には、人工知能という言葉が記載されているが、その言葉は、敵のキャラクタの動きや戦略を決める、各種の条件で複雑な判断を行うモジュールを意味しており、学習や育成については、記載されていない。
【0436】
特許文献5には、RPG(Role-Playing Game)において、キャラクタの性格の変更や、キャラクタの追加によって、ゲームを面白くする技術が記載されている。なお、特許文献5には、人工知能という言葉が記載されているが、その言葉は、キャラクタの動作を決めるモジュールを意味している。特許文献5には、そのモジュールを交換することや流通させることが記載されているが、人工知能で学習することや、キャラクタどうしの対戦については、記載されていない。
【0437】
[本技術を適用したコンピュータの説明]
【0438】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0439】
そこで、図20は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0440】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
【0441】
あるいはまた、プログラムは、リムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【0442】
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【0443】
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
【0444】
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
【0445】
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
【0446】
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【0447】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0448】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0449】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0450】
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0451】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0452】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0453】
なお、本技術は、以下のような構成をとることができる。
【0454】
[1]
アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、
前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、
ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部と
を備え、
前記アクション決定部は、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定する
情報処理装置。
[2]
前記モデルは、
前記エージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、前記観測値が観測される観測確率と
で規定され、
前記学習部は、前記モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う
[1]に記載の情報処理装置。
[3]
前記モデルは、HMM(Hidden Marcov Model)の状態遷移確率を、前記エージェントが行うアクションごとの状態遷移確率に拡張した拡張HMMであり、
前記学習部は、Baum-Welchの再推定法に従い、各アクションについての前記状態遷移確率と、前記観測確率とを推定する、前記拡張HMMの学習を行う
[2]に記載の情報処理装置。
[4]
前記拡張HMMに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記拡張HMMにおいて、現在いる状態である現在状態を認識する状態認識部と、
前記拡張HMMの状態の1つを、目標とする目標状態に決定する目標決定部と
をさらに備え、
前記アクション決定部は、前記拡張HMMに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定する
[3]に記載の情報処理装置。
[5]
前記目標決定部は、前記ユーザから指示があった場合、前記指示情報に従って、前記目標状態を決定し、
前記アクション決定部は、前記ユーザから指示があった場合、前記指示情報に従って決定された前記目標状態までのアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定する
[4]に記載の情報処理装置。
[6]
所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、前記所定の観測値と同一の観測値が観測される他の状態であるオープン端を検出するオープン端検出部をさらに備え、
前記目標決定部は、前記オープン端を、前記目標状態に決定する
[4]又は[5]に記載の情報処理装置。
[7]
前記オープン端検出部は、
前記状態遷移確率と、前記観測確率とを用いて、各観測値が観測されるときに、前記エージェントが各アクションを行う確率であるアクション確率を求め、
前記アクション確率と、前記観測確率との乗算により、各観測値が観測される各状態において、前記エージェントが各アクションを行う確率である、観測確率に基づくアクション確率を算出し、
各状態について、その状態を遷移元とする状態遷移の前記状態遷移確率を、アクションごとに加算することにより、各状態において、前記エージェントが各アクションを行う確率である、状態遷移確率に基づくアクション確率を算出し、
前記観測確率に基づくアクション確率と、前記状態遷移確率に基づくアクション確率との差分が所定の閾値以上となる状態を、前記オープン端として検出する
[6]に記載の情報処理装置。
[8]
前記エージェントが、前記オープン端を前記目標状態とするアクションプラン、又は、前記指示情報に従って決定される前記目標状態までのアクションプランに従って、景品が置かれた迷路を移動するアクションを行うことにより観測される観測値と、前記エージェントが行うアクションとを用いて、前記拡張HMMにおいて、前記迷路の構造を獲得する学習を行う事前準備処理と、
前記エージェントが、前記迷路において景品が置かれた場所に対応する状態を目標状態とするアクションプランに従って、前記迷路を移動するアクションを行うことにより、前記景品を収集する収集処理と
を制御する[6]又は[7]に記載の情報処理装置。
[9]
前記アクション決定部は、前記拡張HMMにおいて獲得していない未知の情報を増加させるストラテジに従って、アクションを決定する
[3]に記載の情報処理装置。
[10]
前記アクション決定部は、前記エージェントがアクションを行ったときに各観測値が観測される確率によって発生確率が表される情報のエントロピーを最大にするアクションを、前記エージェントが次に行うべきアクションに決定する
[9]に記載の情報処理装置。
[11]
前記エージェントが、前記エントロピーを最大にするアクション、又は、前記指示情報に従って決定されるアクションを行って、景品が置かれた迷路を移動することにより観測される観測値と、前記エージェントが行うアクションとを用いて、前記拡張HMMにおいて、前記迷路の構造を獲得する学習を行う事前準備処理と、
前記エージェントが、前記迷路において景品が置かれた場所に対応する状態を目標状態とするアクションプランに従って、前記迷路を移動するアクションを行うことにより、前記景品を収集する収集処理と
を制御する[10]に記載の情報処理装置。
[12]
アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、
前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、
ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部と
を備える情報処理装置の前記アクション決定部が、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定するステップを含む
情報処理方法。
[13]
アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、
前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、
ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部と
して、コンピュータを機能させるためのプログラムであり、
前記アクション決定部は、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定する
プログラム。
【符号の説明】
【0455】
10 ユーザ指示出力部, 11 反射アクション決定部, 12 アクチュエータ, 13 センサ, 14 履歴記憶部, 15 アクション制御部, 16 目標決定部, 21 学習部, 22 モデル記憶部, 23 状態認識部, 24 アクション決定部, 31 目標選択部, 33 外部目標設定部, 34 内部目標生成部, 35 ランダム目標生成部, 36 特定状態検出部, 37 オープン端検出部, 51 操作部, 52 ゲーム制御部, 53 表示制御部, 61 ゲーム環境制御部, 62 エージェント制御部, 101 バス, 102 CPU, 103 ROM, 104 RAM, 105 ハードディスク, 106 出力部, 107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録媒体

【特許請求の範囲】
【請求項1】
アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、
前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、
ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部と
を備え、
前記アクション決定部は、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定する
情報処理装置。
【請求項2】
前記モデルは、
前記エージェントが行うアクションによって、状態が状態遷移する、前記アクションごとの状態遷移確率と、
前記状態から、前記観測値が観測される観測確率と
で規定され、
前記学習部は、前記モデルの学習を、前記エージェントが行うアクションと、前記エージェントがアクションを行ったときに前記エージェントにおいて観測される観測値とを用いて行う
請求項1に記載の情報処理装置。
【請求項3】
前記モデルは、HMM(Hidden Marcov Model)の状態遷移確率を、前記エージェントが行うアクションごとの状態遷移確率に拡張した拡張HMMであり、
前記学習部は、Baum-Welchの再推定法に従い、各アクションについての前記状態遷移確率と、前記観測確率とを推定する、前記拡張HMMの学習を行う
請求項2に記載の情報処理装置。
【請求項4】
前記拡張HMMに基づき、前記エージェントが行ったアクションと、そのアクションが行われたときに前記エージェントにおいて観測された観測値とを用いて、前記拡張HMMにおいて、現在いる状態である現在状態を認識する状態認識部と、
前記拡張HMMの状態の1つを、目標とする目標状態に決定する目標決定部と
をさらに備え、
前記アクション決定部は、前記拡張HMMに基づき、前記現在状態から前記目標状態までの状態遷移の尤度を最も高くするアクションの系列であるアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定する
請求項3に記載の情報処理装置。
【請求項5】
前記目標決定部は、前記ユーザから指示があった場合、前記指示情報に従って、前記目標状態を決定し、
前記アクション決定部は、前記ユーザから指示があった場合、前記指示情報に従って決定された前記目標状態までのアクションプランを算出し、そのアクションプランに従い、前記エージェントが次に行うべきアクションを決定する
請求項4に記載の情報処理装置。
【請求項6】
所定の観測値が観測される状態を遷移元として行うことが可能な状態遷移の中で、行われたことがない状態遷移がある、前記所定の観測値と同一の観測値が観測される他の状態であるオープン端を検出するオープン端検出部をさらに備え、
前記目標決定部は、前記オープン端を、前記目標状態に決定する
請求項4に記載の情報処理装置。
【請求項7】
前記オープン端検出部は、
前記状態遷移確率と、前記観測確率とを用いて、各観測値が観測されるときに、前記エージェントが各アクションを行う確率であるアクション確率を求め、
前記アクション確率と、前記観測確率との乗算により、各観測値が観測される各状態において、前記エージェントが各アクションを行う確率である、観測確率に基づくアクション確率を算出し、
各状態について、その状態を遷移元とする状態遷移の前記状態遷移確率を、アクションごとに加算することにより、各状態において、前記エージェントが各アクションを行う確率である、状態遷移確率に基づくアクション確率を算出し、
前記観測確率に基づくアクション確率と、前記状態遷移確率に基づくアクション確率との差分が所定の閾値以上となる状態を、前記オープン端として検出する
請求項6に記載の情報処理装置。
【請求項8】
前記エージェントが、前記オープン端を前記目標状態とするアクションプラン、又は、前記指示情報に従って決定される前記目標状態までのアクションプランに従って、景品が置かれた迷路を移動するアクションを行うことにより観測される観測値と、前記エージェントが行うアクションとを用いて、前記拡張HMMにおいて、前記迷路の構造を獲得する学習を行う事前準備処理と、
前記エージェントが、前記迷路において景品が置かれた場所に対応する状態を目標状態とするアクションプランに従って、前記迷路を移動するアクションを行うことにより、前記景品を収集する収集処理と
を制御する請求項6に記載の情報処理装置。
【請求項9】
前記アクション決定部は、前記拡張HMMにおいて獲得していない未知の情報を増加させるストラテジに従って、アクションを決定する
請求項3に記載の情報処理装置。
【請求項10】
前記アクション決定部は、前記エージェントがアクションを行ったときに各観測値が観測される確率によって発生確率が表される情報のエントロピーを最大にするアクションを、前記エージェントが次に行うべきアクションに決定する
請求項9に記載の情報処理装置。
【請求項11】
前記エージェントが、前記エントロピーを最大にするアクション、又は、前記指示情報に従って決定されるアクションを行って、景品が置かれた迷路を移動することにより観測される観測値と、前記エージェントが行うアクションとを用いて、前記拡張HMMにおいて、前記迷路の構造を獲得する学習を行う事前準備処理と、
前記エージェントが、前記迷路において景品が置かれた場所に対応する状態を目標状態とするアクションプランに従って、前記迷路を移動するアクションを行うことにより、前記景品を収集する収集処理と
を制御する請求項10に記載の情報処理装置。
【請求項12】
アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、
前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、
ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部と
を備える情報処理装置の前記アクション決定部が、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定するステップを含む
情報処理方法。
【請求項13】
アクション可能なエージェントがアクションを行ったときに前記エージェントにおいて観測される観測値を用いて、前記エージェントがアクションを行う環境のモデルの学習を行う学習部と、
前記モデルに基づいて、前記エージェントが行うアクションを決定するアクション決定部と、
ユーザからの指示に応じて、前記ユーザからの指示を表す指示情報を出力するユーザ指示出力部と
して、コンピュータを機能させるためのプログラムであり、
前記アクション決定部は、前記ユーザから指示があった場合、前記指示情報に従って、前記エージェントが行うアクションを決定する
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate