[學習筆記] 機器學習: 神經網路的結構 (Machine Learning: Neural Networks: Representation)

Logistic Regression 的限制


如果 features 數較多, 且需要 non-linear hypothesis function 來作預測, 運算量會變得相當大.
舉例來說, 如果選擇了 features x1, x2, ... , x100, 若以二次式建構 features combinations, x12, x1x2, ..., 共會組合出 100*99/2 = 4950 個 features, 運算複雜度為 O(n2).

對於影像辨識, 如果 input image 為 50x50 pixel image, 總共有 2500 個 features, 若以二次式建構 features combinations, 將會有 2500*2499/2 = 3,123,750 個 features!

神經元及大腦 (Neurons and the brain)


Neural network 的想法是設法模擬人類的大腦, 因為人類的大腦具有強大的學習能力, 若能夠模擬人類的大腦, 就可以使用一種架構, 解決各式各樣的問題.

在 1980 年代到 1990 年代初期, neural network 廣泛地被使用, 但在 1990 年代晚期逐漸被淡忘.

直到 2010 年代, 由於計算能力的躍進, 可以運用 neural network 順利處理更多的問題, neural network 才又重新崛起.

The "one learning algorithm" hypothesis
大腦能夠處理各式各樣的問題, 並不是因為大腦針對各種問題有不同的結構去處理, 大腦可以運用相同的結構去處理各種問題. 因此, 同樣的, 我們可以採用單一一套 learning algorithm 來處理各式各樣的問題.


以上圖為例, 粉紅色標示 41, 42 的部位是聽覺皮層 (auditory cortex), 根據 neuro-rewiring 實驗發現, 如果把耳朵連結到聽覺皮層的線路切斷, 讓視網膜輸入連結到聽覺皮層, 聽覺皮層能夠學會視覺處理.


以上圖為例, 粉紅色的部位是體感皮層 (somatosensory cortex), 根據 neuro-rewiring 實驗發現, 如果把四肢連結到體感皮層的線路切斷, 讓視網膜輸入連結到體感皮層, 體感皮層能夠學會視覺處理.

因為同一個大腦皮層, 可以學會視覺處理, 聽覺處理, 觸覺處理, 因此, 同樣的, 也很有可能可以發展單一一套 learning algorithm 模仿大腦, 能夠處理視覺, 聽覺, 及各種問題.

神經網路的結構 (Neural Networks: Model Representation)


Neural Networks 的結構設計上是模擬大腦內神經元 (neuron) 的網路結構.

下圖是大腦內單一神經元的結構.


神經元有一些 input wires, 稱之為樹突 (dendrite).

神經元有一個 output wire, 稱之為軸突 (axon), 用來傳遞訊息到其他的神經元.

Neuron model: logistic unit

\( x =
\begin{bmatrix}
x_0
\\ x_1
\\ x_2
\\ x_3
\end{bmatrix}, \theta =
\begin{bmatrix}
\theta_0
\\ \theta_1
\\ \theta_2
\\ \theta_3
\end{bmatrix} \)

\( \theta \): weights or parameters

\( h_{\theta}(x) = g( \theta^T x ) \)

\( z = \theta^T x \)

\( g(z) = \frac{1}{1 + e^{-z}} \)


\( g(z) \): sigmoid function

\( h_{\theta}(x) \): sigmoid (logistic) activation function
Neural Network

\( a_i^{(j)} \): "activation" of unit \( i \) in layer \( j \)

\( \Theta^{(j)} \): matrix of weights controlling function mapping from layer \( j \) to layer \( 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) \)

\( 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)}) \)

If network has \( s_j \) units in layer \( j \), \( s_{j+1} \) units in layer \( j+1 \), then \( \Theta^{(j)} \) will be of dimension \( s_{j+1}*(s_j+1) \).
Forward propagation: Vectorized implementation
定義 \( z_k^{(j)} \):

\( z_k^{(j)} = \Theta_{k,0}^{(j-1)}x_0 + \Theta_{k,1}^{(j-1)}x_1 + ...\Theta_{k,n}^{(j-1)}x_n \)

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

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

\( z_2^{(3)} = \Theta_{30}^{(1)}x_0 + \Theta_{31}^{(1)}x_1 + \Theta_{32}^{(1)}x_2 + \Theta_{33}^{(1)}x_3 \)

如此, 原式可簡化為:

\( a_1^{(2)} = g(z_1^{(2)}) \)

\( a_2^{(2)} = g(z_2^{(2)}) \)

\( a_3^{(2)} = g(z_3^{(2)}) \)

The vector representation of \( x \) and \( z^{(j)} \):

