国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

深度學(xué)習(xí)中的正則化技術(shù)詳解

tanglijun / 2405人閱讀

摘要:深度學(xué)習(xí)中的正則化機(jī)器學(xué)習(xí)中的一個核心問題是設(shè)計不僅在訓(xùn)練集上誤差小,而且在新樣本上泛化能力好的算法。沿特征值較大的方向正則化影響較小。正則化策略可以被解釋為最大后驗(yàn)貝葉斯推斷。

深度學(xué)習(xí)中的正則化

??機(jī)器學(xué)習(xí)中的一個核心問題是設(shè)計不僅在訓(xùn)練集上誤差小,而且在新樣本上泛化能力好的算法。許多機(jī)器學(xué)習(xí)算法都需要采取相應(yīng)的策略來減少測試誤差,這些策略被統(tǒng)稱為正則化。而神經(jīng)網(wǎng)絡(luò)由于其強(qiáng)大的表示能力經(jīng)常遭遇過擬合,所以需要使用許多不同形式的正則化策略。

??正則化通過對學(xué)習(xí)算法的修改,旨在減少泛化誤差而不是訓(xùn)練誤差。目前有很多正則化策略,有些是向機(jī)器學(xué)習(xí)模型中添加限制參數(shù)值的額外約束,有些是向目標(biāo)函數(shù)添加額外項(xiàng)來對參數(shù)值進(jìn)行軟約束。在本章中我們將更詳細(xì)地介紹正則化,重點(diǎn)介紹深度模型的正則化策略,包括參數(shù)范數(shù)懲罰、提前終止、Dropout等等。

基本概念

在開始本章之前,我們回顧以下幾個概念:

Hessian矩陣:在數(shù)學(xué)中,海森矩陣(Hessian matrix 或 Hessian)是一個多變量實(shí)值函數(shù)的二階偏導(dǎo)數(shù)組成的方陣,假設(shè)有一實(shí)數(shù)函數(shù)$f(x_1,x_2,...,x_n)$,如果$f$所有的二階偏導(dǎo)數(shù)都存在,那么$f$的Hessian矩陣的第$ij$-項(xiàng)是$frac{partial^2f}{partial x_ipartial x_j}$,即Hessian矩陣為

$$ H(f)= left[ egin{matrix} frac{partial^2f}{partial x_1^2} & frac{partial^2f}{partial x_1partial x_2} & ldots & frac{partial^2f}{partial x_1partial x_n} frac{partial^2f}{partial x_2partial x_1} & frac{partial^2f}{partial x_2^2} & ldots & frac{partial^2f}{partial x_2partial x_n} vdots & vdots & ddots & vdots frac{partial^2f}{partial x_npartial x_1} & frac{partial^2f}{partial x_npartial x_2} & ldots & frac{partial^2f}{partial x_n^2} end{matrix} ight] $$

??如果函數(shù)$f$在定義域$D$內(nèi)的每個二階導(dǎo)數(shù)都是連續(xù)函數(shù),那么$f$的海森矩陣在$D$區(qū)域內(nèi)為對稱矩陣。

極值點(diǎn):基于Hessian矩陣$H$我們可以判斷多元函數(shù)的極值情況:

如果$H$是正定矩陣,則臨界點(diǎn)一定是局部極小值點(diǎn)。

如果$H$是負(fù)定矩陣,則臨界點(diǎn)一定是局部極大值點(diǎn)。

如果行列式$|H|=0$,需要更高階的導(dǎo)數(shù)來幫助判斷。

在其余情況下,臨界點(diǎn)不是局部極值點(diǎn)。

實(shí)對稱矩陣可對角化:若$A$是實(shí)對稱矩陣,則存在正交矩陣$Q$使得

$QAQ^T=Lambda=diag(lambda_1,...,lambda_n)$,其中$lambda_i$是矩陣A的特征值。若A可逆(即非奇異),則每個$lambda_i$都非零且$lambda_i^{-1}$是$A^{-1}$的特征值,$i=1,2,...,n$。

1. 參數(shù)范數(shù)懲罰

在本節(jié)中,我們討論各種范數(shù)懲罰對模型的影響。許多正則化方法(如神經(jīng)網(wǎng)絡(luò)、線性回歸、邏輯回歸)通過對目標(biāo)函數(shù)$J$添加一個參數(shù)范數(shù)懲罰$Omega( heta)$,限制模型的學(xué)習(xí)能力。將正則化后的目標(biāo)函數(shù)記為$ ilde{J}$:

$$ ilde{J}( heta;X,y)=J( heta;X,y)+alphaOmega( heta)$$

其中$alphain [0,+infty)$是衡量參數(shù)范數(shù)懲罰程度的超參數(shù)。$alpha=0$表示沒有正則化,$alpha$越大對應(yīng)正則化懲罰越大。

在神經(jīng)網(wǎng)絡(luò)中,參數(shù)包括每層線性變換的權(quán)重和偏置,我們通常只對權(quán)重做懲罰而不對偏置做正則懲罰;使用向量$omega$表示應(yīng)受懲罰影響的權(quán)重,用向量$ heta$表示所有參數(shù)。

1.1 $L^2$正則化

$L^2$參數(shù)正則化(也稱為嶺回歸、Tikhonov正則)通常被稱為權(quán)重衰減(weight decay),是通過向目標(biāo)函數(shù)添加一個正則項(xiàng)$Omega( heta)=frac{1}{2}|omega|_2^2$使權(quán)重更加接近原點(diǎn)。

目標(biāo)函數(shù)

$$ ilde{J}(omega;X,y)=J(omega;X,y)+frac{alpha}{2}omega^T omega $$

