verbalize

文章書く練習…。

人工知能とは

動機付け

最近、機械学習やディープラーンニングといった手法で人工知能研究が話題を集めている。特に今年学校で卒業研究が始まり、音声信号処理っぽいことをしているのだが、音声認識とか音声合成、声質変換あたりのこと調べると、すぐに統計的な手法に出会う。 例えば音声認識では、与えられた音声に対してそれが「あいうえお」のどの母音であるかをフォルマントという特徴量で判断したりするが、これを行うためには、あらかじめたくさんデータを用意して、第一フォルマントと第二フォルマントという特徴量の分布で、ここからここまでが「あ」ですよ、ここからは「い」ですよ、みたいな線引きをしてやらなければいけない。これはクラスタリング?という機械学習アルゴリズムの一つだ。

はっきり言って、詳しいことは自分もわからないが、とにかくざっくりと「人工知能ってなんだ?」という質問にイメージをつけるべく、そのアウトラインをまとめようとこの文章を書いた。というのも、つい先日、「人工知能とか機械学習ってなんなの?」と聞かれ、「なんだろうね?笑」となってしまったのがきっかけである。

人工知能は人間を超えるか」をざっくり 

人工知能研究について

 そもそも、人工知能の定義とはなんだろう。これは専門家によってさまざまだが、一口に言えば「究極には人間と区別がつかない人工的な知能のこと」である。その人工知能を実現するために、さまざまな手法が考えられてきたわけだが、人工知能研究には現在までに3つのブームが存在したそうだ。これら3つこそが、人工知能をどのような手法で実現しようとしたのかを示す大きなまとまりになっている。これらを簡単にまとめることで、なんとなく機械学習やディープラーンニングが流行っている理由がわかるんじゃなかろうか。

第一のブーム

 1955~1970年頃のこと。その中身は主に推論と探索である。これは、いたってシンプルなルール によって現実の問題を解こうとするものである。

 ではいったいどんな問題を解いたのかというと、一つは迷路。これはスタート地点から考えられるすべての経路(場合分け)を順に調べることによってゴールを見つけるものである。主に探索木をモデルに用いていて、「深さ優先探索」や「幅優先探索」といったアルゴリズムが存在する。これらはわりと耳なじみがあると思う。他にも、ハノイの塔なども簡単に解ける。ハノイの塔にはちゃんとルールがあるので、それを満たすようにただシンプルな操作を繰り返すだけだ。

 一方、電脳戦で有名な将棋などのボードゲームに関しても、基本的に推論や探索で解く。しかしこの場合、「相手」がいることによって組み合わせが膨大になるため、すべての場合を列挙することは不可能だ。そのため、その時その時の盤面の状況に対して考えられる次の一手をすべて洗い出し、なんらかの評価手法でスコアをつけることによって最善に最善に手を打っていくことになる。これに関しては、盤面の評価に使用する特徴量(例えば飛車や角があるかないか、王がどこにいるか、など)が研究が進むにつれて良いものになっていったり、第3のブームで登場する機械学習を利用することによって現在も進化し続けているのだが、基本は推論、探索である。

 とにかく、単純な操作を多く繰り返す処理なら、パソコン用いた方が我々より早く正確であることは自明で、それを用いて賢く見せているにすぎない と言える(パソコン、インターネットが普及した今ではなんだか当たり前だけど)。お分かりのように、この推論や探索といった手法単体では、明確に定義されたルールの中で最適な解を求めることしかできず、いわゆるトイプロブレムは解けても、現実の複雑な問題を解くことはできない 。このような形で第一のブームは幕を閉じる。

