NFL定理及其对学习算法的实质意义

Posted my-python-learning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFL定理及其对学习算法的实质意义相关的知识,希望对你有一定的参考价值。

上一篇中的NFL定理的简化论述

定理表述: 无论学习算法(zeta_a)多“聪明”以及(zeta_b)多“笨拙”,他们的误差期望值是相同的

定理假设:所有“问题”出现的机会相同,或者所有问题同等重要。以及我们希望学习的真实目标函数f是均匀分布的

定理的简化论证

1.假设样本空间(chi)和假设空间H,令P(h|X,(zeta_a))代表算法(zeta_a)基于训练数据X产生假设h的概率,再令f代表我们希望学习的真实目标函数。令(E_{ote})(zeta_a)的训练集外误差产生概率的期望值((E_{ote})的下标ote指的是Off-training error)

2.令(Psi(.))表示一个特征函数,当(.)中的.为布尔值1时,(Psi(.)=1)否则(Psi(.)=0)

3.对假设空间H里的任何一个h来说,误差期望(E^1)=(sum_{xinchi-X})P(x)(Psi(h(x) e f(x)))P((h|X,zeta_a))。这是因为,当h(x) = f(x)时,这样误差出现的概率并不需要算作期望值的一部分;而当(h(x) e f(x))时,误差出现概率才需要记入。因此,我么可以得到对某一确定的真实的目标函数f而言,

? (E_{ote}(zeta_a|X,f)=sum_hsum_{xinchi-X}P(x)Psi(h(x) e f(x))P(h|X,zeta_a))

那么,相应的,可以得到对所有真实的目标函数f而言,有如下结论:

? (sum_{f}E_{ote}=sum_{f}sum_{h}sum_{xinchi-X}P(x)Psi(h(x) e f(x))P(h|X,zeta_a))

这就是一般的学习算法(zeta_a)对训练集外的所有样本以及所有真实目标函数f的误差误差概率期望

  1. Wolpert 和 Macready 证明了对所有的学习算法(zeta_i),满足定理假设情况下(sum_fE_{ote})值都是相等的。(因此这一定理也被称为是“No Free Lunch Theorem”,即"没有免费午餐"理论)。关于定理的严格证明,可以自学参考相关文献。

定理在二分类下的特殊情形(也就是二分类下的说明)

若考虑的问题是二分类问题,则目标真实函数的值域被限定在Y={0,1}上,那么f即是一个(chi o {0,1})的映射关系,若对可能的f按照均匀分布对误差求和,则有

? (sum_f E_{ote}(zeta_a|X,f)=sum_fsum_hsum_{xinchi-X}P(x)Psi(h(x) e f(x))P(h|X,zeta_a))

该式子的意义是,对每个真实目标函数f而言,每个假设h,对每个训练集外的样本x求误差期望。因此也可以看作,对每个训练集外的样本x而言,它以P(x)的概率,对每个假设h,以P(h|X,(zeta_a))的概率对所有真实目标函数f求误差期望。因此得到等价的下式:

? (sum_fE_{ote}(zeta_a|X,f)=sum_{xinchi-X}P(x)sum_hP(h|X,zeta_a)sumPsi(h(x) e f(x)))

? (=sum_{xinchi-X}P(x)sum_hP(h|X,zeta_a)frac{1}{2}2^{|chi|})(这一步有离散数学基础的应该都能明白)

? (=frac{1}{2}2^{|chi|}sum_{xinchi-X}P(x)sum_hP(h|X,zeta_a))(式子等价变形,将常数提到最前面)

? (=2^{|chi|-1}sum_{xinchi-X}P(x)*1) (根据(P(h|X,zeta_a))的含义可以得到这一步的化简,(P(h,X,zeta_a))指的是算法(zeta_a)基于训练集X产生假设h的概率,那么对所有假设h而言自然综合就是1,这是概论了的公理化定义里包含的)

而上式二分类的特殊情形下的推导也正显示出,总误差和学习算法无关。(非二分类也可类似推导)

小结

? NFL定理并没有否定学习算法本身的好坏。NFL定理一个重要前提是:所有“问题”出现的机会相同,或者所有“问题”同等重要。但实际情况下并不是这样。我们总是关注我们当下要解决的问题,这就不符合假设了。另外,在二分类特例下,我们假设f是均匀分布的,实际情况下也并非这样。

因此,NFL定理的本质,不是想说明学习算法没有好坏之分,而是想说明,脱离具体问题,空泛谈论什么是好的学习算法本身是毫无意义的。因为那样他们的误差期望是相同的。要讨论某个学习算法的相对优劣,必须针对具体的学习问题。在后面的机器学习过程中,这是不可忽略的一点。

以上是关于NFL定理及其对学习算法的实质意义的主要内容,如果未能解决你的问题,请参考以下文章

朴素贝叶斯算法理论推导及其变种算法

二次剩余定理及Cipolla算法入门到自闭

机器学习著名定理之—No Free Lunch定理详解

算法学习笔记--余数定理

理论: 数论:拓展欧几里得算法及其证明

最佳文本文档分类算法 [关闭]