轉:http://blog.csdn.net/mosbest/article/details/51477833
https://www.zhihu.com/question/27068705
作者:orangeprince
連結:https://www.zhihu.com/question/27068705/answer/35151681
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
首先 Error = Bias + Variance
Error反映的是整個模型的準确度,Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,Variance反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性。
舉一個例子,一次打靶實驗,目标是為了打到10環,但是實際上隻打到了7環,那麼這裡面的Error就是3。具體分析打到7環的原因,可能有兩方面:一是瞄準出了問題,比如實際上射擊瞄準的是9環而不是10環;二是槍本身的穩定性有問題,雖然瞄準的是9環,但是隻打到了7環。那麼在上面一次射擊實驗中,Bias就是1,反應的是模型期望與真實目标的差距,而在這次試驗中,由于Variance所帶來的誤差就是2,即雖然瞄準的是9環,但由于本身模型缺乏穩定性,造成了實際結果與模型期望之間的差距。
在一個實際系統中,Bias與Variance往往是不能兼得的。如果要降低模型的Bias,就一定程度上會提高模型的Variance,反之亦然。造成這種現象的根本原因是,我們總是希望試圖用有限訓練樣本去估計無限的真實資料。當我們更加相信這些資料的真實性,而忽視對模型的先驗知識,就會盡量保證模型在訓練樣本上的準确度,這樣可以減少模型的Bias。但是,這樣學習到的模型,很可能會失去一定的泛化能力,進而造成過拟合,降低模型在真實資料上的表現,增加模型的不确定性。相反,如果更加相信我們對于模型的先驗知識,在學習模型的過程中對模型增加更多的限制,就可以降低模型的variance,提高模型的穩定性,但也會使模型的Bias增大。Bias與Variance兩者之間的trade-off是機器學習的基本主題之一,機會可以在各種機器模型中發現它的影子。
具體到K-fold Cross Validation的場景,其實是很好的了解的。首先看Variance的變化,還是舉打靶的例子。假設我把搶瞄準在10環,雖然每一次射擊都有偏差,但是這個偏差的方向是随機的,也就是有可能向上,也有可能向下。那麼試驗次數越多,應該上下的次數越接近,那麼我們把所有射擊的目标取一個平均值,也應該離中心更加接近。更加微觀的分析,模型的預測值與期望産生較大偏差,在模型固定的情況下,原因還是出在資料上,比如說産生了某一些異常點。在最極端情況下,我們假設隻有一個點是異常的,如果隻訓練一個模型,那麼這個點會對整個模型帶來影響,使得學習出的模型具有很大的variance。但是如果采用k-fold Cross Validation進行訓練,隻有1個模型會受到這個異常資料的影響,而其餘k-1個模型都是正常的。在平均之後,這個異常資料的影響就大大減少了。相比之下,模型的bias是可以直接模組化的,隻需要保證模型在訓練樣本上訓練誤差最小就可以保證bias比較小,而要達到這個目的,就必須是用所有資料一起訓練,才能達到模型的最優解。是以,k-fold Cross Validation的目标函數破壞了前面的情形,是以模型的Bias必然要會增大。
作者:orangeprince
連結:https://www.zhihu.com/question/27068705/answer/35151681
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
首先 Error = Bias + Variance
Error反映的是整個模型的準确度,Bias反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,Variance反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性。
舉一個例子,一次打靶實驗,目标是為了打到10環,但是實際上隻打到了7環,那麼這裡面的Error就是3。具體分析打到7環的原因,可能有兩方面:一是瞄準出了問題,比如實際上射擊瞄準的是9環而不是10環;二是槍本身的穩定性有問題,雖然瞄準的是9環,但是隻打到了7環。那麼在上面一次射擊實驗中,Bias就是1,反應的是模型期望與真實目标的差距,而在這次試驗中,由于Variance所帶來的誤差就是2,即雖然瞄準的是9環,但由于本身模型缺乏穩定性,造成了實際結果與模型期望之間的差距。
在一個實際系統中,Bias與Variance往往是不能兼得的。如果要降低模型的Bias,就一定程度上會提高模型的Variance,反之亦然。造成這種現象的根本原因是,我們總是希望試圖用有限訓練樣本去估計無限的真實資料。當我們更加相信這些資料的真實性,而忽視對模型的先驗知識,就會盡量保證模型在訓練樣本上的準确度,這樣可以減少模型的Bias。但是,這樣學習到的模型,很可能會失去一定的泛化能力,進而造成過拟合,降低模型在真實資料上的表現,增加模型的不确定性。相反,如果更加相信我們對于模型的先驗知識,在學習模型的過程中對模型增加更多的限制,就可以降低模型的variance,提高模型的穩定性,但也會使模型的Bias增大。Bias與Variance兩者之間的trade-off是機器學習的基本主題之一,機會可以在各種機器模型中發現它的影子。
具體到K-fold Cross Validation的場景,其實是很好的了解的。首先看Variance的變化,還是舉打靶的例子。假設我把搶瞄準在10環,雖然每一次射擊都有偏差,但是這個偏差的方向是随機的,也就是有可能向上,也有可能向下。那麼試驗次數越多,應該上下的次數越接近,那麼我們把所有射擊的目标取一個平均值,也應該離中心更加接近。更加微觀的分析,模型的預測值與期望産生較大偏差,在模型固定的情況下,原因還是出在資料上,比如說産生了某一些異常點。在最極端情況下,我們假設隻有一個點是異常的,如果隻訓練一個模型,那麼這個點會對整個模型帶來影響,使得學習出的模型具有很大的variance。但是如果采用k-fold Cross Validation進行訓練,隻有1個模型會受到這個異常資料的影響,而其餘k-1個模型都是正常的。在平均之後,這個異常資料的影響就大大減少了。相比之下,模型的bias是可以直接模組化的,隻需要保證模型在訓練樣本上訓練誤差最小就可以保證bias比較小,而要達到這個目的,就必須是用所有資料一起訓練,才能達到模型的最優解。是以,k-fold Cross Validation的目标函數破壞了前面的情形,是以模型的Bias必然要會增大。