L2正则及其应用

我们要解决当数据线性可分的时候W变得无穷大的问题,数据线性可分那我们有什么方式可以让W变得没有那么大呢?我们给出了一个solution,这个方法叫做加入一个L2 Norm(正则),英文是Regularization,相当于在原来的目标函数的基础上加入一项λ||W||2

图片

W是一个向量 W=(w1,W2,…..Wd)T

L2-Norm=||W||2= w12+w22+…wd2  

我们的目的是最小化我们的目标函数,同时我们也加了一个term,这个term我们也叫做正则项。

我们这个正则项是lambda(λ)*L2-Norm,加完这一项我们就可以让W变得小一点,为什么呢?

因为我们假设W很大,那么λ||W||2也会变得很大,但是我们现在的目标是最小化我们的目标函数,所以跟我们的目标是违背的,因为我们想要最小化我们的目标函数,所以加上正则之后,就相当于我告诉我的模型,我不想要W很大的那样的一个模型的参数,我想要W变得适当的小。

图片

所以加了正则项之后会刨除掉W很大的这种情况,所以就起到了可以避免我们之前W无穷大的现象。

这一项里面有个λ我们叫做hyperparameter(超参数),这个参数我们可以理解成是一个weighting  factor,我们现在的目标还是由两部分组成,一部分是原来的目标函数,还有一部分是正则项,λ起到的作用是调节我们把更多的注意力放到前一部分还是后一部分的作用。

下面我们分情况说明:

If λ=0时,没有任何限制

If λ大的时候,w变得更小

If λ小时,w变得更大

λ起到一个平衡的作用,因为我们的目标函数里面现在分成两个部分,所以我们就需要一个参数去决定我们在优化的时候需要把我们的注意力放在哪个地方。假设我们的λ很小,那我们的注意力仍在在前面原来的目标函数里面,λ很大时,我们就将更多的限制放在了后面一项来限制W变大。所以这样的一个参数我们称之为超参数,这种超参数我们经常通过这种交叉验证的方式去选择一个合适的超参数。

我们很多场景下都会选择加L2-Norm这个正则项去控制我们模型参数变得特别大,包括很多深度学习的模型,我们也都是选择这个方法。

图片

我们下面看加完正则项之后,我们的梯度下降法会怎么变化,很明显我们加的正则项是关于W的,所以对b的导数是不会变的,我们之前怎么更新b,那么我们仍然怎么去更新b。

我们还是采用argmin的方式,把图片中的argmax换成argmin再加一个负号,我们的目标函数写成L(w,b)+R(w)

图片

我们对原始的目标函数对W求导就变成上图中的结果,我们回顾一下【机器学习】逻辑回归的梯度下降推导

图片

图片是预测值,yi是真实的值,我们计算梯度的时候要计算出每次预测值和真实值的差,然后根据这个差别再做一个参数的调整,如果是一样的话,那么梯度就是等于0。

那加上正则项之后,我们再对W进行求导,结果如下图所示:

图片

结果比原来的目标函数的结果多了一项2λW,所以在梯度下降法里面没有很明显的变化,我们只需要加上2λW这一项就可以了。L2-Norm这个正则项我们比较容易求出它的梯度的。

为了方便推导我们一般也会把λ写成λ/2的形式,好处是后面的导数是2W,再乘以1/2,那么正则项的导数就变成了λW。

上面讲的是梯度下降法,假设我们想使用随机梯度下降法,那算法是什么样子呢?随机梯度下降法以及Mini-batch梯度下降法

图片

其实也是很直观的,梯度下降法我们也可以叫做batch gradient descent,而我们想把它变成一个Stochastic  gradient  descent (SGD),那么结果如上图所示,随机梯度是我们每次取一个样本然后计算这个样本的梯度,所以我们就不需要对所有样本梯度求和了,就不需要求和符号了。我们使用随机梯度下降法,需要我们每次都要更新W的值,所以W的变化会比梯度下降法更快一些。

发表评论

登录后才能评论
网站客服
网站客服
申请收录 侵权处理
分享本页
返回顶部