大学生 → 社会人の雑記

統計学や機械学習について気紛れにメモメモするブログです。ゆるふわな感じでやっています。

機械学習入門!の門の前に立つには

最近「機械学習を勉強したいのだけど、何をどう勉強したらいいのか?」という質問を少なからず受けます。


個人的には機械学習というのは気軽に入門できるような類のものではなく、門の前に辿り着くのにも結構苦労する類のものだと思っています。

とはいうものの門の前まで来てしまえば何とかなりますし、門の前に立っているだけでも世間的には超人扱いされるのではないでしょうか?

そこで今回は


機械学習入門!』


ではなく


機械学習入門!の門の前に立つ!』


と題して話を進めていきたいと思います。




ここで僕がいう機械学習とは統計的学習理論のことを指します。

なんとなくですが、Twitterやらブログやらを読むに、統計学以外から機械学習に入門するものがたくさんあり、どうやら統計的学習理論以外の機械学習が存在しているようです。無知な僕にはなんのことかわかりませんが…




1.基礎から入門する???

さてと統計的学習理論もとい機械学習は、その字面からもわかるように統計学の理論をベースに構築されています。

じゃあ統計学は何をベースに構築されてるんだよの答えは確率論です。

だったら確率論は何をベースに構築されてるんだよの答えは数学です。

(もちろん「全部数学だろ!」と言われたらそこまでなのですが、まあ純粋数学ではないということでお願いします)



どうですか?これでも基礎からしっかり積み重ねたいと思いますか?純粋数学から始められますか?あなた数学科の人間じゃないですよね?僕も経営工学科なのでこれが無理のある話だということはわかります。よくわかります。死ぬほどわかるううううう!!!!!


まあ基礎からできる人であれば、とっくの昔に門をぶち壊して入門どころか門の最奥にいる、さながらラスボスの風格を身にまとっていることでしょう。

結論としては多くの人にとって基礎から入門するのは極めて難しいといえます。





2.まずはモチベーションを作ろう

基礎から入門することは極めて難しいことがわかりました。ではどこから入門するのが一番優しいのでしょうか?

いや今回は入門する直前に至るまでの話でしたね。

ここで最も優しく胡散臭く廃れやすいのは「RやPythonのパッケージをとりあえず使ってよくわからないけどいい結果が得られたからなんかすごい」というやつです。

ですが「とりあえずすごそう」というのを体験することはものすごく重要です。

まずモチベーションになります。

もしあなたが機械学習を心の底から愛しており、何か無理してでも暇を作り、その暇を惜しみなく機械学習の勉強に捧げることができるのであれば話は別ですが、多くの人はすごそうなことができるから機械学習に憧れ、勉強をしてみたいと思うのではないでしょうか?

その意味では自分で手を動かさずとも、新聞やニュースやブログを読むだけでも「なんかよくわからないけど、すごそう」「自分も同じようなことができるようになれば、すごくなれそう」という感覚を味わうことができると思います。

このようにモチベーションを得ることによって、鼻くそをほじりながらお尻をかきつつポテチをつまみながらこのブログを見ているあなたも機械学習に入門するための門を探し始めました。(←勝手にストーリーに乗せます)





3.門に至るまでの道を探す


さて機械学習の門を叩くべく、門に向かうことになりました。

向かうことは決めたのですが、どこに門があり、どのような道筋でその門にたどり着けるかはさっぱりわかりません。

そこでインターネット等で調べることにしました。
おそらくこの記事にたどり着いた人の多くはこの段階にいると思います。

しかし、ここで問題が生じます。

機械学習入門と題した記事の多くは立場を想定していないということです。

希望的には全員が同じように理想の入門をすることが良いのかもしれませんが、現実問題として学生や社会人あるいは研究者というように、どの立場にあるかによって入門する門は違うように思われます。

ここでは機械学習の会得を急いでいるわけではなく、多少時間をかけてでも機械学習に入門したい。
という人が入門する門への道筋を示していきます。





4.一番最初のモンスター『高校数学』

インターネットにいる理系の人が学校とか関係なく自分で勉強しようと思う時、まず酸素を吸って二酸化炭素を吐くが如き扱いをされることが『高校数学』です。

正直言って皆さん大学受験の数学もいまいちできていませんよね?(できている人へ、ごめんなさいごめんなさいごめんなさい)

いや難関大学の難しい問題を試験時間内にとかいう話ではなく、時間無制限で与えられて、答えを見てもokの状況でもいまいち理解できていないんじゃないかな?と思った次第です。ワタシシグマワカラナイヨという人もいると思います。ってか多いんじゃないかな?

ここでいう理解とは他人に説明してある程度納得してもらえるというレベルのことをいいます。

ましてや数学が嫌だから文系に進んだ人にとっては尚更です。レベル1のコイキングがレベル55のカイリューに挑もうとは愚かなことです。

いやでもギャラドスに進化すれば勝負になるかも!?

腹をくくりましょう。

高校数学から勉強しましょう。

もちろん数1A2B3です。

「数学の知識を全く前提としない」と書かれている本の15割は高校数学までは最低限の知識として要求してきます。

高校数学は『最低限扱い』です。なかなかつらい道のり。。。


とはいうものの高校数学をどこまでやるかということになると思います。

感覚的には芝浦工業大学中央大学東京理科大学筑波大学千葉大学あたりの入試問題(※なんとなく思いついた大学名を並べただけなので特に意味はないです。)強いていえば所謂受験標準レベルという意味です。が答えを見ながら人に説明できるぐらいで十分だと思います。

