watch: DL - 王木头 11 | L1L2 Reg (1), Larange Multiplier

Table of contents

原视频:“L1和L2正则化”直观理解(之一),从拉格朗日乘数法角度进行理解 - 王木头学科学 -bilibili

(2023-01-30) 加上正则化项,就变为求拉格朗日函数的最小值,即求"损失函数+权重模长"整体的最小值。 λ 是个比值,λ不同对应的W的位置不同,即λ确定了W的位置。然后 𝐖 自己不断调整,使 J(𝐖) 与 λ‖𝐖‖ 二者的梯度等大反向(抵消),从而使 $∇_𝐖 L(𝐖,λ)=0$。λ不同,则最优W就不同。_


机器学习的两个核心议题:优化与正则化。优化找到最优参数;正则化减少模型的过拟合:对模型权重𝐖(不处理b)进行L1和L2正则化

从3个角度理解 L1 和 L2 正则化:

  1. 拉格朗日乘数法
  2. 权重衰减
  3. 贝叶斯概率

正则化

与“正则表达式”没有关系,正则表达式是编程中用来处理字符串的技术。 正则化常常指模型权重的L1和L2范数。Dropout 也是一种正则化,在训练时,随机的让一些神经元失效。

花书:凡是可以减少泛化误差(过拟合),而不是减少训练误差的方法,都可以称作正则化方法。

L1, L2 正则化项是加在损失函数上,约束模型参数𝐖的 L1, L2 范数的项。L1范数使W变得稀疏,L2范数使W变得小。

拟合时一般希望保留更多特征,高次的函数表达能力更强,所以模型倾向于学出高次项的系数,使训练误差更小,但不能很好地预测新数据,没有找到基础规律,出现过拟合 3

如果特征(各属性)已知,可以把 polynomials 的高次项系数置为0;否则,需采用与"特征的定义"无关的约束,可以选择模长最小的,误差(mse)也最小的参数。 Problem is now well-posed for any degree。Even very high polynomials, simple function tend to be learned with regularization2 所以对细节特征的系数(θ₃²+θ₄²)增大惩罚力度,bias them not to be large (min ∑ᵢᵐ(y^(xᵢ)-yᵢ)² + 1000θ₃²+1000θ₄²)1

范数:向量长度。网络权重 𝐖 是高维空间中的一个向量(也可认为W是高维空间一个点,范数即为这个点到原点的距离)。 若使用欧几里得距离(坐标差求平方和再开根号)度量它的模长,就是 L2 范数: ‖𝐖‖₂=√(|w₁|²+|w₂|²+…+|wᵢ|²); 若用曼哈顿距离计算(坐标差的绝对值求和),就是 L1 范数: ‖𝐖‖₁=|w₁|+|w₂|+…+|wᵢ|。

  • 当 Lp 范数的 p 取值大于等于 1 时,有相同距离的点构成的集合是一个凸集;
  • 当 p 取 0-1 之间,是非凸集。
  • 当p小于等于1时,会带来稀疏性,所以 the L1 norm is the only norm which both induces some sparsity in the solution and remains convex for easy optimization.

如果问题对应的函数是一个凸函数,它的取值范围(可行域)是一个凸集,这就是一个凸优化问题,容易求解。L1和L2正则化在某种程度上,就是在利用 L1 和 L2 范数的凸集特性。

出现过拟合的原因之一:W太大会把噪声放大

神经网络的输出层做了三件事:

  1. 接收上一层的激活值 a⁽ˡ⁻¹⁾,乘以权重 Wˡᵀ,加上偏移bᵀ,得到线性叠加后的 zˡ: zˡ= Wˡᵀ⋅a⁽ˡ⁻¹⁾+bᵀ。

  2. 再做(激活引入非线性/限制取值0-1,然后)softmax 把线性结果 zˡ 变成概率分布: aˡ = softmax (zˡ)。

  3. 输出层的损失函数:J(aˡ) = MLE (aˡ)。
    极大似然 MLE 与 CrossEntropy 等价,前者最大化重复采样训练样本的概率,后者最小化网络给出的类别概率乘以真实概率对应的信息量。 (softmax 搭配MLE,等价于最大熵。)

调整 𝐖,𝐛 使损失函数J(𝐖,𝐛)最小,但当损失值最小时,对应的 𝐖,𝐛 不是唯一的。比如:

  1. 把前面所有隐藏层的权重和偏置都放大2倍(用ReLu激活),但同时输出层的权重和偏置缩小 1/2⁽ˡ⁻¹⁾倍,得到的线性结果不变,则损失值不变,所以最终优化得到的参数与初始值相关。

  2. 如果输入放大 2 倍的同时输出层权重缩小 2 倍,线性结果不变,损失值也不变。所以最终优化得到的 𝐖,𝐛 与输入数据相关。

训练神经网络时的目的是找到损失函数 J(W,b) 的最小值,但相同的损失值可能对应多组绝对值(模长)不同的(W,b)。

绝对值不同的 𝐖,𝐛 可能在训练集上的损失值相同,但在测试集、unseen输入、“带噪声的输入"上的表现有差别,不同参数的泛化能力不同。 绝对值大的参数会把噪声放大,从而影响预测结果。

正则化就是人为的设定参数𝐖 的取值范围(可行域),让W不能超出该范围,从而在可行域范围内,求损失函数的最小值。带条件的优化问题可以用拉格朗日乘数法求解。 我们只需要规定 𝐖 的范围(多项式各未知数的系数),因为 W 直接决定了模型曲线是什么样子,而 b 与最终拟合的曲线的形状(过拟合与否)无关,b只影响平移,因此只要𝐖 被约束好了,b在训练时会自动调整好,所以不需额外做约束。

w 的可行域范围

在求损失函数最小值时,权重 𝐖 的模长不要超过C:

  • 若采用曼哈顿距离度量模长,即计算向量的L1范数,则优化问题为:
    min J(𝐖 , 𝐛, 𝐗), s.t. ‖𝐖‖₁-C≤0

  • 若采用欧几里得距离计算模长(向量的L2范数),则优化问题为:
    min J(𝐖 , 𝐛, 𝐗), s.t. ‖𝐖‖₂-C≤0

把优化问题写成拉格朗日函数 = 目标函数 + 约束条件乘以拉格朗日乘子 λ:
L(𝐖, λ) = J(𝐖) + λ(‖𝐖‖₁ - C),
然后求解:$\rm min_𝐖 \ max_λ L(𝐖,λ), s.t. λ≥0$ (不考虑b,X)

上图坐标轴是 𝐖 的各个维度,椭圆是损失函数J(𝐖)的等高线,中心是损失函数的最小值对应的 𝐖,绿色框代表可行域范围(𝐖 的模长限制),蓝色点是在满足约束条件时,损失函数能取到的最小值,对应的𝐖 ;或者说在可行域范围内找损失函数梯度+𝐖可行域梯度=0的点。

“当目标函数是一个凸函数或是一个凹函数,并且对应的约束条件是一个凸集,那么整个问题(目标函数+λ⋅约束条件)就是一个凸优化问题”。 约束条件采用L1或L2范数时,可行域是一个凸集。对应于凸集的约束条件并不会改变原来问题的性质, 即如果原来的问题本身是一个凸问题,加上这个约束条件后,仍然是凸问题,如果原来的问题是非凸问题,加上这个约束条件也不会让这个问题变得更糟糕。

(2022-11-07) 损失函数与正则化项都画在二维平面上,是因为研究的只是“两个对象”:输入X和输出Y之间的关系?
不,因为是要限制w的模长,二维平面只表示了二维w。加了正则化项,相当于修改了初始时的w,缩短它到那条虚线的距离,但不考虑它对应的损失值变大还是变小了,虚线总是沿着损失函数的梯度方向,而且连接着损失值最小的那个w,不过那条虚线上的w是等比的,等比例缩放的 w 能收敛到的最值是相同的

(2023-01-30) 正则化项 λ‖𝐖‖ 的作用是持久的。在 λ‖𝐖‖ 的基础上,𝐖 做调整以使损失值最小,也就是使 J(𝐖) 与 λ(‖𝐖‖₁ - C) 两项的梯度抵消(等大反向)。“在原始最小二乘的结果上做了缩放”4

L1, L2 正则化项

把拉格朗日函数展开:

L(𝐖,λ) = J(𝐖) + λ(‖𝐖‖₂-C) = J(𝐖) + λ‖𝐖‖₂ - λC

但是常见的 “损失函数+ L2正则化项” 的表达式是 拉格朗日函数+λC:

L’(𝐖,λ) = L(𝐖,λ) + λC = J(𝐖) + λ‖𝐖‖₂

