“微信公众号”
目录:
-
1. 为什么会有偏差和方差?
-
2. 偏差、方差、噪声是什么?
-
3. 泛化误差、偏差和方差的关系?
-
4. 用图形解释偏差和方差。
-
5. 偏差、方差窘境。
-
6. 偏差、方差与过拟合、欠拟合的关系?
-
7. 偏差、方差与模型复杂度的关系?
-
8. 偏差、方差与bagging、boosting的关系?
-
9. 偏差、方差和K折交叉验证的关系?
-
10. 如何解决偏差、方差问题?
1. 为什么会有偏差和方差?
对学习算法除了通过实验估计其泛化性能之外,人们往往还希望了解它为什么具有这样的性能。
“偏差-方差分解”(bias-variance decomposition) 就是从偏差和方差的角度来解释学习算法泛化性能的一种重要工具。
在机器学习中,我们用训练数据集去训练一个模型,通常的做法是定义一个误差函数,通过将这个误差的最小化过程,来提高模型的性能。然而我们学习一个模型的目的是为了解决训练数据集这个领域中的一般化问题,单纯地将训练数据集的损失最小化,并不能保证在解决更一般的问题时模型仍然是最优,甚至不能保证模型是可用的。这个训练数据集的损失与一般化的数据集的损失之间的差异就叫做
泛化误差(generalization error) 。
而泛化误差可以分解为
偏差(Biase) 、
方差(Variance) 和
噪声(Noise) 。
2. 偏差、方差、噪声是什么?
为了更好的理解偏差、方差和噪声概念,这一部分我分两个小节来阐述。2.1节,我用通俗易懂的语言表述概念。2.2节,我用数学公式定义偏差、方差和噪声概念。
2.1 简述偏差、方差、噪声
如果我们能够获得所有可能的数据集合,并在这个数据集合上将损失最小化,那么学习得到的模型就可以称之为
“真实模型” 。当然,在现实生活中我们不可能获取并训练所有可能的数据,所以“真实模型”肯定存在,但是无法获得。我们的最终目的是学习一个模型使其更加接近这个真实模型。
Bias和Variance分别从两个方面来描述我们学习到的模型与真实模型之间的差距。
Bias 是用
所有可能的训练数据集 训练出的
所有模型 的输出的
平均值 与
真实模型 的输出值之间的差异。
Variance 是
不同的训练数据集训练出的模型 输出值之间的差异。
噪声 的存在是学习算法所无法解决的问题,数据的质量决定了学习的上限。假设在数据已经给定的情况下,此时上限已定,我们要做的就是尽可能的接近这个上限。
注意:我们能够用来学习的训练数据集只是全部数据中的一个子集。想象一下,我们现在收集几组不同的数据,因为每一组数据的不同,我们学习到模型的最小损失值也会有所不同,它们与“真实模型”的最小损失也是不一样的。
2.2 数学公式定义偏差、方差、噪声
要进一步理解偏差、方差、噪声,我们需要看看它们的数学公式。