没有免费的午餐定理(No Free Lunch Theorem),这个定理说明

若学习算法 L a L_a La​ 在某些问题上比学习算法 L b L_b Lb​ 要好,
那么必然存在另一些问题
在这些问题中 L b L_b Lb​ 比 L a L_a La​ 表现更好。

这里说的表现好就是前面所说的泛化能力更强。然后出现了下面这个公式

E o t e ( L a ∣ X , f ) = ∑ h ∑ x ∈ χ − X P ( x ) I ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , L a ) E_{ote}(L_a|X,f) = \sum_{h}\sum_{x\in\chi-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h|X,L_a) Eote​(La​∣X,f)=∑h​∑x∈χ−X​P(x)I(h(x)=f(x))P(h∣X,La​)

令人生畏的长公式,不过我们来依次解读它。

留坑,周末更
好了,周六了,今天终于看懂了这个定理的证明,下面我们一字一句地来解读书中的证明:
首先,定义好符号
χ \chi χ:样本空间,什么是样本空间呢?就是你的样本的属性张成的空间,书的前文有介绍
还是以他书中的西瓜来举例吧:
西瓜的属性和每个属性的取值是
色泽= 青绿||乌黑||浅白      x= 0 || 1 || 2
根蒂= 蜷缩||稍蜷||硬挺      y= 0 || 1 || 2
敲声= 浊响||沉闷||清脆      z= 0 || 1 || 2
你把色泽、根蒂、敲声想想成x,y,z轴。取值的范围都是0,1,2。怎么样,是不是像一个正方体的三维空间,当然属性可能有多种,那就上升到多维空间去了,不好想像了。

H H H:假设空间,什么是假设空间呢?
什么是假设呢,前面说也叫学得模型,这里我们不搞那些概念。请看这篇博主的文章http://blog.csdn.net/VictoriaW/article/details/77686168,看完应该就能理解假设空间和版本空间。(此处9月1日更新,这里的假设应该指的就是满足是好瓜的条件,样本空间是有明确的取值,而假设空间取值多一个*,表示取任意值都行,反正经过学习,可以得到一个假设,用来判断西瓜的好坏…。)

L a L_a La​:学习算法,学习算法有其偏好性,对于相同的训练数据,不同的学习算法可以产生不同的假设,学得不同的模型,因此才会有那个学习算法对于具体问题更好的问题,这里这个没有免费的午餐定理要证明的就是:若对于某些问题算法 L a L_a La​学得的模型更好,那么必然存在另一些问题,这里算法 L b L_b Lb​学得的模型更好.这里的好坏在下文中使用算法对于所有样本的总误差表示

P ( h ∣ X , L a ) P(h|X,L_a) P(h∣X,La​): 算法 L a L_a La​基于训练数据 X X X产生假设 h h h的概率
这里我说一下自己的理解,既然是 L a L_a La​基于 X X X产生假设 h h h的概率,那么就说明假设不止一个(你说这不是废话吗?上面都说有假设空间了,假设当然不止一个),这里要注意的是这里的假设是一个映射,是 y = h ( x ) y=h(x) y=h(x),是基于数据 X X X产生的对于学习目标(判断好瓜)的预测。因数据 X X X不一样,所以可能产生不一样的假设 h h h,既然假设假设有可能不一样,那么对每一种假设都有其对应的概率即 P ( h ∣ X , L a ) P(h|X,L_a) P(h∣X,La​).而且所有假设 h h h加起来的概率为1,这个不难理解,概率总和为1

f f f:代表希望学得的真实目标函数,要注意这个函数也不是唯一的,而是存在一个函数空间,在这个空间中按某个概率分布,下文证明中采用的是均匀分布。

好,上面那个公式到了

E o t e ( L a ∣ X , f ) = ∑ h ∑ x ∈ χ − X P ( x ) I ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , L a ) E_{ote}(L_a|X,f) = \sum_{h}\sum_{x\in\chi-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h|X,L_a) Eote​(La​∣X,f)=∑h​∑x∈χ−X​P(x)I(h(x)=f(x))P(h∣X,La​)

首先看这个 E E E,这个 E E E是期望,expectation的意思,这个下标 o t e _{ote} ote​,是off-training error,即训练集外误差(忘了是在哪篇博客上看到的了,错了我不负责嘻嘻)。

E o t e ( L a ∣ X , f ) E_{ote}(L_a|X,f) Eote​(La​∣X,f): 算法 L a L_a La​学得的假设在训练集外的所有样本上的误差的期望

