1. 程式人生 > >吳恩達機器學習(第九章)---神經網路

吳恩達機器學習(第九章)---神經網路

神經網路是非線性的分類演算法。模擬人類的神經系統進行計算。

1、原因

當特徵數很大的時候(比如100個),那麼在假設函式的時候要考慮太多項,包含x1x2,x1x3,x2x3等等,不能僅僅單個考慮x1,x2等,這樣一來,在擬合過程中的計算量就會非常大。

2、基本概念

其中,藍色的最左邊的是輸入層(x1,x2,x3),最右邊的是輸出層(輸出層可以有多個神經元),中間的都是隱藏層。每個箭頭會對應一個θ,在計算進入到下一層是,新增一個x0(等於1),就像線性迴歸,邏輯迴歸中的x0一個道理。

從輸入層開始從左往右一層一層前進,h(x)=g(z);相當於就是對每一層的每個單元都用邏輯迴歸求得該單元,再繼續向後求。

3.代價函式

J(\theta)=-\frac{1}{m}(\sum_{i=1}^{m}{\sum_{k=1}^{K}{(y^i_klog(h(x^i))_k+(1-y^i_k)log(1-h(x^i))_k)}})+\frac{\lambda}{2m}\sum_{l=1}^{L-1}{\sum_{i=1}^{s_l}{\sum_{j=1}^{s_{l+1}}{(\theta^l_{ij})^2}}}

(m單元總個數,K輸出單元的個數,k第k個,而後面的關於θ的正則項,其實就是求所有θ的平方和,即第l層第i行第j列個,簡而言之就是求所有θ的平方和。這裡h(x)得到的結果是一個向量,即K維) 

可以看出J(θ)和邏輯迴歸中的代價函式有些相似,就像上面所說的神經網路是對每一層的每個單元用邏輯迴歸去求。