\( x =
\begin{bmatrix}
x_0
\\ x_1
\\ .
\\ .
\\ .
\\ x_n
\end{bmatrix} =
\begin{bmatrix}
a_0^{(1)}
\\ a_1^{(1)}
\\ .
\\ .
\\ .
\\ a_n^{(1)}
\end{bmatrix}
, z^{(j)} =
\begin{bmatrix}
z_1^{(j)}
\\ z_2^{(j)}
\\ .
\\ .
\\ .
\\ z_n^{(j)}
\end{bmatrix} \)

如此:

\( z^{(j)} = \Theta^{(j-1)}a^{(j-1)} \)

\( a^{(j)} = g(z^{(j)}) \)

\( h_{\Theta}(x) = a^{(j+1)} = g(z^{(j+1)}) \)

Neural Network learning its own features

上圖中橘色的部分,正是 logistic regression 的結構,根據 \( a_1^{(2)}, a_2^{(2)}, a_3^{(2)} \),計算 \( h_{\Theta}(x) \),進行預測。

\( h_{\Theta}(x) = 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)}) \)

原本餵給 model 的 inputs (features) 是 \(x_1, x_2, x_3 \),而最後是根據 \( a_1^{(2)}, a_2^{(2)}, a_3^{(2)} \),計算 \( h_{\Theta}(x) \),進行預測。

因此本質上等於是 neural network 學習到了新的 features \( a_1^{(2)}, a_2^{(2)}, a_3^{(2)} \),據此進行預測。

Other network architectures


Architectures 是指 nodes 如何組成,以及彼此如何連接。

神經網路的應用 (Applications)


Example: AND function

\( x_1, x_2 \in {0, 1} \)

\( y = x_1 \) AND \( x_2 \)


\( h_{\Theta}(x) = g(-30 + 20x_1 + 20x_2) \)

\( x_1 = 0, x_2 = 0 \rightarrow g(-30) \approx 0 \)

\( x_1 = 0, x_2 = 1 \rightarrow g(-10) \approx 0 \)

\( x_1 = 1, x_2 = 0 \rightarrow g(-10) \approx 0 \)

\( x_1 = 1, x_2 = 1 \rightarrow g(10) \approx 1 \)

Example: OR function

\( x_1, x_2 \in {0, 1} \)

\( y = x_1 \) OR \( x_2 \)


\( h_{\Theta}(x) = g(-10 + 20x_1 + 20x_2) \)

\( x_1 = 0, x_2 = 0 \rightarrow g(-10) \approx 0 \)

\( x_1 = 0, x_2 = 1 \rightarrow g(10) \approx 1 \)

\( x_1 = 1, x_2 = 0 \rightarrow g(10) \approx 1 \)

\( x_1 = 1, x_2 = 1 \rightarrow g(30) \approx 1 \)

Example: XNOR function

\( x_1, x_2 \in {0, 1} \)

\( y = x_1 \) XNOR \( x_2 \)


\( \Theta^{(1)} = \begin{bmatrix}
-30 & 20 & 20
\\ 10 & -20 & -20
\end{bmatrix} \)

\( a^{(2)} = g(\Theta^{(1)}x) \)

\( \Theta^{(2)} = \begin{bmatrix}
-10 & 20 & 20
\end{bmatrix} \)

\( h_{\Theta}(x) = a^{(3)} = g(\Theta^{(2)}a^{(2)}) \)

\( x_1 = 0, x_2 = 0 \rightarrow a_1^{(2)} = 0, a_2^{(2)} = 1 \rightarrow h_{\Theta}(x) = 1 \)

\( x_1 = 0, x_2 = 0 \rightarrow a_1^{(2)} = 0, a_2^{(2)} = 0 \rightarrow h_{\Theta}(x) = 0 \)

\( x_1 = 0, x_2 = 0 \rightarrow a_1^{(2)} = 0, a_2^{(2)} = 0 \rightarrow h_{\Theta}(x) = 0 \)

\( x_1 = 0, x_2 = 0 \rightarrow a_1^{(2)} = 1, a_2^{(2)} = 0 \rightarrow h_{\Theta}(x) = 1 \)

Multiclass Classification


假設 training set 是圖片與每張圖片是 Cat, Dog 或 Fox 三種類別其中之一。

以 neural network 進行 multiclass classification 簡單架構如下圖。


\( h_{\Theta}(x) \in \mathbb{R}^3 \)

如果圖片是 Cat, 我們期望 \( h_{\Theta}(x) \approx
\begin{bmatrix}
1
\\ 0
\\ 0
\end{bmatrix} \)

如果圖片是 Dog, 我們期望 \( h_{\Theta}(x) \approx
\begin{bmatrix}
0
\\ 1
\\ 0
\end{bmatrix} \)

如果圖片是 Fox, 我們期望 \( h_{\Theta}(x) \approx
\begin{bmatrix}
0
\\ 0
\\ 1
\end{bmatrix} \)

延伸閱讀


[Coursera] Machine Learning: Neural Networks: Representation, by Andrew Ng, Stanford University