2017年9月20日 星期三

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*}
    • $x_0$是bias node,其值為1
  • 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其中之一



沒有留言:

張貼留言