最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

這幾種常用的權(quán)重初始化方法你都掌握了嗎?

2023-03-21 17:54 作者:深度之眼官方賬號(hào)  | 我要投稿

來(lái)源:投稿 作者:175
編輯:學(xué)姐

在深度學(xué)習(xí)中,權(quán)重的初始值非常重要,權(quán)重初始化方法甚至關(guān)系到模型能否收斂。本文主要介紹兩種權(quán)重初始化方法。

為什么需要隨機(jī)初始值

我們知道,神經(jīng)網(wǎng)絡(luò)一般在初始化權(quán)重時(shí)都是采用隨機(jī)值。如果不用隨機(jī)值,全部設(shè)成一樣的值會(huì)發(fā)生什么呢?

極端情況,假設(shè)全部設(shè)成0。顯然,如果某層的權(quán)重全部初始化為0,類似該層的神經(jīng)元全部被丟棄(dropout)了,就不會(huì)有信息傳播到下一層。

如果全部設(shè)成同樣的非零值,那么在反向傳播中,所有的權(quán)重都會(huì)進(jìn)行相同的更新,權(quán)重被更新為相同的值,并擁有了對(duì)稱(重復(fù))的值。不管怎樣進(jìn)行迭代(sgd),都不會(huì)打破這種對(duì)稱性,隱藏層好像只有一個(gè)神經(jīng)元,我們無(wú)法實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的表達(dá)能力。只有我們前面介紹的Dropout可以打破這種對(duì)稱性。

為了打破權(quán)重的對(duì)稱結(jié)構(gòu),必須隨機(jī)生成初始值。

隱藏層激活值的分布

觀察隱藏層激活值的分布,可以獲得一些啟發(fā)。

這里通過(guò)一個(gè)實(shí)驗(yàn)來(lái)看權(quán)重初始值是如何影響隱藏層的激活值分布的。

向一個(gè)5層神經(jīng)網(wǎng)絡(luò)(激活函數(shù)使用sigmoid函數(shù))傳入隨機(jī)生成的輸入數(shù)據(jù),用直方圖繪制各層激活值的數(shù)據(jù)分布。

這里假設(shè)神經(jīng)網(wǎng)絡(luò)有5層,每層有100個(gè)單元。然后,用高斯分布隨機(jī)生成1000個(gè)數(shù)據(jù)作為輸入數(shù)據(jù),并把它們傳給5層神經(jīng)網(wǎng)絡(luò)。這里權(quán)重的初始化也通過(guò)均值為0方差為1的高斯分布。

各層的激活值呈偏向0和1的分布。這里使用的sigmoid函數(shù)是S型函數(shù),隨著輸出不斷地靠近0(或者靠近1,在S線的兩端),它的梯度逐漸接近0。因此,偏向于0或1的數(shù)據(jù)分布會(huì)造成反向傳播中梯度的值不斷變小,最后消失。

我們知道,在L2正則化話會(huì)使權(quán)重參數(shù)變小,那么我們這里在初始參數(shù)的時(shí)候,直接設(shè)定一個(gè)較小的值會(huì)不會(huì)好一點(diǎn)。我們只要改下上面代碼的27/28行。

這次雖然沒(méi)有偏向0和1,不會(huì)發(fā)生梯度消失的問(wèn)題。但是激活值的分布有所偏向,這里集中于0.5附近。這樣模型的表現(xiàn)力會(huì)大打折扣。

下面我們來(lái)了解比較常用的Xavier初始值和He初始值,看它們會(huì)對(duì)激活值的分布產(chǎn)生什么影響。

Xavier初始化

Xavier初始化的思想很簡(jiǎn)單,即盡可能保持所有層之間輸入輸出的方差一致。

對(duì)于兩獨(dú)立隨機(jī)變量有:

如果同時(shí)X,Y的均值為零,有:

基于以上條件,那么:

其中,基于假設(shè)1有:

類似地,有:

和:

基于以上,我們有:

如果我們考慮整個(gè)網(wǎng)絡(luò),并用L代表輸出層的話。那么輸出層的方差與輸入層方差的關(guān)系為:

從這可以看出,我們輸出和輸入的方差變化取決于:

上面是正向傳播過(guò)程,下面我們考慮反向傳播過(guò)程。

網(wǎng)上大多數(shù)只有正向傳播的證明,反向傳播稍微復(fù)雜一點(diǎn),但也不是無(wú)法證明的。

為了簡(jiǎn)化表示,我們引入一個(gè)記號(hào):