計算梯度

$$ abla_{omega} ilde{J}(omega;X,y)= abla_{omega}J(omega;X,y)+alphaomega $$

更新權(quán)重

$$ omegaleftarrow omega-epsilon(alphaomega+ abla_{omega}J(omega;X,y))=(1-epsilonalpha)omega-epsilon abla_{omega}J(omega;X,y) $$

從上式可以看出,加入權(quán)重衰減后會導(dǎo)致學(xué)習(xí)規(guī)則的修改,即在每步執(zhí)行梯度更新前先收縮權(quán)重(乘以$(1-epsilonalpha)$)。

下面我們進(jìn)一步分析,令$omega^{* }$為未正則化的目標(biāo)函數(shù)取得最小訓(xùn)練誤差時的權(quán)重向量,即 $ omega^* =mathop{argmin}_omega J(omega) $,在$omega^*$的鄰域?qū)δ繕?biāo)函數(shù)$J( heta)$作二階泰勒展開近似:

$$ hat{J}( heta)=J(omega^* )+frac{1}{2}(omega-omega^* )^TH(omega-omega^*)$$ 其中$H$是$J$在$omega^{* }$處的Hessian矩陣。注意這里因?yàn)?omega^{* }$是最優(yōu)點(diǎn),所以一階項(xiàng)即梯度為0,并且$H$是半正定矩陣。 當(dāng)$hat{J}$最小時,其梯度為0,即 $$ abla_{omega}hat{J}(omega)=H(omega-omega^* )$$ 在上式中加入權(quán)重衰減的梯度,用$ ilde{omega}$表示此時正則化后的最優(yōu)點(diǎn): $$H( ilde{omega}-omega^*)+alpha ilde{omega}=0$$ $$(H+alpha I) ilde{omega}=Homega^*$$ $$ ilde{omega}=(H+alpha I)^{-1}Homega^*$$ 當(dāng)$alpha ightarrow 0$時,正則化的解$ ilde{omega} ightarrowomega^*$。因?yàn)?H$是實(shí)對稱矩陣,所以可以對角化,即存在正交矩陣$Q$(由$H$特征向量組成)使得$H=QLambda Q^T$。于是有: $$ ilde{omega} =(QLambda Q^T+alpha I)^{-1}QLambda Q^Tomega^* = [Q(Lambda+alpha I)Q^T]^{-1}QLambda Q^Tomega^* =Q(Lambda+alpha I)^{-1}Lambda Q^Tomega^* $$

也就是說,權(quán)重衰減的效果是沿著由$H$的特征向量所定義的軸縮放$omega^*$,縮放因子是$frac{lambda_i}{lambda_i+alpha}$。

1)沿特征值較大的方向正則化影響較小。即$lambda_i ggalpha$時,$frac{lambda_i}{lambda_i+alpha}simeq 1$。

2)沿特征值較小的方向,權(quán)重分量收縮到0。即$lambda_illalpha$時,$frac{lambda_i}{lambda_i+alpha}simeq 0$。

補(bǔ)充知識: 馬氏距離
馬氏距離表示數(shù)據(jù)的協(xié)方差距離,是一種有效的計算相似度的方法,定義: $ d(x, y) = sqrt{(x - y)^Tsum^{-1}(x -y)}$ ) , 其中($sum$)是x、y的協(xié)方差矩陣。
如果協(xié)方差矩陣為單位矩陣,那么馬氏距離就簡化為歐式距離,如果協(xié)方差矩陣為對角陣,則其也可稱為正規(guī)化的歐氏距離。一般情況下,$sum$ 總是可逆的,通過相似變換得到一個對角矩陣。因此,可以說馬氏距離就是正規(guī)化的歐氏距離歐氏距離是一種特殊的馬氏距離。
更直觀的理解,假設(shè)我們的數(shù)據(jù)是二維的,當(dāng)我們將 $sum$ 對角化以后,$d(x,y) = sqrt{frac{(x_1 - y_1)^2}{a} + frac{(x_2 - y_2)^2}}$ , 單位陣的情況下變?yōu)? $d(x,y) = sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2}$ 。
馬氏距離是對歐氏距離更一般情況的推廣。對于二維高斯分布的情況,馬氏距離等高線對應(yīng)一個橢圓,如果協(xié)方差矩陣的各個特征值相等,變成一個圓,歐氏距離對位一個標(biāo)準(zhǔn)單位圓,如下所示:

那么對于高維的情況,高維分布二次項(xiàng)等概率曲線的幾何意義的就是一個廣義上的橢球體,如下所示: $sum^D_{i = 1}frac{y_i^2}{lambda} = const$ .

1.2 $L^1$正則化

將$L^2$正則化的參數(shù)懲罰項(xiàng)$Omega( heta)$由權(quán)重衰減項(xiàng)修改為各個參數(shù)的絕對值之和,即得到$L^1$正則化:

$$ Omega( heta)=|omega|_1=sum_i |omega_i| $$

目標(biāo)函數(shù):

$$ ilde{J}(omega;X,y)=J(omega;X,y)+alpha |omega|_1 $$

梯度:

$$ abla_{omega} ilde{J}(omega;X,y) = abla_{omega}J(omega;X,y)+alpha sgn(omega)$$

其中$sgn(x)$為符號函數(shù),取各個元素的正負(fù)號。與之前的分析一樣,將目標(biāo)函數(shù)作二次泰勒展開近似:

$$hat{J}(omega;X,y)=J(omega^* ;X,y)+frac{1}{2}(omega-omega^*)^T H(omega - omega^*)$$

我們進(jìn)一步假設(shè)Hessian是對角矩陣,即$H=diag([H_{1,1},...,H_{n,n}])$,$H_{i,i}>0$,于是$L^1$正則化目標(biāo)函數(shù)二次近似為:
$$hat{J}(omega;X,y)=J(omega^*;X,y)+frac{1}{2}(omega-omega^*)^Tdiag(H_{1,1}, H_{2,2},...,H_{n,n})(omega-omega^*)+alpha|omega|_1$$

$$=J(omega^*;X,y)+sum_ileft[frac{1}{2}H_{i,i}(omega-omega^*)^2+alpha|omega_i| ight]$$

最小化這個近似函數(shù),有如下形式的解析解:

$$omega_i=sgn(omega_i^*)max{|omega_i^* |-frac{alpha}{H_{i,i}},0}$$

對每個$i$,我們考慮$omega_i^*>0$的情形:

1)$omega_i^* leqfrac{alpha}{H_{i,i}}$,正則化目標(biāo)中的最優(yōu)值是$omega_i=0$。

2)$omega_i^{* }> frac{alpha}{H_{i,i}}$,
$omega_i=omega_i^{*}-frac{alpha}{H_{i,i}}$,正則化不會將$omega_i$的最優(yōu)值推至0,而是在該方向上移動 $frac{alpha}{H_{i,i}}$ 的距離。

1.3 總結(jié)$L^2$與$L^1$正則化

相比$L^2$正則化,$L^1$正則化會產(chǎn)生更稀疏的解。如果考慮Hessian矩陣是對角正定矩陣,我們得到$L^2$正則化的最優(yōu)解是$ ilde{omega_i}=frac{H_{i,i}}{H_{i,i}+alpha}omega_i^{* }$。如果$omega_i^{* } eq 0$,則 $ ilde{omega_i} eq 0$,這說明$L^2$正則化不會使參數(shù)變得稀疏,而$L^1$正則化有可能通過足夠大的$alpha$實(shí)現(xiàn)稀疏。

正則化策略可以被解釋為最大后驗(yàn)(MAP)貝葉斯推斷。

$L^2$正則化相當(dāng)于權(quán)重是高斯先驗(yàn)的MAP貝葉斯推斷。

$L^1$正則化相當(dāng)于權(quán)重是Laplace先驗(yàn)的MAP貝葉斯推斷。

最大后驗(yàn)估計選擇后驗(yàn)概率最大的點(diǎn):

$$Theta_{MAP}=mathop{argmax}_{ heta}p( heta|x)=mathop{argmax}_{ heta}log p(x| heta)+log p( heta)$$

右邊的$log p(x| heta)$對應(yīng)標(biāo)準(zhǔn)的對數(shù)似然項(xiàng),$log p( heta)$對應(yīng)先驗(yàn)分布。在神經(jīng)網(wǎng)絡(luò)中上述公式中的$ heta$即我們考慮的權(quán)重$omega$。

如果先驗(yàn)是高斯分布$mathcal{N}(omega;0,frac{1}{alpha}I^2)$,即$p(omega)propto exp(-frac{alpha}{2}omega^Tomega)$,從而有$log p(omega)propto alphaomega^Tomega$。因此$L^2$正則化權(quán)重衰減對應(yīng)著權(quán)重是高斯先驗(yàn)的MAP貝葉斯推斷。

如果先驗(yàn)是Laplace分布$Laplace(omega;0,frac{1}{alpha})$,即$p(omega)=frac{alpha}{2}exp(-alpha|x|)$,對數(shù)先驗(yàn)項(xiàng)$log p(omega)=sum_ilog Laplace(omega_i;0,frac{1}{alpha})=-alpha|omega|_1+nlog alpha-nlog 2$與$L^1$正則化代價函數(shù)懲罰項(xiàng)$alphaOmega(omega)=alpha sum_i |omega_i|$等價。

2. 作為約束的范數(shù)懲罰

考慮參數(shù)范數(shù)正則化的代價函數(shù):

$$ ilde{J}( heta;X,y)=J( heta;X,y)+alphaOmega( heta)$$

在上一節(jié)中考慮的是無約束問題,如果想約束$Omega( heta)

$$mathcal{L}( heta,alpha;X,y)=J( heta;X,y)+alpha(Omega( heta)-k)$$

該約束問題的解是

$$ heta^*=argmin_ hetamax_{alpha,alphageq 0}mathcal{L}( heta,alpha)$$

可以通過調(diào)節(jié)$alpha$與$k$的值來擴(kuò)大或縮小權(quán)重的約束區(qū)域。較大的$alpha$將得到一個較小的約束區(qū)域,而較小的$alpha$將得到一個較大的約束區(qū)域。

使用顯示約束(相比于懲罰約束)的優(yōu)點(diǎn):

可以先用梯度下降法計算$J( heta)$的下降步,再投影到區(qū)域$Omega( heta)

懲罰可能導(dǎo)致目標(biāo)函數(shù)非凸,而使得算法陷入局部極小。

重投影的顯示約束對優(yōu)化過程增加了一定的穩(wěn)定性。例如當(dāng)學(xué)習(xí)率較高時,很可能進(jìn)入正反饋,即大的權(quán)重誘導(dǎo)大的梯度,使權(quán)重獲得較大的更新。如果持續(xù)更新增加權(quán)重大小,則會使$ heta$迅速增大而遠(yuǎn)離原點(diǎn)發(fā)生溢出。

3. 欠約束問題

