成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

fantix / 985人閱讀

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

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

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

批量歸一化(Batch Normalization/BN)

Normalization——“歸一化”

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

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

歸一化

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

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

變換重構

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


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

測試時!

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

BN好處有啥

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

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

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

減少對參數(shù)初始化的依賴,就算參數(shù)初始化得不好,在BN的加持下網(wǎng)絡還是表現(xiàn)較好

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

補充

Batch Normalization 論文

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

推薦 BN導讀

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

轉載請注明本文地址:http://m.hztianpu.com/yun/42363.html

相關文章

  • DL-CV批量一化BN算法

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

    miya 評論0 收藏0

發(fā)表評論

0條評論

fantix

|高級講師

TA的文章

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