@ML_deep機械学習を勉強する際にぶつかる最大の壁は数学です。機械学習に必要な数学をリストアップし、いつでも参照できるようにまとめておきたいと思います。冒頭で述べた通り、機械学習で何をやっているのか分からない!となるのは大抵数学がわからないからです。数学が分かっていても、機械学習でわからないことは出てきますが、ちょっと数学が分かってさえいれば殆どの手法が見通しよく理解できます。それは非常に単純な理由で、数学は世界共通の言語だからです。先人たちは、ものを数えるために数字を編み出し、その数字や図形を取り扱うために数学を構築してきました。何かを日本語で表現したいと思ったとき、数学ならばそれを本当に短い文章で表すことができる場合があります。数字を取り扱うことに最適化された言語なので、当然機械学習でも有効に働きます。機械学習をやる上で厳密な数学は必要なし数学を使えば、日本語を使うよりも圧倒的に誤解を少なくできます(それは数学が非常に厳密な言語だから)。何も厳密に数学を学ばなければいけないということではありません。先人たちが厳密に作り上げてきた数学の体系は、新たな数学の分野を切り開こうと思わない限り正しい保証があるので、今から数学を適用しようという範囲内においての数学の役割さえ認識できればいいのです。言ってしまえば数学の使い方さえ学んでしまえば十分です。機械学習に出てくる数学の勉強を完全に終えてから、機械学習の更なるレベルアップに進むというわけではなく、機械学習を学びながら、目標レベルに応じて、理解しなければならない数学に立ち返るという方法が良いと思います。機械学習の処理が具体的にどんな計算をしているのかが分かる機械学習のアルゴリズムを擬似コードとしてどの程度までプログラミング言語に寄せて、どの程度まで数学を使うのかは人によってマチマチですが、大抵は更新式だとかの計算式は数学を使った状態で書かれています。これらの処理が具体的にどんな計算をしているのかを知るには当然ある程度の数学の知識が必要になります。そこに出てくる数学は偏微分と線形代数です。集合の記号も分かっていると良いでしょう。集合の記号は、和の計算において、どの要素を計算に含むのかを指定するのに使われます。大事なのは線形代数です。多次元データを複数持っている場合には、そのデータは行列のように扱うことができ、複数の多次元データから何か値を(例えば分散など)を得たいときは、線形代数の表記を使えば本当に単純に表現できてしまいます。多次元データと線形代数は非常に相性が良いため、最も最初にやるべきはこれです。目標は・線形代数の計算ができる(ベクトルと行列、行列と行列、traceやdetなど)・偏微分の計算ができる・集合の記号が分かる(∈が分かればとりあえずは大丈夫)参考図書は特にありません。以下でほんの少しですが、機械学習で現れる数学に関する基本的な計算を紹介しています。s0sem0y.hatenablog.com具体的には最小二乗法(線形回帰)や、線形SVM、パーセプトロンの具体的な計算ができれば良いかと思います。線形回帰や線形識別の場合にはそれほど難しい数学は出てこないです。以下は線形識別モデルの最も単純なモデルについて説明した記事です。このレベルの数式が具体的にどのように計算するのか分かるようになりたいです。SVMに関しても線形のモデルまでならば簡単ですから是非確認してみてください。s0sem0y.hatenablog.coms0sem0y.hatenablog.coms0sem0y.hatenablog.com機械学習アルゴリズムの導出は追えなくとも、その手法の狙いが分かるそもそもこの機械学習アルゴリズムは一体どういう場面で有効なのだろうか?その疑問を解決するには単に線形代数や偏微分の計算が出来るだけでは難しいかもしれません。機械学習アルゴリズムの正当性を担保しているのは、確率・統計です。単なる最小二乗法でしたら計算の方法は勉強すればすぐ分かるでしょう。直感的にも意味を理解できます。最小二乗法が正当だと言えるのは、誤差がガウス分布に由来している時のみです。ガウス分布は本当に広い範囲で出てきますから、大抵の場合誤差をガウス分布と思ってしまっても上手くいくことが多いのです。線形代数に対する理解を少し深めなければなりません。計算ができるのではなく、その計算が意味しているものを把握できるようになりたいところです。見るサンプルコードを交えて、具体的な計算を見れます。数学的な知識の前提としては、理系の大学で数学を学んできてなくともついていくことのできるレベルです。これから少しずつ数学に触れながら機械学習をやろうという場合の入門書になります。見るまた、これ出てくる例題を解いて、やっていることが具体的にどういうものであるかを体感するのもいいでしょう。この教科書は実際にはもう少しレベルが高く、ここに出てくるアルゴリズムの導出過程も追えるようになれば次のレベルに行けます。(機械学習を専門にする上での入門書レベル)以下の2つ、フィッシャーの線形判別と主成分分析は、分散や平均を上手く使った次元削減の手法です。これらがすんなりと分かるようになるところを目指しましょう。s0sem0y.hatenablog.coms0sem0y.hatenablog.com機械学習のアルゴリズムの導出を追い、アルゴリズムの理屈を理解するこの段階になれば、ほとんど自力で勉強しながらいろいろな文献を読んでいけば良いということになります。(ベクトルでの微分や行列での微分なども)、確率・統計、ベイズ統計などを幅広く知っている必要があります。それぞれ完璧にしてからではなく、基本を抑えたら機械学習の勉強に進めば良いかと思います。目標は・機械学習のある手法の導出を実際に行い、それを説明することができるというところです。これは対象とする機械学習手法に応じて数学のレベルが変わるので、どこまで数学をやれとは言えません。従って学びたい手法を学びながら、適宜、素直に数学の本を参考にしたほうがいいです。14回この商品を含むブログを見る未だ読破とはいかず、必要に応じて必要なところを学習しています。これを所持していれば、機械学習の基本的な分野を網羅することができます。これより発展した話題に関しては、当然それぞれの専門書を参考にしなければなりません。ディープラーニングは一切取り扱っていませんので(CNNは少し触れられてますが)、ディープラーニング一本で行きたい人はディープラーニングの本の方がいいでしょう。単行本この商品を含むブログを見る東京大学では学部生向けに使われているようです。基本的にこのレベルまでを理解できるのであれば、ディープラーニングなど、新たに出てくる手法に関して数学的な部分で躓くことはそうそうないでしょう。その後考えられる壁としては、経験的に知られている知見を利用して、様々なハイパーパラメータを調整する部分です。この部分は実際にプログラムを動かして試してみる、実験と考察を繰り返す他ありません。最近はパラメータの調節の仕方によって、学習の進み具合が変わることから、学習の進み具合などを評価することでハイパーパラメータの良し悪しを決定する方法も研究されています。これはベイズ最適化の枠組みが必要となり、当然使う数学はベイズ理論や最適化の数学となってきます。カーネル法などはSVMや主成分分析などを非線形へ拡張した深層学習以前の機械学習を支えた手法です。カーネルマジックと呼ばれる非線形変換を意識しない手法がどのように生まれているのか、以下は簡単な説明の記事です。これらを理解していけるレベルになりたいです。(PRMLはこれより遥かに難しいです)s0sem0y.hatenablog.com行列の計算公式をまとめてあるpdfhttp://matrixcookbook.com/においてある行列の公式集pdf(以下)今まで見たどの公式集よりも充実しています。http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3274/pdf/imm3274.pdf数学の本に関して以下の記事で数学の本を紹介しました。私が実際に所持しているものです。手にとった本が限られていますから、探せば合うものはいくらでもあるでしょう。ネットも普及しているので必ずしも本は必要ではありませんが参考程度に。»プロフィール自分が勉強していく上で学んだことなどをまとめていきたいと思います。ML_deepスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。