正则化(L1和L2范数)

本文探讨了正则化在防止过拟合中的作用,特别是L1和L2范数的应用。L1范数通过使部分权重趋于零实现参数稀疏,而L2范数通过权重衰减避免复杂模型。正则化不仅限于这两种形式,还包括Dropout、批量归一化等其他方法来提高模型的泛化能力。
摘要由CSDN通过智能技术生成

说实话,这么后才来写正则化是挺奇怪的。

相信大家都知道损失函数,是用来描述我们模型与训练数据之间的差距(即是否能准确拟合训练数据)。但其实我们真正在实战用的是目标函数。目标函数的构造是:损失函数+正则化。

参考
https://blog.csdn.net/zouxy09/article/details/24971995 (大神)
http://www.cnblogs.com/ooon/p/4964441.html
https://blog.csdn.net/li8zi8fa/article/details/77649973

为什么需要正则化

我们先来假设,如果分类时我们的损失 Loss=0 L o s s = 0 出现的情况。那就是,对于每一个训练的数据,我们都能正确输出它的类别。这听起来很好,是百分百的正确。但事实上,我们应用这个模型的场景并不是训练的数据,而是测试的数据。因此我们把这个问题称为过拟合(Overfitting)

我们可以换个说法。假如我们想训练猫这个分类,但是我们刚好训练集都是橘猫,如果我们过拟合了,它提取的特征不再是猫身,猫尾这些形状,反而会执着于提取肥硕的猫身(哈哈哈哈),黄色的尾巴。但其实我们更想让它适应的范围变大(泛化能力变强),即检测猫这个分类的特征而不是橘猫的特征。所以我们加入了正则化,来使得这个模型不会过拟合。

https://www.zhihu.com/question/32246256 知乎有很多搞笑生动的例子。

这里写图片描述
来自百度百科

正则化这部分,在斯坦福的CS231n也被称为惩罚项。而且Johnson讲了个另外一个说法。像上图那样,其实过拟合的实质原因是提取的参数太多了太复杂了,而我们加入正则化之后,会抵消部分的参数,这样可以简化这个模型(泛化能力加强)。

怎么正则化

按照我们一开始的描述,就是不仅仅使用损失函数,而是加上一个正则化的部分让它变成目标函数。而我们minimize的值是目标函数值。那么权重为:

w^=argminwi=1loss(yi,f(xi;w))+λL(w) w ^ = a r g m i n w ∑ i = 1 l o s s ( y i , f ( x i ; w ) ) + λ L ( w )

后边的那部分就是惩罚项,前面有个参数 λ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值