網(wǎng)絡(luò)優(yōu)化與正則化

花書上關(guān)于網(wǎng)絡(luò)優(yōu)化的筆記記錄于http://www.reibang.com/p/06bb6d6a5227

花書上關(guān)于網(wǎng)絡(luò)正則化的筆記記錄于http://www.reibang.com/p/b88df5ccd5c3

雖然神經(jīng)網(wǎng)絡(luò)具有非常強(qiáng)的表達(dá)能力,但是當(dāng)應(yīng)用神經(jīng)網(wǎng)絡(luò)模型到機(jī)器學(xué)習(xí)時(shí)依然存在一些難點(diǎn)扛吞。主要分為兩大類:

  • 優(yōu)化問題:神經(jīng)網(wǎng)絡(luò)模型是一個(gè)非凸函數(shù)麻诀,再加上在深度網(wǎng)絡(luò)中的梯度消失問題比原,很難進(jìn)行優(yōu)化;另外,深層神經(jīng)網(wǎng)絡(luò)模型一般參數(shù)比較多禾乘,訓(xùn)練數(shù)據(jù)也比較大韭邓,會(huì)導(dǎo)致訓(xùn)練的效率比較低措近。

  • 泛化問題:因?yàn)樯窠?jīng)網(wǎng)絡(luò)的擬合能力強(qiáng),反而容易在訓(xùn)練集上產(chǎn)生過擬合女淑。因此瞭郑,在訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)時(shí),同時(shí)也需要通過一定的正則化方法來改進(jìn)網(wǎng)絡(luò)的泛化能力鸭你。

1屈张、網(wǎng)絡(luò)優(yōu)化難點(diǎn)

  • 網(wǎng)絡(luò)結(jié)構(gòu)多樣性:神經(jīng)網(wǎng)絡(luò)的種類非常多,比如卷積網(wǎng)絡(luò)袱巨、循環(huán)網(wǎng)絡(luò)等袜茧,其結(jié)構(gòu)也非常不同。有些比較深瓣窄,有些比較寬笛厦。不同參數(shù)在網(wǎng)絡(luò)中的作用也有很大的差異,比如連接權(quán)重和偏置的不同俺夕,以及循環(huán)網(wǎng)絡(luò)中循環(huán)連接上的權(quán)重和其它權(quán)重的不同裳凸。由于網(wǎng)絡(luò)結(jié)構(gòu)的多樣性,我們很難找到一種通用的優(yōu)化方法劝贸。不同的優(yōu)化方法在不同網(wǎng)絡(luò)結(jié)構(gòu)上的差異也都比較大姨谷。此外,網(wǎng)絡(luò)的超參數(shù)一般也比較多映九,這也給優(yōu)化帶來很大的挑戰(zhàn)梦湘。

  • 高維變量的非凸優(yōu)化:低維空間的非凸優(yōu)化問題主要是存在一些局部最優(yōu)點(diǎn)。基于梯度下降的優(yōu)化方法會(huì)陷入局部最優(yōu)點(diǎn)捌议,因此低維空間非凸優(yōu)化的主要難點(diǎn)是如何選擇初始化參數(shù)和逃離局部最優(yōu)點(diǎn)哼拔。深層神經(jīng)網(wǎng)絡(luò)的參數(shù)非常多,其參數(shù)學(xué)習(xí)是在非常高維空間中的非凸優(yōu)化問題瓣颅,其挑戰(zhàn)和在低維空間的非凸優(yōu)化問題有所不同倦逐。

在高維空間中,非凸優(yōu)化的難點(diǎn)并不在于如何逃離局部最優(yōu)點(diǎn)宫补,而是如何逃離鞍點(diǎn)檬姥。因?yàn)樵诟呔S空間中,局部最優(yōu)點(diǎn)要求在每一維度上都是最低點(diǎn)粉怕,這種概率非常低健民。也就是說高維空間中,大部分梯度為0 的點(diǎn)都是鞍點(diǎn)贫贝”蹋基于梯度下降的優(yōu)化方法會(huì)在鞍點(diǎn)附近接近于停滯,同樣很難從這些鞍點(diǎn)中逃離平酿。

此外凤优,深層神經(jīng)網(wǎng)絡(luò)的參數(shù)非常多,并且有一定的冗余性蜈彼,這導(dǎo)致每單個(gè)參數(shù)對(duì)最終損失的影響都比較小筑辨,這導(dǎo)致了損失函數(shù)在局部最優(yōu)點(diǎn)附近是一個(gè)平坦的區(qū)域,稱為平坦最小值(Flat Minima)幸逆。在非常大的神經(jīng)網(wǎng)絡(luò)中棍辕,大部分的局部最小值是相等的。雖然神經(jīng)網(wǎng)絡(luò)有一定概率收斂于比較差的局部最小值还绘,但隨著網(wǎng)絡(luò)規(guī)模增加楚昭,網(wǎng)絡(luò)陷入局部最小值的概率大大降低。

2拍顷、優(yōu)化算法

目前抚太,深層神經(jīng)網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)主要是通過梯度下降方法來尋找一組可以最小化結(jié)構(gòu)風(fēng)險(xiǎn)的參數(shù)。在具體實(shí)現(xiàn)中昔案,梯度下降法可以分為:批量梯度下降尿贫、隨機(jī)梯度下降以及小批量梯度下降三種形式。根據(jù)不同的數(shù)據(jù)量和參數(shù)量踏揣,可以選擇一種具體的實(shí)現(xiàn)形式庆亡。除了在收斂效果和效率上的差異,這三種方法都存在一些共同的問題捞稿,比如1)如何初始化參數(shù)又谋;2)預(yù)處理數(shù)據(jù)拼缝;3)如何選擇合適的學(xué)習(xí)率,避免陷入局部最優(yōu)等彰亥。

2.1咧七、小批量梯度下降

在訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)時(shí),訓(xùn)練數(shù)據(jù)的規(guī)模比較大剩愧。如果在梯度下降時(shí)猪叙,每次迭代都要計(jì)算整個(gè)訓(xùn)練數(shù)據(jù)上的梯度需要比較多的計(jì)算資源娇斩。此外仁卷,大規(guī)模訓(xùn)練集中的數(shù)據(jù)通常也會(huì)非常冗余,也沒有必要在整個(gè)訓(xùn)練集上計(jì)算梯度犬第。因此锦积,在訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)時(shí),經(jīng)常使用小批量梯度下降算法歉嗓。

f(\mathbf{x} ; \theta)表示一個(gè)深層神經(jīng)網(wǎng)絡(luò)丰介,θ為網(wǎng)絡(luò)參數(shù),使用小批量梯度下降進(jìn)行優(yōu)化時(shí)鉴分,每次選取K個(gè)訓(xùn)練樣本\mathcal{I}_{t}=\left\{\left(\mathbf{x}^{(k)}, \mathbf{y}^{(k)}\right)\right\}_{k=1}^{K}哮幢。第t次迭代(Iteration)時(shí)損失函數(shù)關(guān)于參數(shù)θ的偏導(dǎo)數(shù)為:

\mathfrak{g}_{t}(\theta)=\frac{1}{K} \sum_{\left(\mathrm{x}^{(k)}, \mathrm{y}^{(k)}\right) \in \mathcal{I}_{t}} \frac{\partial \mathcal{L}\left(\mathbf{y}^{(k)}, f\left(\mathrm{x}^{(k)} ; \theta\right)\right)}{\partial \theta}

其中\mathcal{L}(\cdot)為可微分的損失函數(shù),K稱為批量大兄菊洹(Batch Size)橙垢。

t次更新的梯度g_t定義為:

\mathbf{g}_{t} \triangleq \mathfrak{g}_{t}\left(\theta_{t-1}\right)

使用梯度下降來更新參數(shù):

\theta_{t} \leftarrow \theta_{t-1}-\alpha \mathbf{g}_{t}

其中α > 0為學(xué)習(xí)率。

每次迭代時(shí)參數(shù)更新的差值Δθ_t定義為:

\Delta \theta_{t} \triangleq \theta_{t}-\theta_{t-1}

Δθ_t和梯度g_t并不需要完全一致伦糯。Δθ_t為每次迭代時(shí)參數(shù)的實(shí)際更新方向柜某,即θ_t = θ_{t?1} + Δθ_t。在標(biāo)準(zhǔn)的小批量梯度下降中敛纲,Δθ_t = ?αg_t喂击。

批量大小對(duì)隨機(jī)梯度下降的影響:在小批量梯度下降中,批量大杏傧琛(Batch Size)對(duì)網(wǎng)絡(luò)優(yōu)化的影響也非常大翰绊。一般而言,批量大小不影響隨機(jī)梯度的期望旁壮,但是會(huì)影響隨機(jī)梯度的方差监嗜。批量大小越大,隨機(jī)梯度的方差越小寡具,引入的噪聲也越小秤茅,訓(xùn)練也越穩(wěn)定,因此可以設(shè)置較大的學(xué)習(xí)率童叠。而批量大小較小時(shí)框喳,需要設(shè)置較小的學(xué)習(xí)率课幕,否則模型會(huì)不收斂。學(xué)習(xí)率通常要隨著批量大小的增大而相應(yīng)地增大五垮。一個(gè)簡(jiǎn)單有效的方法是線性縮放規(guī)則(Linear Scaling Rule):當(dāng)批量大小增加m倍時(shí)乍惊,學(xué)習(xí)率也增加m倍。線性縮放規(guī)則往往在批量大小比較小時(shí)適用放仗,當(dāng)批量大小非常大時(shí)润绎,線性縮放會(huì)使得訓(xùn)練不穩(wěn)定。

