(《机器学习》完整版系列)1-5 没有免费的午餐(NFL)的证明
【西瓜书】中对NFL(没有免费的午餐)定理进行了证明(【西瓜书式(1.1)(1.2)(1.3)】),但过于简化,本文对几个关键点进行补充,从而给出详细的证明。
没有免费的午餐!没有免费的午餐!没有免费的午餐!重要的事情说三遍。
【西瓜书】中对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(x∈A)={1,当x∈A0,当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 X╲X上各点误差的平均值,记为 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=X╲XE(Eh(x))=x∈X╲X∑P(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(h∣X,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)=h∑EhP(h∣X,La)(5)
而
∑ h P ( h ∣ X , L a ) = 1 (6) \sum\limits_{h} P(h\,|\,X,\mathcal{L}_a)=1 \tag{6} h∑P(h∣X,La)=1(6)
因预报范围为 X ╲ X \mathcal{X}\diagdown X X╲X,故将其记为 E o t e ( L a ∣ X , f ) E_{\mathrm{ote}}\left(\mathcal{L}_a\,|\,X,f \right) Eote(La∣X,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(La∣X,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∣=2∣X∣(8)
显然,集合 F \mathcal{F} F具有对称性,即对于固定的 x ∈ X \boldsymbol{x}\in \mathcal{X} x∈X,一定有一对 f 1 , f 2 ∈ F f_1,f_2\in \mathcal{F} f1,f2∈F,使得
{ 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} f∑I(h(x)=f(x))=f∑I(f(x)=0)=f∑I(f(x)=1)=21∣F∣(由前述的对称性)=2∣X∣−1(由式(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} f∑I(h(x)=f(x))=2∣X∣−1(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} f∑Eote(La∣X,f)=f∑h∑x∈X╲X∑(⋯)((⋯)表示省略)=x∈X╲X∑h∑f∑(⋯)(交换次序)=x∈X╲X∑h∑P(x)P(h∣X,La)f∑I(h(x)=f(x))=x∈X╲X∑h∑P(x)P(h∣X,La)2∣X∣−1(由式(10))=2∣X∣−1x∈X╲X∑P(x)h∑P(h∣X,La)=2∣X∣−1x∈X╲X∑P(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(La∣X,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(La∣X,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}|} 2∣X∣个不同的二分类器 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∣=2∣X∣=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} f∑Eh(x)=f(x)=h(x)∑Eh(x)+f(x)=h(x)∑Eh(x)=f(x)=h(x)∑α+f(x)=h(x)∑β=2nα+2nβ=2∣X∣−1(α+β)(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} f∑Eote(La∣X,f)=x∈X╲X∑h∑P(x)P(h∣X,La)f∑Eh(x)=x∈X╲X∑h∑P(x)P(h∣X,La)2∣X∣−1(α+β)(由式(14))=2∣X∣−1(α+β)x∈X╲X∑P(x)h∑P(h∣X,La)(由式(6))=2∣X∣−1(α+β)x∈X╲X∑P(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(La∣X,f)与算法 L a \mathcal{L}_a La无关,定理得证。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:1-4 机器学习中的三个空间
下一篇:2.1误差,还是有误差
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)