機械学習第10章
チューニング技法
本章では、画像認識を対象としたCNNのチューニングをテーマとしている
重要概念
ニューラルネットワークの多層化
最適化関数の改善
過学習対策
最適化関数の改善
momentum
code:python
optimizer = optim.SGD(net.parameters(), lr=lr, momentum=0.9)
Adam
code:python
optimizer = optim.Adam(net.parameters())
過学習対策
ドロップアウト
学習の回ごとに学習に参加する入力要素を入れ替えることにより、満遍なく重み情報が行き渡る
Batch Normalization
ミニバッチ学習法をしているときに、ミニバッチの単位で前のレイヤー関数の出力に対して正規化の処理をした後、次のレイヤー関数の入力にする
畳み込み処理中はnn.BatchNorm2d、線形関数の直後はnn.BatchNorm1dを利用する。
インスタンス生成時には整数パラメータを1つとる。値はnn.BatchNorm2dのときは入力データのチャネル数、nn.BatchNorm1dの時は入力データの次元数
学習対象のパラメータとしてweightとbiasを持っている
ドロップアウト関数と同様に訓練フェーズと予測フェーズで挙動が異なる
Data Augmentation
学習前の入力データに加工を施すことで、結果的に学習データのバリエーションを増やす手法
豊富な加工機能がある
transformに機能を追加すればOK
階層を深くすると最適化関数も工夫する必要がある
ドロップアウトは学習にかかる時間が長くなる
機械学習1章・2章
機械学習3章
機械学習第6章
機械学習第7章
機械学習第8章
機械学習第9章