機(jī)器學(xué)習(xí)中許多線性模型,如線性回歸和PCA,都依賴與矩陣$X^TX$求逆,如果$X^TX$不可逆,這些方法就會失效。這種情況下,正則化的許多形式對應(yīng)求逆$X^TX+alpha I$,這個正則化矩陣是可逆的。大多數(shù)正則化方法能夠保證應(yīng)用于欠定問題的迭代方法收斂。

4. 數(shù)據(jù)集增強(qiáng)

讓機(jī)器學(xué)習(xí)模型泛化得更好的最好辦法是使用更多的數(shù)據(jù)進(jìn)行訓(xùn)練,因此需要在有限的數(shù)據(jù)中創(chuàng)建假數(shù)據(jù)并添加到訓(xùn)練集中。數(shù)據(jù)集增強(qiáng)在對象識別領(lǐng)域是特別有效的方法。

數(shù)據(jù)集的各種變換,如對圖像的平移、旋轉(zhuǎn)和縮放。

在輸入層注入噪聲,也可以看作數(shù)據(jù)集增強(qiáng)的一種方法(如去噪自編碼器)。通過將隨機(jī)噪聲添加到輸入再進(jìn)行訓(xùn)練能夠大大改善神經(jīng)網(wǎng)絡(luò)的健壯性。

5. 噪聲魯棒性

將噪聲加入到輸入。在一般情況下,注入噪聲遠(yuǎn)比簡單地收縮參數(shù)強(qiáng)大,特別是噪聲被添加到隱藏單元時會更加強(qiáng)大(如Dropout)。對于某些模型而言,向輸入添加方差極小的噪聲等價于對權(quán)重施加范數(shù)懲罰。

將噪聲加入到權(quán)重。這項(xiàng)技術(shù)主要用于循環(huán)神經(jīng)網(wǎng)絡(luò)。這可以被解釋為關(guān)于權(quán)重的貝葉斯推斷的隨機(jī)實(shí)現(xiàn)。貝葉斯學(xué)習(xí)過程將權(quán)重視為不確定的,并且可以通過概率分布表示這種不確定性,向權(quán)重添加噪聲是反映這種不確定性的一種實(shí)用的隨機(jī)方法。

例如對回歸問題,假設(shè)對每個輸入,網(wǎng)絡(luò)權(quán)重添加隨機(jī)擾動$epsilon sim mathcal{N}(epsilon;0,eta I)$,將擾動后的模型記為 $hat{y}\_{epsilon_{omega}}(x)$。目標(biāo)函數(shù)為:

$$ ilde{J}_{omega}=mathbb{E}_{p(x,y,epsilon_omega)}[(hat{y}_{epsilon_omega}(x)-y)^2]=mathbb{E}_{p(x,y,epsilon_omega)}[hat{y}_{epsilon_omega}^2(x)-2yhat{y}_{epsilon_omega}(x)+y^2]$$

最小化帶權(quán)重噪聲的$J$等價于最小化附加正則項(xiàng):$etamathbb{E}\_{p(x,y)}[|| abla_omega hat{y}(x)||^2]$的$J$。

這種正則化鼓勵參數(shù)進(jìn)入權(quán)重小擾動對輸出相對影響較小的參數(shù)空間區(qū)域。換句話說,它推動模型進(jìn)入對權(quán)重小的變化相對不敏感的區(qū)域,找到的點(diǎn)不只是極小點(diǎn),而且是由平坦區(qū)域所包圍的極小點(diǎn)

將噪聲加入到輸出。即顯式地對標(biāo)簽上的噪聲進(jìn)行建模,假設(shè)訓(xùn)練集上的標(biāo)記$y$正確的概率是$1-epsilon$,其他標(biāo)簽是正確的可能性是$epsilon$。例如,標(biāo)簽平滑通過把確切分類目標(biāo)從$0$和$1$換成$frac{epsilon}{k-1}$和$1-epsilon$,正則化具有$k$個輸出的softmax函數(shù)的模型。softmax函數(shù)值永遠(yuǎn)在$(0,1)$區(qū)間內(nèi)而達(dá)不到$0$或$1$,標(biāo)簽平滑的優(yōu)勢是能夠防止模型追求確切概率而不影響模型學(xué)習(xí)正確分類。

6. 半監(jiān)督學(xué)習(xí)

在半監(jiān)督學(xué)習(xí)的框架下,$P(x)$產(chǎn)生的未標(biāo)記樣本和$P(x, y)$中的標(biāo)記樣本都用于估計$P(y | x)$。在深度學(xué)習(xí)的背景下,半監(jiān)督學(xué)習(xí)通常指的是學(xué)習(xí)一個表示$h = f (x)$,學(xué)習(xí)表示的目的是使相同類中的樣本有類似的表示。

我們可以構(gòu)建這樣一個模型,其中生成模型$P(x)$或$P(x, y)$與判別模型$P(y | x)$共享參數(shù),而不用分離無監(jiān)督和監(jiān)督部分。

7. 多任務(wù)學(xué)習(xí)

多任務(wù)學(xué)習(xí)是通過合并幾個任務(wù)中的樣例(可以視為對參數(shù)施加的軟約束)來提高泛化的一種方式。當(dāng)模型的一部分被多個額外的任務(wù)共享時,這部分將被約束為良好的值,通常會帶來更好的泛化能力。

下圖展示了多任務(wù)學(xué)習(xí)的一種普遍形式。不同的監(jiān)督任務(wù)共享相同的輸入$x$和中間表示層$h^{(shared)}$,能學(xué)習(xí)共同的因素池。

從深度學(xué)習(xí)的觀點(diǎn)看,底層的先驗(yàn)知識為:能解釋數(shù)據(jù)變化的因素中,某些因素是跨多個任務(wù)共享的。

8. 提前終止

