參考:
引入原因:深度網路訓練過程中,每一層的引數都會不斷變化,很可能導致每一層的輸出(即對下一層的輸入)的分布發生變化,因此導致模型收斂變慢,(本質原因:輸出逐漸向左右兩端移動,導致曲線平緩,比如sigmoid,從而梯度消失問題產生,因此收斂越來越慢)。
解決方法:batchnorm就是在深度神經網路訓練過程中使得每一層神經網路的輸入保持相同分布的。具體就是將上一層的輸出(即本層的輸入)轉換成均值為0方差為1的比較標準的正態分佈,使得非線性變換函式的輸入值落入對輸入比較敏感的區域,以此避免梯度消失問題。
訓練時:即在每次線性後,啟用函式之前使用bn。作用是使得每一層的輸出都是統一的分布,不會太往兩邊靠。可以有效的減緩收斂慢的問題。訓練時,對每乙個minibatch:注意其中的xi代表了上一層的輸出經過線性變換後的結果,也就是相比於非bn,這裡再啟用函式之前標準化了一下。gama和beta都是超引數,為了防止歸一化後丟失原來學習到的特徵。注意:normalization的均值方差只基於當前的minibatch,並且normalization對輸入層的每一維單獨計算均值方差
測試時(推理時),由於測試資料可能是單一的,所以不存在使用minibatch一組來計算均值方差然後標準化。因此這裡使用的均值和方差是訓練時k個batch得到的k組均值和方差的期望。
優點:①不僅僅極大提公升了訓練速度,收斂過程大大加快;②還能增加分類效果,一種解釋是這是類似於dropout的一種防止過擬合的正則化表達方式,所以不用dropout也能達到相當的效果;③另外調參過程也簡單多了,對於初始化要求沒那麼高,而且可以使用大的學習率等。總結來說解決:1. 過擬合(正則化);2. 收斂慢(梯度消失,sigmoid)
batch normal機制初窺
參考文獻 大家都做過對資訊的處理。在這個過程中,我們會發現,由於影象的畫素是0 255之間。這就說明,在整個過程中,我們發現其值永遠在第一象限中。假設我們想用方程max wx b 來進行分類。那整個過程中,訓練的目的,就是訓練w和b。w的初始化,一般是從高斯分布中進行隨機初始化的。有正有負。這個時候...
深度學習(一)深度學習學習資料
持續更新 一 學習清單 1 收集了各種最新最經典的文獻,神經網路的資源列表 2 計算機視覺學習清單 3 機器學習學習清單 二 訓練資料 人臉資料 1 香港中文大學訓練資料集 此資料庫包含了20w張人臉,每張標註了5個特徵點 以及幾十種屬性 是否微笑 膚色 髮色 性別等屬性 2 68個人臉特徵點 3 ...
深度學習系列 深度學習簡介
機器學習 使用計算機系統利用經驗改善效能,是人工智慧領域的分支,也是實現人工智慧的一種手段。表徵學習關注如何自動找出表示資料的合適方式,以便更好地將輸入變換為正確的輸出。深度學習 具有多級表示的表徵方法,在每一級 原始資料開始 通過簡單的函式將該級的表示變換為更高階的表示。可以將深度學習看作多個簡單...