わくわく技術ブログ

プログラミング・統計・機械学習

Coursera Introduction to Deep Learningコースの受講感想

Introduction to Deep Learningコースをほぼ修了したので感想です。

www.coursera.org

「ほぼ修了」と書いたのは、レビュー結果待ち状態のものがあるからです。あと自分が他の人のレビューもしないといけないのですが、まぁ大体終わったということで。

以前、Stanford大学のMachine Learningコースを受講しました。

Coursera Machine Learningコースの受講感想 - わくわくとオーボエ

この講義はその続きではないのですが、自分の場合は続きとして受けても問題なさそうだと判断してこれを選んでいます。

長くなったのでまとめから

  • 扱いは「上級」だがあくまで「Introduction」の範囲
    • ITエンジニア向けの初級から中級本くらいの内容
  • 複数講師なので、テーマごとに聞きやすさが違う(教師なし学習は聞きにくい)
  • 50時間くらいかかった
  • 演習問題を解きたい & 英語学習を兼ねられる にメリットを感じるなら受けても良い
    • 難易度、時間、費用的には、日本の書籍で十分学習できる範囲
  • 次コースの"How to Win a Data Science Competition: Learn from Top Kagglers"に必要かと思い受けたが怪しい気がしている
    • 実際どうだったかは受けてから書く

コース情報

主催、講師

ロシアのNational Research University Higher School of Economics(国立研究大学高等経済学院)が主催している講座。 Advanced Machine Learningという専門講座に含まれる最初のコース。

先生は4名。分野ごとにバトンタッチ。

カリキュラム

全部で6週を想定したオンライン講義で、示されている所要時間を合計すると約38時間です。

おおよその内容は次の通り。

難易度は「上級」。

また受講の前提知識として以下が記述されています

その他

残念ながら字幕に日本語はありません(2019年2月末時点)

英語字幕はかなりよく出来ています(後述の通り教師なし学習の部分を除く)

学習実績

時間

このコースの学習の途中から、アプリで学習時間の実績をつけるようにしました。

途中からだったのとタイマーをつけるのを忘れたりしたせいではっきりしないのですが、オプション課題を除いて50時間くらいで最終課題の完成まで行けたと思います。コース想定が38時間(オプション課題込み)なので、だいぶ掛かってしまったと思う。

時間の掛かった理由は2つ。ノートをとる時間と、英語の発音です。

ノートをとる時間

前回受けた講義(Stanford大学 Machine Learning)では、講義スライド(講師の書き込みあり)がPDFでダウンロードできたほか、講義内容をまとめ直したものも閲覧できます。また、もともと無料講義なので必要になったら受け直すことも自由にできるものです。

一方でこのIntroduction to Deep Learningコースでは、ダウンロード資料などは用意されていません。さらに有料講座で月ごとに課金のため、ずっと講座を聴けるようにしておくのも現実的ではなく。 そのため、各講義動画ごとに内容を自分で残しておかないと、何の話をしていたかも分からなくなってしまいます。

ノートは話の内容が分かっていれば書くのは大変ではない…かと思いきや、意外と大変です。というのも、英語から日本語へ翻訳するコストが自然に掛かってしまうためです。(英語のままメモに残せば書くコストは減りますが読むコストが上がります。) 講義スライドは分かりやすいものの情報量が少なめなので、スライドのスクリーンショットを手元に残すだけでは足りないかと思います。

英語の発音

英語の講義なので、発音の分かりやすさと字幕の精度には慎重になってコースを選択したつもりでした。(事前に複数本の動画をお試し視聴した) ただ、講師が4人もいるとは思わず。。

4人のうち、教師なし学習を担当している方の話す速度と発音がちょっと…。字幕も間違っていたり[INAUDIBLE]となっていたりが目立ちました。 そのため、自分の能力では5分の視聴に1時間近く掛けるペースになりました。

他の3人の講師については聞き取りやすい発音です。その中でも特にCNNの担当の講師がゆっくりはっきり綺麗な発音でした。

内容理解

