第399回 トントンを、AIは理解できるか?


ロボマインド・プロジェクト、第399弾!
こんにちは、ロボマインドの田方です。

皆さん、忘れてるかもしれませんけど、プロジェクト・エデンって覚えていますか?
5月に行ったクラウドファンディングで、心をもったAIアバター、もこみを作るってプロジェクトです。
最近、この話に触れてないので、もしかしたら、あきらめたんじゃないかって思ってる人がいるかもしれませんけど、じつは、着々と進んでるんですよ。
今まで、どんな通信方式にするかとか、データベースはどうするとか、地味なインフラばっかりだったので報告することがなかったんですよ。
それが、ようやく落ち着いて、いよいよ意識の中身の開発に入ってきました。

今までで出来てたのは、たとえば「リンゴ」があるって理解するとかです。
次に理解させようとしてるのは動きです。
そこで、簡単な動きとして、金づちで釘を「トントン」って打つ動きを定義しようとしてます。
そしたら、急に分からなくなってきたんですよ。
「リンゴがある」は、仮想世界にリンゴオブジェクトを生成することで定義できました。
でも、「もの」が動くを理解するって、何をしたら定義したことになるんやろとか、
それがぶつかってトントンって、この動作の意味って何とか、
考えたら分からないことだらけなんです。
これが今回のテーマです。
トントンを、AIは理解できるか?
それでは、始めましょう!

動きって、物の位置が時間経過で変化することですよね。
だから、まずは、時間を定義する必要があるので、前回、第398回で時間について考えました。

そのとき、お母さんが、子どもに「もうすぐ誕生日が来るねぇ」って言ったら、その子が「今、○○駅ぐらいまで来てるかなぁ」って答えたって話をしました。
この子は、時間の概念がまだ理解できなくて、「もうすぐ来る」って言われて、電車が近づいてくるみたいに、誕生日が近づいてくるのをイメージしたんでしょう。

これ、よく考えたらちょっとおかしいんですよ。
だって、電車が近づいてくるのはイメージできるわけでしょ。
電車が動くって、時間の経過で電車の位置が変化してるわけでしょ。
つまり、時間の概念を持ってるはずなんですよ。
ただ、これが時間だってはっきりとは意識できてないってことです。

時間って概念が分かりにくいのは抽象的だからです。
たとえば「りんご」は目で見えて、手で触れる具体的な「もの」なので理解しやすいです。
マインド・エンジンで「リンゴ」を理解するとき、3次元空間の仮想世界に3Dオブジェクトのリンゴ生成します。

次は、果物って概念を考えてみます。
「りんご」は具体的ですけど、果物って概念は抽象的ですよね。
じゃぁ、果物はどうやって理解したらいいんでしょう?

それには、例えばこんなオントロジーを思い浮かべます。

オントロジーっていうのは、言葉を概念関係で示した図です。
これをみたら、リンゴは果物だとか、果物は植物だとかって理解できますよね。
これが意味を理解するってことです。

さて、いま、何が起こったかわかりましたか?
最初、リンゴは3次元空間のリンゴオブジェクトだったでしょ。
それが、次は、オントロジーを思い浮かべてリンゴは果物だって理解したわけです。
つまり、リンゴが果物だって理解するときに使ったのはオントロジーです。
つまり、三次元世界じゃないんです。

意識が認識するのは仮想世界です。
三次元世界も仮想世界の一つです。
オントロジーも一種の仮想世界とします。

僕の定義では、意味を理解するとは、仮想世界にオブジェクトを配置できることです。
そのとき理解できるのは、その世界で定義される意味です。
三次元の仮想世界なら、色とか形が理解できるわけです。
逆に、三次元世界には果物って概念はないです。
だから、そのままじゃ果物と理解できません。
そこで、オントロジー世界を使うわけです。
そしたら、リンゴは果物だって分かります。
意味を理解するとはこういうことです。

そう考えたら、時間を理解するには時間世界が必要だってなりますよね。
三次元世界にXYZ軸があるように、時間世界には時間軸があります。
時間軸はスクロールバーみたいになっていて、つまみを動かすことができます。
たとえば、植物の成長を考えます。
はじめに種があります。
そして、時間軸のつまみを左端から右に動かすと、種から芽がでて、成長して、やがて花が咲きます。
逆に、右端から左に動かすと、花から種に戻ります。
つまり、意識が時間軸を自由に操作できること、これが時間を理解してるってことです。

さっき、電車の動きをイメージできるってことは、時間を理解してるんじゃないかっていいましたけど、これは半分当たっていて、半分間違っています。
どういうことかというと、電車の動きを認識するとき時間は確かに存在しますけど、時間軸は見えていません。
時間軸を意識が認識できるようになって、初めて、時間を理解できたと言えるんです。
だから、誕生日が近づくって意味を理解するのは、時間軸のスクロールバーを思い浮かべて、つまみが今日に近づいて来るのをイメージできることです。

