1. 程式人生 > >關於L0,L1和L2範數的規則化

關於L0,L1和L2範數的規則化

本文主要整理一下機器學習中的範數規則化學習的內容:

  • 規則化
    -什麼是規則化
    -為什麼要規則化
    -規則化的理解
    -怎麼規則化
    -規則化的作用
  • 範數
    -L0範數和L1範數
    -L2範數
    -L1範數和L2範數
  • 補充
    -condition number
    -微博、知乎部分討論
  • 參考附錄

規則化

什麼是規則化?

回顧一下機器學習演算法的3個要點:1.根據資料找合適的模型;2.定義損失以評估模型;3.設計求解優化的方法。
再回顧一下監督學習:規則化引數(防止模型過分擬合訓練資料)的同時最小化誤差(模型擬合訓練資料的偏差)。

Regularization, in mathematics and statistics and particularly in the fields of machine learning and inverse problems, refers to a process of introducing additional information in order to solve an ill-posed problem or to prevent overfitting. —— from wikipedia

Regularization是引入額外的資訊來解決ill-posed問題或者防止overfitting的過程。

規則化的表現形式:ω=argminωiL(yi,f(xi;ω))+λΩ(ω)
第一項是衡量模型對樣本的預測與真實的誤差(二者越接近越好),最小化誤差指該部分。
第二項是對引數w的規則化函式Ω(w)約束模型(使模型簡單)。最小化模型測試誤差指該部分。

為什麼要規則化?

為了解決ill-posed問題或者防止overfitting,期望獲得一個能夠很好地解釋資料而且simple的模型,或者從統計角度來說,是找一個減少過度擬合的估計方法。

一般從線性迴歸問題也稱最小二乘問題(Least Squares Problem, LSP)和邏輯迴歸問題(Logistic Regression Problem, LRP)引入。前者想象預測的變數是數字,後者預測的變數是“是/否”的這種分類答案。這兩個問題中會出現下面的情況導致overfitting:

  1. When the number of observations or training examples m is not large enough compared to the number of feature variables n, over-fitting may occur. 樣本數量m選不如特徵維度n大
  2. Tends to occur when large weights are found in x. 待預測的向量x的有過大的權重,也就是擬合函式的係數過大【考慮太過全面,把noise 或者 error in the data都考慮進去了,過分擬合。這樣導致擬合函式波動大。同一量級上考慮,係數小曲線偏平滑,係數大,曲線偏陡峭】

針對1.解決方法是:
- 減少特徵數量

  • 可以人工選擇重要的特徵變數以減少特徵數。
  • 自動的,特徵選擇(Feature Selection) -> 稀疏性 -> 正則化

-增加樣本數量

針對2.解決方法是:

  • 正則化

當然還有其他的方法,本文不介紹了。eg.cross-validation, early stopping, pruning, Bayesian priors on parameters or model comparison

規則化的理解

讓模型簡單,意味著要採取措施降低模型複雜度(過多引數導致模型複雜–稀疏 is ok),使用規則項來約束模型(約束了待學習的模型引數w,也就變相約束了模型)的特性。

還有幾種種理解角度:

  • 角度一
    經驗風險=平均損失函式 ,結構風險=損失函式+正則化項(懲罰項)
    正則化是結構風險最小化的策略。正則化項一般是模型複雜度的單調遞增函式,模型越複雜,正則化值就越大。比如,模型引數向量的範數

  • 角度二
    正則化項的引入其實是利用了先驗知識,體現了人對問題的解的認知程度或者對解的估計。這樣就可以將人對該問題的理解和需求(先驗知識)融入到模型的學習當中,對模型引數設定先驗,強行地讓學習到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。(正則與稀疏、低秩和平滑的關係)
    L1正則是laplace先驗,l2是高斯先驗,分別由引數sigma確定。

  • 角度三
    附錄的Sparsity and the Lasso
    最小二乘問題中,ranx(A)<樣本數量。對要解決的問題加限制條件(角度二中的先驗)–>[subject to]
    這裡寫圖片描述
    影象表示出來是這樣的:
    這裡寫圖片描述
    利用對偶,KKT等轉化成這樣:為什麼要凸的,這就用著了。
    這裡寫圖片描述

本質上都差不多,切入點不同,就可以從不同方面理解了。

