感知機

感知機模型:
1 判別模型,
2 旨在學習出一個線性劃分的超平面

輸入 T= {(x1,y1),(x2,y2)……(xN,yN)}xi 是一n維的特徵向量,yi屬於{+1,-1}。
通俗來講就是。(假設T是線性可分的)

輸出 函數f(x) = sign(w·x + b)

sign表示符號函數。是一n維的向量。
(w,b)可以確定一個超平面。

首先,我們要使用梯度下降來求解。就得確定損失函數。

分類錯誤的情況 下

yi(wxi+b)<0

定義M是被(w,b)確定的超平面分錯的點。那麼

Lossw,b=i=1Myi(wxi+b)

至於爲什麼這麼定義。是因爲這麼定義方便求導,當然你也可以定義其他類型的loss function。

ΔwLossw,b=i=1Myixi

ΔbLossw,b=i=1Myi

採用隨機梯度下降。

w=w+βyixi

b=b+βyi

β是學習率

當然你也可以用批梯度下降,也就是一次性把所有誤分類點的梯度累加,不過效果和效率應該還是SGD比較好。

學習過程:
(1)選取初始值w0 ,b0
(2)在訓練集合中選取一個數據(xi,yi)
(3)如果yi(w·xi +b)<0

w=w+βyixi

b=b+βyi

算法的直觀解釋,當一個實例點被誤分類時,即位於分類超平面的錯誤一側的時候,調整w,b使分離超平面,向該誤分類點一側移動,以減少距離,知道越過這個點,使其被正確分類爲止。

接下來說說對偶問題。這個很重要,對以後學習SVM也很有幫助。

對偶算法的基本思想是,將w,b表示爲實例xi和標記yi的線性組合的形式,通過求解其係數而求得w和b。由上面的公式可知,w,b初始都爲0,而他兩又是由下面公式一步一步迭代出來的。

w=w+βyixi

b=b+βyi

所以  wb可以寫成下面的形式

w=i=1Nαiyixi

b=i=1Nαiyi

αi=niβ 表示在i這個分類點 修改過ni次。也就是把超平面移動過ni次才使得i這個點被分對。

由此代入原公式。
要求的公式爲,我們只需要求出 α,b即可
f(x)=sign(Ni=1αiyixix+b) (1)
所以迭代過程就變爲了

αi=αi+β
b=b+β

這個地方我剛開始有點迷惑,當我把公式(1)對 αi,b求導時,並不能得到上面的結果。後面才發現,這裏不能對這兩個參數求導,只需要把

w=i=1Nαiyixi

b=i=1Nαiyi

代入到
w=w+βyixi

b=b+βyi

代入前面的迭代過程即可。
轉化爲對偶問題的好處:
轉換爲內積形式。需要多次計算xi · xj 所以可以預先計算並保存結果,提高效率。
發佈了36 篇原創文章 · 獲贊 51 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章