for batch&supervised binary classfication,g≈f <=> Eout(g)≥0 achieved through Eout(g)≈Ein(g) and Ein(g)≈0
其中Ein是某一個備選函數h在數據D上犯錯誤的比例,在整個數據集上犯錯誤的比例為Eout
1.Perceptron Hypothesis Set
假設訓數據集市線性可分的,感知機學習是目標就是求得一個能夠將訓練集正實例點和負實例點完全正確分開的分離超平面,
對於一組數據X={x1,x2,x3...,xn},其中每一個xi代表了一個屬性值,那么這個屬性值所代表的屬性的重要程度可能是不同的,我們用一組權重的向量代表每個屬性的重要程度W={w1,w2,w3...,wn},wi變化會產生不同的數據,這樣對每一組數據我們可以計算出一個得分score,他可能代表了一些具體含義,比如某客戶的信用額度。那么當score與某一臨界值作比較時,當score大於臨界值時,就是正值表示的含義是發信用卡,當score小於該臨界值時,就是負值表示不發信用卡,這樣分類器就產生了。具體來說:
接着為了之后的簡單,我們進行了合並的操作:
相應的,在二維空間中,h(x)變成了如下形式
2.Perceptron Learning Algorithm (PLA)
PLA算法的基本思想是,最開始的時候隨便取一條曲線wn,這條曲線應用到已知的訓練數據集中,那么會有錯誤的划分(xn,yn),這時候我們去糾正我們的曲線wn+1=wn+ynxn
根據上圖,由於權向量w是分割線的法向量,無論發生錯誤的點是正值還是負值,經過修正后的分割線調整了方向從而向錯誤點靠攏,就是說他更接近那條完美的分割線。算法的具體描述是:
3.PLA算法的可行性
想讓PLA算法可停止,必須能夠找到至少一條直線將訓練數據集D划分成正值和負值兩個部分,即必須有無錯的權向量存在。這樣的D我們稱它為“線性可分”的。D線性可分是PLA停止的必要條件,那么他是充分條件嗎?即如果D線性可分,PLA一定會停止嗎?證明如下:
通俗的說就是,如果D里面的數據能划分,就一定能找到那條(其實有無數條)划分線;此時,在D里面隨便選一個點,它一定處在划分線的某一側(不是直線上),並且這一側所有其他點的計算符號都與它相同,所以這些點到直線的距離大於零(不等式(1)的意義);根據這些條件得到不等式(2),它告訴我們權向量就像11點50的分針,近似目標向量就像同一時刻的時針,每一次修正,分針都離時針更近了!
但是上邊的證明還不夠完美,向量內積不僅反映了向量的角度還反映了其長度,兩個向量就算夾角不變,只要長度變化,內積也可以增大!
不錯,權向量的長度會怎么變化,推導如下
可以看到,修正之后權向量的長度,相較於修正之前的增加有一個上限,或者說它的長度增長是較慢的。這個上限由D中距離坐標原點最遠的那個點決定。
4.Learning with Noisy Data
對於那些有雜質的數據來說,要做到線性可分是非常困難的,因此我們采用的方法是找到一條直線,它是所有可能直線當中犯錯誤最少的?這是一個很難的問題,因為所含的直線太多了,你必須完整遍歷一遍之后才能找到最優解,這是數學上的NP-hard問題。因此又提出了妥協的結果:口袋算法(Pocket Algorithm)