没有免费的午餐!没有免费的午餐!没有免费的午餐!重要的事情说三遍。
【西瓜书】中对NFL(没有免费的午餐)定理进行了证明(【西瓜书式(1.1)(1.2)(1.3)】),但过于简化,本文对几个关键点进行补充,从而给出详细的证明。

NFL的证明*

(1)指示函数(用I的变体 I \mathbb{I} I表示)
I ( x ∈ A ) = { 1   , 当 x ∈ A 0   , 当 x ∉ A (1) \mathbb{I}(\boldsymbol{x}\in A) = \begin{cases} 1\, ,\qquad \text{当$\boldsymbol{x}\in A$} \\ 0\, ,\qquad \text{当$\boldsymbol{x}\notin A$} \end{cases} \tag{1} I(xA)={1,xA0,x/A(1)

(2)误差(点 x \boldsymbol{x} x处的误差)

设点 x \boldsymbol{x} x处的真实值为 f ( x ) f(\boldsymbol{x}) f(x),预测值为 h ( x ) h(\boldsymbol{x}) h(x),将预测点 x \boldsymbol{x} x处误差记为
E h ( x ) = { 1   , 当预测不准时 0   , 当预测准确时 (2) E_h(\boldsymbol{x})= \begin{cases} 1\, ,\qquad \text{当预测不准时} \\ 0\, ,\qquad \text{当预测准确时} \end{cases} \tag{2} Eh(x)={1,当预测不准时0,当预测准确时(2)
A = { x : h ( x ) ≠ f ( x ) } A=\{\boldsymbol{x}: h(\boldsymbol{x})\neq f(\boldsymbol{x})\} A={x:h(x)=f(x)},则由式(1)、式(2)有
E h ( x ) = I ( h ( x ) ≠ f ( x ) ) (3) E_h(\boldsymbol{x})= \mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x})) \tag{3} Eh(x)=I(h(x)=f(x))(3)
(3)期望误差(对于固定的模型 h h h,每点的期望误差)

设样本空间(sample space)为 X \mathcal{X} X,训练集为 X X X x \boldsymbol{x} x的概率函数为 P ( x ) P(\boldsymbol{x}) P(x),对于固定的模型 h h h,求 X ╲ X \mathcal{X}\diagdown X XX上各点误差的平均值,记为 E ‾ h \overline{E}_h Eh,则由式(3)有
E ‾ h = E X ╲ X ( E h ( x ) ) = ∑ x ∈ X ╲ X P ( x ) I ( h ( x ) ≠ f ( x ) ) (4) \overline{E}_h= \mathop{\mathbb{E}}\limits_{\mathcal{X}\diagdown X} (E_h(\boldsymbol{x}))= \sum\limits_{\boldsymbol{x}\in \mathcal{X}\diagdown X} P(\boldsymbol{x})\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x})) \tag{4} Eh=XXE(Eh(x))=xXXP(x)I(h(x)=f(x))(4)

(4)期望误差(对于固定的算法 L a \mathcal{L}_a La,每点的期望误差)

前述式(4)是基于固定的 h h h的期望误差,而在已知训练集 X X X条件下,算法 L a \mathcal{L}_a La可产生多种 h h h,设产生 h h h的概率为 P ( h   ∣   X , L a ) P(h\,|\,X,\mathcal{L}_a) P(hX,La),则对于前述 E ‾ h \overline{E}_h Eh再做基于 h h h的平均(即求基于 h h h的期望)
E h : L a ( E ‾ h ) = ∑ h E ‾ h P ( h   ∣   X , L a ) (5) \mathop{\mathbb{E}}\limits_{h:\mathcal{L}_a}\left(\overline{E}_h\right)= \sum\limits_{h} \overline{E}_hP(h\,|\,X,\mathcal{L}_a) \tag{5} h:LaE(Eh)=hEhP(hX,La)(5)

∑ h P ( h   ∣   X , L a ) = 1 (6) \sum\limits_{h} P(h\,|\,X,\mathcal{L}_a)=1 \tag{6} hP(hX,La)=1(6)

