作者:Divyanshu Mishra
編譯:ronghuaiyang
導(dǎo)讀
權(quán)值衰減和L2正則化,到底是不是同一個(gè)東西,這篇文章給你答案。
神經(jīng)網(wǎng)絡(luò)是偉大的函數(shù)逼近器和特征提取器,但有時(shí)它們的權(quán)值變得過(guò)于特定化,導(dǎo)致過(guò)擬合。這就是正則化概念出現(xiàn)的地方,我們將討論兩種主要權(quán)重正則化技術(shù)之間的細(xì)微差別,它們經(jīng)常被錯(cuò)誤地認(rèn)為是相同的。
介紹
1943年,Warren McCulloch和Walter Pitts首先提出了神經(jīng)網(wǎng)絡(luò),但當(dāng)時(shí)還不夠流行,因?yàn)樯窠?jīng)網(wǎng)絡(luò)需要大量數(shù)據(jù)和計(jì)算能力,這在當(dāng)時(shí)是不可行的。但隨著上述約束條件和其他訓(xùn)練技術(shù)的進(jìn)步(如參數(shù)初始化和更好的激活函數(shù))變得可行,它們?cè)俅伍_始主導(dǎo)各種比賽,并在各種人類輔助技術(shù)中找到了它的應(yīng)用。
如今,神經(jīng)網(wǎng)絡(luò)構(gòu)成了許多著名應(yīng)用的最主要的部分,如自動(dòng)駕駛汽車、谷歌翻譯、人臉識(shí)別系統(tǒng)等,并應(yīng)用于幾乎所有人類發(fā)展所使用的技術(shù)。
神經(jīng)網(wǎng)絡(luò)非常擅長(zhǎng)于將函數(shù)近似為線性或非線性,在從輸入數(shù)據(jù)中提取特征時(shí)也非常出色。這種能力使他們?cè)诖罅康娜蝿?wù)中表現(xiàn)出色,無(wú)論是計(jì)算機(jī)視覺領(lǐng)域還是語(yǔ)言建模。但我們都聽過(guò)這句名言:
“能力越大,責(zé)任越大?!?/p>
這句話也適用于全能的神經(jīng)網(wǎng)絡(luò)。它們作為強(qiáng)大的函數(shù)近似器的能力有時(shí)會(huì)導(dǎo)致它們通過(guò)逼近一個(gè)函數(shù)來(lái)過(guò)擬合數(shù)據(jù)集,這個(gè)函數(shù)在它被訓(xùn)練過(guò)的數(shù)據(jù)上表現(xiàn)得非常好,但在測(cè)試它之前從未見過(guò)的數(shù)據(jù)時(shí)卻敗得很慘。更有技術(shù)意義的是,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的權(quán)值對(duì)給定的數(shù)據(jù)更加專門化,而不能學(xué)習(xí)可以一般化的特征。為了解決過(guò)擬合的問(wèn)題,應(yīng)用了一類稱為正則化的技術(shù)來(lái)降低模型的復(fù)雜性和約束權(quán)值,迫使神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)可泛化的特征。
正則化
正則化可以定義為我們?yōu)榱藴p少泛化誤差而不是減少訓(xùn)練誤差而對(duì)訓(xùn)練算法所做的任何改變。有許多正規(guī)化策略。有的對(duì)模型添加額外的約束,如對(duì)參數(shù)值添加約束,有的對(duì)目標(biāo)函數(shù)添加額外的項(xiàng),可以認(rèn)為是對(duì)參數(shù)值添加間接或軟約束。如果我們仔細(xì)使用這些技術(shù),這可以改善測(cè)試集的性能。在深度學(xué)習(xí)的環(huán)境中,大多數(shù)正則化技術(shù)都基于正則化估計(jì)器。當(dāng)正則化一個(gè)估計(jì)量時(shí),有一個(gè)折衷,我們必須選擇一個(gè)增加偏差和減少方差的模型。一個(gè)有效的正規(guī)化是使一個(gè)有利可圖的交易,顯著減少方差,而不過(guò)度增加偏差。
在實(shí)踐中使用的主要正規(guī)化技術(shù)有:
① L2正則化
② L1正則化
③ 數(shù)據(jù)增強(qiáng)
④ Dropout
⑤ Early Stopping
在這篇文章中,我們主要關(guān)注L2正則化,并討論我們是否可以將L2正則化和權(quán)重衰減作為同一枚硬幣的兩面。
L2 正則化
L2正則化屬于正則化技術(shù)的一類,稱為參數(shù)范數(shù)懲罰。之所以提到這類技術(shù),是因?yàn)樵谶@類技術(shù)中,特定參數(shù)的范數(shù)(主要是權(quán)重)被添加到被優(yōu)化的目標(biāo)函數(shù)中。在L2范數(shù)中,在網(wǎng)絡(luò)的損失函數(shù)中加入一個(gè)額外的項(xiàng),通常稱為正則化項(xiàng)。例如:
交叉熵?fù)p失函數(shù)的定義如下所示。
為了將L2正則化應(yīng)用于任何有交叉熵?fù)p失的網(wǎng)絡(luò),我們將正則化項(xiàng)添加到損失函數(shù)中,其中正則化項(xiàng)如下所示:
在上式中,λ是正則化參數(shù),與應(yīng)用的正則化量成正比。如果λ=0,則不應(yīng)用正則化,當(dāng)λ= 1時(shí),對(duì)網(wǎng)絡(luò)應(yīng)用最大正則化。λ是一個(gè)超參數(shù),這意味著它不是在訓(xùn)練期間學(xué)習(xí)的,而是由用戶手動(dòng)調(diào)整或使用一些超參數(shù)調(diào)整技術(shù),如隨機(jī)搜索。
現(xiàn)在讓我們把這些放在一起,形成L2正則化的最終方程,應(yīng)用于下式所給出的交叉熵?fù)p失函數(shù)。
上面的例子展示了L2正則化應(yīng)用于交叉熵?fù)p失函數(shù),但這一概念可以推廣到所有可用的損失函數(shù)。下式給出了L2正則化更一般的公式,其中C0為非正則化損失函數(shù),C為加入正則化項(xiàng)的正則化損失函數(shù)。
注:我們?cè)趯?duì)網(wǎng)絡(luò)進(jìn)行正則化時(shí)不考慮網(wǎng)絡(luò)的bias,原因如下:
1、與權(quán)重相比,bias通常需要更少的數(shù)據(jù)來(lái)精確擬合。每個(gè)權(quán)重指定了兩個(gè)變量如何相互作用(w和x),因此要想很好地?cái)M合權(quán)重,就需要在各種條件下觀察兩個(gè)變量,而每個(gè)bias只控制一個(gè)單一變量(b)。因此,我們對(duì)bias不使用正則化,以免引入太多的方差。2、對(duì)bias進(jìn)行正則化可能引入大量的欠擬合。
為什么L2 正則化有用?
實(shí)踐推理:
讓我們?cè)囍斫釲2正則化基于損失函數(shù)的梯度的工作原理。如果我們對(duì)網(wǎng)絡(luò)中所有權(quán)重和偏差取上面式子中所示方程的偏導(dǎo)數(shù)或梯度,即?C/?w和?C/?b。求偏導(dǎo)數(shù),我們得到:
我們可以使用backpropagation算法計(jì)算上述方程中提到的?C0/?w和?C0/?b項(xiàng)。由于沒有應(yīng)用正則化項(xiàng),偏置參數(shù)的偏導(dǎo)將不變,而權(quán)重參數(shù)將包含額外的(λ/n)*w)正則化項(xiàng)。
偏置和權(quán)重的學(xué)習(xí)規(guī)則由此變?yōu)椋?/p>
上面的權(quán)值方程類似于通常的梯度下降學(xué)習(xí)規(guī)則,除了現(xiàn)在我們首先通過(guò) (1?(η*λ)/n)重新調(diào)整權(quán)值w。這就是L2正則化經(jīng)常被稱為權(quán)重衰減的原因,因?yàn)樗箼?quán)重變小。因此,你可以看到為什么正則化工作的時(shí)候,它使網(wǎng)絡(luò)的權(quán)值更小。權(quán)值變小意味著,如果我們?cè)谶@里或那里改變一些隨機(jī)輸入,網(wǎng)絡(luò)的行為不會(huì)有太大的變化,這反過(guò)來(lái)使正則化的網(wǎng)絡(luò)很難學(xué)習(xí)數(shù)據(jù)中的局部噪聲。這迫使網(wǎng)絡(luò)只學(xué)習(xí)那些在訓(xùn)練集中經(jīng)??吹降奶卣?。
個(gè)人的直覺:
簡(jiǎn)單地從優(yōu)化損失函數(shù)的角度來(lái)考慮L2正則化,當(dāng)我們把正則化項(xiàng)添加到損失函數(shù)中我們實(shí)際上增加了損失函數(shù)的值。因此,如果權(quán)值越大,損失也就越高,訓(xùn)練算法會(huì)試圖通過(guò)懲罰權(quán)值來(lái)降低損失函數(shù),迫使它們?nèi)「〉闹?,從而使網(wǎng)絡(luò)正則化。
L2 正則化和權(quán)值衰減是一樣的嗎?
L2正則化和權(quán)值衰減并不是一回事,但是可以根據(jù)學(xué)習(xí)率對(duì)權(quán)值衰減因子進(jìn)行重新參數(shù)化,從而使SGD等價(jià)。不明白?讓我給你詳細(xì)解釋一下。
以λ為衰減因子,給出了權(quán)值衰減方程。
在以下證明中可以證明L2正則化等價(jià)于SGD情況下的權(quán)值衰減:
1、讓我們首先考慮下面圖中給出的L2正則化方程。我們的目標(biāo)是對(duì)它進(jìn)行重新參數(shù)化,使其等價(jià)于上式中給出的權(quán)值衰減方程。
2、首先,我們找到L2正則化損失函數(shù)相對(duì)于參數(shù)w的偏導(dǎo)數(shù)(梯度),如下式所示。
注意:上圖中這兩種符號(hào)的意思是一樣的。
3、得到損失函數(shù)的偏導(dǎo)數(shù)結(jié)果后,將結(jié)果代入梯度下降學(xué)習(xí)規(guī)則中,如下式所示。代入后,打開括號(hào),重新排列,使其等價(jià)于在一定假設(shè)下的權(quán)值衰減方程。
4、你可以注意到,最終重新排列的L2正則化方程和權(quán)值衰減方程之間的唯一區(qū)別是α(學(xué)習(xí)率)乘以λ(正則化項(xiàng))。為了得到兩個(gè)方程,我們用λ來(lái)重新參數(shù)化L2正則化方程。
5、將λ'替換為λ,對(duì)L2正則化方程進(jìn)行重新參數(shù)化,將其等價(jià)于權(quán)值衰減方程,如下式所示。
從上面的證明中,你必須理解為什么L2正則化在SGD情況下被認(rèn)為等同于權(quán)值衰減,但對(duì)于其他基于自適應(yīng)梯度的優(yōu)化算法,如Adam, AdaGrad等,卻不是這樣。特別是,當(dāng)與自適應(yīng)梯度相結(jié)合時(shí),L2正則化導(dǎo)致具有較大歷史參數(shù)和/或梯度振幅的權(quán)值比使用權(quán)值衰減時(shí)正則化得更少。這導(dǎo)致與SGD相比,當(dāng)使用L2正則化時(shí)adam表現(xiàn)不佳。另一方面,權(quán)值衰減在SGD和Adam身上表現(xiàn)得一樣好。
一個(gè)令人震驚的結(jié)果是,帶有動(dòng)量的SGD優(yōu)于像Adam這樣的自適應(yīng)梯度方法,因?yàn)槌R姷纳疃葘W(xué)習(xí)庫(kù)實(shí)現(xiàn)了L2正則化,而不是原始的權(quán)重衰減。因此,在使用L2正則化有利于SGD的任務(wù)上,Adam的結(jié)果要比使用動(dòng)量的SGD差。
總結(jié)
因此,我們得出結(jié)論,盡管權(quán)值衰減和L2正則化在某些條件下可以達(dá)到等價(jià),但概念上還是有細(xì)微的不同,應(yīng)該區(qū)別對(duì)待,否則可能導(dǎo)致無(wú)法解釋的性能下降或其他實(shí)際問(wèn)題。
本文轉(zhuǎn)自:AI公園,作者:Divyanshu Mishra,編譯:ronghuaiyang,
轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。
審核編輯 黃昊宇
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4733瀏覽量
100415 -
正則化
+關(guān)注
關(guān)注
0文章
17瀏覽量
8121
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論