zoukankan      html  css  js  c++  java
  • 一个二分类下没有免费午餐定理的题

    一个证明题

    周志华《机器学习》第一章中,有一个关于“没有免费的午餐”定理的题目,题目是这样的:

    假设样本空间(mathcal{X})和假设空间(mathcal{H})都是离散的,令(P(h|X,mathcal{L}_a))为算法(mathcal{L}_a)基于训练数据(X)产生假设(h)的概率,令(f)代表真实目标函数。考查二分类问题(f)可以是任何函数(mathcal{X} mapsto {0,1}),函数空间为({0,1}^{vert mathcal{X} vert}),假设(f)均匀分布(即不管(h(x))是什么,都有一半的(f)(x)的预测与(h(x))不一致)。现在采用(ell(h(x),f(x)))作为分类器的性能度量,考虑(mathcal{L}_a)的“训练集外误差”:

    [E_{ote}(mathcal{L}_a | X,f)=sum_h sum_{xin mathcal{X}-X} P(x)ell({h(x),f(x)}) P(h|X, mathcal{L}_a) ]

    试证明“没有免费午餐定理”成立。

    分析与解答

    题目未给定(ell(h(x),f(x)))的具体形式,但在二分类问题中,无非就4种情况。记(ell(1,1)=ell_1)(ell(0,1)=ell_2)(ell(1,0)=ell_3)(ell(0,0)=ell_4),它们都是常数。将(mathcal{L}_a)的训练集外误差对所有(f)均匀分布求和为:

    [egin{aligned} &sum_f E_{ote}(mathcal{L}_a | X,f) \ =& sum_f sum_h sum_{xin mathcal{X}-X} P(x)ell({h(x),f(x)}) P(h|X, mathcal{L}_a) \ =& sum_{xin mathcal{X}-X} P(x) sum_h P(h|X, mathcal{L}_a) sum_f ell({h(x),f(x)})\ =& sum_{xin mathcal{X}-X} P(x) sum_h P(h|X, mathcal{L}_a) left( 2^{vertmathcal{X}vert}mathbb{I}(h(x)=1) (dfrac{1}{2} ell_1+dfrac{1}{2} ell_3) ight)\ +& sum_{xin mathcal{X}-X} P(x) sum_h P(h|X, mathcal{L}_a) left( 2^{vertmathcal{X}vert}mathbb{I}(h(x)=0) (dfrac{1}{2} ell_2+dfrac{1}{2} ell_4) ight)\ end{aligned} ]

    上面最后一个等式是因为(f)是均匀分布,因此如果给定了(h)(x),不管(h(x))是0还是1,都有一半的(f)会是(f(x)=0),一半的(f)会是(f(x)=1)

    又因为(mathbb{I}(h(x)=1)+mathbb{I}(h(x)=0)=1),可将上式继续化简:

    [egin{aligned} &sum_f E_{ote}(mathcal{L}_a | X,f) \ =& 2^{vertmathcal{X}vert-1}sum_{xin mathcal{X}-X} P(x) sum_h P(h|X, mathcal{L}_a) ig((ell_1+ ell_3) mathbb{I}(h(x)=1) +(ell_2+ell_4)(1-mathbb{I}(h(x)=1)) ig)\ =& 2^{vertmathcal{X}vert-1} (ell_2+ell_4) sum_{xin mathcal{X}-X} P(x) sum_h P(h|X, mathcal{L}_a)cdot 1\ +& 2^{vertmathcal{X}vert-1} sum_{xin mathcal{X}-X} P(x) sum_h P(h|X, mathcal{L}_a) (ell_1+ell_3-ell_2-ell_4)mathbb{I}(h(x)=1)\ =& 2^{vertmathcal{X}vert-1} (ell_2+ell_4) sum_{xin mathcal{X}-X} P(x) \ +& 2^{vertmathcal{X}vert-1} (ell_1+ell_3-ell_2-ell_4) sum_{xin mathcal{X}-X} P(x) sum_h P(h|X, mathcal{L}_a)mathbb{I}(h(x)=1) end{aligned} ]

    上式中,第一部分(2^{vertmathcal{X}vert-1} (ell_2+ell_4) sum_{xin mathcal{X}-X} P(x)) 显然与(mathcal{L}_a)无关,第二部分则不然,需要再附加条件(ell_1+ell_3-ell_2-ell_4=0)才可以使整个式子与(mathcal{L}_a)无关,在周志华的书中,并没有加这个限制,可能是默认隐含了(因为加入这个条件很合理)。(lacksquare)

    特殊化情形

    再来看在书正文中的例子,该例子将(ell(h(x),f(x)))特殊化为二分类的错误率,即取(ell(h(x),f(x))=mathbb{I}(h(x) e f(x))),对应到本文的设定中,有(ell_1=ell_4=0)(ell_2=ell_3=1),将它们代入后得:

    [sum_f E_{ote}(mathcal{L}_a | X,f) = 2^{vertmathcal{X}vert-1} sum_{xin mathcal{X}-X} P(x) ]

    因此,它与(mathcal{L}_a)无关。对于任意的(mathcal{L}_a)(mathcal{L}_b),它们的样本外误差的期望其实是相等的。这就是“没有免费的午餐”定理(No Free Lunch Theorem,NFL)。

  • 相关阅读:
    mybatis-plus 中的LocalDateTime, LocalDate, LocalTime
    mybatis plus 中的Serializable
    JavaSE: FileWriter类 & FileReader类
    JavaSE: IO流的概念
    JavaSE: File类
    JavaSE: 自定义异常
    JavaSE: 异常的抛出
    Vocabulary: hoarse
    JavaSE: finally的使用
    Vocabulary: appalling
  • 原文地址:https://www.cnblogs.com/analysis101/p/13893730.html
Copyright © 2011-2022 走看看