由于神經(jīng)網(wǎng)絡(luò)強(qiáng)大的表示能力,當(dāng)訓(xùn)練次數(shù)過多時會經(jīng)常遭遇過擬合,即訓(xùn)練誤差會隨時間推移減少,而驗(yàn)證集誤差會再次上升。

如果我們只要返回使驗(yàn)證集誤差最低的參數(shù),就可以獲得驗(yàn)證集誤差更低的模型。這種策略被稱為提前終止(early stopping)。由于它的有效性和簡單性,這可能是深度學(xué)習(xí)中最常用的正則化形式。

提前終止是一種非常不顯眼的正則化形式,幾乎不需要改變基本訓(xùn)練過程、目標(biāo)函數(shù)。而使用權(quán)重衰減則必須小心不能使用太多的權(quán)重衰減,否則容易陷入局部極小點(diǎn)。

8.1 提前終止算法

_

輸入:$n$為評估間隔步數(shù),$p$為patience(即觀察到$p$次更差的驗(yàn)證集表現(xiàn)后終止),$ heta_0$為初始參數(shù)

過程

1: 初始化$ heta= heta_0$,$i=0$,$j=0$,$v=infty$,$ heta^* = heta$,$i^* = i$

2: $while(j

3:??運(yùn)行訓(xùn)練算法$n$步,更新$ heta$。

4:??$i=i+n$,$v"=ValidationSetError( heta)$

5:??$if (v"

6:????$j=0$,$ heta^* = heta$,$i^{* }=i$,$v=v" $

7:??$else$

8:????$j=j+1$

9:??$end$ $if$

10:$end$ $while$

輸出:最佳參數(shù)$ heta^* $,最佳訓(xùn)練步數(shù)$i^* $


8.2 提前終止的優(yōu)點(diǎn)

由于限制了訓(xùn)練迭代次數(shù),減少了訓(xùn)練時的計算成本

具有正則化效果而不需要添加懲罰項(xiàng)或計算其梯度。

8.3 提前終止相當(dāng)于$L^2$正則化

提前終止為何具有正則化效果?其真正機(jī)制可理解為將優(yōu)化過程的參數(shù)空間限制在初始參數(shù)值$ heta_0$的小鄰域內(nèi)。假如學(xué)習(xí)率為$epsilon$,進(jìn)行$ au$次訓(xùn)練迭代,則$frac{1}{epsilon au}$等價于權(quán)重衰減系數(shù)$alpha$。我們下面進(jìn)行證明:

我們考慮二次誤差的簡單線性模型,采用梯度下降法,參數(shù)$ heta=omega$,代價函數(shù)$J$在最優(yōu)值$omega^*$附近作泰勒級數(shù)二階展開近似:

$$hat{J}( heta)=J(omega^* )+frac{1}{2}(omega-omega^* )^TH(omega-omega^*)$$

其中$H$是$J$關(guān)于$omega$在$omega^{* }$點(diǎn)的Hessian。由于$omega^{* }$是全局最小點(diǎn),$H$是半正定對稱矩陣,因此可以對角化,即存在正交矩陣$Q$使得$H=QLambda Q^T$。進(jìn)一步,$Q$是特征向量的一組標(biāo)準(zhǔn)正交基,$Lambda$是(對角元素是$H$特征值的)對角矩陣。

在局部泰勒級數(shù)逼近下,梯度由下式給出:

$$ ablahat{J}(omega)=H(omega-omega^*)$$

將權(quán)重參數(shù)初始化為原點(diǎn),即$omega^{(0)}=0$,梯度下降法由下面公式給出:

$$omega^{( au)}=omega^{( au-1)}-epsilon abla_{omega}hat{J}(omega^{( au-1)})=omega^{( au-1)}-epsilon H(omega^{( au-1)}-omega^*)$$

$$omega^{( au)}-omega^* =(I-epsilon H)(omega^{( au-1)}-omega^*)$$

利用$H$的正交分解$H=QLambda Q^T$,得到:

$$omega^{( au)}-omega^* =(I-epsilon QLambda Q^T)(omega^{( au-1)}-omega^*)$$

$$Q^T(omega^{( au)}-omega^* )=(I-epsilon Lambda) Q^T(omega^{( au-1)}-omega^* )=ldots=(I-epsilonLambda)^ au Q^T(omega^{(0)}-omega^*)$$

假定$epsilon$足夠小以保證$|1-epsilonlambda_i|<1$,則經(jīng)過$ au$次迭代后:

$$Q^Tomega^{( au)}=Q^Tomega^* -(I-epsilon Lambda)^ au Q^Tomega^* =[I-(I-epsilon Lambda)^ au] Q^Tomega^*$$

我們回顧1.1節(jié)中$L^2$正則化的形式:$Q^T ilde{omega}=(Lambda+alpha I)^{-1}Lambda Q^T omega^*$,注意到$(Lambda+alpha I)^{-1}(Lambda+alpha I)=I$,即$(Lambda+alpha I)^{-1}Lambda=I-(Lambda+alpha I)^{-1}alpha$,于是有:

$$ Q^T ilde{omega}=[I-(Lambda+alpha I)^{-1}alpha] Q^T omega^* $$

對比這兩個式子右端,如果滿足

$$(I-epsilonLambda)^ au=(Lambda+alpha I)^{-1}alpha$$

那么$L^2$正則化和提前終止是等價的(在目標(biāo)函數(shù)的二階近似下)。

利用級數(shù)展開$log (1+x)=x-frac{x^2}{2}+ldots+frac{(-1)^{n-1}x^n}{n}+ldots$該等式即:

$$ aulog (I-epsilonLambda)=-log (I+frac{1}{alpha}Lambda)$$

$$ au(-epsilonLambda-ldots)=-(frac{1}{alpha}Lambda-ldots)$$

如果所有$lambda_i$是小的($epsilonlambda_ill 1$且$frac{lambda_i}{alpha}ll 1$),則:

$$alpha approx frac{1}{ auepsilon}$$

8.4 小結(jié)——提前終止與$L^2$正則化對比

提前終止和$L^2$正則化是等價的(在二階近似、$lambda_i$小的情況下),即$frac{1}{epsilon au}approx alpha$。也就是說訓(xùn)練迭代次數(shù)$ au$和學(xué)習(xí)率$epsilon$起著與$L^2$正則化(權(quán)重衰減)系數(shù)$alpha$成反比的作用。

長度為$ au$的軌跡結(jié)束于$L^2$正則化目標(biāo)的極小點(diǎn),但是提前終止通常涉及監(jiān)控驗(yàn)證集誤差,以便在空間特別好的點(diǎn)處終止軌跡。

提前終止比$L^2$正則化更具有優(yōu)勢,提前終止能自動確定正則化的正確量,而權(quán)重衰減需要進(jìn)行多個不同超參數(shù)的訓(xùn)練實(shí)驗(yàn)。

9. 參數(shù)綁定與參數(shù)共享

參數(shù)范數(shù)懲罰或約束是相對于固定區(qū)域或點(diǎn),如$L^2$正則化是對參數(shù)偏離$0$固定值進(jìn)行懲罰。但有時我們需要對模型參數(shù)之間的相關(guān)型進(jìn)行懲罰,使模型參數(shù)盡量接近或者相等。

參數(shù)共享:強(qiáng)迫模型某些參數(shù)相等

主要應(yīng)用:卷積神經(jīng)網(wǎng)絡(luò)(CNN)

優(yōu)點(diǎn):顯著降低了CNN模型的參數(shù)數(shù)量(CNN模型參數(shù)數(shù)量經(jīng)常是千萬量級以上),減少模型所占用的內(nèi)存,并且顯著提高了網(wǎng)絡(luò)大小而不需要相應(yīng)的增加訓(xùn)練數(shù)據(jù)。

10. 稀疏表示

稀疏表示也是卷積神經(jīng)網(wǎng)絡(luò)經(jīng)常用到的正則化方法。$L^1$正則化會誘導(dǎo)稀疏的參數(shù),使得許多參數(shù)為$0$;而稀疏表示是懲罰神經(jīng)網(wǎng)絡(luò)的激活單元,稀疏化激活單元。換言之,稀疏表示是使得每個神經(jīng)元的輸入單元變得稀疏,很多輸入是0。

例如下圖,$h_3$只依賴于上一層的3個神經(jīng)元輸入$x_2$、$x_3$、$x_4$,而其他神經(jīng)元到$h_3$的輸入都是0。

11. Bagging和其他集成方法

Bagging(bootstrap aggregating)是通過結(jié)合幾個模型降低泛化誤差的技術(shù)。主要想法是分別訓(xùn)練幾個不同的模型,然后讓所有模型表決測試樣例的輸出。這是機(jī)器學(xué)習(xí)中常規(guī)策略的一個例子,被稱為模型平均(model averaging)。采用這種策略的技術(shù)被稱為集成方法。

Bagging是一種允許重復(fù)多次使用同一種模型、訓(xùn)練算法和目標(biāo)函數(shù)的方法。具體來說,Bagging涉及構(gòu)造$k$個不同的數(shù)據(jù)集。每個數(shù)據(jù)集從原始數(shù)據(jù)集中重復(fù)采樣構(gòu)成,和原始數(shù)據(jù)集具有相同數(shù)量的樣例。

模型平均是一個減少泛化誤差的非常強(qiáng)大可靠的方法。例如我們假設(shè)有$k$個回歸模型,每個模型誤差是$epsilon_i$,誤差服從零均值、方差為$v$、協(xié)方差為$c$的多維正態(tài)分布。則模型平均預(yù)測的誤差為$frac{1}{k}sum_iepsilon_i$,均方誤差的期望為

$$mathbb{E}left[(frac{1}{k}sum_iepsilon_i)^2 ight]=frac{1}{k^2}mathbb{E}left[sum_i(epsilon_i^2+sum_{i eq j}epsilon_iepsilon_j) ight]=frac{1}{k}v+frac{k-1}{k}c$$

在誤差完全相關(guān)即$c=v$的情況下,均方誤差為$v$,模型平均沒有幫助。在誤差完全不相關(guān)即$c=0$時,模型平均的均方誤差的期望僅為$frac{1}{k}v$。這說明集成平方誤差的期望隨集成規(guī)模的增大而線性減少。

其他集成方法,如Boosting,通過向集成逐步添加神經(jīng)網(wǎng)絡(luò),可以構(gòu)建比單個模型容量更高的集成模型。

12. Dropout

Dropout可以被認(rèn)為是集成大量深層神經(jīng)網(wǎng)絡(luò)的實(shí)用Bagging方法。但是Bagging方法涉及訓(xùn)練多個模型,并且在每個測試樣本上評估多個模型。當(dāng)每個模型都是一個大型神經(jīng)網(wǎng)絡(luò)時,Bagging方法會耗費(fèi)很多的時間和內(nèi)存。而Dropout則提供了一種廉價的Bagging集成近似,能夠訓(xùn)練和評估指數(shù)級數(shù)量的神經(jīng)網(wǎng)絡(luò)。

12.1 Dropout基本原理

Dropout訓(xùn)練的集成包括所有從基礎(chǔ)網(wǎng)絡(luò)中除去神經(jīng)元(非輸出單元)后形成的子網(wǎng)絡(luò)。只需將一些單元的輸出乘零就能有效的刪除一個單元(稱之為乘零的簡單Dropout算法)。假如基本網(wǎng)絡(luò)有$n$個非輸出神經(jīng)元,則一共有$2^n$個子網(wǎng)絡(luò)。

Dropout的目標(biāo)是在指數(shù)級數(shù)量的神經(jīng)網(wǎng)絡(luò)上近似Bagging過程。具體來說,在訓(xùn)練中使用Dropout時,我們會使用基于小批量產(chǎn)生較小步長的學(xué)習(xí)算法,如隨機(jī)梯度下降。

每次在小批量中加載一個樣本,然后隨機(jī)抽樣(用于網(wǎng)絡(luò)中所有輸入和隱藏單元的)不同二值掩碼。

對于每個單元,掩碼是獨(dú)立采樣的。通常輸入單元被包括的概率為$0.8$,隱藏單元被包括的概率為$0.5$。

然后與之前一樣,運(yùn)行前向傳播、反向傳播和學(xué)習(xí)更新。

12.2 Dropout與Bagging區(qū)別

Bagging:所有模型都是獨(dú)立的。

??Dropout:所有模型共享參數(shù),其中每個模型繼承父神經(jīng)網(wǎng)絡(luò)參數(shù)的不同子集。參數(shù)共享使得在有限內(nèi)存下表示指數(shù)級數(shù)量的模型變得可能。

Bagging:每個模型在其相應(yīng)的訓(xùn)練集上訓(xùn)練到收斂。

??Dropout:大部分模型沒有被顯式地被訓(xùn)練,因?yàn)楦干窠?jīng)網(wǎng)絡(luò)通常很大,幾乎不可能采樣完指數(shù)級數(shù)量的子網(wǎng)絡(luò);取而代之的是,在單個步驟中訓(xùn)練一小部分子網(wǎng)絡(luò),通過參數(shù)共享使得剩余的子網(wǎng)絡(luò)也有好的參數(shù)設(shè)定。

