人間は、人の顔も瞬時に見分けられるやろ? 「あ! プラトン君や!」とか、「あ! アルキメデス君や!」とか、見ればすぐにわかるやろ。な?

環: いや、僕は二人とも会ったことがないですけど......。

ピ: コンピュータに、プラトン君とアルキメデス君の見分けかたを教えようとしたら、どうすればいいんや?

環: いやだから、僕は二人とも会ったことがないですけど......。

でも確かに、人の顔をどうやって見分けているか、いざ説明しようとすると難しいですね。

ピ: せやろ。目の間の距離が何ミリで、鼻の穴の直径が何ミリのほうがプラトン君で......と説明するのはとんでもなく難しい。それが最近になって、リンゴの絵や人の顔を見分けられるようになった。

環: SNSの顔の写真が、すぐにタグ付けされるようになりましたね。

ピ: それから、自然言語処理。「自然言語」っていうのは、C言語とかJavaScriptとかいった、いわゆるプログラミング言語でなくて、日本語や英語といった、人間が普通に使う言葉のことやな。コンピュータって、しゃべったり書いたりするのはわりと得意やけど、話を聞いたり文を読んだりするのは苦手なんや。自動翻訳機がなかなか実用化されないのも、これが理由や。日本語を英語に翻訳する前に、まず日本語を理解するのが難しい。人間だと幼稚園児でも日本語を聞いて話を理解するのに、コンピュータだとなかなか上手くいかんのや。「ヘイSiri!」と話しかけて、スマホが人の話を聞いてくれるようになったのは結構最近やろ。

環: 囲碁や将棋の大局観、画像認識、自然言語認識。このあたりが、いままでコンピュータが意外と苦手としてきた分野の例ですね。

ピ: せや。そして、これらの分野がAIでできるようになってきたから大騒ぎしているわけや。AIが囲碁でプロに勝った。AIで人の顔を見分けられるようになった。AIに話しかけると返事をするようになった。この3つには大きな共通点がある。

環: 共通点?

ピ: 抽象化や。

環: また抽象化ですか!

ピ: だから、AIと数学は関係あるゆうたやろ!

基本的に、コンピュータ・プログラムちゅうのは具体化をするものなんや。そして、人間に真似できない圧倒的な具体化力を持つ。一方で、抽象化は苦手としてきた。例えば関数f(x)が定義されているとき、コンピュータは、f(1) でもf(5 .9) でもf(43534798)でも一瞬で計算できるやろ。明らかに人間より優れているんや。ところが、逆にコンピュータに「関数f(x)を定義しなさい」と言っても、これは難しい。というか難しかったんや。いままではな。

コンピュータが抽象化を身につけた
【関連記事】