一、过拟合和欠拟合问题
过拟合定义:模型在训练集上表现良好,但在测试集上表现不好
过拟合原因:
1.原始特征过多,存在一些噪声特征,而模型过于复杂,学习能力过强,捕获了这些错误特征,从而影响了预设的分类规则。
2.训练样本太少,而模型很复杂
欠拟合定义:模型在训练集和测试集上表现的都不好
欠拟合原因:
1.模型复杂度过低,无法对数据进行很好的拟合
2.学习到的数据特征过少
二、如何解决过拟合和欠拟合问题
过拟合解决方法:
1.增加训练数据量或使用数据增强
这样可以减少噪声的影响,可以让模型学习到更多的数据一般特征。
2.使用正则化约束
在代价函数后面添加正则化项,可以避免训练出来的参数过大而使模型过拟合。常用的正则化有L1正则化和L2正则化,具体使用哪种视情况而定。
3.调整参数和超参数
不论什么情况调参都是必须的
4.降低模型的复杂度
5.使用Dropout
降低神经元之间的联合适应性,增强了泛化能力。一般用在全连接层,卷积层一般不用(原因是,卷积层参数较少,一般不易过拟合)
6.提前结束训练
训练时,如果随着迭代次数增加,验证误差不降低反而增加时,就可以提前结束训练了
欠拟合解决方法:
1.增加模型的复杂度
因为模型欠拟合,有可能是因为模型太简单,而学习不到足够的辨别特征
2.增加样本有效特征数,使输入数据具有更强的表达能力。
因为欠拟合是因为学习到的特征比较少,所以要增加输入的特征质量和数量
3.调整参数和超参数
神经网络中的:学习率,学习衰减率,隐藏层数,隐藏层单元数,batch_size大小,Adam优化算法中的β1和β2参数。
4.降低正则化参数,或者直接去除。
正则化是为了防止模型过拟合,现在都欠拟合了,所以可以削弱或者直接删除正则化。