細化深度學習這個系列主要是想總結一些深度學習常用的比較基礎的方法及其原理。補充自己深度學習知識體系中的細節部分。在看**時既能縱觀整體結構,又能捕捉細枝末節。
當然,既然是總結,就得綜合不同的文獻和教程。原創是不可能的原創的,只是加入一些自己的理解(小白本白暴風哭泣)。老規矩,參考文獻在文末,需要自取~
作者也是在一邊學習一邊記錄,所以難免會有理解錯或者有漏洞的地方,還請各位不吝賜教~
我們訓練乙個學習演算法的目的是什麼呢?當然是幫我們處理相同的問題。比如我訓練了乙個識別中是否有貓的模型,那我肯定是想讓這個模型幫我分辨一些未知的是否有貓。所以評價它的標準是在未打標籤的資料上,它的準確率是多少。這也是我們通常所說的泛化(generalization)能力。
泛化能力在資料上的表示就是測試集的誤差,因為通常測試集和訓練集是同分布而無交集的。
跑個題,為什麼這裡說訓練集和測試集是同分布而無交集呢?因為如果它們不同分布,那麼這個模型就是答非所問。比如你讓乙個訓練為識別貓的模型去識別裡有沒有狗,那麼請你求它的心理陰影面積hhh。
這是比較極端的例子。學術一點,如果你的訓練集含有一些測試集沒有的特徵,而模型又恰好學到了這個特徵,那它就很有可能因為測試樣本沒有該特徵而識別出錯。不管這個特徵對識別有幫助(比如與貓相關的特徵,毛髮,耳朵等),還是沒幫助(比如背景色調)。
什麼,你問能不能不讓它學到不相關的特徵?那真是 too young too ******。用深度學習的方法難道不就是想讓模型自動提取特徵麼,手動提取為什麼不用傳統方法,當然效果可能就 emmm…… 眾所周知,深度學習模型的(樣本->特徵空間)的對映一直是個玄學問題,你只能通過視覺化權重矩陣(比如卷積核)來觀測,這大概也是大家把它叫做黑匣子的原因吧。但是很遺憾,你只有觀測權,沒有直接決定權。but 你可以盡可能使用與應用場景貼合的樣本資料來引導網路訓練的方向。所以就又回到了同分布的問題。
無交集是因為本來就是要從測試集獲得模型的泛化能力評價,再讓它識別學習過的東西那就和高考出原題一樣,並不能考查實際的泛化能力。
以上解釋僅適用於一般情況,對模型有特,殊,要,求,而故意設計不同分布或者有交集的資料集除外。
直觀上來說,bias 表示訓練誤差與真值之間的差距。但是從理論上來說,學習演算法是不可能達到100%完全準確的,因為總是存在一些資料不能夠進行準確識別,比如雜訊過大的音訊,或者過於模糊以至於看不清的影象。所以理論上的最優值(也叫貝葉斯最優誤差)並不是完美水平。
而在一些人模擬較得心應手的方面,人類水平和貝葉斯最優誤差已經非常接近了。當演算法的表現超過人類水平時,很有可能其效能的提公升就比較緩慢了。就像你教乙個成績比你好的人如何學習一樣,雖然可能不是完全沒效果,但一定非常吃力。但是當他水平不如你的時候,你就可以用一些你自己的方法調教他,啊不對,它。
所以這裡我們用人類水平來代表演算法表現的上限。
偏差(bias)和方差(variance)反映了機器學習的兩種主要問題,欠擬合(underfitting)和過擬合(overfitting)。
當訓練集的誤差無法達到人類水平,說明演算法並不能完全學習到該學習的所有特徵(無論訓練多少遍)。這兩者之間的差距就叫偏差,這個問題就是欠擬合。那演算法就一定有可以改進的地方。具體的方法如圖,以後可能會專門介紹(flag先立起來:)。
所謂養兵千日用兵一時,如果它訓練的時候表現不錯,測試的時候卻總是掉鍊子,那就是開頭所說的,泛化能力出了問題。這部分的差距就叫方差,這種問題就叫過擬合。
顧名思義,就是演算法過於關注訓練集誤差,以至於學習了一些對解決問題沒什麼用的特徵,即對訓練資料擬合過度了。相對應的,欠擬合就是擬合的不夠。下面的二分類問題就很能說明問題(來自文獻3):
左中右分別是:欠擬合,剛剛好,過擬合的情況。
從統計的角度上來說,演算法學習的是(資料空間->特徵空間)的對映。
偏差表示的是演算法學到的對映和真實的對映有多大差距,反映了對問題的擬合能力;方差表示訓練集資料(看作是對真實資料的取樣)分布和真實資料分布的差距導致的期望值差距,也可以說是資料雜訊對學習演算法的影響。
以線性回歸為例,量化分析一下泛化誤差與方差和偏差的關係。
(以下內容來自參考文獻[2])
當我們的模型容量(可以理解為其複雜程度,或擬合能力)不變時,方差和偏差是會互相衝突的。在不斷訓練的過程中,模型對訓練資料的擬合程度越來越高,偏差會逐漸變小,而方差會逐漸增加。當它學習到了不適應於測試資料的特徵時,就會出現過擬合。
如果把訓練程度作為控制變數,當改變模型容量且對每個模型都充分訓練時,方差和偏差仍然是會衝突的。
《深度學習》,[美] ian,goodfellow等 著,[加] yoshua,bengio 編
《機器學習》,周志華
深度學習筆記 了解方差 偏差困境
在模型中 當模型複雜度過低時,偏差則會比較大,訓練出來的模型會欠擬合,因而需要提高模型複雜度來降低模型偏差 當模型複雜度過高時,方差則會較大,訓練的模型會過擬合,因而需要降低模型複雜度來降低偏差。因此,模型複雜度的選擇是乙個十分糾結的問題,該問題被稱為 方差 偏差困境 如下圖所示 形象地理解可以舉個...
深度學習之Bias Variance偏差 方差
偏差 bias 和方差 variance 是機器學習領域非常重要的兩個概念和需要解決的問題。在傳統的機器學習演算法中,bias和variance是對立的,分別對應著欠擬合和過擬合,我們常常需要在bias和variance之間進行權衡。而在深度學習中,我們可以同時減小bias和variance,構建最...
機器學習模型中,偏差與方差的權衡及計算
衡量乙個機器學習模型的效能,可以用偏差和方差作為依據。乙個高偏差的模型,總是會對資料分布做出強假設,比如線性回歸。而乙個高方差的模型,總是會過度依賴於它的訓練集,例如未修剪的決策樹。我們希望乙個模型的偏差和方差都很低,但更多情況下我們需要在二者之間做出權衡。在選擇和調整模型時,偏差 方差權衡 是乙個...