Udacity
Machine Learning
Neural Networks
什么是 Neural Networks?
Perception:
如下圖,Input Xi 乘以相應的權(quán)重 wi,然后求和得到 activation,再與 UNIT里的Theta ,大于等于這個閾值則 y=1,否則 y=0.
可以看到權(quán)重 wi 決定了最后的分類,下圖就是 perception 達到的效果,它可以求出 halfplane 來把 (x1,x2) 分為兩類。
Neural Network 可以表示 boolean function,
AND
OR
NOT
也就是可以用 perception 來表示 AND,OR,NOT,那么怎么用它來表示 anything。
XOR
XOR=OR-AND
所以要先把 AND 和 OR 都寫在下面的表格里
先考慮 OR 的話,w1=1,w3=1,theta=1
但是 AND 對應的 w2 不能直接=-1,因為當 x1 和 x2 同時為 1 時,此時的值等于theta,就無法得到XOR的0了,所以 w2=-2.
我們希望建立一個 system,輸入數(shù)據(jù)之后,就可以訓練出 weights
為了訓練出這些 weights,有兩個規(guī)則:
- Perception Rules (Use threshold values)
- Gradient Descent/Delta Rules(Use unthreshold values)
1. Perception Rules
目標是要訓練 weights,得到的 y 可以和 Threshold 比較進而歸類,閾值 Theta 可以被換到表達式左邊的權(quán)重里,所以右邊是0
我們就是要通過改變 wi 來找到最優(yōu)的權(quán)重,也就是要找到 delta wi,就可以找到 wi。
y 是實際值,y hat 是用 wi 計算出來的,二者相減的結(jié)果有下面四種可能,如果 y hat 是正確的,那就意味著 wi 不需要改變,但如果是錯誤的,比如 y=0,y hat=1,那說明 y hat 過大了,那么由 delta wi 的公式可以看出,xi 向負方向偏離太遠,
不想讓 y hat 過大或者過小,這個時候 learning rate 就起作用了,也就是可以在某個方向一點一點地走。
如果一個數(shù)據(jù)集可以找到線性的 half plane,那么 Perception Rule 就一定能找到這個平面。
需要一個算法 robust to non-linear separability,這個算法就是
2. Gradient Descent
為什么用 a,而不用 y hat,因為 y hat 不可導。
兩個 Rules 的比較:
Sigmoid 是什么?
求導后的形式也很簡單,
Back Propagation
信息是從前向后傳,Error 從后向前回溯
其中的 Sigmoid Units 也可以換成其他可微的函數(shù),
這個 Error function 可以有很多局部最優(yōu),但不一定是全局最優(yōu)。
Negative Attributes:
更多的節(jié)點,更多的層,更大的權(quán)重,這三條會導致問題變得很復雜
每次引用一個新的 Supervised Learning Algorithm 時,就想想它的 Restriction Bias 和 Preference Bias。
Restriction Bias:
可以告訴你這個模型的 Representational Power
只要 Neural Networks 足夠復雜,也就是有足夠多的層和節(jié)點,就不會受到這些限制,但是問題是可能 Overfitting,為了解決過擬合問題,會加一些邊界條件來限制層數(shù)和節(jié)點數(shù),這時可以用 Cross Validation 來決定用多少層,每層多少個節(jié)點,何時停止。
not very restrictive in terms of their bias
我們不會選擇最多的迭代次數(shù),而是選擇 Cross Validation Error 最小的點停止。
Preference Bias:
告訴你你將要用的算法,你為什么選擇這個算法而不是別的。
到底是選擇 Gradient Descent 還是 Back Propagation。
該如何初始化權(quán)重。簡單,隨機