<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      批處理化

      批處理化

      批處理化作為及其重要的優化技術,在此給出詳細的筆記記錄。

      Batch Normalization(批處理化)

      Batch Normalization作為最近一年來DL的重要成果,已經廣泛被證明其有效性和重要性?;〞鴮τ?strong>BN的介紹較為模糊,是從抽象的數學角度進行解釋的,我認為其并沒有寫出BN的本質好處。因此在查閱論文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》后,給出一些理解。

        機器學習領域有個很重要的假設:iid.獨立同分布假設,就是假設訓練數據和測試數據是滿足相同分布的,這是通過訓練數據獲得的模型能夠在測試集獲得好的效果的一個基本保障。那BatchNorm的作用是什么呢?BatchNorm就是在深度神經網絡訓練過程中使得每一層神經網絡的輸入保持相同分布的。

        為什么深度神經網絡隨著網絡深度加深,訓練起來越困難,收斂越來越慢?這是個在DL領域很接近本質的好問題。通常來說,深度越深,其模型的函數表示越復雜,梯度更可能發生消失和爆炸,這回導致在淺層的網絡很難學到“知識”,所以開發出例如預訓練和遷移學習等技術,同時研究者也在想辦法解決梯度消失和梯度爆炸的問題??梢钥吹胶芏嗾撐亩际墙鉀Q這個問題的,比如ReLU激活函數,再比如Residual Network,BN本質上也是解釋并從某個不同的角度來解決這個問題的。

      “Internal Covariate Shift”問題

        BN是用來解決“Internal Covariate Shift”問題的,那么首先得理解什么是“Internal Covariate Shift”?

        論文首先說明Mini-Batch SGD相對于One Example SGD的兩個優勢:梯度更新方向更準確;并行計算速度快;但是SGD訓練也有缺點:超參數調起來很麻煩。(用BN就能解決很多SGD的缺點)

        接著引入covariate shift的概念:如果ML系統實例集合<X,Y>中的輸入值X的分布老是變,這不符合IID假設,網絡模型很難穩定的學規律。對于深度學習這種包含很多隱層的網絡結構,在訓練過程中,因為各層參數不停在變化,所以每個隱層都會面臨covariate shift的問題,也就是在訓練過程中,隱層的輸入分布老是變來變去,這就是所謂的“Internal Covariate Shift”,Internal指的是深層網絡的隱層,是發生在網絡內部的事情,而不是covariate shift問題只發生在輸入層。然后提出了BatchNorm的基本思想:能不能讓每個隱層節點的激活輸入分布固定下來呢?這樣就避免了“Internal Covariate Shift”問題了。

        BN不是憑空出現的,它是有啟發來源的:之前的研究表明如果在圖像處理中對輸入圖像進行白化(Whiten)操作的話——所謂白化,就是對輸入數據分布變換到0均值,單位方差的正態分布——那么神經網絡會較快收斂,那么BN作者就開始推論了:圖像是深度神經網絡的輸入層,做白化能加快收斂,那么其實對于深度網絡來說,其中某個隱層的神經元是下一層的輸入,意思是其實深度神經網絡的每一個隱層都是輸入層,不過是相對下一層來說而已,那么能不能對每個隱層都做白化呢?這就是啟發BN產生的原初想法,而BN也確實就是這么做的,可以理解為對深層神經網絡每個隱層神經元的激活值做簡化版本的白化操作。(如果說人話,就是BN把網絡近似解耦了,每一層都可以看作一個一層的神經網絡,輸入是同分布的,那么這時候訓練不就非??炝藛?,網絡又淺,分布還是一樣的,開心壞了!當然BN的真正優勢并不是如此簡單,其導致訓練的加快是由于其將梯度拉到了大梯度范圍內)

      BatchNorm的基本思想

       BN的基本思想其實相當直觀:因為深層神經網絡在做非線性變換前的激活輸入值(就是那個\(x=WU+B\),\(U\)是輸入)隨著網絡深度加深或者在訓練過程中,其分布逐漸發生偏移或者變動,之所以訓練收斂慢,一般是整體分布逐漸往非線性函數的取值區間的上下限兩端靠近(對于Sigmoid函數來說,意味著激活輸入值\(WU+B\)是大的負值或正值),所以這導致反向傳播時低層神經網絡的梯度消失,這是訓練深層神經網絡收斂越來越慢的本質原因,而BN就是通過一定的規范化手段,把每層神經網絡任意神經元這個輸入值的分布強行拉回到均值為0方差為1的標準正態分布,其實就是把越來越偏的分布強制拉回比較標準的分布,這樣使得激活輸入值落在非線性函數對輸入比較敏感的區域,這樣輸入的小變化就會導致損失函數較大的變化,意思是這樣讓梯度變大,避免梯度消失問題產生,而且梯度變大意味著學習收斂速度快,能大大加快訓練速度。

        一句話就是:對于每個隱層神經元,把逐漸向非線性函數映射后向取值區間極限飽和區靠攏的輸入分布強制拉回到均值為0方差為1的比較標準的正態分布,使得非線性變換函數的輸入值落入對輸入比較敏感的區域,以此避免梯度消失問題。因為梯度一直都能保持比較大的狀態,所以很明顯對神經網絡的參數調整效率比較高,就是變動大,就是說向損失函數最優值邁動的步子大,也就是說收斂地快。BN說到底就是這么個機制,方法很簡單,道理很深刻。經過BN后,目前大部分Activation的值落入非線性函數的線性區內,其對應的導數遠離導數飽和區,這樣來加速訓練收斂過程。

        但是每一層都進行標準化是否會使得網絡的表達能力變弱呢?BN為了保證網絡的表達能力,對變換后的滿足均值為0方差為1的x又進行了scale加上shift操作\((y=scale*x+shift)\),每個神經元增加了兩個參數scale和shift參數,這兩個參數是通過訓練學習到的,意思是通過scale和shift把這個值從標準正態分布左移或者右移一點并長胖一點或者變瘦一點,每個實例挪動的程度不一樣,這樣等價于非線性函數的值從正中心周圍的線性區往非線性區動了動。核心思想應該是想找到一個線性和非線性的較好平衡點,既能享受非線性的較強表達能力的好處,又避免太靠非線性區兩頭使得網絡收斂速度太慢。當然,這是我的理解。

      BN的具體操作流程,由下圖所示:

      ? 實際效果上,原作者比較了對于Inception模型利用batch normalization的效果,可看出它能以更少的訓練步數達到更高的準確度,是非常有效的方法。

      小結

      BatchNorm效果非常好,①極大提升了訓練速度,收斂過程大大加快;②增加分類效果,一種解釋是這是類似于Dropout的一種防止過擬合的正則化表達方式,所以不用Dropout也能達到相當的效果;③調參過程也簡單多了,對于初始化要求沒那么高,而且可以使用大的學習率等。

      posted @ 2025-07-31 16:49  sky_darkeen  閱讀(14)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩中文字幕一区二区不卡| 中文字幕在线观看一区二区| 亚洲午夜爱爱香蕉片| 国产一区二区三区在线看| 毛片免费观看天天干天天爽 | 国产精品毛片一区二区| 日本高清中文字幕免费一区二区| 国产精品一区二区三区黄| 亚洲精品天堂成人片AV在线播放| 国产精品普通话国语对白露脸| 国产亚洲精品久久久久久无亚洲| 在线免费观看视频1区| 高清中文字幕一区二区| 国产综合精品91老熟女| 国产精品原创不卡在线| 国产360激情盗摄全集| 91麻豆亚洲国产成人久久| 成人看的污污超级黄网站免费| 成人国产av精品免费网| 亚洲鸥美日韩精品久久| 暖暖视频日本在线观看| 日韩熟女乱综合一区二区| 丰满少妇内射一区| 南城县| 天天躁日日躁狠狠躁一区| 日韩有码国产精品一区| 中国china体内裑精亚洲日本 | 又色又爽又黄的视频网站| 国产av一区二区不卡| 丝袜美腿亚洲综合在线观看视频| 精品在线观看视频二区| 国产免费无遮挡吸奶头视频 | 亚洲欧洲自拍拍偷午夜色| 亚洲精品毛片一区二区| 人妻av中文字幕无码专区| 国产av亚洲一区二区| 亚洲精品成人福利网站| 亚洲精品成人福利网站| 亚洲国产欧美在线观看片| 无码国产精品一区二区VR老人| 亚洲精品男男一区二区|