読者です 読者をやめる 読者になる 読者になる

AIと言語

人工知能 強化学習 機械学習 自然言語処理

本当はこれから考えを深めていかなくてはならないアイデアで、これから改良していこうという段階なのですが、面白そうなので書きます。

 

まず、できるだけ話をクリアにしたいので定義をします。AIはここではreinforcement learning agentとします。つまりAIとは与えられたタスク(普通は1つだが、複数もあり得る)に対して報酬(評価)を最大化する最適化マシンである、ということにします。これが現在では一般的なAIの定義な気がするので、とりあえずこうしておきます。

 

また、特に高次元のインプット・アウトプットに対応するためにdeep learningを使うことをイメージしています。これがいわゆるdeep reinforcement learningです。これに関しては色々と解説がありそうなので説明は省きます。

 

Deep learningを組み合わせることによって、ゲームとして定式化できるタスクであれば、(従来と比べて)はるかに複雑で高次元なゲームであっても人間並、あるいはそれ以上のレベルで攻略できることが近年実証されつつあります。

 

ただし、このような意味でのArtificial Intelligenceと、人間のHuman Intelligenceの間にはいくつか差があることも知られています。その中でも特に顕著なものは、

①AIはひとつのタスクに特化している(いわゆるmultitask learningはまだまだ難しい)が、人間は色々なタスクを(多くの場合初見であっても)うまく解決していくことができる

②AIは学習に人間の何万倍~ものデータが必要である

ということかなと思います。このような観点からみるとAIはまだまだ人間には及ばないし、その通りだと思います。

 

具体例として、に限って言えば人間はかなり少ない事例から言語を学ぶことができることが知られています。これはpoverty of stimulusと呼ばれていて、言語学の世界では議論の的になっているようです。これと同じようなことは画像認識でも言えます。

 

とりあえずは置いておいて、の問題をどのように解決すればいいでしょうか?1つの策としては何万倍~ものデータを用意してあげればいいじゃんという強硬策があります。もちろんある程度はdata efficiencyを考える必要はあると思いますが、もしもデータを大量に用意できて、さらにAIが膨大なデータを処理する能力を持つのであれば、これは理にかなっているように思います。

 

*強化学習で言えば、各時点で統計的に最適な方策を計算すればdata efficiencyは改善できますが、その分計算時間がかかります。それだったら、大雑把に方策を評価して大量に試行錯誤を繰り返すことによって、観測データを増やせばいい、という発想になります。

 

さて、ここでreinforcement learningにおける2つの流派のようなものが生まれてきます。1つ目は、バーチャルな世界を用意して、AIをその仮想世界で超高速に学習させる、という方法です。2つ目は、センサーをつけたAI(というかロボット)を現実世界で学習させる、という方法です。

 

例えば言語獲得というタスクを考えてみると、現実世界で人間と会話をしながら言葉を学習することもできますが、これはかなり時間とコストがかかりそうです。一方で仮想世界にはそもそも言語が用意されていないので、人間のような指導はちょっと期待できません。

 

しかし、仮想世界において、AIたちがAI同士の間で通じる新しい言語を作り出すことは可能です。というより、このような言語をAI創発することは必然のように思われます。これはゲーム理論の立場から次のように説明することができます。

 

・完全協力ゲーム(全てのAIが等しく報酬を得るゲーム)において重要になるのは、AI同士が行動をcoordinate(協調)することです。タスクを成功させるにあたって、このcoordinationがほとんど必須になります。それではどのようにそれを実現すればいいでしょうか?1つの有力な方法はコミュニケーションをとることです。コミュニケーションを情報のやり取りと捉えるなら、おそらく実数のような連続値を送る方法と、ビットのように離散値の情報を送る方法、という2パターンがあります(もちろん結局はビットで情報をやり取りすることにはなりますが、ビット情報の表す「意味」をここでは考えています)。連続値で情報をやり取りするとなると、これを言語として捉えるのは結構難しいものがありそうです(例えばパラメーターを丸々共有する場合など、コミュニケーションではあるが言語とは言いづらい)。しかし、効率性などを考慮すると(意味的に)離散的な情報を送ることになる、という示唆があります。また、そのような離散的な情報のやり取りを通じて実際に共通のプロトコル創発することは、deep reinforcement learningの枠組みで(小規模な実験ですが)すでに存在します。

 

とにかくmulti-agentが存在する仮想世界で、AIたちは協調する必要があります。そしておそらくこれは離散的な意味を持つ言語による協調となります(あるいはそのように誘導することができます)。

このような言語は部分的に自然言語と似てくるでしょう。なぜなら自然言語は(人間同士の間でですが)かなり効果的に情報をやり取りできるようある程度最適化されているからです。

一方で、これは自然言語とは少し違ってくるでしょう。なぜなら自然言語はAIほど徹底的には最適化されていないからです。

AIの言語がどのようなものになるかは、ちょっとまだわからないですが、これは深く考える価値がありそうです。

 

以上をまとめると、AI同士はそれぞれのタスクのパフォーマンスを上げるために、離散的なシンボルを交換し始めることが想定できるはずで、これがAI間の原始的な言語になります。これがどのようなものになるかは完全にtask specificなので予想はしづらいです。しかし、一方で先ほど述べたmultitask learningがうまくいくようになってきたら、言語も徐々にtask freeになっていくのではないでしょうか?こうしてAIの間でgeneralな言語が作られていく、というプロットは割とありえそうです。

広告を非表示にする