这里的公式出现在书的第8页,为简化版的NFL,令 P ( h ∣ x , ε a ) P(h|x,\varepsilon_a) P(h∣x,εa)代表算法 ε a \varepsilon_a εa基于训练数据集 X X X产生假设 h h h的概率,令 f f f表示真实的目标函数, A A A表示样本空间,则 ε a \varepsilon_a εa的训练集外误差为:
E o t e ( ε a ∣ x , f ) = ∑ h ∑ x ∈ A − X P ( x ) ℓ ( h ( x ) ≠ f ( x ) ) P ( h ∣ x , ε a ) E_{ote}(\varepsilon_a|x,f)=\sum_{h}\sum_{x\in A-X}P(x)\ell(h(x)\neq f(x))P(h|x,\varepsilon_a) Eote(εa∣x,f)=h∑x∈A−X∑P(x)ℓ(h(x)=f(x))P(h∣x,εa)
上式中, ℓ ( h ( x ) ≠ f ( x ) ) \ell(h(x)\neq f(x)) ℓ(h(x)=f(x))表示当 h ( x ) ≠ f ( x ) h(x)\neq f(x) h(x)=f(x)时,该值为1,否则该值为0,;上式实际上求得是期望,之所以加入 P ( h ∣ x , ε a ) P(h|x,\varepsilon_a) P(h∣x,εa)是因为使用相同的训练算法可能产生不同的训练结果。
对于二分类问题,假设真实的目标函数 f f f可以是映射到{0,1}的任何函数,且函数空间为 { 0 , 1 } ∣ A ∣ \{ {0,1\}}^{|A|} { 0,1}∣A∣,则对所有可能的 f f f按均匀分布对误差求和,可得:
∑ f E o t e ( P ( ε a ∣ x , f ) = ∑ f ∑ h ∑ x ∈ A − X P ( x ) ℓ ( h ( x ) ≠ f ( x ) ) P ( h ∣ x , ε a ) = ∑ x ∈ A − X P ( x ) ∑ h P ( h ∣ x , ε a ) ∑ f ℓ ( h ( x ) ≠ f ( x ) ) \sum_f E_{ote}(P(\varepsilon_a|x,f)=\sum_f\sum_{h}\sum_{x\in A-X}P(x)\ell(h(x)\neq f(x))P(h|x,\varepsilon_a)\\ =\sum_{x\in A-X}P(x)\sum_{h}P(h|x,\varepsilon_a)\sum_f\ell(h(x)\neq f(x)) f∑Eote(P(εa∣x,f)=f∑h∑x∈A−X∑P(x)ℓ(h(x)=f(x))P(h∣x,εa)=x∈A−X∑P(x)h∑P(h∣x,εa)f∑ℓ(h(x)=f(x))
由于目标函数可以是映射到{0,1}的任何函数,且函数空间为 { 0 , 1 } ∣ A ∣ \{ {0,1\}}^{|A|} { 0,1}∣A∣,因此 f f f共有 2 ∣ A ∣ 2^{|A|} 2∣A∣种; f f f呈现均匀分布,即当 h ( x ) h(x) h(x)为0或1时, f f f均有1/2的概率和 h ( x ) h(x) h(x)不相等,故当 x x x的值确定时, ∑ f ℓ ( h ( x ) ≠ f ( x ) ) \sum_f\ell(h(x)\neq f(x)) ∑fℓ(h(x)=f(x))的值总是为 1 2 ⋅ 2 ∣ A ∣ = 2 ∣ A ∣ − 1 \frac{1}{2}·2^{|A|}=2^{|A|-1} 21⋅2∣A∣=2∣A∣−1, 此时原式变为
2 ∣ A ∣ − 1 ∑ x ∈ A − X P ( x ) ∑ h P ( h ∣ x , ε a ) 2^{|A|-1}\sum_{x\in A-X}P(x)\sum_{h}P(h|x,\varepsilon_a) 2∣A∣−1x∈A−X∑P(x)h∑P(h∣x,εa)
由条件概率的性质可知, 当 x x x确定时, ∑ h P ( h ∣ x , ε a ) = 1 \sum_{h}P(h|x,\varepsilon_a)=1 ∑hP(h∣x,εa)=1,此时原式变为
2 ∣ A ∣ − 1 ∑ x ∈ A − X P ( x ) 2^{|A|-1}\sum_{x\in A-X}P(x) 2∣A∣−1x∈A−X∑P(x)
至此简化版的NFL证明完毕, 该定理的寓意为脱离具体问题,空泛的谈论"什么学习算法更优"毫无意义. 至于
∑ f ∑ h ∑ x ∈ A − X P ( x ) ℓ ( h ( x ) ≠ f ( x ) ) P ( h ∣ x , ε a ) = ∑ x ∈ A − X P ( x ) ∑ h P ( h ∣ x , ε a ) ∑ f ℓ ( h ( x ) ≠ f ( x ) ) \sum_f\sum_{h}\sum_{x\in A-X}P(x)\ell(h(x)\neq f(x))P(h|x,\varepsilon_a)\\ =\sum_{x\in A-X}P(x)\sum_{h}P(h|x,\varepsilon_a)\sum_f\ell(h(x)\neq f(x)) f∑h∑x∈A−X∑P(x)ℓ(h(x)=f(x))P(h∣x,εa)=x∈A−X∑P(x)h∑P(h∣x,εa)f∑ℓ(h(x)=f(x))
主要运用了分配律,将该问题简化后,于 ∑ a ∑ b f ( a , b ) f ( a ) = ∑ a f ( a ) ∑ b f ( a , b ) \sum_a\sum_bf(a,b)f(a)=\sum_af(a)\sum_bf(a,b) ∑a∑bf(a,b)f(a)=∑af(a)∑bf(a,b)原理一致.
该部分是将原来的 ℓ ( h ( x ) ≠ f ( x ) ) \ell(h(x)\neq f(x)) ℓ(h(x)=f(x))替换为 ℓ ( h ( x ) , f ( x ) ) \ell(h(x),f(x)) ℓ(h(x),f(x)), 差别在于原先的性能度量为"分类误差率", 改变后可以是任意的度量函数.
在开始证明之前,假设 ℓ \ell ℓ满足两个性质,预测正确时 ℓ ( x , y ) \ell(x,y) ℓ(x,y)的值一样, 预测错误时 ℓ x , y \ell{x,y} ℓx,y的值也相等, 即对于二分类问题, 满足 ℓ ( 0 , 0 ) = ℓ ( 1 , 1 ) ; ℓ ( 0 , 1 ) = ℓ ( 1 , 0 ) \ell(0,0)=\ell(1,1);\ell(0,1)=\ell(1,0) ℓ(0,0)=ℓ(1,1);ℓ(0,1)=ℓ(1,0). 此时
E o t e ( ε a ∣ x , f ) = ∑ x ∈ A − X P ( x ) ∑ h P ( h ∣ x , ε a ) ∑ f ℓ ( h ( x ) , f ( x ) ) E_{ote}(\varepsilon_a|x,f)=\sum_{x\in A-X}P(x)\sum_{h}P(h|x,\varepsilon_a)\sum_f\ell(h(x),f(x)) Eote(εa∣x,f)=x∈A−X∑P(x)h∑P(h∣x,εa)f∑ℓ(h(x),f(x))
该问题的关键在于计算当 x x x和 h h h确定时, ∑ f ℓ ( h ( x ) , f ( x ) ) \sum_f\ell(h(x),f(x)) ∑fℓ(h(x),f(x))的值.
对于 h ( x ) h(x) h(x)只有两种取值:
当 h ( x ) = 1 h(x)=1 h(x)=1时, ∑ f ℓ ( h ( x ) , f ( x ) ) = 1 2 ⋅ 2 ∣ A ∣ ℓ ( 1 , 0 ) + 1 2 ⋅ 2 ∣ A ∣ ℓ ( 1 , 1 ) \sum_f\ell(h(x),f(x))=\frac{1}{2}·2^{|A|}\ell(1,0)+\frac{1}{2}·2^{|A|}\ell(1,1) ∑fℓ(h(x),f(x))=21⋅2∣A∣ℓ(1,0)+21⋅2∣A∣ℓ(1,1)
当 h ( x ) = 0 h(x)=0 h(x)=0时, ∑ f ℓ ( h ( x ) , f ( x ) ) = 1 2 ⋅ 2 ∣ A ∣ ℓ ( 0 , 0 ) + 1 2 ⋅ 2 ∣ A ∣ ℓ ( 0 , 1 ) \sum_f\ell(h(x),f(x))=\frac{1}{2}·2^{|A|}\ell(0,0)+\frac{1}{2}·2^{|A|}\ell(0,1) ∑fℓ(h(x),f(x))=21⋅2∣A∣ℓ(0,0)+21⋅2∣A∣ℓ(0,1)
由假设可知:当 h ( x ) = 0 h(x)=0 h(x)=0时与 h ( x ) = 1 h(x)=1 h(x)=1时的 ∑ f ℓ ( h ( x ) , f ( x ) ) \sum_f\ell(h(x),f(x)) ∑fℓ(h(x),f(x))值相等, 故可以认为, ∑ f ℓ ( h ( x ) , f ( x ) ) \sum_f\ell(h(x),f(x)) ∑fℓ(h(x),f(x))恒为 1 2 ⋅ 2 ∣ A ∣ ℓ ( 1 , 0 ) + 1 2 ⋅ 2 ∣ A ∣ ℓ ( 1 , 1 ) \frac{1}{2}·2^{|A|}\ell(1,0)+\frac{1}{2}·2^{|A|}\ell(1,1) 21⋅2∣A∣ℓ(1,0)+21⋅2∣A∣ℓ(1,1), 则原式为:
E o t e ( ε a ∣ x , f ) = 1 2 ⋅ 2 ∣ A ∣ ℓ ( ( 1 , 0 ) + ℓ ( 1 , 1 ) ) ∑ x ∈ A − X P ( x ) E_{ote}(\varepsilon_a|x,f)=\frac{1}{2}·2^{|A|}\ell((1,0)+\ell(1,1))\sum_{x\in A-X}P(x) Eote(εa∣x,f)=21⋅2∣A∣ℓ((1,0)+ℓ(1,1))x∈A−X∑P(x)
可以看出即使泛化性能度量函数, E o t e E_{ote} Eote仍然和学习算法无关
A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ( y i + y i + 1 ) AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)(y_i+y_{i+1}) AUC=21∑i=1m−1(xi+1−xi)(yi+yi+1), l r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( ℓ ( f ( x + ) < f ( x − ) ) + 1 2 ℓ ( f ( x + ) = f ( x − ) ) ) l{rank}=\frac{1}{m^+m^-}\sum_{x^+\in D^+}\sum_{x^-\in D^-}(\ell(f(x^+)
其中 ℓ ( x ) \ell(x) ℓ(x)表示的是指示函数,当 x x x为真时, ℓ ( x ) = 1 \ell(x)=1 ℓ(x)=1, 否则为0. 试证明AUC=1- l r a n k l_{rank} lrank
证明:由ROC的绘制过程可知, 当存在 m + m^+ m+个正例和 m − m^- m−个反例时,坐标由起点(0, 0)开始,共需横向移动 m − m^- m−次,每次移动 1 m − \frac{1}{m^-} m−1, 纵向移动 m + m^+ m+次,每次移动 1 m + \frac{1}{m^+} m+1. 观察AUC图像可以发现, 纵向移动时, AUC面积不发生改变, 故以横向移动为切入点进行证明.
设第 y 1 + 1 y_1+1 y1+1次横向移动前, 坐标位于 ( x 1 m − , y 1 m + ) (\frac{x_1}{m^-},\frac{y_1}{m^+}) (m−x1,m+y1), 可以看出, 此时阈值移动到第 x 1 + y 1 x_1+y_1 x1+y1位, 当完成第 y 1 + 1 y_1+1 y1+1次横向移动后, 坐标变为 ( x 1 + 1 m − , y 1 m + ) (\frac{x_1+1}{m^-},\frac{y_1}{m^+}) (m−x1+1,m+y1), 此时 A U C a = 1 m − y 1 m + AUC_a=\frac{1}{m^-}\frac{y_1}{m^+} AUCa=m−1m+y1,其中 A U C a AUC_a AUCa表示的是第a(此时a= y 1 + 1 y_1+1 y1+1)次横向移动贡献的增加量. l ′ r a n k = 1 m + m − ∑ x + ∈ D + ( ℓ ( f ( x + ) < f ( x 1 + y 1 + 1 ) ) + 1 2 ℓ ( f ( x + ) = f ( x 1 + y 1 + 1 ) ) ) l^{'}{rank}=\frac{1}{m^+m^-}\sum_{x^+\in D^+}(\ell(f(x^+)
对于AUC, 由于纵向移动不改变值, 故 A U C = ∑ a ∈ D − A U C a AUC=\sum_{a\in D^-}AUC_a AUC=∑a∈D−AUCa, 对于 l r a n k l{rank} lrank有
l r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( ℓ ( f ( x + ) < f ( x − ) ) + 1 2 ℓ ( f ( x + ) = f ( x − ) ) ) = 1 m + m − ∑ x − ∈ D − ∑ x + ∈ D + ( ℓ ( f ( x + ) < f ( x − ) ) + 1 2 ℓ ( f ( x + ) = f ( x − ) ) ) = ∑ x − ∈ D − l ′ r a n k l{rank}=\frac{1}{m^+m^-}\sum_{x^+\in D^+}\sum_{x^-\in D^-}(\ell(f(x^+)
则 A U C + l r a n k = ∑ a ∈ D − A U C a + ∑ x − ∈ D − l ′ r a n k = ∑ a ∈ D − ( A U C a + l ′ r a n k ) = ∑ a ∈ D − 1 m − = 1 AUC+l{rank}=\sum_{a\in D^-}AUC_a+\sum_{x^-\in D^-}l^{'}{rank}=\sum_{a\in D^-}(AUC_a+l^{'}{rank})=\sum_{a\in D^-}\frac{1}{m^-}=1 AUC+lrank=∑a∈D−AUCa+∑x−∈D−l′rank=∑a∈D−(AUCa+l′rank)=∑a∈D−m−1=1
值得注意的是,此处没有考虑 l r a n k l{rank} lrank中出现的相等的情况, 当出现相等情况的时候, 坐标不在是横向或者纵向移动, 而是沿对角线移动, 分析时原理和上述分析一致, 因此不再单独证明.
该问题出现在书中的38页, 问题为:假设泛化错误率为 ϵ \epsilon ϵ的学习器在一个样本上犯错的概率是 ϵ \epsilon ϵ;测试错误率为 ϵ ^ \hat \epsilon ϵ^意味着在m个测试样本中恰有 ϵ ^ × m \hat \epsilon×m ϵ^×m个被误分类. 当测试样本是从样本总体分布中独立采样而得, 则泛化错误率为 ϵ \epsilon ϵ的学习器被测得测试错误率为 ϵ ^ \hat \epsilon ϵ^的概率为: P ( ϵ ^ ; ϵ ) = C m ϵ ^ × m ϵ ϵ ^ × m ( 1 − ϵ ) m − ϵ ^ × m P(\hat \epsilon; \epsilon)=C_m^{\hat \epsilon×m}\epsilon^{\hat \epsilon×m}(1-\epsilon)^{m-\hat \epsilon×m} P(ϵ^;ϵ)=Cmϵ^×mϵϵ^×m(1−ϵ)m−ϵ^×m, 此时当给定测试错误率时,试证明在 ϵ = ϵ ^ \epsilon=\hat \epsilon ϵ=ϵ^时, P ( ϵ ^ ; ϵ ) P(\hat \epsilon; \epsilon) P(ϵ^;ϵ)最大.
证明:首先对于 P ( ϵ ^ ; ϵ ) P(\hat \epsilon; \epsilon) P(ϵ^;ϵ)公式, 此处不展开推导, 该公式的推导用到了组合数学的内容, 相对较为简单.
为书写方便, 首先令 ϵ ^ × m = m ′ \hat \epsilon×m=m^{'} ϵ^×m=m′
将 P ( ϵ ^ ; ϵ ) P(\hat \epsilon; \epsilon) P(ϵ^;ϵ)对 ϵ \epsilon ϵ求偏导可得:
∂ P ( ϵ ^ ; ϵ ) ∂ ϵ = m ′ ϵ m ′ − 1 ( 1 − ϵ ) m − m ′ + ( m ′ − m ) ϵ m ′ ( 1 − ϵ ) m − m ′ − 1 \frac{\partial P(\hat \epsilon; \epsilon)}{\partial \epsilon}=m^{'}\epsilon^{m^{'}-1}{(1-\epsilon)}^{m-m^{'}}+(m^{'}-m)\epsilon^{m^{'}}{(1-\epsilon)}^{m-m^{'}-1} ∂ϵ∂P(ϵ^;ϵ)=m′ϵm′−1(1−ϵ)m−m′+(m′−m)ϵm′(1−ϵ)m−m′−1
注,由于 C m ϵ ^ × m C_m^{\hat \epsilon×m} Cmϵ^×m不包含 ϵ \epsilon ϵ, 故为常量, 为方便书写, 上式求偏导时选择将 C m ϵ ^ × m C_m^{\hat \epsilon×m} Cmϵ^×m忽略.
由于 ϵ > 0 \epsilon>0 ϵ>0, 故 ϵ m ′ − 1 \epsilon^{m^{'}-1} ϵm′−1和 ( 1 − ϵ ) m − m ′ − 1 {(1-\epsilon)}^{m-m^{'}-1} (1−ϵ)m−m′−1不为0, 此时令 ∂ P ( ϵ ^ ; ϵ ) ∂ ϵ = 0 \frac{\partial P(\hat \epsilon; \epsilon)}{\partial \epsilon}=0 ∂ϵ∂P(ϵ^;ϵ)=0, 并且将上式两边同除以 ϵ m ′ − 1 ( 1 − ϵ ) m − m ′ − 1 \epsilon^{m^{'}-1}{(1-\epsilon)}^{m-m^{'}-1} ϵm′−1(1−ϵ)m−m′−1可得:
m ′ ( 1 − ϵ ) + ( m ′ − m ) ϵ = 0 ϵ = m ′ m ϵ = ϵ ^ m^{'}(1-\epsilon)+(m^{'}-m)\epsilon=0 \\ \epsilon=\frac{m^{'}}{m} \\ \epsilon=\hat \epsilon m′(1−ϵ)+(m′−m)ϵ=0ϵ=mm′ϵ=ϵ^
由于 P ( ϵ ^ ; ϵ ) = 0 P(\hat \epsilon; \epsilon)=0 P(ϵ^;ϵ)=0只包含一个零点, 因此极值点就等于最值点, 所以 ϵ = ϵ ^ \epsilon=\hat \epsilon ϵ=ϵ^时, P ( ϵ ^ ; ϵ ) P(\hat \epsilon; \epsilon) P(ϵ^;ϵ)最大.