理解L1和L2正则化为什么能防止过拟合

一、相关概念

过拟合:指的是拟合模型时过分关注数据集的细节,得到了一个在训练集上表现很好,但不能很好地泛化到新数据上的模型。言下之意就是模型的参数过多,对于现有的数据量来说太过复杂了。

正则化:指对模型做显示约束,限制模型的参数以避免过拟合。

L1正则化:指在代价函数后面添加l1正则化项,惩罚了系数的l1范数(l1范数定义为所有元素的绝对值之和)。目的是使其中的某些权值减小到0,因此得到的w更加稀疏。

C = C_{_{0}} + \frac{\mathrm{\lambda } }{\mathrm{n}}\sum_{w} |{w}|

其中C0为初始的代价函数,加号后面的为添加的l1正则化项,为所有参数w的绝对值之和,除以训练集样本总数n。λ称为正则化系数,用来衡量正则化项所占的比重。

L2正则化:指在代价函数后面添加l2正则化项,惩罚了系数的l2范数(l2范数定义为所有元素的平方和的开平方)。目的是衰减权重到更小的值,所以也被称为权重衰减(weight decay)。

C = C_{_{0}} + \frac{\mathrm{\lambda } }{\mathrm{2n}}\sum_{w} {w}^{2}

其中C0为初始的代价函数,加号后面的为添加的l2正则化项,为所有参数w的平方和,除以训练集样本总数n。λ称为正则化系数,用来衡量正则化项所占的比重,乘以1/2是为了后面的求导方便。

通常情况我们只对w进行正则化而不对b进行正则化,因为一般w的维度很大,而b只是一个常数,参数很大程度上由w决定,改变b值对整体模型影响较小。所以一般忽略对b的正则化。

 

二、正则化项如何作用于权值w

接下来将从梯度下降的角度说明正则化项是如何作用的:

1. L1正则化:

1.1 对添加完l1正则化项的代价函数求w的梯度为:

\frac{\partial C}{\partial w} = \frac{\partial C_{0}}{\partial w} + \frac{\lambda sgn(w)}{n}

1.2 根据梯度和学习率更新权值w:

w \rightarrow w - \alpha (\frac{\partial C_{0}}{\partial w} + \frac{\lambda sgn(w)}{n})

= w-\frac{\alpha \lambda sgn(w)}{n} - \alpha \frac{\partial C_{0}}{\partial w}

其中 α为学习率,sgn(w)为w的正负号,当w大于0会减去一个正项,使w减小;当w小于0会减去一个负项,使w变大。因此l1正则化容易使w变为0。

2. L2正则化:

2.1 对添加完l2正则化项的代价函数求w的梯度:

\frac{\partial C}{\partial w} = \frac{\partial C_{0}}{\partial w} + \frac{\lambda }{n}w

2.2 根据梯度和学习率更新权值w:

w \rightarrow w - \alpha (\frac{\partial C_{0}}{\partial w} + \frac{\lambda }{n}w)

    = (1-\alpha \frac{\lambda }{n})w - \alpha \frac{\partial C_{0}}{\partial w}

其中 α为学习率,因为\frac{\alpha \lambda }{n}为非负项,因此w的系数(1-\frac{\alpha \lambda }{n})是小于1的,在迭代更新中,w会不断地减小。因此l2正则化又叫做权重衰减(weight decay)。

 

三、正则化为什么能防止过拟合

数据集中的噪声点往往需要比较大的w值来拟合,也就是说w越大,模型的曲线越“陡峭”,因而网络模型能够更好得拟合噪声点,但也引起了过拟合。

在l1正则化中,某些权值刚好为0,说明某些特征被模型完全忽略。这可以看作是一种自动的特征选择。某些权值刚好为0,这样模型更容易解释,也可以呈现模型最重要的特征。

在l2正则化中,权值w会随着迭代衰减,当w很小时意味着该神经网络模型中的某些神经元实际的作用很小,可以忽略。

因此,总得来说,l1和l2正则化都是通过减小权值w,使某些神经元的作用变小甚至可以勿略,从而降低网络模型的复杂度来防止过拟合。这与dropout通过以一定的概率丢弃神经元的做法在效果上是相似的。

 

你可能感兴趣的:(ML/DL)