Udacity Deep Learning Nanodegree Foundation を修了してみての感想

1月末から始まり約4ヶ月にわたったUdacity Deep Learning Nanodegree Foundation、無事に修了できました。 :-)

f:id:sanshonoki:20170524213626p:plain

ブログ用に講座のトップページをキャプチャしてみたんですが599ドル ?!

Oh My God、200ドルも値段上がってるよー ((( ;゚Д゚)))

費用対効果についてはあとで触れますが599ドルだったら多分受講してなかった(正確に書くと、受講させてもらえなかった)と思います。。

他の方の記事

国内の他の受講者の方が早くも記事を書いていますね。参考になると思います。 講座の内容はこれらのほうが断然詳しく書かれているのでこれらをご参照ください。 今回も他人のふんどしで相撲を取るスタイルです。。(; ̄ー ̄川

私の感想

少し辛口なところもありますが率直な感想。 (`・ω・´)

SirajのYouTube動画

  • イントロ
    • 凝った動画で「AIでこんなことできるのね」と、イントロとして面白い
    • 5-10分で短いので集中して見れる
    • 本編はTensorFlowオンリーだけどここではKerasがよく使われる。。
  • Live session
    • 約1時間のLive coding。時間の都合でスキップしたりエラーを解消できずに放置して結局コピペだったりグダグダ。集中力を保って最後まで見るのは難しい
  • Coding Challenge も取り組めればスキル向上しそう。でもこの講座を受けるレベルの人にはそんな余裕はないかも。。

このYouTube講座は公開されていてUdacityの受講者じゃなくても見れます。 www.youtube.com

修了できたのでCoding Challengeもトライしてみようかなぁ

本編の学習コンテンツ

  • 技術解説
    • アニメーションも使った動画解説は英語の解説記事を読むより敷居が低く効率的なのは確か
    • でも、結局は咀嚼できるまで何度も読み返すプロセスがないと “理解できた気がする” で終わってしまいそう
  • 練習課題
    • プロジェクト課題と違ってミニテスト形式じゃないので最後までコーディングしてみたもののうまく動かずどこで詰まっているか分からないというパターンに苦しむ人は多いかも
    • MatのSolution解説の適当さ感が気になる。「とりあえず説明したから」的な。そう思うのは私だけだろうか…

これもGithubでJupyter Notebookのコンテンツは公開されています。

github.com

通常の練習課題にもテストコード入れて欲しいなと思います。Solutionに手が伸びてしまう人は多いと思う。。

提出課題(プロジェクト)

  • 各所でテストコードがあり、step by stepで確認しつつ進められたのは良かった
  • 参考となる直前の練習課題と同じようにやっていたらハマる箇所が何箇所かあってちょっといじわる
  • レビューは「ok」「Hyperparameterのチューニングの余地あり」「もっとpythonらしいコードの書き方がある」ぐらいしか返ってこなかった。。

練習課題と同じようにやっていたらハマる所はもう少しヒント(「ここは練習課題と違うからしっかり考えてみてね」的な注意書き)があってもいいかなと思います。レビューは気に入らなかったら何回でも出せるみたいです。

運営

  • いつの間にか過去のweekのコンテンツが増えていたりする
  • GithubのコンテンツもWeeklyのコンテンツ公開に合わせたアップデート以外にもバグ修正含めてちょこちょこ更新されている
  • でも、運営側から通知が何もないので基本的に気づかない

これ、絶対に改善してほしいです。><

ユーザーフォーラム

  • 同じ質問があふれている。。
  • たまには自分にとって役に立つ情報もあるが全部目を通すのは辛い…

同じ質問がたくさん出るというのはみんな同じ箇所でスタックしているということで学習コンテンツの改善の余地があると思います。既出の質問かどうかちゃんとチェックするのは大変なので同じ質問が出るのは致し方ないところですね。。

その他(TensorFlow)

  • 前半は tf.Variableを使ってWeightやbiasを明示的に実装するが後半は基本的に高レベルAPI(tf.contrib.layersやtf.layers)が使われる
  • FullConnectedの実装が tf.contrib.layers.fully_connected になって、それがいつの間にか tf.layers.dense になったりで混乱する
  • TFLearnを1回だけ使う。謎。TFLearn を使うぐらいなら Keras を使ってほしい

特に説明がなかった気がするけど基本的には高レベルAPIを使っていけばいいのでしょうか。それにしてもTensorFlowはAPIの変化が激しすぎます。。 ┌┤´д`├┐

まとめ

  • Deep Learningのメインストリームの各種技術のつかみを一通りおさえられる。でも、身に付くというのはまた別の話。。
  • 勉強にはなる。お金をかけてかつ〆切りもあるので怠けず続けられる
  • 費用対効果は疑問。。

高いクオリティの無料の講座もある中、学習コンテンツの現状クオリティを考えると399ドル(当時)はやっぱり高いんじゃないかなー。599ドルになるとなおさら感あります。

受講生のみアクセスできる教材、フォーラムやレビュー(提出課題のフィードバック)に値段相応の価値を感じなかったので高い意志力を持って怠けずに続けられる人は無料公開されているSirajのYouTubeビデオGithubJupyter Notebookでも十分なのかなと思いました。。

無料の講座

人工知能に関する断創録」のブログで紹介されていて知ったfast.aiの講座(Practical Deep Learning For Coders)をやってみようと思ってます