下圖給出了從Epoch(回合)和Iteration(單次更新)的角度诞挨,批量大小對(duì)損失下降的影響莉撇。每一次小批量更新為一次Iteration,所有訓(xùn)練集的樣本更新一遍為一次Epoch惶傻,兩者的關(guān)系為1個(gè)Epoch 等于( 訓(xùn)練樣本的數(shù)量N)/(批量大小K ) 次Iterations棍郎。

為了更有效地進(jìn)行訓(xùn)練深層神經(jīng)網(wǎng)絡(luò),在標(biāo)準(zhǔn)的小批量梯度下降方法的基礎(chǔ)上银室,也經(jīng)常使用一些改進(jìn)方法以加快優(yōu)化速度涂佃。常見的改進(jìn)方法主要從以下兩個(gè)方面進(jìn)行改進(jìn):學(xué)習(xí)率調(diào)整和梯度方向優(yōu)化。這些改進(jìn)的優(yōu)化方法也同樣可以應(yīng)用在批量或隨機(jī)梯度下降方法上蜈敢。

2.2辜荠、學(xué)習(xí)率調(diào)整

學(xué)習(xí)率是神經(jīng)網(wǎng)絡(luò)優(yōu)化時(shí)的重要超參數(shù)。在梯度下降方法中抓狭,學(xué)習(xí)率α的取值非常關(guān)鍵伯病,如果過大就不會(huì)收斂,如果過小則收斂速度太慢辐宾。常用的學(xué)習(xí)率調(diào)整方法包括學(xué)習(xí)率衰減率狱从、學(xué)習(xí)率預(yù)熱、周期學(xué)習(xí)率以及一些自適應(yīng)地調(diào)整學(xué)習(xí)率的方法叠纹。

2.2.1季研、學(xué)習(xí)率衰減

經(jīng)驗(yàn)上看,學(xué)習(xí)率在一開始要保持大些來保證收斂速度誉察,收斂到最優(yōu)點(diǎn)附近時(shí)要小些以避免來回震蕩与涡。比較簡(jiǎn)單的學(xué)習(xí)率調(diào)整可以通過學(xué)習(xí)率衰減(Learning Rate Decay)的方式來實(shí)現(xiàn),也稱為學(xué)習(xí)率退火(Learning Rate Annealing)持偏。

假設(shè)初始化學(xué)習(xí)率為α_0驼卖,在第t次迭代時(shí)的學(xué)習(xí)率α_t。常用的衰減方式為可以設(shè)置為按迭代次數(shù)進(jìn)行衰減鸿秆。常見的衰減方法有以下幾種:

  • 分段常數(shù)衰減(Piecewise Constant Decay):即每經(jīng)過T_{1}, T_{2}, \cdots, T_{m}次迭代將學(xué)習(xí)率衰減為原來的\beta_{1}, \beta_{2}, \cdots, \beta_{m}倍酌畜,其中T_m\beta_m<1為根據(jù)經(jīng)驗(yàn)設(shè)置的超參數(shù)。

  • 逆時(shí)衰減(Inverse Time Decay)

\alpha_{t}=\alpha_{0} \frac{1}{1+\beta \times t}

其中β為衰減率卿叽。

  • 指數(shù)衰減(Exponential Decay)

\alpha_{t}=\alpha_{0} \beta^{t}

其中β < 1為衰減率桥胞。

  • 自然指數(shù)衰減(Natural Exponential Decay)

\alpha_{t}=\alpha_{0} e^{-\beta t}

其中β為衰減率恳守。

  • 余弦衰減(Cosine Decay)

\alpha_{t}=\frac{1}{2} \alpha_{0}\left(1+\cos \left(\frac{t \pi}{T}\right)\right)

其中T為總的迭代次數(shù)。

2.2.2贩虾、學(xué)習(xí)率預(yù)熱

在小批量梯度下降方法中催烘,當(dāng)批量大小的設(shè)置比較大時(shí),通常需要比較大的學(xué)習(xí)率缎罢。但在剛開始訓(xùn)練時(shí)伊群,由于參數(shù)是隨機(jī)初始化的,梯度往往也比較大策精,再加上比較大的初始學(xué)習(xí)率舰始,會(huì)使得訓(xùn)練不穩(wěn)定。

為提高訓(xùn)練穩(wěn)定性蛮寂,我們可以在最初幾輪迭代時(shí)采用較小的學(xué)習(xí)率蔽午,等梯度下降到一定程度后再恢復(fù)到初始學(xué)習(xí)率易茬,這種方法稱為學(xué)習(xí)率預(yù)熱(Learning Rate Warmup)酬蹋。

一個(gè)常用的學(xué)習(xí)率預(yù)熱方法是逐漸預(yù)熱(Gradual Warmup)。假設(shè)預(yù)熱的迭代次數(shù)為T^′抽莱,初始學(xué)習(xí)率為α_0范抓,在預(yù)熱過程中,每次更新的學(xué)習(xí)率為:

\alpha_{t}^{\prime}=\frac{t}{T^{\prime}} \alpha_{0}, \quad 1 \leq t \leq T^{\prime}

當(dāng)預(yù)熱過程結(jié)束食铐,再選擇一種學(xué)習(xí)率衰減方法來逐漸降低學(xué)習(xí)率匕垫。

2.2.3、周期性學(xué)習(xí)率調(diào)整

為了使得梯度下降方法能夠逃離局部最小值或鞍點(diǎn)虐呻,一種經(jīng)驗(yàn)性的方式是在訓(xùn)練過程中周期性地增大學(xué)習(xí)率象泵。雖然增加學(xué)習(xí)率可能短期內(nèi)有損網(wǎng)絡(luò)的收斂穩(wěn)定性,但從長(zhǎng)期來看有助于找到更好的局部最優(yōu)解斟叼。一般而言偶惠,當(dāng)一個(gè)模型收斂一個(gè)平坦(Flat)的局部最小值時(shí)践美,其魯棒性會(huì)更好献宫,即微小的參數(shù)變動(dòng)不會(huì)劇烈影響模型能力;而當(dāng)模型收斂到一個(gè)尖銳(Sharp)的局部最小值時(shí)盯另,其魯棒性也會(huì)比較差谢床。具備良好泛化能力的模型通常應(yīng)該是魯棒的兄一,因此理想的局部最小值應(yīng)該是平坦的。兩種常用的周期性調(diào)整學(xué)習(xí)的方法為:循環(huán)學(xué)習(xí)率帶熱重啟的隨機(jī)梯度下降识腿。

  • 循環(huán)學(xué)習(xí)率:讓學(xué)習(xí)率在一個(gè)區(qū)間內(nèi)周期性地增大和縮小出革。通常可以使用線性縮放來調(diào)整學(xué)習(xí)率渡讼,稱為三角循環(huán)學(xué)習(xí)率(Triangular Cyclic Learning Rate)骂束。假設(shè)每個(gè)循環(huán)周期的長(zhǎng)度相等都為2ΔT费薄,其中前ΔT步為學(xué)習(xí)率線性增大階段,后ΔT步為學(xué)習(xí)率線性縮小階段栖雾。在第t次迭代時(shí)楞抡,其所在的循環(huán)周期數(shù)m為:

m=\left\lfloor 1+\frac{t}{2 \Delta T}\right\rfloor

t次迭代的學(xué)習(xí)率為:

\alpha_{t}=\alpha_{\min }^{m}+\left(\alpha_{\max }^{m}-\alpha_{\min }^{m}\right)(\max (0,1-b))

其中\alpha_{m a x}^{m}, \alpha_{m i n}^{m}分別為第m個(gè)周期中學(xué)習(xí)率的上界和下界,可以隨著m的增大而逐漸降低析藕;b ∈ [0, 1]的計(jì)算為:

b=\left|\frac{t}{\Delta T}-2 m+1\right|

  • 帶熱重啟的隨機(jī)梯度下降:用熱重啟方式來替代學(xué)習(xí)率衰減的方法召廷。學(xué)習(xí)率每間隔一定周期后重新初始化為某個(gè)預(yù)先設(shè)定值,然后逐漸衰減账胧。每次重啟后模型參數(shù)不是從頭開始優(yōu)化竞慢,而是從重啟前的參數(shù)基礎(chǔ)上繼續(xù)優(yōu)化。

假設(shè)在梯度下降過程中重啟M次治泥,第m次重啟在上次重啟開始第T_m個(gè)回合后進(jìn)行筹煮,T_m稱為重啟周期。在第m次重啟之前居夹,采用余弦衰減來降低學(xué)習(xí)率败潦。第t次迭代的學(xué)習(xí)率為:

\alpha_{t}=\alpha_{\min }^{m}+\frac{1}{2}\left(\alpha_{\max }^{m}-\alpha_{\min }^{m}\right)\left(1+\cos \left(\frac{T_{c u r}}{T_{m}} \pi\right)\right)

其中\alpha_{m a x}^{m}, \alpha_{m i n}^{m}分別為第m個(gè)周期中學(xué)習(xí)率的上界和下界,可以隨著m的增大而逐漸降低准脂;T_{cur}為從上次重啟之后的回合(Epoch)數(shù)劫扒。T_{cur}可以取小數(shù),這樣可以在一個(gè)回合內(nèi)部進(jìn)行學(xué)習(xí)率衰減狸膏。

2.2.4沟饥、AdaGrad算法

在標(biāo)準(zhǔn)的梯度下降方法中,每個(gè)參數(shù)在每次迭代時(shí)都使用相同的學(xué)習(xí)率湾戳。由于每個(gè)參數(shù)的維度上收斂速度都不相同贤旷,因此根據(jù)不同參數(shù)的收斂情況分別設(shè)置學(xué)習(xí)率。

AdaGrad(Adaptive Gradient)算法是借鑒?2正則化的思想砾脑,每次迭代時(shí)自適應(yīng)地調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率幼驶。在第t迭代時(shí),先計(jì)算每個(gè)參數(shù)梯度平方的累計(jì)值:

