説明

データ処理装置、データ処理方法、及び、プログラム

【課題】未知の環境を効率的に学習する。
【解決手段】状態価値算出部32は、エージェントの行動によって、状態が遷移する、行動ごとの状態遷移モデルの各状態について、現在状態等の所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、現在状態を基準とする状態価値を算出し、行動価値算出部33は、状態遷移モデルの各状態、及び、エージェントが可能な各行動について、現在状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値を算出する。目標状態設定部34は、行動価値のばらつきが大きい状態を、エージェントが行う行動によって到達する目標となる目標状態に設定し、行動選択部35は、目標状態に向かう行動を選択する。本発明は、例えば、自律的に行動するエージェントが未知の環境を学習する場合に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法、及び、プログラムに関し、特に、各種の行動を自律的に行うことが可能なエージェント(自律エージェント)が、未知の環境の学習を、効率的に行うことができるようにするデータ処理装置、データ処理方法、及び、プログラムに関する。
【背景技術】
【0002】
例えば、実世界で行動するロボットや、仮想世界で行動する仮想的なキャラクタ等の、行動可能なエージェントが、未知の環境を行動するための学習の方法としては、エージェントが、段階的に行動則を学習する強化学習がある(非特許文献1)。
【0003】
強化学習では、エージェントが、外部(環境等)から観測することができる観測値から認識される状態(現在状態)において、目標となる状態(目標状態)に到達するために、各行動Uを行うことの行動価値が算出(推定)される。
【0004】
目標状態に到達するための行動価値が算出されると、エージェントは、その行動価値に基づく行動制御によって、目標状態に到達する行動を行うことができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Leslie Pack Kaelbling, Michael L. Littman, Andrew W. Moore, "Reinforcement Learning: A Survey", Journal of Articial Intelligence Research 4 (1996) 237-285
【発明の概要】
【発明が解決しようとする課題】
【0006】
エージェントにおいて、行動価値に基づく行動制御を行うことが可能となるのは、エージェントが、目標状態に到達し、強化学習によって、目標状態に到達するための行動価値が算出された後である。
【0007】
したがって、エージェントは、目標状態に到達するまでは、例えば、エージェントが可能な行動の中からランダムに選択された行動を行わざるを得ず、そのため、未知の環境の学習(強化学習)を、効率的に行うことが困難なことがある。
【0008】
すなわち、エージェントが行動する環境(行動環境)に、例えば、エージェントが通りづらい狭い通路が存在する場合には、ランダムに選択された行動を行うエージェントでは、その狭い通路を通り抜けることができず、その結果、狭い通路を通り抜けた先の環境を学習することが困難なことがある。
【0009】
また、例えば、上下に移動可能な行動環境に、重力が設定されている場合には、ランダムに選択された行動を行うエージェントでは、重力の影響により、行動環境内の上側に移動しにくくなり、その結果、行動環境のうちの、上側の環境を学習することが困難なことがある。
【0010】
本発明は、このような状況に鑑みてなされたものであり、未知の環境を効率的に学習することができるようにするものである。
【課題を解決するための手段】
【0011】
本発明の一側面のデータ処理装置、又は、プログラムは、行動可能なエージェントが行う行動によって、状態が遷移する、前記行動ごとの状態遷移モデルに基づき、前記状態遷移モデルの各状態について、前記状態遷移モデルの所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記所定の状態を基準とする状態価値を算出する状態価値算出手段と、前記状態遷移モデル、及び、前記所定の状態を基準とする状態価値に基づき、前記状態遷移モデルの各状態、及び、前記エージェントが可能な各行動について、前記所定の状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値を算出する行動価値算出手段と、前記行動価値に基づき、前記状態遷移モデルの状態のうちの、前記行動価値のばらつきが大きい状態を、エージェントが行う行動によって到達する目標となる目標状態に設定する目標状態設定手段と、前記目標状態に向かうためのエージェントの行動を選択する行動選択手段とを備えるデータ処理装置、又は、データ処理装置として、コンピュータを機能させるためのプログラムである。
【0012】
本発明の一側面のデータ処理方法は、データ処理装置が、行動可能なエージェントが行う行動によって、状態が遷移する、前記行動ごとの状態遷移モデルに基づき、前記状態遷移モデルの各状態について、前記状態遷移モデルの所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記所定の状態を基準とする状態価値を算出し、前記状態遷移モデル、及び、前記所定の状態を基準とする状態価値に基づき、前記状態遷移モデルの各状態、及び、前記エージェントが可能な各行動について、前記所定の状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値を算出し、前記行動価値に基づき、前記状態遷移モデルの状態のうちの、前記行動価値のばらつきが大きい状態を、エージェントが行う行動によって到達する目標となる目標状態に設定し、前記目標状態に向かうためのエージェントの行動を選択するステップを含むデータ処理方法である。
【0013】
以上のような一側面においては、行動可能なエージェントが行う行動によって、状態が遷移する、前記行動ごとの状態遷移モデルに基づき、前記状態遷移モデルの各状態について、前記状態遷移モデルの所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記所定の状態を基準とする状態価値が算出され、前記状態遷移モデル、及び、前記所定の状態を基準とする状態価値に基づき、前記状態遷移モデルの各状態、及び、前記エージェントが可能な各行動について、前記所定の状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値が算出される。そして、前記行動価値に基づき、前記状態遷移モデルの状態のうちの、前記行動価値のばらつきが大きい状態が、エージェントが行う行動によって到達する目標となる目標状態に設定され、前記目標状態に向かうためのエージェントの行動が選択される。
【0014】
なお、データ処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【0015】
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【0016】
本発明の一側面によれば、エージェントが行動する未知の環境を効率的に学習することができる。
【図面の簡単な説明】
【0017】
【図1】本発明を適用したデータ処理装置の一実施の形態の構成例の概要を説明する図である。
【図2】エージェントの構成例を示すブロック図である。
【図3】エージェントが行動する行動環境、及び、エージェントが可能な行動の例を説明する図である。
【図4】行動環境を行動するエージェントの状態遷移モデルの例を説明する図である。
【図5】学習部12の構成例を示すブロック図である。
【図6】学習処理を説明するフローチャートである。
【図7】行動制御部14の構成例を示すブロック図である。
【図8】状態価値算出部32の処理を説明する図である。
【図9】状態としての行動領域を区分する各小領域について求められた行動価値Q(S,U)の分散W(S)の例を示す図である。
【図10】状態としての行動領域を区分する各小領域について求められた存在確率T(S)の例を示す図である。
【図11】目標状態を基準とする状態価値V(S)の例を示す図である。
【図12】エージェントが、目標状態に向かっていく様子を示す図である。
【図13】学習のための行動制御処理を説明するフローチャートである。
【図14】エージェントの、行動環境での行動を説明する図である。
【図15】自律行動のための行動制御処理を説明するフローチャートである。
【図16】エージェントの、行動環境での行動を説明する図である。
【図17】エージェントが、回避状態を回避しながら、行動目標状態に到達する行動を説明する図である。
【図18】物体移動タスクを説明する図である。
【図19】物体移動タスクを行う場合の状態遷移モデルを説明する図である。
【図20】物体移動タスクにおいて、学習部12が行う学習処理を説明するフローチャートである。
【図21】物体移動タスクにおいて、行動制御部14が行う自律行動のための行動制御処理を説明するフローチャートである。
【図22】物体移動タスクにおいて、行動制御部14が行う学習のための行動制御処理を説明するフローチャートである。
【図23】物体移動タスクにおいて、行動制御部14が行う学習のための行動制御処理を説明するフローチャートである。
【図24】行動価値Q(O|U)を求めるのに用いる事後確率を、温度パラメータβを用いて制御することを説明する図である。
【図25】状態遷移モデルPSS'Uの状態として、GMMを採用した場合に行われる、GMMの学習を説明する図である。
【図26】拡張HMMを適用したエージェントが行動を行う行動環境の例を示す図である。
【図27】行動環境において、エージェントが行う行動、及び、エージェントが観測する観測値の例を示す図である。
【図28】拡張HMMが適用されたエージェントにおいて、学習部12が行う学習処理を説明するフローチャートである。
【図29】拡張HMMを説明する図である。
【図30】学習データセットを用いた拡張HMMの学習を説明するフローチャートである。
【図31】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0018】
[本発明を適用したデータ処理装置の一実施の形態]
【0019】
図1は、本発明を適用したデータ処理装置の一実施の形態の構成例の概要を説明する図である。
【0020】
図1において、データ処理装置は、例えば、自律的に行動可能なエージェントであり、アクチュエータを駆動することにより、所定の環境内を行動する。
【0021】
すなわち、エージェントは、センサを有し、センサは、外部、つまり、エージェントが行動する環境(行動環境)から物理量をセンシングし、その物理量に対応する観測値としてのセンサ信号を出力する。
【0022】
さらに、エージェントは、エージェントが行う行動によって、状態が遷移する、行動ごとの状態遷移モデルを有し、センサからの観測値(センサ信号)を用いて、状態遷移モデルを更新する(状態遷移モデルの学習を行う)。
【0023】
また、エージェントは、アクチュエータを有する。エージェントは、状態遷移モデルに基づき、エージェントが行う行動を選択し、その行動に対応する行動信号を、アクチュエータに供給する。
【0024】
アクチュエータは、行動信号に従って駆動し、これにより、エージェントは、行動環境において、行動信号に対応する行動を行う。
【0025】
図2は、図1のデータ処理装置としてのエージェントの構成例を示すブロック図である。
【0026】
エージェントは、センサ11、学習部12、モデル記憶部13、行動制御部14、及び、アクチュエータ15を有する。
【0027】
センサ11は、外部、つまり、行動環境から、物理量を観測し、その物理量に対応する観測値を出力する。センサ11が出力する観測値は、学習部12、及び、行動制御部14に供給される。
【0028】
ここで、センサ11が出力する観測値としては、例えば、行動環境内のエージェントの位置(の座標)を採用することとする。
【0029】
学習部12には、センサ11から観測値が供給される他、行動制御部14から、行動信号が供給される。
【0030】
学習部12は、センサ11からの観測値、及び、行動制御部14からの行動信号を用いて、モデル記憶部13に記憶された、行動ごとの状態遷移モデルを更新する、状態遷移モデルの学習を行う。
【0031】
すなわち、学習部12は、エージェントが外部から観測する観測値に基づき、状態遷移モデルの状態の中で、センサ11からの観測値が観測される状態である現在状態を認識する。
【0032】
さらに、学習部12は、現在状態への状態遷移が生じたエージェントの行動を、行動制御部14からの行動信号から認識し、その行動の状態遷移モデルを、現在状態への状態遷移に基づいて更新する。
【0033】
モデル記憶部13は、エージェントが可能な行動ごとに、状態遷移モデルを記憶している。
【0034】
行動制御部14は、センサ11からの観測値、及び、モデル記憶部13に記憶された状態遷移モデルに基づき、エージェントの行動を制御する。
【0035】
すなわち、行動制御部14は、センサ11からの観測値、及び、モデル記憶部13に記憶された状態遷移モデルに基づき、エージェントが可能な行動の中から、次に行うべき行動(現在状態において行う行動)を選択し、その行動に対応する行動信号を、学習部12、及び、アクチュエータ15に供給する。
【0036】
アクチュエータ15は、例えば、エージェントの足等を駆動するモータや、エージェントを移動させるオブジェクト(プログラム)等であり、行動制御部14からの行動信号に従って駆動する。アクチュエータ15が行動信号に従って駆動することにより、エージェントは、その行動信号に従った行動を行う。
【0037】
[行動環境、及び、エージェントの行動]
【0038】
図3は、エージェントが行動する行動環境、及び、エージェントが可能な行動の例を説明する図である。
【0039】
図3において、行動環境は、左から右方向であるx方向と、下から上方向であるy方向とで規定される所定の空間(平面)であり、下方向(y方向の逆方向)には、重力が働いている。
【0040】
また、行動環境において、y=0の位置は、地面になっており、さらに、y>0の幾つかの位置に、足場が設けられている。
【0041】
エージェントについては、エージェントの位置(座標(x,y))、速度、及び、加速度が定義されている。エージェントの位置、速度、及び、加速度は、連続値である。
【0042】
また、エージェントの行動としては、エージェントの加速度を、所定値αだけ、右方向(x方向)に増加させる行動U1、左方向(x方向の逆方向)に増加させる行動U2、及び、上方向(y方向)に増加させる行動U3が定義されている。したがって、エージェントが可能な行動Uは、図3では、行動U1,U2,U3を表す離散値で表現される。
【0043】
なお、エージェントの加速度を、上方向(y方向)に増加させる行動U3は、エージェントの上方向の速度が0であるときのみ行うことができることとする。
【0044】
また、行動環境では、重力が働くので、エージェント(の下部が)が、地面、又は、足場に接触していない場合には、エージェントの下方向に向かう速さ(速度)は、重力に従い、単位時間あたり、所定値Vだけ増加する。
【0045】
エージェントは、以上のような行動環境内を行動するが、エージェントが観測する観測値は、エージェントの位置のみであり、行動環境に関する知識、すなわち、例えば、足場や、地面、壁の位置、足場等に衝突しているかどうかの情報、移動可能な位置等の情報は、一切与えられない。
【0046】
[状態遷移モデル]
【0047】
図4は、行動環境を行動するエージェントの状態遷移モデルの例を説明する図である。
【0048】
図4では、行動環境を行動するエージェントの状態遷移モデルの状態として、行動環境を小領域に区分することにより得られる、その小領域が採用されている。
【0049】
すなわち、図4では、行動環境を、x方向とy方向とのそれぞれに等間隔にすることにより得られる正方形状の小領域が、状態を表し、状態は、離散値で表現される。
【0050】
エージェントは、観測値としての現在の位置を観測し、その現在の位置から、現在の状態(現在状態)を認識することができる。
【0051】
行動ごとの状態遷移モデルPSS'Uは、エージェントが、状態(第1の状態)Sにおいて、所定の行動Uを行うことにより、状態(第2の状態(状態Sと同一の状態か、異なる状態))S'に遷移することを表す。
【0052】
行動Uについての状態遷移モデルPSS'Uは、例えば、式(1)で表される。
【0053】
【数1】

