深層学習やプログラミングについては書かれていない「わけがわかる機械学習」

引き続き、機械学習の話が 2/3 もある入門本「わけがわかる機械学習」の宣伝エントリです。

わけがわかる機械学習 ── 現実の問題を解くために、しくみを理解する

わけがわかる機械学習 ── 現実の問題を解くために、しくみを理解する

2012年に深層学習が大規模画像認識コンペ(ILSVRC)で圧勝して以来、「機械学習をやりたい」という人より「深層学習(ディープラーニング)をやりたい」という人のほうが年々増えているように実感しています。
しかし「わけがわかる機械学習」という本には、深層学習に関する記述をかき集めても精々3ページほどしかありません。

また、ここ数年に限っても機械学習や深層学習の入門本は数え切れないほど出版されています。そうした入門本の多くは、本に書いてある通りにプログラミングするだけで、性能がそれなりに高い予測器や分類器を実装して動かすことができる優れものです。
強力で便利な機械学習や深層学習のライブラリを使うため、難易度もそれほど高くありません。

しかし「わけがわかる機械学習」に書かれているプログラミングの話題は、オーバーフローに気をつけましょうという短いコラムが唯一あるのみです。

他にも、紹介されているモデルはとてもベーシックなものに限られますし、データの集め方(前処理含む)や機械学習の裏付けとなる理論といった、実践に必要になることの多くも書かれていません。
もし「機械学習(深層学習)を使ってみたいから、何か1冊だけ読もうかな」というなら、この本はおすすめできません。

では、流行りのことが何も書かれていない「わけがわかる機械学習」には一体何が書かれているでしょう。

例えば1.2節では、機械学習で最も重要な概念である「モデル」とは何かを説明しています。
数式も出てこない長くない説明ですから、その部分まるっと引用してしまいましょう。

先ほど、機械学習ではモデルが重要であるという話をしました(※注:直前の節にて、機械学習とは「モデルを決めて、データに合うパラメータを探す」枠組みであるという話をして、続いてモデルを説明しています)。しかし、モデルとはいったいなんでしょう。「解きたい問題を数値で扱えるようにしたもの」では、わかるようでわかりません。

モデルとは、直訳の模型という意味のとおり、「何かの偽物」であり、本物そのものではありません。しかし偽物ならなんでもよいわけではありません。

例えば人体模型は人間の体の偽物です。本物の人間の体と見間違う心配がまったくないくらい似ていません。人体模型はパーツを取り外して手にとって見るなど、人体の内部構造がどうなっているか観察できるという点で役に立ちます。本物の人間の体でそんなことは軽々しくできません。

このように本物ではないが、特定の目的において(ときには本物より)役に立つ偽物がモデルと呼ばれます。ほとんどのモデルは何かひとつふたつの目的に特化しており、それ以外の部分を似せることは最初からあきらめています。

本物が持ついろいろな側面のうち、どれをどのように似せるかによってさまざまなモデルが作られます。つまり、モデルを設計したときに、そのモデルがなんの役に立つかはおおよそ決まります。そのため、モデルが役に立たないと感じる場合は、モデルが悪いのではなく、間違ったモデルを選んでしまったためであることがほとんどです。人体模型に「こいつ、歩かない!」と文句言ってもしかたないですよね。歩いてほしかったら、例えば2足歩行ロボット(これも人体のモデルのひとつ)を選ぶべきだったのです。

ちなみに、機械学習の「モデルを決めて、データに合うパラメータを探す」という枠組みも、人間の『学習』のうち、結果を見て行動を修正するという一面を真似したモデルです。この枠組みはとても役に立ちますが、人間の『学習』の「できないことをできるようにする」という機能を期待するのは、人体模型に歩くことを期待するくらい間違っています。


モデルは、ありとあらゆる機械学習の本に登場するだろう最重要概念の1つです。
ところがほとんど機械学習の教科書や入門書においては、モデルという言葉をちゃんと定義してくれればまだ良い方、天下りに名前だけ登場することもあまり珍しくないでしょう(例:モデルが何かの説明がないまま、モデル選択の話が始まる)。*1

そこで、いい本が他にいっぱいある深層学習やプログラミングはまるごと他の本に任せてしまって、「機械学習に出てくる○○はなぜそうなっているのか・そうしてもいいのか」という他の本にあまり(ほとんど)書かれていないことに集中したのがこの「わけがわかる機械学習」です。

他にも例えば、3.4節と続くコラムでは、集合や分布の「散らばり具合」を表す値として「中心に平均を、離れ具合に差の2乗を使った」分散がよく使われる理由を説明しています。

4.2節では、最小二乗法(や線形回帰)がどのような仮定のもとに成立しているかを明らかにしています。

4.5節と4.6節では、正則化が「何を正則に(正しく)しているか」を紹介し、それによって過学習が抑えられる(と考えて良い)理屈を解説しています。

6.1節に続くコラムでは、「ノイズは正規分布に従う」とよく仮定しますが、なぜその仮定が許されるか、その考え方の1つを述べています。

いずれも機械学習で基本的な知識や技術であり、「こういうときにはこうする」のベストプラクティスだけでも使えなくはないです。
しかし学んだことを応用して新しくモデルを拡張したいとき(あるいは簡易化したいとき)には、「なぜそうなっているのか」の理解は重要なポイントになるかもしれません。

深層学習ブームの中で、機械学習を一切学ばずに深層学習のライブラリでモデルを作って実験や研究、サービス開発が行われることも増えてきているように感じています。
しかし、すべてのモデルはその前提となる仮定を持ち、そしてすべての仮定には必ず都合と不都合があります。
それは深層学習だって例外ではありません。強力で使いやすいライブラリとわかりやすい(試しやすい)本という高速道路ができても、その部分の必要性はまったく変わっていないはずなんです。

とまあ、ちょっと急に使命感っぽいものを振りかざしたりしてみましたが、単純に「納得しながら次に進む本」として「わけがわかる機械学習」を一度手にとって見てもらえると嬉しいですね。

*1:教科書は限られた紙幅の中で知識を網羅的・体系的にまとめることが優先ミッションなので、言葉や定義が天下りに登場するのはある程度仕方ない面はあります(識別子として機能していればOK)。