機(jī)器學(xué)習(xí)中正則化項(xiàng)L1和L2的直觀理解

正則化(Regularization)

機(jī)器學(xué)習(xí)中幾乎都可以看到損失函數(shù)后面會添加一個額外項(xiàng)蝗拿,常用的額外項(xiàng)一般有兩種,一般英文稱作?1-norm?2-norm蒿涎,中文稱作L1正則化L2正則化哀托,或者L1范數(shù)L2范數(shù)

L1正則化和L2正則化可以看做是損失函數(shù)的懲罰項(xiàng)劳秋。對于線性回歸模型仓手,使用L1正則化的模型建叫做Lasso回歸胖齐,使用L2正則化的模型叫做Ridge回歸(嶺回歸)。下圖是Python中Lasso回歸的損失函數(shù)嗽冒,式中加號后面一項(xiàng)α||w||1即為L1正則化項(xiàng)呀伙。

下圖是Python中Ridge回歸的損失函數(shù),式中加號后面一項(xiàng)α||w||22即為L2正則化項(xiàng)添坊。

一般回歸分析中回歸w表示特征的系數(shù)剿另,從上式可以看到正則化項(xiàng)是對系數(shù)做了處理。L1正則化和L2正則化的說明如下:

L1正則化是指權(quán)值向量w中各個元素的絕對值之和帅腌,通常表示為||w||1L2正則化是指權(quán)值向量w中各個元素的平方和然后再求平方根(可以看到Ridge回歸的L2正則化項(xiàng)有平方符號)驰弄,通常表示為||w||2

一般都會在正則化項(xiàng)之前添加一個系數(shù),Python中用α表示速客,一些文章也用λ表示戚篙。這個系數(shù)需要用戶指定。

那添加L1和L2正則化有什么用溺职?下面是L1正則化和L2正則化的作用岔擂,這些表述可以在很多文章中找到。

L1正則化可以產(chǎn)生稀疏權(quán)值矩陣浪耘,即產(chǎn)生一個稀疏模型乱灵,因此可以用于特征選擇 L2正則化可以防止模型過擬合(overfitting);一定程度上七冲,L1也可以防止過擬合

稀疏模型與特征選擇

上面提到L1正則化有助于生成一個稀疏權(quán)值矩陣痛倚,進(jìn)而可以用于特征選擇。為什么要生成一個稀疏矩陣澜躺?

稀疏矩陣指的是很多元素為0蝉稳,只有少數(shù)元素是非零值的矩陣,即得到的線性回歸模型的大部分系數(shù)都是0. 通常機(jī)器學(xué)習(xí)中特征數(shù)量很多掘鄙,例如文本處理時耘戚,如果將一個詞組(term)作為一個特征,那么特征數(shù)量會達(dá)到上萬個(bigram)操漠。在預(yù)測或分類時收津,那么多特征顯然難以選擇,但是如果代入這些特征得到的模型是一個稀疏模型浊伙,表示只有少數(shù)特征對這個模型有貢獻(xiàn)撞秋,絕大部分特征是沒有貢獻(xiàn)的,或者貢獻(xiàn)微邪苫啤(因?yàn)樗鼈兦懊娴南禂?shù)是0或者是很小的值部服,即使去掉對模型也沒有什么影響),此時我們就可以只關(guān)注系數(shù)是非零值的特征拗慨。這就是稀疏模型與特征選擇的關(guān)系廓八。

L1和L2正則化的直觀理解

這部分內(nèi)容將解釋為什么L1正則化可以產(chǎn)生稀疏模型(L1是怎么讓系數(shù)等于零的)奉芦,以及為什么L2正則化可以防止過擬合

L1正則化和特征選擇

假設(shè)有如下帶L1正則化的損失函數(shù):

J=J0+α∑w|w|(1)

其中J0是原始的損失函數(shù)剧蹂,加號后面的一項(xiàng)是L1正則化項(xiàng)声功,α是正則化系數(shù)。注意到L1正則化是權(quán)值的絕對值之和宠叼,J是帶有絕對值符號的函數(shù)先巴,因此J是不完全可微的。機(jī)器學(xué)習(xí)的任務(wù)就是要通過一些方法(比如梯度下降)求出損失函數(shù)的最小值冒冬。當(dāng)我們在原始損失函數(shù)J0后添加L1正則化項(xiàng)時伸蚯,相當(dāng)于對J0做了一個約束。令L=α∑w|w|简烤,則J=J0+L剂邮,此時我們的任務(wù)變成在L約束下求出J0取最小值的解『嵴欤考慮二維的情況挥萌,即只有兩個權(quán)值w1和w2,此時L=|w1|+|w2|對于梯度下降法枉侧,求解J0的過程可以畫出等值線引瀑,同時L1正則化的函數(shù)L也可以在w1w2的二維平面上畫出來。如下圖:

圖1 L1正則化

圖中等值線是J0的等值線,黑色方形是L函數(shù)的圖形。在圖中,當(dāng)J0等值線與L首次相交的地方就是最優(yōu)解。上圖中J0與L在L的一個頂點(diǎn)處相交洞斯,這個頂點(diǎn)就是最優(yōu)解。注意到這個頂點(diǎn)的值是(w1,w2)=(0,w)⌒蕉。可以直觀想象,因?yàn)長函數(shù)有很多『突出的角』(二維情況下四個灭衷,多維情況下更多)次慢,J0與這些角接觸的機(jī)率會遠(yuǎn)大于與L其它部位接觸的機(jī)率,而在這些角上翔曲,會有很多權(quán)值等于0迫像,這就是為什么L1正則化可以產(chǎn)生稀疏模型,進(jìn)而可以用于特征選擇瞳遍。

