(57)【要約】【課題】自律学習エージェントにおいて、制御器のモジュール化・階層化の設計を自動化する。【解決手段】  ステップＳ１で予測器学習部は、学習により関数からなる予測器に相当する微分方程式を取得する。ステップＳ２で変数グループ生成部は、取得された微分方程式に基づき、変数をグループ化する。ステップＳ３で行動変数決定部は、各変数グループにそれぞれ対応する行動変数を決定する。ステップＳ４で状態変数決定部は、各変数グループにそれぞれ対応する状態変数を決定して、行動変数とともに階層化部に出力する。ステップＳ５で階層化部は、変数グループと行動変数の組み合わせに対応する制御器を生成し、生成した制御器を階層化する。本発明は、自律エージェントに適用できる。【選択図】図１０
2006268813.tif 000002
【特許請求の範囲】
【請求項１】
１以上の変数を入力として１以上の値を出力する多入力多出力の関数から成る機能モジュールによって構成された自律エージェントの学習制御装置において、
前記１以上の変数の因果関係を推定する推定手段と、
推定された前記因果関係に基づき、前記１以上の変数を変数グループに分類する分類手段と、
分類された各変数グループに対応する行動変数を決定する第１の決定手段と、
前記変数グループに分類された変数を入力として前記行動変数を出力する各変数グループにそれぞれ対応する前記関数を、前記変数グループ、および前記行動変数に基づいて階層化する階層化手段と
を含むことを特徴とする学習制御装置。
【請求項２】
分類された各変数グループに対応する状態変数を決定する第２の決定手段を
さらに含むことを特徴とする請求項１に記載の学習制御装置。
【請求項３】
１以上の変数を入力として１以上の値を出力する多入力多出力の関数から成る機能モジュールによって構成された自律エージェントの学習制御方法において、
前記１以上の変数の因果関係を推定する推定ステップと、
推定された前記因果関係に基づき、前記１以上の変数を変数グループに分類する分類ステップと、
分類された各変数グループに対応する行動変数を決定する決定ステップと、
前記変数グループに分類された変数を入力として前記行動変数を出力する各変数グループにそれぞれ対応する前記関数を、前記変数グループ、および前記行動変数に基づいて階層化する階層化ステップと
を含むことを特徴とする学習制御方法。
【請求項４】
１以上の変数を入力として１以上の値を出力する多入力多出力の関数から成る機能モジュールによって構成された自律エージェントの学習を制御するためのプログラムであって、
前記１以上の変数の因果関係を推定する推定ステップと、
推定された前記因果関係に基づき、前記１以上の変数を変数グループに分類する分類ステップと、
分類された各変数グループに対応する行動変数を決定する決定ステップと、
前記変数グループに分類された変数を入力として前記行動変数を出力する各変数グループにそれぞれ対応する前記関数を、前記変数グループ、および前記行動変数に基づいて階層化する階層化ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習制御装置、学習制御方法、およびプログラムに関し、特に、多次元の変数（センサ入力、内部状態、およびモータ出力等）からなる自律学習エージェントにおいて、予測器の学習を元に変数間の因果関係を推定し、推定した因果関係に基づき、制御器の数・機能・入出力変数を自動的に決定し、制御器のモジュール化・階層化の設計を自動化するようにした学習制御装置、学習制御方法、およびプログラムに関する。
【背景技術】
【０００２】
（Ａ）  非特許文献１に記載されている強化学習型の自律エージェント構成手法や非特許文献２に記載されている経験強化型の自律エージェント構成手法においては、学習器の入出力変数が、解くべきタスクや期待する動作を考慮した人間によって選択されていた。
【０００３】
一方、多自由度の自律エージェントを考えると、設計時にタスクを決定して入出力変数を決めることは、自律エージェントの学習可能な能力を設計時に限定することになってしまう。このことから、従来手法はOpen-endedな自律エージェントの構築において決定的な問題をはらんでいるといえる。
【０００４】
（Ｂ）  （Ａ）の問題点を解消するために、考えられる全てのセンサ・モータ変数を入出力として用いると、個々の特定のタスクや期待する動作の性能に影響を与えてしまうという問題が生じる。これは、機械学習の世界では次元の呪いとして広く知られている問題である（例えば、非特許文献３参照）。
【０００５】
（Ｃ）  （Ｂ）の問題点を解決する為に、自立エージェントを複数の機能モジュールに分割して学習することを考える。この場合、単体の機能モジュールとして学習していたときには存在しなかった新たな２つの問題が発生する。
【０００６】
１つは、各機能モジュールの個数と各機能モジュールの自由度（１つのモジュールがどこまで複雑な構造を持ちうるかを決定する量）をどのように決定するか、という問題である。もう１つは、各機能モジュール間の結合をどのように決定するか、という問題である。
【０００７】
（Ｄ）  特許文献１に記載されているMOSAICは、機能のモジュール化という点で興味深いアプローチであるが、各モジュールは与えられた全ての変数を入出力として扱うことになり、結局は（Ｃ）で提示された問題に対しての解決策になっていない。解決するためには、各機能モジュール間の個々の機能と結合関係を事前に人間が設計する必要が生じる。この点に関して言えばMOSAICは従来型の自律エージェントに対しする設計アプローチと同じである。
【０００８】
【特許文献１】特開２０００−３５８０４号公報
【非特許文献１】Richard S.Sutton,Andrew G.Barto,“Reinforcement Learning：An Introduction,”MIT Press,1998
【非特許文献２】Jun Tani：“Learning to generate articulated behavior through the bottom-up and the top-down interaction processes”,Neural Networks,Vol.16,No.1,pp.11-23,2003.
【非特許文献３】Bellman, R.E.“Dynamic Programming.”Princeton University Press,Princeton.6：679-684.
【非特許文献４】多賀源太郎著、「脳と身体の動的デザイン  運動・知覚の非線形力学と発達」金子書房、2002
【発明の開示】
【発明が解決しようとする課題】
【０００９】
（Ｄ）の問題を計決する為に、機能モジュールの機能と、その結合関係を自動的に学習することを考える。この場合、モジュールの数や個々のモジュールの複雑度を決める方法が自明ではなく、未だ人間の設計する余地が残っている。また、実際にこの手法を用いて複数のタスクや複数の期待する動作が非破壊的に追加学習されている事例は皆無である、という課題があった。
【００１０】
また、脳科学・神経科学・心理学では、ヒトは機能のモジュール性(局在性)を有していると言われている。同様に、人工的な自律エージェントの学習にも何らかのモジュール性・階層性を導入すると良い、という議論は多くされているが、実際にそれらモジュールや階層間の結合・統合を行なう決定的な手法は確立されていない（非特許文献４参照）、という課題があった。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、多次元の変数（センサ入力、内部状態、およびモータ出力等）からなる自律学習エージェントにおいて、予測器の学習を元に変数間の因果関係を推定し、推定した因果関係に基づき、制御器の数・機能・入出力変数を自動的に決定し、制御器のモジュール化・階層化の設計を自動化できるようにするものである。
【課題を解決するための手段】
【００１２】
請求項１に記載の学習制御装置は、１以上の変数の因果関係を推定する推定手段と、推定された因果関係に基づき、１以上の変数を変数グループに分類する分類手段と、分類された各変数グループに対応する行動変数を決定する第１の決定手段と、変数グループに分類された変数を入力として行動変数を出力する各変数グループにそれぞれ対応する関数を、変数グループ、および行動変数に基づいて階層化する階層化手段とを含むことを特徴とする。
【００１３】
請求項２に記載の学習制御装置は、分類された各変数グループに対応する状態変数を決定する第２の決定手段をさらに含むことができる。
【００１４】
請求項３に記載の学習制御方法は、１以上の変数の因果関係を推定する推定ステップと、推定された因果関係に基づき、１以上の変数を変数グループに分類する分類ステップと、分類された各変数グループに対応する行動変数を決定する決定ステップと、変数グループに分類された変数を入力として行動変数を出力する各変数グループにそれぞれ対応する関数を、変数グループ、および行動変数に基づいて階層化する階層化ステップとを含むことを特徴とする。
【００１５】
請求項４に記載のプログラムは、１以上の変数の因果関係を推定する推定ステップと、推定された因果関係に基づき、１以上の変数を変数グループに分類する分類ステップと、分類された各変数グループに対応する行動変数を決定する第１の決定ステップと、変数グループに分類された変数を入力として行動変数を出力する各変数グループにそれぞれ対応する関数を、変数グループ、および行動変数に基づいて階層化する階層化ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００１６】
本発明においては、１以上の変数の因果関係が推定され、推定された因果関係に基づき、１以上の変数が変数グループに分類され、各変数グループに対応する行動変数が決定され、変数グループに分類された変数を入力として行動変数を出力する各変数グループにそれぞれ対応する関数が、変数グループ、および行動変数に基づいて階層化される。
【発明の効果】
【００１７】
本発明によれば、多次元の変数（センサ入力、内部状態、およびモータ出力等）からなる自律学習エージェントにおいて、予測器の学習を元に変数間の因果関係を推定し、推定した因果関係に基づき、制御器の数・機能・入出力変数を自動的に決定し、制御器のモジュール化・階層化の設計を自動化することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１９】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００２０】
請求項１に記載の学習制御装置（例えば、図３の自律制御部３６）は、１以上の変数の因果関係を推定する推定手段（例えば、図３の予測器学習部４１）と、推定された因果関係に基づき、１以上の変数を変数グループに分類する分類手段（例えば、図３の変数グループ生成部４２）と、分類された各変数グループに対応する行動変数を決定する第１の決定手段（例えば、図３の行動変数決定部４３）と、変数グループに分類された変数を入力として行動変数を出力する各変数グループにそれぞれ対応する関数を、変数グループ、および行動変数に基づいて階層化する階層化手段（例えば、図３の階層化部４５）とを含む。
【００２１】
請求項２に記載の学習制御装置は、分類された各変数グループに対応する状態変数を決定する第２の決定手段（例えば、図３の状態変数決定部４４）をさらに含む。
【００２２】
請求項３に記載の学習制御方法は、１以上の変数の因果関係を推定する推定ステップ（例えば、図１０のステップＳ１）と、推定された因果関係に基づき、１以上の変数を変数グループに分類する分類ステップ（例えば、図１０のステップＳ２）と、分類された各変数グループに対応する行動変数を決定する第１の決定ステップ（例えば、図１０のステップＳ３）と、変数グループに分類された変数を入力として行動変数を出力する各変数グループにそれぞれ対応する関数を、変数グループ、および行動変数に基づいて階層化する階層化ステップ（例えば、図１０のステップＳ５）とを含む。
【００２３】
なお、本発明のプログラムの請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係は、上述した本発明の学習制御方法のものと同様であるので、その記載は省略する。
【００２４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２５】
図１は、本発明を適用した自律エージェントの構成例を示している。この自律エージェント１は、１つの関節を有し、当該関節にトルクτを掛けることで回転するリンク１１から成る単純なロボットである。この自律エージェント１は、リンク１１の角度θおよび角速度ωを検出して入力とし、関節に与えるトルクτを出力する。自律エージェント１が存在する環境には重力（θ＝０となる方向）も存在し、発生可能なトルクτは重力に比べて小さいので、仮に一定方向に最大トルクτmaxを発生させても自律エージェント１自身が持ち上げられたり、移動されたりすることはない。
【００２６】
さらに、自律エージェント１は、図２に示すように、内部状態を示す変数としてエネルギＥおよび乳酸Ｌを有している。エネルギＥは、発生したトルクτに比例して消費（減少）する。そして、自律エージェント１の餌２１が想定された所定の位置θEにリンク１１が到達すると、エネルギＥが所定の値だけ増加する。乳酸Ｌは、消費されたエネルギＥに比例して増加し、定常的に僅かずつ分解されて減少する。自律エージェント１は、エネルギＥが無くなる、または乳酸Ｌが最大値ＬMAXに達すると、トルクτを発生することができなくなる。
【００２７】
図３は、自律エージェント１の内部の構成例を示している。
【００２８】
トルク発生部３１はモータ等から成り、トルクτを発生してリンク１１を移動させる。また、発生したトルクτを自律制御部３６に通知する。角度検出部３２はリンク１１が垂線と成す角度θを検出して自律制御部３６に通知する。角速度検出部３３はリンク１１の角速度ωを検出して自律制御部３６に通知する。エネルギ設定部３４は、トルク発生部３１が発生したトルクτに基づいてエネルギＥを減少させ、角度検出部３２によって検出される角度θに基づいてエネルギＥを増加させる。乳酸設定部３５は、トルク発生部３１が発生したトルクτに対応して消費（減少）されたエネルギＥに基づいて乳酸Ｌを増加させ、所定の周期で乳酸Ｌを減少させる。また現在のエネルギＥを自律制御部３６に通知する。
【００２９】
自律制御部３６の予測器学習部４１は、変数（θ，ω，Ｅ，Ｌ，τ）のそれぞれについて学習により、後述する微分方程式（１）を取得して変数グループ生成部４２、行動変数決定部４３、および状態変数決定部４４に出力する。変数グループ生成部４２は、予測器学習部４１によって取得された微分方程式（１）に基づき、変数（θ，ω，Ｅ，Ｌ，τ）のうちで相互に原因となっている変数をグループ化して、変数グループを行動変数決定部４３および状態変数決定部４４に出力する。行動変数決定部４３は、予測器学習部４１によって取得された微分方程式（１）、および変数グループ生成部４２から入力される変数グループに基づき、各変数グループに対する行動変数を決定して状態変数決定部４４に出力する。状態変数決定部４４は、予測器学習部４１によって取得された微分方程式（１）、変数グループ生成部４２から入力される変数グループ、および行動変数決定部４３によって決定された行動変数に基づき、各変数グループに対する状態変数を決定して、行動変数とともに階層化部４５に出力する。階層化部４５は、変数グループの行動変数および状態変数に基づき、変数グループと行動変数の組み合わせに対応する制御器を生成し、生成した制御器を階層化する。
【００３０】
次に、自律エージェント１の力学モデルに適用される微分方程式（１）を示す。ただし、各関数ｆの具体的な中身についてはここで問題としない。
【数１】
2006268813.tif 000003
…（１）
【００３１】
また、自律エージェント１の力学モデルは、現在時刻ｔ、および微小時間Δｔを用いた次式（２）に示す差分方程式によっても表すことができる。
【数２】
2006268813.tif 000004
…（２）
【００３２】
図４は、自律エージェント１の力学モデルを因果ダイアグラムで表したものである。
【００３３】
なお、式（１）に示された微分方程式よりも式（２）に示された差分方程式による定式化の方がコンピュータを適用した実装を考えると実用的であるが、簡便性を考慮して、以下、微分方程式（１）を用いて説明する。もちろん、微分方程式（１）を差分方程式（２）に置き換えることも可能である。また、以下、微分方程式（１）に含まれる関数ｆを適宜「予測器」と称する。
【００３４】
因果関係の推定と予測器の学習
予測器学習部４１においては、上記力学モデルの差分方程式（２）や図４に示された因果ダイアグラムは未知のものとして、上記差分方程式を近似的に復元する。この処理は、変数間の定性的な因果関係を発見する第１の処理（因果ダイアグラムの復元）と、その後に定量的な関係を近似的に学習する第２の処理（上記関数ｆの構造を復元）からなる。このときに手がかりとして与えられる情報は、全ての変数（θ，ω，Ｅ，Ｌ，τ）の時系列値である。
【００３５】
当該第１の処理は、人間がある対象の変動を予測しようとしたときに、その対象が何を原因に変動しているのかを突き止めようとすることに相当する。実際に人間の場合、無限に考えられる世界の構成要素の中からいくつかの事象を取り上げ、予測対象の原因として理解（発見）することができる。このとき用いることができる情報は、環境を観察することで得られる事象（変数）の時系列情報である。
【００３６】
ところで、従来の機械学習では因果関係に関する情報を明に用いていなかったため、次式（３）に示されるように、全ての変数を予測器の入力として取り扱うような方法が用いられてきた。
【数３】
2006268813.tif 000005
…（３）
【００３７】
上述した従来の方法を採用すると、変数の数が増えるにしたがって学習に必要な訓練サンプル（変数の時系列値）の数が増大し、実質的に学習が困難か不可能な状態（いわゆる「次元の呪い」と称される状態）に陥ってしまう。
【００３８】
そこで予測器学習部４１においては、関数ｆの入力になる変数を取捨選択するようになされている。このための１つの方法として、入力となる変数の組み合わせを仮説として複数生成し、その中から最も予測誤差の少ない仮説を選択する方法を考える。例えば、角度θを予測する仮説の関数ｆθとして、次式（４）に示す関数ｆθが考えられる。
【数４】
2006268813.tif 000006
…（４）
【００３９】
式（４）は考えられる仮説の関数ｆθの一部である。
【００４０】
入力変数を１つも取らない関数ｆθ（・）から全ての変数を入力とする関数ｆθ（θ，ω，Ｅ，Ｌ，τ）ものまで、全ての組み合わせを数え上げると、いまの場合、変数の数が５であるため、１２１（＝５×４×３×２＋１）通りの組み合わせが考えられる。このままでは、変数の数が増えるに従って組み合わせの数が爆発的に増加してしまうため、組み合わせ数の上限を決めたりするなどの工夫が必要となる。
【００４１】
当該第２の処理においては、仮説の関数ｆを決定した後、これら仮説の関数ｆに対して同一の訓練サンプル（環境を観察することで得られる事象（変数）の時系列情報）を与えて関数近似を行う。
【００４２】
関数近似の方法にはどのような方法を使ってもかまわない。例えば、Support Vector Regression（以下、SVRと略記する）を用いて学習を行う。SVRは、常に大域解が得られることが保障されており、一般的によく用いられている誤差逆伝播法に基づいたニューラルネットワークよりも安心して利用できる点が強みである。
【００４３】
SVRを利用した学習によって、各仮説ごとに関数ｆの構造が求められる。次に、各仮説がどれだけ良い予測結果を出力できるかを検証するために、訓練サンプルとは異なる評価サンプルを用いて評価する。この手法は学習器の予測性能に対応する凡化誤差を求める手法であり、cross validationと称される。ここでは他のどのような評価基準を用いてもよいが、訓練誤差ではなく凡化誤差を求める種類の手法でなければならない。最も評価の高い仮説が選択されると、学習が成功している場合、式（１）を得ることができる。
【００４４】
以上に説明した処理を用いて、力学モデルの近似学習を行うことが可能である。以下では、各変数がどの変数を原因変数とすることで予測可能であるか、という情報（因果関係）が重要となる。
【００４５】
直接介入・間接介入と制御器
ある変数の値を任意の値に変化させたいとする。しかしながら、その変数を直接変化させることができないならば、当該変数以外の変数を変化させることによって、間接的に当該変数を変化させることを考える。例えば、人間は念じるだけでは物（例えば椅子など）の位置を変化させることはできないが、例えば自分の筋肉を収縮させて自分の体を操り、最終的に物の位置を変化させることと同様である。
【００４６】
上述した自律エージェント１に当てはめて考える。自律エージェント１はエネルギＥが減少してしまったとしても、直接的にエネルギを増加させることはできない。これに対して、トルクτは直接操作可能な変数である。よって、トルクτを変化させることにより間接的にエネルギＥの値を増加させることが可能である。このような変数間の因果関係を利用して動作を行う機能モジュールのことを、以後「制御器」と称する。
【００４７】
制御器の構成
制御器は、予測器と同様に関数で表される。制御対象の変数をｘ、状態変数をｓ、介入に用いる変数（行動変数）をａとした場合、制御器（関数）ｇxは次式（５）に示されるとおりとなる。
ａ＝ｇx（ｘ，ｓ）                                                    …（５）
【００４８】
放棄
なお、式（５）では、ｘ，ｓ，ａを変数として表記したが、実際には変数の集合であってベクトルであると解釈すればよい。すなわち、ｘは１以上、ｓは０以上、ａは１以上の要素を持つベクトルである。要素の数が０のときは変数を取らず、１のときは単一変数（スカラー）である。
【００４９】
また、ある変数を制御する制御器を作る場合、各ｘ，ｓ，ａにどの変数を対応付ければよいのかを決めなければならないが、何も考慮せずに全ての変数を対応させると上述した「次元の呪い」の問題に再び陥ってしまうので配慮が必要である。
【００５０】
変数のグループ化と制御対象変数
複数の変数が、相互に変化の原因となっている場合（すなわち、相互に原因変数となっている場合）、それらの変数は本質的に１つの事象を複数の変数で表現していると捉えることができる。この場合、その中でどれか１つの変数を変化させようとしてもうまく行かず、相互に原因変数となっている変数群をまとめて制御対象とすることが必要になる。以下、このような相互に原因変数となっている変数の集合を変数グループと称する。変数グループｘn（ｎ＝１，２，…，Ｎ）は、図５に示すアルゴリズムを用いて生成される。なお、相互に変化の原因となっていない変数も、その変数１つだけで構成される変数グループとみなすことにする。
【００５１】
上述した自律エージェント１においては、角度θと角速度ωが相互に原因変数となっている。そのため、角度θだけ、もしくは角速度ωだけを制御しようとしても、うまく制御できる制御器は学習できない。角度θと角速度ωを単一の変数グループとして、それぞれを同時に制御するθω制御器を考える必要がある。
【００５２】
変数のグループ化により、上述した変数ｘ，ｓ，ａのうちの制御対象の変数ｘが決定される。自律エージェント１においては、次式（６）に示される３つの制御対象変数グループｘ1，ｘ2，ｘ3が決定される。
ｘ1＝｛θ，ω｝
ｘ2＝｛Ｅ｝
ｘ3＝｛Ｌ｝
…（６）
【００５３】
図６は変数をグループ化した後の因果ダイアグラムである。
【００５４】
行動変数
上述したように制御対象の変数グループを決定した後、各変数グループに対して制御器を構成する。そこで、それら制御器ｇxの出力となる行動変数を考える。行動変数となり得る変数は、制御が可能な変数のみである。制御が可能な変数は２種類あり、１つは直接介入による制御が可能な生まれつきの行動変数、もう１つは制御器の学習によって間接介入による制御が可能になった変数である。
【００５５】
それら候補となる行動変数からどの組み合わせを選択するかについての自由度が残っている。ここでは、全ての変数の組み合わせを仮説として同時に生成する。それら全てを学習し、実際の行動時にはそのうちどれかを自由に選択して利用できるようにする。これは一見冗長で不要な自由度に思えるが、例えばプランニングアルゴリズムＡ*における行動選択を、この制御器の仮説の選択としてとらえることで、有用な自由度としてとらえ直すことができる。
【００５６】
具体的には、各変数グループに属する制御対象変数の原因変数を、学習された予測器から取得して原因変数集合を生成する。次に原因変数集合から制御対象変数が除外され、原因変数集合に残ったものが行動変数とされる。ただし、行動変数が変数グループに属している場合、当該変数グループに属する全ての変数が行動変数とされる。
【００５７】
例えば、変数グループ｛θ，ω｝に対しては、変数グループに属する制御対象変数θの原因変数｛θ，ω，τ｝と、制御対象変数ωの原因変数｛θ，ω，τ｝が取得され、原因変数集合｛θ，ω，τ｝が生成される。そして、原因変数集合｛θ，ω，τ｝から制御対象変数θ，ωが除外されて、残った変数τが行動変数とされる。
【００５８】
また例えば、変数グループ｛Ｅ｝に対しては、変数グループに属する制御対象変数Ｅの原因変数｛θ，τ｝が取得されて原因変数集合｛θ，τ｝が生成される。そして、原因変数集合｛θ，τ｝から制御対象変数Ｅが除外されて（実際、原因変数集合｛θ，τ｝に制御対象変数Ｅは含まれていないが）、残った変数θ，τが行動変数とされる。ただし、変数θは変数グループ｛θ，ω｝に属しているので、変数グループ｛θ，ω｝が行動変数とされる。
【００５９】
さらに例えば、変数グループ｛Ｌ｝に対しては、変数グループに属する制御対象変数Ｌの原因変数τが取得されて原因変数集合｛τ｝が生成される。そして、原因変数集合｛τ｝から制御対象変数Ｌが除外されて（実際、原因変数集合｛τ｝に制御対象変数Ｌは含まれていないが）、残った変数τが行動変数とされる。
【００６０】
上述した自律エージェント１の行動変数を図７に示す。
【００６１】
状態変数
制御対象の変数グループに対する行動変数を決定した後、それらに対応する状態変数を決定する。具体的には、原因変数グループから直接介入可能な行動変数を除外したものを状態変数とする。ただし、状態変数が変数グループに属している場合、当該変数グループに属する全ての変数が状態変数とされる。
【００６２】
自律エージェント１の状態変数を図８に示す。
【００６３】
制御器の階層化
トルクτを行動変数としたθω制御器をｇθω,τ、角度θと角速度ωを行動変数にしたＥ制御器をｇE,θωのように、制御器の関数ｇの添え字に制御対象変数と行動変数をカンマで区切って示す表記法を用いると、それらは次式（７）のようになる。ここで、添え字にｄが付いている変数は、観測値を表す変数ではなく、その変数の目標値を表す変数である。間接介入による制御であるため、その値はあくまでも目標値である。ただし、τdは直接介入可能な行動変数であるため、τに読み替えることが可能である。
【数５】
2006268813.tif 000007
…（７）
【００６４】
式（７）の左辺は行動変数であるが、これは階層化を考慮すると下位の階層の目標値に他ならない。この考えを用いて制御器の入出力変数を整理すると、図９に示されるように、複数の制御器ｇの制御対象変数と行動変数とが連結され、全体として制御器ｇの階層化が実現される。すなわち、上位の階層の行動変数が下位の階層の制御対象変数となっている。
【００６５】
以上説明した自律制御部３６による処理を図１０のフローチャートを参照して整理する。すなわち、ステップＳ１において、予測器学習部４１は、変数（θ，ω，Ｅ，Ｌ，τ）のそれぞれについて学習によって微分方程式（１）を取得して変数グループ生成部４２、行動変数決定部４３、および状態変数決定部４４に出力する。ステップＳ２において、変数グループ生成部４２は、予測器学習部４１によって取得された微分方程式（１）に基づき、変数（θ，ω，Ｅ，Ｌ，τ）のうちで相互に原因となっている変数をグループ化して、変数グループを行動変数決定部４３および状態変数決定部４４に出力する。ステップＳ３において、行動変数決定部４３は、予測器学習部４１によって取得された微分方程式（１）、および変数グループ生成部４２によって決定された各変数グループにそれぞれ対応する行動変数を決定して状態変数決定部４４に出力する。
【００６６】
ステップＳ３の処理について、図１１を参照して詳述する。行動変数決定部４３は、ステップＳ１１において、各変数グループに属する制御対象変数の原因変数を、学習された予測器から取得して原因変数集合を生成し、ステップＳ２において、原因変数集合から制御対象変数を除外する。そしてステップＳ３において、原因変数集合に残ったものを行動変数に決定する。ただし、行動変数が変数グループに属している場合、当該変数グループに属する全ての変数を行動変数に決定する。
【００６７】
図１０に戻る。ステップＳ４において状態変数決定部４４は、予測器学習部４１によって取得された微分方程式（１）、変数グループ生成部４２によって決定された変数グループ、および行動変数決定部４３によって決定された行動変数に基づき、各変数グループにそれぞれ対応する状態変数を決定して、行動変数とともに階層化部４５に出力する。ステップＳ５において階層化部４５は、変数グループの行動変数および状態変数に基づき、変数グループと行動変数の組み合わせに対応する制御器を生成し、生成した制御器を階層化する。以上、自律制御部３６による処理の説明を終了する。
【００６８】
本発明の手法を用いない場合
本発明の手法を用いない場合、制御器は次式（８）に示されるとおりであり、これを図示すると図１２に示すとおりとなる。
【数６】
2006268813.tif 000008
…（８）
【００６９】
各制御器の行動変数は直接介入可能なトルクτに限定され、状態変数も、どの変数が必要であり、どの変数が不要であるかを判断できないため、全ての変数を利用することになる。この例では、制御対象変数を｛θ，ω｝とＥとＬの３つに変数グループにグループ化しているが、これは設計者が制御しようとする変数を作りこんでいると仮定している。
【００７０】
式（７）と式（８）を比べると、式（７）は１つの関数に対する入力変数の数が式（８）式に比べて少ないことがわかる。今回の例では顕著な差ではないように見えるが、自律エージェント１を複雑化且つ高機能化すると変数の数が増大するため、そのとき、式（８）の関数は「次元の呪い」の問題により学習が困難になることが予想される。
【００７１】
これに対して本発明を用いれば、予測器が推定する因果関係が疎である限り、制御器の入力は増大することがない。通常はそういった問題を避けるために、それらの関係性を人間が判断して制御器の入出力を作りこむことで解決している。
【００７２】
以上に説明した本発明のポイントと整理すれば以下のとおりとなる。
【００７３】
複数の機能モジュールからなる自律エージェントが、センサや内部状態やモータなどの変数間の因果関係を自動的に推定する。ここでいう因果関係とは、ある変数の未来の値（結果）を予測するためには、他のどの値を参照することが必要（原因）であるか、を示した情報である。結果と原因は、１対ｎ（ｎは０以上の整数）のマップで表現される。
【００７４】
自律学習エージェントが、自動的に推定された因果関係の情報を用いて、機能モジュールの数と、それらの担当する機能との間の統合方法を自動的に決定する。
【００７５】
各機能モジュールは制御器と称され、センサや内部状態などの変数の値を、指示された目的の値（もしくは目的の時系列値）になるように変化させる機能を持っている。制御器は、多入力多出力の関数である。
【００７６】
仮に複数の変数が相互に原因変数になりあっている場合、それら複数の変数を、組み合わさった１つの分離不能な状態を表している変数群（ベクトル）と捉える。これを変数グループとする。さらにこれを一般化し、1個以上の変数を含むグループという意味で、グループ化された変数グループと、他のどの変数ともグループ化されなかった単体の変数を、まとめて変数グループと称する。
【００７７】
制御器の数と機能を自動的に決定する。具体的には、変数グループの数の制御器を生成し、各制御器の機能は、それら変数グループの変数値を、指示された値に変化させることとする。
【００７８】
制御器の出力（制御対象の変数を制御するために変化させる他の変数）を自動的に決定する。具体的には、変数間の因果関係において、制御対象変数の原因となっている変数を、制御器の出力とする。
【００７９】
制御器の入力（制御対象の変数を制御するために参照する必要がある他の変数）を自動的に決定する。具体的には、変数間の因果関係において、制御対象変数の原因となっている変数と、制御対象変数の目標値を表す変数を、制御器の入力とする。
【００８０】
ある変数（結果変数）の未来の値がどの変数（０個以上）を用いて予測可能であるかを発見するために、複数の入力変数（原因変数）の組み合わせを仮定し、それらを学習させる。最も予測誤差の小さくなった仮説をもって、結果変数に対する原因変数を特定したとする。
【００８１】
各予測器は、変数毎に存在する。１つの予測器は、複数の入力変数を現在状態の変数として受け取り、１つの変数値を未来状態として予測する。
【００８２】
以上説明したように、本発明によれば、従来に機械学習においては、設計者である人間が機械に学習させたい問題に応じて、機械内部の機能モジュール間の関連性を設計していた。この作業がなくては現実的に機械が問題を解くことは困難であったが、本発明の適用により、この人間の設計作業を除くことができる。つまり、Open-endedな自律ロボットに必要不可欠な機能である、問題設定の自動化を実現できる。
【００８３】
また本発明によれば、各制御器は変数グループの意味に応じた機能を分担することになり、各制御器毎の学習が相互に独立して可能である。よって、機能毎の追加学習が他の機能を破壊することなく可能となる。人間の設計を排除し、かつ、過去に獲得された行動の破壊を伴わないで、新しい行動を獲得することができる。
【００８４】
また、これまで「脳のバインディング問題」として未解決の問題とされていた、機能モジュール間の結線ルールに関する問題に対して、１つの明確な答えを出すことができる。
【００８５】
さらに、さまざまな分野で大きな問題となっていた「次元の呪い」を自動的に解決する方法として、単純ではあるが重要な基本的検討となり得る。
【００８６】
ところで、上述した自律制御部３６の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図１３に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【００８７】
このパーソナルコンピュータ６０は、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６３にロードされて実行される。
【００９０】
なお、本明細書において、プログラムに基づいて実行されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【００９１】
【図１】自律エージェントの構成例を示す図である。
【図２】自律エージェントの内部状態の一例を示す図である。
【図３】自律エージェントの内部の構成例を示すブロック図である。
【図４】自律エージェントにおける因果ダイアグラムを示す図である。
【図５】変数グループを生成するためのアルゴリズムを示す図である。
【図６】変数をグループ化した後の因果ダイアグラムを示す図である。
【図７】制御対象変数（変数グループ）に対応する行動変数を示す図である。
【図８】制御対象変数（変数グループ）に対応する状態変数を示す図である。
【図９】自律制御部によりモジュール化・階層化された制御器の構成例を示す図である。
【図１０】自律制御部による処理を説明するフローチャートである。
【図１１】図１０のステップＳ３の処理を説明するフローチャートである。
【図１２】従来の制御器の構成例を示す図である。
【図１３】汎用パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【００９２】
１  自律エージェント，  １１  リンク，  ２１  餌，  ３１  トルク発生部,  ３２  角度検出部，  ３３  角速度検出部，  ３４  エネルギ設定部，  ３５  乳酸設定部，  ３６  自律制御部，  ４１  予測器学習部，  ４２  変数グループ生成部，  ４３  行動変数決定部，  ４４  状態変数決定部，  ４５階層化部
【図１】
2006268813.tif 000009
【図２】
2006268813.tif 000010
【図３】
2006268813.tif 000011
【図４】
2006268813.tif 000012
【図５】
2006268813.tif 000013
【図６】
2006268813.tif 000014
【図７】
2006268813.tif 000015
【図８】
2006268813.tif 000016
【図９】
2006268813.tif 000017
【図１０】
2006268813.tif 000018
【図１１】
2006268813.tif 000019
【図１２】
2006268813.tif 000020
【図１３】
2006268813.tif 000021