機器學習 BatchNormalization

2022-03-18 17:48:31 字數 2637 閱讀 8203

參考部落格:

1)防止梯度消失,提公升訓練速度,收斂過程更快。因為把輸入分布拉到了例如sigmoid中間區域

2)增加分類效果,類似於dropout的一種防止過擬合的正則化表達方式,不用dropout也能達到相當的效果

3) 調參過程簡單許多,對初始化要求沒有那麼高,而且可以使用大的學習率。

關於第1點,有個疑問

,如果是用relu啟用函式,就不存在類似sigmoid、tanh的梯度飽和區,為什麼也還要用bn呢?

不論用不用bn,relu該有的缺點也都不會少,例如有節點dead。而用了bn後,至少保證了一部分節點一定是active的。簡而言之,就是也不會更差吧。

關於2、3點我個人不是很理解,

經網上查詢,總結如下:

bn主要作用是加快網路的訓練速度。關於防止過擬合可理解為:

理解1)bn每次mini-batch的資料不同,但每次都對這些資料進行了規範化(移動了mean和var),可以認為是引入了雜訊,相當於進行了data augmentation

(理解2)

bn的核心是通過對引數搜尋空間進行約束來增加魯棒性,這種約束壓縮了搜尋空間,改善了系統的結構合理性,比如加速收斂,保證梯度,緩解過擬合等。bn就是要保證曲線分布盡量均勻平滑均勻(資料的各個維度上尺度一致從而避免出現某些維度資料過於集中),這可以帶來緩解梯度消失和過擬合。同樣,dropout是在另乙個角度對曲線分布進行約束,其要求是當僅考察資料的任意乙個低維子空間的時候,曲線的分布也是均勻的。bn和dropout從不同角度對曲線分布進行約束,二者有相似的作用,但是有時候又會相互衝突,因為畢竟二者所限定的約束不能完全互容,所以二者有時候可以替代,但又不能完全替代。

(對於每個隱層神經元,把逐漸向兩端靠攏的分布強行拉回標準正態分佈,使得非線性函式的輸入落在比較敏感的區域,以避免梯度消失問題。

對深層神經網路而言,隨層數越深,其每層輸入值的整體分布一般逐漸往非線性函式的飽和區(例如下圖sigmoid的兩端)。這導致反向傳播時,低層神經網路的梯度消失,更新緩慢。

bn則是把每層神經網路任意神經元的輸入值分布強行拉回均值為0,方差為1的標準正態分佈。即將越來越偏的分布強行拉回比較標準的分布,使得啟用輸入值落在非線性函式對對輸入比較敏感的中間區域。例如標準正態分佈,有64%概率x落在[-1, 1]之間,95%的概率落在[-2, 2]範圍內。

這樣 輸入的小變化會導致損失函式較大的變化,使得梯度變大,避免梯度消失問題產生(連乘);同時梯度變大意味學習收斂速度更快,也可加快訓練速度。

經過bn後,大部分輸入的值落在非線性函式的線性區內,其對應的導數原來飽和區(非線性區),但這不就使得非線性函式和線性函式效果相同了?

如果是多層的線性變換,深層是沒有意義的,因為多層線性和一層線性是等價的。豈不是意味著網路的表達能力下降了?

所以bn為了保證非線性的獲得,對變換後的標準正態分佈又進行了scale加上shift的操作(y=x*scale+shift),每個神經元增加了兩個引數scale和shift,這兩個引數是通過訓練學習得到的。通過這兩個引數,可以將標準正態分佈左移或右移並長胖或變瘦一點。每個例項挪動的程度不一。這樣等價於把非線性函式的值從正中間線性區域往非線性挪動了。

核心思想就是找到乙個線性和非線性較好的平衡點,即可享受非線性的較強表達能力的好處,也可避免太靠近非線性區兩頭使得網路收斂速度太慢。有了這兩個引數,就保證了至少不會比原來更差,因為還可以變回原來的樣子。

假設乙個深層神經網路,其中兩層結構如下:

對於mini-batch sgd來說,一次訓練包含m個訓練例項,bn操作就是對隱層內每個神經元的輸入,進行標準正態分佈歸一化操作,均值和方差都有這m個訓練例項求出。

**中的描述如下:

在訓練時,bn根據mini-batch中若干訓練樣本進行啟用數值的調整,但在推理時,輸入只有乙個例項,而乙個例項無法求例項集合的均值和方差,如何做bn呢?

可以用從所有訓練例項中獲得的統計量來作為推理中的均值和方差。但如果直接算全域性統計量,計算量太大。所以需將之前訓練步驟時,每個mini-batch的均值和方差記錄,然後對這些均值和方差求對應的數學期望,即可算出全域性統計量。

有了均值和方差後,每個隱層神經元也已經有了對應訓練好的scaling和shift引數,就可以進行推理時的bn變換了:

與訓練時的公式是等價的,如下:

為什麼要寫成上上式這個形式呢?因為實際推理執行時,對每個隱層節點來說e,var都是固定值,可以減少計算量。不然用上式,每次推理的時候都要重新計算一下。

batch normal機制初窺

參考文獻 大家都做過對資訊的處理。在這個過程中,我們會發現,由於影象的畫素是0 255之間。這就說明,在整個過程中,我們發現其值永遠在第一象限中。假設我們想用方程max wx b 來進行分類。那整個過程中,訓練的目的,就是訓練w和b。w的初始化,一般是從高斯分布中進行隨機初始化的。有正有負。這個時候...

機器學習 初識機器學習

1.什麼是機器學習?對於機器學習到現在都還沒有統一的定義,但是,通過乙個例子和較權威的定義來理解機器學習,最後附上我個人對機器學習的理解 2.監督學習 1 監督學習基本思想 我們資料集中的每個樣本都有相應的 正確答案 即每個樣本都是真實值,再根據這些樣本作出 舉乙個房價預售的例子來說明 eg 下面圖...

機器學習 機器學習目錄

注 後期有時間的話會對每乙個演算法進行講解。1 普通線性回歸 2 廣義線性模型 3 邏輯回歸 4 線性判定分析1 決策樹基本原理與構建 2 cart演算法 3 回歸決策樹 4 分類決策樹1 貝葉斯定理與樸素貝葉斯 2 高斯貝葉斯分類器 3 多項式貝葉斯分類器 4 伯努利貝葉斯分類器 5 遞增式學習1...