久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【AI初識(shí)境】什么是深度學(xué)習(xí)成功的開(kāi)始?參數(shù)初始化

 有三AI 2020-11-27

這是《AI初識(shí)境》第5篇,,這次我們說(shuō)說(shuō)初始化,。所謂初識(shí),,就是對(duì)相關(guān)技術(shù)有基本了解,掌握了基本的使用方法,。

神經(jīng)網(wǎng)絡(luò)要優(yōu)化一個(gè)非常復(fù)雜的非線性模型,,而且基本沒(méi)有全局最優(yōu)解,初始化在其中扮演著非常重要的作用,,尤其在沒(méi)有BN等技術(shù)的早期,,它直接影響模型能否收斂

可以說(shuō)萬(wàn)事開(kāi)頭難,,沒(méi)有好的初始化的深度學(xué)習(xí)模型訓(xùn)練起來(lái)更難,。

作者&編輯  | 言有三

01

初始化的重要性

2006年Hinton等人在science期刊上發(fā)表了論文“Reducing the dimensionality of data with neural networks”,揭開(kāi)了新的訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)算法的序幕,。

利用無(wú)監(jiān)督的RBM網(wǎng)絡(luò)來(lái)進(jìn)行預(yù)訓(xùn)練,,進(jìn)行圖像的降維,取得比PCA更好的結(jié)果,,通常這被認(rèn)為是深度學(xué)習(xí)興起的開(kāi)篇,。

這么看來(lái),是因?yàn)楹玫某跏蓟椒ǖ某霈F(xiàn),,才有了深層神經(jīng)網(wǎng)絡(luò)工程化落地的可能性,。

好的初始化應(yīng)該滿足以下兩個(gè)條件:

(1) 讓神經(jīng)元各層激活值不會(huì)出現(xiàn)飽和現(xiàn)象;

(2) 各層激活值也不能為0,。

也就是激活值不要太大,,也不要太小,應(yīng)該剛剛好,,當(dāng)然這還只是最基本的要求,。

我們都知道在早期,sigmoid激活函數(shù)是多層感知器模型的標(biāo)配,,上面這篇文章同樣也是用sigmoid激活函數(shù),,沒(méi)有那么多問(wèn)題,是因?yàn)槭褂昧祟A(yù)訓(xùn)練,。

如果不使用預(yù)訓(xùn)練會(huì)如何,?在Xavier Glorot和Yoshua Bengio提出xavier初始化方法的論文【1】中就對(duì)不同的激活函數(shù)使用不同的數(shù)據(jù)集做過(guò)實(shí)驗(yàn)。

上面是一個(gè)四層的神經(jīng)網(wǎng)絡(luò)在sigmoid函數(shù)激活下的訓(xùn)練過(guò)程,,可以看到最深的layer4層剛開(kāi)始的時(shí)候很快就進(jìn)入了飽和區(qū)域(激活值很低),,其他幾層則比較平穩(wěn),在訓(xùn)練的后期才能進(jìn)行正常的更新,。

為什么會(huì)這樣呢,?網(wǎng)絡(luò)中有兩類參數(shù)需要學(xué)習(xí),一個(gè)是權(quán)重,,一個(gè)是偏置。對(duì)于上面的結(jié)果作者們提出了一個(gè)假設(shè),就是在網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程中,,偏置項(xiàng)總是學(xué)的更快,,網(wǎng)絡(luò)真正的輸出就是直接由layer4決定的,輸出就是softmax(b+Wh),。既然偏置項(xiàng)學(xué)的快,,那Wh就沒(méi)有這么重要了,所以激活值可以低一點(diǎn),。

解釋雖然比較牽強(qiáng),,但是畢竟實(shí)驗(yàn)結(jié)果擺在那里,從tanh函數(shù)的激活值來(lái)看會(huì)更直觀,。

這個(gè)圖有個(gè)特點(diǎn)是,,0,1和-1的值都不少,,而中間段的就比較少,。在0值,逼近線性函數(shù),,它不能為網(wǎng)絡(luò)的非線性能力作出貢獻(xiàn),。對(duì)于1,-1,,則是飽和區(qū),,沒(méi)有用。

