1.batch normalization
首先,我們要清楚cnn的反向傳播中更新引數用到的梯度下降,是基於mini-batch sgd。mini-batch就表示有一定的batch size(>1)。實驗發現當batch size<8時神經網路的輸出誤差會顯著增大。對於batch normalization的應用,舉例來說:
乙個feature map 為k*h*w大小,k表示通道數,h表示特徵圖的高,w表示特徵圖的寬,乙個卷積層為m*k*f*f大小,m表示卷積核的個數,f表示卷積核的長或寬。對乙個feature map 卷積處理後若尺寸不變就得到m*h*w, 而batch size中包含n個feature map,則對於乙個mini-batch,卷積一次就會產生n個m*h*w,而batch normalization就是對乙個集合s中所有數求平均值u和標準差
通過2.batch normalization的優點和缺點:
優點:加快模型收斂速度,引入隨機雜訊增強模型泛化能力。
缺點:訓練時和**時的統計量不一致,即集合s不一致,訓練時是mini-batch輸入,**時是一張一張輸入。
3.解決方式:
(1)layer normalization
這種方式就是設定集合s為乙個feature map的m個通道中所有層的h*w的畫素值,當輸入為一張圖時,而且這種方式用在rnn中效果較好。但是在cnn下不如batch normalization和group normalization等模型。
(2)instance normalizatin
這種方式是設定集合s為m個通道中乙個通道上h*w的畫素值。這種方式僅適用於cnn,對於mlp(全連線網路)和rnn不適用,因為按照這種方式,就只剩下乙個神經元了,無法形成集合s。
這種方式應用於生成模擬如風格轉換效果是明顯優於bn的,但在影象分類任務上效果不如bn。
(3)group normalization
該種方式是layer normalization的變種,將乙個feature map的m個通道分組,則集合s為乙個組的所有畫素值。
4.normalization的re-scaling不變性
權重矩陣
re-scaling
不變性權重向量
re-scaling
不變性資料
re-scaling
不變性bn
不變不變
不變ln
不變變化
不變in
不變不變
不變gn
不變變化
不變5.bn為何有效
張俊林老師認為:normalization通過對啟用值進行正態分佈化的引數重整,產生引數re-scaling不變的效果,因此緩解梯度消失或梯度**問題,與其對應的重整後的損失曲面及梯度也因此變得更平滑,更有利於sgd尋優找到問題好的解決方案。
張俊林老師的文章寫的通俗易懂,我讀完獲益匪淺,遂立即做了筆記,再次感謝張俊林老師的分享!
normalization問題分析
從得到的另一文字儲存的結果 x 1 1 1 17837.8 120910 2 9072.4 96042.5 3 5.79773 8.93843 4 0.000159379 0.00488674 5 0.113665 0.338039 6 47.6554 885.154 7 5.89921 9.045...
caffe中的normalization實現
首先得感謝某牛的 如何在caffe中增加layer以及caffe中triplet loss layer的實現 所以接下來就按照這個牛的介紹,逐個往裡面新增東西就好了。構造設定函式這裡就先忽略,直接進入前饋和反饋的實現。前饋的過程相對來說是比較簡單的,如下 template void normaliz...
Normalization(資料歸一化)
資料歸一化方法大全 在資料分析之前,我們通常需要先將資料標準化 normalization 利用標準化後的資料進行資料分析。資料標準化也就是統計資料的指數化。資料標準化處理主要包括資料同趨化處理和無量綱化處理兩個方面。資料同趨化處理主要解決不同性質資料問題,對不同性質指標直接加總不能正確反映不同作用...