机器学习中的算法(4.2):SVM----针对线性可分问题理解
支持向量機的算法分成兩個步驟:
(1)解決線性可分問題。
(2)再將線性可分問題中獲得的結論推廣到線性不可分情況。
例子:是在二維特征空間中的二分類問題;有三條直線可以將兩類樣本進行分開,分別標記為1號線、2號線、3號線表示,但是這三條分割線中哪一條是最好的呢?如下圖所示:
?
假如有了訓練樣本的位置,以及他們的標簽,是否有一個把標準分割線畫出來的一種方法;方法是基于最優化的理論,將尋找劃分最優標準線的過程轉化為最優化的問題,過程如下:
1、假設有任意一條分開圓圈和叉這兩個樣本的直線,如下圖:
2、將這條直線朝一側平行的移動,直到其叉到一個或幾個訓練樣本位置,如下圖可以看到這條虛線平行的移動,直到他叉到了其中的一個或幾個訓練樣本。(叉到樣本的意思就是樣本落在這條平行過的分割線上)
3、同時我們也把這條直線朝他的另外一側平行的移動,直到他叉到一個或幾個訓練樣本位置。如下圖:
4、最后結果如圖:
我們定義這兩條平行虛線叉到的樣本叫做數據集的支持向量,把這兩條平行線之間的距離,叫做間隔,我們最終想要求解的劃分最優標準線就是就是使間隔Margin最大的一條線。
5、為了找到間隔Margin最大的一條線,我們將1號線、2號線、3號線的間隔分別求出來并可視化顯示,如下圖:
顯然2號線的Margin間隔比1號線,3號線的間隔都要大,支持向量機要找的是使間隔Margin最大的那一條直線。
PS:使用Margin最大的這個準則,并不能唯一的確定一條直線,例如在下圖中,任何一條平行于2號直線、同時也能分開兩類的直線所產生的Margin間隔是一樣大的,為了讓找到的直線唯一,還需要定義這條線應該在上下兩條平行即兩條虛線的正中間。也就是說這條線到左右兩邊所有的支持向量距離應該相等,因此在線性可分的情況下支持向量尋找的最優的分類直線應該滿足下面三個條件:
也就是說這條線到左右兩邊所有的支持向量距離應該相等,因此在線性可分的情況下支持向量尋找的最優的分類直線應該滿足下面三個條件:
證明題:在線性可分的情況下,有且只有一條唯一的直線,滿足上面三個條件。
證明見鏈接:
平面亦如此:
?
--------------------------------------------------------------------------
我們上述的討論都是基于二維空間的結果,在高維的特征空間中直線將變成超平面,但是結論跟上邊是一致的。
----------------------------------------------------------------------------
上述是對支持向量的問題描述,下面是如何通過用嚴格的數學,尋找最優分類超平面的過程,并寫成一個最優化的問題。
優化問題的轉化如下所示:
二次規劃的定義:
(1)目標函數(object function)是二次項。
(2)限制條件是一次項。
在此處目標函數是可以展開為:這個是一個二次項;而限制條件:即上述的N個不等式都是一次項。
------這樣的凸優化問題要么無解,要么只有唯一的最小值。
在最優化的問題中,如果一個問題是凸優化問題,就會把他當成是一個已經解決的問題,因為凸優化問題只有唯一的一個全局的極值,可以使用梯度下降的算法,能夠非常方便的求得他的解。
凸優化的例子:
這是一個凸優化的問題,因為他只有一個全局的最小值的解,實際中尋找全局的最小值有很多的方法,但是所有的方法本質卻是一樣的,就是根據的梯度不斷的去試探。比如我們可以先任意的找一個獲取到的值,然后在周圍尋找一個,使得,接下來就是不斷的試探和迭代的過程。知道最后我們找到了某一個,在他周圍找不到比他更小的函數值為止。這個是在一維而且沒有限制條件下來說明這個問題;在多維而且存在限制條件的情況下,也是類似的道理。
PS:線性可分條件下的支持向量機求解是凸優化的問題,因此會很快被解決。
求解凸優化的問題,是一門專門的課程,即凸優化理論這門課程。
思考:支持向量機的限制條件如果從變成,則會變成,請問如果訓練樣本和都是M維的向量,那么算出來的a是多少呢?
參考鏈接:https://blog.csdn.net/weixin_30249151/article/details/114007125
?
總結
以上是生活随笔為你收集整理的机器学习中的算法(4.2):SVM----针对线性可分问题理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++:const的使用(普通常量、指针
- 下一篇: 机器学习中的一些概念