02

常用的初始化方法

1,、全零初始化和隨機(jī)初始化

如果神經(jīng)元的權(quán)重被初始化為0,, 在第一次更新的時(shí)候,除了輸出之外,,所有的中間層的節(jié)點(diǎn)的值都為零,。一般神經(jīng)網(wǎng)絡(luò)擁有對(duì)稱的結(jié)構(gòu),那么在進(jìn)行第一次誤差反向傳播時(shí),,更新后的網(wǎng)絡(luò)參數(shù)將會(huì)相同,,在下一次更新時(shí),相同的網(wǎng)絡(luò)參數(shù)學(xué)習(xí)提取不到有用的特征,,因此深度學(xué)習(xí)模型都不會(huì)使用0初始化所有參數(shù),。

而隨機(jī)初始化就是搞一些很小的值進(jìn)行初始化,實(shí)驗(yàn)表明大了就容易飽和,,小的就激活不動(dòng),,再說(shuō)了這個(gè)沒(méi)技術(shù)含量,不必再討論,。

2.標(biāo)準(zhǔn)初始化

對(duì)于均勻分布,,X~U(a,b),,概率密度函數(shù)等于:

它的期望等于0,方差等于(b-a)^2/12,,如果b=1,,a=-1,就是1/3,。

下面我們首先計(jì)算一下,,輸出輸入以及權(quán)重的方差關(guān)系公式:

如果我們希望每一層的激活值是穩(wěn)定的,w就應(yīng)該用n的平方根進(jìn)行歸一化,,n為每個(gè)神經(jīng)元的輸入數(shù)量,。

所以標(biāo)準(zhǔn)的初始化方法其權(quán)重參數(shù)就是以下分布:

它保證了參數(shù)均值為0,方差為常量1/3,,和網(wǎng)絡(luò)的層數(shù)無(wú)關(guān),。

3.Xavier初始化

首先有一個(gè)共識(shí)必須先提出:神經(jīng)網(wǎng)絡(luò)如果保持每層的信息流動(dòng)是同一方差,那么會(huì)更加有利于優(yōu)化,。不然大家也不會(huì)去爭(zhēng)先恐后地研究各種normalization方法,。

不過(guò),Xavier Glorot認(rèn)為還不夠,,應(yīng)該增強(qiáng)這個(gè)條件,,好的初始化應(yīng)該使得各層的激活值和梯度的方差在傳播過(guò)程中保持一致,這個(gè)被稱為Glorot條件,。

如果反向傳播每層梯度保持近似的方差,,則信息能反饋到各層。而前向傳播激活值方差近似相等,,有利于平穩(wěn)地學(xué)習(xí),。

當(dāng)然為了做到這一點(diǎn),對(duì)激活函數(shù)也必須作出一些約定,。

(1) 激活函數(shù)是線性的,,至少在0點(diǎn)附近,而且導(dǎo)數(shù)為1,。

(2) 激活值關(guān)于0對(duì)稱,。

這兩個(gè)都不適用于sigmoid函數(shù)和ReLU函數(shù),而適合tanh函數(shù),。

要滿足上面的兩個(gè)條件,,就是下面的式子。

推導(dǎo)可以參考前面標(biāo)準(zhǔn)初始化的方法,,這里的ni,,ni+1分別就是輸入和輸出的神經(jīng)元個(gè)數(shù)了,因?yàn)檩斎胼敵霾幌嗟龋?span style="letter-spacing: 0px;box-sizing: border-box;">作為一種權(quán)衡,,文中就建議使用輸入和輸出的均值來(lái)代替,。

再帶入前面的均勻分布的方差(b-a)^2/12,,就得到了對(duì)于tanh函數(shù)的xavier初始化方法。

下面這兩個(gè)圖分別是標(biāo)準(zhǔn)初始化和xavier初始化帶來(lái)的各層的反傳梯度方差,,可以看出xavier確實(shí)保持了一致性,。

