機器學習:神經網路的模型構建

什麼是神經網路

神經網路是一種模擬人腦工作原理,從而實現類人工智慧的機器學習技術,支持處理圖像、文本、語音以及序列多種類型的數據,可以實現分類、回歸和預測等。


簡單的神經元:邏輯單元(Logistic Unit)

由於神經網路建立在很多個神經元的基礎上,其中每一個神經元都是一個學習模型,這些神經元叫做激活單元(Activation Unit)。以邏輯回歸模型為例,採納一些特徵作為輸入,給出邏輯輸出,如下圖:

Logistic Unit

也可以用簡單的式子來表示: left[ egin{matrix} x_{0}\ x_{1}\ x_{2}\ x_{3}\end{matrix}
ight]
ightarrow [spacespacespacespacespacespace]
ightarrow h_{	heta}(x) .

圖中空心的圓圈就是類似神經元的東西,類似神經元的樹突,這個圓圈的輸入神經為它傳入信息,然後它對其進行計算,再通過它的輸出神經(軸突)將得到的結果信息傳出。

其中:h_{	heta}(x) = frac{1}{1+e^{-	heta^{T}X}} (激勵函數,activation function ),x=left[ egin{matrix} x_{0}\ x_{1}\ x_{2}\ x_{3}\end{matrix}
ight](輸入), 	heta=left[ egin{matrix} 	heta_{0}\ 	heta_{1}\ 	heta_{2}\ 	heta_{3}\end{matrix}
ight] (權重,weights).

這就是最簡單的一種模擬神經元的邏輯單元模型。我們在機器學習中的目標就是,得到最合適的權重組合,使得整個神經網路的預測效果達到最佳。

【總結】一個神經元的組成:

  • 輸入數據
  • 線性加權
  • 激勵函數(非線性,易求導)
  • 輸出數據

神經網路的模型表示

神經網路就是多個神經元組合到一起的集合,如下圖:

Neural Network

有時第一層也要加上額外的節點 x_{0} ,第二層加一個偏執單元(bias unit)a_{0}^{(2)} 。圖中 Layer 1 叫做輸入層(Input Layer),Layer 3 叫做輸出層(Output Layer),Layer 2 叫做隱藏層(Hidden Layer)。輸入層和輸出層只有一個,而隱藏層可以有多個,實際上非輸入層或非輸出層的層都是隱藏層。

我們規定:a_i^{(j)} 表示第 j 層的第 i 個神經元, Theta^{(j)} 為一個權重矩陣,控制從第 j 層到第 j+1 層的映射。在上圖的神經網路中,第二層的數據可以表示為:

a_1^{(2)}=g(Theta_{10}^{(1)}x_0+Theta_{11}^{(1)}x_1+Theta_{12}^{(1)}x_2+Theta_{13}^{(1)}x_3)

a_2^{(2)}=g(Theta_{20}^{(1)}x_0+Theta_{21}^{(1)}x_1+Theta_{22}^{(1)}x_2+Theta_{23}^{(1)}x_3)

a_3^{(2)}=g(Theta_{30}^{(1)}x_0+Theta_{31}^{(1)}x_1+Theta_{32}^{(1)}x_2+Theta_{33}^{(1)}x_3)

其中的 g(x) 代表的是激勵函數,也就是說這裡的激勵函數作用在輸入數據經過權重處理後的線性組合上。參數矩陣 Theta^{(1)} 控制了三個輸入單元到三個隱藏單元的映射,因此它是一個維度為 3x4 的矩陣。

h_{Theta}(x)=a_{1}^{(3)}=g(Theta_{10}^{(2)}a_{0}^{(2)}+Theta_{11}^{(2)}a_{1}^{(2)}+Theta_{12}^{(2)}a_{2}^{(2)}+Theta_{13}^{(2)}a_{3}^{(2)}) .

一般來說,如果一個神經網路在第 j 層有 s_{j} 個單元,在第 j+1 層有 s_{j+1} 個單元,那麼矩陣 Theta^{j} 控制著第 j 層到第 j+1 層的映射,它的維度為 s_{j+1}	imes(s_{j}+1) . 其中第二項的 +1 來自 Theta^{(j)} 中的偏執節點 x_{0}Theta_{0}^{(j)} ,也就是說輸入層包括偏執節點,而輸出層不包括。

接下來,再定義一些額外的項,我們把激勵函數 g 括弧里的部分記作 z_{i}^{(j)} ,於是上面的表達式可以寫作:

a_{1}^{(2)}=g(z_{1}^{(2)})

a_{2}^{(2)}=g(z_{2}^{(2)})

a_{3}^{(2)}=g(z_{3}^{(2)})

h_{Theta}(x)=a_{1}^{(3)}=g(z^{(3)})

兩組式子對比,我們可以看出來: z^{(2)}=Theta^{(1)}x=a^{(1)}a^{(2)}=g(z^{(2)}) ,其中: z^{(2)}=left[ egin{matrix} z_{1}^{(2)}\ z_{2}^{(2)}\ z_{3}^{(2)}\end{matrix}
ight] . 這裡 a^{(2)}z^{(2)} 都是三維向量,因此激勵函數 g 是逐個作用於 a^{(2)} 中的數據的。

若我們增加一項 a_{0}^{(2)}=1 ,那麼 z^{(3)}=Theta^{(2)}a^{(2)}h_{Theta}(x)=a^{(3)}=g(z^{(3)}) .

這個計算 h(x) 的過程也叫做前向傳播(forward propagation)。


關於神經網路模型的 cost function 和 back propagation 下周再總結~


推薦閱讀:

機器學習之數據預處理簡介
2018AI學習清單丨150個最好的機器學習和Python教程
My First Machine Learning Study Notes
機器學習基石筆記2:感知器學習演算法(PLA)

TAG:機器學習 | 神經網路 | 演算法 |