除此之外,Dropout與Bagging算法一樣。例如每個子網(wǎng)絡(luò)中遇到的訓(xùn)練集是有放回采樣的原始訓(xùn)練集的一個子集。

模型輸出:

Bagging情況下,每個模型$i$產(chǎn)生一個概率分布$p^{(i)}(y|x)$,集成的預(yù)測由這些分布的算術(shù)平均值給出:

$$frac{1}{k}sum_{i=1}^{k}p^{(i)}(y|x)$$

Dropout情況下,通過掩碼$mu$定義每個子模型的概率分布$p(y|x,mu)$。所有掩碼的算術(shù)平均值由下式給出:

$$sum_{mu}p(mu)p(y|x,mu)$$

其中$p(mu)$是訓(xùn)練時采樣$mu$的概率分布。但該求和包含指數(shù)級的項(xiàng),一般是不可計算的,我們可以通過采樣近似推斷,即平均許多掩碼的輸出。通過幾何平均直接定義的非標(biāo)準(zhǔn)化概率分布由下式給出:

$$ ilde{p}_{ensemble}(y|x)=sqrt[2^d]{prod_{mu}p(y|x,mu)}$$

其中$d$是可被丟棄的單元數(shù)。為了作出預(yù)測,需要進(jìn)行標(biāo)準(zhǔn)化,例如對均勻分布的$mu$,可按下式進(jìn)行標(biāo)準(zhǔn)化:

