タダです。
機械学習の勉強を進めていて、僕のような初学者向けの本「機械学習のエッセンス」を読んだので所感をまとめていきます。
目次
本書の特徴
冒頭に書かれているのですが、本書では scikit-learn のようなライブラリで使える機能をゼロから Python で実装することを目的としています。
その理由は機械学習のアルゴリズムの中身を理解していくために必要なこととし、主に5章でその実装を行います。
そして、僕のような数学を学生時代に挫折した方にも優しい内容になっているのが、本書の第2の特徴です。
数学で必要な知識を解説してくれているので、不明点があれば立ち返り可能なのが良い点です。
本書の Python 実行環境
本書では、 Anaconda を使うことになっています。
Python の他必要なライブラリが入っているので Python 初心者にとっつきやすいツールです。
また、機械学習といえば Python というのがほぼデファクトになっているので言語として Python は最適な選択だと思います。
Python の文法と、機械学習のための数学の基礎
4章と5章で Python を使ったプログラミングを行うにあたって、基本的な文法と数学の基礎を勉強していくのが2章と3章です。
文法としては以下の内容を学びます。
- 数値、文字列の扱い
- リスト、辞書、集合
- 繰り返し
- 条件分岐
- 関数
- モジュールのインポート
- 例外処理
4章、5章でも3章で学んだ数式がたくさん出てくるので、数学苦手な方は何度も立ち返る場所になるため重要なトピックになります。
機械学習と数学の実践
4章では、 numpy / Scipy を使って数列を扱ったり、 matplotlib で描画を行います。
上記のライブラリは頻出なため、使い方を数式で表現した場合と並行で解説されているので前章での知識整理に繋がります。
また、4章後半にある「数理最適化」問題や「統計」の専門用語は 並行で取り組んでいる「Coursera」中にも登場した概念で個人的に良い復習となりました。
関連記事
sadayoshi-tada.hatenablog.com sadayoshi-tada.hatenablog.com
機械学習ライブラリを使わない実装
5章で、機械学習のトピックをライブラリを使わず、手法ごとに実装方法の学習になります。扱うのは以下の内容です。
概念の解説 -> 数式での解説 -> コードでの数式で表現した箇所の解説
という構成になっているため、数式で理解が追いついてなくてもコードの実装からこういう処理をしているんだと理解を助けてくれます。
1回目読みきった
— SADAYOSHI TADA🎉 (@tada_infra) March 6, 2019
苦手な数学をコードで細かく解説する流れがありがたい
咀嚼できるまで何回も読み返す https://t.co/6eO9DTyrEq
また、特徴量を特定する上で必要な、汎化と過学習の概念についても解説されているのがありがたいです。
まとめ
「機械学習のエッセンス」を読んだ所感をまとめました。
様々な機械学習本や、解説記事を読んできたのですが、本書のように数学の基礎や Python のコードを詳細に解説してくれる本は個人的に初で入門者に最適と思います。
機械学習に興味あるけど、数学に苦手意識ある人や途中で挫折してしまった人にも一読してもらいたいそんな1冊だと思います!