知能ロボットのお話 その4

こんにちは。トロボです。

前回前々回の記事で、知能ロボットの重要な3要素である創発、立脚性、および身体性についてお話ししました。そこで示したロボットの例は、センサとモータの直結による反射系を利用するような非常に単純なものでした。今回は、知能ロボットの基本原理から逸脱することなくロボットを複雑化させることで、より賢いロボットを生み出す方法論(方向性)についてご紹介したいと思います。

左図にあるロボットは、これまでのスライドで多用してきたセンサ・モータ直結型のロボットに一工夫入れたものです。センサとモータの間に挟んだものを、ここでは仮にニューロン(神経細胞)と呼びますが、これはセンサ入力とモータ出力の間に、右図のような関数を持たせることに該当します。関数の形は何でも構いませんが、形を変えると振る舞いが変わります。

前のスライドにあるような閾値関数を持たせた時、何が起こるかと言いますと、このスライドにあるように「我慢」ができるようになります。つまり、光が遠いときはロボットが動かず、光がある距離以上に近づいた時、突然せきを切ったように動き出すという訳です。もちろん、これが我慢なのかどうなのかは外部観察者の解釈でしかないですが(これが知能の本質)、そういう解釈を生み出したというだけでも、ニューロンの介在によりロボットが少し知的(生物的)になったと言ってよいのではないでしょうか(参考文献)。

では、センサ・モータ間を単一のニューロンではなく、複数のニューロン(ニューラルネットワーク)で繋いだら何が起こるでしょうか? この場合、ニューロンの関数や閾値をどう設計すればロボットがどのように動くのか、もはや設計者にとっても予測がつかない領域になってきます。こうした場合の効果的な設計手法の一つとして、遺伝的アルゴリズムを用いてニューラルネットワークの接続形態(重み・閾値)を進化させるという方法があります。(これ以外にも、強化学習や教師あり学習などの方法があります)

これはStefano Nolfi教授が、ニューラルネットワークを遺伝的アルゴリズムで進化させることで、ロボットがゴミを拾えるようにした例です。上記の適応度関数を用いて個体(あるニューロンの重みを持つロボット)の振る舞いを採点し、点数の高いいくつかの個体を残し(淘汰と選択)、交配させ(ゲノムの一部交換)、これを何世代も繰り返すことで、ゴミを拾ってフィールドの外に捨てるような振る舞いを生み出すことに成功しました。当然ながら、ゴミというモデル(表象)は明示的に実装されておらず、ロボットの身体構造とニューラルネットワークを介したセンサ・モータ間の接続だけでゴミ拾いタスクを実現しています。

上で見てきたニューラルネットワークは、フィードフォワード型と呼ばれ、基本的には入力と出力の関係を静的にマッピングするものです。この場合、ロボットは、同じセンサ入力に対して同じモータ出力を返すため、反射的な行動しかできず、その知的レベルには限界があると言われています。そこで、ロボットをさらに賢くするため、再起結合を持つリカレント・ニューラルネットワーク(RNN)を活用する流れが生まれました。RNNによってロボットに「内部状態」を持たせることができ、言わば、経験に基づく行動や経緯(コンテクスト)を踏まえた行動が可能になる訳です。例えば、この論文では移動ロボットが充電エリアを行き来するようにRNNを進化させていますが、内部状態を表すニューロンに「場所」がコーディングされ、それと各種センサ入力を合わせ込むことで、適切な行動が生成されています。

フィードバック結合により現在時刻と次の時刻の状態をマッピング可能なRNNは、力学系を近似することができます。力学系とは、Wikipediaにあるように、「一定の規則に従って時間の経過とともに状態が変化するシステム」のことですが、その重要な性質として「アトラクタ」を持つことが挙げられます。とりわけリミットサイクルアトラクタは状態空間を周期運動するので、例えば、この論文この本にあるように歩行を生成できます。アトラクタには引き込み作用があるので、例えば二足歩行モデルを歩かせている間に身体の一部を少し押した際に、一旦よろけるも、すぐに元の歩行に自動復帰することができます。また、RNNを用いて移動ロボットに移動軌跡を学習させた例では、未知のスタート地点からの移動やセンサノイズの影響で道を外れた時などでも、アトラクタ・ダイナミクスにより学習済みの軌跡に引き戻されることを示しています。

