训练集loss不下降
1.训练时间不足
解决方案:硬件加速(如GPU)。
2.batch_size过大
解决方案:缩小batch_size。
3.数据集未随机打乱
解决方案:打乱数据集。
4.数据集噪声过大
解决方案:调整数据集。
5.特征选取不合理
解决方案:调整选取特征。
6.未进行归一化
解决方案:归一化处理,通过放缩均匀特征分布。
7.权重初始化方案不合适
解决方案:更换权重初始化方案,常用全零、随机正态分布、随机均匀分布。
8.正则化过度,导致模型欠拟合
解决方案:不使用正则化,若出现过拟合,再根据实际情况进行调整。
9.dropout设置不合理
解决方案:不使用dropout,若出现过拟合,再根据实际情况进行调整。
10.激活函数不合适
解决方案:更换损失函数。卷积神经网络中常用ReLU,循环神经网络中常用tanh或ReLU,全连接层常用ReLU,输出层使用全连接层进行分类时使用softmax。
11.损失函数不合适
解决方案:分类任务常用交叉熵损失函数,回归任务常用均方误差,自动对齐任务常用CTC。
验证集loss不下降
若训练集loss正常下降,验证集不下降,则说明出现过拟合。解决方案主要有:
1.减少特征维度
2.获取更多样本或扩增数据集
3.正则化处理
4.使用dropout
5.降低模型规模
测试集loss不下降
若训练集和验证集loss都正常下降,测试集不下降,测试集的样本一般采用实际应用场景的样本,与在相同数据集中随机分配得到的训练集和验证集样本可能存在差异。解决方案:
1.缩小测试集样本与训练样本的差异,如在相同数据集中随机分配成训练集、验证集、测试集三部分(通常6:2:2)。
2.若测试集噪声较大,需要进行降噪处理或在训练数据集中添加噪声,