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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Batch Normalization的一些个人理解

發布時間:2025/3/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Batch Normalization的一些个人理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單說一說Batch Normalization的一些個人理解:

1、要說batch?normalization不得不先說一下梯度消失和梯度爆炸問題

梯度消失一是容易出現在深層網絡中,二是采用了不合適的損失函數也較容易發生梯度消失,比如sigmoid

梯度爆炸一般出現在深層網絡和權值初始化值太大的情況。

考慮這樣一個簡單的三隱層的全連接網絡

我們假設每一層網絡激活后的輸出為fi(x),其中i表示第i, x代表第i層的輸入,也就是第i?1層的輸出,f是激活函數,那么得出fi+1=f(fi?wi+1+bi+1) ,偏置在梯度消失和梯度爆炸中影響較小,所以我們可以簡單記為fi+1=f(fi?wi+1)

如果要更新第二隱層的權值信息,根據鏈式求導法則,更新梯度信息:

很容易看出來?f2 /?w2即為第二隱藏層的輸入,?f4 / ?f3就是對激活函數求導。如果此部分大于1,那么層數增多的時候,最終的求出的梯度更新信息將以指數形式增加,即發生梯度爆炸,如果此部分小于1,那么隨著層數增多,求出的梯度更新信息將會以指數形式衰減,即發生了梯度消失(注:在深層網絡中梯度消失發生的常見一點,而梯度爆炸比較少見)。

如下圖所示,是sigmoid函數的導數信息,可見sigmoid函數的導數最大為0.25,所以使用sigmoid函數,網絡過深時較容易發生梯度消失

梯度消失和梯度爆炸問題也說明一個問題:隨著網絡深度的增加,網絡的輸出在輸入到激活函數中之前,往往會趨于分布在較大的值附近或較小的值附近,而BN正是可以較好的解決這個問題

2、介紹batch normalization

因為深層神經網絡在做非線性變換前的激活輸入值(就是x=WU+BU是輸入,x是激活函數的輸入)隨著訓練過程加深中,其分布逐漸發生偏移或者變動,之所以訓練收斂慢一般是整體分布逐漸往非線性函數的取值區間的上下限兩端靠近(對于Sigmoid函數來說,意味著激活輸入值WU+B是大的負值或正值),所以這導致激活單元飽和,即反向傳播時低層神經網絡的梯度消失,這是訓練深層神經網絡收斂越來越慢的本質原因。

BN就是通過一定的規范化手段,把每層神經網絡任意神經元的輸入值的分布強行拉回到均值為0方差為1標準正態分布,其實就是把越來越偏的分布強制拉回比較標準的分布,這樣使得激活函數輸入值落在非線性函數對輸入比較敏感的區域,這樣輸入的小變化就會導致激活函數較大的變化,也就是讓梯度變大,避免產生梯度消失問題,而且梯度變大也意味著學習收斂速度快,能大大加快訓練速度。

?

總結

以上是生活随笔為你收集整理的Batch Normalization的一些个人理解的全部內容,希望文章能夠幫你解決所遇到的問題。

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