BP神經網路的數學公式推導

2021-08-08 23:25:11 字數 1218 閱讀 7833

學習神經網路挺長一段時間了,最近才弄明白這其中的推導過程;

推導過程參考cousera上andrew ng的機器學習課程;我盡量細緻通俗的解釋推導過程:

假設我們有上圖的這樣乙個神經網路;輸入層為l=0,輸出層l=2;隱層l=1;

引數則有兩層theta1和theta2;

以下的公式均採用向量化的方式表達省略了求和符號;

另外,我寫公式的習慣比較貼近寫**的習慣,所以會程式設計的朋友可能會理解的更容易一些;(latex真心不會用~~)

假設一組樣本為;

x1,x2為feature;y為result;

g =@(z) (1+exp(-z)).^-1; sigmoid function ;

h =@(theta,x) g(theta*x); hypothesis ;

cost function : j(theta) = -((1-y)*log(1-h)+y*log(h));

對於引數theta的迭代公式:theta = theta - d(j(theta))/d(theta);

ok,基本的背景公式準備完畢,開始推導:

因為我們實際上只知道輸出層的預期結果,隱層的y值是沒有的,所以要分開計算隱層和輸出層的d(j(theta))/d(theta);

有鑑於一行行的敲公式太麻煩,這裡直接貼圖了:

最後一張圖中,一般公式的推導可能有人不會太明白,這裡要解釋一下:

對於任意一層:i

補充:cost function 的**是基於最大似然法的思想獲得的,這是很有趣的事情,有興趣的可以了解一下;

實際的應用中,還要加入正則,這裡不做討論;可以看我的另乙個部落格裡有基於matlab 的簡單bp的實現,裡面有正則的使用;

BP神經網路演算法推導

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

BP神經網路演算法推導

目錄正向計算 反向傳播 設損失函式為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...

神經網路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...