で、それって何やればいいの?ということになりますよね。

高校の教科書が残っている人は、各章末問題をひと通り解いてみるのがいいと思います。

残っていない人は、大学受験業界の盛んさに感謝しながら適当な受験用問題集を解けばよろしいかと思います。
個人的には河合出版のチョイスシリーズがオススメです。いやなんとなくそれなりにわかれば、ここまでやらなくても良いかもしれないです。

時間がかかるし、コスパを考えた時にどこまで高校数学をやるかですね。でも勉強って時間がかかるものですよね。

うーん、個人的にはやった方がいいと思うんだよなあー


チョイス新標準問題集数学3 (河合塾シリーズ)

チョイス新標準問題集数学3 (河合塾シリーズ)


チョイス新標準問題集数学1・A (河合塾シリーズ)

チョイス新標準問題集数学1・A (河合塾シリーズ)

あれ?チョイスって2Bもあったよね???
見つからん…


いや!無理無理無理無理無理!!!そんな時間捻出できん!!

という人はとりあえず教科書の内容を全部浚ってみましょう。なんとなく言ってることがわかって、イメージできればまあ良しとしていいかも。



5.一体目のモンスターを倒したぞ

高校数学を勉強し、めでたく1体目のモンスターを倒せるまでに成長することができました。

ここからやっと大学数学に入ります。

とはいうもののここからの意見はいろんなものがあり、一概にこれが良いとは言いにくいです。

何冊もやるのは辛いし、そもそも目的は機械学習入門だよね?ということになりかねません。

が、

最近、そのあたりの事情に対して素晴らしい1冊が出版されました。

その名も

機械学習のエッセンス』



これは素晴らしいです。機械学習に必要であろう数学が綺麗にわかりやすくまとまっています。

これまでになかった種の意志が強く伝わってくるようです。

著者曰く、割と誤植が多いことがわかったらしいのですが、正誤表は公開されていますし、誤植が多いことを差し引いても素晴らしい本だと思います。

エッセンスという名に相応しいです。


ちなみに機械学習でよく使われるPython機械学習の実装を行なっており、それらの勉強にもぴったりです。

機械学習のエッセンスを読んでもなんだかサッパリであれば、機械学習用に高校数学を勉強し直した方が良い」というような基準にしてもいいかもしれませんね。

いやこれはマジでオススメ。





6.やっとある種の門が見える位置に立つことができたぞ


機械学習入門で討死しない数学は揃えることができました。

ここからはどのようなモチベーションで機械学習を勉強するかに依りますが、僕の場合は応用統計学の延長で機械学習を勉強しているので、そのあたりから入門していくことを考えましょう。

まず統計学の勉強はした方が良さそうですね。
なんせ統計的学習理論ですから。

ではどのあたりからどのあたりまでやった方がいいのでしょうかね?

とりあえず門の前に立つことが目標ですから、数理統計学をやるのはやめておきましょう。入門するのにはオーバーキル極まりないです。入門してから勉強しましょう。※僕も今勉強中です。

これはかなり迷ったのですが、とりあえず簡単な推測統計学の勉強をしておいた方が良さそうですかね。
検定理論とかはとりあえず放置しておいて良いかと思います。
(ただ統計の教科書って基本的に統計的検定入ってますよね。)



というか、今更思ったのですが、、、、


簡単な確率論の勉強した方が有意義なんじゃ…???


どんな確率分布があるだとかは知っておいた方がいいですよね。

そんなわけで確率論の勉強しましょう。

藤田先生のこれがオススメです。


弱点克服大学生の確率・統計

弱点克服大学生の確率・統計



全部やるのは結構ヘビーですが、力はちゃんとつくので頑張りましょう!!!!

これの何がいいって大学受験の参考書っぽく勉強できるようになっているところです。
つまり問題を解くことによって理解をしていこうという感じですかね。




7.機械学習入門の門の前に立ったぞ


まあここまでやれば、入門しても大丈夫でしょう。


もちろんここまでのことを全部やってから機械学習の勉強をしようってんじゃありませんよ。

そんなことをしていたらモチベーションが消えて無くなってしまいます。

機械学習の勉強をしつつ、入門するに必要な知識を得ていくのがベストだと思います。

実際に僕もわからないことが出てくる都度、数学の勉強したりしています。もうあと半年ぐらいしたらもうちょい数学の基礎力を上げていきたいなとも思っています。


それに機械学習の勉強をしていたら、自然と気になってくるはずなんですよねー。
線形モデルにおいて適当な仮定の下で、最小二乗推定量はBLUEになるとか書かれていたら超気になりませんか?

その時に
正規分布ってなんぞや!
とか
独立?共分散?なんだこれは!!
とか
なんだよ不偏って!!!
とかなったら、当然それらの知識を埋める必要がありますよね。



ちなみに機械学習始めるのにあたって、1番最初にやると良いアルゴリズムは線形モデルです。

理由は色々ありますが、直感的にわかりやすいし、基本だし、多くの問題は線形モデルで片付くような気がします。もちろん線形モデルじゃどうにもならない難しい問題もたくさんありますよ。゚・(>﹏<)・゚。

たぶんあなたが知りたいのはそっちですよね。それでも線形モデルから始めた方がいいと思います。




うーん、卒論ツラい(-﹏-。)