训练损失不下降,拟合能力不足,欠拟合
模型结构和特征工程:
原因:模型结构过于简单或者不合理,训练时很难收敛,再者可能是特征工程出现问题
解决:检查模型结构是不是太小太简单和特征工程是否合理
权重初始化:
原因:不合理的权重初始化会导致收敛极慢,合理的权重初始化能改有极大改善
解决:选择适合自己模型的权重初始化,建议无脑xaiver normal
正则化:
原因:L1、L2、Dropout用来防止过拟合,一般一开始不用正则化,过拟合后再进行调整,如果一开始就正则,会导致调试困难
解决:使用BN,一定程度下有抑制过拟合的作用
损失函数、激活函数:
一般卷积层选用ReLU,来避免梯度消失,循环神经网络中一般选择Tanh,全连接多用ReLU,输出层多用Sigmoid或SoftMax
根据任务类型不同选择损失函数:分类任务一般选择交叉熵,回归任务选择MSE,对齐任务用CTC,生成任务用WGAN LOSS等
优化器、学习率
一般选择Adam,Adam效果不好的情况下选择SGD等其他方式
学习率决定了网络的训练速度,训练开始LR可以大一点,在趋于收敛时,减小学习率来找到最优解,一般按10的倍数增大或减小或选择自动更新的方案
训练时间:
计算量大,训练时间短
训练瓶颈:
梯度消失、神经失活过多、梯度爆炸、学习率过大过小
BatchSize过大过小
BS过小导致后期难以收敛,BS过大由于梯度平均导致前期收敛慢
数据集未打乱
数据集丰富度降低
数据集有脏数据
未进行归一化
训练损失不下降,拟合能力不足,欠拟合
训练损失不下降且验证损失不下降,训练有问题,欠拟合
训练损失下降但验证损失不下降,训练过拟合
-
选择合适的正则化方法,如L1、L2等
-
减少特征维度,去掉基本无关维度
-
降低模型复杂度
-
扩增数据集,增加数据丰富性