NFL定理——没有免费的午餐No Free Lunch Theorem

算法宝典西瓜书里绪论里提到了NFL定理,即“没有免费的午餐”,虽然道理很简单,但是证明却稍显简陋。我在拜读了Wolpert在1996年发表的论文后,将整个证明过程阐明如下:
对于某个给定问题,假设存在搜索路径为 x 0 → x 1 → x 2 → . . . → x m x_0\rightarrow x_1\rightarrow x_2\rightarrow ...\rightarrow x_m x0​→x1​→x2​→...→xm​,损失函数为 f ( x ) f(x) f(x),并且假设算法不存在随机性,并且 x 0 → x 1 → x 2 → . . . → x m x_0\rightarrow x_1\rightarrow x_2\rightarrow ...\rightarrow x_m x0​→x1​→x2​→...→xm​不存在重复的搜索路径,即 x 0 , x 1 , . . . , x m x_0,x_1,...,x_m x0​,x1​,...,xm​互不相等.定义搜寻过程中损失为为 c ⃗ = \vec{c}= c ={ f ( x 0 ) , f ( x 1 ) , . . . , f ( x m ) f(x_0),f(x_1),...,f(x_m) f(x0​),f(x1​),...,f(xm​)},搜寻范围为 d m x d^x_m dmx​,损失函数范围为 d m y d^y_m dmy​,记 d m d_m dm​为 d m x d^x_m dmx​和 d m y d^y_m dmy​组成的空间,记算法为 a a a,搜寻次数为 m m m, ∣ y ∣ |y| ∣y∣和 ∣ x ∣ |x| ∣x∣为 d m x d^x_m dmx​和 d m y d^y_m dmy​的容量。
当 m = 1 m=1 m=1时, ∑ f P ( d 1 y ∣ f , m = 1 , a ) = ∑ f σ P ( d 1 y , f ( d 1 x ) ) = ∣ y ∣ ∣ x ∣ − 1 \sum_{f}P(d_1^y|f,m=1,a)=\sum_{f} \sigma P(d_1^y,f(d_1^x))=|y|^{|x|-1} ∑f​P(d1y​∣f,m=1,a)=∑f​σP(d1y​,f(d1x​))=∣y∣∣x∣−1,其中 σ \sigma σ为克罗内克函数。这个式子表明,无论何种映射关系,必有 d 1 y = f ( d 1 x ) d_1^y=f(d_1^x) d1y​=f(d1x​),与算法 a a a和映射 f f f无关。(由于此时搜索空间的搜索函数的维度都为1,因此上式必定成立)
假设 m m m时, ∑ f P ( d m y ∣ f , m , a ) = ∣ y ∣ ∣ x ∣ − 1 \sum_{f}P(d_m^y|f,m,a)=|y|^{|x|-1} ∑f​P(dmy​∣f,m,a)=∣y∣∣x∣−1成立,那么对于 m + 1 m+1 m+1次搜寻,

