深度学习调参策略
欠拟合:(欠拟合是指模型不能在训练集上获得足够低的误差。)
-
导致欠拟合的原因:
模型复杂度不足
数据量不足
特征选择不当
训练时间不足
-
解决策略:
更换模型
增加模型复杂度
在模型中增加特征
过拟合:(过拟合是指模型在训练集上表现很好,但在测试集上却表现很差。)
-
导致过拟合的原因:
训练数据集样本单一,样本不足
训练数据中噪声干扰过大
模型过于复杂。
-
解决策略:
获取和使用更多的数据(数据增强)
降低模型复杂度
正则化
dropout
提前终止
看loss识性能:
train loss 不断下降,test loss不断下降,说明网络在不断学习
train loss 不断下降,test loss趋于不变,说明网络可能过拟合
train loss 趋于不变,test loss不断下降,说明数据集存在问题
train loss 趋于不变,test loss 趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目
train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题
超参数优化:
learning rate(学习率):
当学习率设置的过小时,收敛过程将变得十分缓慢。
而当学习率设置的过大时,梯度可能会在最小值附近来回震荡,甚至可能无法收敛。
自然语言处理类模型设置在1e-5级别附近
计算机视觉类模型在1e-3级别附近
可以采用warmup、余弦衰减、等策略,可以设置动量
batch size(批量大小):
在深度学习中,每次训练在训练集中一次性取batch size个样本训练。因为GPU的线程一般为 2 n 2^n 2n,batch size大小一般设置为 2 n 2^n 2n(64,128),以使得GPU内部的并行计算效率最高。
batch size较小,训练速度慢、占用内存低。泛化能力上升。准确率上升速度慢,但是实际使用起来精度较高。
batch size较大,训练速度快、占用内存高。泛化能力下降。准确率上升速度快,但是实际使用起来精度不高。
epoch:
1个epoch等于使用训练集中的全部样本训练一次,epoch的值就是整个数据集被训练几次。