1. 正则化概念
正则化是一种防止机器学习模型过拟合的技术,通过在损失函数中添加惩罚项,抑制模型过于复杂,避免其过于拟合训练数据中的噪声。在神经网络的训练过程中,通过限制模型的复杂度,增强其泛化能力,使模型在新数据上的表现更好。常见的正则化方法有以下几种:
- L2正则化(权重衰减):在损失函数中添加权重参数的平方和的惩罚项。
- L1正则化:在损失函数中添加权重参数绝对值和的惩罚项。
- Dropout:在训练过程中随机丢弃一部分神经元,防止神经元之间的共适应性。
2. 两种常见的正则化
2.1 L2正则化
L2正则化,也称为权重衰减,是最常用的正则化方法之一。它通过在损失函数中添加权重参数平方和的惩罚项,防止权重变得过大。损失函数变为
L total = L original + λ ∑ i w i 2 L_{\text{total}} = L_{\text{original}} + \lambda \sum_{i} w_i^2 Ltotal=Loriginal+λi∑wi2
在PyTorch中,可以通过在优化器中设置weight_decay
参数来实现L2正则化。例如:
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, weight_decay=0.01)
2.2 L1正则化
L1正则化通过在损失函数中添加权重参数绝对值和的惩罚项,使得一些权重参数趋向于零,从而实现特征选择。损失函数变为