数学ここ1〜2年の間に人工知能がとても注目されていますよね。皆さんは人工知能と聞くとどんなものを想像しますか?ターミネーターみたいな人間を脅かすロボットを思い浮かべる人もいれば、コンピュータの上で人間みたいに会話できるソフトを考える人もいたり、色んなイメージを持っていると思います。LINEの「りんな」と会話したことがある人なら分かると思いますが、人間と話している様に錯覚してしまうこともありますよね。アルゴリズムって?人工知能はどんな風に作られているか興味がある人も多いかと思います。本当にざっくり言うと、人工知能の根っこの部分はアルゴリズムと呼ばれる数学で作られた仕組みによって成り立っています。アルゴリズムとは、ある与えられた作業に対して最も早いスピードでこなすようにするための方法であると言えます。親に「部屋を片付けなさい!一時間以内に!!」なんて言われたときにはどうしますか?部屋の中は物で溢れかえっています。やっていると一行に終わりそうにない時には、一番早く終わるための方法を考えますよね。プリントが散乱していたら一旦まとめてから科目別に分類したり、マンガがたくさんあったらタイトルで固めた後に巻数順に並べ替えたり。人によって一番いいやり方は異なると思います。コンピュータの世界でも仕事を早く終わらせることがとても重要なのですが、その時に用いられる考え方がアルゴリズムです。コンピュータ上のソフトはプログラミング言語で書かれているのですが、これはあくまでコンピュータが理解できる言葉として使われているだけで、ソフト(=仕事のやり方)の筋書きは数学を用いて作られたアルゴリズムなんです。アルゴリズムの仕組みさっきの話に戻ると、マンガ50巻がバラバラの順番で本棚に並べられている時、1巻から順番に並べ替えてと言われたらどうしますか?50巻程度だと1の次に2を探して...なんてやり方で並べ替えるかもしれません。それが500巻、5000巻となったら人間にはもうお手上げです。そんな仕事を代わりにコンピュータに任せたらほんの一瞬で順番に並べ替えてしまいます。この種のアルゴリズムの一つとしては「バブルソート」と呼ばれる有名な方法があります。一言で言ってしまうと、バブルソートは隣り合った二つの番号を大小比較して右の番号が小さい時には左と交換して、右の番号が大きい時にはそのままにしておく、という仕組みです。人工知能と会話さて、アルゴリズムがどんなものかイメージできた所で本題の人工知能と数学がどんな風に関わっているのかについて見ていきましょう。人工知能にはLINEの「りんな」・ソフトバンクのPepper君・iPhoneのSiriみたいな、言葉で話しかけると反応してくれる様なものが身の回りのにはありますよね。これは「弱い人工知能」と言って、コンピュータが人間が交わす会話を記録してその中から会話の受け答えだとか話の流れのルールを発見して、それに基づいて言葉を理解します。Learning)」というもので、数学をベースに設計されています。その時に用いる数学は、高校数学の数IIIの知識がとても役にたちます。(微積分の知識)なぜ数学がシステムの設計に必要かという疑問をお持ちかもしれません。理由の一つには、数学が言語の中で最も正確かつ簡潔にものごとを言い表せることが挙げられます。「円の上に三角形がある」と聞くとどんな図形を思い浮かべますか?思い浮かべた図形には円の上(=中)に三角形が入っているものだったり、円の上(=上端)に三角形が乗っかっているものだったり、他にも別の図形を浮かべた人もいると思います。日本語だと図形を言葉で表現しようとしても、それを指す単語や言い回しが幾つもあったり、ルールが無いことから簡単な図形一つでも伝えることは実は難しかったりします。逆に数学だと最初にルールを理解することに苦労することはあっても、一度納得して慣れてしまえばよいので、普段使う言葉よりも便利であると言えます。数学⇒アルゴリズム⇒人工知能そうした数学の正確性をよりどころに、人間に役立つ様々なシステムの設計が行われます。身の回りで動いている人工知能は「弱い人工知能」と言って、人間が与えたデータを問題解決のために利用するプログラムを指します。一方で鉄腕アトムやドラえもんのような人間と同じように考えることができる人工知能は「強い人工知能」と言って、人間の認知機能や思考過程と同じ動作をするプログラムのことを指します。どちらの人工知能も数学をもとにしたアルゴリズムが必要なのですが、強い人工知能をつくるためのアルゴリズムは未だ開発されていません。中学・高校と、数学を勉強してなんのトクになるんだ!と思う時があるかもしれませんが、数学をじっくりと勉強することは人工知能の研究に関わりたい人にとっては初めの一歩として重要ですし、仕組みを知りたい人にもきっと役に立ちます。