P ( x ) P(x) P(x): 对于这个,我的理解是样本空间中的每个样本的取得概率不同,什么意思呢?拿西瓜来说,(色泽=浅白,根蒂=硬挺,敲声=清脆)的西瓜可能比(色泽=浅白,根蒂=稍蜷,敲声=沉闷)的西瓜更多,取到的概率更大。所以有 P ( x ) P(x) P(x)这个概率。

I ( h ( x ) ≠ f ( x ) ) \mathbb{I}(h(x)\neq f(x)) I(h(x)=f(x)):看前面的符号表把这个叫做指示函数,这个很好理解,就像if语句括号里的表达式一样,为真就=1,为假就=0。

P ( h ∣ X , L a ) P(h|X,L_a) P(h∣X,La​): 前面说过了,再复习一下,算法 L a L_a La​基于训练集 X X X产生假设 h h h的概率。

其实这里最开始最令我困惑的是什么呢?是两个求和符号,因为这里求和符号感觉不规范啊!有木有,不过后来觉得理解了意思就大概行了.
第一个求和符号:
∑ h \sum_h ∑h​: 这里的这个对假设的求和其实我也不是很理解,我的理解主要是不知道这个对假设求和的空间到底是:同一个算法对于不同训练集产生不同的假设,每个假设有不同的概率,还是算法对于同一个训练集会产生不同的假设,每个假设有不同的概率。不过这个不重要,群里有人说前三章看看就好,具体结合后面的算法来理解就行了,先往后面看着吧。(此处9月1日更新,这里是因为学习算法对于训练数据 χ {\chi} χ是可能产生多个假设的。且对不同的假设有不同的产生概率,所以有 P ( h ∣ X , L a ) P(h|X,L_a) P(h∣X,La​)这个表达式吧应该。)
第二个求和符号:
∑ x ∈ χ − X \sum_{x\in{\chi-X}} ∑x∈χ−X​:对于样本空间中每一个训练集外的数据都进行右边的运算。

好了,公式的每一部分都说清楚了,来整体理解一下,这个公式就是说:
对于算法 L a L_a La​产生的每一个不同的假设 h h h,进行训练外样本的测试,然后测试不成功(因为求的是误差)指示函数就为1,并且两个概率相乘,最后所有的结果加起来,就是该算法在训练集外产生的误差。

然后下面考虑二分类问题,先要说明,对于我们想要求得的真实目标函数 f f f可能也不止一个,这个好理解,因为满足版本空间中的假设的函数都可以是真实目标函数,然后这些不同的 f f f有着相同的概率(均匀分布),函数空间为 { 0 , 1 } \left \{ 0,1 \right\} {0,1},那么有多少个这种函数呢?我们来看对于同一个样本的这个预测值,对于样本空间 χ \chi χ中的某个样本 x x x,如果 f 1 ( x ) = 0 f_1(x)=0 f1​(x)=0, f 2 ( x ) = 1 f_2(x) = 1 f2​(x)=1, 那么这就是两个不同的真实目标函数,所以对于某个样本可以区分出两个真实目标函数,一共有 ∣ χ ∣ \left | \chi \right| ∣χ∣个样本,所以一共有 2 ∣ χ ∣ 2^{\left | \chi \right |} 2∣χ∣个真实目标函数,这些真实目标函数是等可能分布的(均匀分布),所以对于某个假设 h ( x ) h(x) h(x)如果 h ( x ) = 0 h(x) = 0 h(x)=0那么就有 1 2 \frac{1}{2} 21​的可能与真实目标函数相等。
所以下面来看这个公式推导

