過擬合
過擬合本質上是模型太過複雜,複雜到消弱了模型的泛化能力。由於訓練資料時有限的,因此總可以通過增加引數的的方式來提公升模型的複雜度,降低訓練誤差。可正如你學習的領域越專精,可應用的範圍可能越窄,則在模型訓練中就是指過擬合。
過擬合如圖所示的紅色曲線就是過擬合。
正則化正則化是用於抑制過擬合方法的統稱,通過動態調整模型引數的取值 來降低模型的複雜度。這是因為當一些引數的取值足夠小時,引數對應的屬性對結果的影響微乎其微,這在實質上去除了非相關屬性的影響。
線性模型中的正則化
l1正則化
l2正則化
其中的 α是用來平衡均方誤差和引數約束的超引數。當正則化項為 1- 範數時,修正結果就是lasso;當正則化項為 2- 範數的平方時,修正結果就是嶺回歸。
本來解空間是全部區域,但通過正則化新增了一些約束,使得解空間變小了,甚至在個別正則化方式下,解變得稀疏了,如圖所示兩種正則化的區別:
正則化對線性回歸的改進
w1,w2都是模型的引數,要優化的目標引數。藍色的圓圈表示沒有經過限制的損失函式在尋找最小值過程中,w的不斷迭代(隨最小二乘法,最終目的還是使損失函式最小)變化情況,表示的方法是等高線,z軸的值就是 e(w)。
那個紅色邊框包含的區域,其實就是解空間,只能在這個縮小了的空間中,尋找使得目標函式最小的w1,w2。左邊圖是嶺回歸,是由於採用了l2範數正則化項的緣故,要求兩個引數的平方和小於某個固定的引數,所以是圓形。右邊的lasso,是由於採用了l1範數作為正則化項,要求兩個引數的絕對值之和小於某個固定值,所以解空間是方形。
圖中藍色和紅色的交點就是最優引數解,交點出現的位子取決於邊界的情況,嶺回歸的邊界是曲線,誤差等值線可以在任意位置和邊界相切。lasso邊界是直線,因此切點最可能出現在方形的頂點上,這就意味著某個引數的取值為0。
嶺回歸:衰減不同屬性的權重,讓所有屬性向圓心收攏。
lasso:直接將某些屬性的權重降為0,是對屬性的過濾篩選。
兩種正則化的選擇
當屬性的數目遠遠大於樣本的數目的高緯度統計問題,並且不少屬性間還存在著相關性時,建議使用lasso回歸來屬性的數目。lasso回歸會讓很多屬性的係數變成0,保留一些係數較大的屬性,這個時候係數的取值會對結果又較大影響,因此需要對屬性的取值範圍進行調整,比如標準化。
當樣本數遠大於屬性數時,嶺回歸更快,嶺回歸不會刪除屬性,會對屬性的取值範圍進行壓縮,特徵值小的特徵向量會被壓縮的很厲害,因此要求屬性的取值範圍差不多,這樣係數差不多,壓縮更有意義。
動態正則化權重係數 手寫邏輯回歸(帶l1正則)
因為帶l1正則化項的損失函式是不可微的,所以這裡我們單獨來討論一下l1正則化的求解方法,這裡我們可以直接turn to sklearn for help.solver str,optional default liblinear algorithm to use in the optimizatio...
資料預處理之 標準化 正則化 處理
標準化 scale 和正則化 normalization 是兩種常用的資料預處理方法,其作用是讓資料變得更加 規範 一些。在文字聚類等任務中使用的比較多。針對某資料,如果不適用資料標準化 正則化,展示的情況如下圖 公式為 x mean std 計算時對每個屬性 每列分別進行。將資料按期屬性 按列進行...
正則化與權重衰減
1.權重衰減 weight decay l2正則化的目的就是為了讓權重衰減到更小的值,在一定程度上減少模型過擬合的問題,所以權重衰減也叫l2正則化。其中c0代表原始的代價函式,後面那一項就是l2正則化項,它是這樣來的 所有引數w的平方的和,除以訓練集的樣本大小n。就是正則項係數,權衡正則項與c0項的...