類似闻妓,假設(shè)有如下帶L2正則化的損失函數(shù):

J=J0+α∑ww2(2)

同樣可以畫出他們在二維平面上的圖形,如下:

圖2 L2正則化

二維平面下L2正則化的函數(shù)圖形是個圓掠械,與方形相比由缆,被磨去了棱角注祖。因此J0與L相交時使得w1或w2等于零的機(jī)率小了許多,這就是為什么L2正則化不具有稀疏性的原因均唉。

L2正則化和過擬合

擬合過程中通常都傾向于讓權(quán)值盡可能小是晨,最后構(gòu)造一個所有參數(shù)都比較小的模型。因?yàn)橐话阏J(rèn)為參數(shù)值小的模型比較簡單舔箭,能適應(yīng)不同的數(shù)據(jù)集罩缴,也在一定程度上避免了過擬合現(xiàn)象〔惴觯可以設(shè)想一下對于一個線性回歸方程箫章,若參數(shù)很大,那么只要數(shù)據(jù)偏移一點(diǎn)點(diǎn)镜会,就會對結(jié)果造成很大的影響檬寂;但如果參數(shù)足夠小,數(shù)據(jù)偏移得多一點(diǎn)也不會對結(jié)果造成什么影響稚叹,專業(yè)一點(diǎn)的說法是『抗擾動能力強(qiáng)』焰薄。

那為什么L2正則化可以獲得值很小的參數(shù)?

以線性回歸中的梯度下降法為例扒袖。假設(shè)要求的參數(shù)為θ塞茅,hθ(x)是我們的假設(shè)函數(shù),那么線性回歸的代價函數(shù)如下:

J(θ)=12m∑i=1m(hθ(x(i))?y(i))(3)

那么在梯度下降法中季率,最終用于迭代計(jì)算參數(shù)θ的迭代式為:

θj:=θj?α1m∑i=1m(hθ(x(i))?y(i))x(i)j(4)

其中α是learning rate. 上式是沒有添加L2正則化項(xiàng)的迭代公式野瘦,如果在原始代價函數(shù)之后添加L2正則化,則迭代公式會變成下面的樣子:

θj:=θj(1?αλm)?α1m∑i=1m(hθ(x(i))?y(i))x(i)j(5)

其中λ就是正則化參數(shù)飒泻。從上式可以看到鞭光,與未添加L2正則化的迭代公式相比,每一次迭代泞遗,θj都要先乘以一個小于1的因子惰许,從而使得θj不斷減小,因此總得來看史辙,θ是不斷減小的汹买。

正則化參數(shù)的選擇

L1正則化參數(shù)

通常越大的λ可以讓代價函數(shù)在參數(shù)為0時取到最小值。下面是一個簡單的例子聊倔,這個例子來自Quora上的問答晦毙。為了方便敘述,一些符號跟這篇帖子的符號保持一致耙蔑。

假設(shè)有如下帶L1正則化項(xiàng)的代價函數(shù):

F(x)=f(x)+λ||x||1

其中x是要估計(jì)的參數(shù)见妒,相當(dāng)于上文中提到的w以及θ. 注意到L1正則化在某些位置是不可導(dǎo)的,當(dāng)λ足夠大時可以使得F(x)在x=0時取到最小值甸陌。如下圖:

圖3 L1正則化參數(shù)的選擇

分別取λ=0.5和λ=2须揣,可以看到越大的λ越容易使F(x)在x=0時取到最小值盐股。

L2正則化參數(shù)

從公式5可以看到,λ越大返敬,θj衰減得越快遂庄。另一個理解可以參考圖2,λ越大劲赠,L2圓的半徑越小涛目,最后求得代價函數(shù)最值時各參數(shù)也會變得很小。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凛澎,一起剝皮案震驚了整個濱河市霹肝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌塑煎,老刑警劉巖沫换,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異最铁,居然都是意外死亡讯赏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門冷尉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漱挎,“玉大人,你說我怎么就攤上這事雀哨】牧拢” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵雾棺,是天一觀的道長膊夹。 經(jīng)常有香客問我,道長捌浩,這世上最難降的妖魔是什么放刨? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮尸饺,結(jié)果婚禮上宏榕,老公的妹妹穿的比我還像新娘。我一直安慰自己侵佃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布奠支。 她就那樣靜靜地躺著馋辈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪倍谜。 梳的紋絲不亂的頭發(fā)上迈螟,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天叉抡,我揣著相機(jī)與錄音,去河邊找鬼答毫。 笑死褥民,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洗搂。 我是一名探鬼主播消返,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耘拇!你這毒婦竟也來了撵颊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惫叛,失蹤者是張志新(化名)和其女友劉穎倡勇,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘉涌,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妻熊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了仑最。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扔役。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖词身,靈堂內(nèi)的尸體忽然破棺而出厅目,到底是詐尸還是另有隱情,我是刑警寧澤法严,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布损敷,位于F島的核電站,受9級特大地震影響深啤,放射性物質(zhì)發(fā)生泄漏拗馒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一溯街、第九天 我趴在偏房一處隱蔽的房頂上張望诱桂。 院中可真熱鬧,春花似錦呈昔、人聲如沸挥等。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肝劲。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辞槐,已是汗流浹背掷漱。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留榄檬,地道東北人卜范。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像鹿榜,于是被迫代替她去往敵國和親海雪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容