支持向量機(support vector machines, SVM)是一種二分類模型。
在自然狀態下,樣本之間并不存在線性的關系。如果將這種非線性的樣本集表示出來,每一個樣本就是散落在三維空間中的一個個點。對于輸入空間中的非線性分類問題,可以通過非線性變換將它轉化為某個維特征空間中的線性分類問題,在高維特征空間中學習線性支持向量機。支持向量機的算法思想就是用一個最理想的平面將這些點分為兩類,這里的最理想指的是兩類樣本間的間隔最大;SVM的的學習策略就是間隔最大化,可形式化為一個求解凸二次規劃的問題,也等價于正則化的合頁損失函數的最小化問題。SVM的的學習算法就是求解凸二次規劃的最優化算法。
在非線性的支持向量機中,我們引入了“軟間隔”的概念,即允許某些點不滿足分類函數的約束,這使得每一個樣本都有一個對應的“松弛變量”,表征該樣本不滿足約束的程度。當我們進行樣本篩選時,可以設置一個松弛變量的參數,用以區分有效樣本和無效樣本。
支持向量機算法主要應用于圖像分類任務,如手寫數字識別,人臉識別;文本分類任務,如垃圾郵件過濾,情感分析;生物信息學,如基因表達數據的分類、蛋白質結構預測等。