二分類感知機--(1)

感知機(perceptron)是二類分類的線性分類模型,其輸入爲實例的特徵向量,輸出爲實例的類別,取+1和-1二值。感知機對應於輸入空間(特徵空間)中將實例劃分爲正負兩類的分高超平面,屬於判別模型,感知機學習旨在求出將訓練數據迸行線性劃分的分離超平面,爲此,導入基於誤分類的損失函數,利用梯度下降法對損失函數進行極小化,求得感知機模型。感知機學習算法具有簡單而易於實現的優點,分爲原始形式和對偶形式。感知機預測是用學習得到的感知機模型對新的輸入實例進行分類.感知機1957年由Rosenblatt提出,是神經網絡與支持向量機的基礎。

1.定義

假設輸入空間(特徵空間)是RnR^n,輸出空間是{+1,-1},輸入x表示實例的特徵向量,對應於輸入空間的點,輸出y表示實例的類別,從輸入空間到輸出空間的函數如下:
f(x)=sign(wx+b)f(x)=sign(w*x+b)

此函數稱爲感知機,其中w和b稱爲參數,wRnw \in R^n爲權值(weight)或者權值向量(weight vector),bRb \in R稱爲偏置(bias),w*x表示w和x的內積,sign是符號函數,定義如下:
在這裏插入圖片描述

1.1.感知機的幾何解釋

線性方程wx+b=0w*x+b=0對應於特徵空間的一個超平面S,其中w是超平面的法向量,b是超平面的截距。
這個超平面將特徵空間劃分爲兩部分,位於超平面兩端的點(特徵向量)分別爲正、負兩類。
如下圖所示:
在這裏插入圖片描述

2.感知機的學習策略

二維上點到線的距離,直線方程Ax+By+C=0,點的座標爲x0,y0x_0,y_0
在這裏插入圖片描述

輸入空間RnR^n中任一樣本點x(0)x^{(0)}到超平面wx+b=0w*x+b=0的距離:
在這裏插入圖片描述
w||w||:w的L2範數

分類的過程:
1)若wx(i)+b>0w*x^{(i)}+b>0,則y(i)=1y^{(i)}=1
2)若wx(i)+b<0w*x^{(i)}+b<0,則y(i)=1y^{(i)}=-1
總結爲:
(wx(i)+b)y(i)>0(w*x^{(i)}+b)*y^{(i)}>0

分類錯誤的結果:

  • wx(i)+b<0w*x^{(i)}+b<0,則y(i)=1y^{(i)}=1
  • wx(i)+b>0w*x^{(i)}+b>0,則y(i)=1y^{(i)}=-1

假設超平面S的誤分類點集合爲M,那麼所有誤分類點到超平面S的總距離爲:
在這裏插入圖片描述
不考慮,感知機的損失函數定義如下:
在這裏插入圖片描述
也稱爲感知機的經驗風險函數。L(w,b)是非負的,如果沒有誤分類的點,損失函數值爲0,而且誤分類點越少,誤分類點離超平面越近,損失函數值就越小。

3.感知機的學習算法

最小化損失函數:
在這裏插入圖片描述

感知機學習算法是誤分類驅動的,具體採用隨機梯度下降法(stochastic gradient descent)。首先,任章選取一個超平面w0w_0b0b_0,然後用梯度下降法不斷地極小化目標函數。極小化過程中不是一次使M中所有誤分類點的梯度下降,而是一次隨機選取一個誤分類點使其梯度下降。
假設誤分類點集合M是固定的,那麼損失函數L(w,b)的梯度如下:
在這裏插入圖片描述
在這裏插入圖片描述
隨機選取一個誤分類點x(i),y(i)x^{(i)},y^{(i)},對w,b進行更新:
在這裏插入圖片描述
在這裏插入圖片描述
η\eta0<η10 \lt \eta \leq 1,是步長,又稱爲學習率(learning rate),

算法過程:
輸入:訓練數據T={(x(1),y(1)),(x(2),y(2)),...,(x(n),y(n))}T=\{ (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(n)},y^{(n)}) \},其中,xiRnx_i \in R^nxiRnx_i \in R^n,i=1,2,3…N;學習速率η\eta0<η10 \lt \eta \leq 1
輸出:w,b,感知機模型f(x)=sign(wx+b)f(x)=sign(w*x+b)
(1)選取初值w0w_0b0b_0
(2)在訓練集中選取數據x(i)x^{(i)}y(i)y^{(i)}
(3)如果(wx(i)+b)y(i)0(w*x^{(i)}+b)*y^{(i)} \leq 0,則
在這裏插入圖片描述
在這裏插入圖片描述
(4)轉到(2),直至訓練集中沒有誤分類點。

3.1.例子