RNNはアトラクタ以外にも面白い特徴を持っています。このスライドは、不肖トロボがこの論文を追試したものですが、1→0→(0 or 1)という3つ目の値が50%の確率でランダムに切り替わるシーケンスをRNNに学習させた結果です。グラフより、学習回数が少ないうちは1、0、 0.5にプロットがあるのが見てとれると思いますが、これはRNNが1→0→0.5という値を順番に出力しているからです。一方、学習回数が450回を超えたあたりから、1→0→(ランダム値)が出力されています(このランダム値は初期値鋭敏性を持つカオスによるものです)。ここで、3つ目の値に対し、0.5以上を1、0.5未満を0に変換するとします。こうすると、1→0→(0 or 1)という確率過程を再現できます。このようにRNNはカオスを利用することで確率過程を学習していることが分かります。

この実験が興味深いのは、非常に人間臭い別の解釈ができるところです。「1→0ときたら1と言え」と「1→0ときたら0と言え」という2つの指示は明らかに矛盾しています。これを人に対して強制したらどうなるか、間を取って1→0→0.5(小声)と誤魔化すことは大いにあり得ることと思います。しかし、強制者が「いや、そうじゃない」とさらに2つの矛盾した指示を強要し続けたらどうなるか、きっと頭が混乱して“カオス”になってしまうと思います。これはたまたまかもしれませんが、スライドのグラフの最後の方は、もはやカオスですらなく、よく分からない値を出力し、あたかも放心状態のようになっています。このようなRNNの振る舞いは、ベイトソンのダブルバインドの概念にも類似するものです。こうしたことから、RNNは非常に興味深いツールと言えます。

谷教授は、ハイデッガーの存在論やメルロ・ポンティの身体論、ウィリアム・ジェームズの意識論などを思想的背景に、RNNを用いた力学系アプローチによりロボットの意識にまで踏み込んだ議論をしています。このスライドは、谷教授の論文から一部引用したもので、細かい説明は省きますが、ニューロンの状態を示した(b)(c)のグラフを見ると、安定な状態と不安定な状態が繰り返し生じていることが分かります。安定状態は、移動による環境の見えの変化と、RNNによるその変化の予測が整合している状態を表し、不安定状態とはそれが噛み合わなくなった状態を意味します。谷教授は、この安定状態が不安定状態に変わる時、意識が立ち現れると言います。どういうことでしょうか? 以下、谷教授のアイデアに私見も交えて説明します。

自転車を例に取ります。脳、身体、道具(自転車)、環境は、それぞれダイナミクス(力学系として表現される動的過程や物理特性)を持っています。自転車で道路をスムーズに進んでいる時は、これら要素があるリズムをもって噛み合っている状態と言えます。この時、ある程度の速度が出ていれば、特に何かを強く意識することなく無心で自電車をこいでいるはずです(遅いとあれこれ考え事をしているかもしれません)。つまり、各要素がシステムとして一体化し、自己が透明になっている訳です。ここで、石を踏むなどしてバランスを崩し、転びそうになったらどうでしょうか。石や自転車、場合によっては冷や汗が意識に上ることになります。安堵感も意識するかもしれません。つまり、脳・身体・道具・環境のコーディネーションの突発的な崩れにより、主体(自己)と客体(自己以外)が分離する訳です。この瞬間に生じる「経験」が、原初的な自己意識と考えられます。自分を自分と意識するような自己参照的な自己意識に至るまでには、何か追加の要素が必要かもしれませんが、この議論には一定の説得力があるのではないでしょうか。

話は少しそれますが、「考え過ぎ」や「悩み」というのは、脳(アタマ)だけが空回りして環境のダイナミクスに結合していない状態と言えます。上の議論で言うと、自己が現れ過ぎていている状態です。禅や瞑想、マインドフルネスを実践するということは、要は世界と一体化(心身統一)して、自己を透明化するということです。これはジョギング、釣り、掃除、草刈りなどでも同じで、無心になって対象に向き合うことで禅と同じ効果が得られます。なぜこうしたことが悩みの解消に効果的かと言うと、環境や身体の変化は脳内意識の変化に比べ相対的に遅いため、アタマの中で空回りしているループ(悩み等)を緩やかかつシンプルにするからだと思います。比喩的に言うと、バイクのエンジンを空吹かしするとエンジンに負担が大きいのに対し、ギアとチェーンでタイヤと繋がり、タイヤが大地と噛み合って走っている時は、エンジンにとって快適というイメージです。