G_{t}=\sum_{\tau=1}^{t} \mathrm{g}_{\tau} \odot \mathrm{g}_{\tau}

其中⊙為按元素乘積拦止,\mathbf{g}_{\tau} \in \mathbb{R}^{|\theta|}是第τ次迭代時(shí)的梯度县遣。

AdaGrad算法的參數(shù)更新差值為:

\Delta \theta_{t}=-\frac{\alpha}{\sqrt{G_{t}+\epsilon}} \odot \mathrm{g}_{t}

其中α是初始的學(xué)習(xí)率,?是為了保持?jǐn)?shù)值穩(wěn)定性而設(shè)置的非常小的常數(shù)汹族,一般取值范圍為e^{?7}e^{?10}萧求。此外,這里的開平方顶瞒、除夸政、加運(yùn)算都是按元素進(jìn)行的操作。

在Adagrad算法中榴徐,如果某個(gè)參數(shù)的偏導(dǎo)數(shù)累積比較大守问,其學(xué)習(xí)率相對(duì)較性裙椤;相反耗帕,如果其偏導(dǎo)數(shù)累積較小穆端,其學(xué)習(xí)率相對(duì)較大。但整體是隨著迭代次數(shù)的增加仿便,學(xué)習(xí)率逐漸縮小体啰。

Adagrad算法的缺點(diǎn)是在經(jīng)過一定次數(shù)的迭代依然沒有找到最優(yōu)點(diǎn)時(shí),由于這時(shí)的學(xué)習(xí)率已經(jīng)非常小嗽仪,很難再繼續(xù)找到最優(yōu)點(diǎn)荒勇。

2.2.5、RMSprop算法

RMSprop算法是Geoff Hinton提出的一種自適應(yīng)學(xué)習(xí)率的方法闻坚,可以在有些情況下避免AdaGrad算法中學(xué)習(xí)率不斷單調(diào)下降以至于過早衰減的缺點(diǎn)沽翔。

RMSprop算法首先計(jì)算每次迭代梯度g_t平方的指數(shù)衰減移動(dòng)平均:

\begin{aligned} G_{t} &=\beta G_{t-1}+(1-\beta) \mathrm{g}_{t} \odot \mathrm{g}_{t} \\ &=(1-\beta) \sum_{\tau=1}^{t} \beta^{t-\tau} \mathrm{g}_{\tau} \odot \mathrm{g}_{\tau} \end{aligned}

其中β為衰減率,一般取值為0.9窿凤。

RMSprop算法的參數(shù)更新差值為:

\Delta \theta_{t}=-\frac{\alpha}{\sqrt{G_{t}+\epsilon}} \odot \mathbf{g}_{t}

其中α是初始的學(xué)習(xí)率仅偎。

從上式可以看出,RMSProp 算法和Adagrad算法的區(qū)別在于G_t的計(jì)算由累積方式變成了指數(shù)衰減移動(dòng)平均卷玉。在迭代過程中哨颂,每個(gè)參數(shù)的學(xué)習(xí)率并不是呈衰減趨勢(shì),既可以變小也可以變大相种。

2.2.6、AdaDelta 算法

和RMSprop算法類似品姓,AdaDelta算法通過梯度平方的指數(shù)衰減移動(dòng)平均來調(diào)整學(xué)習(xí)率寝并。此外,AdaDelta 算法還引入了每次參數(shù)更新差Δθ的平方的指數(shù)衰減權(quán)移動(dòng)平均腹备。

t次迭代時(shí)衬潦,每次參數(shù)更新差Δθ_τ , 1 ≤ τ ≤ t ? 1的平方的指數(shù)衰減權(quán)移動(dòng)平均為:

\Delta X_{t-1}^{2}=\beta_{1} \Delta X_{t-2}^{2}+\left(1-\beta_{1}\right) \Delta \theta_{t-1} \odot \Delta \theta_{t-1}

其中β_1為衰減率。此時(shí)Δθ_t還未知植酥,因此只能計(jì)算到ΔX_{t?1}镀岛。

AdaDelta算法的參數(shù)更新差值為:

\Delta \theta_{t}=-\frac{\sqrt{\Delta X_{t-1}^{2}+\epsilon}}{\sqrt{G_{t}+\epsilon}} \mathbf{g}_{t}

其中G_t的計(jì)算方式和RMSprop算法一樣,ΔX^2_{t?1}為參數(shù)更新差Δθ的指數(shù)衰減權(quán)移動(dòng)平均友驮,這在一定程度上平抑了學(xué)習(xí)率的波動(dòng)漂羊。

2.3、梯度方向優(yōu)化

除了調(diào)整學(xué)習(xí)率之外卸留,還可以通過使用最近一段時(shí)間內(nèi)的平均梯度來代替當(dāng)前時(shí)刻的梯度來作為參數(shù)更新的方向走越。在小批量梯度下降中,如果每次選取樣本數(shù)量比較小耻瑟,損失會(huì)呈現(xiàn)震蕩的方式下降旨指。有效地緩解梯度下降中的震蕩的方式是通過用梯度的移動(dòng)平均來代替每次的實(shí)際梯度赏酥,并提高優(yōu)化速度,這就是動(dòng)量法谆构。

2.3.1裸扶、動(dòng)量法

動(dòng)量是模擬物理中的概念。一般而言搬素,一個(gè)物體的動(dòng)量指的是這個(gè)物體在它運(yùn)動(dòng)方向上保持運(yùn)動(dòng)的趨勢(shì)姓言,是物體的質(zhì)量和速度的乘積

動(dòng)量法(Momentum Method)是用之前積累動(dòng)量來替代真正的梯度蔗蹋。每次迭代的梯度可以看作是加速度何荚。

在第t次迭代時(shí),計(jì)算負(fù)梯度的“加權(quán)移動(dòng)平均”作為參數(shù)的更新方向:

\Delta \theta_{t}=\rho \Delta \theta_{t-1}-\alpha \mathbf{g}_{t}=-\alpha \sum_{\tau=1}^{t} \rho^{t-\tau} \mathbf{g}_{\tau}

其中ρ為動(dòng)量因子猪杭,通常設(shè)為0.9餐塘,α為學(xué)習(xí)率。

一般而言皂吮,在迭代初期戒傻,梯度方法都比較一致,動(dòng)量法會(huì)起到加速作用蜂筹,可以更快地到達(dá)最優(yōu)點(diǎn)需纳。在迭代后期,梯度方法會(huì)取決不一致艺挪,在收斂值附近震蕩不翩,動(dòng)量法會(huì)起到減速作用,增加穩(wěn)定性麻裳。

2.3.2口蝠、Nesterov加速梯度

Nesterov加速梯度(Nesterov Accelerated Gradient,NAG)津坑,也叫Nesterov動(dòng)量法(Nesterov Momentum)是一種對(duì)動(dòng)量法的改進(jìn)妙蔗。

在動(dòng)量法中,實(shí)際的參數(shù)更新方向Δθ_t為上一步的參數(shù)更新方向Δθ_{t?1}和當(dāng)前梯度?g_t的疊加疆瑰,可以被拆分為兩步進(jìn)行:

\begin{aligned} \hat{\theta} &=\theta_{t-1}+\rho \Delta \theta_{t-1} \\ \theta_{t} &=\hat{\theta}-\alpha \mathbf{g}_{t}\\ \end{aligned}

其中梯度g_t為點(diǎn)θ_{t?1}上的梯度眉反,因此在第二步更新中有些不太合理。更合理的更新方向應(yīng)該為\hat{\theta}上的梯度:

\Delta \theta_{t}=\rho \Delta \theta_{t-1}-\alpha \mathfrak{g}_{t}\left(\theta_{t-1}+\rho \Delta \theta_{t-1}\right)

2.3.3穆役、Adam算法

自適應(yīng)動(dòng)量估計(jì)(Adaptive Moment Estimation寸五,Adam)算法可以看作是動(dòng)量法和RMSprop的結(jié)合,不但使用動(dòng)量作為參數(shù)更新方向孵睬,而且可以自適應(yīng)調(diào)整學(xué)習(xí)率播歼。

Adam算法一方面計(jì)算梯度平方g^2_t的指數(shù)加權(quán)平均(和RMSprop類似),另一方面計(jì)算梯度g_t的指數(shù)加權(quán)平均(和動(dòng)量法類似)。

\begin{array}{c}{M_{t}=\beta_{1} M_{t-1}+\left(1-\beta_{1}\right) \mathrm{g}_{t}} \\ {G_{t}=\beta_{2} G_{t-1}+\left(1-\beta_{2}\right) \mathrm{g}_{t} \odot \mathrm{g}_{t}}\end{array}

其中β_1β_2分別為兩個(gè)移動(dòng)平均的衰減率秘狞,通常取值為β_1 = 0.9, β_2 = 0.99叭莫。

M_t可以看作是梯度的均值(一階矩),G_t可以看作是梯度的未減去均值的方差(二階矩)烁试。

假設(shè)M_0 = 0,G_0 = 0雇初,那么在迭代初期M_tG_t的值會(huì)比真實(shí)的均值和方差要小。特別是當(dāng)β_1β_2都接近于1時(shí)减响,偏差會(huì)很大靖诗。因此,需要對(duì)偏差進(jìn)行修正支示。

\begin{aligned} \hat{M}_{t} &=\frac{M_{t}}{1-\beta_{1}^{t}} \\ \hat{G}_{t} &=\frac{G_{t}}{1-\beta_{2}^{t}} \end{aligned}

Adam算法的參數(shù)更新差值為:

\Delta \theta_{t}=-\frac{\alpha}{\sqrt{\hat{G}_{t}+\epsilon}} \hat{M}_{t}

