机器学习中的算法(4.3):SVM----针对线性不可分问题理解
在線性可分的情況下,優化問題是有解的;在線性不可分的情況下,優化問題是沒有解的。即不存在滿足N個限制條件(限制條件是在線性可分的情況下滿足的);而對于線性不可分的情況,我們需要適當的放松限制條件,使得最優化問題變得有解。
放松限制條件的基本思路:
(1)對于每一個訓練樣本及標簽,我們需要設置一個松弛變量(slack variable),這樣可以把上邊不等式的限制條件放松為;因為在線性不可分的情況下,我們沒有可能讓所有的,因此我們引入松弛變量作用到不等式的右邊。可以看到只要取的足夠大,那N個不等式的限制條件是一定可以成立的,而且我們還得加入一些新的限制,阻止每個無限的擴大,讓他限定在一個合理的范圍之內。
------最終改造后的支持向量機最優化的版本是如下:
可以看出不止限制條件發生了改變,目標函數也增加了所有的總和。因此我們不僅要越小越好,同時我們也要讓所有的和越小越好。因此這里比例因子C起到了平衡兩項的關鍵作用。此處的平衡兩項的比例因子C是人為設定的;(把一個算法中需要事先人為設定的參數,叫做算法的超參數hyper parameter),一般在實際的應用中會不斷的變化C的值,同時對于每一個C我們要測試算法的識別率,然后選取使識別率達到最大的此時對應的超參數C的值。所以一個算法的超參數越多,也就意味著算法需要手動調整的超參數越多,這樣算法的自動性也會降低。(支持向量機已經是超參數很少的算法模型)
PS上述兩種目標函數的形式都可以,可以看出他們都是凸優化的問題,都可以被求解。
如下圖是在線性不可分的情況下,使用的目標函數,以及結果展示:
(即在線性不可分的情況下,應用支持向量機)
從圖中可以看出,超平面和線性可分情況保持基本一致。可以看出這個分類面分開了大部分的圓圈和叉,但是并未達到要求解的目的;
此時你是否在想有了有了線性不可分情況下的支持向量機算法,我們似乎可以解決一切二分類的問題了;哈哈這只是你個人的錯覺,如果SVM只是做到這樣,那她就不會成為經典的算法了。
比如在上圖中,所有的圓圈在里邊,所有的叉叉包括在外邊,這里支持向量機求出來的解,所有的參數和之前線性可分是一樣的,雖然支持向量機求出來了一個超平面,但是這個解遠遠不能如意,他將將近一半的訓練樣本分錯了,問題就在于我們的算法模型是線性的,也就是說我們假設分開兩類的函數是直線或者超平面,我們是在一組直線和超平面中選擇最適合分開這兩類數據的直線或者超平面,但是線性模型的表現力是不夠的,我們可以想象到能夠分開這兩類的是某種曲面,例如橢圓而不是直線,如果你非要堅持使用直線分開這兩類,那么無論你怎么取這條直線結果都是不好的。所以我們只能選擇擴大可選函數的范圍,使它超越線性才有可能應對各種復雜的線性不可分的情況。
支持向量機如何擴大可選函數的范圍呢?從而提高非線性可分處理的能力。
支持向量機如何擴大可選函數的范圍呢?見鏈接:
PS:思考:上圖中我們說了可以使用橢圓來分開圓圈和叉;另一個方面我們也可以對特征空間的兩個維度做某種非線性變換,從而把本來線性不可分的訓練樣本集,變為線性可分。所以在這個例子當中能否設計出一個這樣的非線性變換,將這個分類問題轉化為線性可分?
答:我們是不是可以將這個二維的空間映射到高維度空間中呢。這樣就能將圓圈和叉叉使用線性分類分開。(因為其他的算法,如人工神經絡、決策樹等等采用的是直接產生更多可選函數的方式,例如在人工神經網絡中通過多層非線性函數的組合,能夠產生類似于橢圓這樣的曲線,從而分開上一節圖中的圓圈和叉。但是支持向量機而不是直接產生這樣的函數,而是通過將特征空間由低維映射到高維,然后在高維的特征空間中仍然用線性超平面對數據進行分類。PS:所以支持向量機最終使用的還是線性分類器。)
?
總結
以上是生活随笔為你收集整理的机器学习中的算法(4.3):SVM----针对线性不可分问题理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习中的一些概念
- 下一篇: Reading Paper