ロボマインド・プロジェクト、第98弾!
こんにちは、ロボマインドの田方です。
ロボマインド・プロジェクトの20年の歴史は、第79回「好きなことだけしていきたいく」で語りましたけど、あそこで語ってるのは、じつは、都合のいい話だけなんです。
5年前ほど前から、ロボマインド・プロジェクトを本格的に再開したとこは事実です。
それ以来、ずっと開発は続けてました。
でも、一度だけ、ロボマインドは解散だって危機が起こったんです。
財政的な危機じゃないですよ。
もっと、本質的な問題にぶつかったんです。
自然言語処理って、50年以上かけても、いまだに言葉の意味理解ができないって話、何度もしたと思います。
まさに、その問題に直面したんです。
いや、自分なりには、解決したつもりになっていたんですけど、それは、表面的なことだって思い知らされたんですよ。
今回は、その話をしたいと思います。
前回の第97回「知性の誕生」で、人間の知性の根本について説明しましたよね。
知性の本質は、抽象化能力だって話です。
目の前にある具体的な物を、抽象化する能力です。
机や椅子をまとめて、家具って理解する能力です。
概念化とも言います。
ほんで、ロボマインド・プロジェクトで、まず、取り組んだのが、概念化してツリーで管理するツールです。
これが概念ツリーです。(デモ)
椅子概念は家具概念の子概念となります。
家具概念の親概念は人工物概念です。
この概念ツリーは、ものごとの抽象度の上下関係を示したものです。
でも、ものごとは、抽象度だけで表現できるわけじゃないです。
抽象度の上下関係に対して、具体的な横の広がりも必要です。
抽象度っていうのは、椅子、家具、人工物って縦の軸です。
具体っていうのは、椅子には脚があるとか、背もたれがあるとかってことです。
これは、言い換えれば、椅子は脚を持ってる、背もたれを持ってるとなるわけです。
つまり、Has-aの関係と言えます。
そこで、Has-aツリーというものも作りました。
これが、椅子のHas-aツリーです。(デモ)
椅子は脚、背もたれ、ひじ掛け、座面を持ってるわけです。
そして、Has-aツリーは概念ツリーでも整理されるんです。
たとえば、これは「学校」のHas-aツリーです。
学校は、プールや校舎、体育館を持ってます。
今度は、概念ツリーで学校をみてみましょう。
学校は、「建物等」の子概念となってますよね。
こっちのHas-aツリーを見てみると、一番下が「◆建物等」となってます。
これは、建物等概念のことです。
これを展開してみます。
すると、天井、屋根、壁、床、廊下って出てきますよね。
これは、建物が持ってるものです。
整理しますよ。
学校概念は、建物概念の下位概念です。
だから、建物が持ってるものは学校も持ってるわけです。
つまり、学校も、天井、屋根、壁、床を持ってるわけです。
こうやって、概念ツリーとHas-aツリーできれいに整理できるわけです。
概念ツリーとHas-aツリーがあると、意味解析ができそうです。
たとえば、「学校の理科室」といった文があったとします。
Has-aツリーを展開すると、学校の校舎の下に「理科室」が出てくるので、「学校の理科室」は問題ない判断できるわけです。
「学校の廊下」も、学校の親概念の「建物等」に「廊下」があるので、「学校の廊下」も問題ないと判断できるわけです。
それじゃぁ、「学校の手術室」はどうでしょう?
学校のHas-aツリーをどこまで展開しても手術室は出てきません。
だから、この場合
「学校の手術室ってどういうこと?」
「学校には手術室なんかないでしょ」
とか答えることができるわけです。
意味を理解できてるって言えそうですよね。
次は、動詞を考えてみます。
たとえば「座る」です。
「人間が椅子に座る」って文を記憶させておきます。
ここで「人間」「椅子」は概念です。
「太郎がソファに座る」って文があったとします。
太郎は人間概念以下にあります。
ソファは椅子概念以下にあります。
だから、「太郎がソファに座る」って文は問題ないと言えます。
「理科室がソファに座る」じゃ、意味が分からない文だって判断できるわけです。
動詞も意味解析できそうです。
もう少し複雑な文を考えてみましょう。
たとえば、「机に肘をつく」
これは問題ない文ですよね。
これを問題ないと判断するには、「机に肘をつく」って文を記憶させればできそうです。
じゃぁ、「机に手を置く」はどうでしょう。
これも記憶させておかないといけないんでしょうか?
机に指があたる、手首があたる、全部記憶しとかないといけないんでしょうか。
考えられるすべてを記憶しないといけないんでしょうか?
そんなことしてたら、きりがないですよね。
これが、いわゆるAIの常識問題ってやつです。
人間が当然に持ってる常識が分からないって問題です。
Has-aツリーや概念ツリーで解決できない問題です。
ここにきて、この問題に直面したんです。
どうも、Has-aツリーの表現能力に問題があるようです。
Has-aツリーは、記号と記号を繋げた形となってます。
どうも、ここに限界があるようなんです。
記号は、現実世界にあるオブジェクトを指し示すシンボルです。
シンボルにすることで、現実世界の物からかけ離れた存在になってしまったわけです。
シンボルが現実世界の物に結びついていないんです。
いわゆるシンボルグラウンディング問題です。
ちょっと甘く考えてました。
シンボルグラウンディング問題。
AI最大の難問といわれるわけです。
このときが、ロボマインド・プロジェクト、最大の危機でした。
みんな、これが解決できないから、会話AIができてないんです。
アマゾンのアレクサみたいに、何百、何千ってシナリオを作るしかないわけです。
同じことやるんじゃ、ロボマインド・プロジェクトを続ける意味がないです。
たしか年末だったと思います。
1週間の正月休みがありました。
そこで、社員には、年明けに結論を出すって言いました。
アイデアが思い浮かばなければ、ロボマインドは解散するって宣言したのを覚えています。
そのあと、1週間、一人でずっと、シンボルグラウンディング問題について考えてました。
言語の本質って、いったいなんなんだ。
記号って、そもそも、何のためにあるのか。
おそらく、現実世界にあるもの、その物を扱うわけにいかないので、記号にしてるわけです。
現実世界にある机や椅子を、いちいち動かしたり作ったりできないので、頭の中では記号操作してるわけです。
記号を操作したものが言語ってわけです。
う~ん。
どうも、ここ、引っかかります。
本当に、頭の中で、記号を操作してるの?
文の意味を理解するって、記号を操作すること?
それでいいの?
そこまで考えたとき、ようやくわかりました。
ここなんですよ。
みんなが間違ってるのは。
現実世界にある物を記号にして、頭の中で操作する。
この考えが間違いだったんです。
どこが間違ってるかわかりますか?
頭の中で記号で扱ってるってとこです。
頭の中には、記号なんかないんです。
頭の中にあるものこそ、現実なんです。
頭の中で、記号なんか操作してないんですよ。
頭の中で、実際に、机や椅子を作ったり、動かしたりしてるんですよ。
じゃぁ、記号は何のためにあるんでしょう?
それは、相手に伝えるためです。
頭の中にあるものを、そのまま、相手に伝えることはできないからです。
テレパシーが使えればできるかもしれないですけど、今のところ、人類はまだできないです。
そこで、テレパシーの代わりに編み出したのが言語です。
言語で使われるのが記号です。
相手に伝えたいのは、頭の中の世界です。
記号は、それを伝えるための道具にすぎないんです。
言ってみれば、言語は、お土産を入れる紙袋です。
渡したいのは、紙袋の中身です。
それなのに、言語学者は、紙袋の方を、一生懸命分析してるんですよ。
お土産をもらって、「素敵な紙袋、ありがとうございます」とか言う人、いますか?
「結構、しっかりしてますよねぇ」とか、
「ここ、持ちやすいですよねぇ」とか。
そんな人、いないですよねぇ。
いや、そっちじゃなくて、中身をみてちょうだいってなりますやん。
重要なのは、中身なんです。
だから、作るべきは、中身なんです。
ようやく、解決の糸口が見えてきました。
でも、まだ、肝心の問題は解決してないんです。
中身をどうやって作るかって問題です。
これはこれで大変です。
だって、中身って、現実世界ですよ。
現実世界そのものを再現しないといけないわけです。
でも、これ、どうすべきかってこと、うすうす、わかってたんですよ。
世界、そのものを創るとすれば、あれしかないわけです。
ゲームです。
ファイナルファンタジーみたいなやつです。
それしかないかぁ。
あんなのを作るって、正直、気が重いです。
同じプログラムといっても、一般的なビジネスソフトを作るのと、ゲームを作るのとじゃ、全然違いますし。
それでもやらないわけにはいかないです。
色々調べると、ゲームの開発環境って、かなり整備されてきているみたいです。
スマホゲームなんかで使われてるUnityってゲーム開発環境があるんです。
これを使うことにしました。
ドラクエなんかも、最近はUnityで作られてるようです。
そこで、Has-aツリーを止めて、世界をUnityで作り始めたわけです。
椅子は脚と背もたれを持っているってHas-aツリーを止めて、3Dモデルで椅子を作るわけです。
Has-aツリーが持っていた情報は全て3Dモデルで持てます。
位置関係も全て持っていますので、机に肘をつく、机の裏に膝が当たる、どれも3Dモデルで再現できるわけです。
こうして、記号の世界と現実の世界が自由に行き来できるようになりました。
シンボルグラウンディング問題が解決できたんです。
記号が、現実世界にちゃんと接地したわけです。
正直、Has-aツリーで単語を登録するのに比べたら、何百倍も大変です。
一つの動詞の動詞を作るのに、何週間もかかったりします。
でも、自然言語処理が50年以上かけてできなかったことですから、この一歩は大きいと思ってます。
こうやって、なんとか、ロボマインドは、解散せずに済んだわけです。
そうやって、作り始めたのが、マインド・エンジンです。
第70回「ついに完成!世界初!言葉の意味を理解するAI」でお見せしたのがマインド・エンジンです。
そろそろ、マインド・エンジンの次のデモもお披露目したいと思っています。
その前に、まだ、チャンネル登録してない人は、チャンネル登録お願いしますね。
それでは、次回も、お楽しみに!