参考https://blog.csdn.net/liujiandu101/article/details/55103831
参数惩罚:
在损失函数中加入L1,L2范数惩罚项,或使用可以将L1和L2结合起来的ElasticNet回归。
其中L1正则可同时起到特征选择的作用:当L1正则在参数w比较小的情况下,能够直接缩减至0.因此可以起到特征选择的作用,该技术也称之为 LASSO。
L2也可称为岭回归(Ridge)
一般对偏置项不加约束。主要原因是偏置项一般需要较少的数据就能精确的拟合。如果添加约束常常会导致欠拟合。
数据集扩充:
搜集更多数据
防止过拟合最有效的方法是增加训练集合,训练集合越大过拟合概率越小。数据集合扩充是一个省时有效的方法,但是在不同领域方法不太通用。
1. 在目标识别领域常用的方法是将图片进行旋转、缩放等(图片变换的前提是通过变换不能改变图片所属类别,例如手写数字识别,类别6和9进行旋转后容易改变类目)
2. 语音识别中对输入数据添加随机噪声
3. NLP中常用思路是进行近义词替换
4. 噪声注入,可以对输入添加噪声,也可以对隐藏层或者输出层添加噪声。例如对于softmax 分类问题可以通过 Label Smoothing技术添加噪声。
DropOut
Dropout在训练过程中,随机的丢弃一部分输入,此时丢弃部分对应的参数不会更新。相当于Dropout是一个集成方法,将所有子网络结果进行合并,通过随机丢弃输入可以得到各种子网络。
优点:比上述其他正则化方法更有效;计算复杂度低,实现简单,可用于其他非深度学习模型;训练过程中的随机过程不是充分条件也不是必要条件,可以构造不变的屏蔽参数,也能得到足够好的解。
缺点:训练数据较少时,效果不好。
提前停止
在模型训练过程中经常出现随着不断迭代,训练误差不断减少,但是验证误差减少后开始增长。
提前停止(Early Stopping)的策略是:在验证误差不在提升后,提前结束训练;而不是一直等待验证误差到最小值。
提前停止策略使用起来非常方便,不需要改变原有损失函数,简单而且执行效率高。
但是它需要一个额外的空间来备份一份参数。
提前停止策略可以和其他正则化策略一起使用。
提前停止策略确定训练迭代次数后,有两种策略来充分利用训练数据,一是将全量训练数据一起训练一定迭代次数;二是迭代训练流程直到训练误差小于提前停止策略的验证误差。
对于二次优化目标和线性模型,提前停止策略相当于L2正则化。
集成化方法:
bagging,boosting(不确定,因为boosting减小偏差,应该是欠拟合的解决方案?)
Bagging的策略很多,例如不同初始化方法、不同mini batch选择方法、不同的超参数选择方法;
(Boosting,通过改变样本权重来训练不同模型。)
半监督学习:
适用于训练集很小,监督学习得到的模型效果不能满足需求的情况。