∑ f P ( d m + 1 y ∣ f , m + 1 , a ) \sum_{f}P(d_{m+1}^y|f,m+1,a) ∑f​P(dm+1y​∣f,m+1,a)
= ∑ f P ( d m + 1 y , d m y ∣ f , m + 1 , a ) =\sum_{f}P(d_{m+1}^y,d_m^y|f,m+1,a) =∑f​P(dm+1y​,dmy​∣f,m+1,a)
= ∑ f P ( d m + 1 y ∣ d m y , f , m + 1 , a ) P ( d m y ∣ f , m + 1 , a ) =\sum_{f}P(d_{m+1}^y|d_m^y,f,m+1,a)P(d_{m}^y|f,m+1,a) =∑f​P(dm+1y​∣dmy​,f,m+1,a)P(dmy​∣f,m+1,a)
= ∑ f , x P ( d m + 1 y ∣ f , x ) P ( x ∣ d m y , f , m + 1 , a ) ⋅ P ( d m y ∣ f , m + 1 , a ) =\sum_{f,x}P(d_{m+1}^y|f,x)P(x|d_m^y,f,m+1,a)\cdot P(d^y_m|f,m+1,a) =∑f,x​P(dm+1y​∣f,x)P(x∣dmy​,f,m+1,a)⋅P(dmy​∣f,m+1,a)
= ∑ f , x σ ( d m + 1 y ( m + 1 ) , f ( x ) ) P ( x ∣ d m y , f , m + 1 , a ) P ( d m y ∣ f , m + 1 , a ) =\sum_{f,x}\sigma (d_{m+1}^y(m+1),f(x))P(x|d_m^y,f,m+1,a)P(d^y_m|f,m+1,a) =∑f,x​σ(dm+1y​(m+1),f(x))P(x∣dmy​,f,m+1,a)P(dmy​∣f,m+1,a)
= ∑ f , x , d m x σ ( d m + 1 y ( m + 1 ) , f ( x ) ) P ( x ∣ d m , a ) P ( d m x ∣ d m y , f , m + 1 , a ) P ( d m y ∣ f , m + 1 , a ) =\sum_{f,x,d^x_m}\sigma (d_{m+1}^y(m+1),f(x))P(x|d_m,a)P(d^x_m|d_m^y,f,m+1,a)P(d^y_m|f,m+1,a) =∑f,x,dmx​​σ(dm+1y​(m+1),f(x))P(x∣dm​,a)P(dmx​∣dmy​,f,m+1,a)P(dmy​∣f,m+1,a)
= ∑ f , x , d m x σ ( d m + 1 y ( m + 1 ) , f ( a ( d m ) ) × P ( d m ∣ f , m , a ) =\sum_{f,x,d^x_m}\sigma (d_{m+1}^y(m+1),f(a(d_m)) \times P(d_m|f,m,a) =∑f,x,dmx​​σ(dm+1y​(m+1),f(a(dm​))×P(dm​∣f,m,a)
= ∑ d m x ∑ f ( x ∈ d m x ) P ( d m ∣ f , m , a ) × ∑ f ( x ∉ d m x ) σ ( d m + 1 y ( m + 1 ) , f ( a ( d m ) ) =\sum_{d_m^x} \sum_{f(x\in d_m^x)}P(d_m|f,m,a)\times \sum_{f(x\notin d_m^x)}\sigma (d_{m+1}^y(m+1),f(a(d_m)) =∑dmx​​∑f(x∈dmx​)​P(dm​∣f,m,a)×∑f(x∈/dmx​)​σ(dm+1y​(m+1),f(a(dm​))
= ∣ y ∣ ∣ x ∣ − m − 1 ∑ f ( x ∈ d m x ) , d m x P ( d m ∣ f , m , a ) =|y|^{|x|-m-1}\sum_{f(x\in d_m^x),d_m^x}P(d_m|f,m,a) =∣y∣∣x∣−m−1∑f(x∈dmx​),dmx​​P(dm​∣f,m,a)
= 1 ∣ y ∣ ∑ f ( x ∈ d m x ) , d m x P ( d m ∣ f , m , a ) =\frac{1}{|y|}\sum_{f(x\in d_m^x),d_m^x}P(d_m|f,m,a) =∣y∣1​∑f(x∈dmx​),dmx​​P(dm​∣f,m,a)
= 1 ∣ y ∣ ∑ f P ( d m y ∣ f , m , a ) =\frac{1}{|y|}\sum_{f}P(d_m^y|f,m,a) =∣y∣1​∑f​P(dmy​∣f,m,a)

根据 ∑ f P ( c ⃗ ∣ f , m , a ) = ∑ f , d m y P ( c ⃗ , d m y ∣ f , m , a ) = ∑ f , d m y P ( c ⃗ ∣ d m y ∣ ) P ( d m y ∣ f , m , a ) \sum_{f}P(\vec{c}|f,m,a)=\sum_{f,d_m^y}P(\vec{c},d_m^y|f,m,a)=\sum_{f,d_m^y}P(\vec{c}|d_m^y|)P(d_m^y|f,m,a) ∑f​P(c ∣f,m,a)=∑f,dmy​​P(c ,dmy​∣f,m,a)=∑f,dmy​​P(c ∣dmy​∣)P(dmy​∣f,m,a),可知此时 ∑ f P ( c ⃗ ∣ f , m , a ) \sum_{f}P(\vec{c}|f,m,a) ∑f​P(c ∣f,m,a)与 a a a无关。
以上即为NFL定理的主要证明过程。假如算法存在随机性或搜寻路径存在重复,那么假设该算法在跳出循环机制(否则可能存在死循环), x 0 , x 1 , x 2 , . . . , x m x_0,x_1,x_2,...,x_m x0​,x1​,x2​,...,xm​为不带重复搜寻的路径,此时前述NFL定理仍成立。

NFL定理——没有免费的午餐No Free Lunch Theorem相关推荐

  1. 机器学习---“没有免费的午餐”(no free lunch)定理简单易懂的解释

    初入机器学习领域的同学都知道机器学习中有一个普适的定理:没有免费的午餐(no free lunch). 对它的简单易懂的解释就是: 1.一种算法(算法A)在特定数据集上的表现优于另一种算法(算法B)的 ...

  2. [译]搜索与优化不存在免费的午餐

    原文:http://en.wikipedia.org/wiki/No_free_lunch_in_search_and_optimization 说明:由于文章较难完全翻译,所以部分句子采用了意译的方 ...

  3. “没有免费的午餐”定理(NFL定理)

    "没有免费的午餐"定理(NFL定理)的理解 上篇 最近在看这个,个人的理解而已. 简介 在机器学习过程中,需要确定一个假设,从而确定了整个假设空间,而学习的过程就是在假设空间的众多 ...

  4. 机器学习笔记(2)----“没有免费的午餐”定理

    "没有免费的午餐"定理(No Free Lunch Theorem,简称NFL) 先来看一个例子.假设学习算法a基于某种归纳偏好产生了对应于A的模型,学习算法b基于另一种归纳偏好产 ...

  5. 机器学习笔记1-“没有免费的午餐”定理(No Free Lunch Theorem)

    教材-周志华<机器学习> 绪论各种基本术语不再赘述,大部分都可以望文生义. "没有免费的午餐"定理(No Free Lunch Theorem)(简称NFL定理):该定 ...

  6. 没有免费的午餐定理和丑小鸭定理

    没有免费的午餐定理(noerfelunhchtocerm,简称NFL).该定理由wolpert和Macerday提出,结论是由于对所有可能函数的相互补偿,最优化算法的性能是等价的.该定理暗指,没有其它 ...

  7. 机器学习--没有免费的午餐定理

    机器学习--没有免费的午餐定理 解释: 一种算法(算法A)在特定数据集上的表现优于另一种算法(算法B)的同时,一定伴随着算法A在另外某一个特定的数据集上有着不如算法B的表现: 具体问题(机器学习领域内 ...

  8. 机器学习周志华--没有免费的午餐定理

    没有免费的午餐定理(No Free Lunch Theorem),这个定理说明 若学习算法 L a L_a La​ 在某些问题上比学习算法 L b L_b Lb​ 要好, 那么必然存在另一些问题, 在 ...

  9. 从“没有免费的午餐”理论看机器学习模型

    2019独角兽企业重金招聘Python工程师标准>>> no free lunch直译为"没有免费的午餐",意思是没有付出,就没有收获.Wolpert and M ...

最新文章

  1. BFS之三(单向bfs和康托压缩)
  2. b区计算机考研招不满的大学,b区考研招不满的大学,适合调剂的学校有哪些
  3. PAT、PMT、SDT详解
  4. CodeForces - 1110G Tree-Tac-Toe(博弈+构造)
  5. Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol
  6. Python05 梯形公式 Simpson公式 Cotes公式 Romber公式(附代码)
  7. gensim读取已训练模型LDA模型的模型与dictionary
  8. Hibernate组件作为复合主键(五)
  9. pdf打开时缩放_常用的极速PDF阅读器热门问题解答大全
  10. 常用数组方法汇总(ES3、ES5、ES6、ES7、ES10)
  11. python日常实用技能:如何用Python将图片批量从png格式转换至WebP格式
  12. JavaScript-Tool:Moment.js
  13. JMeter递增加压
  14. ad19原理图标注_AD19如何让原理图的栅格显示更加清晰醒目
  15. Halcon 卡尺找圆
  16. 2017年,我成功入职小红书的经历
  17. 两个List数据集合合并成一个List
  18. 华为OpenEuler体验系列(06)--软件安装
  19. 韩国小姐选美连连看----android版
  20. archlinux国内镜像列表

热门文章

  1. ipython的说法 错误的是_知到智慧树现代教育技术(广西师范大学)答案期末
  2. python测试开发培训怎么样_合肥Python测试开发全栈核心课程
  3. 【题单——基础字符串】菜鸡L_C_A的基础字符串(KMPACAM)
  4. 10-22 查询S001或S003学生选修课程(MSSQL)
  5. 电脑鼠标右键失效linux,快速解决电脑无法正常使用鼠标右键的方法
  6. 研究员 vs Nervos
  7. dfs文件服务器 2012,Windows Server 2012 R2分布式文件系统测试(DFS)
  8. zcy算法入门笔记001
  9. Excel中去除单元格内左上角的绿色小三角
  10. 错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server vers