ディープラーニング(Deep Learning、深層学習)の勉強カリキュラム
公開されているハンドアウトと演習問題の主なトピックだけですが、海外の大学院のDeep Learning のコースでやったことをまとめておきます。データサイエンスを勉強するにあたって、ディープラーニングに関してはこの程度やるものなのか、という感覚がつかんでいただけたらと思います。
授業の流れ。
-
基本的なこと(機械学習の基本的な部分の復習) ニューラルネットワーク、確率的勾配降下法(SGD)、損失関数など。
-
分類回帰の違い、ソフトマックス関数の説明、SGDの具体的な数値のある手計算
-
Deep Forward Network(DFN) 一般的なモデルの説明、他クラス分類の損失関数
-
forward pass 具体的な数値のある手計算
-
DFNの逆誤差伝播法back propagation
-
back propagation 具体的な数値のある手計算
-
正則化(Regularization)、weight decay、 データオーグメンテーション、dropout
-
L1ノルムで正則化 具体的な数値のある手計算
-
最適化(Optimization)、momentum, nestrov momentum、adagrad、adam
-
Adagradを使ったSGDの具体的な数値のある手計算、XORスクラッチにAdagrad実装
-
CNNのfoward pass, back propagation 具体的な数値のある手計算
-
RNN、LSTM
-
RNNのfoward pass、LSTMのfoward pass
-
オートエンコーダ(AE) 普通のAE,スパースAE、その他AE(デノイズAEなど)
-
AEのovercomplete 、PCAとの違いなどの説明、スパースAEの微分の手計算
-
Generative Adversal Network(GAN)
-
Minimax、GANの勾配上昇法、Back propagation
-
その他応用、Batch Normalization, ResiNet,DenseNetなど
基本的には下の教科書を元にしています。演習については実装にうつせるように3層程度で具体的な行列的な計算をさせるものが多かったです。
ちょっとウェブ検索する限り、courseraや下の青い本などを使って勉強している方が多いようなのですが、この青い本では通常のNN、CNN、RNN、オートエンコーダ、あとは応用というまとめ方をしているようです。