怎样理解L1和L2正则化?它们的区别
时间: 2025-05-31 08:53:34 浏览: 16
### L1和L2正则化的定义、作用及主要区别
#### 定义
L1正则化指的是模型参数的绝对值之和,通常表示为 $\|w\|_1 = \sum_{i=1}^{n}|w_i|$[^4]。
L2正则化则是指模型参数平方和的开方值,通常表示为 $\|w\|_2 = \sqrt{\sum_{i=1}^{n}w_i^2}$[^3]。
#### 作用
正则化的主要目的是防止模型过拟合,通过在损失函数中加入额外的约束项来控制模型复杂度。L1和L2正则化都能有效减少模型对训练数据的过度适应,提升其泛化能力[^1]。
- **L1正则化**:倾向于使部分模型参数变为零,从而实现特征选择的效果。这是因为L1正则化会促使权重向量变得稀疏,只保留最重要的特征[^2]。
- **L2正则化**:通过对较大数值的权重施加更大的惩罚,使得所有权重趋于较小且均匀分布的状态。这种特性有助于利用更多的输入特征,而非仅仅依赖少数几个重要特征[^3]。
#### 主要区别
1. **目标函数的影响**:
- L1正则化会使某些参数精确等于零,因此能够自动完成特征选择的任务[^2]。
- L2正则化会让所有的参数都变小,但不会将其缩减至零,这意味着它无法直接用于特征选择。
2. **几何解释**:
- L1正则化对应的解空间是一个菱形区域,在二维情况下表现为四个尖角形状,容易导致一些维度上的权值降为零。
- L2正则化形成的解空间是圆形或球面形式,在各方向上较为平滑,不容易产生稀疏性的效果[^3]。
3. **概率视角下的联系**:
- L1正则化可以视为先验分布服从拉普拉斯分布的结果。
- L2正则化相当于假设参数遵循高斯分布的情况。
综上所述,当希望获得简洁明了并具有较强解释力的模型时可以选择应用L1正则化;如果追求稳定性和更好的整体表现,则推荐采用L2正则化策略。
```python
import numpy as np
def l1_regularization(weights, alpha):
""" 计算L1正则项 """
return alpha * np.sum(np.abs(weights))
def l2_regularization(weights, alpha):
""" 计算L2正则项 """
return alpha * np.sqrt(np.sum(weights**2))
```
阅读全文
相关推荐


















