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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习中 batchnorm 层是咋回事?

發布時間:2025/7/14 pytorch 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习中 batchnorm 层是咋回事? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:Double_V_?來源:CSDN?原文:https://blog.csdn.net/qq_25737169/article/details/79048516?版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

作者:Double_V_?來源:CSDN?原文:https://blog.csdn.net/qq_25737169/article/details/79048516?版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

作者:Double_V_?來源:CSDN?原文:https://blog.csdn.net/qq_25737169/article/details/79048516?版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

作者:Double_V_?來源:CSDN?原文:https://blog.csdn.net/qq_25737169/article/details/79048516?版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

參考了這個博客, 博主寫的非常好? ? ?https://blog.csdn.net/qq_25737169/article/details/79048516

?

?

前言:Batchnorm是深度網絡中經常用到的加速神經網絡訓練,加速收斂速度及穩定性的算法,可以說是目前深度網絡必不可少的一部分。
本文旨在用通俗易懂的語言,對深度學習的常用算法–batchnorm的原理及其代碼實現做一個詳細的解讀。本文主要包括以下幾個部分。

?

第一節:Batchnorm主要解決的問題


首先,此部分也即是講為什么深度網絡會需要batchnormbatchnormbatchnorm,我們都知道,深度學習的話尤其是在CV上都需要對數據做歸一化,因為深度神經網絡主要就是為了學習訓練數據的分布,并在測試集上達到很好的泛化效果,但是,如果我們每一個batch輸入的數據都具有不同的分布,顯然會給網絡的訓練帶來困難。另一方面,數據經過一層層網絡計算后,其數據分布也在發生著變化,此現象稱為InternalInternalInternal?CovariateCovariateCovariate?ShiftShiftShift,接下來會詳細解釋,會給下一層的網絡學習帶來困難。batchnormbatchnormbatchnorm直譯過來就是批規范化,就是為了解決這個分布變化問題。

1.1 Internal Covariate Shift

Internal?Covariate?Shift?:此術語是google小組在論文BatchBatchBatch?NormalizatoinNormalizatoinNormalizatoin?中提出來的,其主要描述的是:訓練深度網絡的時候經常發生訓練困難的問題,因為,每一次參數迭代更新后,上一層網絡的輸出數據經過這一層網絡計算后,數據的分布會發生變化,為下一層網絡的學習帶來困難(神經網絡本來就是要學習數據的分布,要是分布一直在變,學習就很難了),此現象稱之為InternalInternalInternal?CovariateCovariateCovariate?ShiftShiftShift。

Batch?Normalizatoin?之前的解決方案就是使用較小的學習率,和小心的初始化參數,對數據做白化處理,但是顯然治標不治本。

1.2 covariate shift

Internal?Covariate?Shift?和CovariateShift具有相似性,但并不是一個東西,前者發生在神經網絡的內部,所以是Internal,后者發生在輸入數據上。Covariate?Shift主要描述的是由于訓練數據和測試數據存在分布的差異性,給網絡的泛化性和訓練速度帶來了影響,我們經常使用的方法是做歸一化或者白化。想要直觀感受的話,看下圖:

?

Covariate?Shift?就是描述的輸入數據分布不一致的現象,對數據做歸一化當然可以加快訓練速度,能對數據做去相關性,突出它們之間的分布相對差異就更好了。Batchnorm做到了,前文已說過,Batchnorm是歸一化的一種手段,極限來說,這種方式會減小圖像之間的絕對差異,突出相對差異,加快訓練速度。所以說,并不是在深度學習的所有領域都可以使用BatchNorm,下文會寫到其不適用的情況。

第二節:Batchnorm 原理解讀


本部分主要結合原論文部分,排除一些復雜的數學公式,對BatchNorm的原理做盡可能詳細的解釋。

之前就說過,為了減小Internal?Covariate?Shift,對神經網絡的每一層做歸一化不就可以了,假設將每一層輸出后的數據都歸一化到0均值,1方差,滿足正太分布,但是,此時有一個問題,每一層的數據分布都是標準正太分布,導致其完全學習不到輸入數據的特征,因為,費勁心思學習到的特征分布被歸一化了,因此,直接對每一層做歸一化顯然是不合理的。
但是如果稍作修改,加入可訓練的參數做歸一化,那就是BatchNorm實現的了,接下來結合下圖的偽代碼做詳細的分析:

之所以稱之為batchnorm是因為所norm的數據是一個batch的,

1.先求出此次批量數據xxx的均值
2.求出此次batch的方差
3.接下來就是對xxx做歸一化

轉載于:https://www.cnblogs.com/Lin-Yi/p/10406568.html

總結

以上是生活随笔為你收集整理的深度学习中 batchnorm 层是咋回事?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。