其中C為損失。

先看第l層:

如果我們考慮整個(gè)網(wǎng)絡(luò),并用L代表輸出層,x代表輸入向量。那么輸出的梯度和輸入的梯度的關(guān)系為:

證明完畢。

因?yàn)榫鶆蚍植嫉姆讲顬?

令方差等于上面的調(diào)和平均數(shù)有:

雖然在上面的推理中,我們假設(shè)激活函數(shù)為恒等函數(shù)(“不存在非線性”)在神經(jīng)網(wǎng)絡(luò)中很容易被違反, 但Xavier初始化方法在實(shí)踐中被證明是有效的。

繼續(xù)上面的實(shí)驗(yàn),我們采用Xavier初始化方法,這里輸入和輸出大小一致,因此取%5Cfrac%20%7B1%7D%20%7Bn_%7Bin%7D%7D

就可以了:

可以看到,輸出值在5層之后依然保持良好的分布。我們這里使用的激活函數(shù)為sigmoid,那如果換成ReLU會(huì)怎樣呢?

前面幾層看起來(lái)還可以,隨著層數(shù)的加深,偏向一點(diǎn)點(diǎn)變大。當(dāng)層加深后,激活值的偏向變大,就容易出現(xiàn)梯度消失的問(wèn)題。

那么怎么辦呢?Kaiming初始化的提出就是為了解決這個(gè)問(wèn)題。

Kaiming初始化

Kaiming初始化是由何凱明大神提出的,又稱為He初始化。主要針對(duì)ReLU激活函數(shù):

基于上面公式(4)(6),有:

再根據(jù)方差的公式:

公式(26)可以轉(zhuǎn)換為:

上式最后幾步基于W的均值為零,所以E(z)%3DE(Wa)%3DE(W)E(a)%3D0%3DE(y)

所以,由公式(27)有E(y%5E2)%3DVar(y)。

把x,y用原來(lái)的式子表示,并將(29)代入式(28)得:

為了讓z%5E%7B%5Bl%5D%7Dz%5E%7B%5Bl-1%5D%7D

的方差一致,需要有:

類似的,計(jì)算反向傳播(注意要考慮ReLU的導(dǎo)數(shù))可以得到

但是Kaiming初始化沒(méi)有像Xaiver初始化那樣取兩者的調(diào)和平均數(shù),而是根據(jù)需要任取一個(gè)即可,就像Pytorch的實(shí)現(xiàn)那樣根據(jù)需要取輸入還是輸出大小。

同理如果采用均勻分布U%5B-a%2Ca%5D的話,那么a%3D%5Csqrt%20%7B%5Cfrac%20%7B6%7D%20%7Bn%7D%7D,這里n要么是輸入大小,要么是輸出大小。

繼續(xù)上面的實(shí)驗(yàn),采用He初始化方法:

而當(dāng)初始值為He初始值時(shí),各層中分布的廣度相同。由于即便層加深,數(shù)據(jù)的廣度也能保持不變,因此逆向傳播時(shí),也會(huì)傳遞合適的值。

代碼實(shí)現(xiàn)

代碼實(shí)現(xiàn)就很簡(jiǎn)單了,代碼地址:

?? https://github.com/nlp-greyfoss/metagrad

我們通過(guò)調(diào)用實(shí)現(xiàn)的kaiming_normal_就可以采用Kaiming初始化了。

References

https://www.deeplearning.ai/ai-notes/initialization/

關(guān)于【學(xué)姐帶你玩AI】公眾號(hào)

回復(fù)“機(jī)器學(xué)習(xí)”免費(fèi)獲取機(jī)器學(xué)習(xí)實(shí)戰(zhàn)導(dǎo)學(xué)資料

包含電子書+課件+思維導(dǎo)圖……

這幾種常用的權(quán)重初始化方法你都掌握了嗎?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
恩施市| 迁安市| 崇左市| 永德县| 抚顺县| 常宁市| 贺兰县| 安义县| 翁源县| 西平县| 石狮市| 绥棱县| 潞城市| 砀山县| 连江县| 化德县| 五峰| 嘉兴市| 安平县| 宜兰县| 大安市| 西青区| 平塘县| 常宁市| 三河市| 巴青县| 淮阳县| 柳林县| 岗巴县| 鄢陵县| 西盟| 尉犁县| 玉龙| 泽普县| 榕江县| 静安区| 弥勒县| 满城县| 安化县| 龙胜| 惠水县|