機器學習 正則化(Regularization)

2021-10-01 12:53:46 字數 1893 閱讀 3354

1、欠擬合與過擬合

2、正則化

特徵過多,同時只有非常少的訓練資料,容易導致過擬合現象(代價函式非常接近0或者就等於0),這樣的模型無法泛化到新的資料樣本中。要解決過擬合的問題有以下2種方法:

(1)減少選取的特徵數量

捨棄掉一部分較為不重要的特徵,該方法的缺點是同時也失去了一部分有用資訊

(2)正則化

正則化中我們將保留所有的特徵變數,但是會減小特徵變數的數量級(引數數值的大小θ(j))。

在損失函式j(θ

)j(\theta)

j(θ)

中加入乙個懲罰項,從而實現引數值θ

\theta

θ較小,這些引數的值越小,通常對應於越光滑的函式,也就是更加簡單的函式。因此 就不易發生過擬合的問題。

l2引數正則化(嶺回歸)

其中在損失函式中加入的懲罰項為:

p =λ

∑j=1

nθj2

p=\lambda\displaystyle\sum_^n\theta_j^2

p=λj=1

∑n​θ

j2​λ

\lambda

λ:被稱為正則化引數,取值範圍[0,∞

\infty

∞]l2引數正則化理解:

第乙個目標是使模型更好地擬合訓練資料

第二個目標是我們想要保持引數值較小。(通過正則化項)

而λ

\lambda

λ 這個正則化引數需要控制的是這兩者之間的平衡,即平衡擬合訓練的目標和保持引數值較小的目標,從而來保持模型的形式相對簡單,來避免過度的擬合。

正則化引數λ

\lambda

λ 的選擇是控制最終模型複雜度的關鍵:

為了使正則化運作良好,我們應該去選擇乙個不錯的正則化引數 λ

\lambda

λl1引數正則化(lasso正則化)

正則化項為:

p =λ

∑j=1

n∣θj

∣p=\lambda\displaystyle\sum_^n|\theta_j|

p=λj=1

∑n​∣

θj​∣

λ

\lambda

λ:被稱為正則化引數,取值範圍[0,∞

\infty

∞]l2正則化與l1正則化的區別:

稀疏性:就是模型的很多引數是0。在**或分類時,那麼多特徵顯然難以選擇,但是如果代入這些特徵得到的模型是乙個稀疏模型,很多引數是0,表示只有少數特徵對這個模型有貢獻,絕大部分特徵是沒有貢獻的,即使去掉對模型也沒有什麼影響,此時我們就可以只關注係數是非零值的特徵。這相當於對模型進行了一次特徵選擇,只留下一些比較重要的特徵,提高模型的泛化能力,降低過擬合的可能。

如何選擇正則化引數λ

\lambda

λ從0開始,逐漸增大λ。在訓練集上學習到引數,然後在測試集上驗證誤差。反覆進行這個過程,直到測試集上的誤差最小。一般的說,隨著λ從0開始增大,測試集的誤分類率應該是先減小後增大,交叉驗證的目的,就是為了找到誤分類率最小的那個位置。建議一開始將正則項係數λ設定為0,先確定乙個比較好的learning rate。然後固定該learning rate,給λ乙個值(比如1.0),然後根據validation accuracy,將λ增大或者減小10倍,增減10倍是粗調節,當你確定了λ的合適的數量級後,比如λ=0.01,再進一步地細調節,比如調節為0.02,0.03,0.009之類。

機器學習正則化

設p 1的實 數,p norm 定義為 x i 1 n xi p 1 p 1.1 這裡寫描述 如果方陣a是非奇異的,那麼a的conditio nnumber定義為 a a a 1 condition number是乙個矩陣穩定性或者敏感度的度量。矩陣的condition number在1附近,那麼它...

機器學習 正則化

為了增加模型的泛化能力,避免模型出現過擬合的現象,我們經常會加入正則化處理 當模型偏差較低,但是方差很大,尤其在輸入的維數較高時,很容易出現過擬合現象,當加入正則項,模型損失了一部分偏差,卻大大降低了模型的方差 l1和l2正則是我們經常用到的方法。l1正則 這種方法的結果會讓引數向量中許多元素趨於0...

機器學習正則化

正則化項可以是模型引數向量的範數 首先,範數是指推廣到高維空間中的模,給定向量x x1,x2,x3,xn 常用的向量的範數如下 l0範數 向量非零元素的個數 l1範數 向量各個元素絕對值之和 l2範數 向量各個元素的平方和然後求平方根 lp範數 向量各個元素絕對值的p次方求和然後求1 p次方 l正則...