感知機模型

感知機模型

SVM模型

  1. 目標:尋找具有最大間隔的超平面,從而將 m 個樣本分類。
    • m 個樣本:
    • 每個樣本具有n維特徵 :x(0)i,x(1)i,...,x(n)i
      • 每個樣本具有一個輸出:y
      • E.g:(x(0)1,x(1)1,...,x(n)1,y)
    • 超平面模型:θ0+θ1x1+θ2x2+...+θnxn=0
    • 一般來說會假定x0=1 ,超平面模型變成:θ0x0+θ1x1+θ2x2+...+θnxn=0
  2. 對於任意樣本點(xi,yi) , 滿足約束條件:yi(wTxi+b)0

    • 壞點:不滿足約束條件的點。對於壞點,添加懲罰項,改變優化目標, 添加 loss function:
      min12||ω||2+Cl0/1(yi(wTxi+b)1)
  3. 經典SVM:將上式中第二部分,

    Cl0/1(yi(wTxi+b)1)
    ,替換爲 max(0,1yi(ωxi+b)) ,就有了SVM模型:
    min12||ω||2+max(0,1yi(ωxi+b))
    • SVM模型中以預測值與真實測量值的誤差 1yi(ωxi+b) 作爲優化目標。
    • SVM模型通過學習ωb 使得誤差最小。
  4. 二分類SVM:

    • 二分類模型:

      {ωTxi+b0y=+1ωTxi+b<0y=1
    • 通過定義margin Δ 來進行優化二分類SVM:

      {ωTxi+bΔy=+1ωTxi+b<Δy=1

    yi(ωTxi+b)Δ
    : 當樣本不滿足該條件時,就會產生loss
    • 定義loss function: max(0,Δyi(ωTxi+b))

    • loss function 滿足約束:yi(ωTxi+b)0

    • 當我們對loss function 加上正則項: C2||ω||2 , 就得到了二分類SVM的數學模型:

      C2||ω||2+max(0,Δyi(ωTxi+b))
    • 對上面的SVM模型使用梯度下降進行優化就可以得到 ω , b

SMO算法

背景:使用SVM算法,不但計算量很大而且效率很低,SMO算法將SVM拆分成求解一系列小問題,提高了效率並降低了計算量。

  1. 目標:找出一系列 α , 通過 α 求出 ω , b

  2. 原理:爲了確保約束條件(αy(i)=0 )成立, 每次循環會找出一對α ,通過增大其中一個並且減小另一個進行優化

  3. 算法模型:

    W(α)=i=1n12i=1nj=1nαiαjyiyjxTixj
    • 約束條件:{ni=1αiyi=00αiC
    • 目標:在滿足約束條件的情況下求 maxW(α)
      • where α=[α1,α2,...,αn]
    • 由於α , y 要滿足約束條件ni=1αiyi=0 , 所以將 α 成對進行訓練,即選擇α1,α2 , 固定其餘α
    • 推導過程如下:

    α1y1+α2y2=i=3nαiyi=ξ

    ξ

    α1=(ξα2y2)y1 代入W(α) 中得到:

    W(α2)=W((ξα2y2)y1,α2,α3,...,αn)W(α2)=aα22+bα2+C

    通過計算Wα2滿Hα2Lα2

    y1,y2 同號時

    {L=max(0,α1+α2C)H=min(C,α2+α1)

    y1,y2 異號時

    {L=max(0,α2α1)H=min(C,C+α2α1)

核函數:

  1. 目的:將低緯度中線性不可分的數據映射到高緯度,從而實現線性可分。
  2. 分類:Sigmoid核,線性核,多項式核,高斯核……
  3. 方法:通過計算給定數據的內積,將非線性數據從低緯度的輸入空間映射到高緯度的特徵空間

    • 高斯核:K(x1,x2)=exp(||x1x2||22σ2)
      σ : 達到率,即函數值跌落到 0 的速度參數。在梯度計算中,作爲步長。
    • 多項式核:K(x1,x2)=(x1,x2+R)d
      x1,x2 : x1,x2 的內積
      R: 預先指定的實數
      d: 低緯度空間的維數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章