其中學(xué)習(xí)率α通常設(shè)為0.001刊橘,并且也可以進(jìn)行衰減,比如α_t = \frac{\alpha_{0}}{\sqrt{t}}颂鸿。

Adam算法是RMSProp 與動(dòng)量法的結(jié)合促绵,因此一種自然的Adam的改進(jìn)方法是引入Nesterov加速梯度,稱為Nadam算法嘴纺。

2.3.4败晴、梯度截?cái)?/h3>

在深層神經(jīng)網(wǎng)絡(luò)或循環(huán)神經(jīng)網(wǎng)絡(luò)中,除了梯度消失之外栽渴,梯度爆炸是影響學(xué)習(xí)效率的主要因素尖坤。在基于梯度下降的優(yōu)化過程中,如果梯度突然增大闲擦,用大的梯度進(jìn)行更新參數(shù)慢味,反而會(huì)導(dǎo)致其遠(yuǎn)離最優(yōu)點(diǎn)。為了避免這種情況佛致,當(dāng)梯度的模大于一定閾值時(shí)贮缕,就對(duì)梯度進(jìn)行截?cái)啵Q為梯度截?cái)啵╣radient clipping)俺榆。

一般截?cái)嗟姆绞接幸韵聨追N:

按值截?cái)?/strong>:給定一個(gè)區(qū)間[a, b],如果一個(gè)參數(shù)的梯度小于a時(shí)装哆,就將其設(shè)為a罐脊;如果大于b時(shí),就將其設(shè)為b

\mathrm{g}_{t}=\max \left(\min \left(\mathrm{g}_{t}, b\right), a\right)

按模截?cái)?/strong>:按模截?cái)嗍菍⑻荻鹊哪=財(cái)嗟揭粋€(gè)給定的截?cái)嚅撝?img class="math-inline" src="https://math.jianshu.com/math?formula=b" alt="b" mathimg="1">蜕琴,如果\left\|\mathrm{g}_{t}\right\|^{2} \leq b萍桌,保持g_t不變,否則令:

\mathbf{g}_{t}=\frac凌简{\left\|\mathbf{g}_{t}\right\|} \mathbf{g}_{t}

截?cái)嚅撝?img class="math-inline" src="https://math.jianshu.com/math?formula=b" alt="b" mathimg="1">是一個(gè)超參數(shù)上炎,也可以根據(jù)一段時(shí)間內(nèi)的平均梯度來自動(dòng)調(diào)整。實(shí)驗(yàn)中發(fā)現(xiàn),訓(xùn)練過程對(duì)閾值b并不十分敏感藕施,通常一個(gè)小的閾值就可以得到很好的結(jié)果寇损。

2.4、小結(jié)

在MNIST數(shù)據(jù)集上收斂性的比較(學(xué)習(xí)率為0.001裳食,批量大小為128)

3矛市、參數(shù)初始化

梯度下降法需要在開始訓(xùn)練時(shí)給每一個(gè)參數(shù)賦一個(gè)初始值。這個(gè)初始值的選取十分關(guān)鍵诲祸。在感知器和logistic 回歸的訓(xùn)練中浊吏,我們一般將參數(shù)全部初始化為0。但是這在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中會(huì)存在一些問題救氯。因?yàn)?strong>如果參數(shù)都為0找田,在第一遍前向計(jì)算時(shí),所有的隱層神經(jīng)元的激活值都相同着憨。這樣會(huì)導(dǎo)致深層神經(jīng)元沒有區(qū)分性墩衙。這種現(xiàn)象也稱為對(duì)稱權(quán)重現(xiàn)象。為了打破這個(gè)平衡享扔,比較好的方式是對(duì)每個(gè)參數(shù)都隨機(jī)初始化底桂,這樣使得不同神經(jīng)元之間的區(qū)分性更好。

隨機(jī)初始化參數(shù)的一個(gè)問題是如何選取隨機(jī)初始化的區(qū)間惧眠。如果參數(shù)太小籽懦,一是會(huì)導(dǎo)致神經(jīng)元的輸入過小,經(jīng)過多層之后信號(hào)就慢慢消失了氛魁;二是還會(huì)使得Sigmoid型激活函數(shù)丟失非線性的能力暮顺。以Logistic函數(shù)為例,在0附近基本上是近似線性的秀存。這樣多層神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì)也就不存在了捶码。如果參數(shù)取得太大,會(huì)導(dǎo)致輸入狀態(tài)過大或链。對(duì)于Sigmoid型激活函數(shù)來說惫恼,激活值變得飽和,從而導(dǎo)致梯度接近于0澳盐。

一般而言祈纯,參數(shù)初始化的區(qū)間應(yīng)該根據(jù)神經(jīng)元的性質(zhì)進(jìn)行差異化的設(shè)置。如果一個(gè)神經(jīng)元的輸入連接很多叼耙,它的每個(gè)輸入連接上的權(quán)重就應(yīng)該小一些腕窥,以避免神經(jīng)元的輸出過大(當(dāng)激活函數(shù)為ReLU時(shí))或過飽和(當(dāng)激活函數(shù)為Sigmoid 函數(shù)時(shí))

經(jīng)常使用的初始化方法有以下兩種:

高斯分布初始化:參數(shù)從一個(gè)固定均值(比如0)和固定方差(比如0.01)的高斯分布進(jìn)行隨機(jī)初始化。

均勻分布初始化:在一個(gè)給定的區(qū)間[?r, r]內(nèi)采用均勻分布來初始化參數(shù)。超參數(shù)r的設(shè)置可以按神經(jīng)元的連接數(shù)量進(jìn)行自適應(yīng)的調(diào)整。

初始化一個(gè)深層網(wǎng)絡(luò)時(shí)嬉荆,一個(gè)比較好的初始化策略是保持每個(gè)神經(jīng)元輸入和輸出的方差一致入蛆。這里介紹兩種參數(shù)初始化的方法响蓉。

3.1、Xavier初始化

當(dāng)網(wǎng)絡(luò)當(dāng)使用Losgistic激活函數(shù)時(shí)安寺,Xavier初始化可以根據(jù)每層的神經(jīng)元數(shù)量來自動(dòng)計(jì)算初始化參數(shù)的方差厕妖。

假設(shè)第l層的一個(gè)隱藏層神經(jīng)元z^l,其接受前一層的n^{l?1}個(gè)神經(jīng)元的輸出a_{i}^{(l-1)}, i \in\left[1, n^{(l-1)}\right]

z^{l}=\sum_{i=1}^{n^{(l-1)}} w_{i}^{l} a_{i}^{(l-1)}

為了避免初始化參數(shù)使得激活值變得飽和挑庶,我們需要盡量使得z^l處于激活函數(shù)的線性區(qū)間言秸,也就是其絕對(duì)值比較小的值。這時(shí)該神經(jīng)元的激活值為a^l =f(z^l) ≈ z^l迎捺。

假設(shè)w_{i}^{l}a_{i}^{(l-1)}的均值都為0举畸,并且相互獨(dú)立,則a^l的均值為:

E[a^l]=E[\sum_{i=1}^{n^{(l-1)}} w_{i}^{l} a_{i}^{(l-1)}]=\sum_{i=1}^{n^{(l-1)}}E[w_i]E[a_i^{(l-1)}]=0

a^l的方差為:

\begin{aligned} var[a^l]&=var[\sum_{i=1}^{n^{(l-1)}} w_{i}^{l} a_{i}^{(l-1)}]\\ &=\sum_{i=1}^{n^{(l-1)}}var[w_i^l] var[a_i^{(l-1)}]\\ &=n^{(l-1)}var[w_i^l] var[a_i^{(l-1)}] \end{aligned}

我們希望盡可能保持每個(gè)神經(jīng)元的輸入和輸出的方差一致凳枝。這樣n^{(l?1)} var[w^l_i]設(shè)為1 比較合理抄沮,即:

var[w_i^l]=\frac{1}{n^{(l?1)}}

同理,為了使得在反向傳播中岖瑰,誤差信號(hào)也不被放大或縮小叛买,需要將w^l_i的方差保持為:

var[w_i^l]=\frac{1}{n^{(l)}}

作為折中,同時(shí)考慮信號(hào)在前向和反向傳播中都不被放大或縮小蹋订,可以設(shè)置:

var[w_i^l]=\frac{2}{n^{(l)}+n^{(l?1)}}

在計(jì)算出參數(shù)的理想方差后率挣,可以通過高斯分布或均勻分布來隨機(jī)初始化參數(shù)。

  • 高斯分布初始化:連接權(quán)重w^l_i可以按N(0,\sqrt{\frac{2}{n^{(l)}+n^{(l?1)}}})的高斯分布進(jìn)行初始化露戒。

  • 均勻分布初始化:假設(shè)隨機(jī)變量x在區(qū)間[a, b]內(nèi)均勻分布椒功,則其方差為:

var[x]=\frac{(b-a)^2}{12}

若采用區(qū)間為[?r, r]的均分分布初始化w^l_i,并滿足var[w_i^l]=\frac{2}{n^{(l)}+n^{(l?1)}}智什,則:

var[w_i^l]=\frac{(r-(-r))^2}{12}=\frac{2}{n^{(l)}+n^{(l?1)}} \Longrightarrow r=\sqrt{\frac{6}{n^{(l)}+n^{(l?1)}}}

3.2动漾、He初始化

當(dāng)?shù)?img class="math-inline" src="https://math.jianshu.com/math?formula=l" alt="l" mathimg="1">層神經(jīng)元使用ReLU激活函數(shù)時(shí),通常有一半的神經(jīng)元輸出為0荠锭,因此其分布的方差也近似為使用Logistic作為激活函數(shù)時(shí)的一半(一半是指var[a^l]var[a^{(l-1)}]的一半)旱眯。這樣,只考慮前向傳播時(shí)证九,參數(shù)w^l_i的理想方差為:

var[w_i^l]=\frac{2}{n^{(l?1)}}

此時(shí)可以通過高斯分布或均勻分布來隨機(jī)初始化參數(shù)键思。

  • 高斯分布初始化:連接權(quán)重w^l_i可以按N(0,\sqrt{\frac{2}{n^{(l?1)}}})的高斯分布進(jìn)行初始化。

  • 均勻分布初始化:若采用區(qū)間為[?r, r]的均分分布初始化w^l_i甫贯,則:

r=\sqrt{\frac{6}{n^{(l?1)}}}

這種初始化方法稱為He初始化

4看蚜、數(shù)據(jù)預(yù)處理

一般而言叫搁,樣本的原始特征中的每一維特征由于來源以及度量單位不同,其特征取值的分布范圍往往差異很大。當(dāng)我們計(jì)算不同樣本之間的歐氏距離時(shí)渴逻,取值范圍大的特征會(huì)起到主導(dǎo)作用疾党。這樣,對(duì)于基于相似度比較的機(jī)器學(xué)習(xí)方法(比如最近鄰分類器)惨奕,必須先對(duì)樣本進(jìn)行預(yù)處理雪位,將各個(gè)維度的特征歸一化到同一個(gè)取值區(qū)間,并且消除不同特征之間的相關(guān)性梨撞,才能獲得比較理想的結(jié)果雹洗。雖然神經(jīng)網(wǎng)絡(luò)可以通過參數(shù)的調(diào)整來適應(yīng)不同特征的取值范圍,但是會(huì)導(dǎo)致訓(xùn)練效率比較低卧波。

如上圖所示时肿,取值范圍不同會(huì)造成在大多數(shù)位置上的梯度方向并不是最優(yōu)的搜索方向。當(dāng)使用梯度下降法尋求最優(yōu)解時(shí)港粱,會(huì)導(dǎo)致需要很多次迭代才能收斂螃成。如果我們把數(shù)據(jù)歸一化為取值范圍相同,大部分位置的梯度方向近似于最優(yōu)搜索方向查坪。這樣寸宏,在梯度下降求解時(shí),每一步梯度的方向都基本指向最小值偿曙,訓(xùn)練效率會(huì)大大提高氮凝。

經(jīng)常使用的歸一化方法有如下幾種:

  • 縮放歸一化:通過縮放將每一個(gè)特征的取值范圍歸一到[0, 1][?1, 1]之間。假設(shè)有N個(gè)樣本\{x^{(n)}\}^N_{n=1}遥昧,對(duì)于每一維特征x

\hat{x}^{(n)}=\frac{x^{(n)}-\min_n (x^{(n)})}{\max_n (x^{(n)})-\min_n (x^{(n)})}

其中min(x)max(x)分別是特征x在所有樣本上的最小值和最大值覆醇。

  • 標(biāo)準(zhǔn)歸一化:將每一個(gè)維特征都處理為符合標(biāo)準(zhǔn)正態(tài)分布(均值為0方差為1)。假設(shè)有N個(gè)樣本\{x^{(n)}\}^N_{n=1}炭臭,對(duì)于每一維特征x我們先計(jì)算它的均值和標(biāo)準(zhǔn)差:

\mu=\frac{1}{N}\sum_{n=1}^N x^{(n)}

\sigma^2=\frac{1}{N}\sum_{n=1}^N (x^{(n)}-\mu)^2

然后永脓,將特征x^{(n)}減去均值,并除以標(biāo)準(zhǔn)差鞋仍,得到新的特征值:

\hat{x}^{(n)}=\frac{x^{(n)}-\mu}{\sigma}

這里σ不能為0常摧。如果標(biāo)準(zhǔn)差為0,說明這一維特征沒有任務(wù)區(qū)分性威创,可以直接刪掉落午。

  • 白化:白化(Whitening)是一種重要的預(yù)處理方法,用來降低輸入數(shù)據(jù)特征之間的冗余性肚豺。輸入數(shù)據(jù)經(jīng)過白化處理后溃斋,特征之間相關(guān)性較低,并且所有特征具有相同的方差吸申。白化的一個(gè)主要實(shí)現(xiàn)方式是使用主成分分析(PCA)方法去除掉各個(gè)成分之間的相關(guān)性梗劫。

標(biāo)準(zhǔn)歸一化和PCA白化的比較如下:

5享甸、逐層歸一化

在深層神經(jīng)網(wǎng)絡(luò)中,中間某一層的輸入是其之前的神經(jīng)層的輸出梳侨。因此蛉威,其之前的神經(jīng)層的參數(shù)變化會(huì)導(dǎo)致其輸入的分布發(fā)生較大的差異。在使用隨機(jī)梯度下降來訓(xùn)練網(wǎng)絡(luò)時(shí)走哺,每次參數(shù)更新都會(huì)導(dǎo)致網(wǎng)絡(luò)中間每一層的輸入的分布發(fā)生改變蚯嫌。越深的層,其輸入的分布會(huì)改變得越明顯丙躏。就像一棟高樓择示,低樓層發(fā)生一個(gè)較小的偏移,都會(huì)導(dǎo)致高樓層較大的偏移彼哼。

從機(jī)器學(xué)習(xí)角度來看对妄,如果某個(gè)神經(jīng)層的輸入分布發(fā)生了改變,那么其參數(shù)需要重新學(xué)習(xí)敢朱,這種現(xiàn)象叫做內(nèi)部協(xié)變量偏移(Internal Covariate Shift)剪菱。

關(guān)于協(xié)變量偏移,https://www.kaggle.com/pavansanagapati/covariate-shift-what-is-it中有一個(gè)很直觀的圖:

在機(jī)器學(xué)習(xí)中拴签,協(xié)變量可以看作是輸入孝常。一般的機(jī)器學(xué)習(xí)算法都要求輸入在訓(xùn)練集和測(cè)試集上的分布是相似的。如果不滿足這個(gè)假設(shè)蚓哩,在訓(xùn)練集上學(xué)習(xí)到的模型在測(cè)試集上的表現(xiàn)會(huì)比較差构灸。

如上所說,如果初始狀態(tài)下的訓(xùn)練集和測(cè)試集的概率分布有一個(gè)小的差異岸梨,經(jīng)過網(wǎng)絡(luò)的層層傳遞也會(huì)得到兩個(gè)差別很大的概率分布喜颁,此時(shí)考慮深層的網(wǎng)絡(luò)的輸入,就可能出現(xiàn)上圖的情況曹阔。這有點(diǎn)類似于蝴蝶效應(yīng)半开。

總之,為了解決內(nèi)部協(xié)變量偏移問題赃份,就要使得每一個(gè)神經(jīng)層的輸入的分布在訓(xùn)練過程中要保持一致寂拆。最簡(jiǎn)單直接的方法就是對(duì)每一個(gè)神經(jīng)層都進(jìn)行歸一化操作,使其分布保持穩(wěn)定抓韩。

5.1纠永、批量歸一化

批量歸一化(Batch Normalization,BN)方法是一種有效的逐層歸一化方法谒拴,可以對(duì)神經(jīng)網(wǎng)絡(luò)中任意的中間層進(jìn)行歸一化操作尝江。

對(duì)于一個(gè)深層神經(jīng)網(wǎng)絡(luò),令第l層的凈輸入為z^{(l)}英上,神經(jīng)元的輸出為a^{(l)}茂装,即:

a^{(l)}=f(z^{(l)})=f(Wa^{(l-1)}+b)

其中f(·)是激活函數(shù)怠蹂,Wb是可學(xué)習(xí)的參數(shù)。

為了減少內(nèi)部協(xié)變量偏移問題少态,就要使得凈輸入z^{(l)}的分布一致,比如都?xì)w一化到標(biāo)準(zhǔn)正態(tài)分布易遣。

逐層歸一化需要在中間層進(jìn)行操作彼妻,要求效率比較高,為了提高歸一化效率豆茫,一般使用標(biāo)準(zhǔn)歸一化侨歉,將凈輸入z^{(l)}的每一維都?xì)w一到標(biāo)準(zhǔn)正態(tài)分布:

\hat{z}^{(l)}=\frac{z^{(l)}-E[z^{(l)}]}{\sqrt{var[z^{(l)}]+\epsilon}}

其中E[z^{(l)}]var[z^{(l)}]是指當(dāng)前參數(shù)下,z^{(l)}的每一維在整個(gè)訓(xùn)練集上的期望和方差揩魂。因?yàn)槟壳爸饕挠?xùn)練方法是基于小批量的隨機(jī)梯度下降方法幽邓,所以準(zhǔn)確地計(jì)算z^{(l)}的期望和方差是不可行的。因此火脉,z^{(l)}的期望和方差通常用當(dāng)前小批量樣本集的均值和方差近似估計(jì)牵舵。

給定一個(gè)包含K個(gè)樣本的小批量樣本集合,第l層神經(jīng)元的凈輸入z^{(1,l)},\cdots,z^{(K,l)}的均值和方差為:

\begin{aligned} \mu_{\mathcal{B}} &=\frac{1}{K} \sum_{k=1}^{K} \mathbf{z}^{(k, l)} \\ \sigma_{\mathcal{B}}^{2} &=\frac{1}{K} \sum_{k=1}^{K}\left(\mathbf{z}^{(k, l)}-\mu_{\mathcal{B}}\right) \odot\left(\mathbf{z}^{(k, l)}-\mu_{\mathcal{B}}\right) \end{aligned}

