(57)【要約】【課題】異なる機器の制御モデルを再利用して学習を効率化する制御装置を提供すること。【解決手段】センサの入力値に基づきアクチュエータの出力値を決定する制御装置において、パラメータの変更が可能な制御モデルを含む制御部と、異なる機器で獲得したパラメータ固定の制御モデルを含む制御部と、各制御部の出力値から選択してアクチュエータに出力する行動選択部とを備え、機械のセンサからの入力値に基づき、アクチュエータの出力値を決定する制御装置を提供する。【選択図】  図１
2018106466.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の状態値をセンサ値より取得する状態取得部と、
第一の制御モデルを含み、前記状態値、及び前記第一の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する第一の制御部と、
前記第一の制御部と並列に接続され、第二の制御モデルを含み、前記状態値、及び前記第二の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する第二の制御部と、
前記第一の制御部及び前記第二の制御部より出力された行動価値を選択する行動価値選択部と、
前記行動価値選択部が選択した行動価値、及び行動を入力し、前記状態値と共に記憶して、記憶されたデータに基づき前記第一の制御部に含まれる前記第一の制御モデルのパラメータを更新する学習部と、
を備えることを特徴とする制御装置。
【請求項２】
請求項１に記載の制御装置において、
その内部に含む制御モデルがそれぞれ異なる前記第二の制御部が複数個、並列に備えられていることを特徴とする制御装置。
【請求項３】
請求項１に記載の制御装置において、
その内部に含む制御モデルがそれぞれ異なる前記第一の制御部が複数個、並列に備えられていることを特徴とする制御装置。
【請求項４】
請求項１に記載の制御装置において、
その内部に含む制御モデルがそれぞれ異なる前記第一の制御部が複数個、及びその内部に含む制御モデルがそれぞれ異なる前記第二の制御部が複数個、共に並列に備えられていることを特徴とする制御装置。
【請求項５】
請求項３、または請求項４に記載の制御装置において、
複数の前記第一の制御部と接続し、前記第一の制御部に含まれる制御モデルのパラメータを更新することを選択する更新モデル選択部を更に備えることを特徴とする制御装置。
【請求項６】
請求項１乃至４のいずれかの請求項に記載の制御装置において、
前記行動価値選択部が選択した制御モデルを監視する選択監視部を更に備えることを特徴とする制御装置。
【請求項７】
制御対象の状態値をセンサ値より取得する工程と、
第一の制御部が、前記状態値、及び内部に含む第一の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する工程と、
第二の制御部が、前記第一の制御部と並列に動作して、前記状態値、及び内部に含む第二の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する工程と、
行動価値選択部が、前記第一の制御部及び前記第二の制御部より出力された行動価値を選択して、選択した行動価値、及び行動を学習部へ出力すると共に、選択した行動を前記制御対象のアクチュエータへ出力して、前記制御対象の動作を制御する工程と、
学習部が、前記行動価値選択部が選択した行動価値、及び行動を入力し、前記状態値と共に記憶して、記憶されたデータに基づき前記第一の制御部に含まれる前記第一の制御モデルのパラメータを更新する工程と、
を有することを特徴とする制御方法。
【請求項８】
前記第一の制御モデルを内部に含む前記第一の制御部が、それぞれ異なる制御モデルを内部に含む複数の制御部であり、該複数の制御部は前記第二の制御部と並列に動作して、
更新モデル選択部が、前記複数の制御部に含まれる制御モデルのパラメータを更新することを選択する工程を更に有することを特徴とする請求項７に記載の制御方法。
【請求項９】
請求項７、または請求項８に記載の制御方法において、
選択監視部が、前記行動価値選択部が選択した制御モデルを監視する工程を更に有することを特徴とする制御方法。
【請求項１０】
前記行動価値選択部内に制御部ごとに忘却係数を設け、
前記行動価値選択部が、前記第一の制御部及び前記第二の制御部が出力する行動価値ごとに設けた前記忘却係数を掛けあわせる工程を更に有することを特徴とする請求項７に記載の制御方法。
【請求項１１】
前記行動価値選択部内に前記第二の制御部ごとに忘却係数を設け、
前記行動価値選択部が、前記第二の制御部が出力する行動価値ごとに設けた前記忘却係数を掛けあわせると共に、試行毎に一定値を前記忘却係数から引いていく工程を更に有することを特徴とする請求項７に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の環境で与えられたタスクを達成するための機械において、センサからの入力値を基にアクチュエータの出力値を決定する制御装置及び制御方法に関する。
【背景技術】
【０００２】
近年、機械装置の構造が複雑化し、作業範囲も拡大しているため、入出力数が増大し、現場での試行錯誤による機械制御の調整が行われている。ここで言う機械とは、センサ、アクチュエータ、及び制御装置を要素に持つものと定義し、機械制御とは、センサからの入力値を制御装置で処理し、アクチュエータの出力を決定することで、与えられたタスクを実行することと定義する。機械制御の実現には、制御装置の動作を決める制御モデル（入力に応じて出力を決定する関数）のパラメータを決定する必要がある。
【０００３】
従来のパラメータ調整自動化手法として、強化学習を用いた手法が提案されている（非特許文献１）。強化学習では、試行錯誤を通じて環境(制御対象)に適応するための制御モデルを学習で獲得する。いわゆる教師付き学習とは異なり、環境の状態入力に対する正しい出力（行動）が明示的に得られないかわりに、報酬というスカラー値を手がかりに学習する。
【０００４】
機械制御の強化学習において、学習の主体となるのは、制御装置であり、制御部と学習部を備える。制御部は、センサから得られた環境(制御対象)の状態観測に応じて、アクチュエータの制御値を決定する。また、環境内でアクチュエータが動作することによって、環境に変化が生じ、与えられたタスクの達成度に応じた報酬を学習部が受け取る。学習部は、一定の割引率をかけた報酬合計の期待値を評価して、利得を最大化するような（行動価値の高い）行動を取るように制御モデルのパラメータを更新していき、与えられたタスクを達成するための制御モデルを獲得していく。
【０００５】
機械装置に不確実性や計測困難な未知のパラメータが存在すると、タスクの達成方法やゴールへの到達方法は設計者にとって自明ではなく、制御装置へタスクを遂行するための制御規則をプログラムすることは設計者にとって重労働である。ところが、強化学習を用いた場合には、設計者が「何をすべきか」を制御装置に報酬という形で指示することにより、「どのように実現するか」を制御装置自身が学習によって自動的に獲得してくれるというメリットがある。
【０００６】
しかし、この試行錯誤的な学習に要する時間が多大であるため、効率的な学習を行うことを目的とした並列学習手法が発明されている（特許文献１）。この発明では、複数の学習手段（アルゴリズム）を並列に動作させ、選択された方策の結果を他の学習手段で共有し学習するため、一つの学習手段で一から学習する場合と比べ、学習を効率化している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−０７８５１６号公報
【非特許文献】
【０００８】
【非特許文献１】H. Kimura, K. Miyazaki, and S. Kobayashi, "Reinforcement learning in POMDPs with function approximation." In Proc. of ICML '97, pp. 152-160, 1997.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来手法は、一から学習することを想定した仕組みとなっており、特許文献１に開示される発明は、学習手段を一つ使うことに対して効率化が行われたに過ぎず、新たな機械の導入毎に過去と同様の調整コストがかかる問題が残されている。さらなる効率化を目指すためには、既存の制御モデルを再利用することで新たな制御モデルを効率的に学習する方法が挙げられる。
【００１０】
本発明の目的は、学習対象の制御部の制御モデルのみ学習部と接続した並列制御学習装置により、既存の制御モデルを更新することなく、既存の制御モデルを基に新たな制御モデルを効率的に学習し、対象を制御する制御装置及び制御方法を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明の制御装置を、制御対象の状態値をセンサ値より取得する状態取得部と、第一の制御モデルを含み、前記状態値、及び前記第一の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する第一の制御部と、前記第一の制御部と並列に接続され、第二の制御モデルを含み、前記状態値、及び前記第二の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する第二の制御部と、前記第一の制御部及び前記第二の制御部より出力された行動価値を選択する行動価値選択部と、前記行動価値選択部が選択した行動価値、及び行動を入力し、前記状態値と共に記憶して、記憶されたデータに基づき前記第一の制御部に含まれる前記第一の制御モデルのパラメータを更新する学習部とを備えるように構成する。
【００１２】
また、本発明の他の特徴として、前記制御装置において、その内部に含む制御モデルがそれぞれ異なる前記第一の制御部が複数個、並列に備えられている。
【００１３】
また、本発明の更に他の特徴として、前記制御装置において、複数の前記第一の制御部と接続し、前記第一の制御部に含まれる制御モデルのパラメータを更新することを選択する更新モデル選択部を更に備える。
【００１４】
また、上記課題を解決するために本発明の制御方法を、制御対象の状態値をセンサ値より取得する工程と、第一の制御部が、前記状態値、及び内部に含む第一の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する工程と、第二の制御部が、前記第一の制御部と並列に動作して、前記状態値、及び内部に含む第二の制御モデルに基づき、前記制御対象の行動、及び行動価値を出力する工程と、行動価値選択部が、前記第一の制御部及び前記第二の制御部より出力された行動価値を選択して、選択した行動価値、及び行動を学習部へ出力すると共に、選択した行動を前記制御対象のアクチュエータへ出力して、前記制御対象の動作を制御する工程と、学習部が、前記行動価値選択部が選択した行動価値、及び行動を入力し、前記状態値と共に記憶して、記憶されたデータに基づき前記第一の制御部に含まれる前記第一の制御モデルのパラメータを更新する工程とを有して構成する。
【発明の効果】
【００１５】
本発明によれば、既存の制御モデルをもとにした効率的な探索による学習の高速化を行うことができる。また、既存の制御モデルと学習先の入出力が異なる場合の制御対象の学習を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例１の制御装置の構成を示すブロック図である。
【図２】実施例１の制御装置の基本動作を説明するためのフローチャートである。
【図３】実施例２で用いた最短経路探索問題の迷路である。
【図４】実施例２の台車走行ロボットの最適経路探索における効率的な学習方法を説明する図である。
【図５】実施例２の制御装置の構成を示すブロック図である。
【図６】実施例２における本発明の制御方法の性能を表す探索回数の比較グラフである。
【図７】実施例３で用いたロボットと既存の制御モデルの合成学習を示す図である。
【図８】実施例３で用いた各制御モデルに入力する状態値に用いるデータを説明する図である。
【図９】実施例３の制御装置の構成を示すブロック図である。
【図１０】実施例４で用いたロボットと既存の制御モデルの分解学習を示す図である。
【図１１】実施例４の制御装置の構成を示すブロック図である。
【図１２】実施例５で用いた複数の制御モデルの効率的学習方法の構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を、図面を用いて詳細に説明する。
【実施例１】
【００１８】
図１は、本発明の第一の実施形態の制御装置の構成を示すブロック図である。  
本実施例に係る制御装置４は、図１に示すような機械１(機械装置の本体は図示を省略する)などにおいて、機械内部に搭載された少なくとも１つ以上のセンサ２などからの入力値を処理して、制御部１１〜１ｎ１、２１〜２ｎ２、及び学習部７１に出力する状態値を決定する状態取得部５１と、パラメータを更新する制御モデル３１〜３ｎ１を含む一つ以上の制御部１１〜１ｎ１と、パラメータを更新する制御部１１〜１ｎ１とは別に並列に動作するパラメータを更新しない制御モデル４１〜４ｎ２を含む一つ以上の制御部２１〜２ｎ２と、各制御部１１〜１ｎ１、２１〜２ｎ２が出力する行動価値に基づいて行動を選択する行動価値選択部６１と、制御部１１〜１ｎ１の制御モデル３１〜３ｎ１のパラメータを更新する学習部７１と、学習部７１とデータの送受信を行うデータ記憶部８１と、行動価値選択部６１と接続して行動価値選択部６１が選択した行動価値、行動、及び選択された各制御部１１〜１ｎ１、２１〜２ｎ２の選択回数を監視して記録する選択監視部９１とを備える。
【００１９】
本実施例に係る制御装置４は、図１に示すような、学習により制御モデル３１〜３ｎ１を同定する制御部１１〜１ｎ１と、一つ以上の既存の制御モデル４１〜４ｎ２を持つ制御部２１〜２ｎ２とを並列に動作させて各制御部１１〜１ｎ１及び２１〜２ｎ２の行動価値及び行動を行動価値選択部６１に出力し、行動価値選択部６１によって選択された制御出力値(行動)を機械内部に搭載された少なくとも一つ以上のアクチュエータ３などに出力し、センサ２から出力された観測データ及び選択された行動価値を基に学習先制御部１１〜１ｎ１の制御モデル３１〜３ｎ１のパラメータを更新してゆく。
【００２０】
状態取得部５１は、１つ以上のセンサ値から、それぞれの制御モデルに入力する形式に合わせた状態値を出力する。
【００２１】
行動価値選択部６１は、選択した行動をアクチュエータ３に、また選択した行動及び行動価値を学習部７１に出力する。  
行動価値選択部６１による複数の制御部１１〜１ｎ１、２１〜２ｎ２から出力された行動価値の選択手段として、例えば、Ｍａｘ関数を用いて行動価値の最大となる行動を選択しても良いし、ε−ｇｒｅｅｄｙ選択、あるいはボルツマン選択などの確率的な選択手段をとっても良い。
【００２２】
学習部７１は、状態取得部５１から出力された状態値、行動価値選択部６１から出力された行動価値及び行動をデータ記憶部８１に一旦保管した後、学習に用いるデータをデータ記憶部８１から読み込む。
【００２３】
学習部７１は、制御モデルのパラメータを更新する制御部１１〜１ｎ１とのみ接続し、読込データを基に、各制御モデル３１〜３ｎ１のパラメータを更新する。読込データに、データ記憶部８１に保管した過去数回分のデータを利用しても良い。
【００２４】
学習における状態値として、例えば、状態数を離散的に設計するＱ学習のＱテーブルのような表データを利用してもよいし、連続値を扱うことが可能なニューラルネットワークを利用してもよい。  
並列に動作する制御部１１〜１ｎ１、２１〜２ｎ２と学習部７１とを構造的に切り離すことで、更新する制御モデル３１〜３ｎ１を持つ制御部１１〜１ｎ１のみパラメータを更新することができる。
【００２５】
制御装置４は、例えば汎用の計算機上に構成することができて、そのハードウェア構成(図示せず)は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）などにより構成される演算部、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリなどを用いたＳＳＤ（Solid State Drive）などにより構成される記憶部、パラレルインタフェース形式、またはシリアルインタフェース形式の接続装置、などを備える。
【００２６】
状態取得部５１、制御部１１〜１ｎ１、２１〜２ｎ２、行動価値選択部６１、学習部７１、及び選択監視部９１は、記憶部に記憶されている制御プログラムをＲＡＭへロードしてＣＰＵで実行することによりマルチタスクとして実現する。または、マルチＣＰＵ構成によって、または、それぞれ専用の回路により構成してもよい。
【００２７】
次に、図２を用いて基本動作フローについて説明する。まず、学習先(パラメータを更新する)の制御モデル３１〜３ｎ１の初期出力をゼロに設定して開始することが望ましい。
【００２８】
ステップＳ１において、センサ２からの観測データを状態取得部５１で処理した状態値を各制御部１１〜１ｎ１、２１〜２ｎ２、及び学習部７１に出力する。
【００２９】
ステップＳ２において、各制御部１１〜１ｎ１、２１〜２ｎ２内の制御モデル３１〜３ｎ１、４１〜４ｎ２は、状態値を基に行動価値、行動を算出して、行動価値選択部６１に出力する。
【００３０】
ステップＳ３において、行動価値選択部６１は、各制御モデルから出力された行動価値に基づき、行動（アクチュエータに出力する制御値）を選択し、選択された行動及び行動価値を学習部７１に出力し、制御値(選択された行動)をアクチュエータ３に出力する。
【００３１】
ステップＳ４において、アクチュエータ３は、制御値(動作命令)に従って動作を実行する。
【００３２】
ステップＳ５において、学習部７１は、行動価値選択部６１から出力された行動価値、行動、及び状態取得部５１から出力された状態値をデータ記憶部８１に保管する。
【００３３】
ステップＳ６において、学習部７１は、データ記憶部８１から必要とする保管データを読み込む。
【００３４】
ステップＳ７において、学習部７１は、読込データを基に接続している各制御部内１１〜１ｎ１の制御モデル３１〜３ｎ１のパラメータを更新する。
【００３５】
ステップＳ８において、一定の収束条件(例えば、制御モデル３１〜３ｎ１のパラメータの更新の程度が所定の許容誤差内に収まっている。)を満たせば、目的のタスクを達成するための制御モデルの学習が終了したと判定して、学習を終了する。収束条件を満たさなければＳ１へ移行して、学習を繰り返す。
【００３６】
選択監視部９１は、行動価値選択部６１が選択した行動価値、行動、及び選択された各制御部１１〜１ｎ１、２１〜２ｎ２の回数を、例えば制御装置４の外部に接続したディスプレイ等の可視化ツールに表示したり、ログをとってテキスト等に書き出したりすることで、学習の状況を監視する。この監視結果を基に、例えば、学習先の制御モデル３１〜３ｎ１及び既存の制御モデル４１〜４ｎ２の学習部７１との接続関係を変更するための情報として利用することができる。
【実施例２】
【００３７】
本実施例では、実施例１の具体的事例として、図３に示すような複雑な迷路２００を用いて、図４に示す台車走行ロボット３００の最適経路探索における効率的な学習例を示す。ここで、ロボットには、センサ２の役割を果たす自己位置測定器３０１が搭載され、アクチュエータ３の役割を果たすモータ駆動型車輪３０２、台車走行ロボット用制御装置３０３が備わっているものと定義する。従って、本実施例では、自己位置測定器３０１からロボットの座標値(状態値)が入力され、その座標値を基に台車走行ロボット用制御装置３０３がモータ駆動型車輪に縦横斜めの８方向に１マス分移動する制御値を出力する制御モデルを獲得する学習を説明する。
【００３８】
本実施例の制御モデル更新方法により、初期値をゼロに設定した状態から８方向移動の制御モデル３３０を学習する場合と比べ、４方向移動で学習させた既存の制御モデル３１０を基にして、斜め４方向移動の制御モデル３２０を追加で学習する方が、学習時間を短縮して最短経路を獲得できることを示す。
【００３９】
図３の迷路２００の各マスは、白のマスが通路、黒のマスが壁であり、白のマス上のみ進むことができる。本実施例では、図３の１−Ｃのマスをスタート地点２０１とし、１−Ｐのマスをゴール地点２０２とした。
【００４０】
本実施例では制御モデルを獲得する学習方法として、強化学習におけるＱ学習を用いた例を示す。Ｑ学習は、センサ２からの観測データを状態取得部５１で処理した或る状態値ｓの下で、行動ａを選択する価値(行動価値)Ｑ(ｓ,ａ)を学習する方法である。或る状態値ｓのとき、Ｑ(ｓ,ａ)の最も高いａを最適な行動として選択する。しかし、最初は其々のｓとａの組合せについて、正しいＱ(ｓ,ａ)の値は全く分かっていない。そこで、試行錯誤により、或るｓの下で様々な行動ａを取り、その時の報酬を使って、正しいＱ(ｓ,ａ)を学習していく。
【００４１】
本実施例のＱテーブルは各迷路のマス分保持しており、縦横の１〜１０及びＡ〜Ｐの記号で示した座標値を状態値ｓとする。また、マスごとに得点が割り当てられており(設計者が予め定義しておく)、これを報酬値ｒとして探索を行う。行動ａとして、縦横斜めの１マスずつの８方向移動３３０を扱う。Ｑ学習では下記の更新式を用いて状態遷移の計算が行われる。
【００４２】
【数１】
2018106466.tif 000003
【００４３】
ここで、αは学習率と呼ばれる、学習度合を調整するパラメータであり、γは割引率と呼ばれる、時間の経過を考慮した報酬計算のための重み係数である(時間を掛けて行動すると同じ行動でも得られる報酬が速く行動するより減るようにしている)。本実施例の場合、ゴール地点２０２に到達した場合に報酬値１００を得るような条件とする。また、ｓｔ+1はｓｔにおいて行動ａを選択したときの次の時刻で受け取った状態値を表す。ａ’は状態値ｓｔ+1において、ｓｔ+1の行動価値を最大化する行動を示す。数１の更新式は、状態値ｓｔにおける行動ａｔの行動価値Ｑ(ｓｔ,ａｔ)よりも、行動ａｔによる次の状態値ｓｔ+1における最良の行動価値Ｑ(ｓｔ+1,ａ’)の方が大きければ、Ｑ(ｓｔ,ａｔ)を大きくする学習をするし、逆に小さければ、Ｑ(ｓｔ,ａｔ)も小さくする学習をすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける学習を行う。或る状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく学習方法である。
【００４４】
本実施例において、既存の制御モデルとは、具体的には、縦横４方向に移動可能な最短経路探索問題において、最短経路で連続的に１０回ゴールへ到達したときを収束条件としたＱテーブル（ＱＡ）とする。また、合成先(パラメータを更新する制御モデル)の制御モデルとは、具体的には、さらに斜め４方向を加えた８方向に移動可能な条件において最短経路で連続的に１０回ゴールへ到達したときを収束条件としたＱテーブルＱｚとする。この既存の制御モデルＱＡを合成先の制御モデルＱｚへ以下の方法で合成(学習)していく。例えば、以下の様な更新式を立てることで、ＱＡをＱｚに合成できる。
【００４５】
【数２】
2018106466.tif 000004
【００４６】
ここで、Ｑ’z(ｓt+1,ａ’)は、（３）式にて表わされる。
【００４７】
【数３】
2018106466.tif 000005
【００４８】
一般のＱ学習では、或る状態において最も行動価値の高い行動を選択することで、Ｑ学習の更新が行われるが、（２）、（３）式では合成先制御モデルＱｚと既存制御モデルＱＡとの最大行動価値を比較することで行動が選択される。各制御モデルは、少なくとも一つ以上必要である。
【００４９】
さらに、学習が十分に進んだ状態でも既存のモデルが選択されてしまう確率を低減するために、例えば（４）式のような、忘却係数ｆを定義して、学習の進捗に応じて行動価値に掛ける係数ｆを設けても良い。
【００５０】
【数４】
2018106466.tif 000006
【００５１】
この係数ｆは、試行毎に一定値を忘却係数から引いていき、既存制御モデルの選択確率を徐々に０に近づけていく方法をとっても良い。
【００５２】
本実施例の制御装置の構成図は図５のようになる。制御モデル３１ａのパラメータを更新する一つの制御部１１ａと一つの既存の制御モデル４１ａを持つ制御部２１ａとを並列に動作させる。
【００５３】
以上の合成学習によって学習が効率化されたことを検証するため、収束条件に到達するまでの試行回数で比較する実験を行った。まず、本発明を適用しない場合の一から８方向移動の制御モデル３３０を学習させたときの収束までの学習回数の計測を１０回ゴールへ到達するまで試行する。次に予め４方向移動の制御モデル３１０の学習を行わせておき、４方向の制御モデル３１０を基に８方向の制御モデル３３０を獲得するまでの学習回数の計測を１０回ゴールへ到達するまで試行する。これらの計測を比較した結果４００を図６に示す。
【００５４】
図６に示した結果４００から明らかなように、平均して約１０倍程度の高速化につながることが確認できる。また、本検証における１０回試行分の結果でｔ検定を行うと、Ｐ値：３．３５Ｅ−０７となり、優位な差を確認できる。以上の結果から、本発明の効果が示された。
【００５５】
なお本実施例では、一般的なＱ学習を用いたが、状態空間が広く、Ｑテーブルのような方法で状態を表現しようとすると、膨大なテーブルが必要となる場合には、例えば、ニューラルネットワークのような連続値を扱える機械学習手法でＱ学習を近似表現した方法を用いて学習しても良い。
【実施例３】
【００５６】
次に、本発明の第３の実施例を説明する。図９に示す第３の実施例の制御装置４は、センサ２からの入力が異なる既存の制御モデル４１ａ、４２ａを含む制御部２１ａ、２２ａを２つ有する。また、上記の異なる入力双方を入力情報とする合成先の制御モデル３１ａを持つ制御部１１ａを１つ有する。
【００５７】
本実施例では、図７に示す倒立振子ロボット６００の倒立移動制御モデル４１ａ及びライントレーサロボット５００の操舵制御モデル４２ａを既存の制御モデルとして、倒立しながらラインをトレースする倒立振子ライントレーサロボット７００の制御モデル３１ａを獲得する例を示す。ここでは、強化学習を用いた合成先の制御モデル３１ａの獲得方法に加え、既存の制御モデルとなる倒立移動制御モデル４１ａ及び操舵制御モデル４２ａの獲得方法についても述べる。
【００５８】
倒立振子ロボット６００は、図７に示すような２つの車輪上に直方体型のブロックをボディと見立てて組み立てた剛体形状をしている。倒立振子ロボット６００の制御では、倒立しながら移動するという目的タスクを達成するため、入力情報として、例えばロボットに内蔵したＩＭＵセンサ９００ａ(運動を司る3軸の角度（または角速度）と加速度を検出する装置)のＰｉｔｃｈ角とその角速度（図８(a)、(b)参照）を基に、ロボットの足元の車輪に接続したモータ６０１、６０２の出力値を決定する。
【００５９】
倒立移動制御モデルを獲得するために、例えば、揺れの少ない安定的な倒立移動ができている場合に良い報酬が与えられるような報酬設計を行うと良い。具体的には、角速度の変動値が一定閾値内にある場合に報酬１を与える方法をとると良い。また、ある一定角度になると、罰として−１を与えるような報酬設計としても良いが、これらの方法に限らない。
【００６０】
一方、ライントレーサロボット５００は、図７に示すような３輪を備える構造をしている。ライントレーサロボット５００の制御では、ライン１０００に沿って走行するという目的のタスクを達成するため、入力情報として、例えば台車の前方に取り付けたビジョンセンサ（カメラ）８００ａの図８(c)のようなカメラ画像８０１を基に、目的の操舵角となるように車輪に接続したモータ５０１、５０２の出力値を決定する。
【００６１】
操舵制御モデルを獲得するために、例えば、カメラ８００ａから得られた画像８０１を基に報酬値を計算する場合、画面内に映るライン１０００ａが画像の中心にあるほど、１に近い高い報酬値を与え、画像８０１からライン１０００ａが消えるほど逸れて走行した場合には、−１を与えるような報酬設計とすることにより報酬値に段階的な差を設けると良いが、これらの方法に限らない。
【００６２】
合成先の倒立振子ライントレーサロボット７００の制御では、倒立しながらライン１０００に沿って移動する目的のタスクを達成するため、入力情報として、内蔵したＩＭＵセンサ９００ｂのＰｉｔｃｈ角とその角速度、及びカメラ８００ｂの画像８０１を基にモータ７０１、７０２の出力値を決定する。
【００６３】
上記の学習では、倒立移動制御モデル４１ａの入力情報にＩＭＵセンサ９００ｂの値を、操舵制御モデル４２ａではカメラ８００ｂの画像８０１を入力情報に、さらには、合成先の制御モデルではＩＭＵセンサ９００ｂの値及びカメラ８００ｂの画像８０１の両方を入力情報としているが、このように既存の制御モデルと合成先の制御モデルの入力情報が必ずしも一致しない場合でも合成することができる。
【００６４】
カメラ画像８０１のような高次元の対象を扱う場合、実施例２と同様に、全ての状態と行動を網羅したＱテーブルＱ（ｓｔ，ａｔ）を用意することは困難であり、現実的な実装でもメモリ量が足らず、不可能と言える。そこで、価値関数であるＱテーブルを関数近似する方法をとると良い。ここでは、（５）式のように、Ｑ（ｓｔ，ａｔ）は、何らかのパラメータθを用いて表され、近似した関数Ｑ（ｓｔ，ａｔ；θ）で表すものとする。
【００６５】
【数５】
2018106466.tif 000007
【００６６】
従来からある方法としては、勾配法によるアルゴリズムを用いることが多く、以下の様な損失関数を定義して、その微分値をパラメータの更新に用いる。ここでは、よく用いる方法として（６）式のように２乗和を損失関数として定義しているが、例えば、絶対値差分やガウス関数などを用いてもよく、これらの方法に限らない。
【００６７】
【数６】
2018106466.tif 000008
【００６８】
ここで、target は機械学習における教師信号と呼ばれるものであり、問題に対する正解の値である。この損失関数の微分値を、近似したＱ関数のパラメータθの更新に用いる（（７）式）。
【００６９】
【数７】
2018106466.tif 000009
【００７０】
本実施例のような強化学習の枠組みでは、真の行動価値Ｑ＊(ｓ，ａ)はわからないため、target の値を明示的に与えることはできない。そこで、実施例２のＱテーブルを用いたＱ学習と同様に、（８）式のようにtarget を定義することで、教師信号として使用する。
【００７１】
【数８】
2018106466.tif 000010
【００７２】
ここで、ｒ及びγは実施例２で定義した物と同様である。ａ’は状態値ｓｔ+1において、Ｑ値が最大となる行動を示している。ここで、ｍａｘＱは教師信号として扱うため微分しないようにすることに注意する。よって、損失関数の微分は、（９）式で表される。
【００７３】
【数９】
2018106466.tif 000011
【００７４】
上記の関数近似における表現能力の高い機械学習手法として、例えば、ニューラルネットワーク等を用いて関数近似する方法がある。ニューラルネットワークにおいて、θはユニット間の結合における重みやバイアスなどのパラメータを示す。
【００７５】
ニューラルネットワークは、複数の入力ｘに対する出力ｙを出力するニューロンを複数用いて構成される。各入力ｘ及び重みｗはベクトルであり、入力ｘを一つのニューロンに入力すると出力値は以下のような式で表される。
【００７６】
【数１０】
2018106466.tif 000012
【００７７】
ここで、ｂはバイアス、ｆｋは活性化関数である。これらのニューロンが複数合わさり層を形成する。
【００７８】
学習では、この重みｗの更新やニューロン間の接続を決定していく。このニューラルネットワークを制御部１１ａ、２１ａ、２２ａごとに有し、合成先のニューラルネットワークのパラメータのみ更新していく。
【００７９】
倒立振子ロボット６００の制御モデル４１ａは、例えば、ＩＭＵセンサ９００ｂのＰｉｔｃｈ角及びその角速度情報を入力とする４層のニューラルネットワークを形成し、ライントレーサロボット５００は、例えば、６４０×４８０のカメラ画像８０１を入力とする５層のニューラルネットワークを形成するような構造を持たせると良い。この場合、倒立振子ライントレーサロボット７００のニューラルネットワークへの入力は、ライントレーサロボット５００のニューラルネットワークと同サイズのカメラ８００ｂの画像８０１及びＩＭＵセンサ９００ｂのＰｉｔｃｈ角及びその角速度とする。
【００８０】
多次元データであるカメラ画像と２次元のＩＭＵセンサデータの情報を初めから一つの入力情報として結合し学習を行うと、両者のデータ次元数に開きがある。このため、カメラ画像データに対して、ＩＭＵセンサ９００ｂのデータの影響が小さく、倒立移動制御モデルの学習がうまく行われない。よって、ニューラルネットワークの構造として、例えば次のような構造を持たせることで学習を行うことができる。
【００８１】
ＩＭＵセンサデータを入力とする倒立移動制御モデル４１ａのニューラルネットワーク及びカメラ画像入力とする操舵制御モデル４２ａのニューラルネットワークにおいて、出力層の一つあるいは二つ手前の層までの構造は、既存制御モデルのニューラルネットワークと同様のネットワーク構造を持たせ、その次の層でそれらを二つのベクトルを一つのベクトルとして結合することで、次元数が大きく異なる入力においても次元数の小さいほうの入力情報の影響が無くなることなく扱うことが可能となる。
【００８２】
倒立振子ロボット６００の倒立移動制御モデル４１ａ、ライントレーサロボット５００の操舵制御モデル４２ａ、倒立振子ライントレーサロボット７００の制御モデル３１ａの３つの出力層の情報である行動価値を基に、取るべき行動を行動価値選択部６１が決定する。行動価値選択部６１の行動価値選択方法は、実施例２と同様に、Ｍａｘ関数を用いて行動価値の最大となる行動を選択しても良いし、ε−ｇｒｅｅｄｙ選択、あるいはボルツマン選択などの確率的な選択手段を取っても良いが、これらの選択方法に限らない。
【００８３】
図９は、ライントレーサロボット５００及び倒立振子ロボット６００の制御モデルから倒立振子ライントレーサロボット７００の制御モデルへと合成する例を示している。倒立振子ロボット６００に対し、倒立振子ライントレーサロボット７００はライン１０００に沿って移動しながら動作するタスクとなり、学習の探索範囲も大きくなる。このため、倒立振子ライントレーサロボット７００の場合、倒立振子ロボット６００の場合よりも制御モデル３１ａを同定することが難しくなり、探索にかかる時間が増大する、あるいは、最適な解にたどり着けず探索が終了しないという問題が生じる。
【００８４】
上記の問題を解決するため、倒立振子ロボット６００で獲得した倒立移動制御モデル４１ａ及びライントレーサロボット５００で獲得した操舵制御モデル４２ａを保管しておき、合成先の倒立振子ライントレーサロボット７００の制御モデル３１ａとその二つの既存の制御モデルを並列に接続し、合成先の制御モデルパラメータのみ更新する学習を行うことで合成先の制御モデル３１ａに合成する。ここで、それぞれの制御部が出力する行動価値をＱ値とおくと、それぞれのＱ値のパラメータを更新することが学習となる。
【００８５】
学習の初期段階（０≦ｔ＜ｔ１）では、まず倒立移動制御モデルを獲得し、目的の速度で立つことが必要であるため、倒立振子ロボット６００の倒立移動制御モデル４１ａが行動価値の高い動作として選択される。また安定した倒立に応じた報酬値を受け取ることができる。その結果が、合成先の制御モデル３１ａにフィードバックされて学習が行われることにより、倒立移動制御モデルが獲得される。
【００８６】
次に、後半段階（ｔ１≦ｔ＜ｔ２）では、ライン１０００上に沿って倒立した際に、ライントレーサの操舵制御モデルの行動価値が上がる。ここでは、ライン１０００がカメラ画像８０１の中央にあるほど高い報酬値を受け取ることができる。そのフィードバックを基に合成先の制御モデル３１ａのパラメータを更新する。
【００８７】
最終的に、ライン１０００に沿った移動を行うほど最も高い行動価値及び報酬が受け取れるようになるため、合成先のＱ値が最も高い行動価値を算出するようになり、学習の安定したところで合成が完了する。
【００８８】
学習の進捗状況やどの行動価値が選択されているかどうかの確認は、実施例１、２と同様に、選択監視部９１で行うことができる。例えば、倒立振子ライントレーサロボット７００は、倒立しなければ、ラインに沿って移動することはできない。このため、選択監視部９１の活用方法として、倒立ができていない段階で操舵制御モデル４２ａの出力値ばかり選択されるような場合は、一時的に倒立移動制御モデル４１ａの出力値が優先して選択されるような設定を行うこともできる。
【実施例４】
【００８９】
次に、本発明の第４の実施例を説明する。第４の実施例では、パラメータを更新する制御モデルを含む制御部が２つ接続されている例を示す。
本実施例では、第２、第３の実施例で説明した合成とは逆の分解の例について説明する。具体的には、倒立振子ライントレーサロボット７００の制御モデル４１ａから、ライントレーサロボット５００の操舵制御モデル３１ａ及び倒立振子ロボット６００の倒立移動制御モデル３２ａに分解する例について説明する。
【００９０】
制御モデルの獲得方法は、実施例３の合成学習と同様であるが、分解元の制御モデル４１ａが１つであるのに対し、パラメータを更新する分解先の制御モデル３１ａ、３２ａが２つ以上となるところが異なる。ロボットは、実施例３の合成学習と同様に図１０のような倒立振子ロボット６００、ライントレーサロボット５００、及び倒立振子ライントレーサロボット７００を用意する。
【００９１】
パラメータが更新される制御モデルが複数ある場合は、図１１に示すような更新モデル選択部６２を設け、学習部７１との接続を逐次切り替えることが可能な機能を持たせることにより、他の制御モデルのパラメータが更新中であっても、学習が完了した制御モデルのパラメータ更新を停止させることが可能となる。なお、構成図より明らかだが、更新モデル選択部６２において、学習部７１とパラメータを更新する制御モデル３１ａ、３２ａとが全て接続している場合は、これまでの構成図と何ら変わらない。
【００９２】
倒立振子ライントレーサロボット７００の行動に応じて更新モデル選択部６２との接続を逐次切り替えることにより、ライントレーサロボット５００用の操舵制御モデル３１ａ及び倒立振子ロボット６００の倒立移動制御モデル３２ａの効率的な学習を行うことができる。以上の処理を行うことにより、分解の学習では、複合的な制御モデルから、要素の制御モデルを獲得することができる。
【００９３】
合成学習時と同様に上記の３つの制御モデルは、並列的に接続した状態で学習を行う。学習部７１と接続するのは、分解先の制御モデルを持つ制御部１１ａ、１２ａとなる。分解先の操舵制御モデル３１ａ、倒立移動制御モデル３２ａを持つ制御部１１ａ、１２ａと学習部７１は図１１のように接続される。
【００９４】
分解元の制御モデル４１ａの出力値と合わせ、行動価値選択部６１に出力する。それぞれの制御モデルである操舵制御モデル３１ａ、倒立移動制御モデル３２ａは、カメラ８００やＩＭＵセンサ９００からの入力値に応じて、各々のロボットの適切な車輪に接続したモータ５０１、５０２、６０１、６０２の動作量を出力し、目的のタスクを達成する制御モデルを獲得する。
【００９５】
分解の学習では、分解先の制御モデルごとに目的の制御に合った報酬関数を設定してもよいし、学習する制御モデルが複数ある場合に有効な方法として、図１１に示すような更新モデル選択部６２を設け、学習する制御モデルをスイッチ式に切り替えるような仕組みを設ける方法をとっても良い。
【００９６】
ライントレーサロボット５００の学習では、カメラ画像８０１に映るライン１０００の画像と速度の関係から操舵角を求め、その操舵角に合うモータ５０１、５０２の出力値を決定する。倒立移動制御モデル３２ａは不要であるが、パラメータが更新される制御モデルとして学習部７１と接続している。この学習では、既存の制御モデルとして倒立振子ライントレーサロボット７００の制御モデルと同義のニューラルネットワークを利用するため、センサからの入力情報を合わせる方法を取ると良い。具体的には、図１０のライントレーサロボット５００のように、カメラ８００ａ及びＩＭＵセンサ９００ｃを装着し、倒立振子ライントレーサロボット７００と入力条件を合わせることで、既存の制御モデル４１ａをそのまま利用して入出力に用いることができる。従って、実施例３の合成学習と同様の学習を行うことによりライントレーサロボット５００の操舵制御モデル３１ａが獲得される。既存の制御モデルに必要な入力情報を外的に合わせ、図１１の構成図に基づいた制御装置を用いて学習を行えば良い。ＩＭＵセンサ９００ｃを装着させることが難しい場合は、ＩＭＵセンサ９００ｃの入力値を０として学習を開始しても良い。
【００９７】
倒立振子ロボット６００の学習もライントレーサロボット５００の学習と同様の学習方法である。倒立振子ロボット６００では、ＩＭＵセンサ情報のみを利用して倒立姿勢の変動を学習する形態を取れば良い。従って、ライントレーサロボット５００の学習と同様にカメラ８００ｃ及びＩＭＵセンサ９００ａを装着し、センサの入力情報を合わせることで、既存の制御モデルをそのまま利用して入出力に用いることができる。ライントレーサロボット５００とは逆にラインに沿った走行を行うための操舵制御モデル３１ａは不要であるが、パラメータが更新される制御モデルとして学習部７１と接続している。図１１の構成図に基づいた制御装置により、倒立移動制御モデル３２ａが獲得される。カメラ８００ｃを装着させることが難しい場合は、カメラ８００ｃの入力値を０として学習を開始しても良い。
【実施例５】
【００９８】
次に、本発明の第５の実施例を説明する。第５の実施例では、報酬及び行動価値の転移による入力情報の代替を考え、パラメータを更新する制御モデルを含む制御部が２つ接続されている例を示す。
【００９９】
実施例３、４では、ライントレーサロボット５００の操舵制御モデル３１ａの学習において、環境に引かれたライン１０００自体に凹凸などの細工が施されて振動等が生じない限り、ＩＭＵセンサ９００ｃの情報だけではライン１０００を認識することは出来ない。このため、センサとしてＩＭＵセンサ９００ｃとカメラ８００ａのみが選択できる条件では、カメラ８００ａの選択が必須である。一方、倒立振子ロボット６００は、ＩＭＵセンサ９００ａ、カメラ８００ｃ、またはその両方の利用による制御モデルの獲得が可能である。従って、扱うセンサの種類を限定したい場合では、同一のセンサで目的の制御モデルを獲得できることが望ましい。
【０１００】
これまでの実施例３、４では、倒立移動制御モデルの獲得には、ＩＭＵセンサ９００ａのデータを前提に考えてきたが、カメラ８００ｃを使用した場合の倒立移動制御モデルの獲得方法について説明する。以下では、倒立振子ロボット６００のＩＭＵセンサ９００ａを入力とする倒立移動制御モデル３１ｂ及びカメラ８００ｃを入力とする倒立移動制御モデル３２ｂを学習する場合を例に考える。
【０１０１】
ＩＭＵセンサ９００ａのＰｉｔｃｈ角及びその角速度を用いて倒立移動制御モデル３１ｂを学習する場合とカメラ８００ｃを用いた倒立移動制御モデル３２ｂの学習とでは、次元数が大きく異なるため、学習に掛かる時間が大きく異なる。ＩＭＵセンサ９００ａのデータを用いた学習では、２次元の情報から学習するのに対し、例えばカメラ８００ｃの画像サイズを６４０×４８０画素として用いた場合、３０７２００次元の情報を基に学習することになる。従って、ＩＭＵセンサ９００ａのデータで学習する方が学習が完了するまでの時間が大幅に短いため、このＩＭＵセンサ９００ａのデータを用いた場合とカメラ８００ｃを用いた場合を同時に学習させ、学習が進んできた状況でカメラ画像８０１を用いた学習に切り替える方法を取る。
【０１０２】
図１０の倒立振子ロボット６００について、図１２の構成図に基づいた制御装置を用いて学習を行えば良い。具体的には、今回用いる制御モデルは、どちらもパラメータを更新する制御モデル３１ｂと３２ｂを持つ制御部１１ａ、１２ａを並列に動作させ、実施例３、４で述べた方法で学習を行う。次元数が遥かに小さいＩＭＵセンサ９００ａのデータを入力とする制御モデル３１ｂの学習が先に完了し、倒立振子ロボット６００は倒立し始める。ＩＭＵセンサ９００ａのデータを入力とする制御モデル３１ｂの学習が完了したら、更新モデル選択部６２と制御モデル３１ｂとの接続は切り、制御モデル３２ｂのみの接続とする。この段階までは、行動価値選択部６１においてＩＭＵセンサ９００ａを入力とする制御モデル３１ｂの出力値の選択が大半を占めている。この制御モデル３１ｂから出力された行動価値と実際に行動を行って得られた報酬がカメラ画像８０１を入力とする制御モデル３２ｂのパラメータ更新に用いられる。これにより、（６）、（８）式の教師データの役割をなす、ｒ＋γｍａｘＱ（ｓ’，ａ’；θ）の値がカメラ画像８０１を入力とする制御モデルのみを用いた学習時よりも成功データが多く得られるようになり、学習を効率良く行うことが可能となる。
【符号の説明】
【０１０３】
１  機械
２  センサ
３  アクチュエータ
４  制御装置
１１〜１ｎ１、１１ａ、１２ａ  パラメータを更新する制御モデルを持つ制御部
２１〜２ｎ２、２１ａ、２２ａ  既存の制御モデルを持つ制御部
３１〜３ｎ１、３１ａ、３１ｂ、３２ｂ  パラメータを更新する制御モデル
４１〜４ｎ２、４１ａ、４２ａ  既存の制御モデル
５１  状態取得部
６１  行動価値選択部
６２  更新モデル選択部
７１  学習部
８１  データ記憶部
９１  選択監視部
２００  最短経路問題（迷路）
２０１  スタート地点
２０２  ゴール地点
３００  台車走行ロボット
３０１  自己位置測定器
３０２  モータ駆動型車輪
３０３  台車走行ロボット用制御装置
３１０  縦横４方向移動制御モデル
３２０  斜め４方向移動制御モデル
３３０  ８方向移動制御モデル
４００  実施例１の比較結果のグラフ
５００  ライントレーサロボット
５０１  ライントレーサロボットのモータ（右）
５０２  ライントレーサロボットのモータ（左）
６００、６００ａ  倒立振子ロボット
６０１  倒立振子ロボットのモータ（右）
６０２  倒立振子ロボットのモータ（左）
７００  倒立振子ライントレーサロボット
７０１  倒立振子ライントレーサロボットのモータ（右）
７０２  倒立振子ライントレーサロボットのモータ（左）
８００、８００ａ、８００ｂ、８００ｃ  ビジョンセンサ、カメラ
８０１  カメラ画像
９００、９００ａ、９００ｂ、９００ｃ  ＩＭＵセンサ
１０００、１０００ａ  ライントレース用のライン
【図１】
2018106466.tif 000013
【図２】
2018106466.tif 000014
【図３】
2018106466.tif 000015
【図４】
2018106466.tif 000016
【図５】
2018106466.tif 000017
【図６】
2018106466.tif 000018
【図７】
2018106466.tif 000019
【図８】
2018106466.tif 000020
【図９】
2018106466.tif 000021
【図１０】
2018106466.tif 000022
【図１１】
2018106466.tif 000023
【図１２】
2018106466.tif 000024