怎麼規則化?

前面提到,正則化項一般是模型複雜度的單調遞增函式,模型越複雜,正則化值就越大(為了給予複雜模型以懲罰,因為優化的時候要最小化函式,想要得到simple模型,越複雜,懲罰越大),並且優化過程還想得到稀疏的引數。(看怎麼理解稀疏了,L1引數大多為0,L2引數大多接近0)。下面介紹的是用向量範數的形式來規則化,看範數那一節。

為什麼引數要稀疏呢?——特徵選擇;問題的可解釋性
1. 特徵選擇:large-scale 可能大部分特徵是對於最終的輸出y是無影響的或者影響很小的。訓練時最小化目標函式,如果考慮這些特徵會得到更小的誤差,但是會對新樣本的預測結果產生影響。Lasso regularization的引入是為了完成特徵自動選擇,它會在優化過程中主動去學習去掉這些沒有用的特徵,把特徵對應的權重置為0。【L1】
2. 可解釋性:例如一回歸問題,假設迴歸模型為:y=w1*x1+w2*x2+…+w1000*x1000+b。通過學習,如果最後學習到的w*,只有很少的非零元素,大部分w*為0或接近於0,例如只有5個非零的wi,那可以認為y只受這5個xi(因素)的影響,更有利於人們對問題的認識和分析,抓住影響問題的主要方面(因素)更符合認知習慣。【L2】
【正則與平滑】實際上,這些引數值越小,通常對應于越光滑的函式,也就是更加簡單的函式。
【正則與稀疏】為什麼正則化會使引數稀疏呢?

規則化的作用?

  1. 防止過擬合(平衡了偏差與方差,擬合能力與泛化能力,結構風險和經驗風險);
  2. 正則化導致的稀疏性是有益的:特徵選擇以及把人對於問題的認知作為先驗引入優化過程中;
  3. 降低condition number,處理因其過大導致逆矩陣不好求的情況;

範數

L0範數和L1範數

L0範數是指向量中非0的元素的個數。
L1範數是指向量中各個元素絕對值之和,也稱Lasso regularization
如果用L0範數來規則化一個引數矩陣W的話,就是希望W的大部分元素都是0,也就是讓引數W是稀疏的。L0應該不算是norm。像L1,L2等可以轉換到convex或者本身就是convex的這種算norm。(能用來優化)

為什麼L1範數會使權值稀疏?
見L1範數和L2範數部分。

L2範數

x2權值衰減 weight decay , 迴歸問題裡叫嶺迴歸(ridege regression)

指向量各元素的平方和再求平方根。讓L2範數的規則項最小,可以使得W的每個元素都很小,都接近於0,但與L1範數不同,它不會讓它等於0,而是接近於0。

L2範數好處
1.學習理論角度——L2範數可以防止過擬合,提升模型的泛化能力
2.優化計算角度——L2範數有助於處理 矩陣 condition number不好的情況下矩陣求逆很困難的問題
為什麼L2範數有助於處理矩陣condition number不好的情況下矩陣求逆很困難的問題?
以最小二乘問題LSP為例,新增正則項(add “preference” for certain parameter values)之後的cost function J :

J(θ)=12(yθXt)(yθXt)T+αθθT
用同樣的方法,求得新的解的表示式為
θ=yX(XTX+αI)1
此時,該問題是well-posed,加入了L2正則後,改善了XTX的condition number,而且不需要直接求逆矩陣,可通過解線性方程組的眾多方法來解決。如果說我本來也不準備求逆矩陣,用迭代方法求解可不可以不加正則項了?condition number 太大,收斂速度慢。

L1範數和L2範數

Unlike the L2-regularization which restricts large values, the L1-regularization term penalizes all factors equally, which can create sparse answers.

參考附錄9

  • example 1


