国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【DL-CV】批量歸一化(BN算法)

miya / 2018人閱讀

摘要:為了解決這個問題出現了批量歸一化的算法,他對每一層的輸入進行歸一化,保證每層的輸入數據分布是穩定的,從而加速訓練批量歸一化歸一化批,一批樣本輸入,,個樣本與激活函數層卷積層全連接層池化層一樣,批量歸一化也屬于網絡的一層,簡稱。

【DL-CV】數據預處理&權重初始化<前篇---后篇>【DL-CV】正則化,Dropout

先來交代一下背景:在網絡訓練的過程中,參數的更新會導致網絡的各層輸入數據的分布不斷變化,那么各層在訓練的過程中就需要不斷的改變以適應這種新的數據分布,從而造成網絡訓練困難,收斂變慢(而且網絡越深越難),在論文中這個問題被稱為“Internal Covariate Shift”。為了解決這個問題出現了批量歸一化的算法,他對每一層的輸入進行歸一化,保證每層的輸入數據分布是穩定的,從而加速訓練

批量歸一化(Batch Normalization/BN)

Normalization——“歸一化”

Batch——“批”,一批樣本輸入,batch_size=m,m個樣本

與激活函數層、卷積層(cnn)、全連接層(FC)、池化層一樣,批量歸一化也屬于網絡的一層,簡稱BN。BN通常用在FC/cnn之后,激活函數層之前,他對FC/cnn的輸出的每一維進行歸一化(歸一化至:均值0、方差為1),然后變換重構后再把數據喂給下一層網絡。

歸一化

對輸入數據的每一維xk(每一列)進行歸一化得到$hat{x}^{k}$
$$hat{x}^{(k)} = frac{x^{k} - E[x^{k}]}{sqrt{Var[x^{k}]}}$$

通過該公式我們強行把數據歸一化,特征分布成功被壓縮至標準差為1。但這種變化是有破壞性的,原來的特征分布都被搞亂了那還學個鬼?——為了解決這一問題,我們對歸一化后的數據再進行變換重構,以恢復原來的特征

變換重構

對于歸一化后輸入$hat{x}^{k}$,我們再引入兩個可供學習的參數$gamma$和$eta$使
$$y^{k} = gamma^{k}hat{x}^{k}+eta^{k}$$
注意如果$gamma^{k}=sqrt{Var[x^k]}$,$eta^{k}=E[x^k]$時,是可以恢復原有的特征的。這就是引入這兩個參數的意義,雖然網絡不太可能學習到$gamma^{k}=sqrt{Var[x^k]}$,$eta^{k}=E[x^k]$,但是好歹通過學習到這兩個參數盡可能地回復原有的特征(實踐中的表現說明這是有用的)


最后總結BN操作:(m是mini batch size,根號中的ε是一個很小的數防止分母為0)

測試時!

上面講了這么多其實都是訓練時的BN算法,訓練時是一個一個batch進去的,訓練完成后得到$gamma$和$eta$。但是在測試時,我們只是丟一個樣本進去讓網絡預測,試問一個樣本何來均值和方差?
均值和方差最好的來源是整個訓練集,但是整個訓練集往往太大,我們不太想算。能不能從現成的 mini batch 的均值和方差(因為在訓練時算了出來)估計出整個訓練集的均值和方差呢——當然可以,因為mini batch是隨機取樣的:
$$E[x] = E_B[mu_B]$$
$$Var[x] = frac{m}{m-1}E_B[sigma_B^2]$$
即平均值為所有mini-batch的平均值的平均值,而方差為每個batch的方差的無偏估計。當網絡訓練完后,我們通過訓練時保存下來的每個batch的均值與方差估算出全局均值與方差供測試時使用,也就是說當網絡訓練完后每個BN層中的均值也和標準差也會隨之確定。

BN好處有啥

能選擇較大的初始學習率,提高訓練收斂速度

你再也不用去理會過擬合中drop out、L2正則項參數的選擇問題,采用BN算法后,你可以移除這兩項了參數,或者可以選擇更小的L2正則約束參數了,因為BN自帶正則化的特性,能提高網絡泛化能力

減少梯度爆炸/消失的出現,特別對于tanh,sigmoid這類會兩端飽和的激活函數

減少對參數初始化的依賴,就算參數初始化得不好,在BN的加持下網絡還是表現較好

雖然BN是2015才提出來的(看上去像個新米),但是他表現也超凡,BN算法已經被大量使用于深度學習中,真的是nb

補充

Batch Normalization 論文

以上的BN使用是基于全連接層的,輸入數據都是二維矩陣。BN也可以用在cnn中,用法不同,可以參考此文章

推薦 BN導讀

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19809.html

相關文章

  • DL-CV批量一化BN算法

    摘要:為了解決這個問題出現了批量歸一化的算法,他對每一層的輸入進行歸一化,保證每層的輸入數據分布是穩定的,從而加速訓練批量歸一化歸一化批,一批樣本輸入,,個樣本與激活函數層卷積層全連接層池化層一樣,批量歸一化也屬于網絡的一層,簡稱。 【DL-CV】數據預處理&權重初始化【DL-CV】正則化,Dropout 先來交代一下背景:在網絡訓練的過程中,參數的更新會導致網絡的各層輸入數據的分布不斷變化...

    fantix 評論0 收藏0

發表評論

0條評論

miya

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<