因预报范围为 X ╲ X \mathcal{X}\diagdown X XX,故将其记为 E o t e ( L a   ∣   X , f ) E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right) Eote(LaX,f)(其下标 o t e \mathrm{ote} ote指:off-training error),即
E o t e ( L a   ∣   X , f ) = E h : L a ( E ‾ h ) (7) E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right)= \mathop{\mathbb{E}}\limits_{h:\mathcal{L}_a}\left(\overline{E}_h\right) \tag{7} Eote(LaX,f)=h:LaE(Eh)(7)
由式(4)、式(5)、式(7)即得【西瓜书式(1.1)】

(5)现考虑二分问题所有可能的真值情况,真值函数为 f : X ↦ { 0 , 1 } f:\mathcal{X}\mapsto \{0,1\} f:X{0,1},反之,任一个这类映射都有一个真值函数,所有的 f f f组成一个集合 F \mathcal{F} F(函数空间),该集合中元素 f f f的个数为
∣ F ∣ = 2 ∣ X ∣ (8) |\mathcal{F} |=2^{|\mathcal{X} |} \tag{8} F=2X(8)
显然,集合 F \mathcal{F} F具有对称性,即对于固定的 x ∈ X \boldsymbol{x}\in \mathcal{X} xX,一定有一对 f 1 , f 2 ∈ F f_1,f_2\in \mathcal{F} f1,f2F,使得
{ f 1 ( x ) = 0 f 2 ( x ) = 1 (9) \begin{cases} f_1(\boldsymbol{x})=0 \\ f_2(\boldsymbol{x})=1 \end{cases} \tag{9} {f1(x)=0f2(x)=1(9)
即固定 x \boldsymbol{x} x,则 ∣ F ∣ |\mathcal{F} | F中的元素 f f f,一半使得 f ( x ) = 0 f(\boldsymbol{x})=0 f(x)=0,另一半使得 f ( x ) = 1 f(\boldsymbol{x})=1 f(x)=1

(6)现考虑二分问题的一个预测模型 h h h

h ( x ) = 0 h(\boldsymbol{x})=0 h(x)=0
∑ f I ( h ( x ) ≠ f ( x ) ) = ∑ f I ( f ( x ) ≠ 0 ) = ∑ f I ( f ( x ) = 1 ) = 1 2 ∣ F ∣ (由前述的对称性) = 2 ∣ X ∣ − 1 (由式(8)) \begin{aligned} \sum\limits_f\mathbb{I} (h(\boldsymbol{x})\neq f(\boldsymbol{x})) & =\sum\limits_f\mathbb{I} (f(\boldsymbol{x})\neq 0) \\ & =\sum\limits_f\mathbb{I} (f(\boldsymbol{x})=1) \\ & =\frac{1}{2}|\mathcal{F} |\qquad \text{(由前述的对称性)} \\ & =2^{|\mathcal{X} |-1} \qquad \text{(由式(8))} \end{aligned} fI(h(x)=f(x))=fI(f(x)=0)=fI(f(x)=1)=21F(由前述的对称性)=2X1(由式(8)

h ( x ) = 1 h(\boldsymbol{x})=1 h(x)=1时,同样推导,即无论 h ( x ) h(\boldsymbol{x}) h(x)为0还是1,都有
∑ f I ( h ( x ) ≠ f ( x ) ) = 2 ∣ X ∣ − 1 (10) \sum\limits_f\mathbb{I} (h(\boldsymbol{x})\neq f(\boldsymbol{x})) =2^{|\mathcal{X} |-1} %2^{|\mathcal{X}| -1}%% ^处不能有空格 \tag{10} fI(h(x)=f(x))=2X1(10)

(7)考虑 F \mathcal{F} F中,关于 f f f的总误差。 即对【西瓜书式(1.1)】求关于 f f f的和。
∑ f E o t e ( L a   ∣   X , f ) = ∑ f ∑ h ∑ x ∈ X ╲ X ( ⋯   ) ( ( ⋯   ) 表示省略) = ∑ x ∈ X ╲ X ∑ h ∑ f ( ⋯   ) (交换次序) = ∑ x ∈ X ╲ X ∑ h P ( x ) P ( h   ∣   X , L a ) ∑ f I ( h ( x ) ≠ f ( x ) ) = ∑ x ∈ X ╲ X ∑ h P ( x ) P ( h   ∣   X , L a ) 2 ∣ X ∣ − 1 (由式(10)) = 2 ∣ X ∣ − 1 ∑ x ∈ X ╲ X P ( x ) ∑ h P ( h   ∣   X , L a ) = 2 ∣ X ∣ − 1 ∑ x ∈ X ╲ X P ( x ) (由式(6)) \begin{align} \sum_{f}E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right) & =\sum_{f}\sum_{h}\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}(\cdots)\quad \text{($(\cdots)$表示省略)}\notag \\ & =\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}\sum_{h}\sum_{f}(\cdots)\quad \text{(交换次序)}\notag \\ & =\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}\sum_{h}P(\boldsymbol{x})P(h\,|\,X,\mathcal{L}_a)\sum_{f}\mathbb{I} (h(\boldsymbol{x})\neq f(\boldsymbol{x}))\notag \\ & =\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}\sum_{h}P(\boldsymbol{x})P(h\,|\,X,\mathcal{L}_a)2^{|\mathcal{X} |-1}\qquad\text{(由式(10))} \notag \\ & =2^{|\mathcal{X} |-1}\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}P(\boldsymbol{x})\sum_{h}P(h\,|\,X,\mathcal{L}_a)\notag \\ & =2^{|\mathcal{X} |-1}\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}P(\boldsymbol{x}) \qquad \text{(由式(6))} \tag{11} \end{align} fEote(LaX,f)=fhxXX()()表示省略)=xXXhf()(交换次序)=xXXhP(x)P(hX,La)fI(h(x)=f(x))=xXXhP(x)P(hX,La)2X1(由式(10)=2X1xXXP(x)hP(hX,La)=2X1xXXP(x)(由式(6)(11)

(8)由式(11)可知,总误差 ∑ f E o t e ( L a   ∣   X , f ) \sum_{f}E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right) fEote(LaX,f)竟然与算法 L a \mathcal{L}_a La无关,即用算法 L b \mathcal{L}_b Lb去推导仍是相同的结果。 表明:无论聪明的算法 L a \mathcal{L}_a La还是笨拙的算法 L b \mathcal{L}_b Lb的期望性能(总误差)相同,故区分不了聪明与笨拙。 这就是“没有免费的午餐”定理(NFL)。 为什么会出现这种不可思议的情况呢?其原因:我们指望找一个算法“通吃” F \mathcal{F} F中的所有 f f f,依此去求总误差,在推导中又“假设 f f f是均匀分布”,(NFL)定理可以理解为:任一个算法总会在某些 f f f上表现好,在某些 f f f上表现差(【西瓜书图1.4】说明了这一点),平均下来各算法表现在“ f f f是均匀分布”的前提下是一样的,即此时各算法的总误差是一样的。

好在“ f f f是均匀分布”被现实世界所否定,即并非任意的映射 f : X ↦ { 0 , 1 } f:\mathcal{X}\mapsto \{0,1\} f:X{0,1}都可以作为一种真实情况而存在,有的 f f f在实际中罕见,甚至根本不存在。 可以理解成:现实世界是经过“筛选”了的。
当我们放弃寻找“通吃”的算法时,即针对具体的实际问题( f f f)可以去考虑该误差的最小化(误差 E o t e ( L a   ∣   X , f ) E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right) Eote(LaX,f) f f f有关),这才是机器学习的任务。

