ISBN 9784797393965
機械学習のエッセンス : 実装しながら学ぶPython、数学、アルゴリズム
概要
機械学習アルゴリズムをゼロから自力実装して仕組みを理解する
想定読者
機械学習の内部構造を理解したい学生・エンジニア。既存フレームワークを使いこなすだけでなく、アルゴリズムの数理的背景を自分の手で確かめたい人
こんな人には向いていない
- scikit-learn等のフレームワーク活用でデータ分析業務を素早くこなしたい実務者には、実装中心の構成が迂回に感じる場合がある
- 深層学習(ニューラルネットワーク・CNN・RNN等)の手法を学びたい人には扱いがない
- 大学数学(線形代数・微積分)の基礎をまだ持っていない完全な入門者には、数学章の密度が高い
読了後にできるようになること
- 線形代数・微積分をNumPy/SciPyで数値計算として実装できる
- 回帰(線形・リッジ・ラッソ)のコスト関数と最適化の流れをゼロから書ける
- ロジスティック回帰・SVMの理論的な導出と実装の対応関係を説明できる
- k-Meansと主成分分析(PCA)を自力実装し、クラスタリング・次元削減の動作を把握できる
- 汎化・過学習の概念と正則化の役割を実装レベルで理解できる
- Pythonの数値計算スタック(NumPy/SciPy/Matplotlib)を機械学習用途で使いこなせる
本書のキー概念(章解説)
- 第 1 章 学習を始める前に — 本書の射程と含まないものを明示。ゴール設定として最初に読む価値がある
- 第 2 章 Pythonの基本 — Pythonに慣れている読者は斜め読みで可。オブジェクト指向とモジュール節は後の実装で参照することになる
- 第 3 章 機械学習に必要な数学 — 線形代数・微積分を機械学習用途に絞って解説。数学既習者も本書の記法確認のため一読を推奨
- 第 4 章 Pythonによる数値計算 — NumPy/SciPyの実践的な使い方が中心。数理最適化・疎行列まで踏み込んでおりここだけで独立した価値がある
- 第 5 章 機械学習アルゴリズム — 回帰・分類・クラスタリング・次元削減の主要手法を網羅。各節が独立しているので特定手法から読み始めることも可能
ハイライト
- 機械学習のいくつかの有名なアルゴリズムを、自分でゼロから実装することを目標としています。こうすることにより、とかくブラックボックスになりがちな機械学習の仕組みを理解し、さらなる応用力と問題解決力を身につけることができます(本書の設計思想が最も端的に表れている箇所。フレームワーク依存からの脱却という方針が明確)
- 代表的な機械学習のアルゴリズムについて、一からPythonで実装します。機械学習に用いる数学についても学べます(実装と数学の両立という本書の構成的特徴が読者に伝わっている点)
外部からの言及
- k-Means・リッジ回帰・ラッソ回帰などアルゴリズム別の実装解説記事が本書のコードを一次参照として引用するパターンが複数確認できる。学習者が手元に置き、コードに注釈を加えながら使う実習書としての位置付けが目立つ(qiita)
- 機械学習書の選書記事において、大学数学の基礎がある学習者向けの標準的な一冊として繰り返し名前が挙がる。数学とPython実装を同時に学べる構成が評価されており、フレームワーク入門書よりも前に読む書籍として推奨されるケースが多い(qiita)
- データサイエンス推薦書リストへの収録が確認でき、scikit-learnやChainerなどのフレームワーク活用書と並ぶ形で、アルゴリズム理解層向けの書籍として区別して紹介されている(qiita)
編集メモ
Qiita 言及 18件 / 累計 likes 約950 / k-Means・リッジ回帰・ラッソ回帰など複数アルゴリズムの実装解説記事が本書を一次参照として引用しており、機械学習入門〜中級層のリファレンスとして定着している
読む前に押さえておきたいこと
- Pythonの基本構文(リスト・辞書・関数・クラス)の読み書き経験
- 高校数学レベルの行列・ベクトルの概念(大学数学があればなお良い)
- 微分の基礎概念(導関数・偏微分のイメージ)
学習のコツ
- 第2章(Pythonの基本)はPython経験者なら概要確認程度に留め、第3〜4章の数学・数値計算に時間を集中させると効率的
- 第5章の各アルゴリズム節は独立しているため、業務や学習で必要な手法(例: リッジ回帰)から先に読み始める使い方が有効
- 本書のコードを写経するだけでなく、各パラメータ(正則化係数λ等)を意図的に変えて挙動の変化を確認すると、理論と実装の対応が深く身につく
- 数学の詰まりを感じたら、第4章のNumPyによる具体的な計算例に戻ることで抽象的な数式と対応付けやすい
出版社による内容紹介
本書は具体的なデータ分析の手法を説明する意図で書かれたものではありません。 実用的な目的ならscikit-learnやChainerなどの既存のフレームワークを使うべきですが、本書では機械学習のいくつかの有名なアルゴリズムを、自分でゼロから実装することを目標としています。こうすることにより、とかくブラックボックスになりがちな機械学習の仕組みを理解し、さらなる応用力と問題解決力を身につけることができるようになります。 また、処理系にはデファクトスタンダードであるPythonを使い、機械学習に必要な数学の知識もわかりやすく解説しています。 これから機械学習を始める学生さんや、いきなりプロジェクトに放り込まれていまいち理解できないままデータ分析の仕事をしているエンジニアの方にも最適です。 ●目次 はじめに 第01章 学習を始める前に 01 本書の目的 02 本書は何を含まないか 03 機械学習の初歩 04 実行環境の準備 第02章 Pythonの基本 01 プログラムの実行方法 02 基本的な文法 03 数値と文字列 04 複数行処理 05 制御構造 06 リスト、辞書、集合 07 関数定義 08 オブジェクト指向 09 モジュール 10 ファイル操作 11 例外処理 第03章 機械学習に必要な数学 01 基本事項の確認 02 線形代数 03 微積分 第04章 Pythonによる数値計算 01 数値計算の基本 02 NumPyの基本 03 配列の基本計算 04 疎行列 05 NumPy/SciPyによる線形代数 06 乱数 07 データの可視化 08 数理最適化 09 統計 第05章 機械学習アルゴリズム 01 準備 02 回帰 03 リッジ回帰 04 汎化と過学習 05 ラッソ回帰 06 ロジスティック回帰 07 サポートベクタマシン 08 k-Means法 09 主成分分析(PCA) INDEX はじめに 第01章 学習を始める前に 01 本書の目的 02 本書は何を含まないか 03 機械学習の初歩 04 実行環境の準備 第02章 Pythonの基本 01 プログラムの実行方法 02 基本的な文法 03 数値と文字列 04 複数行処理 05 制御構造 06 リスト、辞書、集合 07 関数定義 08 オブジェクト指向 09 モジュール 10 ファイル操作 11 例外処理 第03章 機械学習に必要な数学 01 基本事項の確認 02 線形代数 03 微積分 第04章 Pythonによる数値計算 01 数値計算の基本 02 NumPyの基本 03 配列の基本計算 04 疎行列 05 NumPy/SciPyによる線形代数 06 乱数 07 データの可視化 08 数理最適化 09 統計 第05章 機械学習アルゴリズム 01 準備 02 回帰 03 リッジ回帰 04 汎化と過学習 05 ラッソ回帰 06 ロジスティック回帰 07 サポートベクタマシン 08 k-Means法 09 主成分分析(PCA) INDEX
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。