ゆらのふなびと

競プロ, Python, C++

『人工知能は人間を超えるか』を読んだ

表紙がイブの時間だったので気になっていたのですよ。

ディープラーニングに至るまでの人工知能の発展がわかりやすくまとめられていたので、そこを書き留めておきます。

人工知能、3つのブーム

筆者によれば、人工知能には今まで3つのブームがあったという。これを順に見ていこう。

第1次AIブーム(1950年代後半~1960年代)

第1次AIブームは「推論」と「探索」の時代。この段階ではよく聞く幅優先探索深さ優先探索などのアルゴリズムを用いて迷路を解いたりチェスを指したりできるようになった。しかしこれらの適用例はあくまでゲームである。ゲームではルールが明確に定義されている。一方で現実の問題はもっと複雑だ。

難解な定理を証明するとか、チェスで勝利するといった高度に専門的な内容は、コンピュータにとっては以外に簡単だった。しかし、現実の問題は難しかった。人間の知能をコンピュータで実現することの奥深さがわかったのが、第1次AIブームであった。

第2次AIブーム(1980年代)

第2次AIブームの鍵は「知識」だ。有名なのはエキスパートシステム「MYCIN」。これは事前に入れ込まれた知識(500のルール)を用いて伝染性の血液疾患の患者を診断し、適切な抗生物質を推薦するというものだ。このように、知識を加えることにより人工知能はあたかも専門家のように賢くふるまうことが可能になった。

しかし、人工知能に「知識」を教えるというのは難しい問題である。ルールの数が増えれば互いに矛盾がないようにする管理しなければならないし、人間にとっての「常識」をどう表現するかというのも困難な課題だ。ここから「知識表現」の研究(オントロジー)が始まった。1984年には人間の持つすべての一般常識をコンピュータに入力しようというCycプロジェクトが始まったが、これは30年たった今でも完成していない。人間のもつ「常識」がいかに膨大なものであるかがわかる例だ。

結局、「知識を書く」という壁にぶち当たり第2次AIブームも終焉を迎えた。

第3次AIブーム(2000年代~)

第3次AIブームはまさに今起こっている。これはビッグデータを背景に広まった機械学習と大きなブレイクスルーである「ディープラーニング」の2つが重なって生まれたものだ。

まず機械学習だが、これは1990年代半ばの検索エンジンが誕生したことに端を発する。膨大なデータがインターネットに蓄積されアクセスできるようになったことで、これを活用する方法が発展してきたのだ。機械学習により、人工知能のプログラムは自らデータを適切に「分ける」ことが可能になった。

しかし機械学習にも難問はあった。それは「特徴量」の設計である。特徴量というのは、機械学習の入力に使う変数のこと。この特徴量に何を選ぶかで予測精度が大きく変化する。例えば年収であれば、「身長」や「好きな色」よりは「業種」「年齢」に依存する部分が大きいだろう。この場合には前者よりも後者を特徴量とした方が良い。このように「何を特徴量とすべきか」を考えることは人間の役目だった。機械学習にとって最も大切な部分は、人間が職人芸を駆使するしかなかったのである。

この壁をぶち破ったのがディープラーニングだ。ディープラーニングは、データをもとにコンピュータが自ら特徴量を作り出す。その力はすさまじいもので、2012年に行われた世界的な画像認識のコンペティション「ILSVRC」では、ディープラーニングを使ったSuperVisionが1,2位を独占し、3位以下のチームにエラー率で10%以上の差をつけた。これは年1%単位でしか進歩していなかった機械学習の世界にとって衝撃的な事件だった。

ディープラーニングの正体は、機械学習で用いられるニューラルネットワーク多段にしたものだ。この多段のニューラルネットにおいて、入力と出力が同じになるように学習を進めると特徴量を取り出すことができる(自己符号化器)。これは主成分分析に似ているが、ニューラルネットを多階層にすることで、主成分分析では取り出せない高次の特徴量を取り出すことを可能にしているのである。

ディープラーニングの実現には「頑健性を鍛えるためにいじめぬく」ことが不可欠だ。具体的には、わざとデータにノイズを加えることで「偶然の一致」を避けること。あるいはドロップアウトといって、ニューロンの一部をランダムに停止させることである特徴量に過度に依存した表現を避けることができる。

ディープラーニングは、今まで人間が見つけるしかなかった特徴量を人工知能自身が見つけられるようになったという点で革新的なのである。

参考

グーグルのネコ認識については以下が詳しかったです。

d.hatena.ne.jp