これまでの議論で、ニューラルネットワーク(特にRNN)がロボットの知能を生み出す有効な道具であることが分かりました。このスライドでは、ニューロン数(オーダー)を含めた人間とロボットの複雑性を比較しています。2003年時点のものなので、ロボットのニューロン数が少ないですが、深層学習が当たり前になった現在では、少なくとも画像認識部で10万個程度のニューロンが使用されていると思います。この記事によると、ニューロン数が最大の人工ニューラルネットワークでは1,600億個とのことなので、人間の860億個を超えたようです。ただ、ビッグデータによる認識に特化したニューラルネットワークと、これまで議論してきたようなsituateしたロボットは考え方が大きく異なるため、知能ロボットという文脈では単純に比較できないと思います。

これが最後のスライドです。チューリングテストをパスするようなロボットは当分出てこないと思いますが、知的で役に立つロボットは徐々に生まれることと思います。我々もそれを目指し、日々研究を続けています。

・・・

4回に渡って知能ロボティクスについて紹介してきましたが、いかがでしたでしょうか。15年前の古いスライドをベースに記事にしましたが、今振り返っても、本質は何も変わってないと感じます。むしろ、ここ15年で、身体性を活用し環境にsituateしたロボットがどれだけ生まれたのか。研究は着実に進んでいるようですが、大きなブレークスルーはなかったように思えます。このことは逆に、これから知能ロボティクスが再燃する可能性があるとも言えるのではないでしょうか。知能ロボットの基本原理に基づき最新の技術を適用した時、どのようなロボットが生まれるか、今後が楽しみです。

知能ロボットのお話 その1
知能ロボットのお話 その2
知能ロボットのお話 その3

知能ロボットのお話 その3

こんにちは。トロボです。

前回は知能ロボティクスを構成する3要素のうち、Emergence(創発)を紹介しました。今回は、残りのSituatedness(立脚性)とEmbodiment(身体性)をご紹介します。

Situatedness(立脚性)という概念に関し、知能ロボティクスの分野でも定義が混乱しているようにも思えますが、こでは「センサとモータを介した環境とのカップリング(結合)」とします。

ただし、その結合度合いは、このスライドにあるように密でなければなりません。知覚して行動して終わりではなく、行動の結果が知覚に影響を与え、その知覚の結果が次の行動を引き起こすというようなループが環境を介して常に回っている必要があります。

これは人間もsituateしているという一例です。人間が壁に向かって立っているとき、気づかないくらい壁を前後させると、無意識的に前のめり・後ろのめりになるという実験です。つまり「立つ」という行為は、単純に物が置いてあるのとは異なり、不断のセンサ・モータループに支えられた“積極的な行動”ということになります。

これは知覚のために行動を利用する例です。この実験は、振ることによって物の形を当てることができるというものですが、振り動作を行うことを通して慣性モーメントという不変項を知覚していると言われています。これはロボティクスの分野では「アクティブセンシング」と呼ばれ、ロボットの認識能力を向上させる手法として重要視されています。

ここで、触覚ならともかく、視覚は高次の認知機能が関わるので行動は不要だろうと思われる方もいるかもしれません。つまり網膜に映った像を解釈することで対象を認識するので、行動とは関係ないという見方です。しかし、それを否定する実験があります。これこれは行動を通して能動的に環境を見る猫と、ゴンドラに乗って受動的に環境を見る猫の発達を比較した実験ですが、可哀想なことに後者の猫は同じ風景を見ていたにも関わらず奥行きを認知できない猫になってしまったそうです。つまり、視覚の発達においても、行動との結びつきが非常に重要ということです。

ロボットの例はないのかと思われるかもしれませんが、ビヘイビアベースドロボットは最初から環境にsituateしています。

次にEmbodiment(身体性)についてお話しします。ここでのポイントは「身体の特性を活かす」ということです。皆さんが展示会等のデモで見かける多くの二足歩行ロボットは、言うなら「計算」で歩いています(物議を避けるためスライドは黒塗り)。どこに足を着けば転ばないのかを考え、そのための関節角度を計算し、モータに指令を送ることでロボットを歩かせています。その際、膝を伸ばしきってしまうと関節角度を得るための数式が解けなくなることから、多くのロボットは歩行中に常に膝を曲げています。また、これらロボットの関節はフリーで動かない(振り子にならない)ため、関節の正確な位置と速度の制御によってしか歩行できません。この時、モータは常に駆動しているので、スライドにあるようにエネルギ消費が大きい訳です。

一方、スライドの左の動画にあるPassive Dynamic Walker(受動歩行機械)は真逆の発想で設計されています。上の動画がWebに見つからないため、こちらを参照してください。脚(Leg)のダイナミクス(物理特性)と足(Foot)の構造、環境(坂の角度)の絶妙な組み合わせの中で、自然な歩行が生まれていることが分かると思います。ここにコンピュータやモータは介在していません。人間や生物の歩行も、身体のダイナミクスを用いるという意味では、こちらに近いと言えます。神経系で生成した制御リズムと脚の振り子の周期を調整しながら歩行しているものと考えられます。

