Open14

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

ta.toshiota.toshio

1 導入

深層学習について

深層学習では,特徴を”自動的に”学習できる

構成

  1. NNの基礎(MLP)
  2. CNN
  3. RNN
ta.toshiota.toshio

3 Tensor

PytorchとTesorflowが深層学習の2大フレームワーク

Pytorchが近年はより使われている。

Tensor

Pytorchで使われる多次元配列
深層学習の計算の核となるデータ構造
自動微分(Auto Grad)

ブロードキャスティング

演算する2つのtensorが同じ次元ではない場合,次元が少ない方が次元を増やすこ とで演算を可能にする

ブロードキャスティングのルールの考え方(アルゴリズム)は資料参照

ta.toshiota.toshio

4 ロジスティック回帰からニューラルネットワークへ

計算グラフにおける勾配の計算

分かりやすい説明

計算グラフを使った損失関数の勾配計算

Autograd

tensor生成時にrequires_grad=True
.backward()

中間ノードに対する勾配を保存したい場合は当該tensor に対して.retain_grad()を実行する

ta.toshiota.toshio

5 多項ロジスティック回帰とニューラルネットワーク

多項ロジスティック回帰

softmaxと交差エントロピー実装

ta.toshiota.toshio

6 ミニバッチ(Mini-batch)学習

バッチ勾配降下法
一度に全部のデータを使用して学習させる

ミニバッチ勾配降下法
サイズを指定したデータ量で学習させる

SGD(Stockastic Gradient Descent)
一つのデータずつ学習させる

ta.toshiota.toshio

7 MLP(Multi Layer Perceptron)

2層のニューラルネットワーク

活性化関数

隠れ層ではシグモイド関数やsoftmax関数を使うことは一般的ではないとのこと。
勾配が0になるところがあり学習が進まないから、とのこと。

ReLU関数(Rectified Linear Unit)
一般的に使用される活性化関数
入力が0以下の時は0を出力し,0以上の時は入力をそのまま出力する(0になるところがあり学習が進まない、という話は?)

負になるもの0になり計算はそこで終わり、伝搬されない、とのこと。計算効率の向上や過学習の向上になる。

Leaky ReLU

ReLUの一種で,入力が0未満の時でも小さな勾配を持つ
勾配を完全に無くさないことで,ある範囲の入力に対して出力が全く変わらな
い問題を防ぐ

勾配が0になる部分の学習が進まない問題を防ぐた上のような関数が発案された、とのこと。

MLP実装

ta.toshiota.toshio

8 誤差逆伝播(Backpropagation)

逆伝搬の実装

⭐⭐

回帰モデルの逆伝搬の実装

⭐⭐

ta.toshiota.toshio

13 モデルの保存 / ロードとEarly Stopping

学習を終えたモデルを保存することで,他の環境で使ったり,実用化させ たり,他人に共有することができる
学習曲線において最も損失が小さいモデルを保存する
early stopping: 一定epoch損失がさがらなければ学習を終える

torch.save()
torch.load()
model.load_state_dict()