L1、L2 正则项详解 - 解空间、先验分布、最大似然估计 and 最大后验估计

L1、L2 正则项详解(解空间、先验分布)

      • 引入
      • 直观看
      • 解空间
      • 先验分布
        • 最大似然估计
        • 最大后验估计

  • 引入

    在线性回归或其他模型中,我们经常使用正则项,例如:对普通线性回归添加 L1 正则项后就变为 Lasso 回归,对普通线性回归添加 L2 正则项后就变为 Ridge 回归。对于正则项,我们都知道 L2 正则项具有缩放型效应,可以让模型参数更加平滑;L1 正则项具有截断型效应,使得模型参数更加稀疏。那么本文就对这现象的背后原理进行讲解。

  • 直观看

    首先对平滑与稀疏建立一个直观的概念,稀疏意味着使模型参数等于 0,从而在模型内部嵌入式地进行特征选择,;而平滑则会尽量使参数小,但不等于 0,从而嵌入式地对特征进行缩小。

    举一个不严谨但直观简单的例子,方便理解:设 f ( x ; w ) f(x;w) f(x;w)为经验损失, L L L 代表正则项, l ( x ; w ) = f ( x ; w ) + L l(x;w)=f(x;w)+L l(x;w)=f(x;w)+L 为结构损失。假设此时使用梯度下降更新参数, μ μ μ 为学习率,则梯度为 μ ∂ f ( w ) ∂ w i − μ ∗ ∂ L ∂ w i μ\frac{\partial f(w)}{\partial w_i}-μ*\frac{\partial L}{\partial w_i} μwif(w)μwiL,对于不同的正则项 μ ∂ f ( w ) ∂ w i μ\frac{\partial f(w)}{\partial w_i} μwif(w) 是相同的,我们暂时忽略,所以:

    1. 使用 L1 正则项,梯度为: μ ∂ ∑ i = 1 n ∣ w i ∣ ∂ w i = μ ∗ 1 = μ μ\frac{\partial \sum_{i=1}^{n}|w_i|}{\partial w_i}=μ*1=μ μwii=1nwi=μ1=μ, 梯度更新参数的表达式为: w i : = w i − μ ∗ 1 w_i:=w_i-μ*1 wi:=wiμ1,假设 μ = 0.5 μ=0.5 μ=0.5,则 w i : = w i − 0.5 w_i:=w_i-0.5 wi:=wi0.5,所以 L1 意味着在更新参数时相当于一直减去一个定值,那么终会有一时刻将 w i w_i wi 减为 0,那么此时参数为 0,所以稀疏。
    2. 使用 L2 正则项,梯度为: 1 2 μ ∂ ∑ i = 1 n ( w i ) 2 ∂ w i = μ w i \frac{1}{2}μ\frac{\partial \sum_{i=1}^{n}(w_i)^2}{\partial w_i}=μw_i 21μwii=1n(wi)2=μwi, 梯度更新参数的表达式为: w i : = w i − μ w i w_i:=w_i-μw_i wi:=wiμwi,假设 μ = 0.5 μ=0.5 μ=0.5,则 w i : = w i − 1 2 w i : = 1 2 w i w_i:=w_i-\frac{1}{2}w_i:=\frac{1}{2}w_i wi:=wi21wi:=21wi,相当于每次的更新都是折半,则更新的图像为 log ⁡ 2 w i \log_2w_i log2wi,所以只会趋近于 0,不会等于 0,趋于平滑。

    通过上面不正规的例子,我们对稀疏性与平滑型有了直观的理解,下面就开始正式的通过公式证明。

  • 解空间

    在优化过程中,我们希望在优化经验损失 ∑ i = 1 n ( y i − w T x i ) 2 \sum_{i=1}^{n}(y_i-w^Tx_i)^2 i=1n(yiwTxi)2 的同时,还希望对模型的复杂度进行限制,约束参数的取值空间,从而达到防止过拟合的效果,那么我们可以为优化问题加上一个约束,即参数 w w w 的范数不能大于 C:

    对于 Lβ 范数: { m i n ∑ i = 1 n ( y i − w T x i ) 2 s . t . ∣ ∣ w ∣ ∣ β − C ≤ 0 , β = 1 , 2 \begin{cases} min\sum_{i=1}^{n}(y_i-w^Tx_i)^2\\ s.t. ||w||_β-C \le 0,β=1,2\\ \end{cases} {mini=1n(yiwTxi)2s.t.wβC0β=1,2

    为了求解带约束条件的凸优化问题,写出拉格朗日函数:

    L ( x , w , λ ) = ∑ i = 1 n ( y i − w T x i ) 2 + λ ( ∣ ∣ w ∣ ∣ β − C ) L(x,w,λ)=\sum_{i=1}^{n}(y_i-w^Tx_i)^2+λ(||w||_β-C) L(x,w,λ)=i=1n(yiwTxi)2+λ(wβC)

    假设此时 w ∗ , λ ∗ w^*,λ^* w,λ 为原始问题与对偶问题的最优解,则根据 K K T KKT KKT 条件,应分别满足:

    { ∇ w L ( x ∗ ; w ∗ ; λ ∗ ) = 0 ∇ λ L ( x ∗ ; w ∗ ; λ ∗ ) = 0 λ ( ∣ ∣ w ∣ ∣ β − C ) = 0 λ ∗ ≥ 0 ∣ ∣ w ∣ ∣ β − C ≤ 0 ⟹ 其 中 { ∇ w [ ∑ i = 1 n ( y i − w ∗ T x i ∗ ) 2 + λ ∗ ( ∣ ∣ w ∗ ∣ ∣ β − C ) ] = 0 λ ∗ ≥ 0 \begin{cases} \nabla_{w}L(x^*;w^*;λ^*)=0\\ \nabla_{λ}L(x^*;w^*;λ^*)=0\\ λ(||w||_β-C)=0\\ λ^*\ge0\\ ||w||_β-C\le0 \end{cases}\mathop{}_{\Longrightarrow}^{其中}\begin{cases} \nabla_{w}[\sum_{i=1}^{n}(y_i-{w^*}^Tx_i^*)^2+λ^*(||w^*||_β-C)]=0\\ λ^*\ge0\\ \end{cases} wL(x;w;λ)=0λL(x;w;λ)=0λ(wβC)=0λ0wβC0{w[i=1n(yiwTxi)2+λ(wβC)]=0λ0

    回头看, ∇ w [ ∑ i = 1 n ( y i − w ∗ T x i ∗ ) 2 + λ ∗ ( ∣ ∣ w ∗ ∣ ∣ β − C ) ] = 0 \nabla_{w}[\sum_{i=1}^{n}(y_i-{w^*}^Tx_i^*)^2+λ^*(||w^*||_β-C)]=0 w[i=1n(yiwTxi)2+λ(wβC)]=0 表示的就是: w ∗ , λ ∗ w^*,λ^* w,λ 为带有正则项的优化问题的最优解的条件,且 λ ∗ λ^* λ 为正则项前的正则参数。与我们通常使用的结构损失正好对应!

    对于正则项前的系数 λ λ λ,用来控制经验损失与正则项的相对重要性, λ λ λ 值越大,表明正则项越严格,更倾向于获得稀疏模型。

    由以上我们可以得出:加入正则项就相当于对经验损失加上约束条件,从而变成约束优化问题。对应于解空间来讲,有下图:
    L1、L2 正则项详解 - 解空间、先验分布、最大似然估计 and 最大后验估计_第1张图片

    对于解空间我们可以想象到 2 维的情景,假设在 w 1 , w 2 w_1,w_2 w1,w2 的解空间中,菱形与圆形分别对应 L1 与 L2 w 1 , w 2 w_1,w_2 w1,w2 取值范围, w ∗ w^* w w w w 的最优解(L1 正则是绝对值之和,可以认为是一次函数类似 a w 1 + b w 2 = 0 aw_1+bw_2=0 aw1+bw2=0 围城的图形,所以是菱形;L1 正则是平方之和,可以认为是二次函数类似 ( w 1 ) 2 + ( w 2 ) 2 = 0 (w_1)^2+(w_2)^2=0 (w1)2+(w2)2=0 围城的图形,所以是圆形)。

    如果原问题目标函数的最优解不是恰好落在解空间内,那么约束条件下的最优解必然在解空间与约束空间的交点处。L1 “棱角分明”的约束空间更容易与解空间在角点碰撞,且 L1 中两个参数值倾向于一个较大另一个为 0,L2 中两个参数倾向于均为非零的较小数(使用 L2 正则项时,只有当解空间的中心与 L2 约束空间的中心垂直或平行时才能得到一个参数为 0,另一个参数较大,而 L1 的约束空间则不然)。所以就有 L1 稀疏,L2 平滑的效果。

  • 先验分布

    如果在概率估计的范畴,则可以通过先验分布解释 L1 与 L2 的稀疏性与平滑性。

    在从先验分布角度介绍 L1,L2 之前,我们先了解一下最大似然估计与最大后验估计(参考链接)。

    1. 最大似然估计

      对于函数 P ( x ∣ θ ) P(x|θ) P(xθ),有两个输入, x x x 表示已知数据, θ θ θ 表示条件参数,那么这个条件概率可以从两个方面理解:

      ∙ \bullet 如果 θ θ θ 已知, x x x 未知,这个函数称为概率函数,用于计算对于不同 x x x 发生的概率;

      ∙ \bullet 如果 x x x 已知, θ θ θ 未知,这个函数称为似然函数,用来描述,当样本数据发生的经验概率(可从数据中统计)是已知,计算使它产生这样经验概率的参数是多少(似然,可以认为是接近真实,近似它自然拥有的参数)。

      最大似然估计的计算过程:

      例:此时抛硬币10次,其中正面 7 次,反面 3 次,设 硬币正面出现的概率为 θ θ θ, 请估计硬币正面出现的概率。

      ① 写出 似然函数 f ( x ) = θ 7 ( 1 − θ ) 3 f(x)=θ^7(1-θ)^3 f(x)=θ7(1θ)3

      ② 转换成 对数似然函数 ln ⁡ f ( x ) = ln ⁡ ( θ 7 ( 1 − θ ) 3 ) = 7 ln ⁡ θ + 3 ln ⁡ ( 1 − θ ) \ln f(x)=\ln (θ^7(1-θ)^3)=7\ln θ + 3\ln(1-θ) lnf(x)=ln(θ7(1θ)3)=7lnθ+3ln(1θ)

      ③ 对 θ θ θ 求导,并令导数等于 0: 7 θ − 3 1 − θ = 0 \frac{7}{θ}-\frac{3}{1-θ}=0 θ71θ3=0,解得 θ = 0.7 θ=0.7 θ=0.7

      (④ 对于更加复杂的函数形式可使用梯度下降)

    2. 最大后验估计

      最大后验估计运用贝叶斯公式: P ( w ∣ X ) = P ( X ∣ w ) P ( w ) P ( X ) P(w|X)=\frac{P(X|w)P(w)}{P(X)} P(wX)=P(X)P(Xw)P(w),是在最大似然估计的基础上加入了先验概率。

      其中 X X X 作为已知的训练数据出现,最大似然估计的目的是最大化 P ( w ∣ X ) P(w|X) P(wX),即在已知数据的基础上既最大化似然函数 P ( X ∣ w ) P(X|w) P(Xw),又要最大化 P ( w ) P(w) P(w)。意味着要考虑先验概率 P ( w ) P(w) P(w) 。与之前文章讲的贝叶斯公式(机器学习 - 朴素贝叶斯(上)- 概率论基础)可视为一样的:我们先对参数 w w w 计算先验概率,而后通过数据计算条件概率 P ( X ∣ w ) P(X|w) P(Xw) 对先验概率进行修正。

    现在我们可以根据最大后验估计对 L1 与 L2 的稀疏与平滑进行解释了。

    对于机器学习模型,我们都是已知数据对参数进行学习,相当于对 w w w 进行估计,此过程可用最大后验估计表示,其中 X , Y X,Y X,Y 为数据及其标签:

    P ( w ∣ X , Y ) = P ( X , Y ∣ w ) P ( w ) P ( X , Y ) P(w|X,Y)=\frac{P(X,Y|w)P(w)}{P(X,Y)} P(wX,Y)=P(X,Y)P(X,Yw)P(w)

    根据最大后验估计,我们的目标是最大化 P ( X , Y ∣ w ) P(X,Y|w) P(X,Yw) 以及 P ( w ) P(w) P(w),而对于同一个任务,所使用的数据是不变的,所以 P ( X , Y ) P(X,Y) P(X,Y) 可以视为常数忽略,此时最大后验估计可表示为:

    P ( w ∣ X , Y ) = P ( X , Y ∣ w ) P ( w ) P(w|X,Y)=P(X,Y|w)P(w) P(wX,Y)=P(X,Yw)P(w)

    同样取对数,得对数后验函数:

    f ( x ) = log ⁡ ( P ( X , Y ∣ w ) P ( w ) ) = log ⁡ P ( X , Y ∣ w ) + log ⁡ P ( w ) f(x)=\log (P(X,Y|w)P(w))=\log P(X,Y|w)+\log P(w) f(x)=log(P(X,Yw)P(w))=logP(X,Yw)+logP(w)

    从中可以发现:对数后验函数是在对数似然函数的基础上增加了 log ⁡ P ( w ) \log P(w) logP(w),其中 P ( w ) P(w) P(w) 的意义是对参数 w w w 的概率分布做出的先验假设,在收集到训练数据 X , Y X,Y X,Y 后,则可根据 w w w X , Y X,Y X,Y 下的条件概率对 w w w 进行修正,从而做出对 w w w 进行更好地估计。

    ∙ \bullet 若假设 w j w_j wj 的先验分布为 0均值 的高斯分布,即: w j ∼ N ( 0 , σ 2 ) w_j\sim N(0,σ^2) wjN(0,σ2)

    log ⁡ P ( w ) = log ⁡ ∏ j P ( w j ) = log ⁡ ∏ j [ − 1 2 π σ 2 e − ( w j ) 2 2 σ 2 ] = − 1 2 σ 2 ∑ j w j 2 + C ′ \log P(w)=\log \prod_{j} P(w_j)=\log \prod_{j}[-\frac{1}{\sqrt{2π}σ^2}e^{-\frac{(w_j)^2}{2σ^2}}]=-\frac{1}{2σ^2}\sum_{j}w_j^2+C' logP(w)=logjP(wj)=logj[2π σ21e2σ2(wj)2]=2σ21jwj2+C

    很巧,在高斯分布下, log ⁡ P ( w ) \log P(w) logP(w) 具有 ∑ j w j 2 \sum_{j}w_j^2 jwj2 项 ,与 L2 正则项是效果等价的。

    所以使用 L2 正则项相当于对模型参数 w w w 引入了高斯先验。

    ∙ \bullet 若假设 w j w_j wj 服从 均值为0,参数为 a a a 的拉普拉斯分布,即: P ( w j ) = 1 2 a e − ∣ w j ∣ a P(w_j)=\frac{1}{\sqrt{2a}}e^{\frac{-|w_j|}{a}} P(wj)=2a 1eawj

    log ⁡ P ( w ) = log ⁡ ∏ j P ( w j ) = log ⁡ ∏ j 1 2 a e − ∣ w j ∣ a = − 1 a ∑ j ∣ w j ∣ + C ′ \log P(w)=\log \prod_{j} P(w_j)=\log \prod_{j}\frac{1}{\sqrt{2a}}e^{\frac{-|w_j|}{a}}=-\frac{1}{a}\sum_{j}|w_j|+C' logP(w)=logjP(wj)=logj2a 1eawj=a1jwj+C

    很巧,在拉普拉斯分布下, log ⁡ P ( w ) \log P(w) logP(w) 具有 ∑ j ∣ w j ∣ \sum_{j}|w_j| jwj 项 ,与 L1 正则项是效果等价的。

    所以使用 L1 正则项相当于对模型参数 w w w 引入了拉普拉斯先验。

    但是高斯先验为什么会使参数更平滑而拉普拉斯为什么会使参数更稀疏呢?

    首先来看阿门两个分布函数的图像:
    L1、L2 正则项详解 - 解空间、先验分布、最大似然估计 and 最大后验估计_第2张图片
    (左图为拉普拉斯分布,右图为高斯分布,图片来自网络。)

    对于拉普拉斯分布,大部分概率分布都聚集在 0 附近,而对于值较大的概率较小,所以获得 w = 0 w=0 w=0 的概率更高,从而更倾向于稀疏;而对于高斯分布,其中取值较大的概率的分布相比拉普拉斯分布更大,而在 0 附近的概率分布较小,所以对于 w = 0 w=0 w=0 的概率更小,所以更倾向于平滑。

你可能感兴趣的:(机器学习,(ML),深度学习,(DL))