日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【深度学习理论】(4) 权重初始化,Batch Normalization

發(fā)布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【深度学习理论】(4) 权重初始化,Batch Normalization 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

各位同學好,最近學習了CS231N斯坦福計算機視覺公開課,講的太精彩了,和大家分享一下。

1. 權(quán)重初始化

1.1 相同的初始化權(quán)重

神經(jīng)網(wǎng)絡中的所有權(quán)重都能通過梯度下降和反向傳播來優(yōu)化和更新?,F(xiàn)在問題來了,如果每一層的權(quán)重全部初始化為同一個常數(shù),不同層的常數(shù)可以不一樣,會發(fā)生什么呢。

這樣會導致同一層的所有神經(jīng)元前向傳播和反向傳播完全相同。

如下圖,前向傳播過程中,每一個隱層接收到的輸入是一樣的(x1,x2,...),每個隱層神經(jīng)元對應每個輸入神經(jīng)元的權(quán)重又是相同的,那么每個隱層神經(jīng)元的輸出是一樣的。那么它們反向傳播回來的梯度肯定是一樣的。

相當于隱含層只有一個節(jié)點有作用,其他隱層神經(jīng)元的輸入和輸出都和它一樣,即使有五百個神經(jīng)元,也只能學習到一個神經(jīng)元的特征,這和只有一個神經(jīng)元沒有區(qū)別。?

因此,多層神經(jīng)網(wǎng)絡不能將權(quán)重初始化為同一個數(shù),否則無法打破對稱性。


1.2 過小的初始化權(quán)重

那現(xiàn)在給每個權(quán)重隨機初始化,比如使用numpy的隨機標準正態(tài)分布(均值=0,方差=1),如下,Din代表上一層的神經(jīng)元個數(shù),Dout代表本層的神經(jīng)元個數(shù)乘以0.01進行幅度縮放。

# 生產(chǎn)Din行Dout列的矩陣,每個元素都服從標準正態(tài)分布
w = 0.01 * np.random.randn(Din, Dout)

現(xiàn)在使用6層神經(jīng)網(wǎng)絡,每一層都有4096個神經(jīng)元,使用雙曲正切tanh激活函數(shù)(輸出在-1到1之間),用直方圖表示每一層的輸出分布。如下圖,我們發(fā)現(xiàn),越往后面的層,神經(jīng)元的輸出就越接近于0,標準差越來越小接近0

每個神經(jīng)元的輸出結(jié)果:f代表激活函數(shù)。

對Wi求偏導數(shù):xi代表上一層神經(jīng)元的輸出,由于神經(jīng)元的輸出越來越接近0,那么偏導數(shù)非常接近0,此時會出現(xiàn)梯度消失現(xiàn)象

正是因為較小的權(quán)重初始化,使得隨著層數(shù)加深,每個神經(jīng)元的輸出值越來越接近0,所有值都集中在0附近,那么求偏導數(shù)之后xi趨于0,梯度會等于0,梯度消失


1.3 過大的權(quán)重初始化

?那現(xiàn)在使用較大的權(quán)重初始化。乘以0.05進行幅度縮放。會發(fā)生什么呢

# 生產(chǎn)Din行Dout列的矩陣,每個元素都服從標準正態(tài)分布
w = 0.05 * np.random.randn(Din, Dout)

使用上面相同的網(wǎng)絡結(jié)構(gòu),現(xiàn)在使用6層神經(jīng)網(wǎng)絡,每一層都有4096個神經(jīng)元,使用雙曲正切tanh激活函數(shù)(輸出在-1到1之間),用直方圖表示每一層的輸出分布。如下圖,每一層的輸出都集中在飽和區(qū)(雙曲正切有-1和1的飽和區(qū))

每個神經(jīng)元的輸出結(jié)果:f代表雙曲正切激活函數(shù)。

對Wi求偏導數(shù):xi代表上一層神經(jīng)元的輸出,神經(jīng)元的輸出越來越接近-1和1;代表雙曲正切函數(shù)的導數(shù),由于此時曲線值都處于飽和區(qū),導數(shù)非常接近0,此時會出現(xiàn)梯度消失現(xiàn)象


1.4 Xavier 初始化方法

為了避免由于過大或者過小的初始化權(quán)重產(chǎn)生的問題,Xaviver 初始化方法根據(jù)輸入維度來確定初始化權(quán)重給輸入維度開平方根放在分母上,作為懲罰。如果輸入維度很大,那么分母就很大,權(quán)重初始化就比較小,自適應地調(diào)整權(quán)重的幅度

