單隱層BP神經網絡推導
標籤:神經網絡
今天重新提到了多隱層神經網絡,雖然還是挺簡單的,但是突然發現沒有理解。遂決定整理一下上學期學習的單隱層神經網絡,再看看和多隱層BP有什麼區別。
符號定義
- 輸入向量:n維向量X
- 隱層輸出向量:m維向量Y
- 輸出向量:l維向量O
- 期望輸出向量:l維向量d
- 輸入層和隱層間權重矩陣V
- 隱層和輸出層間權重矩陣W
神經網絡激活函數
定義f(x)=1+e−x1爲激活函數
其中輸出向量的值爲前一層輸出向量的加權和ok=f(netk),netk=∑j=0m(wjk∗yj),k=1,2,...,l
隱層輸出向量的值爲輸入向量的加權和yj=f(netj),netj=∑i=0n(vij∗xi),j=1,2,...,m
定義誤差E=21(d−O)2=21∑k=1l(dk−Ok)2(這裏嫌麻煩,就不展開了)
隱層與輸出層間權重變化值Δwjk=−η∂wjk∂E=−η∂netk∂E∂wjk∂netk=−ηδkoyj
輸入層與隱層間權重變化值Δvij=−η∂vij∂E=−η∂netj∂E∂vij∂netj=−ηδjyxi
其中誤差信號δko=−∂netk∂E=−∂ok∂E∂netk∂ok=−∂ok∂Ef′(netk)=(dk−ok)∗ok(1−ok)
誤差信號δjy=−∂netj∂E=−∂yj∂E∂netj∂yj=−∂yj∂Ef′(netj)=(∑k=1lδkowjk)∗yj(1−yj)
最終推得隱層輸出向量與輸出向量間權重變化量爲Δwjk=−ηδkoyj=η∗(dk−ok)∗ok(1−ok)∗yj
輸入向量與隱層輸出向量間權重變化值Δvij=−ηδjyxi=η∗(∑k=1lδkowjk)∗yj(1−yj)∗xi