正则化
1. 过拟合/欠拟合
正则化通过在损失函数中添加约束,防止模型参数在迭代过程中无限制增长,进而提高模型的泛化能力。
在模型训练过程中,参数的优化实际上是不断迭代,以找到一个方程 H θ ( x ) H_{\theta}(x) Hθ(x) 来拟合训练数据。然而,拟合程度的最佳水平仍需探讨。下面的回归模型拟合图展示了不同程度的拟合效果:
-
欠拟合:最左边的图表明模型拟合程度过低,无法有效捕捉数据中的模式,导致训练集和测试集的准确率都较低。这表明模型泛化能力不强,无法很好地适应新数据。
-
过拟合:最右边的图显示模型对训练数据的每个点都进行了精确拟合,包括噪声。这种高度复杂的模型虽然在训练集上表现出色,但在测试集上会因过度拟合噪声而表现较差。此外,过于复杂的模型往往会产生不平滑的曲线,失去对数据的有效预测能力。
-
适中拟合(Good Fit):中间的图展现了最佳的拟合程度,模型既不过于复杂,也不过于简单,能够合理预测数据的趋势。尽管在训练集上的准确率不如过拟合模型,但其在测试集上的表现最好,泛化能力最强。
问题 | 原因 | 解决办法 |
---|---|---|
欠拟合(Underfitting) | 1. 训练数据量不足。 2. 模型的复杂度过低。 3. 模型训练过早停止,参数未充分收敛。 4. 学习率过高。 | 1. 增加训练数据。 2. 增加模型的参数或采用更复杂的模型结构。 3. 增加训练轮次,确保模型参数充分收敛。 4. 调整学习率。 |
过拟合(Overfitting) | 1. 数据集中的噪声过多。 2. 特征数量过多。 3. 模型过于复杂。 | 1. 清洗数据,去除噪声和异常值。 2. 减少不必要的特征,降低模型的复杂性。 3. 引入正则化。 |
2. 正则化
正则化(Regularization)是在机器学习和深度学习模型训练中,通过对模型的复杂度施加约束,以防止模型过拟合的一种技术。正则化的目的是在模型的损失函数中增加一个惩罚项,该惩罚项对模型的参数施加一定的约束,从而限制模型过度拟合训练数据中的噪声和细节,提高模型在未见数据(测试集)上的泛化能力。
正则化主要通过对模型的参数(权重)添加约束项来实现,常见的正则化方法包括 L1 正则化 和 L2 正则化,它们的主要区别在于对参数的惩罚方式不同。
L1 正则化(Lasso Regularization)
L1正则化的惩罚项是参数的绝对值之和,其形式如下:
L
(
θ
)
=
1
n
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
+
λ
∑
j
=
1
m
∣
θ
j
∣
L(\theta) = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{m} |\theta_j|
L(θ)=n1i=1∑n(yi−y^i)2+λj=1∑m∣θj∣
- 损失函数的第一部分是模型的误差项,表示模型对训练数据的拟合程度。
- 损失函数的第二部分是正则化项,表示所有模型参数(权重)的绝对值之和,带有正则化强度的权重 λ \lambda λ。
L1正则化的特点: L1正则化倾向于让某些参数权重( θ j \theta_j θj) 变为零,这意味着它有助于进行特征选择,即只保留那些对模型影响较大的特征,而将不重要的特征的权重压缩到零。
L2 正则化(Ridge Regularization)
L2正则化的惩罚项是参数的平方和,其形式如下:
L
(
θ
)
=
1
n
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
+
λ
∑
j
=
1
m
θ
j
2
L(\theta) = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{m} \theta_j^2
L(θ)=n1i=1∑n(yi−y^i)2+λj=1∑mθj2
- 损失函数的第一部分是模型的误差项。
- 损失函数的第二部分是正则化项,表示所有模型参数的平方和,正则化强度由参数 (\lambda) 控制。
L2正则化的特点:L2正则化通过惩罚权重的平方值来限制模型的复杂度,强制所有权重变小,但不完全为零。相比L1正则化,它更加倾向于**缩小权重,**而不是直接将权重归零。L2正则化会使模型更加平滑,尤其是避免了过度拟合导致的模型过于复杂和拐来拐去的现象。它减少了模型对异常点和噪声的敏感度。
L1 与 L2 正则化的比较
特性 | L1 正则化 | L2 正则化 |
---|---|---|
惩罚项 | 参数绝对值之和 | 参数平方和 |
效果 | 产生稀疏解,部分参数会被压缩为零 | 所有参数被缩小,但不会压缩为零 |
适用场景 | 特征选择,稀疏模型 | 避免过拟合,参数的平滑约束 |
模型复杂度的影响 | 减少模型复杂度,去掉不重要的特征 | 限制模型复杂度,防止参数过大 |
算法 | Lasso 回归 | Ridge 回归 |
数学性质 | 非平滑优化问题 | 平滑优化问题 |
L1 + L2 正则化(Elastic Net)
在实际应用中,L1 和 L2 正则化可以结合使用,这种方法称为Elastic Net,其损失函数同时包含 L1 和 L2 正则化项:
L
(
θ
)
=
1
n
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
+
λ
1
∑
j
=
1
m
∣
θ
j
∣
+
λ
2
∑
j
=
1
m
θ
j
2
L(\theta) = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda_1 \sum_{j=1}^{m} |\theta_j| + \lambda_2 \sum_{j=1}^{m} \theta_j^2
L(θ)=n1i=1∑n(yi−y^i)2+λ1j=1∑m∣θj∣+λ2j=1∑mθj2
Elastic Net 同时具有 L1 的稀疏性和 L2 的平滑性,适用于高维数据集的特征选择和防止过拟合。
总结:
- 正则化是一种通过增加惩罚项来限制模型复杂度的技术,用于防止模型过拟合。
- L1正则化通过惩罚权重的绝对值,产生稀疏模型,并能够进行特征选择。
- L2正则化通过惩罚权重的平方,限制模型参数的大小,使模型更加平滑且不易过拟合。
两者各有优劣,根据具体任务需求可以选择 L1、L2 或 Elastic Net 组合正则化策略。
标签:机器,模型,拟合,正则,L2,L1,参数 From: https://blog.csdn.net/fzy2003/article/details/142179678