人間には簡単だが機械には苦手なこと、その力を育むものこそ「数学」だ
人間は、人の顔も瞬時に見分けられるやろ? 「あ! プラトン君や!」とか、「あ! アルキメデス君や!」とか、見ればすぐにわかるやろ。な?
環: いや、僕は二人とも会ったことがないですけど......。
ピ: コンピュータに、プラトン君とアルキメデス君の見分けかたを教えようとしたら、どうすればいいんや?
環: いやだから、僕は二人とも会ったことがないですけど......。
でも確かに、人の顔をどうやって見分けているか、いざ説明しようとすると難しいですね。
ピ: せやろ。目の間の距離が何ミリで、鼻の穴の直径が何ミリのほうがプラトン君で......と説明するのはとんでもなく難しい。それが最近になって、リンゴの絵や人の顔を見分けられるようになった。
環: SNSの顔の写真が、すぐにタグ付けされるようになりましたね。
ピ: それから、自然言語処理。「自然言語」っていうのは、C言語とかJavaScriptとかいった、いわゆるプログラミング言語でなくて、日本語や英語といった、人間が普通に使う言葉のことやな。コンピュータって、しゃべったり書いたりするのはわりと得意やけど、話を聞いたり文を読んだりするのは苦手なんや。自動翻訳機がなかなか実用化されないのも、これが理由や。日本語を英語に翻訳する前に、まず日本語を理解するのが難しい。人間だと幼稚園児でも日本語を聞いて話を理解するのに、コンピュータだとなかなか上手くいかんのや。「ヘイSiri!」と話しかけて、スマホが人の話を聞いてくれるようになったのは結構最近やろ。
環: 囲碁や将棋の大局観、画像認識、自然言語認識。このあたりが、いままでコンピュータが意外と苦手としてきた分野の例ですね。
ピ: せや。そして、これらの分野がAIでできるようになってきたから大騒ぎしているわけや。AIが囲碁でプロに勝った。AIで人の顔を見分けられるようになった。AIに話しかけると返事をするようになった。この3つには大きな共通点がある。
環: 共通点?
ピ: 抽象化や。
環: また抽象化ですか!
ピ: だから、AIと数学は関係あるゆうたやろ!
基本的に、コンピュータ・プログラムちゅうのは具体化をするものなんや。そして、人間に真似できない圧倒的な具体化力を持つ。一方で、抽象化は苦手としてきた。例えば関数f(x)が定義されているとき、コンピュータは、f(1) でもf(5 .9) でもf(43534798)でも一瞬で計算できるやろ。明らかに人間より優れているんや。ところが、逆にコンピュータに「関数f(x)を定義しなさい」と言っても、これは難しい。というか難しかったんや。いままではな。