BP神經網路演算法推導

2022-05-07 02:51:12 字數 1592 閱讀 8221

目錄正向計算

反向傳播

\[設損失函式為f(\vec)

\\則f(\vec+\delta})-f(\vec) = \nabla)} \cdot \delta}\\

其中\nabla)} 是 f(\vec)的梯度\\

所以當\delta} = -\eta \nabla f(\vec),(\eta>0)時,下降速率最快\\

即\delta = -\eta \frac}}

\]\[設當前啟用函式為f(x) = 1/(1+\exp(-x))\\

有f'(x) = \exp(-x)/(1+\exp(-x))^2=f(x)*(1-f(x))

\]節點 \(i\)的輸入為\(net_i\),輸出為\(o_i\)

\(v_,w_是節點i到節點j,節點j到節點k的權值\)

誤差為\(e\),是個多元函式

輸入層不使用啟用函式,\(o_i = x_i\)

隱含層輸入為 \(net_j = \sigma_^ v_*o_i\)

輸出為 \(o_j = f(net_j)\)

輸入為\(net_k = \sigma_^w_*o_j\)

輸出為 \(o_k = f(net_k)\)

\(e=\frac\sigma_^(d_k-o_k)^2, d_k為期望輸出\)

使用梯度下降法調整節點間連線的權值,使得e獲得極小值

\[把e視為是關於\vec, \vec的函式\\

由前置知識得,\delta} = -\eta\frac }=-\eta\frac\cdot \frac}\\

即 \delta} = \eta(-\frac}})o_j\\

設\delta_k = -\frac}} = -\frac}} \cdot \frac\\

即 \delta_k = (d_k-o_k)f'(net_k), \delta} = \eta\delta_ko_j

\]\[同理\delta} = -\eta\frac }=\eta(-\frac) \frac}\\

即 \delta} = \eta(-\frac}})o_i\\

設\delta_j = -\frac}} = -\frac}} \cdot \frac=-\fracf'(net_j)\\

-\frac = -\sigma_^\frac\frac=\sigma_^\delta_kw_\\

所以\delta v_ = \eta o_if'(net_j)\sigma_^\delta_kw_

\]假設經過正向計算得到\(o_i, o_j,o_k\),且已知\(v_,w_,d_k\)

計算\(f'(net_k), f'(net_j)\),對於我選用的啟用函式來說,

\[f'(net_k)=o_k(1-o_k)\\

f'(net_j)=o_j(1-o_j)

\]有可能選擇其他啟用函式,所以把此步驟單獨分開

計算\(\delta_k=(d_k-o_k)f'(net_k)\)

計算\(\delta w_=\eta\delta_ko_j\)

計算\(\delta v_=\eta o_i f'(net_j)\sigma_^\delta_k w_\)

\(v_+=\delta v_, w_ += \delta w_\)

BP神經網路演算法推導

1 前饋神經網路 反饋神經網路 bp網路等,他們之間的關係 前饋型神經網路 取連續或離散變數,一般不考慮輸出與輸入在時間上的滯後效應,只表達輸出與輸入的對映關係 在此種神經網路中,各神經元從輸入層開始,接收前一級輸入,並輸入到下一級,直至輸出層。整個網路中無反饋,可用乙個有向無環圖表示。常見的前饋神...

神經網路BP演算法推導

j theta frac1m sum m sum k left y k log left h theta left x right right k left 1 y k right log left 1 left h theta left x right right k right right fr...

神經網路BP演算法簡單推導

這幾天圍繞 a neural probability language model 看了一些周邊資料,如神經網路 梯度下降演算法,然後順便又延伸溫習了一下線性代數 概率論以及求導。總的來說,學到不少知識。下面是一些筆記概要。一 神經網路 神經網路我之前聽過無數次,但是沒有正兒八經研究過。形象一點來說...