提前终止法与正则化法之间关系

本文探讨了提前终止法和正则化法在优化过程中的关系,通过数学分析证明在特定条件下,两种方法可以达到近似等价。通过对比两种方法的迭代轨迹和性能指标,揭示了它们在控制过拟合方面的相似性,并给出了迭代次数与正则化参数之间的近似转换关系。

前言


前两篇博客(从贝叶斯角度理解正则化正则化)分别介绍了提前终止法和正则化法。

Snipaste_2019-11-19_18-36-48.png

它们可以近似等价的吗?怎么近似等价?

20191109213126.png

左边这张图轮廓线表示负对数似然函数的轮廓,虚线表示从原点开始的SGD所经过的轨迹。提前终止法的轨迹在较早的$\tilde \omega 点 终 止 , 而 不 是 在 停 止 在 最 小 化 代 价 的 点 点终止,而不是在停止在最小化代价的点 {\omega ^{\text{*}}}$处;
右边这张图使用了L2正则化法。虚线圆圈表示L2惩罚的轮廓,L2惩罚使得总代价的最小值比非正则化代价的最小值更靠近原点。
可以看出,两种方法近似等价。

接下来对两者进行分析。

提前终止法分析


新文档 2019-11-09 17.19.43.jpg

对于上图所示的单层线性网络,该线性网络的均方误差性能函数时二次的,即:

F ( x ) = c + d T x + 1 2 x T Ax F(x) = c + d^{T}x + \frac{1}{2}x^{T}\text{Ax} F(x)=c+dTx+21xTAx

其中,为Hessian矩阵。

① 为了研究提前终止法性能,我们将分析最速下降法在线性网络上的演化。由式10.16知性能指标的梯度:

∇ F ( x ) = A x + d \nabla F(x) = Ax + d F(x)=Ax+d

最速下降法:

x k + 1 = x k − α g k = x k − α ( A x k + d ) x_{k + 1} = x_{k} - \alpha g_{k} = x_{k} - \alpha(Ax_{k} + d) xk+1=xkαgk=xkα(Axk+d)

对于二次性能指标,极小值出现在下面的点:

x ML = − A − 1 d x^{\text{ML}} = - A^{- 1}d xML=A1d

上标ML表示结果使似然函数极大化同时使误差平方和极小化。则

x k + 1 = x k − α ( A x k + d ) = x k − α A ( x k + A − 1 d ) = x k − α A ( x k + x ML ) = [ I − αA ] x k + α A x ML = M x k + [ I − M ] A x ML {x_{k + 1} = x_{k} - \alpha(Ax_{k} + d)}\\{\text{}= x_{k} - \alpha A(x_{k} + A^{- 1}d)}\\{\text{} = x_{k} - \alpha A(x_{k} + x^{\text{ML}})}\\{\text{} = \left\lbrack I - \text{αA} \right\rbrack x_{k} + \alpha Ax^{\text{ML}}}\\{\text{} = Mx_{k} + \left\lbrack I - M \right\rbrack Ax^{\text{ML}}} xk+1=xkα(Axk+d)=xkαA(xk+A1d)=xkαA(xk+xML)=[IαA]xk+αAxML=Mxk+[IM]</

### 深度学习中的正则化 #### 正则化的定义 正则化是一种用于减少模型过拟合的技术,在深度学习中通过引入额外的信息或约束条件,使得模型更加简单并具有更好的泛化性能。它主要通过对损失函数增加惩罚项的方式实现,从而抑制模型参数的过度增长。 #### 常见的正则化及其作用 1. **L1 正则化** L1 正则化通过对权重向量的绝对值之和施加惩罚来简化模型结构。其核心在于促使部分权重变为零,从而使模型更稀疏[^2]。这种特性对于特征选择非常有用,因为它可以自动忽略那些不重要的输入特征。 数学表达式如下: \[ J(w) = Loss + \lambda \|w\|_1 \] 2. **L2 正则化 (Ridge Regression)** L2 正则化则是通过对权重平方和进行惩罚,使所有权重都趋向于较小数值而非完全为零。这种方能够有效平滑权重分布,避免某些权值过大而导致模型不稳定的情况发生。 表达形式为: \[ J(w) = Loss + \frac{\lambda}{2} \|w\|_2^2 \] 3. **Dropout 技术** Dropout 是一种专门针对神经网络设计的独特正则化手段。在训练过程中随机丢弃一部分节点(即让这些节点暂时失效),以此模拟多个子网络的同时工作状态。最终预测时采用整个网络作为平均效果输出。这种方式不仅降低了各层之间可能存在的依赖关系,还显著增强了系统的鲁棒性和抗干扰能力。 4. **Early Stopping 提前终止** Early stopping 并不属于严格意义上的正则化策略,但它确实可以通过监控验证集误差变化趋势及时停止迭代过程达到类似目的——既防止因长时间优化而陷入局部最优解又保持了一定程度上的简洁性[^1]。 以下是基于 PyTorch 的一个简单的 L2 正则化代码实例: ```python import torch from torch import nn, optim class SimpleModel(nn.Module): def __init__(self): super(SimpleModel, self).__init__() self.fc = nn.Linear(10, 1) model = SimpleModel() criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=0.001) # 设置weight decay即实现了L2 regularization for epoch in range(num_epochs): outputs = model(inputs) loss = criterion(outputs, targets) optimizer.zero_grad() loss.backward() optimizer.step() ``` 上述代码片段展示了如何利用 `torch.optim` 中的 `SGD` 类内置选项轻松完成带有 L2 正则化的梯度下降操作。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值