吳恩達機器學習筆記(四) —— BP神經網絡


 

 

 

主要內容:

一.模型簡介

二.一些變量所代表的含義

三.代價函數

四.Forward Propagation

五.Back Propagation

六.算法流程

 

待解決問題:

視頻中通過指出:當特征變多時(或者非線性),利用logistic回歸模型解決問題將導致計算量很大,即算法復雜度很高。然后就此引出神經網路,所以說神經網路在解決多特征(或者非線性)問題上是比logistic回歸更優的。但為什么呢?有什么合理的解釋?

 

 

 

一.模型簡介

1.最簡單的神經網絡就是只有輸入層和輸出層:

2.稍微復雜一點(中間的被稱為隱藏層):

3.其中,當前層的輸出作為下一層每一個結點的輸入(的一部分),即n*m的全相連,且每一條邊都帶有權重,就是說我們要訓練的參數。

4.在每一層當中,除了我們預先設定的結點之外,還在最上面添加一個結點(bias unit)作為偏移值,其值為1。

5.hθ(x)為Logistic回歸函數。

 

 

二.一些變量所代表的含義

為了方便描述神經網絡,對一些變量進行描述(注意:此處的上標表示第幾層,從1開始):

x:最原始的輸入

a:當前層的輸出,其中a1(上標) = x

z:z = θx

有如下關系:

 

 

三.代價函數

1.代價函數:

2.向量化后:

 

 

四.Forward Propagation

foward propagation就是將輸入x,經過一層層的神經網絡,最后到達輸出層,並輸出結果hθ(x)。

一張圖可以很好地解釋其過程:

 

五.Back Propagation(求梯度)

我們可以通過foward propagation求出輸出結果hθ(x),接下來就是要減少誤差的而進行參數調整了,一貫的做法是梯度下降。

可知Logistic回歸的梯度下降的表達式為:

由於神經網絡也是利用Logistic回歸的sigmoid函數,那么其梯度下降的表達式也應該類似。

可知最后一層,也就是輸出層的輸出結果為hθ(x),也就是預測值。那么誤差就是hθ(x)-Y,對應了上式中的“(hθ(x)-Y)”,記δ=hθ(x)-Y。

但是,我們只知道最后一層的δ,即hθ(x)-Y,而隱藏層的δ卻不能夠直接看出來,那應該如何呢?

可知輸出層的hθ(x),是倒數第二層通過一定的規則計算出來的;反過來,倒數第二層計算所出現的誤差,也可以通過輸出層hθ(x)與真實值的誤差反過來求。其中最重要的就是參數θ,因為它規定着輸入(或輸出)在當前結點所占的比例。

知道了Back Propagation的思想后,就需要着手具體如何求出δ了,其方法就是微積分中的“鏈式求導”。可知當前層的輸出a(l)(可以看做一個變量),通過相關的映射(或者說函數)得出下一層的輸出a(l+1)。此時把a(l+1) 看成y,a(l)看成x,而y = f(x)。我么已知y所造成的誤差為δ,而y又是x的函數,所以x所造成的誤差就等於:δ*f'(x)。與Logistic回歸不同的是:神經網絡在兩層之間存在着n*m的全相連,每一條邊都代表着a-->b的權重,即參數θ。在求誤差δ的時候,應該乘上參數θ,如下:

因此,一直往前遞推,就可以求出各層(輸入層不需要求,因為總為0)的誤差δ,即“(hθ(x)-Y)”。梯度就可以求出來了,之后就輪到梯度下降大顯身手了。

求梯度的過程總結:

 

 

六.算法流程:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM