以前、Courseraの機械学習を受講しました。
この講座の内容が素晴らしかったので、今回、同じ講師の方が説明している「ディープラーニング専門講座」を受講しました。
本記事では、この「ディープラーニング専門講座」の概要と受講した印象について記載します。
講座の概要
ディープラーニング専門講座は、以下の5つのコース(全16週)から成り立ってます。
No. | コース | 期間 | 各週テーマ |
---|---|---|---|
1 | ニューラルネットワークとディープラーニング | 4週 | 1.ディープラーニングの紹介 2.ニューラルネットワークの基礎 3.浅いニューラルネットワーク 4.深いニューラルネットワーク |
2 | 深いニューラルネットワークの改善 ハイパーパラメータチューニング、正則化、最適化 |
3週 | 1.ディープラーニングの実践的側面 2.最適化アルゴリズム 3.ハイパーパラメータチューニング、バッチ正則化、プログラミングフレームワーク |
3 | 機械学習プロジェクトの構築 | 2週 | 1.機械学習の戦略(1) 2.機械学習の戦略(2) |
4 | 畳み込みニューラルネットワーク | 4週 | 1.畳み込みニューラルネットワークの基礎 2.深い畳み込みモデル:ケーススタテディ 3.物体検出 4.特別応用:顔認証と画風変換 |
5 | シーケンスモデル | 3週 | 1.回帰型ニューラルネットワーク 2.自然言語処理と単語埋め込み 3.シーケンスモデルとアテンションメカニズム |
金額はサブスクリプション方式で、完了するまで、5,212円/月が必要です。
(※最初の7日間は、無料なので7日間で終わらせれば無料で済みます・・実行した猛者もいるようです・・・)
私は結局、4ヶ月かかったので、20,848円払いましたが、内容を考えると、それでも払った価値はあったと思います。
コース毎の印象
以下、それぞれのコースの概要と印象について記載します。
(コース1)ニューラルネットワークとディープラーニング
ニューラルネットワークの基本的な事柄についての講座です。
Courseraの「機械学習」でのニューラルネットワークの講義と被っている部分はありますが、私にとっては良い復習になったので良かったです。
そして「機械学習」の講座と異なり、実践練習の言語は、OctaveではなくPythonになっているのが嬉しいです。
Octaveでもそんなに問題はありませんでしたが、やはり実践で使うのはPythonなので、python コードでのコーディングイメージを掴めるのは良いです。
(コース2)深いニューラルネットワークの改善
本コースでは、より実践的なディープラーニングの手法について説明されています。
ニューラルネットワーク自体は、線形変換と活性化関数による変換を何層にも重ね合わせたもので、理論的にはそれほど難しいものではないのですが、層を深くして実際にそれを計算しようとすると、時間・容量共に膨大なマシンコストがかかり、また勾配法の過程で、勾配消失/勾配爆発といった問題も発生します。
それを防ぐための計算テクニックとして、SGD( 確率的勾配降下法)、Momentum、RMSprop、Adam、バッチノルム、ドロップアウト、パラメータのランダムサーチ等が紹介されています。
これらの用語は、ディープラーニングのライブラリを「ただ使っている」だけの人でもライブラリのオプションとして指定する事があるため、用語だけは知っているかもしれませんが、そういった方々もこのコースを受講すれば、その手法がどういう仕組みで何故有用なのかを知る事ができるでしょう。
また、このコースからのプログラムの演習は、スクラッチで構築するのではなく、TensorFlowを使用するようになります。(私が受講した時点では1.0系でしたが、それでも雰囲気はつかめました。)
(コース3)機械学習プロジェクトの構築
本コースでは、実践で機械学習のプロジェクトを構築・運営するために何が重要なのかについて説明されています。
このコースの内容は、ネットの情報は他の講座では、なかなか見られないような内容なので、非常に有用です。
実際に分析する上で、どのように目標を設定して、どの過程に重点を置くべきかについて説明されています。このことについて見誤ると、時間を無駄に費やす事になります。
1例をあげると「学習データのラベルに間違いがある場合でも、それを修正するのが最優先でないケースがある事」など限られた時間の中で、何が有用なのかを見極める事の重要性を学習する事ができます。
(コース4)畳み込みニューラルネットワーク
ディープラーニングの真骨頂とも言える畳み込みニューラルネットワークの説明がされています。
本コースは非常にわかりやすく、畳み込みとプーリングの仕組み、それが何故有用かがよく理解できます。
また後半の顔認証や、画風変換についても実際に手を動かして実践出来るのでイメージがつかみやすいです。
(コース5)シーケンスモデル
最後のコースではシーケンスモデル、いわゆる回帰型ネットワーク(RNN)とそれに感連した技術について説明されています。
個人的には、この最後のコースは、非常に難しく感じました。
理由は、実際に難しいという事、私が全くといっていいほど予備知識を持っていなかった事、そしてこのコースに限って日本語字幕が充実していなかった点かと思います。(完全に未知の内容を英語で学習するのは、やはりキツかったです・・)
本コースに関しては、講座と合わせてネットなどを調べながら、ようやくクリアしました。
LSTMは最初、本当によくわからず、正直今でも理解度は微妙かもしれません・・・(要復習です・・)
ただ、文章の自動生成や音声処理など、技術の内容としては最も刺激を受け、このコースに刺激を受けてWEBアプリを作りました。(該当記事は、こちら)
まとめ
以上、本講座の概要と受講しての印象について記載しました。
なお注意点としては、日本語字幕がある箇所とない箇所がある事です。(半々くらい?)
「機械学習」の講座では全ての講義に日本語字幕があったので英語ができなくてもおすすめでしたが、こちらの講座は「英語全くダメ」という人にはちょっときついかもしれません。
ただ、英語の技術文章を読むだけならばできるくらいの方だったら問題ないでしょう。
ディープラーニングについて体系的に学習したい方は、是非、受講するべきだと思います。
そして繰り返しになりますが、3コース目の「機械学習プロジェクトの構築」は本当に有用です。
このコースだけでも受講する価値はあるでしょう。