Is It Worth Taking Coursera Deep Learning Specialization?

# これは何？
ディープラーニングのオンライン学習コースのはしり、Coursera（米スタンフォード大学などなどが開発したMoocs）の[Deep Learning Specialization](https://www.coursera.org/specializations/deep-learning)を1ヶ月強で修了しました。
全く実装経験のない初心者から走りきった今、まさに今受講を迷っているという方にどんなコースだったか、はじめて目線で書いてみたというものです。
# どんな内容？
Deep Learning Specializationは5つのコースから構成されていて、1個のレイヤーの実装からCNN,RNNといったまさに現場で使うようなモデルまで網羅的に学ぶことができます。各学習内容毎に選択式の小テストとプログラミング課題があり、細かく自分の理解を確認することができます。

- Neural Networks and Deep Learning
    - 基本的なニューラルネットワークの構成法とその背景にある数学を学ぶコース。
- Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
    - ディープニューラルネットワークの精度や速度を高めるための各種テクニックを学ぶコース。
    - この辺から、DL業界特有の「なぜかうまくいっちゃったてへ☆」というぁゃιぃテクニックがふんだんに出てきて楽しくなります。
- Structuring Machine Learning Projects
    - 開発現場で実装する際にどのようにプロジェクトを設計して、プロジェクトの合間に発生するデータ追加やデバッグなどの際の対応方法を学ぶ、PMライクなコース。
    - アカデミック色の強い文献だとなかなかこの手のPMの話は出てこないので、このコースは目からウロコでした。
- Convolutional Neural Networks
    - 画像認識を題材にCNNを学ぶコース。
    - 気がつくと曼荼羅模様みたいなネットワークで物体検知のモデルなどなどを実装していて、「思えば遠くに来たもんだ」となります。
    - TensorflowやKerasの独特の文法にちょっと面食らいますが、課題をやるごとに慣れていくので本当よくできていると思います。
- Sequence Models
    - 順番に意味のあるデータ（音声、文章など）の処理を題材にRNNのモデルを学ぶコース。
    - 最初は一層のネットワークを必死に実装していたのに、最後は発話検知まで実装できるようになります！

# ご利益は？
上の内容から分かる通り、この専門講座はディープラーニングの入門書で網羅されている内容に近いものがあると思います。
この専門講座ならではのもの、というとどんなご利益があるのか、私の感想としては以下のような感じです。

- ディープラーニングのレイヤーの構成と背景にある数学、実装のためのコードの型がなんとなく分かる
    - 数式から逃げないスタンスで特に初盤はガッツリ線形代数を使いつつも、直観的な理解方法も教えてくれる
    - 本当に基本のところはフロムスクラッチで、難しいところはTensorflowやKerasに頼るという、理論と実践のバランスが取れたプログラミング課題が設定されている
- 最先端の研究も噛み砕いて紹介してくれる
    - 特に4つ目のCNN、5つ目のRNNのコースでは業界で主要となっている論文の解説をふんだんにしてくれる
    - この論文は読んだほうが良い、この論文は難しすぎるからさらりと読むくらいで良いといった論文の読み方まで
- （実はここがおいしいかも）ハイパラや、モデル選択について実装の現場での肌感覚を教えてくれる
    - CNNで窓の大きさやフィルター数をどのように設定するか、RNNでLSTMとGRUとどちらを使うか、etc...
- 結果として、今後自分で簡単なモデルの実装や、文献（本、論文）を読むための素地を作ってくれる
    - コースを終えてから本を読むと「この問題ベネッセでやったやつだ」無双になれて、苦なく文献を読めるようになります
    - Andrew先生が「君は今や世の中の博士学生や実務家よりよっぽどまともにDLのプロジェクトを回せるようになった！」「今まで自分が学んだことを誇りに思って」など、胸が熱くなる言葉を要所要所で投げかけてくれます
    - さらに、数学・情報科学のバックグラウンドが必要な説明の際には、「If you don't understand, **don't worry about it**」という決めゼリフでみんな[こんな感じ](https://youtu.be/d-diB65scQU)にしてくれます

内容としては至極基本的なものだと思うのですが、プロジェクトを進める上でのエラー解析の仕方や、デバッグの仕方、ハイパラの初期値の肌感などなかなか教科書には乗り切らない実践的なアドバイスが散りばめられていて、業務経験のある人でも得るものはあるんじゃないかなと思いました。

# 勉強の負荷はどれくらい？
このコースは標準ペースで3ヶ月で修了する（計16週分コースはあるのですが…微妙に計算が合わないですねえ汗）ワークロードが想定されています。
私は結果的に1ヶ月強で修了したのですが、週末は1日1-2週分進め、平日の5日間の合間で更に1週分で1週間に4-5週間分進めるイメージでした。仕事が閑散期だったのでなんとかなったのですが、結果的には平日は2日×3時間、休日は2日×5時間くらいパソコンに向かっていた気がします。予定があった日もノルマは変えなかった（正確に言うと、結構やっていると楽しいのでのめりこんだ）ので、深夜までやっている日が週3-4日あり、興味がないと続かないと思いました。
予定がパンパンの方だとなかなかこのペースを持続するのは厳しいですし、一旦挫折してまた復帰しても今までの内容が飛んでしまってキャッチアップでまた心が折れそうになるので、**仕事や学校などの閑散期を狙って長くても2ヶ月くらいで一気に走りきってしまう**のが良いのではないかと思いました。

# こんな方はぜひ！
- ディープラーニングを口だけでなく、ある程度理論と実装の理解までしたい
    - ディープラーニングを使った事業を考えているビジネスサイド出身の人
    - 「ゼロから作るDeep Learning」で興味を持って、より深くディープラーニングのことを知りたい人
    - プログラミング経験は豊富だが、機械学習周りの理論は？の人　とかでしょうか…
- でもちょっとガチな本では挫折してしまう、あるいは眠くなってしまう
- 英語の授業でもなんとか頑張れそう
    - 日本語字幕は一部にしかついておらず、ほとんどあっても英語字幕になります
    - 非英語圏の学生が多いことを考慮してか、先生もゆっくり簡単な英語で話そうと意識してくれているので、是非一度挑戦を！
    - 私もこの専門講座を終える頃には、なんか英語の授業でも大丈夫かも？と思えるようになりました
- 線形代数はよくわからないけど、行列の掛け算くらいはできる
    - 逆行列が分からなくても、対角化出来なくても（このコースの範囲では）大丈夫です！
- Pythonを触ったことがある

# 課金をするか？
このコースは無料で受ける方法もあるはずですが、一応オンライン修了証をもらうには有料となっていて、月5,000円程度の費用がかかります。オンライン修了証は、SNSで共有することができ、今後のキャリアアップにに活かしてもらうことを想定しているようです。
大学の単位が出るわけでもない、資格になるわけでもない、日本での知名度もイマイチ、というのに3ヶ月で15,000円、という金額は安くはないかもしれませんが、終わってみたら、このレベルの講義をこの値段で受けられるのはありがたいなと思っています。
7日間のお試しもできるようなので、まずは試しに受講してみてはいかがでしょうか？
英語というだけで躊躇するのは本当にもったいないです！