今回は、誰もがみんな将来関わっていくとになる”AI”についてお話します。
最近ではPepper(ペッパー)や、スマホの音声認識など、私たちも身近にふれることが多くなりました。
これらにも、AI技術の1つである「機械学習」を使った機能が内蔵されており、プログラムによって動いています。
近年、機械学習の研究で技術革新があり、機械がさまざまなものを高精度に認識・判別することが可能になりました。
私達の身近にあるソフトウェアは、こういった技術を組み合わせてプログラミングされているのです。
おしゃべりするプログラムの仕組み
Pepperのように人間の音声に反応して何かを答えてくれるプログラムについて考えてみましょう。
まず最初に音声を判断し、テキスト文章に置き換えます。
例えば「こんにちは」と声に出して言うと、その音声の波形が「こんにちは」という文字に置き換えられます。この部分は、後で説明する機械学習によって学習したプログラムが使われています。
次に、「こんにちは」に対して、どのような反応をすればよいかという回答が多数登録されているデータベースを使って、その中から適当なものを選んで、それを音声として読み上げています。
これを瞬間的にすることで、何となく自然っぽい会話になる、というわけです。
多数のバリエーションの「受け答え」が登録されているため、従来のプログラムにありがちな「くりかえし」が少なくなるのです。
このような工夫によって「機械っぽさ」を感じにくくなっているのですが、このようにネタばらしされてしまうと、やっぱり機械は機械だな、なんて感じてしまいますね。
機械学習とは
機械学習とはどのようなことかというと、機械(=プログラム)に何かを学習させる仕組みです。
画像(のピクセル)や、音声(の波形)を、モノの名前や、文字に置き換えるプログラムは、機械学習によってつくられています。
機械にそのような変換機能を持たせるには、問題(画像や音声信号)と、その答え(モノの名前や、文字)のセットを、たくさんプログラムに与えます。
プログラムは、生物の脳神経を真似た構造(ニューラルネットワーク)になっています。
与えられたパターンを全て覚えるのでは無く、その特徴をとなるポイントだけが少しずつ記憶されるように作られています。
これを膨大な問題数くりかえすことにより、様々なパターンから抽出されたポイントだけを使って、コンピュータが様々な画像や音声を判別できるようになるのです。
従来は、この「特徴となるポイントだけを記憶させるやり方」の精度が低かったのですが、従来の形のプログラムを別々に学習させて、それらを組み合わせることで、より精度の高い判別ソフトウェアを作れることが分かったのです。
ニューラルネットワークの謎

さきほどの機械学習のお話で、ニューラルネットワークというものを使うと書きました。
この機械学習の仕組みは、細かな部分だけを見ると、やっているのはシンプルなことです。
しかし、何故うまく動いているのか、全体としては良く分かっていないのです。
人間の脳についても同じです。
一つ一つの脳細胞が何をしているのかは、かなり細かく分かっています。
しかし、それが組み合わさったときになぜ、私達が普段しているように様々な事を学び、自由にものを考え、記憶し、思い出すことができるのか、それは解明されていません。
なんだか分からないけど、生物の脳をマネして機械の脳をつくったら、うまくいったけど、やっぱりよくわからない、というわけですね。
ちょっと面白いと思いませんか?