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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Group Normalization(BN、LN、IN、GN) Switchable Normalization Weight Standardization

發(fā)布時(shí)間:2024/3/24 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Group Normalization(BN、LN、IN、GN) Switchable Normalization Weight Standardization 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • BN
    • BN的作用
      • 為了對隱含層進(jìn)行歸一化操作。對于每個(gè)隱層神經(jīng)元,把逐漸向非線性函數(shù)映射后向取值區(qū)間極限飽和區(qū)靠攏的輸入分布強(qiáng)制拉回到均值為0方差為1的比較標(biāo)準(zhǔn)的正態(tài)分布,使得非線性變換函數(shù)的輸入值落入對輸入比較敏感的區(qū)域,以此避免梯度消失問題。(如下圖,加入激活函數(shù)后,可能會(huì)使很多的數(shù)據(jù)進(jìn)入飽和區(qū)(即當(dāng)x大于20之后,其梯度幾乎為0))

    • 添加BN的原因
      • 因?yàn)樘砑拥募せ詈瘮?shù)(非線性函數(shù)),會(huì)逐漸將隱含層的輸出映射到激活函數(shù)的飽和區(qū),從而慢慢使得數(shù)據(jù)傳不到后面的層,即出現(xiàn)梯度消失的問題
    • BN添加的位置
      • 激活函數(shù)之前
    • BN算法
      • BN在batch的維度上norm,歸一化維度為[N,H,W],對batch中對應(yīng)的channel歸一化,反標(biāo)準(zhǔn)化是為了,抵消不是最優(yōu)的情況,即有的時(shí)候歸一化可能會(huì)破壞原來的數(shù)據(jù)分布,兩個(gè)參數(shù)是可以學(xué)習(xí)的參數(shù)

      • BN的代碼實(shí)現(xiàn),其中x為(N,C*H*W)
        • mu = np.mean(x,axis=0)
        • sigma2 = np.var(x,axis=0)
        • x_hat = (x-mu)/np.sqrt(sigma2+eps)
        • out = gamma*x_hat + beta
  • BN、LN、IN、GN的異同
    • 從左到右依次是BN,LN,IN,GN

    • BN是在batch的維度上歸一化,即對整個(gè)batch內(nèi)的對應(yīng)的通道歸一化,即依賴于batch size,當(dāng)batchsize很小時(shí),歸一化效果不好
    • LN是在channel上歸一化(即針對單個(gè)訓(xùn)練樣本進(jìn)行,不依賴于其他數(shù)據(jù)),即對同一個(gè)feature map的所有的通道歸一化,不依賴與batchsize,但?LN 的處理可能會(huì)降低模型的表達(dá)能力
    • IN是只對一個(gè)feature map的同一個(gè)channel內(nèi)的數(shù)據(jù)歸一化,多用于GAN和style transfer,因?yàn)锽N的計(jì)算是要受其他樣本影響的,由于每個(gè)batch的均值和標(biāo)準(zhǔn)差不穩(wěn)定,對于單個(gè)數(shù)據(jù)而言,相對于是引入了噪聲,而BN獲得的整體信息對這兩種任務(wù)沒有什么效果。
    • GN是對一個(gè)feature map的所有通道進(jìn)行分組,對屬于一組的 通道內(nèi)的所有數(shù)據(jù)進(jìn)行歸一化。GN介于LN和IN之間,其首先將channel分為許多組(group),對每一組做歸一化,及先將feature的維度由[N, C, H, W]reshape為[N*G,C//G , H, W],歸一化的維度為[C//G , H, W]
  • GN
    • Group Normalization(GN)是針對Batch Normalization(BN)在batch size較小時(shí)錯(cuò)誤率較高而提出的改進(jìn)算法,因?yàn)锽N層的計(jì)算結(jié)果依賴當(dāng)前batch的數(shù)據(jù),當(dāng)batch size較小時(shí)(比如2、4這樣),該batch數(shù)據(jù)的均值和方差的代表性較差,因此對最后的結(jié)果影響也較大。(研究意義:在訓(xùn)練大型網(wǎng)絡(luò)和將特征轉(zhuǎn)移到計(jì)算機(jī)視覺任務(wù)中(包括檢測、分割和視頻),內(nèi)存消耗限制了只能使用小批量的BN。真的用的到嘛??)
    • 如果batchsize可以設(shè)的大的話,BN應(yīng)該是要比GN好一些(如下圖),GN比BN的速度要慢一寫,因?yàn)槎嗔藃eshape的過程
    • 注意:
      • ?第一,使用ImageNet的預(yù)訓(xùn)練網(wǎng)絡(luò)的時(shí)候,要frozenBN層,不然結(jié)果反而會(huì)劣化,而GN不會(huì)有這個(gè)問題。保持特征網(wǎng)絡(luò)的BNfrozen,只在Head部分使用GN會(huì)提升效果,但是如果把backbone也換成GN預(yù)訓(xùn)練的,效果會(huì)更好。
      • 第二,使用BN的準(zhǔn)確率模型性能已經(jīng)無法隨著迭代次數(shù)增加的時(shí)候,GN反而可能會(huì)隨著迭代次數(shù)的增加性能有一定的上升。
      • 第三,不使用預(yù)訓(xùn)練模型,GN仍然可以達(dá)到compared的性能,但是BN會(huì)出現(xiàn)結(jié)果的劣化
      • ...
  • SN(Switchable Normalization)
    • SN是一種能夠有效適應(yīng)不同任務(wù)地歸一化方式
    • 效果

    • SN的計(jì)算公式:(SN增加了6個(gè)控制參數(shù),相比于BN而言,還增加了LN、IN的計(jì)算)

    • 注意:
      • minibatch越小,SN中BN的權(quán)重系數(shù)越小,IN和LN的權(quán)重系數(shù)則越大;
      • minibatch越大,SN中BN的權(quán)重系數(shù)越大,IN和LN的權(quán)重系數(shù)越小。
  • 分析
    • 如果想換的話,需要從頭訓(xùn)練(GNpaper中說是從頭訓(xùn)能達(dá)到不錯(cuò)的效果,但是針對自己的數(shù)據(jù)集要進(jìn)行至少一次訓(xùn)練和遷移),或者找大數(shù)據(jù)集上的預(yù)訓(xùn)練模型(受限)
  • 為啥不把所有的數(shù)據(jù)求均值,方差試一下,有些極端,但感覺可以一試
  • Weight Standardization (太偏理論了)
    • WS+GN在batch size很小的情況下,性能也能超過BN(即使BN的batch size較大時(shí))

?

部分資源來源網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系刪除

總結(jié)

以上是生活随笔為你收集整理的Group Normalization(BN、LN、IN、GN) Switchable Normalization Weight Standardization的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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