亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決BN和Dropout共同使用時會出現(xiàn)的問題

 更新時間:2021年06月03日 09:57:07   作者:sliderSun  
這篇文章主要介紹了解決BN和Dropout共同使用時會出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

BN與Dropout共同使用出現(xiàn)的問題

BN和Dropout單獨使用都能減少過擬合并加速訓(xùn)練速度,但如果一起使用的話并不會產(chǎn)生1+1>2的效果,相反可能會得到比單獨使用更差的效果。

相關(guān)的研究參考論文:Understanding the Disharmony between Dropout and Batch Normalization by Variance Shift

本論文作者發(fā)現(xiàn)理解 Dropout 與 BN 之間沖突的關(guān)鍵是網(wǎng)絡(luò)狀態(tài)切換過程中存在神經(jīng)方差的(neural variance)不一致行為。

試想若有圖一中的神經(jīng)響應(yīng) X,當網(wǎng)絡(luò)從訓(xùn)練轉(zhuǎn)為測試時,Dropout 可以通過其隨機失活保留率(即 p)來縮放響應(yīng),并在學(xué)習(xí)中改變神經(jīng)元的方差,而 BN 仍然維持 X 的統(tǒng)計滑動方差。

這種方差不匹配可能導(dǎo)致數(shù)值不穩(wěn)定(見下圖中的紅色曲線)。

而隨著網(wǎng)絡(luò)越來越深,最終預(yù)測的數(shù)值偏差可能會累計,從而降低系統(tǒng)的性能。

簡單起見,作者們將這一現(xiàn)象命名為「方差偏移」。

事實上,如果沒有 Dropout,那么實際前饋中的神經(jīng)元方差將與 BN 所累計的滑動方差非常接近(見下圖中的藍色曲線),這也保證了其較高的測試準確率。

作者采用了兩種策略來探索如何打破這種局限。

一個是在所有 BN 層后使用 Dropout,另一個就是修改 Dropout 的公式讓它對方差并不那么敏感,就是高斯Dropout。

第一個方案比較簡單

把Dropout放在所有BN層的后面就可以了,這樣就不會產(chǎn)生方差偏移的問題,但實則有逃避問題的感覺。

第二個方案

來自Dropout原文里提到的一種高斯Dropout,是對Dropout形式的一種拓展。作者進一步拓展了高斯Dropout,提出了一個均勻分布Dropout,這樣做帶來了一個好處就是這個形式的Dropout(又稱為“Uout”)對方差的偏移的敏感度降低了,總得來說就是整體方差偏地沒有那么厲害了。

BN、dropout的幾個問題和思考

1、BN的scale初始化

scale一般初始化為1.0。

聯(lián)想到權(quán)重初始化時,使用relu激活函數(shù)時若采用隨機正太分布初始化權(quán)重的公式是sqrt(2.0/Nin),其中Nin是輸入節(jié)點數(shù)。即比一般的方法大了2的平方根(原因是relu之后一半的數(shù)據(jù)變成了0,所以應(yīng)乘以根號2)。

那么relu前的BN,是否將scale初始化為根號2也會加速訓(xùn)練?

這里主要有個疑點:BN的其中一個目的是統(tǒng)一各層的方差,以適用一個統(tǒng)一的學(xué)習(xí)率。那么若同時存在sigmoid、relu等多種網(wǎng)絡(luò),以上方法會不會使得統(tǒng)一方差以適應(yīng)不同學(xué)習(xí)率的效果打了折扣?

沒來得及試驗效果,如果有試過的朋友請告知下效果。

2、dropout后的標準差改變問題

實踐發(fā)現(xiàn)droput之后改變了數(shù)據(jù)的標準差(令標準差變大,若數(shù)據(jù)均值非0時,甚至均值也會產(chǎn)生改變)。

如果同時又使用了BN歸一化,由于BN在訓(xùn)練時保存了訓(xùn)練集的均值與標準差。dropout影響了所保存的均值與標準差的準確性(不能適應(yīng)未來預(yù)測數(shù)據(jù)的需要),那么將影響網(wǎng)絡(luò)的準確性。

若輸入數(shù)據(jù)為正太分布,只需要在dropout后乘以sqrt(0.5)即可恢復(fù)原來的標準差。但是對于非0的均值改變、以及非正太分布的數(shù)據(jù)數(shù)據(jù),又有什么好的辦法解決呢?

3、稀疏自編碼的稀疏系數(shù)

