Week4
Neural Networks
- 在model中,input是$x_1\cdots x_n$的features,output是hypothesis function的結果
- $x_0$ input node有時稱為bias unit,其值永遠為1
- 在neural network中,會使用跟classification一樣的logistic function
- $\frac{1}{1 + e^{-\theta^Tx}}$
- 有時稱之為sigmoid (logistic) activation function
- "theta" parameters有時也稱為"weights"
- 最簡單的表示方式如下:
- $\begin{bmatrix}x_0 \newline x_1 \newline x_2 \newline \end{bmatrix}\rightarrow\begin{bmatrix}\ \ \ \newline \end{bmatrix}\rightarrow h_\theta(x)$
- input nodes位於input layer (layer 1),中間經過另一個node (layer 2),最後產出hypothesis function位於output layer
- 在input跟output layer之間可能會有不只一層layer,稱其為hidden layers
- 我們把hidden layer的node稱為activation unit
\begin{align*}& a_i^{(j)} = \text{"activation" of unit $i$ in layer $j$} \newline& \Theta^{(j)} = \text{matrix of weights controlling function mapping from layer $j$ to layer $j+1$}\end{align*}
- 假設有一層hidden layer,會長的像下面這樣:
$\begin{bmatrix}x_0 \newline x_1 \newline x_2 \newline x_3\end{bmatrix}\rightarrow\begin{bmatrix}a_1^{(2)} \newline a_2^{(2)} \newline a_3^{(2)} \newline \end{bmatrix}\rightarrow h_\theta(x)$
- 每一個activation node的值如下:
\begin{align*} a_1^{(2)} = g(\Theta_{10}^{(1)}x_0 + \Theta_{11}^{(1)}x_1 + \Theta_{12}^{(1)}x_2 + \Theta_{13}^{(1)}x_3) \newline a_2^{(2)} = g(\Theta_{20}^{(1)}x_0 + \Theta_{21}^{(1)}x_1 + \Theta_{22}^{(1)}x_2 + \Theta_{23}^{(1)}x_3) \newline a_3^{(2)} = g(\Theta_{30}^{(1)}x_0 + \Theta_{31}^{(1)}x_1 + \Theta_{32}^{(1)}x_2 + \Theta_{33}^{(1)}x_3) \newline 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)}) \newline \end{align*}
- 每一個layer有它自己的$\Theta^{(j)}$,則其dimension的定義如下:
- 假設layer j有$s_j$個unit,layer j+1有$s_{j+1}$個unit,則$\Theta^{(j)}$的dimension為$s_{j+1} \times (s_j + 1)$
- +1是因為多考慮bias node $x_0$跟$\Theta_0^{(j)}$
- output不須考慮bias node,只有input需要考慮
- 用vector的方式處理:
- 將activation node以vector表示:$a(j)=g(z(j))$
- 而$z^{(j)} = \Theta^{(j-1)}a^{(j-1)}$
- 若還要計算下一層,就在$a^{(j)}$中加入一個bias unit
- 就可以計算$z^{(j+1)} = \Theta^{(j)}a^{(j)}$
Examples and Intuitions I
- 一個簡單的例子是以neural network預測$x_1$ AND $x_2$的結果,function會是如下:
\begin{align*}\begin{bmatrix}x_0 \newline x_1 \newline x_2\end{bmatrix} \rightarrow\begin{bmatrix}g(z^{(2)})\end{bmatrix} \rightarrow h_\Theta(x)\end{align*}
- Theta matrix則會是:$\Theta^{(1)} =\begin{bmatrix}-30 & 20 & 20\end{bmatrix}$
- sigmoid function在z>4後趨近於1,z < 4後趨近於0
- 所以可以算出如下結果:
\begin{align*}& h_\Theta(x) = g(-30 + 20x_1 + 20x_2) \newline \newline & x_1 = 0 \ \ and \ \ x_2 = 0 \ \ then \ \ g(-30) \approx 0 \newline & x_1 = 0 \ \ and \ \ x_2 = 1 \ \ then \ \ g(-10) \approx 0 \newline & x_1 = 1 \ \ and \ \ x_2 = 0 \ \ then \ \ g(-10) \approx 0 \newline & x_1 = 1 \ \ and \ \ x_2 = 1 \ \ then \ \ g(10) \approx 1\end{align*}
Examples and Intuitions II
- 在上一節中,AND/OR/NOR都可以無須hidden layer就算出來
- 但XNOR就需要多一層hidden layer才能求出,中間透過AND/OR/NOR的轉換
Multiclass Classification
- 假設最後的結果不是只有2類,而是4類,那可用大小為4的vector來表示:
- $h_\Theta(x)$ 會是這四種可能的vector其中之一
沒有留言:
張貼留言