機械学習のエッセンスを読んだメモ。コード追いながら体系的に学べるからおすすめ。

f:id:tnychor06:20190302193218j:plain

essence-of-machine-learning


これから働き始める前に改めて数学的な基礎を定着させておきたいな、と思って機械学習のエッセンスを読んでみました。

ゆくゆくはディープラーニング協会のE資格に受かりたいという思いもあって、フレームワークに頼らないで実装できるようにしておきたいなと思ってもいる。

機械学習のエッセンス -実装しながら学ぶPython,数学,アルゴリズム- (Machine Learning)

 

 

第1章:学習を始める前に

事前に対象となる読者の定義をしてくれるのはありがたい。

これで前提知識によってフィルタリングしているので、わかりにくいと思う人はいないんじゃないだろうか。

 

第2章:Pythonの基本

ここでは、改めて復習という意味で振り返る感じでさらっと飛ばしました。

 リストの処理においてexpend, append, insertが破壊的な操作で、+は非破壊的な操作であること。は忘れてしまうのでメモしておく。

破壊的な操作でのリストへの変数の代入が参照の代入になるためにnew_array =  array[:]でコピーするなどして新しいリストを作るべき。というのは恥ずかしながら知らなかった。

(こういう部分は普段Jupyter 使っていると探索的に済ませてしまうので忘れがち。なので意識的に残しておかないとなー) 

 

第3章:機械学習に必要な数学 

集合(記号の定義など)、ベクトル、行列など基本的な知識をわかりやすく説明している。

理論的な話が得意じゃない自分でも理解がしやすかったし、改めて「そうだった」と思うようなこともあって良い復習になる。

抽象的な話だけでなく具体的な数字で計算の過程を説明してくれるので、思考の過程も追いやすいのがとても良いなと思った。 

正直理論は眠くなるところもあるけど、難しめの本に比べて行間が広いのが良かったのかもしれない。これ以上行間が狭ければ寝てしまうだろうw

 

第4章:Pythonによる数値計算

Pythonの基本的な使い方とNumPy, Matplotlibの使い方をコード写しながら覚えていける。

浮動小数点の扱いについて最初に説明されていて、後半「こういう時に使うのね」と伏線回収してくれるので納得感がありますね。

 

第5章:機械学習アルゴリズム

普段scikit learnとかでパパッと使っている手法をNumpyとSciPyで実装しているため、改めて復習するにも、新しく勉強を始める人にとっても理解が深まる内容だった。

Kerasを使っていたことがあるため、model.fit()の書き方には慣れていたけど学習後にmodel.predict()して予測を行う時の処理がどうなっているのかあんまり理解していなかった。クラスの書き方を見てると「こういうことか!」と納得した。

 

まとめ 

 復習としてはめちゃくちゃよかった。体系的にプログラミングも学んでいないし機械学習(僕にとっては画像処理)も学んでいないからこうやって改めて実装を追いながら勉強すると学びが多い!

あとはやっぱり行間が広くて読みやすい。これは本当に行間が与える読みにくさとかあるよね。それだけじゃなくわかりやすく言葉も選ばれていると思うからやはりおすすめです!