4.He初始化

Xavier初始化雖然美妙,,但它是針對(duì)tanh函數(shù)設(shè)計(jì)的,,而激活函數(shù)現(xiàn)在是ReLU的天下,ReLU只有一半的激活,,另一半是不激活的,,所以前面的計(jì)算輸入輸出的方差的式子多了一個(gè)1/2,如下,。

因?yàn)檫@一次沒(méi)有使用均勻初始化,,而是使用了正態(tài)分布,所以對(duì)下面這個(gè)式子:

需要的就是這樣的正態(tài)分布,。

綜上,,對(duì)于兩大最經(jīng)典的激活函數(shù),各自有了對(duì)應(yīng)的初始化方法,。雖然后面還提出了一些其他的初始化方法,,但是在我們這個(gè)系列中就不再詳述了。

03

關(guān)于初始化的一些思考

初始化這個(gè)問(wèn)題明顯比較麻煩,,不然大家也不會(huì)這么喜歡用pretrained模型了,。

從前面我們可以看到,大家努力的方向有這么幾個(gè),。

(1) 預(yù)訓(xùn)練啊,。

機(jī)智地一比,甩鍋給別人,,??,。

(2) 從激活函數(shù)入手,讓梯度流動(dòng)起來(lái)不要進(jìn)入飽和區(qū),,則什么初始化咱們都可以接受,。

這其實(shí)就要回到上次我們說(shuō)的激活函數(shù)了,ReLU系列的激活函數(shù)天生可以緩解這個(gè)問(wèn)題,,反過(guò)來(lái),,像何凱明等提出的方法,也是可以反哺激活函數(shù)ReLU,。

(3) 歸一化,,讓每一層的輸入輸出的分布比較一致,降低學(xué)習(xí)難度,。

回想一下,,這不就是BN干的活嗎,?所以才會(huì)有了BN之后,初始化方法不再需要小心翼翼地選擇,。假如不用BN,,要解決這個(gè)問(wèn)題有幾個(gè)思路,我覺(jué)得分為兩派,。

首先是理論派,,就是咱們從理論上分析出設(shè)計(jì)一個(gè)怎么樣的函數(shù)是最合適的。

對(duì)于Sigmoid等函數(shù),,xavier設(shè)計(jì)出了xavier初始化方法,,對(duì)于ReLU函數(shù),何凱明設(shè)計(jì)了he初始化方法,。

在此之上,,有研究者分別針對(duì)零點(diǎn)平滑的激活函數(shù)和零點(diǎn)不平滑的激活函數(shù)提出了統(tǒng)一的框架,見(jiàn)文【2】,,比如對(duì)于sigmoid,,tanh等函數(shù),方差和導(dǎo)數(shù)的關(guān)系如此,。

然后是實(shí)踐派,,在訓(xùn)練的時(shí)候手動(dòng)將權(quán)重歸一化的,見(jiàn)文【3】,,這就是向歸一化方法靠攏了,,下期咱們?cè)僦v。

[1] Glorot X, Bengio Y. Understanding the difficulty of training deep feedforward neural networks[C]//Proceedings of the thirteenth international conference on artificial intelligence and statistics. 2010: 249-256.

[2] Kumar S K. On weight initialization in deep neural networks[J]. arXiv preprint arXiv:1704.08863, 2017.

[3] Mishkin D, Matas J. All you need is a good init[J]. arXiv preprint arXiv:1511.06422, 2015.

最后發(fā)一個(gè)通知,,2019年有三AI培養(yǎng)計(jì)劃出爐了,,一個(gè)季度一期噢。

2019年有三AI“春季”劃,,給我一個(gè)榮耀,,還你一生榮耀

總結(jié)

好的初始化方法就是贏在起跑線,不過(guò)現(xiàn)在的初始化方法也不是對(duì)什么數(shù)據(jù)集都有效,,畢竟不同數(shù)據(jù)集的分布不同,,咱們以后再談。

下期預(yù)告:論深度學(xué)習(xí)中的歸一化

轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系

侵權(quán)必究

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多