(57)【要約】【課題】自律学習エージェントの強化学習に要する時間を短縮する。【解決手段】  本発明を適用した制御器では、成功実行シーケンスが得られずに失敗実行シーケンスが得られた場合にも、失敗実行シーケンスの結果を用いて学習する。具体的には、図１２に示すように、失敗実行シーケンスの結果として到達してしまった状態を「真の目標値Ｓd」とは別に「仮目標値Ｓ’d」として、当初から仮目標値Ｓ’dへの状態遷移を計画していたと仮定し、失敗実行シーケンスから得た時刻ｔの状態Ｓt、仮目標値Ｓ’d、行動ａt+1（ｔ＝１，２，…，Ｔ）を教師として、ａt+1＝ｇ（Ｓt，Ｓd）の関数ｇを教師ありで学習する。本発明は、自律学習エージェントに適用できる。【選択図】図１２
2006313512.tif 000002
【特許請求の範囲】
【請求項１】
環境を基に行動を制御する自律エージェントの学習制御装置において、
現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画手段と、
前記計画手段によって計画された前記行動シーケンスに含まれる行動変数ａt+1に従って、前記行動シーケンスに対応する行動を制御するとともに、前記状態変数Ｓt、前記標変数Ｓd、および前記行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する第１の学習手段と、
前記行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定手段とを含み、
前記第１の学習手段は、前記状態変数Ｓt、前記仮目標変数Ｓ’d、および前記行動変数ａt+1にも基づいて前記関数ｇ1を学習する
ことを特徴とする学習制御装置。
【請求項２】
前記行動シーケンスに対応する前記行動の結果を検出する検出手段と、
前記検出手段による検出結果に基づき、前記関数ｇ1と前記行動変数ａt+1を共用する関数であって、前記関数ｇ1とは異なる関数ｇ2を学習する第２の学習手段と
をさらに含むことを特徴とする請求項１に記載の学習制御装置。
【請求項３】
環境を基に行動を制御する自律エージェントの学習制御装置の学習制御方法において、
現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画ステップと、
前記計画ステップの処理で計画された前記行動シーケンスに含まれる行動変数ａt+1に従って、前記行動シーケンスに対応する行動を制御するとともに、前記状態変数Ｓt、前記標変数Ｓd、および前記行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する学習ステップと、
前記行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定ステップとを含み、
前記学習ステップは、前記状態変数Ｓt、前記仮目標変数Ｓ’d、および前記行動変数ａt+1にも基づいて前記関数ｇ1を学習する
ことを特徴とする学習制御方法。
【請求項４】
環境を基に行動を制御する自律エージェントの学習制御用のプログラムであって、
現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画ステップと、
前記計画ステップの処理で計画された前記行動シーケンスに含まれる行動変数ａt+1に従って、前記行動シーケンスに対応する行動を制御するとともに、前記状態変数Ｓt、前記標変数Ｓd、および前記行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する学習ステップと、
前記行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定ステップとを含む処理をコンピュータに実行させ、
前記学習ステップは、前記状態変数Ｓt、前記仮目標変数Ｓ’d、および前記行動変数ａt+1にも基づいて前記関数ｇ1を学習する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習制御方法に関し、特に、成功体験のみならず失敗体験にも基づいて学習するようにした学習制御方法に関する。
【背景技術】
【０００２】
環境から供給される報酬を取得することを目標にして、この目標を達成するための制御方法を試行錯誤しながら学習していくような機械学習は、広い意味で、強化学習と称されている（例えば、非特許文献１）。
【０００３】
強化学習の問題定義では、環境を観測するセンサの出力から作られる状態空間において、式（１）で示されるマルコフ過程（現在ｔの状態が１つ前（ｔ−１）の状態だけに依存する）が成り立っているときに、未来の報酬の期待値を示す状態価値を、式（２）で示されるBellman（ベルマン）の最適方程式から導出することができる。この価値が最も高くなる行動を選択することが、最適行動になる。
【数１】
2006313512.tif 000003
…（１）
【数２】
2006313512.tif 000004
…（２）
【０００４】
行動に対する状態の変化が既知であれば（換言すれば、行動に対する状態の変化のモデルがあれば）、動的計画法などにより状態空間を繰り返しスイープすることで、解を導出することができる。しかしながら、モデルが無かったり不正確であったりする場合には、解を求めることはできない。また状態空間の次元数が増えると、スイープするべき状態数が指数的に増加し（いわゆる、次元の呪い）、演算に必要となるメモリや、演算にかかる時間が、現実的な範囲ではなくなる。
【０００５】
そのため、実際に行動を取りながら、各状態で取った行動に割引き報酬を与えることで、各状態での行動価値を定義し、その状態での最大の価値を与える行動選択することで、最適な行動を行うＱ学習などが提案されている。
【０００６】
次式（３）にＱ学習の学習則を、式（４）に行動選択則を示す。
【数３】
2006313512.tif 000005
…（３）
【数４】
2006313512.tif 000006
…（４）
【０００７】
Ｑ学習では、予めモデルを定義することなく、実際の環境を教師として学習できるため、様々なタスクに応用されている。しかしながら、Ｑ学習は、解を導出するまでに多くの報酬と試行を要してしまう。また、（予測）モデルと行動制御が分離されていないために、同じエージェントでもあっても異なるタスクを解くためには、またはじめから学習し直す必要がある。また、Ｑ学習は、状態空間が大きい場合には、自律エージェントでは十分な試行回数が得られないという、ＤＰ法と同様の問題を孕んでいる。
【０００８】
これに対して、アクタ・クリティック学習では、期待報酬を学習するクリティックと期待報酬の誤差（ＴＤ誤差）に基づいて行動を改善させていくアクターを学習させる。これらの学習にはニューラルネットワークなどの教師有り学習方法が使われるため、状態数が大きくても対応することが可能であるが、局所解にはまったり、収束が遅かったりすることが問題となる。
【０００９】
また、人間が日常的に知的活動を行う際の思考形態を振り返ってみると、人間がある目標を達成しようとしたときには、既存の知識やスキル（予測モデル）をどのように組み合わせて順番に実行するかを頭の中で計画し（すなわち、予測モデルを使ったリハースを行い）、実際に行動を行う。そして、人間の行動においては、実際にうまくいかなかった場合（想定した目標が達成できなかった場合）には、何度も同じようなシーケンスを反復することでスキル向上させていくといった行動パターンが随所に見られる。
【００１０】
こうした行動のパターンの発現は、強化学習で漸近的に全ての状態空間が次第に解に近づいていった場合の行動パターンとはまったく違うものであると思われる。人間と接する知的エージェントの行動を設計する際には、いかに人間らしく問題解決を行うかというのも一つの重要なファクタである。
【００１１】
【非特許文献１】「強化学習」Richard S.Sutton,Andrew G.Barto.三上貞芳  皆川雅章訳
【発明の開示】
【発明が解決しようとする課題】
【００１２】
成功体験を用いて学習するようになされている自律エージェント（ロボット）では、予測部の精度が高く、プランが正確に実行できた場合、その成功体験を用いて制御部を学習することが可能である。しかしながら、新しい状況下ですぐに成功体験が得られることはまれであり、予測部の精度が向上するまでは制御部の学習はまったくできないことが多い。特に、環境のダイナミクスが複雑で、予測の精度が高くても、予測に基づくプランの実行時に失敗することがあるような場合、制御部が学習するために必要な成功体験を十分に集めることが困難になる。総じて、従来の方法では、制御部の学習に時間がかかってしまっていた。
【００１３】
また、制御部がモジュール化され、全体として一つの行動を行うような自律エージェントにおいて、同時に一つの行動しか出せないという制約があるために、たくさん存在する制御部を学習させるために多くの時間を必要としていた。
【００１４】
本発明はこのような状況に鑑みてなされたものであり、自律エージェントの強化学習に要する時間を短縮できるようにするものである。
【課題を解決するための手段】
【００１５】
請求項１に記載の学習制御装置は、現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画手段と、計画手段によって計画された行動シーケンスに含まれる行動変数ａt+1に従って、行動シーケンスに対応する行動を制御するとともに、状態変数Ｓt、標変数Ｓd、および行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する第１の学習手段と、行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定手段とを含み、第１の学習手段は、状態変数Ｓt、仮目標変数Ｓ’d、および行動変数ａt+1にも基づいて関数ｇ1を学習することを特徴とする。
【００１６】
請求項２に記載の学習制御装置は、行動シーケンスに対応する行動の結果を検出する検出手段と、検出手段による検出結果に基づき、関数ｇ1と行動変数ａt+1を共用する関数であって、関数ｇ1とは異なる関数ｇ2を学習する第２の学習手段とをさらに含むことができる。
【００１７】
請求項３に記載の学習制御方法は、現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画ステップと、計画ステップの処理で計画された行動シーケンスに含まれる行動変数ａt+1に従って、行動シーケンスに対応する行動を制御するとともに、状態変数Ｓt、標変数Ｓd、および行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する学習ステップと、行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定ステップとを含み、学習ステップは、状態変数Ｓt、仮目標変数Ｓ’d、および行動変数ａt+1にも基づいて関数ｇ1を学習することを特徴とする。
【００１８】
請求項４に記載のプログラムは、現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画ステップと、計画ステップの処理で計画された行動シーケンスに含まれる行動変数ａt+1に従って、行動シーケンスに対応する行動を制御するとともに、状態変数Ｓt、標変数Ｓd、および行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する学習ステップと、行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定ステップとを含む処理をコンピュータに実行させ、学習ステップは、状態変数Ｓt、仮目標変数Ｓ’d、および行動変数ａt+1にも基づいて関数ｇ1を学習することを特徴とする。
【００１９】
本発明においては、現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスが計画され、計画された行動シーケンスに含まれる行動変数ａt+1に従って、行動シーケンスに対応する行動が制御されるとともに、状態変数Ｓt、標変数Ｓd、および行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1が学習される。さらに、行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dが設定され、状態変数Ｓt、仮目標変数Ｓ’d、および行動変数ａt+1にも基づいて関数ｇ1が学習される。
【発明の効果】
【００２０】
本発明によれば、自律エージェントの強化学習に要する時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２２】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００２３】
請求項１に記載の学習制御装置（例えば、図３の構成例）は、現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画手段（例えば、図３の計画部３３）と、計画手段によって計画された行動シーケンスに含まれる行動変数ａt+1に従って、行動シーケンスに対応する行動を制御するとともに、状態変数Ｓt、標変数Ｓd、および行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する第１の学習手段（例えば、図３の制御部３４）と、行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定手段（例えば、図３の目標値設定部３２）とを含み、第１の学習手段は、状態変数Ｓt、仮目標変数Ｓ’d、および行動変数ａt+1にも基づいて関数ｇ1を学習することを特徴とする。
【００２４】
請求項３に記載の学習制御方法は、現在の状態を示す状態変数Ｓtから目標の状態を示す目標変数Ｓdに到達するまでの行動シーケンスを計画する計画ステップ（例えば、図１４のステップＳ１２）と、計画ステップの処理で計画された行動シーケンスに含まれる行動変数ａt+1に従って、行動シーケンスに対応する行動を制御するとともに、状態変数Ｓt、標変数Ｓd、および行動変数ａt+1によって表記される式ａt+1＝ｇ1（Ｓt，Ｓd）における関数ｇ1を学習する学習ステップ（例えば、図１４のステップＳ１８）と、行動シーケンスに対応する行動過程上の任意の状態を示す仮目標変数Ｓ’dを設定する設定ステップ（例えば、図１４のステップＳ１６）とを含み、学習ステップ（例えば、図１４のステップＳ１７）は、状態変数Ｓt、仮目標変数Ｓ’d、および行動変数ａt+1にも基づいて関数ｇ1を学習することを特徴とする。
【００２５】
なお、本発明のプログラム、の請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係は、上述した本発明の学習制御方法のものと同様であるので、その記載は省略する。
【００２６】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２７】
古典的なロボティクスや人工知能の分野では、移動ロボットや関節型ロボットの（全体または一部の移動、動作などの）経路や軌道生成などにヒューリスティクス探索を用いて、現状態から目標値まで行動の選択肢を考慮しながら探索することで解を得る方法が成功を収めている。この分野では、ロボットの移動モデルや関節の運動学、動力学を事前に正確に知ることができているという有利な点があるが、ロボットの姿勢などを考慮した非常に大きな状態空間（＝作業空間）の中でも効率的に解を求める計算手法が発達している。
【００２８】
また、近年、パターン認識の分野では、サポートベクタマシン(SVM:Support Vector Machine）やAdaBoostといった高い汎化能力を持った学習機械のアルゴリズムが多く提案されている。これらの学習機械は、画像や音声といった大きな次元の入力を扱うことに長けており、ニューラルネットワークなどを使った既存のパターン学習の応用を置き換えている。
【００２９】
本発明においては、次元の呪いに陥ることを抑止するために、SVMなどのパターン学習器を予測や制御の学習に用いて、ヒューリスティクス探索を使って広大な状態空間を効率的に探索することにより、目標とする行動シーケンスを生成することとを目指している。また、こうした一連の流れは、上述した人間の思考形態を参考にしているために、外から人間が見てもその行動を理解しやすく、現実的な時間で解に到達できるものとなる。
【００３０】
一般的に、「エージェント」とは、環境の状態を知覚（例えば、センシング）し、その知覚した内容に基づいて、行動を選択することができる自律的主体のことである。
【００３１】
図１は、本発明を適用した自律エージェントの構成例を示している。この自律エージェント１は、一つの関節を有し、当該関節にトルクτを掛けることで回転するリンク１１から成る単純なロボットである。この自律エージェント１は、リンク１１の角度θおよび角速度ωを検出して入力とし、関節に与えるトルクτを出力する。自律エージェント１が存在する環境には重力（θ＝０となる方向）も存在し、発生可能なトルクτは重力に比べて小さいので、仮に一定方向に最大トルクτmaxを発生させても自律エージェント１自身が持ち上げられたり、移動されたりすることはない。
【００３２】
さらに、自律エージェント１は、図２に示すように、内部状態を示す変数としてエネルギＥおよび乳酸Ｌを有している。エネルギＥは、発生したトルクτに比例して消費（減少）する。そして、自律エージェント１の餌２１が想定された所定の位置θEにリンク１１が到達すると、エネルギＥが所定の値だけ増加する。乳酸Ｌは、消費されたエネルギＥに比例して増加し、定常的に僅かずつ分解されて減少する。自律エージェント１は、エネルギＥが無くなる、または乳酸Ｌが最大値ＬMAXに達すると、トルクτを発生することができなくなる。
【００３３】
以下、このような仮想的な単純化された自律エージェント１を実施の形態に挙げ説明するが、外界に対してアクションを起こし、外界をセンシングできるようなエージェントであれば、本発明は、どのようなものに対しても、適応可能である。
【００３４】
図３は、自律エージェント１の内部の基本的な構成例を示している。自律エージェント１は、大きく分けて、予測部３１、目標値設定部３２、計画部３３、制御部３４の４つのモジュールから構成されている。また、図中の“Env.”は、環境を示す。
【００３５】
予測部３１は、自律エージェント１(自身)が、時刻ｔに取ったアクションａtと時刻ｔのセンサ入力（自律エージェント１の環境（角度θ、角速度ω等））Ｓtから、時刻ｔ＋１のセンサ入力が取る値を常に予測学習している。換言すれば、予測部３１は、環境を教師とした予測あり学習を行っている。予測部３１は、学習に、統計学習による関数近似器を使う。
【００３６】
目標値設定部３２は、予め設計されたタスク（例えば、餌２１を取得する）に応じた目標値（例えば、角度θ＝π、角速度ω＝０）を設定して計画部３３に出力する。
【００３７】
計画部３３は、現在の状態から目標値（目標値）に達するまでの行動シーケンスを計画する。この行動シーケンスには、予測部３１を使って、選択したアクションを行った場合の状態の遷移を予測し、その遷移先を現在の状態としてアクションを選択する探索方法が採用される。目標値までのプランが生成できた場合、その行動シーケンスが順に実行される。
【００３８】
制御部３４は、計画部３３によって計画される行動シーケンスと環境（アクションが及ぼした結果）とを教師とした教師あり学習を実行し、自律エージェント１のアクションを制御する。以下、計画部３３によって計画される行動シーケンスと環境（アクションが及ぼした結果）と実行シーケンスとも記述する。
【００３９】
自律エージェント１のアクションが成功した場合、制御部３４は、目標値を固定入力として、観測した状態と選択したアクションの関係を学習する。これにより、計画部３３が時間を掛けて生成した行動シーケンスがパターンとして覚えられ、目標を与えられることで自動的にアクションが生成されるようになる。なお、学習には統計学習による関数近似器が適用される。
【００４０】
さらに、制御部３４は、自律エージェント１のアクションが成功しなかった場合においても、目標値設定部３２によって設定される当初の目標値とは異なる仮目標値に基づき、仮目標値を固定入力として、観測した状態と選択したアクションの関係を学習する。その入出力関係を学習する。
【００４１】
次に、予測部３１の学習について説明する。
【００４２】
予測部３１の学習には、統計学習による関数近似器が用いられ、関数近似器として、例えば、“「Support Vector Machine(SVM)」“Advances in Kernel Methods Support Vector Learning”,The MIT Press,1997.”に記載されている、SVR(Support Vector Regression)が用いられる。
【００４３】
SVMの一つのクラスとして回帰推定を行うSVRがある。SVMは、分類問題を解く学習アルゴリズムとして提案された機械学習である。分類問題を解く際、SVMは学習データから分類にとって重要となるデータ（サポートベクターと称される）を抽出し、これに基づき判別面を構成する。この特性を回帰問題にも適用したのがSVRである。
【００４４】
内部状態を有する自律エージェント１では、観測される状態変数はＳ＝（θ，ω，Ｅ，Ｌ）であり、実行可能なアクションａはトルクτである。したがって、予測部３１の予測学習では、時刻ｔのこれらの変数から、時刻ｔ＋１のそれぞれの変数を予測する以下の差分方程式の関数を推定する。
【数５】
2006313512.tif 000007
…（５）
【数６】
2006313512.tif 000008
…（６）
【数７】
2006313512.tif 000009
…（７）
【数８】
2006313512.tif 000010
…（８）
【００４５】
実際には、予測部３１は、各時刻ｔにおいて、現在の変数を教師信号として、一つ前の時刻ｔ−１に観測あるいは実行された変数を入力とした関数学習を行う。このように、予測部３１は、各時刻において学習サンプルを与えられて学習を続ける。したがって、予測部３１の予測においては、始めのうちはエラーが大きかったものが、時間を経て複数の経験を得ることで、この関数近似の精度が上がるため、エラーが減少していく。
【００４６】
また、ニューラルネットワーク等は、このように逐次サンプルを与えることによって漸近的に推定することができるが、ここでは汎化能力が高く、収束時間も短い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)が提案されており、これが利用されるものとする。また、SVRのカーネルとしてはガウスカーネルが用いられる。
【００４７】
次に、計画部３３による行動シーケンスの計画について説明する。
【００４８】
計画部３３による行動シーケンスの計画に必要な目標値は、目標値設定部３２によって与えられる。例えば、ここでは、目標値としてθd＝π（リンク１１が最も上に振りあがった状態）が目標値として与えられるものとする。計画部３３では、現在の状態Ｓ0から目標値に達するまでのトルクτのシーケンスを探索によって生成する。
【００４９】
ここでは、ヒューリスティクス探索の手法が用いられ、例えば、“J.Pearl,“Heuristics:Intelligent Search Sttategies for Computer Problem Solving”,Addison-Wesley,1985.”に記載されている、Ａ*サーチ（Ａ*探索）のアルゴリズムを使ってアクションが求められるものとする。
【００５０】
以下にＡ*サーチのアルゴリズムについて、簡単に説明する。
【００５１】
（ａ）まず、現在の状態から取り得る全てのアクションを取った場合の次状態を求め、その状態を新たなノードとして現ノードからリンクを張る（ここでは、次の状態を求めるために予測部３１を使う）。
【００５２】
（ｂ）次の状態が既に到達した他の状態と等しければ（または近ければ）、そのノードまでの到達コストを比較する（ここでは到達にかかる時間ステップ）。
【００５３】
（ｃ）比較した結果、コストの低い方を残し、高い方を棄てる。
【００５４】
（ｄ）次状態において、新しくノードが生成された場合は、次の式（９）の評価関数を計算し、候補ノードに加える。
【数９】
2006313512.tif 000011
…（９）
【００５５】
式（９）において、ｇ（ｎ）は、スタートノードから現在のノードまでの経路コストを示し、ｈ（ｎ）は、現在のノードからゴールノードまでの経路の見積りコスト（ここでは状態空間での目標値までの距離を用いる）を示し、αは、重み係数（上記二つのコストの配分）を示している。
【００５６】
（ｅ）候補ノードの中から評価関数の最も低いものを選んで現ノードとする。
【００５７】
（ｆ）選択されたノードは候補ノードから除外する。
【００５８】
（ｇ）ゴール状態に等しく（もしくは十分近く）なるまで、上述した（ａ）乃至（ｆ）の操作を繰り返す。
【００５９】
計画部３３による行動シーケンスの計画と行動シーケンスの実行との反復によって目標値にたどり着くことができる。計画部３３による行動シーケンスの計画と行動シーケンスンの実行との反復について、図４乃至図６を用いて説明する。
【００６０】
初期状態Ｓ0として、下に静止している状態（θ＝０，ω＝０）を与えた場合、予測精度が高い予測部３１を用いて探索を実行すると、図４および図５のように（θ，ω）空間においてノードが広がっていき、時間の経過とともに目標値にたどり着くことができる。
【００６１】
図４および図５においては、状態空間４１において、縦軸を角速度ω、横軸を角度θとし、スタート位置５１を、リンク１１が真下に垂れ下がり、角速度ω＝０の位置（縦軸、横軸ともに０となる位置）としている。また、目標値５２は、リンク１１が真上に振り上がり、角速度ω＝０の位置であり、図中黒丸印で示されている。
【００６２】
さらに、図４および図５においては、演算済みのノードが白丸印○で、候補経路が実線で、候補のノード、すなわち、経路の先端がバツ印×で示されている。
【００６３】
図４に示されるように、スタート位置から、演算済みノードを基に、候補経路が算出され、経路の先端に候補のノードが求められる。
【００６４】
図５は、ノードの広がりと時間との関係を示す図である。図５Ａは、試行が開始されてから十分な時間が経過していない状態であり、図５Ｂ，図５Ｃ，図５Ｄと、時間が経過するにしたがって、（θ，ω）空間で、ノードが広がっていき、十分に時間を掛けることにより、図５Ｅに示されるように、目標値５２にたどり着くことができる。
【００６５】
図５に示されるような行動シーケンスは、状態遷移のモデルが正確な場合には問題がなく正解シーケンスを得ることができるが、状態の遷移を予測部３１によって学習している場合、誤った予測によって、誤った行動シーケンスを生成してしまう。自律エージェント１では、このプランをとりあえず実行してみる。この結果、予測しなかったような状態へ遷移してしまうことがあり得るが、この実行結果も予測部３１の学習に利用される。また、これにより、今まで経験していなかった入出力関係が学習されるので、計画部３３において再度行動シーケンスが計画されても、先ほどとは違う行動シーケンスを計画することができる。
【００６６】
また、行動シーケンスンを実行した結果、自律エージェント１自身の現在の状態が変化してしまうので、またその状態から目標値に向けて行動シーケンスが計画され、計画された行動シーケンスが実行される。この行動シーケンスの計画と実行を繰り返していくうちに、次第に予測部３１による予測が正確になり、計画部３３において、目標値にたどり着くような行動シーケンスを計画することができる。
【００６７】
図６に、（θ，ω）空間で、行動シーケンスを実行する度に、行動シーケンスと実行結果の誤差が減少してゆき、最終的（図６においては５回目）には目標値に到達できる行動シーケンスを計画することができている例を示す。
【００６８】
図６においては、図４および図５と同様に、縦軸を角速度ω、横軸を角度θとして、計画と実行結果がプロットされており、計画が点線で示される軌跡で、実行が実線で示される軌跡で、それぞれ示されている。
【００６９】
図６Ａに示される試行１回目（Trial１）において、計画と実行にずれが生じている。成功しなかった場合、試行１回目の終了状態から、再度目標に向かって計画が定められ、２回目の試行が実行される。
【００７０】
図６Ｂに示される試行２回目（Trial２）、図６Ｃに示される試行３回目（Trial３）、および、図６Ｄに示される試行４回目（Trial４）においても、計画と実行にはずれが生じている。しかしながら、これらの実行のたび、その結果を学習した予測部３１による予測精度が向上するため、計画と実行の差が減少していく。このようにして、各試行の終了状態から、再度目標に向かって計画が繰り返される。
【００７１】
そして、図６Ｅに示される試行５回目（Trial５）において、行動シーケンスと実行結果の誤差がほぼなくなり、行動シーケンスどおりの実行シーケンス（以下、成功実行シーケンスと称する）を得ることができている。
【００７２】
次に、制御部３４の学習について説明する。
【００７３】
制御部３４の学習には、統計学習による関数近似器が用いられ、関数近似器として、例えば、上述したSVRが用いられる。制御部３４は、成功実行シーケンスが得られた場合、初期状態から目標値に至るまでの各状態とその状態で実行したアクションの関係を、次の式（１０）に示される関数ｇdとして学習する。
【数１０】
2006313512.tif 000012
…（１０）
【００７４】
図７に、状態０から状態ｎにおいて、式（１０）において実際に用いるデータの関係を表す。
【００７５】
複数の成功実行シーケンス（成功体験）を繰り返し学習させることによって、次第に任意の初期状態から任意の目標値に到達できるような関数ｇdを取得することができる。
【００７６】
また、制御部３４が、上述した場合と同様の学習を、目標値をパラメータとした次の式（１１）に示される関数ｇとして学習した場合には、任意の状態Ｓtから任意の目標値Ｓdに制御することができる関数ｇを取得できたことになる。この場合には、目標値設定部３２が生成する目標値を次々と変えて、それに向かって行動シーケンスが計画され、計画された行動シーケンスが実行され、その結果得られる成功実行シーケンスに基づいて学習が行われる。
【数１１】
2006313512.tif 000013
…（１１）
【００７７】
例えば、行動シーケンスを計画するときと同様、目標値としてリンク１１が振り上がった状態（θ＝π，ω＝０）が与えられた場合には、図８に示されるように、複数の状態から目標値までの成功実行シーケンスが学習サンプルとして次々と与えられていくと、制御部３４において、徐々に図９の相図のような任意の状態から目標値へ向かう構造が学習される。
【００７８】
自律エージェント１の場合、この関数ｇは具体的には次の式（１２）に示されるような関数となっており、時刻ｔに観測された環境（θt，ωt）を使って、次時刻ｔ＋１のトルクτt+1を求めることにより、リンク１１を振り上げるまでの制御を行うことができるようになされている。
【数１２】
2006313512.tif 000014
…（１２）
【００７９】
予測部３１乃至制御部３４の処理を整理すれば、図１０に示すフローチャートのとおりとなる。
【００８０】
すなわち、ステップＳ１において、目標値設定部３２が目標値Ｓdを設定して計画部３３に出力し、ステップＳ２において、計画部３３が逐次学習している予測部３１による予測を利用して行動シーケンスを計画する。そして、ステップＳ３において、計画された行動シーケンスが実行され、その結果を含む実行シーケンスが記録される。ステップＳ４において、予測部３１が実行シーケンスに基づいて学習を行う。次に、ステップＳ５において、環境が目標値に到達したか否か判定され、環境が目標値に到達したと判定されるまで、処理はステップＳ２に戻り、それ以降の処理が繰り返される。そして、ステップＳ５において、環境が目標値に到達したと判定された場合、処理はステップＳ６に進み、制御部３４が目標値と成功実行シーケンスに基づいて学習を行うことになる。
【００８１】
ところで、これまでに説明した制御部３４による学習は、成功実行シーケンスに基づいてのみ行われていた。しかしながら、成功実行シーケンスは、予測部３１により精度の高い予測が行われて行動シーケンスが計画され、計画された行動シーケンスが実行されたときに取得できるものであり、新しい状況下においてすぐに成功実行シーケンスを取得できることはまれである。
【００８２】
そこで、以下においては成功実行シーケンスが取得できなかった場合においても制御部３４の学習を行う方法について提案する。
【００８３】
図１１は、自律エージェント１における角度θと角速度ωからなる（θ，ω）空間に、矢印を用いてベクトル場を描画したものである。同図Ａには、現在（時刻ｔ）の状態Ｓtと設定された目標値Ｓdが示されている。現在の情報Ｓtから目標値Ｓdへの行動シーケンスを計画して実行する場合を考察する。
【００８４】
予測部３１が十分学習されていて精度の高い予測を行うことができれば、同図Ｂに示すような成功実行シーケンス（成功体験）を得ることができる。
【００８５】
逆に、予測部３１の学習が不十分であって精度の高い予測を行うことができない場合、同図Ｃに示すように、計画された行動シーケンスを実行しても成功実行シーケンスを得ることができず、結局、目標値Ｓdへの遷移に失敗することがある。以下、このようなシーケンスを失敗実行シーケンス（失敗体験）と称する。
【００８６】
上述したように、制御部３４では、成功実行シーケンスが得られた場合、成功実行シーケンスから得た時刻ｔの状態Ｓt、目標値Ｓd、行動ａt+1（ｔ＝１，２，…，Ｔ）を教師として、式（１１）の関数ｇを教師ありで学習する。
【００８７】
さらに、制御部３４では、成功実行シーケンスが得られずに失敗実行シーケンスが得られた場合にも、失敗実行シーケンスを用いて式（１１）の関数ｇを学習する。具体的には、図１２に示すように、失敗実行シーケンスの結果として到達してしまった目標値Ｓdとは異なる値を仮目標値Ｓ’dに設定して、当初から仮目標値Ｓ’dへの行動シーケンスを計画していたものと仮定し、失敗実行シーケンスから得た時刻ｔの状態Ｓt、仮目標値Ｓ’d、行動ａt+1（ｔ＝１，２，…，Ｔ）を教師として、式（１１）の関数ｇを教師ありで学習する。
【００８８】
なお、学習する関数ｇは連続値関数なので、異なる目標値の経験でも、他の目標値を与えたときの経験に影響を与えることができる。
【００８９】
またさらに、仮目標値Ｓ’dの考え方を一般化すると、図１３に示すように、失敗実行シーケンスにおいて最終的な到着した値だけでなく、失敗実行シーケンスの途中の任意の値を仮目標値Ｓ’dに設定することができる。これら経過途中の任意の値を仮目標値Ｓ’dに設定して、それ以前の実行シーケンスを教師とすれば、失敗実行シーケンスに基づいた経験強化学習が可能となる。
【００９０】
失敗実行シーケンスにも基づいて経験強化学習を行うときの予測部３１乃至制御部３４の処理を整理すれば、図１４に示すフローチャートのとおりとなる。
【００９１】
すなわち、ステップＳ１１において、目標値設定部３２が目標値Ｓdを設定して計画部３３に出力し、ステップＳ１２において、計画部３３が逐次学習している予測部３１による予測を利用して行動シーケンスを計画する。そして、ステップＳ１３において、計画された行動シーケンスが実行され、その結果を含む実行シーケンスが記録される。ステップＳ１４において、予測部３１が実行シーケンスに基づいて学習を行う。
【００９２】
次に、ステップＳ１５において、環境が目標値Ｓdに到達したか否か判定され、環境が目標値Ｓdに到達していないと判定された場合、処理はステップＳ１６に進む。ステップＳ１６において、目標値設定部３２が実行シーケンスの経過途中の任意の値を仮目標値Ｓ’dに設定し、ステップＳ１７において、制御部３４が仮目標値Ｓ’dとこれまでに記憶した実行シーケンスとに基づいて学習を行う。この後、ステップＳ１２に戻り、それ以降の処理が繰り返される。そして、ステップＳ１５において、環境が目標値Ｓdに到達したと判定された場合、処理はステップＳ１８に進み、制御部３４が当初の目標値Ｓdとこれまでに記憶した実行シーケンスに基づいて学習を行うことになる。
【００９３】
以上に説明したように、制御部３４は成功実行シーケンスのみならず、失敗実行シーケンスも利用して経験強化型学習をおこなうことができるので、成功実行シーケンスだけを用いて学習していた場合に比較して、結果として、学習の速度を上げることが可能となる。
【００９４】
次に、制御部３３がモジュール化されているときに各モジュールを同時学習することについて提案する。以下、モジュール化されている制御部３４を制御器とも記述する。
【００９５】
所定の実行シーケンスが与えられたときに制御器（モジュール）が学習可能となる必要十分条件は、以下のとおりである。
「行動変数（添え字にｄが付与された変数）が成功実行シーケンスまたは失敗実行シーケンスに含まれている制御器」
【００９６】
この条件を満たす制御器は、実行シーケンスがもともと当該制御器を対象としたものでなくとも、その実行シーケンスを用いて学習が可能である。
【００９７】
図１５は、モジュール化・階層化された制御部の一例を示している。なお、添え字にｄが付与された変数は、上述した目標値Ｓdにおける添え字ｄと同様に、当該変数の目標値であることを意味している。例えば、θgoalは、変数θの目標値である。
【００９８】
トルクτを行動変数としたθω制御器の関数をｇθω,τ、角度θと角速度ωを行動変数としたＥ制御器の関数をｇE,θωと記述するように、制御器の関数ｇの添え字に制御対象変数と行動変数をカンマで区切って示す表記法を用いると、それらは次式（１３）のようになる。
【数１３】
2006313512.tif 000015
…（１３）
【００９９】
いま、例えば目標値として以下に示す２次元のベクトル
【数１４】
2006313512.tif 000016
を指定したとする。
【０１００】
このとき、この目標値θd＝π，ωd＝０を制御する制御器はｇθω,τである。この制御器ｇθω,τの出力（行動変数）はτdであって、行動変数τdを入力とする制御器は下位の階層に存在していないので、この１つの制御器ｇθω,τだけで動作することになる。これを示したのが図１６である。
【０１０１】
従来であれば、制御器ｇθω,τだけを学習することになるが、本発明によれば、τdを行動変数とする制御器ｇθω,τ以外の制御器ｇE,τ，ｇL,τも同時に学習することができる。これを示したのが図１７である。
【０１０２】
制御器ｇθω,τ，ｇE,τ，ｇL,τにおいて式（１１）との対応は図１８に示すとおりとなる。なお、各制御器における目標変数Ｓdは、図１３に示されたように、失敗実行シーケンス上の任意の値を仮目標値として採用するようにする。
【０１０３】
以上説明したように、モジュール化された制御器の同時学習によれば、各モジュールが独自に学習する場合に比較して、モジュール化された制御器の全体としての学習速度を上げることが可能となる。
【０１０４】
ところで、一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図１９に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１０５】
このパーソナルコンピュータ６０は、CPU(Central Processing Unit)６１を内蔵している。CPU６１にはバス６４を介して、入出力インタフェース６５が接続されている。バス６４には、ROM(Read Only Memory)６２およびRAM(Random Access Memory)６３が接続されている。
【０１０６】
入出力インタフェース６５には、ユーザが操作コマンドを入力するキーボード、マウス等の入力デバイスよりなる入力部６６、映像信号を表示するCRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)等のディスプレイよりなる出力部６７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部６８、およびモデム、LAN（Local Area Network）アダプタなどよりなり、インタネットに代表されるネットワークを介した通信処理を実行する通信部６９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどの記録媒体７１に対してデータを読み書きするドライブ７０が接続されている。
【０１０７】
このパーソナルコンピュータ６０に上述した一連の処理を実行させるプログラムは、記録媒体７１に格納された状態でパーソナルコンピュータ６０に供給され、ドライブ７０によって読み出されて記憶部６８に内蔵されるハードディスクドライブにインストールされている。記憶部６８にインストールされているプログラムは、入力部６６に入力されるユーザからのコマンドに対応するCPU６１の指令によって、記憶部６８からRAM６３にロードされて実行される。
【０１０８】
なお、本明細書において、プログラムに基づいて実行されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１０９】
【図１】自律エージェントの構成例を示す図である。
【図２】内部状態を持つ自律エージェントの一例を示す図である。
【図３】自律行動制御モデルの基本構成を示す図である。
【図４】行動シーケンスと実行の反復について説明するための図である。
【図５】行動シーケンスと実行の反復について説明するための図である。
【図６】行動シーケンスと実行の繰り返しによって目標状態にたどり着くような実行シーケンスを得ることについて説明するための図である。
【図７】初期状態から目標状態に至るまでの各状態とその状態で実行したアクションの関係を関数として学習する場合のデータの関係を示す図である。
【図８】学習サンプルとして与えられる複数の状態から目標状態までの成功実行シーケンスを示す図である。
【図９】任意の状態から目標状態へ向かう構造を示す図である。
【図１０】成功実行シーケンスに基づく強化学習の処理を説明するフローチャートである。
【図１１】θω空間における成功実行シーケンスと失敗実行シーケンスを示す図である。
【図１２】θω空間における失敗実行シーケンスの結果を仮目標値とする場合を示す図である。
【図１３】状態空間における失敗実行シーケンスの経過途中を仮目標値とする場合を示す図である。
【図１４】成功実行シーケンスおよび失敗実行シーケンスに基づく強化学習の処理を説明するフローチャートである。
【図１５】モジュール化・階層化された制御器の一例を示す図である。
【図１６】図１５のモジュール化・階層化された制御器において、θ，ωを目標値としたとき、制御に利用される経路を示す図である。
【図１７】図１５のモジュール化・階層化された制御器において、θ，ωを目標値としたとき、学習可能なモジュールを示す図である。
【図１８】図１７に示された学習可能なモジュールにおける、行動変数、状態変数、および目標変数を示す図である。
【図１９】汎用パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０１１０】
１  自律エージェント，  １１  リンク，  ２１  餌，  ３１  予測部,  ３２  目標値設定部，  ３３  計画部，  ３４  制御部
【図１】
2006313512.tif 000017
【図２】
2006313512.tif 000018
【図３】
2006313512.tif 000019
【図４】
2006313512.tif 000020
【図５】
2006313512.tif 000021
【図６】
2006313512.tif 000022
【図７】
2006313512.tif 000023
【図８】
2006313512.tif 000024
【図９】
2006313512.tif 000025
【図１０】
2006313512.tif 000026
【図１１】
2006313512.tif 000027
【図１２】
2006313512.tif 000028
【図１３】
2006313512.tif 000029
【図１４】
2006313512.tif 000030
【図１５】
2006313512.tif 000031
【図１６】
2006313512.tif 000032
【図１７】
2006313512.tif 000033
【図１８】
2006313512.tif 000034
【図１９】
2006313512.tif 000035