ところで、脚・足・環境の相互作用で歩行が生まれることは、ある意味、先に述べたEmergence(創発)とも言えます。また、前回紹介したゴミ集めロボットは、センサがボディの斜め前についているという身体的な特徴を利用しているため、Embodimentして(身体性に基づいて)いるとも言えます。ゴミ集めロボットはセンサ・モータループを介して環境と結合していますので、当然Situate(立脚)しています。こうしたことから、創発、立脚性、身体性という概念は密接に関係していることが分かると思います。

もはや昔の話になりましたが、MITのLeg Labでは脚のダイナミクスを利用した歩行について研究を進めていました。その名もSpring Flamingoです。

Spring Flamingoは、運動の要所要所で制御をかけることで、消費電力を低く抑えることを実現しています。これは人間や動物の歩行(それ以外の動作)でも行っていることで、非常に効率のよい制御方法と言えます。よくスポーツで「肩の力を抜け」と言いますが、省エネ・高効率の運動とは、入れるべきときに力を入れ、それ以外は身体のダイナミクスを利用することを意味しています。

ちなみにMITのLeg Labは、Boston Dynamicsの創業者であるMarc Raibertも在籍していた研究所です。彼は当時ホッピングロボットを研究しており、それが今日のBoston Dynamicsの素晴らしいロボットに繋がりました。

今回議論してきた内容は、生態心理学(Ecological Psychology)の開祖であるJames J. Gibsonが提唱したアフォーダンス理論と非常に親和性が高いものです。Gibsonは、環境を無味乾燥な入れ物ではなく、生物に行動の可能性を与えるアフォーダンスで満ちているものと考えました。生物の行為は、自分が環境内を動いているのか環境に動かされているのか、その両方が真となるような、環境との密接なカップリングのもとに成り立ちます。この時、生物にとっての世界の「意味」や「情報」というものは、環境との相互作用という動的過程における変化するもの・しないものから見出されます。

Gibsonは「自己(意識)」については言及していないかもしれませんが、アフォーダンスの考え方をベースにすると、当然ながら自己も環境(およびインターフェイスとしての身体)と切り離せないものになるはずです。このように、アフォーダンス理論もまたデカルト的心身二元論を超えるものであり、本稿で紹介した知能ロボティクスの考え方と共鳴するものであることは明らかです。

・・・

既にお気づきの方も多いと思いますが、ここで紹介した内容は、Rolf Pfeifer教授とChristian Scheier博士が著した「知の創成」をベースにしているところがあります。この本は私の青春時代の研究活動におけるバイブルでもありました。発刊から20年以上経ち、徐々に古典になりつつありますが、知能ロボティクスの分野においては今でもなお必読の書と言えます。

次回は、知能ロボットの3要素である創発、立脚性、身体性というコンセプトを維持したまま、ロボットの知能をさらに高度化する方法についてご紹介します。

知能ロボットのお話 その2

こんにちは。トロボです。

前回の記事では、ビヘイビアベースドロボティクスについて解説し、人間の認知過程を人間の言葉・世界観(モデル)で実装していないにも関わらず、知的な振る舞いを実現できることを示しました。このことは、知能(精神、意識、心と言い換えても良い)が身体や環境から切り離された次元に存在するという心身二元論的な認知科学を超えて、より客観的で本質的な原理にアプローチできる可能性を示唆するものでした。それが「サイエンスとしてのロボティクス」という領域を切り開くことになった訳です。

エンジニアリング(工学)とサイエンス(科学)の定義はいろいろあるかもしれませんが、ここでは前者が「役に立つことを重視する」のに対し、後者は「本質的な原理に迫ることを重視する」と大雑把に捉えて下さい。今回はサイエンスとして、知能の本質について議論を深めたいと思います。プレゼンシートは前回のものからの続きです。

それでは、ロボット(人間などの生物も含む場合「エージェント」と呼ばれる)における知能の本質的な原理とは何でしょうか。ここでは、Emergence(創発)、Situatedness(立脚性)、Embodiment(身体性)という3つキーワードを紹介したいと思います。以下のシートでそれぞれの考え方について具体的に見ていきます。その他、Adaptability(適応性)やAutonomy(自立性)など、重要な概念もありますが、ここでは議論しません。

まず「創発」という概念について紹介します。Wikipediaでは次のように定義しています。