上に書いたとおり、教師なし学習については英語理解がむずかしく、ぼんやりした理解度です。それ以外はちゃんと動画を見て分からない部分はネットで少し検索したりすれば、問題なく理解できました。

感想

内容の広さ,深さ

書籍「ゼロから作るディープラーニング」は手元にあったので適宜参照しながら進めました。このコースの方がやや詳しめ(深め)ですが、コースのCNNまでの内容がおおよそこの本の内容をキュっとまとめた感じでしょうか。コースとしてはTensorflow/Kerasを使って実装することに主眼が置かれているものの、途中のオプション課題でNumpyのみでニューラルネットワークを作るというのがあり、近しいものを感じます。

教師なし学習とRNNについては、書籍を持っていないので目次を見る限りではありますが「ゼロから作るディープラーニング2」と7割くらい重なっていそうです。書籍にあるAttentionというものは、「このコースでは触れない」と途中の動画で言っていました。(Advanced Deep Learningの残りの6コースの中で扱うそうです。)

"Introduction to Deep Learning"というタイトルからするに浅く広くの学習を目指しているのでしょう。この分野の全容を知るわけではありませんが、おおよそ名前通りのコースだと感じます。

難易度「上級」について

このコースだけではなく、7コース合わせて「上級」表示がされているような気がします。上述の通り、ゼロから作る~という書籍とレベル感として近いです。基礎の部分が省略されたのを踏まえて、中級くらいじゃないでしょうか。

ただ、この内容の後に6コース、総計216時間の講座が後ろに控えていると思うと、それらの後半は間違いなく「上級」でしょう。

演習

環境構築のハードルの低さ:◎

コース用のGitHubリポジトリがあり、そこを参照すると演習に必要なライブラリとバージョン、それからGoogle Colabを使う時に追加で必要な補助記述などが書かれています。ローカルで作業する人向けに、Anacondaの導入方法も。 ここに書いてあるとおりにColabを利用すれば(少なくとも今の時点では)何も問題なく作業を進めることができました。Tensorflowのバージョンが新しくなった時にWeek 2の課題を更新しているらしく、そういった点でも安心して演習に取り組めます。

内容:△、方式:○

演習は全体に穴埋め方式です。全体の流れは実装されていて、1行から10行程度までの穴埋めが多数ありコメントで方針が示されています。 これはもう少し全体に生徒の記述量を増やしても良いかなと思いました。

新たに解きたい問題があったとして、全部自力(もちろんKerasなどは使う)で組めるようになったかというと、怪しいです。ただ、今回のコードをベースに実装すれば良いと思うので、ちゃんと考えながら読んだという点では意味はあると思いました。

オプション課題と最終課題の2回、ペアレビューとして他の人のソースコードを読む機会があります。Pythonは書き方がばらつきにくいと言われていますが、それでも色々書き方は出てきます。また、動作確認用に組んだネットワークにも個人差が出てきます。いくつもの結果、ちょっと失敗例に近いようなものも含めて見ることが出来るのは参考になりました。 講師が違うからか、それぞれ課題側にも個人差があってそれも同様です。

ミニクイズ

講義動画の途中で、四択のミニクイズが出されます。このコースでは解説したことをクイズに出すのではなく、クイズに出したことを解説する順になっています。これが意外と理解の助けになりました。

誰にオススメするか?

選ぶとしたら、「締め切りと演習問題があったほうが学習に取り組みやすい」かつ「英語の勉強も兼ねたらラッキーくらいに思う」人でしょうか。

入門者ではなく、理論を突き進めたい人でもなく。あくまでIntroductionの範疇かつ普通のペースでやったら修了までに時間もお金もかかるので、それでいて巷に溢れる良書を退けてこのコースを勧めたくなる人は絞られると思います。

自分の場合は次の"How to Win a Data Science Competition: Learn from Top Kagglers"に期待をしていて、その前段として受けたという側面が強いです。ただ、KaggleでDeep Learningが主流かというとそうではないのではと気づき。有用だったかどうかは、そちらを修了する頃にまとめたいと思います。