それじゃぁ、つぎは、トントンの動作を定義していきます。
ここで、なんでトントンなのかから説明します。
トントンっていうのはオノマトペ、擬音語ですよね。
オノマトペって、幼い子どもが良く使う言葉です。
なんで幼い子はオノマトペを使うかっていうと、言葉より理解しやすいからです。
つまり、オノマトペっていうのは、言語以前の表現といえるんです。
または、世界を感じたまま表現したのがオノマトペといえます。

だから、オノマトペに注目したわけです。
その第一弾がトントンです。

まず、意味を理解するとはどういうことか整理しておきます。
前提としてあるのが、僕が提唱する意識の仮想世界仮説です。
人は目で見た現実世界を頭の中に仮想世界として構築します。

意識は、この仮想世界を介して現実世界を認識します。
これが意識の仮想世界仮説です。

意識が仮想世界を認識することができるというのは、仮想世界のオブジェクトのデータを取得したり、オブジェクトを自由に操作したりできることを意味します。
これができることが、意味を理解してるってことです。
逆に言えば、仮想世界を作ることができれば、意味を理解してると言えます。

さて、仮想世界は世界とオブジェクトで作られます。
世界は三次元世界や時間世界、オントロジー世界などいろいろあります。
どの世界にどんなオブジェクトを配置して、どんなふうに動かすかで動作を定義することができます。
それから、オブジェクトの動きは、スクリプト・プログラムで記述します。
つまり、仮想世界とスクリプトで動作は定義できるわけです。

さて、こっからが本題です。
今、やろうとしてるのはトントンの意味理解です。
くぎを金づちで、トントンと打ってるとします。
それを見て、どうなれば、トントンを理解したとなるかです。

トントンは簡単なようで、いろんな要素の組み合わせでできてるので、まずはばらしていきます。
トントンは、トンの繰り返しですよね。
だから、最初にトンを定義します。

それから、登場する「もの」は釘と金づちですよね。
これは、オントロジーから考えて、最も単純な物体である「もの」で定義します。

「もの」は、たとえば白い1cmの玉で表現します。
「トン」の場合、硬さは「硬い」です。
二つの「もの」A、Bがあって、Aが移動してBに衝突するとします。
これを仮想世界で再現します。

まず、三次元世界が必要ですよね。
そこに、A,Bを離れた位置に配置します。
次に、Aを動かします。
動きを表すには、時間世界も必要です。
三次元世界に時間世界を追加すると、時間を示す時間軸が現れます。
これで移動が定義できます。
移動とは、時間経過にしたがって「もの」の位置が変化することです。
そして、最終的な位置はAとBが接触した位置です。
これが、トンの定義です。

さて、これで完成でいいでしょうか?
実は、肝心なものが抜けてます。
それは「トン」です。

僕は、最初、「トン」って音が発生しないといけないって思ったんですよ。
でも、それは本質的じゃないんですよ。
何をもって本質的というかは、この図で説明します。

無意識は視覚などの知覚情報を基に仮想世界にオブジェクトを生成しますよね。
画像解析して、赤くて丸いからリンゴと判断してリンゴオブジェクトを作るとかです。
そして、意識が認識するのは、このリンゴオブジェクトです。
ここでいう本質的というのは、意識が直接認識するものを本質的といってます。
つまり、目や耳が直接知覚した光や音は、意識が直接認識するわけじゃないので本質的じゃないと言えます。

もっと分かりやすいのは感情です。
心にとって感情って、ものすごく重要ですよね。
人は、怖いとか緊張するとか、いろんな感情を感じますよね。
感情もオブジェクトです。
状況から判断して無意識が仮想世界に感情を作り出すわけです。
意識は、それを感じて、次の行動を決定するわけです。
そんなに重要なのに、感情って現実世界にありませんよね。
つまり、意識にとって重要なものは、仮想世界の側にあるんです。
だから、現実世界側の知覚で定義しようとすると、大事なことが抜けてしまうんですよ。

それじゃぁ、「トン」について考えてみます。
「トン」は確かに音ですけど、それは本質的じゃありません。
本質的というのは、心がどう感じるかです。

心の側から見たとき、「トン」って音がしたとき、注意が向くでしょ。
重要なのはここです。
「トン」って音じゃなくて、注意が向くってことです。

つまり、注意を向けさせるもの。
これが最も需要なことです。
ただ、これだけじゃ抽象的すぎるので、少しずつ具体的な定義に落としていきます。
すると、次の段階は「衝撃」です。

