以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
更に、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の学習制御装置(例えば、図6のコントローラ151)は、環境の状態を知覚し、その知覚した内容に基づいて、行動を選択することができる機器の学習を制御する学習制御装置であって、行動と環境の状態の変化を学習し、これを基に、所定の行動に対する環境の状態の変化を予測する予測手段(例えば、図1の予測部31)と、行動における目標状態を設定する目標状態付与手段(例えば、図2の評価部32)と、予測手段による予測に基づいて、現在の状態から目標状態付与手段により設定された目標状態に達するまでの行動シーケンスを計画する計画手段(例えば、図1の計画部33)と、計画手段により計画された行動シーケンスに対して、行動を制御するとともに、行動における入出力関係を学習する制御手段(例えば、図1の制御部34)とを備え、予測手段は、学習に基づいた予測の精度に関する第1の情報(例えば、予測誤差)を算出して目標状態付与手段に供給し、計画手段は、制御手段により制御された行動シーケンスに基づく行動が目標状態に近づいたか否かを示す指標に対応する第2の情報(例えば、目標達成度または計画誤差)を算出して目標状態付与手段に供給し、制御手段は、入出力関係の学習の進捗に関する第3の情報(例えば、制御誤差)を算出して目標状態付与手段に供給し、目標状態付与手段は、第1の情報、第2の情報、および、第3の情報に基づいて、目標状態を設定することを特徴とする。
目標状態付与手段は、第1の情報、第2の情報、および、第3の情報に基づいて、予測手段による予測の精度、計画手段による指標、および、制御手段による学習の進捗のうちのいずれも向上していない(例えば、フロー理論における「不安」の状態)場合、目標状態を変更することができる。
目標状態付与手段は、第1の情報、第2の情報、および、第3の情報に基づいて、予測手段による予測の精度、計画手段による指標、および、制御手段による学習の進捗が全て十分である(例えば、フロー理論における「退屈」の状態)と判断した場合、目標状態を変更することができる。
目標状態付与手段は、環境の状態を示す変数のうちの少なくとも1つを選択し、選択された変数(例えば、エネルギーまたは乳酸量)において、所定の数値条件(例えば、「快」として設定される数値)を設定し、環境の状態において、選択された変数が所定の数値条件を満たさない場合、選択された変数が所定の数値条件を満たす目標状態を設定することができる。
計画手段は、予測手段による予測に基づいて行動シーケンスを計画することができなかった場合、目標状態付与手段に対して、行動シーケンスを計画することができなかったことを通知することができ、目標状態付与手段は、計画手段から行動シーケンスを計画することができなかったことの通知を受けた場合、目標状態を変更することができる。
制御手段は、計画手段により計画された行動シーケンスに基づいた行動により目標状態に到達した場合、行動における入出力関係を学習することができる。
制御手段は、計画手段により計画された行動シーケンスに基づいた行動により目標状態に到達しなかった場合、到達した状態を目標状態に置き換えて、行動における入出力関係を更に学習することができる。
計画手段は、目標状態付与手段により設定された目標状態を示す第1の変数と相関性の高い第2の変数を選択し、選択された第2の変数を制御することにより目標状態に達することができる行動シーケンスを計画することができる。
請求項9に記載の学習制御方法は、環境の状態を知覚し、その知覚した内容に基づいて、行動を選択することができる機器の学習を制御する学習制御装置の学習制御方法であって、行動と環境の状態の変化を学習する予測学習ステップ(例えば、図28のステップS9の処理、図31のステップS37の処理、または、図32のステップS69の処理)と、行動における目標状態を設定する目標状態付与ステップ(例えば、図28のステップS4の処理、図31のステップS33の処理、もしくは、図32のステップS64またはステップS65の処理)と、予測学習ステップの処理による学習に基づいた予測を利用して、現在の状態から目標状態付与ステップの処理により設定された目標状態に達するまでの行動シーケンスを計画する計画ステップ(例えば、図28のステップS5の処理、図31のステップS34の処理、または、図32のステップS66の処理)と、計画ステップの処理により計画された行動シーケンスに対して、行動を制御する行動制御ステップ(例えば、図28のステップS7の処理、図31のステップS35の処理、または、図32のステップS67の処理)と、行動制御ステップの処理により制御される行動と対応する環境との入出力関係を学習する制御学習ステップ(例えば、図28のステップS12の処理、図31のステップS39の処理、または、図32のステップS71の処理)と、予測学習ステップの処理による学習に基づいた予測の精度に関する第1の情報(例えば、予測誤差)、制御ステップの処理により制御された行動シーケンスに基づく行動が目標状態に近づいたか否かを示す指標に対応する第2の情報(例えば、目標達成度または計画誤差)、および、入出力関係の学習の進捗に関する第3の情報(例えば、制御誤差)を算出する算出ステップ(例えば、図28のステップS13の処理、図31のステップS40の処理、または、図32のステップS72の処理)と、算出ステップの処理により算出された第1の情報、第2の情報、および、第3の情報に基づいて、目標状態を再設定するか否かを判断する判断ステップ(例えば、図28のステップS14の処理、図31のステップS41の処理、または、図32のステップS75の処理)とを含むことを特徴とする。
また、請求項10に記載のプログラムにおいても、各ステップが対応する実施の形態(但し一例)は、請求項9に記載の行動制御方法と同様である。
以下、図を参照して、本発明の実施の形態について説明する。
古典的なロボティクスや人工知能の分野では、移動ロボットや関節型ロボットの、全体または一部の移動、動作などにおける経路や軌道生成などにヒューリスティクス探索を用いて、現状態から目標状態まで行動の選択肢を考慮しながら探索することで解を得る方法が成功を収めている。この分野では、ロボットの移動モデルや関節の運動学、動力学を事前に正確に知ることができているという有利な点があるが、ロボットの姿勢などを考慮した非常に大きな状態空間(=作業空間)の中でも効率的に解を求めることができる計算手法が発達している。
また、近年、パターン認識の分野では、サポートベクタマシン(SVM)やAdaBoostといった高い汎化能力を持った学習機械のアルゴリズムが多く提案されている。これらの学習機械は、例えば、画像や音声といった大きな次元の入力を扱うことに長けており、ニューラルネットワークなどを使った既存のパターン学習の応用として置き換えられて用いられている。
本発明においては、次元の呪いから開放されるために、SVM(Support Vector Machine)などのパターン学習器を予測や制御の学習に用いて、ヒューリスティクス探索を使って広大な状態空間を効率的に探索することにより、目標とする行動シーケンスを生成することを目指している。また、こうした一連の流れは、上述した人間の思考形態を参考にしているために、外から人間が見てもその行動を理解しやすく、現実的な時間で解に到達できるものとなる。
一般的に、「エージェント」とは、環境の状態を知覚(例えば、センシング)し、その知覚した内容に基づいて、行動を選択することができる自律的主体のことである。
本発明の一実施の形態における自律エージェントの行動を制御するための、自律行動制御モデルの基本構成を図1に示す。本手法は大きく分けて、予測部(FwdModel)31、評価部(Evaluator)32、制御部(Controller)33、および、計画部(Planner)34の4つのモジュールから構成されている。また、図中の(Env.)は、環境(Environment)を示す。
本発明の一実施の形態においては、特に、エージェントの行動制御の構成要素である予測部31、計画部33、制御部34の働きと内発的動機の分類が似通っている事に着眼し、それぞれの構成要素の能力向上(誤差の減少)を、内発的動機の実装であると捉えている。また、タスクの選択において、これらの能力向上の進捗を利用することでタスクを継続するべきか否かを判断している点には、フロー理論の知見を取り込んでいる。
これにより、既存の強化学習では、自律エージェントに特定のタスクが与えられていたのに対して、自律エージェント自体が、自分の能力に見合ったタスクを自ら見つけ出して実行することができるようになっている。自律エージェントは、タスクを達成した後にも、この活動を継続することはできるので、新たに獲得した能力(学習が進んだ制御部34)を使うことで、今までは解けなかった、より高次のタスク設定を行うことができる。こうして、自律エージェントは、制御部34の階層的な構造を学習することが可能なようになされている。
予測部31は、自律エージェントが時刻tに取ったアクションatと時刻tのセンサ入力St(自律エージェントのおかれている環境)から時刻t+1のセンサ入力St+1が取る値を常に予測学習している。換言すれば、予測部31は、環境を教師とした予測学習を行っている。予測部31は、学習に、統計学習による関数近似器を使う。
評価部32は、予測部31による予測のエラー、計画部33による計画のエラー、制御部34による行動の制御のエラーを観測し、それをもとに、自律エージェントが達成するべきセンサ状態空間上の達成状態を設定し、目標とする達成状態(以下、目標状態とも称する)を計画部33に与える。
計画部33は、現在の状態から、評価部32により与えられた目標状態に達するまでの行動シーケンスをプラン(計画)する。このプランには、予測部31を使って、選択したアクションを行った場合の状態の遷移を予測し、その先でまたアクション選択を行う探索方法を取る。目標までのプランが生成できた場合には、その行動シーケンス、すなわち、1つまたは複数のアクションが順に実行される。
制御部34は、計画部33による計画と環境とを教師とした学習を実行し、自律エージェントのアクションを制御する。自律エージェントのアクションが成功した場合、制御部34は、その入出力関係、すなわち、与えられた目標に対して実行された成功シーケンスにおける自律エージェントの環境を示すセンサ入力と、それに対して実行されたアクションを学習する。
すなわち、実行されたプランが成功した場合には、制御部34により、目標状態を固定入力として、観測した状態と選択したアクションの入出力関係が学習される。これにより、制御部34は、計画部33が時間を掛けて生成したプランをパターンとして覚えることができ、学習を積み重ねることにより、目標を与えられることで自動的にアクションを生成することができる機能を有するようになる。
また、制御部34は、これらの学習に、統計学習による関数近似器を使う。
予測部31と制御部34の学習が十分に進むと、図2に示されるように、目標状態を一つのアクションとして階層化することができる。そうして階層化された上位のレイヤでは、下位のレイヤの目標状態をアクションとして、計画部33が、異なる目標状態の実現シーケンスを生成して新たな予測部41と制御部42を構成することができ、次々と、より高次の複雑な対象を制御することができる。
図1および図2を用いて説明した行動制御モデルによる環境のセンシングと行動の制御の具体例について説明するために、自律エージェントの一例として、一つの関節を持ち、そこにトルクを掛けることで回転するリンクを有する、単純なロボットを考える。図3に自律エージェント101の構成例を示す。
この自律エージェント101の出力は、関節に与えるトルク(τ)である。また、この自律エージェント101への入力として、現在の角度(θ)および角速度(ω)を観測することができる。また、この環境には重力(θ=0°となる方向)も存在し、トルクは重力に比して弱いために、一定方向に最大トルクを与えても、自律エージェント101は、自身を真上(θ=π(180°))に持ち上げることはできない。
また、図3に示される自律エージェント101を拡張して、内部状態を有するようにすることができる。例えば、自律エージェント101の内部状態として、エネルギーと乳酸の2つのパラメータを与えることができる。エネルギーは、与えたトルク量に比例して減少していく。自律エージェント101がある位置(θE)に行くと、エネルギーは補充されて増加される。乳酸は、消費したエネルギーに比例して増大し、定常的に僅かずつ分解されて減少していく。エネルギーが無くなるか、または、乳酸が最大になると、自律エージェント101はトルクを出すことができなくなる。
内部状態を持つ自律エージェント101と、エネルギーの補給地(エサ)を表したのが図4である。図4においては、自律エージェント101の内部状態として、エネルギー(E)112と乳酸量(L)113が与えられ、餌111は、ある位置(θE)に設けられているものとする。
本発明では、このような仮想的な単純化されたエージェントについて実施例を述べるが、外界に対してアクションし、外界をセンシングできるようなエージェントであれば、本発明は、どのようなものに対しても、適応可能な手法である。
図4を用いて説明した自律エージェント101において、計画に基づいてトルクを与えられて行動するとともに、環境を取得するための構成例を図5に示す。
自律エージェント101は、所定の長さのアーム131を有し、アーム131は、DCモータ132により回転駆動される。すなわち、上述したトルクは、DCモータ132の回転トルクに対応する。アーム131の回転角は、ポテンションメータ133により測定される。また、アーム131には、例えば、その先端部分に、所定の重さの錘が備え付けられるようにしても良い
アーム131は、上述したように、DCモータ132により発生される1方向の最大トルクだけでは、真上(θ=180°)に持ち上げられることはない。すなわち、アーム131は、所定の角度にあるアーム131に重力によって与えられる加速度と、DCモータ132によりアーム131に与えられるトルクとが所定の条件を満たした場合に、真上に持ち上げられる。
ポテンションメータ133は、例えば、可変抵抗によって構成されており、アーム131の角度により、その抵抗値が変わるため、アーム131の角度を検出することができる。
また、アーム131の先端部には、遮光部134が設けられ、餌111に対応する位置に設けられているフォトセンサ135の位置に遮光部134が到達して速度0となった場合(すなわち、θ=π,ω=0)、フォトセンサ135には外部からの光が照射されない。すなわち、フォトセンサ135が外部からの光を検知しない場合は、自律エージェント101が餌111に到達した場合に対応する。
図6は、図5を用いて説明したアーム131を有する自律エージェント101を制御するコントロールユニット141−1の構成例を示すブロック図である。
コントローラ151は、モータドライバ152を制御し、DCモータ132を駆動させることにより、アーム131を動作させる。そして、コントローラ151は、ポテンションメータ133からの入力により、アーム131の現在の角度(θ)を観測し、これから角速度(ω)を検出するとともに、フォトセンサ135からの入力を基に、自律エージェント101がある位置(θE)に存在する餌111を取得したか否かを検出することができる。コントローラ151は、行動、すなわち、アーム131の動作と周囲の環境とを学習するとともに、これらを基に、行動を計画する。行動の計画の詳細については後述する。そして、コントローラ151は、計画された行動に基づいてモータドライバ152を制御し、DCモータ132を駆動させることにより、アーム131に計画された行動を実行させる。
DCモータ132の駆動により電源142から供給されて消費される電力量は、電力計153により計測され、コントローラ151に計測結果が供給される。コントローラ151は、与えたトルク量に比例して減少していくエネルギー、および、消費したエネルギーに比例して増大するとともに、定常的に僅かずつ分解されて減少していく乳酸を、電力計153から供給される消費電力量の計測値を基に算出することができる。
すなわち、図4のエネルギーおよび乳酸量は、電力計153から供給される消費電力と、フォトセンサ135から得られるセンサ入力を基に、コントローラ151によって計算される。
また、コントローラ151には、必要に応じて、ドライブ154も接続されており、ドライブ154には、例えば、磁気ディスク、光ディスク、光磁気ディスク、または、半導体メモリなどのリムーバブルメディア143が装着され、コントローラ151と情報を授受できるようになされている。
また、自律エージェント101が餌111を取得したか否かの検出には、フォトセンサ135を用いる以外の方法を用いるようにしてもよい。フォトセンサ135を用いる以外の例について、図7を用いて説明する。
例えば、図7に示されるように、自律エージェント101のアーム131の先端に、導電部161を備え、導電部161を電線162により接地させる。そして、餌111の位置に対応する位置に設置されている導電端子163に、アーム131の電導部61が接した場合、コントロールユニット141−2に設けられているスイッチング素子171が通電される。スイッチング素子171は、コントローラ151と接続されており、コントローラ151は、スイッチング素子171のスイッチング、すなわち、アーム131が餌111に到達したことを検出することができる。
すなわち、図1および図2を用いて説明した自律行動制御モデルは、図6または図7のコントローラ151が有する機能を示す機能構成である。
次に、図1および図2を用いて説明した自律行動制御モデルの予測部31の学習について説明する。
予測部31の学習には、統計学習による関数近似器が用いられ、関数近似器として、例えば、”「Support Vector Machine(SVM)」”Advances in Kernel Methods Support Vector Learning”, The MIT Press, 1997.”に記載されている、SVR(Support Vector Regression)が用いられる。
SVMの一つのクラスとして回帰推定を行うSVRがある。SVMは、分類問題を解く学習アルゴリズムとして提案された機械学習である。分類問題を解く際、SVMは学習データから分類にとって重要となるデータ(サポートベクターと称される)を抽出し、これに基づき判別面を構成する。この特性を回帰問題にも適用したのがSVRである。
図4を用いて説明した自律エージェント101では、観測される状態変数はS=(θ,ω,E,L)で示され、自身の取れるアクションは、A=(τ)で示される。したがって、予測部31の予測学習では、時刻tのこれらの変数から、時刻t+1のそれぞれの変数を予測する以下の式(1)乃至式(4)に示される差分方程式の関数を推定する。すなわち、予測部31による予測は、時刻t+1のそれぞれの変数を直接予測するのではなく、これらの変数の変化値(Δθ,Δω,ΔE,ΔL)を予測するものである。
実際には、予測部31は、各時刻tにおいて、現在の変数を教師信号として、一つ前の時刻t−1に観測および実行された変数を入力とした関数学習を行う。このように、予測部31は、各時刻において学習サンプルを与えられて学習を続ける。したがって、予測部31の予測は、始めのうちにエラーが大きくても、長い時間を経て複数の経験を得ることで、関数近似の精度を向上させることができ、予測のエラーを減少することができる。
また、ニューラルネットワーク等では、同様にして逐次サンプルを与えることによって漸近的に推定を行うことができるが、ここでは、汎化能力が高く、収束時間も短いSVRを用いるものとする。SVRは通常バッチ型の学習機械であるが、その逐次学習のアルゴリズムとして、例えば、”Junshui Ma and James Theiler and Simon Perkins, ”Accurate on-line support vector regression”, Neural Computation, vol.15,11, pp2683-2703, 2003, MIT Press.”に記載されている、AOSVR(Accurate Online Support Vector Regression)が提案されており、予測部31においては、これが利用されるものとすることができる。また、SVRのカーネルとしてはガウスカーネルを用いるようにすることができる。
次に、計画部33によるプランニングについて説明する。
計画部33によるプランニングに必要な目標状態は、評価部32によって与えられる。例えば、ここでは、θd=π(すなわち、最も上に振りあがった状態であるθ=180°)が目標状態として与えられるものとする。計画部33は、現在の状態S0から目標状態に達するまでにアクションとして与えられるトルクシーケンスを探索によって生成する。
計画部33が実行する探索においては、ヒューリスティクス探索の手法が用いられ、例えば、”J.Pearl, ”Heuristics: Intelligent Search Sttategies for Computer Problem Solving”, Addison-Wesley, 1985.”に記載されている、A*サーチ(A*探索)のアルゴリズムを使って、自律エージェント101のアクションが求められるものとする。
以下にA*サーチのアルゴリズムについて、簡単に説明する。
(a)まず、現在の状態から取り得る全てのアクションを取った場合の次状態を求め、その状態を新たなノードとして現ノードからリンクを張る(ここでは、次の状態を求めるために予測部31を使う)。
(b)次の状態、すなわち、(a)においてリンクを張った先が、既に到達した他の状態と等しければ(もしくは近ければ)、そのノードまでの到達コスト(ここでは、例えば、到達にかかる時間ステップ)を比較する。
(c)比較した結果、コストの低い方を残し、高い方を棄てる。
(d)次の状態において、新しくノードが生成された場合、すなわち、(a)においてリンクを張った先が既に到達した他の状態と異なっていたり、(c)において、(a)でリンクを張った先がコストの低いほうとして残された場合は、それぞれの新しいノードにおいて、次の式(5)の評価関数を計算し、候補ノードに加える。
式(5)において、g(n)は、スタートノードから現在のノードまでの経路コストを示し、h(n)は、現在のノードからゴールノードまでの経路の見積りコスト(ここでは状態空間での目標までの距離を用いる)を示し、αは、重み係数(上記2つのコストの配分)を示している。
(e)全ての候補ノードの中から評価関数の最も低いものを選んで現ノードとする。
(f)(e)において現ノードとして選択されたノードは候補ノードからはずす。
(g)ゴール状態に等しく(もしくは十分近く)なるまで、上述した(a)乃至(f)の操作を繰り返す。
計画部33によるプランニングを基に、制御部34は、行動、すなわち、行動シーケンスに基づいたアクションの実行を制御する。計画部33によるプランニングと制御部34による計画の実行(行動)の反復によって、自律エージェント101は、目標状態にたどり着くことができる。
計画部33によるプランニングを基に、制御部34は、行動、すなわち、行動シーケンスに基づいたアクションの実行を制御する。計画部33によるプランニングと制御部34による計画の実行(行動)の反復によって、自律エージェント101は、目標状態にたどり着くことができる。計画部33によるプランニングと計画部33による実行の反復について、図8乃至図10を用いて説明する。
図8および図9においては、状態空間141において、縦軸を速度ω、横軸を位置θとし、スタート位置151を、実空間においてアーム131の向きが真下(θ=0(0°))で速度0の位置(縦軸、横軸ともに0となる位置)としている。また、ゴール位置152は、実空間においてアーム131の向きが真上(θ=π(180°))で速度0の位置であり、図中黒丸印で示されている。なお、状態空間141において、π=−πであることは言うまでもなく、図中の黒丸印は、状態空間141の右側のみに示されているが、θ=−π,ω=0もゴール位置152に等しい。
更に、図8および図9においては、演算済みのノードが白丸(○)印で、候補経路が実線で、候補のノード、すなわち、経路の先端がバツ(×)印で示されている。
初期状態S0として、下に静止している状態(θ=0,ω=0)が与えられた場合、正確な(充分に学習された)予測部31を用いて探索を実行すると、図8に示されるように、スタート位置151からゴール位置152に向かって経路が探索され、図9のように(θ,ω)空間で、ノードが広がっていき、十分に時間を掛けて探索すると、図9Eに示されるように、目標状態にたどり着くことができる。
図8に示されるように、まず、スタート位置151から探索が始まり、演算済みノードを基に、候補経路が算出され、それぞれの経路の先端が候補のノードとなり、候補のノードのうち、評価関数の最も低いものが現ノードとされる。
すなわち、計画部33は、上述したA*サーチのアルゴリズムに基づいて、現在の状態(現ノード)から取り得る全てのアクションを取った場合の次状態を求め、その状態を新たなノードとして現ノードからリンクを張り、リンク先が既に到達した他の状態と等しい、または、近ければ、そのノードまでの到達コストを比較して、コストの低い方を残し、高い方を棄てる。このようにして、新しくノードが生成された場合、計画部33は、新しいノードについて、上述した式(5)の評価関数を計算し、候補ノードに加える(前の候補ノードは残る)。そして、計画部33は、全ての候補ノードの中から評価関数の最も低いもの、すなわち、一番確からしい経路を選んで次の現ノードとし、現ノードとして選択されたノードは候補ノードから外し、更に、新たな現ノードにおいて取り得る全てのアクションをとった場合の次状態を求める。
そして、このようにして探索を繰り返すことにより、候補ノードのうちのいずれかが、ゴール状態に等しく、または、十分近くなったら、A*サーチのアルゴリズムに基づいた探索が終了され、計画が決まる。
図9A乃至図9Eは、計画を決めるまでの探索処理におけるノードの広がりと時間との関係を示す図である。図9Aは、試行が開始されてから十分な時間がたっていない状態であり、図9B,図9C,図9Dと、時間の経過にしたがって、(θ,ω)空間で、ノードが広がっていき、探索に十分な時間を掛けることにより、図9Eに示されるように、目標状態であるゴール位置152にたどり着く行動シーケンスを求めることができる。
図9に示されるようなプランは、状態遷移のモデルが正確な場合には問題がなく正解シーケンスを得ることができるが、まだ状態遷移の正確なモデルが得られておらず、状態の遷移が予測部31によって学習されている状態である(予測部31の学習が不十分である)場合、計画部33は、予測部31による誤った予測によって、誤ったシーケンスを生成してしまう。
この自律エージェント101では、誤った予測によって作成されたプランをとりあえず実行する。この結果、自律エージェント101は、予測しなかったような状態へ遷移してしまうかもしれないが、予測部31は、この実行結果も学習する。すなわち、予測部31により、今まで経験していなかった入出力関係(現在の環境とアクションに対する次の時刻の環境の予測)が学習されるので、学習が進むにつれ、予測の誤りが修正される。これにより、計画部33において自律エージェント101の行動が再度プランニングされた場合、以前の誤った予測によって作成されたプランとは異なるプランの生成結果を得ることができる。
また、予測部31においては、統計学習による関数近似器が用いられているので、学習が進むことにより、学習された入力に対する出力の予測のみならず、学習された入力の近傍の入力に対する出力の予測も改善される。
また、プランを実行しても目標状態に達成しなかった場合、自律エージェント101自身の現状態は、初期状態から変化してしまうので、その状態から目標状態に向けて、学習が進んだ予測部31の予測を基に次の行動シーケンス計画され、計画された行動シーケンスが実行される。このようにして、プランと実行が繰り返されていくうちに、次第に予測部31による予測が正確になるので、計画部33において、目標状態にたどり着くような行動シーケンスを得ることができるようになる。
図10に、(θ,ω)空間で、プランを実行する度に、プランと実行結果の誤差が減少してゆき、最終的(図10においては5回目)には目標到達シーケンスを実行することができる例を示す。
図10においては、図8および図9と同様に、縦軸を速度ω、横軸を位置θとして、計画された行動シーケンスと実際の行動(実行)がプロットされている。計画された行動シーケンスが点線で示される軌跡で、実行が実線で示される軌跡で、それぞれ示されているとともに、計画を示す点線の先端部分(図中、「::」が示されている位置)が目標位置(Goal)となる。
図10Aに示される試行1回目(Trial1)においては、計画と実行にずれが生じている。
計画を実行して、成功しない、すなわち、目標位置に到達しなかった場合、試行1回目の終了状態から、再度目標に向かって計画が定められ、2回目の試行が実行される。
図10Bに示される試行2回目(Trial2)、図10Cに示される試行3回目(Trial3)、および、図10Dに示される試行4回目(Trial4)においても、計画と実行にはずれが生じている。しかしながら、これらの実行のたび、その結果を学習した予測部31による予測精度が向上するため、計画と実行の差が減少していく。このようにして、各試行の終了状態から、再度目標に向かって計画が繰り返される。
そして、図10Eに示される試行5回目(Trial5)において、ほぼエラーがなくなり、成功シーケンスを得ることができている。
このようにして、計画と実行が繰り返されることにより、予測部31の学習が進んで、予測精度が向上する。これにより、計画部33は、目標状態に到達することができる行動シーケンスを計画することができる。
次に、制御部34の学習について説明する。
制御部34の学習には、統計学習による関数近似器が用いられ、関数近似器として、例えば、上述したSVRが用いられる。制御部34は、成功のシーケンスが実行された場合、初期状態から目標状態に至るまでの各状態とその状態で実行したアクションの関係を、次の式(6)に示される関数として学習する。
図11に、状態0から状態nにおいて、式(6)において実際に用いるデータの関係を表す。
制御部34は、図11においてそれぞれ四角で囲まれた対(目標状態を固定入力とした入出力)を学習することにより、時刻tに観測した状態から次の時刻t+1に実行するべきアクションat+1を決定することができるようになる。
制御部34の学習には、統計学習による関数近似器が用いられているので、成功シーケンスを学習することにより、それ以降の行動の制御において、学習された経路の近傍の行動も改善することができる。
すなわち、自律エージェント101は、制御部34に複数の成功シーケンス(成功体験)を繰り返し学習させることによって、次第にどの状態からでも目標状態へ向かうことのできるような制御器(制御部34が実行するべき制御)を獲得することができる。
例えば、具体的には、目標状態としてアーム131が振り上がった状態(θ=π(180°),ω=0)が与えられた場合、図12に示されるように、複数の状態から目標状態までの成功シーケンスが学習サンプルとして次々と与えられていくと、制御部34において、次第に、図13の相図のような任意の状態から目標状態へ向かう構造、すなわち、いずれの位置からでも目標状態に到達することが可能な成功シーケンスの集合が学習される。
なお、図12および図13においても、状態空間において、π=−πであることは言うまでもない。
この自律エージェントの場合、この関数は具体的には次の式(7)に示されるような関数となっており、時刻tに観測された(θ,ω)を使って、次時刻t+1のトルク出力を求めることにより、振り上がりシーケンスを生成することができるようになされている。
また、制御部34が、上述した場合と同様の学習を、目標状態をパラメータとした次の式(8)に示される関数として学習した場合(目標状態と環境を入力とし、アクションを出力とした入出力を学習した場合)には、任意の状態から任意の目標状態に制御することができる制御gを獲得することができる。この場合には、評価部32が生成する目標状態を次々と変更して、それに向かってプランの作成および作成されたプランの実行が繰り返して行われることにより、様々な目標状態に対する成功シーケンスが体験される。これにより、任意の状態から任意の目標状態に到達するための行動を制御することができる制御器(制御部34が実行するべき制御)が獲得される。
以上説明した様に、本発明が適用された場合、評価部32が目標となる状態を与えることで、予測部31がエージェントの入出力関係を逐次学習し、計画部33が予測部31の予測を利用して、目標状態までの特定経路を探索して行動シーケンスを計画し、制御部34の制御により、計画が実行される。そして、計画が成功して、目標状態に到達した場合、制御部34がその経路パターン(成功シーケンス)を学習するようになされている。そして、このような学習が繰り返されることにより、自律エージェント101は、任意の状態から自動的に目標に到達できるような制御部34を獲得することができるようになされている。
換言すれば、予測部31は、自分自身の取ったアクションと環境の変化(センサ入力の変化)の関係を常に学習しており、誤った計画でも実行されることによって予測部31の予測精度が改善されていく。計画部33は、現在の自分の状態から目標状態までを予測部31の予測をリハースすることにより計画をたてる。そして、制御部34は、計画された行動シーケンスを構成するアクションの実行を制御するとともに、実際に計画した行動シーケンスが成功した場合、その入出力関係を学習する。また、予測部31の予測学習と制御部34の制御学習には、統計学習による関数近似器(例えば、Support Vector Regression)が用いられる。また、計画部33においては、ヒューリスティクス探索の手法(例えばA*サーチ)が用いられて、行動シーケンスが生成される。
すなわち、予測部31は、大規模サンプルや、大次元入力の学習に耐える関数近似器の能力を利用することにより、次元に呪われることなく、予測学習を行うことができる。また、未熟な予測部31で生成したプランにより、誤ったプランが実行されることでも、予測部31は不得手な状態空間を経験し、予測性能を向上させることができる。
また、計画部33がヒューリスティクス探索の手法を用いることにより、入力の次元が増えて状態空間が大きくなっても、Q学習や動的計画法を用いた場合と比較して、探索の組合せが爆発してしまうことを抑制することができる。
また、成功シーケンスの学習が繰り返されることにより、制御部34を汎化することが可能である。
更に、本発明が適用された場合、目標状態を連続量のパラメータとした制御の学習を行うことが可能である。これにより、任意の状態から任意の目標状態に到達するための行動を制御することができる制御器(制御部34が実行するべき制御)を獲得することができる。更に、本発明においては、人間の思考形態にあった学習を行うことができ、その結果、人間に理解しやすい行動パターンを生成することができる。
このようにして、本発明においては、次元の呪いから開放されるために、SVMなどのパターン学習器を予測部31や制御部34の学習に用いて、ヒューリスティクス探索を使って広大な状態空間を効率的に探索することにより、目標とする行動シーケンスを自律的に生成することができる。また、こうした一連の流れは、上述した人間の思考形態を参考にしているために、外から人間が見てもその行動を理解しやすく、現実的な時間で解に到達できるものとなる。
上述したように、目標状態の設定と、観測可能な環境の変数、または、行動を制御するための変数として選択される次元が適当である場合、予測部31による予測学習が進むことにより、計画部33は目標状態に到達することができる行動シーケンスをプランすることができるようになり、制御部34は、成功シーケンスを学習することができる。
しかしながら、自律エージェントの制御において、観測可能な環境の変数の次元が多い場合や、行動を制御するための変数の次元が多い場合、入出力としていずれの次元を選択するか、また、目標状態をどのようにして設定するかによって、学習が著しく進捗するときと、進捗しないときがある。すなわち、予測部31が学習する入出力関係、または、計画部33のプランに用いられる入出力関係、もしくは、評価部32による目標状態の設定によって、例えば、目標到達までの過程が複雑すぎたり、現在の状態からでは目標状態が遠く、直接目標状態に到達することができる行動シーケンスを計画することが困難である場合や、選択された入出力関係に相関性がない、または、相関性が薄い場合などにおいては、現在の状態から目標状態に到達するための行動シーケンスをプランすることが困難となり、学習は進捗せず、自律エージェントは成功シーケンスを得て成長することができない。
このような場合、自律エージェントは、計画部33により、現在の状態から目標状態に到達するための行動シーケンスをプランすることができたか否かを判断し、必要に応じて、タスク(変数)またはアクションを変更する。
また、評価部32は、予測部31、計画部33、および、制御部34から、それぞれ、予測誤差、計画誤差、制御誤差を取得し、予測、計画、制御が、それぞれ向上しているか否かを判断し、その結果、必要に応じて、目標状態を再設定するようになされている。目標状態が再設定されることにより、制御部34による制御を階層化することが可能となる。
予測誤差、計画誤差、制御誤差の詳細については、後述する。
自律エージェントが目標設定を行い、強化学習を行うことによって制御部34を階層化させていく手順について、図14乃至図24を用いて説明する。
自律エージェントは、図14に示されるように、環境として観測できる多次元の変数を有し、制御できる多次元の変数を有することができる。
まず、評価部32は、多次元の入力次元のうち特定の次元に着目する。この次元の選択指針としては、例えば、制御可能性を重視して、予測誤差の累積が少ないものを選択するようにしてもよいし、予測性能向上を重視して、予測誤差の累積が大きいものを選択してもよいし、ランダムに選択するようにしてもよい。
次に、評価部32は、選択した次元の中で目標となる状態を設定し、その目標状態を計画部33と制御部34−1に供給する。目標状態の設定指針としては、例えば、これまでの経験により積み上げられた学習成果を重視して、今までに経験した回数の多い状態を選択してもよいし、状態空間においてこれまでに経験していない部分を探索する必要性を重視して、今までに経験した回数の少ない状態を選択してもよいし、ランダムに選択するようにしてもよい。
計画部33は、実行可能なアクション(出力の次元)から特定の次元を選択する。アクションの選択指針としては、例えば、入力に選択された変数との相関を重視して、選択入力次元との相関が高いものを選択するようにしても良いし、ランダムに選択するようにしてもよい。
計画部33は、評価部32により指示された目標状態に向かって、予測部31−1による予測を利用し、選択したアクションによって、現在の状態から目標状態まで、リハースしながら探索を行う。
このとき、適切なアクション次元が選択されていれば、目標状態までの解が存在するので、計画部33により行動シーケンスが生成され、制御部34−1の制御により実行される。そして、適切な目標状態が設定され、適切なアクション次元が選択されていれば、予測学習が進むことにより、成功シーケンスが得られ、制御部34−1は、成功シーケンスにおける入出力関係を学習する。
このように、選択した入力次元、目標状態、アクション次元の選択が適切だった場合、制御部34−1が成功体験を学習し、性能が向上される。
これに対して、設定された目標や選択したアクション次元が適切ではなく、目標に到達または近づくような行動シーケンスが計画できない場合について、図15乃至図17を用いて説明する。
計画部33が実行する行動シーケンスの計画に対する評価について、図15を用いて説明する。図15において、横軸は時間であり、縦軸は、状態空間における目標状態との相対位置を示す。Xgoalは、評価部32によって与えられた目標状態を示し、Xplanは、計画部33によって計画された目標状態までの行動シーケンスを示す。
図15Aに示されるように、Xplanが時間の経過にしたがって、Xgoalから遠ざかるような場合、設定された目標や選択したアクション次元が適切ではなく、目標に到達または近づくような行動シーケンスが計画できないと判断される。
また、計画部33による目標状態までの探索が、目標状態に近づくまでの見込み時間の制限なく行われてしまっては、効率的に学習を進めることができない。すなわち、目標状態に到達するまでに非常に時間がかかってしまう、達成が非常に困難な行動シーケンスしか作成できない場合は、アクション次元を変更するなどの方法を取ったほうが、自律エージェントの学習は効率的に進む可能性がある。
そこで、計画部33は、例えば、図15Bに示されるように、XgoalとX(t)planの差の絶対値を積算し、その値が所定の値以上になった場合は、与えられた目標状態に到達するための行動シーケンスを生成することができないと判断するようにしてもよい。また、計画部33は、例えば、図15Cに示されるように、XgoalとXplanの差の最小値が所定の数値以上である場合、与えられた目標状態に到達するための行動シーケンスを生成することができないと判断するようにしてもよい。さらに、計画部33は、例えば、図15Dに示されるように、X(t)planがXgoalに到達するまでの見込み時間が所定の値以上である場合、与えられた目標状態に到達するための行動シーケンスを生成することができないと判断するようにしてもよい。
これらの判断基準により、与えられた目標状態に到達するための行動シーケンスを生成することができるか否かが判断されるが、与えられた目標状態に到達するための行動シーケンスを生成することができないと判断された場合であっても、ここでは、行動シーケンスを生成することができない原因が、設定された目標が不適切であることか、選択したアクション次元が不適切であることかは、判別することができない。
計画部33は、評価部32により選択された入力次元において、例えば、図15を用いて説明した様な各種条件を基にして、与えられた目標状態に到達するための行動シーケンスを生成することができるか否かを判断する。与えられた目標状態に到達するための行動シーケンスを生成することができないと判断された場合、計画部33は、行動シーケンスを生成することができないことを評価部32に報告するとともに、図16に示されるように、選択したアクション次元を放棄して、複数のアクション次元から、再度、アクション次元を選択し直す。
アクション次元が選択し直された場合には、目標状態と、それを実現するアクションの関係が変わるので、図17に示されるように、新たな目標状態とアクションに対応する予測部31−2による予測結果を用いて、計画部33により行動シーケンスが生成され、新たな目標状態とアクションに対応する制御部34−2により、行動シーケンスの実行が制御される。そして、成功シーケンスを得ることができた場合、制御部34−2は、成功シーケンスを学習することができる。
このようにして、目標状態と、それを実現するアクションの関係ごとに、複数の予測部31と制御部34が構成される。
次に、プランが生成されて実行されている状態における評価部32のタスク進捗の監視機能の例について、図18乃至図20を用いて説明する。
図18を用いて、評価部32がタスク進捗を監視するために、予測部31、計画部33、および、制御部34から供給される誤差情報の例について説明する。
計画部33により計画された行動シーケンスが制御部34の制御において実行されることにより、予測部31は、新たに経験した出入力関係を学習するとともに、自身の予測と実行結果とを比較することができる。そして、予測部31は、その比較結果を予測誤差(推定誤差)として評価部32に供給する。
計画部33は、今回計画された行動シーケンスにより目標状態にどれだけ近づくことができたかを表す計画の達成度を算出し、目標誤差として評価部32に供給する。
制御部34は、行動シーケンスの実行結果の観測値と、自らの出力(アクション)を用いて、制御能力の評価に用いるための評価用行動シーケンスを生成することができる。換言すれば、制御部34は、予測部31の予測を基に、計画部33と同様にして、評価用行動シーケンスを生成することができる。制御部34は、生成した評価用行動シーケンスを、計画部33により計画された行動シーケンスと比較することにより制御誤差(計画−実行誤差)を求めることができ、求めた制御誤差を評価部32に供給する。
評価部32は、タスクの実行に際して、各モジュールから予測誤差(推定誤差)、目標誤差、および、制御誤差(計画−実行誤差)の、各種誤差信号を受け取ることができる。図19に示されるように、これらの誤差信号のうちの予測誤差(推定誤差)は、心理学の内発的動機のうちの好奇動機に対応し、目標誤差は、心理学の内発的動機のうちの達成動機に対応し、制御誤差(計画−実行誤差)は、心理学の内発的動機のうちの操作動機に対応する。すなわち、評価部32が実行するタスクの設定は、人間が内発的動機に基づいて行動を制する場合と同様にして、好奇動機、達成動機、操作動機を満たすように行われる。
図20に、計画部33により計画された行動シーケンスが実行された場合に、それぞれの誤差を求めるために得られるデータを示す。
図20において、横軸は時間であり、縦軸は、状態空間における目標状態との相対位置を示す。Xgoalは、評価部32によって与えられた目標状態を示し、Xplanは、計画部33によって計画された目標状態までの行動シーケンスを示し、Xctrlは、予測部31の予測を用いて制御部34がリハースすることにより得られる評価用行動シーケンスを示し、Xrealは、計画部33によって計画された行動シーケンスを実際に実行してみた結果を示している。
制御部34による制御精度を評価するための指標としては、例えば、XplanとXctrlとの差の積算値を用いることができ、予測部31による予測精度を評価するための指標としては、例えば、XrealとXplanとの差の積算値を用いることができる。また、タスクによって、行動シーケンスが終了するまでにかかる時間が長くなるため、これらの評価指標値を時間で除算して得られる単位時間当たりの平均精度は、タスクに対する依存度が低い値となる。
予測部31、計画部32、および、制御部34は、計画された行動シーケンスの試行に対して、さまざまな方法で指標を算出することができるが、例えば、以下の式(9)乃至式(11)に示されるような指標を生成することができる。
制御部34の成熟度を示す指標(評価値)であるスキルEctrlは、次の式(9)で示される。
これは、計画部33によりプランされる行動シーケンスと、制御部34により生成される評価用行動シーケンスの誤差に相当する。制御部34が十分に成功シーケンスを得て学習している場合、行動シーケンスと同等の評価用行動シーケンスを生成することができるようになる。すなわち、制御部34の成熟度は、自律エージェントの学習により向上する「スキル」に対応する。
なお、制御部34は、自律エージェントの学習により向上する「スキル」に対応する数値を、他の方法によって算出するようにしても良い。
計画部33により計画される行動シーケンスが、自律エージェントを目標状態に導いている度合いを示す指標(評価値)である計画達成度Dplanは、次の式(10)で示される。
ここでは、計画部33によりプランされる行動シーケンスの実行結果が、ゴール状態Xgoalに最も近づいた時の距離によって、計画の達成度を評価するようになされている。
なお、計画部33は、計画部33によりプランされる行動シーケンスの実行結果とコール状態との関係(実行状態とゴール状態とが合致した、または、近づいているか、あるいは、到達することが困難であるか)に対応する数値を、他の方法によって算出するようにしても良い。
また、予測部31の予測精度を示す指標(評価値)である予測誤差Epredは、次の式(11)で示される。
ここでは、予測誤差は、予測に基づいて立てた計画と、計画の実行結果との誤差になっている。予測部31が充分学習をつむことにより、予測誤差は減少していく。すなわち、予測誤差の現象は、自律エージェントの学習により蓄積される「知識」に対応する。
なお、予測部31は、自律エージェントの学習により向上する「知識」に対応する数値を、他の方法によって算出するようにしても良い。
行動シーケンスの試行後、上述した指標を取得した評価部32は、それぞれの指標の評価を前回の指標と比較し、評価する。
評価部32は、予測部31、計画部32、および、制御部34が算出する誤差信号の進捗を常に監視し、誤差が減少方向にあるか否かを検出している。もし、いずれかの誤差が時間推移、すなわち、行動シーケンスの計画とその試行の回数を重ねるとともに減少している場合、評価部32は、今回のタスクによって性能向上がはかられていると判断し、この目標状態を維持(ゴールを継続)し、タスクを継続させる。
評価部32は、今回のタスクによって性能向上がはかられていないと判断した場合、タスクを中止して、図21に示されるように、入力次元を再度選択し、目標状態を決める。
入力次元が選択し直された場合には、目標状態と、それを実現するアクションの関係が変わるので、図22に示されるように、新たな入力状態と目標状態に対応する予測部31−2による予測結果を用いて、計画部33により行動シーケンスが生成され、新たな入力状態と目標状態に対応する制御部34−2により、行動シーケンスの実行が制御される。そして、成功シーケンスを得ることができた場合、制御部34−2は、成功シーケンスを学習することができる。
このようにして、入力状態と目標状態との関係ごとに、複数の予測部31と制御部34が構成される。
次に、図20を用いて説明した、計画部33により計画された行動シーケンスが実行された場合に得られる指標と、タスクを継続させるか否かの判断の具体例について説明する。
計画部33により計画された行動シーケンスが実行されることにより、自律エージェントの状態がゴール状態に到達した場合、評価部32は、スキルEctrlを検出し、スキルEctrlの値が前回の試行より向上していれば、タスクを引き続き行うために新しいゴール(目標状態)を設定して、次の試行に進む。
計画部33により計画された行動シーケンスが実行されることにより、自律エージェントの状態がゴールに達しなかった場合、評価部32は、計画達成度Dplanを検出し、計画達成度Dplanが向上する、すなわち、計画部33により計画される行動シーケンスを実行することにより、自律エージェントの状態とゴール状態との距離が近づいていれば、そのままのゴール設定において成功シーケンスを得られる可能性があるので、同じゴール設定でタスクを継続して、次の試行に進む。
計画部33により計画された行動シーケンスが実行されることにより、自律エージェントの状態がゴール状態に達してなく、更に、ゴール状態にも近づいていない場合、評価部32は、予測誤差Epredを検出し、予測誤差Epredが改善しているならば、予測部31の学習の継続によりゴール状態に近づくことが可能な行動シーケンスを計画することができるようになる可能性があるので、同一のゴール設定でタスクを継続して、次の試行に進む。
計画部33により計画された行動シーケンスが実行されることにより、上述したいずれの状態にも合致していない場合、このタスクを継続することによる能力の向上は見込めないため、評価部32は、タスクの選択をし直す。
計画部33は、予測部31を利用するために予測部31の性能に依存し、制御部34は、計画部33が立てる実行シーケンスを学習するために計画部33に依存する。計画部33自体には特に学習する機能はないが、問題設定の難しさに達成度は依存する。
従って、通常は、図23に示されるように、予測、計画、制御のすべてにおいて成熟していない経験不足の段階から、予測精度は向上したが、計画能力と制御精度が未熟であるため、設定される問題が難しい(目標状態の選択が適当ではない)段階に推移する。更に、その状態から、試行を繰り返すことにより、次に、計画能力が向上する。すなわち、計画能力が向上したが、制御精度が成熟していないスキル不足の段階を経て、制御部34の学習が進み、いかなるタスクにも対応し、問題を解決することができる「スキル」をつんだ制御部34を得ることができる。このような進捗に対して、予測部31、計画部33、または、制御部34のいずれにおいても進捗も無かった場合には、図23に示されるいずれかの段階で成長(学習の進捗)がストップしてしまっているので、評価部32は、タスクを変更する必要がある。
このように、評価部32には、目標入力次元を選択する機能とともに、目標状態を決定する機能がある。設定された1つの目標状態に対して上述した学習が順調に推移した場合、目標入力次元を維持したまま、目標状態を変更し、予測部31および制御部34に、同じ次元の、違う状態達成を学習させることができる。これにより、制御部34は次元の状態量をパラメータとする制御を行うことができるようになる。
このようにして学習が継続されることにより、自律エージェントにおいては、図17または図22を用いて説明した様に、ある特定の次元の目標状態を実現することができる制御部34が複数生成されるとともに、対応する予測部31も複数生成される。すなわち、図24に示されるように、十分な経験を得ることができた、換言すれば、「征服した」次元ごとに、制御部34と予測部31の組が複数生成される。
そして、上述した処理の中で計画部33により選択されるアクション次元の候補として、自律エージェントが有する機能である既存のアクションのみならず、新たに獲得した制御部34への出力を加えることができる。計画部33により新たに獲得した制御部34への出力がアクション次元として選択されることにより、制御部34の階層構造(図2に示される制御部34に対する制御部42の関係)が構築される。この制御部34にアクションを与えると、対応する下位レベルの制御部42のアクションが生成される。
また、制御部34の下位レベルの制御部42へのアクションに対する環境の変化は、新しい出入力関係の予測部41として学習されることになる。従って、図2に示されるように、上位レイヤでは、下位の制御部42の目標状態をアクションとする予測部31および制御部34の学習が行われる。
ここで、図4を用いて説明した、単振り子動作を行うアーム131を有する自律エージェント101の入出力変数の関係を図25に示す。
観測される角度θや角速度ωは、アクションとしてトルクτを与えることで変化させることができ、乳酸Lの変化も、トルクτとの関連性が強い。しかしながら、エネルギーEは、単純にトルクτを変化させても上昇することはなく、実際には、アーム131の角度θが特定の角度にならないと補充されない。このため、このような自律エージェント101において、やみくもにエネルギーの上昇を目標として、アクション次元をトルクτとし、行動シーケンスを探索しても、目標状態に到達することは困難である。
以下に、単振り子動作を行うアーム131を有する自律エージェント101が上述した処理を実行した場合について説明する。
まず、評価部32は、目標入力次元を選択する。ここでは、エネルギーE(範囲は0.0〜1.0)が入力次元として選択されたものとする。
次に、評価部32は、エネルギーEの目標状態の1つとして、エネルギーEを0.8にすることを選択する。
計画部33は、評価部32により選択された目標状態に対して、自律エージェント101の唯一のアクション次元であるトルクτをアクション次元として選択し、予測部31を用いて行動シーケンスを計画する。まだ充分な学習がなされていない予測部31においては、でたらめなプランによってエネルギーEが目標状態に上昇する解を得るので、制御部34は、この行動シーケンスの実行を制御する。エネルギーEを上昇させるには、アーム131が真上(θ=π)に振りあがり餌111に到達して静止(ω=0)しなくてはならないが、未熟な予測部31を用いて計画された行動シーケンスにより、アーム131が偶発的に振り上がり、バランスを取ることはほとんど有り得ない。すなわち、この計画に対する実行は、目標状態(餌111)に到達することはできずに失敗する。
失敗の経験によって、予測部31は学習し、予測能力を向上させる。換言すれば、予測部31は、トルクτとエネルギーEは関係がないことを学習する。また、偶発的にアーム131が真上に振り上がって餌111に到達し、エネルギーEが上昇するという経験を得たとしても、その経験を基にした予測により計画された行動シーケンスにより目標状態に到達できないことをその後に学習することにより、その時のトルクτとエネルギーEの関係は実際には正しくないことが学習される。
したがって、暫くこのタスクが繰り返されると、計画部33は、トルクτによりエネルギーEを上昇させるような行動シーケンスを計画することができないと判断する。計画部33による計画能力が向上しないことは、評価部32に報告される。これは、フロー理論でいうところの「不安」の領域に対応する。
フロー理論によれば、人間は、習熟度と挑戦が釣り合っている時(フロー状態)に、その行為自体を目的として行動するようになるとされている。すなわち、フロー理論では、自身のスキル(能力)と目標の困難さが釣り合うタスクにおいて、自己の能力が伸長され、人間は、そのタスクに対してのめり込むようになると述べられている。これは、あまりにも達成困難な目標を設定しても、スキルは伸びず、一方、あまりにも達成が容易な目標を設定しても、スキルが伸びないことに対応する。このようなスキルの向上状態は、自律エージェントにおける知能モデルのゴール設定問題においても適用することができる。
例えば、学習により自律エージェントの能力を向上させるにあたって、スキルが向上したらゴールを難しくする、複数ゴールを設定して適度なプランを選ぶ、難しいプランの途中までを適度なプランとして抜き出す、などの、目標状態の設定問題において、フロー理論を利用することが可能である。実際には、フロー理論を自律エージェントの能力を効率よく向上させることができる目標状態の設定に適用させるために、挑戦の度合いを正規化し、フローの範囲を規定するのは難しいことから、評価部32は、例えば、図26に示されるように、スキル(制御部34の成熟度)と挑戦との関係において、スキルが低いのに、挑戦の度合いが高い状態を、問題が難しすぎて「不安」である状態とし、スキルに対して、挑戦の度合いが低い状態を、スキルが十分で「退屈」である状態であるとして、これらの状態を検出する。評価部32は、学習の過程において、「不安」「退屈」の状態を検知して、その行為(タスク)を中止させるようにすることができる。
評価部32は、計画部33から、「不安」状態であることの通知を受けた場合、新しい入力次元を選択し、選択した入力次元における目標状態を設定する。ここでは、新しい入力次元として、角度θが選択され、角度θの所定の値が目標状態として設定されたものとする。
既に、幾つかの行動シーケンスの計画と実行が行われているので、角度θに対応する予測部31は、状態空間のうち、過去の試行によって経験された範囲においては、それなりの予測性能を示すことが期待される。したがって、評価部32が設定する目標状態によっては、精度の良い行動シーケンスが計画されるので、成功シーケンスが得られることも有り得る。
また、評価部32が、角速度ω、乳酸Lを入力次元として選択した場合においても、これらの入力次元は、角度θと同様に、トルクτをアクションとすることによって、直接的に予測し、値を操作することが可能である。すなわち、角度θ、角速度ω、乳酸Lの3つの次元が入力次元として選択された場合には、自律エージェントの学習が集中的に行われるが、エネルギーEが入力次元として選択された場合には、学習が進捗せず、すぐにタスクが中断されるという事が繰り返される。
このようにして学習が繰り返されていくうちに、角度θ、角速度ω、乳酸Lの3つの入力次元のうちの乳酸Lに関しては、トルクτを加えれば上昇し、トルクτを0にすれば減少するという単純な関係があるために、すぐに、スキルが向上してしまう。以後、乳酸を入力次元として選択した場合には、これ以上に学習が進捗することはない(図26における「退屈」の状態)のでタスクはすぐに中断されてしまう。すなわち、目標乳酸値を与えるだけで、計画部33による計画を行うことなく、制御部34によって適切なアクション(トルクτの値)を選択することができるようになる(入力次元を乳酸Lとした制御部34が充分なスキルを得る)ので、入力次元を乳酸Lとする学習は終了される。
したがって、自律エージェントは、残る角度θ、角速度ωの2つの次元を入力次元として集中的に選択して学習することになり、学習が繰り返されることにより、同様にして、図26における「退屈」の状態となり、目標角度θを与えるだけで、計画部33による計画を行うことなく、制御部34によって適切なアクション(トルクτの値)を選択することができるようになり(入力次元を角度θとした制御部34が充分なスキルを得る)、目標角速度ωを与えるだけで、計画部33による計画を行うことなく、制御部34によって適切なアクション(トルクτの値)を選択することができるようになる(入力次元を角速度ωとした制御部34が充分なスキルを得る)。
そして、入力次元を角度θとした制御部34が充分なスキルを得た後、エネルギーEが目標入力次元として選択された場合、計画部33は、制御次元として角度θを選択することができる。すなわち、入力次元をエネルギーEとする制御部33が、下位レベルの制御部42として、入力次元を角度θとした学習済みの制御部を選択することができる。エネルギーEと角度θには因果関係が存在するので、今までの試行において、エネルギーEが上昇した経験があると、その時の経験を基に、エネルギーEを上昇させるための角度θを予測することができる。
計画部33は、この予測に基づいて、入力次元を角度θとした下位レベルの制御部42に対して、エネルギーEを上昇させるための角度θ=πをアクションとして出力するような行動シーケンスを計画し、上位レベルの制御部34に実行させる。
このタスクが継続されることで、目標とするエネルギー状態を実現するために角度指示値を出力することができる、入力次元をエネルギーEとした制御部34が、充分なスキルを得ることができる。
このようにして、自律エージェントは、環境に潜む関連性によって必然的に自分の獲得できるものから学習する傾向を有し、獲得した能力を利用して、1対1の入出力関係だけからでは予測または制御が困難な目標状態に到達するためのスキルを有する制御部34を獲得することができる。
以上においては、自律エージェントが、内発的動機を利用することにより、様々な変数を制御することができるように学習を進めてスキルを向上させることができることを示したが、自律エージェントには、更に、自己の保存のために人間が生来備えている外発的動機に対応する機能と、上述した内発的動機とを組み合わせることで、生命維持活動をしながら能力を向上させるようにすることも可能である。
図27に、外発的動機の組合せの例を示す。
自律エージェントは、特定の関数(例えば、エネルギーEと乳酸Lなど)に、ホメオスタシス関数を設定することができる。ホメオスタシスとは、生物において、ストレスになりうる外界の環境の変化に対して、生体を安定した恒常的状態に保とうとする仕組みである。例えば、図4を用いて説明した、単振り子動作を行うアーム131を有する自律エージェント101の例では、ホメオスタシス関数として、エネルギー:1−Eが大きい場合は不快、小さい場合は快であると設定し、乳酸量Lが大きい場合は不快、小さい場合は快であると設定することができる。
このようにして、外発的動機として、エネルギー量を高い状態にすると快となる信号と乳酸量が多いと不快となる信号が予め定義されるようにすることにより、自律エージェントに、生命維持活動をしながら能力を向上させることができる機能を実現させることができる。このようにして、外発的動機に対応する機能を発揮させるために必要な内部状態を設定し、その目標状態を生得的に与えることは、自律エージェントの設計における外発的動機の設定ということができる。
すなわち、自律エージェントは、外発的動機によって与えられる「望むような状態」に状態量を制御しつつ、状態量の操作方法を内発的動機を利用して獲得することができる。
例えば、単振り子動作を行うアーム131を有する自律エージェント101の例において、エネルギー量が所定の値以上であり、乳酸量が所定の値以下である状態を「望むような状態」として(すなわち、上述したホメオスタシス関数を設定して)、この状態が継続されるように制御させるようにすることができるとともに、内発的動機を利用して、学習が進められ、その結果、「望むような状態」を継続するための状態の操作能力も向上させるようにすることができる。
すなわち、評価部32が目標入力次元を選択する際に、外発的動機に対応する状態量(単振り子動作を行うアーム131を有する自律エージェント101の例では、エネルギー量と乳酸量)が、予め定められている状態(例えば、エネルギー量が所定の値以上であり、乳酸量が所定の値以下である状態)から外れていないかを確認して、外れている場合には、高い確率で、ホメオスタシス関数に対応する目標状態の変数を入力次元として選択するようにする。なお、外発的動機に対応する状態量が、予め定められている状態である場合には、内的動機を基に目標入力次元が選択される。
これは、ホメオスタシス関数の出力を、外発的動機を基にした制御状態の発現確率とリンクさせるものであり、不快度が増大した場合、高い確率で、ホメオスタシス関数に対応する目標状態の変数が入力次元として選択される。
外発的動機と内発的動機の確率的な選択には、例えば、次の式(12)で表されるソフトマックスセレクション(ソフトマックス選択)の機構が利用可能である。
ソフトマックスセレクションは、価値に基づいて確率的に行動を選択する方法である。この方法は、Boltzmann分布あるいはGibbs分布を利用したものであり、式(12)におけるパラメータτは、温度(temperature )と称される正の定数である。Gibbs分布を用いたソフトマックスセレクションは、温度パラメータが小さいほど、常に一番コストが低い行為を選択するグリーディ選択方式に近づき、温度パラメータが大きいほど、一様なランダム選択に近づく。
式(12)において、Pt(i)はi番目の動機を選択する確率を示す。また、vt(i)は、時刻tのi番目の動機の優先度を示し、外発的動機では対応する状態量の大きさで決まる。vt(i)は、例えば、エネルギー量が小さいときに、エネルギー量の優先度が高くなるように、次の式(13)に示されるようにすることができる。
外発的動機に関連する目標状態の変数が入力次元として選択された場合、評価部32が目標状態を設定する際には、生得的に与えられた好ましい状態(「望むような状態」に含まれる、最も好ましい状態)を目標状態として、計画部33に与えるものとする。
単振り子動作を行うアーム131を有する自律エージェント101の例において、上述したように、ホメオスタシス関数として、エネルギー:1−Eが大きい場合は不快、小さい場合は快であると設定し、乳酸量Lが大きい場合は不快、小さい場合は快であると設定した場合では、評価部32は、例えば、ホメオスタシス関数=0.0(快状態)を好ましい状態として、目標状態に設定されるようにすることができる。
計画部33に与えられた、「好ましい状態」に対応する目標状態に到達する行動シーケンスがすぐに計画され、実現されるのであれば、上述したように、このタスクは「退屈」の領域に入るため、選択されなくなる。
目標状態に到達する行動シーケンスが計画できない、または、計画しても達成できない場合、すなわち、上述した「不安」の領域となる場合には、このままの状態で試行を繰り返しても能力は向上しないので、評価部32は、このタスクを諦めて、内発的動機により違う行動を取る。これは、例えば、いくらお腹が減っても、どうしようも無ければ違う行動を取った方が偶発的にエサにめぐり合える可能性があるので有利であるという状況と同義である。
以上のような構成を採用し、各動作を行わせることにより、以下のような作用効果が得られる。
(1)自律エージェントは、タスクに関する事前知識なしで、自己の能力を改善するための学習を行うことができる。つまり、このような構成を有する自律エージェントは、どんなタスクも柔軟にこなす可能性がある。
(2)自律エージェントは、人がゴールや評価関数の設定や状態変数の選択をすることなく、単独で学習することができる。
(3)自律エージェントは、複雑な問題を、簡単な問題をサブゴールとしてそれを組み上げることによって、解くことができる。
(4)自律エージェントは、知識(予測部31)やスキル(制御部34)をどんどん獲得することができる。
次に、図28のフローチャートを参照して、本発明を適用した自律エージェントが実行する第1の処理について説明する。
ステップS1において、評価部31は、タスクを選択する。すなわち、評価部31は、多くの変数の中から、目標状態として設定する変数(目標入力次元)を選択する。
ステップS2において、計画部33は、選択されたタスクに、まだ選択されていないアクションが残っているか否かを判断する。ステップS2において、選択されたタスクに、まだ選択されていないアクションが残っていないと判断された場合、処理は、ステップS1に戻り、新たなタスクが選択されて、それ以降の処理が繰り返される。
ステップS2において、選択されたタスクに、まだ選択されていないアクションが残っていると判断された場合、ステップS3において、計画部33は、まだ選択されていないアクションから、アクションを選択する。
ステップS4において、評価部32は、選択されたタスクを基に、目標状態を設定し、計画部33に目標状態を指示する。
ステップS5において、計画部33は、予測部31により予測される、上述した式(1)乃至式(4)における時刻tの変数から、時刻t+1のそれぞれの変数を予測する差分方程式の関数を基に、評価部32に指示された目標に到達するための行動シーケンスを計画し、行動シーケンスを制御部34に供給する。
具体的には、計画部33は、図8および図9を用いて説明した様にして、上述したA*サーチのアルゴリズムに基づいて、現在の状態から取り得る全てのアクションを取った場合の次状態を求め、その状態を新たなノードとして現ノードからリンクを張り、リンク先が既に到達した他の状態と等しい、または、近ければ、そのノードまでの到達コストを比較して、コストの低い方を残し、高い方を棄てる。このようにして、新しくノードが生成された場合、上述した式(5)の評価関数を計算し、候補ノードに加える(前の候補ノードは残る)。そして、全ての候補ノードの中から評価関数の最も低いもの、すなわち、一番確からしい経路を選んで現ノードとし、選択されたノードは候補ノードからはずす。
そして、タスクの選択やアクションの選択が不適当でなければ、このようにして探索を繰り返すことにより、候補ノードのうちのいずれかが、ゴール状態に等しく、または、十分近くなった場合、A*サーチのアルゴリズムに基づいた探索が終了され、計画が決まる。
ステップS6において、計画部33は、目標に到達することができる計画を生成することができたか否かを判断する。ステップS6において、目標に到達することができる計画を生成することができなかったと判断された場合、処理は、ステップS2に戻り、それ以降の処理が繰り返される。すなわち、ステップS2において異なるアクションが選択されるか、異なるアクションが残っていない場合は、ステップS1において異なるタスクが選択されて、目標状態が再度設定され、目標に到達することができる計画を生成することができるまで、ステップS1乃至ステップS6の処理が繰り返される。
ステップS6において、目標に到達することができる計画を生成することができたと判断された場合、ステップS7において、制御部34は、計画部33により計画された行動シーケンスの実行を開始する。具体的には、制御部34は、自律エージェント101が、図5を用いて説明した様なアーム131を有していた場合、計画部33により計画された行動シーケンスに基づいて、アーム131に所望の方向にトルクをかけて回転駆動させるDCモータ132を駆動させるためにモータドライバ152を制御する。行動シーケンスは、1つまたは複数のアクションにより構成される。
ステップS8において、予測部31は、ステップS7において計画が実行されることにより変化した環境を示す情報(実行されたアクションatに対して変化した環境st)を取得して記録する。具体的には、例えば、自律エージェント101が、図5を用いて説明した様なアーム131を有していた場合、予測部31は、ポテンションメータ133からの信号により、アーム131の角度(θ)を観測し、これから角速度(ω)を検出し、これらの値を記録するとともに、電力計53から供給される消費電力値を基に、図4を用いて説明したエネルギーEおよび乳酸量Lの変化量を算出して記録する。また、計画部33は、フォトセンサ135からの入力により、ある位置(θE)に存在する餌111を取得したか否かを検出することができる。
ステップS9において、予測部31は、行動と環境の状態の変化を学習する。具体的には、予測部31は、制御部34の制御により実行されるアクションに対応して、環境の状態の変化、すなわち、式(1)乃至式(4)を用いて説明した差分方程式に示される、入力に対する出力を学習する。
ステップS10において、制御部34は、計画部33により計画された行動シーケンスの実行が終了したか、すなわち、1つの行動シーケンスに含まれる全てのアクションが実行されたか否かを判断する。ステップS10において、行動シーケンスの実行が終了していないと判断された場合、処理は、ステップS8に戻り、それ以降の処理が繰り返される。
ステップS10において、行動シーケンスの実行が終了したと判断された場合、ステップS11において、制御部34は、目標は達成されたか否かを判断する。具体的には、例えば、自律エージェント101が、図5を用いて説明した様なアーム131を有していた場合、制御部34は、アーム131が餌111に対応する位置で静止したか(アーム131の先端が図3のフォトセンサ135または図5の導電端子163の位置に到達して静止したか)否かを判断する。
ステップS11において、目標は達成された、すなわち、計画が成功したと判断された場合、ステップS12において、制御部34は、成功シーケンスを学習する。
ステップS11において、目標は達成されていないと判断された場合、または、ステップS12の処理の終了後、ステップS13において、予測部31は予測誤差を、制御部34は制御誤差を、計画部33は計画誤差をそれぞれ算出し、評価部32に供給する。
例えば、予測部31、計画部33、および、制御部34から供給される誤差情報としては、上述した式(9)乃至式(11)で示される指標を用いることができる。
ステップS14において、評価部32は、予測部31から供給された予測誤差、制御部34から供給された制御誤差、および、計画部33から供給された計画誤差をもとに、能力が向上したか否か、すなわち、予測部31、計画部33、および、制御部34から供給される誤差情報におけるいずれかの誤差が減少したか否かを判断する。ステップS14において、能力が向上しないと判断された場合、そのタスクをそれ以上繰り返しても能力は向上しないと判断し、処理は、ステップS1に戻り、新たなタスクが選択されて、それ以降の処理が繰り返される。
ステップS14において、能力が向上したと判断された場合、ステップS15において、ステップS7において実行が開始された行動シーケンスによって目標は達成されたか否かを判断(すなわち、ステップS11と同一の判断)する。
ステップS15において、目標が達成されたと判断された場合、処理は、ステップS4に戻り、それ以降の処理が繰り返される。すなわち、1つの目標状態に対して上記の学習が順調に推移した場合には、目標入力次元を維持したまま、目標状態を変更し、同じ次元の、違う状態達成を学習させることができる。これにより、制御部33は次元の状態量をパラメータとする制御を行うことができるようになる。
ステップS15において、目標が達成されなかったと判断された場合、処理は、ステップS5に戻り、それ以降の処理が繰り返される。すなわち、すなわち、目標が達成されなかった場合、計画部33は、予測部31の予測に基づいて再度行動シーケンスを計画する。予測部31は、失敗した計画を実行した場合の入出力を学習しているので、計画部33において予測部31の予測を基に次に生成される計画は、同一の目標に対する計画であっても、以前の計画とは異なるものとなり、成功により近い計画が生成される。したがって、目標が達成されるまで、ステップS2乃至ステップS10の処理が繰り返されることにより、予測部31の学習が進み、図10を用いて説明した様にして、成功シーケンスを得ることが可能となる。
このような処理により、自律エージェントにおいては、人がゴールや評価関数の設定や状態変数の選択をすることなく、予測部31および制御部34の学習が進み、最終的には、制御部34が十分に成功シーケンスを得て、行動シーケンスと同等の評価用行動シーケンスを生成することができる機能を有する制御器(制御部34が実行するべき制御)を獲得することができる。
また、制御部34は、成功シーケンスを学習する以外に、失敗したシーケンスであっても、その到達した状態を目標状態に置き換えて、実行された行動シーケンスを学習することができるようにしても良い。
すなわち、制御部34には、成功シーケンスが得られずに失敗シーケンスが得られた場合にも、失敗シーケンスの結果を用いて式(6)または式(8)の関数gを学習させるようにすることができる。具体的には、制御部34は、図29に示すように、失敗シーケンスの結果として到達してしまった状態を、「真の目標値sd」とは別に「仮の目標値S’d」として、当初から仮の目標値S’dへの状態遷移を計画していたと仮定し、失敗シーケンスから得た時刻tの状態St、仮の目標状態S’d、行動at+1(t=1,2,・・・,T)を教師として、得られる関数gを教師ありで学習する。
また、さらに、仮の目標値S’dの考え方を一般化すると、シーケンスの最終到着状態だけでなく、シーケンスの途中の任意の地点を仮の目標値と捉えることができる。それら経過途中の仮の目標値から、それ以前の状態および行動シーケンスを教師とすれば、通過した全ての状態を目標値にした経験強化学習が可能となる。
このようにすることにより、自律エージェントは、これまで目標値としたことがない状態を目標に定めたときも、適切に制御できる可能性を向上させることができる。また、成功シーケンスだけを用いて学習していた場合と比較して、結果として、学習の速度をあげることが可能となる。
また、上述した処理においては、評価部32は、アクションの選択を、取り得る全てのアクションの中から選択するようになされており、試行の過程において、フロー理論などによって、学習の継続が選択されるものが集中的に選択されるようになされているとして説明した。これに対して、評価部32は、それぞれの変数の相関や因果関係を基にアクションを選択することができるようにしても良い。
図30は、図4を用いて説明した自律エージェント101における変数間の因果関係を因果ダイアグラムで表したものである。
変数間の定性的な因果関係を発見することは、例えば、人間がある対象の変動を予測しようとしたときに、その対象が何を原因に変動しているのかを突き止めようとすることに相当する。実際に人間は、無限に考えられる世界の構成要素の中からいくつかの事象を取り上げ、その中から予測対象の原因を理解(発見)することができる。このとき用いることができる情報は、環境を観察することで得られる事象(変数)の時系列情報である。
因果関係に関する情報を用いていない場合、上述した式(1)乃至式(4)に示されるように、全ての変数が予測部31の入力として取り扱われてきた。
そこで、関数fの入力になる変数を取捨選択することを考える。このための1つの方法として、入力となる変数の組み合わせを仮説として複数生成し、その中から最も予測誤差の少ない仮説を選択する方法を考える。例えば、角度θを予測する仮説として、次式(14)に示す関数が考えられる。
式(14)は考えられる仮説の一部である。式(14)の場合、変数の数が5であるため、121通りの組み合わせが考えられる。
入力変数を1つも取らないものから全ての変数を入力とするものまで、全ての組み合わせを数え上げると、5変数の場合は121通りの組み合わせが考えられる。このままでは、変数の数が増えるに従って組み合わせの数が爆発的に増加してしまうため、組み合わせ数の上限を決めたりするなどの工夫が必要となる。
次に、これら仮説に対して同一の訓練サンプルを与えて関数近似を行う。関数近似の方法にはどのような方法を使っても良い。ここでは、Support Vector Regression(以下、SVRと略記する)を用いて学習を行う。SVRは、常に大域解が得られることが保障されており、一般的によく用いられている誤差逆伝播法に基づいたニューラルネットワークよりも安心して利用できる点が強みである。
SVRを利用した学習によって、各仮説ごとに関数fの構造が求められる。次に、各仮説がどれだけ良い予測を行うかを、訓練サンプルとは別の評価サンプルを用いて評価する。この手法は、予測性能に対応する凡化誤差を求めるものであり、cross validationと称される。ここでは、他のどんな評価基準を用いても良いが、訓練誤差ではなく凡化誤差を求めることができる手法でなければならない。最も評価の高い仮説が選択され、十分学習が進捗した場合、正しい因果関係を得ることができる。
例えば、ある変数の値を任意の値に変化させたいとする。しかしながら、その変数には直接介入することができないような場合、それ以外の変数への介入によって、間接的に介入することを考える。例えば、人間は念じるだけでは物(例えば椅子など)の位置を変化させることはできないが、自分の筋肉を収縮させることは可能である。直接には筋肉の収縮を操ることで、結果として自分の体を操り、最終的に物の位置を変化させることが可能である。
これを、自律エージェントに置き換える。自律エージェントが直接操作可能な変数は、トルクτである。エネルギーEが減ってしまったとしても、トルクτを操作することにより、直接的にエネルギーEを補給することはできない。したがって、自律エージェントは、トルクτを変化させることで、間接的にエネルギーEの値を上昇させることを考えなければならない。すなわち、図30に示される因果関係が検出されている場合、自律エージェントは、トルクτを操作することにより、直接的にエネルギーEを補給することはできないということを学習するまでに必要な試行を繰り返すことなく、エネルギーEを補給するために、トルクτによって角度θを制御すればよい(上述した下位レベルの制御部42を利用する)ことを認識することができる。
アクションの選択を、それぞれの変数の相関や因果関係を基に選択するようにすることにより、例えば、図28のフローチャートを用いて説明した処理のように、目標に到達する行動シーケンスが生成できない状況が発生してしまうことを防止することができる。
次に、図31のフローチャートを参照して、アクションの選択を、変数の相関や因果関係を基に選択することができる自律エージェントが実行する第2の処理について説明する。
ステップS31において、評価部31は、タスクを選択する。すなわち、評価部31は、多くの変数の中から、目標状態として設定する変数(目標入力次元)を選択する。
ステップS32において、計画部33は、例えば、図30を用いて説明した変数間の因果関係に対応する各種条件を基に、アクションを選択する。
ステップS33において、評価部32は、選択されたタスクを基に、目標状態を設定し、計画部33に目標状態を指示する。
ステップS34において、計画部33は、予測部31により予測される、上述した式(1)乃至式(4)における時刻tの変数から、時刻t+1のそれぞれの変数を予測する差分方程式の関数を基に、評価部32に指示された目標に到達するための行動シーケンスを計画し、行動シーケンスを制御部34に供給する。
具体的には、計画部33は、図8および図9を用いて説明した様にして、上述したA*サーチのアルゴリズムに基づいて、行動シーケンスを計画するための探索を行う。そして、探索を繰り返すことにより、候補ノードのうちのいずれかが、ゴール状態に等しく、または、十分近くなった場合、A*サーチのアルゴリズムに基づいた探索が終了され、計画が決まる。
ステップS35乃至ステップS38において、図28のステップS7乃至ステップS10と基本的に同様の処理が繰り返される。すなわち、制御部34は、計画部33により計画された行動シーケンスの実行を開始する。そして、予測部31は、ステップS35において計画が実行されることにより変化した環境を示す情報(実行されたアクションatに対して変化した環境st)を取得して記録する。そして、予測部31は、行動と環境の状態の変化を学習する。次に、制御部34は、計画部33により計画された行動シーケンスの実行が終了したか、すなわち、1つの行動シーケンスに含まれる全てのアクションが実行されたか否かを判断し、行動シーケンスの実行が終了していないと判断された場合、処理は、ステップS36に戻り、それ以降の処理が繰り返される。
ステップS38において、行動シーケンスの実行が終了したと判断された場合、ステップS39において、制御部34は、図29を用いて説明した様に、目標状態に到達したか否かにかかわらず、到達した状態を目標状態に置き換えて、行動シーケンスを学習する。
ステップS40乃至ステップS42において、図28のステップS13乃至ステップS15と基本的に同様の処理が実行される。すなわち、予測部31は予測誤差を、制御部34は制御誤差を、計画部33は計画誤差をそれぞれ算出し、評価部32に供給する。評価部32は、予測部31から供給された予測誤差、制御部34から供給された制御誤差、および、計画部33から供給された計画誤差をもとに、能力が向上したか否かを判断して、能力が向上しないと判断された場合、そのタスクをそれ以上繰り返しても能力は向上しないと判断し、処理は、ステップS31に戻り、新たなタスクが選択されて、それ以降の処理が繰り返される。また、能力が向上したと判断された場合、実行された行動シーケンスによって目標は達成されたか否かが判断される。
目標が達成されたと判断された場合、処理は、ステップS33に戻り、それ以降の処理が繰り返される。また、目標が達成されなかったと判断された場合、処理は、ステップS34に戻り、それ以降の処理が繰り返される。
このような処理により、自律エージェントにおいては、人がゴールや評価関数の設定や状態変数の選択をすることなく、変数の因果関係を基に、効率よくアクションを選択して、予測部31および制御部34の学習を進捗させることができる。また、更に、自律エージェントにおいては、成功シーケンスが得られない場合であっても、到達した状態を目標状態に置き換えることにより、制御部34の学習の進捗を促進させることができる。
自律エージェントは、最終的には、制御部34が十分に成功シーケンスを得て、行動シーケンスと同等の評価用行動シーケンスを生成することができる機能を有する制御器(制御部34が実行するべき制御)を獲得することができる。
次に、図32のフローチャートを参照して、外発的動機を基に行動を制御することができるようになされている自律エージェントが実行する第3の処理について説明する。
ステップS61において、評価部31は、タスクを選択する。すなわち、評価部31は、多くの変数の中から、目標状態として設定する変数(目標入力次元)を選択する。
ステップS62において、計画部33は、上述した変数間の因果関係に対応する各種条件を基に、アクションを選択する。
ステップS63において、評価部32は、外発的動機が設定されているか否かを判断する。
ステップS63において、外発的動機が設定されていると判断された場合、ステップS64において、評価部32は、生得目標状態、すなわち、上述したホメオスタシス関数に基づいた目標状態を設定する。
ステップS63において、外発的動機が設定されていないと判断された場合、ステップS65において、評価部32は、ランダムに目標状態を設定する。
ステップS64またはステップS65の処理の終了後、ステップS66乃至ステップS72において、図31のステップS34乃至ステップS40と基本的に同様の処理が実行される。
すなわち、計画部33は、予測部31により予測される差分方程式の関数を基に、評価部32に指示された目標に到達するための行動シーケンスを計画し、行動シーケンスを制御部34に供給する。制御部34は、計画部33により計画された行動シーケンスの実行を開始する。そして、予測部31は、ステップS35において計画が実行されることにより変化した環境を示す情報(実行されたアクションatに対して変化した環境st)を取得して記録する。そして、予測部31は、行動と環境の状態の変化を学習する。次に、制御部34は、計画部33により計画された行動シーケンスの実行が終了したか、すなわち、1つの行動シーケンスに含まれる全てのアクションが実行されたか否かを判断し、行動シーケンスの実行が終了していないと判断された場合、処理は、ステップS68に戻り、それ以降の処理が繰り返される。行動シーケンスの実行が終了したと判断された場合、制御部34は、図29を用いて説明した様に、目標状態に到達したか否かにかかわらず、到達した状態を目標状態に置き換えて、行動シーケンスを学習する。そして、予測部31は予測誤差を、制御部34は制御誤差を、計画部33は計画誤差をそれぞれ算出し、評価部32に供給する。
ステップS73において、評価部32は、外発的動機の優先度は高いか否かを判断する。変数の選択に外発的動機を用いるか内発的動機を用いるかは、上述したように、式(12)に示されるソフトマックスセレクションの機構を基に選択することが可能であり、そのとき、時刻tのi番目の動機の優先度を示すvt(i)を、式(13)に示されるように設定した場合、外発的動機として設定されたホメオスタシス関数による値が、「不快」の状態になると、外発的動機の優先度は高くなる。
ステップS73において、外発的動機の優先度が高いと判断された場合、ステップS74において、評価部32は、ホメオスタシス関数として設定された変数が、「不快」の状態から「快」の状態(好ましい状態)となるように、入出力の変数を選択して設定し、処理は、ステップS62に戻り、選択された変数において、それ以降の処理が繰り返される。
ステップS73において、外発的動機の優先度が高くないと判断された場合、ステップS75およびステップS76において、図31のステップS41およびステップS42と基本的に同様の処理が実行される。すなわち、評価部32は、予測部31から供給された予測誤差、制御部34から供給された制御誤差、および、計画部33から供給された計画誤差をもとに、能力が向上したか否かを判断して、能力が向上しないと判断された場合、そのタスクをそれ以上繰り返しても能力は向上しないと判断し、処理は、ステップS61に戻り、新たなタスクが選択されて、それ以降の処理が繰り返される。また、能力が向上したと判断された場合、実行された行動シーケンスによって目標は達成されたか否かが判断される。目標が達成されたと判断された場合、処理は、ステップS63に戻り、それ以降の処理が繰り返される。また、目標が達成されなかったと判断された場合、処理は、ステップS66に戻り、それ以降の処理が繰り返される。
このような処理により、自律エージェントにおいては、人がゴールや評価関数の設定や状態変数の選択をすることなく、変数の因果関係を基に、効率よくアクションを選択して、予測部31および制御部34の学習を進捗させることができるとともに、外発的動機を用いて、生存状態を維持しつつ、学習を継続していくことが可能となる。また、更に、自律エージェントにおいては、成功シーケンスが得られない場合であっても、到達した状態を目標状態に置き換えることにより、制御部34の学習の進捗を促進させることができる。
自律エージェントは、最終的には、制御部34が十分に成功シーケンスを得て、行動シーケンスと同等の評価用行動シーケンスを生成することができる機能を有する制御器(制御部34が実行するべき制御)を獲得することができる。
すなわち、本発明が適用される場合、人がゴールや評価関数の設定や状態変数の選択をすることなく、評価部32が目標となる状態を適正に設定することができ、予測部31がエージェントの入出力関係を逐次学習し、計画部33が予測部31の予測を利用して、目標状態までの特定経路を探索し、制御部34がその経路パターンを学習するようになされている。そして、任意の状態から自動的に目標に到達できるような制御部34をエージェントが自ら試行錯誤を重ねて獲得することができるようになされている。
換言すれば、予測部31は、自分の取ったアクションと環境の変化(センサ)の関係を常に学習しており、計画部33は、現在の自分の状態から目標状態までを予測部31をリハースすることにより計画をたてる。そして、制御部34は、計画された行動の実行を制御するとともに、その入出力関係を学習する。誤った計画でも実行されることによって予測部31が改善されていく。また、予測学習と制御学習には統計学習による関数近似器(例えば、Support Vector Regression)が用いられる。また、計画部33においては、ヒューリスティクス探索の手法(例えばA*サーチ)が用いられる。
これにより、大規模サンプル、大次元入力の学習に耐える関数近似器の能力を使うことにより、次元に呪われることなく、予測学習を行うことができる。また、未熟な予測部31で生成したプランにより、誤ったプランが実行されることで予測部31が不得手な状態空間を経験し、予測部31の性能を向上させることができる。
また、ヒューリスティクス探索の手法を使うことで、入力の次元が増えて状態空間が大きくなっても、Q学習や動的計画法のように探索の組み合わせが爆発することがない。また、成功シーケンスの学習により、制御部34が汎化される。
また、目標状態を連続量のパラメータとした制御の学習が行われる。更に、人間の思考形態にあった学習を行うことができ、人間に理解しやすい行動パターンを生成することができる。
これらに加えて、本発明が適用される場合、自律エージェントは、タスクに関する事前知識なしで、自己の能力を改善するための学習を行うことができる。つまり、このような構成を有する自律エージェントは、どんなタスクも柔軟にこなす可能性がある。
本発明を適用した自律エージェントは、人がゴールや評価関数の設定や状態変数の選択をすることなく、単独で学習することができるとともに、複雑な問題を解くために、簡単な問題をサブゴールとして組み上げることができ、複雑な問題を解くための知識(予測部31)やスキル(制御部34)を獲得することができる。
また、本発明を適用した自律エージェントは、外発的動機を用いて、生存状態を維持しつつ、学習を継続していくことができる。
更に、本発明を適用した自律エージェントは、図29を用いて説明した仮の目標値を設定することにより、成功シーケンスを得られない場合においても、制御を学習することができ、図30を用いて説明した様な変数の相関関係を求めることにより、効率よく学習を進捗させることが可能なアクション次元を優先的に選択することが可能となる。
上述した一連の処理は、ソフトウェアにより実行することができ、また、同様の機能を有するハードウェアにより実現することも可能である。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図6に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア143などにより構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
31 予測部, 32 評価部, 33 計画部33 制御部, 41 予測部, 42 制御部, 101 自律エージェント, 111 餌, 112 エネルギー, 113 乳酸量, 201 状態空間, 211 スタート位置, 212 ゴール位置