第二のブーム

 1982~2000年くらいまで。その中身は機械に実践的な知識を持たせることである。第一のブームではシンプルな操作を繰り返すことがメインだったが、今度は必要な知識を機械に持たせることによってエキスパートシステムを作ろうと試みたのである。

 実際に開発されたエキスパートシステムには、1970年にスタンフォード大学でつくられたMYCINなどが挙げられる。MYCINは伝染病の血液疾患の患者を診断し、抗生物質を処方する、いわば専門医の代わりとなるシステムである。あらかじめ用意した500のルールに従って患者に質問を行い、条件分岐して患者が感染した細菌を特定し、適切な抗生物質を処方する。他にも、比較的最近話題となった、自分が思い浮かべたアニメキャラや有名人などを言い当てる「アキネイター」もこの種のシステムだろう。

 このようなエキスパートシステムを作るのには、知識を集めるためのコストがかかること、そして、知識が増えれば増えるほど、条件分岐が複雑かつ膨大になり、矛盾も発生するといった問題がついて回る。しかし、コンピュータの性能が日進月歩である今、それらは大した問題ではない。それよりも、次に上げる二つの致命的な問題がある。

 一つは、人間にとって常識レベルの知識が途方もなく膨大であるということである。例えば、機械翻訳をする時、"He saw a woman in the garden with a telescope."という文章を日本語に訳そうとすると、in the gardenとwith a telescopeの節がHeにかかるのかwomanにかかるのか一意に定まらない。しかし、人間であれば常識的に「彼は望遠鏡で庭にいる女性を見た。」と訳すことができる。このように、エキスパートシステムを拡張させ、より柔軟なものにしようとした時、そこには「常識的な判断」というものが必要不可欠になるが、それが非常に難しかったのである。

 もう一つは、機械に知識を持たせようとしたときに、機械は言葉を記号として理解することはできても、その意味や実体を結びつけて理解することができない、ということである。これを実現するためには、知識を持たせるときに、言葉と意味の結び付け、ある言葉とある言葉の関連性の結び付けなどを適切に記述する方法が必要であるが、これも研究が進むにつれて非常に難しいことがわかってきている(これを「知識表現」や「オントロジー という)。

 第二のブームでは、機械にとにかく知識を与えれば賢くなると考えたが、必要な知識が非常に膨大であること、そしてその知識をどう表現し機械に持たせるのかという困難な問題に直面し、幕を閉じることになる。

第三のブーム

 2010~現在まで。その中身は機械学習やディープラーンニングである。なんといってもインターネットの普及によって大量の情報を手に入れられるようになったことが大きい。画像認識であれば画像を、音声認識であれば音声を大量に用意して機械に学習させ、精度を上げようというものである。

 それでは機械が学習するとはどういうことだろうか。自分は二つあるんだなと感じた。まず一つは「分ける」こと。これは冒頭に書いた話と同じだが、例えば数字の手書き文字認識を行う場合は、あらかじめ大量の手書き文字画像を機械に入力して、それらをなんらかの特徴量で図にプロットしたときに、0~9の数字それぞれの点のまとまりを見つけ、それらの境界線を見つける。この境界線を見つけるという「分ける」作業こそが機械学習というわけである。「分ける」ことというのは「分かる」ことであり、人工知能に欠かせない要素であるように思える。

 そして、もう一つは全てを「確率で判断する」ことである。大量に得たデータをなんらかの確率的なモデルに近似することによって、判断したいことを確率の大きさを根拠に決めるのだ。第二のブームで問題になった機械翻訳における人間の常識レベルの知識というのも、大量の自然な翻訳データを学習すれば、必然的に不自然な訳もしなくなる。不自然な翻訳というのはお手本データには少なく、確率が低いからだ。

 このように大量にデータを学習することで判断するのだが、この手法にもデメリットがある。それは、どんな特徴量を使えば最も良い学習ができるかという部分は人間が考えなくてはいけないということだ。そして、この部分を補ったのがディープラーンニングである(らしい)。

 ディープラーンニングについては私は本書を読んだだけではうまくつかめなかった。言わんとしていることはわかるが、やっぱり厳密な話になっていないので、うまく整理できなかった。簡単にまとめると、従来の機械学習、例えばニューラルネット手書き文字を学習しようとした場合、1の画像(の画素情報)を入力として受けた時に、出力で「この画像が1である」という確率が最大になるようにパラメータを調節していた。しかし、ディープラーンニングではそのニューラルネットを多層にした上で、出力は入力とそっくり同じ画像データになるようにパラメータを調節する。そうすると1の概念、2の概念みたいな特徴量を(勝手に)学習する?らしい。やっぱり自分で実装しながら体系的に整理していかないとこのあたりはうまく理解・説明できないかもしれない。

結論

 今回この記事を書いた理由は「人工知能ってなによ」という質問に対する答えのイメージをつけることだった。ここまで本書の内容を整理するためにまとめてきたが、結局その質問の答えはざっくり一言でっていうわけにはなかなかいかない。ただ、それが「今流行りの機械学習ってなによ」って質問であったとするならば、やっぱり第三のブームで書いた大量のデータをもとに「分ける」ということと「全てを確率で判断する」ことなんだろうと思う。

 まとめるつもりが長くてまとまりのない文章になってしまったし、結論も微妙(笑)、そして書くのに時間かかったけれど、少しずつでもアウトプットを繰り返して、インプットの質をあげたいなぁと思う。

P.S.

なるほど。

説明スライド。

https://www.ipa.go.jp/files/000048577.pdf