主要內容:
一.模型簡介
二.一些變量所代表的含義
三.代價函數
四.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)”。梯度就可以求出來了,之后就輪到梯度下降大顯身手了。
求梯度的過程總結:
六.算法流程: