courseraのMachine Learningを受けるために必要な前提知識
🐶
今、courseraで、Machine Learningを受けています(まだ4週目です)が、いろいろ前提知識がないと厳しそう。
「ないと厳しそう」なものは
- 行列の演算イメージ力
- 英語の読解力(高校レベル)
- なんらかのプログラミング経験(数値計算系でなくてもいい)
の3つ。
行列は、「どういうベクトルにどういう行列を掛けたらどういう結果が出るか」がパッと浮かばないと、つまづくところが多い。別に、逆行列やn乗を求められなくてもいい(コンピュータ側がやるから)けど、演算のイメージが浮かばないとしんどい。序盤に行列の説明があるけど、慣れてないとつらい。
英語は、もちろん授業を受けるため。動画には日本語訳があるけど、テキストと課題にはない。だから、英文を読む能力は必要。ロジカルな文章なので、文法がわかってたら読みやすいけど、わかってないとしんどい。
プログラミング経験がゼロなら、課題をやるときにつらい。Octaveは、扱いやすいほうだけど、それでも、初めてなら環境構築とか本質的でないところでいろいろつまづきそう。
ということで、これらは必要。どれか1つでも欠けていると、結構時間がかかる。
一方、「あるとはかどりそう」なものは
- 微分(e、log、合成関数の微分とか)、線形代数
- 英語のリスニング力
- Octaveでのプログラミング経験
の3つ。
動画では、「これを微分した式はこうなります」などと、突然計算結果が紹介される場面がある。微分や線形代数がわかってると、自分でも計算できて納得感は増す。ただ、今この知識がないなら、今から頑張って身につけるより、紹介された結果を飲み込んで、先に進んだ方が得策だと思う。
英語のリスニング力は、まぁ、直接聞き取れる方がいいよね。
Octaveは、触ったことがあるほうが、実装がはかどる。ただ、課題は、書き方を調べながらできるので、経験はなくてもいい。課題は、データの読み込みなどの、概念に関係のない部分は作ってあって、本質的な部分を埋めていくスタイルなので、不毛な時間のロスは少ないです。
最後まで進むとまた変わってくるかもしれないけど、現時点では、このような理解です。