CNN中的小tips(3)---《l1,l2正则化为什么可以减轻过拟合现象》

过拟合现象发生的原因:
过拟合现象:由于神经网络的学习能力过于强大,以至于学到了训练样本中一些不太一般的特点,从而导致模型的泛化能力变差!
本质原因:由于监督学习问题的不适定:可以这样理解,高数中我们通过n个方程求解n个变量,当用这n个方程求解n+1个变量时,就会求解不出来;在监督学习中,我们给定的数据(方程)远远少于模型空间中的变量(变量的个数)。
而且模型越复杂,越容易过拟合!

因此过拟合的发生,可以分为以下三点:
这里写图片描述
注意上文中所提到的“模型空间”,其实对应了大多数文章中所写的“模型复杂度”,指的是可以选择模型的数量特别多,过于复杂,并不是模型本身长得复杂;
正则化为什么能够避免过拟合:因为正则化就是控制模型空间的一种方法!
定义:
通过降低复杂模型的复杂度来防止过拟合的规则被称为正则化!
l1正则化:通过对损失函数加上所有权重值的绝对值来惩罚损失函数;
l2正则化:通过对损失函数加上所有权重值的平方来惩罚损失函数!

来源(存在的必要性):
过拟合现象发生的原因在于模型太过复杂,,“奥卡姆剃刀”或者“奥康的剃刀”,即“若无必要,勿增实体”,即“简单有效原理”,而l1正则化和l2正则化都是为了再向l0正则化逼近,即为了使模型变得简单有效,因此符合“奥卡姆剃刀”原理,这样可以使得模型变得简单有效!(哈哈,皮一皮,很开心!
1、最优化问题角度理解
模型的复杂度可以用VC维来衡量,而通常情况下,模型VC维与系数w的个数呈线性关系:w越多,VC维度越大,模型越复杂。因此,为了限制模型的复杂度,我们自然考虑减少w的个数,即让w向量中一些元素为0或者说限制w中非零元素的个数。因此我们可以在原本的优化问题上面加上一个约束条件:
即||w||0<=C(0代表下标,即参数w的0范数),由于这个问题求解十分困难,因此我们采用近似效果进行求解,即让w尽可能接近0,即尽量小,因此我们用||w||1和||w||2进行求解,因为||w||2不好处理,因此我们转用(||w||2)^2进行求解,然后利用拉格朗日算法进行求解:
这里写图片描述(摘自—知乎深入理解L1、L2正则化
2、最大后验概率估计角度理解
从概率与统计学的角度来理解,我们假设原始样本服从某种分布(yi~(N(W(T)xi,δ2),然后通过最大化它的最大似然函数,进而求解出权重w,b,即通过先验概率来最大化后验概率,这一块设计的公式比较多,因此就直接摘抄知乎深入理解L1、L2正则化
这里写图片描述
这里写图片描述
原因:
为什么它可以减弱过拟合呢???
版本1:加入了先验知识,在数据少的时候,先验知识可以防止过拟合;
版本2:正则化可以控制模型空间!
版本3:通过控制模型复杂度,减少过拟合!最基本的正则化方法是在原目标(代价)函数中添加惩罚项,对复杂度较高的模型进行“惩罚”,从而降低模型复杂度!

PS:
范数知识的补充:

这里写图片描述
简单理解:
l0范数:向量中非0元素的个数;
l1范数:向量中各个元素的绝对值之和
l2范数:通常意义的模

l0正则化:模型参数中非0参数的个数;
l1正则化:模型参数中各个参数的绝对值之和;
l2正则化:模型参数中各个参数的平方的开方值。

参考:
深入理解L1、L2正则化
机器学习中使用正则化来防止过拟合是什么原理?
L0,L1,L2正则化浅析

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014038273/article/details/79967790
上一篇CNN中的小tips(2)---batch normalization
下一篇机器学习中的两大学派
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