(9)前述 NFL(没有免费的午餐)定理,使用的是“分类错误率”作为性能度量指标,若使用其他性能度量 ℓ \ell ,NFL(没有免费的午餐)定理仍成立。

式(2)变为
E h ( x ) = { α   , 当预测不正确时 β   , 当预测正确时 E_h(\boldsymbol{x})= \begin{cases} \alpha \, ,\qquad \text{当预测不正确时} \\ \beta \, ,\qquad \text{当预测正确时} \end{cases} Eh(x)={α,当预测不正确时β,当预测正确时

E h ( x ) = { α , 当 f ( x ) ≠ h ( x ) 时 β , 当 f ( x ) = h ( x ) 时 (12) E_h(\boldsymbol{x})= \begin{cases} \alpha ,\qquad \text{当$f(\boldsymbol{x})\neq h(\boldsymbol{x})$时} \\ \beta ,\qquad \text{当$f(\boldsymbol{x})=h(\boldsymbol{x})$时} \end{cases} \tag{12} Eh(x)={α,f(x)=h(x)β,f(x)=h(x)(12)
X \mathcal{X} X上进行任意二分类(随便分),则共有 2 ∣ X ∣ 2^{|\mathcal{X}|} 2X个不同的二分类器 f : X ↦ { 0 , 1 } f:\mathcal{X}\mapsto \{0,1\} f:X{0,1} f f f组成集合 F \mathcal{F} F,不妨记为 ∣ F ∣ = 2 ∣ X ∣ = n |\mathcal{F} |=2^{|\mathcal{X}|}=n F=2X=n。 显然 F \mathcal{F} F f f f具有对称性:对于固定的 x \boldsymbol{x} x h h h,则 F \mathcal{F} F中的元素 f f f,一半使得 f ( x ) = h ( x ) f(\boldsymbol{x})=h(\boldsymbol{x}) f(x)=h(x),另一半使得 f ( x ) ≠ h ( x ) f(\boldsymbol{x})\neq h(\boldsymbol{x}) f(x)=h(x),各占 n 2 \frac{n}{2} 2n个。

由式(12)及对称性,对于固定的 x \boldsymbol{x} x h h h,有
∑ f E h ( x ) = ∑ f ( x ) ≠ h ( x ) E h ( x ) + ∑ f ( x ) = h ( x ) E h ( x ) = ∑ f ( x ) ≠ h ( x ) α + ∑ f ( x ) = h ( x ) β = n 2 α + n 2 β = 2 ∣ X ∣ − 1 ( α + β ) \begin{align} \sum\limits_f E_h(\boldsymbol{x}) & =\sum\limits_{f(\boldsymbol{x})\neq h(\boldsymbol{x})}E_h(\boldsymbol{x}) +\sum\limits_{f(\boldsymbol{x})= h(\boldsymbol{x})}E_h(\boldsymbol{x}) \notag \\ & =\sum\limits_{f(\boldsymbol{x})\neq h(\boldsymbol{x})}\alpha +\sum\limits_{f(\boldsymbol{x})= h(\boldsymbol{x})}\beta \notag \\ & =\frac{n}{2}\alpha +\frac{n}{2}\beta \notag \\ & = 2^{|\mathcal{X}|-1}(\alpha+\beta) \tag{14} \end{align} fEh(x)=f(x)=h(x)Eh(x)+f(x)=h(x)Eh(x)=f(x)=h(x)α+f(x)=h(x)β=2nα+2nβ=2X1(α+β)(14)

采用NFL定理证明中的符号,式(11)的推导此时变为
∑ f E o t e ( L a   ∣   X , f ) = ∑ x ∈ X ╲ X ∑ h P ( x ) P ( h   ∣   X , L a ) ∑ f E h ( x ) = ∑ x ∈ X ╲ X ∑ h P ( x ) P ( h   ∣   X , L a ) 2 ∣ X ∣ − 1 ( α + β ) (由式(14)) = 2 ∣ X ∣ − 1 ( α + β ) ∑ x ∈ X ╲ X P ( x ) ∑ h P ( h   ∣   X , L a ) (由式(6)) = 2 ∣ X ∣ − 1 ( α + β ) ∑ x ∈ X ╲ X P ( x ) \begin{align} \sum_{f}E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right) & =\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}\sum_{h}P(\boldsymbol{x})P(h\,|\,X,\mathcal{L}_a)\sum_{f} E_h(\boldsymbol{x})\notag \\ & =\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}\sum_{h}P(\boldsymbol{x})P(h\,|\,X,\mathcal{L}_a)2^{|\mathcal{X} |-1}(\alpha+\beta)\quad \text{(由式(14))}\notag \\ & =2^{|\mathcal{X} |-1}(\alpha+\beta)\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}P(\boldsymbol{x})\sum_{h}P(h\,|\,X,\mathcal{L}_a)\quad \text{(由式(6))} \notag \\ & =2^{|\mathcal{X} |-1}(\alpha+\beta)\sum_{\boldsymbol{x} \in \mathcal{X}\diagdown X}P(\boldsymbol{x}) \tag{15} \end{align} fEote(LaX,f)=xXXhP(x)P(hX,La)fEh(x)=xXXhP(x)P(hX,La)2X1(α+β)(由式(14)=2X1(α+β)xXXP(x)hP(hX,La)(由式(6)=2X1(α+β)xXXP(x)(15)
由式(15)可知,总误差 ∑ f E o t e ( L a   ∣   X , f ) \sum_{f}E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right) fEote(LaX,f)与算法 L a \mathcal{L}_a La无关,定理得证。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:1-4 机器学习中的三个空间
下一篇:2.1误差,还是有误差

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