在求L’ 和 L 这两个拉格朗日函数最小值时,虽然最小值可能不一样,但对应的 𝐖 是一样的 (因为只要求解 $∇_𝐖 L'(𝐖,λ) =∇_𝐖 L(𝐖,λ)=0$):

$arg_𝐖 (min_𝐖\ max_λ L'(𝐖,λ), s.t.\ λ≥0) = arg_𝐖 (min_𝐖\ max_λ L(𝐖,λ), s.t.\ λ≥0)$

如何直观理解 L’ 呢? 或者说:为什么"常用的L2正则化表达式"比"损失函数加上 𝐖 约束条件写成的拉格朗日函数”,少一个 λC 呢?

C 决定了 𝐖 的模长,不指定 C 是因为 λ 可以控制模长的范围。拉格朗日乘子λ的作用是调节"约束条件λ‖𝐖‖的梯度"的大小,使之与"目标函数J(𝐖)的梯度"等大反向抵消(求导=0就是求梯度=0的点)。 当λ=0时,相当于没有约束;而当λ=inf时,W会趋于0,失去拟合能力了。λ 可以用cross validation 来选择

红色是损失函数的等高线,绿色是约束条件的等高线,箭头表示梯度

λ 的绝对值等于"损失函数J(𝐖)的梯度大小"除以"约束条件对应函数λ‖𝐖‖的梯度大小",所以空间中各点处的λ就能算出来,反过来不同的 λ 对应的点的位置不同。只有在恰当的位置J(W)与λ‖𝐖‖的梯度之和才等于0。 ~~不同的 λ 对应的梯度=0的点的位置不同,损失函数J(𝐖)最小值不同,但对应的(拉格朗日函数的最优)W是相同的??? ~~

λ和C之中只有一个超参数:在拉格朗日函数中,C是超参数,人为指定模长范围C后,λ 也就跟着确定了;而在 L’ 中,λ 是超参数,人为指定后,就能唯一确定梯度=0的点的位置。

L2正则化(给定λ后)确定的最值点(最优𝐖)基本不会落在坐标轴上(可行域是圆形), 而L1正则化找到的满足约束条件与目标函数的梯度之和=0的点(可行域范围与损失函数等高线相切的点)容易取在坐标轴上(可行域有尖角且落在坐标轴上,容易与损失函数相切), 当最优 𝐖 落在某一坐标轴上时,只有那一维不是0,其他维度的坐标都是0。

比如依据两个特征做判断时,最优 𝐖 不落在坐标轴上,则两个特征都有一定的决定作用, 而通过调整 λ 使最优W落在坐标轴上时,则只会关注该轴特征的有无,所以使用 L1 可以使决策变得简单,使 W 向量变得稀疏(只有某个“重要”维度(对结果贡献大)有值,其他维都是0),把特征之间的关系去耦合了,把模型复杂度降低了,从而减少过拟合。 但是L1 的解不太稳定,训练时各批次数据的损失函数不同,椭圆会变化,切点可能从一个轴换到另一个轴上,对应的W变化大。3

L1 和 L2 都是对 W 进行约束,但效果不同,可以把二者结合起来一起用。L2正则化只是限制模长,L1 正则化还带来了稀疏性

正则化带来的损失值误差?不重要啊

评论:上图绘制的椭圆对应的损失函数J(𝐖)的接收的输入是整个实数域,而在神经网络中,损失函数接收的是网络的输出值,网络不同的权重可能对应相同的输出值,损失值也就相同

因为不同的初始参数 𝐖 最终收敛到的损失函数最小值可能是相等的,比如等比缩放参数时,min J(𝐖 ,𝐛) = min J(a𝐖 ,a𝐛), (𝐖 ,𝐛) 与 (a𝐖 ,a𝐛) 共线(虚线),

加约束条件λ‖𝐖‖与不加约束条件(λ=0),通过最小化拉格朗日函数L(𝐖,λ)收敛到的 W 不同(W由λ决定),但是如果两个向量W是共线的,它们对应的 L(W,λ) 能够收敛到的最小值(where L(W,λ)的梯度=0)是相同的,只不过λ取的不好,还没走到最小值,还没平衡好 J(W) 和 ||W||之间的权重比例。

同一虚线上的 W 最终能够收敛到的拉格朗日函数值是相同的。虚线上的点是本可能收敛到的最值

如果不加约束条件,初始的较大的 W 本可以收敛到J(W)椭圆中心(损失最小值),但是因为指定了约束条件λ,模长被限制了,被拉向原点了,找到的最优W与椭圆中心离得很远,损失值J(W)变大了,看起来就带来了误差。 但是(最小化拉格朗日函数过程中的)误差并不是到椭圆中心的距离,而是到“虚线”的距离,虚线上的 W 已经调整到能使 J(W) 与 ||W||的梯度共线,因为 λ 是人为设置的,所以W还要继续调整,最终虚线上的W使 L(W,λ)的梯度=0。

在虚线上的不同 W 对应的拉格朗日函数值L(W,λ)的梯度是相同的(在虚线上的点,方向共线已满足,只是λ不同), 虽然可行域越小,对损失函数J(W)的最小值偏离的误差就越大,因为W初始值决定了最终能收敛到哪个J(W),但关注的不是它J(W)。

W调整到最后:J(W)的梯度方向与||W||梯度方向共线,并且对于超参数缩放因子λ,有L(W,λ)的梯度=0。

所以真正关注的到最优解的偏差,是到虚线的距离,超参数λ选的好与坏,带来的偏差不大,所以能用正则化就用。

-

例子:只有两个分量的W 与对应的损失值 绘制的图像为:

同心椭圆是损失函数 J 的等高线,即每一圈椭圆上,损失值是相同的,中间的灰色图形的最外沿的一圈代表 W 的范数。正方形代表 L1 范数的图像,圆形代表 L2 范数的图像


看下这篇:机器学习之正则化(Regularization)- Acjx -博客园

DDG搜索:entropy regularization 熵正则化


(2023-01-30)
DDG search: “正则化项”

正则化的作用

原文链接:正则化及正则化项的理解 - guuuuu - CSDN

  1. 防止过拟合:𝐖 越小,拟合的函数曲线越简单光滑,越不容易过拟合;

  2. 正则化项代表先验信息:试验之前的对‖𝐖‖的认知,λ 是对先验信息的相信程度。
    频率派直接对参数𝐖进行分析(而贝叶斯派是对参数出现的概率P(𝐖)进行分析); 参数 𝐖 直接出现在损失函数中,所以频率派对损失函数做修正:加上了先验部分知识,即正则化项。

    对于模型:y = θ₀ + θ₁x₁ + … + θⱼxⱼ + … + θₙxₙ,解最优化问题:
    $arg\ min_{θ₀,θ₁,...,θₙ}\ J(θ) = 1/2m ⋅(∑ᵢ₌₁ᵐ(h_θ(xⁱ)-yⁱ)² + λ∑ⱼ₌₁ⁿ(θⱼ-\\^θⱼ)²)$, 其中 ^θⱼ 为先验解。
    λ 不同大小的选择,体现了这个先验解 ^θⱼ 的可信程度。如果 λ 是一个很小的整数,那正则化项将不起什么作用,说明给的先验解有很大的不确定性,在一定程度上是不可信的;
    如果 λ 很大,则正则化项占支配地位,最后的解将靠近于 ^θⱼ。

    频率派 贝叶斯派
    找最优𝐖 直接对参数 𝐖 本身下手 对参数出现的概率 P(𝐖) 下手
    思路 最优 𝐖 使训练误差最小 最优 𝐖 出现的后验概率 P(𝐖
    优化公式 损失函数 贝叶斯公式
    先验 正则化项(对𝐖 的先验认知) 自带先验概率(P(𝐖))
    修正 加上一部分先验信息 对似然值做 “P(𝐖)/配分函数” 的缩放
    超参数 λ; L1 or L2范数 先验概率的分布: Laplace, Gaussian
  3. 有助于处理条件数(condition number)不好的情况下,矩阵求逆困难的问题。

    • 概念:如果方阵 A 是非奇异的(A的行列式不等于0,正定矩阵一定是非奇异的),那么 A 的 condition number 定义为:𝜅(A) = ‖A‖ ‖A⁻¹‖
    • 可以看出:如果 A 是奇异的,那么 A 的条件数为无穷大。条件数越小,所获得的解越可靠,模型鲁棒性越好,抗干扰能力越强。 例如对于模型 AX=b,A 的条件数越小(A的行列式远不接近于0),那么 A,b 的稍微的变化对解 X 的影响越小,对 X 的求解对样本集(A,b)中引入的干扰的抵抗能力越强,即所求解 X 越可靠。


DDG search: “正则化项 pytorch”

  • PyTorch 12.正则化-科技猛兽-知乎
    1
    2
    3
    
    # optimizer w and w/o regularization
    optim_normal = torch.optim.SGD(net_normal.parameters(), lr=lr_init, momentum=0.9)
    optim_wdecay = torch.optim.SGD(net_weight_decay.parameters(), lr=lr_init, momentum=0.9, weight_decay=1e-2)
    

DDG search: “pytorch optimizer weight decay” SGD-pytorch docs


(2023-02-26) DDG serach: “正则化项 可以完全避免过拟合吗”

在机器学习中,L2正则化为什么能够缓过拟合? - 知乎


Ref

Built with Hugo
Theme Stack designed by Jimmy