單隱層BP神經網絡推導

單隱層BP神經網絡推導

標籤:神經網絡

今天重新提到了多隱層神經網絡,雖然還是挺簡單的,但是突然發現沒有理解。遂決定整理一下上學期學習的單隱層神經網絡,再看看和多隱層BP有什麼區別。

符號定義

  • 輸入向量:n維向量X
  • 隱層輸出向量:m維向量Y
  • 輸出向量:l維向量O
  • 期望輸出向量:l維向量d
  • 輸入層和隱層間權重矩陣V
  • 隱層和輸出層間權重矩陣W

神經網絡激活函數

定義f(x)=11+exf(x)=\frac{1}{1+e^{-x}}爲激活函數

其中輸出向量的值爲前一層輸出向量的加權和ok=f(netk),netk=j=0m(wjkyj),k=1,2,...,lo_k=f(net_k),net_k=\sum_{j=0}^{m}(w_{jk}*y_j),k=1,2,...,l

隱層輸出向量的值爲輸入向量的加權和yj=f(netj),netj=i=0n(vijxi),j=1,2,...,my_j=f(net_j),net_j=\sum_{i=0}^{n}(v_{ij}*x_i),j=1,2,...,m

定義誤差E=12(dO)2=12k=1l(dkOk)2E=\frac{1}{2}(d-O)^2=\frac{1}{2}\sum_{k=1}^{l}(d_k-O_k)^2(這裏嫌麻煩,就不展開了)

隱層與輸出層間權重變化值Δwjk=ηEwjk=ηEnetknetkwjk=ηδkoyj\Delta w_{jk}=-\eta\frac{\partial E}{\partial w_{jk}}=-\eta\frac{\partial E}{\partial net_k}\frac{\partial net_k}{\partial w_{jk}}=-\eta \delta_k^oy_j

輸入層與隱層間權重變化值Δvij=ηEvij=ηEnetjnetjvij=ηδjyxi\Delta v_{ij}=-\eta\frac{\partial E}{\partial v_{ij}}=-\eta\frac{\partial E}{\partial net_j}\frac{\partial net_j}{\partial v_{ij}}=-\eta \delta_j^yx_i

其中誤差信號δko=Enetk=Eokoknetk=Eokf(netk)=(dkok)ok(1ok)\delta_k^o = -\frac{\partial E}{\partial net_k}=-\frac{\partial E}{\partial o_k}\frac{\partial o_k}{\partial net_k} = -\frac{\partial E}{\partial o_k}f'(net_k)=(d_k-o_k)*o_k(1-o_k)

誤差信號δjy=Enetj=Eyjyjnetj=Eyjf(netj)=(k=1lδkowjk)yj(1yj)\delta_j^y = -\frac{\partial E}{\partial net_j}=-\frac{\partial E}{\partial y_j}\frac{\partial y_j}{\partial net_j} = -\frac{\partial E}{\partial y_j}f'(net_j)=(\sum_{k=1}^{l}\delta_k^ow_{jk})*y_j(1-y_j)

最終推得隱層輸出向量與輸出向量間權重變化量爲Δwjk=ηδkoyj=η(dkok)ok(1ok)yj\Delta w_{jk} = -\eta \delta_k^oy_j = \eta *(d_k-o_k)*o_k(1-o_k) *y_j

輸入向量與隱層輸出向量間權重變化值Δvij=ηδjyxi=η(k=1lδkowjk)yj(1yj)xi\Delta v_{ij} = -\eta \delta_j^yx_i = \eta * (\sum_{k=1}^{l}\delta_k^ow_{jk})*y_j(1-y_j) *x_i

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章