・・・(1)
【0054】
ここで、式(1)において、P(S'|S,U)は、エージェントが、状態Sにおいて、行動Uを行ったときに、状態S'に遷移する遷移確率(確率モデル)を表す。
【0055】
なお、行動Uについての状態遷移モデルPSS'Uとしては、エージェントが、状態Sにおいて、行動Uを行ったときに、状態S'に遷移した頻度を採用することができる。
【0056】
状態Sにおいて、行動Uが行われることによって、状態S'に遷移した頻度は、状態Sにおいて、行動Uが行われることによって、各状態に遷移した頻度の総和で正規化することにより、状態Sにおいて、行動Uが行われることによって、状態S'に遷移する遷移確率に確率化することができる。
【0057】
したがって、状態Sにおいて、行動Uが行われることによって、状態S'に遷移した頻度と、状態Sにおいて、行動Uが行われることによって、状態S'に遷移する遷移確率とは、等価とみなすことができる。
【0058】
なお、ここでは、状態遷移モデルPSS'Uの記憶(学習)は、頻度で行うこととし、状態遷移モデルPSS'Uを用いた処理では、必要に応じて、頻度を、遷移確率に確率化し、その遷移確率を用いることとする。
【0059】
また、以下では、遷移確率を表す状態遷移モデルPSS'Uを、遷移確率PSS'Uとも記載する。
【0060】
[学習部12の構成例]
【0061】
図5は、図2の学習部12の構成例を示すブロック図である。
【0062】
図5において、学習部21は、状態認識部21、及び、モデル更新部22を有する。
【0063】
状態認識部21には、センサ11から、観測値としての、エージェントの現在の位置(の座標)が供給される。
【0064】
状態認識部21は、センサ11からの観測値としての現在の位置の座標に基づき、その座標が観測される状態である現在状態(ここでは、図4で説明した行動領域を区分する小領域の中で、エージェントが位置する小領域)を認識し、モデル更新部22に供給する。
【0065】
モデル更新部22は、行動制御部14からの行動信号に基づいて、状態認識部21からの(最新の)現在状態への状態遷移が生じたエージェントの行動Uを認識する。
【0066】
そして、モデル更新部22は、モデル記憶部13に記憶された行動ごとの状態遷移モデルのうちの、状態認識部21からの(最新の)現在状態S'への状態遷移が生じたエージェントの行動Uについての状態遷移モデルPSS'Uを、現在状態S'への状態遷移に基づいて更新する。
【0067】
すなわち、状態認識部21からモデル更新部22に供給された最新の現在状態S'の直前(1時刻前)の現在状態(以下、直前状態ともいう)が、状態Sであるとする。
【0068】
モデル更新部22は、状態認識部21から供給される現在状態から、直前状態S、及び、現在状態S'を認識し、さらに、行動制御部14からの行動信号から、直前状態Sから現在状態S'への状態遷移を生じさせるのに行われたエージェントの行動Uを認識する。
【0069】
そして、モデル更新部22は、直前状態Sにおいて、行動Uが行われることによって、現在状態S'への状態遷移が行われた場合、モデル記憶部13に記憶された状態遷移モデルPSS'Uが表す頻度を1だけインクリメントすることにより、状態遷移モデルPSS'Uを更新する。
【0070】
[学習処理]
【0071】
図6は、図5の学習部12が行う、状態遷移モデルの学習の処理(学習処理)を説明するフローチャートである。
【0072】
なお、図6の学習処理は、エージェントが行動を行っている間、常時行われる。
【0073】
ステップS11において、モデル更新部22は、行動制御部14が行動信号Uを出力するのを待って、その行動信号Uを取得(受信)し、その行動信号Uにより行われたエージェントの行動Uを認識して、処理は、ステップS12に進む。
【0074】
ここで、行動信号Uは、エージェントに、行動Uを行わせる行動信号である。
【0075】
ステップS12では、状態認識部21は、行動制御部14が直前に出力した行動信号Uに対応する行動Uをエージェントが行った後にセンサ11で観測された観測値(センサ信号)を取得し、処理は、ステップS13に進む。
【0076】
ステップS13では、状態認識部21は、センサ11からの観測値から、現在状態S'を認識して、モデル更新部22に供給し、処理は、ステップS14に進む。
【0077】
ステップS14では、モデル更新部22は、モデル記憶部13に記憶された状態遷移モデルのうちの、状態認識部21から1時刻前に供給された直前状態Sにおいて、1時刻前の行動Uが行われることにより、状態認識部21から供給された現在状態S'に状態遷移したことを表す状態遷移モデルPSS'Uを更新する。
【0078】
すなわち、モデル更新部22は、状態遷移モデルPSS'Uが表す頻度を1だけインクリメントすることにより、状態遷移モデルPSS'Uを更新する。
【0079】
状態遷移モデルPSS'Uの更新後、処理は、ステップS14からステップS11に戻り、行動制御部14が行動信号を出力するのを待って、以下、同様の処理が繰り返される。
【0080】
[行動制御部14の構成例]
【0081】
図7は、図2の行動制御部14の構成例を示すブロック図である。
【0082】
図7において、行動制御部14は、状態認識部31、状態価値算出部32、行動価値算出部33、目標状態設定部34、及び、行動選択部35を有する。
【0083】
状態認識部31には、センサ11から、観測値としての、エージェントの現在の位置(の座標)が供給される。
【0084】
状態認識部31は、図5の状態認識部21と同様に、センサ11からの観測値としての現在の位置の座標に基づき、その座標が観測される状態である現在状態(ここでは、図4で説明した行動領域を区分する小領域の中で、エージェントが位置する小領域)を認識し、状態価値算出部32、及び、行動選択部35に供給する。
【0085】
なお、状態認識部31と、図5の状態認識部21とは、1つの状態認識部で兼用することができる。
【0086】
状態価値算出部32は、モデル記憶部13に記憶された状態遷移モデルに基づき、状態遷移モデルの各状態、すなわち、ここでは、図4で説明した行動領域を区分する各小領域について、状態遷移モデルの所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、所定の状態を基準とする状態価値を算出し、行動価値算出部33に供給する。
【0087】
具体的には、状態価値算出部32は、状態遷移モデルの各状態Sについて、所定の状態としての、例えば、状態認識部31からの現在状態に近い状態S'への遷移確率PSS'Uが大きい状態Sほど、値が大きくなる、現在状態を基準とする状態価値V(S)を算出し、行動価値算出部33に供給する。
【0088】
行動価値算出部33は、モデル記憶部13に記憶された状態遷移モデル、及び、状態価値算出部32からの現在状態を基準とする状態価値V(S)に基づき、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、現在状態を基準とする状態価値V(S')が大きい状態S'への遷移確率が大きい状態S及び行動Uほど、値が大きくなる行動価値Q(S,U)を算出し、目標状態設定部34に供給する。
【0089】
目標状態設定部34は、行動価値算出部33からの行動価値Q(S,U)に基づき、状態遷移モデルの状態のうちの、行動価値Q(S,U)のばらつきが大きい状態を、エージェントが行う行動によって到達する目標となる目標状態に設定し、その目標状態を、行動選択部35に供給する。
【0090】
行動選択部35は、モデル記憶部13に記憶された状態遷移モデル、及び、目標状態設定部34からの目標状態に基づき、エージェントが可能な行動の中から、目標状態に向かうためのエージェントの行動Uを選択し、その行動Uに対応する行動信号U(エージェントに行動Uを行わせる行動信号U)を出力する。
【0091】
行動選択部35が出力する行動信号Uは、学習部12及びアクチュエータ15(図2)に供給される。
【0092】
[状態価値算出部32の処理]
【0093】
図8は、図7の状態価値算出部32の処理を説明する図である。
【0094】
状態価値算出部32は、状態遷移モデルの各状態Sについて、状態認識部31からの現在状態に近い状態S'への遷移確率PSS'Uが大きい状態Sほど、値が大きくなる、現在状態を基準とする状態価値V(S)を算出する。
【0095】
すなわち、状態価値算出部32は、現在状態Scurrentの状態価値V(Scurrent)を、1(1.0)として、その状態価値V(Scurrent)を減衰伝播する、例えば、式(2)の漸化式を、あらかじめ決定された(十分な)回数だけ繰り返し計算することにより、状態遷移モデルの各状態Sについて、現在状態を基準とする状態価値V(S)を算出する。
【0096】
【数2】

・・・(2)
【0097】
ここで、式(2)において、ΣS'は、すべての状態S'についてのサメ−ションをとることを表し、maxは、各行動Uについて求められる、maxの直後の値のうちの最大値を表す。
【0098】
さらに、式(2)において、γは、現在状態Scurrentの状態価値V(Scurrent)を減衰伝播するための、0<γ<1の範囲の実数の減衰定数であり、あらかじめ決定される。
【0099】
また、式(2)において、RS'は、(状態遷移の遷移先の)状態S'に対して設定される定数を表す。状態S'が現在状態である場合の定数RS'を、Rcurrentと、状態S'が現在状態以外の状態である場合の定数RS'を、Rotherと、それぞれ表すこととすると、定数Rcurrentは1であり、定数Rotherは0である。
【0100】
式(2)の漸化式によれば、遷移確率PSS'Uが大きい場合、遷移先の状態価値V(S')が大きい場合、及び、遷移先の状態S'が現在状態である場合(RS'=Rcurrent)に、遷移元の状態Sの状態価値V(S)は大きくなる。すなわち、現在状態を基準とする状態価値V(S)は、現在状態に近い状態S'への遷移確率PSS'Uが大きい状態Sほど、値が大きくなる。
【0101】
ここで、図8は、現在状態を基準とする状態価値V(S)の例を示している。
【0102】
状態を、図4で説明したように、行動領域を区分する小領域とする場合、現在状態としての小領域に近い小領域ほど、現在状態としての小領域に移動しやすい(遷移確率PSS'Uが大きい)ので、図8では、現在状態を基準とする状態価値V(S)は、現在状態に近い状態ほど、値が大きくなる傾向がある。
【0103】
なお、図8では、状態価値算出部32において、現在状態を基準とする状態価値V(S)を算出することしたが、状態価値算出部32では、現在状態以外の任意の状態(例えば、ランダムに選択した状態等)を基準とする状態価値V(S)を算出することができる。
【0104】
また、式(2)の漸化式は(後述する漸化式についても同様)、特に断らない限り、V(S)の初期値が0であるとして計算される。
【0105】
[行動価値算出部33、及び、目標状態設定部34の処理]
【0106】
図9と図10は、図7の行動価値算出部33、及び、目標状態設定部34の処理を説明する図である。
【0107】
行動価値算出部33は、モデル記憶部13に記憶された状態遷移モデル、及び、状態価値算出部32からの現在状態を基準とする状態価値V(S)に基づき、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、現在状態を基準とする状態価値V(S')が大きい状態S'への遷移確率が大きい状態S及び行動Uほど、値が大きくなる行動価値Q(S,U)を算出する。
【0108】
すなわち、行動価値算出部33は、遷移確率(状態遷移モデル)PSS'U、及び、現在状態を基準とする状態価値V(S)を用いて、例えば、式(3)を計算することにより、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、行動価値Q(S,U)を算出する。
【0109】
【数3】

・・・(3)
【0110】
式(3)によれば、行動価値Q(S,U)は、現在状態を基準とする状態価値V(S')が大きい状態S'への遷移確率PSS'Uが大きい状態S及び行動Uほど、値が大きくなる
【0111】
行動価値算出部33は、各状態S、及び、各行動Uについての行動価値Q(S,U)を、目標状態設定部34に供給する。
【0112】
目標状態設定部34は、行動価値算出部33からの行動価値Q(S,U)に基づき、状態遷移モデルの状態のうちの、行動価値Q(S,U)のばらつきが大きい状態を、目標状態に設定する。
【0113】
すなわち、目標状態設定部34は、行動価値算出部33からの行動価値Q(S,U)に基づき、各状態Sについて、行動価値Q(S,U)のばらつきとしての、例えば、分散W(S)を、式(4)及び式(5)に従って求める。
【0114】
【数4】

・・・(4)
【0115】
【数5】

・・・(5)
【0116】
ここで、Qav(S,U)は、状態Sについての行動価値Q(S,U)を確率化した確率(確率変数)を表し、式(4)のΣは、行動Uについてのサメ−ションを表す。
【0117】
また、式(5)において、E[]は、かっこ[]内の値(確率変数)の期待値を表す。
【0118】
状態Sについての分散W(S)が大きい場合、その状態Sにおいて行う行動Uの行動価値Q(S,U)のばらつきが大きいので、エージェントが、状態Sにおいて行ったことがない行動がある可能性が高く、ひいては、エージェントが、その状態Sに到達した経験(その状態Sが現在状態になったこと)も少ない可能性が高い。
【0119】
そして、エージェントが到達した経験が少ない状態Sについては、状態遷移モデルの学習(更新)が不十分である可能性が高い。
【0120】
さらに、エージェントが到達した経験が少ない状態Sのみから遷移が可能な状態については、状態遷移モデルの学習が不十分である可能性の他、エージェントが到達した経験がない状態である可能性もある。
【0121】
一方、エージェントでは、エージェントが到達した経験が少ない状態Sや、エージェントが到達した経験がない状態に到達することにより、そのような状態について、状態遷移モデルの学習(更新)が行われるので(図6)、未知の環境である行動環境を効率的に学習することができる。
【0122】
そこで、目標状態設定部34は、各状態Sについて、行動価値Q(S,U)のばらつきとしての分散W(S)を求めると、その分散W(S)が大きい状態、すなわち、例えば、分散W(S)が所定の閾値以上の状態を、目標状態の候補に選択する。
【0123】
図9は、状態としての行動領域を区分する各小領域について求められた行動価値Q(S,U)の分散W(S)の例を示している。
【0124】
図9では、所定の閾値として、例えば、1を採用して、目標状態の候補が選択されている。
【0125】
目標状態設定部34は、目標状態の候補の選択後、その目標状態の候補の中から、目標状態を設定する。
【0126】
目標状態の候補の中からの、目標状態の設定の方法としては、例えば、目標状態の候補のうちの1つの候補をランダムに選択して、目標状態に設定する方法や、分散W(S)が最大の候補を、目標状態に設定する方法がある。
【0127】
但し、目標状態の候補のうちの1つの候補をランダムに選択して、目標状態に設定する方法や、分散W(S)が最大の候補を、目標状態に設定する方法では、現在状態から、目標状態に到達することが困難なことがある。
【0128】
そこで、目標状態設定部34は、目標状態の候補の中で、所定の回数以内の状態遷移によって、現在状態から到達することができる候補を、目標状態に設定する。
【0129】
すなわち、目標状態設定部34は、モデル記憶部13に記憶された状態遷移モデルPSS'Uに基づき、各状態Sについて、所定回数以内の状態遷移によって、現在状態にいる(到達する)存在確率T(S)を、例えば、式(6)の漸化式を、所定の回数だけ繰り返し計算することにより求める。
【0130】
【数6】

・・・(6)
【0131】
ここで、式(6)において、現在状態の存在確率T(S')の初期値を、Tcurrentと、現在状態以外の状態の存在確率T(S')の初期値を、Totherと、それぞれ表すこととすると、初期値Tcurrentは1であり、初期値Totherは0である。
【0132】
図10は、状態としての行動領域を区分する各小領域について求められた存在確率T(S)の例を示している。
【0133】
存在確率T(S)が0より大の状態は、現在状態からの所定の回数以内の状態遷移によって到達することが可能な状態(以下、到達可能状態ともいう)であり、目標状態設定部34は、目標状態の候補の中の到達可能状態の1つを、例えば、ランダムに選択し、目標状態に設定する。
【0134】
以上のように、目標状態設定部34において、各状態Sについての、行動価値Q(S,U)の分散W(S)が大きい状態が、目標状態に設定されるので、エージェントが、そのような目標状態に到達するように、行動を行うことにより、エージェントは、エージェントが到達した経験が少ない状態や、エージェントが到達した経験がない状態に到達しやすくなり、そのような状態について、状態遷移モデルの学習(更新)が行われることで、未知の環境である行動環境を効率的に学習することが可能となる。
【0135】
ここで、以上のように、目標状態設定部34において、行動価値Q(S,U)の分散W(S)に基づいて設定される目標状態は、エージェントが、到達した経験が少ない状態や、到達した経験がない状態に到達しやすくすることにより(いわば、エージェントが未知の経験を積みやすくすることにより)、未知の環境である行動環境を効率的に学習するために設定される状態であり、以下、学習目標状態ともいう。
【0136】
[行動選択部35の処理]
【0137】
図11と図12は、図7の行動選択部35の処理を説明する図である。
【0138】
行動選択部35は、モデル記憶部13に記憶された状態遷移モデル、及び、目標状態設定部34からの目標状態に基づき、エージェントが可能な行動の中から、目標状態に向かうためのエージェントの行動Uを選択し、その行動Uに対応する行動信号U(エージェントに行動Uを行わせる行動信号U)を出力する。
【0139】
すなわち、行動選択部35は、状態遷移モデルの各状態Sについて、目標設定部34からの目標状態に近い状態S'への遷移確率PSS'Uが大きい状態Sほど、値が大きくなる、目標状態を基準とする状態価値V(S)を算出する。
【0140】
具体的には、行動選択部35は、状態価値算出部32(図7)と同様に、目標状態Sgoalの状態価値V(Sgoal)を、1(1.0)として、その状態価値V(Sgoal)を減衰伝播する、例えば、上述の式(2)の漸化式を、あらかじめ決定された(十分な)回数だけ繰り返し計算することにより、状態遷移モデルの各状態Sについて、目標状態を基準とする状態価値V(S)を算出する。
【0141】
なお、式(2)に従って、目標状態を基準とする状態価値V(S)を算出する場合、式(2)の定数RS'としては、目標状態については、1が、目標状態以外の状態については、0が、それぞれ用いられる。
【0142】
すなわち、式(2)において、状態S'が目標状態である場合の定数RS'を、Rgoalと、状態S'が目標状態以外の状態である場合の定数RS'を、Rotherと、それぞれ表すこととすると、定数Rgoalは1であり、定数Rotherは0である。
【0143】
式(2)の漸化式によれば、遷移確率PSS'Uが大きい場合、遷移先の状態価値V(S')が大きい場合、及び、遷移先の状態S'が目標状態である場合(RS'=Rgoal)に、遷移元の状態Sの状態価値V(S)は大きくなる。すなわち、目標状態を基準とする状態価値V(S)は、目標状態に近い状態S'への遷移確率PSS'Uが大きい状態Sほど、値が大きくなる。
【0144】
ここで、図11は、目標状態を基準とする状態価値V(S)の例を示している。
【0145】
行動選択部35は、目標状態を基準とする状態価値V(S)の算出後、その状態価値V(S)、及び、モデル記憶部13に記憶された状態遷移モデルに基づき、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、目標状態を基準とする状態価値V(S)が大きい状態S'への遷移確率PSS'Uが大きい状態S及び行動Uほど、値が大きくなる行動価値Q(S,U)を算出する。
【0146】
すなわち、行動選択部35は、遷移確率(状態遷移モデル)PSS'U、及び、目標状態を基準とする状態価値V(S)を用いて、例えば、上述の式(3)を計算することにより、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、行動価値Q(S,U)を算出する。
【0147】
式(3)によれば、行動価値Q(S,U)は、目標状態を基準とする状態価値V(S')が大きい状態S'への遷移確率PSS'Uが大きい状態S及び行動Uほど、値が大きくなる。
【0148】
行動選択部35は、各状態S、及び、各行動Uについての行動価値Q(S,U)を求めると、例えば、式(7)に従い、状態認識部31からの現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動Uを、現在状態Sにおいて行う行動π(S,U)として選択する。
【0149】
【数7】

・・・(7)
【0150】
ここで、式(7)において、argmaxは、現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動U(最大の行動価値Q(S,U)の行動U)を表す。
【0151】
行動選択部35は、状態認識部31から現在状態Sが供給されるごとに、その現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動Uを、現在状態Sにおいて行う行動π(S,U)として選択することを繰り返し、その結果、エージェントは、目標状態に向かう行動を行う。
【0152】
図12は、エージェントが、現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動U=π(S,U)を繰り返すことで、目標状態に向かっていく様子を示している。
【0153】
なお、目標状態設定部34では、目標状態として、上述したような学習目標状態を設定することができる他、例えば、ユーザの操作等に基づいて外部から与えられる状態を設定することができる。
【0154】
ここで、外部から目標状態として与えられる状態は、エージェントが、その状態に到達するまで、エージェントを自律的に行動させるために与えられる状態であり、以下、学習目標状態と区別するために、行動目標状態ともいう。
【0155】
目標状態設定部34から行動選択部35に供給される目標状態が、行動目標状態である場合、行動選択部35では、上述したように、現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動Uを、現在状態Sにおいて行う行動π(S,U)として選択することができる。
【0156】
一方、目標状態設定部34から行動選択部35に供給される目標状態が、学習目標状態である場合、行動選択部35では、現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動Uを、現在状態Sにおいて行う行動π(S,U)として選択する他、現在状態Sについての行動価値Q(S,U)に基づき、例えば、ε-greedy法により、現在状態Sにおいて行う行動π(S,U)を選択することができる。
【0157】
ε-greedy法では、式(8)に従い、ある確率1-εで、現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動Uが、現在状態Sにおいて行う行動π(S,U)として選択され、確率εで、エージェントが可能な行動の1つが、ランダムに、現在状態Sにおいて行う行動π(S,U)として選択される。
【0158】
【数8】

・・・(8)
【0159】
なお、目標状態設定部34から行動選択部35に供給される目標状態が、学習目標状態である場合、行動選択部35では、その他、例えば、現在状態Sについての行動価値Q(S,U)に基づき、softmax法により、現在状態Sにおいて行う行動π(S,U)を選択することができる。
【0160】
softmax法では、現在状態Sについての、各行動Uの行動価値Q(S,U)に対応する確率で、各行動Uが、ランダムに、現在状態Sにおいて行う行動π(S,U)として選択される。
【0161】
[行動制御処理]
【0162】
図13は、図7の行動制御部14が行う、行動環境を学習するためのエージェントの行動制御の処理(学習のための行動制御処理)を説明するフローチャートである。
【0163】
学習のための行動制御処理では、モデル記憶部13に記憶される状態遷移モデルの学習(更新)を進行させるため、すなわち、未知の行動環境の全体の学習を行うため、エージェントが到達した経験が少ない可能性が高い状態が、学習目標状態に設定され、その学習目標状態に向かうように、エージェントの行動が制御される。
【0164】
なお、エージェントは、図13の学習のための行動制御処理を初めて行う前に、例えば、ランダムに、又は、あらかじめ決められたルールに従って行動する生得行動を行い、その生得行動の間に行われた学習処理(図6)によって、行動環境について、ある程度の学習を行っていることとする。
【0165】
したがって、エージェントは、学習のための行動制御処理を初めて行う前に、生得行動によって到達したことがある状態の範囲で、状態遷移モデル(0でない頻度を表す状態遷移モデル)を獲得している。
【0166】
ステップS21において、状態認識部31は、行動選択部35が直前に出力した行動信号に対応する行動をエージェントが行った後に観測される観測値(センサ信号)が、センサ11から出力されるのを待って、その観測値を取得する。
【0167】
さらに、状態認識部31は、センサ11からの観測値から、現在状態を認識し、状態価値算出部32、及び、行動選択部35に供給して、処理は、ステップS21からステップS22に進む。
【0168】
ステップS22では、状態価値算出部32は、状態遷移モデルPSS'Uを用いて、状態遷移モデルの各状態Sについて、上述の式(2)の漸化式に従って、現在状態を基準とする状態価値V(S)を算出し、行動価値算出部33に供給して、処理は、ステップS23に進む。
【0169】
ステップS23では、行動価値算出部33は、状態価値算出部32からの現在状態を基準とする状態価値V(S)に基づき、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、上述の式(3)に従って、行動価値Q(S,U)を算出し、目標状態設定部34に供給して、処理は、ステップS24に進む。
【0170】
ステップS24では、目標状態設定部34は、行動価値算出部33からの行動価値Q(S,U)に基づき、上述の式(4)及び式(5)に従って、各状態Sについて、行動価値Q(S,U)の分散W(S)を求め、処理は、ステップS25に進む。
【0171】
ステップS25では、目標状態設定部34は、行動価値Q(S,U)の分散W(S)に基づいて、目標状態の候補(候補状態)を求め、すなわち、行動価値Q(S,U)の分散W(S)が所定の閾値以上の状態を、目標状態の候補に選択し、処理は、ステップS26に進む。
【0172】
ステップS26では、目標状態設定部34は、モデル記憶部13に記憶された状態遷移モデルPSS'Uに基づき、各状態Sについて、所定回数以内の状態遷移によって、現在状態にいる(到達する)存在確率T(S)を、上述の式(6)の漸化式に従って求め、処理は、ステップS27に進む。
【0173】
ステップS27では、目標状態設定部34は、目標状態の候補の中から、存在確率T(S)が0より大(正の値)の状態(到達可能状態)の1つを、例えば、ランダムに選択し、学習目標状態に設定する。
【0174】
そして、目標状態設定部34は、学習目標状態を、行動選択部35に供給し、処理は、ステップS27からステップS28に進む。
【0175】
ステップS28では、行動選択部35は、状態遷移モデルの各状態Sについて、目標設定部34からの学習目標状態を基準とする状態価値V(S)を、上述の式(2)の漸化式に従って算出し、処理は、ステップS29に進む。
【0176】
ステップS29では、行動選択部35は、学習目標状態を基準とする状態価値V(S)を用い、上述の式(3)に従って、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、行動価値Q(S,U)を算出し、処理は、ステップS30に進む。
【0177】
ステップS30では、行動選択部35は、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについての行動価値Q(S,U)のうちの、状態認識部31からの現在状態Sについての行動価値Q(S,U)に基づいて、例えば、ε-greedy法やsoftmax法により、現在状態Sにおいて行う行動Uを選択し、対応する行動信号Uを出力する。
【0178】
行動選択部35が出力する行動信号Uは、学習部12、及び、アクチュエータ15に供給される。
【0179】
学習部12では、行動選択部35からの行動信号Uを用いて、上述した学習処理(図6)が行われる。
【0180】
また、アクチュエータ15は、行動選択部35からの行動信号Uに従って駆動し、これにより、エージェントは、その行動信号Uに従った行動Uを行う。
【0181】
エージェントが、行動信号Uに従った行動Uを行うと、処理は、ステップS30からステップS31に進み、状態認識部31は、エージェントの行動Uの後に観測される観測値が、センサ11から出力されるのを待って、その観測値を取得する。
【0182】
さらに、状態認識部31は、センサ11からの観測値から、現在状態を認識し、状態価値算出部32、及び、行動選択部35に供給して、処理は、ステップS31からステップS32に進む。
【0183】
ステップS32では、行動選択部35は、状態認識部31からの現在状態が、目標状態設定部34からの(最新の)学習目標状態に一致するかどうか、及び、目標状態設定部34から(最新の)学習目標状態が供給されてから、所定の時間t1が経過したかどうかを判定する。
【0184】
ステップS32において、状態認識部31からの現在状態が、目標状態設定部34からの学習目標状態に一致しておらず、さらに、目標状態設定部34から学習目標状態が供給されてから、所定の時間t1が経過していない判定された場合、処理は、ステップS30に戻り、以下、同様の処理が繰り返される。
【0185】
また、ステップS32において、状態認識部31からの現在状態が、目標状態設定部34からの学習目標状態に一致したと判定された場合、すなわち、エージェントが学習目標状態に到達した場合、又は、目標状態設定部34から学習目標状態が供給されてから、所定の時間t1が経過した判定された場合、すなわち、エージェントが、所定の時間t1の間に、学習目標状態に到達することができなかった場合、処理は、ステップS33に進み、行動選択部35は、学習のための行動制御処理を終了する行動制御の終了条件が満たされるかどうかを判定する。
【0186】
ここで、学習のための行動制御処理を終了する行動制御の終了条件としては、例えば、ユーザが、学習のための行動制御処理を終了するように、指令を行ったことや、学習のための行動制御処理が開始されてから、所定の時間t1よりも十分に長い所定の時間t2が経過したこと等がある。
【0187】
ステップS33において、行動制御の終了条件が満たされないと判定された場合、処理は、ステップS22に戻り、以下、同様の処理が繰り返される。
【0188】
また、ステップS33において、行動制御の終了条件が満たされると判定された場合、行動制御部14は、学習のための行動制御処理を終了する。
【0189】
以上のように、エージェントでは、状態遷移モデルPSS'Uを用いて、現在状態等の所定の状態を基準とする状態価値V(S)を算出し、その状態価値V(S)に基づき、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、行動価値Q(S,U)を算出し、その行動価値(S,U)のばらつきとしての分散W(S)が大きい状態Sを、学習目標状態に設定し、その学習目標状態に向かう行動を行う。
【0190】
上述したように、行動価値Q(S,U)の分散W(S)が大きい状態Sは、エージェントが到達した経験が少ない状態である可能性が高く、そのような状態Sについては、状態遷移モデルの学習(更新)が不十分である可能性が高い。
【0191】
さらに、エージェントが到達した経験が少ない状態Sのみから遷移が可能な状態については、状態遷移モデルの学習が不十分である可能性の他、エージェントが到達した経験がない状態である可能性もある。
【0192】
したがって、エージェントにおいて、行動価値(S,U)の分散W(S)が大きい状態Sを、学習目標状態に設定し、その学習目標状態に向かう行動を行うことにより、エージェントは、エージェントが到達した経験が少ない状態や、エージェントが到達した経験がない状態に到達し(易くなり)、その結果、そのような状態について、状態遷移モデルの学習(更新)が行われるので、行動環境の全体を、万遍なく、効率的に学習することができる。
【0193】
すなわち、エージェントは、行動環境を、万遍なく移動する行動を行うこととなり、その結果、行動環境の全体を、効率的に学習することができる。
【0194】
図14は、図13の学習のための行動制御処理によって行われる、図2のエージェントの、行動環境での行動を説明する図である。
【0195】
従来の行動制御では、行動価値に基づく行動制御を行うことが可能となるのは、エージェントが、目標状態に到達し、強化学習によって、目標状態に到達するための行動価値が算出された後であるため、エージェントは、目標状態に到達するまでは、例えば、エージェントが可能な行動の中からランダムに選択された行動を行わざるを得ない。
【0196】
そして、ランダムに選択された行動を行うエージェントでは、未知の行動環境の複雑性等により、目標状態に到達すること、つまり、目標状態に到達する学習を行うことが困難になることがある。
【0197】
すなわち、ランダムに選択された行動を行うエージェントでは、例えば、行動環境に、エージェントが通りづらい狭い通路が存在する場合に、その狭い通路を通り抜けることができず、狭い通路を通り抜けた先の環境を学習することができないことがある。
【0198】
また、ランダムに選択された行動を行うエージェントでは、例えば、上下に移動可能な行動環境に、重力が設定されている場合に、重力の影響により、行動環境内の上側に移動しにくくなり、行動環境のうちの、上側の環境を学習することができないことがある。
【0199】
さらに、例えば、ランダムに選択された行動を行うエージェントが行う行動に偏りがある場合、行動環境の学習にも偏りが生じることがある。
【0200】
一方、学習のための行動制御処理(図13)による行動制御(新行動制御)によれば、行動価値(S,U)の分散W(S)が大きい状態Sが、学習目標状態に設定されるので、エージェントは、エージェントが到達した経験が少ない状態や、エージェントが到達した経験がない状態に到達し(易くなり)、その結果、そのような状態について、状態遷移モデルの学習(更新)が行われ、行動環境の全体を、万遍なく、効率的に学習することが可能となる。
【0201】
図15は、図7の行動制御部14が行う、行動環境を自律的に行動するためのエージェントの行動制御の処理(自律行動のための行動制御処理)を説明するフローチャートである。
【0202】
自律行動のための行動制御処理では、例えば、ユーザの操作等に基づいて外部から与えられる状態が、行動目標状態に設定され、その行動目標状態に向かうように、エージェントの行動が制御される。
【0203】
ステップS41において、目標状態設定部34は、例えば、ユーザの操作等に基づいて外部から与えられる状態を、行動目標状態に設定し、行動選択部35に供給する。
【0204】
ここで、行動目標状態としては、エージェントが到達したことがある状態が設定される。学習のための行動制御処理(図13)によって、行動環境の全体の学習が終了している場合、すなわち、エージェントが、行動環境のすべての状態に到達したことがある場合、行動目標状態としては、行動環境の任意の状態を設定することができる。
【0205】
ステップS41では、さらに、状態認識部31が、センサ11からの観測値から、現在状態を認識し、行動選択部35に供給して、処理は、ステップS42に進む。
【0206】
ステップS42では、行動選択部35は、状態遷移モデルPSS'Uを用いて、状態遷移モデルの各状態Sについて、目標設定部34からの行動目標状態を基準とする状態価値V(S)を、上述の式(2)の漸化式に従って算出し、処理は、ステップS43に進む。
【0207】
ステップS43では、行動選択部35は、行動目標状態を基準とする状態価値V(S)を用い、上述の式(3)に従って、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、行動価値Q(S,U)を算出し、処理は、ステップS44に進む。
【0208】
ステップS44では、行動選択部35は、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについての行動価値Q(S,U)のうちの、状態認識部31からの現在状態Sについての行動価値Q(S,U)に基づいて、その現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動Uを、現在状態Sにおいて行う行動π(S,U)に選択し、対応する行動信号Uを出力する。
【0209】
行動選択部35が出力する行動信号Uは、学習部12、及び、アクチュエータ15に供給される。
【0210】
アクチュエータ15は、行動選択部35からの行動信号Uに従って駆動し、これにより、エージェントは、その行動信号Uに従った行動U(=π(S,U))を行う。
【0211】
なお、学習部12では、自律行動のための行動制御処理が行われている間においても、学習のための行動制御処理(図13)の場合と同様に、行動選択部35からの行動信号Uを用いて、上述した学習処理(図6)を行うことができる。
【0212】
エージェントが、行動信号Uに従った行動Uを行うと、処理は、ステップS44からステップS45に進み、状態認識部31は、エージェントの行動Uの後に観測される観測値が、センサ11から出力されるのを待って、その観測値を取得する。
【0213】
さらに、状態認識部31は、センサ11からの観測値から、現在状態を認識し、行動選択部35に供給して、処理は、ステップS45からステップS46に進む。
【0214】
ステップS46では、行動選択部35は、目標状態設定部34が新たな行動目標状態を設定したかどうかを判定する。
【0215】
ステップS46において、目標状態設定部34が新たな行動目標状態を設定したと判定された場合、すなわち、例えば、ユーザが(行動)目標状態を変更するように、操作を行い、目標状態設定部34が、その操作に基づいて、新たな行動目標状態に設定し、行動選択部35に供給した場合、処理は、ステップS42に戻り、行動選択部35は、新たな行動目標状態を基準とする状態価値V(S)を算出し、以下、同様の処理が繰り返される。
【0216】
また、ステップS46において、目標状態設定部34が新たな行動目標状態を設定していないと判定された場合、処理は、ステップS47に進み、行動選択部35は、自律行動のための行動制御処理を終了する行動制御の終了条件が満たされるかどうかを判定する。
【0217】
ここで、自律行動のための行動制御処理を終了する行動制御の終了条件としては、例えば、ユーザが、自律行動のための行動制御処理を終了するように、指令を行ったことや、現在状態が行動目標状態に一致したこと等がある。
【0218】
ステップS47において、行動制御の終了条件が満たされないと判定された場合、処理は、ステップS44に戻り、以下、同様の処理が繰り返される。
【0219】
また、ステップS47において、行動制御の終了条件が満たされると判定された場合、行動制御部14は、自律行動のための行動制御処理を終了する。
【0220】
図16は、図15の自律行動のための行動制御処理によって行われる、図2のエージェントの、行動環境での行動を説明する図である。
【0221】
従来の行動制御では、行動価値に基づく行動制御を行うことが可能となるのは、エージェントが、目標状態に到達し、強化学習によって、目標状態に到達するための行動価値が算出された後であるため、エージェントは、目標状態が変更されると、その変更後の目標状態に到達するための行動価値を算出するのに、強化学習をやり直す必要があることがある。
【0222】
一方、自律行動のための行動制御処理による行動制御(新行動制御)では、(常時学習が行われている)状態遷移モデルPSS'Uを用いて、行動目標状態を基準とする状態価値V(S)、ひいては、行動目標状態に至る行動価値Q(S,U)が算出されるので、行動目標状態が新たな行動目標状態に変更されても、その新たな行動目標状態を基準とする状態価値V(S)、ひいては、新たな行動目標状態に至る行動価値Q(S,U)を容易に算出し、エージェントに、その新たな行動目標状態に向かう行動を行わせることができる。
【0223】
なお、行動環境に、エージェントが避けるべき状態(以下、回避状態ともいう)が存在し、その回避状態がエージェントに与えられる場合には、自律行動のための行動制御処理において、行動選択部35では、回避状態を回避しながら、行動目標状態に到達する行動を選択することができる。
【0224】
図17は、エージェントが、回避状態を回避しながら、行動目標状態に到達する行動を説明する図である。
【0225】
行動選択部35は、回避状態に到達することを回避するために、状態遷移モデルPSS'Uを用いての、行動目標状態を基準とする状態価値V(S)の算出を、式(2)の漸化式に従って行うにあたり、式(2)の定数RS'として、目標状態については、1を、回避状態については、例えば、-0.3等の負の値を、目標状態及び回避状態以外の状態については、0を、それぞれ用いる。
【0226】
すなわち、式(2)において、状態S'が目標状態である場合の定数RS'を、Rgoalと、状態S'が回避である場合の定数RSを、Runlikeと、状態S'が目標状態及び回避状態以外の状態である場合の定数RS'を、Rotherと、それぞれ表すこととすると、定数Rgoalは1であり、定数Runlikeは-0.3であり、定数Rotherは0である。
【0227】
ここで、図17は、定数Rgoalを1に、定数Runlikeを-0.3に、定数Rotherを0に、それぞれ設定した場合の、目標状態を基準とする状態価値V(S)の例を示している。
【0228】
行動選択部35は、以上のようにして、目標状態を基準とする状態価値V(S)を算出した後、その状態価値V(S)を用い、式(3)に従って、状態遷移モデルの各状態S、及び、エージェントが可能な各行動Uについて、行動価値Q(S,U)を算出する。
【0229】
そして、行動選択部35は、各状態S、及び、各行動Uについての行動価値Q(S,U)のうちの、現在状態Sについての行動価値Q(S,U)の中の最大値を与える行動Uを、現在状態Sにおいて行う行動Uとして選択する。
【0230】
以上のように、式(2)において、回避状態についての定数Runlikeとして、負の値を採用することにより、回避状態についての、目標状態を基準とする状態価値V(S)、ひいては、そのような状態価値V(S)を用いて求められる、回避状態に向かう行動の行動価値Q(S,U)は、相対的に小さくなり、その結果、図17の矢印で示すように、エージェントは、回避状態を避けながら、目標状態に向かっていく行動をとる。
【0231】
[物体移動タスクへの適用例]
【0232】
学習部12の学習処理、及び、行動制御部14の行動制御処理は、上述したような、行動環境において、エージェントが単に移動するだけのタスク(以下、単純移動タスクともいう)の他、例えば、行動環境において、エージェントが、物体を移動させるタスク(以下、物体移動タスクともいう)にも適用することができる。
【0233】
図18は、物体移動タスクを説明する図である。
【0234】
物体移動タスクでは、行動環境内に、エージェントの他、移動可能な物体が存在する。
【0235】
図18において、行動環境は、2次元平面上の領域(地面)であり、エージェント、及び、物体は、その領域内を移動する。
【0236】
いま、図18において、上方向を、北とすると、エージェントは、例えば、1回の行動で、東、西、南、北、北東、東南、南西、及び、北西のいずれかに、所定の距離だけ、いわば自力で移動することができる。
【0237】
また、エージェントは、物体に接触した場合に、物体を、エージェントが移動する方向に移動する(押す)ことができる。
【0238】
物体は、エージェントに押されることのみによって移動し、自力で移動することはできない。
【0239】
図19は、物体移動タスクを行う場合の状態遷移モデルを説明する図である。
【0240】
図19において、物体移動タスクについては、単純移動タスクの場合と同様に、行動環境を小領域に区分することにより得られる、その小領域が、行動ごとの状態遷移モデルの状態として採用されている。
【0241】
但し、物体移動タスクについては、行動ごとの状態遷移モデルの状態として、エージェント状態S(agt)と、物体の状態S(obj)とが存在する。
【0242】
また、物体移動タスクでは、エージェントは、単純移動タスクと同様に、エージェントの現在の位置を、観測値として観測し、エージェントの現在の位置から、エージェントの現在状態を認識することができる。
【0243】
さらに、物体移動タスクでは、エージェントは、物体の位置を、観測値として観測し、物体の現在の位置から、物体の現在状態を認識することができる。
【0244】
そして、物体移動タスクについては、行動ごとの状態遷移モデルPSS'Uとして、エージェントが、状態S(agt)において、所定の行動Uを行うことにより、状態S(agt)'に遷移することを表す状態遷移モデル(以下、エージェント遷移モデルともいう)PS(agt)S(agt)'Uの他、物体遷移モデルPS(obj)S(obj)'U、及び、エージェント物体間遷移モデルPS(agt)S(obj*)Uが、モデル記憶部13に記憶される。
【0245】
ここで、物体遷移モデルPS(obj)S(obj)'Uは、エージェントが所定の行動Uを行うことにより、物体の状態が、状態S(obj)から状態S(obj)'に遷移することを表す。
【0246】
また、エージェント物体間遷移モデルPS(agt)S(obj*)Uは、エージェントが、状態S(agt)において、所定の行動Uを行うことにより、物体の状態が、状態S(obj*)に遷移することを表す。
【0247】
物体遷移モデルPS(obj)S(obj)'Uとしては、例えば、エージェント遷移モデルPS(agt)S(agt)'Uと同様に、物体の状態が、状態S(obj)であるときに、エージェントが所定の行動Uを行うことにより、物体の状態が、状態S(obj)'に遷移した頻度(や遷移確率)を採用することができる。
【0248】
エージェント物体間遷移モデルPS(agt)S(obj*)Uとしても、例えば、エージェント遷移モデルPS(agt)S(agt)'Uと同様に、エージェントが、状態S(agt)において、所定の行動Uを行うことにより、物体の状態が、状態S(obj*)に遷移した頻度(や遷移確率)を採用することができる。
【0249】
物体移動タスクでは、物体について、目標状態が設定され、エージェント遷移モデルPS(agt)S(agt)'U、物体遷移モデルPS(obj)S(obj)'U、及び、エージェント物体間遷移モデルPS(agt)S(obj*)Uに基づいて、物体が目標状態に到達するように、エージェントの行動が制御される。
【0250】
[物体移動タスクにおける学習処理]
【0251】
図20は、物体移動タスクにおいて、学習部12が行う学習処理を説明するフローチャートである。
【0252】
なお、図20の学習処理は、例えば、図6の学習処理と同様に、エージェントが行動を行っている間、常時行われる。
【0253】
ステップS61において、学習部12は、行動制御部14が行動信号Uを出力するのを待って、その行動信号Uを取得(受信)し、その行動信号Uにより行われたエージェントの行動Uを認識して、処理は、ステップS62に進む。
【0254】
ステップS62では、学習部12は、行動制御部14が直前に出力した行動信号Uに対応する行動Uをエージェントが行った後にセンサ11で観測された観測値を取得し、処理は、ステップS63に進む。
【0255】
ステップS63では、学習部12は、センサ11からの観測値から、エージェントの現在状態S(agt)'と、物体の現在状態S(obj)'とを認識して、処理は、ステップS64に進む。
【0256】
ステップS64では、学習部12は、エージェントの現在状態S(agt)'と、その1時刻前の現在状態である直前状態S(agt)、及び、物体の現在状態S(obj)'と、その1時刻前の現在状態である直前状態S(obj)に基づいて、モデル記憶部13に記憶されたエージェント遷移モデルPS(agt)S(agt)'U、物体遷移モデルPS(obj)S(obj)'U、及び、エージェント物体間遷移モデルPS(agt)S(obj)'Uを更新する。
【0257】
すなわち、学習部12は、エージェントが、直前状態S(agt)において、1時刻前の行動Uを行うことにより、現在状態S(agt)'に状態遷移したことを表すエージェント遷移モデルPS(agt)S(agt)'Uとしての頻度を1だけインクリメントすることにより、エージェント遷移モデルPS(agt)S(agt)'Uを更新する。
【0258】
さらに、学習部12は、エージェントが、1時刻前の行動Uを行うことにより、物体の状態が、直前状態S(obj)から現在状態S(obj)'に状態遷移したことを表す物体遷移モデルPS(obj)S(obj)'Uとしての頻度を1だけインクリメントすることにより、物体遷移モデルPS(obj)S(obj)'Uを更新する。
【0259】
また、学習部12は、エージェントが、1時刻前の現在状態である直前状態S(agt)において、1時刻前の行動Uを行うことにより、物体の状態が、現在状態S(obj)'に状態遷移したことを表すエージェント物体間遷移モデルPS(agt)S(obj)'Uとしての頻度を1だけインクリメントすることにより、エージェント物体間遷移モデルPS(agt)S(obj)'Uを更新する。
【0260】
エージェント遷移モデルPS(agt)S(agt)'U、物体遷移モデルPS(obj)S(obj)'U、及び、エージェント物体間遷移モデルPS(agt)S(obj)'Uの更新後、処理は、ステップS64からステップS61に戻り、行動制御部14が行動信号を出力するのを待って、以下、同様の処理が繰り返される。
【0261】
[物体移動タスクにおける行動制御処理]
【0262】
図21は、物体移動タスクにおいて、行動制御部14(図2)が行う自律行動のための行動制御処理を説明するフローチャートである。
【0263】
物体移動タスクにおいて、自律行動のための行動制御処理では、図15の場合と同様に、例えば、ユーザの操作等に基づいて外部から与えられる状態が、行動目標状態に設定され、その行動目標状態に向かうように、エージェントの行動が制御される。
【0264】
但し、行動目標状態には、物体の状態が設定される。
【0265】
ステップS71において、行動制御部14は、例えば、ユーザの操作等に基づいて外部から与えられる物体の状態を、行動目標状態に設定し、処理は、ステップS72に進む。
【0266】
例えば、ユーザが、物体を移動させたい位置に対応する状態を、目標状態とするように、操作を行うと、行動制御部14は、ユーザの操作に応じた物体の状態を、行動目標状態に設定する。
【0267】
ステップS72では、行動制御部14は、物体遷移モデルPS(obj)S(obj)'Uを用いて、物体遷移モデルの各状態S(obj)について、行動目標状態を基準とする状態価値Vobj(S(obj))を、上述の式(2)の漸化式と同様の式(9)に従って算出し、処理は、ステップS73に進む。
【0268】
【数9】

・・・(9)
【0269】
ここで、式(9)において、ΣS(obj)'は、物体のすべての状態S(obj)'についてのサメ−ションをとることを表し、maxは、各行動Uについて求められる、maxの直後の値のうちの最大値を表す。
【0270】
さらに、式(9)において、γは、式(2)の場合と同様の減衰定数である。
【0271】
また、式(9)において、RS(obj)'は、(状態遷移の遷移先の)物体の状態S(obj)'に対して設定される定数を表す。状態S(obj)'が行動目標状態である場合の定数RS(obj)'を、Rgoalと、状態S(obj)'が行動目標状態以外の状態である場合の定数RS(obj)'を、Rotherと、それぞれ表すこととすると、定数Rgoalは1であり、定数Rotherは0である。
【0272】
ステップS73では、行動制御部14は、物体遷移モデルPS(obj)S(obj)'U、及び、行動目標状態を基準とする状態価値Vobj(S(obj))を用い、上述の式(3)と同様の式(10)に従って、物体遷移モデルの各状態S(obj)、及び、エージェントが可能な各行動Uについて、行動価値Qobj(S(obj),U)を算出し、処理は、ステップS74に進む。
【0273】
【数10】

・・・(10)
【0274】
ステップS74では、行動制御部14は、エージェントの行動Uの後に観測される観測値が、センサ11から出力されるのを待って、その観測値を取得し、その観測値から、エージェント、及び、物体の現在状態を認識し、処理は、ステップS75に進む。
【0275】
ステップS75では、行動制御部14は、物体遷移モデルの各状態S(obj)、及び、エージェントが可能な各行動Uについての行動価値Qobj(S(obj),U)のうちの、物体の現在状態S(obj-current)についての行動価値Qobj(S(obj-current),U)に基づいて、その現在状態S(obj-current)についての行動価値Qobj(S(obj-current),U)の中の最大値を与える行動U*を求め、処理は、ステップS76に進む。
【0276】
すなわち、ステップS75では、行動U*が、式(11)に従って求められる。
【0277】
【数11】

・・・(11)
【0278】
ここで、式(11)において、argmaxは、物体の現在状態S(obj-current)についての行動価値Qobj(S(obj),U)の中の最大値を与える行動Uを表す。
【0279】
ステップS76では、行動制御部14は、エージェントが行動U*を行ったときに、物体の現在状態S(obj-current)からの遷移先の物体の状態の中で、物体遷移モデルが表す遷移確率(頻度)PS(obj-current)S(obj)'U*が最大の物体の状態S(obj*)を求め、処理は、ステップS77に進む。
【0280】
すなわち、ステップS76では、物体の状態S(obj*)が、式(23)に従って求められる。
【0281】
【数12】

・・・(12)
【0282】
ここで、式(12)において、argmaxは、物体の現在状態S(obj-current)からの状態遷移の遷移確率PS(obj-current)S(obj)'U*が最大の、遷移先の物体の状態S(obj)'を表す。
【0283】
式(12)に従って求められる遷移先の物体の状態S(obj)'である状態S(obj*)は、行動価値Qobj(S(obj-current),U)が最大の行動U*が行われることにより生じる、物体の現在状態S(obj-current)からの状態遷移の遷移先の物体の状態S(obj)'の中で、遷移確率PS(obj-current)S(obj)'U*が最大の状態、つまり、エージェントが行動U*を行うことによって生じる物体の状態遷移の遷移先として、最も可能性が高い状態である。
【0284】
ステップS77では、行動制御部14は、エージェント物体間遷移モデルPS(agt)S(obj)'Uのうちの、遷移先が物体の状態S(obj*)のエージェント物体間遷移モデルPS(agt)S(obj*)U、及び、エージェント遷移モデルPS(agt)S(agt)'Uを用いて、式(13)の漸化式をあらかじめ決定された(十分な)回数だけ繰り返し計算することにより、エージェントの各状態S(agt)について、物体の状態S(obj*)を基準とする状態価値Vagt(S(agt))を算出し、処理は、ステップS78に進む。
【0285】
【数13】

・・・(13)
【0286】
ここで、式(13)において、ΣS(agt)'は、エージェントのすべての状態S(agt)'についてのサメ−ションをとることを表し、γは、式(2)の場合と同様の減衰定数である。
【0287】
式(13)によって求められる、物体の状態S(obj*)を基準とする状態価値Vagt(S(agt))は、エージェントが、エージェントの状態S(agt)において、行動Uを行ったときに、物体の状態が、状態S(obj*)に遷移する遷移確率(エージェント物体間遷移モデルが表す遷移確率)PS(agt)S(obj*)Uが大きい行動Uをとることができる状態S(agt)ほど、値が大きくなる。
【0288】
物体の状態S(obj*)を基準とする状態価値Vagt(S(agt))には、式(9)に従って求められた、行動目標状態を基準とする状態価値Vobj(S(obj))が、行動目標状態に近づく物体の状態S(obj*)への状態遷移の遷移確率PS(agt)S(obj*)Uを介して、いわば伝播している、ということができる。
【0289】
ステップS78では、行動制御部14は、エージェント物体間遷移モデルPS(agt)S(obj)'Uのうちの、遷移先が物体の状態S(obj*)のエージェント物体間遷移モデルPS(agt)S(obj*)U、エージェント遷移モデルPS(agt)S(agt)'U、及び、物体の状態S(obj*)を基準とする状態価値Vagt(S(agt))を用い、式(14)に従って、エージェント遷移モデルの各状態S(obj)、及び、エージェントが可能な各行動Uについて、行動価値Qagt(S(agt),U)を算出し、処理は、ステップS79に進む。
【0290】
【数14】

・・・(14)
【0291】
ステップS79では、行動制御部14は、エージェント遷移モデルの各状態S(agt)、及び、エージェントが可能な各行動Uについての行動価値Qagt(S(agt),U)のうちの、エージェントの現在状態S(agt)についての行動価値Qagt(S(agt),U)に基づいて、その現在状態S(agt)についての行動価値Qagt(S(agt),U)の中の最大値を与える行動Uを、エージェントの現在状態S(agt)において行う行動Uに選択し、対応する行動信号Uを出力して、処理は、ステップS80に進む。
【0292】
ここで、行動制御部14が出力する行動信号Uは、学習部12、及び、アクチュエータ15に供給される。
【0293】
アクチュエータ15は、行動制御部14からの行動信号Uに従って駆動し、これにより、エージェントは、その行動信号Uに従った行動Uを行う。
【0294】
なお、学習部12では、自律行動のための行動制御処理が行われている間、行動制御部14からの行動信号Uを用いて、上述した学習処理(図20)を行うことができる。
【0295】
ステップS80では、行動制御部14は、新たな行動目標状態(物体の状態S(obj))が設定されたかどうかを判定する。
【0296】
ステップS80において、新たな行動目標状態を設定されたと判定された場合、すなわち、例えば、ユーザが行動目標状態を変更するように、操作を行い、行動制御部14が、その操作に基づいて、新たな行動目標状態に設定した場合、処理は、ステップS72に戻り、行動制御部14は、新たな行動目標状態を基準とする状態価値Vobj(S(obj))を算出し、以下、同様の処理が繰り返される。
【0297】
また、ステップS80において、新たな行動目標状態が設定されていないと判定された場合、処理は、ステップS81に進み、行動制御部14は、エージェントの行動Uの後に観測される観測値が、センサ11から出力されるのを待って、その観測値を取得する。
【0298】
さらに、行動制御部14は、センサ11からの観測値から、エージェント、及び、物体の現在状態を認識し、処理は、ステップS81からステップS82に進む。
【0299】
ステップS82では、行動制御部14は、図15のステップS47と同様に、自律行動のための行動制御処理を終了する行動制御の終了条件が満たされるかどうかを判定する。
【0300】
ステップS82において、行動制御の終了条件が満たされないと判定された場合、処理は、ステップS83に進み、行動制御部14は、物体の現在状態が、物体の直前状態から他の状態(直前状態以外の状態)に変化したかどうかを判定する。
【0301】
ステップS83において、物体の現在状態が、物体の直前状態から他の状態に変化したと判定された場合、すなわち、エージェントが行動することにより、物体が移動し、その結果、物体の状態が、エージェントが行動する前と後とで変化した場合、処理は、ステップS75に戻り、行動制御部14は、変化後の物体の現在状態S(obj-current)についての行動価値Qobj(S(obj-current),U)の中の最大値を与える行動U*を求め、以下、同様の処理が繰り返される。
【0302】
また、ステップS83において、物体の現在状態が、物体の直前状態から他の状態に変化していないと判定された場合、すなわち、エージェントが行動したが、物体が移動しなかった場合、又は、エージェントが行動することにより、物体が移動したが、その移動の前と後とで、物体の状態が変化しなかった場合、処理は、ステップS79に戻り、以下、同様の処理が繰り返される。
【0303】
一方、ステップS82において、行動制御の終了条件が満たされると判定された場合、行動制御部14は、自律行動のための行動制御処理を終了する。
【0304】
図22及び図23は、物体移動タスクにおいて、行動制御部14(図2)が行う学習のための行動制御処理を説明するフローチャートである。
【0305】
物体移動タスクにおいて、学習のための行動制御処理では、図13の場合と同様に、物体が到達した経験が少ない状態や、物体が到達した経験がない状態に、物体が到達しやすくするように、学習目標状態が設定され、物体の状態が学習目標状態に向かうように、エージェントの行動が制御されることで、図20の学習処理において、エージェント遷移モデルPS(agt)S(agt)'U、物体遷移モデルPS(obj)S(obj)'U、及び、エージェント物体間遷移モデルPS(agt)S(obj)'Uの学習が、効率的に行われるようにする。
【0306】
なお、エージェントは、図22及び図23の学習のための行動制御処理を初めて行う前に、例えば、ランダムに、又は、あらかじめ決められたルールに従って行動する生得行動を行い、その生得行動の間に行われた学習処理(図20)によって、行動環境について、ある程度の学習を行っていることとする。
【0307】
したがって、エージェントは、図22及び図23の学習のための行動制御処理を初めて行う前に、生得行動によって到達したことがあるエージェント及び物体の状態の範囲で、0でない頻度を表すエージェント遷移モデルPS(agt)S(agt)'U、物体遷移モデルPS(obj)S(obj)'U、及び、エージェント物体間遷移モデルPS(agt)S(obj)'Uを獲得している。
【0308】
ステップS101において、行動制御部14は、直前に出力した行動信号に対応する行動をエージェントが行った後に観測される観測値が、センサ11から出力されるのを待って、その観測値を取得する。
【0309】
さらに、行動制御部14は、センサ11からの観測値から、エージェント、及び、物体の現在状態を認識し、処理は、ステップS101からステップS102に進む。
【0310】
ステップS102では、行動制御部14は、物体遷移モデルPS(obj)S(obj)'Uを用いて、物体遷移モデルの各状態S(obj)について、上述の式(9)の漸化式に従って、物体の現在状態S(obj-current)を基準とする状態価値Vobj(S(obj))を算出し、処理は、ステップS103に進む。
【0311】
ここで、式(9)の漸化式に従った、物体の現在状態S(obj-current)を基準とする状態価値Vobj(S(obj))の算出にあたっては、状態S(obj)'が現在状態S(obj-current)である場合の定数RS(obj)'を、Rcurrentと、状態S(obj)'が現在状態S(obj-current)以外の状態である場合の定数RS(obj)'を、Rotherと、それぞれ表すこととすると、定数Rcurrentは1とされ、定数Rotherは0とされる。
【0312】
ステップS103では、行動制御部14は、物体の現在状態S(obj-current)を基準とする状態価値Vobj(S(obj))に基づき、物体遷移モデルの各状態S(obj)、及び、エージェントが可能な各行動Uについて、上述の式(10)に従って、行動価値Qobj(S(obj),U)を算出し、処理は、ステップS104に進む。
【0313】
ステップS104では、行動制御部14は、行動価値Qobj(S(obj),U)に基づき、上述の式(4)及び式(5)で説明したように、物体の各状態S(obj)について、行動価値Qobj(S(obj),U)の分散W(S(obj))を求め、処理は、ステップS105に進む。
【0314】
ステップS105では、行動制御部14は、行動価値Qobj(S(obj),U)の分散W(S(obj))に基づいて、学習目標状態の候補を求め、すなわち、行動価値Qobj(S(obj),U)の分散W(S(obj))が所定の閾値以上の物体の状態を、学習目標状態の候補に選択し、処理は、ステップS106に進む。
【0315】
ステップS106では、行動制御部14は、モデル記憶部13に記憶された物体遷移モデルPS(obj)S(obj)'Uに基づき、物体の各状態S(obj)について、所定回数以内の状態遷移によって、物体の現在状態S(obj-current)にいる存在確率T(S)を、上述の式(6)で説明したように、漸化式を繰り返し計算することにより求め、処理は、ステップS107に進む。
【0316】
ステップS107では、行動制御部14は、学習目標状態の候補の中から、存在確率T(S)が0より大(正の値)の状態(到達可能状態)の1つを、例えば、ランダムに選択し、学習目標状態に設定する。
【0317】
そして、処理は、ステップS107から、図23のステップS111に進み、以下、物体の状態が、学習目標状態に向かうように、エージェントの行動が制御される。
【0318】
すなわち、図23は、図22に続くフローチャートである。
【0319】
ステップS111では、行動制御部14は、物体遷移モデルPS(obj)S(obj)'Uを用いて、物体遷移モデルの各状態S(obj)について、学習目標状態を基準とする状態価値Vobj(S(obj))を、上述の式(9)に従って算出し、処理は、ステップS112に進む。
【0320】
ここで、学習目標状態を基準とする状態価値Vobj(S(obj))を、式(9)に従って算出するにあたり、状態S(obj)'が学習目標状態である場合の式(9)の定数RS(obj)'を、Rgoalと、状態S(obj)'が学習目標状態以外の状態である場合の式(9)の定数RS(obj)'を、Rotherと、それぞれ表すこととすると、定数Rgoalは1であり、定数Rotherは0である。
【0321】
ステップS112では、行動制御部14は、物体遷移モデルPS(obj)S(obj)'U、及び、学習目標状態を基準とする状態価値Vobj(S(obj))を用い、上述の式(10)に従って、物体遷移モデルの各状態S(obj)、及び、エージェントが可能な各行動Uについて、行動価値Qobj(S(obj),U)を算出し、処理は、ステップS113に進む。
【0322】
ステップS113では、行動制御部14は、物体遷移モデルの各状態S(obj)、及び、エージェントが可能な各行動Uについての行動価値Qobj(S(obj),U)のうちの、物体の現在状態S(obj-current)についての行動価値Qobj(S(obj-current),U)に基づいて、その現在状態S(obj-current)についての行動価値Qobj(S(obj-current),U)の中の最大値を与える行動U*を求め、処理は、ステップS114に進む。
【0323】
ステップS114では、行動制御部14は、エージェントが行動U*を行ったときに、物体の現在状態S(obj-current)からの遷移先の物体の状態の中で、物体遷移モデルが表す遷移確率(頻度)PS(obj-current)S(obj)'U*が最大の物体の状態S(obj*)を求め、処理は、ステップS115に進む。
【0324】
ステップS115では、行動制御部14は、エージェント物体間遷移モデルPS(agt)S(obj)'Uのうちの、遷移先が物体の状態S(obj*)のエージェント物体間遷移モデルPS(agt)S(obj*)U、及び、エージェント遷移モデルPS(agt)S(agt)'Uを用いて、上述の式(13)の漸化式をあらかじめ決定された(十分な)回数だけ繰り返し計算することにより、エージェントの各状態S(agt)について、物体の状態S(obj*)を基準とする状態価値Vagt(S(agt))を算出し、処理は、ステップS116に進む。
【0325】
ステップS116では、行動制御部14は、エージェント物体間遷移モデルPS(agt)S(obj)'Uのうちの、遷移先が物体の状態S(obj*)のエージェント物体間遷移モデルPS(agt)S(obj*)U、エージェント遷移モデルPS(agt)S(agt)'U、及び、物体の状態S(obj*)を基準とする状態価値Vagt(S(agt))を用い、上述の式(14)に従って、エージェント遷移モデルの各状態S(obj)、及び、エージェントが可能な各行動Uについて、行動価値Qagt(S(agt),U)を算出し、処理は、ステップS117に進む。
【0326】
ステップS117では、行動制御部14は、エージェント遷移モデルの各状態S(agt)、及び、エージェントが可能な各行動Uについての行動価値Qagt(S(agt),U)のうちの、エージェントの現在状態S(agt)についての行動価値Qagt(S(agt),U)に基づいて、例えば、図13のステップS30と同様に、ε-greedy法やsoftmax法により、エージェントが現在状態S(agt)において行う行動Uを選択し、対応する行動信号Uを出力する。
【0327】
ここで、行動制御部14が出力する行動信号Uは、学習部12、及び、アクチュエータ15に供給される。
【0328】
アクチュエータ15は、行動制御部14からの行動信号Uに従って駆動し、これにより、エージェントは、その行動信号Uに従った行動Uを行う。
【0329】
なお、学習部12では、学習のための行動制御処理が行われている間、行動制御部14からの行動信号Uを用いて、上述した学習処理(図20)を行う。
【0330】
エージェントが、行動信号Uに従った行動Uを行うと、処理は、ステップS117からステップS118に進み、行動制御部14は、エージェントの行動Uの後に観測される観測値が、センサ11から出力されるのを待って、その観測値を取得する。
【0331】
さらに、行動制御部14は、センサ11からの観測値から、エージェント、及び、物体の現在状態を認識し、処理は、ステップS118からステップS119に進む。
【0332】
ステップS119では、行動制御部14は、行動制御部14からの現在状態が、行動制御部14からの(最新の)学習目標状態に一致するかどうか、及び、行動制御部14から(最新の)学習目標状態が供給されてから、所定の時間t1が経過したかどうかを判定する。
【0333】
ステップS119において、行動制御部14からの現在状態が、行動制御部14からの学習目標状態に一致しておらず、さらに、行動制御部14から学習目標状態が供給されてから、所定の時間t1が経過していない判定された場合、処理は、ステップS120に進み、行動制御部14は、物体の現在状態が、物体の直前状態から他の状態(直前状態以外の状態)に変化したかどうかを判定する。
【0334】
ステップS120において、物体の現在状態が、物体の直前状態から他の状態に変化したと判定された場合、すなわち、エージェントが行動することにより、物体が移動し、その結果、物体の状態が、エージェントが行動する前と後とで変化した場合、処理は、ステップS113に戻り、行動制御部14は、変化後の物体の現在状態S(obj-current)についての行動価値Qobj(S(obj-current),U)の中の最大値を与える行動U*を求め、以下、同様の処理が繰り返される。
【0335】
また、ステップS120において、物体の現在状態が、物体の直前状態から他の状態に変化していないと判定された場合、すなわち、エージェントが行動したが、物体が移動しなかった場合、又は、エージェントが行動することにより、物体が移動したが、その移動の前と後とで、物体の状態が変化しなかった場合、処理は、ステップS117に戻り、以下、同様の処理が繰り返される。
【0336】
一方、ステップS119において、行動制御部14からの現在状態が、行動制御部14からの学習目標状態に一致したと判定された場合、すなわち、エージェントが学習目標状態に到達した場合、又は、行動制御部14から学習目標状態が供給されてから、所定の時間t1が経過した判定された場合、すなわち、エージェントが、所定の時間t1の間に、学習目標状態に到達することができなかった場合、処理は、ステップS121に進み、行動制御部14は、図13のステップS33と同様に、学習のための行動制御処理を終了する行動制御の終了条件が満たされるかどうかを判定する。
【0337】
ステップS121において、行動制御の終了条件が満たされないと判定された場合、処理は、図22のステップS102に戻り、以下、同様の処理が繰り返される。
【0338】
また、ステップS121において、行動制御の終了条件が満たされると判定された場合、行動制御部14は、学習のための行動制御処理を終了する。
【0339】
[状態遷移モデルの状態の他の例]
【0340】
以上においては、状態遷移モデル(エージェント遷移モデル、物体遷移モデル、及び、エージェント物体間遷移モデル)PSS'Uの状態として、行動環境を小領域に区分することにより得られる、その小領域を採用したが、状態遷移モデルの状態は、その他、例えば、GMM(Gaussian Mixture Model)や、HMM(Hidden Markov Model)等の潜在変数モデルを用いて表現することができる。
【0341】
すなわち、状態遷移モデルPSS'Uの状態としては、例えば、GMMや、HMMの状態を採用することができる。
【0342】
状態遷移モデルPSS'Uの状態として、GMMや、HMMの状態を採用する場合には、行動制御部14において、行動を選択する際に用いる行動価値は、事後確率に基づいて求めることができる。
【0343】
すなわち、状態遷移モデルPSS'Uの状態として、行動環境を区分することにより得られる小領域を採用する場合には、状態遷移モデルの状態Sごとの行動価値Q(S,U)を、行動を選択するのに用いる行動価値として求めたが、状態遷移モデルPSS'Uの状態として、GMMや、HMMの状態を採用する場合には、行動制御部14において、観測値Oが観測されたときに、行動Uを行う行動価値Q(O,U)を、行動を選択するのに用いる行動価値として求めることができる。
【0344】
観測値Oが観測されたときに、行動Uを行う行動価値Q(O,U)は、例えば、式(15)に従って求めることができる。
【0345】
【数15】

・・・(15)
【0346】
ここで、式(15)において、P(S|O)は、観測値Oが観測されたときに、状態Sにいる確率(事後確率)を表す。状態遷移モデルPSS'Uの状態として、HMMの状態を採用する場合、確率P(S|O)は、観測値の時系列データ、つまり、最新の観測値が観測された時刻から所定の時間だけ遡った時刻から、最新の時刻までの間に観測された観測値の時系列データOを用いて求められる。
【0347】
また、式(15)において、P(U|S)は、状態Sにおいて、行動Uが行われる確率である。さらに、Σは、状態S'についてのサメ−ションを表し、したがって、確率P(U|S)は、遷移確率(状態遷移モデルが表す遷移確率)PSS'Uと、遷移先の状態S'の状態価値V(S')との積PSS'UV(S')の総和を、遷移先の状態S'すべてについてとることにより求められる。
【0348】
なお、状態遷移モデルPSS'Uの状態として、HMMの状態を採用する場合、HMMの遷移確率aijを、エージェントが行う行動Uごとの遷移確率aij(U)に拡張し、その行動Uごとの遷移確率aij(U)を、式(15)の遷移確率PSS'Uとして用いることができる。
【0349】
ここで、遷移確率aijを、行動Uごとの遷移確率aij(U)に拡張したHMMを、拡張HMMという。拡張HMMについては、後述する。
【0350】
図24は、状態遷移モデルPSS'Uの状態を、潜在変数モデルを用いて表現する場合に、行動価値Q(O|U)を求めるのに用いる事後確率を、いわゆる温度パラメータβを用いて制御することを説明する図である。
【0351】
観測値Oが観測されたときに、行動Uを行う行動価値Q(O,U)は、式(15)に代えて、式(16)に従って求めることができる。
【0352】
【数16】

