ディープラーニング

Courseraのdeep learningコースを全受講した感想

こんにちは。 Dr.レオです。
卒後15年目で外傷整形外科医として3次救急病院で働いています。
生体工学や画像解析の研究をしながら、手術計画など臨床でもプログラミングをフル活用しています。

私自身いくつかディープラーニングのオンライン講座を受けましたが、その上で感じたことは、

やはりCourseraのDeep Learning講座は素晴らしい

ということです。

↑ Courseraの「Deep Learning専門講座」

 

私自身は2019年の11月にこの講座をすべて受けました。

コースを修了するとこんな修了証がもらえます。

無料受講ではもらえません。
私はどうしても「プログラミング課題」をやりながら受講したかったので、登録して受講しました。

この講義の後の2年間の間にもいくつか講座は受けていますが、根本で役に立っているのはCourseraのAndrew先生の講座です。
あらためて感じた感想を述べたいと思います。

CourseraのDeep Learningコースの良い点
  • 授業をするAndrew Ng先生がとにかくわかりやすい
  • 講師が1人なので一貫している
  • 基礎から教えてくれる
  • ツールではなく理論をしっかり教えてくれるため面白い
CourseraのDeep Learningの辛いところ
  • 基本から講義するため、すぐに使いたい人には向いていない
  • プログラミングの練習問題は講義をある程度まとめてやってからまとめて行う
  • プログラミングの演習が結構難しい
  • 機械学習から入ると、プログラミング言語がOctave

1.Courseraのディープラーニング講座について

Courseraのディープラーニング講座は

  1. ニューラルネットワークとディープラーニング
  2. ニューラルネットワーク改善パラメータチューニング
  3. モデルの評価とそれに基づく改善方法
  4. CNN(畳み込みニューラルネットワーク)を使用した画像解析
  5. RNN(リカレントニューラルネットワーク)を使用した言語認識

から構成されています。
 
使用プログラミング言語はPythonです。

この講座の一つ前のコースとして、Courseraコースの
Machine Learning(機械学習)
がありますが、
このコースの言語は
Octave
というPythonに似てますが、ちょっと違う言語を使用しています。

そのため、私は
Machine Learningをニューラルネットワークまでを受講し、
その後にDeep Learningのコースに乗り換えました。

教科書併用すれば最初からDeep Learningでも大丈夫だと思います。
Octaveは課題提出にもクセがあり、新しく学ぶのは結構ストレスです。

2. 講師のAndrew Ng先生がわかりやすい

Andrew Ng先生は数あるオンラインコースの中でも最も授業がわかりやすい先生です。

 Deep Learning専門講座は5個のテーマがありますが、全てAndrew Ng先生が講義をします。
1人で書き込みスライドを使って行ってくれるタイプの授業です。

「それぞれ分野ごとの専門講師じゃないの?」

って思うかも知れませんが、

このAndrew先生の講義がとにかくわかりやすいです。

神レベルといっても過言ではありません。

講義自体はYouTubeでみれます。

Deep Learning.Aiの授業(YouTube)

「Deep Learning」

というと

行列計算、微分、プログラミング

という一つでも敬遠したくなるような分野の集まりですが、

基礎の基礎から大変わかりやすく教えてくれます。
「なぜ画像を見分けられるのか」
「ディープラーニングでどんな事ができるのか」
始めは想像もつきませんでしたが、
すごく面白く理解していくことができました。

講師が1人のため、表現が違ったり、知識の補充が必要だったりすることがありません。
このAndrew先生の講義を受けられるだけでも、大きなオススメポイントです。

3.基礎から積み上げていく形式で行われる

他のオンラインコースの多くは、概念的なところだけ話をしてから

「この計算はKerasがやってくれます」
「ここはPyTorchのツールが便利です」
「細かいところは知らなくてもできるけど、論文紹介しときます」

といった感じです。

計算に関してはほぼブラックボックスです。

一方、Courseraのコースは原理の部分をなるべく教えようとしてくれます。

言い換えると、なるべく1度は計算式から答えを出すプロセスを通ります。
例えば、ニューラルネットワークで
ランダムなパラメータを入れる

forward propagationから損失関数を計算

損失関数からbackward propagationでパラメータを調節

forward propagationで損失関数を計算

以上を繰り返す

という演習を行い、
実際にx, y, dw, db, Lなど変数を定義してプログラムで計算します。

そしてさらに、
CNNやRNNでもforward propagation、backward propagation、損失関数のプロセスを計算します。
単純なモデルであっても、計算をやったことがないのとあるのとではパラメータ数や損失関数などに関しての理解が圧倒的に違います。

「そんなの無理!」

って思いそうですが、Andrew先生はこれらのプロセスを一つずつわかりやすく教えてくれます。
また、微分の難しい話などは

「ここは得意な人は自分で計算してみればいいけど」
といってうまく飛ばしてくれます。

ギリギリわかりやすいところを通るのがとても上手です。

基礎から積み上げて計算するという点では、
この教科書に近いです。

4. 受講するだけなら無料

この講義は受講するだけなら無料です。

ただ、プログラミングでは自分で記載することが勉強になるので、

「できればプログラミング課題込みで受講した方がよい。」

というのが私の意見です。

このプログラミング課題ですが、「Jupyter Notebook」という、ホームページ上にPythonのテキストを書いていくような形式で行われます。

他におすすめしているプログラミングスクールの「DataCamp」や「Progate」では穴埋め形式であるのに対して、この講座では

w1 = NONE
w2 = NONE
b1 = NONE
b2 = NONE
loss = NONE
NONEに入る式を書きなさい

みたいな感じでがっつりと式を書かされる問題が多いです。

CourseraのDeep Learning専門講座のまとめ
  • Python、AI初心者でも基礎から教えてくれる専門講座
  • 講師のAndrew Ng先生のわかりやすさは神レベル
  • プログラミング演習は難易度が高いがやる価値あり
難しい内容を優しく教えられる人ってすごいですよね。
今でも初学者には第一選択でおすすめしています。

↑ Courseraの「Deep Learning専門講座」オススメです