こんにちは,米国データサイエンティストのかめ(@usdatascientist)です.
前々回の記事と前回の記事とで統計学の超入門と基礎の本の紹介と,統計学や機械学習のデータサイエンスの分野では,本での学習が必要不可欠という話をしました.
これから機械学習編についても書いていこうと思いますが,その前にどうしても数学の前提知識(というか素養)が必要になってきます.
追記)機械学習編書きました.↓
今回の記事では,本格的に機械学習に進む前に読んでおきたい数学の本を紹介します.また,今回選んでいる本は全て「その本自体が統計学や機械学習向けに書かれたものでないもの」です.
本屋にいくと「機械学習のための数学」という本をよく見ると思いますが,私はそういった本で数学を勉強するのではなく,数学は数学できちんと学ぶべきだと思います.
なので,今回紹介する本の内容の中には機械学習には出てこない単元もあります.
しかし,「機械学習に関係ある数学だけ少しかじる」勉強ではいつまでたっても数学をちゃんと理解できないし,苦手意識は消えません.機械学習に直接必要な数学は機械学習の本を買えば載っているしそれでOKです.それ用の本を買う必要はないと思います.
ぜひ,今回の記事で紹介した本で一度体系的に数学を学んでみてください.時間がかかるように見えますが,結局体系的に学んだ方がトータルで必要な時間は短くなるし効率的に学べて学習も楽しくなります.
また,今回紹介する本はかなり易しめな本ばかりです.というかそういう本じゃないと私は無理でした.
個人的には前回紹介した統計学の本よりは易しくて読みやすいものばかりなので,意外にすんなり読めるのではないかと思います.
目次
機械学習のために学ぶべき数学
機械学習にでてくる数学は機械学習の本で学べるとして,それらを理解するために必要な数学の知識は以下の通りです.
- 線形代数
- 微積分(微分方程式含む)
- 確率統計
- ラプラス変換
- フーリエ解析
本当はもっとありますよ,言ってしまえば数学の三大分野といわれる解析学,代数学,幾何学全てから出てくるので一概には言えません.が,そんなに数学ばかりやってられないと思うので,5つに絞りました.
確率統計は,前々回と前回の統計学の本とかぶるので,統計学を勉強すればもうそれでいいと思います.今回は省きます.
線形代数と微積分は機械学習のどの分野でも必要です.機械学習は線形代数の鬼です.できれば微積は偏微分と常微分方程式まで手を伸ばしておきたいところです.
ラプラスとフーリエは特に画像認識や音声認識のようないわゆる「人工知能」系の勉強をするなら必須です.(そうでなくても必要ですが).ラプラスとフーリエは信号処理のベースとなる数学です.画像も音声も信号として扱うので,それを処理するのにラプラスとフーリエの知識が必要です.画像,音声に限らず,データを信号として扱うこともあるので,勉強しておくといいと思います.
と,色々言いましたが,これらの分野を勉強するのは全然難しくないです.
少なくとも,本読んで理解して「へぇ〜」のレベルであればすぐですよ.
試験勉強ではないので問題が解ける必要もなければ公式を覚える必要もありません.
読んで・理解して・納得できればいいんです.
そんな軽い気持ちで取り組みましょう.数学を体系的にしっかり理解できれば,今後の機械学習の勉強が楽しくなるはず!!
絶対的おすすめマセマシリーズ
知っている人も多いと思います.受験で使っていたという人も多いと思います.私も大学・大学院の受験でマセマシリーズ使ってました.
リアルに高校数学と大学数学のほとんどのシリーズを持ってたと思います.(今はもう多くを処分しましたが)
とにかく説明がわかりやすく,話し口調なので楽に読めます.硬い文面苦手何ですよねぇ自分.
数学苦手!なにから勉強したらわからない!という人はとりあえずマセマで勉強しましょう.多分どの本もそんなに時間かからずに読めます.
受験であればマセマ以上のレベルを求められますが,機械学習の勉強するための数学の素養をつけるのであればマセマだけでもいいかもしれません.
以下,重要順かつ勉強する順に紹介します.なお,このレベルも難しい〜という人は,下に紹介する「単位が取れるシリーズ」を,もし高校数学が怪しいという人は高校数学のマセマもあるのでそちらを買ってください.
線形代数キャンパス
線形代数は一番重要です.どの機械学習の参考書をみても,どの数式をみてもおそらく線形代数を知らないと理解できないと思います.データサイエンスのためのPython入門第6回でも触れた通り,行列演算はデータサイエンス必須です.
データサイエンスってたくさんのデータを使いますよね?それを行列形式にして演算したり数式を立てることが多いです.そうするとシンプルに数式が書けますからね.もし線形代数に自信がない人,逆行列,対角化,ジョルダン標準形ってなにって人は,必ず買ってほしい一冊です.
マセマは本当にわかりやすいので高校数学の知識があれば問題ありません.楽に読めると思います.
微分積分キャンパス
線形代数とほぼ同じくらい重要です.とにかく,上の線形代数とこの微積を理解しない限り機械学習の勉強はほぼ無理だと思います.機械学習の理論は完全に線形代数と微分積分の上に成り立っているし,これらの知識を必要としない数式を探す方が大変です.
それくらい重要な二冊です.とくにマクローリン展開,ヤコビアンあたりは機械学習でもなにかとでてくる内容なので知っておきましょう.暗記する必要はないです.理解できばいいです.
あと,マセマには演習問題が付いていますが,問題を解けるようになる必要は別にないと思います.理論を理解できて,人に説明できるレベルを目指せばいいのではないかと思います.
ちなみに,これから院試を控えている人は,演習問題を解けるようになった方がいいと思います.私も院試の勉強をマセマでしました(マセマだけだと少し足りないと思いますが).マセマの演習問題はどれも頻出問題を厳選してます.良質な問題だらけです.
常微分方程式キャンパス
微積を勉強したらできれば微分方程式にも手を伸ばしたいところです.なぜなら,次に紹介する偏微分が機械学習頻出の内容だからです.
微分方程式は二つあって,yがxなどの1変数関数の場合の「常微分方程式」複数あるときの「偏微分方程式」です.
常微分方程式は偏微分方程式の入り口となる分野なので飛ばすことはできず,また,常微分方程式を学ばないとラプラス・フーリエの勉強が難しいです.本書の内容が直接機械学習に活きるわけではないですが,偏微分,ラプラス・フーリエの勉強の前段階として目を通しておきたい内容です.
偏微分方程式キャンパス
機械学習の分野では,二階の偏微分までは出ます.偏微分方程式を解ける必要はないかもしれませんが,解法は知っておきたいし,偏微分の考え方などは身につけておかないと「??」となることが多くなってしまうと思います.
データサイエンスでは1変数の関数を扱うより圧倒的に複数の変数の関数を扱うことが多いです.(当然ですが)
なので,どうしても偏微分がでてきてしまうんですよねぇ・・・.
偏微分については,機械学習を勉強してく中で必要だとおもったら勉強するのでもいいかもしれません.
ただ,人工知能系の分野の勉強を考えているのであれば,次に紹介するラプラス変換でも偏微分方程式を使うため,勉強しておくといいと思います.
ラプラス変換キャンパス
ラプラス変換を学ぶと,微分方程式を解くのに積分などを使わず,代数方程式を解く感じで解けちゃいます.
そしてこれが機械学習ではよく出てくるし,次に紹介するフーリエ解析を学ぶ上でも重要な内容になります.また,ガンマ関数やベータ関数も機械学習頻出の内容です.微分方程式を勉強する理由の大きな一つはラプラスへの導入だと言っても過言ではありません.
フーリエ解析キャンパス
フーリエ解析を学習すると,様々な関数を周期が異なる様々な三角関数(sin, cos, tan)の無限和で表せるようになります.つまり,関数を周波数的な捉え方で扱えるのです.
この考えが特に画像,音声などの工学寄りな分野で重要になってきます.例えば画像も,各pixel値は輝度値を示していてそれぞれは離散値ですが,それを波のように捉えればそこに周波数の概念が生まれてきます.そうするとフーリエ解析を使って色々なことができるようになるんです.数学が工学に繋がってきてめちゃくちゃ楽しくなってきます.
フーリエを学習するのに複素数の知識もあった方がいいですが,複素数自体は機械学習ではあまり使う場面ないので,今回は省きました.必要に応じてググったりするレベルでいいと思います.
その他のおすすめ
プログラミングのための線形代数
データサイエンス学習者界隈では有名な線形代数の本です.私もこの本で線形代数の理解を深めました.マセマの本はかなり理論寄りの話ですが,線形代数は写像が命なので,「写像したときにどういう風になるのか」,「固定ベクトルとはなにを意味するのか」などの視覚的かつ本質的な理解を深めることができます.
機械学習に必要な線形代数の知識は,どちらかというとこういった視覚的な理解.本質的な理解です.数式を解けたり解法を覚えるよりもそれぞれの写像の意味を視覚的に捉えるこの方が重要です.
本書はRubyを使って実際に写像するとどういう風にベクトルが変換されるのかを確認できるようになっていて,非常にわかりやすいです.ちなみに,プログラミングの知識は不要なのと,プログラミングで線形代数を学習する本ではないことに注意です.
マセマで基礎を固めたらこちらの本を一読して理解を深めるといいと思います.データサイエンティスト必読書です.
追記)マセマ以外のおすすめシリーズも紹介します.
「マセマ以外の本も知りたい!」という声があったので,私が数学を勉強した本の中で,マセマ以外の初学者におすすめの本を紹介します.
マセマより易しい,「単位が取れる」シリーズ
単位が取れる線形代数ノート
単位が取れる微積ノート
このシリーズ,私が大学生ときみんなこぞって読んでましたが今も有名なのでしょうかね・・・
マセマより優しめの超超入門書です.「大学で数学やってないっす!」っていう人はマセマよりこっち先に読んだ方がいいと思います.ちなみに私は数学だけでなく,電磁気学や電気回路も読みました.シリーズ全体を通して,理工学向けに書かれているのでその後の機械学習への応用を意識しながら読めると思います.
ただ,やはり易しさ故の物足りなさというか,説明が足りない箇所が当然あります.なので,以下の人向けです.
- マセマが難しいと感じた
- 大学で数学やってない
- 大学の数学全く覚えてない
そして,このシリーズを読んだら是非マセマで数学を固めて欲しいです.
本シリーズは上に紹介している線形代数・微積以外にも微分方程式やフーリエなどありますが,私は線形代数と微積しか読んでないのでわかりませんが,線形代数・微積を読めばあとはマセマでいいと思います
マセマよりもう少し詳しく.「明解演習」シリーズ
明解演習 線形代数
明解演習 微分積分
私が院試の時に図書館にある線形代数の本を片っ端から調べ最終的に行き着いた本がこのシリーズです.難易度はマセマ並に易しいですが,扱っている範囲が広く,これ一冊でほぼ全ての大学レベルの線形代数・微積をカバーできます.イラストが豊富にあってわかりやすく,そして本に載っている演習問題が俊逸です.
マセマとかぶる問題も多くありますが,マセマの本だけだと演習問題は足りません.(マセマは演習問題用の本も出してますが)
データサイエンスのための数学を勉強するのに演習問題を解く必要はないですが,私は鉛筆と紙で演習問題を解くことで数学を覚えるタイプだったので,こちらを愛用しました.なので以下の人向けです.
- マセマの範囲じゃ物足りない
- 大学で数学を勉強していて自信がある
- 実際に問題を解きながら理解したい
- 院試を控えている
なお,データサイエンスを勉強するための数学知識なら,先述のマセマとプログラミングのための線形代数だけでもいいと思います.
まとめ
長くなってしまいましたが,とにかく「機械学習に必要な箇所だけ数学を勉強する」という考えは私は賛同できません.
機械学習は数学の理論の上にあるのであって,数学が機械学習の理論の上にあるわけではありません.
その土台である数学をちゃんと体系立てて勉強しないと機械学習の理解はできないのではないかと思います.
実際マセマで勉強すればわかると思いますが,機械学習に必要な数学はそこまで難しい内容じゃないです.どれも大学生が3年生までに勉強する内容ですし,演習問題を解けるようになる必要は全くありません.公式も暗記しなくてOKです.
ちゃんと理解して,人に説明できるレベルであればいいと思います!
ぜひ,今回の記事で紹介した本を読んで,機械学習の勉強に進めるようにしましょう〜!
機械学習のおすすめ本はこちら!
それでは!
[…] […]