SVMの定番入門書「サポートベクターマシン入門(赤本)」の読み方

SVMを学びたい人にとっては「サポートベクターマシン入門」通称「赤本」は最適な入門書であるといえる。理論から実践までバランスよく解説されており、本書を読むだけでSVMの実装が可能になる。
しかし本書はSF小説を彷彿とさせる独特な翻訳の文体のため機械学習に不慣れな読者にとっては読みこなすのは苦しい戦いとなる。本来なら原書をオススメしたいところだが、そうはいっても英語はちょっとという人も多いはず。
そこで本記事では赤本のオススメな読み方を紹介してみる。


1.「わかパタ」で準備運動をしよう
泳ぎのうまい人でもいきなり水に飛び込むのは危険。まずは準備運動をして体を温める。これには「わかりやすいパターン認識」がオススメ。とりあえず2章まで、余裕があれば3章まで読んでおけば充分。


2.赤本を枕元において一晩寝よう
さて準備運動が済んだら早速赤本にトライ!したいところだが赤本の放つ瘴気で心を蝕まれないように赤本と一夜を共にして好感度を上げておこう。一晩経てば赤本様も心をひらいてくれるはず。


3.赤本を2章まで読んでパーセプトロンを実装しよう
好感度の高まった赤本様を早速読み始めよう。2章まで読んでパーセプトロンを実装してみる。16Pに擬似コードが書いてあるので、これを参考にするとよい。
理解してから実装しようと思っていると永遠に実装の機会は訪れない。「気になるあの子に告白したいと思っている」「転職したいと思っている」と一緒で「実装したいと思っている」だけでは実装できるわけがない。理論面でわからないところは「あとで理解する」の精神で読み飛ばすのが重要。最終的に理解すればいいので律儀に順番に理解していこうとは考えないほうがいい。実装の際は

機械学習超入門III 〜機械学習の基礎、パーセプトロンを30分で作って学ぶ〜 - EchizenBlog-Zwei

も参考にされたい。


4.3-5章は華麗にスルーして6章を読もう
さて2章まで読んでパーセプトロンを作った。なら次は3章・・・ではない!3章から5章まではそれぞれ大変詳しくSVMに必要な要素について書かれている。
それだけに読者に体力を大きく奪ってしまい肝心のSVMの全体像を知る前に力尽きてしまう。例えるなら「ラストダンジョンで宝箱回収に必死になっていたら体力が激減し魔王と戦えなくなった」ようなもの。6章を先に読んでSVMの全体像を把握しつつ「未知語がでてきたら3-5章の該当箇所に戻って読む」のが正しい読み方だと思う。


5.5章を読んで最適化の理論を学ぼう
6章を読み進めると知らないことが多く出てきたと思う。整理しておくと「SVMとは「パーセプトロン」に「カーネル関数」と「マージン最大化」を加えたもの」である。このうちパーセプトロンはすでに実装できる(はず)。「カーネル関数」については別の良書があるので後回しで良い。
残りは「マージン最大化」だが、これは4章を読むと学習理論によって「汎化性能を最大化するにはマージンを大きくすれば良い」ことがわかる。4章は余裕があれば読んだほうが良いがとりあえずマージンを最大化すれば良いというのが結論なので具体的にマージンを最大化するための理論を5章で学ぶ。


6.3章を読んでカーネルについて学ぼう
さてここで飛ばしていた3章に戻る。といってもとりあえず一番簡単な線形カーネルだけ知っておけば大丈夫なので軽く読むとよい。きちんと知りたい人は「カーネル多変量解析」が良書なのでオススメ。


7.7章を読んでいよいよ実装する
7章には実装技術の解説が書いてある。ここが正念場なので気合を入れて読もう。さしあたり173Pのコードを参考に素朴な実装をすると良いと思う。これができたらSMOに挑戦しよう。
これでとりあえずSVM実装完了。8章の適用事例を眺めつつ余韻に浸ろう。


8.その後の世界でレベルアップ
SVMの世界は広大。だが赤本を読みSVMの実装経験を得た今なら安心してSVM宇宙に進出できる。よい旅を!

参考:
SVMツールと関連する論文まとめ - EchizenBlog-Zwei