正则化防止过拟合

一、过拟合和欠拟合

正则化是防止过拟合的一种方法,因此要想知道正则化是怎样的那么必须先去认识什么是过拟合:

正则化防止过拟合_第1张图片

二、正则化方法

1、L1正则(Lasso) 

正则化的实现方法其实就是在代价函数后面加上正则化项

正则化防止过拟合_第2张图片

 对于lasso它的正则化系数为:

 下文中Co代表代价函数:

正则化防止过拟合_第3张图片

先计算它的导数:

 

上式中sgn(w)表示w的符号,w更新方程:

 正则化防止过拟合_第4张图片

        比原始的更新规则多出了η * λ * sgn(w)/n这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠,使网络中的权重尽可能为0,相当于给w加上限制避免过拟合。

一般我们在使用L1正则化时会产生稀疏矩阵(大多数为0的矩阵),其原因如下:

首先我们的目的是求出代价函数的最小值,那么有由公式可以画出L1正则图像:

正则化防止过拟合_第5张图片

 

正则化防止过拟合_第6张图片

 我们会发现其大多数交点都会在轴上,也就是w=0所以对于L1来说会产生稀疏矩阵。

2、L2正则(Ridge)

正则化防止过拟合_第7张图片

R(w) 为:

正则化防止过拟合_第8张图片

所以代价函数变为:

正则化防止过拟合_第9张图片

 同理我们对他进行求导,得到w更新方程:

正则化防止过拟合_第10张图片

         在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的,所以 1−ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。(梯度下降计算,其中η为学习率)

我们也可以得到L2的图:

正则化防止过拟合_第11张图片

 可见交点一般不会出现在轴上,所以不会产生稀疏矩阵。

3、Elasitc Net算法(弹性网络算法)

正则化防止过拟合_第12张图片

 同时使用L1和L2正则,0 <= λ <= 1。λ=0 对应 L2 惩罚,λ=1 对应 L1。

你可能感兴趣的:(机器学习,线性代数,机器学习,深度学习)