No.18 Let's start Machine Learning with coursera.
実は、今年の3月上旬から5月下旬まで、courseraのML(Machine Learning;機械学習)のコースを受講していました。
元々は、こちら(↓)のブログに触発を受け、日本語訳の間違いをしようかな~的なノリで受講していたのですが、
南よ! 海の見える方! - Courseraの機械学習のコースに日本語字幕をつけました
内容がよくまとまっていたので、結局、最後まで受講していました!(笑)
コースの内容は以下の通りです。
https://www.coursera.org/course/ml
[概要]
○講師:Andrew Ng(スタンフォード大学)
○内容:機械学習(アルゴリズム、実装)
○言語:英語 *日本語等の訳あり(但し、クイズや演習は全て英語)
○期間:10週間
以前のMongoDB University受講時は、状況をレポートできなかったので、その反省を活かして(?)、
今回は、どういう内容なのか軽く紹介していきたいと思います。
受講形式は、週で決められたテーマに沿ったビデオ講義(講義途中にクイズ:quizあり)を受講し、
振返りの確認テスト(quizzes)、プログラミング演習(programming assignments)で構成されています。
1つのビデオ講義は、8~15分前後といった具合ですね。(15分を超過することもありましたが)
コースのレジュメは、だいたいこんな感じです。(本来は英語ですが、敢えて翻訳してます。)
ちなみに、第1、10週以外は、全てプログラミング演習がつきます!
○第1週
・イントロダクション
・1変数の線形回帰
○第2週
・多変数の線形回帰
・Octaveチュートリアル
○第3週
・ロジステッィク回帰
・正則化
○第4週
・ニューラルネットワーク(モデル説明)
○第5週
・ニューラルネットワーク(学習アルゴリズム;誤差逆伝播法)
○第6週
・機械学習の適用におけるアドバイス
・機械学習のシステムデザイン
○第7週
・サポートベクトルマシン
○第8週
・クラスタリング(非階層的クラスタリング;k-means)
・次元圧縮(PCA;主成分分析)
○第9週
・アノマリー検出(異常値検出)
・レコメンデーションシステム(協調フィルタリング)
○第10週
・大規模機械学習
・機械学習活用の事例
ちなみに、こちらのコースでのプログラミング演習では、言語は、Octave(MATLABのフリー版だったけ?)を推奨しています。他の言語(R、Python)でもOKだけどね、とは講義中に説明がありますが、
課題提出は、Octaveのスクリプトを提出することになります。
# 修了証取得まで目指す方は、Octaveで課題を実施することになります。
さて、こちらのコースを受講する利点は何でしょうか?
・機械学習(教師有り/無し)について、網羅的に基礎を学べる。(かなりカバーしているかと)
・各週には、プログラミング演習があるので、実際にモデルを実装して動きを確かめられる。
[自分で行列演算を書いてみるので、良い勉強になります。←行列の復習にもなります。笑]
・機械学習の学習アルゴリズムだけではなく、実際に適用する際のアドバイスもあり!(第6週)
[自分が思うような結果が出なかったらどうすべきか?のレクチャーは、実際に取組む時の指標となるかと思います。]
少し残念かな、と思う点としては、、
・後半の教師無し学習は、前半の教師有り学習よりもコンテンツが薄く感じる..
・決定木のコンテンツも欲しかったな..
・Random forestも欲しかったな~[無いものねだり。笑]
・機械学習のライブラリ/フレームワークの説明がもう少しあったら良かったかな..
とは言え、初心者から中級者まで学べるコースとなっているので、おススメです!
なにより、ビデオ講義の日本語訳の語調が色々あって、面白かったり。笑
←← そこは本題じゃないですが。。
今後は、折角なので、学んだ知識をもとに、他の言語での機械学習の実装なども書いていけたらなーと思っています。