P r o o f : \mathbf{Proof:} Proof:
考虑一个二分类问题,其真实函数可以为任何 f ( x ) : X → { 0 , 1 } f(x):\mathcal{X} \to \{ 0,1 \} f(x):X→{0,1}。则,其函数空间为 { 0 , 1 } ∣ X ∣ \{0,1\}^{|\mathcal{X}|} {0,1}∣X∣。假设所有函数出现的概率相同,对于所有 f f f,误差的期望计算如下:
∑ f E o t e { L a ∣ X , f } = ∑ f ∑ h ∑ x ∈ X − X P ( x ) I ( f ( x ) ≠ h ( x ) ) P ( h ∣ X , L a ) = ∑ x ∈ X − X P ( x ) ∑ h P ( h ∣ X , L a ) ∑ f I ( f ( x ) ≠ h ( x ) ) \begin{aligned} \sum_f E_{ote}\{\mathfrak{L}_a|X,f\} &= \sum_f \sum_h \sum_{x\in\mathcal{X}-X}\mathbb{P}(x) \mathbb{I}(f(x) \neq h(x))\mathbb{P}(h|X,\mathfrak{L}_a)\\ &=\sum_{x\in\mathcal{X}-X} \mathbb{P}(x) \sum_h \mathbb{P}(h|X,\mathfrak{L}_a) \sum_f \mathbb{I}(f(x) \neq h(x)) \end{aligned} f∑Eote{La∣X,f}=f∑h∑x∈X−X∑P(x)I(f(x)̸=h(x))P(h∣X,La)=x∈X−X∑P(x)h∑P(h∣X,La)f∑I(f(x)̸=h(x))
首先,我们需要计算上述上面式子的右端:对于二分类问题,这个问题的假设空间大小应该为 2 ∣ X ∣ 2^{|\mathcal{X}|} 2∣X∣,若 x ∈ X x\in\mathcal{X} x∈X,固定 h h h,则意味着 h ( x ) h(x) h(x)取值固定。但是对于 f f f来说,若在 x x x点满足 f ( x ) ≠ h ( x ) f(x)\neq h(x) f(x)̸=h(x),它在输入空间的子空间 X − x \mathcal{X} - {x} X−x上仍然有 2 ∣ X − x ∣ = 1 2 2 ∣ X ∣ 2^{|\mathcal{X}-x|}=\frac{1}{2}2^{|X|} 2∣X−x∣=212∣X∣种可能。故而:
∑ f E o t e { L a ∣ X , f } = ∑ x ∈ X − X P ( x ) ∑ h P ( h ∣ X , L a ) ∑ f I ( f ( x ) ≠ h ( x ) ) = ∑ x ∈ X − X P ( x ) ∑ h P ( h ∣ X , L a ) 1 2 2 ∣ X ∣ = 1 2 2 ∣ X ∣ ∑ x ∈ X − X P ( x ) × 1 \begin{aligned} \sum_f E_{ote}\{\mathfrak{L}_a|X,f\} &=\sum_{x\in\mathcal{X}-X} \mathbb{P}(x) \sum_h \mathbb{P}(h|X,\mathfrak{L}_a) \sum_f \mathbb{I}(f(x) \neq h(x))\\ &=\sum_{x\in\mathcal{X}-X} \mathbb{P}(x) \sum_h \mathbb{P}(h|X,\mathfrak{L}_a)\frac{1}{2}2^{|\mathcal{X}|}\\ &=\frac{1}{2}2^{|\mathcal{X}|}\sum_{x\in\mathcal{X}-X}\mathbb{P}(x)\times 1 \end{aligned} f∑Eote{La∣X,f}=x∈X−X∑P(x)h∑P(h∣X,La)f∑I(f(x)̸=h(x))=x∈X−X∑P(x)h∑P(h∣X,La)212∣X∣=212∣X∣x∈X−X∑P(x)×1
对于一个学习算法,他的误差与算法本身无关!
在上述证明中,我们需要注意,对于一个算法,他的所有假设出现的可能性相等。且,这仅仅为二分类的证明。NFL定理的重要性在于让我们认识到,脱离具体问题讨论算法好坏是没有意义的。在具体的算法设计,模型选择过程中,需要具体地考虑各种问题,尤其是归纳偏好需要慎重考虑。
Solution:
1.1 两个样例分别为:
编号 | 色泽 | 敲声 | 根蒂 | 好瓜 |
---|---|---|---|---|
1 | 青绿 | 浊响 | 蜷缩 | 是 |
4 | 乌黑 | 沉闷 | 稍蜷 | 否 |
版本空间可以为:
好瓜 ↔ \leftrightarrow ↔ ((色泽=青绿) ∧ \wedge ∧(根蒂=蜷缩) ∧ \wedge ∧(敲声=浊响)) 坏瓜 ↔ \leftrightarrow ↔ ((色泽=乌黑) ∧ \wedge ∧(根蒂=稍蜷) ∧ \wedge ∧(敲声=沉闷))
↔ \leftrightarrow ↔ ((色泽=*) ∧ \wedge ∧(根蒂=蜷缩) ∧ \wedge ∧(敲声=浊响)) ↔ \leftrightarrow ↔ ((色泽=*) ∧ \wedge ∧(根蒂=稍蜷) ∧ \wedge ∧(敲声=沉闷))
↔ \leftrightarrow ↔ ((色泽=青绿) ∧ \wedge ∧(根蒂=*) ∧ \wedge ∧(敲声=浊响)) ↔ \leftrightarrow ↔ ((色泽=乌黑) ∧ \wedge ∧(根蒂=*) ∧ \wedge ∧(敲声=沉闷))
↔ \leftrightarrow ↔ ((色泽=青绿) ∧ \wedge ∧(根蒂=蜷缩) ∧ \wedge ∧(敲声=*)) ↔ \leftrightarrow ↔ ((色泽=乌黑) ∧ \wedge ∧(根蒂=稍蜷) ∧ \wedge ∧(敲声=*))
↔ \leftrightarrow ↔ ((色泽=*) ∧ \wedge ∧(根蒂=*) ∧ \wedge ∧(敲声=浊响)) ↔ \leftrightarrow ↔ ((色泽=*) ∧ \wedge ∧(根蒂=*) ∧ \wedge ∧(敲声=沉闷))
↔ \leftrightarrow ↔ ((色泽=*) ∧ \wedge ∧(根蒂=蜷缩) ∧ \wedge ∧(敲声=*)) ↔ \leftrightarrow ↔ ((色泽=*) ∧ \wedge ∧(根蒂=稍蜷) ∧ \wedge ∧(敲声=*))
↔ \leftrightarrow ↔ ((色泽=青绿) ∧ \wedge ∧(根蒂=*) ∧ \wedge ∧(敲声=*)) ↔ \leftrightarrow ↔ ((色泽=乌黑) ∧ \wedge ∧(根蒂=*) ∧ \wedge ∧(敲声=*))
1.2 给出表1.1
编号 | 色泽 | 敲声 | 根蒂 | 好瓜 |
---|---|---|---|---|
1 | 青绿 | 浊响 | 蜷缩 | 是 |
2 | 乌黑 | 浊响 | 蜷缩 | 是 |
3 | 青绿 | 清脆 | 硬挺 | 否 |
4 | 乌黑 | 沉闷 | 稍蜷 | 否 |
我们已经知道,对于单个析取式表示的假设,共有 ( 4 × 4 × 4 ) + 1 = 65 (4\times 4\times 4) + 1=65 (4×4×4)+1=65种表示好瓜的情形。
当合取式种出现了某一个属性的三种值,那么他就对应某个属性为*的情况。此种情况仍然在65种情况中。
我们需要关注的某种属性的值出现两个不同的属性值的情况,可能出现的情况为: C 3 2 × 4 × 4 × 3 = 144 C_3^2 \times 4 \times 4 \times 3 = 144 C32×4×4×3=144。或者是,其中两种属性的值出现两个,为 C 3 2 × C 3 2 × 4 × 3 = 108 C_3^2 \times C_3^2 \times 4 \times 3=108 C32×C32×4×3=108。或者是,三种属性的属性值均出现两个不同的属性值,为 3 × 3 × 3 = 27 3 \times 3 \times 3 = 27 3×3×3=27。
综上:65 + 144 + 108 + 27 = 344
1.3 由题设可知,首先这个数据集是存在噪声的。即,总找不到与训练数据完全一致的假设。捋一下概念,也就说不存在版本空间。为了正确选出模型,我们可以总是选择误差最小的模型。
1.4 观察NFL定理,可知,我们整个过程希望寻求的是一个计算结果,这个计算与具体的算法无关。基于这样的考虑,我们进行计算,整个计算过程我们目标就是抹去算法 L a \mathfrak{L}_a La的影响。
∑ f E o t e ( L a ∣ X , f ) = ∑ f ∑ h ∑ x ∈ X − X P ( x ) l ( h ( x ) , f ( x ) ) P ( h ∣ X , L a ) = ∑ x ∈ x − X P ( x ) ∑ h P ( h ∣ X , L a ) ∑ f l ( h ( x ) , f ( x ) ) \begin{aligned} \sum_f E_{ote}(\mathfrak{L}_a|X,f) &= \sum_f \sum_h \sum_{x \in \mathcal{X}-X} \mathbb{P}(x) l(h(x),f(x)) \mathbb{P}(h|X,\mathfrak{L}_a) \\ &=\sum_{x \in \mathcal{x}-X} \mathbb{P}(x)\sum_h \mathbb{P}(h|X,\mathfrak{L}_a)\sum_fl(h(x),f(x)) \end{aligned} f∑Eote(La∣X,f)=f∑h∑x∈X−X∑P(x)l(h(x),f(x))P(h∣X,La)=x∈x−X∑P(x)h∑P(h∣X,La)f∑l(h(x),f(x))
同上面的证明过程类似,我们仍然需要计算等式右边,在之前的讨论中我们已经知道,会有 2 ∣ X − 1 ∣ 2^{|\mathcal{X}-1|} 2∣X−1∣种情况出现 h ( x ) = f ( x ) h(x)=f(x) h(x)=f(x)。故而,我们开始计算:
∑ f l ( h ( x ) , f ( x ) ) = 2 ∣ X − 1 ∣ ( l ( h ( x ) = f ( x ) ) + l ( h ( x ) ≠ f ( x ) ) ) = 2 ∣ X − 2 ∣ ( l ( 0 , 1 ) + l ( 1 , 0 ) + l ( 1 , 1 ) + l ( 0 , 0 ) ) = c o n s t \begin{aligned} \sum_fl(h(x),f(x)) &= 2^{|\mathcal{X}-1|}(l(h(x)=f(x))+l(h(x) \neq f(x)))\\ &=2^{|\mathcal{X}-2|}(l(0,1)+l(1,0)+l(1,1)+l(0,0))\\ &=\mathtt{const} \end{aligned} f∑l(h(x),f(x))=2∣X−1∣(l(h(x)=f(x))+l(h(x)̸=f(x)))=2∣X−2∣(l(0,1)+l(1,0)+l(1,1)+l(0,0))=const
基于这样的计算,我们则可以得到:
∑ f E o t e ( L a ∣ X , f ) = ∑ x ∈ x − X P ( x ) ∑ h P ( h ∣ X , L a ) ∑ f l ( h ( x ) , f ( x ) ) = c o n s t × ∑ x ∈ x − X P ( x ) ∑ h P ( h ∣ X , L a ) = c o n s t × ∑ x ∈ x − X P ( x ) \begin{aligned} \sum_f E_{ote}(\mathfrak{L}_a|X,f) &=\sum_{x \in \mathcal{x}-X} \mathbb{P}(x)\sum_h \mathbb{P}(h|X,\mathfrak{L}_a)\sum_fl(h(x),f(x))\\ &=\mathtt{const} \times \sum_{x \in \mathcal{x}-X} \mathbb{P}(x)\sum_h \mathbb{P}(h|X,\mathfrak{L}_a)\\ &=\mathtt{const} \times \sum_{x \in \mathcal{x}-X}\mathbb{P}(x) \end{aligned} f∑Eote(La∣X,f)=x∈x−X∑P(x)h∑P(h∣X,La)f∑l(h(x),f(x))=const×x∈x−X∑P(x)h∑P(h∣X,La)=const×x∈x−X∑P(x)
得证!
1.5 智能推荐系统!