1. 程式人生 > >Neural Networks神經網路個人小結與MATLAB實現

Neural Networks神經網路個人小結與MATLAB實現

Neural Networks,神經網路,我的理解是:與階梯下降演算法中的分類演算法類似,分類演算法是從輸入到輸出只經過一層的模型,模型的選擇很大程度決定了演算法的效果,而神經網路,通過對第一層引數進行多次傳遞,也許引數會形成類如平方,次方的效果,讓神經網路來選擇引數的模型。


定義:

a(1)代表第一層輸入,a(2),a(3)類似。圖例中a(4)即為Y.

s(1)代表第一層的神經元個數(不包括bios unit恆1神經元)

theta(1)代表第一層的引數,其矩陣為s(2) * (s(1) +1)

z(1)代表theta(1)*a(1),則  a(2) =  g(z(1));

如此從左到右即可算出a(4)(即Y)。

機器學習的關鍵還是在於:代價函式J(θ)和代價函式對θ的求導∂J/∂θj。

神經網路如何求的呢?這裡引入一個演算法Backpropagation algorithm反向傳播演算法,

反向傳播演算法:

定義:

delta(4)代表第四層“節點差距”圖例中易知delta(4) = y - a(4);,

從後往前計算:delta(3) =  theta(3)  *  delta(4) .* g'(z(3));其中從數學角度可知g'(z(3)) = a(3).*(1- a(3))

具體演算法:(圖片來至Andrew Ng)