【機器學習】NFL定理證明

何謂NFL定理?

最優化理論的發展之一是wolpert和Macerday提出了沒有免費的午餐定理(No Free Lunch,簡稱NFL)。
該定理的結論是,由於對所有可能函數的相互補償,最優化算法的性能是等價的。
該定理暗指,沒有其它任何算法能夠比搜索空間的線性列舉或者純隨機搜索算法更優。
該定理只是定義在有限的搜索空間,對無限搜索空間結論是否成立尚不清楚。

具體內容

  1. 對所有可能的的目標函數求平均,得到的所有學習算法的“非訓練集誤差”的期望值相同;
  2. 對任意固定的訓練集,對所有的目標函數求平均,得到的所有學習算法的“非訓練集誤差”的期望值也相同;
  3. 對所有的先驗知識求平均,得到的所有學習算法的“非訓練集誤差”的期望值也相同;
  4. 對任意固定的訓練集,對所有的先驗知識求平均,得到的所有學習算法的的“非訓練集誤差”的期望值也相同。

NFL定理表明沒有一個學習算法可以在任何領域總是產生最準確的學習器。不管採用何種學習算法,至少存在一個目標函數,能夠使得隨機猜測算法是更好的算法 。

公式

fEote(LaX,f)=fhxχXP(x)(h(x)f(x))P(hX,La)=xχXP(x)hP(hX,La)f(h(x)f(x))=xχXP(x)hP(hX,La)122x=122xxχXP(x)hP(hX,La)=2x1xχXP(x)1 \begin{aligned} \sum_{f} E_{ote}(\mathfrak{L}_a|X,f) &= \sum_{f}\sum_{h}\sum_{x \in \chi - X} P(x) \prod(h(x) \neq f(x))P(h|X,\mathfrak{L}_a)\\ &=\sum_{x \in \chi - X} P(x) \sum_{h}P(h|X,\mathfrak{L}_a) \sum_{f}\prod(h(x) \neq f(x))\\ &=\sum_{x \in \chi - X} P(x) \sum_{h}P(h|X,\mathfrak{L}_a) \frac{1}{2} 2^{|x|}\\ &=\frac{1}{2} 2^{|x|} \sum_{x \in \chi - X} P(x) \sum_{h}P(h|X,\mathfrak{L}_a)\\ &=2^{|x|-1} \sum_{x \in \chi - X} P(x) \cdot 1 \end{aligned}

證明

1. 第一步到第二步

fEote(LaX,f)=fhxχXP(x)(h(x)f(x))P(hX,La)=xχXP(x)hP(hX,La)f(h(x)f(x)) \begin{aligned} \sum_{f} E_{ote}(\mathfrak{L}_a|X,f) &= \sum_{f}\sum_{h}\sum_{x \in \chi - X} P(x) \prod(h(x) \neq f(x))P(h|X,\mathfrak{L}_a)\\ &=\sum_{x \in \chi - X} P(x) \sum_{h}P(h|X,\mathfrak{L}_a) \sum_{f}\prod(h(x) \neq f(x)) \end{aligned}
這一步的推導利用到了數學公式:imjnkoaibjck=imaijnbjkock\sum_{i}^{m}\sum_{j}^{n}\sum_{k}^{o}a_ib_jc_k=\sum_{i}^{m}a_i \sum_{j}^{n}b_j \sum_{k}^{o}c_k

2. 第二步到第三步

fEote(aX,f)=fhxχXP(x)(h(x)f(x))P(hX,a)=xχXP(x)hP(hX,a)f(h(x)f(x))=xχXP(x)hP(hX,a)122x \begin{aligned} \sum_{f} E_{ote}(a|X,f) &= \sum_{f}\sum_{h}\sum_{x \in \chi - X} P(x) \prod(h(x) \neq f(x))P(h|X,a)\\ &=\sum_{x \in \chi - X} P(x) \sum_{h}P(h|X,a) \sum_{f}\prod(h(x) \neq f(x))\\ &=\sum_{x \in \chi - X} P(x) \sum_{h}P(h|X,a) \frac{1}{2} 2^{|x|} \end{aligned}
由公式可以知道,此時的ff爲均勻分佈的任何將樣本映射到[0,1][0,1]內的函數,即各個ff出現的概率是相等的。
舉個例子,如果樣本空間只有兩個樣本:χ={x1,x2},χ=2\chi = \left\{x_1,x_2\right\},|\chi|=2,那麼所有真實的目標函數分佈如下:
f1:f1(x1)=0,f1(x2)=0;f2:f2(x1)=0,f2(x2)=1;f3:f3(x1)=1,f3(x2)=0;f4:f4(x1)=1,f4(x2)=1; \begin{aligned} f_1:f_1(x_1)=0,f_1(x_2)=0;\\ f_2:f_2(x_1)=0,f_2(x_2)=1;\\ f_3:f_3(x_1)=1,f_3(x_2)=0;\\ f_4:f_4(x_1)=1,f_4(x_2)=1;\\ \end{aligned}
可以看到有2χ=22=42^{|\chi|}=2^2=4個真實的目標函數,以此時通過算法La\mathfrak{L}_a學習出來的模型h(x)h(\boldsymbol{x})對每個樣本無論預測值爲0還是1必然有一半的ff與之預測值相等,例如,現在學出來的模型h(x)h(\boldsymbol{x})x1\boldsymbol{x}_1的預測值爲1,也即h(x1)=1h(\boldsymbol{x}_1)=1,那麼有且只有f3f_3f4f_4h(x)h(\boldsymbol{x})的預測值相等,也就是有且只有一半的ff與它預測值相等,所以fI(h(x)f(x))=122X\sum_f\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x})) = \cfrac{1}{2}2^{\vert \mathcal{X} \vert}

3. 第三步一直到最後

第三步一直到最後的步驟都顯然成立。

參考來源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章