H-K算法即通過最小均方誤差求解最優權向量的過程,相較感知器算法固定增量的迭代,H-K算法可以在模式線性不可分的情況下停止迭代。那麼代價呢就是需要計算高維逆矩陣,?進行分析。
對於給定的N個n維模式,如果數據線性可分,則必存在w(n+1維)使得下列成立:
將屬於ω2的模式乘以(-1),可得對於全部模式都有的條件。
設兩類模式的訓練樣本總數爲N,寫成增廣形式,則有不等式組:
Xw> 0一定成立
其中0是零向量!
那麼H-K算法就是求解 成立的最小w,其中b爲大於0的N維列向量。因爲是一個超定方程,故方程沒有唯一解,H-K算法的目的就是使用最小二乘法求解w的最小值。
採用梯度法,定義準則函數:
求的損失函數對w與b的偏導:
可得
這裏X#稱爲X的僞逆,即只要求得b,就能解出w的值。
根據上述約束條件,在每次迭代中,b(k)的全部分量只能是正值。由J的準則函數式,J也是正值,因此,當取校正增量C爲正值時,爲保證每次迭代中的b(k)都是正值,應使偏導數爲非正值。在此條件下,準則函數J的微分爲:
滿足如下條件:
由b的迭代式和微分,有:
將此式代入w=X#b,有:
令e(k) = X*w(k) – b(k)。
H-K算法的迭代過程如下:
設置初值b(1),所有分量均爲正數,則:
w(1) = X#*b(1)
e(k) = X*w(k) – b(k)
w(k+1) = w(k) + X#*{C[Xw(k) – b(k) + |Xw(k) – b(k)|]}
= w(k) + CX#[e(k) + |e(k)|]
其中
X#e(k) = X#[Xw(k) – b(k)] = (XTX)-1XT[Xw(k) – b(k)]
= w(k) –X#b(k) = 0
因此
w(k+1) = w(k) + CX#|e(k)|
b(k+1) = b(k) + C[Xw(k) – b(k) + |Xw(k) – b(k)|]
= b(k) + C[e(k) + |e(k)|]
解答過程:
若e(k)>0,存在解,可以繼續迭代逼近最優解。
若e(k)=0,得到最優解。
若e(k)全部分量全爲0,無解
若e有的分量大於0,有的分量小於0 ,則在各分量都變成零,或者停止由負值轉變成正值時,停止。