解釋一下,考慮向量x⃗ =(1,ε)R2ε<0,給出x⃗ 的L1,L2範數。作為正則化的過程,減少x⃗ 其中的一個元素(相當於在某個元素上新增擾動)。給出了x1,x2分別減少δ(δε)之後的L1,L2範數。
L2範數結果,考慮減小δ之後的新的x⃗ 中的x1,x2。對於較大的x1會產生大的reduction (1+ε2)(12δ+δ2+ε2)=2δδ2,對於接近於0的x2會產生很小的reduction(1+ε2)(12δε+δ2+ε2)=2δεδ2.比較一下二者的量級,不平等的懲罰(把reduction看做懲罰),值大的懲罰大,值小的懲罰小。【restricts large values】
L1範數結果,不論擾動給x1還是x2,前後的reduction都是δ,平等的懲罰(給誰擾動都是一樣的懲罰)。一直按著這個步子朝著0前進。【penalizes all factors equally->can create sparse answers】
用L2範數懲罰模型,懲罰程序中,不太可能有任何元素被置為0。主要看值小的那一項(給x2添擾動,值小的靠近0,看看他的變化情況),reduction=2δεδ2,下一次的擾動後,reduction=4δε3δ2,可以看到reduction越來越小,而且和x2本身的值,不在一個數量級上。

L1範數懲罰可以使稀疏;L2懲罰過程中,元素朝著0移動的這種reduction越來越小,意味著移動速度越來越慢,一定程度上阻礙了稀疏性。可以根據範數的影象,看導數。

  • example 2

