1. 程式人生 > >卷積神經網路反向傳播演算法

卷積神經網路反向傳播演算法

神經網路的訓練過程,就是通過已有的樣本,求取使代價函式最小化時所對應的引數。代價函式測量的是模型對樣本的預測值與其真實值之間的誤差,最小化的求解一般使用梯度下降法(Gradient Decent)或其他與梯度有關的方法。其中的步驟包括:

  1. 初始化引數。
  2. 求代價函式關於引數的梯度。
  3. 根據梯度更新引數的值。
  4. 經過迭代以後取得最佳引數,從而完成神經網路的訓練。 
    其中最重要的步驟就是求梯度,這可以通過反向傳播演算法(back propagation)來實現。

單個神經元的訓練

單個神經元的結構如下圖。假設一個訓練樣本為(x,y)。在下圖中,x是輸入向量,通過一個激勵函式hw,b(x)

得到一個輸出aa再通過代價函式得到J


f(W,b,x)=a=sigmoid(ixiwi+b) (公式1) 
J(W,b,x,y)=12||yhw,b(x)||2              (公式2)

這裡激勵函式以使用sigmoid為例,當然也可以使用其他的比如tanh或者rectived linear unit函式。要求的引數為Wb

通過定義變數z=ixiwi+b可以將激勵函式看做是兩部分,如下圖右圖所示。第一部分是仿射求和得到z, 第二部分是通過sigmoid得到a。 
這裡寫圖片描述

訓練過程中,要求代價函式J關於Wb的偏導數。先求J關於中間變數a

z的偏導:

δ(a)=aJ(W,b,x,y)=(ya) (公式3) 
δ(z)=zJ(W,b,x,y)=Jaaz=δ