一、BP神經網絡的概念
誤差逆傳播簡稱BP算法,BP神經網絡是一種多層的前饋神經網絡,其主要特點是:信號前向傳播,誤差反向傳播。如下圖為只含一層的隱含層的卷積神經網絡。
其大致工作流程為:
第一階段是信號的前向傳播,從輸入層經過隱含層,最后達到輸出層;第二階段是誤差(各邊權重w和閾值)的反向傳播,從輸出層到隱含層,最后到輸入層,依次調節各層相連邊的權重的閾值。
二、BP神經網絡流程
神經網絡的基本組成單元為神經元。具體模型如下圖:
其中常見激活函數有:sigmoid函數、Relu函數、Tanh函數等。
神經元的輸出為:
其中w代表各邊的權值,初始值一般為隨機給出,后續根據反饋慢慢調節。
BP神經網絡模型中,為了便於討論,假設只有一層隱含層,即有輸入層、隱含層、輸出層三層結構。設輸入層到隱含層的權重為 Vih,隱含層第h個神經元的閾值為Yh。隱含層到輸出層的權值為Whj,輸出層第j個神經元的閾值用 θj表示。在如下圖中,有d個輸入神經元,q個隱含層神經元,對應q個隱含神經元閾值,l個輸出神經元,l個對應的輸出神經元閾值。
其中βj中的bh= f (αh − γh) 。即也為隱含層的輸出結果。同理得出輸出層的輸出結果為Yj = f(Bj - θj) ,其中f函數為相應的激活函數。
計算出輸出結果和實際結果的方差得到誤差率
然后進行反向傳播減小誤差。減小誤差的方法為梯度下降法。此處引入另一概念學習率。
學習率是為了控制算法每一輪迭代的更新步長。若太大則容易振盪,若太小則訓練速度過慢。
根據周志華西瓜書p103書上的推導,得出各層權重和閾值的更新公式。
最后總體流程總結如下:
輸入:訓練集D
學習率初始值
過程:
1、在(0,1)之間隨機初始化網絡中所有的權重和閾值
2、repeat
3、 for all (Xk,Yk) 屬於 D do
4、 根據當前參數計算輸出層最終輸出Y;
5、 根據P103中公式(5.10)計算輸出層神經元的梯度項;
6、 根據p104中公式(5.15)計算隱含層神經元的梯度項;
7、 根據P103中公式(5.10)到(5.14)更新各權值w和閾值。
8、 end for
9、until 達到停止條件
上述停止條件一般為預測值和實際值之間的誤差。