coursera で Andrew Ng 先生の Machine Learning の講座を受講してる。
本当は、修了時にブログ記事を書こうと思ったけれども、 勢いで半分終わった今(week5)、記事を書いてしまったので公開。
2 度挫折しました
MOOC の講座は 30 近く受講してきたけれども、 実は MOOC の代表ともいえるこの講座は手が出なかった。
なぜなら、、、難しいから・・・。
2 度挑戦して、2 度挫折しています。
- 1 度目: 他の mooc(nand2tetris)を受けてて時間がなかったから week3 で挫折。
- 2 度目: week5 の back propagation の難解さに挫折。
機械学習諦めようと、何度も思った。 でも、世間の風潮は AI まっしぐら。 エンジニアとして AI に興味を持たない人はモグリ的な空気を感じたので、 再び再起を決して ML に挑みました。
今回、挫折しないように以下を心がけました。
- 勉強カフェ 3 ヶ月プログラムに参加して、coursera ML を宣言
- ゼロから作る Deep Learning で Back Propagation を学習
- 日本語情報を漁った
3ヶ月プログラム
勉強カフェには 3 ヶ月プログラムというのがあり、それに参加した。 やる気のある人たちが集まって、お互いの目標の達成のために 励ましあいながら切磋琢磨するというもの。ここで、coursera の ML を目標に掲げた。
ゼロから作る Deep Learning
また、大ヒット中の書籍 ゼロから作る Deep Learning を 5 章まで読んで、 Back Propagation の仕組みを理解した。
この本は大変わかりやすくアルゴリズムを紹介していて、 この本がなかったら、2 度目の時のように挫折していただろう。
ただ、この本で紹介されている方法と、Lecture で紹介されている方法には ギャップがあり、現在その差異の理解について悩んでいる。 多分、同じことを行っているのだと思うのだが、いまいち理解できていない。
日本語情報
coursera の Machine Learning は、受講者が過去に大勢いて、 ネットでしらべれば、情報がたくさん出てくるところがいい。
英語で分からないときは、日本語情報に当たって理解を深めた。 とくに役に立ったのは以下の記事たち。ありがたい。これがなければ挫折していた。感謝。
- 数学の苦手なバイオの学生が coursera の機械学習コースを修了して気づいたこと - Qiita
- 機械学習をゼロから 1 ヵ月間勉強し続けた結果 - Qiita
- 新米エンジニア4人が機械学習の勉強会を行った話&記事まとめ - Qiita
- 「機械学習 By スタンフォード大学」勉強会 2015.09.11
講義の内容
“coursera Macnine Learning 修了” で 検索するとわんさか修了報告記事が引っかかるので、 ここでは、簡潔に書く。11week で以下のことを学んだ。
- 機械学習とは
- 教師あり学習と教師なし学習
- 回帰問題と分類問題
- 線形回帰
- ロジスティック回帰
- ニューラルネットワーク
- サポートベクターマシーン
- k-Means
- 主成分分析(PCA)
- 異常検知
- レコメンデーションシステム
- 機械学習の評価と改善
- 機械学習を組み合わせる
などなど。じゃあ、学ばなかったアルゴリズムはなにか?手持ちの参考書を元にピックアップ
- 決定木
- EM アルゴリズム
- ベイズ推定
- 深層学習(Deep Learning)
- 強化学習
たぶん、他にもたくさんあると思う。 網羅するには、このシリーズを読破すればよい(そんな人いるのか?)
そしてこれから先の学習プラン
coursera の Machine Learning を受講し終えた人たちはどこへ消えていくのか? せっかく修了したのに、ほとんどの人が、受講後、機械学習から離れていくように見える。
自分は、これからもせっかく頑張った機械学習の勉強を続けていきたい。
さて、これから何をするべきか?以下の記事が参考になった。
- coursera の Machine Learning コースを終えました - 機械学習・深層学習を学ぶ
- I have completed Andrew Ng’s coursera class on Machine Learning. What should I do next? What can I do next? - Quora
以下、思いついた学習プランを列挙。鬼速 PDCA を回しながら、2 年間かけて実行していく予定だ。
数学の勉強
大学の数学を忘れてしまったので、やり直したい。やり直しプランは以下に書いた。
他の MOOC を受講する
他の MOOC を受講してみるのもよいかもしれない。よきロールモデルを見つけた。
この人のように片端から MOOC を受けてみるのはよいかもしれない。
必ず挫折しそうだけれども、次はこれを受ける予定だ。
Neural Networks for Machine Learning
Hilton 先生は、Deep Learning のブームの火付け役の人。これはすごい。
Udacity にも Udacity 創立者の Sebastian Thrun 先生が講師の授業がある。
python で課題をやり直す
おもしろいリポジトリを github で見つけた。
まだ試していないけれども、README によると、python で Assignment を提出できるらしい。 このスケルトンリポジトリをつかって、python で 復習するのもよい。
また、ネット上には、多くのひとが Python で Assignment をやり直している。
この本も気になっている。ベストセラーの本。これを読みつつ、Python と戯れるのもいとをかし。
書籍での学習
簡単な書籍から入って深いところまで、勉強していくというルートもある。
- 機械学習のレベル別学習法 | コンピュータサイエンス | POSTDg
- 機械学習を学ぶ際のおすすめの本 5 つ|入門書籍から専門性高い書籍まで|#mayonez
- 機械学習を初めて勉強する人におすすめの入門書 - old school magic
- 機械学習の学習法・オススメ本のまとめのまとめ - bohemia 日記
なにしろ、変化が早い分野なので、矢継ぎ早に今年も良書が出版されるだろう。
Amazon や オライリーの動向を常にチェックしていよう。
TensorFlow で遊ぶ
勉強だけでは飽きてしまうので、自由に遊びながら学のもよい。
TensorFlow がブームなので、 TensorFlow のチュートリアルを読みつつ、DeepLearning を勉強しようか。
最後に
自分は、頭が悪い。具体的には、IQ が 80 台だ。 ある人が簡単に理解できることも、自分には難しい。 それでも、努力は才能で克服できると信じている。
そして、目指すは、PRML(パターン認識と機械学習)。 今のレベルでは、読めないので 1,2 年くらい回り道をしてから挑む。
PRML 読破後は、機械学習に関わる仕事をする。社内にあればいいのだが・・・。
これから数年間は、機械学習(と英語)に全力を傾ける。 大学生のときに遊んでいたつけを今こそ返すときだ。 本気で数学と機械学習の勉強をしよう。
なにはともあれ、coursera の Machine Learing を挫折しないで完走を目指す!!
追記
coursera Machine Learning 修了しました!! certificate