機器學習周志華--沒有免費的午餐定理

沒有免費的午餐定理(No Free Lunch Theorem),這個定理說明

若學習算法La某些問題上比學習算法Lb 要好,
那麼必然存在另一些問題
在這些問題中LbLa 表現更好。

這裏說的表現好就是前面所說的泛化能力更強。然後出現了下面這個公式

Eote(La|X,f)=hxχXP(x)I(h(x)f(x))P(h|X,La)

令人生畏的長公式,不過我們來依次解讀它。

留坑,週末更
好了,週六了,今天終於看懂了這個定理的證明,下面我們一字一句地來解讀書中的證明:
首先,定義好符號
χ :樣本空間,什麼是樣本空間呢?就是你的樣本的屬性張成的空間,書的前文有介紹
還是以他書中的西瓜來舉例吧:
西瓜的屬性和每個屬性的取值是
色澤= 青綠||烏黑||淺白      x= 0 || 1 || 2
根蒂= 蜷縮||稍蜷||硬挺      y= 0 || 1 || 2
敲聲= 濁響||沉悶||清脆      z= 0 || 1 || 2
你把色澤、根蒂、敲聲想想成x,y,z軸。取值的範圍都是0,1,2。怎麼樣,是不是像一個正方體的三維空間,當然屬性可能有多種,那就上升到多維空間去了,不好想像了。

H :假設空間,什麼是假設空間呢?
什麼是假設呢,前面說也叫學得模型,這裏我們不搞那些概念。請看這篇博主的文章http://blog.csdn.net/VictoriaW/article/details/77686168,看完應該就能理解假設空間和版本空間。

La :學習算法,學習算法有其偏好性,對於相同的訓練數據,不同的學習算法可以產生不同的假設,學得不同的模型,因此纔會有那個學習算法對於具體問題更好的問題,這裏這個沒有免費的午餐定理要證明的就是:若對於某些問題算法La 學得的模型更好,那麼必然存在另一些問題,這裏算法Lb 學得的模型更好.這裏的好壞在下文中使用算法對於所有樣本的總誤差表示

P(h|X,La) : 算法La 基於訓練數據X 產生假設h 的概率
這裏我說一下自己的理解,既然是La 基於X 產生假設h 的概率,那麼就說明假設不止一個(你說這不是廢話嗎?上面都說有假設空間了,假設當然不止一個),這裏要注意的是這裏的假設是一個映射,是y=h(x) ,是基於數據X 產生的對於學習目標(判斷好瓜)的預測。因數據X 不一樣,所以可能產生不一樣的假設h ,既然假設假設有可能不一樣,那麼對每一種假設都有其對應的概率即P(h|X,La) .而且所有假設h 加起來的概率爲1,這個不難理解,概率總和爲1

f :代表希望學得的真實目標函數,要注意這個函數也不是唯一的,而是存在一個函數空間,在這個空間中按某個概率分佈,下文證明中採用的是均勻分佈。

好,上面那個公式到了

Eote(La|X,f)=hxχXP(x)I(h(x)f(x))P(h|X,La)

首先看這個E ,這個E 是期望,expectation的意思,這個下標ote ,是off-training error,即訓練集外誤差(忘了是在哪篇博客上看到的了,錯了我不負責哈嘻嘻)。

Eote(La|X,f) : 算法La 學得的假設在訓練集外的所有樣本上的誤差的期望

P(x) : 對於這個,我的理解是樣本空間中的每個樣本的取得概率不同,什麼意思呢?拿西瓜來說,(色澤=淺白,根蒂=硬挺,敲聲=清脆)的西瓜可能比(色澤=淺白,根蒂=稍蜷,敲聲=沉悶)的西瓜更多,取到的概率更大。所以有P(x) 這個概率。

I(h(x)f(x)) :看前面的符號表把這個叫做指示函數,這個很好理解,就像if語句括號裏的表達式一樣,爲真就=1,爲假就=0。

P(h|X,La) : 前面說過了,再複習一下,算法La 基於訓練集X 產生假設h 的概率。

其實這裏最開始最令我困惑的是什麼呢?是兩個求和符號,因爲這裏求和符號感覺不規範啊!有木有,不過後來覺得理解了意思就大概行了.
第一個求和符號:
h : 這裏的這個對假設的求和其實我也不是很理解,我的理解主要是不知道這個對假設求和的空間到底是:同一個算法對於不同訓練集產生不同的假設,每個假設有不同的概率,還是算法對於同一個訓練集會產生不同的假設,每個假設有不同的概率。不過這個不重要,羣裏有人說前三章看看就好,具體結合後面的算法來理解就行了,先往後面看着吧
第二個求和符號:
xχX :對於樣本空間中每一個訓練集外的數據都進行右邊的運算。

好了,公式的每一部分都說清楚了,來整體理解一下,這個公式就是說:
對於算法La 產生的每一個不同的假設h ,進行訓練外樣本的測試,然後測試不成功(因爲求的是誤差)指示函數就爲1,並且兩個概率相乘,最後所有的結果加起來,就是該算法在訓練集外產生的誤差。

然後下面考慮二分類問題,先要說明,對於我們想要求得的真實目標函數f 可能也不止一個,這個好理解,因爲滿足版本空間中的假設的函數都可以是真實目標函數,然後這些不同的f 有着相同的概率(均勻分佈),函數空間爲{0,1} ,那麼有多少個這種函數呢?我們來看對於同一個樣本的這個預測值,對於樣本空間χ 中的某個樣本x ,如果f1(x)=0f2(x)=1 , 那麼這就是兩個不同的真實目標函數,所以對於某個樣本可以區分出兩個真實目標函數,一共有|χ| 個樣本,所以一共有2|χ| 個真實目標函數,這些真實目標函數是等可能分佈的(均勻分佈),所以對於某個假設h(x) 如果h(x)=0 那麼就有12 的可能與真實目標函數相等。
所以下面來看這個公式推導

fEote(La|X,f)
=fhxχXP(x)I(h(x)f(x))P(h|X,La)
=xχXP(x)hP(h|X,La)fI(h(x)f(x))
=xχXP(x)hP(h|X,La)122|χ|
=122|χ|xχXP(x)hP(h|X,La)
=2|χ|1xχXP(x)1

第一步是怎麼推導出來的呢?這裏涉及到一個求和運算
假設
ai{a1,a2,...,am}
bj{b1,b2,...,bn}
ak{c1,c2,...,co}

那麼
minjokaibjck
=miainjbjokck
這個很容易理解,你想
(a1+a2+...+am)(b1+b2+...+bn)(c1+c2+...+co)
是不是等於
a1b1c1+a2b1c1+...amb1c1+...+ambnco
看懂了上面那個你再看第一步也就看懂了

第二步
主要是
fI(h(x)f(x))=122|χ|
這個其實也很好理解,因爲一共有2|χ|f ,且均勻分佈,所以f(x)=1f(x)=0f 個數相等,對於每一個h(x) 來說,不管h(x)=0 還是1 ,都有一半f(x) 與之相等,即122|χ|
所以就得出第二步

第三步到第四步就更好理解了
概率求和爲1,就是這麼簡單

經過這麼一通推導後,發現得出期望的表達式中關於沒有具體算法的,所以是算法無關的!
如果錯誤,望指出共交流,共學習!

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