NFL(没有免费的午餐)

NFL(没有免费的午餐)

@(周志华·机器学习)

1、诠释

NFL全称:No Free Lunch Theorem;意思是,所有的学习算法的期望性能是相同的。
NFL的前提是,所有“问题出现的机会相同”、或所有的问题同等重要。
NFL的寓意是,让我们清楚的认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有的学习算法都一样好。要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用。

2、证明

为简单起见,假设样本空间 χ \chi χ和假设空间?都是离散的.
P ( h ∣ X , ε a ) P(h|X,ε_a) P(hX,εa)代表算法 ε a ε_a εa基于训练数据 X X X产生假设 h h h的概率.
再令 f f f代表我们希望学习的真实目标函数.
那么 ε a ε_a εa的“训练集外误差”,即 ε a ε_a εa在训练集之外的所有样本上的误差,为:
E o t e ( ε a ∣ X , f ) = ∑ h ∑ x ∊ χ − X P ( x ) ⅼ ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , ε a ) E_{ote}(ε_a|X,f)=\sum_h\sum_{x∊\chi-X}P(x)ⅼ(h(x)≠f(x))P(h|X,ε_a) Eote(εaX,f)=hxχXP(x)(h(x)̸=f(x))P(hX,εa)

这是一个长公式,下面诠释一下这条公式:
E o t e : E 代 表 e x p e c t a t i o n , E_{ote}:E代表expectation, EoteEexpectation期望的意思; o t e 代 表 ote代表 ote off-training error,训练集外误差的意思。
E o t e ( ε a ∣ X , f ) : E_{ote}(ε_a|X,f): Eote(εaX,f):基于训练集 X X X和希望学习的真实目标函数 f f f的算法 ε a ε_a εa的训练集外误差。
P ( x ) P(x) P(x):样本 x x x出现的概率;在现实生活中,每一种样本都有其出现的概率,例如二子花生就比三子花生出现的概率大。
ⅼ ( h ( x ) ≠ f ( x ) ) ⅼ(h(x)≠f(x)) (h(x)̸=f(x)):指示函数,为真时取值1,否则取值0.
P ( h ∣ X , ε a ) P(h|X,ε_a) P(hX,εa):前面已经介绍过,代表算法 ε a ε_a εa基于训练数据 X X X产生假设 h h h的概率.但这个要如何理解呢?我们知道根据算法和训练集可以产生版本空间,版本空间里的假设可能有多条也可能只有1条,假设自然也就有概率了,但不管怎么说,所有的假设的概率加起来肯定等于1.
P ( x ) ⅼ ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , ε a ) P(x)ⅼ(h(x)≠f(x))P(h|X,ε_a) P(x)(h(x)̸=f(x))P(hX,εa):单个样本和单个假设 h h h的期望。这里可以回顾一下高中知识,数学期望的计算公式
E ( x ) = ∑ i n x i . p ( x i ) E(x) = \sum_i^nx_i.p(x_i) E(x)=inxi.p(xi)
∑ h ∑ x ∊ χ − X \sum_h\sum_{x∊\chi-X} hxχX:上述介绍过, h h h x x x都是有多个的,所以要对它们进行求和,我们计算的是训练集外的误差,所以 x ∊ χ − X x∊\chi-X xχX.

接下来就是公式推导了,推导前先介绍一下公式推导的前提。这里讨论二分类问题,且真实目标函数可以是任何函数Font metrics not found for font: . {0,1},函数空间为{0,1}Font metrics not found for font: .,其中Font metrics not found for font: .是样本数。对所有可能的 f f f按均匀分布对误差求和有:

∑ f E o t e ( ε a ∣ X , f ) \sum_fE_{ote}(ε_a|X,f) fEote(εaX,f)
= ∑ f ∑ h ∑ x ∊ χ − X P ( x ) ⅼ ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , ε a ) =\sum_f\sum_h\sum_{x∊\chi-X}P(x)ⅼ(h(x)≠f(x))P(h|X,ε_a) =fhxχXP(x)(h(x)̸=f(x))P(hX,εa)
= ∑ x ∊ χ − X P ( x ) ∑ h P ( h ∣ X , ε a ) ∑ f ⅼ ( h ( x ) ≠ f ( x ) ) =\sum_{x∊\chi-X}P(x)\sum_hP(h|X,ε_a)\sum_fⅼ(h(x)≠f(x)) =xχXP(x)hP(hX,εa)f(h(x)̸=f(x))
= ∑ x ∊ χ − X P ( x ) ∑ h P ( h ∣ X , ε a ) 1 2 2 ∣ χ ∣ =\sum_{x∊\chi-X}P(x)\sum_hP(h|X,ε_a)\dfrac{1}{2}2^{|\chi|} =xχXP(x)hP(hX,εa)212χ
= 1 2 2 ∣ χ ∣ ∑ x ∊ χ − X P ( x ) ∑ h P ( h ∣ X , ε a ) =\dfrac{1}{2}2^{|\chi|}\sum_{x∊\chi-X}P(x)\sum_hP(h|X,ε_a) =212χxχXP(x)hP(hX,εa)
= 2 ∣ χ ∣ − 1 ∑ x ∊ χ − X P ( x ) =2^{|\chi|-1}\sum_{x∊\chi-X}P(x) =2χ1xχXP(x)

让我们来看看这公式是如何推导的:
第一行应该都能看明白,就是在上一条公式中添加了 ∑ f \sum_f f。但为什么要对真实目标函数进行求和呢?因为这个函数不是唯一的,而是存在着一个函数空间;在现实中,我们为了某个目的而寻求唯一的真实目标函数,但在这里,我们没有目标、没有具体的问题,所以要对所有的真实目标函数进行求和。
第二行是怎么得到的?这个很容易理解,我们使用具体的变量表示出来:
$
a_1b_1c_1+a_2b_1c_1+…a_mb_1c_1+…+a_mb_nc_o =
(a_1+a_2+…+a_m)(b_1+b_2+…+b_n)(c_1+c_2+…+c_o)
$
第三行对真实目标函数进行求和:Font metrics not found for font: .。|?|个样本,每个样本对真实目标函数 f f f来说都可能取两个值0和1,那么真实目标函数的个数是所有样本可能取值的组合 C 2 1 ﹒ C 2 1 ﹒ ﹒ ﹒ C 2 1 C_2^1﹒C_2^1﹒﹒﹒C_2^1 C21C21C21,共|?|个 C 2 1 C_2^1 C21相乘,即Font metrics not found for font: .,若 f f f均匀分布,则有一半的 f f f x x x的预测与 h ( x ) h(x) h(x)不一致,指示函数为假时取值为0(零乘以任何数都得零),所以我们不需要对 h ( x ) h(x) h(x)一致的值求和。
第四行只是换位而已。
第五行对假设进行求和,上面说过,所有的假设加起来是等于1的。

显然,总误差与学习算法无关,也就是对于作意的学习算法,它们的期望都是一样的。对于作意的学习算法 ε a ε_a εa ε b ε_b εb都有:
∑ f E o t e ( ε a ∣ X , f ) = ∑ f E o t e ( ε b ∣ X , f ) \sum_fE_{ote}(ε_a|X,f) = \sum_fE_{ote}(ε_b|X,f) fEote(εaX,f)=fEote(εbX,f)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值