在卷積神經(jīng)網(wǎng)絡中,Din代表感受野的大小,Din=kernel_size^2 * input_channels

如下圖,每一層的輸出既沒有集中在飽和區(qū)也沒有集中在0附近,均勻分布在-1到1這個區(qū)間中。而且隨著層數(shù)加深,每一層的輸入和輸出很相似。

輸入的維度越多,表示輸入更繁雜變化更大,需要給一個更大的懲罰,權(quán)重初始化時的幅度就要越小。


1.5 Kaiming 初始化方法

由于 Xavier 初始化假設 w 和 x 關(guān)于0對稱,并且 Xavier 初始化方法沒有考慮激活函數(shù)。然而Xavier方法在ReLU方法里面就不成立了,因為ReLU激活函數(shù)輸出結(jié)果都是大于等于0的。如果在ReLU中使用Xavier初始化,神經(jīng)網(wǎng)絡每層的輸出結(jié)果會集中到0附近,出現(xiàn)梯度消失的現(xiàn)象。

何凱明大神在ResNet中就使用了Kaiming初始化方法解決了上述問題。

(1)Kaiming 初始化方法把 Xavier 初始化方法用在了輸出關(guān)于0對稱的條件下面

(2)探討了不同的權(quán)重。如果想讓輸入和輸出的方差相同① 若Wij服從正態(tài)分布,權(quán)重需要滿足以 0 為均值 d/2 為標準差的正太分布;② 若Wij服從均勻分布,權(quán)重需要服從??到??之間的均勻分布

如下圖,這樣每層輸出結(jié)果,在正值區(qū)域內(nèi)就不會都局限在特別小的區(qū)域或飽和區(qū)域。


2. Batch Normalization

2.1 訓練階段

現(xiàn)在我們希望神經(jīng)網(wǎng)絡層的中間結(jié)果服從標準正態(tài)分布,不希望輸出值全都聚集到0或都集中在飽和區(qū)。將中間層的輸出結(jié)果強行進行標準正態(tài)分布變換,就是Batch Normalization

現(xiàn)在一個batch中有N個數(shù)據(jù),每個數(shù)據(jù)D維(D個特征)。相當于N行D列的矩陣?,F(xiàn)在給每一列求均值,求得D個均值。也就是,求出一個batch的N個數(shù)據(jù)里面,每一個數(shù)據(jù)某一列的均值,即所有數(shù)據(jù)在某一列上的均值?。再求出所有數(shù)據(jù)再某一列上的方差 。最后對batch中的每個數(shù)據(jù)進行批歸一化。其中是非常小的數(shù),保證分母不為0

有時強行轉(zhuǎn)成標準正態(tài)分布并不好,因此引入了兩個參數(shù),,這兩個參數(shù)需要在網(wǎng)絡中學習,優(yōu)化上面的批歸一化結(jié)果。

最終輸出結(jié)果為:

訓練階段的 Batch Normalization 的作用就是,把中間層的輸出結(jié)果盡可能的拉開,使梯度盡可能的暴露出來。


2.2 測試階段

測試階段是一個一個數(shù)據(jù)進行測試,batch_size=1,就不存在N個數(shù)據(jù)。因此在訓練過程中需要把每一批的數(shù)據(jù)的均值、標準差保存下來,最后求出一個全局的均值和標準差。在測試階段,就用訓練階段得到的全局的均值和標準差來進行 Batch Normalization

用訓練時的總均值、總方差來代替每個batch的均值、方差,其他步驟都和訓練階段相同。


2.3 在卷積神經(jīng)網(wǎng)絡中的使用

在全連接神經(jīng)網(wǎng)絡中,一批有N個數(shù)據(jù),每個數(shù)據(jù)是D維,求出D個均值和方差。在網(wǎng)絡中學習?(分別有D個),最后批標準化的結(jié)果為:。每個維度單獨地進行歸一化后,再單獨地使用這兩個參數(shù)。

在卷積神經(jīng)網(wǎng)絡中一批有N個數(shù)據(jù),每張圖片用C個卷積核,生成C個特征圖,每個特征圖的長寬分別是 H?*?W?。對每個通道都求出整個batch的均值和標準差,得到C個均值和C個標準差,然后每個通道又單獨地訓練出。每個通道單獨地進行歸一化后,再單獨地使用這兩個參數(shù)。

Batch Normalization 的作用

加快收斂;改善梯度(遠離飽和區(qū));使用大學習率就不會出現(xiàn)梯度消失的情況;對初始化不敏感;起到正則化作用。

總結(jié)

以上是生活随笔為你收集整理的【深度学习理论】(4) 权重初始化,Batch Normalization的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。