--- tags: 機器學習技法 --- Ch12 Neural Network === ## Content [TOC] ## [Slides & Videos](https://www.csie.ntu.edu.tw/~htlin/mooc/) ## [Motivation](https://www.coursera.org/learn/machine-learning-techniques/lecture/9CkNA/motivation) ### Linear Aggregation of Perceptrons: Pictorial View  - 我們可以把一個 NN 看成是 perceptron 的 linear aggregation - 有兩種權重 - $w_t$ 就是 perceptron $g_t$ 自身的權重 - $\alpha_t$ 就是每個 $g_t$ 的投票權重 ### Logic Operations with Aggregation  - 把 $g_0$ 當成是一個 constant 的 output (1) - 把 $\alpha_1,\alpha_2$ 設 1;$\alpha_0$ 設 -1 就可以達到將 $g_1,g_2$ 做 AND 的效果 - OR 和 NOT 也可以自己推 ### Powerfulness and Limitation  - 足夠多的 perceptron 可以 implement 任何的 **convex set** - 這樣 VC dimension 就是無限大 - > Q: 回去複習!! - 做不到的事:將 $g_1,g_2$ 的 output 做 XOR - 一個理解方式是,將 $x$ 以 $g_1,g_2$ 做特徵轉換之後的空間,仍然不是 linear separable 的 - > Q: 有點難思考為何轉換後仍然不是 linear separable ### Multi-Layer Perceptrons: Basic Neural Network  - ~~一層不夠用,你有用兩層嗎~~ - 這樣就可以組出 XOR 了 - > Q: 那這樣應該是 2-hidden layer 嗎突然當機 ### Connection to Biological Neurons  - 雖然 NN 是模仿生物神經傳遞,但不需要相同 - 就像飛機是模仿鳥類的長相,但飛行原理仍然有所不同 ### Fun Time: Implementation for OR operation  ## [Neural Network Hypothesis](https://www.coursera.org/learn/machine-learning-techniques/lecture/Hh7Gy/neural-network-hypothesis) ### Neural Network Hypothesis: Output  - 其實 output 那個 layer 就是一個 linear model,因此可以套我們學過的各種 linear model - 簡單起見,接下來講的會套用 linear regression ### Neural Network Hypothesis: Transformation  - 用 tanh 更接近類比(anolog)/連續的 - tanh 其實就是 兩倍的 sigmoid 再減 1 ### Neural Network Hypothesis  - 經過第 $l$ 次處理之後,就叫第 $l$ 層 - 方便起見,輸入我們叫他第 $0$ 層 - output 那邊是第 $3$ 層 - $d^{(l-1)}$ 是第 $l$ 層的 input dimension 數量 - $d^{(l)}$ 是第 $l$ 層的 output dimension 數量 - $w_{ij}^{(l)}$ - 第 $l-1$ 層和 第 $l$ 層之間的權重 - 第 $i$ 個 input 到 第 $j$ 個 output 的 weight - 注意 $i$ 要從 0 開始 - $x^{(l)}_j$ - 第 $l$ 層的 - 第 $j$ 個 - 輸出 - 我們假設是 linear regression 所以只需要一個 output $x_1^{(L)}$ ### Physical Interpretation  - 因為是跟 weight 做內積,其實可以看成是在判斷跟 weight 方向是否一致 - 所以也可以看成在 extract 某些 pattern ### Fun Time: How Many Weights in a NN?  ## [Neural Network Learning](https://www.coursera.org/learn/machine-learning-techniques/lecture/KQWNq/neural-network-learning) ### How to Learn the Weights?  - $e_n$: 第 $n$ 筆資料的 error ### Computing $\frac{\partial e_n}{\partial w_{}}$ (Output Layer)  - 先看最後一層的 weight 的 gradient - 直接連鎖律可解 - $\frac{\partial e_n}{\partial s_1^{(L)}}=-2(y_n-s_1^{(L)})$ - $\frac{\partial s_1^{(L)}}{\partial w_{i1}^{(L)}}=x_i^{(L-1)}$ - 但是 hidden layer 就難解了 - $\frac{\partial s_j^{(l)}}{\partial w_{ij}^{(l)}}=x_i^{(l-1)}$ - 因為沒辦法直接算 $\frac{\partial e_n}{\partial s_j^{(l)}}$ (我們簡短用 $\delta_j^{(l)}$ 來代替) - 我們先寫成 $\frac{\partial e_n}{\partial w_{ij}^{(l)}}=\delta_j^{(l)}\cdot x_i^{(l-1)}$ ### Computing $\delta_j^{(l)}=\frac{\partial e_n}{\partial s_j^{(l)}}$  - 其實 $\delta_j^{(l)}$ 是可以從 $\delta_k^{(l+1)}$ 算回來的 ### Backpropagation (Backprop) Algorithm  - 總結來說,用 forward 計算 $x_i^{(l)}$;用 backward 計算 $\delta_j^{(l)}$ - 可以用矩陣運算的方式來平行計算多筆資料的平均 gradient,即 mini-batch ### Fun Time: When will the gradient be zero?  - 注意 tanh = 0 也代表上一層的 s = 0 ## [Optimization and Regularization](https://www.coursera.org/learn/machine-learning-techniques/lecture/LQTCm/optimization-and-regularization) ### Neural Network Optimization  - **non-convex: NN 不是一個單一山谷的最佳化問題** - **weight 太大容易導致 saturate gradient** ### VC Dimension of Neural Network Model - $d_{VC}=O(VD)$ - $V$ 是 neuron 數 - $D$ 是 weight 數 - pros: neuron 夠多就可以逼近任何 function - cons: 容易 overfit ### Regularization for Neural Network  - 用 L2 regularizer 會有一個問題:weight 其實只是等比例縮小,大的 weight 會縮小比較多;小的 weight 會縮小比較少 (e.g., 8->6, 4->3) - > Q: 這可以推導嗎 - 因為 gradient 就直接跟 weight 成正比 - 我們希望 $w$ 是稀疏的,一方面 VC dimension 可以比較小,另一方面也節省運算,但是有個問題:L1 regularizer 在某些地方不可微 - > Q: 這會很難處理嗎@@ - 所以我們需要把 L2 regularizer 做一下 scale,這樣不論大的還是小的 weight 都可以有一定程度的 shrink,這樣就可以導致稀疏解了 - **weight-elimination regularizer**: $\sum\frac{(w_{ij}^{(l)})^2}{1+(w_{ij}^{(l)})^2}$ - > Q: 自己推導一下為何有這種性質 ### Yet Another Regularization: Early Stopping  - early stopping 看過的 weight 數量就比較有限 ### Fun Time: Differentiate the Regularizer  - > Q: 我ㄉ微積分QQ
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up