引言
在机器学习中,正则化(Regularization)是一种技术,用于减少模型复杂度,防止过拟合,并提高模型的泛化能力。通过在损失函数中添加一个额外的惩罚项,正则化鼓励模型学习更简单、更平滑的函数,从而在未见过的数据上表现得更好
文章目录
一、正则化
1.1 正则化的形式
1.1.1 L1 正则化(Lasso 回归)
- 惩罚项: λ ∑ j = 1 n ∣ w j ∣ \lambda \sum_{j=1}^{n} |w_j| λ∑j=1n∣wj∣
- 效果:不仅减少模型复杂度,还能实现特征选择,自动缩小权重
1.1.2 L2 正则化(Ridge 回归)
- 惩罚项: λ ∑ j = 1 n w j 2 \lambda \sum_{j=1}^{n} w_j^2 λ∑j=1nwj2
- 效果:减少模型复杂度,但不自动缩小权重
1.1.3 Elastic Net 正则化
- 惩罚项: λ ( α ∑ j = 1 n ∣ w j ∣ + ( 1 − α ) ∑ j = 1 n w j 2 ) \lambda \left( \alpha \sum_{j=1}^{n} |w_j| + (1 - \alpha) \sum_{j=1}^{n} w_j^2 \right) λ(α∑j=1n∣wj∣+(1−α)∑j=1nwj2)
- 效果:结合了 L1 和 L2 正则化的优点,可以实现特征选择和减少模型复杂度
1.2 正则化的优点
1.2.1 防止过拟合
通过减少模型复杂度,正则化有助于模型在未见过的数据上表现得更好
1.2.1 特征选择
某些类型的正则化(如 Lasso)可以自动缩小权重,从而实现特征选择
1.2.1 参数稳定性
正则化有助于避免模型对噪声的敏感性,提高参数的稳定性
1.3 正则化的缺点
1.3.1 增加模型复杂度
正则化需要额外的参数(如 lambda),这可能会增加模型的复杂度
1.3.2 参数选择
正则化参数(如 lambda)的选择对模型的性能有很大影响,需要通过交叉验证等方法来确定最佳值
在实际应用中,正则化是一种非常有效的技术,可以显著提高机器学习模型的性能。
二、正则化成本和梯度
2.1 目标
- 将先前的线性回归和对数几率回归的成本函数扩展一个正则化项
- 在添加了正则化项后,重新运行之前过拟合的示例
import numpy as np
%matplotlib widget
import matplotlib.pyplot as plt
from plt_overfit import overfit_example, output
from lab_utils_common import sigmoid
np.set_printoptions(precision=8)
2.2 添加正则化
上图展示了线性回归和对数几率回归的成本和梯度函数
注意: