こんにちは!ぼりたそです!
今回はいつもの機械学習の解説記事とは少し違い、お知らせがあります。
この度、Kindle書籍『ゼロから理解する機械学習アルゴリズム ― 数式・図解・Python実装で学ぶ ―』を出版しました!
なお、本書は電子書籍版のみでKindle Unlimitedの対象書籍となっています。
Kindle Unlimitedに加入している方であれば、追加料金なしで読むことができます!
これまで本ブログではさまざまな機械学習アルゴリズムについて解説してきました。
今回出版した書籍では、それらの内容をベースに、
「機械学習をこれから本格的に学びたい方が、アルゴリズムの仕組みからPython実装まで体系的に理解できること」
を目標として、一冊の本としてまとめています。
この記事では、
- なぜこの本を書いたのか
- どんな方におすすめなのか
- 本書にはどのような特徴があるのか
- 本書を読むことで何ができるようになるのか
について紹介したいと思います。
それでは順にご紹介していきます!
なぜこの本を書いたのか?
機械学習を勉強していると、
「Pythonでモデルを動かすことはできるけど、内部で何をしているのかわからない」
という状態になりやすいと思います。
例えば、scikit-learnを使えば、コード数行で機械学習を学習できます。
もちろん、実際に機械学習を活用するうえでライブラリを使えることは非常に重要です。
一方で、
「なぜこのアルゴリズムで予測できるのか?」
「別のアルゴリズムとは何が違うのか?」
「このデータにはどのモデルを使えばよいのか?」
と聞かれると、意外と説明するのが難しかったりします。
私自身、機械学習を勉強していく中で、
- 数式が多くて途中からわからなくなる
- 数式は理解できてもPythonコードとのつながりがわからない
- アルゴリズムを個別には知っているけど違いを整理できない
- 結局どのモデルを選べばよいかわからない
と感じることが何度もありました。
そこで今回、「数式・図解・Python実装の3つをつなげて理解できる本を作ろう」と思い、本書を執筆しました。
単にPythonコードをコピーして機械学習を動かせるようになることではなく、「なぜこのアルゴリズムを使うのか?」を自分なりに説明できるようになることを大きな目標にしています。
こんな方におすすめです
本書は、特に以下のような方を想定して書いています。
- 機械学習をこれから勉強したい
- Pythonを使ったデータ分析に興味がある
- 機械学習のコードは動かせるけど、アルゴリズムはよくわかっていない
- 機械学習の数式で挫折したことがある
- 代表的なアルゴリズムを一度体系的に整理したい
- 仕事で機械学習を使うため、基礎から学び直したい
特に、
「Pythonの使い方だけではなく、機械学習そのものを理解したい」
という方にはおすすめできる内容になっています。
一方で、すでに機械学習モデルを自由に設計・チューニングできる方や、最新の研究論文レベルの数学的な議論を求めている方には、少し物足りないかもしれません。
タイトル通り、あくまで「ゼロから理解する」ことに重点を置いた入門書です。
本書の特徴
本書を作るにあたって、特にこだわったポイントが4つあります。
① 数式を省略しすぎない
「初心者向けだから数式はほとんど使わない」
という考えもありますが、本書では必要な数式はきちんと掲載しています。
なぜなら、機械学習アルゴリズムを理解するうえで、数式はアルゴリズムの考え方そのものを表していることが多いからです。
ただし、数式を載せて終わりにはしません。
数式が登場したときには、「この式は何を計算しているのか?」、「なぜこの値を小さくするのか?」、「この項が大きくなると何が起こるのか?」
といった、式の意味をできるだけ直感的に説明することを意識しました。
数式を暗記するのではなく、「式が何を意味しているのか」を理解することを目指しています。
② 図解でアルゴリズムをイメージする
機械学習には、文章と数式だけではイメージしにくい考え方がたくさん登場します。
そこで本書では、できるだけ図を使ってアルゴリズムの動きを説明しています。
例えば、
- 回帰モデルがどのようにデータへフィッティングするのか
- 正則化によってなぜ過学習を抑えられるのか
- SVMがどのように分類境界を決めるのか
- 決定木がどのようにデータを分割するのか
- ランダムフォレストがなぜ複数の決定木を使うのか
- PCAがどのように次元を削減するのか
といった内容です。
「数式を見る → 図でイメージする」
という流れで読むことで、アルゴリズムの理解がかなりしやすくなるように構成しています。
③ Pythonで実際に動かして確認する
理論を読んだだけでは、「なんとなくわかった気がする」で終わってしまうことも少なくありません。
そこで本書では、基本的にそれぞれのアルゴリズムについてPythonによる実装例を掲載しています。
主にscikit-learnを使用しながら、
- データの準備
- モデルの学習
- 予測
- 性能評価
- 結果の可視化
まで実際に行います。
アルゴリズムを理解したあとに、自分でコードを実行して結果を確認することで、「数式上の考え方がPythonではこう実装されるのか」というつながりを理解できる構成にしました。
個人的にも、機械学習は読むだけより実際に動かした方が圧倒的に理解しやすいと思っています。
ぜひPCを横に置きながら読み進めていただければと思います!
④ 「結局どれを使えばいい?」まで整理
機械学習を勉強すると、
線形回帰、SVM、決定木、ランダムフォレスト、kNN……
と、どんどんアルゴリズムが増えていきます。
そこで困るのが、
「結局、何が違うの?」
という問題です。
本書では各アルゴリズムについて、
- どのような考え方で予測するのか
- どのようなデータが得意なのか
- メリットは何か
- デメリットは何か
まで整理しています。
単にアルゴリズムを知るだけではなく、「こういうデータなら、このモデルを試してみよう」と考えられるようになることを目指しています。
ここは実際に機械学習を使ううえでも、かなり重要なポイントだと思っています。
本書で扱っている内容
本書は大きく4章で構成しています。
第1章 機械学習の基礎
まずは、
- AI・機械学習・深層学習の違い
- 教師あり学習と教師なし学習
- 回帰と分類
- 特徴量と目的変数
など、アルゴリズムを学ぶ前に必要となる基礎知識を整理します。
第2章 教師あり学習のアルゴリズム
本書の中心となる章です。
以下の代表的なアルゴリズムを扱っています。
- 線形回帰
- Ridge回帰
- Lasso回帰
- Elastic Net
- ロジスティック回帰
- サポートベクターマシン(SVM)
- サポートベクター回帰(SVR)
- 決定木
- ランダムフォレスト
- 勾配ブースティング決定木(GBDT)
- k近傍法(kNN)
できるだけ、
概要 → アルゴリズム → Python実装 → まとめ
という同じ流れで学習できるようにしています。
そのため、一つずつ順番に読んでもいいですし、気になるアルゴリズムだけ辞書のように読み返すこともできます。
第3章 教師なし学習のアルゴリズム
教師なし学習では、
- k-means
- 階層的クラスタリング
- PCA
- t-SNE
- UMAP
を扱っています。
クラスタリングだけでなく、実際のデータ分析でもよく使われる次元削減手法までまとめています。
特にPCA・t-SNE・UMAPについては、「それぞれ何が違うのか?」がわかるように意識して解説しています。
第4章 モデルの評価とハイパーパラメータの決定
機械学習は、モデルを作って終わりではありません。
作成したモデルが未知のデータに対してどの程度正しく予測できるのか、きちんと評価する必要があります。
そこで第4章では、
- 回帰・分類の評価指標
- 過学習と汎化性能
- ホールドアウト
- クロスバリデーション
- ハイパーパラメータチューニング
などについて解説しています。
「アルゴリズムを知っている」状態から、「モデルを作って評価し、改善する」ところまで一通り学べる構成です。
本書を読み終えたときの目標
本書を最後まで読み終えたときには、
- 機械学習の代表的なアルゴリズムの仕組みを説明できる
- 各アルゴリズムの違いを理解できる
- データに応じて使用するアルゴリズムを考えられる
- Pythonで基本的な機械学習モデルを実装できる
- 作成したモデルを適切に評価できる
という状態を目指します。
特に、
「とりあえずRandomForestを使う」
「とりあえず精度が一番高いモデルを使う」
という状態から一歩進んで、
「なぜこのアルゴリズムを選んだのか?」
を説明できるようになっていただけたら、この本を書いた意味があったと思っています。
まとめ
今回は、出版した
『ゼロから理解する機械学習アルゴリズム ― 数式・図解・Python実装で学ぶ ―』
について紹介しました!
機械学習は、最初に勉強するときは難しい言葉や数式がたくさん出てくるので、かなりハードルが高く感じます。
私自身も、
「結局、この数式は何をやっているんだ?」
「Pythonでは簡単に動くけど、なぜ予測できるんだ?」
と何度も疑問に思いながら勉強してきました。
本書は、そんな疑問を一つずつ解消できるよう、数式で理解する→図でイメージする→Pythonで実際に動かすという流れを大切にして作っています。
「Pythonで機械学習を始めたい」
「一度勉強したけれど、アルゴリズムをよく理解できなかった」
「仕事で使うために、機械学習を基礎から体系的に学び直したい」
という方に、ぜひ手に取っていただければと思います。
機械学習を「使える」だけでなく「理解して使える」ようになりたい方の最初の一冊になれば嬉しいです!
▼『ゼロから理解する機械学習アルゴリズム ― 数式・図解・Python実装で学ぶ ―』はこちら
ぜひご覧いただければと思います!