$\sum_f E_{ote}\left ( L_a|X,f\right) $
= ∑ f ∑ h ∑ x ∈ χ − X P ( x ) I ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , L a ) = \sum_f\sum_h\sum_{x\in\chi-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h|X,L_a) =∑f​∑h​∑x∈χ−X​P(x)I(h(x)=f(x))P(h∣X,La​)
= ∑ x ∈ χ − X P ( x ) ∑ h P ( h ∣ X , L a ) ∑ f I ( h ( x ) ≠ f ( x ) ) =\sum_{x\in\chi-X}P(x)\sum_hP(h|X,L_a)\sum_f\mathbb{I}(h(x)\neq f(x)) =∑x∈χ−X​P(x)∑h​P(h∣X,La​)∑f​I(h(x)=f(x)) ①
= ∑ x ∈ χ − X P ( x ) ∑ h P ( h ∣ X , L a ) 1 2 2 ∣ χ ∣ =\sum_{x\in\chi-X}P(x)\sum_hP(h|X,L_a)\frac{1}{2}2^{\left | \chi \right |} =∑x∈χ−X​P(x)∑h​P(h∣X,La​)21​2∣χ∣ ②
= 1 2 2 ∣ χ ∣ ∑ x ∈ χ − X P ( x ) ∑ h P ( h ∣ X , L a ) =\frac{1}{2}2^{\left | \chi \right |}\sum_{x\in\chi-X}P(x)\sum_hP(h|X,L_a) =21​2∣χ∣∑x∈χ−X​P(x)∑h​P(h∣X,La​) ③
= 2 ∣ χ ∣ − 1 ∑ x ∈ χ − X P ( x ) ⋅ 1 =2^{\left | \chi \right |-1}\sum_{x\in\chi-X}P(x)\cdot 1 =2∣χ∣−1∑x∈χ−X​P(x)⋅1 ④

第一步是怎么推导出来的呢?这里涉及到一个求和运算
假设
a i ∈ { a 1 , a 2 , . . . , a m } a_i\in \left\{ a_1,a_2,...,a_m \right\} ai​∈{a1​,a2​,...,am​}
b j ∈ { b 1 , b 2 , . . . , b n } b_j\in \left\{ b_1,b_2,...,b_n \right\} bj​∈{b1​,b2​,...,bn​}
c k ∈ { c 1 , c 2 , . . . , c o } c_k\in \left\{ c_1,c_2,...,c_o \right\} ck​∈{c1​,c2​,...,co​}

那么
∑ i m ∑ j n ∑ k o a i b j c k \sum_i^m\sum_j^n\sum_k^oa_ib_jc_k ∑im​∑jn​∑ko​ai​bj​ck​
= ∑ i m a i ∑ j n b j ∑ k o c k =\sum_i^ma_i\sum_j^nb_j\sum_k^oc_k =∑im​ai​∑jn​bj​∑ko​ck​
这个,你想
( a 1 + a 2 + . . . + a m ) ( b 1 + b 2 + . . . + b n ) ( c 1 + c 2 + . . . + c o ) (a_1+a_2+...+a_m)(b_1+b_2+...+b_n)(c_1+c_2+...+c_o) (a1​+a2​+...+am​)(b1​+b2​+...+bn​)(c1​+c2​+...+co​)
是不是等于
a 1 b 1 c 1 + a 2 b 1 c 1 + . . . a m b 1 c 1 + . . . + a m b n c o {a_1}{b_1}{c_1}+{a_2}{b_1}{c_1}+...{a_m}{b_1}{c_1}+...+{a_m}{b_n}{c_o} a1​b1​c1​+a2​b1​c1​+...am​b1​c1​+...+am​bn​co​
看懂了上面那个你再看第一步也就看懂了

第二步
主要是
∑ f I ( h ( x ) ≠ f ( x ) ) = 1 2 2 ∣ χ ∣ \sum_f\mathbb{I}(h(x)\neq f(x)) =\frac{1}{2}2^{\left | \chi \right |} ∑f​I(h(x)=f(x))=21​2∣χ∣
这个,因为一共有 2 ∣ χ ∣ 2^{\left | \chi \right |} 2∣χ∣个 f f f,且均匀分布,所以 f ( x ) = 1 f(x) = 1 f(x)=1和 f ( x ) = 0 f(x)=0 f(x)=0的 f f f个数相等,对于每一个 h ( x ) h\left( x \right) h(x)来说,不管 h ( x ) = 0 h(x)=0 h(x)=0还是 1 1 1,都有一半 f ( x ) f(x) f(x)与之相等,即 1 2 2 ∣ χ ∣ \frac{1}{2}2^{\left | \chi \right |} 21​2∣χ∣
所以就得出第二步

第三步到第四步就更好理解了
概率求和为1,就是这么简单

经过这么一通推导后,发现得出期望的表达式中关于没有具体算法的,所以是算法无关的!
如果错误,望指出共交流,共学习!

