(57)【特許請求の範囲】
【請求項１】
２点間到達運動課題における報酬を出力とする報酬関数を格納し得る報酬関数格納手段と、
移動する制御対象の環境に関する第一種のパラメータである１以上の第一種環境パラメータの値を取得する第一種環境パラメータ取得手段と、
前記１以上の第一種環境パラメータの値を前記報酬関数に代入し、当該報酬関数が出力する報酬を最大とするような１以上の制御パラメータの値を算出する制御パラメータ値算出手段と、
前記１以上の制御パラメータの値を前記制御対象に対して出力する制御パラメータ値出力手段と、
障害物を避けるための仮想的な外力である仮想外力を出力とする仮想外力関数を格納し得る仮想外力関数格納手段と、
前記仮想外力に関連する第二種のパラメータである１以上の第二種環境パラメータの値を取得する第二種環境パラメータ取得手段と、
前記１以上の第二種環境パラメータの値を前記仮想外力関数に代入し、仮想外力を算出する仮想外力算出手段と、
前記仮想外力を前記制御対象に対して出力する仮想外力出力手段とを具備する強化学習装置。
【請求項２】
強化学習器と、当該強化学習器とは分離されている仮想外力発生器とを具備する請求項１記載の強化学習装置であって、
前記強化学習器は、
前記報酬関数格納手段と、前記第一種環境パラメータ取得手段と、前記制御パラメータ値算出手段と、前記制御パラメータ値出力手段とを具備し、
前記仮想外力発生器は、
前記仮想外力関数格納手段と、前記第二種環境パラメータ取得手段と、前記仮想外力算出手段と、前記仮想外力出力手段とを具備する請求項１記載の強化学習装置。
【請求項３】
前記制御パラメータ値出力手段が出力する前記１以上の制御パラメータの値と、前記仮想外力出力手段が出力する前記仮想外力とが加えられて前記制御対象に与えられる請求項１または請求項２記載の強化学習装置。
【請求項４】
前記強化学習装置は、仮想外力近似器をさらに具備し、
前記仮想外力近似器は、
前記第二種環境パラメータとは少なくとも一部に異なる観測可能な第三種のパラメータである２以上の第三種パラメータを有し、障害物を避けるための第二の仮想外力を出力とする関数近似器を格納し得る関数近似器格納手段と、
前記制御対象を観測し、当該制御対象の状態に関する情報である１以上の状態情報を取得する状態情報取得手段と、
前記状態情報を前記関数近似器に代入し、第二の仮想外力を算出する第二仮想外力算出手段と、
前記仮想外力発生器が出力する仮想外力と前記第二の仮想外力との差異に関する情報である差異情報を算出する差異情報算出手段と、
前記差異情報が最小となるように、前記関数近似器のパラメータを更新する近似手段とを具備する請求項１から請求項３いずれか記載の強化学習装置。
【請求項５】
前記差異情報が所定の条件を満たすか否かを判断する判断手段と、
前記判断手段が前記所定の条件を満たすほど、前記仮想外力発生器が出力する仮想外力と前記第二の仮想外力との差異が小さいと判断した場合に、前記制御対象に対して出力する仮想外力を、前記仮想外力発生器の出力から前記仮想外力近似器の出力へ切り替える切替手段とをさらに具備する請求項４記載の強化学習装置。
【請求項６】
障害物を避けながら一の目標地点に到達する課題である２点間到達運動課題を解決する請求項１から請求項５いずれか記載の強化学習装置。
【請求項７】
前記仮想外力の座標系は、
前記制御対象の特定の箇所に対する相対座標である請求項４から請求項６いずれか記載の強化学習装置。
【請求項８】
前記状態情報取得手段が取得した１以上の状態情報のうち、変化が閾値より大きい１以上の状態情報を取得する選択手段をさらに具備し、
前記第二仮想外力算出手段は、
前記選択手段が取得した１以上の状態情報のみを前記関数近似器に代入し、第二の仮想外力を算出する請求項４または請求項５記載の強化学習装置。
【請求項９】
請求項４から請求項８いずれか記載の強化学習装置を用いて、移動する制御対象を制御する制御装置。
【請求項１０】
記憶媒体に、
２点間到達運動課題における報酬を出力とする報酬関数と、
障害物を避けるための仮想的な外力である仮想外力を出力とする仮想外力関数とを格納しており、
第一種環境パラメータ取得手段、制御パラメータ値算出手段、制御パラメータ値出力手段、第二種環境パラメータ取得手段、仮想外力算出手段、および仮想外力出力手段により実現される強化学習方法であって、
前記第一種環境パラメータ取得手段が、移動する制御対象の環境に関する第一種のパラメータである１以上の第一種環境パラメータの値を取得する第一種環境パラメータ取得ステップと、
前記制御パラメータ値算出手段が、前記１以上の第一種環境パラメータの値を前記報酬関数に代入し、当該報酬関数が出力する報酬を最大とするような１以上の制御パラメータの値を算出する制御パラメータ値算出ステップと、
前記制御パラメータ値出力手段が、前記１以上の制御パラメータの値を前記制御対象に対して出力する制御パラメータ値出力ステップと、
前記第二種環境パラメータ取得手段が、前記仮想外力に関連する第二種のパラメータである１以上の第二種環境パラメータの値を取得する第二種環境パラメータ取得ステップと、
前記仮想外力算出手段が、前記１以上の第二種環境パラメータの値を前記仮想外力関数に代入し、仮想外力を算出する仮想外力算出ステップと、
前記仮想外力出力手段が、前記仮想外力を前記制御対象に対して出力する仮想外力出力ステップとを具備する強化学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの運動学習を行う強化学習装置等に関するものである。
【背景技術】
【０００２】
強化学習は制御対象や環境のダイナミクスが未知であっても実装可能であり、また課題に応じた報酬関数を設定するだけで自律的に学習を行うため、ロボットの運動学習手法として広く用いられている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−６６２４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術において、複雑な運動軌道のための報酬関数は様々な項の和で表現されることが多く、各項の間で発生するトレードオフが学習の妨げとなる（これをトレードオフ問題という）、という課題があった。例えば、２点間到達運動課題における報酬関数は、一般に、目標地点で与えられる正の報酬と使用したエネルギーに対する負の報酬から構成される。この２つの要素の比率を適切なものに設定しないと、学習結果の速度が非常に速くなったり、遅くなったりと、望ましくない運動軌道となってしまう。さらに到達運動に加え、障害物回避等の要求が加わると、このトレードオフ問題はさらに困難なものとなる。障害物に接触したときの負の報酬が小さすぎると障害物にぶつかってしまい、また大きすぎると開始地点から動かないような学習結果となってしまう。報酬関数が複雑になってしまった場合、要素間のバランス調節を設計者が経験的に行わなければならず、強化学習の利点を損なってしまう。
【課題を解決するための手段】
【０００５】
本第一の発明の強化学習装置は、報酬を出力とする報酬関数を格納し得る報酬関数格納手段と、移動する制御対象の環境に関する第一種のパラメータである１以上の第一種環境パラメータの値を取得する第一種環境パラメータ取得手段と、１以上の第一種環境パラメータの値を報酬関数に代入し、報酬関数が出力する報酬を最大とするような１以上の制御パラメータの値を算出する制御パラメータ値算出手段と、１以上の制御パラメータの値を制御対象に対して出力する制御パラメータ値出力手段と、仮想的な外力である仮想外力を出力とする仮想外力関数を格納し得る仮想外力関数格納手段と、仮想外力に関連する第二種のパラメータである１以上の第二種環境パラメータの値を取得する第二種環境パラメータ取得手段と、１以上の第二種環境パラメータの値を仮想外力関数に代入し、仮想外力を算出する仮想外力算出手段と、仮想外力を制御対象に対して出力する仮想外力出力手段とを具備する強化学習装置である。
【０００６】
かかる構成により、障害物の回避に対する要求を仮想外力によって解決するために、単純な報酬関数ですばやく、かつ安定して、ロボットの運動学習が行える。
【０００７】
また、本第二の発明の強化学習装置は、第一の発明に対して、強化学習器と、強化学習器とは分離されている仮想外力発生器とを具備する強化学習装置であって、強化学習器は、報酬関数格納手段と、第一種環境パラメータ取得手段と、制御パラメータ値算出手段と、制御パラメータ値出力手段とを具備し、仮想外力発生器は、仮想外力関数格納手段と、第二種環境パラメータ取得手段と、仮想外力算出手段と、仮想外力出力手段とを具備する強化学習装置である。
【０００８】
かかる構成により、運動開始位置や目標位置が変更した場合に、再学習を行うのは到達運動に関する部分のみで足り、回避運動に関する学習結果は、障害物の位置や形状が変わらない限り再利用することができる。
【０００９】
また、本第三の発明の強化学習装置は、第一または第二の発明に対して、制御パラメータ値出力手段が出力する１以上の制御パラメータの値と、仮想外力出力手段が出力する仮想外力とが加えられて制御対象に与えられる強化学習装置である。
【００１０】
かかる構成により、障害物の回避に対する要求を仮想外力によって解決するために、単純な報酬関数ですばやく、かつ安定して、ロボットの運動学習が行える。
【００１１】
また、本第四の発明の強化学習装置は、第一から第三いずれかの発明に対して、強化学習装置は、仮想外力近似器をさらに具備し、仮想外力近似器は、第二種環境パラメータとは少なくとも一部に異なる観測可能な第三種のパラメータである２以上の第三種パラメータを有し、第二の仮想外力を出力とする関数近似器を格納し得る関数近似器格納手段と、制御対象を観測し、制御対象の状態に関する情報である１以上の状態情報を取得する状態情報取得手段と、状態情報を関数近似器に代入し、第二の仮想外力を算出する第二仮想外力算出手段と、仮想外力発生器が出力する仮想外力と第二の仮想外力との差異に関する情報である差異情報を算出する差異情報算出手段と、差異情報が最小となるように、関数近似器のパラメータを更新する近似手段とを具備する強化学習装置である。
【００１２】
かかる構成により、簡易な構成で制御対象を制御するための準備ができる。
【００１３】
また、本第五の発明の強化学習装置は、第四の発明に対して、差異情報が所定の条件を満たすか否かを判断する判断手段と、判断手段が所定の条件を満たすほど、仮想外力発生器が出力する仮想外力と第二の仮想外力との差異が小さいと判断した場合に、制御対象に対して出力する仮想外力を、仮想外力発生器の出力から仮想外力近似器の出力へ切り替える切替手段とをさらに具備する強化学習装置である。
【００１４】
かかる構成により、簡易な構成で制御対象を制御することができる。
【００１５】
また、本第六の発明の強化学習装置は、第一から第五いずれかの発明に対して、障害物を避けながら一の目標地点に到達する課題である２点間到達運動課題を解決する強化学習装置である。
【００１６】
かかる構成により、２点間到達運動課題を解決する制御対象について、単純な報酬関数ですばやく、かつ安定して、ロボットの運動学習が行える。
【００１７】
また、本第七の発明の強化学習装置は、第四から第六いずれかの発明に対して、仮想外力の座標系は、制御対象の特定の箇所に対する相対座標である強化学習装置である。
【００１８】
かかる構成により、障害物の位置や姿勢が変わった場合でも、仮想外力近似器の学習結果を再利用できる。
【００１９】
また、本第八の発明の強化学習装置は、第四から第七いずれかの発明に対して、状態情報取得手段が取得した１以上の状態情報のうち、変化が閾値より大きい１以上の状態情報を取得する選択手段をさらに具備し、第二仮想外力算出手段は、選択手段が取得した１以上の状態情報のみを関数近似器に代入し、第二の仮想外力を算出する強化学習装置である。
【００２０】
かかる構成により、関数近似器のパラメータを絞ることができ、学習速度を短縮できる。
【００２１】
また、本第九の発明の制御装置は、第四から第八いずれかの発明に対して、仮想外力近似器と、強化学習器とを用いて、移動する制御対象を制御する制御装置である。
【００２２】
かかる構成により、簡易な構成で制御対象を制御することができる。
【発明の効果】
【００２３】
本発明による強化学習装置によれば、すばやくかつ安定して、ロボットの運動学習が行える。
【図面の簡単な説明】
【００２４】
【図１】実施の形態１における強化学習システムが行う動作を説明する概略図
【図２】同強化学習システムのブロック図
【図３】同障害物との距離と仮想外力との関係を示す図
【図４】同強化学習システムの動作について説明するフローチャート
【図５】同強化学習器、仮想外力発生器、および仮想外力近似器と制御対象との概略図
【図６】同強化学習器、仮想外力発生器、および仮想外力近似器と制御対象との概略図
【図７】同実験結果を示す図
【図８】同実験結果を示す図
【図９】実施の形態２における強化学習システムのブロック図
【図１０】上記実施の形態におけるコンピュータシステムの概観図
【図１１】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００２５】
以下、強化学習システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
【００２６】
本実施の形態において、仮想的な外力を発生させる機能を有する強化学習装置等について説明する。また、本実施の形態において、強化学習装置を構成する強化学習器と仮想外力発生器とが分離している強化学習装置について説明する。また、本実施の形態において、仮想外力発生器から仮想外力近似器への自動切り替えを行える強化学習装置について説明する。また、本実施の形態において、仮想外力発生器の再利用性を向上できる強化学習装置について説明する。さらに、本実施の形態において、関数近似器のモデル選択を行える強化学習装置について説明する。
【００２７】
図１は、本実施の形態における強化学習システムＡが行う動作を説明する概略図である。強化学習システムＡは、主として、障害物を避けて移動を行う制御対象に対して強化学習を行うシステムである。また、図１に示すように、強化学習システムＡは、例えば、制御対象であるロボットアームの手先に仮想的な外力を発生させることで障害物を避けて移動する。強化学習システムＡにおいて、例えば、障害物の表面に対し垂直な方向に仮想外力を発生させ、強化学習器の出力に足しこむことで障害物を回避しつつ到達運動を達成する。
【００２８】
図２は、本実施の形態における強化学習システムＡのブロック図である。強化学習システムＡは、制御対象１、および強化学習装置２を具備する。また、強化学習装置２は、強化学習器２１、仮想外力発生器２２、仮想外力近似器２３、判断手段２４、および切替手段２５を具備する。
【００２９】
また、強化学習器２１は、報酬関数格納手段２１１、第一種環境パラメータ取得手段２１２、制御パラメータ値算出手段２１３、および制御パラメータ値出力手段２１４を具備する。
【００３０】
また、仮想外力発生器２２は、仮想外力関数格納手段２２１、第二種環境パラメータ取得手段２２２、仮想外力算出手段２２３、および仮想外力出力手段２２４を具備する。
【００３１】
さらに、仮想外力近似器２３は、関数近似器格納手段２３１、状態情報取得手段２３２、選択手段２３３、第二仮想外力算出手段２３４、差異情報算出手段２３５、近似手段２３６、および第二仮想外力出力手段２３７を具備する。
【００３２】
制御対象１は、制御の対象であり、例えば、移動するロボットである。また、制御対象１は、例えば、２点間到達運動を達成するロボットである。
【００３３】
強化学習装置２を構成する強化学習器２１は、制御対象１や環境のダイナミクスが未知であっても実装可能であり、また課題に応じた報酬関数を設定するだけで自律的に学習を行える装置である。
【００３４】
強化学習器２１を構成する報酬関数格納手段２１１は、報酬関数を格納し得る。報酬関数は、報酬を出力とする。また、報酬関数は、通常、２以上の項の和で表現される。例えば、２点間到達運動課題における報酬関数は、一般に、目標点までの距離に応じた正の報酬と、出力の大きさに応じた負の報酬の和から構成される。さらに具体的には、例えば、報酬関数は、目標点までの距離に応じた正の報酬をガウス分布、出力の大きさに応じた負の報酬を２次形式とした関数である。
【００３５】
また、報酬関数r(t)は、例えば、以下の数式１である。なお、tは時刻である。
【数１】
0005750657.tif 000002
【００３６】
数式１において、p(t)は手先位置、pgoalは手先の目標位置、σは正の報酬が与えられる範囲を決めるパラメータである。また、u(t)は、時刻tにおける行動である。行動とは、制御対象の運動を決定する情報である。行動uは、例えば、ロボットの各関節に与えられる制御力を並べたベクトルである。さらに、Rは、行列であり、制御力の大きさに対する負の報酬を決めるパラメータであり、一般に正定行列を用いる。Rが大きいと小さな制御力でゆっくりゴールへ、また逆に小さいと大きな制御力で素早くゴールへ向かう運動を学習する。なお、行動uは、後述する１以上の制御パラメータである。また、１以上の制御パラメータは、制御パラメータ値算出手段２１３により算出される。
【００３７】
また、強化学習を行うエージェント（強化学習装置２に該当）は、例えば、状態空間上を試行錯誤によって探索することで、報酬を最大とするような行動則を学習する。ただし、どのような変数を状態空間に取るかは様々な方法がある。ロボットアームの制御では各関節の角度と角速度からなるベクトルを状態空間とすることが一般的である。一方、障害物のある２点間到達運動では、関節の角度と角速度に加えて、手先の位置と速度も状態空間に含めることにより、学習効率が飛躍的に上昇する。これは、報酬関数や仮想外力が手先座標に依存するため、手先座標に関する情報が重要な役割を担っているためであると考えられる。
【００３８】
第一種環境パラメータ取得手段２１２は、制御対象１の環境に関する第一種のパラメータである１以上の第一種環境パラメータの値を取得する。第一種環境パラメータは、例えば、目標地点までの距離、現在地点、ロボットアームの各関節の角度、角速度や、手先の位置と速度などである。第一種環境パラメータは、報酬関数に代入され得る値に対応するパラメータである。第一種環境パラメータ取得手段２１２は、例えば、高解像度のステレオカメラや距離センサ等、およびＣＰＵ等により実現され得る。
【００３９】
制御パラメータ値算出手段２１３は、１以上の第一種環境パラメータを報酬関数に代入し、報酬関数が出力する報酬を最大とするような１以上の制御パラメータの値を算出する。制御パラメータは、制御対象の構造や学習アルゴリズムの種類に依存して決定される。なお、かかる処理は、強化学習である。強化学習のアルゴリズムにはQ学習、SARSA、方策勾配法などがあり、状況に応じて様々なものを実装できる。また、連続時間、連続空間における強化学習では、価値関数や方策の表現に関数近似器を用いる必要があり、これにはNGNet、RBF、ニューラルネット、CMACなど様々なものから選択可能である。強化学習のアルゴリズムは公知技術であるので、詳細な説明は省略する。
【００４０】
制御パラメータ値出力手段２１４は、制御パラメータ値算出手段２１３が算出した１以上の制御パラメータの値を制御対象１に対して出力する。なお、ここでの出力とは、通常、仮想外力または第二仮想外力と合成されるための出力である。そして、合成された力（通常、ベクトル）が、制御対象１に与えられる。
【００４１】
仮想外力発生器２２は、仮想的な外力である仮想外力を発生し、制御対象１に対して出力する。仮想外力発生器２２は、高解像度のステレオカメラや距離センサ等を用いて障害物の表面を検知し、障害物を避けるような仮想外力fvを手先に発生させる。なお、fvは手先座標系で表される仮想外力であり、最終的に、関節角座標系で表される仮想外力へと変換される。障害物を確実に避けるためには仮想外力fvを大きな値とする必要があるが、大きな力が突然発生することは、安全性や学習の安定性などの面から好ましくない。そこで仮想外力fvを障害物との距離に応じて滑らかに変化させることが好適である。つまり、例えば、図３に示すように、仮想外力発生器２２は、障害物からの距離との関係を担保するように、仮想外力を発生させることは好適である。図３において、障害物との距離の３乗に比例して、仮想外力の大きさが変化する場合を示している。点線で表されている変数ａが仮想外力の大きさを決定する。ｄは障害物との距離を表しており、ｗより近い領域では、変数ａは距離ｄの３乗に比例して大きくなり、ｗより遠い領域では変数ａはゼロとなる。距離ｗの近傍において変数ａの変化は連続的になっていることが望ましい。また、変数ａの増加の傾きは、物理系のパラメータから大まかに決定することができる。
【００４２】
そして、手先に加わる仮想外力fvは変数ａを用いて、数式２のように表される。
【数２】
0005750657.tif 000003
【００４３】
ここでｈは、カメラや距離センサ等を用いて計測された、障害物表面に対して垂直な単位ベクトルである。
【００４４】
また、仮想外力fvはヤコビ行列J(t)を用いて、手先座標系から関節座標系へと変換される。関節座標系における仮想外力uvは、数式３により算出され得る。
【数３】
0005750657.tif 000004
【００４５】
なお、手先自由度と関節自由度が異なる場合、ヤコビ行列の逆行列は計算できないので、その場合は擬似逆行列などを用いて対処する。手先自由度の方が関節自由度より大きいヤコビ行列の擬似逆行列は（ＪＴＪ）−１ＪＴ、また手先自由度より関節自由度が大きいヤコビ行列の擬似逆行列はＪＴ（ＪＪＴ）−１を用いることが先行研究では一般的に行われている。
【００４６】
仮想外力発生器２２を構成する仮想外力関数格納手段２２１は、仮想外力を出力とする仮想外力関数を格納し得る。なお、仮想外力関数とは、通常、障害物との距離をパラメータとする関数である。また、通常、仮想外力関数は、障害物との距離をパラメータとする減少関数である。また、例えば、仮想外力関数は、障害物との距離の３乗に比例して、仮想外力の大きさが小さくなる関数である。仮想外力関数は、数式２、数式３、図３により示される情報であることは好適である。
【００４７】
第二種環境パラメータ取得手段２２２は、仮想外力に関連する第二種のパラメータである１以上の第二種環境パラメータの値を取得する。なお、第二種環境パラメータは、例えば、障害物との距離などである。また、第二種環境パラメータ取得手段２２２は、高解像度のステレオカメラや距離センサ等により実現され得る。
【００４８】
仮想外力算出手段２２３は、仮想外力関数格納手段２２１の仮想外力関数に、１以上の第二種環境パラメータを代入し、仮想外力を算出する。
【００４９】
仮想外力出力手段２２４は、仮想外力算出手段２２３が算出した仮想外力を制御対象１に対して出力する。なお、ここでの出力とは、通常、１以上の制御パラメータの値と合成されるための出力である。そして、合成された力（通常、ベクトル）が、制御対象１に与えられる。
【００５０】
仮想外力近似器２３は、仮想外力発生器２２の出力uvを模擬する。仮想外力近似器２３はどのような状態でどのような仮想外力が発生しているかを観測し、その近似出力uv＾（＾はuの真上に存在する）を学習する。そして、強化学習装置２は、近似精度が十分に良くなった後は、仮想外力発生器２２の変わりに、仮想外力近似器２３を用いることにより、高価な機器が無くても障害物を避けるための仮想外力を発生させられる。また、仮想外力近似器２３は、以下の数式４により、近似出力uv＾を算出する。なお、近似出力uv＾は、第二の仮想外力とも言う。
【数４】
0005750657.tif 000005
【００５１】
数式４において、φは、後述する関数近似器である。また、数式４において、θは各関節の角度から構成されるベクトル、ｐは手先の位置ベクトル、ｔは時刻である。
【００５２】
関数近似器格納手段２３１は、第二種環境パラメータとは少なくとも一部に異なる観測可能な第三種のパラメータである２以上の第三種パラメータを有し、第二の仮想外力を出力とする関数近似器を格納し得る。ここで、第三種パラメータは、例えば、関節の角度ベクトル、手先の位置ベクトル、時刻などである。第三種パラメータは、通常、制御対象１から値が得られるパラメータなどである。第三種パラメータは、ステレオカメラや距離センサなどの特別なハードウェアを用いずに観測可能なパラメータであることが好適である。また、第三種パラメータは、後述する状態情報が代入されるパラメータである。また、関数近似器とは、関数である。また、関数近似器は、NGNet、RBF、ニューラルネット、CMACなど様々なものから選択可能である。
【００５３】
状態情報取得手段２３２は、制御対象１を観測し、制御対象１の状態に関する情報である１以上の状態情報を取得する。状態情報とは、関節の角度ベクトル、手先の位置ベクトルなどである。
【００５４】
選択手段２３３は、状態情報取得手段２３２が取得した１以上の状態情報のうち、変化が閾値より大きい１以上の状態情報を取得する。選択手段２３３は、通常、障害物を避けるために重要な関節を制御するための情報である１以上の状態情報を取得する。
【００５５】
第二仮想外力算出手段２３４は、状態情報を関数近似器に代入し、第二の仮想外力を算出する。また、第二仮想外力算出手段２３４は、例えば、数式４により、第二の仮想外力uv＾を算出する。なお、第二仮想外力算出手段２３４は、選択手段２３３が取得した１以上の状態情報のみを関数近似器に代入し、第二の仮想外力を算出することは好適である。
【００５６】
差異情報算出手段２３５は、仮想外力発生器２２が出力する仮想外力と第二の仮想外力との差異に関する情報である差異情報を算出する。差異情報とは、差の絶対値でも良いし、差の絶対値の対数値などでも良い。差異情報算出手段２３５は、例えば、数式５により、差異情報ｅを算出する。数式５において、差異情報は、仮想外力と第二の仮想外力との差のノルムの２乗である。
【数５】
0005750657.tif 000006
【００５７】
近似手段２３６は、差異情報ｅが最小となるように、関数近似器のパラメータを更新する。さらに具体的には、近似手段２３６は、差異情報ｅを関数近似器のパラメータにより偏微分し、その勾配が下降する方向に向かって関数近似器のパラメータを更新する。この更新を繰り返す事により、近似手段２３６は、差異情報ｅを最も小さくするような関数近似器のパラメータを獲得できる。
【００５８】
第二仮想外力出力手段２３７は、第二仮想外力算出手段２３４が算出した第二の仮想外力uv＾を、制御対象１に出力する。なお、ここでの出力とは、通常、１以上の制御パラメータの値と合成されるための出力である。そして、合成された力（通常、ベクトル）が、制御対象１に与えられる。
【００５９】
判断手段２４は、差異情報ｅが所定の条件を満たすか否かを判断する。また、判断手段２４は、差異情報の履歴が、所定の条件を満たすか否かを判断しても良い。所定の条件は、通常、差異情報ｅが閾値より小さい（閾値以下も含む）ことや、差異情報ｅが収束してきたこと等である。
【００６０】
切替手段２５は、判断手段２４が所定の条件を満たすほど、仮想外力発生器２２が出力する仮想外力と第二の仮想外力との差異が小さいと判断した場合に、制御対象１に対して出力する仮想外力を、仮想外力発生器２２の出力から仮想外力近似器２３の出力へ切り替える。なお、仮想外力近似器２３が仮想外力発生器２２の役割を十分模擬できたと、判断手段２４が判断した場合には、仮想外力発生器２２の出力から仮想外力発生器２３の出力へ切り替え、近似手段２３６は、パラメータの更新を終了する。
【００６１】
報酬関数格納手段２１１、仮想外力関数格納手段２２１、関数近似器格納手段２３１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。また、報酬関数格納手段２１１等に報酬関数等が記憶される過程は問わない。例えば、記録媒体を介して報酬関数等が報酬関数格納手段２１１等で記憶されるようになってもよく、通信回線等を介して送信された報酬関数等が報酬関数格納手段２１１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された報酬関数等が報酬関数格納手段２１１等で記憶されるようになってもよい。
【００６２】
制御パラメータ値算出手段２１３、制御パラメータ値出力手段２１４、第二種環境パラメータ取得手段２２２、仮想外力算出手段２２３、仮想外力出力手段２２４、状態情報取得手段２３２、選択手段２３３、第二仮想外力算出手段２３４、差異情報算出手段２３５、および近似手段２３６は、通常、ＭＰＵやメモリ等から実現され得る。制御パラメータ値算出手段２１３等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００６３】
次に、強化学習システムＡの動作について、図４のフローチャートを用いて説明する。
【００６４】
（ステップＳ４０１）強化学習器２１の第一種環境パラメータ取得手段２１２は、制御対象１の１以上の第一種環境パラメータの値を取得する。
【００６５】
（ステップＳ４０２）制御パラメータ値算出手段２１３は、報酬関数格納手段２１１から報酬関数を読み出す。そして、制御パラメータ値算出手段２１３は、当該報酬関数に、ステップＳ４０１で取得された１以上の第一種環境パラメータの値を代入し、報酬関数が出力する報酬を最大とするような１以上の制御パラメータの値を算出する。かかる場合のアルゴリズムは、Q学習、SARSA、方策勾配法など、上述したように問わない。
【００６６】
（ステップＳ４０３）仮想外力発生器２２の第二種環境パラメータ取得手段２２２は、１以上の第二種環境パラメータの値を取得する。
【００６７】
（ステップＳ４０４）仮想外力算出手段２２３は、仮想外力関数格納手段２２１から仮想外力関数を読み出す。そして、仮想外力算出手段２２３は、当該仮想外力関数に、ステップＳ４０３で取得された１以上の第二種環境パラメータの値を代入し、仮想外力を算出する。
【００６８】
（ステップＳ４０５）仮想外力近似器２３を構成する状態情報取得手段２３２は、制御対象１を観測し、１以上の状態情報を取得する。
【００６９】
（ステップＳ４０６）第二仮想外力算出手段２３４は、関数近似器格納手段２３１から関数近似器を読み出す。次に、第二仮想外力算出手段２３４は、当該関数近似器に、ステップＳ４０５で取得された１以上の状態情報を代入し、第二の仮想外力を算出する。なお、第二仮想外力を算出する前に、状態情報取得手段２３２が取得した１以上の状態情報のうち、選択手段２３３が、変化が閾値より大きい１以上の状態情報を選択し、第二仮想外力算出手段２３４は、当該選択された状態情報のみを利用して、第二仮想外力を算出しても良い。
【００７０】
（ステップＳ４０７）差異情報算出手段２３５は、ステップＳ４０４で算出された仮想外力とステップＳ４０６で算出された第二仮想外力との差異情報を算出する。
【００７１】
（ステップＳ４０８）判断手段２４は、ステップＳ４０７で算出された差異情報が所定の条件を満たすほど、小さいか否かを判断する。なお、判断手段２４は、時間的に連続する２以上の差異情報（差異情報の履歴）を用いて、所定の条件を満たすか否かを判断しても良い。所定の条件を満たす場合はステップＳ４０９に行き、所定の条件を満たさない場合はステップＳ４１６に行く。
【００７２】
（ステップＳ４０９）強化学習装置２は、１以上の制御パラメータの値と第二仮想外力との和を算出する。なお、かかる算出は、強化学習装置２が有する図示しない合成手段によりなされる、と考えても良い。
【００７３】
（ステップＳ４１０）強化学習装置２は、ステップＳ４０９で算出した和の力ベクトルを、制御対象に出力する。なお、かかる出力も、強化学習装置２が有する図示しない合成手段によりなされる、と考えても良い。
【００７４】
（ステップＳ４１１）第一種環境パラメータ取得手段２１２は、制御対象１の１以上の第一種環境パラメータの値を取得する。
【００７５】
（ステップＳ４１２）制御パラメータ値算出手段２１３は、報酬関数に、ステップＳ４１１で取得された１以上の第一種環境パラメータの値を代入し、報酬関数が出力する報酬を最大とするような１以上の制御パラメータの値を算出する。
【００７６】
（ステップＳ４１３）状態情報取得手段２３２は、制御対象１を観測し、１以上の状態情報を取得する。
【００７７】
（ステップＳ４１４）第二仮想外力算出手段２３４は、関数近似器に、ステップＳ４１３で取得された１以上の状態情報を代入し、第二仮想外力を算出する。
【００７８】
（ステップＳ４１５）強化学習装置２は、処理を終了するか否かを判断する。処理を終了すると判断した場合は処理を終了し、処理を終了しないと判断した場合はステップＳ４０９に戻る。なお、目標を達成した場合に、処理を終了する、と判断される。なお、かかる判断は、判断手段２４が行っても良い。
【００７９】
（ステップＳ４１６）近似手段２３６は、ステップＳ４０７で取得した差異情報が最小となるように、関数近似器のパラメータを更新する。
【００８０】
（ステップＳ４１７）強化学習装置２は、１以上の制御パラメータの値と仮想外力との和を算出する。なお、かかる算出は、強化学習装置２が有する図示しない合成手段によりなされる、と考えても良い。
【００８１】
（ステップＳ４１８）強化学習装置２は、ステップＳ４１７で算出した和の力ベクトルを、制御対象に出力する。なお、かかる出力も、強化学習装置２が有する図示しない合成手段によりなされる、と考えても良い。
【００８２】
（ステップＳ４１９）強化学習装置２は、処理を終了するか否かを判断する。処理を終了すると判断した場合は処理を終了し、処理を終了しないと判断した場合はステップＳ４０１に戻る。なお、目標を達成した場合に、処理を終了する、と判断される。なお、かかる判断は、判断手段２４が行っても良い。
【００８３】
以下、本実施の形態における強化学習システムＡの動作の概略について説明する。ここでの動作は、ロボットの手先に、仮想的な外力を発生させることで障害物を避ける２点間到達運動を行う動作である。強化学習システムＡにおいて、障害物の表面に対し垂直な方向に仮想外力を発生させ（図１参照）、強化学習器の出力に足しこむことにより、障害物を回避しつつ到達運動を達成する。かかる場合の強化学習システムＡを構成する強化学習器２１、仮想外力発生器２２、および仮想外力近似器２３と制御対象１との概略図は図５である。
【００８４】
図５において、強化学習器２１は、与えられた報酬関数（例えば、数式１）に従い、２点間到達運動を行うための行動ｕ（１以上の制御パラメータに該当）を出力する。行動ｕは、ロボットの各関節に与えられる制御力を並べたベクトルである。図５において、ｐは制御対象１の手先位置に関する情報である。また、θは制御対象１の関節の角度のベクトルである。
【００８５】
また、仮想外力発生器２２は、高解像度のステレオカメラや距離センサ等を用いて障害物を認識し、障害物と手先が反発するような仮想外力ｕｖを算出する。行動ｕと仮想外力ｕｖの和が各関節に与えられることで、強化学習装置２は、障害物を避けつつ、２点間到達運動を達成できる。
【００８６】
また、仮想外力近似器２３は、仮想外力発生器２２の挙動を模擬するものであり、どのような時間や状態において、どのような仮想外力が出力されているのかを学習する。仮想外力近似器２３の学習が十分に収束した後は、仮想外力発生器２２の代わりに仮想外力近似器２３の出力ｕｖ＾を強化学習器２１の行動ｕに足しこむことで、仮想外力発生器２２を用いずに課題を達成できるようになる（図６参照）。
（実験結果）
【００８７】
以下、実験結果について説明する。本実験において、制御対象１は、７自由度のロボットアームである。そして、本実験において、７自由度のロボットアームシミュレータを用いて、障害物のある２点間到達運動課題を行った。その結果を図７に示す。なお、図７において、太い実線（７０など）は、ロボットアームである。また、図７において、縦軸、横軸の座標は、ロボットアームの位置を示す。
【００８８】
エージェント（強化学習装置２）は、ロボットアーム（制御対象１）の手先を初期位置（０．４８，−０．１６）から目標地点（０．３，０．３）まで障害物を避けながら到達する行動則を学習する。実線７１、７２は、障害物の表面を表しており、点線７３、７４よりも実線７１、７２に近づいたとき、変数ａが０より大きくなり仮想外力ｆｖが発生する。発生した手先座標系における仮想外力ｆｖは、図の下部の実線（７５、７６、７７、７８等）で表している。
【００８９】
仮想外力近似器２３の学習が十分に進んだ後、仮想外力発生器２２を使用しない場合の結果を図８に示す。実線（８１、８２、８３、８４等）は関節座標系において近似された仮想外力ｕｖ＾（ｔ）［＾はｕの真上の存在する］をヤコビ行列Ｊ（ｔ）によって手先座標系に変換した結果を示している。なお、図８において表示している、手先座標系における仮想外力の近似出力はアルゴリズムの実行上、必ずしも必要ではない。近似の結果を確認するため、便宜上算出したものである。この結果より、仮想外力発生器２２が無くても障害物を避けながら目標地点にたどり着けていることが分かる。なお、図８において、太い実線（８０など）は、ロボットアームである。
【００９０】
以上、本実施の形態によれば、障害物の回避に対する要求を仮想外力によって解決するために、単純な報酬関数ですばやく、かつ安定して、ロボットの運動学習が行える。
【００９１】
また、本実施の形態によれば、強化学習器２１と仮想外力発生器２２とを分離していることにより、運動開始位置や目標位置が変更した場合に、再学習を行うのは到達運動に関する部分（強化学習器２１）のみで足り、仮想外力近似器２３の近似結果は、障害物の位置や形状が変わらない限り再利用することができる。
【００９２】
また、本実施の形態によれば、仮想外力近似器２３により、簡易な構成で制御対象を制御するための準備ができる。
【００９３】
また、本実施の形態によれば、仮想外力発生器２２から仮想外力近似器２３への自動切り替えを行うことにより、簡易な構成で制御対象を制御することができる。
【００９４】
また、本実施の形態によれば、特に、２点間到達運動課題を解決する制御対象１について、単純な報酬関数ですばやく、かつ安定して、ロボットの運動学習が行える。
【００９５】
また、本実施の形態によれば、仮想外力の座標系は、制御対象１の特定の箇所に対する相対座標であることにより、障害物の位置や姿勢が変わった場合でも、仮想外力近似器の学習結果を再利用できる。
【００９６】
さらに、本実施の形態によれば、選択手段２３３により、関数近似器のパラメータを絞ることができ、学習速度を短縮できる。さらに具体的には、数式３におけるヤコビ行列の逆行列を調べることにより、手先座標系における仮想外力の近似に各関節がどの程度寄与しているかを知ることが出来る。ヤコビ行列はロボットの設計図等から容易に求めることが出来るものであるため、実験前にヤコビ行列を算出することで関数近似器のパラメータを効率よく配置できる。このようにしてパラメータの個数を絞れば、学習時間を短縮できる。
【００９７】
なお、本実施の形態によれば、強化学習装置２で構成された仮想外力近似器２３と強化学習器２１とを用いて、移動する制御対象を制御する制御装置が構築可能である。かかる制御装置により、簡易な構成で制御対象を制御することができる。
【００９８】
また、本実施の形態によれば、強化学習装置２において、仮想外力近似器２３、判断手段２４、および切替手段２５は存在しなくても良い。
【００９９】
さらに、本実施の形態によれば、仮想外力近似器２３において、選択手段２３３は存在しなくても良い。
（実施の形態２）
【０１００】
本実施の形態において、強化学習器と仮想外力発生器とが分離していない強化学習装置等について説明する。
【０１０１】
図９は、本実施の形態における強化学習システムＢのブロック図である。
強化学習システムＢは、制御対象１、強化学習装置３を具備する。強化学習装置３と強化学習装置２との違いは、強化学習器と仮想外力発生器とが分離しているか否かの違いである。強化学習装置３において、強化学習器と仮想外力発生器とが分離していない。
【０１０２】
強化学習装置３は、報酬関数格納手段２１１、第一種環境パラメータ取得手段２１２、制御パラメータ値算出手段２１３、制御パラメータ値出力手段２１４、仮想外力関数格納手段２２１、第二種環境パラメータ取得手段２２２、仮想外力算出手段２２３、仮想外力出力手段２２４を具備する。
【０１０３】
なお、強化学習装置３と強化学習装置２とは、その動作は同様であるので、強化学習装置３の動作の説明を省略する。
【０１０４】
以上、本実施の形態によれば、障害物の回避に対する要求を仮想外力によって解決するために、単純な報酬関数ですばやく、かつ安定して、ロボットの運動学習が行える。
【０１０５】
また、本実施の形態によれば、特に、２点間到達運動課題を解決する制御対象１について、単純な報酬関数ですばやく、かつ安定して、ロボットの運動学習が行える。
【０１０６】
なお、図１０は、本明細書で述べたプログラムを実行して、上述した実施の形態の強化学習装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１０は、このコンピュータシステム３４０の概観図であり、図１１は、コンピュータシステム３４０のブロック図である。
【０１０７】
図１０において、コンピュータシステム３４０は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２を含むコンピュータ３４１と、キーボード３４２と、マウス３４３と、モニタ３４４とを含む。
【０１０８】
図１１において、コンピュータ３４１は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２に加えて、ＭＰＵ３４１３と、ＣＤ−ＲＯＭドライブ３４１２及びＦＤドライブ３４１１に接続されたバス３４１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３４１５とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３４１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３４１７とを含む。ここでは、図示しないが、コンピュータ３４１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０１０９】
コンピュータシステム３４０に、上述した実施の形態の強化学習装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３５０１、またはＦＤ３５０２に記憶されて、ＣＤ−ＲＯＭドライブ３４１２またはＦＤドライブ３４１１に挿入され、さらにハードディスク３４１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３４１に送信され、ハードディスク３４１７に記憶されても良い。プログラムは実行の際にＲＡＭ３４１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３５０１、ＦＤ３５０２またはネットワークから直接、ロードされても良い。
【０１１０】
プログラムは、コンピュータ３４１に、上述した実施の形態の強化学習装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３４０がどのように動作するかは周知であり、詳細な説明は省略する。
【０１１１】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０１１２】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１１３】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１１４】
以上のように、本発明にかかる強化学習システムは、すばやくかつ安定して、ロボットの運動学習が行える、という効果を有し、ロボットの制御システム等として有用である。
【符号の説明】
【０１１５】
１  制御対象
２、３  強化学習装置
２１  強化学習器
２２  仮想外力発生器
２３  仮想外力近似器
２４  判断手段
２５  切替手段
２１１  報酬関数格納手段
２１２  第一種環境パラメータ取得手段
２１３  制御パラメータ値算出手段
２１４  制御パラメータ値出力手段
２２１  仮想外力関数格納手段
２２２  第二種環境パラメータ取得手段
２２３  仮想外力算出手段
２２４  仮想外力出力手段
２３１  関数近似器格納手段
２３２  状態情報取得手段
２３３  選択手段
２３４  第二仮想外力算出手段
２３５  差異情報算出手段
２３６  近似手段
２３７  第二仮想外力出力手段
【図２】
0005750657.tif 000007
【図４】
0005750657.tif 000008
【図９】
0005750657.tif 000009
【図１０】
0005750657.tif 000010
【図１１】
0005750657.tif 000011
【図１】
0005750657.tif 000012
【図３】
0005750657.tif 000013
【図５】
0005750657.tif 000014
【図６】
0005750657.tif 000015
【図７】
0005750657.tif 000016
【図８】
0005750657.tif 000017