$$p_{ensemble}(y|x)=frac{ ilde{p}_{ensemble}(y|x)}{sum_{y"} ilde{p}_{ensemble}(y"|x)}$$

典型的dropout代碼示例參考如下,感謝作者Jipeng Huang 提供。

# coding: UTF-8
"""""""""""""""""""""""""""""""""""""""""""""""""""""
   file name: dropout.py
   create time: Fri 29 Sep 2017 03:00:16 AM EDT
   author: Jipeng Huang 
   e-mail: huangjipengnju@gmail.com
   github: https://github.com/hjptriplebee
"""""""""""""""""""""""""""""""""""""""""""""""""""""
#mnist data
import tensorflow.examples.tutorials.mnist as mnist
mnist = mnist.input_data.read_data_sets("MNIST_data/", one_hot=True)

import tensorflow as tf
#ground truth
x = tf.placeholder(tf.float32, [None, 784])
y_ = tf.placeholder("float", [None,10])

#dropout
p = tf.placeholder(tf.float32)

#weight and bias
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))

#nn
h1 = tf.nn.dropout(x, keep_prob = p)
y = tf.nn.softmax(tf.matmul(h1,W) + b)

#loss and train
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(5000):
        batch_xs, batch_ys = mnist.train.next_batch(100)
        sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys, p : 0.95})
    correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
    print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels, p : 1.0}))
12.3 Dropout小結(jié)

Dropout優(yōu)點(diǎn)

計算方便。訓(xùn)練過程中使用Dropout產(chǎn)生$n$個隨機(jī)二進(jìn)制數(shù)與狀態(tài)相乘即可。每個樣本每次更新的時間復(fù)雜度:$O(n)$,空間復(fù)雜度:$O(n)$。

適用廣。Dropout不怎么限制適用的模型或訓(xùn)練過程,幾乎在所有使用分布式表示且可以用隨機(jī)梯度下降訓(xùn)練的模型上都表現(xiàn)很好。包括:前饋神經(jīng)網(wǎng)絡(luò)、概率模型、受限波爾茲曼機(jī)、循環(huán)神經(jīng)網(wǎng)絡(luò)等。

