正则化

正则化的目的

在机器学习中,由于各种原因,如正负样本数目不平衡,特征数目过多等都可能导致过拟合现象。正则化的目的就是为了防止过拟合现象,通过以下两种方式:

  • 去除不必要的特征(将其weight置为0)
  • 惩罚不重要的特征
![多种拟合现象](https://img-blog.csdnimg.cn/img_convert/7a075b66eeec414d7837668ef2213c2c.png)

如上图从左到右分别为欠拟合,合适的拟合,过拟合,欠拟合可能是样本数目太少或者特征个数过少导致的。主要分析一下过拟合的现象。

  1. 打个形象的比方,给一群天鹅让机器来学习天鹅的特征,经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的弯曲的,天鹅的脖子是长长的有点曲度,天鹅的整个体型像一个“2”且略大于鸭子.这时候你的机器已经基本能区别天鹅和其他动物了。
  1. 然后,很不巧你的天鹅全是白色的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅.
  2. 好,来分析一下上面这个例子:(1)中的规律都是对的,所有的天鹅都有的特征,是全局特征;然而,(2)中的规律:天鹅的羽毛是白的.这实际上并不是所有天鹅都有的特征,只是局部样本的特征。机器在学习全局特征的同时,又学习了局部特征,这才导致了不能识别黑天鹅的情况.
    转自知乎:
    链接:https://www.zhihu.com/question/32246256/answer/55251597

这表示学到的特征的权重由于样本的原因可能不是很准确,泛华能力比较差。使用正则化可以提高模型的泛华能力。

正则化可以避免过拟合的原因

正则化将一些不重要的特征的权值置为0或权值变小,使得特征的参数矩阵变得稀疏,参考上面的例子,它使模型变得简单,有效的规避了局部特征。

参数值越小模型越简单的原因:

为什么参数越小,说明模型越简单呢,这是因为越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

正则化方法

L 0 L_0 L0范数

L 0 L_0 L0范数是指向量中非0的元素的个数,
0 0 = 0 0^0=0 00=0
∥ X ∥ 0 = ∑ i = 0 n x i 0 \lVert{X}\rVert_{0}=\sum_{i=0}^{n}x_i^{0} X0=i=0nxi0
使用 L 0 L_0 L0范数来做正则化项,可以使特征稀疏,也可以很好的做出特征选择,缺点是求解比较麻烦。

### L 1 范 数 L_1范数 L1

L 1 L_1 L1范数是指向量中各个元素绝对值之和,
∥ X ∥ 1 = ∑ i = 0 n ∣ x i ∣ \lVert{X}\rVert_{1}=\sum_{i=0}^{n}|x_i| X1=i=0nxi
matlab调用函数norm(x, 1) , L 1 L_1 L1范数是各个参数的绝对值相加得到的,参数值大小和模型复杂度是成正比,因此模型越复杂, L 1 L_1 L1范数就越大,损失函数就越大,模型就越差。
使用 L 1 L_1 L1范数可以实现特征稀疏,它比 L 0 L_0 L0范数的优点是容易求解,因此通常都使用 L 1 L_1 L1范数做正则化项而不是 L 0 L_0 L0范数。

L 2 L_2 L2范数

L2范数是各参数的平方和再求平方根,
∥ X ∥ 2 = ∑ i = 0 n x i 2 \lVert{X}\rVert_{2}=\sqrt {\sum_{i=0}^{n}x_i^2} X2=i=0nxi2
L 2 L_2 L2范数做正则化项,可以使得特征weight向量的每个元素都很小,都接近于0,但与 L 1 L_1 L1范数不同,它不会让它等于0,而是接近于0,而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。

L 1 L_1 L1正则化与 L 2 L_2 L2正则化的比较

对于L1和L2规则化的代价函数来说,我们可以写成以下形式:
Lasso
m i n w 1 n ∣ Y − W τ X ∣ s . t . ∥ W ∥ 1 ≤ C min_w \frac{1}{n}|Y-W^{\tau}X| \qquad s.t.\lVert{W}\rVert_{1} \le C minwn1YWτXs.t.W1C
Ridge
m i n w 1 n ∣ Y − W τ X ∣ s . t . ∥ W ∥ 2 ≤ C min_w \frac{1}{n}|Y-W^{\tau}X| \qquad s.t.\lVert{W}\rVert_{2} \le C minwn1YWτXs.t.W2C

虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:

![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/f00eff0ec6bf1f2c9d8311eb551b01f7.png)
通过可视化可以很明显的发现,使用$L_1$正则化在取得最优解的时候$w^1$的值为0,相当于去掉了这一个特征。而使用$L_2$正则化在取得最优解的的时候其都有值。 结论: >L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适。

##Reference

  • http://blog.csdn.net/zouxy09/article/details/24971995
  • https://www.zhihu.com/question/20700829
  • http://blog.csdn.net/vividonly/article/details/50723852
  • http://blog.csdn.net/acdreamers/article/details/46238119

更多信息/快速联系博主

在这里插入图片描述

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值