偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解

發(fā)布于 2025-6-23 06:40
瀏覽
0收藏

批歸一化(Batch Normalization)和層歸一化(Layer Normalization)是深度學(xué)習(xí)中廣泛應(yīng)用的兩種數(shù)據(jù)歸一化方法,用于改善神經(jīng)網(wǎng)絡(luò)的訓(xùn)練性能。本文將從提出這兩種技術(shù)的原論文出發(fā),詳細(xì)闡述技術(shù)背景、原理及基于Pytorch的實(shí)現(xiàn)方式。

1.批歸一化(Batch Normalization)

批歸一化由谷歌的Sergey Ioffe和Christian Szegedy于2015年在論文“Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”中提出。

(1)技術(shù)背景:深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練十分復(fù)雜,因?yàn)樵谟?xùn)練過(guò)程中隨著前一層網(wǎng)絡(luò)參數(shù)的變化,下一層網(wǎng)絡(luò)的輸入分布也會(huì)發(fā)生變化。而更低的學(xué)習(xí)率和更精細(xì)的參數(shù)初始化又會(huì)減慢模型訓(xùn)練速度,特別是會(huì)讓具有飽和非線(xiàn)性的模型收斂變得十分困難,如使用Sigmoid激活函數(shù)時(shí),容易陷入梯度消失之中。

Ps:飽和非線(xiàn)性是指激活函數(shù)在輸入值較大或較小時(shí),其輸出趨于恒定,導(dǎo)數(shù)接近于零的現(xiàn)象,如Sigmoid和Tanh激活函數(shù)。

(2)技術(shù)原理:批歸一化則是通過(guò)標(biāo)準(zhǔn)化輸入來(lái)解決上述問(wèn)題,將歸一化作為模型架構(gòu)的一部分,對(duì)每次訓(xùn)練中的小批量樣本執(zhí)行歸一化,使得我們可以使用更高的學(xué)習(xí)率且能降低對(duì)參數(shù)初始化的要求。同時(shí),在某些情況下還能充當(dāng)正則化使用,可以替代Dropout技術(shù)。

(3)批歸一化詳細(xì)計(jì)算步驟:


【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)

需要特別注意的是,批歸一化中模型在測(cè)試時(shí)使用的是訓(xùn)練中累積的全局均值和方差替代小批量樣本的統(tǒng)計(jì)值,有關(guān)全局均值和方差的計(jì)算可見(jiàn)下述詳細(xì)代碼的實(shí)現(xiàn),更加清晰明了。

(4)基于Pytorch的實(shí)現(xiàn)

Pytorch中提供了nn.BatchNorm1d、nn.BatchNorm2d 和 nn.BatchNorm3d,對(duì)應(yīng)不同輸入維度的批歸一化層,如下所示:

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)

【參數(shù)詳解】

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)

(5) 使用Python手動(dòng)實(shí)現(xiàn)批歸一化

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)


2.層歸一化(Layer Normalization)

層歸一化由多倫多大學(xué)的Jimmy Lei Ba等人于2016年于論文“Layer Normalization”中提出。

(1)技術(shù)背景:批歸一化的效果取決于小批量的大小,且在循環(huán)神經(jīng)網(wǎng)絡(luò)中的應(yīng)用受到明顯的限制。同時(shí),批歸一化也不能應(yīng)用于在線(xiàn)學(xué)習(xí)任務(wù)或小批量必須很小的極大分布式模型。

Ps:循環(huán)神經(jīng)網(wǎng)絡(luò)中循環(huán)神經(jīng)元的輸入總和通常隨序列長(zhǎng)度的變化而變化,因此對(duì)其應(yīng)該針對(duì)不同時(shí)間步長(zhǎng)進(jìn)行不同的統(tǒng)計(jì)。

(2)技術(shù)原理:層歸一化則是通過(guò)計(jì)算單個(gè)樣本中所有特征值的均值和方差來(lái)實(shí)現(xiàn)輸入數(shù)據(jù)的歸一化,可以直接應(yīng)用于循環(huán)神經(jīng)網(wǎng)絡(luò)。與批歸一化一樣的是在歸一化之后也提供了自適應(yīng)偏差和增益兩個(gè)可學(xué)習(xí)參數(shù)來(lái)增強(qiáng)模型的表達(dá)能力。與批歸一化不同的是,層歸一化在訓(xùn)練和測(cè)試的時(shí)候執(zhí)行完全相同的計(jì)算。

(3)層歸一化詳細(xì)計(jì)算步驟:

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)

(4)基于Pytorch的實(shí)現(xiàn)

Pytorch中提供了nn.LayerNorm實(shí)現(xiàn)層歸一化層,適合處理任何維度的輸入,如下所示:

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)

【參數(shù)詳解】

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)

(5)使用Python手動(dòng)實(shí)現(xiàn)層歸一化

【深度學(xué)習(xí)】批歸一化(BatchNorm)與層歸一化(LayerNorm):技術(shù)背景、原理及基于Pytorch的代碼詳解-AI.x社區(qū)

本文轉(zhuǎn)載自???南夏的算法驛站???,作者:趙南夏

收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