CourseraにてStanford Universityの機械学習講座を修了した

www.coursera.org

やろうと思ったモチベーション

機械学習については前職の機械学習エンジニアの同僚の知識量とか能力が圧倒的で追いつける気がしなかったので、専門家にまかせて自分はWEBに集中していればいいかなと思っていた。ただフリーランスとして手伝っていた会社の殆で、必ずしも専門家でない人たちが機械学習を何らかの形で活用していて、これは少なくとも知識として知っておかなくてはまずいという気持ちになったため。

もともとはDL4USという東大松尾研が中心にやっているオンライン講座を受けようと思っていたのだけど運悪く抽選に漏れてしまったので、よく評判を聞くCourseraのStanford Universityの機械学習講座に勢いで申し込んだ。

進め方

基本的にオンラインで自由に進めていいのだけど、10月〜12月のように講座期間が設定してあってその中で一週間ごとにすすめるようなスケジュールがデフォルトで組まれている。自分は10月の後半から始めたのだけど、11月が予想外に忙しくなってしまったため、1ヶ月くらい休んで12月から再開した。毎週WEB上でできるクイズとプログラミング課題の締め切りの日時が設定されているけど、期限を過ぎても最終締め切りまでに出せばいいのと、追いつくのが難しいほど遅れてしまった場合には、次の講座期間にスライドすることも可能になっている。

ビデオは毎週2時間前後で、プログラミング課題は所要時間が3時間程度で作られている。プログラミング課題はスッと実装できれば1時間くらいで終わるが、はまると何だかんだ3時間くらいかかってしまったこともあった。

感想

講座の難易度が絶妙で実践と理論のバランスがとてもいいなと思った。「この数式の詳細はこの講座の範囲を超えるので理解できなくてもよい」、「この数式がピンとこない場合はXXを再度復習してみてほしい」など抜いていいところと必ず理解する必要がある箇所をちゃんと区別して教えてくれるし、かなり順を追って丁寧に解説をしてくれるので急に意味不明な数式が登場して置いてけぼりにされる…みたいなことがなかった。

数学については大学で理系だった人は特に困らないのではと思う。自分は情報系ではないのだけど大学院で似たような数値計算を扱ったことがあって、これは機械学習文脈で扱うとこうなるのかーーーと思ったりした。

講義は英語だけど日本語字幕がつくし、Andrew先生がかなり丁寧目に話してくれているので、理解には困らなかった。ただし、2、3は字幕の無いビデオがあったのと、訳の質はまちまち。たまに英語とワンテンポずれてて混乱するので英語字幕にして見たりしていた。あと講座の資料、テスト、プログラミング課題は全て英語なので、手厚い日本語サポートを期待しているとちょっと面食らうかもしれない。

あとプログラミング課題がOctaveという言語というのに最初は面食らっていたけど、そんなに変なシンタックスもないしすぐ慣れるし慣れてくると特に困らなかった。Andrew先生が「Python / R / C++も試したけど、学生がアルゴリズムをすぐ試すのにはOctaveが一番適していた」的なことを言っていたのだけど確かにその通りだなと思う。行列計算などに必要な機能を言語組み込みで持っているというのがでかいのかな。

得たもの

講座自体がもう結構前に作られたものなので最新の機械学習について学べる!というわけではないと思うのだけど、ベースとなる知識は獲得できたかなと思う。というのも今まで読んでも意味不明だった機械学習エンジニアの書いたブログポストがある程度は理解できるようになっていたから。前述のとおり講座で使った言語はOctaveだし、この講座を修了したからといって機械学習を専門として扱えるようになるわけではないと思うのだけど、今後機械学習案件に携わるときに完璧じゃないにしろその中身を理解できるようになったのは大きいかなと。今はMLOpsという周辺の領域も盛り上がっているので、そういうところで活かしたい。

まとめ

敷居が高いように見えるけど、日本語字幕も殆どついてるし、なによりとても説明が分かりやすいのでCoursera Stanford Machine Learningはお勧めです。