正则化 Regularization

正则化

参考文献

https://www.cnblogs.com/Renyi-Fan/p/13842738.html
https://zhuanlan.zhihu.com/p/74874291

  • 关于归一化、标准化、正则化的概念和区别

    • 归一化 Normalization
      • 把数据变为(0,1)之间的小数,比如min-max归一化
      • 主要是为了方便数据处理,因为将数据映射到0~1范围之内,可以使处理过程更加便捷、快速。
    • 标准化(Standardization)
      • 数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。
      • z-score标准化,即零-均值标准化(常用方法), y = x − μ σ y=\frac{x-μ}{σ} y=σxμ
    • 正则化(Regularization)
      • 用一组与原不适定问题相“邻近”的适定问题的解,
      • 去逼近原问题的解,这种方法称为正则化方法。
  • 作用

    • 产生过拟合现象的算法都可以使用正则化来避免过拟合。
  • 原理

    • 经验风险最小化的基础上(也就是训练误差最小化),采用简单的模型,可以有效提高泛化预测精度。
    • 如果模型过于复杂,变量值稍微有点变动,就会引起预测精度问题。
    • 正则化之所以有效,就是因为其降低了特征的权重,使得模型更为简单。
  • 分类

    • L1 正则化 Φ ( w ) = ∣ ∣ x ∣ ∣ 1 \Phi(w) = ||x||_1 Φ(w)=∣∣x1

      • LASSO 回归,相当于为模型添加了这样一个先验知识

        • w w w 服从零均值拉普拉斯分布,如下
          f ( w ∣ μ , b ) = 1 2 b e x p ( − ∣ w − μ ∣ b ) f(w|\mu,b)=\frac{1}{2b}exp(-\frac{|w-\mu|}{b}) f(wμ,b)=2b1exp(bwμ)

        • 引入先验知识,似然函数
          L ( w ) = P ( y ∣ w , x ) P ( w ) = ∏ i = 0 n [ p ( x i ) ] y i   [ 1 − p ( x i ) ] 1 − y i ∏ j = 0 d 1 2 b e x p ( − ∣ w j ∣ b ) L(w)=P(y|w,x)P(w) = \prod_{i=0}^n[p(x_i)]^{y_i}~[1-p(x_i)]^{1-y_i} \prod^d_{j=0}\frac{1}{2b}exp(-\frac{|w_j|}{b}) L(w)=P(yw,x)P(w)=i=0n[p(xi)]yi [1p(xi)]1yij=0d2b1exp(bwj)

        • 取 log 再取负,得到目标函数:
          L ( w ) = − l n L ( w ) = − ∑ i = 0 n [ y i l n [ p ( x i ) ] + ( 1 − y i ) l n [ ( 1 − p ( x i ) ) ] + 1 2 b 2 ∑ j = 0 d ∣ w j ∣ \mathcal{L}(w)=-lnL(w)=-\sum_{i=0}^n \Big[y_iln[p(x_i)]+(1-y_i)ln[(1-p(x_i))\Big] + \frac{1}{2b^2}\sum^d_{j=0}|w_j|\\ L(w)=lnL(w)=i=0n[yiln[p(xi)]+(1yi)ln[(1p(xi))]+2b21j=0dwj

      • 本质

        • 为模型增加了“模型参数服从零均值拉普拉斯分布”这一先验知识。
    • L2 正则化 Φ ( w ) = ∣ ∣ x ∣ ∣ 2 \Phi(w) = ||x||_2 Φ(w)=∣∣x2

      • Ridge 回归,相当于为模型添加了这样一个先验知识

        • w w w 服从零均值正态分布,如下
          f ( w ∣ μ , b ) = 1 2 π σ e x p ( − ( w − μ ) 2 2 σ 2 ) f(w|\mu,b)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(w-\mu)^2}{2\sigma^2}) f(wμ,b)=2π σ1exp(2σ2(wμ)2)

        • 引入先验知识,似然函数
          $$
          L(w)=P(y|w,x)P(w) = \prod_{i=0}n[p(x_i)]{y_i}~[1-p(x_i)]^{1-y_i}
          \prodd_{j=0}\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{w_j2}{2\sigma^2})\
          \prodd_{j=0}\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{w_j2}{2\sigma2})=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{wTw}{2\sigma^2})

          $$

        • 取 log 再取负,得到目标函数:
          L ( w ) = − l n L ( w ) = − ∑ i = 0 n [ y i l n [ p ( x i ) ] + ( 1 − y i ) l n [ ( 1 − p ( x i ) ) ] + 1 2 σ 2 w T w \mathcal{L}(w)=-lnL(w)=-\sum_{i=0}^n \Big[y_iln[p(x_i)]+(1-y_i)ln[(1-p(x_i))\Big] + \frac{1}{2\sigma^2}w^Tw\\ L(w)=lnL(w)=i=0n[yiln[p(xi)]+(1yi)ln[(1p(xi))]+2σ21wTw

        • 等价于原始的损失函数后面加上了 L2 正则,

      • 本质

        • 为模型增加了“模型参数服从零均值正态分布”这一先验知识。
    • 区别

    • L1 正则化增加了所有权重 w w w 参数的绝对值之和,逼迫更多 w w w 为零,也就是变稀疏

      • 对稀疏规则趋之若鹜的一个关键原因在于它能实现特征的自动选择

      • 大部分特征 x i x_i xi 都是和最终的输出 y i y_i yi 没有关系或者不提供任何信息的。

      • 最小化目标函数的时候考虑 x i x_i xi 这些额外的特征,虽然可以获得更小的训练误差,

        • 但在预测新的样本时,没用的特征权重反而会被考虑,从而干扰了对正确 y i y_i yi 的预测。
        • L1 正则化的引入就是为了完成特征自动选择,它会学习地去掉这些无用的特征,把这些特征对应的权重置为 0。
      • L2 正则化中增加所有权重 w 参数的平方之和,逼迫所有 w 尽可能趋向零但不为零,导数趋于零

        • 因为在未加入 L2 正则化发生过拟合时,
          • 拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大,
        • 在某些很小的区间里,函数值的变化很剧烈,也就是某些 w 值非常大。
          • 为此,L2 正则化的加入就惩罚了权重变大的趋势。
      • 图像

        image-20221007103804395
        • 如果使用正则化候,对于线性回归这种目标函数,

          • 最终的结果就是最里边的紫色的小圈圈等高线上的点。
        • 使用 L1 正则化的时候, ∣ w 1 ∣ + ∣ w 2 ∣ = F |w1|+|w2|=F w1∣+w2∣=F 的图像,也就是一个菱形,

          • 代表这些曲线上的点算出来的 L1 范数 ∣ w 1 ∣ + ∣ w 2 ∣ |w1|+|w2| w1∣+w2∣ 都为 F F F
            • 目标是不仅是原曲线算的值要小
              • 越来越接近中心的紫色圈圈
            • 还要使得这个菱形越小越好
              • F F F 越小越好
        • F F F 的值

          • 以一条原曲线目标等高线来说,现在以最外圈的红色等高线为例
            • 对于红色曲线上的每个点都可做一个菱形,
            • 当这个菱形与某条等高线相切(仅有一个交点)的时候,这个菱形最小,
            • 上图相割对比较大的两个菱形对应的 L1 范数更大。
          • 在相同的 1 N ∑ i = 1 N ( y i − w T x i ) 2 \frac{1}{N}\sum_{i=1}^N(y_i−w^Tx_i)^2 N1i=1N(yiwTxi)2
            • 由于相切的时候的 C ∣ ∣ w ∣ ∣ 1 C||w||_1 C∣∣w1 小,即 ∣ w 1 ∣ + ∣ w 2 ∣ |w1|+|w2| w1∣+w2∣
            • 所以能够使得 1 N ∑ i = 1 N ( y i − w T x i ) 2 + C ∣ ∣ w ∣ ∣ 1 \frac{1}{N}\sum_{i=1}^N(y_i−w^Tx_i)^2+C||w||_1 N1i=1N(yiwTxi)2+C∣∣w1 更小;
          • 最终加入 L1 范数得到的解一定是某个菱形和某条原函数等高线的切点。
            • 现很多原函数等高曲线,和某个菱形相交的时候及其容易相交在坐标轴,
            • 也就是说最终的结果,解的某些维度及其容易是 0,
            • 比如上图最终解是w=(0,x),这也就是我们所说的 L1 更容易得到稀疏解(解向量中 0 比较多)的原因;
            • 证明
              • L假设现在是一维的情况下 h ( w ) = f ( w ) + C ∣ w ∣ h(w)=f(w)+C|w| h(w)=f(w)+Cw
                • h ( w ) h(w) h(w) 是目标函数,
                • f ( w ) f(w) f(w) 是没加 L1 正则化项前的目标函数,
                • C ∣ w ∣ C|w| Cw 是 L1 正则项,
              • 要使得 0 点成为最值可能的点,虽然在 0 点不可导,
              • 但是我们只需要让 0 点左右的导数异号,
                • h l ′ ( 0 ) h r ′ ( 0 ) = ( f ′ ( 0 ) + C ) ( f ′ ( 0 ) − C ) < 0 h_l′(0)h_r′(0)=(f′(0)+C)(f′(0)−C)<0 hl(0)hr(0)=(f(0)+C)(f(0)C)<0
                • 0 点都是可能的最值点。
        • 当加入 L2 正则化的时候,同样还是求原曲线和圆形的切点作为最终解。

        • L2 范数不容易交在坐标轴上,但是仍然比较靠近坐标轴

        • L2 范数能让解比较小(靠近 0),但是比较平滑(不等于 0)。

    • 总结

      • 加入正则化项,在最小化经验误差的情况下,可以让我们选择解更简单(趋向于 0)的解。

        • 加正则化项就是结构风险最小化的一种实现
        • 能够降低过拟合的原因,正则化是结构风险最小化的一种策略实现
      • 结构风险最小化

        • 在经验风险最小化的基础上(也就是训练误差最小化),
        • 尽可能采用简单的模型,以此提高泛化预测精度。
      • loss function 加上正则化项,得到的新优化目标函数
        h ( w ) = f ( w ) + C ∣ w ∣ h(w)=f(w)+C|w| h(w)=f(w)+Cw

        • f ( w ) f(w) f(w) C ∣ w ∣ C|w| Cw 中做一个权衡,
        • 如果只优化 f ( w ) f(w) f(w) 的情况下,那可能得到一组解比较复杂,使得正则项 ||w|| 比较大,
        • 那么 h ( w ) h(w) h(w) 就不是最优的,因此可以加正则项能让解更加简单,通过降低模型复杂度,得到更小的泛化误差,降低过拟合程度。
      • L1 正则化就是在 loss function 后边所加正则项为 L1 范数,加上 L1 范数容易得到稀疏解(0 比较多)。

      • L2 正则化就是 loss function 后边所加正则项为 L2 范数的平方,得到的解比较平滑,但是同样能够保证解中接近于 0 的维度比较多,降低模型的复杂度。

        • 解为可学习的参数 w w w

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