naoya_t@hatenablog

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

deeplearning.ai受講メモ (2/24更新)

【追記】2/19全講座修了しました!

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

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

  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

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

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

受講

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

結局、10日目で3講座を完走(9/25)*4。予備知識がある方なら、時間に余裕があれば無料期間の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週間コース。プログラミング演習(python+numpy)あり。
Courseraで以前受けたAndrewのMachine Learning講座のロジスティック回帰とNNの辺りの復習+α、みたいな内容。

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

f:id:n4_t:20170926171724p:plain:w480*5

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

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

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

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

f:id:n4_t:20170926171740p:plain:w480

COURSE 3: Structuring Machine Learning Projects

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

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

f:id:n4_t:20170926171757p:plain:w480

COURSE 4: Convolutional Neural Network (12/5追記)

4週間コース。プログラミング演習(keras, TensorFlow)あり。
今回は1週間分ずつ週末に進めていくスタイルで受講。

エッジ検出、パディング、ストライド、プーリング。

AlexNet,VGG-16 から ResNets, Inception Network (GoogLeNet) まで。ConvNetsの転移学習とか。

  • WEEK 3: 物体検出

アンカーボックスとかYOLOアルゴリズムとか

  • WEEK 4: 特殊なアプリケーション:顔認識、ニューラルスタイル変換

siamese networkとかtriplet lossとか。Deep NNの中身のビジュアライズとか。

第4週のassignmentはデータと採点システムに不具合があって、pretrained weightをgithubから持ってきたデータに差し替えたり、Forumの情報をもとに(jupyter notebookで指示されているexpected valueとは違う数値が出るコードで)切り抜けたけど、これは修了生が全員そのハックをしていることを示唆するわけで… 修正&改善求む。

f:id:n4_t:20171205065810j:plain:w480

次の第5講(Sequence Models)も11月下旬開講って話だったけど12/19スタート(日本時間だと12/20かな)になった。
第4講は10月下旬開講とのことだったけれど11月の第1週にずれ込んだし。
ほぼ同額でdeeplearning.aiだけでなくCourseraのカタログに載ってる全コース(masterコースとかは除く)が受けられる方のプランに移行したものの、月額課金でこう間があくのはちょっと辛い。

12月下旬になっても始まる気配を見せないdeeplearning.aiから12/30にお便りが。

Dear Learners,

We hope that you are having a wonderful holiday season!

We’ve heard your questions regarding the launch of Deep Learning Course 5, Sequence Models. As we’re nearing the end of December, we wanted to provide an update on timelines for this course. The course team now plans to launch the final specialization course by late January 2018, to allow more time for Jupyter Notebook and Grader review.

We understand that many of you have active subscriptions. If you’d like to maintain full access to current course materials on Coursera’s platform for Courses 1-4, you can keep your subscription active. If you do not need to access these materials on Coursera, you can cancel your subscription and restart your subscription later, when the final course is ready. You can manage your subscription at your My Purchases page (https://www.coursera.org/my-purchases). As a reminder, if you only would like to access your Jupyter Notebooks, you can save these locally. All of your course progress in the Specialization will be saved, regardless of your decision.

Thank you for your continued patience and understanding as the course team works to make this final course the best it can be. We look forward to sharing this content with you shortly, and hope you have a very happy New Year.

Coursera and the Deeplearning.ai Team

24日に1ヶ月分引き落とされちゃってるし、折角全コース受け放題プランにしてるんだし何か他のコースでも受けて待つことにしよう(ポジティブ)。

COURSE 5: Sequence Models (2/24追記)

3週間コース。プログラミング演習(keras)あり。
いつも通り、1週間分ずつ週末に進めていくスタイルで受講。

申し込んでいたDL4USの抽選が通ってしまったので同時進行になってしまった。分量は増えたがやっている内容がいい感じにかぶってるので、deeplearning.aiで習ったことをDL4USで復習〜応用する感じになった。

RNNの目的、時間軸を遡るbackprop。GRU、LSTM、bidirectional RNN、Deep RNN。

単語の表現方法としてのword embedding。word2vecとGloVeのアルゴリズム。hierarchical softmaxとNegative sampling。感情分類と、embeddingに含まれてしまう望まないバイアス(医者が男性寄りに、看護師が女性寄りに学習されてしまうやつ)の除去について。

  • WEEK 3: シークエンスモデルと、Attention機構

基本的なモデルの構築、ビームサーチを用いた出力シークエンスの拾い上げ。BLEUスコア、Attentionモデル。

2週目のword embeddingの辺りは普段やり慣れているのでビデオをほとんど見ずに宿題に先に手を付けた。
最終週は予定より1日遅れて2/19(火)に修了。(Assignmentで、モデルのパラメータ数がjupyter notebookにあった想定値と大幅にずれていたので諦めて寝落ちしたため。翌日Forumを見たら自分ので正しかったようなので続きを書いてそのまま提出して修了。)
f:id:n4_t:20180224142150j:plain:w480

全5コース修了のCertificateも発行された。
f:id:n4_t:20180224142214j:plain:w480

      • -

f:id:n4_t:20171206080232p:plain
f:id:n4_t:20171206080251p:plain

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

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

*3:2017年9月の受講開始当時3つ目のStructuring Machine Learning Projectsまでしか開講されていなかったが、2017年11月に4つ目のConvolutional Neural Networksが、2018年2月に5つ目のSequence Modelsが開講された。

*4:ちなみに受講順は 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は満点が出るまで試行。ヒーローインタビューは飛ばした。

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