本节内容需牢牢把握几个变量的概念:
y
y
y:观测值
f
(
x
)
f(x)
f(x):真实规律
f
^
(
x
)
\hat f(x)
f^(x):预测值
f
ˉ
(
x
)
\bar f(x)
fˉ(x):预测值均值
偏差:预测均值 - 真实规律值
方差:预测值_相对于_预测均值_的散乱程度
1 模型的预测误差
∙
\bullet
∙ 我们希望模型尽可能准确地描述数据背后的真实规律。
∙
\bullet
∙ 准确就是预测误差小
∙
\bullet
∙ 误差有三种来源,分别是:随机误差、偏差(bias)、方差(variance)
∙
\bullet
∙ 随机误差是不可消除的,与产生数据的机制有关(如不同精度的设备得到的数据随机误差不同)。
∙
\bullet
∙ 偏差和方差与“欠拟合”及“过拟合”联系在一起,偏差和方差之间需要权衡(Bias-Variance Tradeoff)
2 随机误差
∙
\bullet
∙ 随机误差是数据本身的噪音带来的,这种误差是不可避免的。
∙
\bullet
∙ 一般认为随机误差服从0均值的正太分布,记作
ε
N
(
0
,
δ
2
)
\varepsilon ~ N(0,\delta^2)
ε N(0,δ2),其中N为正太分布。
∙
\bullet
∙ 因此,观测值y与数据产生规律f(x)之间的关系为:
y
=
f
(
x
)
+
ε
y=f(x) + \varepsilon
y=f(x)+ε
应检查高斯跟踪天体的误差表达是不是
y
=
f
(
x
)
+
ε
y = f(x) + \varepsilon
y=f(x)+ε。注意:f(x)是数据产生规律,不是
f
^
(
x
)
\hat f(x)
f^(x)
3 偏差
∙
\bullet
∙ 偏差:模型预测值
f
^
(
x
)
\hat f(x)
f^(x)的期望与真实规律f(x)之间的差异,记为:
b
i
a
s
(
f
^
)
=
E
(
f
^
(
x
)
)
−
f
(
x
)
bias(\hat f) = E(\hat f(x)) - f(x)
bias(f^)=E(f^(x))−f(x) E表示期望
∙
\bullet
∙ 期望从哪里来?
∙
\bullet
∙ 假设我们可以对整个学习流程重复多次
∙
\bullet
∙ 每次收集训练数据集,利用训练数据训练得到模型,根据训练号的模型对测试样本进行测试。
∙
\bullet
∙ 由于每次收集到的样本稍有不同(每次训练数据集可视为总体数据独立同分布的样本。由于随机性,每次训练样本会有差异),从而每次得到的模型也稍有不同,预测结果也稍有不同。
∙
\bullet
∙ 多次也预测结果取平均值为期望
思考:为什么独立同分布会如此重要?
4 方差
∙
\bullet
∙ 方差:模型预测值的方差,记为:
V
(
f
^
)
=
E
[
(
f
^
(
x
)
−
E
[
f
^
(
x
)
]
)
2
]
V(\hat f) = E[(\hat f(x) - E[\hat f(x)])^2]
V(f^)=E[(f^(x)−E[f^(x)])2]
方差描述的是通过学习拟合出来的结果自身的不稳定性。数学上的方差,随机变量减去期望后,好像没有平方吧?
∙
\bullet
∙ 模型预测值方差的理解
∙
\bullet
∙ 同样重复学习流程多次
∙
\bullet
∙ 多次预测结果的方差
5 偏差与方差
Understanding the Bias-Variance Tradeoff:https://liam.page/2017/03/25/bias-variance-tradeoff/
偏差和方差是一对矛盾体,想都低比较难,需要平衡。
6 偏差-方差分解
∙
\bullet
∙ 以平方误差(L2损失)为例,令
f
ˉ
(
x
)
=
E
[
f
^
(
x
)
]
\bar f(x) = E[\hat f(x)]
fˉ(x)=E[f^(x)]
∙
\bullet
∙ 预测误差可分解为:偏差的平方 + 方差
δ
2
\delta^2
δ2那以部分跟数据有关,跟模型无关,考虑模型的时候就值关注偏差平方和方差的部分。
第一个等号后的内容,看起来是期望,但通过期望公式展开后,就跟L2的目标函数很像,只不过L2的目标函数好像没有除以N(不太确定)。
根据老师讲解,以上推导过程第一行的第三个等号,用到了这样的特性:若两个部分独立,则相加求方差 = 分别求方差再相加。但不知道怎么套用的这个特性,
ε
\varepsilon
ε的方差倒的确是
δ
2
\delta ^2
δ2,但这一步整体还是不明白。
根据老师讲解,倒数第三个等号那一步
2
(
y
−
f
ˉ
(
x
)
)
2(y - \bar f(x))
2(y−fˉ(x))是常量,可以提出来,但我觉得这个常量应该是
2
(
f
(
x
)
−
f
ˉ
(
x
)
)
2(f(x) - \bar f(x))
2(f(x)−fˉ(x))吧,y是观测值,是个随机变量,反倒不是常量啊?
两个随机变量和求期望,等于分别求期望再相加。若两个部分独立,则相加求方差 = 分别求方差再相加。这两个特性应针对性的复习概率统计的相关章节。
7 偏差-方差平衡
∙
\bullet
∙ 通常,简单的模型方差低、偏差高;复杂的模型方差高、偏差低。
上边是PPT的截图,自己总结的结论如下表,其中后两行是集合之间的比较,第二、三行是模型之间的比较:
老师(不是原话,根据理解自己写的):如果多次生成数据训练,在多次之间,15阶多项式抖动会非常大,所以方差大。这个还是比较号理解。
难以理解的是训练集上线性模型的偏差高,对此可以想象在X轴上的一点A是真实值,考虑误差随机生成多个观测数据,则观测数据应是在A附近,并呈正态度分布,极端情况下复杂模型几乎都能拟合到这些观测点,而简单模型不能且不会特别抖动,所以复杂模型方差高,而就偏差来说,是预测均值和真实值的比较,复杂模型的预测均值会非常靠近A点,而简单模型的预测均值会离A点远一些,因为其拟合能力不强,所以简单模型的偏差高。
∙
\bullet
∙ 选择合适复杂度的模型
黑色曲线是通过
B
i
a
s
2
+
V
a
r
i
a
n
c
e
Bias^2 + Variance
Bias2+Variance计算出来的,最低点处是偏差和方差最好的平衡。
8 欠拟合和过拟合的外在表现
∙
\bullet
∙ 在实际应用中,有时候我们很难计算模型的偏差和方差,只能通过外在表现,判断模型的状态是欠拟合还是过拟合。
∙
\bullet
∙ 训练误差随着模型复杂度的增加一直减小。校验误差随着模型复杂度的增加先减小(欠拟合程度减轻);当模型复杂度超过一定值后,校验误差随模型复杂度增加而增大,此时模型进入过拟合状态。
但是一直没有演示过如何根据这个现象去寻找复杂度始终的模型,目前接触到的模型都是确定的,比如线性回归、逻辑回归等。
9 提高模型性能
∙
\bullet
∙ 欠拟合:当模型处于欠拟合状态时,根本的办法是增加模型复杂度。还可以增加模型的迭代次数、使用更多的特征、降低模型正则化水平。
∙
\bullet
∙ 过拟合:当模型处于过拟合状态时,根本的办法是降低模型复杂度。还可以扩大训练集、减少特征数量、提高模型正则化水平。
之前有专门讲过拟合、欠拟合的章节,那里也有一些针对性的解决方案,应结合那里的方案来看。