2016年10月9日

書評: 「ITエンジニアのための機械学習理論入門」

書誌情報: 中井悦司、「ITエンジニアのための機械学習理論入門」、技術評論社、2015, ISBN978-4-7741-7698-7

(本書は2015年10月に技術評論社Software Design編集部の池本様よりご恵贈いただきました。書評が大変遅れて申し訳ありません。)

現在「機械学習」と称されるニューラルネットワークの技術は、私が過去25年以上にわたって遠ざけてきた苦手なものの1つである。大量のパーセプトロンの組み合わせで特性情報が得られるという「夢のような話」に納得することは、「コンピュータというのはアルゴリズムで説明し得る作業のみが行えるもの」という定義で生きてきた私自身の考え方では極めて困難である。2016年現在得られているニューラルネットワークの成果全般に反駁するつもりはもちろんないし、その有用性を否定するものではないが、単にニューラルネットワークの説明を受けただけでは残念ながら私の疑問は消えない。申し訳ないがこの疑問は死ぬまで消えないだろう。(法的にもこの「なんで?」という問題は存在しており、「判断過程の不透明性に関わる問題」として現在も議論が続いている。)

本書はこの「なんで?」という部分に、統計学の観点から光を当てて解説しようとしたものであり、どういう計算手法を使えば結果がより目的にかなったものに近づくかの判断例が記されている。具体的には以下の流れで示されている。

  • 最小二乗法の推定から複数のデータセットを使ったクロスバリデーションとオーバーフィッティングの問題の説明
  • 尤度関数による確率モデル(最尤推定法)の導入
  • 勾配降下法による多次元ベクトルへの適用(概念としてのパーセプトロンの導入)
  • ロジスティック関数と偽陽性率の関連
  • 教師なし学習におけるk平均法とEMアルゴリズム(期待値最大化法)
  • ベイズ推定の適用と最尤推定法との比較

これらの手法は、ニューラルネットワークが「なぜそうなるか」を説明するものではない。しかし、どのように使えばより統計学的に筋の通った結果を得られるかについての手法としては一貫しており、ニューラルネットワークを「どうやって使えばマトモな結果が出るのか」についての実践的な説明になっている。アルゴリズムからの演繹的説明が不可能な以上、このような「結果が統計的にこうなるのでアルゴリズムはこう使うべき」という説明が、現時点では最も有用であると思う。その意味で本書は(統計も大の苦手である私のような者を含め)ニューラルネットワークの結果を評価する上の第一歩を知りたい人には大いに役立つであろう。そして本書は基礎理論の解説書であり、大学での教科書に使えるだけの中身のある力作である。

なお、本書にはサンプルコードが用意されているが、書籍の中ではサンプルコードがどのような概念を示しているか、そしてその動作結果が何を意味するかの説明に徹しており、サンプルコードの表面的な解説がなされているわけではない。言い換えれば、プログラマとしての知識は要求されず、数学の基本的知識があれば読めるようになっている。その意味でプログラミングの苦手な人にもおすすめできる。