Datawhale
作者:邱錫鵬,復(fù)旦大學(xué)教授
沒有免費(fèi)午餐定理(NFL)是由Wolpert 和Macerday在最優(yōu)化理論中提出的。沒有免費(fèi)午餐定理證明:對于基于迭代的最優(yōu)化算法,不存在某種算法對所有問題(有限的搜索空間內(nèi))都有效。
如果一個算法對某些問題有效,那么它一定在另外一些問題上比純隨機(jī)搜索算法更差。也就是說,不能脫離具體問題來談?wù)撍惴ǖ膬?yōu)劣,任何算法都有局限性. 必須要“具體問題具體分析”。
沒有免費(fèi)午餐定理對于機(jī)器學(xué)習(xí)算法也同樣適用。不存在一種機(jī)器學(xué)習(xí)算法適合于任何領(lǐng)域或任務(wù)。 如果有人宣稱自己的模型在所有問題上都好于其他模型,那么他肯定是在吹牛。
丑小鴨定理(Ugly Duckling Theorem)是1969 年由渡邊慧提出的[Watanable,1969]。“丑小鴨與白天鵝之間的區(qū)別和兩只白天鵝之間的區(qū)別一樣大”。這個定理初看好像不符合常識,但是仔細(xì)思考后是非常有道理的。
因為世界上不存在相似性的客觀標(biāo)準(zhǔn),一切相似性的標(biāo)準(zhǔn)都是主觀的。
如果從體型大小或外貌的角度來看,丑小鴨和白天鵝的區(qū)別大于兩只白天鵝的區(qū)別;但是如果從基因的角度來看,丑小鴨與它父母的差別要小于它父母和其他白天鵝之間的差別。
奧卡姆剃刀原理是由14 世紀(jì)邏輯學(xué)家William of Occam提出的一個解決問題的法則:“如無必要,勿增實體“。
奧卡姆剃刀的思想和機(jī)器學(xué)習(xí)上正則化思想十分類似:簡單的模型泛化能力更好。如果有兩個性能相近的模型,我們應(yīng)該選擇更簡單的模型。
因此,在機(jī)器學(xué)習(xí)的學(xué)習(xí)準(zhǔn)則上,我們經(jīng)常會引入?yún)?shù)正則化來限制模型能力,避免過擬合。
奧卡姆剃刀的一種形式化是最小描述長度(Minimum Description Length,MDL)原則,即對一個數(shù)據(jù)集??,最好的模型?? ∈ ? 是會使得數(shù)據(jù)集的壓縮效果最好,即編碼長度最小。最小描述長度也可以通過貝葉斯學(xué)習(xí)的觀點來解釋[MacKay, 2003]。模型?? 在數(shù)據(jù)集?? 上的對數(shù)后驗概率為
其中? log ??(??) 和? log ??(??|??) 可以分別看作是模型?? 的編碼長度和在該模型下數(shù)據(jù)集?? 的編碼長度。也就是說,我們不但要使得模型?? 可以編碼數(shù)據(jù)集??,也要使得模型?? 盡可能簡單。
當(dāng)使用機(jī)器學(xué)習(xí)方法來解決某個特定問題時,通??拷?jīng)驗或者多次試驗來選擇合適的模型、訓(xùn)練樣本數(shù)量以及學(xué)習(xí)算法收斂的速度等。
但是經(jīng)驗判斷或多次試驗往往成本比較高,也不太可靠,因此希望有一套理論能夠分析問題難度、計算模型能力,為學(xué)習(xí)算法提供理論保證,并指導(dǎo)機(jī)器學(xué)習(xí)模型和學(xué)習(xí)算法的設(shè)計。
這就是計算學(xué)習(xí)理論, 計算學(xué)習(xí)理論(Computational Learning Theory)是關(guān)于機(jī)器學(xué)習(xí)的理論基礎(chǔ),其中最基礎(chǔ)的理論就是可能近似正確(Probably Approximately Correct,PAC)學(xué)習(xí)理論。
機(jī)器學(xué)習(xí)中一個很關(guān)鍵的問題是期望錯誤和經(jīng)驗錯誤之間的差異,稱為泛化錯誤(Generalization Error)。泛化錯誤可以衡量一個機(jī)器學(xué)習(xí)模型?? 是否可以很好地泛化到未知數(shù)據(jù)。
根據(jù)大數(shù)定律,當(dāng)訓(xùn)練集大小|??| 趨向于無窮大時,泛化錯誤趨向于0,即經(jīng)驗風(fēng)險趨近于期望風(fēng)險。 由于我們不知道真實的數(shù)據(jù)分布??(??, ??),也不知道真實的目標(biāo)函數(shù)??(??),因此期望從有限的訓(xùn)練樣本上學(xué)習(xí)到一個期望錯誤為0 的函數(shù)??(??) 是不切實際的。因此,需要降低對學(xué)習(xí)算法能力的期望,只要求學(xué)習(xí)算法可以以一定的概率學(xué)習(xí)到一個近似正確的假設(shè),即PAC 學(xué)習(xí)(PAC Learning)。
一個PAC 可學(xué)習(xí)(PACLearnable)的算法是指該學(xué)習(xí)算法能夠在多項式時間內(nèi)從合理數(shù)量的訓(xùn)練數(shù)據(jù)中學(xué)習(xí)到一個近似正確的??(??)。
PAC 學(xué)習(xí)可以分為兩部分:
“可能”(Probably):一個學(xué)習(xí)算法?? 有“可能”以1 ? ?? 的概率學(xué)習(xí)到這樣一個“近似正確”的假設(shè)。?? 一般為0 到1/2之間的數(shù),0 < ?? < 1/2。
PAC 學(xué)習(xí)可以下面公式描述:
其中??,?? 是和樣本數(shù)量?? 以及假設(shè)空間? 相關(guān)的變量。如果固定??、??,可以反過來計算出需要的樣本數(shù)量:
其中|?| 為假設(shè)空間的大小. 從上面公式可以看出,模型越復(fù)雜,即假設(shè)空間? 越大,模型的泛化能力越差。
要達(dá)到相同的泛化能力,越復(fù)雜的模型需要的樣本數(shù)量越多。為了提高模型的泛化能力,通常需要正則化(Regularization)來限制模型復(fù)雜度。
PAC 學(xué)習(xí)理論也可以幫助分析一個機(jī)器學(xué)習(xí)方法在什么條件下可以學(xué)習(xí)到一個近似正確的分類器。從上述公式可以看出,如果希望模型的假設(shè)空間越大,泛化錯誤越小,其需要的樣本數(shù)量越多。
聯(lián)系客服