0
本文作者: AI研習(xí)社 | 2017-06-12 16:30 |
雷鋒網(wǎng)按:本文作者甄冉冉,原文載于作者個(gè)人博客,雷鋒網(wǎng)已獲授權(quán)。
感知機(jī)是二分類(lèi)的線性分類(lèi)模型,輸入為實(shí)例的特征向量,輸出為實(shí)例的類(lèi)別(取+1和-1)。
感知機(jī)目的在求一個(gè)可以將實(shí)例分開(kāi)的超平面,為了求它,我們用到基于誤分類(lèi)的損失函數(shù)和梯度下降的優(yōu)化策略。
比如x表示n維的數(shù)據(jù),y表示數(shù)據(jù)的類(lèi)別。則感知機(jī)公式可表示為:
f(x) = sign(wx + b)
其中w,b為模型參數(shù),w為權(quán)值,b為偏置。wx表示w,x的內(nèi)積。這里sign是激勵(lì)函數(shù):
sign(x)
該感知機(jī)超平面的線性方程為:
w*x + b = 0
它的幾何意義是:
該平面(w1x1 + w2x2 + b= 0)距離在軸上的坐標(biāo)為:
(0 , -b/w2)
(-b/w1 , 0)
(后面的代碼會(huì)用到,這里提前說(shuō)明下。)
這里再說(shuō)明其他的一點(diǎn)知識(shí)并證明下 w為什么是超平面的法向量:
這里再補(bǔ)充點(diǎn)超平面的知識(shí):
超平面分離定理是應(yīng)用凸集到最優(yōu)化理論中的重要結(jié)果,這個(gè)結(jié)果在最優(yōu)化理論中有重要的位置。所謂兩個(gè)凸集分離,直觀地看是指兩個(gè)凸集合沒(méi)有交叉和重合的部分,因此可以用一張超平面將兩者隔在兩邊。
回歸正題:
我們將大于0的分為+1類(lèi),小于0的分為-1類(lèi)。有些比如大于0的判斷為-1類(lèi)或者相反則就產(chǎn)生了損失,剛開(kāi)始第一反應(yīng)就是用誤分類(lèi)點(diǎn)的數(shù)目越少作為損失函數(shù),但是這樣的損失函數(shù)的w, b并不是連續(xù)可導(dǎo),無(wú)法進(jìn)行優(yōu)化。
于是我們想轉(zhuǎn)到另一種選擇,就是誤分類(lèi)點(diǎn)到超平面的距離越短越好。距離公式如下:
如果忘記距離公式給你個(gè)提示:
而我們知道每一個(gè)誤分類(lèi)點(diǎn)都滿足-yi(wx+b)>0
因?yàn)楫?dāng)我們數(shù)據(jù)點(diǎn)正確值為+1的時(shí)候,你誤分類(lèi)了,那么你判斷為-1,則算出來(lái)(wx0+b)<0,所以滿足-yi(w*x+b)>0
當(dāng)數(shù)據(jù)點(diǎn)是正確值為-1的時(shí)候,你誤分類(lèi)了,那么你判斷為+1,則算出來(lái)(wx0+b>0),所以滿足-yi(wx+b)>0
則我們可以將絕對(duì)值符號(hào)去掉,得到誤分類(lèi)點(diǎn)的距離為:
因?yàn)槟阒?,所以可以直接將絕對(duì)值去掉。那么可以得到總距離為:
不考慮w范數(shù)分之一(考慮和不考慮結(jié)果都一樣,經(jīng)過(guò)實(shí)驗(yàn)證明),我們可以得到損失函數(shù)為:
其中M為誤分類(lèi)點(diǎn)的數(shù)目。
當(dāng)我們已經(jīng)有了一個(gè)目標(biāo)是最小化損失函數(shù),如下圖:
我們就可以用常用的梯度下降方法來(lái)進(jìn)行更新,對(duì)w,b參數(shù)分別進(jìn)行求偏導(dǎo)可得:
那么我們?nèi)我獬跏蓟痺,b之后,碰到誤分類(lèi)點(diǎn)時(shí),采取的權(quán)值更新為w,b分別為:
整理下整個(gè)過(guò)程(比如二維平面):
a.選定初值w1,w2,b (相當(dāng)于初始化了一個(gè)超平面)
b.在訓(xùn)練集中選取數(shù)據(jù)(xi,yi)(任意抽取數(shù)據(jù)點(diǎn),判斷是否所有數(shù)據(jù)點(diǎn)判斷完成沒(méi)有誤分累點(diǎn)了,如果沒(méi)有了,直接結(jié)束算法,如果還有進(jìn)入c)
c.如果yi(w*xi+b)<0(說(shuō)明是誤分類(lèi)點(diǎn),就需要更新參數(shù))
那么進(jìn)行參數(shù)更新!更新方式如下:
其中η為學(xué)習(xí)率在0-1之間。
初始化數(shù)據(jù)
循環(huán)迭代更新
雷鋒網(wǎng)相關(guān)閱讀:
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。