數據:正實例:x(1)=(3,3)Tx^{(1)}=(3,3)^Tx(2)=(4,3)Tx^{(2)}=(4,3)^T
負實例:x(3)=(1,1)Tx^{(3)}=(1,1)^T
感知機模型:f(x)=sign(wx+b)f(x)=sign(w*x+b)
w=(w1,w2)Tw=(w_1,w_2)^Tx=(x1,x2)Tx=(x_1,x_2)^T,有兩個參數和一個偏置

(1)構建最優化公式:
在這裏插入圖片描述

(2)η=1\eta=1w0=(0,0)w_0=(0,0)b0=0b_0=0
(3)對於x(1)=(3,3)Tx^{(1)}=(3,3)^Ty(1)(w0x(1)+b0)=1([0,0][3,3]+0)=0y^{(1)}*(w_0*x^{(1)}+b_0)=1*([0,0]*[3,3]+0)=0,沒有正確分類,
更新w,b。
在這裏插入圖片描述
在這裏插入圖片描述
得到線性模型:
在這裏插入圖片描述
(4)對於x(1)=(3,3)Tx^{(1)}=(3,3)^Tx(2)=(4,3)Tx^{(2)}=(4,3)^Ty(1)(w1x(i)+b1)>0y^{(1)}*(w_1*x^{(i)}+b_1)>0,正確分類,不修改w,b;
對於x(3)=(1,1)Tx^{(3)}=(1,1)^Ty(3)(w1x(3)+b1)>0y^{(3)}*(w_1*x^{(3)}+b_1)>0,被誤分類,更新w,b
在這裏插入圖片描述
在這裏插入圖片描述
得到線性模型:
在這裏插入圖片描述

(5)
。。。。。。。。。

(6)w7=(1,1)w_7=(1,1)b7=3b_7=-3
分離的超平面:x1+x23=0x_1+x_2-3=0
感知機模型:f(x)=sign(x1+x23)f(x)=sign(x_1+x_2-3)

在這裏插入圖片描述

4.收斂

迭代次數是有上限的。

5.感知機的對偶形式

Gram矩陣的定義如下:
在這裏插入圖片描述

對偶形式的基本想法是,將w和b表示未實例x(i)x^{(i)}和類別y(i)y^{(i)}的線性組合的形式,通過求解其係數而求得w和b
對於誤分類點(x(i),y(i))(x^{(i)},y^{(i)}),通過
在這裏插入圖片描述
在這裏插入圖片描述
逐步修改w,b。
設修改n次,則w,b關於(x(i),y(i))(x^{(i)},y^{(i)})的增量分別是αx(i)y(i)\alpha*x^{(i)}*y^{(i)}αy(i)\alpha*y^{(i)},這裏αi=niη\alpha_i=n_i \eta。最後學習到的w,b可以分別表示爲:
在這裏插入圖片描述
在這裏插入圖片描述

這裏αi0\alpha_i \geq 0,i=1,2,…,N
η=1\eta=1時,αi=niη=ni\alpha_i=n_i*\eta=n_i,表示第i個實例由於誤分而進行更新的次數。
從上可以看出,實例點更新次數越多,意味着它距離超平面越近,越難正確分類。

算法過程:
輸入:線性可分的訓練數據T={(x(1),y(1)),(x(2),y(2)),...,(x(N),y(N))}T=\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(N)},y^{(N)})\},其中xiRnx_i \in R^nyi{1,+1}y_i \in \{-1,+1\},i=1,2,3…N;學習速率,0<η10 \lt \eta \leq 1
輸出:α\alpha,b,
感知機模型:
在這裏插入圖片描述
其中
在這裏插入圖片描述
1)α0\alpha \leftarrow 0,b0b \leftarrow 0
2)在訓練集中選取數據x(i)x^{(i)}y(i)y^{(i)}
3)如果y(i)(j=1Nαjy(j)x(j)x(i)+b)y^{(i)}(\sum^N_{j=1}\alpha_jy^{(j)}x^{(j)}x^{(i)}+b),則
在這裏插入圖片描述
在這裏插入圖片描述

4)轉到(2),直至訓練集中沒有誤分類點。

在這裏插入圖片描述
對偶形式中訓練數據僅以內積的形式出現,爲了計算方便,可以將訓練數據之間的內積計算出來,獲得的矩陣稱爲Gram矩陣(Gram matrix)

5.1.例子

數據:正實例:x(1)=(3,3)Tx^{(1)}=(3,3)^Tx(2)=(4,3)Tx^{(2)}=(4,3)^T
負實例:x(3)=(1,1)Tx^{(3)}=(1,1)^T

(1)α=(α1,α2,α3)\alpha=(\alpha_1,\alpha_2,\alpha_3),b=0,η\eta=1
(2)計算Gram矩陣
在這裏插入圖片描述

(3)誤分類條件:
在這裏插入圖片描述
參數更新:
在這裏插入圖片描述
在這裏插入圖片描述
(4)迭代過程:

在這裏插入圖片描述

(5)結果
在這裏插入圖片描述
b=-3
超平面:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章