知能ロボットのお話 その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