在機器學習的面試中谤狡,能不能講清楚偏差方差匿乃,經常被用來考察面試者的理論基礎。偏差方差看似很簡單豌汇,但真要徹底地說明白幢炸,卻有一定難度。比如拒贱,為什么KNN算法在增大k時宛徊,偏差會變大,但RF增大樹的數目時偏差卻保持不變逻澳,GBDT在增大樹的數目時偏差卻又能變小闸天。本文的目的就是希望能對偏差方差有一個科學的解讀,歡迎大家多多交流斜做。
1苞氮、引子
假設我們有一個回歸問題,我們搞到一批訓練數據D瓤逼,然后選擇了一個模型M笼吟,并用數據D將M訓練出來库物,記作Mt,這里我們故意把模型M與訓練出的模型Mt區(qū)分開贷帮,是為了后面敘述時概念上的清晰∑萁遥現(xiàn)在,我們怎么評價這個模型的好壞呢撵枢?
你可能會不屑地說民晒,這么簡單的問題還用問嗎,當然是用test集來測試啊锄禽。
哈哈潜必!你上當了!
因為我并沒有說明是評價模型M的好壞還是模型Mt的好壞沃但!這二者有什么區(qū)別呢磁滚?
我們都知道,模型M代表的是一個函數空間绽慈,比如模型y=wx+b恨旱,若x,y都是實數,w,b為實數參數坝疼,則該模型就代表了平面上所有的直線搜贤,這所有的直線就是一個函數空間。
同理钝凶,y=ax^2+bx+c代表的就是平面上所有的二次曲線仪芒,所有的二次曲線組成一個函數空間。當然耕陷,所有的直線此時也是二次曲線的特例掂名。
回到上面的問題,Mt實際上是用數據D找到的M代表的函數空間中的一個具體的函數哟沫。這話有點繞饺蔑,不過還是不難理解的。
Mt的表現(xiàn)好壞不能完整地代表M的好壞嗜诀。
上面這句話有很多內涵猾警,我們一點一點來說明。
2隆敢、什么是M的好壞发皿?
以上面的一次函數和二次函數為例,當我們說二次函數比一次函數更好時拂蝎,我們潛在的含義是說穴墅,對于某個我們正要解決的機器學習問題來說,二次函數總體上比一次函數表現(xiàn)更好,我們是在函數空間的層次上來比較的玄货。
而且皇钞,還是針對一個具體的機器學習問題來比較的,因為對于不同的機器學習問題誉结,二者哪個更好是不一定的鹅士。
Note:在下文中券躁,可以把機器學習問題默想成回歸問題惩坑,這樣便于理解。
這里再次強調也拜,當我們說模型好壞時以舒,隱含有兩個含義:
1,比較的是整個函數空間
2,針對某個具體機器學習問題比較
3,怎么比較M的好壞慢哈?
我們可以這樣做:
1蔓钟,找一條不變的萬能測試樣本
在這個具體的機器學習問題中找一條樣本x,它的標簽為y卵贱。在后續(xù)的所有訓練中都用這條樣本做測試集滥沫,永遠不用作訓練集。
2键俱,在測試樣本上觀察Mt的表現(xiàn)兰绣,假設Mt在樣本x上的預測值為yt,則y-yt可用來評價Mt的表現(xiàn)好壞编振。
3缀辩,找另外一個訓練集D1,訓練出Mt1踪央,在測試樣本上測試得到y(tǒng)t1臀玄,進而得到誤差y-yt1,
4畅蹂,重復第3步多次健无,直到得到N個具體的模型,和N個yt液斜,N個y-yt累贤。
5,當N足夠大時旗唁,我們可以這樣來評測M的好壞畦浓,首先看N個yt的均值ytmean是否等于y,其次检疫,看N個yt相對均值ytmean的方差有多大讶请。
顯然,若ytmean=y,說明M學習能力是夠的夺溢,也就是說论巍,當N趨向無窮大時,N個Mt對x預測的均值能無限接近y风响。
很多人會有種錯覺嘉汰,感覺任何M都能達到上面的效果,實際上状勤,不是每一個M都有這樣的能力的鞋怀,舉個極端的例子,我們假設M1的函數空間中只有一個函數持搜,且對于任何樣本的預測值都恒等于y+1密似,則無論N多大,ytmean都會比y大1的葫盼。我們稱M1由于學習能力不夠所造成的對x的預測誤差叫做偏差残腌。
其次,N個yt相對均值ytmean的方差有多大也能從另一個方面揭示M的好壞贫导,舉個例子抛猫,假設我們有M1,M2兩個模型,當N無窮大時孩灯,都能使得ytmean等于y闺金。但是M1的預測值是這樣分布的(下面圓點代表一個個的預測值)
.....ytmean.....
M2的預測值是這樣分布的
. ?. ? . ?.ytmean. ?. ? . ?.
顯然,我們會覺得M1比M2更好钱反。你可能會想掖看,N足夠大時,二者都能準確地均值到y(tǒng)面哥,這就夠了哎壳,沒必要再比較它們的預測值相對均值的方差。
這樣的觀點錯誤的地方是:實踐中尚卫,我們并不能抽樣出D1,D2,D3.......DN個訓練集归榕,往往只有一份訓練集D,這種情況下吱涉,顯然刹泄,用M1比用M2更有把握得到更小的誤差。
4怎爵、舉例子來說明偏差方差
假設模型是一個射擊學習者特石,D1,D2直到DN就是N個獨立的訓練計劃。
如果一個學習者是正常人鳖链,一個眼睛斜視姆蘸,則可以想見,斜視者無論參加多少訓練計劃,都不會打中靶心逞敷,問題不在訓練計劃夠不夠好狂秦,而在他的先天缺陷。這就是模型偏差產生的原因推捐,學習能力不夠裂问。正常人參加N個訓練計劃后,雖然也不能保證打中靶心牛柒,但隨著N的增大堪簿,會越來越接近靶心。
假設還有一個超級學習者焰络,他的學習能力特別強戴甩,參加訓練計劃D1時符喝,他不僅學會了瞄準靶心闪彼,還敏感地捕捉到了訓練時的風速,光線协饲,并據此調整了瞄準的方向畏腕,此時,他的訓練成績會很好茉稠。
但是描馅,當參加測試時的光線,風速肯定與他訓練時是不一樣的而线,他仍然按照訓練時學來的瞄準方法去打靶铭污,肯定是打不好。這樣產生的誤差就是方差膀篮。這叫做聰明反被聰明誤嘹狞。
總結一下:學習能力不行造成的誤差是偏差,學習能力太強造成的誤差是方差誓竿。
5磅网、權衡偏差方差
當我們只有一份訓練數據D時,我們選的M若太強筷屡,好比射手考慮太多風速涧偷,光線等因素,學出來的模型Mt在測試樣本上表現(xiàn)肯定不好毙死,若選擇的M太挫燎潮,比如是斜視,也無論如何在測試的樣本上表現(xiàn)也不會好扼倘。所以确封,最好的M就是學習能力剛剛好的射手,它能夠剛剛好學習到瞄準的基本辦法,又不會畫蛇添足地學習太多細枝末節(jié)的東西隅肥。
6竿奏、回答本文最初的問題
對于KNN算法,k值越大腥放,表示模型的學習能力越弱泛啸,因為k越大,它越傾向于從“面”上考慮做出判斷秃症,而不是具體地考慮一個樣本 近身的情況來做出判斷候址,所以,它的偏差會越來越大种柑。
對于RF岗仑,我們實際上是部分實現(xiàn)了多次訓練取均值的效果,每次訓練得到的樹都是一個很強的學習者聚请,每一個的方差都比較大荠雕,但綜合起來就會比較小。好比一個很強的學習者學習時驶赏,刮著西風炸卑,它會據此調整自己的瞄準方法,另一個很強的學習者學習時刮著東風煤傍,(西風盖文、東風可以理解為不同訓練集中的噪聲)它也會據此調整自己的瞄準方法,在測試樣本時蚯姆,一個誤差向西五续,一個誤差向東,剛好起到互相抵消的作用龄恋,所以方差會比較小疙驾。但是由于每棵樹的偏差都差不多,所以篙挽,我們取平均時荆萤,偏差不會怎么變化。
為什么說是部分實現(xiàn)了多次訓練取均值的效果而不是全部呢铣卡?因為我們在訓練各棵樹時链韭,是通過抽樣樣本集來實現(xiàn)多次訓練的,不同的訓練集中不可避免地會有重合的情況煮落,此時敞峭,就不能認為是獨立的多次訓練了,各個訓練得到的樹之間的方差會產生一定的相關性蝉仇,訓練集中重合的樣本越多旋讹,則兩棵樹之間的方差的相關性越強殖蚕,就越難達成方差互相抵消的效果。
對于GBDT沉迹,N棵樹之間根本就不是一種多次訓練取均值的關系睦疫,而是N棵樹組成了相關關聯(lián),層層遞進的超級學習者鞭呕,可想而知蛤育,它的方差一定是比較大的。但由于它的學習能力比較強葫松,所以瓦糕,它的偏差是很小的,而且樹的棵樹越多腋么,學習能力就越強咕娄,偏差就越小。也就是說珊擂,只要學習次數夠多圣勒,預測的均值會無限接近于目標。簡單講就是GBDT的N棵樹實際上是一個有機關聯(lián)的模型未玻,不能認為是N個模型灾而。
作者:milter
鏈接:http://www.reibang.com/p/23550b50b6c1
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯(lián)系作者獲得授權并注明出處扳剿。