CS231N-L1与L2正则化

本文探讨了L1和L2正则化的原理,它们如何通过惩罚大参数和促使权重分布均匀来简化模型。L1正则化导致参数稀疏,有助于防止过拟合,与Dropout有相似效果。后续将通过二元函数进一步解释。

为什么要进行正则化

L1、L2正则化均能惩罚值较大的参数,并且能够选择权重的偏好,让权重、模型更加简单

L1、L2正则化公式

L1与L2正则化的偏好

L2正则化偏好“均匀分散”的权重

可以看出,加入L2正则化项的损失函数在训练时倾向将参数训练的更均匀和分散

L1正则化会使参数“稀疏”

含有很多值为0的权重的网络,具有稀疏性,稀疏性可以防治过拟合

L1正则化与Dropout作用有异曲同工之处,可使网络具有稀疏性

原理:

可以通过简单的二元函数来理解,待我复试之后来补之~

<think> 嗯,用户这次的问题聚焦在正则化项系数的具体形式上,特别是L1正则化中的$\frac{1}{2n}$因子和L2正则化标准形式的差异。这属于优化问题的细节设计,需要结合损失函数构造和优化目标来解答。 回顾对话历史,用户之前询问过矩阵求导公式,现在转向正则化技术,说明ta可能在研究机器学习模型的优化过程。从引用的内容看,用户似乎已经了解L1/L2的基本特性(如稀疏性、计算复杂度),但需要更深入的数学解释。 关键点在于目标函数的标准写法。观察到: 1. L2正则化通常写作$\frac{\lambda}{2}\|\mathbf{w}\|_2^2$而非$\frac{\lambda}{2n}\|\mathbf{w}\|_2^2$,这是为了简化梯度表达式(求导后$\lambda \mathbf{w}$更整洁) 2. 但L1正则化若写作$\lambda \|\mathbf{w}\|_1$,其次梯度会包含样本量$n$相关项(因为原始损失项$\frac{1}{n}\sum L_i$的梯度本身含$1/n$) 3. 因此某些文献(如Andrew Ng的CS229讲义)会对L1采用$\frac{\lambda}{n}\|\mathbf{w}\|_1$来保持优化一致性 特别要注意用户提到的"1/2n"形式——这实际是两种调整的叠加: - $1/n$用于样本量归一化 - $1/2$用于抵消L2范数平方项的求导系数(但L1无平方项故不需要) 关于引用[5]的贝叶斯视角补充:虽然先验分布的推导(拉普拉斯分布对应L1,高斯分布对应L2)能解释正则化形式,但系数$\frac{1}{2n}$属于工程实践而非概率约束,因此需要分开讨论。 最后生成的问题需延伸当前话题:正则化参数的实际调整技巧(问题1)、不同优化器的影响(问题2),以及历史系数设计文献(问题3)。 </think> 在正则化目标函数中,$\frac{1}{2n}$ 系数主要出现在 L2 正则化标准形式中,而 L1 正则化通常不包含该系数,原因在于**梯度计算优化**和**正则化强度标准化**需求: ### 一、核心原因:梯度计算的数学优化 1. **L2 正则化的标准形式** $$\min_{\mathbf{w}} \frac{1}{n} \sum_{i=1}^n L(\mathbf{w}; \mathbf{x}_i, y_i) + \frac{\lambda}{2} \|\mathbf{w}\|_2^2$$ - **$\frac{1}{n}$ 的作用**:将经验风险(损失项)归一化为样本均值,使目标函数值不受样本量影响 - **$\frac{1}{2}$ 的作用**: - 消除梯度计算中的系数:对 $\|\mathbf{w}\|_2^2$ 求导得 $2\mathbf{w}$, $\frac{1}{2}$ 抵消后梯度简化为 $\lambda \mathbf{w}$ - 避免梯度更新时引入额外系数:$\nabla_{\mathbf{w}} = \frac{1}{n} \sum \nabla L(\mathbf{w}) + \lambda \mathbf{w}$ 2. **L1 正则化的典型形式** $$\min_{\mathbf{w}} \frac{1}{n} \sum_{i=1}^n L(\mathbf{w}; \mathbf{x}_i, y_i) + \lambda \|\mathbf{w}\|_1$$ - **无 $\frac{1}{2}$ 的原因**: - L1 范数不可导,使用次梯度(subgradient)更新 - 次梯度计算为 $\text{sign}(\mathbf{w})$,无平方项产生的系数 2 - 添加 $\frac{1}{2}$ 无法简化计算,反而需调整 $\lambda$ ### 二、正则化强度的标准化对比 | 正则化类型 | 目标函数形式 | 梯度/次梯度形式 | $\lambda$ 作用 | |------------|------------------------------|------------------------|---------------------------| | **L2** | $\frac{\lambda}{2} \|\mathbf{w}\|_2^2$ | $\lambda \mathbf{w}$ | 直接控制惩罚强度 | | **L1** | $\lambda \|\mathbf{w}\|_1$ | $\lambda \cdot \text{sign}(\mathbf{w})$ | 直接控制稀疏性强度 | > 若在 L1 中添加 $\frac{1}{2}$,需重新调整 $\lambda$ 才能达到相同稀疏效果,徒增复杂度[^5]。 ### 三、样本量影响的统一处理 部分框架(如 Scikit-learn)对 **L1/L2 均添加 $\frac{1}{2n}$**: ```python # Scikit-learn 的逻辑回归目标函数 Objective = \frac{1}{n} \sum L(\mathbf{w}) + \lambda \left( \alpha \|\mathbf{w}\|_1 + \frac{1-\alpha}{2} \|\mathbf{w}\|_2^2 \right) ``` - **统一 $\frac{1}{n}$ 的目的**:确保 $\lambda$ 在不同样本量下具有可比性 - **弹性网络(Elastic Net)** 等混合正则化会同时包含 $\frac{1}{2}$ 和 $\frac{1}{n}$[^3] ### 四、总结差异根源 | 差异点 | L2 正则化 | L1 正则化 | |-----------------------|----------------------------|--------------------------| | **梯度系数优化** | 需 $\frac{1}{2}$ 抵消导数系数 | 次梯度无系数问题 | | **正则化强度一致性** | 添加系数会破坏 $\lambda$ 解释性 | 保持形式简洁更合理 | | **实现框架差异** | 部分库添加 $\frac{1}{2n}$ | 多数库保持 $\lambda \|\mathbf{w}\|_1$ | > 实践中建议优先遵循所用框架的默认形式(如 TensorFlow/PyTorch 使用 $\lambda \|\mathbf{w}\|_1$,LIBLINEAR 使用 $\frac{\lambda}{2} \|\mathbf{w}\|_2^2$),并通过交叉验证调整 $\lambda$[^1][^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值