机器学习周志华--没有免费的午餐定理相关推荐

  1. 机器学习 周志华 第一章课后习题

    机器学习 周志华 第一章课后习题 1.1 1.2 1.3 1.4 1.5 1.1 在下面这张图片中若只包含编号为1和4的两个样例,试给出相应的版本空间. 书上实例: 1.表 1.1 对应的假设空间如下 ...

  2. 小吴的《机器学习 周志华》学习笔记 第一章 绪论

    小吴的<机器学习 周志华>学习笔记 第一章 绪论 近一年时间接触到不少机器学习的知识,虽然断断续续学了一些,总感觉还没有入门(只学会了疯狂调包).因此,最近开始系统学习Machine Le ...

  3. 机器学习(周志华) 参考答案 第十四章 概率图模型 14.9

    机器学习(周志华西瓜书) 参考答案 总目录 http://blog.csdn.net/icefire_tyh/article/details/52064910 机器学习(周志华) 参考答案 第十四章 ...

  4. 小吴的《机器学习 周志华》学习笔记 第二章 模型评估与选择

    小吴的<机器学习 周志华>学习笔记 第二章 模型评估与选择 上一周我们介绍了第一章的基础概念,这一次将带来第二章的前三节.后面的2.4 比较检验与2.5 偏差与方差,涉及概率论与数理统计概 ...

  5. 小吴的《机器学习 周志华》学习笔记 第二章 2.4 比较检验、2.5 偏差与方差

    小吴的<机器学习 周志华>学习笔记 第二章 2.4 比较检验. 2.5 偏差与方差 2.4 比较检验 上一周提到了实验的评价方法和性能量度,步骤简单可以看成:先使用某种实验评估方法测得学习 ...

  6. 机器学习 周志华 课后习题3.5 线性判别分析LDA

    机器学习 周志华 课后习题3.5 线性判别分析LDA 照着书上敲了敲啥都不会,雀食折磨 python代码 # coding=UTF-8 from numpy import * # 我安装numpy的时 ...

  7. 重磅大礼!100本《机器学习》by周志华,免费送!

    我  相  信  这  么  优秀  的  你 已  经  置 顶  了  我 亲爱的小伙伴们~ 我可想死你们啦! 福利小编再次上线 继续给大家送温暖~ 100本! <机器学习> by 周 ...

  8. 机器学习-周志华-学习记录-第一章绪论

    文章目录 绪论 一.什么是机器学习 二.基本术语 三.假设空间 四.归纳偏好 总结 参考链接 绪论 为了更早地适应研究生的生活,我决定重新学习周志华老师的机器学习这本书.同时也为了能够养成博客记录的习 ...

  9. 机器学习-周志华教授

    机器学习 南京大学周志华教授网课视频:https://www.xuetangx.com/learn/nju0802bt/nju0802bt/14363483/video/26163027 202210 ...

最新文章

  1. mysql 锁语句_mysql-笔记 事务 锁 语句
  2. 中科院英文宣传“大片”来了!超燃
  3. 阿里平头哥发布AIoT芯片平台“无剑”,可将芯片设计成本降低50%
  4. Linux系统上怎么安装服务器管理软件Cockpit?
  5. 记一个自己项目上线的全过程
  6. 全国计算机等级考试三级历年真题,历年全国计算机等级考试三级(数据库技术)笔试选择真题...
  7. 【Python基础】一文理解Python集合,17个方法全解,看完就够了
  8. Hibernate常见问题集锦
  9. 基于 Kong 和 Kubernetes 的 WebApi 多版本解决方案
  10. MacBook(macOS) 如何安装 Homebrew Cask(作废)
  11. 管理系统 c++图形界面_锁螺母ERP系统,一站式各国语言管理系统
  12. Elasticsearch 技术分析(七): Elasticsearch 的性能优化
  13. SWT学生成绩管理系统
  14. macosx安装之旅(1)-硬盘安装
  15. 雪色光晕(计算几何+暴力)
  16. 记一次mybatis-plus遇到的问题
  17. 1.Java集合-HashMap实现原理及源码分析
  18. linux系统可安装博途吗,安装博途V14是在什么系统下?
  19. 浏览器主页被篡改解决小妙招
  20. HTML5常用标签【知识点整理】

热门文章

  1. CF第633场 (Div. 2)
  2. vbscript错误代码及对应解释大全/VBScript 语法错误
  3. [前端学习笔记1]蓝桥杯Web应用开发组考点内容
  4. android:theme 多个,Android Theme 主题总结
  5. 大骗局星钻共享拍卖不为人知的的秘密
  6. 硬盘数据彻底销毁工具
  7. CSS实现9宫格布局的4种方法:flex、float、grid、table布局
  8. 登录飞信未能找到主机名的服务器,Nagios 监控+飞信的安装与配置.ppt
  9. 记一次苹果APP从账号续费到发布成功的历程
  10. 学习嵌入式为什么要有uboot(深度解析)