構建CNN網絡需要注意問題
數據預處理(均值,方差, 人臉歸一化。。。), 數據增強【放射變換、運動模糊、高斯濾波模糊類,增加噪聲類, 色彩/飽和度/亮度調整類、 Flip類,Crop類】 這些都是根據實際的應用場景選擇。
1.參數多少問題 [卷積核大小,通道數,卷積方式:conv / depthwiseconv / 空洞卷積 激活函數 PRelu]
2.Flops計算量問題 【參數多並一定是運算量多, 網絡前期的運算量一般較大】
3.模型深度【泛化能力】 【pooling網絡的時候記得 增加filter數量,防止數據過多丟失】
4.Batch Normalize 利於網絡收斂 【解決梯度消失/爆炸問題, 後期BN直接融合到 Conv 裏面】
5.Loss函數選擇 【Logisic / 交叉熵 / SmoothL1/ 平方差 交叉熵其實原本是KL離散度,因爲信息熵固定】
6.正則化選擇 L2 / L1 【L2 是權重W的值都比較小,減小輸出跳變,值更穩定所以泛化能力更好,L1導致W更稀疏, 從(0-1)的梯度介紹區分】
7.優化函數、SGD / SGD+momument / Adam 【一般選擇 SGD+Momument 避免鞍點不下降 。 無腦用Adam下降速度較快,但是目前的Adam還存在問題,效果沒有SGD+Momument的效果好】
8.權重初始化方法 、 學習率大小
備註: