1. 程式人生 > >帶你搞懂感知機演算法原理

帶你搞懂感知機演算法原理

很多人可能聽過大名鼎鼎的SVM,這裡介紹的正是SVM演算法的基礎——感知機,感知機是一種適用於二類線性分類問題的演算法

原理

  • 問題的輸入與輸出:
    X = {x1,x2,...,xn}
    Y = {+1, -1}

  • 模型:
    感知機的目的是找到一個可以正確分類資料的超平面S:ωx+b=0, 其中ω是超平面的法向量,b是截距,得到感知機模型 f(x)=sign(ωx+b),其中ωx+b>0為正類,ωx+b<0為負類

  • 策略:
    接下來的問題就是如何找到最優模型,簡單說就是定義損失函式並將損失函式最小化。損失函式需要是關於ω,b的連續可導函式,這裡採用的正是誤分類點離超平面的距離。

    輸入空間任意一點 xi 到超平面的距離為 1||ω|||ωxi+b|
    對於任意誤分類的點: yi(ωxi+b)>0
    點到超平面的距離可以表示為1||ω||yi(ωxi+b)
    所有誤分類的點到超平面的距離之和為:1||ω||xiMyi(ωxi+b) ,其中M表示所有誤分類的點的集合
    不考慮1||ω|| , 損失函式可以寫成 L(ω,b)=xiMyi(ω
    xi+b)

    感知機學習的策略就是尋找 minL(ω,b)=xiMyi(ωxi+b)ω,b

  • 演算法:
    直觀的說,當有一個例項點被誤分類時,例項點在分類超平面的錯誤一側,調整 ω 和 b 的值,使得分離超平面向該點移動,以減少點到分類超平面的距離,直到越過改點使其正確分類
    1.原始形式

    ωL(ω,b)=xiMyixi ,