0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python機械学習の基礎固め5冊

0
Posted at

はじめに

自分が最初に書いた機械学習らしいコードは、scikit-learn の fit と predict を呼ぶだけの十数行だった。データを読み込んで、モデルに食わせて、精度が出た。そこで満足していた。

問題はレビューで起きた。「この評価指標で妥当なのか」「学習データに予測時点では手に入らない情報が混ざってないか」と聞かれて、何ひとつ答えられなかった。ライブラリの使い方は分かるのに、中で何が起きているか説明できない。あのときの気まずさは今でも覚えている。

そこから半年ほど、ブログ記事やチュートリアルを読み漁った。断片的な知識は増えたが、バラバラのままだった。前処理の話と評価の話と最適化の話が、頭の中でつながらない。結局効いたのは、腰を据えて書籍を通読することだった。本は章の並びそのものが「どの順番で考えるべきか」を教えてくれる。

この記事では、自分が実務で手を動かしながら読んで役に立った5冊を、読む順番つきで紹介する。全体像をつかむ1冊から入り、Python で実装し、データと評価の作法を固め、最後に理論とニューラルネットへ踏み込む流れにした。数学の専門書は入れていない。必要になった時点で戻ればいい。

① 機械学習 100+ページ エッセンス — Andriy Burkov

Amazonで見る

著者の Andriy Burkov は Gartner で機械学習チームを率いてきた実務家で、博士号も持つ。研究と現場の両方を知っている人の筆致になっている。

この本の割り切りが気持ちいい。網羅をあきらめて、実際に使われている手法だけを拾っている。線形モデル、決定木、SVM、ニューラルネットワーク、主要なクラスタリング。それぞれが短い節で片付いていく。

自分が何度も読み返したのは「基本的な実践」にあたる章だ。特徴量エンジニアリング、正則化、ハイパーパラメータ調整、性能評価。現場で本当に時間を取られる作業が、ここにまとまっている。

ページ数が薄いぶん、説明はかなり圧縮されている。初見で分からない箇所は飛ばして進めたほうがいい。あとの4冊が勝手に補完してくれる。

こんな人に: 機械学習の地図をまず1枚持ちたい人

② [第3版]Python機械学習プログラミング — Sebastian Raschka, Vahid Mirjalili

Amazonで見る

Raschka は機械学習ライブラリ開発にも関わる研究者で、教える側としての経験が長い。説明の階段のかけ方がうまい。

プログラマ向けの入門書としては、自分が読んだ中で一番バランスがいい。理論、実装、フレームワークの使い方が同じ比重で並んでいて、どれかに偏らない。分類器とニューラルネットワークの扱いは特に丁寧だ。

学習データの前処理を扱う第4章と、モデル評価とチューニングの第6章は、業務コードを書く前に通っておく価値がある。交差検証の切り方や学習曲線の読み方は、ここで身につけた。

訓練したモデルを HTTP 経由で呼び出すところまで踏み込んでいるのもありがたい。推論をどう製品に載せるかという視点が最初から入っている。第3版では TensorFlow 2、GAN、強化学習も追加された。

こんな人に: Python でちゃんと動くものを作りながら理解を深めたい人

③ データサイエンス設計マニュアル — Steven S. Skiena

Amazonで見る

著者の Skiena は『アルゴリズム設計マニュアル』で知られる大学教員だ。教えることに慣れた人の本らしく、構成が異常に整理されている。

扱う範囲は広い。数学の基礎、データの収集と整形、統計、可視化、回帰、ランキング、クラスタリング、分類。機械学習の手前にある工程が、きちんと一つずつ章になっている。

自分にとって一番の収穫は可視化とデータ検査の章だった。モデルを変える前にデータを見ろ、という話が具体的な手順として書かれている。精度が伸びない原因の多くは、ここをサボったことにある。

章末の演習と、講義動画が公開されている公式サイトもある。独学で詰まったときの逃げ道が用意されているのは大きい。

こんな人に: モデルより手前の工程で毎回つまずいている人

④ Rによる 統計的学習入門 — Gareth James, Trevor Hastie, Robert Tibshirani, Daniela Witten

Amazonで見る

著者陣は統計的学習の分野を作ってきた面々で、Hastie と Tibshirani は『統計的学習の基礎』の著者でもある。この本はその弟分として、意図的に数式を抑えて書かれている。

読む目的を絞るといい。手法のカタログとしてではなく、モデルをどう選びどう評価するかの教科書として読む。バイアスとバリアンスのトレードオフ、交差検証、正則化。この三つの説明は、自分が読んだ中でいちばん腑に落ちた。

コード例が R なのは、エンジニアには少し遠い。ただ考え方の部分は言語に依存しない。手を動かしたければ、同じ処理を scikit-learn で書き直すと理解が二重に深まる。

数式が出てくる箇所も、意味を日本語で言い直す説明がついている。詰まったら図だけ追っても元は取れる。

こんな人に: モデル選択と評価の根拠を自分の言葉で説明したい人

⑤ ニューラルネットワークとディープラーニング — Charu C. Aggarwal

Amazonで見る

著者の Aggarwal は IBM の研究者で、データマイニング分野の著書が多い。本書も大学院レベルを想定した本格的な教科書だ。

基礎から始まり、深層学習の外側にも手を伸ばしている。浅いネットワーク、コホネンマップ、ボルツマンマシンといった今は主流でない構成まで並ぶ。ニューラルネットワークがいかに汎用的な道具かが見えてくる。

学習のメカニズムの説明が厚い。逆伝播、勾配の消失、初期化、正則化の扱いが章として独立している。ここを通ると、学習が収束しないときの当たりのつけ方が変わる。

重い本なので、通読より辞書的な使い方を勧める。実装で行き詰まった手法の章だけ開く。その使い方でも十分に元が取れる。

こんな人に: 深層学習の挙動を理屈で説明できるようになりたい人

まとめ

ステップ 読む本 得られるもの
1 全体像 機械学習 100+ページ エッセンス 使われている手法の地図
2 実装 [第3版]Python機械学習プログラミング Python で動かす力と評価の作法
3 データ データサイエンス設計マニュアル 前処理・可視化・分析の工程設計
4 理論 Rによる 統計的学習入門 モデル選択と汎化性能の根拠
5 深掘り ニューラルネットワークとディープラーニング 学習メカニズムの理解

今の課題別に、1冊だけ選ぶならこうなる。

  • 用語についていけない: 機械学習 100+ページ エッセンス
  • コードは書けるが設計に自信がない: [第3版]Python機械学習プログラミング
  • 精度が伸びず原因が分からない: データサイエンス設計マニュアル
  • 評価指標の選び方を説明できない: Rによる 統計的学習入門
  • 深層学習が学習しない理由を知りたい: ニューラルネットワークとディープラーニング

5冊すべてを一気に読む必要はない。1冊目で地図を持って、詰まった方向の本へ寄っていく。自分はその進め方でようやく、冒頭のレビューで答えられなかった質問に答えられるようになった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?