初探深度學習使用 Keras part 2
CSDN - 對 Dropout 的詮釋 組合派 (Ensemble) overfitting → 參數量過多 → 找到一個比較瘦的網路可能可以降低 overfitting 的程度 → 手動或使用 Grid- Search? 太慢 → 使用 Dropout 使學習時隨機打斷一些連結 → 可以解決費時的問題,把重要的連結權重增 加;不重要的減輕 → 重新組合起來後 (Inference phase) 自然會是一個以權重定義後的瘦網路。 動機論 (有豬隊友) overfitting → 有人 (參數/連結) 濫竽充數 → 隨機將某些人 (神經元) 分成數組 → 各組學會懂得自立自強 → 重新組合後 (Inference phase) 會比原本更強大。 參考連結: 理解 Dropout – CSDN Dropout in Deep Learning 知乎 - BatchNorm 的原理與實戰 背景: 為什麼神經網路這麼不穩定 → 神經網路各層間的映射頻繁的變換 (Internal Covariate Shift) Internal Covariate Shift 的問題 網路在初期需要透過不斷大幅調整來適應輸入的分布變化 深層網路的梯度消失/爆炸問題使分布更加不穩 解法 在各層網路中的各特徵軸 (channel) 單獨進行標準化,使其變為分布平均為 0, 變異數為 1 的分布,再加上 平移與縮放,就可以表示原本的分布。 參考連結: 為何要使用 Batch Normalization – 莫煩 python Batch normalization 原理與實戰 – 知乎 CSDN - Earlystopping 的使用與技巧 為何要使用 EarlyStopping:繼續訓練會導致測試集準確率下降。 過度擬合 學習率過大導致不收斂 使用 Regulizers 時,Loss 減少未必是準確率上升,可能是 weights 變少而已。 EarlyStopping 可以監控的項目 acc, val_acc, loss, val_loss, ...etc 等 loss 與 metrics 有時候要監控的項目不是越小越好