機器學習------L1、L2規範化(L1 Regularization、L1 Regularization)
取自孫明的"數字影象處理與分析基礎"
1. 引入——病態問題和約束
通過改變模型的擬合能力來避免過擬合併不是一件容易的事情,更常用的辦法是使用規範化對模型的引數進行一定的約束。下面來考慮一個非常簡單的例子,求下面方程的解:
這是一個二元一次方程,有無數個解,都在下圖1a所示的這條直線上。
這是一個典型的病態(ill-posed)方程,有無數個解可以滿足方程,可以通過和代入等式左邊求出0,但是通過等式來推導和的值卻是不可行的。病態方程除了有不可逆的性質,在數值計算上也不受歡迎,比如,那麼如果和的係數發生很小的變化,則這個變化會被放大很多到等式的右邊,在數值計算中,這常常是不穩定的。
針對病態方程,一個常見的辦法是加入一個約束項,縮小和的取值範圍,比如令,如圖1b所示,則相當於約束和在半徑為圓上,於是相切點(-0.8,0.4)成了一個穩定的解。此外還可以令約束為,則交點也只有一個,就是(-1,0),也是一個穩定的唯一解。
2. L2規範化
雖然上面討論的是一個非常簡單的解方程的例子,但是和機器學習的問題有許多相似性。基於引數的機器學習模型某種程度上就是一個不可逆的問題,對於同一個損失函式值,可以對應很多種不同的引數。甚至在高維度下,極小值和最小值都很接近,所以即使是很好優化過的模型,也會對應許多不同的引數組合,而這些組合未必是數值穩定的。而且因為引數的範圍更自由,可以得到很小的訓練誤差,往往都不具有很好地泛化能力
其實就是L2範數,也就是歐氏距離的平方乘上一個係數。在神經網路中,L2規範化通常只應用於仿射變換中的線性變換部分,也就是的。根據公式形式,這樣一項加上之後,權重的絕對值大小就會整體傾向於減小,尤其是不會出現特別大的值。所以L2規範化還有個名字叫做權重衰減(weight decay),也有一種理解這種衰減是對權重的懲罰,所以有時候會看到文章或者書裡管這一項叫做懲罰(penalty)項。
下面通過一個簡單的例子來形象理解下L2規範化的作用。考慮一個只有兩個引數
圖2a是一個目標函式,可以看到,最小值所在是一條線,整個曲面像一條山嶺倒過來一樣。這樣的曲面對應無數個引數組合,單純用梯度下降法是難以得到確定解的,可以看做是一個典型的病態問題。但是加上一項,則曲面 變成了如圖2b所示的樣子。最小值所在從倒過來的“嶺”變成了一個“谷”。需要注意的是“谷”所在的位置並不是規範項的中心(0,0),而是根據規範化係數的大小和原來損失函式曲面共同決定的。當規範化係數時,原來的損失函式可以忽略,則“谷”的位置趨近於(0,0);當時,“谷”的位置趨近於原損失函式曲面中“嶺”所在的位置。總之加上這一項之後,梯度下降法就能夠解決了。並且通過這個例子可以看出,L2規範項還起到了幫助收斂的作用。統計學裡這個方法常用來處理多重線性下的最小二乘法問題,並且有個形象的名字叫做嶺迴歸(ridge regression)。
L1規範化(L1 Regularization)
除了L2規範化,L1規範化也是最常見的規範化方法之一,形式如下:
其實在圖1所示的例子中已經見過,和L2的區別主要是L2項的等高線不同,二維情況的等高線畫在了圖1c中,是個旋轉的正方形。這個性質讓L1規範化後的引數更趨向於某些維度為0,也就是稀疏性。關於這個性質的形象理解,還是來看一個二維的例子,如圖3所示。
圖3中虛線代表的是元損失函式的等高線,實線代表的是規範化項的等高線,左邊a圖是L2的情況,右邊b圖是L1的情況。當整體函式達到最小值的時候,如圖a中點所示的位置,所以能夠很清楚看出,L2項讓整體引數都有變小的趨勢。二L1則會讓引數的方向朝著某個軸靠近,比如圖3b中,因為原始損失函式等高線的形狀,無論L1項的係數怎麼變,最終最小值一定是在橫軸上。這樣的約束可以讓有效特徵的數量變少,從而獲得稀疏性。因為這個性質,L1規範化經常被用在降噪聲和影象重建中。在統計學裡L1規範化也有另外一個名字叫做LASSO,即Least Absolute Shrinkage and Selection Operator,是對L1規範化的一個簡短概括。
相關推薦
機器學習------L1、L2規範化(L1 Regularization、L1 Regularization)
取自孫明的"數字影象處理與分析基礎" 1. 引入——病態問題和約束 通過改變模型的擬合能力來避免過擬合併不是一件容易的事情,更常用的辦法是使用規範化對模型的引數進行一定的約束。下面來考慮一個非常簡單的例子,求下面方程的解: 2x−y+2=02
機器學習知識點查漏補缺(樸素貝葉斯分類)
平滑 http 運算 貝葉斯公式 -s 目標 bubuko 思想 指數 一、基本模型 樸素貝葉斯分類模型的基本思想就是貝葉斯公式,對以特征為條件的各類別的後驗概率。 貝葉斯公式如下: 對標樸素貝葉斯分類模型的公式如下: 分子中的第二項為每個類別的概率(實際運算即頻
【機器學習】k-近鄰演算法(k-nearest neighbor, k-NN)
前言 kk近鄰學習是一種常用的監督學習方法。 kk近鄰法的輸入為例項的特徵向量,對應於特徵空間的點;輸出為例項的類別,可以取多類。 kk近鄰法的工作機制很簡單:給定測試樣本,基於某種距離度量(關於
python機器學習庫sklearn——Lasso迴歸(L1正則化)
Lasso The Lasso 是估計稀疏係數的線性模型。 它在一些情況下是有用的,因為它傾向於使用具有較少引數值的情況,有效地減少給定解決方案所依賴變數的數量。 因此,Lasso 及其變體是壓縮感知領域的基礎。 在一定條件下,它可以恢復一組非零權重的
斯坦福大學公開課機器學習: advice for applying machine learning | regularization and bais/variance(機器學習中方差和偏差如何相互影響、以及和算法的正則化之間的相互關系)
交叉 來講 相對 同時 test 如果 開始 遞增 相互 算法正則化可以有效地防止過擬合, 但正則化跟算法的偏差和方差又有什麽關系呢?下面主要討論一下方差和偏差兩者之間是如何相互影響的、以及和算法的正則化之間的相互關系 假如我們要對高階的多項式進行擬合,為了防止過擬合現象
機器學習:評價分類結果(實現混淆矩陣、精準率、召回率)
test set 目的 mod 二分 參數 nbsp return try 一、實例 1)構造極度偏差的數據 import numpy as np from sklearn import datasets digits = datasets.load_digits
Python機器學習實踐指南 pdf 下載(中文版帶書籤)、原書程式碼、資料集
機器學習正在迅速成為資料驅動型世界的一個bi備模組。許多不同的領域,如機器人、醫學、零售和出版等,都需要依賴這門技術。通過閱讀 Python機器學習實踐指南 ,你將學習如何一步步構建真實的機器學習應用程式。 Python機器學習實踐指南 以通俗易懂,簡潔明瞭的方式,教你如何使用機器
機器學習 第一章 Python複習(5)pip的使用、安裝虛擬環境()、安裝BeautifulSoup庫
1.建立虛擬環境(win10) 配置清華大學pip映象源 C:\Users\huxia\pip\pip.ini [global] timeout = 60 index-url = https://
Python機器學習依賴庫的安裝(numpy、scipy、sklearn)
說到機器學習,相信大部分的研究者都是使用python來完成的,因為是實在太方便了,幾行程式碼就搞定了,比較前人做的研究都積累在那邊,所以今天我又重新安裝了python(還不是因為要做機器學習方面的實驗和luwn論文),so開始吧! 1、常用Python機器學習包 Numpy:用於科學計算的包
機器學習之python入門指南(二)元組、集合、字典的使用
Python3中元組、集合、字典的使用 Python中元組的用法元組的建立與訪問 元組和列表類似,不同之處在於元組不能修改,元組使用小括號,列表使用方括號,注意元組中如果只包含以個元素需要在後面加,否則會被當作運算子使用 元組與字串類似,下標索引從0開始,可以進行擷取,取捨
斯坦福大學機器學習筆記——異常檢測演算法(高斯分佈、多元高斯分佈、異常檢測演算法)
異常檢測問題介紹: 異常檢測演算法主要用於無監督學習問題,但從某種角度看它又類似於一種有監督學習的問題,下面我們從一個例子中簡單介紹一下什麼是異常檢測問題。 比如我們有一個飛機引擎製造商,對於一個新造出的飛機引擎我們想判斷這個引擎是不是異常的。 假如我們有
Python 文字挖掘:使用機器學習方法進行情感分析(一、特徵提取和選擇)
def create_word_bigram_scores(): posdata = pickle.load(open('D:/code/sentiment_test/pos_review.pkl','r')) negdata = pickle.load(open('D:/code/senti
機器學習--手寫數字識別(KNN、決策樹)
KNN 及決策樹演算法為監督學習中的兩種簡單演算法。 KNN KNN演算法(鄰近演算法)的核心思想是如果一個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。 歐式距離的計算公式: 假設每個樣本有兩個特徵值,如 A
機器學習(十三)——機器學習中的矩陣方法(3)病態矩陣、協同過濾的ALS演算法(1)
向量的範數(續) 範數可用符號∥x∥λ表示。常用的有: ∥x∥1=|x1|+⋯+|xn| ∥x∥2=x21+⋯+x2n−−−−−−−−−−−√ ∥x∥∞=max(|x1|,…,|xn|) 這裡不做解釋的給出如下示意圖: 其中,0範數表
機器學習演算法原理與實踐(三)、卡爾曼濾波器演算法淺析及matlab實戰
卡爾曼濾波器是一種利用線性系統狀態方程,通過系統輸入輸出觀測資料,對系統狀態進行最優估計的演算法。而且由於觀測包含系統的噪聲和干擾的影響,所以最優估計也可看做是濾波過程。 卡爾曼濾波器的核心
(參評)機器學習筆記——鳶尾花資料集(KNN、決策樹、樸素貝葉斯分析)
最開始選取鳶尾花資料集來了解決策樹模型時,筆者是按照學習報告的形式來寫得,在這裡將以原形式上傳。格式較為繁複,希望讀者可以耐心看完,謝謝大家。目錄 6.總結 7.問題 1、問題描述 iris是鳶尾植物,這裡儲存了其萼片和花瓣的長寬,共4個屬性,鳶尾
機器學習演算法原理與實踐(六)、感知機演算法
感知機 感知機是二分類的線性分類模型,輸入為例項的特徵向量,輸出為例項的類別(取+1和-1)。感知機對應於輸入空間中將例項劃分為兩類的分離超平面。感知機旨在求出該超平面,為求得超平面匯入了基於誤分類的損失函式,利用梯度下降法對損失函式進行最優化(最優
從零單排入門機器學習:線性回歸(linear regression)實踐篇
class rom enter instr function ont 線性 gin 向量 線性回歸(linear regression)實踐篇 之前一段時間在coursera看了Andrew ng的機器學習的課程,感覺還不錯,算是入門了。這次打算以該課程的作業
[轉] [機器學習] 常用數據標準化(正則化)的方法
機器學習 數據 評價 分享 函數 http mean 常用方法 訓練 數據正則化 目的:為了加快訓練網絡的收斂性,可以不進行歸一化處理 源地址:http://blog.sina.com.cn/s/blog_8808cae20102vg53.html 而在多指標評價體系中,
Odoo10學習筆記三:模型(結構化的應用數據)、視圖(用戶界面設計)
其他 描述 用戶界面 列表 支持 字段 界面設計 允許 學習 一:模型 1:創建模型 模型屬性:模型類可以使用一些屬性來控制它們的一些行為: _name :創建odoo模型的內部標識符,必含項。 _description :當用戶界面顯示模型時,一個方便用戶的模型記錄標題。