機械学習のエッセンスの表紙

機械学習のエッセンス(キカイガクシュウノエッセンス)

実装しながら学ぶ Python 、数学、アルゴリズム

プログラミング
著者:
加藤 公一(カトウ キミカズ)
出版社:
SBクリエイティブ
出版日:
2018年09月22日頃
ISBN:
9784797393965
在庫:
在庫あり
4.5(5 件 / 楽天ブックス)
初級者向け
Python機械学習アルゴリズム数学線形代数NumPy

なぜ注目されているか

言及数
28
総合325 19 ランクダウン 68 件の言及
03620222023202420252026

書籍紹介

本書は具体的なデータ分析の手法を説明する意図で書かれたものではありません。
実用的な目的なら 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

技書の森解説

機械学習のエッセンス』は、加藤公一氏による機械学習の数理と実装の解説書で、 SB クリエイティブから 2018 年 9 月に刊行されました。副題は「実装しながら学ぶ Python 、数学、アルゴリズム」。 scikit-learn のような既存ライブラリの使い方を教える本ではなく、回帰やサポートベクタマシンといった代表的なアルゴリズムを、必要な数学の確認から始めて素の Python と NumPy でゼロから実装することを目標に据えた一冊です。版元自身が「具体的なデータ分析の手法を説明する意図で書かれたものではない」と明言しており、機械学習の中身をブラックボックスにしないための本という立ち位置がはっきりしています。

全 5 章の構成、 Python の文法から数学、ゼロ実装へ

構成は全 5 章です。第 1 章「学習を始める前に」で本書の目的と実行環境を整え、第 2 章で Python の基本文法からオブジェクト指向、例外処理までを押さえます。第 3 章「機械学習に必要な数学」は線形代数と微積分が中心で、第 4 章「 Python による数値計算」では NumPy と SciPy による配列計算、疎行列、乱数、数理最適化、統計までを扱います。最終の第 5 章「機械学習アルゴリズム」で、線形回帰、リッジ回帰とラッソ回帰、汎化と過学習、ロジスティック回帰、サポートベクタマシン、 k-Means 法、主成分分析 (PCA) を順に実装していきます。前半 4 章で道具立てをそろえ、最後に一気に本丸へ進む積み上げ型の設計です。

ライブラリを呼ぶだけから抜け出す、ゼロ実装の技術背景

機械学習ライブラリが成熟した結果、モデルを「動かすだけ」なら数行のコードで済むようになりました。その一方で、学習がうまく進まないときの切り分けや手法選択の判断、論文や理論書の読解では、勾配降下法がなぜ収束するのか、正則化がなぜ過学習を抑えるのかといった数理の理解が地力の差になって表れます。本書はその地力を、数式とそれを写し取ったコードの両面から作る本です。数学の教科書は抽象的に、実装チュートリアルは式を省略しがちな中で、線形代数から数値計算の実際 (ベクトル化や疎行列の扱い) までを地続きに解説する構成に特徴があります。なお、扱うのは上記の古典的なアルゴリズムであり、ニューラルネットワークディープラーニングの実装は目次に含まれません。版元紹介文には 2018 年当時のフレームワークとして Chainer の名前が見えますが、本文の主役は特定のフレームワークに依存しない数学と素の Python なので、ライブラリの世代交代で陳腐化しにくい種類の本です。

前提知識と、数学に挫折した人への効き目

版元が挙げる対象読者は、これから機械学習を始める学生と、理解が追いつかないままデータ分析の業務に携わっているエンジニアです。 Python は第 2 章で文法から確認できるためプログラミング経験が浅くても入れますが、読了の難易度を決めるのは数学との距離です。第 3 章は基本事項の確認から入るものの、線形代数と微積分を腰を据えて追う覚悟は必要で、数式を読むこと自体を避けたい人には向きません。逆に、数式の壁で一度挫折した人が土台から固め直す用途には設計がかみ合っており、 scikit-learn のパラメータや理論書の数式を「知っている計算」として読めるようになることが本書のペイオフです。数学の学び直しをどこまでやるかの見極めには機械学習に必要な数学の本ガイドも参考になります。

ゼロから作る Deep Learning との使い分け

同じ「ゼロから実装する」思想の本には『ゼロから作る Deep Learning 』 (斎藤康毅著、オライリー・ジャパン) がありますが、あちらがニューラルネットワークとその発展形に的を絞るのに対し、本書は線形モデルや SVM といった古典的アルゴリズムと、その土台になる数学・数値計算を受け持ちます。両者は競合というより補完関係で、本書で数理の足場を作ってからディープラーニング系に進むと接続が滑らかです。シリーズ側の全体像はゼロから作る Deep Learning シリーズの読む順番に整理があります。業務のデータ分析パイプラインを手早く組みたい人には遠回りに見えるかもしれませんが、モデルの中身を自分の言葉で説明できるようになりたいエンジニアや、数学から逃げずに機械学習をやり直したい独学者にとっては、 2018 年刊であることの古さをほとんど感じさせない、長く効く投資になる一冊です。

言及 Qiita 記事 (64 件)

この本に興味がある方におすすめ

この本に関連

加藤 公一 の他の書籍

関連記事

関連用語

共有:Xはてブ