[深度之眼機器學習訓練營第四期]神經網絡之模型表示

爲何要用神經網絡?

爲了得到非線性假設空間,咱們引入神經網絡模型。以前文章提到,對於分類問題,對數概率迴歸結合多項式特徵能夠獲得非線性決策邊界;而將多項式特則與線性迴歸結合也能夠擬合非線性函數。既然咱們已經能夠獲得非線性假設空間,爲何還要引入神經網絡模型呢?這是由於當數據集特徵數\(d\)增大時,高階多項式項的數量將以幾何級數遞增,特徵空間也隨之急劇膨脹。所以,咱們須要神經網絡模型來解決複雜的非線性問題。網絡

模型表示

如圖所示,神經網絡模型一般按照一個輸入層、若干隱藏層以及一個輸出層的順序組成,每一層由若干神經元組成。相鄰兩層之間的神經元經過參數(包括權重\(W\)和偏置\(b\))矩陣鏈接。神經元能夠被激活,激活信號沿着參數矩陣逐層向後傳遞到輸出層。這裏,咱們用\(\Theta^{(j)}_{k,i}\)表示鏈接第\(j\)層第\(i\)個神經元與\(j+1\)層第\(k\)個神經元的參數,\(a_i^{(j)}\)表示第\(j\)層中第\(i\)個激活單元。函數

在這裏插入圖片描述

將輸入值從輸入層逐層傳遞到輸入層的過程叫作前向傳播(Forward Propagation),這也是神經網絡模型進行預測的基礎。考慮只有一個隱藏層的神經網絡:
\[ \begin{bmatrix}x_0 \\x_1 \\ x_2 \\ x_3 \end{bmatrix}\rightarrow\begin{bmatrix}a_1^{(2)} \\ a_2^{(2)} \\ a_3^{(2)} \\ \end{bmatrix}\rightarrow h_\theta(x) \]
隱藏層中每一個神經元的激活值爲:
\[\begin{aligned} a_1^{(2)} &= g(\Theta_{1,0}^{(1)}x_0 + \Theta_{1,1}^{(1)}x_1 + \Theta_{1,2}^{(1)}x_2 + \Theta_{1,3}^{(1)}x_3) \\ a_2^{(2)} &= g(\Theta_{2,0}^{(1)}x_0 + \Theta_{2,1}^{(1)}x_1 + \Theta_{2,2}^{(1)}x_2 + \Theta_{2,3}^{(1)}x_3) \\ a_3^{(2)} &= g(\Theta_{3,0}^{(1)}x_0 + \Theta_{3,1}^{(1)}x_1 + \Theta_{3,2}^{(1)}x_2 + \Theta_{3,3}^{(1)}x_3) \end{aligned}\]spa


\[z_k^{(j+1)} = \Theta_{k,0}^{(j)}x_0 + \Theta_{k,1}^{(j)}x_1 + \cdots + \Theta_{k,d}^{(j)}x_d\]

\[\begin{aligned}a_1^{(2)} = g(z_1^{(2)}) \\ a_2^{(2)} = g(z_2^{(2)}) \\ a_3^{(2)} = g(z_3^{(2)}) \end{aligned}\]
那麼
\[ \begin{aligned} h_\Theta(x) = a_1^{(3)} = g(\Theta_{1,0}^{(2)}a_0^{(2)} + \Theta_{1,1}^{(2)}a_1^{(2)} + \Theta_{1,2}^{(2)}a_2^{(2)} + \Theta_{1,3}^{(2)}a_3^{(2)}) \end{aligned} \]
這樣,咱們就計算出了\(h_\Theta(x)\)的值,獲得模型的預測結果。blog

上述過程推廣到向量形式:
\[\begin{aligned}x = \begin{bmatrix}x_0 \\ x_1 \\ \vdots \\ x_d\end{bmatrix},\quad z^{(j)} = \begin{bmatrix}z_1^{(j)} \\ z_2^{(j)} \\ \vdots \\ z_{s_j}^{(j)}\end{bmatrix}, \quad a^{(j)} = \begin{bmatrix}a_1^{(j)} \\ a_2^{(j)} \\ \vdots \\ a_{s_j}^{(j)}\end{bmatrix}\end{aligned}\]圖片

\[ \begin{aligned} z^{(j)} &= \Theta^{(j-1)}a^{(j-1)}\\ a^{(j)} &= g(z^{(j)})\\ z^{(j+1)} &= \Theta^{(j)}a^{(j)} \end{aligned} \]io

注意,若是網絡模型的第 \(j\)層有 \(s_j\)個神經元,而第\(j+1\)層有\(s_{j+1}\)個神經元,那麼參數矩陣的維度(包含偏置項)爲\(s_{j+1} \times (s_j + 1)\)class

相關文章
相關標籤/搜索