感知機(perception)是二分類的線性分類模型,其輸入爲實例的特徵向量,輸出爲實例的類別,取+1和-1。感知機對應於輸入空間(特徵空間)中將實例劃分爲正負兩類的分離超平面,屬於判別模型。
2.1 感知機模型
f(x)=sign(w⋅x+b)
w和b爲感知機模型參數,w∈Rn叫做權重或權值向量,b∈R叫做偏置,w⋅x表示內積。
幾何解釋:
線性方程w⋅x+b=0對應於特徵空間 Rn的一個超平面S,其中w是超平面的法向量,b是超平面的截距。這個超平面S將特徵空間劃分爲正負兩類樣本的空間。S稱爲分離超平面。
線性可分性:如果存在某個超平面S能夠將正實例點和負實例點完全正確地劃分到超平面兩側,則數據集具有線性可分性。
定理(Novikoff):設訓練數據集T={(x1,y1),(x2,y2),...,(xN,yN)}是線性可分的,其中xi∈X=Rn,yi∈Y={−1,+1},則:
(1)存在滿足條件∣∣w^opt∣∣=1的超平面w^opt⋅x^=wopt⋅x+bopt=0將數據集完全正確分開;且存在γ>0,滿足:
yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt)⩾γ
(2)令R=max{∣∣x^i∣∣},則感知算法在訓練數據集上的誤分類次數k滿足不等式:
k⩽(γR)2
2.2 感知機學習策略
對於誤分類點(xi,yi), 當w⋅x+b>0時,yi=−1;當w⋅x+b<0時,yi=+1,所以有:
−yi(w⋅x+b)>0
誤分類點(xi,yi)到超平面S的距離爲:
d=−∣∣w∣∣yi(w⋅x+b)
設所有誤分類點到超平面S的集合爲M,則總距離(忽略∣∣w∣∣1) 爲:
ds=−xi∈M∑yi(w⋅x+b)
因此,感知機sign(w⋅x+b)的損失函數定義爲:
L(w,b)=−xi∈M∑yi(w⋅x+b)
即感知機學習的是經驗風險最小化的損失函數(經驗風險函數)。
2.3 原始形式的感知機學習算法
感知機學習算法是誤分類驅動,採用隨機梯度下降(SGD)算法。隨機選取超平面(w0,b0),採用梯度下降算法最小化損失函數。對於誤分類點(xi,yi),滿足:yi(w⋅x+b⩽0),採用如下更新方式:
w的梯度計算:∇wL(w,b)=−∑xi∈Myixi;更新公式:w←w+ηyixi;
b的梯度計算:∇bL(w,b)=−∑xi∈Myi;更新公式:b←b+ηyi;
注:感知機學習由於採用不同的初值或選取不同的誤分類點,解可以不同。由Novikoff定理可知,誤分類次數k存在上界,經過有限次搜索可以找到將訓練數據集完全分開的分離超平面,即當數據集線性可分時,感知學習算法是收斂的。爲了得到唯一超平面,需要對超平面添加約束條件,即線性支持向量機。當訓練數據集線性不可分時,感知機學習算法不收斂,迭代結果會發生振盪。
2.4 對偶形式的感知機學習算法
感知機模型:
f(x)=sign(j=1∑Nαjyjxj⋅x+b)
其中α=(α1,α2,⋯,αN)T,αi=niη,對於yi(∑j=1Nαjyjxj⋅xi+b)⩽0,採用如下更新公式:
w←w+ηyixi,最終學習的w=∑i=1Nαiyixi
b←b+ηyi,最終學習的b=∑i=1Nαiyi
爲了方便,可以預定義並存儲實例間內積矩陣,即Gram Matrix:G=[xi⋅xj]N×N。