對(duì)凈輸入z^{(l)}的標(biāo)準(zhǔn)歸一化會(huì)使得其取值集中到0附近倦挂,如果使用sigmoid型激活函數(shù)時(shí)畸颅,這個(gè)取值區(qū)間剛好是接近線性變換的區(qū)間,減弱了神經(jīng)網(wǎng)絡(luò)的非線性性質(zhì)方援。因此没炒,為了使得歸一化不對(duì)網(wǎng)絡(luò)的表示能力造成負(fù)面影響,可以通過一個(gè)附加的縮放和平移變換改變?nèi)≈祬^(qū)間犯戏。

\begin{aligned} \hat{\mathbf{z}}^{(l)} &=\frac{\mathbf{z}^{(l)}-\mu_{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^{2}+\epsilon}} \odot \gamma+\beta \\ & \triangleq \mathrm{BN}_{\gamma, \beta}\left(\mathbf{z}^{(l)}\right) \end{aligned}

其中γβ分別代表縮放和平移的參數(shù)向量送火。從最保守的角度考慮,可以通過標(biāo)準(zhǔn)歸一化的逆變換來使得歸一化后的變量可以被還原為原來的值先匪。

批量歸一化操作可以看作是一個(gè)特殊的神經(jīng)層种吸,加在每一層非線性激活函數(shù)之前,即:

\mathbf{a}^{(l)}=f\left(\mathrm{BN}_{\gamma, \beta}\left(\mathbf{z}^{(l)}\right)\right)=f\left(\mathrm{BN}_{\gamma, \beta}\left(W \mathbf{a}^{(l-1)}\right)\right)

其中因?yàn)榕繗w一化本身具有平移變換胚鸯,因此仿射變換Wa^{(l?1)}不再需要偏置參數(shù)骨稿。

5.2、層歸一化

批量歸一化是對(duì)一個(gè)中間層的單個(gè)神經(jīng)元進(jìn)行歸一化操作姜钳,因此要求小批量樣本的數(shù)量不能太小坦冠,否則難以計(jì)算單個(gè)神經(jīng)元的統(tǒng)計(jì)信息。此外哥桥,如果一個(gè)神經(jīng)元的凈輸入的分布在神經(jīng)網(wǎng)絡(luò)中是動(dòng)態(tài)變化的辙浑,比如循環(huán)神經(jīng)網(wǎng)絡(luò),那么就無法應(yīng)用批量歸一化操作拟糕。

層歸一化(Layer Normalization)是和批量歸一化非常類似的方法判呕。和批量歸一化不同的是倦踢,層歸一化是對(duì)一個(gè)中間層的所有神經(jīng)元進(jìn)行歸一化

對(duì)于一個(gè)深層神經(jīng)網(wǎng)絡(luò)中侠草,令第l層神經(jīng)的凈輸入為z^{(l)}辱挥,其均值和方差為:

\begin{aligned} \mu^{(l)} &=\frac{1}{n^{l}} \sum_{i=1}^{n^{l}} z_{i}^{(l)} \\ \sigma^{(l)^{2}} &=\frac{1}{n^{l}} \sum_{k=1}^{n^{l}}\left(z_{i}^{(l)}-\mu^{(l)}\right)^{2} \end{aligned}

其中n^l為第l層神經(jīng)元的數(shù)量。

層歸一化定義為:

\begin{aligned} \hat{\mathbf{z}}^{(l)} &=\frac{\mathbf{z}^{(l)}-\mu^{(l)}}{\sqrt{\sigma^{{(l)}^2}+\epsilon}} \odot \gamma+\beta \\ & \triangleq \operatorname{LN}_{\gamma, \beta}\left(\mathbf{z}^{(l)}\right) \\ \end{aligned}

其中γβ分別代表縮放和平移的參數(shù)向量边涕,和z^{(l)}維數(shù)相同晤碘。

層歸一化和批量歸一化整體上是十分類似的,差別在于歸一化的方法不同功蜓。對(duì)于K個(gè)樣本的一個(gè)小批量集合Z^{(l)} = [z^{(1,l)};\cdots; z^{(K,l)}]园爷,層歸一化是對(duì)矩陣Z^{(l)}對(duì)每一列進(jìn)行歸一化,而批量歸一化是對(duì)每一行進(jìn)行歸一化式撼。一般而言童社,批量歸一化是一種更好的選擇。當(dāng)小批量樣本數(shù)量比較小時(shí)著隆,可以選擇層歸一化扰楼。

5.3、權(quán)重歸一化

權(quán)重歸一化(Weight Normalization)是對(duì)神經(jīng)網(wǎng)絡(luò)的連接權(quán)重進(jìn)行歸一化旅东,通過再參數(shù)化(Reparameterization)方法灭抑,將連接權(quán)重分解為長(zhǎng)度和方向兩種參數(shù)。

假設(shè)第l層神經(jīng)元a^(l) = f(Wa^{(l?1)} + b)抵代,我們將W再參數(shù)化為:

W_{i, :}=\frac{g_{i}}{\left\|\mathbf{v}_{i}\right\|} \mathbf{v}_{i}, \quad 1 \leq i \leq n^{l}

其中W_{i,:} 表示權(quán)重W的第i行腾节,n^l為神經(jīng)元數(shù)量。新引入的參數(shù)g_i為標(biāo)量荤牍,v_ia^{(l?1)}維數(shù)相同案腺。

由于在神經(jīng)網(wǎng)絡(luò)中權(quán)重經(jīng)常是共享的,權(quán)重?cái)?shù)量往往比神經(jīng)元數(shù)量要少康吵,因此權(quán)重歸一化的開銷會(huì)比較小劈榨。

6、超參數(shù)優(yōu)化

在神經(jīng)網(wǎng)絡(luò)中晦嵌,除了可學(xué)習(xí)的參數(shù)之外同辣,還存在很多超參數(shù)。這些超參數(shù)對(duì)網(wǎng)絡(luò)性能的影響也很大惭载。不同的機(jī)器學(xué)習(xí)任務(wù)需要往往需要不同的超參數(shù)旱函。常見的超參數(shù)有:

  • 網(wǎng)絡(luò)結(jié)構(gòu):包括神經(jīng)元之間的連接關(guān)系、層數(shù)描滔、每層的神經(jīng)元數(shù)量棒妨、激活函數(shù)的類型等;

  • 優(yōu)化參數(shù):包括優(yōu)化方法含长、學(xué)習(xí)率券腔、小批量的樣本數(shù)量等伏穆;

  • 正則化系數(shù)

超參數(shù)優(yōu)化(Hyperparameter Optimization)主要存在兩方面的困難:

  • 超參數(shù)優(yōu)化是一個(gè)組合優(yōu)化問題纷纫,無法像一般參數(shù)那樣通過梯度下降方法來優(yōu)化枕扫,也沒有一種通用有效的優(yōu)化方法。

  • 評(píng)估一組超參數(shù)配置(Configuration)的時(shí)間代價(jià)非常高涛酗,從而導(dǎo)致一些優(yōu)化方法(比如演化算法)在超參數(shù)優(yōu)化中難以應(yīng)用铡原。

對(duì)于超參數(shù)的設(shè)置,比較簡(jiǎn)單的方法有人工搜索商叹、網(wǎng)格搜索和隨機(jī)搜索

6.1只泼、網(wǎng)格搜索

網(wǎng)格搜索(Grid Search)是一種通過嘗試所有超參數(shù)的組合來尋址合適一組超參數(shù)配置的方法剖笙。假設(shè)總共有K 個(gè)超參數(shù),第k個(gè)超參數(shù)的可以取m_k個(gè)值请唱。那么總共的配置組合數(shù)量為m_1 ×m_2 × \cdots ×m_K弥咪。如果超參數(shù)是連續(xù)的,可以將超參數(shù)離散化十绑,選擇幾個(gè)“經(jīng)驗(yàn)”值聚至。比如學(xué)習(xí)率α,我們可以設(shè)置:

α ∈ \{0.01, 0.1, 0.5, 1.0 \}

網(wǎng)格搜索根據(jù)這些超參數(shù)的不同組合分別訓(xùn)練一個(gè)模型本橙,然后測(cè)試這些模型在驗(yàn)證集上的性能扳躬,選取一組性能最好的配置。

6.2甚亭、隨機(jī)搜索

如果不同超參數(shù)對(duì)模型性能的影響有很大差異贷币。有些超參數(shù)(比如正則化系數(shù))對(duì)模型性能的影響有限,而有些超參數(shù)(比如學(xué)習(xí)率)對(duì)模型性能影響比較大亏狰。在這種情況下役纹,采用網(wǎng)格搜索會(huì)在不重要的超參數(shù)上進(jìn)行不必要的嘗試。一種在實(shí)踐中比較有效的改進(jìn)方法是對(duì)超參數(shù)進(jìn)行隨機(jī)組合暇唾,然后選取一個(gè)性能最好的配置促脉,這就是隨機(jī)搜索

隨機(jī)搜索在實(shí)踐中更容易實(shí)現(xiàn)策州,一般會(huì)比網(wǎng)格搜索更加有效瘸味。

網(wǎng)格搜索和隨機(jī)搜索都沒有利用不同超參數(shù)組合之間的相關(guān)性,即如果模型的超參數(shù)組合比較類似抽活,其模型性能也是比較接近的硫戈。因此這兩種搜索方式一般都比較低效。下面我們介紹兩種自適應(yīng)的超參數(shù)優(yōu)化方法:貝葉斯優(yōu)化和動(dòng)態(tài)資源分配下硕。

6.3丁逝、貝葉斯優(yōu)化

貝葉斯優(yōu)化(Bayesian optimization)是一種自適應(yīng)的超參數(shù)搜索方法汁胆,根據(jù)當(dāng)前已經(jīng)試驗(yàn)的超參數(shù)組合,來預(yù)測(cè)下一個(gè)可能帶來最大收益的組合霜幼。一種比較比較常用的貝葉斯優(yōu)化方法為時(shí)序模型優(yōu)化(Sequential Model-Based Optimization嫩码,SMBO)

