1. 程式人生 > >深度學習之BP演算法

深度學習之BP演算法

一、BP網路基本概念

BP神經網路是一種多層的前饋神經網路,其主要的特點是:訊號是前向傳播的,而誤差是反向傳播的。BP神經網路是由一個輸入層、一個輸出層和一個或多個隱層構成,它的啟用函式採用sigmoid函式,採用BP演算法訓練的多層前饋神經網路。具體採用如下神經網路進行說明:

其演算法基本過程分為兩個階段:1、在前饋網路中,輸入訊號經輸入層輸入,通過隱層計算由輸出層輸出,2、輸出值與標記值比較,若有誤差,將誤差反向由輸出層向輸入層傳播,在這個過程中,利用梯度下降演算法對神經元權值進行調整。

二、BP網路的流程

1、正向傳遞

計算方法如下:

其中f為啟用函式,一般選取線性函式或者S型函式。這裡使用Sigmoid函式:

2、反向傳播過程

 首先明確誤差函式:

這裡的dj是樣本標籤值,yj是期望輸出。BP神經網路的主要目的是反覆修正權值和閥值,使得誤差函式值達到最小。

根據梯度下降法,權值向量的修正正比於當前位置上E(w,b)的梯度,對於第個輸出節點有

由於這裡我們選取Sigmoid函式作為啟用函式,因此對啟用函式求導得到:

接下來,對權重w進行求導。這裡將上面的啟用函式求導也用在裡面,得到下面的式子:

這裡,我們人為定義 ,這是針對隱含層和輸出層之間進行的權值調整,下面將對輸入層和隱含層之間進行權值調整。原理和上面的公式類似,但是在隱含層中有

因此,我們進行鏈式求導的時候需要

最終公式為如下形式:

其中, 。綜上,我們就將輸入層到隱層以及隱層到輸出層的權重更新都算完了,對於偏置b的求解,和w的求解類似。下面我們使用梯度下降法進行更新(這裡我們只寫出隱層到輸出層,輸入層到隱層的公式類似):

通過不斷的更新權重,最終使得損失小於我們要求的閾值,得到較好的權重和偏置,即為最終結果。 

三、總結

  1. BP網路的優點:

    • 網路實質上實現了一個從輸入到輸出的對映功能,而數學理論已證明它具有實現任何複雜非線性對映的功能。因此它特別適合於求解內部機制複雜的問題;
    • 網路具有自學習能力;
    • 網路具有一定的推廣、概括能力。
  2. BP網路的問題:

    • BP演算法的學習速度很慢

    • 網路訓練失敗的可能性較大