深層学習超入門1視聴メモ

udemy視聴メモ

1 導入
深層学習について
深層学習では,特徴を”自動的に”学習できる
構成
- NNの基礎(MLP)
- CNN
- RNN

3 Tensor
PytorchとTesorflowが深層学習の2大フレームワーク
Pytorchが近年はより使われている。
Tensor
Pytorchで使われる多次元配列
深層学習の計算の核となるデータ構造
自動微分(Auto Grad)
ブロードキャスティング
演算する2つのtensorが同じ次元ではない場合,次元が少ない方が次元を増やすこ とで演算を可能にする
ブロードキャスティングのルールの考え方(アルゴリズム)は資料参照

4 ロジスティック回帰からニューラルネットワークへ
計算グラフにおける勾配の計算
分かりやすい説明
⭐
計算グラフを使った損失関数の勾配計算
⭐
Autograd
tensor生成時にrequires_grad=True
.backward()
中間ノードに対する勾配を保存したい場合は当該tensor に対して.retain_grad()を実行する

5 多項ロジスティック回帰とニューラルネットワーク
多項ロジスティック回帰
softmaxと交差エントロピー実装
⭐

6 ミニバッチ(Mini-batch)学習
バッチ勾配降下法
一度に全部のデータを使用して学習させる
ミニバッチ勾配降下法
サイズを指定したデータ量で学習させる
SGD(Stockastic Gradient Descent)
一つのデータずつ学習させる

7 MLP(Multi Layer Perceptron)
2層のニューラルネットワーク
⭐
活性化関数
隠れ層ではシグモイド関数やsoftmax関数を使うことは一般的ではないとのこと。
勾配が0になるところがあり学習が進まないから、とのこと。
ReLU関数(Rectified Linear Unit)
一般的に使用される活性化関数
入力が0以下の時は0を出力し,0以上の時は入力をそのまま出力する(0になるところがあり学習が進まない、という話は?)
負になるもの0になり計算はそこで終わり、伝搬されない、とのこと。計算効率の向上や過学習の向上になる。
Leaky ReLU
ReLUの一種で,入力が0未満の時でも小さな勾配を持つ
勾配を完全に無くさないことで,ある範囲の入力に対して出力が全く変わらな
い問題を防ぐ
勾配が0になる部分の学習が進まない問題を防ぐた上のような関数が発案された、とのこと。
MLP実装
⭐

8 誤差逆伝播(Backpropagation)
逆伝搬の実装
⭐⭐
回帰モデルの逆伝搬の実装
⭐⭐

9 GPU
tensor_instance.to('cuda')
tensor_instance.to('cpu')

10 nnモジュール
全結合層(FC層: Fully Connected)(nn.Linear)

11 Optimizer
パラメータの更新する部分をOpbmizerクラスにまとめる

12 DatasetとDataLoader

13 モデルの保存 / ロードとEarly Stopping
学習を終えたモデルを保存することで,他の環境で使ったり,実用化させ たり,他人に共有することができる
学習曲線において最も損失が小さいモデルを保存する
early stopping: 一定epoch損失がさがらなければ学習を終える
torch.save()
torch.load()
model.load_state_dict()
