進化ロボティクス

進化ロボティクス（しんかロボティクス、英: "Evolutionary robotics"、ER）とは、自律型ロボットのコントローラに進化的計算を使うロボティクスの一分野である。進化的計算のように進化的ロボティクスと呼ぶ場合もある。
概要.
進化ロボティクスにおけるアルゴリズムは、初期状態では所定の確率分布に従ったコントローラ候補群を操作することが多い。それに対して適応度関数を繰り返し使うことで徐々に変化していく。進化的計算の主要な技法である遺伝的アルゴリズムの場合、コントローラ候補の個体群は交叉や突然変異といった操作によって成長し、適応度関数によって選別される。コントローラ候補とは具体的にはニューラルネットワークの部分集合の場合もあるし、"IF THEN ELSE" 型の規則群の場合もある。理論的には、コントローラ候補としては任意の制御規則（機械学習ではポリシーと呼ぶ）を形式的に表現したものが考えられる。ニューラルネットワークは進化ロボット工学以外でもロボットの学習機構として使われている。特に他の強化学習の形態をコントローラの学習に使うことができる。
は、進化ロボティクスに関連しているが異なる分野である。進化ロボティクスは多数のロボット群による進化を扱うのに対して、発達ロボティクスは1つのロボットに様々な経験をさせることで制御システムの発達を促す。
歴史.
進化ロボティクスは、1990年代のローマで行われた研究が最初だが、ロボットの制御システムにゲノムと人工進化の考え方を採り入れる研究は1980年代後半に既に行われていた。
進化ロボティクス（Evolutionary robotics）という用語は、1993年、サセックス大学の Dave Cliff、Inman Harvey、Phil Husbands が提唱した。1992年と1993年、スイス連邦工科大学ローザンヌ校（EPFL）の Dario Floreano と Francesco Mondada のグループと、サセックス大学のグループがそれぞれ自律型ロボットへの人工進化の適用実験を行った。これら初期の研究の成功をきっかけとして、世界中でこの方向の研究が盛んに行われるようになった。
その後、ロボットにさせる作業の複雑さをレベルアップすることが困難なこともあり、工学的な方向よりも理論的な方向に研究の中心がシフトしつつある。
進化ロボティクス.
進化ロボティクスは同時に複数の目的を伴って研究されている。それは例えば、実世界でのロボットの作業に使えるコントローラの生成、進化論の複雑な事柄（例えば、ボールドウィン効果）を実験で確認すること、心理学的現象の再現、人工的なニューラルネットワークの研究から生物の神経系について新たな知見を得ること、などである。
人工進化でコントローラを生成するには、多数の候補群を評価する必要がある。これには時間がかかるため、実際のロボットを使わずにソフトウェアで行うことが多い。また初期の無作為なコントローラは、繰り返し壁に激突するなど、ロボット自体に破損を負わせる可能性がある。
シミュレーションで進化させたコントローラを物理的ロボットに転送することは、進化ロボット工学の中でも最も難しい部分である。その理由は、シミュレーションには現実を簡略化して近似した部分があり、進化ロボット工学ではそういった部分も含めて高い適応度を示す候補を選別していくからである。これには、高速で正確なシミュレーションを繰り返す必要があり、そのことが進化ロボット工学の制約の1つとなっている。
珍しい例として、コントローラだけでなく、ロボットの物理構造の設計に進化的計算が使われることもある。その特筆すべき例として、Karl Sims が行ったシンキングマシンズ社でのデモがある。
背景.
機械学習アルゴリズムは一般に、仮説的入力とそれに対する答えからなる訓練例を必要とする。ロボットの学習では、答えとはそのロボットがとるべき正しい行動である。
そのような正しい行動が常に事前に明確に判っているとは限らない。その代わりにロボットがその時点で最善と判断した行動に対して、成功なのか失敗なのかという評価を下すことは可能である。進化的アルゴリズムはこのような問題フレームワークに適した解法であり、適応度関数はコントローラに対して失敗か成功かだけを判定すればよく、コントローラがとるべき正しい行動を正確に示す必要はない。ロボットの学習での進化的計算の別の利用法として、異なる形態の強化学習（Q学習など）を採用し、任意の特定の行動の適用度を学習し、適用度の値を予測してコントローラを間接的に生成するという方法がある。