吳恩達公開課心得——神經網絡

前兩節還能有點自己的想法,一進入神經網絡就開始懵了,也沒啥心得了。本文就記錄一下個人認為對算法實現有用的信息,以便實現神經網絡算法時不會茫然。

1.為何需要神經網絡?比線性迴歸和邏輯迴歸好在哪裡?

在特徵不多的情況下,用線性迴歸或邏輯迴歸足夠了。因為它們可以加入各種特徵高階項的組合來實現複雜的問題的迴歸。

但是當特徵很多時,比如100個,那麼各種二次項組合就多達一萬個,如果再考慮三次項,那就跟多了。因此此時就不適合使用上述兩種算法了。

因此,問題的關鍵是,我們假設結論與模型特性的高階項有關,也就是說存在非線性特性。

2.代價函數和反向傳播算法(back propagation)

吳恩達公開課心得——神經網絡

給定訓練集的前向傳播過程如下:

吳恩達公開課心得——神經網絡

反向傳播算法:

吳恩達公開課心得——神經網絡

3.具體計算中的技巧

由於現有的梯度下降算法和其他高級算法都假設輸入的theta是向量,然而我們自己計算誤差時,顯然用矩陣更方便。因此我們需要再矩陣和向量之間做轉化。

吳恩達公開課心得——神經網絡

4.梯度檢查算法

該算法是用來驗證反向傳播算法的,確保實現上沒有問題。實際算法中不需要。

吳恩達公開課心得——神經網絡

5.神經網絡架構的選擇

一般來說,使用一個隱藏層就夠了。如果使用了多個隱藏層,那麼每個隱藏層的神經元個數相等。一般來說某一層隱藏層的神經元個數越多越好,出於計算量考慮,一般等於特徵數量即可,也可以時特徵數量的2~4倍。


分享到:


相關文章: