1. 程式人生 > >支持向量機算法的理解

支持向量機算法的理解

支持向量機算法的理解

支持向量機是一種二分類模型。它的基本模型是定義在特征空間上的間隔最大的線性分類器,間隔最大使他有別於感知機;支持向量機還包括核技巧,這使它成為實質上的非線性分類器。支持向量機的學習策略就是間隔最大化。可形式化為一個求解凸二次規劃的問題。

當訓練數據線性可分時,通過硬間隔最大化,學習一個線性的分類器,即線性可分支持向量機

當訓練數據近似線性可分的時候,通過軟間隔最大化,也學習一個線性的分類器,即線性支持向量機

當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。

核方法,核技巧就是使用核函數等於隱式地在高維的特征空間中學習線性支持向量機。


第一個問題:如何求出最大硬間隔

即從支持點到超平面的距離最大,轉換成一個有約束的優化問題,

該約束問題又是一個凸二次規劃問題。轉換成朗格朗日問題,然後對偶函數,在可以利用KKT條件,求出w,b

第二個問題:如何求出最大軟間隔

線性不可分意味著某些樣本點 (x,y)不能滿足函數間隔大於等於1的約束條件,為了解決這個問題

需要在約束條件上加上松弛變量,因為有的支持向量機點是分錯的。所以約束條件該成>=1-松弛變量(松弛變量》0)

然後繼續通過罰函數法,目標函數加個系數,只要對誤分類的懲罰增大,C值小時對誤分類的懲罰減小

第三個問題核函數

對解線性分類問題,線性分類支持向量機是一種非常有效的的方法。但是有時分類問題是非線性的,這時可以使用非線性支持向量機。核函數就是將輸入空間映射到特征空間,通過特征向量之間的內積,通過使用核函數可以學習非支持向量機

常用的核函數有:多項式核函數,高斯核函數,字符串核函數。

前面提到那個凸二次規劃問題具有全局最優解,但是當訓練樣本容量很大時,這些算法往往非常低效。所以後人提出序列最小最優化(SMO)算法。

本文出自 “簡答生活” 博客,謝絕轉載!

支持向量機算法的理解