・・・(16)
【0353】
ここで、式(16)において、温度パラメータβは、0<β≦1の範囲の値である。
【0354】
式(16)によれば、事後確率として、式(15)の事後確率P(S|O)をβ乗した値を正規化した値P(S|O)β/ΣP(S|O)βを用いて、行動価値Q(O,U)が求められる。
【0355】
事後確率としての値P(S|O)β/ΣP(S|O)βは、温度パラメータβによって制御することができ、したがって、温度パラメータβによれば、観測値Oが観測されたときに、状態Sにいるかどうかの曖昧性を制御することができる。
【0356】
なお、温度パラメータβを1にした場合、事後確率としての値P(S|O)β/ΣP(S|O)βは、式(15)の事後確率P(S|O)に等しい。
【0357】
温度パラメータβを、例えば、0.2等の1未満の値に設定した場合、現在状態が、経験が不足している状態、つまり、エージェントが各種の行動をとったことが少ない状態であるときに、適切な行動が行われる可能性がある。
【0358】
すなわち、例えば、エージェントが、行動環境の壁に接触した状況に対応する状態において、壁にぶつかる行動をとることが多く、他の行動をとった経験がほとんどない場合には、式(15)の行動価値Q(O|U)では、エージェントは、壁にぶつかる行動をとり続ける可能性が高い。
【0359】
一方、温度パラメータβを、例えば、0.2等の1未満の値に設定した、式(16)の行動価値Q(O|U)によれば、エージェントでは、行動環境の壁に接触した状況に対応する状態以外の、例えば、エージェントが各種の行動をとったことがある経験が十分な状態でとったことがある行動が行われやすくなり、ひいては、壁にぶつかる行動以外の行動(適切な行動)が行われやすくなる。
【0360】
図24は、事後確率P(S|O)と、温度パラメータβを0.2とした場合の事後確率P(S|O)β/ΣP(S|O)βとを示している。
【0361】
図24では、事後確率P(S|O)については、経験が不足している状態の事後確率P(S|O)が0.8に、経験が十分な状態の事後確率P(S|O)が0.1に、それぞれなっており、経験が不足している状態の事後確率P(S|O)と、経験が十分な状態の事後確率P(S|O)との違いが、非常に大きい。
【0362】
このような事後確率P(S|O)を用いて求められる行動価値Q(O|U)は、値が大きい事後確率P(S|O)、すなわち、経験が不足している状態の事後確率P(S|O)の影響を強く受ける。
【0363】
一方、事後確率P(S|O)β/ΣP(S|O)βについては、経験が不足している状態の事後確率P(S|O)β/ΣP(S|O)βが0.4に、経験が十分な状態の事後確率P(S|O)β/ΣP(S|O)βが0.3に、それぞれなっており、経験が不足している状態の事後確率P(S|O)β/ΣP(S|O)βと、経験が十分な状態の事後確率P(S|O)β/ΣP(S|O)βとの違いが、それほど大きくはなくなっている(各状態にいる曖昧性が大きくなっている)。
【0364】
このような事後確率P(S|O)β/ΣP(S|O)βを用いて求められる行動価値Q(O|U)は、経験が不足している状態、及び、経験が十分な状態それぞれの事後確率P(S|O)β/ΣP(S|O)βの影響を、同程度に受ける。
【0365】
なお、エージェントでは、デフォルトで、事後確率P(S|O)を用いて、行動価値Q(O|U)を求めることとし、エージェントが経験が不足している状態にいる(可能性が高い)間だけ、事後確率P(S|O)β/ΣP(S|O)βを用いて、行動価値Q(O|U)を求めることができる。
【0366】
エージェントが経験が不足している状態にいることは、例えば、ユーザがエージェントに教えることができる。
【0367】
また、エージェントが一定時間以上、同一の状態に留まっている場合には、その状態において、他の状態に遷移するための行動を行う経験が不足している可能性が高いので、エージェントでは、エージェントが一定時間以上、同一の状態に留まっているかどうかを判定し、エージェントが一定時間以上、同一の状態に留まっている間は、エージェントが経験が不足している状態にいると判定することができる。
【0368】
図25は、状態遷移モデルPSS'Uの状態として、GMMを採用した場合に行われる、GMMの学習を説明する図である。
【0369】
状態遷移モデルPSS'Uの状態として、GMMを採用した場合には、エージェントにおいて観測される、連続値である観測値Oを用いて、状態としてのGMMの学習、つまり、GMMにおいて観測値Oが観測される確率分布としてのガウス分布の学習が行われる。
【0370】
GMMの学習に用いられる観測値Oである学習データは、行動環境内を移動(行動)するエージェントにおいて、移動先で獲得(観測)される。
【0371】
したがって、ランダムな行動を行うエージェントでは、例えば、上下に移動可能な行動環境に、重力が設定されていると、行動環境内の下側を移動する機会が多くなるとともに、上側を移動する機会が少なくなるので、行動環境の下側については、多数の学習データが獲得されるが、行動環境の上側については、少ない学習データしか獲得できず、その結果、行動環境から獲得される学習データの密度(学習データとなる観測値Oが観測される位置の密度)に偏りが生じる。
【0372】
すなわち、行動環境の下側では、密集した位置で、学習データが獲得されるが、行動環境の上側では、疎らな位置で、学習データが獲得される。
【0373】
以上のように、行動環境から獲得される学習データの密度に偏りがある場合、そのような学習データを用いた学習によって得られるGMMとしての状態にも(行動環境を行動するエージェントを表す、複数のGMMからなるモデルの構造にも)、偏りが生じる。
【0374】
すなわち、従来の行動制御によって、ランダムな行動を行うエージェントにおいては、学習によって得られるGMMとしての状態において観測される観測値Oの分布を表すガウス分布の分散は、図25に示すように、行動環境から獲得される学習データの密度に偏りに応じて、行動環境の下側に対応する状態では、小さくなり、行動環境の上側に対応する状態では、大きくなる。
【0375】
一方、学習のための行動制御処理による行動制御(新行動制御)によれば、図13で説明したように、エージェントは、行動環境を、万遍なく移動する行動を行うので、移動環境から、万遍なく、学習データ(となる観測値O)が獲得される。
【0376】
その結果、学習によって得られるGMMとしての状態において観測される観測値Oの分布を表すガウス分布の分散は、図25に示すように、行動環境の全体において、(ほぼ)偏りがなく、一様になる。
【0377】
[拡張HMM]
【0378】
次に、上述の拡張HMMについて説明する。
【0379】
図26は、拡張HMMを適用した図2のエージェントが行動を行う行動環境の例を示す図である。
【0380】
図26では、行動環境は、2次元平面の迷路になっており、エージェントは、図中、白抜きの部分を、通路として移動することができる。
【0381】
図27は、行動環境において、エージェントが行う行動、及び、エージェントが観測する観測値の例を示している。
【0382】
エージェントは、図26に示したような行動環境の、図中、点線で正方形状に区切ったエリアを、観測値を観測する単位(観測単位)とし、その観測単位で移動する行動を行う。
【0383】
図27Aは、エージェントが行う行動の種類を示している。
【0384】
図27Aでは、エージェントは、図中、上(北)方向に観測単位だけ移動する行動U1、右(東)方向に観測単位だけ移動する行動U2、下(南)方向に観測単位だけ移動する行動U3、左(西)方向に観測単位だけ移動する行動U4、及び、移動しない(何もしない)行動U5の、合計で、5つの行動U1ないしU5を行うことが可能になっている。
【0385】
図27Bは、エージェントが観測単位で観測する観測値の種類を、模式的に示している。
【0386】
本実施の形態では、エージェントは、観測単位において、15種類の観測値(シンボル)O1ないしO15のうちのいずれかを観測する。
【0387】
観測値O1は、上と、下と、左とが壁で、左が通路になっている観測単位で観測され、観測値O2は、上と、左と、右とが壁で、下が通路になっている観測単位で観測される。
【0388】
観測値O3は、上と、左とが壁で、下と、右とが通路になっている観測単位で観測され、観測値O4は、上と、下と、右とが壁で、左が通路になっている観測単位で観測される。
【0389】
観測値O5は、上と、下とが壁で、左と、右とが通路になっている観測単位で観測され、観測値O6は、上と、右とが壁で、下と、左とが通路になっている観測単位で観測される。
【0390】
観測値O7は、上が壁で、下と、左と、右とが通路になっている観測単位で観測され、観測値O8は、下と、左と、右とが壁で、上が通路になっている観測単位で観測される。
【0391】
観測値O9は、下と、左とが壁で、上と、右とが通路になっている観測単位で観測され、観測値O10は、左と、右とが壁で、上と、下とが通路になっている観測単位で観測される。
【0392】
観測値O11は、左が壁で、上と、下と、右とが通路になっている観測単位で観測され、観測値O12は、下と、右とが壁で、上と、左とが通路になっている観測単位で観測される。
【0393】
観測値O13は、下が壁で、上と、左と、右とが通路になっている観測単位で観測され、観測値O14は、右が壁で、上と、下と、左とが通路になっている観測単位で観測される。
【0394】
観測値O15は、上下左右すべてが通路になっている観測単位で観測される。
【0395】
なお、ここでは、行動Um(m=1,2,・・・,M(Mは行動の(種類の)総数))、及び、観測値Ok(k=1,2,・・・,K(Kは観測値の総数))は、いずれも離散値である。
【0396】
図28は、拡張HMMが適用された図2のエージェントにおいて、学習部12が行う学習処理を説明するフローチャートである。
【0397】
ステップS141において、学習部12は、センサ11が、行動環境から観測される、現在の観測値(現在時刻tの観測値)otを出力するのを待って、その観測値otを取得し処理は、ステップS142に進む。
【0398】
ここで、(現在)時刻tの観測値otは、本実施の形態では、図27Bに示した15個の観測値O1ないしO15のうちのいずれかである。
【0399】
ステップS142では、学習部12は、行動制御部14(図2)が、観測値otを用いた行動制御によって、時刻tに行うべき行動utを選択して、又は、時刻tに行うべき行動utを、ランダムに選択して、その行動utの行動信号utを出力するのを待って、その行動信号ut取得し、処理は、ステップS143に進む。
【0400】
ここで、時刻tの行動utは、本実施の形態では、図27Aに示した5個の行動U1ないしU5のうちのいずれかである。
【0401】
また、アクチュエータ15(図2)は、行動制御部14が出力する行動信号utに従って駆動し、これにより、エージェントは、行動utを行う。
【0402】
ステップS143において、学習部12は、センサ11から取得した時刻tの観測値otと、行動制御部14から取得した時刻tの行動信号utとのセットを、拡張HMMの学習に用いる学習データセットとして、学習データセットの履歴に追加する形で記憶し、処理は、ステップS144に進む。
【0403】
ステップS144では、学習部12は、拡張HMMの学習を行う学習条件が満たされているかどうかを判定する。
【0404】
ここで、拡張HMMの学習を行う学習条件としては、履歴に、1以上の所定数の新たな学習データセット(拡張HMMの学習に用いられていない学習データセット)が追加されたこと等を採用することができる。
【0405】
ステップS144において、学習条件が満たされていないと判定された場合、処理は、ステップS141に戻り、エージェントが行動utを行った後に観測される時刻t+1の観測値ot+1を、センサ11が出力するのを待って、学習部12は、センサが出力する観測値ot+1を取得し、以下、同様の処理が繰り返される。
【0406】
また、ステップS144において、学習条件が満たされていると判定された場合、処理は、ステップS145に進み、学習部12は、履歴として記憶されている学習データセットを用いて、拡張HMMの学習(更新)を行う。
【0407】
そして、拡張HMMの学習の終了後、処理は、ステップS145からステップS141に戻り、以下、同様の処理が繰り返される。
【0408】
図29は、拡張HMMを説明する図である。
【0409】
拡張HMMでは、一般(従来)のHMMの(状態)遷移確率が、エージェントが行う行動ごとの遷移確率に拡張されている。
【0410】
すなわち、図29Aは、一般のHMMの遷移確率を示している。
【0411】
いま、拡張HMMとするHMMとして、ある状態から任意の状態に状態遷移が可能なエルゴディックなHMMを採用することとする。また、HMMの状態の数はN個であるとする。
【0412】
一般のHMMでは、N個の各状態Siから、N個の状態Sjのそれぞれへの、N×N個の状態遷移の遷移確率aijを、モデルパラメータとして有する。
【0413】
一般のHMMのすべての遷移確率は、状態Siから状態Sjへの状態遷移の遷移確率aijを、上からi番目で、左からj番目に配置した2次元のテーブルで表現することができる。
【0414】
ここで、(拡張HMMを含む)HMMの遷移確率のテーブルを、遷移確率Aとも記載する。
【0415】
図29Bは、拡張HMMの遷移確率Aを示している。
【0416】
拡張HMMでは、遷移確率が、エージェントが行う行動Umごとに存在する。
【0417】
ここで、ある行動Umについての、状態Siから状態Sjへの状態遷移の遷移確率を、aij(Um)とも記載する。
【0418】
遷移確率aij(Um)は、エージェントが行動Umを行ったときに、状態Siから状態Sjへの状態遷移が生じる確率を表す。
【0419】
拡張HMMのすべての遷移確率は、行動Umについての、状態Siから状態Sjへの状態遷移の遷移確率aij(Um)を、上からi番目で、左からj番目の、奥行き方向に手前側からm番目に配置した3次元のテーブルで表現することができる。
【0420】
ここで、遷移確率Aの3次元のテーブルにおいて、垂直方向の軸を、i軸と、水平方向の軸を、j軸と、奥行き方向の軸を、m軸、又は、行動軸と、それぞれいうこととする。
【0421】
また、遷移確率Aの3次元のテーブルを、行動軸のある位置mで、行動軸に垂直な平面で切断して得られる、遷移確率aij(Um)で構成される平面を、行動Umについての遷移確率平面ともいう。
【0422】
さらに、遷移確率Aの3次元のテーブルを、i軸のある位置Iで、i軸に垂直な平面で切断して得られる、遷移確率aIj(Um)で構成される平面を、状態SIについての行動平面ともいう。
【0423】
状態SIについての行動平面を構成する遷移確率aIj(Um)は、状態SIを遷移元とする状態遷移が生じるときに各行動Umが行われる確率を表す。
【0424】
なお、拡張HMMは、モデルパラメータとして、行動ごとの遷移確率aij(Um)の他、一般のHMMと同様に、最初の時刻t=1に、状態Siにいる初期状態確率πiと、状態Siにおいて、観測値Okを観測する確率分布である出力確率分布(ここでは、離散的な確率値)bi(Ok)とを有する。
【0425】
図30は、学習部12(図2)が、図28のステップS145において、履歴として記憶された学習データセットを用いて行う拡張HMMの学習を説明するフローチャートである。
【0426】
ステップS151において、学習部12は、拡張HMMを初期化する。
【0427】
すなわち、学習部12は、拡張HMMのモデルパラメータである初期状態確率πi、(行動ごとの)遷移確率aij(Um)、及び、出力確率分布bi(Ok)を初期化する。
【0428】
なお、拡張HMMの状態の数(総数)がN個であるとすると、初期状態確率πiは、例えば、1/Nに初期化される。ここで、2次元平面の迷路である行動環境が、横×縦がa×b個の観測単位で構成されることとすると、拡張HMMの状態の数Nとしては、マージンとする整数を△として、(a+△)×(b×△)個を採用することができる。
【0429】
また、遷移確率aij(Um)、及び、出力確率分布bi(Ok)は、例えば、確率の値としてとり得るランダムな値に初期化される。
【0430】
ここで、遷移確率aij(Um)の初期化は、各行動Umについての遷移確率平面の各行について、その行の遷移確率aij(Um)の総和(ai,1(Um)+ai,2(Um)+・・・+ai,N(Um))が1.0になるように行われる。
【0431】
同様に、出力確率分布bi(Ok)の初期化は、各状態Siについて、その状態Siから観測値O1,O2,・・・,OKが観測される出力確率分布の総和(bi(O1)+bi(O2)+・・・+bi(OK))が1.0になるように行われる。
【0432】
なお、いわゆる追加学習が行われる場合には、追加学習の直前に行われた学習によって得られ、モデル記憶部13に記憶された拡張HMMの初期状態確率πi、遷移確率aij(Um)、及び、出力確率分布bi(Ok)が、そのまま初期値として用いられ、ステップS151の初期化は、行われない。
【0433】
ステップS151の後、処理は、ステップS152に進み、以下、ステップS152以降において、Baum-Welchの再推定法(を行動について拡張した方法)に従い、履歴として記憶された学習データセットを用いて、初期状態確率πi、各行動についての遷移確率aij(Um)、及び、出力確率分布bi(Ok)を推定する、拡張HMMの学習が行われる。
【0434】
すなわち、ステップS152では、学習部12は、前向き確率(Forward probability)αt+1(j)と、後ろ向き確率(Backward probability)βt(i)とを算出する。
【0435】
ここで、拡張HMMにおいては、時刻tにおいて、行動utが行われると、現在の状態Siから状態Sjに状態遷移し、次の時刻t+1において、状態遷移後の状態Sjで、観測値ot+1が観測される。
【0436】
かかる拡張HMMでは、前向き確率αt+1(j)は、現在の拡張HMM(初期化された、又は、モデル記憶部13に現に記憶されている初期状態確率π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|Λ)を表し、式(17)で表される。
【0437】
【数17】

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

