naoya_t@hatenablog

いわゆるチラシノウラであります

deeplearning.ai受講メモ

f:id:n4_t:20170926194609p:plain
https://www.deeplearning.ai/

Andrew Ng先生のディープラーニング専門講座 deeplearning.ai を受講したメモ。久々のCoursera!

現在のところ、全5講座

  1. Neural Networks and Deep Learning
  2. Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
  3. Structuring Machine Learning Projects
  4. Convolutional Neural Networks
  5. Sequence Models

のうち3つ目の Structuring Machine Learning Projects まで開講されている。

Courseraの中でもこの講義は Specialization という枠組みで、基本有料(月$49.00;講義ビデオを視聴するだけで課題なしCertificateなしで良ければ無料)のコース。最初の1週間は無料*1

講義はすべて英語*2
1つ目のやつは日本語や中国語の字幕が用意されていたけど、後の方は英語字幕だけだった。

受講

受けるなら5講座全部受けたいんだけど、現時点で開講日未定の4つ目5つ目はいつ開講になるんだろうか。いい感じに連続して受けられるなら良いのだけれど、開講待ちで何もしてないのに課金(49ドル/月)が続くのは嫌だなあ。でもまあとりあえず覗いてみるか。
9月開講の回がすでに始まっていて、ちょっと覗いてみようかと思ってenrollした土曜(9/16)の夜には最初のdue date直前だったのだけれど。1つ目の講座を開きながら、開講している2つ目3つ目をどうするか考えた。1つ目の履修が終わってからだと、今やってるのの次の回(=来月)になる。まあお試し期間だし、終わってなくても次期に繰り越せるみたいだし、とりあえず全部スタートしてつまみ食いしよう、と思って3つともスタートしてしまった。
1つ目は4週間だから余裕ありそうなんだけど、2つ目は3週間、3つ目に至っては2週間しかない。2週間って来週末までじゃん(…さすがにこれは厳しくない?)

結局、10日目で3講座を完走(9/25)*3。予備知識がある方なら、時間に余裕があれば無料期間の1週間で3講座完走できるんじゃないかな?と思った。是非無料Certificateにチャレンジして欲しい。
ただ、個人IDの確認手続きが遅くて(enroll翌日には写真等アップ済みだったのに、あちら側での確認はコース修了してから始めたみたいで)、Certificateを頂けたのは課金後の火曜日だった事は記しておく。Free Trialについて

You can earn Course Certificates if you pass all assignments during your free trial and have your profile verified.

ってここに書いてあるわけだけど、
自分は5つ目までやるつもりだし(実際相応の価値はあると思うから)課金は構わないんだけど、始めた翌日には身分証明写真(パスポートから)をアップロードしておいたのに、コース修了まで身元確認がpendingになっててCertificate発行が無料期間中には出来ないというのはちょっと。これから無料Certificateチャレンジに挑む皆さんは要注意ね。

個人的受講スタイル

iPad Pro (12.9'') のSplit ViewでCourseraアプリとNotabilityを左右に開いて、講義スライドにメモを書き込みながら受講。
f:id:n4_t:20170924122820j:plain
理解が怪しい箇所は英語のトランスクリプト(多分自動生成なんだろう、しょっちゅう間違ってる)にも頼りながら何度も聞き返し。
プログラミング実習はJupyter Notebook(Courseraのサーバで動いてる)で自動採点なのでローカルにpythonもtensorflowも入れてなくても、というかiPadからでも出来る(けどキーボードで打ちたいしMacでやった)。
Courseraはビデオの再生速度を0.25倍刻みで調整できるので、1.25倍速(時々1.5倍速)で聞いてた。

余談だけど、iPad ProはAppleストアなんかで縦長に見てたら10.5インチがベストチョイスっぽいんだけど、横置きでsplit view前提で(左にarXivの論文、右にNotabilityとか)考えると12.9インチ一択。ちょっと重いけど。

講義概要

ざっくりこんな感じ(4つ目5つ目も受けたら追記予定)。

COURSE 1: Neural Networks and Deep Learning

4週間コース。プログラミング演習あり。
Courseraで以前受けたAndrewのMachine Learning講座のロジスティック回帰とNNの辺りの復習+α、みたいな内容。

今回はOctaveではなくpython(+numpy)で、programming assignmentはCourseraがホストするサーバ上のJupyter Notebookで、と時代を反映している。PCがなくてもWebブラウザ上で全て完結できるのは凄い!

COURSE 2: Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization

3週間コース。プログラミング演習あり。

  • WEEK 1: データセットの分割 (train/dev/test)、バイアス・バリアンス、正則化・最適化、勾配の消失と爆発
  • WEEK 2: 最適化アルゴリズム。ミニバッチ最急降下、momentum、RMSprop、Adam
  • WEEK 3: ハイパーパラメータチューニング、Batch Normalization、ソフトマックス回帰、TensorFlow入門

正則化*4とかReLUとかBatch Normとかが効く仕組みをしっかり理解できた。Batch Norm賢いなあ…(なんで2015年まで出てこなかったんだろう)
TensorFlowってチュートリアルのコードぐらいしか書いたことないんだけど、まあ何とかなった。ちなみに仕事ではKeras(+theano)とかPyTorchを使ってます。

COURSE 3: Structuring Machine Learning Projects

2週間コース。プログラミング演習なし。
(ビデオの編成とQuizの設問に改善の余地があると思うけど)ためになった。早速実務に役立てて行きたい。

1週目のクイズ、2回で満点出せなくて(91%→96%)3回目のチャレンジまでに8時間弱のペナルティ。(連投できない仕組み)
2週目が分量多め(1本1本のビデオも長め)+ちょっと複雑に感じた。
2週目のクイズ、当てはまるものを全て選べとか言いながらラジオボタンだったりとかで戸惑ったけど、空気を読んだ回答で2度目になんとか当たりを引けた。

f:id:n4_t:20170926171724p:plainf:id:n4_t:20170926171740p:plainf:id:n4_t:20170926171757p:plain*5
f:id:n4_t:20170926191526p:plain

*1:無料になるのは講座単位ではなく Specialization の枠組み単位らしい

*2:Andrewの英語を聞くのって前に受けたMachine Learningコースぶりか?いやそんなこともないか

*3:ちなみに受講順は 1-1 / 1-2 / 2-1 / 3-1 / 2-2 / 1-3 / 1-4 / 2-3 / 3-2、かな。最初の土日に半分弱進めて、あとは1日おきぐらいに拾っていく感じだった。無料期間中(9/23)に終えられたのは2つ目までで、最後の3-2が少し難航して結局9日。自分の場合はコースをスイッチしながら受講したことで飽きずに進めた。QuizとAssignmentは満点が出るまで試行。ヒーローインタビューは飛ばした。

*4:PRMLを何度も何度も時間遡行して読んでてさ、§3.1の辺りの議論をみんな当たり前のように理解するわけじゃん、今回の講義でやっと腑に落ちた感がある

*5:プライバシー保護のためCertificateドヤリング画像に一部モザイク処理を施しています