浅谈L2正则化为什么可以缓解过拟合

目录

从直观角度来考虑

从病态矩阵角度来考虑

从凸优化的角度来考虑

从贝叶斯角度来考虑


对于线性回归问题,我们通常采用均方差损失函数:

L = \frac{1}{2} ||Xw - y||^{2}

L2 正则化是指,对损失函数加上一个惩罚项来防止过拟合:

L = \frac{1}{2} ||Xw - y||^{2} + \lambda ||w||^{2}

接下来我们从四个不同的角度来感性的说明为什么L2正则化可以防止过拟合。

 

从直观角度来考虑

过拟合可以理解为模型的复杂度过高。对于线性回归问题,也就是w参数较大。对于一个线性模型:

y = wx + b  。如果w = 0,则y恒等于b,此时模型几乎没有拟合能力(欠拟合)。通过增加一个关于w的惩罚项,将学习机向 w = 0 的方向进行引导(因为单纯从 ||w||^{2} 这一项看,它越小,L才能越小),以此来克服过拟合。

 

从病态矩阵角度来考虑

对于原始损失函数,其解析解为: 

w = (X^TX)^{-1}X^Ty 。事实上这里存在两个问题,一个是 X^TX 可能不可逆,此时说明 X^TX 中有特征值为0,发生场景为X的维度比样本数还大。另一个问题是即使 X^TX 可逆,但是这个矩阵是病态的,也就是说如果y存在很小的波动, 被X^TX 乘了以后,结果w都会发生很大的变化。那么我们计算的这个w就非常的不稳定,并不是一个好的模型,发生场景为X的维度比样本数差不多大小。

判断一个矩阵是不是病态矩阵,可以通过计算矩阵的条件数。条件数等于矩阵的最大奇异值和最小奇异值之比。如果矩阵 X^TX 存在很小的奇异值,那么它的逆就存在很大的奇异值,这样对y中的微小变化会放大很多。所以我们的目标就是干掉 X^TX 中极小的奇异值。

关于条件数,可以参考我的这个回答:

如何通俗的解释矩阵的条件数?​

加了L2正则项之后,我们的解析解变为: w = (X^TX + \lambda I)^{-1}X^Ty。也就是给 X^TX 中的所有奇异值加上一个 \lambda ,可以确保奇异值不会太小,而导致再求逆后,奇异值变的极大。这样有效的解决了病态矩阵的问题。过拟合的实质可以看作由于病态矩阵的存在,如果y有一点波动,整个模型需要大幅度调整。解决了病态矩阵问题,就解决了过拟合。

 

从凸优化的角度来考虑

L = \frac{1}{2} ||Xw - y||^{2} = \frac{1}{2} (w^TX^TXw - 2w^TX^Ty + y^Ty)

求L对w的二阶偏导: H = X^TX。根据凸函数的性质,如果 H>0 ,即H是正定矩阵,它是一个严格凸函数,有唯一最小值。如果 H\geq0,即H是半正定矩阵,其中部分特征值为0,则就有多个局部最小值。对于多个局部最小值我们取一个,往往并不是真正的最小值,形成了过拟合的现象。如果加了L2正则化项,则L对w二阶偏导H = X^TX + 2\lambda > 0,这样加了L2正则化项的L是一个严格凸函数,有唯一最小值解,可以直接使用解析式法进行求解。



从贝叶斯角度来考虑

均方差损失函数实际上是从最大似然估计法中诱导得出的:

均方差损失函数最大似然估计推导
均方差损失函数最大似然估计推导


用不确定性的观点看目标变量。对于任意一点x,都将其目标变量t看作是以y = wx + b 为均值的,\beta ^{-1}为方差的高斯分布。即: p(t_n | x_n,\bar{w}, \beta) = N(t_n | y(x_n,\bar{w}), \beta^{-1})

那么对于整个训练集 \{x_n, t_n\},通过最大似然估计来确定w的值。似然函数为:p(\bar{t} | \bar{x},\bar{w},\beta) = \prod_{n=1}^{N}p(t_n | x_n,\bar{w},\beta) = \prod_{n=1}^{N}N(t_n | y(x_n,\bar{w}), \beta ^{-1})
要求使上述函数取到最大值的w,往往我们求使最小对数似然函数的w值(因为似然函数存在连乘符号,不好处理,取对数可以将连乘转化为连加)。对数似然函数为:

lnp(\bar{t} | \bar{x},\bar{w},\beta) = -\frac{\beta}{2}\sum_{n=1}^{N}\{y(x_n,\bar{w}) - t_n\}^2 + \frac{N}{2} ln\beta - \frac{N}{2} ln(2\pi )
观察式子等号右边,只有第一项含有参数w,要求使上式取到最小值的w,就是求使上式第一项取到最小值的w,也就是使 \sum_{n=1}^{N}\{y(x_n,\bar{w})- t_n\}^2 取到最大值的w。这与我们在文章开始给出的均方差损失函数形式一样。

现在我们从最大似然估计转换为最大后验估计来考虑这个问题,由贝叶斯定理:p(\bar{w} | \bar{x},\bar{t}) = \frac{p(\bar{t} | \bar{x},\bar{w})p(\bar{w})}{\sum{p(\bar{t} | \bar{x},\bar{w})p(\bar{w})}}, 分母可以看作归一化参数,则:p(\bar{w} | \bar{x},\bar{t})正比于 p(\bar{t} | \bar{x},\bar{w})p(\bar{w})。使用上面求的: p(\bar{t} | \bar{x},\bar{w}) = \prod_{n=1}^{N}N(t_n | y(x_n,\bar{w}), \beta ^{-1}),对于 p(\bar{w})我们给予一个先验假设 p(\bar{w}) = N(\bar{w} | 0,\alpha I),即w满足均值为0的一个高斯分布。这样可以求得: p(\bar{w} | \bar{x},\bar{t})正比于 \sum_{n=1}^{N}\{y(x_n,\bar{w})- t_n\}^2 + \frac{\alpha}{2} w^Tw,问题转为求使这个式子最大化的w,该形式与添加了L2正则化项的损失函数形式一样,也就是说L2正则化损失函数相当于给原损失函数引入了一个关于w的高斯先验。


这部分写的比较简单,具体可以参考PRML第1.2.5节。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值