假設(shè)超參數(shù)優(yōu)化的函數(shù)f(x)服從高斯過程罪既,則p(f(x)|x)為一個(gè)正態(tài)分布铸题。貝葉斯優(yōu)化過程是根據(jù)已有的N組試驗(yàn)結(jié)果H = \{x_n, y_n \}^N_{n=1}y_nf(x_n)的觀測(cè)值)來建模高斯過程,并計(jì)算f(x)的后驗(yàn)分布_{pGP}(f(x)|x,H)琢感。

為了使得_{pGP}(f(x)|x,H)接近其真實(shí)分布丢间,就需要對(duì)樣本空間進(jìn)行足夠多的采樣。但超參數(shù)優(yōu)化中每個(gè)樣本的生成成本很高驹针,需用盡可能少的樣本使得p_θ(f(x)|x,H)接近于真實(shí)分布烘挫。因此需要通過定義一個(gè)收益函數(shù)(acquisition function)a(x,H)來判斷一個(gè)樣本是否能夠給建模p_θ(f(x)|x,H)提供更多的收益。收益越大柬甥,其修正的高斯過程會(huì)越接近目標(biāo)函數(shù)的真實(shí)分布饮六。

收益函數(shù)的定義有很多種方式,一個(gè)常用的是期望改善(Expected improvement苛蒲,EI)函數(shù)卤橄。假設(shè)y^? = \min\{y_n, 1 ≤ n ≤ N \}是當(dāng)前已有樣本中的最優(yōu)值,期望改善函數(shù)為:

\mathrm{EI}(\mathrm{x}, \mathcal{H})=\int_{-\infty}^{\infty} \max \left(y^{*}-y, 0\right) p_{\mathcal{G}} \mathcal{P}(y | \mathrm{x}, \mathcal{H}) d y

貝葉斯優(yōu)化的缺點(diǎn)是高斯過程建模要計(jì)算協(xié)方差矩陣的逆臂外,時(shí)間復(fù)雜度是O(n^3)窟扑,因此不能很好地處理高維情況。

6.4寄月、動(dòng)態(tài)資源分配

在超參數(shù)優(yōu)化中锨亏,每組超參數(shù)配置的評(píng)估代價(jià)比較高终议。如果我們可以在較早的階段就可以估計(jì)出一組配置的效果會(huì)比較差,那么我們就可以中止這組配置的評(píng)估,將更多的資源留給其它配置旭等。

這個(gè)問題可以歸結(jié)為多臂賭博機(jī)問題的一個(gè)泛化問題:最優(yōu)臂問題(Best-Arm Problem)诱桂,即在給定有限的機(jī)會(huì)次數(shù)下秸妥,如何玩這些賭博機(jī)并找到收益最大的臂焰宣。和多臂賭博機(jī)類似,最優(yōu)臂問題也是在利用和探索之間找到最佳的平衡谭溉。

由于目前神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法一般都采取隨機(jī)梯度下降墙懂,因此我們可以通過一組超參數(shù)的學(xué)習(xí)曲線來預(yù)估這組超參數(shù)配置是否有希望得到比較好的結(jié)果。如果一組超參數(shù)配置的學(xué)習(xí)曲線不收斂或者收斂比較差扮念,我們可以應(yīng)用早期停止(Early-Stopping)策略來中止當(dāng)前的訓(xùn)練损搬。

動(dòng)態(tài)資源分配的一種有效方法是逐次減半(Successive Halving)方法

假設(shè)要嘗試N組超參數(shù)配置,總共可利用的資源預(yù)算(搖臂的次數(shù))為B,我們可以通過T = ?\log_2(N)? ? 1輪逐次減半的方法來選取最優(yōu)的配置巧勤,具體過程如下:

在逐次減半方法中嵌灰,嘗試的超參數(shù)配置數(shù)量N十分關(guān)鍵。如果N越大颅悉,得到最佳配置的機(jī)會(huì)也越大沽瞭,但每組配置分到的資源就越少,這樣早期的評(píng)估結(jié)果可能不準(zhǔn)確剩瓶。反之如果N越小驹溃,每組超參數(shù)配置的評(píng)估會(huì)越準(zhǔn)確,但有可能無法得到最優(yōu)的配置延曙。因此如何設(shè)置N是平衡“利用-探索”的一個(gè)關(guān)鍵因素豌鹤。

7、網(wǎng)絡(luò)正則化

正則化(Regularization)是一類通過限制模型復(fù)雜度枝缔,從而避免過擬合傍药,提高泛化能力的方法,包括引入一些約束規(guī)則魂仍,增加先驗(yàn)、提前停止等拣挪。

7.1擦酌、?1?2正則化

通過加入?1?2正則化,優(yōu)化問題可以寫為:

\theta^{*}=\underset{\theta}{\arg \min } \frac{1}{N} \sum_{n=1}^{N} \mathcal{L}\left(y^{(n)}, f\left(\mathrm{x}^{(n)} ; \theta\right)\right)+\lambda \ell_{p}(\theta)

其中\mathcal{L}(·)為損失函數(shù)菠劝,N為訓(xùn)練樣本數(shù)量赊舶,f(·)為待學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),θ為其參數(shù)赶诊,?_p為范數(shù)函數(shù)笼平,p的取值通常為\{1, 2 \}代表?1?2范數(shù),λ為正則化系數(shù)舔痪。

帶正則化的優(yōu)化問題等價(jià)于下面帶約束條件的優(yōu)化問題:

\begin{array}{c}{\theta^{*}=\underset{\theta}{\arg \min } \frac{1}{N} \sum_{n=1}^{N} \mathcal{L}\left(y^{(n)}, f\left(\mathrm{x}^{(n)} ; \theta\right)\right)} \\ {\text { subject to } \ell_{p}(\theta) \leq 1}\end{array}

下圖給出了不同范數(shù)約束條件下的最優(yōu)化問題示例:

紅線表示函數(shù)?_p = 1寓调,F為函數(shù)f(θ)的等高線(簡(jiǎn)單起見,這里用直線表示)锄码。

可以看出夺英,?1范數(shù)的約束通常會(huì)使得最優(yōu)解位于坐標(biāo)軸上,從而使得最終的參數(shù)為稀疏性向量滋捶。

一種折中的正則化方法是彈性網(wǎng)絡(luò)正則化(Elastic Net Regularization)痛悯,同時(shí)加入?1?2正則化:

\theta^{*}=\underset{\theta}{\arg \min } \frac{1}{N} \sum_{n=1}^{N} \mathcal{L}\left(y^{(n)}, f\left(\mathrm{x}^{(n)} ; \theta\right)\right)+\lambda_{1} \ell_{1}(\theta)+\lambda_{2} \ell_{2}(\theta)

7.2、權(quán)重衰減

權(quán)重衰減(Weight Decay)也是一種有效的正則化手段重窟,在每次參數(shù)更新時(shí)载萌,引入一個(gè)衰減系數(shù)。

θ_t ← (1 ? w)θ_{t?1} ? αg_t

其中g_t為第t次更新的梯度,α為學(xué)習(xí)率扭仁,w為權(quán)重衰減系數(shù)垮衷,一般取值比較小,比如0.0005斋枢。在標(biāo)準(zhǔn)的隨機(jī)梯度下降中帘靡,權(quán)重衰減正則化和?2正則化的效果相同

但是瓤帚,在較為復(fù)雜的優(yōu)化方法(比如Adam)中描姚,權(quán)重衰減和?2正則化并不等價(jià)。

7.3戈次、提前停止

提前停止(Early Stop)對(duì)于深層神經(jīng)網(wǎng)絡(luò)來說是一種簡(jiǎn)單有效的正則化方法轩勘。

由于深層神經(jīng)網(wǎng)絡(luò)的擬合能力非常強(qiáng),因此比較容易在訓(xùn)練集上過擬合怯邪。在使用梯度下降法進(jìn)行優(yōu)化時(shí)绊寻,我們可以使用一個(gè)和訓(xùn)練集獨(dú)立的樣本集合,稱為驗(yàn)證集悬秉,并用驗(yàn)證集上的錯(cuò)誤來代替期望錯(cuò)誤澄步。當(dāng)驗(yàn)證集上的錯(cuò)誤率不再下降,就停止迭代和泌。

7.4村缸、丟棄法

當(dāng)訓(xùn)練一個(gè)深層神經(jīng)網(wǎng)絡(luò)時(shí),我們可以隨機(jī)丟棄一部分神經(jīng)元(同時(shí)丟棄其對(duì)應(yīng)的連接邊)來避免過擬合武氓,這種方法稱為丟棄法(Dropout Method)梯皿。每次選擇丟棄的神經(jīng)元是隨機(jī)的。最簡(jiǎn)單的方法是設(shè)置一個(gè)固定的概率p县恕。對(duì)每一個(gè)神經(jīng)元都一個(gè)概率p來判定要不要保留东羹。對(duì)一個(gè)神經(jīng)層y = f(Wx + b),我們引入一個(gè)丟棄函數(shù)mask(·)使得y = f(Wd(x) + b)忠烛。丟棄函數(shù)d(·)的定義為:

