吳恩達機器學習筆記2--神經網絡與BP算法

神經網絡出現的原因

在上一篇博客中吳恩達系列視頻筆記1–迴歸與分類,我們學習了幾種比較強大的模型,可以解決一些基本問題,如房價預測,腫瘤的分類,而且所有問題都可以大致歸爲分類和迴歸兩類,既然所有的問題都能解決,那爲什麼我們還要學習神經網絡?
拿目前較熱的計算機視覺來說,當我們處理圖像時只處理50x50px的圖像,每個像素點作爲特徵輸入,共有2500個特徵,如果我們使用彩色圖像,每個像素點都包含RGB三個值,此時應該有7500個特徵,所有特徵我們只做二次項組合就有7500x7500個特徵組合,這時我們需要處理的特徵量,無論是通過篩選後使用還是直接使用都是之前的模型無法承受的,因此我們需要更爲強大的神經網絡智能化的提取更具表達力的特徵。我們通過對神經網絡原理的介紹來具體研究神經網絡是如何智能化提取特徵。

1.神經網絡原理

神經網絡示意圖

正向傳播過程

a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)a2(2)=g(Θ20(1)x1+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)hθ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))a_{1}^{(2)}=g(\Theta _{10}^{(1)}x_{0}+\Theta _{11}^{(1)}x_{1}+\Theta _{12}^{(1)}x_{2}+\Theta _{13}^{(1)}x_{3})\\[2mm] a_{2}^{(2)}=g(\Theta _{20}^{(1)}x_{1}+\Theta _{21}^{(1)}x_{1}+\Theta _{22}^{(1)}x_{2}+\Theta _{23}^{(1)}x_{3})\\[2mm] a_{3}^{(2)}=g(\Theta _{30}^{(1)}x_{0}+\Theta _{31}^{(1)}x_{1}+\Theta _{32}^{(1)}x_{2}+\Theta _{33}^{(1)}x_{3})\\[2mm] h_{\theta }(x)=a_{1}^{(3)}=g(\Theta _{10}^{(2)}a_{0}^{(2)}+\Theta _{11}^{(2)}a_{1}^{(2)}+\Theta _{12}^{(2)}a_{2}^{(2)}+\Theta _{13}^{(2)}a_{3}^{(2)})
輸入的特徵爲x1,x2,x3,theta的計算實質是爲我們提取了少量的具代表性的特徵a1,a2,a3,以往的邏輯迴歸以及迴歸問題中都是需要依賴我們的經驗來選取特徵,神經網絡這種自動提煉特徵的方式使我們擺脫了傳統經驗提取特徵的方式,使特徵的提取更加科學化智能化。並且根據公式,我們能很明顯的看到每層的傳播規則相同,公式相似只是參數不同,也就意味着我們可以通過矩陣乘法計算一次性計算一層的所有公式加速計算速度。

反向傳播算法

在這裏插入圖片描述反向傳播過程公式
δ1(4)=y(i)a1(4)δ1(3)=δ1(4)θ11(3)δ2(3)=δ1(4)θ12(3)δ1(2)=δ1(3)θ11(2)+δ2(3)θ21(2)δ2(2)=δ1(3)θ12(2)+δ2(3)θ22(2)\delta _{1}^{(4)}=y^{(i)}-a_{1}^{(4)}\\[2mm] \delta _{1}^{(3)}=\delta _{1}^{(4)}\theta _{11}^{(3)}\\[2mm] \delta _{2}^{(3)}=\delta _{1}^{(4)}\theta _{12}^{(3)}\\[2mm] \delta _{1}^{(2)}=\delta _{1}^{(3)}\theta _{11}^{(2)}+\delta _{2}^{(3)}\theta _{21}^{(2)}\\[2mm] \delta _{2}^{(2)}=\delta _{1}^{(3)}\theta _{12}^{(2)}+\delta _{2}^{(3)}\theta _{22}^{(2)}
其中delta是每個節點的誤差值

梯度檢驗

實際上在實現梯度下降法時,總會產生各種錯誤,使理論值和實際值相差較大,對模型結果產生較大影響。這時我們可以通過梯度檢驗來發現這種錯誤。示例公式如下:
θ1J(θ)J(θ1+ϵ,θ2,...,θn)J(θ1ϵ,θ2,...,θn)2ϵ\frac{\partial }{\partial \theta _{1}}J(\theta )\approx \frac{J(\theta _{1}+\epsilon ,\theta _{2},...,\theta _{n})-J(\theta _{1}-\epsilon ,\theta _{2},...,\theta _{n})}{2\epsilon }

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