理解L1,L2 范數(shù)在機(jī)器學(xué)習(xí)中應(yīng)用

理解L1,L2 范數(shù)

L1,L2 范數(shù)即 L1-normL2-norm,自然,有L1、L2便也有L0、L3等等。因為在機(jī)器學(xué)習(xí)領(lǐng)域,L1 和 L2 范數(shù)應(yīng)用比較多,比如作為正則項在回歸中的使用 Lasso Regression(L1) 和 Ridge Regression(L2)。

因此,此兩者的辨析也總被提及,或是考到。不過在說明兩者定義和區(qū)別前,先來談?wù)勈裁词欠稊?shù)(Norm)吧。

什么是范數(shù)?

在線性代數(shù)以及一些數(shù)學(xué)領(lǐng)域中,norm 的定義是

a function that assigns a strictly positive length or size to each vector in a vector space, except for the zero vector. ——Wikipedia

簡單點說,一個向量的 norm 就是將該向量投影到 [0, ?) 范圍內(nèi)的值,其中 0 值只有零向量的 norm 取到。看到這樣的一個范圍,相信大家就能想到其與現(xiàn)實中距離的類比,于是在機(jī)器學(xué)習(xí)中 norm 也就總被拿來表示距離關(guān)系:根據(jù)怎樣怎樣的范數(shù),這兩個向量有多遠(yuǎn)。

上面這個怎樣怎樣也就是范數(shù)種類,通常我們稱?為p-norm,嚴(yán)格定義是:

其中當(dāng) p 取 1 時被稱為 1-norm,也就是提到的 L1-norm,同理 L2-norm 可得。

L1 和 L2 范數(shù)的定義

根據(jù)上述公式 L1-norm 和 L2-norm 的定義也就自然而然得到了。

先將 p=1 代入公式,就有了 L1-norm 的定義:

然后代入 p=2,L2-norm 也有了:

L2 展開就是熟悉的歐幾里得范數(shù):

題外話,其中 L1-norm 又叫做 taxicab-norm 或者 Manhattan-norm,可能最早提出的大神直接用在曼哈頓區(qū)坐出租車來做比喻吧。下圖中綠線是兩個黑點的 L2 距離,而其他幾根就是 taxicab 也就是 L1 距離,確實很像我們平時用地圖時走的路線了。

L1 和 L2 范數(shù)在機(jī)器學(xué)習(xí)上最主要的應(yīng)用大概分下面兩類

  • 作為損失函數(shù)使用

  • 作為正則項使用也即所謂 L1-regularizationL2-regularization

我們可以擔(dān)當(dāng)損失函數(shù)

先來看個回歸問題

我們需要做的是,獲得一條線,讓數(shù)據(jù)點到線上的總距離(也就是error)最小。

還記得之前在范數(shù)介紹中提到的用來表示距離嗎,于是也可以用能表示距離的 L1-norm 和 L2-norm 來作為損失函數(shù)了。

首先是 L1-norm 損失函數(shù),又被稱為 least absolute deviation (LAD,最小絕對偏差)

如果我們最小化上面的損失函數(shù),其實就是在最小化預(yù)測值 ? 和目標(biāo)值 ? 的絕對值。

之后是大家最熟悉的 L2-norm 損失函數(shù),又有大名最小二乘誤差 (least squares error, LSE):

這個便不多解釋了。

那么問題來了,這里不談挖掘機(jī),為什么大家一般都用 L2 損失函數(shù),卻不用 L1 呢?

這個就說來話長了,如果你問一個學(xué)習(xí)過微積分的同學(xué),如何求一個方程的最小值,他/她大概會想當(dāng)然的說:“求導(dǎo),置零,解方程?!?號稱微積分屆的農(nóng)夫三拳。

但如果給出一個絕對值的方程,突然就會發(fā)現(xiàn)農(nóng)夫三拳不管用了,求最小值就有點麻煩了。主要是因為絕對值的倒數(shù)是不連續(xù)的。

同樣的對于 L1 和 L2 損失函數(shù)的選擇,也會碰到同樣的問題,所以最后大家一般用 L2 損失函數(shù)而不用 L1 損失函數(shù)的原因就是:

因為計算方便!

可以直接求導(dǎo)獲得取最小值時各個參數(shù)的取值。

此外還有一點,用 L2 一定只有一條最好的預(yù)測線,L1 則因為其性質(zhì)可能存在多個最優(yōu)解。(更多關(guān)于L1 L2 損失函數(shù)參考索引5)

當(dāng)然 L1 損失函數(shù)難道就沒有什么好處了嗎,也是有的,那就是魯棒性 (Robust) 更強(qiáng),對異常值更不敏感

我們還能擔(dān)當(dāng)正則項

因為機(jī)器學(xué)習(xí)中眾所周知的過擬合問題,所以用正則化防止過擬合,成了機(jī)器學(xué)習(xí)中一個非常重要的技巧。

但數(shù)學(xué)上來講,其實就是在損失函數(shù)中加個正則項(Regularization Term),來防止參數(shù)擬合得過好。

L1-regularization 和 L2-regularization 便都是我們常用的正則項,兩者公式的例子分別如下

這兩個正則項最主要的不同,包括兩點:

  • 如上面提到的,L2 計算起來更方便,而 L1 在特別是非稀疏向量上的計算效率就很低;

  • 還有就是 L1 最重要的一個特點,輸出稀疏,會把不重要的特征直接置零,而 L2 則不會;

  • 最后,如之前多次提過,L2 有唯一解,而 L1 不是。

這里關(guān)于第二條輸出稀疏我想再進(jìn)行一些詳細(xì)講解,因為 L1 天然的輸出稀疏性,把不重要的特征都置為 0,所以它也是一個天然的特征選擇器。

可是為什么 L1 會有這樣的性質(zhì)呢,而 L2 沒有呢?這里用個直觀的例子來講解。

來一步一步看吧,首先獲知用梯度下降法來優(yōu)化時,需要求導(dǎo)獲得梯度,然后用以更新參數(shù)。

于是分別先對 L1 正則項和 L2 正則項來進(jìn)行求導(dǎo),可得。

之后將 L1 和 L2 和它們的導(dǎo)數(shù)畫在圖上

于是會發(fā)現(xiàn),在梯度更新時,不管 L1 的大小是多少(只要不是0)梯度都是1或者-1,所以每次更新時,它都是穩(wěn)步向0前進(jìn)。

而看 L2 的話,就會發(fā)現(xiàn)它的梯度會越靠近0,就變得越小。

也就是說加了 L1 正則的話基本上經(jīng)過一定步數(shù)后很可能變?yōu)?,而 L2 幾乎不可能,因為在值小的時候其梯度也會變小。于是也就造成了 L1 輸出稀疏的特性。

Reference

  1. Differences between L1 and L2 as Loss Function and Regularization

  2. Why L1 norm for sparse models

  3. L1 Norms versus L2 Norms

  4. Norm (mathematics)-Wiki

  5. Why we use “l(fā)east squares” regression instead of “l(fā)east absolute deviations” regression

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容