感知機算法是錯誤驅動的在線學習算法。首先初始化一個權重W0、截距b,然後每次分錯樣本時,就用這個樣本改變權重以及截距b。其實就是構造了一個分類超平面。感知器用來解決線性可分樣本集分類問題。
線性可分性:若訓練樣本集可以被某個線性分類器完全正確分類,則該樣本集是線性可分的。即如果樣本集是線性可分的——則至少存在一個權向量,能將該樣本集中的每個樣本都正確分類。
已知:
1. L=2,M維分類問題的樣本集
2. 該樣本集是線性可分的
求解:能夠對樣本集正確分類的解(某個線性分類器)
感知器採用增廣向量的形式,增廣形式的判別函數爲:g(x) = aTy;
對於未知樣本x,若g(x) > 0,則x決策爲ω1類若g(x) < 0,則x決策爲ω2類;
規範化:對ω2類樣本的增廣向量全部乘以-1;
規範化之後的分類結果:
aTyi> 0——正確分類
aTyi< 0——錯誤分類
解向量——能將線性可分樣本集中的每個樣本都正確分類的權向量;
解區——解向量往往不是一個,而是由無窮多個解向量組成的(角度)區域,稱爲解區。
對於權向量a,如果某個樣本yk被錯誤分類,則。我們可以用對所有錯分樣本的求和來表示對錯分樣本的懲罰:
其中Yk是被a錯分的樣本集合。當且僅當JP(a*) = min JP(a) = 0 時,a*是解向量。這就是Rosenblatt提出的感知器(Perceptron)準則函數。
其中,k爲迭代次數,η爲調整的步長。即下一次迭代的權向量是把當前時刻的權向量向目標函數的負梯度方向調整一個修正量。
因此,迭代修正的公式爲:
即在每一步迭代時把錯分的樣本按照某個係數疊加到權向量上。
4. 分類器設計過程複雜
感知器只能解決線性可分的問題,而工程實際中的問題不一定都是線性可分問題,對於線性不可分問題,工程上往往是求誤差平方和最小。
引入餘量bi,將不等式組改造爲等式組aTyi= bi > 0(i = 1,…,N);
求解:滿足等式組的最小平方誤差解(權向量);
求梯度:
令梯度爲零得:
極值解爲: