【質問#72】人工知能は数学の定理を証明できるのか。

質問・悩み相談の回答です。

質問

お世話になります。
人工知能(以下AI)についての理解を深めたくて質問させていただきます。
私は、プログラムなど全くの素人でwithpopさんのプログラミングのお話は1パーセントも分かりません。
その点をご理解いただいた上で、ご回答、宜しくお願い致します。

AIは数学の定理を証明できるのかどうかが気になります。
WEBで検索はしたものの、出てくるのは四色問題をコンピュータで解いた!といった程度のもので、
私の疑問の答えは見つかりません。
ユークリッド幾何の公理や定義をAIに仕込めば(?変な表現です、つまりチェスのルールの様に覚えさせれば)
三平方の定理を発見できるのでしょうか。
そして、あまたある証明を書き始めるのでしょうか。
また、不可能であるならば、それはAIには原理的に不可能なのか、
コンピュータの性能的に、「現段階では」不可能なのか。

数学の未解決問題をAIが自分で見つけてきて、自分で証明するような事になるのかが気になります。

回答

今の人工知能は無理です。

以降、簡単に表現するために抽象的であまり正確ではない説明をします(というか厳密な説明は私も残念ながら出来ません)。

簡単に言うと今の人工知能は「学習」は出来ますが学習したことを元に「発見」することはできません。三角形を沢山見せることで三角形とそうでないものを分類することはできますが、そこから三平方の定理を発見することはまずできません。そこまでの能力は持っていません。

チェスのルールのように覚えさせれば

この一文は非常に深みがあります。まず、私は(そしておそらくほとんどの人工知能の研究者やそれを使うエンジニアがそうだと思いますが)人工知能はチェスのルールを理解できてはいないと考えています。「チェスのルールが理解できてないのにチェスで勝てるわけないだろ!」と思われるかもしれませんが、そこに非常に深い哲学的な問題が横たわっています。

まず、チェス、囲碁、将棋などのゲームを行う人工知能は大別すると二種類の方式があり(その二つの両方を使っているものもあります)、一つは人間が「こうなったときはこうしろ」という手続きをベースにプログラムを書くものです。その背後に膨大な棋譜や詰将棋のデータがあったりもします。このような手法も人工知能と一般的には呼んだりしますが、内部処理は通常のプログラムと大差ありません。

一方で、膨大なゲームのデータを人間の神経ネット―ワークを数学的に表現したネットワークに何度何度も覚え込ませて最も適切な次の一手を決定するような手法もあります(機械学習と言ったりします)。この場合は、統計的により勝てそうな手を選んでいるのと大差ありません。

さて、ここで人工知能がルールを理解しているか?を改めて考えてみたいと思います。

前者の方式では人間が手続き的に次の一手を求めるので、当然、人間がルールを制約条件としてプログラムに書き込みます。プログラム通りにそれを実行しているだけなので、これは誰が考えても人工知能がルールを理解しているとは言い難いでしょう。

後者はどうでしょうか?十分なデータを使って神経ネットワークを教育すれば、そのネットワークはルールに反した手を出さなくなるはずです。しかし、それでも制約条件を与えて制限をかけない限り、ルールに反した手を出力してしまう可能性はあります(そして当然、そのような処理は組み込まれているはずです)。

これを我々はどのようにとらえたら良いでしょうか?人間も何度も反復して学習することでルールを覚え、それでも時々間違うことがあります。人間の脳の仕組みを模倣して実装されたネットワークが人間と同じような学習を行い、大体ルールに沿った手を打ちますが、人間と同じようにたまに間違います。このことをもってして「人工知能がルールを理解している」と言って良いでしょうか。

既に述べたように、私はルールを理解していないと思っているわけですが、それはなぜかと申しますと「人間と同じように反復学習する」と書いたもの、人間の学習プロセスと現代の大量のデータに基づく学習プロセスは全く異なっているからです。人間も反復学習して対象を覚えますが、機械学習のそれとは回数が全く異なります。

たとえば人間は2~3枚の写真、例えばセキセイインコとオカメインコを見せればセキセイインコとオカメインコの区別がつくようになりますが、機械学習で同じことをやろうとすると数千、数万オーダーの写真が必要になります。

この人間と機械学習の差は何でしょうか?それは前提知識の有無です。我々は鳥を知っていますし、インコも知っています。だから、セキセイインコとオカメインコに関しても、ほんのすこしのサンプルで特徴を見出し、区別をつけることができます。言い換えると、オカメインコとセキセイインコの違いを「発見」していると言えます。

一方で機械学習は鳥がなにかも分かりません。最初はインコとカメの違いも分からない状態から学習していくというハンデがあります。しかしながら一方で、「鳥」とそうでないものを分類できる機械学習のモデルがあったとしても、そこから自動的に「鳥」を知識として取り出しセキセイインコとオカメインコを区別することに利用する術はないのです。つまり、「発見」は出来ないのです。

私が思うに、「理解した」というのは対象を知識として貯め込み、まったく違うことに応用できる能力であると思います。その点が欠けているので、機械学習はゲームのルールを覚えてない、と考えられるということです。

このあたりは「フレーム問題」「中国人の部屋」「強いAI」「チューリングテスト」という単語で検索したり、関連する本を読むと詳しく知ることが出来ます。人工知能の専門書でも、冒頭にこれらが触れられている本は多いです。

以降、個々のご質問について回答したいと思います。

AIは数学の定理を証明できるのか

上記のとおり、現段階ではできません。できる方法も考えられていません。

四色問題をコンピュータで解いた

四色問題(四色定理)というのは、「どの様な地図も4色あれば色で塗り分けられる」というもので、コンピュータ科学の世界ではグラフ理論という分野における問題です。これはコンピュータを使って力技であらゆるパターンを試した結果をもって証明しています。この証明を行うためのプログラムは人間が手続き的な方法で書いたものであり、コンピュータはそれを実行しているだけなので、(質問者様が理解されておられるとおり)人工知能とは別種のものです。

AIには原理的に不可能なのか、コンピュータの性能的に「現代界では」不可能なのか

どちらかというと前者です。今現在の人類の知見で構成できるAIでは原理的に出来ないということです。将来的にまったく別種のAIを構築する手法が発明されれば話は別です。

コンピュータの性能についても現代の技術ではまだ不足していることが予想されます。現在の機械学習、ディープラーニングと呼ばれる手法ではかなりのコンピュータ性能が要求されています。将来的にあまりマシン性能を要求しない方法が出てくる可能性はあります。

個人的には今の機械学習や人工知能は過大評価されていると思います。現在流行っているディープラーニングだの機械学習だのというのは、統計分析の延長に位置する技術で、「人間の脳を模したモデルにデータを詰め込んだらなんか良くわからんけど上手くいった」というものです(にもかかわらず多方面で優れた応用例があります)。何で上手くいくのか、何が上手くいくのに大事なのかというのはまだまだ研究途上ではっきりとは分かっていないのですが、従来の手法に比べても良い成績を残す場合がある(従来難しかった分野で良い成績をあげている)ので使っている、という感じです。

私はソフトウェアエンジニアなので人工知能が流行るとビジネスチャンスが生まれて嬉しいので、過大評価されて大いに結構ですが、一般ピープルとして「技術的特異点(シンギュラリティ)がそのうちやってくる!!!」みたいなニュースを見たときはちょっと行き過ぎなんじゃないかと思っています。

ちなみに、以下でも似たような質問を扱っていますのでよろしければご覧ください。

【質問66】映画のような世界に?