一个证明题
周志华《机器学习》第一章中,有一个关于“没有免费的午餐”定理的题目,题目是这样的:
假设样本空间X和假设空间H都是离散的,令P(h∣X,La)为算法La基于训练数据X产生假设h的概率,令f代表真实目标函数。考查二分类问题,f可以是任何函数X↦{0,1},函数空间为{0,1}∣X∣,假设f是均匀分布(即不管h(x)是什么,都有一半的f对x的预测与h(x)不一致)。现在采用ℓ(h(x),f(x))作为分类器的性能度量,考虑La的“训练集外误差”:
Eote(La∣X,f)=h∑x∈X−X∑P(x)ℓ(h(x),f(x))P(h∣X,La)
试证明“没有免费午餐定理”成立。
分析与解答
题目未给定ℓ(h(x),f(x))的具体形式,但在二分类问题中,无非就4种情况。记ℓ(1,1)=ℓ1,ℓ(0,1)=ℓ2,ℓ(1,0)=ℓ3,ℓ(0,0)=ℓ4,它们都是常数。将La的训练集外误差对所有f按均匀分布求和为:
===+f∑Eote(La∣X,f)f∑h∑x∈X−X∑P(x)ℓ(h(x),f(x))P(h∣X,La)x∈X−X∑P(x)h∑P(h∣X,La)f∑ℓ(h(x),f(x))x∈X−X∑P(x)h∑P(h∣X,La)(2∣X∣I(h(x)=1)(21ℓ1+21ℓ3))x∈X−X∑P(x)h∑P(h∣X,La)(2∣X∣I(h(x)=0)(21ℓ2+21ℓ4))
上面最后一个等式是因为f是均匀分布,因此如果给定了h和x,不管h(x)是0还是1,都有一半的f会是f(x)=0,一半的f会是f(x)=1。
又因为I(h(x)=1)+I(h(x)=0)=1,可将上式继续化简:
==+=+f∑Eote(La∣X,f)2∣X∣−1x∈X−X∑P(x)h∑P(h∣X,La)((ℓ1+ℓ3)I(h(x)=1)+(ℓ2+ℓ4)(1−I(h(x)=1)))2∣X∣−1(ℓ2+ℓ4)x∈X−X∑P(x)h∑P(h∣X,La)⋅12∣X∣−1x∈X−X∑P(x)h∑P(h∣X,La)(ℓ1+ℓ3−ℓ2−ℓ4)I(h(x)=1)2∣X∣−1(ℓ2+ℓ4)x∈X−X∑P(x)2∣X∣−1(ℓ1+ℓ3−ℓ2−ℓ4)x∈X−X∑P(x)h∑P(h∣X,La)I(h(x)=1)
上式中,第一部分2∣X∣−1(ℓ2+ℓ4)∑x∈X−XP(x) 显然与La无关,第二部分则不然,需要再附加条件ℓ1+ℓ3−ℓ2−ℓ4=0才可以使整个式子与La无关,在周志华的书中,并没有加这个限制,可能是默认隐含了(因为加入这个条件很合理)。■
特殊化情形
再来看在书正文中的例子,该例子将ℓ(h(x),f(x))特殊化为二分类的错误率,即取ℓ(h(x),f(x))=I(h(x)=f(x)),对应到本文的设定中,有ℓ1=ℓ4=0,ℓ2=ℓ3=1,将它们代入后得:
f∑Eote(La∣X,f)=2∣X∣−1x∈X−X∑P(x)
因此,它与La无关。对于任意的La和Lb,它们的样本外误差的期望其实是相等的。这就是“没有免费的午餐”定理(No Free Lunch Theorem,NFL)。