1. 程式人生 > >神經網路訓練技巧討論:為什麼需要標準化

神經網路訓練技巧討論:為什麼需要標準化

本文關注:對於神經網路(主要是全連線網路+SGD)的學習訓練,標準化有什麼好處(加速收斂),以及為什麼有這樣的好處。本文觀點大多總結自lecun98年的論文:Efficient BackProp,詳情請參考原論文。翻譯以及總結過程如有疏漏,歡迎指教。另需說明的是:神經網路模型多變複雜,這裡多是對於一般情況的啟發性討論,實際使用中需要具體情況具體分析(例如影象領域大多僅減均值,不除方差)。

什麼是標準化

在機器學習領域中,標準化(standardization)是預處理(preprocessing)的常見步驟之一。其操作為減均值除方差,生成的分佈均值為0方差為1,其公式為:

xi=xiμiδi(μi=j=1Nxi(j)N,δi2=i=1N(xi(j)μi)2N1)
其中xi表示輸入x的第i維,xi(j)表示訓練集中第j個樣本的第i維的值,訓練集中總共有N個樣本,μi,δi為訓練集預估的第i維的均值和方差。

為什麼需要標準化

簡要地說,為了保證網路可以良好的收斂,在不清楚各個維度的相對重要程度之前,標準化使得輸入的各個維度分佈相近,從而允許我們在網路訓練過程中,對各個維度“一視同仁”(即設定相同的學習率、正則項係數、權重初始化、以及啟用函式)。反過來,當我們使用全域性相同的學習率、權重初始化、以及啟用函式等網路設定時,方差更大的維度將獲得更多的重視。

網路設定, BP, SGD簡介

具體地,考慮單層全連線網路的情況

y=Wx+byi=j=1nwijxj+bi=wiTx+b
,SGD等基於BP一階梯度的優化演算法的常見形式為
LW=LyxTLwi=LyixW=WηLW=WηLyxTwi=wiηLwi=wiηLyix
其中wi為引數矩陣W的第i行元素組成的向量(即第i行的轉置),
xi,yi
分別為輸入x輸出