「やさしく学ぶ機械学習を理解するための数学」「プログラミングのための線形代数」で機械学習で使う数学を基礎から復習した

f:id:karaage:20180106110056j:plain:w640

機械学習・画像処理の基礎を身につけたい

 冬休み、機械学習・画像処理に関する本を読んでました。機械学習とか画像処理の本だと、最近はTensorFlow、scikit-learnやOpenCVというフレームワーク、ライブラリの使い方に終始しているものも多くて、そういうものばっかやっていると、確かにすぐ凄いことができたりもするのですが、あんまりにもブラックボックスで黒魔術っぽいというか、自分を勘違いしそうになるのも怖いし、ライブラリのバージョンが変わるだけで使えなくなり右往左往する自分が惨めになってしまうのも事実です。

 やっぱり、そういう流行りに左右されない基礎も大事だなと思い、基礎から数学をベースに数式から逃げずに説明している本を選んでみました。

やさしく学ぶ 機械学習を理解するための数学のきほん アヤノ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで

やさしく学ぶ 機械学習を理解するための数学のきほん アヤノ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで

プログラミングのための線形代数

プログラミングのための線形代数

 「やさしく学ぶ機械学習を理解するための数学」は最近の本で、以下の記事を見て購入しました(「ゼロから作るDeep Learning」は購入済み)

 「プログラミングのための線形代数」は、大学生のときに買ったものを久しぶりに本棚から引っ張り出して読み返してみました。

やさしく学ぶ機械学習を理解するための数学

 会話形式で読みやすくて、さらっと2,3日で読める内容です。読んだら今まであやふやだった事項の理解が深まった気がします。具体的には以下あたりですね。

  • 回帰(多項式回帰・重回帰)
  • ロジスティクス回帰
  • シグモイド関数の微分
  • 内積の直感的理解
  • 何故分離を線形でするのかという直感的理解
  • サンプルが偏っている時の正しい評価の仕方

 逆に、上記あたりは完璧だという人は読まなくてよいと思います。「単語は聞いたことあるけど、説明はできないなぁ」という人にはピッタリだと思います。今まで読んだネットの読み物や本のどれよりも自分にとっては分かりやすかったです。

 数式も出てきますが、基礎から順をおって丁寧に式を展開してくれるので、それほど苦労せずについていけます。個人的には、これを読んでから「ゼロから作るDeep Learning」を読むのが、適切な補完関係になって良いかなと感じました。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 ゼロから作るDeep Learningに関しては、以下の記事で詳しく書いています。

 ちなみに、この本読んでいる何故か既視感を感じたのですが、以前読んだことある以下のサイトを書籍化したものだったようです。

やる夫で学ぶ機械学習シリーズ · けんごのお屋敷

 上記サイトで無料で読めますが、私は本(Kindle)の方がずっと読みやすく、内容もスッと入ってきたので本の方をお勧めします。どうしてもお金払いたくない人は、サイトで読むのもよいかと思います。

プログラミングのための線形代数

 大学のときに読んでいた本の復習です。

 この本は、図で直感的に行列の理解ができます。ただ数式は多めで結構ハードです。画像処理って結局行列演算だから、ここらへんの理解は重要ですね。

まとめ

 今は、書店で機械学習の初心者向けの本が多く並んでいたりするのですが、本は数式があると売れないといわれるので、数式に逃げずに向き合っている本は少なかったりします。こういった基礎的な本は、身につけても直ぐに凄いことができるわけではないので、ついつい避けたくなりますが、こういった基礎をわかった上で取り組むと、いざ実際にやってみてうまくいかなかった時に、何故うまくいかないかという理由を考える上のヒントになったりします。

 またこういった基礎というのは、流行り廃りに左右されず、多くのことに応用できる汎用的な知識ですので、ディープラーニングブームが去っても使える大事な知識になると思います。

やさしく学ぶ 機械学習を理解するための数学のきほん アヤノ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで

やさしく学ぶ 機械学習を理解するための数学のきほん アヤノ&ミオと一緒に学ぶ 機械学習の理論と数学、実装まで

プログラミングのための線形代数

プログラミングのための線形代数

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

関連記事