minminの備忘録

フルスタックになりたいエンジニアの備忘録 → https://zuminblog.com/ へ引越し中

Coursera deep learning specializationのススメ

Courseraのdeep learningに特化したコースを修了したので、備忘録もかねてどのようなことを学んだのか、どのような点がおススメかということについて、紹介していきたいと思います

www.coursera.org

deep learning specializationの概要

  • deep learningに特化した全16週間のコース
  • 以下の全5コースから構成される
    • Neural Networks and Deep Learning
    • Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
    • Structuring Machine Learning Projects
    • Convolutional Neural Networks
    • Sequence Models
  • 全部で150hかかる想定
  • 講師はAndrew Ng先生
  • 月額5531円(2019年5月時点)

ざっくりとした概要はこんな感じです
月額5531円っていうのは人によっては高いらしいんですが、かなり網羅的にdeep learningのことを学べたので、個人的にはそこまで高くないな~という印象です


基本的な各コースの構成としては、以下のような感じです
コースによっては、実装課題がなかったりもします

  1. video形式の講義
  2. 講義内容のquiz
  3. 講義内容を実装する課題


ここからは、各コースの詳細について紹介していきたいと思います

Neural Networks and Deep Learning (course 1)

  • 期間
    • 4週間のコース
  • 概要
    • Neural Networkとはどのようなものか
    • forward/back propagationや活性化関数等の説明
    • numpyを用いて、forward/back propagationやcost functionの実装

最初のコースでは、ゆっくり時間をかけてNeural Network(以下、NN)はどのような仕組みで動作しているのかを教えてくれます
NNの計算を効率化するためにどのようにベクトルを扱うかということを丁寧に教えてくれるので、数学に自信のない方にもわかりやすいのではないかと思います(数学が得意な方はかなり飛ばせるところだと思います)


課題は、numpyでNNの大事な計算の部分を実装するものになっているため、KerasやTensorFlowでは意識しない部分まで考えて実装することができ、NNに対する理解を深めることができます

Improving Deep Neural Networks (course 2)

  • 期間
    • 3週間のコース
  • 概要
    • NNをどのように過学習/未学習させないか
      • bias/varianceを判断し、どのような処置を施していけばよいかの説明
      • Dropout, regularizationの説明とそれらがなぜNNの精度に効いてくるのか
    • ミニバッチ学習について
    • SGD,RMSprop,Adamなどの最適化手法の説明
    • dropoutや最適化手法の実装
    • Tensorflowを用いて、簡単なNNの構築

このコースでは、実装したNNの精度が低い時の原因究明とその処置について教えてくれます DropoutやRMSprop, Adamなど用語は聞いたことはあったけど、それがいったい何なのか・それはなぜ必要なのかを知ることができて、非常に楽しかったコースでした


また、課題ではdropoutや最適化手法を実装したり、Tensorflowを用いてNNを実装しました
個人的にはTensorflowなんて難しいんだろうな~と思って手を出せていなかったんですが、事前にTensorflowについての簡単な講義があったので、すんなり実装することができました

Structuring Machine Learning Projects (course 3)

  • 期間
    • 2週間のコース
  • 概要
    • 機械学習プロジェクトをどのように進めていくと良いか
      • 精度の指標をどのように決めるのか
      • 学習/テストデータの分け方
      • エラーをどのように分析するか
      • エラーの分析結果に基づいてどのような方向性で精度を上げていくのか
    • 課題として、機械学習プロジェクトのケーススタディを解く

このコースはこれまでのコースとはちょっと違って、NNの中身に関する内容というよりかは機械学習プロジェクトをどのように進めていくべきかという、少しプロジェクトマネジメント寄りのコースです


実際に機械学習プロジェクトを進めていくうえで悩んでしまうことや、やってはいけないことを学べるので非常に重要なコースだと思いました
通常の技術的なコースだと、このようなことはなかなか学べないような気がするので、さすがAndrew先生!という感じです


また、実装の課題がない代わりに、クイズが通常よりも長めになっています
内容としては、実際に近い機械学習プロジェクトを想定して、プロジェクトをどのように進めていけばよいかのケーススタディを解く感じです

Convolutional Neural Networks (course 4)

  • 期間
    • 4週間のコース
  • 概要
    • CNNに関する基本的な説明
      • CNNの基本的な構成
      • 畳み込み層、プーリング層は何をしているのか
      • Padding, Strideについて
    • ResNetやAlexNet等の紹介
    • 物体検出を行うためのネットワーク(yoloなど)の説明
    • numpyで畳み込み層・プーリング層・paddingの実装
    • kerasを用いてResNetの実装
    • Tensorflowを用いてyoloの一部分を実装

CNNについても、畳み込み層、プーリング層など、言葉を知っていたもののなんなのかよくわからないことが多かったので、実装する際の見通しが非常に良くなったと感じました
また基本的なCNNから最近のNetworkまで触れていたので、かなり勉強になりました


課題に関しても、numpy, Tensorflowだけでなく、このコースからKerasも入ってくるので、実装の幅も広がると思います


実際にこのコースで学んだyoloについてまとめてある記事もあるので、良ければ見てください(笑)

minmin-21.hatenablog.com

Sequence Models (course 5)

  • 期間
    • 3週間のコース
  • 概要
    • RNNに関する基本的な説明
      • LSTM, GRU, bi-directionalなネットワークも紹介
    • word embeddingについて
    • seq2seqについて
    • attention mechanismについて
    • Kerasを用いた、LSTM,attention構造の実装

このコースでは基本的にRNNを用いて、文章の翻訳や音楽生成・文章分類などの問題を解くことを中心に説明したコースになります
個人的に興味があったattention mechanismについての講義があったのは、かなり嬉しかったです


自然言語処理に親しみのない私にとっては、非常にタフなコースだった印象です
課題も設定の倍くらいはかかったので、心が何度も折れかけましたが、最後のコースということもありなんとか終わらせることができました

一度では全部理解できていない箇所がたくさんあったので、またこのコースには戻ってくると思います
(課金が終了しても、講義動画は見られるらしいです)

感じたメリット・デメリット

  • メリット
    • deep learningに対する見通しがだいぶ良くなる
    • tensorflow, kerasの使い方について学べる
    • 課題はjupyter notebookなので、環境構築不要
    • discussionが充実しているので、課題で詰まってもある程度大丈夫
    • 英語の勉強にもなる
    • 修了証がコースごとに発行される

今まで敬遠していたtensorflowについて学べたのは、個人的に大きかったです
資料はすべて英語で、かつ講義についても日本語字幕がついていない動画も多数だったので、英語に触れつつ技術的なことを学べたので一石二鳥な感じが非常に良かったです


また、修了証がコースごとに発行されるため、モチベーションの維持はしやすかったです
全コースが修了した際には、コースの修了証とは別に修了証がもらえるのですが、それをもらった時は、感動ものでした



  • デメリット
    • 月単位での課金方式

月単位での課金方式だと少しさぼってしまうと、お金がただ溶けていくので、そこら辺が少しデメリットだな~とは思いました
逆にそのおかげで、やらなければいけない状況になるので、メリットでもあるのかなという印象です

まとめ

これだけ内容盛りだくさんで、月額5531円は安くないですか??ってくらいな印象です
機械学習初心者の方にはもちろん、ある程度は知っているけどdeep learningについて体系的な知識を身につけたい方にもおすすめのコースだと思います


全部終えるのにはかなり体力のいるコースですが、走りきるとかなりの力がつくと思うので、ぜひ挑戦してみてはいかがでしょうか?


最初の一週間はトライアルで課金なしで受講できるので、興味がある方はぜひ試してみてください

参考