\begin{equation} f(x)=\left\{ \begin{aligned} &m⊙ x & 訓(xùn)練階段 \\ &px & 測(cè)試階段 \\ \end{aligned} \right. \end{equation}

其中m ∈ \{ 0, 1\}^d是丟棄掩碼(Dropout Mask)属提,通過以概率為p的伯努利分布隨機(jī)生成。在訓(xùn)練時(shí)况木,激活神經(jīng)元的平均數(shù)量為原來的p倍垒拢。而在測(cè)試時(shí),所有的神經(jīng)元都是可以激活的火惊,這會(huì)造成訓(xùn)練和測(cè)試時(shí)網(wǎng)絡(luò)的輸出不一致求类。為了緩解這個(gè)問題,在測(cè)試時(shí)需要將神經(jīng)層的輸入x乘以p屹耐,也相當(dāng)于把不同的神經(jīng)網(wǎng)絡(luò)做了平均尸疆。丟棄率p可通過驗(yàn)證集來選取一個(gè)最優(yōu)的值椿猎。一般來講,對(duì)于隱藏層的神經(jīng)元寿弱,其丟棄率p = 0.5時(shí)效果最好犯眠,這對(duì)大部分的網(wǎng)絡(luò)和任務(wù)都比較有效。當(dāng)p = 0.5時(shí)症革,在訓(xùn)練時(shí)有一半的神經(jīng)元被丟棄筐咧,只剩一半的神經(jīng)元是可以激活的,隨機(jī)生成的網(wǎng)絡(luò)結(jié)構(gòu)最具多樣性噪矛。對(duì)于輸入層的神經(jīng)元量蕊,其丟棄率通常設(shè)為更接近1的數(shù),使得輸入變化不會(huì)太大艇挨。對(duì)輸入層神經(jīng)元進(jìn)行丟棄時(shí)残炮,相當(dāng)于給數(shù)據(jù)增加噪聲,以此來提高網(wǎng)絡(luò)的魯棒性缩滨。

丟棄法一般是針對(duì)神經(jīng)元進(jìn)行隨機(jī)丟棄势就,但是也可以擴(kuò)展到對(duì)神經(jīng)元之間的連接進(jìn)行隨機(jī)丟棄或每一層進(jìn)行隨機(jī)丟棄。下圖給出了一個(gè)網(wǎng)絡(luò)應(yīng)用Dropout方法后的示例:

對(duì)于丟棄法的有效性有兩個(gè)角度的解釋:

  • 集成學(xué)習(xí)的解釋:每做一次丟棄脉漏,相當(dāng)于從原始的網(wǎng)絡(luò)中采樣得到一個(gè)子網(wǎng)絡(luò)苞冯。如果一個(gè)神經(jīng)網(wǎng)絡(luò)有n個(gè)神經(jīng)元,那么總共可以采樣出2n個(gè)子網(wǎng)絡(luò)侧巨。每次迭代都相當(dāng)于訓(xùn)練一個(gè)不同的子網(wǎng)絡(luò)抱完,這些子網(wǎng)絡(luò)都共享原始網(wǎng)絡(luò)的參數(shù)。那么刃泡,最終的網(wǎng)絡(luò)可以近似看作是集成了指數(shù)級(jí)個(gè)不同網(wǎng)絡(luò)的組合模型

  • 貝葉斯學(xué)習(xí)的解釋:丟棄法也可以解釋為一種貝葉斯學(xué)習(xí)的近似碉怔。用y = f(x; θ)來表示要學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)烘贴,貝葉斯學(xué)習(xí)是假設(shè)參數(shù)θ為隨機(jī)向量,并且先驗(yàn)分布為q(θ)撮胧,貝葉斯方法的預(yù)測(cè)為:

\begin{aligned} \mathbb{E}_{q(\theta)}[y] &=\int_{q} f(\mathrm{x} ; \theta) q(\theta) d \theta \\ & \approx \frac{1}{M} \sum_{m=1}^{M} f\left(\mathrm{x}, \theta_{m}\right) \end{aligned}

其中f(x, θ_m)為第m次應(yīng)用丟棄方法后的網(wǎng)絡(luò)桨踪,其參數(shù)θ_m為對(duì)全部參數(shù)θ的一次采樣。

當(dāng)在循環(huán)神經(jīng)網(wǎng)絡(luò)上應(yīng)用丟棄法芹啥,不能直接對(duì)每個(gè)時(shí)刻的隱狀態(tài)進(jìn)行隨機(jī)丟棄锻离,這樣會(huì)損害循環(huán)網(wǎng)絡(luò)在時(shí)間維度上記憶能力。一種簡(jiǎn)單的方法是對(duì)非時(shí)間維度的連接(即非循環(huán)連接)進(jìn)行隨機(jī)丟失墓怀。

如圖所示汽纠,虛線邊表示進(jìn)行隨機(jī)丟棄,不同的顏色表示不同的丟棄掩碼傀履。

7.5虱朵、數(shù)據(jù)增強(qiáng)

深層神經(jīng)網(wǎng)絡(luò)一般都需要大量的訓(xùn)練數(shù)據(jù)才能獲得比較理想的效果。在數(shù)據(jù)量有限的情況下,可以通過數(shù)據(jù)增強(qiáng)(Data Augmentation)來增加數(shù)據(jù)量碴犬,提高模型魯棒性絮宁,避免過擬合。目前服协,數(shù)據(jù)增強(qiáng)還主要應(yīng)用在圖像數(shù)據(jù)上绍昂,在文本等其它類型的數(shù)據(jù)還沒有太好的方法

圖像數(shù)據(jù)的增強(qiáng)主要是通過算法對(duì)圖像進(jìn)行轉(zhuǎn)變偿荷,引入噪聲等方法來增加數(shù)據(jù)的多樣性窘游。增強(qiáng)的方法主要有幾種:

  • 旋轉(zhuǎn)(Rotation):將圖像按順時(shí)針或逆時(shí)針方向隨機(jī)旋轉(zhuǎn)一定角度;
  • 翻轉(zhuǎn)(Flip):將圖像沿水平或垂直方法隨機(jī)翻轉(zhuǎn)一定角度遭顶;
  • 縮放(Zoom In/Out):將圖像放大或縮小一定比例张峰;
  • 平移(Shift):將圖像沿水平或垂直方法平移一定步長(zhǎng);
  • 加噪聲(Noise):加入隨機(jī)噪聲棒旗。

7.6喘批、標(biāo)簽平滑

在數(shù)據(jù)增強(qiáng)中,我們可以給樣本特征加入隨機(jī)噪聲來避免過擬合铣揉。同樣饶深,我們也可以給樣本的標(biāo)簽引入一定的噪聲。假設(shè)訓(xùn)練數(shù)據(jù)集中逛拱,有一些樣本的標(biāo)簽是被錯(cuò)誤標(biāo)注的敌厘,那么最小化這些樣本上的損失函數(shù)會(huì)導(dǎo)致過擬合。一種改善的正則化方法是標(biāo)簽平滑(Label Smoothing)朽合,即在輸出標(biāo)簽中添加噪聲來避免模型過擬合俱两。

一個(gè)樣本x的標(biāo)簽一般用onehot向量表示:

y = [0, · · · , 0, 1, 0, · · · , 0]^T

這種標(biāo)簽可以看作是硬目標(biāo)(Hard Targets)。如果使用softmax分類器并使用交叉熵?fù)p失函數(shù)曹步,最小化損失函數(shù)會(huì)使得正確類和其它類的權(quán)重差異變得很大宪彩。根據(jù)softmax函數(shù)的性質(zhì)可知,如果要使得某一類的輸出概率接近于1讲婚,其未歸一化的得分需要遠(yuǎn)大于其它類的得分尿孔,可能會(huì)導(dǎo)致其權(quán)重越來越大,并導(dǎo)致過擬合筹麸。此外活合,如果樣本標(biāo)簽是錯(cuò)誤的,會(huì)導(dǎo)致更嚴(yán)重的過擬合現(xiàn)象物赶。

為了改善這種情況白指,我們可以引入一個(gè)噪聲對(duì)標(biāo)簽進(jìn)行平滑,即假設(shè)樣本以?的概率為其它類酵紫。平滑后的標(biāo)簽為:

\tilde{\mathbf{y}}=\left[\frac{\epsilon}{K-1}, \cdots, \frac{\epsilon}{K-1}, 1-\epsilon, \frac{\epsilon}{K-1}, \cdots, \frac{\epsilon}{K-1}\right]^{\mathrm{T}}

其中K為標(biāo)簽數(shù)量侵续,這種標(biāo)簽可以看作是軟目標(biāo)(Soft Targets)倔丈。標(biāo)簽平滑可以避免模型的輸出過擬合到硬目標(biāo)上,并且通常不會(huì)損害其分類能力状蜗。

上面的標(biāo)簽平滑方法是給其它K ? 1個(gè)標(biāo)簽相同的概率\frac{?}{K?1}需五,沒有考慮標(biāo)簽之間的相關(guān)性。一種更好的做法是按照類別相關(guān)性來賦予其它標(biāo)簽不同的概率轧坎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宏邮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子缸血,更是在濱河造成了極大的恐慌蜜氨,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捎泻,死亡現(xiàn)場(chǎng)離奇詭異飒炎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)笆豁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門郎汪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闯狱,你說我怎么就攤上這事煞赢。” “怎么了哄孤?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵照筑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我瘦陈,道長(zhǎng)凝危,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任晨逝,我火速辦了婚禮媒抠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咏花。我一直安慰自己,他們只是感情好阀趴,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布昏翰。 她就那樣靜靜地躺著,像睡著了一般刘急。 火紅的嫁衣襯著肌膚如雪棚菊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天叔汁,我揣著相機(jī)與錄音统求,去河邊找鬼检碗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛码邻,可吹牛的內(nèi)容都是我干的折剃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼像屋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼怕犁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起己莺,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤奏甫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后凌受,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阵子,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年胜蛉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挠进。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腾么,死狀恐怖奈梳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情解虱,我是刑警寧澤攘须,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站殴泰,受9級(jí)特大地震影響于宙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悍汛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一捞魁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧离咐,春花似錦谱俭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至术陶,卻和暖如春凑懂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梧宫。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工接谨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摆碉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓脓豪,卻偏偏與公主長(zhǎng)得像巷帝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跑揉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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