はじめに
半年ほど前、自分が担当していた予測モデルの改善案が社内レビューで止まった。オフライン評価のAUCは0.03上がっていた。それでも「その差は偶然ではないと言い切れるのか」と聞かれて、自分は何も答えられなかった。
そのとき痛感したのは、ライブラリのAPIをいくら覚えても越えられない壁があるということ。fit と predict は書ける。ハイパーパラメータ探索も回せる。でも、なぜそのモデルが効いたのか、どれくらいのサンプルがあれば判断していいのか、本番で精度が落ちたときどこを疑うのか。この辺りは全部あやふやだった。
自分はそこから、チュートリアル動画を追いかけるのをやめた。代わりに腰を据えて読む本を数冊だけ決めて、手元のコードと行き来しながら読むようにした。結果として、レビューで詰まる回数が明らかに減った。
この記事では、そのとき選んだ4冊を紹介する。並べ方は「統計の感覚をつくる → モデルの中身を説明できるようにする → 数式を自力で追う → 本番で動かし続ける」という順にした。流行の新刊はほとんど入っていない。どれも長く残っている本で、読み終わったあとに手元に効果が残るものを優先している。
① データサイエンスのための統計学入門 第2版 ―予測、分類、統計モデリング、統計的機械学習とR/Pythonプログラミング — Peter Bruce / Andrew Bruce / Peter Gedeck
著者のPeter Bruceは統計教育のオンラインスクールを立ち上げた人物で、共著のAndrew BruceとPeter Gedeckはいずれも企業で分析業務を長く積んだ実務家だ。学術書というより、現場で統計を使う側の視点で書かれている。
扱うのは、探索的データ解析、サンプリングと分布、仮説検定、回帰と分類、そしてリサンプリング。どのトピックもRとPythonのコードが添えられていて、手を動かしながら確認できる。
ありがたいのは、統計学の体系を網羅しようとしていない点だ。データ分析で実際に出てくる話題に絞り、それぞれ「なぜ気をつける必要があるのか」から入る。p値の誤用、多重比較、ブートストラップの使い所といった、実務でやりがちな落とし穴が具体的に書かれている。
自分に一番刺さったのはA/Bテストと検定力の章。冒頭で書いたレビューの質問は、要するにここの知識が抜けていたせいだった。読んだあとは、改善幅を報告するときに信頼区間を添えるのが当たり前になった。
こんな人に: モデルは組めるが、実験結果の解釈や有意性の説明で自信が持てない人
② 統計的学習の基礎 ―データマイニング・推論・予測― — Trevor Hastie / Robert Tibshirani / Jerome Friedman
スタンフォード大の統計学者3人による古典。Friedmanは勾配ブースティングの考案者、HastieとTibshiraniはLassoやglmnetで知られる。機械学習の主要手法の多くが、この著者たちの研究から出ている。
内容はバイアスとバリアンスの分解、正則化、スプライン、カーネル法、決定木、ブースティング、ランダムフォレスト、グラフィカルモデルまで。手法カタログの形をとりつつ、それぞれの背後にある統計的な考え方が一貫して説明されている。
700ページ超なので、通読は現実的ではない。自分は使う手法の章だけを辞書的に読んでいる。たとえばXGBoostのパラメータで迷ったら木とブースティングの章に戻る。この使い方だと負担がかなり減る。
読んで変わったのは、モデル選択の理由を言葉にできるようになったこと。「とりあえず正則化を強めた」から「サンプル数に対して特徴量が多く、バリアンスが支配的だから」へ説明が変わる。この差はチームで仕事をするときに大きい。
こんな人に: 手法を選ぶ根拠を感覚でなく理屈で説明したい人。ただし最初の1冊には重い
③ 機械学習のための数学 — Marc Peter Deisenroth / A. Aldo Faisal / Cheng Soon Ong
Deisenrothはインペリアル・カレッジ・ロンドンで機械学習を研究する立場にあり、共著の2人も同分野の研究者。大学の講義資料をもとに書かれた本で、構成が教科書として整っている。
前半が線形代数、解析幾何、行列分解、ベクトル解析、確率、最適化。後半はそれらを使って線形回帰、主成分分析、ガウス混合モデル、サポートベクターマシンを組み立てていく。数学パートと応用パートが明確に分かれているのが特徴だ。
自分が評価しているのは、後半の存在。多くの数学書は道具の説明で終わるが、この本は「いま学んだ固有値分解がPCAのどこで出てくるか」を最後まで見せてくれる。道具と用途が結びつくと、記憶に残り方が違う。
注意点として、証明はきちんと書かれているので軽い本ではない。自分は線形代数と最適化の章だけ先に読み、残りは論文で詰まったときに戻る形にした。全部を一度に消化しようとすると挫折する。
こんな人に: 論文やドキュメントの数式で手が止まる人、PCAや最適化の中身を自力で追いたい人
④ Practical MLOps: Operationalizing Machine Learning Models — Noah Gift / Alfredo Deza
Noah Giftはデューク大などで教えながらクラウドとMLの実務を続けている人物。Alfredo Dezaはインフラ自動化やコンテナ運用に強いエンジニアで、2人の背景がそのまま本の方向性になっている。
テーマはモデルを作ったあとの全部だ。コンテナ化、CI/CDパイプライン、実験管理、モデルのバージョニング、エッジへのデプロイ、監視とデータドリフトへの対応。AWS、Azure、GCPそれぞれの具体例が載っている。
機械学習の本というより、MLを題材にしたソフトウェアエンジニアリングの本と言ったほうが近い。GitHub ActionsやDockerfileがそのまま出てくるので、普段からインフラに触っている人ほど読みやすい。
自分が得たのは、推論APIに監視を入れる発想。学習時と本番で入力分布がずれていく事実を前提に設計するようになって、障害対応が後追いから事前検知に変わった。英語版のみなので読む負荷はあるが、文章は平易で技術書としては読みやすい部類だ。
こんな人に: 学習までは回せるが、デプロイと運用で毎回つまずく人
まとめ
| ステップ | 読む本 | 得られるもの |
|---|---|---|
| 1. 感覚をつくる | データサイエンスのための統計学入門 | ノイズと不確実性の扱い、検証の作法 |
| 2. 中身を知る | 統計的学習の基礎 | 正則化やアンサンブルが効く理由を説明する力 |
| 3. 数式を追う | 機械学習のための数学 | 線形代数と最適化を自力で読む体力 |
| 4. 運用に乗せる | Practical MLOps | デプロイ、監視、再学習までの設計 |
今の課題別に、最初に開く1冊を選ぶなら次の通り。
- 実験結果の有意性をうまく説明できない → データサイエンスのための統計学入門
- モデル選択やパラメータ調整が勘頼みになっている → 統計的学習の基礎
- 論文やライブラリのドキュメントの数式で止まる → 機械学習のための数学
- 作ったモデルが本番で静かに劣化していく → Practical MLOps
4冊とも薄い本ではないので、一気に読むより、仕事で詰まった箇所に対応する章だけ開くのが続く。自分はこの読み方に切り替えてから、ようやく本棚が機能し始めた。