(57)【要約】【課題】従来技術における制御装置において、高速な制御則の学習が困難であり、また制御を行うために多大なＣＰＵパワーを必要とした。【解決手段】制御対象の装置である被制御装置の状態を観測し、２以上の第一種パラメータを取得する観測部と、前記観測部が取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出部と、前記特徴抽出部が取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御部を具備する制御装置であり、かかる構成により、制御装置は観測した多数のパラメータを圧縮して、高速に被制御装置に対する制御則を学習できる。【選択図】図１
2006085284.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の装置である被制御装置の状態を観測し、２以上の第一種パラメータを取得する観測部と、
前記観測部が取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出部と、
前記特徴抽出部が取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御部を具備する制御装置。
【請求項２】
前記特徴抽出部は、
前記観測部が取得した２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得する変換手段と、
前記変換手段が取得した２以上の第二種パラメータから１以上の第二種パラメータを選択する選択手段を具備する請求項１記載の制御装置。
【請求項３】
前記第二種パラメータが可変な変数を有し、
前記変換手段は、
前記第二種パラメータが有する変数を、前記制御部の制御結果または／および前記制御部の内部状態に応じて変更する請求項２記載の制御装置。
【請求項４】
前記制御部は、
前記特徴抽出部が取得した１以上の第二種パラメータに基づいて、前記被制御装置の被制御についての状況の評価を行い、評価の良し悪しを示す情報を出力する評価手段と、
前記評価手段が出力した評価の良し悪しを示す情報に基づいて、前記被制御装置に対する制御則の学習を行い、当該制御則と前記特徴抽出部が取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御手段を具備する請求項１から請求項３いずれか記載の制御装置。
【請求項５】
前記観測部は、
前記被制御装置の状態および前記制御部の内部状態を観測し、２以上の第一種パラメータを取得する請求項１から請求項４いずれか記載の制御装置。
【請求項６】
前記制御部は、
複数の素子をネットワーク状に連結し、かつ自己フィードバックを有するネットワーク構造を内在し、前記制御部の内部状態は前記ネットワーク構造を構成する素子の状態である請求項５記載の制御装置。
【請求項７】
前記特徴抽出部が第二種パラメータを取得するための情報である選択情報を受け付ける選択情報受付部をさらに具備し、
前記特徴抽出部は、
前選択情報受付部が受け付けた選択情報をも用いて、前記第一種パラメータより少ない数の第二種パラメータを取得する請求項１から請求項６いずれか記載の制御装置。
【請求項８】
前記観測部が取得した第一種パラメータまたは／および前記制御部の制御結果を取得し、かかる取得した情報を２以上蓄積する長期観測部をさらに具備し、
前記変換手段は、
前記長期観測部が蓄積した情報または当該情報に基づいて生成された情報をも用いて、２以上の第二種パラメータを取得する請求項２から請求項７いずれか記載の制御装置。
【請求項９】
前記観測部が取得した第一種パラメータまたは／および前記制御部の制御結果を取得し、かかる取得した情報を２以上蓄積する長期観測部をさらに具備し、
前記選択手段は、
前記長期観測部が蓄積した情報または当該情報に基づいて生成された情報をも用いて、１以上の第二種パラメータを選択する請求項２から請求項８いずれか記載の制御装置。
【請求項１０】
コンピュータに、
制御対象の装置である被制御装置の状態を観測し、２以上の第一種パラメータを取得する観測ステップと、前記観測ステップで取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出ステップと、前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御ステップを実行させるためのプログラム。
【請求項１１】
前記特徴抽出ステップは、
前記観測ステップで取得した２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得する変換サブステップと、
前記変換サブステップで取得した２以上の第二種パラメータから１以上の第二種パラメータを選択する選択サブステップを具備する請求項１０記載のプログラム。
【請求項１２】
前記第二種パラメータが可変な変数を有し、
前記変換サブステップは、
前記第二種パラメータが有する変数を、前記制御ステップにおける制御結果または／および制御部の内部状態に応じて変更する請求項１１記載のプログラム。
【請求項１３】
前記制御ステップは、
前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置の被制御についての状況の評価を行い、評価の良し悪しを示す情報を出力する評価サブステップと、
前記評価サブステップで出力した評価の良し悪しを示す情報に基づいて、前記被制御装置に対する制御則の学習を行い、当該制御則と前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御サブステップを具備する請求項１０から請求項１２いずれか記載のプログラム。
【請求項１４】
前記観測ステップにおいて、
前記被制御装置の状態および制御部の内部状態を観測し、２以上の第一種パラメータを取得する請求項１０から請求項１３いずれか記載のプログラム。
【請求項１５】
前記制御部は、
複数の素子をネットワーク状に連結し、かつ自己フィードバックを有するネットワーク構造を内在し、前記制御部の内部状態は前記ネットワーク構造を構成する素子の状態である請求項１４記載のプログラム。
【請求項１６】
コンピュータに、
前記特徴抽出ステップにおいて第二種パラメータを取得するための情報である選択情報を受け付ける選択情報受付ステップをさらに実行させ、
前記特徴抽出ステップにおいて、
前選択情報受付ステップで受け付けた選択情報をも用いて、前記第一種パラメータより少ない数の第二種パラメータを取得する請求項１０から請求項１５いずれか記載のプログラム。
【請求項１７】
コンピュータに、
前記観測ステップで取得した第一種パラメータまたは／および前記制御ステップにおける制御結果を取得し、かかる取得した情報を２以上蓄積する長期観測ステップをさらに実行させ、
前記変換サブステップは、
前記長期観測ステップで蓄積した情報または当該情報に基づいて生成された情報をも用いて、２以上の第二種パラメータを取得する請求項１１から請求項１６いずれか記載のプログラム。
【請求項１８】
コンピュータに、
前記観測ステップで取得した第一種パラメータまたは／および前記制御ステップにおける制御結果を取得し、かかる取得した情報を２以上蓄積する長期観測ステップをさらに実行させ、
前記選択サブステップは、
前記長期観測ステップで蓄積した情報または当該情報に基づいて生成された情報をも用いて、１以上の第二種パラメータを選択する請求項１１から請求項１７いずれか記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ロボット等の多自由度システムを制御する制御装置およびプログラム等に関するものである。
【背景技術】
【０００２】
第一の従来技術として以下の制御装置がある。本制御装置は、２足歩行ロボットを制御する制御装置であり、自律的な適応制御法である強化学習により、２足歩行ロボットシミュレータの制御則を獲得し、好適に２足歩行ロボットを制御できる制御装置である。本制御装置は、強化学習を行う学習部と制御を行う制御部を具備し、当該制御部である神経振動子ネットワークは高次元の状態変数を持ち、２足歩行ロボットシミュレータも高次元の状態変数を持つ。この際に、制御部は、２足歩行ロボットシミュレータの状態のみならず、神経振動子ネットワークの内部状態を観測できるようにすることで、適切な制御を可能にしている（非特許文献１参照）。
【０００３】
また、第二の従来技術として以下の制御装置がある。本制御装置は、非特許文献１と同様に、学習を行う学習部と制御を行う制御部を具備する。そして、本制御装置によってヘビ型ロボットの制御を行っているが、非制御対象の状態空間が非常に大きい。さらに、制御装置における経由点の集合の探索は、遺伝的アルゴリズムを用いた一種のランダム探索によるものである（非特許文献２参照）。
【０００４】
さらに、関連する従来技術として、以下の学習アルゴリズムを有する制御装置がある（非特許文献３参照）。かかる制御装置は、Ａｃｔｏｒ−Ｃｒｉｔｉｃアルゴリズムといわれる強化学習の一種のアルゴリズムを用いている。
【非特許文献１】中村  泰、外２名「神経振動子ネットワークを用いたリズム運動に対する強化学習法」、電子情報通信学会論文誌，２００４年３月，Ｄ−ＩＩ  Ｖｏｌ．Ｊ８７  Ｎｏ．３，ｐｐ．８９３−９０２
【非特許文献２】Ｋａｚｕｙｕｋｉ  Ｉｔｏ  ｅｔ  ａｌ．，２００３  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  &  Ａｕｔｏｍａｔｉｏｎ  Ｔａｉｐｅｉ，Ｔａｉｗａｎ，Ｓｅｐｔｅｍｂｅｒ  １４−１９，２００３
【非特許文献３】木村  元、外１名「Ａｃｔｏｒに適正度の履歴を用いたＡｃｔｏｒ−Ｃｒｉｔｉｃアルゴリズム−−不完全なＶａｌｕｅ−Ｆｕｎｃｔｉｏｎのもとでの強化学習」，人工知能学会誌，Ｖｏｌ．１５，Ｎｏ．２，ｐｐ．２６７−２７５（２０００）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の第一の従来技術では、制御部である神経振動子ネットワークは高次元の状態変数を持ち、２足歩行ロボットシミュレータも高次元の状態変数を持ち、両者を共に観測するものとしているため、学習部の次元が非常に大きくなり、その学習は困難であった。また、本制御装置は、高速な学習が困難であり、また学習を行うために多大なＣＰＵパワーを必要とした。
【０００６】
また、第二の従来技術では、状態空間の大きさのために、学習部による学習が困難であるという問題があった。すなわち、本制御装置では、経由点の集合の探索は、遺伝的アルゴリズムを用いた一種のランダム探索となっているため、処理効率が悪いという課題があった。
【課題を解決するための手段】
【０００７】
本第一の発明の制御装置は、制御対象の装置である被制御装置の状態を観測し、２以上の第一種パラメータを取得する観測部と、前記観測部が取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出部と、前記特徴抽出部が取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御部を具備する制御装置である。
【０００８】
本第二の発明の制御装置は、第一の発明の制御装置において、前記特徴抽出部は、前記観測部が取得した２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得する変換手段と、前記変換手段が取得した２以上の第二種パラメータから１以上の第二種パラメータを選択する選択手段を具備する。
かかる構成により、制御装置は観測した多数のパラメータを圧縮して、高速に被制御装置に対する制御を行う、あるいはそのための制御則を学習できる。
【０００９】
本第三の発明の制御装置は、第二の発明の制御装置において、前記第二種パラメータが可変な変数を有し、前記変換手段は、前記第二種パラメータが有する変数を、前記制御部の制御結果または／および前記制御部の内部状態に応じて変更する。
かかる構成により、第二の発明の制御装置よりもさらに精度良く、好適な制御が可能となる。
【００１０】
本第四の発明の制御装置は、第一から第三の発明の制御装置において、前記制御部は、前記特徴抽出部が取得した１以上の第二種パラメータに基づいて、前記被制御装置の被制御についての状況の評価を行い、評価の良し悪しを示す情報を出力する評価手段と、前記評価手段が出力した評価の良し悪しを示す情報に基づいて、前記被制御装置を制御する制御手段を具備する。
かかる制御手段が学習する構成により、さらに好適な制御が可能である。
本第五の発明の制御装置は、第一から第四の発明の制御装置において、前記観測部は、前記被制御装置の状態および前記制御部の内部状態を観測し、２以上の第一種パラメータを取得する。
かかる構成により、さらに好適な制御が可能である。
【００１１】
本第六の発明の制御装置は、第一から第五の発明の制御装置において、前記特徴抽出部が第二種パラメータを取得するための情報である選択情報を受け付ける選択情報受付部をさらに具備し、前記特徴抽出部は、前選択情報受付部が受け付けた選択情報をも用いて、前記第一種パラメータより少ない数の第二種パラメータを取得する。
かかる構成により、外部から好適な特徴抽出の指針となる情報を与えることができ、好適な制御が可能である。
【００１２】
本第七の発明の制御装置は、第二から第五の発明の制御装置において、前記観測部が取得した第一種パラメータまたは／および前記制御部の制御結果を取得し、かかる取得した情報を２以上蓄積する長期観測部をさらに具備し、前記変換手段は、前記長期観測部が蓄積した情報または当該情報に基づいて生成された情報をも用いて、２以上の第二種パラメータを取得する。
【００１３】
本第八の発明の制御装置は、第二から第五の発明の制御装置において、前記観測部が取得した第一種パラメータまたは／および前記制御部の制御結果を取得し、かかる取得した情報を２以上蓄積する長期観測部をさらに具備し、前記選択手段は、前記長期観測部が蓄積した情報または当該情報に基づいて生成された情報をも用いて、１以上の第二種パラメータを選択する。
かかる構成により、所定時間以上の観測結果を加味した好適な制御が可能である。
なお、上記制御装置の動作は、ソフトウェアとコンピュータ等により実現しても良いことは言うまでもない。
【発明の効果】
【００１４】
本発明によれば、ロボット等の多自由度システムの制御が少ない計算量でできる制御装置を提供できる。
【発明を実施するための最良の形態】
【００１５】
以下、制御装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
図１は、制御装置および当該制御装置の制御対象の装置である被制御装置を有する制御システムのブロック図である。制御システムは、制御装置１１および被制御装置１２を具備する。
制御装置１１は、観測部１１０１、特徴抽出部１１０２、制御部１１０３を具備する。また、制御装置１１は、被制御装置１２の内部に存在するとした構成でも良い。
【００１６】
観測部１１０１は、制御対象の装置である被制御装置１２の状態を観測し、２以上のパラメータを取得する。ここで取得したパラメータを第一種パラメータという。第一種パラメータは、多数である。多数とは、例えば、５８以上である。観測部１１０１は、例えば、モーションキャプチャを用いて実現され得る。具体的には、例えば、被制御装置１２がヘビ型ロボットの場合、観測部１１０１は、当該ヘビ型ロボットに装着されたマーカーと当該マーカーを検出するトラッカーを組み合わせたハードウェアと、当該ハードウェアの出力（たとえば、ヘビ型ロボットの各リンクにおける位置と各関節における角度の情報）を微分処理することで、速度と角加速度を算出するソフトウェア等から実現され得る。
【００１７】
特徴抽出部１１０２は、観測部１１０１が取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数のパラメータを取得する。特徴抽出部１１０２が取得したパラメータを第二種パラメータという。第二種パラメータの数は、好ましくは第一種パラメータの数より十分小さい。具体的には、第一種パラメータの数が、例えば、５８以上であるのに対して、第二種パラメータの数は３である。
【００１８】
制御部１１０３は、特徴抽出部１１０２が取得した１以上の第二種パラメータに基づいて、被制御装置１２を制御する。制御とは、例えば、ヘビ型ロボットを前に移動させるように各関節における制御トルクを発生させることである。
【００１９】
特徴抽出部１１０２、制御部１１０３は、通常、ＭＰＵやメモリ等から実現され得る。特徴抽出部１１０２、制御部１１０３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２０】
なお、被制御装置１２は、制御対象の装置であれば何でも良い。被制御装置１２は、例えば、ロボットである。ロボットとは、例えば、ヘビ型ロボット、２足歩行制御を必要とするヒューマノイドロボットなどである。また、被制御装置１２は、多自由度システムである。
また、第一種パラメータと第二種パラメータは、異なる意味合いを有する異なる種類のパラメータである。通常、各々の第二種パラメータは、２以上の第一種パラメータに基づいて構成されるパラメータである。
以下、本制御システムの動作について説明する。まず、制御装置１１の動作について図２のフローチャートを用いて説明する。
【００２１】
（ステップＳ２０１）観測部１１０１は、被制御装置１２の状態を観測し、２以上の第一種パラメータを取得したか否かを判断する。２以上の第一種パラメータを取得すればステップＳ２０２に行き、２以上の第一種パラメータを取得しなければステップＳ２０１に戻る。
【００２２】
（ステップＳ２０２）特徴抽出部１１０２は、ステップＳ２０１で取得した２以上の第一種パラメータに基づいて１以上の第二種パラメータを取得する。ここでの第二種パラメータの数は、ステップＳ２０１で観測した第一種パラメータの数より、通常、大幅に減少している。
（ステップＳ２０３）制御部１１０３は、ステップＳ２０２で選択した１以上の第二種パラメータに基づいて、被制御装置１２を制御するための信号である制御信号を構成する。
（ステップＳ２０４）制御部１１０３は、ステップＳ２０３で構成した制御信号を被制御装置１２に与え、被制御装置１２を制御する。ステップＳ２０１に戻る。
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における制御システムの具体的な動作について説明する。
【００２３】
今、被制御装置１２は、例えば、ヘビ型ロボットである。ヘビ型ロボットは、例えば、図３（ａ）に示すような形態である。ヘビは体軸の接線方向の摩擦が小さく、法線方向の摩擦が大きいことを利用して推進運動を行っている。本ヘビ型ロボットは、かかる条件を満たすように受動車輪のついたリンクを結合したロボットである。さらに具体的には、本ヘビ型ロボットは、両サイドに受動車輪がある箱型のリンクが１０個連結したロボットであり、各リンクと受動車輪の重さと大きさを図３（ｂ）に示す。図３（ｂ）において、「ｌｉｎｋ  ｍａｓｓ」は、リンクの重量、「ｌｉｎｋ  ｌｅｎｇｔｈ」はリンクの長さ、「ｌｉｎｋ  ｗｉｄｔｈ」はリンクの幅、「ｌｉｎｋ  ｈｅｉｇｔｈ」はリンクの高さ、「ｗｈｅｅｌ  ｍａｓｓ」は受動車輪の重量、「ｗｈｅｅｌ  ｒａｄｉｕｓ」は受動車輪の半径を示す。つまり、図３（ｂ）において、リンクの重量は「１．０ｋｇ」、リンクの長さ、幅、高さは、それぞれ「０．１５ｍ」「０．１０ｍ」「０．１０ｍ」であり、受動車輪の重量は「０．５ｋｇ」、受動車輪の半径は「０．０７ｍ」である。また、各リンク間の関節はｚ軸を中心に回転し、回転のためのトルクがかけられるものとする。この各関節にかけ得るトルクによって本ヘビ型ロボットは制御される。
【００２４】
また、観測部１１０１は、上記ヘビ型ロボットの各リンク（ここでは１０個）の位置、角度、および角速度の状態変数（パラメータ）を観測する。かかる各リンクの位置、速度、角度、および角速度の状態変数の集合が、２以上の第一種パラメータである。例えば、かかる状態変数の数は５８である。ｉ番目のリンクの位置と速度はそれぞれ（Ｘｉ，Ｙｉ）と（ＶＸｉ，ＶＹｉ）で得られる（ｉは１から１０までの整数）。関節の角度は「Ｋｊ」、角速度は「Ｌｊ」であらわす（ｊは１から９までの整数）、とする。つまり、第一種パラメータは、（Ｘｉ，Ｙｉ，ＶＸｉ，ＶＹｉ），（Ｋｊ，Ｌｊ）［ｉは１から１０，ｊは１から９］である。なお、第一種パラメータの一つである各リンクの位置は、１以上の少数の基準点の座標（重心座標など）と、当該基準点に対する相対的な位置を示す相対座標であっても良い。
かかる場合、特徴抽出部１１０２は、（Ｘｉ，Ｙｉ，ＶＸｉ，ＶＹｉ），（Ｋｊ，Ｌｊ）に基づいて、以下の数式１，２の演算を行う。
数式１は、ヘビ型ロボットの向きを示す特徴量（第二種パラメータ）である。数式２は、ヘビ型ロボットのくねり具合を示す特徴量（第二種パラメータ）である。
【数１】
2006085284.tif 000003
【００２５】
数式１において、ｘｉとｙｉは、それぞれヘビ型ロボットの頭側からｉ番目のリンクの重心位置のｘ座標とｙ座標である。Ｎはヘビ型ロボットのリンク数を示す。Ｎは、ここでは、例えば、１０である。また，ａｒｃｔａｎは、逆正接である。
【数２】
2006085284.tif 000004
数式２において、Ｋｊはｊ番目の関節角であり、｜Ｋｊ｜は，Ｋｊの絶対値を示す。
【００２６】
そして、特徴抽出部１１０２は、（Ｘｉ，Ｙｉ，ＶＸｉ，ＶＹｉ），（Ｋｊ，Ｌｊ）［ｉは１から１０，ｊは１から９］から、上記の数式１，２により、例えば、２つの第二種パラメータ（ｓ１，ｓ２）を取得する。そして、特徴抽出部１１０２は、第二種パラメータ（ｓ１，ｓ２）を制御部１１０３に渡す。
【００２７】
制御部１１０３は、第二種パラメータ（ｓ１，ｓ２）である制御入力信号に基づいて、被制御装置１２を制御する。この制御方法については実施の形態２の中で説明する。具体的には各関節にかける得るトルクを決定し、その決定されたトルクを用いることで被制御装置１２は動作する。
【００２８】
以上の具体例によれば、観測部１１０１が観測した５８の第一種パラメータが、特徴抽出部１１０２で圧縮することにより、２つの第二種パラメータになった。そして、２つの第二種パラメータにより、被制御装置１２（ヘビ型ロボット）が制御できる。
【００２９】
以上、本実施の形態によれば、制御装置は観測した多数のパラメータを圧縮して、高速に被制御装置に対する制御を行う、あるいはそのための制御則を学習できる。かかるパラメータの圧縮は、被制御装置であるヘビ型ロボットなどの運動が、その状態変数全てを用いるものよりもずっと単純であるという性質に着目したことにより実現されたものである。
なお、本実施の形態によれば、被制御装置はヘビ型ロボットであったが、２足歩行制御を必要とするヒューマノイドロボットなど、他の多自由度システムでも良いことはいうまでもない。
【００３０】
また、本実施の形態によれば、特徴抽出部１１０２が取得した第二種パラメータは、ヘビ型ロボットの向きを示す特徴量と、ヘビ型ロボットのくねり具合を示す特徴量であったが、被制御装置の特性を表すパラメータであれば、他でも良い。第二種パラメータは、制御パラメータであって、必ずしも特定の運動を表現するパラメータではない。
【００３１】
また、本実施の形態において、特徴抽出部１１０２が第二種パラメータを取得するための情報である選択情報を受け付ける選択情報受付部をさらに具備し、特徴抽出部１１０２は、選択情報受付部が受け付けた選択情報をも用いて、第一種パラメータより少ない数の第二種パラメータを取得しても良い。ここで、選択情報とは、例えば、上述した数式１、数式２そのもの、あるいはそれらを特定するのに十分な情報である。
【００３２】
さらに、本実施の形態における制御装置の処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における制御装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、制御対象の装置である被制御装置の状態を観測し、２以上の第一種パラメータを取得する観測ステップと、前記観測ステップで取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出ステップと、前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御ステップを実行させるためのプログラム、である。
（実施の形態２）
図４は、制御装置および当該制御装置の制御対象の装置である被制御装置を有する制御システムのブロック図である。制御システムは、制御装置４１および被制御装置１２を具備する。
制御装置４１は、観測部４１０１、特徴抽出部４１０２、制御部４１０３、選択情報受付部４１０４を具備する。
特徴抽出部４１０２は、変換手段４１０２１、選択手段４１０２２を具備する。制御部４１０３は、評価手段４１０３１、制御手段４１０３２を具備する。また、制御装置４１は、被制御装置１２の内部に存在するとした構成でも良い。
【００３３】
観測部４１０１は、制御対象の装置である被制御装置１２の状態、および制御部４１０３の内部状態を観測し、２以上の第一種パラメータを取得する。ここで取得したパラメータを第一種パラメータという。第一種パラメータは、多数である。多数とは、例えば、２４００以上である。また、制御部４１０３の内部状態とは、例えば、神経振動子ネットワークの状態変数である。神経振動子ネットワークについては後述する。観測部４１０１は、例えば、モーションキャプチャ等を用いて実現され得る。具体的には、例えば、被制御装置１２がヘビ型ロボットの場合、観測部４１０１は当該ヘビ型ロボットに装着されたマーカーと当該マーカーを検出するトラッカーを組み合わせたハードウェア、当該ハードウェアの出力（たとえば、ヘビ型ロボットの各リンクにおける位置と各関節における角度の情報）を微分処理することで、速度と角加速度を算出するソフトウェア、および制御部４１０３の内部状態を取得するオシロスコープなどのハードウェア等から実現され得る。
特徴抽出部４１０２は、観測部１１０１が取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する。
【００３４】
変換手段４１０２１は、観測部１１０１が取得した２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得する。２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得する具体的な方法については後述する。
【００３５】
選択手段４１０２２は、変換手段１１０２１が取得した２以上の第二種パラメータから１以上の第二種パラメータを選択する。選択手段４１０２２は、変換手段４１０２１が取得した１以上の第二種パラメータを全て選択しても良い。かかる場合、選択手段４１０２２は、何ら処理を行わない。
制御部４１０３は、特徴抽出部４１０２が取得した１以上の第二種パラメータに基づいて、被制御装置１２を制御する。
【００３６】
評価手段４１０３１は、特徴抽出部４１０２が取得した１以上の第二種パラメータに基づいて、被制御装置１２の被制御についての状況の評価を行い、当該評価の良し悪しを示す情報（かかる値を適宜「出力値」という）を出力する。被制御装置１２の被制御についての状況とは、被制御装置１２が制御された後の結果でも良いし、被制御装置１２に与えられる制御信号等でも良い。評価の良し悪しを示す情報とは、例えば、評価が良いことを示す情報「１」、評価が悪いことを示す情報「０」のどちらかの値を採り得るフラグ、あるいは評価が最も良い時に最大値、最も悪い時に最小値、その間は程度に応じて中間値を取り得るものである。さらに具体的には、ヘビ型ロボットをｘ軸方向に推進運動をさせる場合、以下の出力値（ｒ）で設定できる。出力値（ｒ）を算出するための数式を数式３に示す。
【数３】
2006085284.tif 000005
ここで、Ｔｊはｊ番目の関節［ｊ＝１，...，９］にかけられるトルクの大きさを表す。Ｔｊを算出する式は、数式４である。
【数４】
2006085284.tif 000006
【００３７】
数式４において、Ｋｍ，Ｋｓ，Ｓｔ，Ｋｄはそれぞれ筋力に対するゲイン、剛性に対するゲイン、ヘビの硬さ、角速度の差に対するゲインであり，あらかじめ決められた定数である。また、Ｐｊ，Ｑｊはそれぞれｊ番目のリンクの角度、リンクの角速度である。リンクの角速度（Ｑｊ）は、リンクの角度（Ｐｊ）を微分したものである。
【００３８】
制御手段４１０３２は、評価手段４１０３１が出力した評価の良し悪しを示す情報に基づいて、被制御装置１２を制御する。また、制御手段４１０３２は、かかる制御のために、選択手段４１０２２が選択した第二種パラメータと評価手段４１０３１が出力した評価である出力値に基づいて、制御信号を構成するための制御規則を変更（学習）する。そして、制御手段４１０３２は、かかる学習した制御規則に基づき制御信号を構成する。被制御装置１２がヘビ型ロボットの場合、制御手段４１０３２は、例えば、所定の回数内（例えば、１００回内）で上記のｒで与えられるような出力値の和が大きくなった際のヘビ型ロボットの形状を示す特徴量（第二種パラメータ）を蓄積しておき、その形状になるようにヘビ型ロボットを制御する。
【００３９】
選択情報受付部４１０４は、特徴抽出部４１０２が第二種パラメータを取得するための情報である選択情報を受け付ける。選択情報とは、ヘビ型ロボットの向きを示す特徴量（第二種パラメータ）を算出するための数式（上記数式１）や、ヘビ型ロボットのくねり具合を示す特徴量（第二種パラメータ）を算出するための数式（上記数式２）等、あるいはそれらを特定するのに十分な情報である。選択情報の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。選択情報受付部４１０４は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００４０】
特徴抽出部４１０２、制御部４１０３、変換手段４１０２１、選択手段４１０２２、評価手段４１０３１、制御手段４１０３２は、通常、ＭＰＵやメモリ等から実現され得る。特徴抽出部４１０２等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
以下、本制御システムを構成する制御装置４１の動作について図５のフローチャートを用いて説明する。
【００４１】
（ステップＳ５０１）観測部１１０１は、被制御装置１２の状態を観測し、２以上の第一種パラメータを取得したか否かを判断する。２以上の第一種パラメータを取得すればステップＳ５０２に行き、２以上の第一種パラメータを取得しなければステップＳ５０１に戻る。
【００４２】
（ステップＳ５０２）特徴抽出部４１０２の変換手段４１０２１は、ステップＳ５０１で取得した２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得する。ここで、第二種パラメータの数は、第一種パラメータの数より多くても良いし、同じでも良い。
【００４３】
（ステップＳ５０３）特徴抽出部４１０２の選択手段４１０２２は、ステップＳ５０２で取得した２以上の第二種パラメータから１以上の第二種パラメータを選択する。ここで選択された第二種パラメータの数は、第一種パラメータの数より、大幅に減少していることが好適である。例えば、第一種パラメータの数が２４００以上であり、選択された第二種パラメータの数が３であることは好適である。
（ステップＳ５０４）制御手段４１０３２は、ステップＳ５０３で選択された第二種パラメータに基づいて、制御信号を構成する。具体的な制御信号の構成方法については後述する。
（ステップＳ５０５）制御手段４１０３２は、ステップＳ５０４で構成した制御信号を被制御装置１２に与え、被制御装置１２を制御する。
【００４４】
（ステップＳ５０６）評価手段４１０３１はステップＳ５０３で選択された第二種パラメータ（または、それに加えて制御手段４１０３２の出力する制御信号）に基づいて、制御手段４１０３２による制御規則に対する評価を出力する。
（ステップＳ５０７）制御手段４１０３２は、ステップＳ５０３で選択された第二種パラメータとステップＳ５０６で評価手段４１０３１が出力した評価に基づいて、制御信号を構成するための制御規則を変更（学習）する。ステップＳ５０１に戻る。なお、ステップＳ５０７において、制御手段４１０３２は、第二種パラメータを直接的に使用せず、評価手段４１０３１が出力した評価に基づいて、制御信号を構成するための制御規則を変更（学習）しても良い。
【００４５】
なお、図５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。また、評価手段４１０３１と制御手段４１０３２は、非特許文献３に記述されるアルゴリズムなどによって学習可能である。
以下、本実施の形態における制御システムの具体的な動作について説明する。今、被制御装置１２は、例えば、図３に示すヘビ型ロボットである。
【００４６】
また、観測部４１０１は、上記ヘビ型ロボットの各リンク（ここでは１０個）の位置、速度、角度、角速度の状態変数、および神経振動子ネットワークの状態変数を観測する。神経振動子ネットワークの状態変数は、制御部４１０３の内部状態であり、観測部４１０１が観測する第一種パラメータであり、その数は２４００以上となる。
【００４７】
制御部４１０３は、ここでは、脊髄をモデル化したもので、ニューロン素子がネットワーク状に結合した神経振動子ネットワークによって実装される。神経振動子ネットワークは例えば、図６に示すように、左右のＭＮ，ＥＩＮ，ＬＩＮとＣＣＩＮの４種類の素子で構成された神経節が図７に示すように１００個繋がったものである。
また、各素子は、例えば、以下の数式５により、時間発展を行う。
【数５】
2006085284.tif 000007
【００４８】
ここで，Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，ｗ０とｗｉはあらかじめ決められた定数で、Ψ＋とΨ‐はそれぞれ結合している素子のインデックスの集合を示す。ｍａｘ（ｘ１，ｘ２）はｘ１とｘ２の大きい方を出力する関数である。上記の微分方程式をコンピュータ上で時刻ｔについて数値積分を行うことで素子の動作をシミュレートできる。あるいは上記の微分方程式に従うアナログハードウェアを用いても良い。ＤＴは数値積分の刻み幅である。ｖは素子の出力である。（Ｉ，Ｉ＋，Ｉ−）を内部状態変数と呼び，コンピュータ上で実装する場合には，数式６のように更新（数値積分）される。
【数６】
2006085284.tif 000008
また、Ｕは各素子に対する外部入力（＝トニック入力）で、数式７によって計算される。
【数７】
2006085284.tif 000009
【００４９】
方策は、３つの第二種パラメータ（ｓ１，ｓ２，ｓ３）が与えられたときに、制御信号（ｕ）が出力される確率Ｐとして与えられるが，他の例としては，確率Ｐによるｕの期待値などでも良い。具体的には、Ｐの例としては、（ｓ１，ｓ２，ｓ３）から決まる平均値と、パラメータθ０で与えられる分散を持つ正規分布が用いられる。
【００５０】
また、制御部４１０３が出力する制御信号は、神経節の左右の各々に存在する運動ニューロン（ＮＭＬ，ＭＮＲ）の出力（図７参照）である。この制御信号がヘビ型ロボット（被制御装置１２）の各関節のトルクとして与えられ、ヘビ型ロボットの体を屈曲させる。そして、ここでは、１０個のリンクが繋がったものとして、被制御装置１２がモデル化されており、ｉ番目の関節に加わるトルクは１０ｉセグメントの運動ニューロンの出力により数式８により算出される。
【数８】
2006085284.tif 000010
【００５１】
数式８において、Ｋｍ，Ｋｓ，Ｓｔ，Ｋｄはそれぞれ筋力に対するゲイン、剛性に対するゲイン、ヘビの硬さ、角速度の差に対するゲインであり，あらかじめ決められた定数である。また、Ｐｉ，Ｑｉはそれぞれｉ番目のリンクの角度、リンクの角速度である。リンクの角速度（Ｑｉ）は、リンクの角度（Ｐｉ）を微分したものである。
【００５２】
また、制御部４１０３は、脳幹からの信号をモデル化した上述のトニック入力により制御されており、左右のニューロンに同じ大きさの入力を与えると、その入力の大きさによって運動ニューロンの出力（制御信号）が変化する。当該変化した制御信号をヘビ型ロボット（被制御装置１２）に、例えば数式８により与えることにより、ヘビ型ロボットの体の形状が変わる。一方、左右のニューロンに異なる大きさの入力を与えると、左右の運動ニューロンに出力の差が生まれる。かかる出力の差をヘビ型ロボット（被制御装置１２）に与えることにより、当該差に従って、ヘビ型ロボットの形状変化を通じて進行方向が変化する。
以下、観測部４１０１が第一種パラメータを取得した後、ヘビ型ロボットに与える制御信号を構成するまでの処理を詳細に説明する。
【００５３】
まず、変換手段４１０２１は、観測部４１０１が観測した２４００以上の第一種パラメータを以下のように変換し、第二種パラメータを取得する。ここでの第二種パラメータは、例えば、第一種パラメータの数と同数である、とする。ここでの、第二種パラメータは、例えば、少なくともヘビ型ロボットの向きを示す特徴量、ヘビのくねり具合いを示す特徴量、神経振動子ネットワークの状態を示す特徴量を有する。具体的には，数式４から数式６までの特徴量を含むものとする。
【００５４】
次に、選択手段４１０２２は、変換手段４１０２１が取得した第一種パラメータから、以下の３つの第一種パラメータを選択する。３つの第一種パラメータとは、ヘビ型ロボットの向きを示す特徴量、ヘビのくねり具合いを示す特徴量、神経振動子ネットワークの状態を示す特徴量である。これらの第２種パラメータは，例えば設計者の先見的な知識（かかる知識は、通常、選択手段４１０２２が保持している）により選択されるが，それ以外の各種手段によるものでも良い。
【００５５】
ここで、ヘビ型ロボットの向きを示す特徴量ｓ１（第二種パラメータ）は数式９で算出される。ヘビ型ロボットのくねり具合を示す特徴量ｓ２（第二種パラメータ）は数式１０で算出される。神経振動子ネットワークの状態を示す特徴量ｓ３（第二種パラメータ）は数式１１で算出される。
【数９】
2006085284.tif 000011
【００５６】
数式９において、ｘｉとｙｉは、それぞれヘビ型ロボットの頭側からｉ番目のリンクの重心位置のｘ座標とｙ座標である。Ｎはヘビ型ロボットのリンク数を示す。Ｎは、ここでは、例えば、１０である。また，ａｒｃｔａｎは、逆正接である。
【数１０】
2006085284.tif 000012
数式１０において、Ｋｊはｊ番目の関節角であり、｜Ｋｊ｜は，Ｋｊの絶対値を示す。
【数１１】
2006085284.tif 000013
すなわち，数式１１は神経振動子ネットワーク内の全運動ニューロン（ＭＮＬｋ，ＭＮＲｋ）の出力の和である
選択手段４１０２２は、３つの第二種パラメータ（ｓ１，ｓ２，ｓ３）を選択し、当該３つの第二種パラメータを制御手段４１０３２および評価手段４１０３１に渡す。
【００５７】
次に、制御手段４１０３２は、３つの第二種パラメータ（ｓ１，ｓ２，ｓ３）を受け取り、方策に従い制御信号を出力する。方策は、３つの第二種パラメータ（ｓ１，ｓ２，ｓ３）が与えられたときに、以下の数式１２によって定義される。
【数１２】
2006085284.tif 000014
【００５８】
方策は、３つの第二種パラメータ（ｓ１，ｓ２，ｓ３）が与えられたときに、制御信号（ｕ）が出力される確率Ｐとして与えられるが，他の例としては，確率Ｐによるｕの期待値などでも良い。具体的には、Ｐの例としては、（ｓ１，ｓ２，ｓ３）から決まる平均値と、パラメータθ０で与えられる分散を持つ正規分布が用いられる。また、以下の数式１３は制御信号ｕが（Ｕｒ，Ｕｌ）の２次元ベクトルで与えられる場合の平均値の計算例である。
【数１３】
2006085284.tif 000015
ここで、ＵＢｒとＵＢｌはそれぞれＵｒとＵｌの平均値である。
【００５９】
また、評価手段４１０３１は、３つの第二種パラメータ（ｓ１，ｓ２，ｓ３）を受け取り、システムの状態の良さを第二種パラメータ（ｓ１，ｓ２，ｓ３）に基づいて計算する。そして、評価手段４１０３１がこの計算を行うための関数は，状態価値関数という。状態価値関数とは、例えば、公知技術である強化学習法でよく用いられるＴＤ（λ）アルゴリズムを用いて獲得される関数である。評価手段４１０３１は、状態価値関数に第二種パラメータ（ｓ１，ｓ２，ｓ３）を代入して、出力値を得る。
例えば，出力値Ｖは、数式１４のように計算される。
【数１４】
2006085284.tif 000016
ここで，β，ＳＢｉ，ｊ（ｉは１からＭまで，ｊは１から３までの整数）は定数で、ｄｉは強化学習によって獲得されるパラメータである。Ｍはあらかじめ決められた定数である。
【００６０】
そして、制御手段４１０３２は、評価手段４１０３１の出力値に基づき、方策パラメータの学習を行う。つまり、制御手段４１０３２は、評価手段４１０３１の出力値に基づき、ヘビ型ロボットがスムーズに進むように方策パラメータを決定し、制御信号を構成する。方策パラメータの学習の処理について、図８、図９に示すフローチャートを用いて説明する。
なお、図８、図９で説明する方策パラメータの学習は、制御と学習の手順である。そして、学習の例として，非特許文献３に記述されるアルゴリズムに基づいた学習を行う。
【００６１】
（ステップＳ８０１）初期化を行う。初期化とは、以下の処理である。つまり、制御手段４１０３２と評価手段４１０３１のパラメータθｉ（方策パラメータ）とｄｉの初期値を決める。それらのパラメータ学習のための補助パラメータΘｉとＤｉを０に設定する。また，ｔを０に設定する。
（ステップＳ８０２）観測部４１０１が被制御装置１２と制御部４１０３を観測し、第一種パラメータＸ（ｔ）を出力する。
【００６２】
（ステップＳ８０３）特徴抽出部４１０２が第一種パラメータＸ（ｔ）を取得し，変換手段４１０２１により第二種パラメータに変換し，選択手段４１０２２によりｓ１（ｔ），ｓ２（ｔ），ｓ３（ｔ）を選択し，制御部４１０３に出力する。同時に制御部４１０３が数式３で計算されるｒ（ｔ）を取得する。なお、ｒ（ｔ）とは、時刻ｔにおけるｒである。
（ステップＳ８０４）制御手段４１０３２は、ｓ１（ｔ），ｓ２（ｔ），ｓ３（ｔ）を取得し，制御信号を生成する。
（ステップＳ８０５）制御部４１０３の学習サブルーチン（図９により説明する）を実行する。
（ステップＳ８０６）被制御装置１２がステップＳ８０４で生成された制御信号により制御される。
（ステップＳ８０７）ｔ＝ｔ＋１として，ステップＳ８０２に戻る。
なお、図８のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、図９のフローチャートを用いて、制御部４１０３の学習サブルーチンについて説明する。
（ステップＳ９０１）時刻ｔが０であるか否かを判断する。０でなければステップＳ９０２に行き、０であれば上位関数にリターンする。
【００６３】
（ステップＳ９０２）評価手段４１０３１は時刻ｔ−１の第二種パラメータと時刻ｔの第二種パラメータを用いて，数式（Ｖ（ｓ１，ｓ２，ｓ３））に従い，Ｖ（ｓ１（ｔ−１），ｓ２（ｔ−１），ｓ３（ｔ−１））とＶ（ｓ１（ｔ），ｓ２（ｔ），ｓ３（ｔ））を計算し，さらに時刻ｔ−１における数式３で計算されるｒ（ｔ−１）を用いてＴＤ誤差を、数式１５により計算する。
【数１５】
2006085284.tif 000017
数式１５において、γはあらかじめ決められた定数（０<γ<１）である。
（ステップＳ９０３）評価手段４１０３１は、以下の数式１６を計算し、パラメータをｄｉ＝ｄｉ＋ηｄ×δ（ｔ−１）×Ｄｉのように更新する。
【数１６】
2006085284.tif 000018
ここで，λはあらかじめ決められた定数（０<λ<１）である。また，ηｄは学習係数と呼ばれる小さな正数である。
（ステップＳ９０４）制御手段４１０３２は、以下の数式１７を計算し、パラメータをθｉ＝θｉ＋ηθ×δ（ｔ−１）×Θｉのように更新する。
【数１７】
2006085284.tif 000019
また、ここでのηθは学習係数と呼ばれる小さな正数である。さらに、ここで、数式１８は、パラメータθｉについての変微分を表す記号である。
【数１８】
2006085284.tif 000020
なお、ヘビ型ロボットの制御課題において制御信号は左右のニューロン群に対するトニック入力ＵｒとＵｌで，それぞれ、数式１９により定義した。
【数１９】
2006085284.tif 000021
【００６４】
ここで，Ｃ６はあらかじめ決められた定数である。また，ε１（ｔ−１）とε２（ｔ−１）はそれぞれ平均０，分散ｂの正規分布から生成される乱数である（このような乱数を生成するアルゴリズムは公知のものである）このとき，数式２０のように計算できる。
【数２０】
2006085284.tif 000022
【００６５】
上記の制御装置により、ヘビ型ロボットの制御を行った結果を以下に示す。具体的には、時刻５０００秒において地面との摩擦係数が変化した場合の実験結果を図１０と図１１に示す。図１０と図１１の横軸は時刻を示し、縦軸はそれぞれヘビ型ロボットの向きと、方策パラメータの値（ここでは二つの方策パラメータθ１とθ２）を示している。また、ヘビ型ロボットの向きは目標方向を０としたものである。摩擦係数の変化後、一時的にヘビ型ロボットは大きく方向を変化させるが、その後、方策パラメータの収束と共に進行方向に向いていることが分かる。以上により、本制御装置により、ヘビ型ロボットの目標方向（この場合ｘ軸に平行な方向）への推進運動に対する良好な制御則が獲得できたことが分かる。また，時刻５０００秒において環境（ここでは、例えば、摩擦係数）が変化したにもかかわらず，新しい環境に適合する形で制御ができることが分かる。
なお、選択情報受付部４１０４は、例えば、上述した数式の情報を受け付ける。
【００６６】
以上、本実施の形態によれば、制御装置は観測した多数のパラメータを圧縮して、高速に被制御装置に対する制御を行う、あるいはそのための制御則を学習できる。また、被制御装置の状態および制御部の内部状態の両方を観測し、かつ、評価手段は、１以上の第二種パラメータに基づいて、前記被制御装置の被制御についての状況の評価を行い、評価の良し悪しを示す情報（例えば、数式３におけるｒ）に基づく簡単な値を出力するだけで、制御手段４１０３２は学習し好適な制御が可能である。よって、制御装置に複雑な情報を入力することなく、被制御装置を制御できる。つまり、従来技術による制御装置において、高速に被制御装置に対する制御則を学習しようとする場合は、種々の複雑な情報を制御装置は保持していなければならない。先に述べたように環境が変化する場合については，特に多くの情報が必要になる。一方、従来技術による制御装置において、初期設定が簡易であれば、適切に制御に被制御装置を制御しようとすれば、多数の状態を観測し、その結果、制御に時間がかかる。本実施の形態によれば、初期設定を簡易にしつつ制御速度を速める（ＣＰＵ負荷を少なくできる）、という特徴がある。これは、観測した多数の第一種パラメータから第二種パラメータにパラメータ変換を行い、かつ制御部における強化学習法（評価の良し悪しを示す情報を出力する評価手段と評価手段が出力した評価の良し悪しを示す情報に基づいて被制御装置を制御する制御手段により実現されている方法）による制御を行うからである。つまり、本実施の形態によれば、設計者が最適な制御規則を設計せずに制御器が適応的に制御規則を発見する状況においても、多自由度システムに対する制御則を高速に学習できる制御装置を提供できる。
【００６７】
なお、本実施の形態によれば、制御部は、上述したように、神経振動子ネットワーク，すなわち複数の素子をネットワーク状に連結し、かつ自己フィードバックを有するネットワーク構造を内在するものであり、前記制御部の内部状態は前記ネットワーク構造を構成する素子の状態である。神経振動子ネットワークを制御部に用いることで、ヒューマノイドロボットの二足歩行やヘビ型ロボットのほふく運動など，周期的運動を基本とする運動を好適に制御することができる。かかることは、他の実施の形態においても同様である。しかし、本発明の主要な技術である第一種パラメータから第二種パラメータへの変換に基づいた特徴抽出は、神経振動子ネットワークを使用するか否かに依存せずに有効に制御学習を加速する。
【００６８】
さらに、本実施の形態における制御装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、被制御装置の状態および制御部の内部状態を観測し、２以上の第一種パラメータを取得する観測ステップと、前記観測ステップで取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出ステップと、前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御ステップを実行させるためのプログラムであり、前記特徴抽出ステップは、前記観測ステップで取得した２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得する変換サブステップと、前記変換サブステップで取得した２以上の第二種パラメータから１以上の第二種パラメータを選択する選択サブステップを具備し、前記制御ステップは、前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置の被制御についての状況の評価を行い、評価の良し悪しを示す情報を出力する評価サブステップと、前記評価サブステップで出力した評価の良し悪しを示す情報に基づいて、前記被制御装置を制御する制御サブステップを具備するプログラム、である。
（実施の形態３）
図１２は、制御装置および当該制御装置の制御対象の装置である被制御装置を有する制御システムのブロック図である。制御システムは、制御装置１２１および被制御装置１２を具備する。
制御装置１２１は、観測部４１０１、特徴抽出部１２１０２、制御部４１０３、選択情報受付部４１０４を具備する。特徴抽出部１２１０２は、変換手段１２１０２１、選択手段４１０２２を具備する。
【００６９】
変換手段１２１０２１は、第二種パラメータが有する変数を、制御部４１０３の制御結果または／および制御部４１０３の内部状態に応じて変更する。なお、本実施の形態において、第二種パラメータが可変な変数を有する。変換手段１２１０２１は、通常、ＭＰＵやメモリ等から実現され得る。変換手段１２１０２１の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００７０】
以下、本制御システムにおける制御装置１２１の動作について説明する。制御装置１２１の動作は、概ね実施の形態２における制御装置４１の動作（図５のフローチャートで説明）と同様である。制御装置１２１は、制御部４１０３の制御結果または／および制御部４１０３の内部状態に応じて第二種パラメータが有する変数を変更する処理が加わる点のみが、制御装置４１の動作と異なる。また、かかる第二種パラメータが有する変数を変更する処理は、例えば、ステップＳ５０８の次に加わる。なお、第二種パラメータが有する変数を変更する処理は、いかなるタイミングで行っても良い。
以下、本実施の形態における制御システムの具体的な動作について説明する。ここでは、変換手段１２１０２１が行う、第二種パラメータが有する変数を変更する処理についてのみ説明する。
まず、変数を有する第二種パラメータ（ｓ２'）は、例えば、数式２１で示される。
【数２１】
2006085284.tif 000023
数式２１において、αｉ（ｉは１から９の整数）が変数である。
【００７１】
また、変換手段１２１０２１は、制御部４１０３の制御結果が良好である場合、例えば、数式３におけるｒの一定時間内での和があらかじめ決められた閾値よりも大きい場合には、上記の第二種パラメータの有する変数を固定し、一方、閾値より小さい場合には上記の第二種パラメータの有する変数をランダムに変更する。例えば、数式２２のように第二種パラメータの有する変数（αｉ）を変更する。
【数２２】
2006085284.tif 000024
ここでΔｉは乱数を用いて決めることが考えられる。
具体的には、変換手段１２１０２１は、例えば、以下の図１３に示すフローチャートにより、第二種パラメータの有する変数（αｉ）を変更する。
【００７２】
（ステップＳ１３０１）選択情報受付部４１０４は、以下の初期値を受け付ける。具体的には、選択情報受付部４１０４は、パラメータαｉ［ｉ＝１，...，９］の初期値を受け付ける。また、選択情報受付部４１０４は、ｎの値「１」を受け付ける。さたに、選択情報受付部４１０４は、性能の評価のための閾値Ｆ、および学習の終了時間Ｔを受け付ける。
【００７３】
（ステップＳ１３０２）制御装置１２１は、ｓ２の代わりにパラメータαｉをもつ第二種パラメータｓ２'を用いて、実施の形態２の図８、図９における学習アルゴリズムと同様の手順で制御を行う。まず、制御手段４１０３２と評価手段４１０３１のパラメータθｉ（方策パラメータ）とｄｉの初期値を決める。それらのパラメータ学習のための補助パラメータΘｉとＤｉを０に設定する。また，ｔを０に設定する。さらに、Ｒを０に設定する。なお、Ｒは、累積報酬を格納する変数（バッファ）である。
（ステップＳ１３０３）観測部４１０１が被制御装置１２と制御部４１０３を観測し、第一種パラメータＸ（ｔ）を出力する。
【００７４】
（ステップＳ１３０４）特徴抽出部１２１０２が第一種パラメータＸ（ｔ）を取得し，変換手段１２１０２１により第二種パラメータに変換し，選択手段４１０２２によりｓ１（ｔ），ｓ２（ｔ），ｓ３（ｔ）を選択し，制御部４１０３に出力する。同時に制御部４１０３が数式３で計算される（ｒ（ｔ））を取得する。そして、Ｒ＝Ｒ＋ｒ（ｔ）とする。
（ステップＳ１３０５）制御手段４１０３２は、ｓ１（ｔ），ｓ２（ｔ），ｓ３（ｔ）を取得し，制御信号を生成する。
（ステップＳ１３０６）制御部４１０３の学習サブルーチン（図９）を実行する。
（ステップＳ１３０７）被制御装置１２がステップＳ１３０５で生成された制御信号により制御される。
（ステップＳ１３０８）変換手段１２１０２１は、ｔ＝Ｔであるか否かを判断し、ｔ＝Ｔであれば、ステップＳ１３０９に行き、ｔ＝ＴでなければステップＳ１３０３に行く。
（ステップＳ１３０９）変換手段１２１０２１は、ｎ＝１であるか否かを判断する。ｎ＝１であればステップＳ１３１０に行き、ｎ＝１でなければステップＳ１３１３に行く。
（ステップＳ１３１０）変換手段１２１０２１は、αｍａｘｉ＝αｉ［ｉ＝１，...，９］を記録する。
（ステップＳ１３１１）変換手段１２１０２１は、αｉを「αｉ＝αｍａｘｉ＋Δｉ」に従い生成する。ここでΔｉは乱数を用いて決める。
（ステップＳ１３１２）変換手段１２１０２１は、ｎを１、インクリメントする。ステップＳ１３０２に戻る。
（ステップＳ１３１３）変換手段１２１０２１は、Ｒ>Ｆであるか否かを判断する。Ｒ>ＦであればステップＳ１３１０に行き、Ｒ>ＦでなければステップＳ１３１１に行く。
なお、公知技術である遺伝的アルゴリズムなどの探索手法を用いて，αｉの探索を実現しても良い。また，上記の変換手段の変数の変更において実施の形態４で説明する長期観測部を用いる構成とすることもできる。
【００７５】
以上、本実施の形態によれば、制御装置は観測した多数のパラメータを圧縮して、高速に被制御装置に対する制御を行う、あるいはそのための制御則を学習できる。また、被制御装置の状態および制御部の内部状態の両方を観測し、かつ、評価手段は、１以上の第二種パラメータに基づいて、前記被制御装置の被制御についての状況の評価を行い、評価の良し悪しを示す情報（例えば、数式３におけるｒ）に基づく簡単な値を出力するだけで、制御手段４１０３２は学習し好適な制御が可能である。よって、制御装置に複雑な情報を入力することなく、被制御装置を制御できる。つまり、通常、高速に被制御装置に対する制御則を学習しようとする場合は、種々の複雑な情報を制御装置は保持していなければならない。また、本制御装置で扱う第二種パラメータは可変な変数を有し、変換手段は、第二種パラメータが有する変数を、制御部の制御結果または／および制御部の内部状態に応じて変更することができることにより、さらに精度良く、好適な制御が可能となる。さらに、本実施の形態によれば、設計者が最適な制御規則を設計せずに制御器が適応的に制御規則を発見する状況においても、多自由度システムに対する制御則を高速に学習できる制御装置を提供できる。
【００７６】
なお、本実施の形態における制御装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、制御対象の装置である被制御装置の状態を観測し、２以上の第一種パラメータを取得する観測ステップと、前記観測ステップで取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出ステップと、前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御ステップを実行させるためのプログラムであり、前記第二種パラメータが可変な変数を有し、前記特徴抽出ステップは、前記観測ステップで取得した２以上の第一種パラメータに基づいて２以上の第二種パラメータを取得し、かつ、前記第二種パラメータが有する変数を、前記制御ステップにおける制御結果または／および制御部の内部状態に応じて変更する変換サブステップと、前記変換サブステップで取得した２以上の第二種パラメータから１以上の第二種パラメータを選択する選択サブステップを具備するプログラムである。
（実施の形態４）
図１４は、制御装置および当該制御装置の制御対象の装置である被制御装置を有する制御システムのブロック図である。制御システムは、制御装置１４１および被制御装置１２を具備する。
【００７７】
制御装置１４１は、観測部４１０１、特徴抽出部１４１０２、制御部４１０３、選択情報受付部４１０４、長期観測部１４１０５を具備する。特徴抽出部１４１０２は、変換手段１４１０２１、選択手段１４１０２２を具備する。また、制御装置１４１は、被制御装置１２の内部に存在していても良い。
【００７８】
長期観測部１４１０５は、観測部４１０１が取得した第一種パラメータまたは／および制御部４１０３の制御結果を取得し、かかる取得した情報を２以上蓄積する。また、長期観測部１４１０５は、かかる蓄積した情報に基づいて、変換手段１４１０２１または／および選択手段１４１０２２に与える情報を生成し、当該生成した情報を変換手段１４１０２１または／および選択手段１４１０２２に与える。なお、長期観測部１４１０５が生成した情報は、蓄積した情報と同一の情報でも良い。
【００７９】
変換手段１４１０２１は、観測部４１０１が取得した２以上の第一種パラメータ、および長期観測部１４１０５が蓄積した情報または当該情報に基づいて生成された情報を用いて、２以上の第二種パラメータを取得する。
【００８０】
選択手段１４１０２２は、変換手段１４１０２１が取得した２以上の第二種パラメータから、長期観測部１４１０５が蓄積した情報または当該情報に基づいて生成された情報を用いて、１以上の第二種パラメータを選択する。
【００８１】
特徴抽出部１４１０２、長期観測部１４１０５、変換手段１４１０２１、および選択手段１４１０２２は、通常、ＭＰＵやメモリ等から実現され得る。特徴抽出部１４１０２、長期観測部１４１０５、変換手段１４１０２１、および選択手段１４１０２２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
以下、本制御システムにおける制御装置１４１の動作について図１５のフローチャートを用いて説明する。
【００８２】
（ステップＳ１５０１）観測部１１０１は、被制御装置１２の状態を観測し、２以上の第一種パラメータを取得したか否かを判断する。２以上の第一種パラメータを取得すればステップＳ１５０２に行き、２以上の第一種パラメータを取得しなければステップＳ１５０１に戻る。
（ステップＳ１５０２）特徴抽出部１４１０２の変換手段１４１０２１は、長期観測部１４１０５からパラメータ変換に使用する情報を取得する。
【００８３】
（ステップＳ１５０３）変換手段１４１０２１は、ステップＳ１５０１で取得した２以上の第一種パラメータ、およびステップＳ１５０２で取得した情報に基づいて１以上の第二種パラメータを取得する。ここで、第二種パラメータの数は、第一種パラメータの数より多くても良いし、同じでも良い。
（ステップＳ１５０４）特徴抽出部１４１０２の選択手段１４１０２２は、長期観測部１４１０５からパラメータ選択に使用する情報を取得する。
【００８４】
（ステップＳ１５０５）選択手段１４１０２２は、ステップＳ１５０４で取得した情報に基づいて、ステップＳ１５０３で取得した１以上の第二種パラメータから１以上の第二種パラメータを選択する。ここで選択された第二種パラメータの数は、第一種パラメータの数より、大幅に減少していることが好適である。例えば、第一種パラメータの数が２４００以上であり、選択された第二種パラメータの数が３であることは好適である。
（ステップＳ１５０６）制御手段４１０３２は、ステップＳ１５０５で選択された第二種パラメータに基づいて、制御信号を構成する。具体的な制御信号の構成方法については後述する。
（ステップＳ１５０７）制御手段４１０３２は、ステップＳ１５０７で構成した制御信号を被制御装置１２に与え、被制御装置１２を制御する。
（ステップＳ１５０８）評価手段４１０３１はステップＳ５０３で選択された第二種パラメータ（または，それに加えて制御手段の出力する制御信号）に基づいて、制御手段による制御規則に対する評価を出力する。
（ステップＳ１５０９）制御手段４１０３２は、ステップＳ５０３で選択された第二種パラメータとステップＳ５０７で評価手段４１０３１が出力した評価に基づいて、制御信号を構成するための制御規則を変更（学習）する。
（ステップＳ１５１０）長期観測部１４１０５は、ステップＳ１５０１で取得した第一種パラメータと数式３におけるｒを取得する。
（ステップＳ１５１１）長期観測部１４１０５は、ステップＳ１５１０で取得した情報を蓄積する。
【００８５】
（ステップＳ１５１２）長期観測部１４１０５は、蓄積した情報（１以上の情報）に基づいて、パラメータ変換または／およびパラメータ選択に用いる情報を生成する。具体的な情報の生成方法については、後述する。ステップＳ１５０１に戻る。
なお、図１５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における制御システムの具体的な動作について説明する。今、被制御装置１２は、例えば、図３に示すヘビ型ロボットである。
また、例えば、上記のｓ１，ｓ２，ｓ３以外の第二種パラメータとして以下のｓ４（数式２３）、ｓ５（数式２４）を用意する。
【数２３】
2006085284.tif 000025
【数２４】
2006085284.tif 000026
そして、以下の図１６に示すフローチャートに示す動作により、制御装置１２１は動作する。
【００８６】
（ステップＳ１６０１）選択情報受付部４１０４が各種の初期値の入力を受け付ける。具体的には、選択情報受付部４１０４は、ｓ１からｓ５の内から３個選択するための情報を受け付ける。なお、３個の第二種パラメータの集合をＳとする。そして、選択情報受付部４１０４は、ｎの値「１」を受け付ける。また、選択情報受付部４１０４は、適切なＴを受け付ける。
【００８７】
（ステップＳ１６０２）以下、集合（ｓ１，ｓ２，ｓ３）の代わりに集合Ｓを用いて，実施の形態２と同様の手順で制御を行う。つまり、まず、制御手段４１０３２と評価手段４１０３１のパラメータθｉ（方策パラメータ）とｄｉの初期値を決める。それらのパラメータ学習のための補助パラメータΘｉとＤｉを０に設定する。また，ｔを０に設定する。
（ステップＳ１６０３）観測部４１０１が被制御装置１２と制御部４１０３を観測し、第一種パラメータＸ（ｔ）を出力する。
【００８８】
（ステップＳ１６０４）特徴抽出部４１０２が第一種パラメータＸ（ｔ）を取得し，変換手段４１０２１により第二種パラメータに変換し，選択手段４１０２２により集合Ｓを選択し，制御部４１０３に出力する。同時に制御部４１０３が数式３で計算されるｒ（ｔ）を取得する。
（ステップＳ１６０５）制御手段４１０３２は、Ｓを取得し，制御信号を生成する。
（ステップＳ１６０６）制御部４１０３の学習サブルーチン（図９）を実行する。
（ステップＳ１６０７）被制御装置１２がステップＳ１３０５で生成された制御信号により制御される。
（ステップＳ１６０８）変換手段１４１０２１は、ｔ＝Ｔであるか否かを判断し、ｔ＝Ｔであれば、ステップＳ１６０９に行く。ｔ＝ＴでなければステップＳ１６０３に行く。
（ステップＳ１６０９）長期観測部１４１０５は，０からＴ秒までの各時刻における数式２５に示す報酬の和を算出し、記録する。
【数２５】
2006085284.tif 000027
なお、この報酬の和の値をＦ（ｎ）とする。
（ステップＳ１６１０）長期観測部１４１０５は、ｎ＝１であるか否かを判断する。ｎ＝１ならばステップＳ１６１１に行き、ｎ＝１でなければステップＳ１６１２に行く。
（ステップＳ１６１１）長期観測部１４１０５は、Ｆｍａｘ＝Ｆ（１）を保存する。長期観測部１４１０５はＳｍａｘ＝Ｓを保存してステップＳ１６１２に行く。
（ステップＳ１６１２）長期観測部１４１０５は、Ｓｍａｘの要素をひとつ入れ替えた集合Ｓを生成する。
（ステップＳ１６１３）ｎを１、インクリメントする。ステップＳ１６０２に戻る。
（ステップＳ１６１４）長期観測部１４１０５は、Ｆ（ｎ）>Ｆであるか否かを判断する。Ｆ（ｎ）>ＦならばステップＳ１６１５に行き、Ｆ（ｎ）>ＦでなければステップＳ１６１２に行く。
（ステップＳ１６１５）長期観測部１４１０５はＦｍａｘ＝Ｆ（ｎ），選択情報受付部はＳｍａｘ＝Ｓを保存する。ステップＳ１６１２に行く。
なお、公知技術である遺伝的アルゴリズムなどの探索手法を用いて，Ｓの探索を実現しても良い。
【００８９】
以上、本実施の形態によれば、制御装置は観測した多数のパラメータを圧縮して、高速に被制御装置に対する制御を行う、あるいはそのための制御則を学習できる。また、所定時間以上の観測結果を加味した好適な制御が可能である。さらに、本実施の形態によれば、設計者が最適な制御規則を設計せずに制御器が適応的に制御規則を発見する状況においても、多自由度システムに対する制御則を高速に学習できる制御装置を提供できる。
【００９０】
さらに、本実施の形態における制御装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、被制御装置の状態および制御部の内部状態を観測し、２以上の第一種パラメータを取得する観測ステップと、
前記観測ステップで取得した２以上の第一種パラメータに基づいて、当該第一種パラメータより少ない数の第二種パラメータを取得する特徴抽出ステップと、前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置を制御する制御ステップと、前記観測ステップで取得した第一種パラメータまたは／および前記制御ステップの制御結果を取得し、かかる取得した情報を２以上蓄積する長期観測ステップを実行させるためのプログラムであり、前記特徴抽出ステップは、前記観測ステップで取得した２以上の第一種パラメータと、前記長期観測ステップで蓄積した情報または当該情報に基づいて生成された情報に基づいて２以上の第二種パラメータを取得する変換サブステップと、
前記変換サブステップで取得した２以上の第二種パラメータから、前記長期観測ステップで蓄積した情報または当該情報に基づいて生成された情報を用いて、１以上の第二種パラメータを選択する選択サブステップを具備し、前記制御ステップは、前記特徴抽出ステップで取得した１以上の第二種パラメータに基づいて、前記被制御装置の被制御についての状況の評価を行い、評価の良し悪しを示す情報を出力する評価サブステップと、前記評価サブステップで出力した評価の良し悪しを示す情報に基づいて、前記被制御装置を制御する制御サブステップを具備するプログラム、である。
なお、上述したすべてのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【００９１】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【００９２】
以上のように、本発明にかかる制御装置は、ロボット等の多自由度システムに対して、自由度に比べて少ない制御パラメータに基づいた効率の良い制御が可能であるという効果を有し、多自由度システムを制御する制御装置等として有用である。
【図面の簡単な説明】
【００９３】
【図１】実施の形態１における制御システムのブロック図
【図２】同制御装置の動作について説明するフローチャート
【図３】同ヘビ型ロボットを示す図
【図４】実施の形態２における制御システムのブロック図
【図５】同制御装置の動作について説明するフローチャート
【図６】同神経節を示す図
【図７】同神経振動子ネットワークを示す図
【図８】同制御装置の動作について説明するフローチャート
【図９】同制御装置の動作について説明するフローチャート
【図１０】同実験結果を示す図
【図１１】同実験結果を示す図
【図１２】実施の形態３における制御システムのブロック図
【図１３】同変換手段の動作について説明するフローチャート
【図１４】実施の形態４における制御システムのブロック図
【図１５】同制御装置の動作について説明するフローチャート
【図１６】同制御装置の動作について説明するフローチャート
【符号の説明】
【００９４】
１１、４１、１２１，１４１  制御装置
１２  被制御装置
１１０１、４１０１  観測部
１１０２、４１０２、１２１０２、１４１０２  特徴抽出部
１１０３、４１０３  制御部
４１０４  選択情報受付部
１１０２１、４１０２１、１２１０２１、１４１０２１  変換手段
１４１０５  長期観測部
４１０２２、１４１０２２  選択手段
４１０３１  評価手段
４１０３２  制御手段
【図１】
2006085284.tif 000028
【図２】
2006085284.tif 000029
【図３】
2006085284.tif 000030
【図４】
2006085284.tif 000031
【図５】
2006085284.tif 000032
【図６】
2006085284.tif 000033
【図７】
2006085284.tif 000034
【図８】
2006085284.tif 000035
【図９】
2006085284.tif 000036
【図１０】
2006085284.tif 000037
【図１１】
2006085284.tif 000038
【図１２】
2006085284.tif 000039
【図１３】
2006085284.tif 000040
【図１４】
2006085284.tif 000041
【図１５】
2006085284.tif 000042
【図１６】
2006085284.tif 000043