1. 程式人生 > >Andrew Ng 機器學習筆記 09 :神經網路

Andrew Ng 機器學習筆記 09 :神經網路

非線性假設

對於許多實際的機器學習問題,特徵個數n是很大的。

隨著特徵數量n的增加,二次項的個數大約以 O ( n 2 )

的量級增長,此時包含所有的二次項是困難的,如果我們還要引入三次項,那麼我們的項的個數將以 O ( n 3 ) 的量級增長。

而項數過多時,結果很有可能過擬合。此外,這裡也存在運算量過大的問題。

神經網路邏輯單元

在一個計算機的神經網路裡,我們將使用一個非常簡單的模型來模擬神經元的工作:

黃色的圓圈,可以理解為類似神經元的東西,然後我們通過它的樹突(或者說是它的輸入神經)傳遞給它一些資訊。然後神經元做一些計算,並通過它的輸出神經(即它的軸突)輸出計算結果。

這裡的 h θ ( x ) 通常值的是:

h θ ( x ) = 1 1 + e θ T x

繪製一個神經網路時,有時會額外增加一個 x 0 的輸入節點,這個 x 0 節點有時也被稱作偏置單位(或偏置神經元)。但由於 x 0 = 1 ,是否畫出它,取決於它是否對例子有利。

激勵函式

神經網路中的激勵函式(activation function),只是對類似非線性函式g(z)的另一個術語稱呼:

g ( z ) = 1 1 + e z

z = θ T x

在之前我們一值稱 θ 為模型的引數,但在神經網路的文獻裡,有時會稱 θ 為模型的權重(weight)。

輸入層,輸出層,隱藏層

  • 第一層也被稱為輸入層,因為我們在這一層輸入我們的特徵項 x 1 x 2 x 3 ,當然我們也可以加入值為1的 x 0
  • 中間層有三個神經元: a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ,同理,你可以加上值永遠為1的偏置單元 a 0 ( 2 )

    中間層,也被稱為隱藏層,隱藏層的值在訓練過程中是看不到的,所以叫它隱藏層。神經網路可以有不止一個的隱藏層。在神經網路中,任何一個非輸入層且非輸出層,就被稱為隱藏層。

  • 最後一層,也被稱為輸出層,因為這一層的神經元會輸出假設函式的最終計算結果 h Θ ( x )

前向傳播(forward propagation)的向量化實現

a i ( j ) 表示第j層的第i個神經元,表示的是第 j 層的第 i 個激勵。

把隱藏層的三個神經元的計算結果都寫出來:

a 1 ( 2 ) = g ( Θ 10 ( 1 ) x 0 + Θ 11 ( 1 ) x 1 + Θ 12 ( 1 ) x 2 + Θ 13 ( 1 ) x 3 )