・・・(18)
【0442】
式(18)の初期値α1(j)は、最初(時刻t=1)に、状態Sjにいて、観測値o1を観測する確率を表す。
【0443】
また、拡張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|Λ)であり、式(19)で表される。
【0444】
【数19】

・・・(19)
【0445】
なお、Tは、学習データセットの観測値系列の観測値の個数(系列長)を表す。
【0446】
式(19)の後ろ向き確率β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である確率を表す。
【0447】
なお、後ろ向き確率βt(i)の初期値βT(i)は、式(20)で表される。
【0448】
【数20】

・・・(20)
【0449】
式(20)の初期値βT(i)は、最後(時刻t=T)に、状態Siにいる確率が、1.0であること、つまり、最後に、必ず、状態Siにいることを表す。
【0450】
拡張HMMでは、式(17)及び式(19)に示したように、ある状態Siからある状態Sjへの状態遷移の遷移確率として、行動ごとの遷移確率aij(ut)を用いる点が、一般のHMMと異なる。
【0451】
ステップS152において、前向き確率αt+1(j)と、後ろ向き確率βt(i)とを算出した後、処理は、ステップS153に進み、学習部12は、前向き確率αt+1(j)と、後ろ向き確率βt(i)とを用いて、拡張HMMのモデルパラメータΛである初期状態確率πi、行動Umごとの遷移確率aij(Um)、及び、出力確率分布bi(Ok)を再推定する。
【0452】
ここで、モデルパラメータの再推定は、遷移確率が、行動Umごとの遷移確率aij(Um)に拡張されていることに伴い、Baum-Welchの再推定法を拡張して、以下のように行われる。
【0453】
すなわち、現在の拡張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)とを用いて、式(21)で表される。
【0454】
【数21】

