一、过拟合问题
- 欠拟合:通过上面的图片可以看出,将数据分为训练集和测试集,如果训练集训练的模型没有很好的表现数据的特点(可能是由于选取的特征太少或者选的特征不具代表性)。
- 过拟合:与欠拟合相反,训练集训练的模型太过仔细而导致在对测试集进行预测的时候表现不佳。
- 下面我来举个例子来便于理解:
1.打个形象的比方,给一群天鹅让机器来学习天鹅的特征,经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的弯曲的,天鹅的脖子是长长的有点曲度,天鹅的整个体型像一个“2”且略大于鸭子.这时候你的机器已经基本能区别天鹅和其他动物了。
2.然后,很不巧你的天鹅全是白色的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅.
3.好,来分析一下上面这个例子:(1)中的规律都是对的,所有的天鹅都有的特征,是全局特征;然而,(2)中的规律:天鹅的羽毛是白的.这实际上并不是所有天鹅都有的特征,只是局部样本的特征。机器在学习全局特征的同时,又学习了局部特征,这才导致了不能识别黑天鹅的情况.
转自知乎:https://www.zhihu.com/question/32246256/answer/55251597
- 这表示学到的特征的权重由于样本的原因可能不是很准确,泛化能力比较差。使用正则化可以提高模型的泛化能力。
1. 过拟合产生的原因
-
假设过于复杂(注意奥卡姆剃刀原则);
-
数据存在很多噪音;
-
数据规模太小。
2. 过拟合的解决方法
-
early stopping:采用交叉验证,设置一个k值,当连续k轮验证集上的指标都不上升时,停止训练
-
数据集扩增:
(1)从数据源头采集更多数据;
(2)数据增强:复制原有的数据并加上随机噪声。图像可以旋转,改变尺寸等;
(3)重复采样;
(4)根据当前估计数据分布参数,使用该分布产生更多数据。 -
正则化: 如L1正则化,L2正则化等
-
Dropout: 每轮一定比例删除输入特征
-
增加BN层
3. 正则化方法
- 正则化将一些不重要的特征的权值置为0或权值变小,使得特征的参数矩阵变得稀疏,参考上面的例子,它使模型变得简单,有效的规避了局部特征。
- 我们将不带正则化项的机器学习问题的cost function定义如下:
min w ∑ i = 1 n ( h w ( x i ) − y i ) 2 \min_w \displaystyle\sum_{i=1}^n (h_w(x_i)-y_i)^2 wmini=1∑n(hw(xi)−yi)2 - 其中hw(xi)是模型的预测值,yi是真实值,xi是模型输入,w是模型的参数,也是需要训练参数,N是样本的总数。
- hw(xi)可以是线性回归,可以是神经网络,也可以是很多监督学习的模型,总之是需要通过求解该极小化问题来得到模型里面的参数w。
3.1 范数
- 正则化的目的是限制参数过多或者过大,避免模型更加复杂。例如,使用多项式模型,如果使用 10 阶多项式,模型可能过于复杂,容易发生过拟合。因此需要在目标函数添加一些额外的惩罚项,即正则项。添加惩罚项可看成是对损失函数中的某些参数做一些限制,根据惩罚项的不同可分为:L0范数惩罚、L1范数惩罚(参数稀疏性惩罚)、L2范数惩罚(权重衰减惩罚)。
- 假设 x 是一个向量,它的 Lp 范数定义:
∥ x ∥ p = ( ∑ i ∣ x i ∣ p ) 1 p \lVert x\rVert_p=(\sum_{i} \lvert x_i \rvert ^p){\frac {1}{p}} ∥x∥p=(i∑∣xi∣p)p1
3.2 L1正则和L2正则
- 我们将上述的cost function加上正则化项:
min w ∑ i = 1 n ( h w ( x i ) − y i ) 2 + λ ∑ j = 1 m ∣ x i ∣ q \min_w \displaystyle\sum_{i=1}^n (h_w(x_i)-y_i)^2 + \lambda \displaystyle\sum_{j=1}^m \lvert x_i \rvert ^q wmini=1∑n(hw(xi)−yi)2+λj=1∑m∣xi∣q - 当q为1时,正则化项为L1正则,对应惩罚项为L1 范数;当q为2时,正则化项为L2正则,对应惩罚项为 L2 范数。
- L1正则化是指权值向量中各个元素的绝对值之和,L2正则化是指权值向量中各个元素的平方和然后再求平方根。
- L1正则与L2正则的比较:
- 考虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:
通过可视化可以很明显的发现,使用L1正则化在取得最优解的时候w1的值为0,相当于去掉了这一个特征。而使用L2正则化在取得最优解的的时候其都有值。
结论:
- 考虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:
L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适。
原文链接:https://blog.csdn.net/bigbigship/article/details/51802599