考慮含有引數(ω1,ω2,...,ω

相關推薦

關於L0L1L2規則

本文主要整理一下機器學習中的範數規則化學習的內容: 規則化 -什麼是規則化 -為什麼要規則化 -規則化的理解 -怎麼規則化 -規則化的作用 範數 -L0範數和L1範數 -L2範數 -L1範數和L2範數 補充 -condition numbe

常用loss以及L0L1以及L2

如果是Square loss,那就是最小二乘了; 如果是Hinge Loss,那就是著名的SVM了; 如果是exp-Loss,那就是牛逼的 Boosting了; 如果是log-Loss,那就是Logistic Regression了; L0範數是指向量中非0的元素的

機器學習中的規則之(一)L0L1L2

[0 證明 基本上 復雜度 所有 img 方法 風險 機器學習 機器學習中的範數規則化之(一)L0、L1與L2範數 [email protected]/* */ http://blog.csdn.net/zouxy09 轉自:http://blog.csdn.n

【轉】規則L0L1L2

spa http span get font lan pan href -s http://blog.csdn.net/zouxy09/article/details/24971995【轉】範數規則化L0、L1與L2範數

機器學習中的規則L0L1L2

實驗 方程 為什麽 over 大數據 來講 退回 數據庫 解釋   今天看到一篇講機器學習範數規則化的文章,講得特別好,記錄學習一下。原博客地址(http://blog.csdn.net/zouxy09)。   今天我們聊聊機器學習中出現的非常頻繁的問題:過擬合與規則化。我

機器學習中的規則L0L1L2

       今天我們聊聊機器學習中出現的非常頻繁的問題:過擬合與規則化。我們先簡單的來理解下常用的L0、L1、L2和核範數規則化。最後聊下規則化項引數的選擇問題。這裡因為篇幅比較龐大,為了不嚇到大家,我將這個五個部分分成兩篇博文。知識有限,以下都是我一些淺顯的

轉:機器學習中的規則之(一)L0L1L2

今天我們聊聊機器學習中出現的非常頻繁的問題:過擬合與規則化。我們先簡單的來理解下常用的L0、L1、L2和核範數規則化。最後聊下規則化項引數的選擇問題。這裡因為篇幅比較龐大,為了不嚇到大家,我將這個五個部分分成兩篇博文。知識有限,以下都是我一些淺顯的看法,如果理解存在錯誤

轉載:機器學習中的規則之(一)L0L1L2

監督機器學習問題無非就是“minimizeyour error while regularizing your parameters”,也就是在規則化引數的同時最小化誤差。最小化誤差是為了讓我們的模型擬合我們的訓練資料,而規則化引數是防止我們的模型過分擬合我們的訓練資料。多麼

機器學習中的規則L0L1L2

機器學習中的範數規則化之(一)L0、L1與L2範數        今天我們聊聊機器學習中出現的非常頻繁的問題:過擬合與規則化。我們先簡單的來理解下常用的L0、L1、L2和核範數規則化。最後聊下規則化項引數的選擇問題。這裡因為篇幅比較龐大,為了不嚇到大家,我將這個五

機器學習中的規則之(一)L0L1L2、核規則項引數選擇

今天我們聊聊機器學習中出現的非常頻繁的問題:過擬合與規則化。我們先簡單的來理解下常用的L0、L1、L2和核範數規則化。最後聊下規則化項引數的選擇問題。這裡因為篇幅比較龐大,為了不嚇到大家,我將這個五個部分分成兩篇博文。知識有限,以下都是我一些淺顯的看法,如果理解存在錯誤,希

『教程』L0L1L2_簡化理解

線性 實驗 tab 下一個 約束 特征 方式 等於 b2c 『教程』L0、L1與L2範數 一、L0範數、L1範數、參數稀疏 L0範數是指向量中非0的元素的個數。如果我們用L0範數來規則化一個參數矩陣W的話,就是希望W的大部分元素都是0,換句話說,讓參數W

深度學習——L0L1L2

在深度學習中,監督類學習問題其實就是在規則化引數同時最小化誤差。最小化誤差目的是讓模型擬合訓練資料,而規則化引數的目的是防止模型過分擬合訓練資料。 引數太多,會導致模型複雜度上升,容易過擬合,也就是訓練誤差小,測試誤差大。因此,我們需要保證模型足夠簡單,並在此基礎上訓練誤差小,這樣訓練得到的引數

L0L1L2與核(二)

OK,回到問題本身。我們選擇引數λ的目標是什麼?我們希望模型的訓練誤差和泛化能力都很強。這時候,你有可能還反映過來,這不是說我們的泛化效能是我們的引數λ的函式嗎?那我們為什麼按優化那一套,選擇能最大化泛化效能的λ呢?Oh,sorry to tell you that,因為泛化效能並不是λ的簡單的函式!它具有很

L0L1L2學習筆記

1 L0範數 L0範數表示向量中非0元素的個數,即希望資料集中的大部分元素都是0(即希望資料集是稀疏的), 所以可以用於ML中做稀疏編碼,特徵選擇,即通過L0範數來尋找最少最優的稀疏特徵項。 但不幸的是,L0範數的最優化問題是一個NP hard問題,而且理論上有證明

L1L2的區別

正則化(Regularization) 機器學習中幾乎都可以看到損失函式後面會新增一個額外項,常用的額外項一般有兩種,一般英文稱作ℓ1-norm和ℓ2-norm,中文稱作L1正則化和L2正則化,或者L1範數和L2範數。 L1正則化和L2正則化可以看做是損失

L1L2

知識 tin gis res 學習 sdn 一個 們的 ssi 監督機器學習問題無非就是再規則化參數的同時最小化誤差。 *最小化誤差是為了讓我們的模型擬合我們的訓練數據,而規則化參數是防止我們的模型過分擬合我們的訓練數據 規則化參數的作用: *使得模型簡單,且具有好的

機器學習中的正則規則

正則化和範數規則化 文章安排:文章先介紹了正則化的定義,然後介紹其在機器學習中的規則化應用L0、L1、L2規則化範數和核範數規則化,最後介紹規則化項引數的選擇問題。 正則化(regularization)來源於線性代數理論中的不適定問題,求解不適定問題的普遍方法是:用一族與

機器學習中的規則之L21

先看上面l21範數的定義,注意原始矩陣是n行t列的,根號下平方是對列求和,也就是說是在同一行中進行操作的,根號部分就相當於一個l2範數,由此可以看出l21範數實則為矩陣X每一行的l2範數之和。 在矩陣稀疏表示模型中,把它作為正則化項有什麼作用呢?前面說到它是每一行的l2範數之和,在最小

規則

作為一個非理工科的經管學生,在數學基礎有限的情況的,理解難免不足。文章多有copy。 參考部落格: https://blog.csdn.net/zouxy09/article/details/24971995     1.前言 為什麼探討L0,L1,L2範數,機器學習中出現的非

【機器學習】規則之(二)核規則項引數選擇

OK,回到問題本身。我們選擇引數λ的目標是什麼?我們希望模型的訓練誤差和泛化能力都很強。這時候,你有可能還反映過來,這不是說我們的泛化效能是我們的引數λ的函式嗎?那我們為什麼按優化那一套,選擇能最大化泛化效能的λ呢?Oh,sorry to tell you that,因為泛化效能並不是λ的簡單的函式!它具有很