・・・(21)
【0455】
さらに、時刻tに、状態Siにいて、行動ut=Umが行われる確率γt(i,Um)は、確率ξt+1(i,j,Um)について、時刻t+1にいる状態Sjに関して周辺化した確率として計算することができ、式(22)で表される。
【0456】
【数22】

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

・・・(23)
【0460】
また、モデルパラメータΛ'である行動ごとの遷移確率の推定値a'ij(Um)は、式(24)に従って求められる。
【0461】
【数24】

・・・(24)
【0462】
ここで、式(24)の遷移確率の推定値a'ij(Um)の分子は、状態Siにいて、行動ut=Umを行って、状態Sjに状態遷移する回数の期待値を表し、分母は、状態Siにいて、行動ut=Umを行って、状態遷移する回数の期待値を表す。
【0463】
モデルパラメータΛ'である出力確率分布の推定値b'j(Ok)は、式(25)に従って求められる。
【0464】
【数25】

・・・(25)
【0465】
ここで、式(25)の出力確率分布の推定値b'j(Ok)の分子は、状態Sjへの状態遷移が行われ、その状態Sjで、観測値Okが観測される回数の期待値を表し、分母は、状態Sjへの状態遷移が行われる回数の期待値を表す。
【0466】
ステップS153において、モデルパラメータΛ'である初期状態確率、遷移確率、及び、出力確率分布の推定値π'i,a'ij(Um)、及び、b'j(Ok)を再推定した後、学習部12は、推定値π'iを、新たな初期状態確率πiとして、推定値a'ij(Um)を、新たな遷移確率aij(Um)として、推定値b'j(Ok)を、新たな出力確率分布bj(Ok)として、それぞれ、モデル記憶部13に、上書きの形で記憶させ、処理は、ステップS154に進む。
【0467】
ステップS154では、拡張HMMのモデルパラメータ、すなわち、モデル記憶部13に記憶された(新たな)初期状態確率πi、遷移確率aij(Um)、及び、出力確率分布bj(Ok)が、収束したかどうかを判定する。
【0468】
ステップS154において、拡張HMMのモデルパラメータが、まだ収束していないと判定された場合、処理は、ステップS152に戻り、モデル記憶部13に記憶された新たな初期状態確率πi、遷移確率aij(Um)、及び、出力確率分布bj(Ok)を用いて、同様の処理が繰り返される。
【0469】
また、ステップS154において、拡張HMMのモデルパラメータが収束したと判定された場合、すなわち、例えば、ステップS153の再推定の前と後とで、拡張HMMのモデルパラメータが、ほとんど変化しなくなった場合、拡張HMMの学習の処理は終了する。
【0470】
式(15)(及び式(16))の状態遷移モデルPSS'Uとしては、以上のような学習によって得られる拡張HMMの、行動Uごとの遷移確率aij(U)を用いることができ、この場合、状態遷移モデルPSS'Uの状態とは、拡張HMMの状態に一致する。
【0471】
[本発明を適用したコンピュータの説明]
【0472】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0473】
そこで、図31は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0474】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク205やROM203に予め記録しておくことができる。
【0475】
あるいはまた、プログラムは、リムーバブル記録媒体211に格納(記録)しておくことができる。このようなリムーバブル記録媒体211は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体211としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【0476】
なお、プログラムは、上述したようなリムーバブル記録媒体211からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク205にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【0477】
コンピュータは、CPU(Central Processing Unit)202を内蔵しており、CPU202には、バス201を介して、入出力インタフェース210が接続されている。
【0478】
CPU202は、入出力インタフェース210を介して、ユーザによって、入力部207が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)203に格納されているプログラムを実行する。あるいは、CPU202は、ハードディスク205に格納されたプログラムを、RAM(Random Access Memory)204にロードして実行する。
【0479】
これにより、CPU202は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU202は、その処理結果を、必要に応じて、例えば、入出力インタフェース210を介して、出力部206から出力、あるいは、通信部208から送信、さらには、ハードディスク205に記録等させる。
【0480】
なお、入力部207は、キーボードや、マウス、マイク等で構成される。また、出力部206は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【0481】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0482】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0483】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0484】
11 センサ, 12 学習部, 13 モデル記憶部, 14 行動制御部, 15 アクチュエータ, 21 状態認識部, 22 モデル更新部, 31 状態認識部, 32 状態価値算出部, 33 行動価値算出部, 34 目標状態設定部, 35 行動選択部, 201 バス, 202 CPU, 203 ROM, 204 RAM, 205 ハードディスク, 206 出力部, 207 入力部, 208 通信部, 209 ドライブ, 210 入出力インタフェース, 211 リムーバブル記録媒体

