【メモ】どうやって過学習を防ぐか、汎化性能を上げるか

・自分で検索する時のタグ的なもの
深層学習、ディープラーニング機械学習
勾配爆発、勾配発散、勾配消失、汎化性能


個人的なリンク集のようなものです。
 
実装はKetasのSequencialモデルベースを基本的には想定

・基本
TensorFlow公式の解説
"過学習と学習不足について知る"
過学習と学習不足について知る  |  TensorFlow Core


・weight decay (正則化
[DL]weight decayって何? - Qiita
How to Use Weight Decay to Reduce Overfitting of Neural Network in Keras

・勾配クリッピング(これは過学習の抑制につながるのかは現状理解してない)
DNNの基礎知識についてのまとめ - Deep Learning 脱初心者めざして
↑ベージ全体もキーワードを拾う感じで、目を通しておきたい
How to Avoid Exploding Gradients With Gradient Clipping

・以下はLSTMの話
How to use Dropout and BatchNormalization in LSTM Networks (Keras) - Stack Overflow
python - Where do I call the BatchNormalization function in Keras? - Stack Overflow

LSTMだと、LSTMレイヤの中でのdropoutを指定するキーワード引数がある。
あと、BatchNormalizationはLSTMに限らないが、Denseなどの場合は、Activaion関数のレイヤを分けて、その間に入れるのが正しい?
BatchNormalizationをモデルに組み込む - Qiita
 
・その他参考
BatchNormalizationの解説と、Dropoutなども併せて考えた時にどう使うとよさそうか
Deep LearningにおけるBatch Normalizationの理解メモと、実際にその効果を見てみる - Qiita

過学習抑制「Weight Decay」はSGDと相性が良く、Adamと良くない?/Neural Network Consoleの使い方 - "BOKU"のITな日常
誰でもわかるニューラルネットワーク:正則化をテンソルフロープレイグラウンドで試してみた - Qiita
Batch Normalization:ニューラルネットワークの学習を加速させる汎用的で強力な手法 - DeepAge
各種正則化から転移学習まで。tensorflowソースコードで見るDL性能改善手法 まとめ(ver 2) - Qiita