機器學習中的範數規則化-L0,L1和L2正規化
轉自:https://blog.csdn.net/zouxy09/article/details/24971995/
OK,來個一句話總結:L1範數和L0範數可以實現稀疏,L1因具有比L0更好的優化求解特性而被廣泛應用。
好,到這裡,我們大概知道了L1可以實現稀疏,但我們會想呀,為什麼要稀疏?讓我們的引數稀疏有什麼好處呢?這裡扯兩點:
OK,那現在到我們非常關鍵的問題了,為什麼L2範數可以防止過擬合?回答這個問題之前,我們得先看看L2範數是個什麼東西。
這裡也一句話總結下:通過L2範數,我們可以實現了對模型空間的限制,從而在一定程度上避免了過擬合。
從學習理論的角度來說,L2範數可以防止過擬合,提升模型的泛化能力。
從優化或者數值計算的角度來說,L2範數有助於處理 condition number不好的情況下矩陣求逆很困難的問題。哎,等等,這condition number是啥?我先google一下哈。
如果方陣A是非奇異的,那麼A的conditionnumber定義為:
也就是我們的解x的相對變化和A或者b的相對變化是有像上面那樣的關係的,其中k(A)的值就相當於倍率,看到了嗎?相當於x變化的界。
但如果加上L2規則項,就變成了下面這種情況,就可以直接求逆了:
時,我們稱f為λ-stronglyconvex函式,其中引數λ>0。當λ=0時退回到普通convex 函式的定義。
在直觀的說明強凸之前,我們先看看普通的凸是怎樣的。假設我們讓f在x的地方做一階泰勒近似(一階泰勒展開忘了嗎?f(x)=f(a)+f'(a)(x-a)+o(||x-a||).):
這一個優化說了那麼多的東西。還是來個一句話總結吧:L2範數不但可以防止過擬合,還可以讓我們的優化求解變得穩定和快速。
好了,這裡兌現上面的承諾,來直觀的聊聊L1和L2的差別,為什麼一個讓絕對值最小,一個讓平方最小,會有那麼大的差別呢?我看到的有兩種幾何上直觀的解析:
L1在江湖上人稱Lasso,L2人稱Ridge。不過這兩個名字還挺讓人迷糊的,看上面的圖片,Lasso的圖看起來就像ridge,而ridge的圖看起來就像lasso。
實際上,對於L1和L2規則化的代價函式來說,我們可以寫成以下形式:
因此,一句話總結就是:L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。Lasso在特徵選擇時候非常有用,而Ridge就只是一種規則化而已。
相關文章
- 機器學習中的範數規則化之(一)L0、L1與L2範數機器學習
- 機器學習中正則懲罰項L0/L1/L2範數詳解機器學習
- 初學者如何學習機器學習中的L1和L2正則化機器學習
- 【機器學習】--線性迴歸中L1正則和L2正則機器學習
- 機器學習之簡化正則化:L2 正則化機器學習
- 機器學習之稀疏性正則化:L1 正則化機器學習
- 「機器學習速成」稀疏性正則化:L1正則化機器學習
- 【機器學習】--魯棒性調優之L1正則,L2正則機器學習
- 使用PyTorch實現L1, L2和Elastic Net正則化PyTorchAST
- 神經網路損失函式中的正則化項L1和L2神經網路函式
- mysql 正規化和反正規化MySql
- 資料庫中的正規化和反正規化詳解!資料庫
- L1 和L2(Frobenius弗羅貝尼烏斯)正則化複習筆記筆記
- 機器學習基礎——規則化(Regularization)機器學習
- 資料探勘實驗(一)資料規範化【最小-最大規範化、零-均值規範化、小數定標規範化】
- 資料庫設計正規化2——BC正規化和第四正規化資料庫
- 『前端規範化』CSS命名規範化前端CSS
- Java學習筆記:資料庫中的正規化和反正規化Java筆記資料庫
- 邏輯函式的規範正規化:SOP與POS form函式ORM
- 資料庫規範化三個正規化應用例項(轉)資料庫
- 資料庫(第一正規化,第二正規化,第三正規化)資料庫
- 機器學習之簡化正則化:Lambda機器學習
- CSS命名規範和模組化的思考CSS
- 識別符號的命名規則和規範符號
- 簡化服裝ERP系統的規範流程和規範功用
- 資料庫原理之第一正規化、第二正規化、第三正規化資料庫
- 前端模組化規範前端
- JS模組化規範JS
- JavaScript模組化規範JavaScript
- AMD模組化規範
- 資料庫設計正規化1——三正規化資料庫
- 手把手教你實現json巢狀物件的正規化化和反正規化化JSON巢狀物件
- 使用DBV的命令規則和規則集強化資料庫安全資料庫
- 前端資料正規化化前端
- 正規化判斷
- 機器學習中的正則化到底是什麼意思?機器學習
- 正規化(Normal Form)是資料庫設計中的概念。新的正規化(paradigm)ORM資料庫
- C++ 變數初始化規則C++變數