こんにちは,知能システム制御研究室助教の小林です.
ロボットというのは往々にして生物を手本にその機構や制御を設計します.何故なら,生物というのはその誕生から進化をし続けて現在の環境へと最適化されているからです.そんな生物の機構や制御を紐解けば,ロボットにとっても最適な機構や制御を導くことができます.例えば私の過去の研究では,ヒューマノイドロボットの歩行制御を人の歩行の特徴,モデルを基に設計することで人のような省エネな歩行を実現してきました.最近では,生物の運動制御を司る小脳の神経回路網を模倣したReservoir Computingを利用した継続学習に挑戦しています.
なお,研究室の詳しい情報は研究室HPを,私のその他の研究については個人HPをご覧ください.
これまでの研究
この歩行に関する研究は「マルチロコモーションロボット」というプロジェクトの一環で行ってきました.マルチロコモーションロボットというのは,ロボットが単一の移動形態,例えば2足歩行,だけを利用して環境に適応しようとするのではなく,複数の移動形態から最適なものを直面している状況に応じて適宜選択・切り替えていくことでより複雑な環境に適応する,というコンセプトです.これもやはり生物に倣っていて,人を例に見れば,普段は歩きますが急ぐ時は走りますし,梯子を登ったり,山道では両手にトレッキングポールという杖を持って脚への負担の分散,つまり4足歩行をするはずです.この複数の移動形態というのは,それぞれが得意な環境・苦手な環境がありますので,互いの短所を補い合い長所だけを上手く利用すれば,単一の移動形態だけを駆使するよりも遥かに優れた環境適応能力を得られます.
では,そんな複数の移動形態を扱うにはどうすれば良いのでしょうか?単純に考えれば,各移動形態を実現する制御器を別々に用意すれば良いと思うでしょう.しかしこの移動形態というのは細かく分ければ無数に存在しますので,全てを別の制御器で扱うというのは現実的ではありません.そのため,複数の移動形態を可能な限り統一的に扱うような制御器を設計することが求められます.そんな制御器として,環境との受動的な点接触と全身関節角が接触角に連動して動く仮想拘束の2つの原理を組み込んだPassive Dynamic Autonomous Control (PDAC)という手法を提案してきました.この2つはロボットの全身ダイナミクスを非常に簡単なものにしてくれ,さらには,環境と何処で接触しているのか,どのように連動させるか,の2点だけを考えれば全ての移動形態を制御できるようにしてくれます.
特に連動のルール,すなわち仮想拘束を上手に与えると,似た移動形態をさらに統一的に扱うことができます.2足歩行と走行を例に見れば,両脚が地面から離れる跳躍期の有無という違いはあるものの,その本質は左右の脚を交互に振り出していくという共通点があります.人の歩行と走行の解析をして得られたモデルも倒立振子を基にしており,振子の剛性(歩行では硬く,走行では柔らかい)という差異はあるものの,十分に共通化できるものとなっています.この共通化されたモデルに従って仮想拘束を与えると,ただ歩行と走行を扱えるだけでなく,両者間を共通化されたモデルのパラメータ1つを変えるだけで容易に切り替えることが可能になります.ちなみに,この切り替えタイミングについても生物の特徴を取り入れることができます.生物が歩行と走行を切り替えるのは,移動距離当たりのエネルギー消費を最小化するためということが解明されています.つまり,ロボットでも歩行と走行のエネルギー消費を比較して関係が逆転するタイミングで切り替えれば良いのです.
このように生物の特徴をふんだんに取り入れて設計された制御器は,生物のように低速時には歩行を,高速時には走行を自然と実行することができます.
最近の研究
生物の何処が身体を上手に制御しているかと言えば,それは間違いなく脳だと言えるでしょう.つまり,生物の脳構造を紐解いて模倣することができれば,生物のように巧みな動きが実現できるはずです.脳構造を模倣したもの全般はニューラルネットワークと呼ばれ,最近ではこのネットワークの層構造を何十,何百層とした,いわゆる深層学習が認識技術として大きな成功を収めています.この深層学習は人の視覚野と似た情報処理構造をしているとされていますが,では運動制御を司っている小脳を模倣した情報処理構造はどうなっているのでしょうか?その答えがLiquid State Machine (LSM)やEcho State Network (ESN)に代表されるReservoir Computingになります.
Reservoir Computingは入力層・リザーバ層・出力層の3層で構成され,このリザーバ層が自身の信号を再び取り入れるという,再帰的な結合を持つリカレントニューラルネットワークの一種となります.Reservoir Computingの最たる特徴は,学習するノード間の結合がリザーバ層と出力層を接続しているリードアウトのみ,という点にあります.つまり,一般的なニューラルネットワークと異なり,出力層における誤差を逆伝播させることなく,リザーバ層は初期のランダムな結合のままで固有のダイナミクスを有したままとなります.このリザーバ層の構造が小脳における顆粒層に相当するといわれています.また,リザーバ層を学習しないで良いため,そのノード数は通常のニューラルネットワークより非常に大きくしやすくなっており(1千〜1万個など),顆粒層(1000億個ほど)と比べればまだまだ少ないですが,それでも類似した特徴といえます.
最近は,このReservoir Computingを用いた継続学習について研究しています.一般的なニューラルネットワークというのは,誤差逆伝播によってネットワーク全体の結合荷重を更新して学習したいタスクを獲得するため,タスクAについて学習済みのネットワークでタスクBを学習すると,タスクAを扱えなくなる「破滅的忘却」という問題を抱えています.Reservoir Computingであれば,リードアウトをスパースに学習するだけでタスク間の競合を最小限に抑えられます.また,リザーバ層にあるタスク入力を加えれば,固有のダイナミクスに基づいた入力依存の活性化パターンが期待されますので,タスクごとに異なるノードが活性化しやすいようになります.こういった工夫を取り入れることで従来のように全てのタスクについて同時に学習するのではなく,生物のようにタスクを1つずつ継続的に学習することができます.この継続学習は,生物のように生涯を通じて学習し続けて次々に新しいことができるようになる自律ロボットを開発するにあたって非常に重要な能力になります.