感知機(perceptron)是二類分類的線性分類模型,其輸入爲實例的特徵向量,輸出爲實例的類別,取+1和-1二值。感知機對應於輸入空間(特徵空間)中將實例劃分爲正負兩類的分高超平面,屬於判別模型,感知機學習旨在求出將訓練數據迸行線性劃分的分離超平面,爲此,導入基於誤分類的損失函數,利用梯度下降法對損失函數進行極小化,求得感知機模型。感知機學習算法具有簡單而易於實現的優點,分爲原始形式和對偶形式。感知機預測是用學習得到的感知機模型對新的輸入實例進行分類.感知機1957年由Rosenblatt提出,是神經網絡與支持向量機的基礎。
1.定義
假設輸入空間(特徵空間)是Rn,輸出空間是{+1,-1},輸入x表示實例的特徵向量,對應於輸入空間的點,輸出y表示實例的類別,從輸入空間到輸出空間的函數如下:
f(x)=sign(w∗x+b)
此函數稱爲感知機,其中w和b稱爲參數,w∈Rn爲權值(weight)或者權值向量(weight vector),b∈R稱爲偏置(bias),w*x表示w和x的內積,sign是符號函數,定義如下:
1.1.感知機的幾何解釋
線性方程w∗x+b=0對應於特徵空間的一個超平面S,其中w是超平面的法向量,b是超平面的截距。
這個超平面將特徵空間劃分爲兩部分,位於超平面兩端的點(特徵向量)分別爲正、負兩類。
如下圖所示:
2.感知機的學習策略
二維上點到線的距離,直線方程Ax+By+C=0,點的座標爲x0,y0:
輸入空間Rn中任一樣本點x(0)到超平面w∗x+b=0的距離:
∣∣w∣∣:w的L2範數
分類的過程:
1)若w∗x(i)+b>0,則y(i)=1
2)若w∗x(i)+b<0,則y(i)=−1
總結爲:
(w∗x(i)+b)∗y(i)>0
分類錯誤的結果:
- 若w∗x(i)+b<0,則y(i)=1
- 若w∗x(i)+b>0,則y(i)=−1
假設超平面S的誤分類點集合爲M,那麼所有誤分類點到超平面S的總距離爲:
不考慮,感知機的損失函數定義如下:
也稱爲感知機的經驗風險函數。L(w,b)是非負的,如果沒有誤分類的點,損失函數值爲0,而且誤分類點越少,誤分類點離超平面越近,損失函數值就越小。
3.感知機的學習算法
最小化損失函數:
感知機學習算法是誤分類驅動的,具體採用隨機梯度下降法(stochastic gradient descent)。首先,任章選取一個超平面w0,b0,然後用梯度下降法不斷地極小化目標函數。極小化過程中不是一次使M中所有誤分類點的梯度下降,而是一次隨機選取一個誤分類點使其梯度下降。
假設誤分類點集合M是固定的,那麼損失函數L(w,b)的梯度如下:
隨機選取一個誤分類點x(i),y(i),對w,b進行更新:
η,0<η≤1,是步長,又稱爲學習率(learning rate),
算法過程:
輸入:訓練數據T={(x(1),y(1)),(x(2),y(2)),...,(x(n),y(n))},其中,xi∈Rn,xi∈Rn,i=1,2,3…N;學習速率η,0<η≤1。
輸出:w,b,感知機模型f(x)=sign(w∗x+b)
(1)選取初值w0,b0
(2)在訓練集中選取數據x(i),y(i)
(3)如果(w∗x(i)+b)∗y(i)≤0,則
(4)轉到(2),直至訓練集中沒有誤分類點。
3.1.例子
數據:正實例:x(1)=(3,3)T,x(2)=(4,3)T
負實例:x(3)=(1,1)T
感知機模型:f(x)=sign(w∗x+b)
w=(w1,w2)T,x=(x1,x2)T,有兩個參數和一個偏置
(1)構建最優化公式:
(2)η=1,w0=(0,0),b0=0
(3)對於x(1)=(3,3)T,y(1)∗(w0∗x(1)+b0)=1∗([0,0]∗[3,3]+0)=0,沒有正確分類,
更新w,b。
得到線性模型:
(4)對於x(1)=(3,3)T,x(2)=(4,3)T,y(1)∗(w1∗x(i)+b1)>0,正確分類,不修改w,b;
對於x(3)=(1,1)T,y(3)∗(w1∗x(3)+b1)>0,被誤分類,更新w,b
得到線性模型:
(5)
。。。。。。。。。
(6)w7=(1,1),b7=−3
分離的超平面:x1+x2−3=0
感知機模型:f(x)=sign(x1+x2−3)
4.收斂
迭代次數是有上限的。
5.感知機的對偶形式
Gram矩陣的定義如下:
對偶形式的基本想法是,將w和b表示未實例x(i)和類別y(i)的線性組合的形式,通過求解其係數而求得w和b
對於誤分類點(x(i),y(i)),通過
逐步修改w,b。
設修改n次,則w,b關於(x(i),y(i))的增量分別是α∗x(i)∗y(i)和α∗y(i),這裏αi=niη。最後學習到的w,b可以分別表示爲:
這裏αi≥0,i=1,2,…,N
當η=1時,αi=ni∗η=ni,表示第i個實例由於誤分而進行更新的次數。
從上可以看出,實例點更新次數越多,意味着它距離超平面越近,越難正確分類。
算法過程:
輸入:線性可分的訓練數據T={(x(1),y(1)),(x(2),y(2)),...,(x(N),y(N))},其中xi∈Rn,yi∈{−1,+1},i=1,2,3…N;學習速率,0<η≤1。
輸出:α,b,
感知機模型:
其中
1)α←0,b←0,
2)在訓練集中選取數據x(i),y(i)
3)如果y(i)(∑j=1Nαjy(j)x(j)x(i)+b),則
4)轉到(2),直至訓練集中沒有誤分類點。
對偶形式中訓練數據僅以內積的形式出現,爲了計算方便,可以將訓練數據之間的內積計算出來,獲得的矩陣稱爲Gram矩陣(Gram matrix)
5.1.例子
數據:正實例:x(1)=(3,3)T,x(2)=(4,3)T
負實例:x(3)=(1,1)T
(1)α=(α1,α2,α3),b=0,η=1
(2)計算Gram矩陣
(3)誤分類條件:
參數更新:
(4)迭代過程:
(5)結果
b=-3
超平面: