前言
对于有监督学习任务而言,它的目标函数函数往往具有如下的格式:
其中红色部分表示数据拟合项(损失项),它度量了用模型f(x,theta)来拟合数据标签y时所带来的偏差(error/loss);绿色的部分则是模型正则项,它度量了模型的复杂度。因此上述格式的目标函数蕴含着:我们期望得到的模型f(x,theta)既能够很好地拟合/解释数据,同时模型本身不要太复杂!机器学习中,常见的损失函数有
常见的正则项有:
一些典型p值对应的正则项的可视化图像如下:
例子-回归
假定我们有10个点,需要寻找一个合适的多项式模型来拟合它们。数据分布如a)所示:
我们选定的模型是一个M次多项式:
优化的目标函数为:
当M=0,3, 9时对应的拟合曲线如图b), c), d)所示。显然,如果只是为了拟合这10个点,9次多项式拟合得最好,0次多项式最差;但是,如果我们拿学习到的多项式去预测跟上述10个点同分布的数据时,我们往往会选择3次而不是9次多项式,因为9次多项式过于复杂,未能抓住数据的本质规律。下图展示了学习到的多项式的各系数:
从系数的尺度可以看出,当x有少许扰动(变化)时,9次多项式的输出值将会有很大的波动,直觉上,这不符合我们对数据集的认知!如果我们将正则项加入目标函数:
以M=9为例,下图给出了9次多项式在lamda取不同值时的拟合曲线:
对应的多项式的各系数为:
可以看出,随着lambda的增大,多项式系数不断减小,多项式曲线的变化也越来越平缓,模型的拟合能力也不断下降!
先验分布
从贝叶斯视角来看正则项,它是人们对参数的先验(prior)认知:
其中,p(theta)表示参数的先验分布,p(Y,X|theta)表示似然函数,p(theta|X,Y)表示参数的后验分布。进一步,取负对数:
特别地,如果theta的先验分布为高斯(Gaussian)分布N(theta|0, sigma):
如果theta的先验分布为拉普拉斯(Laplacian)分布L(theta|0, sigma):
下图给出了0均值不同方差、尺度参数的高斯分布和拉普拉斯分布:
可以看出:当Laplacian分布的尺度因子sigma与Gaussian分布的标准差相同时,在x=0附近区域laplacian密度曲线始终位于gaussian密度曲线之上!
稀疏性
-
梯度视角
考虑只有一个参数theta的情形,此时在损失函数中加入L1或者L2正则项:
对于L2正则项,J(theta)在theta=0处的导数为:
若l'(0) ≠ 0,则J'(0) ≠ 0.意味着加入L2-norm之后对损失函数在theta=0处的导数没有影响。
对于L1正则项,J(theta)在theta=0处的导数为:
如果lambda > |l'(0)|,由于J'(theta)在theta=0两侧符号有变化[具体地,当theta从-0到+0的过程中,J'(theta)由负变正],从而导致J(theta)更容易[更高的概率]在theta=0处取得极小值,从而L1比L2更容易获得稀疏解。高维情形类似!
另一方面,二者的参数更新方式如下:
对于L1-norm和L2-norm,在利用梯度下降进行参数更新时,前者更新eta*lambda*sign(theta),而后者更新eta*lambda*theta。当theta ∈ 【1,+inf),L2-norm获得了更快的减小速率;当theta ∈ (0,1),L1-norm获得更快的减小速率,并且,当theta越小,L1更容易接近于0,而L2则非常缓慢地靠近0。因此,L1比L2更容易获得稀疏解!
-
先验视角
通过前面的先验分布模块的讨论,我们已经知道对参数𝜃加L1-norm,本质上式假设它服从Laplacian分布,加L2-norm,本质上是假设它服从Gaussian分布。结合上图来看:
- 在 |𝜃−𝜇|>𝛽【A点左侧区域、D点右侧】区域,P_L(θ) > P_G(θ).这意味着Gaussian分布的取值更加集中在均值附近【smooth】,不太允许【概率角度】theta的取值远离均值,而Laplacian分布则不然,它在一定程度上允许𝜃的取值远离均值,这也就是机器学习、统计学中著名的Laplacian-后尾效应.
- 在𝛼<|𝜃−𝜇|<𝛽【AB、CD】区域内,P_L(θ)<P_G(θ).这意味着Gaussian分布在该区域取值的概率更大,因此𝜃中会有更多的分量的值位于该区域;
- 在|𝜃−𝜇|< 𝛼【BC】区域内,P_L(θ) > P_G(θ).这意味在该区域内,相对于𝜃~Gaussian,若𝜃~Laplacian分布,它会以更高的概率取0或者足够接近0的值,这也就是L1-norm具有更稀疏的解的本质原因!
参考文献
[1]. https://www.zhihu.com/question/37096933/answer/70426653