1. 程式人生 > >BP反向傳播演算法

BP反向傳播演算法

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

#該程式碼加入MathJax引擎,用以顯示latex數學公式

神經網路
神經網路,其實就是按照一定規則連線起來的多個神經元,根據連線規則可分為,全連線(FC)網路,卷積神經(CNN)網路,迴圈神經(RNN)網路。這裡介紹的是全連線神經網路。全連線網路結構
全連線網路結構如上圖所示,該結構具有如下特點:
1、同一層的神經元之間沒有連線
2、第L層的每一個神經元都和第L-1層的所有神經元連線(fully connected 的由來),第L層的輸入就是第L-1層的輸出
3、每層含有若干神經元,最左邊的層叫做輸入層,輸入資料從該層傳入,最右邊的層叫做輸出層,網路的結果由此層輸出。輸入輸出層之間的網路層被稱為隱藏層,隱藏層對外部來說是不可見的。

啟用函式
啟用函式的作用是將網路中的輸入非線性的對映到輸出。如果不用啟用函式,每一層的輸出都是上一層輸入的線性函式,那麼無論網路有多少層,網路的輸出都是輸入的線性組合。
採用啟用函式,給神經元引入了非線性因素,使得神經網路可以任意逼近非線性函式,這樣就使得神經網路可以應用到眾多的非線性模型中。
常用的啟用函式有sigmoid函式,tanh函式,rule 函式,不同的函式有其不同的非線性功能,這裡介紹的是sigmoid函式。

Sigmoid函式
sigmoid函式的定義如下:

s

i g m o i d ( x ) =
1 1 + e x sigmoid(x)=\frac{1}{1+e^{-x}}

isigmoid函式
sigmoid函式影象如上圖所示,令 y = s i g m o i d ( x ) y=sigmoid(x) ,則sigmoid函式的導數為 y = y ( 1 y ) y^{&#x27;}=y(1-y) .
可以看到,sigmoid函式的導數可以由其自身來表示,這樣就可以根據sigmoid的函式值計算它的導數。

前向傳播