机器学习(周志华)习题解答1.4: 两个算法到底孰优孰劣?没有免费午餐定理

这篇文章转自http://blog.csdn.net/thither_shore/article/details/52324776

是对周志华的《机器学习》的习题解答,文章整理的很好,为方便之后查看,记录如下~

说明:本文是自己对周志华 2016 年《机器学习》中“没有免费的午餐定理”的简单论证解释和习题 1.4 的解答,难免有误欢迎指正。看没看书不影响看本文的理解。

  我们在机器学习中衡量两个算法,到底孰优孰劣,该怎么考虑?“没有免费的午餐定理”仿佛给了一个很令人 depressing 的答案:针对某一域的所有问题,所有算法的期望性能是相同的。但注意,这里有两个关键词,某一域的“所有”,和“期望”性能。所以它并没有否认两个算法有优劣之分,并且事实上还提供了一个视角让我们理解为什么在机器学习中,我们可以选择算法的优劣性。 
   
  “没有免费的午餐定理”就是由 Wolpert and Macready 在 1997 年在优化领域中提出的 No Free Lunch Theorems(NFL),可以简单理解为:针对某一具体域内的所有优化问题 Q,经过 m 步迭代之后达到目标函数给定值的所有可能性的累加和是相等。用在机器学习中就是刚刚说的“针对某一域的所有问题,所有算法的期望性能是相同的”, 在该域的有些问题上算法  a  比  b  好,其余问题上则有  b  比  a  好。

  现在来理解一下书中的证明过程(Page 8),这个没什么 tricky,希望有耐心些很好理解。需说明书中这里讨论的是二分类问题,假设数据空间   和假设空间   都是离散的,样本空间记作  X ;且真实目标函数对所有可能的  f  均匀分布。

  首先需要明确这里算法性能是通过衡量训练集外误差得到的,即 off-training error(ote),本题所说的“训练集外”就是  X 。“误差”也就是机器学习所说的损失函数(Loss function),Page 8 已经要求了损失函数为  L(h,f(x))=1(h,f(x)) 。算法  a  在所有训练集外的误差其实就是机器学习中说的风险函数,即

Risk(X,a)=L(h,f(x))dF(x)
  上式应用于由本题,则损失函数  L  换成  1 ;由于本题是离散空间,积分变作对“训练集外”即  X  求和,故写作下面  (1) 式 ,调整一下写法变成  (2) 式 。 
   符号说明: 
   1) fEote(a)|X,f)  表示在该域所有问题上算法  a  在训练集外即  X  上的所有误差; 
   2) P(h|X,a)  表示用算法  a  基于训练集  X  产生假设  h  的概率。
 
fEote(a)|X,f)=fhxXP(x)1(h(x)f(x))P(h|X,a)=xXP(x)hP(h|X,a)f1(h(x)f(x))=xXP(x)hP(h|X,a)122||=122||xXP(x)hP(h|X,a)=122||xXP(x)·1(1)(2)(3)(4)(5)
   (3) 式 :由于假设“真实目标函数对所有可能的  f  均匀分布”,故对所有  f  求和后,任意假设  h  的准确率期望为一半。又由于  1  在正确时取 1 反之为 0,故 (2) 式末尾对  f  的求和得到的值为假设空间个数的一半,即得 (3) 式。 
   (5) 式 :即简单的概率求和, P(h|X,a)  对  h  求和当然就是 1 了。还不理解的话?其实就是  P(A|B)  对  A  求和的形式。 
   
  所以最终得到了 任意两个算法  a  与  b  的期望误差相等 ,即
fEote(a)|X,f)=fEote(b)|X,f)=122||xXP(x)

  上面的证明损失函数用的是  1(h(x)f(x)) ,为了继续完善,考察定理是否对于任何性能度量都是成立,我们回到书中习题上:

习题 1.4 二分类问题中,若用其它性能度量  l ,请证明书中 1.4 节的“没有免费的午餐定理”仍然成立。

解答:这里要求“用其它度量  l ”, 事实上就是 (1) 式中用的损失函数  1(h(x)f(x))  换作了

1(h(x)f(x))·l(h,f(x))
  故 (3) 式中  122||  变作
122||·l(h,f(x))|h(x)f(x)
  其中  l(h,f(x))|h(x)f(x)  就是指损失函数  l  在假设函数的值与原函数不符的时候的取值,对于这个 二分类问题 有两种取值: l(1,0)  即把 0 分成了 1 的损失, l(0,1)  即把 1 分成 0 的损失,两者对于给定的  l  均为常数。故同样得到了类似 (5) 式的结论,即
fEote(a)|X,f)=fEote(b)|X,f)=122||·l(h,f(x))|h(x)f(x)·x(x)
  即在这个二分类问题中,我们证明了  NFL 对其他性能度量也是成立的 。之后我去冒昧看了一眼原论文(●—●)…发现##( _ _)ノ##…所以我们还是拿这个二分类问题随意感受一下 NFL 的思路和内涵就好~正经的证明并不是这里这么简单几句论述。

  最后需要明确:NFL 的一重要前提是“对某一域的所有问题”讨论。所以 NFL 只是告诉我们“脱离具体问题去讨论选择什么算法更好是毫无意义的”,因为若对所有潜在的问题考虑,则所有算法性能是一样的。但机器学习是针对某一特定问题去考虑的,所以我们仍然有选择算法优劣的必要性和可行性。

  比如考虑问题:从一个几km的大坡顶 A 地到坡底 B 什么交通工具划算(即算法)?我们会觉得自行车比汽车火车飞机都靠谱。但你非要说飞机可以从中国飞到美国,所以飞机这种交通工具也很好,你凭什么说自行车好?这就是在脱离实际问题了。这是因为我们在针对“从 A 到 B”这一具体问题讨论交通工具(算法)的选择。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值