Deep Learningを学習する際にcourseraのDeep Learning講座が非常に評価が高いことを知り、是非受けてみようと思いました。
全5コースからなっており
- Neural Networks and Deep Learning(4 weeks)
- Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization(3 weeks)
- Structuring Machine Learning Projects(2 weeks)
- Convolutional Neural Networks(4 weeks)
- Sequence Models(3 weeks)
このような構成になっています。各コース合わせて16週分の講義があり、1週辺り100分前後の講義+小テスト+プログラミング課題が出ます。ボリューム感としては大学の授業1つをオンラインで受けるようなイメージでしょうか。
講座は月額49$(たしか)で最初の1週間はトライアルでフリーです。つまり1週間以内に全講義を終わらせ、修了書をもらえばタダです。この講座を調べていたらこんな記事があったので、ぜひ自分もやってみようと思った次第です。
前知識
本講座に取り組む前に、やっておいた方がいいものは同じくAndrew先生が出しているMachine Learningです。
間違いなくこれは受けておくべきです。講座内ではpythonではなくoctaveを使用しますが、ここで学ぶ内容がdeep learningでも重複して出てきます。重複するから逆に受けなくていいじゃん、ではなくNN以外の機械学習の基礎が学べるため把握しておくべきだと思います。あとある程度理解した状態でdeep leaning講座に取り組めるため、時間をブーストさせてくれます。
pythonを全くいじったことがない人がdeep learning講座を受けるとは考えにくいですのでいいとしますが、講座後半で登場するtensorflow,kerasに関してはどちらでもいいと思います。自分は軽く触れた程度で使い慣れているわけではなかったですが、ネットやフォーラムで調べつつ課題は進められますので問題ないはずです。
スケジュール
この講座に重きを置けるとはいえ16週の講義を1週間で終わらせるわけですから、スケジュール管理はかなり重要です。結論から言ってしまうと自分はここがガバガバだったので後半少し痛い目を見ます。
今思い返してみればこんな感じのスケジュールでやればいい感じに終わるのではないか、と思います。
1日目…1コース(1-3 weeks)
2日目…1コース(4 weeks),2コース(1-2 weeks)
3日目…2コース(3 weeks), 3コース(1-2 weeks)
4日目…4コース(1-2 weeks)
5日目…4コース(3-4 weeks)
6日目…5コース(1-2 weeks)
7日目…5コース(3 weeks) + 予備
こんな感じです。あくまで個人的な意見ですので、これよりもっと早く進められるぜって自信がある方は進めてもいいかもです。特に1コース目はMachine Learningと被っている内容もあるので、ビデオを進めたり課題はさらりとこなせたり、シラバスの時間よりも早く終わるはずです。
逆に自分は1コース目でシラバスより早く終わると勘違いしてしまい、ちんたらやっていたところ後半の4,5コース目のプログラミング課題に時間がかかってしまい、5日目は夜中の4時くらいまでプログラミング課題に取り組む羽目になりました。
大学のテスト前日みたいな気分でノスタルジックを感じましたが、夜は絶対寝たほうがいいので前半飛ばせる人は間違いなく飛ばしたほうがいいです。
最後の予備は絶対に持っておくべきです。なぜなら講座の最後には小テストがあり、3回トライしてパスできなかった場合次受けられるのが8時間後になるためです。最後の最後まで来て、小テストがパスできず1週間以内に終わりませんでした。はあまりにも間抜けです。
講座を受けていれば3回トライできるので大体はパスできるはずですが、問題文が英語であること、凡ミスは避けられないことを考えると予備無しで小テストを受けるのはややリスクが高いです。夜中まで課題をやっていたような自分ですらこの予備の時間は確保をして講座を進めていました。
1. Neural Networks and Deep Learning
- Introduction to deep learning
- Neural Networks Basics
- Shallow neural networks
- Deep Neural Networks
上でも述べましたが、Machine Learningでも学んだ内容がほとんどのコースです。プログラミング課題ではpythonを用いてフォワード・バックプロパゲーションを実装します。誘導も丁寧で、式も課題中に乗せてくれているのでその通りに実装するのみです。numpyの操作にならすためのチュートリアル感覚くらいでいいと思います。
2.Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
- Practical aspects of Deep Learning
- Optimization algorithms
- Hyperparameter tuning, Batch Normalization and Programming Frameworks
コース1と感覚は同じです。タイトル通りパラメータチューニング、正則化等モデル精度向上のための技術を学びます。この辺りもある程度Machine Learningで学んでいる所ではないでしょうか。
1コース、2コースとここまでは字幕に日本語がついており、講座内容も難なく進められるはずです。小テストは英語ですが、ぶっちゃけ満点はとらなくてもパスできてしまう&3回チャレンジできるので、サクサク進むでしょう。プログラミング課題も指示通り実装するだけです。
3.Structuring Machine Learning Projects
- ML Strategy (1)
- ML Strategy (2)
この講座は日本語字幕がなかったので少々苦戦しました。内容も実際にモデルを作成する際にやることとして、データの分布はどうなっているか、ex)モデルに学習させる画像データはインターネットで収集した高解像度の画像だが、システムで実際に取得して判別する画像は低解像度、ボヤボヤしている。等どうしたらいいか、の話があります。
プログラミング課題はありませんが、小テストが他よりも長くストーリー立てされています。プログラミングはないとはいえ、講座内で先生から「このようなケーススタディに取り組むことでより実践的な力が付くし、これまでの生徒もそうだ」的なことを言われるので是非頑張ってほしいところです。
4.Convolutional Neural Networks
- Foundations of Convolutional Neural Networks
- Deep convolutional models: case studies
- Object detection
- Special applications: Face recognition & Neural style transfer
CNNについて1から学びます。これまでもCNNについてサラリと学んだことはありますが、この講座のCNNの説明が一番わかりやすいのではないでしょうか。パディング、プーリングをするとどうなるかを図を使って説明してくれるので(他の教材もそうかもしれませんが)自分の中にスッと入ってきます。
コース後半では画像判別、物体検出のアルゴリズムや顔認証、Neural Style Transferなどの実装があります。
個人的には一番面白いと感じたコースでした。特にNeural Style Transferはとても面白いしワクワクします。
しかし、プログラミング課題は一気に難しくなると思います。1weekの課題初っ端から苦戦しました。データのshapeを注意して進めると何とか進めると思います。
またどうしてもわからないときにはフォーラムを覗くのも手です。エラーは出ずとも、答えが一致しないときにはフォーラムを見ると似たようなミスをしている人がいるはずです。そこにヒントがあります。
5.Sequence Models
- Recurrent Neural Networks
- Natural Language Processing & Word Embeddings
- Sequence models & Attention mechanism
コース5はRNNの基本からLSTM、Word Embeddings等等の学習を行います。課題では、自動名前生成、ジャズミュージック生成、Trigger Word Detection(OK,Googleと言ったらスマホが反応するとか)を行います。
最後も正直話が難しいです。LSTM辺りは苦戦しましたし、プログラミング課題も理解できつつできたかというとそうでない部分も多かったです。
この辺に来ると時間内に終わらせないと、という思いも強くなってきてしまい理解するよりも終わらせることに意識が行ってしまい、後に詰め込みすぎた弊害が出てしまったと反省しています。
ほとんど気合で終わらせたような感じです。わからないところも多く講座を見返るよりもフォーラムを漁る時間が多かったような気がします。
感想
なにはともあれ無事に1週間でdeep learningの講座を修了することができました。
これでdeep learningは完璧!というと、もちろん嘘ではあるのですが、受ける前の自分とは明らかに違うことは間違いないはずです。個人的に思うことは英語字幕しかなかったところは理解ができていない気がすることです。雰囲気で進めてしまったので
1週間のトライアル期間が終わってしまっても、小テストとプログラミング課題が解けなくなるだけで、Andrew先生のありがたーいお話はそのまま聞くことができます。
1週間で終わらせた感想として、時間があるなら1週間チャレンジはぜひともやるべき、と思いました。それだけの内容の価値がありますし、お金の節約にもなりますし、1週間という短期間なのでモチベーションも続くと思います。1週間+1ヵ月でも全然OKです。ですが、自分が3ヵ月で終わらせる、となるとどこかでだらけるときが来てしまい、終わらないまま~となってしまう気がするので、1週間でがっつり頑張るほうが自分には合っている気がしました。(そうならないように月額料金制になっているのだとは思いますが)
コメント