训练集在训练过程中,loss稳步下降,准确率上升,最后能达到97% 验证集准确率没有升高,一直维持在50%左右(二分类问题,随机概率) 测试集准确率57% 在网上搜索可能打的原因: 1.learning rate太小,陷入局部最优
2.训练集和测试集数据没有规律
3.数据噪声太大
4.数据量太小(总共1440个样本,80%为训练集)
5.训练集和测试集数据分布不同:如训练集正样本太少(训练集和测试集每次运行随机选择,故排除)
6.数据集存在问题,如标注有问题(采用公开数据集,排除)
7.学习率过大
8.模型参数量过多而数据量过少
9.过拟合,数据量太小但是模型的结构较为复杂 解决办法:降低模型的复杂度,增大L2正则项,在全连接层加入Dropout层;有了dropout,网络不会为任何一个特征加上很高的权重(因为那个特征的输入神经元有可能被随机删除),最终dropout产生了收缩权重平方范数的效果
10.输入到网络中的特征有问题,特征与label之间没有很明确的关联,或特征太少
11.数据没有归一化
12.修改学习率,使得每次梯度下降低于某个值或者停止下降时,降低学习率,来使得梯度进一步下降。(我使用该方法,使得问题得到解决)
欢迎留言讨论~ ^ _ ^