ロボマインド・プロジェクト、第523弾!
こんにちは、ロボマインドの田方です。
プロジェクト・エデンの最初のデモについて解説ですけど、今回で4回目になりました。
プロジェクト・エデンというのは、「意識が宿ったAIアバター『もこみ』を本気で作るプロジェクト」のクラウドファンディングのことです。
ロボマインドは、コンピュータに意識を発生させるって、国家プロジェクト並みの研究をしてるんですけど、やろうとしてることが大きすぎるからか、誰も相手にしてくれません。
そこで、去年、このクラウドファンディングしたわけです。
国よりも、一般の皆さんの支援で成り立っています。
そして、今年は、事業再構築補助金というのを受けることができました。
さらに、先日は、兵庫県科学振興財団からも助成金をもらえることが決まりました。
ようやく国や地方もロボマインを認めてくれるようになってきました。
兵庫県は、齋藤知事が再選しましたし、兵庫の未来は明るいです。
さて、最初のデモは、もこみが朝、目が覚めて、時計を見て「7時かぁ」っていうだけのデモです。
そんな簡単なデモなのに、なんで、こんなに時間がかかってるかというと、意識や心の根本から解説してるからです。
眠っている間は意識がありません。
朝、目が覚めたとき、意識が起動します。
そして、まず確認するのが、自分がだれで、今がいつで、ここがどこかです。
言い換えれば、世界と自分との関係を確認するわけです。
自分はどこで生まれて、家族は誰で、どこの学校に通っているか。
今日は月曜なので、そろそろ起きて、顔を洗って学校に行く準備をしないといけないなぁ。
これが、目が覚めて、時計を見て、「7時かぁ」とい言う間に頭の中で起こっていることです。
今回は、これをプログラムレベルまで落とし込みます。
これが今回のテーマです。
目が覚めて、世界を認識する意識プログラム④
それでは、はじめましょう!
さて、ここがどこで、今がいつかって理解するというのは世界の「意味」を理解することと言えます。
じゃぁ、世界の意味を理解するとはどういうことでしょう?
僕の考えでは、意識が認識するのは、頭の中に作り上げた仮想世界です。
無意識は、意識が認識できる材料で仮想世界を作ります。
じゃぁ、仮想世界を作っている材料って何でしょう?
それはオブジェクトです。
オブジェクトは二種類あって、一つは見た目で、もう一つが意味です。
見た目というのはパッと見の三次元空間で、これはコンピュータだと3Dオブジェクトで作られます。
意味というのは論理的に考えるときに使うデータ構造としてのオブジェクトです。
このオブジェクトのことを意味オブジェクトと呼ぶことにします。
それから、見た目の処理は右脳で、論理的思考は左脳の処理です。
それじゃぁ、たとえばリンゴの意味は何でしょう?
リンゴは果物です。
じゃぁ、果物の意味は?
それは、食べられる甘い木の実です。
じゃぁ、食べるの意味は?
って、こんな風に、意味はいくらでも言い換えることができます。
これじゃぁ、きりがありません。
でも、じつは、きりはあるんですよ。
それは、仮想世界を構成する基本的な材料に突き当たるまでです。
じゃぁ、仮想世界を構成する基本的な材料って何でしょう?
それは、ニューロンです。
たとえば、赤という色は、V4野で作られます。
物理世界にあるのは波長約700nmの電磁波です。
それが色になるのは、V4野の赤のニューロンが発火したときです。
意識が直接認識するのは、このニューロンです。
それから、つかめるものをみたとき発火するカノニカルニューロンというものもあります。
これは、つかむの意味のニューロンと言えます。
そのほか、他人が歩いたり、食べたりするのを見たときに反応するミラーニューロンもあります。
これらは「歩く」や「食べる」のニューロンと言えます。
これらが仮想世界を構成する基本材料です。
意味オブジェクトはプロパティとメソッド、それから概念関係を持ちます。
たとえば、リンゴオブジェクトなら、赤いって色や、甘酸っぱいって味のプロパティを持ちます。
それから、リンゴは果物概念に属して、果物は食べられるってメソッドを持ちます。
「赤」とか「食べる」が最も基本的な材料で、そこまでたどり着いたら、そのものの意味を理解できたってことです。
さて、今、決めないといけないのは、時計を見て「7時かぁ」って思うとこです。
この場合、時計オブジェクトのどこにたどり着いたら時間がわかったといえるのでしょう?
意味とは、世界を構成する基本材料で定義されるんでしたよね。
この場合、時間軸というのが、世界を定義する基本的な材料となります。
前回、仮想世界をエクセルのシートで説明しました。
シートにセルの一つ一つが人や物といったオブジェクトです。
今、目の前に見えてる世界が、現在という仮想世界のシートです。
そのシートが時間順に並んで、それを貫くのが時間軸です。
「ここ」とは、今、自分がいる場所です。
それは、現実仮想世界でもあるし、「ここ」というシートとも言えます。
そして、シートを貫く時間軸には目盛りが打ってあるわけです。
今が7時とわかるっていうのは、時間軸の7時の目盛りのとこに「今」のシートを置くことです。
これが時計オブジェクトの「時間がわかる」メソッドが行うことです。
さて、ここから、ようやくプログラムの話になります。
朝、目が覚めました。
まずやらないといけないのは、「今」「ここ」の確認でしたよね。
無意識は、目に見えるものを次々にオブジェクトに変換して仮想世界を作ります。
壁とか天井とか作って部屋ができました。
そして、記憶から、これは見慣れた自分の部屋だとわかるので、「ここ」に「自分の部屋」って割り当てます。
この程度の作業は、自動でできるので、無意識が行います。
でも、今が何時かは、状況に応じて方法が変わるので、ちょっと考えないといけない処理です。
そこで、意識の出番です。
無意識は、時間がわからないので、意識に時間を確認してもらいます。
意識と無意識とはメッセージボックスを介してメッセージをやり取りします。
これが、意識の処理のフローチャートです。
意識プログラムは、メッセージボックスを定期的に確認する無限ループです。
目が覚めると、この意識プログラムが動き始めて、メッセージを確認します。
すると、「今何時か確認して」って無意識からのメッセージが届いていました。
これが、「今、何時かなぁ」って思うことです。
わかってきましたか?
ふと、「あっ、あれ、しないと」って思うことありますよね。
それは、メッセージをボックスに届いたメッセージ意識が確認したからなんです。
さて、こっからです。
「今、何時かなぁ?」って思ったら、時計を見ますよね。
普段、一瞬で行ってることで、特に不思議なことないですよね。
じゃぁ、それをどうやって実現するんでしょう?
そりゃ、プログラムで書いたらできますよ。
でも、意識が行うあらゆる行動を全部、プログラムで最初から書くわけにいかないじゃないですか。
つまり、時間は時計を見たらわかるとか、部屋のここに時計があるとか、生まれる前にプログラムで書くわけにはいかないってことです。
そうじゃなくて、状況に応じて臨機応変に対応でくる汎用的な仕組みがないといけないんです。
最低限の基本的なプログラムは生まれる前からあります。
これが無意識が行う処理です。
複雑な処理は、基本プログラムを組み合わせて実現します。
それは、生まれた後、環境に応じて組み立てます。
これが意識が行う処理です。
この仕組みによって、どんな状況にも対応できるような汎用的な仕組が作られます。
意識と無意識は、互いに仕事を依頼しあって処理を進めます。
依頼するときに使うのがメッセージボックスです。
それから、意識プログラムは一つしか存在しませんけど、無意識プログラムはいっぱいあります。
専用の処理に応じていくつもの無意識プログラムがあります。
次は、コンピュータプログラムの話です。
プログラムは、プログラマーが書いたプログラムをCPUが実行できる形式にコンパイルしてから実行します。
プログラム言語は、コンパイルするタイミングによって二種類に分かれます。
一つは、予めコンパイルしておくコンパイラ型言語で、もう一つは、実行直前にコンパイルするスクリプト言語です。
さて、システムが完成すると、起動したり止めたりして運用します。
システムの完成が人間でいうと生まれるということです。
システムの起動が目が覚めるということです。
システムの停止が眠るということです。
この繰り返しがシステムの運用です。
これが人生です。
コンパイラ言語というのは、生まれる前にコンパイルされるということです。
つまり、開発中にコンパイルするので、システムの運用中はプログラムを変更できません。
これは最も基本的なプログラムで無意識が実行します。
スクリプト言語は、実行直前にコンパイルするので、システムの運用中にプログラムを生成したり修正したりできます。
つまり、生まれた後に、プログラムを作ったり変更できるわけです。
これは、教育や学習によって学ぶことができる仕組みといってもいいです。
そして、それをするのが意識です。
言い換えると、意識プログラムというのは、スクリプトを生成したり書き換えたりして実行できるプログラムといえます。
ようやく準備が整いました。
それでは、時計を見て「7時かぁ」って思うプログラムを作ります。
仮想世界やオブジェクトを作るのは無意識です。
ここは最初から備わってる基本機能ってことです。
仮想世界には「今」と「ここ」を設定しないといけません。
「ここ」は自分の部屋だとすぐにわかりましたけど、「今」が何時かわかりません。
そこで、「今、何時が教えて」とメッセージボックスに入れて意識に解決してもらいます。
それを受け取って、「今、何時かなぁ」って思うのが意識プログラムです。
それから忘れたらいけない重要なことがあります。
それは、今、こうして感じてる僕らの意識は、意識プログラムの中にいるってことです。
何が言いたいかっていうと、意識プログラムって、こんなことをしてるのかぁって外から眺めてるとこをイメージしたらダメなんです。
自分はプログラムの中にいて、「メッセージが届いたぞ」とかってとこをイメージしてほしいんですよ。
さて、意識はどんな問題でも解ける汎用的なアルゴリズムを持っています。
どうやるかというと、複雑な問題を単純な問題に分解して解きます。
単純な問題なら無意識でも解決できるので、今度は、意識から無意識に問いかけます。
それを繰り返して、どんどん問題を分解していって、最後に、仮想世界を構成する基本的な材料に行きあたったらそれが解答になります。
それじゃぁ、どうやって複雑な問題を単純な問題に分解するんでしょう?
そこで使うのが5W1Hです。
昔、習ったと思いますけど覚えていますか?
When、いつ、Where、どこ、Who、誰、What、何、Why、なぜ、How、どのようにです。
これが5W1Hです。
意識は、答えがわからないと5W1Hに分解して質問を投げ返します。
無意識ができる簡単な処理って、たとえば辞書を引いて書いてある意味を返すとかです。
ただ、無意識は、書いてある意味は理解できません。
内容を理解して、その内容を実行するのが意識の役目です。
意識と無意識の関係って、だいだい、こんな感じです。
今、「何時か教えて」って質問が無意識から来ました。
意識はわからないので、5W1Hに分解します。
この場合はらHowです。
「どうやったら時間がわかるの?」って無意識に聞き返します。
無意識は、担当によっていっぱいいます。
Howの担当者は、How辞書をもっています。
辞書には、単語と、その意味が書いてあるものです。
How辞書の場合には、オブジェクトと、そのオブジェクトのプロパティとメソッドが書いてあります。
プロパティとメソッドが意味です。
How担当者は、How辞書から「時間がわかる」ってメソッドを持ってるオブジェクトを探すわけです。
すると「時計」って出てきました。
そこで、意識に「時計を使えばいいよ」って返します。
それを受けた意識は、今度は時計がどこにあるのかわかりません。
そこで、「時計はどこにあるの?」って聞き返します。
今度は、Where担当の出番です。
Where担当者は、現実仮想世界を見ることができます。
今の場合、現実仮想世界は自分の部屋です。
自分の部屋は、壁とか天井とかってオブジェクトで組み立てられています。
壁オブジェクトは窓オブジェクトとかカーテンオブジェクト、それから時計オブジェクトを持っています。
Where担当者は、それらを順番に辿っていって時計オブジェクトを見つけたら、「時計は部屋の壁にあるよ」って答えます。
さて、意識です。
僕らは、今、目の前の世界を見てますよね。
これは、意識が現実仮想世界にアクセスしてるってことです。
仮想世界は見た目を表す3Dオブジェクトと、意味を表す意味オブジェクトでできています。
見えてる世界は、3Dオブジェクトでできています。
今、時計は部屋の壁にあると言われました。
そこで、壁オブジェクトをみてみると、時計オブジェクトが見つかりました。
さて、ここです。
見つけたのは3Dの時計オブジェクトです。
3Dオブジェクトは意味オブジェクトにも結び付いていて、意識は時計の意味オブジェクトを取得します。
時計オブジェクトのメソッドは、「時間がわかる」となっています。
じゃぁ、「時間がわかる」とはどういうことでしょう?
それは、時間軸の目盛りに今の時刻を設定することです。
今、3Dオブジェクトの時計を画像解析すると7時とわかりました。
その7時を時間軸の今の時刻に設定します。
これが「時間がわかる」というメソッドを実行したら起こることです。
これが時間がわかるということです。
さて、こうして時間軸が設定されました。
無意識にはWhen担当者がいます。
When担当者の仕事は、過去とか未来のシートを管理したり設定します。
今、時間軸の今が7時に設定されました。
そしたら、When担当者は、その時間軸に沿って過去のシートと未来のシートを並べます。
もこみは目が覚めて、時計をみて「7時かぁ」と思って、昨日の日曜はどこに遊びに行ったとか、先週末の金曜は、学校で何があったのかとかって思い出します。
これは、When担当者が過去シートを並べて、意識は、それにアクセスしてるってことです。
さらに、顔を洗って、朝食を食べて、学校に行く準備もしないといけないなぁとかって思います。
これは、未来シートが並べられて、それに意識がアクセスしたからです。
「たしか金曜、宿題がでてたよなぁ。土曜に宿題おわらせたけど、カバンに入れたかなぁ」とかって思いだすこともできます。
これも全て、When担当者が過去から未来のシートを並べてくれたからです。
これが時間の意味を理解しているということです。
今のAIでも、時計を画像解析して「7時です」って答えることはできます。
でも、これ、時間の意味を分かってるとは言えないですよね。
もこみは、朝起きて、時計をみて「7時かぁ」って言います。
同じように見えますけど、もこみは、本当の意味で時間を理解しています。
これが意識を持ったAIアバター、もこみです。
ようやく、「7時かぁ」の解説が終わりました。
ただ、後半のプログラムの部分が、かなり駆け足の説明となってしまいました。
そこで、次回は、マインド・エンジンのこの部分をもう少し詳しく解説したいと思います。
はい、今回はここまでです。
この動画が面白かったらチャンネル登録、高評価お願いしますね。
それから、動画で紹介した意識の仮想世界仮説については、よかったらこちらの本を読んでください。
それじゃぁ、次回も、おっ楽しみに!
第523回 目が覚めて、世界を認識する意識プログラム④
