调参控制变量,每次调一个值。
1.初始化方式:FC/CNN用kaiming uniform或normalize,Emendding选截断normalize
2.activation function:sigmoid(淘汰)、tanh(淘汰)、relu(推荐)、leakey-relu
3.优化器:SGD+动量(对lr敏感,可以调很好 但很难)、Adma(对lr不敏感,容易上手 有上限)
4.lr:nlp在1e-5,cv在1e-3,最好多手动调。
5.Batch size:一般越大越好,GPU不行 使用累计梯度,太小不收敛。
6.Dropout:注意dropout rate,不一定默认值最好。
7.input序列用LN,input非序列用BN
8.基于backbone的层次化neck(如FPN/PAN) 优于 直接在最后输出的网络
9.reduce function中,attention 优于 简单的pooling
10.数据增强要根据任务具体设计。
正确的调参之路:先过拟合,再尝试减小模型复杂度,加正则化
防止过拟合
1.减小模型复杂度
2.relu
3.pooling
4.dropout
5.L2正则:深度学习在softmax处的loss函数中加。
6.BN