注意を向けさせるものは、痛みとか、光とかいろいろありますけど、そのうち一つが衝撃です。
お皿がガチャンて割れるのも衝撃ですし、爆弾が爆発するのも衝撃です。
衝撃が大きくなると、音だけじゃなくて、光や爆風も起こって、危険も感じます。
だから、衝撃には注意を向けないといけないんです。
そんな「衝撃」って概念があるわけです。
その一つが、「トン」って衝撃です。
これは比較的軽い衝撃です。
光は出なくて、「トン」と音が出るだけの軽い衝撃です。

この「衝撃」が、意識が直接受け取るものです。
意識が受け取るものはオブジェクトです。
つまり、衝撃オブジェクトが発生するわけです。
衝撃オブジェクトを発生させて、意識に注意を向けさせます。

仮想世界に配置されるオブジェクトは、注意を向けない限り意識されません。
だから、釘を打ってる場面を見て、あとから「床の色は何色でしたか」とか質問されても思い出せないわけです。
これは、床の色に注意を向けさせられてないからです。

さて、意識に注意をむけさせるには、意識プログラムにデータを送りつけないといけません。
通常は、プログラムがデータを取りに来るのですが、今回は反対で、プログラムにデータを送りつけるわけです。
プログラムにデータを送りつける処理としてイベントがあります。
コンピュータでイベントといえば、一番有名なのがクリックイベントです。
マウスがクリックされたとき、アプリケーションソフトにクリックイベントが送られます。
その位置にボタンがあれば、ボタンが押されるわけです。
今回の場合、衝撃オブジェクトってデータが意識プログラムに送りつけられるわけです。

そして、意識が衝撃オブジェクトを受け取るとは、衝撃に注意を向けることです。
注意を向けて、爆発してるのが見えたら、何か行動を起こさないといけません。
だから、注意を向けるってことは、意識にとってものすごく大事なわけです。

さて、それでは、改めて「トン」を定義します。
まず、仮想世界に三次元世界と時間世界を設定します。
そこにA,Bふたつの「もの」オブジェクトを配置します。
して、一方を動かして衝突させます。
これは、時間軸のスクロールバーを移動させるとAがBに近づくように移動することです。
そして、衝突したとき、衝撃オブジェクトがイベントとして発生します。
衝撃オブジェクトは衝撃の大きさを持っていて、この場合は「中」です。
衝撃中は、「トン」という音が発生します。
衝撃小は「コン」です。
ドアのノックとかです。
衝撃大の場合は「ドン」とか「バン」です。
音だけじゃなくて光や、衝撃波が発生することもあります。

さて、これだけの一まとまりの処理が「トン」の動作オブジェクトです。
それじゃぁ、動作オブジェクトを定義します。
まずは必要なのは世界とオブジェクトです。
そして、動きはスクリプトで記述されます。
さらに、必要に応じてイベントが発生することもスクリプトで記述されます。
これが動作オブジェクトの定義です。

それでは、動作オブジェクトの使い方を説明します。
無意識は、カメラからの画像を解析して釘と金づちがあると認識すると、それを仮想世界に生成します。
金づちは動いて、釘に衝突します。
無意識は、この状況に合う動作オブジェクトを検索すると「トン」が見つかりました。
そこにはスクリプトが書いてあります。
そのスクリプトを実行すると、釘と金づちが衝突した瞬間、衝撃オブジェクトがイベントとして発生します。
意識プログラムは、それを受け取って注意を向けます。
それが、「あっ、トントンって金づちで釘を打ってる」って認識することです。

ただ、これだけじゃ、当たり前すぎて、「トン」の意味が、ちょっと分かりにくいと思います。
そこで、比較のために、「トン」が発生しない場合も説明します。

たとえば、朝起きたばかりでぼぉーっとしてるとします。
意識も無意識も起動したばかりで、ちゃんと稼働してません。
意識は、何か動いてるのが見えるとか、なんか音が聞こえるぐらいしか感じません。
これは動きと音のオブジェクトしか生成されてないってことです。
だから、意識は注意を向けることなく、世界をぼぉーっと感じるだけです。

それが完全に目が覚めると、無意識が、動作オブジェクト「トン」を生成します。
すると、意識には衝撃イベントが飛び込んできて、そこに注意を向けるわけです。
これが、「おっ、トントンと釘をうってるな」って気づくことです。
世界を認識するとはこういうことなんです。
つまり、音や動きを再現しただけじゃ、世界を認識したことにならないんです。
衝撃オブジェクトを受け取って、注目すること、これが大事なんです。
だから、動作の意味を定義するとき、そこまで定義する必要があるんです。

ここまで仮想世界で再現されるから、意識は次々と注意を向けて、次に何をしないといけないのか考えて行動できるわけです。
これが世界を感じるってことです。
生きてるって、こういうことです。

はい、今回の動画が面白かったらチャンネル登録、高評価、お願いしますね。
それじゃぁ、次回も、おっ楽しみに!