偏差与方差的权衡(Bias/variance tradeoff)
关于偏差与方差的概念:
https://www.zhihu.com/question/27068705/answer/35151681
在学习线性回归时,我们遇到这样的问题,对于一个回归问题,我们是采用比较简单的模型(
y=θ0+θ1x
)还是采用一个比较复杂的多项式模型(
y=θ0+θ1x+⋯θ5x5
)呢?
我们先看下面一个例子:
作为五阶多项式来说(如最右图),这不是一个好的模型,虽然它能够很好的将训练数据出来,但是这存在过拟合的现象,也就是说他的泛化性不好,即训练出来的模型在训练数据上有很好的表现,但是在其他数据集中就会表现欠佳。这里有个泛化误差(generalization error)的概念,它是指存在于测试集上而不在训练集上存在的期望误差。
这里可以看到最左后两张图的泛化误差都比较大。当然两种模型一种是欠拟合,一种是过拟合。当我们用一个线性模型来预估一个不是呈线性模型的数据时,模型不会得到数据的正确特征结构。一般的,我们就会定义一个模型的偏差(bias)来代表我们预测中的泛化误差。
除了偏差(bias),这里还有一个可以来组成泛化误差的。它是由拟合模型的方差(variance)组成,就比如最右图,五阶多项式就有很高的过拟合风险,它能把我们有限的样本数据集预测得很好,但是不能够真正表示出
x
与
通常,偏差和方差之间有一个权衡,如果我们的模型过于简单,拥有的参数比较少,那么它可能会有比较大的偏差,那么类似的,如果模型过于复杂,参数太多,它就是方差太大(而偏差较小),在上面的例子中,我们通过图形可以看到,中间的二次多项式比其它两者有更好的预测效果。
前言(Preliminaries)
接着,我们开始学习机器学习理论,我们会学习到针对不同的数据情况,怎样来选取最佳的模型,我们也会对以下一些问题做一些探讨:
- 对于刚刚讨论过的偏差和方差,我们应该如何权衡?这个问题最终会讨论到究竟用几次多项式来训练数据。
- 我们在训练模型时,一般都很注意泛化误差,但是所有模型都是通过训练集来训练模型的,为什么模型在训练集上的表现也能看出一些泛化误差的东西。或者说,模型在训练集上的误差与泛化误差有什么样的关系?
- 在哪些特定的条件下,能证明学习算法能表现得很好。
先来看几个引理:
- 假设
A1,A2,A3⋯Ak
是k个不同的事件。那么我们有概率:
P(A1∪A2⋯Ak)≤P(A1)+P(A2)⋯P(Ak) -
Z1,Z2,Z3⋯Zm
是m个独立同分布事件,它们都服从伯努利分布
Bernoulli(ϕ)
:
P(|ϕ−ϕ^|>γ)≤2exp(−2γ2m)
其中 γ>0 , ϕ^=(1/m)∑mi=1Zi
在机器学习理论中,这个也叫作切诺夫界(Chernoff bound),从这个式子可以看出,如果我们把随机变量的均值 ϕ^ 当作我们的 ϕ 的预测值,那么真实概率值离这个预测值很远的概率会比较小,只有 m 足够得大。
有了以上两个引理,我们来看二分类问题。我们有训练集
再定义泛化误差:
这个式子表示从概率分布 D 中抽取一个新的数据
至于是线性模型,我们假设 hθ(x)=1{θTx≥0} ,那么我们怎么样来找到一个合理的方式来确定 θ 参数?一种方法就是最小化训练误差:
我们称这个过程是经验风险最小化(empirical risk minimization (ERM)),这个过程求出来的假设函数记为 h^=hθ^ 。
现在把这个理论扩展到更通用的状态,我们定义一个假设类(hypothesis class) H ,这个类中有所有机器学习可以用的分类器,ERM就可以看做是在假设类
有限函数集 H 的情况
基于以上的讨论,我们来证明一下
证明思路大概有两个步骤,首先,我们要证明训练误差
ε^(h)
针对所有
h
的泛化误差
思考有这样一个伯努利分布随机的变量
Z
,当我们从数据集
根据前面讨论的,我们可以看到泛化误差
ε(hi)=P(x,y)∽D(hi(x)≠y)
恰好是伯努利分布
Z
的期望,而训练误差
可以看到针对我们特定的某个假设函数 hi ,在训练样本数量m很大的情况下,训练误差和泛化误差会有很高的概率相差无几。但是我们需要证明的是针对所有的假设函数 h 都此结论,而不是针对一个单一的假设函数
为了进一步论证,我们把 |ε(hi)−ε^(hi)|>γ 假设成为事件 Ai ,那么我们运用上文所说的引理1:
等式两边同时用1做被减数(等式左边有一个逻辑变换)
所以可以看到对于 H 集合中任何假设函数
在上面的不等式中,我们看到三个变量, γ,m 和关于误差的概率值,这三个变量分别可以更加其他两个变量来确定。
比如说,当样本 m 需要多大的时候,我们才能保证训练出来的模型的训练误差和泛化误差的差异在
在机器学习算法中,我们把某一模型或算法需要达到特定表现时需要的样本数量称为样本复杂度(sample complexity)
同样的,当我们知道另外两个变量,要求变量 γ 的时候,我们可以得到以下不等式:
我们如何来证明通过 h^=argminh∈Hε^(h) 得到的模型的泛化能力呢?
先定义 h∗=argminh∈Hε(h) 表示在H函数集中最好的模型,那么我们就有:
把以上的结论做一个定理:
|H|=k ,已知 m,δ ,那么