やっていくログ

にんげんをやっていきましょう

「Python機械学習プログラミング 達人データサイエンティストによる理論と実践」を読んだ [読書ログ]

・書名

Python機械学習プログラミング 達人データサイエンティストによる理論と実践」(インプレス/Sebastian Raschka 著/株式会社クイープ 訳/福島 真太朗 監訳)

book.impress.co.jp

 

・動機/経緯

機械学習の"き"の字も知らないのはまずいだろうということで、衝動買いした一冊(中古で買ったらあとで新版があることに気づいた(初版と第2版の違いについては後述))。

しばらく積みっぱなしにしていたが、春休みを得たので少しずつ読み進め、ひとまず最後まで到達した。

 

・読者(わたし)のスペック(読前)

機械学習は全く知らない

Pythonを触ったことがある。Jupyter Notebookも使ったことがある。

・大学初年度程度の微積分、線形代数、最適化手法の知識(おきもち程度)

 

・読み方

本書にあげられているコードは、すべて筆者のgithub(GitHub - rasbt/python-machine-learning-book: The "Python Machine Learning (1st edition)" book code repository and info resource)から入手できる。ipynb形式なので、Jupyter Notebook上ですぐに実行できる。最初はコードを手打ちで写経していたが、これの存在に気づいてからはここからコードを入手して手元で動かしながら読み進めた。

以下は訳者の方の読み方ガイド。読み進める順番、必要な知識、読了後に読むとよい他書籍などが紹介されている。

thinkit.co.jp

 

・内容

章立ては以下のようになっている。新版では、13章以降が増強され、初版では概要を述べるにとどめられていたCNNやRNNについて実装まで紹介されている。また、それ以外の章についても増補されているため、今から買うなら新版(第2版)がよいと思う。とはいえ、初版でもそれぞれの手法についてよくまとまっている。

 

・第1章 「データから学習する能力」をコンピュータに与える

・第2章 分類問題 -- 機械学習アルゴリズムのトレーニン

・第3章 分類問題 -- 機械学習ライブラリscikit-learnの活用

・第4章 データ前処理 -- よりよいトレーニングセットの構築

・第5章 次元削減でデータを圧縮する

・第6章 モデル評価とハイパーパラメータのチューニングのベストプラクティス

・第7章 アンサンブル学習 -- 異なるモデルの組み合わせ

・第8章 機械学習の適用1 -- 感情分析

・第9章 機械学習の適用2 -- Webアプリケーション

・第10章 回帰分析 -- 連続値をとる目的変数の予測

・第11章 クラスタ分析 -- ラベルなしデータの分析

・第12章 ニューラルネットワーク -- 画像認識トレーニン

・第13章 ニューラルネットワーク -- 数値計算ライブラリTheanoによるトレーニングの並列化

 

・感想

・理論と実践とはいうものの、実践がメイン

各章では、まず理論や定義を述べてから実装や実践例が紹介されていく。ただ、読みやすさのためか、理論といってもイチから導出していくわけではなく、「このような考え方があります。このような変形が成り立ち、最終的にうれしい結果が得られるので、これを使っていきましょう」といった流れ(伝わるのか…?)。また、数式に頼らずに、手法の気持ちを説明しているところもあり、個人的には結構わかりやすかった。

理論をイチからやりたいなら、他の書籍を読む必要がある。ただ、モリモリ読み進めるには、理論と実装の配分はこれくらいがちょうどよいと思う。

機械学習における基本的な手法を概観できる

知識ゼロから始めたが、ひと通り読み通すことで、どんな手法があるのか概観できた。コードも前述のように提供されているので、手元で動かして「すっごーい!」と思いつつモリモリ読み進めることができる。

コードを隅から隅まで理解しようとしながら進めるより、とりあえず先へ進んで読み終えてしまったあとに、必要に応じて立ち戻れる本というような気がした。

・実際に使えるようになるには

ひと通り読み終えて記事を書いているが、実際に機械学習を応用していくには、自前のデータに手法を適用してみたり、あるいはKaggleに参加してみたりする必要がありそう。現状では本に従って「機械学習ベーシックツアー」に参加しただけなので…。

そうした他の問題に手法を適用するにあたって、辞書的に利用できる本でもあると思う。

・総括

初手で読む本にしては重いかなと思ったが、むしろ一気にさまざまな手法を見せてくれたので、お気持ちをつかむのにとてもよかった。

機械学習ガチ勢はすごいんだなぁという気持ちがますます強まった。

情報系ではないので、研究室で使うのかは微妙なところだが、時間をとって他の機械学習本も読んでいきたい。