【深度学习】通俗理解偏差(Bias)与方差(Variance)
在统计学习中,我们通常使用方差与偏差来衡量一个模型
1. 方差与偏差的概念
偏差(Bais): 预测值和真实值之间的误差
方差(Variance): 预测值之间的离散程度
低偏差低方差、高偏差低方差:
图中每个点表示同一个模型每次采样出不同样本训练出来的结果,我们期望的是低偏差低方差
低偏差高方差、高偏差高方差:
2. 模型泛化误差
假设我们有样本数据
D
=
{
(
x
1
,
y
1
)
,
.
.
.
,
(
x
n
,
y
n
)
}
D=\{(x_1,y_1),...,(x_n,y_n)\}
D={(x1,y1),...,(xn,yn)} ,其中真实值
y
=
f
(
x
)
+
ϵ
y = f(x) + \epsilon
y=f(x)+ϵ
在使用模型算法评价时,通常使用预测值
y
^
\hat y
y^ 和真实值
y
y
y 的距离,最常用的函数就是距离的平方,均方误差如下公式:
如下图所示(横轴表示模型复杂度,纵轴表示误差)我们希望在中间位置找到一个合适的模型复杂度,使得泛化误差尽可能的小。模型过于简单会导致欠拟合,模型过于复杂会导致过拟合。
泛化误差 = 偏 差 2 + 方差 + 数据噪声 泛化误差 = 偏差^2 + 方差 + 数据噪声 泛化误差=偏差2+方差+数据噪声
- 如果模型选择过于简单,会有很多特征学习不到,此时预测值与真实的误差就会很大,即偏差很大
- 随着模型的复杂度提升,模型学到特征也会越多,此时偏差会逐渐降低
- 当模型变得更复杂,模型此时可能会学习到一些数据噪声,此时方差变大
3. 降低方差、偏差、数据噪音
减少偏差:
- 使用较为复杂模型
- 集成学习算法 Boosting、Stacking
减少方差:
- 使用一个较为简单的模型
- 使用L1、L2等正则化技术
- 集成学习算法 Bagging、Stacking
减少数据噪音:
- 来自于数据采集误差,需要更精确的数据采集
本文参考:
https://blog.csdn.net/weixin_42327752/article/details/121428875