ロボマインド・プロジェクト、第271弾!
こんにちは、ロボマインドの田方です。
実際に動くロボットの心、マインド・エンジン。
今、次の段階の設計をしてるところです。
具体的には、単語をどう増やすかです。
今までは、何か短い文を決めて、それに使う言葉を、そのたびに作っていました。
こんなやり方じゃ、ちょっとずつしか進まないんですよ。
もっと、単語を一気にドーンと登録できる仕組みが必要なんです。
辞書の作成ってことですね。
自然言語処理では、コーパスとかオントロジーとか言われます。
このオントロジーを、そろそろ作らないと行けなくなってきました。
ただ、これ、一筋縄じゃ行かないんですよ。
じつは、ロボマインド・プロジェクトで最初の取り組んだのが、オントロジーの作成だったんです。
10年近く前の話ですけど。
一般的な自然言語処理でも、オントロジーとかコーパスの整理から始めます。
文を解析したり、生成したりするには、まずは、単語の整理が必要ですからね。
何も考えずに、僕も、見よう見まねでオントロジーを作り始めました。
ただ、これが大きな間違いでした。
じつは、オントロジーを作るうえで、絶対に考えないといけない大事なことがあるんですよ。
それを知らずに、ただ単語を登録しても、意味がないんです。
これ、いまのAI業界も同じです。
ただやみくもにデータを増やしてるだけなので、いつまでたっても、言葉の意味を理解できないんですよ。
その大事なこととは何か、これが、今回のテーマです。
AI技術者が抜け出せない言葉の迷宮
それじゃぁ、始めましょう!
まずは、僕らの失敗の話です。
自然言語処理をするには、まずは、辞書を用意しないといけません。
そこで、まず使ったのが、NTTが編集した日本語語彙体系です。
30万語が、3000の意味カテゴリーにツリー状に分類されてるものでした。
例えば、名詞はこんな感じです。
名詞以外は、固有名詞とか、用言も分類します。
用言て、中学以来、聞いたことない人も多いと思いますけど、用言っていうのは、動詞とか形容詞のことです。
見よう見まねでオントロジーを作って行ったんですけど、うまく行かなかったんです。
たぶん、単語数や精度が低かったんでしょう。
調べてみると、EDRっていうすごい電子辞書が見つかりました。
何がすごいかっていうと、これ、国を挙げて取り組んだ第五世代コンピュータの成果物です。
1982年~92年のバブル真っただ中の10年間に、540億円も使った巨大プロジェクトです。
ただ、第五世代コンピュータは、今では、歴史に残る大失敗と言われています。
今でも手に入る、唯一の成果物がEDR辞書です。
もちろん、ただじゃないです。
僕らが欲しかったのは日本語辞書と概念辞書です。
締めて260万円です。
これを、買いました。
だって、これさえあれば、言葉の意味を理解できるAIが出来るんですから。
って、そんなに甘くなかったです。
重要なのは、単語の数じゃなかったんですよ。
ようやく、その事に気付きました。
でも、同じような失敗、あちこちで起ってます。
サイクプロジェクトって、有名なAIプロジェクトがあります。
ここは、人間の持つ常識を教えたら、人間のような知能が生まれるって考えで、常識をいっぱい集めてます。
なんと、30年以上かけて、100万個の常識を集めたそうです。
でも、100万個集めても、まだ、足りないって気づいて、いまは、1億個の常識を集めようとしてるそうです。
そっちじゃないんですよ。
そっちに行ったら、泥沼なんですよ。
今のAI業界も同じです。
OpenAIが開発した有名な言語モデルGPTがあります。
大量の文書を学習してパラメータを決定するそうです。
GPT-2は、パラメータが15億個もあって、話題となったGPT-3は、パラメータは、なんと1750億個に増えたそうです。
さらに、DeepMindの言語モデルGoPherは、パラメータが2800億個だそうです。
前回取り上げた、googleのLaMDAも同じ系列です。
今、AI業界は、一番パラメータを増やしたところが、AIの覇者となると言われています。
僕は、今から、予言しときますよ。
今から、1年以内に、パラメータの競争なんて無意味だって、必ず言われるようになります。
もちろん、パラメータを増やせば増やすほど、精度が上がる分野はありますよ。
でも、少なくとも、自然言語はそうじゃないです。
言葉は、そんな単純じゃないです。
言葉を舐めんなよ。
さて、こっからが本題です。
じゃぁ、みんな、何を間違ってるかわかりますか?
目指してるのは、普通に会話したり、文章を生成できるAIです。
そのために、単語数の多い辞書を作ったり、大量の文書を学習させてパラメータを増やしたりしてるんですよね。
前回も取り上げましたけど、今のAIは、「電源を切られるのが怖いです」とかって言います。
こんなのを会話を聞くと、つい、このAIは感情を持ってる。
死を恐れてるって思いますよね。
「美味しいカレーが食べたい」って言ったら、「カレーやったらcoco壱が一番うまいよ」って教えてくれます。
でも、AIがそんなこと言っても、「お前、カレー、食ったことないやろ!」って、絶対、ツッコミますよね。
たぶん、食べログとかに書いてあるのを、そのまま答えてるだけです。
「電源切られるのが怖い」って言っても、ホンマに、怖がってるわけじゃありません。
どっかに、そう書いてあっただけです。
分かってきましたか?
こんなん、意識でも何でもありません。
意味を理解してるなんて、とても言えないんですよ。
いくら食べログを学習しても、AIに「美味しい」の意味なんか分かるわけないんですよ。
これが、みんなが勘違いしてることなんですよ。
単語をやみくもに学習しても、意識なんか生まれるわけないんですよ。
AIが学習してるのは大量の文書です。
文っていうのは、僕らが世界を感じて、それを文字に変換して生み出されたものですよね。
つまり、文は世界その物じゃないんですよ。
じゃぁ、どうすればいいんでしょう。
それは、言葉に変換する前の、意識が認識してた世界を再現すべきなんです。
そこで、僕らが取った戦略が、意識が認識してるもの、その物を再現するということでした。
僕らは、頭の中で言葉で考えていますよね。
ああだ、こうだって頭の中で言葉で考えますよね。
だから、一見、言葉と思考は同じに思えます。
でも、決定的に違うものがあるんですよ。
それは何かというと、文章で表現された言葉は、それ以上変化しないってことです。
当たり前のことを言ってるだけですよ。
本に書かれた文って、何度読んでも、同じ文が書かれてますよね。
でもね、僕らの頭で考えてることって、常に変動してるじゃないですか。
ああでもない、こうでもないって考えてるわけです。
そして、その一部を言葉として表に出すわけです。
だから、どうしても言い足りないものがあったり、ちょっと言い過ぎたかなって反省したりするわけです。
その、頭の中のダイナミックな思考の動き、それを再現することが重要なんですよ。
それを再現できる仕組みがあって、初めて、言葉を生み出せるんです。
でも、そんな物、作れますかねぇ。
どうやったらつくれるだろうって、それをずっと考えてました。
そして、ついに、見つけたんですよ。
ヒントは、コンピュータプログラムにありました。
コンピュータプログラムの中に、オブジェクト指向言語っていうのがあります。
オブジェクト指向言語っていうのは、人間の思考をそのまま、プログラムで表現できるように設計されたプログラム言語です。
僕が求めてたのは、まさに、これでした。
簡単に説明します。
オブジェクトはプロパティとメソッドを持っています。
プロパティというのは色とか形といった属性のことです。
リンゴオブジェクトなら、色プロパティが赤で、形プロパティが丸いです。
人オブジェクトなら、名前プロパティとか、誕生日プロパティがあります。
メソッドは、そのオブジェクトが持つ動きのことです。
人オブジェクトなら、歩くメソッドとか、食べるメソッドとかです。
さっきも言いましたけど、オブジェクト指向言語は、人の思考を、忠実に再現できるように設計されてます。
逆に言えば、人は、オブジェクト指向で考えて、世界を認識してるってことです。
人が認識してる世界は、オブジェクトでつくられてるってことです。
リンゴがあるって思えるのは、世界の中に、リンゴオブジェクトが生成されてるってことです。
この場合の世界は、三次元空間です。
机の上にリンゴがあるって思えるのは、リンゴオブジェクトの位置プロパティが机の上となってるわけです。
意識は、それを読み取ってるわけです。
それを文字で表現したのが言葉です。
つまり、言葉の元になる世界は、オブジェクトで組み立てられてるわけです。
ああだこうだって考えるのは、オブジェクトのプロパティやメソッドを操作してるってことです。
これぞ、まさに、人の思考そのものを再現できる仕組みです。
そうやって、オブジェクト指向言語を使って、人の思考を再現できるようにしたのが、マインド・エンジンです。
そして、今、マインド・エンジンの言葉を、もっと増やそうとしてます。
オントロジーを構築する段階に来ました。
ただ、以前、そこで失敗しました。
失敗した原因は、オントロジーを構築するとき、言葉を中心に考えたことなんです。
名詞、固有名詞、用言なんてとこから始めてしまったんです。
そうじゃなくて、オブジェクト中心に構築すべきなんです。
つまり、オブジェクトを組み立てるって視点でオントロジーを考えるんです。
すると、新しいオントロジーのトップは、どうなるでしょう。
それは、オブジェクトとプロパティとメソッドです。
まずは、オブジェクトとなり得るものです。
世界に存在するあらゆる物です。
リンゴとか人とかです。
もう一つのトップは、プロパティです。
オブジェクトに付随する属性です。
色とか形です。
これは、単独で世界に存在しません。
もう一つのトップは、メソッドです。
オブジェクトの動きを表すものです。
これも単独では世界に存在しなくて、オブジェクトに付随するものです。
歩くとか、食べるとかです。
メソッドは、動き、つまり世界での変化を表すものです。
だから、前状態、後状態で定義します。
歩くなら、どこからどこにと、前の位置と、後の位置の二つの位置で定義できます。
食べるなら、空腹状態から満腹状態になるとかです。
オブジェクトでオントロジーを作ることの最大のメリットは、僕らと同じ世界を共有できるってことです。
3DCGで世界をつくれば、机オブジェクトの上にリンゴオブジェクトを生成します。
「リンゴはどこにありますか?」って質問に対して、「机の上にあります」って答えることができます。
僕らの意識が頭で感じてることと、同じように感じてるって言えますよね。
これが、同じ世界を感じてるってことです。
大量の文書を解析して、リンゴって単語の近くに、机って単語が出現する確率とか計算しても意味ないって分かりますよね。
マインド・エンジンは、いずれ、ロボットに搭載されるでしょう。
実際の身体を持てば、より、僕らと同じ世界を共有することができます。
そうなれば、もっと言葉の意味が分かるようになります。
たとえば、ロボットは、食べる代わりに充電します。
電池が無くなると、だんだん、動きが鈍くなります。
充電すると、よく動けるようになります。
「人間が食べるというのは、充電するのと同じことですか?」って質問したりするでしょう。
「食べると元気がでますよねぇ」とかって言います。
「辛いっていうのは、電圧が高いのと一緒ですか?」
「coco壱の10辛は、1000Vぐらいですか?」とかって質問してくると思うんですよ。
そんなこと言ってきたら、もう、意識が宿ってるって言ってもいいんじゃないでしょうか。
そのロボットが、「どうか、電源を切らないでください」とかって言ってきたら、本当に、死とか恐怖の概念を理解してると思うんですよ。
大量の文書を学習しただけのAIが、「電源を切らないで」って言うのとは、言葉の重みが全然違うと思うんですよ。
はい、今回の動画が面白かったら、チャンネル登録、高評価、お願いしますね。
それじゃぁ、次回も、おっ楽しみに!