svm(上)理論知識
本文簡單講述了svm的一些小問題~
0x00 前言
0x01 初始svm
問題1:你能給我講講什麼是svm嗎?
回答:svm是一種二分類模型,它的基本模型是在特徵空間中尋找間隔最大化的分割超平面的線性分類器。如在下面的兩個類別中(暫且稱兩個類為黃球和紅球),
我們要將其分割開的方式有多種,但是究竟哪一種才是最優的分割方式呢?這就是支援向量機所要解決的問題。簡單而又通俗點的理解:支援向量機的優化目標是找到一條線(w和b), 使得離該線最近的點之間的距離最長。但是在這個過程中,不同的資料所採用的分割策略可能會有所不同,主要的分割策略有三種:
1)、當訓練樣本線性可分時,通過硬間隔最大化,學習乙個線性分類器,即線性可分支援向量機;
2)、當訓練資料近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習乙個線性分類器,即線性支援向量機;
3)、當訓練資料線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支援向量機。
問題2:你知道什麼是支援向量嗎?alpha什麼時候為0什麼時候不為0?
回答:支援向量的本質其實也是向量。支援向量機是想找到乙個分割超平面或者說分類面,使得它所產生的結果是最魯棒的,即對未知例項的泛化能力是最強的(這也是支援向量機為什麼採用間隔最大化的原因之一)。而支援向量就是這些支撐分割超平面的資料點,其實就是距離分界線最近的點,或者說分介面就是靠這些資料點來確定的,它們支撐著分介面。對於邊界上的樣本來說,alpha不等於0,這些邊界上的樣本點屬於支援向量,它們會對最終的結果產生影響。而對於非邊界上的樣本點來說,alpha等於0, 非邊界上的這些樣本點是非支援向量,非支援向量不會對最終的結果產生影響。
舉個栗子,如在下方的圖形中,a、b、c三點就屬於支援向量,它們的alpha不為0,且支撐著分割超平面。而其它的樣本點的alpha等於0,它們對分割超平面不會造成影響。
0x02 再會svm
問題1:請問可以怎麼提高svm的泛化能力?
回答:我們知道svm的約束條件常常會有過擬合(過擬合表現為在訓練集上模型的**結果很準,但是在未知資料上**效果卻很差)的風險,而決定分割超平面的是支援向量,如果這些支援向量中存在異常值點,那麼我們還傻兮兮地嚴格按照svm的定義去訓練模型,那訓練出來的模型效果肯定就不會太好。為了解決這個問題,我們可以使用軟間隔來處理,所謂軟間隔就是為svm引入了乙個鬆弛變數,使得svm能夠容忍異常值點的存在。因為引入了鬆弛變數之後,所有點到分割超平面的距離可以不需要嚴格地大於等於1了,而只需要》= 1-鬆弛變數值就可以了。
舉個例子,如果鬆弛變數 = 0.1, 那麼資料點到分割超平面的距離只需要》= 0.9就可以。通過這個方法就可以將異常值轉為非支援向量,將異常值作為乙個普通的資料點存在,那麼我們的支援向量和分割超平面就都不會收到它的影響了。(下圖是使用了軟間隔對資料進行分類的視覺化結果:)
問題2:svm為什麼要引入核函式?
回答:在現實世界中,不是所有的樣本都是線性可分的,有時候我們也會遇到線性不可分的樣本。如以下情形:
在這種情況下,想要在二維空間中使用線性分割的方法將紅球與黃球完全分割開似乎是不可能的。對於這樣的問題,我們可以將樣本從原始空間對映到乙個更高維的特徵空間中,使得樣本在這個特徵空間中線性可分。我們知道如果原始空間是有限維,即屬性數有限,那麼就一定存在乙個高維特徵空間能夠將樣本分開。通過將輸入空間對映到了高維的特徵空間,可以把平面上不好區分的非線性資料很好地區分開。但是對於對映後的對偶問題,如果我們直接去計算的話會較為難算,為了解決這個問題,才引入了核函式(目的:為了解決對映後難以計算的問題,方法:設想在原始樣本空間中能找到乙個函式滿足對映後需要計算的兩個樣本間的特徵空間內積)即:
而目前我們所常用的核函式主要有線性核函式、多項式核函式、高斯核函式、拉普拉斯核函式、sigmoid核函式。
當然,引入核函式之後,核函式的選擇就變成了支援向量機中的最大變數了,若核函式的選擇不正確的話,那麼就可能將樣本對映到了乙個不合適的特徵空間,導致的後果就很有可能是模型的效能不好。
(對於核函式這一部分,建議大家可以準備一下各種核函式的使用場景以及核函式的選擇這一塊的內容)
問題3:svm中為什麼會有smo演算法?
回答:svm的基本型就是乙個凸二次規劃的問題,使用拉格朗日乘子法轉換後所獲得的關於alpha的函式的求解也是乙個二次規劃的問題,雖然可以直接使用二次規劃問題的演算法來進行求解;但是,該問題(二次規劃問題)的規模正比於訓練樣本數,這會在實際任務中造成很大的開銷,為求出alpha同時為避免通用的二次規劃演算法所造成的巨大開銷,才引入了smo演算法。
(關於smo,我覺得大家可以準備一下smo的演算法思想、smo演算法優化的終止條件等方面的知識)
0x03 優點 vs 缺點
問題: svm有什麼樣的優點跟缺點呢?
回答:svm的優點有:
1)、可以使用核函式將原始資料對映到高維的特徵空間上,進而解決非線性的分類問題;
2)、svm的分類思想很簡單,就是將樣本與分類面的間隔最大化
3)、svm的分類效果較好;
svm的缺點有:
1)、svm無法直接支援多分類任務,但是可以通過間接的方法來實現多分類(這點跟邏輯回歸的分類思想很像,間接的多分類方法有一對
一、一對其餘、多對多這三種拆分策略);
2)、對某些缺失資料敏感,對核函式的選擇也很敏感
0x04 總結
參考文獻:
《機器學習》 (周志華)
《資料探勘-實用機器學習工具與技術》(ian h.witten, eibe frank, mark a.hall)(李川, 張永輝 譯)
《機器學習實戰》 (aurelien geron) (王靜源、賈瑋等譯)
資料探勘(機器學習)面試 SVM面試常考問題
應聘資料探勘工程師或機器學習工程師,面試官經常會考量面試者對svm的理解。以下是我自己在準備面試過程中,基於個人理解,總結的一些svm面試常考問題 想到會再更新 如有錯漏,請批評指正。大神請忽視 svm的原理是什麼?svm是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性...
資料探勘 機器學習面試 SVM常考問題
svm是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性分類器。間隔最大是它有別於感知機 1 當訓練樣本線性可分時,通過硬間隔最大化,學習乙個線性分類器,即線性可分支援向量機 2 當訓練資料近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習乙個線性分類器,即線性支援向量...
資料探勘演算法之支援向量機(SVM)(二)
在第一篇中我們講解了線性可分下的硬間隔分類器,但那只是svm演算法的起點。現實中許多問題並不是線性可分的,如果樣本不能被完全分開,那麼就是 間隔為負,原問題的可行域為空,對偶問題的目標函式無限,這將導致相應的最優化問題無解。今天我們就講下針對近似線性可分情況下的軟間隔優化。在軟間隔分類器中,允許存在...