創発(そうはつ、英語:emergence)とは、部分の性質の単純な総和にとどまらない性質が、全体として現れることである。局所的な複数の相互作用が複雑に組織化することで、個別の要素の振る舞いからは予測できないようなシステムが構成される。

要は、要素同士が局所的に相互作用したとき、思いもかけない全体の振る舞いが立ち現れるということです。上の「Simonの浜辺のアリ」の例では、アリが持つ「障害物があったら右か左に避ける」という単純な行動ルールが、浜辺の複雑な地形と相互作用することで、いかにも知的な移動軌跡が生まれています。「なんだそんなことか」と思われる方もいるかもしれませんが、馬鹿にしてはいけません。大事なことは、環境の作用を無視して知能を考えることはできないということです。

この例は、走光性の単純なセンサ・モータ接続を持ったロボットが、それが故にデッドロックに陥ってしまっている仲間を助けるというものです。はじめに上方にいるロボットが下の2台のロボットの光に引き寄せられて動き出し、最終的にそれらにぶつかり、それによってデッドロックが解れます。それを傍から見ると人助け行動をしているように見えるという訳です。当然ながら、そのようなプログラムはどこにも書かれていません。

この研究は既に20年も前のもので、Webで動画が見つからず残念なのですが、その代り同様の例を以下に示します(別な講演で使用したプレゼンシートから転載)。

これは以下の論文にあるゴミ収集ロボットです。

M. Maris, R. Boeckhorst, “Exploiting physical constraints: heap formation through behavioral error in a group of robots”, IROS 96.

ロボットの構造は単純化すればこのようになっています。では、なぜこのようなセンサ・モータ直結のロボットでゴミが集められるのでしょうか?

答えは、単に正面が見えないからです。正面が見えないが故にゴミを押し続け、そのうちゴミが集まっている場所に出会うと斜め前に付いているセンサが反応してその場を去り、また偶然正面にゴミがあると押し続け、、、それを続けるうちにゴミのクラスターを形成してしまうというものです。

上記の例はいずれも、「他者を助ける」や「ゴミを認識し集める」などといった行動ルールや、他者やゴミ、環境のモデルがプログラムとして書かれているわけではなく、ロボットと環境の相互作用により行動が創発している例と言えます。

創発の最後の例は、有名なBoidsという鳥の群れのシミュレーションです。Boidsでは、個々の鳥に上記①~③の単純な力ベクトルを作用させることで、極めて自然な群れの振る舞いを実現しています。上記リンク内の動画にもあるように、これら単純なルールのみで、群れが半分に別れて障害物を回避し、その後にスムーズに一つの群れに戻ることができています。最近の事情はよく分かりませんが、昔は映画内の鳥の群れのCG制作などに使われていたようです。

上のBoidsは不肖トロボが昔作成したものです。Javaアプレットがブラウザ非対応になったので、Javaアプリケーションに作り変え、さらに動画にしてみました。上記①~③を制御するパラメータを変化させた際に、群れの挙動が変わっていることが分かると思います。なおこのBoidsは勢い余った時には地面に張り付くようになっています。1秒以内のランダムな時間張り付くのですが、その後急ぎ仲間を追いかけるような挙動が生まれていることが分かります。単に群れの中央から離れるため、上記②の力ベクトルが大きくなるだけなのですが、慌てて追いかけているような挙動が創発しています。

上でいくつかの創発の例を見てきました。どの例も、人間が人間の見方で分析した知能をトップダウンで書き込んでいるのではなく、要素同士(環境とロボットの身体構造、鳥同士の単純なルール)の相互作用の中でボトムアップに知的な振る舞いが引き起こされていることが分かると思います。前回の記事における整理方法を用いると、前者がモデルベースド知能、後者がビヘイビアベースド知能ということになります。大事なことは、知的な振る舞いを生じさせる内部メカニズムは、必ずしも人間の認知・分析結果とは一致しないということです。

別な言い方をすると、知能の創発というものは観察者なしでは起こり得ません。物理的には、ある身体構造を持ったロボット(エージェント)が環境と何らかの相互作用をしているだけであり、知能とはそれを外部から見る観察者が、ある意味勝手に解釈するものだからです。これを突き詰めると、「そもそも知能(意識や心)は実在するのか?」、「それを観察している自分自身(自己意識)とは何なのか?」という深淵な問いにも繋がってきます。ただ、これは深すぎるので、ここで議論するのはやめましょう。

・・・

今回は知能ロボティクスを構成する3要素のうち、Emergence(創発)を紹介しました。だいぶ長くなりましたので、Situatedness(立脚性)とEmbodiment(身体性)に関しては次回ご紹介したいと思います。