稀疏自編碼使用一個接近0的額外懲罰因子來使得隱層大部分節(jié)點大多數(shù)時候是抑制的,本質(zhì)上使隱層輸出均值為負數(shù)(激活前),例如懲罰因子為0.05,對應(yīng)sigmoid的輸入為-3.5,即要求隱層激活前的輸出中間值為-3.5,那么,是不是可以在激活前加一層BN,beta設(shè)為-3.5,這樣學(xué)起來比較快?

經(jīng)過測試,的確將BN的beta設(shè)為負數(shù)可加快訓(xùn)練速度。因為網(wǎng)絡(luò)初始化時就是稀疏的。

但是是不是有什么副作用,沒有理論上的研究。

4、max pooling是非線性的,avg pooling是線性的

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python常用函數(shù)詳解

    python常用函數(shù)詳解

    本文給大家總結(jié)了python中常用函數(shù),非常的細致全面,有需要的小伙伴可以參考下
    2016-09-09
  • 詳解使用Python+Pycaret進行異常檢測

    詳解使用Python+Pycaret進行異常檢測

    異常檢測提供了在數(shù)據(jù)中發(fā)現(xiàn)模式、偏差和異常的途徑,這些模式、偏差和異常不限于模型的標準行為。本文將用Python?Pycaret進行異常檢測,感興趣的可以了解一下
    2022-03-03
  • 深入探討opencv圖像矯正算法實戰(zhàn)

    深入探討opencv圖像矯正算法實戰(zhàn)

    在機器視覺中,對于圖像的處理有時候因為放置的原因?qū)е翿OI區(qū)域傾斜,這個時候我們會想辦法把它糾正為正確的角度視角來,本文主要介紹了opencv圖像矯正算法,感興趣的可以了解一下
    2021-05-05
  • 跟老齊學(xué)Python之玩轉(zhuǎn)字符串(2)更新篇

    跟老齊學(xué)Python之玩轉(zhuǎn)字符串(2)更新篇

    本文是玩轉(zhuǎn)字符串的續(xù)篇,繼續(xù)對字符串的連接方法進行介紹,以及字符串復(fù)制、字符串長度、字符大小寫的轉(zhuǎn)換。非常不錯的文章,希望對大家有所幫助
    2014-09-09
  • python 實現(xiàn)圖片旋轉(zhuǎn) 上下左右 180度旋轉(zhuǎn)的示例

    python 實現(xiàn)圖片旋轉(zhuǎn) 上下左右 180度旋轉(zhuǎn)的示例

    今天小編就為大家分享一篇python 實現(xiàn)圖片旋轉(zhuǎn) 上下左右 180度旋轉(zhuǎn)的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python中用format函數(shù)格式化字符串的用法

    Python中用format函數(shù)格式化字符串的用法

    這篇文章主要介紹了Python中用format函數(shù)格式化字符串的用法,格式化字符串是Python學(xué)習(xí)當中的基礎(chǔ)知識,本文主要針對Python2.7.x版本,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于numpy.where()函數(shù) 返回值的解釋

    關(guān)于numpy.where()函數(shù) 返回值的解釋

    今天小編就為大家分享一篇關(guān)于numpy.where()函數(shù) 返回值的解釋,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python+Yolov5人臉口罩識別的詳細步驟

    Python+Yolov5人臉口罩識別的詳細步驟

    人臉口罩佩戴檢測(識別)是當前急需的應(yīng)用,而YOLOv5是目前流行的強悍的目標檢測技術(shù),下面這篇文章主要給大家介紹了關(guān)于Python+Yolov5人臉口罩識別的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 使用python實現(xiàn)個性化詞云的方法

    使用python實現(xiàn)個性化詞云的方法

    最近看到可視化的詞云,看到網(wǎng)上也很多這樣的工具,但是都不怎么完美,有些不支持中文,有的中文詞頻統(tǒng)計得莫名其妙、有的不支持自定義形狀、所有的都不能自定義顏色,于是網(wǎng)上找了一下,決定用python繪制詞云
    2017-06-06
  • 分析Python的Django框架的運行方式及處理流程

    分析Python的Django框架的運行方式及處理流程

    這篇文章主要介紹了分析Python的Django框架的運行方式及處理流程,本文對于Django框架的機制總結(jié)得非常之直觀精煉,極力推薦!需要的朋友可以參考下
    2015-04-04

最新評論