はじめに
数年前、退職した同僚から需要予測のモデルを引き継いだことがある。ノートブックは動いていたし、精度も一応出ていた。それでも困った。なぜこの特徴量が効いているのか、なぜこのモデルを選んだのかを、自分の言葉で説明できなかった。
そのとき自分がやったのは、とりあえず手当たり次第に技術書を買うことだった。分厚い理論書を開いては数式で止まり、チュートリアル本を写経しては翌週忘れる。半年くらい遠回りした。
振り返って思うのは、機械学習の本は読む順番でコスパが大きく変わるということ。まず用語と全体の地図を短時間で頭に入れる。次にコードを書いて挙動を掴む。そこまで来てから理論に戻ると、数式が「あの挙動の説明」として読めるようになる。
この記事では、その順番を意識して4冊を並べた。どれも日本語版が出ていて、コードや図が多く、日本のエンジニアが実務で開き直せるものを選んだ。上から順に読む必要はないが、今の自分がどの段にいるかを意識して選ぶと外しにくい。
① 機械学習 100+ページ エッセンス — Andriy Burkov
著者のAndriy Burkovは、機械学習の博士号を持ちつつ企業でチームを率いてきた実務者だ。だからこの本には、研究と現場の温度差を知っている人の割り切りがある。
内容は薄さのわりに守備範囲が広い。教師あり学習と教師なし学習、勾配降下法、正則化、評価指標、そして深層学習や強化学習の入口まで、ひと通り触れてある。式は出てくるが、必要最小限に絞られている。
自分がありがたかったのは、各トピックが「何のための道具か」から書かれている点だ。SVMやランダムフォレストの説明が、アルゴリズムの手続きではなく解きたい問題から始まる。この視点があると、後で分厚い本を読むときに迷子になりにくい。
弱点もはっきりしている。手を動かす材料はほとんどない。読み終えても実装力はつかない。あくまで地図として使う本だ。
逆に言えば、チームに機械学習の非専門メンバーがいるときの共通言語づくりに向いている。自分は新メンバーのオンボーディング資料の下敷きにした。
こんな人に: 用語と全体像を最短で押さえて、次に読む本を決めたい人。
② scikit-learn、Keras、TensorFlowによる実践機械学習 第3版 — Aurélien Géron
著者のAurélien GéronはYouTubeで動画分類チームを率いた経験を持つエンジニアで、この本の実務寄りのバランスはそこから来ているのだと思う。
前半はscikit-learnで古典的な機械学習を回す。データの取得から前処理、パイプライン化、交差検証、ハイパーパラメータ探索まで、プロジェクトの流れそのままに進む。後半はKerasとTensorFlowでニューラルネットに入り、CNN、RNN、Transformer、生成モデルまで届く。
第3版では拡散モデルや大規模言語モデル周辺の話題も補強されている。今この領域に入る人が最初に買う実装書としては、鮮度の面でも安心できる。
自分が一番使い倒したのは前処理とパイプラインの章だ。カスタムトランスフォーマーを書いてPipelineに載せる作法を覚えてから、実験の再現性が明らかに上がった。精度チューニングより先に効いた変化だった。
分量は多い。1000ページ超を通読しようとすると必ず途中で折れる。目次を索引として扱い、詰まった章だけ開くほうが続く。
こんな人に: Pythonは書けるが、機械学習プロジェクトの型がまだ身についていない人。
③ 深層学習 — Ian Goodfellow, Yoshua Bengio, Aaron Courville
GAN を生んだIan Goodfellow、チューリング賞受賞者のYoshua Bengio、そしてAaron Courville。深層学習の基礎理論を、当事者たちが自分の言葉でまとめた一冊だ。
構成は三部だ。線形代数と確率、情報理論といった数学の準備から入り、順伝播ネットワーク、正則化、最適化、CNN、RNNと積み上げ、最後に研究寄りのトピックへ広がる。
自分にとって効いたのは正則化と最適化の章だった。ドロップアウトやバッチ正規化を「なんとなく入れる設定」として扱っていたのが、何を仮定してどう効くのかで語れるようになった。学習が発散したときの当たりのつけ方が変わった。
一方で、この本にAPIの使い方は書いていない。数式を追う体力も要る。②で挙動を触った後に読むのがちょうどいい。
こんな人に: 学習がうまくいかない理由を、勘ではなく根拠で切り分けたい人。
④ パターン認識と機械学習 上 — Christopher M. Bishop
著者のChristopher M. BishopはMicrosoft Researchで長く研究を率いてきた人物で、本書は通称PRMLとして日本でも読書会が絶えない定番だ。
軸はベイズだ。多項式回帰の過学習から始まり、確率分布、線形回帰と線形識別、カーネル法、グラフィカルモデルへと、確率モデルの言葉で一貫して説明が続く。
自分がこの本で腹落ちしたのは、正則化が事前分布として書き直せるという話だった。L2正則化の係数をガウス事前分布の分散として眺め直すと、パラメータをどこまで信じるかという設計判断に見えてくる。この視点は不確実性を扱う案件でそのまま役に立った。
演習問題が多く、飛ばすと理解が浅いまま進んでしまう。上巻だけでも重いので、章単位で読書会にするのが現実的だと思う。
こんな人に: 確率モデルの言葉で機械学習を組み直したい人。
まとめ
| ステップ | 読む本 | 得られるもの |
|---|---|---|
| 地図を作る | 機械学習 100+ページ エッセンス | 用語と手法の全体像、次の一冊を選ぶ基準 |
| 手を動かす | scikit-learn、Keras、TensorFlowによる実践機械学習 第3版 | 前処理からデプロイまでのプロジェクト進行の型 |
| 理屈を掴む | 深層学習 | 最適化と正則化の根拠、失敗の切り分け方 |
| 数理で組み直す | パターン認識と機械学習 上 | ベイズ的なモデリングと不確実性の扱い |
今の課題別に1冊だけ選ぶなら、こんな感じだ。
- 会議で用語が追えない、まず地図が欲しい → 機械学習 100+ページ エッセンス
- モデルは作れるが実験が散らかる、再現できない → scikit-learn、Keras、TensorFlowによる実践機械学習 第3版
- 学習が発散する、ハイパーパラメータ調整が運任せ → 深層学習
- 予測値に信頼区間をつけたい、確率モデルを設計したい → パターン認識と機械学習 上
4冊すべてを読み通す必要はない。自分の詰まっている場所に対応する1冊を開いて、該当する章だけ読む。それを繰り返すうちに、引き継いだコードを自分の言葉で説明できるようになっていた。