Neural Networks神經網路個人小結與MATLAB實現
阿新 • • 發佈:2019-02-11
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)