【学习笔记】斯坦福大学公开课(机器学习) 之学习理论.a

偏差与方差的权衡(Bias/variance tradeoff)

关于偏差与方差的概念:
https://www.zhihu.com/question/27068705/answer/35151681

在学习线性回归时,我们遇到这样的问题,对于一个回归问题,我们是采用比较简单的模型( y=θ0+θ1x )还是采用一个比较复杂的多项式模型( y=θ0+θ1x+θ5x5 )呢?
我们先看下面一个例子:
这里写图片描述
作为五阶多项式来说(如最右图),这不是一个好的模型,虽然它能够很好的将训练数据出来,但是这存在过拟合的现象,也就是说他的泛化性不好,即训练出来的模型在训练数据上有很好的表现,但是在其他数据集中就会表现欠佳。这里有个泛化误差(generalization error)的概念,它是指存在于测试集上而不在训练集上存在的期望误差。
这里可以看到最左后两张图的泛化误差都比较大。当然两种模型一种是欠拟合,一种是过拟合。当我们用一个线性模型来预估一个不是呈线性模型的数据时,模型不会得到数据的正确特征结构。一般的,我们就会定义一个模型的偏差(bias)来代表我们预测中的泛化误差。
除了偏差(bias),这里还有一个可以来组成泛化误差的。它是由拟合模型的方差(variance)组成,就比如最右图,五阶多项式就有很高的过拟合风险,它能把我们有限的样本数据集预测得很好,但是不能够真正表示出 x y的关系。所以当用这个模型去预测数据时,会得到的结果会有很大的泛化误差,就是因为模型的方差太大造成的。
通常,偏差和方差之间有一个权衡,如果我们的模型过于简单,拥有的参数比较少,那么它可能会有比较大的偏差,那么类似的,如果模型过于复杂,参数太多,它就是方差太大(而偏差较小),在上面的例子中,我们通过图形可以看到,中间的二次多项式比其它两者有更好的预测效果。

前言(Preliminaries)

接着,我们开始学习机器学习理论,我们会学习到针对不同的数据情况,怎样来选取最佳的模型,我们也会对以下一些问题做一些探讨:

  • 对于刚刚讨论过的偏差和方差,我们应该如何权衡?这个问题最终会讨论到究竟用几次多项式来训练数据。
  • 我们在训练模型时,一般都很注意泛化误差,但是所有模型都是通过训练集来训练模型的,为什么模型在训练集上的表现也能看出一些泛化误差的东西。或者说,模型在训练集上的误差与泛化误差有什么样的关系?
  • 在哪些特定的条件下,能证明学习算法能表现得很好。

先来看几个引理:

  1. 假设 A1,A2,A3Ak 是k个不同的事件。那么我们有概率:
    P(A1A2Ak)P(A1)+P(A2)P(Ak)
  2. Z1,Z2,Z3Zm 是m个独立同分布事件,它们都服从伯努利分布 Bernoulli(ϕ)
    P(|ϕϕ^|>γ)2exp(2γ2m)

    其中 γ>0 ϕ^=(1/m)mi=1Zi
    在机器学习理论中,这个也叫作切诺夫界(Chernoff bound),从这个式子可以看出,如果我们把随机变量的均值 ϕ^ 当作我们的 ϕ 的预测值,那么真实概率值离这个预测值很远的概率会比较小,只有 m 足够得大。

有了以上两个引理,我们来看二分类问题。我们有训练集S={(x(i),y(i));i=1,2,3m},他们是独立同分布,并且服从概率分布 D ;对于一个假设函数h,我们定义它的训练误差(training error)为(有时也叫做经验风险(empirical risk),经验误差(empirical error))

ε^(h)=1mi=1m1{h(xi)yi}

再定义泛化误差:
ε(h)=P(x,y)D(h(x)y)

这个式子表示从概率分布 D 中抽取一个新的数据(x,y),用假设函数 h 做分类结果错误h(x)y的概率。
至于是线性模型,我们假设 hθ(x)=1{θTx0} ,那么我们怎么样来找到一个合理的方式来确定 θ 参数?一种方法就是最小化训练误差:
θ^=argminθε^(h)

我们称这个过程是经验风险最小化(empirical risk minimization (ERM)),这个过程求出来的假设函数记为 h^=hθ^
现在把这个理论扩展到更通用的状态,我们定义一个假设类(hypothesis class) H ,这个类中有所有机器学习可以用的分类器,ERM就可以看做是在假设类H中,找到能最小化它的经验误差:
h^=argminhHε^(h)

有限函数集 H 的情况

基于以上的讨论,我们来证明一下h^的泛化误差与训练误差有一定的联系。
证明思路大概有两个步骤,首先,我们要证明训练误差 ε^(h) 针对所有 h 的泛化误差ε(h)都是可靠的估计,再由此引入一个 h^ 的泛化误差的上边界。
思考有这样一个伯努利分布随机的变量 Z ,当我们从数据集D中抽取一个样本 (x,y) ,那我们的随机变量 Z=1{hi(x)y} ,那么同样的,针对我们的训练数据集 Zj=1{hi(x(j))y(j)} ,因为 D 是独立同分布,那么我们的Z,Zj也是同分布。
根据前面讨论的,我们可以看到泛化误差 ε(hi)=P(x,y)D(hi(x)y) 恰好是伯努利分布 Z 的期望,而训练误差ε^(hi)=1mmi=1Zj又是我们随机变量 Zj 的平均值,所以我们就可以运用我们前文所说的引理2得到:

P(|ε(hi)ε^(hi)|>γ)2exp(2γ2m)

可以看到针对我们特定的某个假设函数 hi ,在训练样本数量m很大的情况下,训练误差和泛化误差会有很高的概率相差无几。但是我们需要证明的是针对所有的假设函数 h 都此结论,而不是针对一个单一的假设函数hi
为了进一步论证,我们把 |ε(hi)ε^(hi)|>γ 假设成为事件 Ai ,那么我们运用上文所说的引理1:
P(hiH.|ε(hi)ε^(hi)|>γ)=P(A1A2Ak)i=1kP(Ai)i=1k2exp(2γ2m)=2kexp(2γ2m)

等式两边同时用1做被减数(等式左边有一个逻辑变换)
P(¬hiH.|ε(hi)ε^(hi)|>γ)=P(hH.|ε(hi)ε^(hi)|γ)12kexp(2γ2m)

所以可以看到对于 H 集合中任何假设函数hi的训练误差和泛化误差之间的差异小于 γ 的概率是大于 12kexp(2γ2m)
在上面的不等式中,我们看到三个变量, γ,m 和关于误差的概率值,这三个变量分别可以更加其他两个变量来确定。
比如说,当样本 m 需要多大的时候,我们才能保证训练出来的模型的训练误差和泛化误差的差异在γ以内的概率大于 1δ ?我们可以代入以上的不等式中,求得:
m12γ2log2kδ

在机器学习算法中,我们把某一模型或算法需要达到特定表现时需要的样本数量称为样本复杂度(sample complexity)
同样的,当我们知道另外两个变量,要求变量 γ 的时候,我们可以得到以下不等式:
|ε(hi)ε^(hi)|12mlog2kδ

我们如何来证明通过 h^=argminhHε^(h) 得到的模型的泛化能力呢?
先定义 h=argminhHε(h) 表示在H函数集中最好的模型,那么我们就有:
ε(h^)ε^(h^)+γε^(h)+γε(h)+2γ

把以上的结论做一个定理:
|H|=k ,已知 m,δ ,那么
ε(h^)minhHε(h)+212mlog2kδ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值