#はじめに
Courseraが提供している無料のMachine Learningというオンライン講義を受講し、4月末~7/4と約2カ月かかって修了しました。
私は、機械学習には、これまで全く触れたことはなかったですが、なんとなく興味があり、この講義のよい評判を聞いていて、いつかは受講したいと思っていました。コロナ禍で学習時間が確保しやすくなったこともあり、今回受講に踏み切った次第です。
機械学習に興味があって、このAndrew先生の講義の受講を考えている人の参考になれば幸いです。
#何が学べるのか
Andrew先生の最後の講義のサマリの資料より、抜粋+αしました。
####1.教師あり学習
線形回帰、ロジスティック回帰、ニューラルネットワーク、SVM
全講義に渡り、cost functionというのが、トラウマのように出てきます。
####2.教師なし学習
K-meansクラスタリング、 次元削減の為の主成分分析、アノマリー検出
####3.機械学習を使ったアプリケーション
映画のレコメンドシステム(協調フィルタリング)、迷惑メールの振り分け、写真のリサイズ、スレイディングウィンドウを使った写真OCRパイプライン、並列化・MapReduceを含む大規模機械学習システム、オンライン学習
####4.モデル構築する上でのアドバイス
バイアス、バリアンス、正規化、評価指標(precision, recall, F1スコア)、評価手法(トレーニング/クロスバリデーション/テストセット、学習曲線、エラー曲線、シーリング分析)
この講義を受講することで、機械学習で扱われる代表的なモデルを網羅的に学習でき、さらに数式を使った論理的な理解と、直観的な理解が可能です。
個人的には「4.モデル構築する上でのアドバイス」のところが、Andrew先生の知見が詰まっている感じがしました。業務で機械学習を扱ったことのない人間にとって、モデル構築はスムーズに進まないのではないかくらいは、なんとなく想像できますが、そのようなモデル構築でうまくいかないケースにはどういうものがあるのかとか、その回避方法、時間をロスしない考え方を知ることができました。
#苦労したところ
####1.英語
講義は英語でしたが、ページの下の方に日本語訳が流れるので、それと、映像の講義資料を見比べながら、講義を聞いてなんとか理解できました。ただ、Andrew先生の話すペースがとにかく早いので(1.5倍速くらいしているのでは?)、理解が追い付かず、途中講義を何度もSTOPして、日本語訳と講義資料を見比べながら、理解するようにしました。日本語訳がなかった講義が3セッションくらいありましたが、それについては英語字幕だけでなんとかしのぎました。
講義の節目で、英語でサマリを用意してくれていて、それが理解に役立ちました。ただ、後半週になると、そのサマリも用意されていませんでした。(サマリは後付けで補充されているのだと思います。)
####2.学習スケジュール
講義映像についていくのが困難なので、講義映像の時間を目安に学習スケジュールを立てると、計画通りに進まないです。私の場合だと、課題含めて1週を終えるのに、7時間くらいかかったと思います。トータル11週あるので、大体80時間くらいかかったことになります。あらかじめCourseraで設定されているマイルストーン通り、2カ月半くらいで終わらすのが無理のないペースかなと思いました。余裕のあるスケジュールで臨むのが、重要です。
####3.テスト
これが地味に大変で、時間がかかりました。5問あって2問以上間違うと、不合格でやり直しです。もちろん英語です。やり直すたびに、設問と選択肢が微妙に変わります。3回連続で、不合格だと8時間経過するまで、テストを再チャレンジすることができません。英語なので、題意の把握に時間がかかるのと、ほとんどなかったですが、誤字があった時は、誤字と認識するのに時間がかかりました。
3回連続不合格の場合は、講義の理解が足りていないか、間違って理解しているかなので、その問題に関する講義を、もう一度も直すのが近道です。
####4.プログラミング課題
2週から9週までプログラミングの課題が用意されています。プログラミングを学習することが目的ではなく、機械学習のモデルを実際に動かしてみて、理解することに主眼が置かれています。
ストーリーで書かれている設問のPDFを読むのに苦労しますが(10P以上あります。もちろん英語です。)、講義を理解できていれば、プログラミング課題自体は何とかこなせるかなと思います。もちろんプログラミングの多少の素養はあることが前提です。
これは裏技なのかもしれませんが、Github上にパスした人達が、回答コードを挙げてくれているのが参考になります。もちろん丸写しはダメです。あくまで参考レベルに留めてください。
####5.講義が理解できない
たしか5週と8週あたりの講義が難しくて、理解に時間がかかり、挫折しかけました。そんな時は、他の方のまとめサイトを見て、理解するようにしました。以下のサイトが非常に参考になりました。感謝!
https://qiita.com/katsu1110/items/e4ef613559f02f183af5
#受講の条件
受講に適した人を推測してみました。
- 機械学習に興味があること(初心者でもOK)
- 機械学習を網羅的に理解したい人、モデルの裏側の理論をある程度知っておきたい人
- 英語アレルギーがなく、英語を読んで理解できること(リスニングはできなくても何とかなります)
- プログラミングの素養があること
- 高校数学:1次関数、2次関数、指数関数(exp)、微分、総和(Σ)、行列、ベクトル、固有値・固有ベクトルを知っていること
- 勉強した記憶があるくらいで大丈夫かなと。私の場合、講義を聞きながら、高校生の頃、そんなことを勉強したなと思い出しました。
- 2カ月半にわたり、1週当たり、5時間~8時間程度の学習時間を確保する覚悟があること←これが一番重要
#最後に
無料講座ですが、8600円ほど払えば、修了証をもらうことができます。当初、もらうつもりはありませんでしたが、自分にとって、苦労して学習した証ということで、Getしました!
久しぶりに、学習することって重要だなって感じました。例えばマッチングサービスって協調フィルタリングが使われているのかっていう気付きもありましたし、やりきってよかったです。何年後かに、これを見て、コロナ禍で、苦労して受講したなって思い出が蘇るのかなって思います。
この講義と同様の内容を本で勉強することは、もちろん可能でしょうが、私は本で独学でやったとしたら、きっと挫折しただろうと思います。このような素晴らしい講義をオンラインで無料受講できる、素晴らしい世の中になったと感じます。