【特許請求の範囲】
【請求項1】
行動可能なエージェントが行う行動によって、状態が遷移する、前記行動ごとの状態遷移モデルに基づき、前記状態遷移モデルの各状態について、前記状態遷移モデルの所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記所定の状態を基準とする状態価値を算出する状態価値算出手段と、
前記状態遷移モデル、及び、前記所定の状態を基準とする状態価値に基づき、前記状態遷移モデルの各状態、及び、前記エージェントが可能な各行動について、前記所定の状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値を算出する行動価値算出手段と、
前記行動価値に基づき、前記状態遷移モデルの状態のうちの、前記行動価値のばらつきが大きい状態を、エージェントが行う行動によって到達する目標となる目標状態に設定する目標状態設定手段と、
前記目標状態に向かうためのエージェントの行動を選択する行動選択手段と
を備えるデータ処理装置。
【請求項2】
エージェントが外部から観測する観測値に基づき、前記状態遷移モデルの状態の中で、前記観測値が観測される状態である現在状態を認識する状態認識手段をさらに備え、
前記所定の状態は、前記現在状態であり、
前記状態価値算出手段は、前記現在状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記現在状態を基準とする状態価値を算出する
請求項1に記載のデータ処理装置。
【請求項3】
前記行動選択手段は、
前記状態遷移モデルに基づき、前記状態遷移モデルの各状態について、前記目標状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記目標状態を基準とする状態価値を算出し、
前記状態遷移モデル、及び、前記目標状態を基準とする状態価値に基づき、前記状態遷移モデルの各状態、及び、前記エージェントが可能な各行動について、前記目標状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値を算出し、
前記現在状態の行動価値に基づき、前記目標状態に向かうためのエージェントの行動を選択する
請求項2に記載のデータ処理装置。
【請求項4】
前記現在状態への状態遷移が生じた前記エージェントの行動についての状態遷移モデルを、前記現在状態への状態遷移に基づいて更新するモデル更新手段をさらに備える
請求項3に記載のデータ処理装置。
【請求項5】
所定の行動についての前記状態遷移モデルは、前記エージェントが、第1の状態において、前記所定の行動を行うことにより、第2の状態に遷移した頻度を表し、
前記モデル更新手段は、前記頻度をインクリメントすることにより、前記状態遷移モデルを更新する
請求項4に記載のデータ処理装置。
【請求項6】
前記エージェントは、
所定の空間を、前記エージェントが行動する行動環境として、前記行動環境内を行動し、
前記行動環境内の前記エージェントの位置を、前記観測値として観測し、
前記状態は、前記行動環境を小領域に区分することにより得られる前記小領域を表す
請求項5に記載のデータ処理装置。
【請求項7】
前記行動選択手段は、
前記現在状態と前記目標状態とが一致するかどうかを判定し、
前記現在状態と前記目標状態とが一致しない場合、前記現在状態の行動価値に基づき、前記目標状態に向かうためのエージェントの行動を選択する
請求項6に記載のデータ処理装置。
【請求項8】
前記現在状態と前記目標状態とが一致する場合、再び、
前記状態価値算出手段は、前記状態遷移モデルに基づき、前記現在状態を基準とする状態価値を算出し、
前記行動価値算出手段は、前記状態遷移モデル、及び、前記現在状態を基準とする状態価値に基づき、前記行動価値を算出し、
前記目標状態設定手段は、前記行動価値に基づき、前記目標状態を設定する
請求項7に記載のデータ処理装置。
【請求項9】
前記目標状態設定手段は、前記状態遷移モデルの各状態について、前記行動価値の分散を求め、前記行動価値の分散が所定の閾値以上の状態の中で、所定の回数以内の状態遷移によって、前記現在状態から到達することができる状態を、前記目標状態に設定する
請求項2に記載のデータ処理装置。
【請求項10】
前記行動選択手段は、前記現在状態の行動価値に基づき、ε-greedy法、又は、softmax法により、前記目標状態に向かうためのエージェントの行動を選択する
請求項3に記載のデータ処理装置。
【請求項11】
データ処理装置が、
行動可能なエージェントが行う行動によって、状態が遷移する、前記行動ごとの状態遷移モデルに基づき、前記状態遷移モデルの各状態について、前記状態遷移モデルの所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記所定の状態を基準とする状態価値を算出し、
前記状態遷移モデル、及び、前記所定の状態を基準とする状態価値に基づき、前記状態遷移モデルの各状態、及び、前記エージェントが可能な各行動について、前記所定の状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値を算出し、
前記行動価値に基づき、前記状態遷移モデルの状態のうちの、前記行動価値のばらつきが大きい状態を、エージェントが行う行動によって到達する目標となる目標状態に設定し、
前記目標状態に向かうためのエージェントの行動を選択する
ステップを含むデータ処理方法。
【請求項12】
行動可能なエージェントが行う行動によって、状態が遷移する、前記行動ごとの状態遷移モデルに基づき、前記状態遷移モデルの各状態について、前記状態遷移モデルの所定の状態に近い状態への遷移確率が大きい状態ほど、値が大きくなる、前記所定の状態を基準とする状態価値を算出する状態価値算出手段と、
前記状態遷移モデル、及び、前記所定の状態を基準とする状態価値に基づき、前記状態遷移モデルの各状態、及び、前記エージェントが可能な各行動について、前記所定の状態を基準とする状態価値が大きい状態への遷移確率が大きいほど、値が大きくなる行動価値を算出する行動価値算出手段と、
前記行動価値に基づき、前記状態遷移モデルの状態のうちの、前記行動価値のばらつきが大きい状態を、エージェントが行う行動によって到達する目標となる目標状態に設定する目標状態設定手段と、
前記目標状態に向かうためのエージェントの行動を選択する行動選択手段と
して、コンピュータを機能させるためのプログラム。

【図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

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate