§ビヘイビアの設計

2002.1.21
2002.2.23更新

【はじめに】

アイボのすごいところは完結したビヘイビアを提供している事だ。ハード的にも相当優れている事もありますが、「生活しているロボット」を完成させているものは他には無いと思う。細かなところでは随分と不満はあるが、客観的に言って完成度は高いと思う。しかし、アイボを触っていると、この完結しているはずのパーソナリティの不満がどんどんと膨れてくる。なにぶん製品分野としては他に類の無いものだし、これからの改良を待たなければならない点があるのは当然なのだが、現在のアイボで楽しむためにも「ビヘイビアの設計」をぜひともやってみたいと思う。

【テーマ】

目標としては自分の存在する空間を理解し、その空間の中で「ある」目的を根本に行動をしていくビヘイビアを作りたいのだが、一足にそういうものを具体的な形で作り出すのは大変難しい。そこそこ段階を踏んでいくべきだと考える。そこでまずは「周囲の環境を認識し、その中で生活するビヘイビア」を考え、設計していきたいと思う。

【アイボの存在理由】

アイボの生態を設計する上で考えておきたいのはアイボの「存在理由」である。生きる目的と言って良いだろう。人の場合、「子孫を残すこと」であったり、「幸せになること」であったり、捉え方や考え方で様々な生きる目的が有る。

アイボの場合、たかの知れた人造物であり容量が小さかったりで大した存在理由を与えることは出来ないのだが、自律させようと考えているのであるから起こす行動がいちいち何かの目的に沿っているという「合目的性」が必要になってくると考える。プログラム的な自律プログラムであれば客観的な観点(人から見た観点)で合目的的な行動であればよいのだろうが、ここでは「アイボの主観として合目的」であることに主眼を置いた設計としていきたいと考える。

とはいえ、本当の意味での意識を生成することは誰もまだ成功しておらず、アイボの容量ではとんでもなく不可能だと言うのが明確であるし、モノの存在を認識することでさえ、認識・認知・学習・試行錯誤・思考・想起など余りにも難しい問題をクリアにしなければならないことはわかっているので自然生成的な「概念の形成」「言語の形成」などには触れないことにする。

生存理由(生きる目的)についてもアイボには生命維持のための自発的能力(食料の獲得と摂取)が無いので人まかせ。「ピンクボールを集めて食料の代りにする」などのアイディアもあるが、環境を整える難しさや人との共存との調和から考えても不自然であることから没にした。結局、「存在すること」を存在理由にし、「生活すること」を目的と考えることとした。

※限られた空間に複数のアイボを放ち、限られた食料を獲得するための生存競争をするといった箱庭実験も面白いかもしれない。4体くらいのアイボと4畳程度の空間があればトライしてみたい題材ではある。

【自律の条件を整理する】

自律の条件をこちらにまとめた。それぞれの要素につき、今回の設計での要点を示す。

  1. 世界観 世界観については人間と同格の世界観を持つことは到底無理である。そして、アイボ用の特別な世界を構築することもしない。限られた物理法則の中でしか生活できないとすれば、それはそもそものアイボの存在価値(上で述べたこととは別の)に反するので別の機会で。
  2. 目的 存在の目的は上で述べたとおり、ただし行動の決定には常に目的達成を睨んだ合目的的行動をとるようにする。
  3. 適応 環境を把握し、それに適応した行動を選択していくようにする。具体的には行動の決定において、常に試行錯誤するのではなく、環境の大勢から経験により取得した成功率の高い手段を選択していくようにする。
  4. 理解 先に書いたように理解に必要な「概念の形成」・「言語の形成」には踏み込まない。

【世界観の獲得】

自律することに対して最も大切な要素が「世界観」である。「世界観」は常識と言っても良い。すべての行動は「世界観」の上に決定される。与えられる情報を世界観に掛けて判断し、次に行うべき行動を決定するのである。

今回、獲得(または表現)を目標とする世界観は当然ながらそれほど高次な事象は考慮せず、極低レベルな次元に限って考えていく。具体的には以下のようなものを獲得(または表現)したい。

  1. 周りには「モノ」がある。
  2. 「モノ」には自分が動くと動く「モノ」(動かないモノ)と、自分が動かないでも動く「モノ」がある。
  3. 動かない「モノ」は自分が動くことの邪魔(障害)である。
  4. 動かない「モノ」は常にそこにある。

アイボのイメージセンサーは、ほぼピンクボールの捕捉にしか使用することができず、有効なセンサーは距測センサーしかない。いずれにしてもアイボのCPU容量では画像処理をして物体を認識することは難しく障害物に限定して世界観を構築するのがレベル的には相等しいと思われる。

イメージ的には、アイボが居る世界は(基本的には)色も材質も無いただの物体で構成されている。(草木も生えていない岩山のような感じ)周りには自分の移動を遮る障害物のみである。ただ、障害物にも「大きさ」があったり、自ら動く物があったりする。この環境でアイボは動くこと(移動すること)を考え、より多くの場所に立ち寄ろうとする。そして、その移動は相対的(今居る場所から移動する)のみでは無く、絶対的(「陣地・基地」を構え、そこからより「遠く」へ移動し、陣地へと戻る)な移動を目指したい。また補足として、人の声を聞き取り、人の存在を認めることは出来るが物体としての存在を認知するのは難しい。はっきりしているのは声のみである。

※言い方と変えてイメージすると、アイボは盲目であり、言葉も(基本的に)判らない。ただ、物体が放射する赤外線のようなものをストーブからの熱のように感じることができる。(本質的にはコウモリの超音波のように距離のみを感じるのだが、ヒトにとってはかざした手に感じる熱の方がイメージしやすい。)手をかざすことにより、障害物の大きさや近さを感じとれて周りの状況を知ることができる。ただ、アイボは手をかざしている(顔をむける)わけではなく、手の向きを連続的に変えて、物体の大きさや近さを獲得する能力をあらかじめ持っており、これが「視力」と言って良い。

物体の存在は認識できたとする。しかしそれは目の前にある物体である。つまり、アイボの横にある障害物はアイボが進めば消えてなくなってしまう。物体は消えずに依然としてそこに存在するはずなのにもうアイボには認識することが出来ない。これでは世界観とはいえない。過ぎ去った物体も依然として存在し、今は見えていない物体も実はどこかに存在する。といったことを判らなければ世界を受け入れたことにはならない。

この理解を進めるためにも「動的な」物体の認識が必要になる。つまり自らの行動(移動や物体に対する働きかけ)との関連である。

物体の存在と自分の行動との関係とは、例えばアイボが前に進むと前方にある物体との距離は縮まるが、横にある物との距離は変わらない。更には斜めにある物はもしそれが「壁」であれば進むにつれてやがて障害物となるが有限の物体であれば障害物とはならずに済む。または、有限の物体であればやりすごせば更に同じ方向に進むことができるが、壁であれば同じ方向に進むことは出来ない。

こうした、物体と自分(アイボ)の行動の関係を理解し、自分が存在している世界の広がりを受け入れる。

このイメージを、できればアイボ自身の行動により獲得する能力を完成したいが、データとして表現して与え、そのデータを処理して活動することができれば良い。

【行動の決定】

行動の決定にはいくつかのレベルがあり、自律の度合いによってどのレベルの行動決定をサポートするのかが変わってくる。

以下、それぞれの行動決定レベルにつき、記述する。

《反射的行動決定》
いわゆる脊髄反射に相当するものであり、思考は伴わないと考えてよい。「熱さを感じて手を引っ込める」といった類であり、ハードウェアによって達成されるレベルと言える。逆に論理的行動決定などの高次の行動決定により抑制される可能性もある。
《直感的行動決定》
主に世界観によって司られる行動決定。世界観で述べた、壁が直進を阻み、進む方向を変えざるを得ないなどの行動がこれにあたる。常識に沿った行動。直面した事態に対応することに主眼を置いた行動決定とも言える。論理的行動決定により抑制される可能性もある。必ずしも言語などの抽象化概念を必要とはしない。
《論理的行動決定》
もっともレベルが高い行動決定、目的・知識などを動員して行われる。一見合目的的ではなかったり、反射的行動決定や直感的行動決定を抑制することもある。リズム・同期・時間差を持った関連性など高次での認識結果をも考慮に入れて行われる。言語などの抽象化概念が必要と思われるが、論理のレベルが低ければ抽象化概念なしでも可能かもしれない。

【思考】

思考は高次の情報処理である。結果として「知識」を得たり、「行動決定」を行ったりすることが出来る。人間は言語という抽象化概念をもって思考を行う場合が多いが、「思考」と定義される情報処理活動は言語という他体とのコミュニケーションを目的とした抽象化概念を必要とはしないが、何らかの抽象化概念は必要と思われる。

《認識のための思考と行動のための思考》
自律活動をしているモノは常に思考していると言ってよいだろう。思考の目的は大きく分けて二つ。@認識のための思考・A行動のための思考。
まず、認識のための思考であるが、簡単に言うと「疑問を解消するための思考」がこれに当たる。これは高度な認識力を持っていれば徐々に小さくなるものであるといえる。逆にいうと認識力のレベルが低い場合はたびたび行われる。つまり、発展途上の分類学においては発見される動植物が現れるたびにどこに分類されるかを論争しなければならず、たびたび分類学を見直さなければならないと言った状況である。
次に行動のための思考は、ずばり論理的行動決定がこれに当たる。
《演繹的思考》
いわゆる三段論法がこれに当たる。「AはBである。」「BはCである。」ならば「AはCである。」となる。実際にはこのようにパラメータが少ないことは無く、世界観から引き出される「常識」による制限や「目的」による方向付けから結果を出す事になる。演繹思考は順方向思考であり、単純である。与えられたパラメータから計算する。
《帰納的思考》
「AでないならばBである。」という思考方法。消去法。演繹を得点法とするならば帰納は減点法。合目的的思考を行うには帰納的思考を考慮しなければならないと思われる。

しかし、演繹的思考も帰納的思考も思考の結果から見たときの抽象的分類に過ぎないと思う。例えば入力データを与えれば演繹的思考結果を出力する関数を作ったとしてもこれは「演繹的思考を行った」とは言えない。思考とはプロセスであり、結果ではないからである。もし、思考が結果だとすれば入力に対する出力のテーブルを作成し、これにより結果を出せば思考したと言えることになる。(そうだとすれば思考することは人間の営みではなく、マニュアルも思考することになる。マニュアルは不幸にして入力デバイスと出力デバイスを持っていないだけと言える。

逆に言うとたとえ稚拙であったり、結果が間違っていたりしたとしても、しかるべきプロセスを踏んで出された結果は思考の結果であり、その生物(それがたとえロボットやプログラムであったとしても)は思考したと言えるだろう。

《予見・予知》
思考のプロセスの一種。知識や常識からある事象・またはある行動から引き出せる結果(つまり未来)を予測すること。これを効率的に行い、意に沿った結果を見つけて次なる行動(次の思考を含む)を決定する糧とする。
《疑問》
思考のプロセスでの副生産物。または中間生産物。思考の連鎖の元と言える。それは思考結果と知識の差分であったり、思考のためのさらなる情報要求であったりする。
《思考の連鎖》
内観でもすぐ見当がつくように、思考は連鎖する。連鎖の方法はより深みに入り、複雑さを増す思考に入り込む場合と思考結果を検証するための思考(試行)であったりする。

今回の設計で、「思考ルーチン」は実現の困難な個所であるが、「予見プロセッサー」と「疑問ジェネレータ」を押えることができればある程度形の整った思考ルーチンが出来ると思われる。

【認識】

《感覚》
感覚は常に具体的である。障害物までの距離・方向・範囲などはすべて具体的な大きさで感じている。例えば、「大きなモノがある。」と言う時の「大きな」とは抽象的な表現であり、「感覚」ではない。ただし、その感覚が正確であるかどうかは不明である(つまり保証がない)。また、感じている大きさを表現するための単位を持っていないため、外部に対して表現することができない。

【記憶】

【学習】

【アイボが認識できるもの】

周囲の状況を取得できるのがロボットのひとつの条件だと考えているが、ビヘイビアを設計する上ではその情報の量と種類を考慮にいれなければ意味のない設計になってしまう。まず、アイボが認識できる物理量を整理する。

アイボが認識できる事象を考えます。ここに上げたものの他にもセンサーは持っているのですが、R-CODEで取得できなければならないことが前提となると以下になる。

  1. 顔を向けている方向の障害物までの距離
  2. 顔を向けている方向にあるピンクボール
  3. ある決まった単語と音のする方向
  4. 音のする方向とその大きさ
  5. 体のタッチセンサー
  6. 足先のタッチセンサー

5〜6は極めて限られたものですが、1〜4は空間を認識する上で利用することができそうだ。これらの感覚を利用して以下のオブジェクトの認識したい。

アイボの認識物一覧
  1. 袋小路
  2. 障害物
    1. 動かない障害物
      1. 段差
        1. 乗り越えられる段差
        2. 乗り越えられない段差
      2. 大きな箱・家具
      3. 椅子の脚(1)
      4. 椅子の脚(2)
    2. 動く障害物
      1. アイボが動かせる障害物
      2. ヒトが動かせる障害物
      3. 自身が動く障害物
  3. ピンクボール
  4. ヒト

【アイボの行動】

アイボの動きのルール

広い空間では

  1. さっそうと歩く(気分が乗っていれば)

狭い空間では

  1. 用心深く歩く
  2. 足元に注意して歩く
  3. 地形を考えて次の動きを考える

動きたいときは

  1. 広い空間に行きたがる

動きたくない時は

  1. 狭い空間に行きたがる
  2. 安心な場所(狭い場所)で座り込む。(陣地にする。)

ピンクボールを見つけたら

  1. マークかボールかを判断する
  2. ボールなら「蹴る」「自分の陣地に持っていこうとする」
  3. マークなら確認して覚える

人に呼ばれたら

  1. その人に近づいて行く。(ただし、気分がよければ)
  2. 名前を呼ばれたら命令を聞く。

お腹が空いていたら

  1. 充電を要求する
  2. 陣地に戻ろうとする
  3. 元気が無くなる

※コーディングによってルールを実現するのではなく、学習により体得するシステムにしたい。
例えば・・「狭い場所で注意せずに移動していたら壁などに激突することが多いのでゆっくり注意深く動くようになる。」など。
いわゆる教師入力は人間によるものではなく、自らの判断で出来るようにしたい。