感知機算法
一、感知機模型
1.1 感知機
假定輸入空間(特徵空間)是 χ⊆Rn ,輸出空間是 Y={+1,−1} .輸出 x∈Y 表示實例的類別。有輸入空間到輸出空間的函數定義爲感知機:
f(x)=sign(w∗x+b)
其中,w∈Rn 爲權值或權值向量,b∈Rn 叫做偏置。sign 叫做符號函數。即
sign(x)=+1,x>=0;−1,x<0
感知機是一種線性分類器模型,屬於判別模型。感知機的假設空間是定義在特徵空間中的所有線性分類模型或線性分類器,即函數集合{f|f(x)=w∗x+b} .
感知機學習就是由訓練數據集(樣本的特徵向量及其對應的類別標籤)求得感知機模型的 w,b 參數。
感知機預測就是通過學得的感知機模型,對於新的輸入樣本給出其對應的類別標籤。
1.2 感知機幾何解釋
線性方程 w∗x+b=0 對應於特徵空間 Rn 中的一個超平面 S ,其中 w 是超平面的法向量,b 是超平面的截距。這個超平面將特徵空間分爲兩部分。位於兩部分的點(特徵向量)分別被分爲正、負兩類。因此超平面S 也被稱爲分離超平面。
二、感知機學習策略
2.1 數據集線性可分性
線性可分性的定義:給定一個數據集
T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N ,如果存在某個超平面S:w∗x+b=0 能夠將數據集的正樣本點和負樣本點完全正確的劃分到超平面的兩側,即對所有樣本i:yi=+1 有w∗xi+b>0 ,對所有樣本i:yi=−1 ,有 w∗xi+b<0 .
不滿足以上條件,則稱數據集 T 線性不可分。
2.2 感知機學習策略
假定訓練集線性可分,感知機學習目標是求得一個能夠將訓練集正、負樣本點完全正確分開的分離超平面。爲找出這樣的超平面,即確定感知機模型參數 w,b ,需要確定一個學習策略,即定義(經驗)損失函數極小化。
損失函數的一個自然選擇是誤分類點的總數。另一個合適的選擇是誤分類點到超平面S 的總距離,這是感知機採用的。
首先定義輸入空間的一點x0∈Rn 到超平面S 的距離:
1||w|||w∗x0+b| , 其中 ||w|| 是其L2範數
對於誤分類點 (xi,yi) 有
−yi(w∗x+b)>0 成立
誤分類點 (xi,yi) 到超平面 S 的距離爲:
−1||w||yi(w∗xi+b)
這樣超平面S 的誤分類點集合M 裏所有元素道超平面的總距離爲:
−1||w||∑xi∈Myi(w∗xi+b)
不考慮前面的分子,就得到感知機學習的損失函數。
給定訓練數據集
T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N
感知機f(x)=sign(w∗x+b) 學習的損失函數定義爲
L(w,b)=−∑xi∈Myi(w∗xi+b)
其中M 爲誤分類點的集合,這個損失函數就是感知機學習的經驗風險函數。損失函數是非負的。一個特定樣本點在誤分類時是參數w,b 的線性函數,在正確分類時是0。感知機的學習策略就是在假設空間中選取使損失函數最小的w,b 參數,即感知機模型。
三、感知機學習算法
感知機的學習問題被我們轉化成了求解損失函數式的最優化問題,最優化的方法是隨機梯度下降。
3.1 感知機學習算法的原始形式
感知機學習算法是對以下最優化問題——損失函數極小化問題的解
minw,bL(w,b)=−∑xi∈Myi(w∗xi+b)
感知機學習算法由誤分類驅動,通過隨機梯度下降法求解。
首先,任意選取一組參數(一個超平面) w0,b0 ,然後用梯度下降法不斷地極小化目標函數。極小化過程並不是一次使用到所有的誤分類點,而是隨機選擇一個誤分類點使其梯度下降。
損失函數L(w,b) 的梯度爲
∇wL(w,b)=−∑xi∈Myixi
∇bL(w,b)=−∑xi∈Myi
隨機選取一個誤分類點(xi,yi) ,對w,b 沿負梯度方向進行更新:
wnext←wcurrent+ηyixi
bnext←bcurrent+ηyi
其中η 是學習率,通過迭代可以使損失函數逐輪減小(可能也和設置的學習率有關,或許會出現震盪的現象)。
感知機學習算法
輸入:訓練數據集
T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N ;學習率η(0<η<=1) ;
輸出:
w,b,f(x)=sign(w∗x+b)
(1)選取初值w0,b0
(2)在訓練集中選取數據(xi,yi)
(3)如果yi(w∗x+b)<=0
wnext←wcurrent+ηyixi
bnext←bcurrent+ηyi
(4)轉至(2),直到訓練集中沒有誤分類點
感知機學習算法的解釋
當一個樣本點被誤分類時,即位於分離超平面的錯誤一側時,則調整 w,b 的值,使分離超平面向該誤分類樣本點的一側移動,以減少該誤分類點與超平面間的距離,直至超平面越過該分類點並使其被正確分類。
3.2 感知機學習算法的對偶形式
對偶形式基本思想:將w,b 表示爲實例xi 和yi 的線性組合的形式,通過求解其係數而求得w,b 。假設初始值w0,b0 均爲0.對誤分類點(xi,yi) 通過
wnext←wcurrent+ηyixi
bnext←bcurrent+ηyi
逐步修改w,b ,設修改n 次,則w,b 關於(xi,yi) 的增量分別是αiyixi 和αiyi ,這裏αi=niη .這樣從學習過程不難看出,最後學習到的w,b 可分別表示爲
w=∑Ni=1αiyixi
b=∑Ni=1αiyi
這裏,αi>=0,i=1,2,...,N ,當η=1 時,表示第i 個實例點由於誤分而進行更新的次數。實例點更新次數越多,意味着它距離超平面越近,也就越難正確分類。這樣的實例對學習結果影響最大。
感知機學習算法的對偶形式
輸入:訓練數據集
T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N ;
學習率η(0<η<=1) ;
輸出:α,b ; 感知機模型f(x)=sign(∑Nj=1αjxjyj∗x+b)
其中α=(α1,α2,...,αN)T
(1)α←0,b←0
(2)在訓練集中選取數據(xi,yi)
(3)如果yi(∑Nj=1αjyjxj∗xi+b)<=0
αi←αi+η
b←b+ηyi
(4)轉至(2)直到沒有誤分類數據。
對偶形式中訓練實例僅以內積的形式出現。可以預先將訓練集中實例間的內積計算出來並以矩陣的形式存儲,這個矩陣就是所謂的 Gram矩陣。
G=[xi⋅xj]N×N
補充
可以發現原始方法參數數量與每個訓練樣本特徵維數n 相關,
對偶方法參數數量與訓練集中樣本數目N 相關。
兩種方法得到的參數不一定完全一致,但是效果接近。
所以在選擇訓練方法時我們需要考慮樣本數與樣本特徵維度的關係,否則保存最終訓練的模型的文件大小可能相差非常大。