相比其他正則化方法(如權(quán)重衰減、過濾器約束和稀疏激活)更有效。也可與其他形式的正則化合并,得到進(jìn)一步提升。

Dropout缺點(diǎn)

不適合寬度太窄的網(wǎng)絡(luò)。否則大部分網(wǎng)絡(luò)沒有輸入到輸出的路徑。

不適合訓(xùn)練數(shù)據(jù)太小(如小于5000)的網(wǎng)絡(luò)。訓(xùn)練數(shù)據(jù)太小時,Dropout沒有其他方法表現(xiàn)好。

不適合非常大的數(shù)據(jù)集。數(shù)據(jù)集大的時候正則化效果有限(大數(shù)據(jù)集本身的泛化誤差就很小),使用Dropout的代價可能超過正則化的好處。

Dropout衍生方法

Dropout作用于線性回歸時,相當(dāng)于每個輸入特征具有不同權(quán)重衰減系數(shù)的$L^2$權(quán)重衰減,系數(shù)大小由其方差決定。但對深度模型而言,二者是不等同的。

快速Dropout (Wang and Manning,2013):利用近似解的方法,減小梯度計算中的隨機(jī)性析解,獲得更快的收斂速度。

DropConnect (Wan,2013):將一個標(biāo)量權(quán)重和單個隱藏單元狀態(tài)之間的每個乘積作為可以丟棄的一個單元。

$mu$不取二值,而是服從正態(tài)分布,即$musimmathcal{N}(1,I)$(Srivastava,2014)。

13. 對抗訓(xùn)練

對抗樣本主要用于計算機(jī)安全領(lǐng)域。在正則化背景下,通過對抗訓(xùn)練(adversarial training)可以減少原有獨(dú)立同分布的測試集的錯誤率——在對抗擾動的訓(xùn)練集樣本上訓(xùn)練網(wǎng)絡(luò)。

主要原因之一是高度線性,神經(jīng)網(wǎng)絡(luò)主要是基于線性模塊構(gòu)建的。輸入改變$epsilon$,則權(quán)重為$omega$的線性函數(shù)將改變$epsilon||omega||_1$,對于高維的$omega$這是一個非常大的數(shù)。

對抗訓(xùn)練通過鼓勵網(wǎng)絡(luò)在訓(xùn)練數(shù)據(jù)附件的局部區(qū)域恒定來限制這一個高度敏感的局部線性行為。

14. 切面距離、正切傳播和流形正切分類器

利用流形假設(shè),假設(shè)數(shù)據(jù)位于低維流形附近來克服維數(shù)災(zāi)難。

切面距離算法

正切傳播算法

流形正切分類器

轉(zhuǎn)自: https://github.com/exacity/si...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/19768.html

相關(guān)文章

  • 一文概覽深度學(xué)習(xí)中的五大正則方法和七大優(yōu)策略

    摘要:近來在深度學(xué)習(xí)中,卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)等深度模型在各種復(fù)雜的任務(wù)中表現(xiàn)十分優(yōu)秀。機(jī)器學(xué)習(xí)中最常用的正則化方法是對權(quán)重施加范數(shù)約束。 近來在深度學(xué)習(xí)中,卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)等深度模型在各種復(fù)雜的任務(wù)中表現(xiàn)十分優(yōu)秀。例如卷積神經(jīng)網(wǎng)絡(luò)(CNN)這種由生物啟發(fā)而誕生的網(wǎng)絡(luò),它基于數(shù)學(xué)的卷積運(yùn)算而能檢測大量的圖像特征,因此可用于解決多種圖像視覺應(yīng)用、目標(biāo)分類和語音識別等問題。但是,深層網(wǎng)絡(luò)...

    2shou 評論0 收藏0
  • CNN超參數(shù)優(yōu)和可視技巧詳解

    摘要:在計算機(jī)視覺領(lǐng)域,對卷積神經(jīng)網(wǎng)絡(luò)簡稱為的研究和應(yīng)用都取得了顯著的成果。文章討論了在卷積神經(jīng)網(wǎng)絡(luò)中,該如何調(diào)整超參數(shù)以及可視化卷積層。卷積神經(jīng)網(wǎng)絡(luò)可以完成這項(xiàng)任務(wù)。 在深度學(xué)習(xí)中,有許多不同的深度網(wǎng)絡(luò)結(jié)構(gòu),包括卷積神經(jīng)網(wǎng)絡(luò)(CNN或convnet)、長短期記憶網(wǎng)絡(luò)(LSTM)和生成對抗網(wǎng)絡(luò)(GAN)等。在計算機(jī)視覺領(lǐng)域,對卷積神經(jīng)網(wǎng)絡(luò)(簡稱為CNN)的研究和應(yīng)用都取得了顯著的成果。CNN網(wǎng)絡(luò)最...

    Fundebug 評論0 收藏0
  • 詳解深度學(xué)習(xí)中的 Normalization,不只是BN(2)

    摘要:最普遍的變換是線性變換,即和均將規(guī)范化應(yīng)用于輸入的特征數(shù)據(jù),而則另辟蹊徑,將規(guī)范化應(yīng)用于線性變換函數(shù)的權(quán)重,這就是名稱的來源。他們不處理權(quán)重向量,也不處理特征數(shù)據(jù)向量,就改了一下線性變換的函數(shù)其中是和的夾角。 深度神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練之難眾所周知,其中一個重要的現(xiàn)象就是 Internal Covariate Shift. Batch Normalization 大法自 2015 年由Googl...

    mdluo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<