聽課筆記(第二講): Perceptron-感知機 (臺灣國立大學機器學習基石)

Learning to Answer Yes/No (二值分類)

一, Perceptron

x = (x1, x2, ..., xd) ---- features
w = (w1, w2, ..., wd) ---- 未知(待求解)的權重

對於銀行是否發送信用卡問題:
 


perceptron 假設:
 

sign 是取符號函數, sign(x) = 1 if x>0, -1 otherwise
向量表示:
 


感知機(perceptron)是一個線性分類器(linear classifiers)。
線性分類器的幾何表示:直線、平面、超平面。

二, Perceptron Learning Algorithm (PLA)

感知機求解(假設空間爲無窮多個感知機;注意區分下面的普通乘法和向量內積,內積是省略了向量轉置的表示,因爲豆瓣不支持公式。。。)
初始w = 0 (零向量)。
第一步:找一個分錯的數據(xi, yi), sign(w*xi) != yi;
第二步:調整w 的偏差,w = w + yi*xi;
循環第一、二步,直到沒有任何分類錯誤, 返回最後得到的w。

實際操作時,尋找下一個錯誤數據可以按照簡單的循環順序進行(x1, x2, ..., xn);如果遍歷了所有數據沒有找到任何一個錯誤,則算法終止。注:也可以預先計算(如隨機)一個數據序列作爲循環順序。

以上爲最簡單的PLA 算法。沒有解決的一個基本問題是:該算法不一定能停止!

三, PLA 算法是否能正常終止

分兩種情況討論:數據線性可分;數據線性不可分。
 


注意PLA 停止的條件是,對任何數據分類都正確,顯然數據線性不可分時PLA 無法停止,這個稍後研究。
1, 我們先討論線性可分的情況。
數據線性可分時,一定存在完美的w(記爲wf), 使得所有的(xi, yi), yi = sign(wf*xi).
可知:
 


下面證明在數據線性可分時,簡單的感知機算法會收斂。
 


而且量向量夾角餘弦值不會大於1,可知T 的值有限。由此,我們證明了簡單的PLA 算法可以收斂。

四,數據線性不可分:Pocket Algorithm

當數據線性不可分時(存在噪音),簡單的PLA 算法顯然無法收斂。我們要討論的是如何得到近似的結果。
我們希望儘可能將所有結果做對,即:
 


尋找wg 是一個NP-hard 問題!
只能找到近似解。

Pocket Algorithm
 


與簡單PLA 的區別:迭代有限次數(提前設定);隨機地尋找分錯的數據(而不是循環遍歷);只有當新得到的w 比之前得到的最好的wg 還要好時,才更新wg(這裏的好指的是分出來的錯誤更少)。
由於計算w 後要和之前的wg 比較錯誤率來決定是否更新wg, 所以pocket algorithm 比簡單的PLA 方法要低效。

最後我們可以得到還不錯的結果:wg。
發佈了7 篇原創文章 · 獲贊 13 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章