感知機(jī)是二類分類的線性分類模型,其輸入為實(shí)例的特征向量,輸出為實(shí)例的類別{-1,1},是一種判別模型。感知機(jī)學(xué)習(xí)的目的在于求出將訓(xùn)練數(shù)據(jù)進(jìn)行劃分的超平面。
-
感知機(jī)模型
輸入空間,輸出空間
。
為輸入向量,其中,
和
為感知機(jī)模型參數(shù),
表示內(nèi)積,sign是符號(hào)函數(shù)。感知機(jī)的幾何角度理解是:
是特征空間
的一個(gè)超平面,
是該平面的法向量,
是截距。這個(gè)超平面將特征空間劃分為正負(fù)兩個(gè)部分,如下圖。

-
感知機(jī)學(xué)習(xí)策略
感知機(jī)學(xué)習(xí)的目的是為了找到能夠?qū)⒄?fù)實(shí)例點(diǎn)正確分開的超平面,也就是要確定參數(shù)和
,感知機(jī)的學(xué)習(xí)策略便是定義一個(gè)損失函數(shù)并將其最小化。于是便要選擇一個(gè)損失函數(shù)的依據(jù),可以選擇誤分類的點(diǎn)的數(shù)量作為損失函數(shù),然而該函數(shù)不可導(dǎo),不易于優(yōu)化,因此選擇誤分類點(diǎn)到超平面的距離和:
此處
是
的第二范數(shù)。注意需要優(yōu)化的只是誤分類的點(diǎn),對(duì)于誤分類的點(diǎn)有,
恒成立,因此可去掉絕對(duì)值符號(hào),并假設(shè)當(dāng)前超平面的誤分類的點(diǎn)的集合為M,由此得到感知機(jī)學(xué)習(xí)的損失函數(shù)為
其中M為誤分類的點(diǎn)的集合。顯然該損失函數(shù)是非負(fù)的,當(dāng)沒有誤分類的點(diǎn)時(shí)
.只需將損失函數(shù)優(yōu)化到0即得到該分類超平面,不過由該方法得到的超平面的解不是唯一的(顯然只需要能夠正確分類時(shí)算法即停止)。
-
感知機(jī)學(xué)習(xí)算法
感知機(jī)所用優(yōu)化方法是隨機(jī)梯度下降法,包括原始形式和對(duì)偶形式。
-
原始形式
前面已經(jīng)確定了感知機(jī)的損失函數(shù),那么其原始形式只需要最小化這個(gè)損失函數(shù)即可。
其中M為誤分類的點(diǎn)的集合。
隨機(jī)梯度下降法初始時(shí)任選,
作為初始超平面,計(jì)算有哪些誤分類點(diǎn),如果有誤分類點(diǎn),隨機(jī)選取一個(gè)誤分類點(diǎn),進(jìn)行梯度下降。即先計(jì)算損失函數(shù)的梯度
梯度下降法使參數(shù)向反方向變化,使用隨機(jī)選出的誤分類點(diǎn)的數(shù)據(jù),根據(jù)提前設(shè)置好的學(xué)習(xí)率
對(duì)
進(jìn)行更新就可以了
這樣便可使損失函數(shù)不斷減小,直到為0時(shí)就得到了可正確分類數(shù)據(jù)集的超平面。
-
對(duì)偶形式
在原始形式的學(xué)習(xí)算法中,可以看到每次更新的數(shù)值都是選中的點(diǎn)
的線性組合,那么
必然可以用
線性表示,這樣我們可以通過求解該線性組合的系數(shù)找到該超平面。對(duì)上節(jié)
的更新中,設(shè)總共修改N次,可將每次
增量表示為
,其中
,假設(shè)
(這無關(guān)線性)。于是更新過程表示為
這里
的含義是在該學(xué)習(xí)率下
在最后學(xué)習(xí)到的
中所貢獻(xiàn)的權(quán)重,就是最后平面的
的系數(shù),也是因該點(diǎn)誤分類也進(jìn)行更新的次數(shù)*
。由此,感知機(jī)模型可由
表出。
在判斷是否是誤分類點(diǎn)時(shí)用
更新時(shí)
可以看到該計(jì)算過程中訓(xùn)練數(shù)據(jù)全部由內(nèi)積得到,因此可以提前將內(nèi)積計(jì)算出來由矩陣存儲(chǔ),可以減少算法過程中的計(jì)算量,這是Gram矩陣。