推導了支持向量機的數學公式後,還須要對比和總結才能更深刻地理解這個模型,因此整理了十一個關於支持向量機的問題。算法
第一問:支持向量機和感知機(Perceptron)的聯繫?機器學習
一、相同點:函數
都是一種屬於監督學習的二類分類器,都屬於判別模型。感知機是支持向量機的基礎。性能
二、不一樣點:學習
(1)學習策略:感知機是用誤分類損失函數最小的策略,求得分離超平面。M爲誤分類點個數,則目標函數爲優化
支持向量機是用幾何間隔最大化的策略,求最優分離超平面。某點的幾何間隔爲:spa
線性可分支持向量機的目標函數和優化問題爲:.net
支持向量機的分離超平面不只要將正負例點分開(感知機作的事情),還有對分離超平面最近的點也要有足夠大的肯定度把它們分開。3d
(2)優化算法:感知機的最優化算法是隨機梯度降低法。支持向量機的最優化算法是經過拉格朗日乘子法,得對偶問題,再用求解凸二次規劃的算法來作(SMO)。orm
(3)解的個數:感知機的解是不惟一的,而支持向量機的解是惟一的。
(4)感知機追求最大程度正確劃分全部的點,最小化錯誤,很容易形成過擬合;支持向量機追求大體正確分類的同時,必定程度上避免過擬合。
(5)感知器能處理的問題就是二分類問題。但支持向量機不一樣,有了核方法的加持,處理非線性問題也是能夠的。支持向量機還能解決多分類問題。另外支持向量機中的支持向量迴歸(SVR)還能夠解決迴歸問題。
(6)感知機的目標函數是經驗風險,而線性支持向量機帶合頁損失函數的目標函數是結構風險,加了L2範數的正則化項。
第二問:支持向量機和邏輯迴歸(LR)的聯繫?
一、相同點:
(1)不考慮核函數的話,都是線性分類器,都是求一個最佳分類超平面
(2)都是監督學習算法,都屬於判別模型。
二、不一樣點:
(1)損失函數不一樣
邏輯迴歸的損失函數是交叉熵損失函數:
而支持向量機轉化爲拉格朗日形式的目標函數爲:
從另外一個角度理解,支持向量機的目標函數是加了正則化項的hinge loss 損失函數:
支持向量機自帶了正則項(L2範數),是結構風險最小化的算法,而邏輯迴歸解決過擬合問題須要另外加正則項:
(2)支持向量機基於距離分類,邏輯迴歸基於機率分類
邏輯迴歸基於機率理論,假設樣本爲正樣本的機率能夠用sigmoid函數來表示,而後經過極大似然估計的方法估計出參數的值。
支持向量機基於幾何間隔最大化原理,認爲存在最大幾何間隔的分類面爲最優分類面。支持向量機依賴數據表達的距離測度,因此須要對數據先作Normalization,而邏輯迴歸不受其影響。
(3)對數據和參數的敏感程度不一樣
支持向量機在決定分離超平面時只有支持向量起做用,在間隔邊界之外移動、增長或減小其餘實例點對分類決策函數不會有任何影響。
邏輯迴歸受全部數據點的影響,直接依賴數據分佈,每一個樣本點都會影響決策面的求解結果。
(4)在解決非線性問題時,支持向量機採用核技巧,而邏輯迴歸不採用
在非線性分類問題中,肯定分類決策函數時,支持向量機中只有少數的支持向量參與到核函數的運算,計算複雜度不高。而邏輯迴歸若是也運用核技巧,那麼全部樣本點都必須參與覈計算,那麼計算複雜度很是高。
第三問:支持向量機爲何採用間隔最大化?
一、間隔最大化是指支持向量機的策略是學習可以正確劃分數據集而且幾何間隔最大的分離超平面。間隔最大不是指函數間隔最大,而是指幾何間隔最大。某點與分離超平面的幾何間隔是:
即樣本點到分離超平面的距離。
二、當訓練數據線性可分時,存在無窮個分離超平面能夠將兩類數據正確分開。感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。而線性可分支持向量機利用間隔最大化求得最優分離超平面,解是惟一的。
三、對訓練數據集找到幾何間隔最大的超平面意味着以充分大的確信度對訓練數據進行分類,這樣的超平面對未知的新實例有很好的分類預測能力(泛化能力強)。
第四問:爲何要轉化爲對偶問題?
一、對偶問題更容易求解,經過拉格朗日函數把目標函數和條件約束整合成了一個新函數,化簡後轉化爲求解一個變量的問題。
二、很是天然地引入核函數,從而推廣到非線性分類問題。
(1)線性支持向量機的對偶問題的目標函數爲:
(2)將對偶問題目標函數中的內積用核函數來代替,就成了引入核函數後的目標函數:
第五問:爲何要引入核函數?
一、爲了解決線性不可分問題
當樣本點在原始空間線性不可分時,能夠將輸入空間映射到更高維的特徵空間,使樣本在新的特徵空間線性可分,從而能夠用線性分類方法來求解。核技巧就屬於這種方法。
二、爲了解決映射函數可能帶來的特徵空間維度太高問題
定義了核函數K(x,y)=<ϕ(x),ϕ(y)>,那麼向量在特徵空間的內積等於它們在原始空間中經過核函數 K 計算的結果。那麼就能夠直接在低維空間計算兩個向量的內積,而不須要顯式地定義映射函數,求解難度下降。由於若是用映射函數,那麼新特徵空間的維度可能很高,甚至是無窮維,致使計算<ϕ(x),ϕ(y)>很是困難。
第六問:常見的核函數有哪些?怎麼選擇合適的核函數?
一、常見的核函數有:
二、只要一個對稱函數所對應的的核矩陣(Gram矩陣)是半正定的,它就能做爲核函數使用,這個對稱函數稱爲正定核函數。半正定矩陣是指若是A是實對稱矩陣,對任意非零列向量x有,那麼稱A爲半正定矩陣。
三、通常選擇線性核和高斯核。當樣本的特徵不少,和樣本數量差很少時,每每樣本線性可分,可考慮用線性核函數;當特徵較少,樣本的數量不少時,能夠手動添加一些特徵,使樣本線性可分,再考慮用線性核函數;當特徵較少,樣本數量通常時,考慮用高斯核函數(RBF核函數的一種,指數核函數和拉普拉斯核函數也屬於RBF核函數)。
第七問:介紹一下高斯核函數?
一、高斯核函數的公式爲:
二、高斯核函數是一種局部性較強的核函數,能夠將樣本從原始空間映射到無窮維空間,其外推能力隨着參數σ的增大而減弱。
三、若是 σ 選得很大的話,高次特徵上的權重實際上衰減得很是快,因此實際上至關於一個低維的子空間;反過來,若是 σ 選得很小,則能夠將任意的數據映射爲線性可分。所以,經過調控參數σ,高斯核具備很是高的靈活性,是使用最普遍的核函數。
第八問:爲何支持向量機對缺失數據敏感?
一、這裏說的缺失數據是指缺失某些特徵數據,向量數據不完整。支持向量機沒有處理缺失值的策略(決策樹有)。
二、支持向量機但願樣本在特徵空間中線性可分,因此特徵空間的好壞對支持向量機的性能很重要。缺失特徵數據將影響訓練結果的好壞。
第九問:支持向量機怎麼解決過擬合問題?如何調整懲罰參數C?
一、在徹底線性可分的數據中,支持向量機沒有過擬合問題。
二、在線性不可分的數據集中,異常點的存在致使支持向量機過擬合,而經過引入鬆弛變量,使支持向量機可以容忍異常點的存在,必定程度上解決了過擬合。線性支持向量機帶有hinge loss 損失函數的目標函數爲:
加了正則化項,採用結構風險最小化,故可解決過擬合問題。
三、而在非線性可分的狀況下,非線性支持向量機是核函數+軟間隔最大化的支持向量機,過擬合問題來自於核函數和容許誤分類點的存在。
(1)選擇的核函數過於powerful,好比多項式核函數的次數過高,高斯核函數的參數 σ過小,那麼就須要調整參數來緩解過擬合問題;
(2)軟間隔最大化時參數C越大,對誤分類點的懲罰越大,使得被判爲誤分類的點越多,因而形成過擬合,C無窮大時退化爲硬間隔分類器。那麼經過減少C來解決。
第十問:什麼是支持向量機的支持向量?
在分類問題中,分線性可分和基本線性可分兩種狀況討論:
一、在線性可分支持向量機中,樣本點中與分離超平面最近的向量(間隔邊界上的向量)就是支持向量。支持向量知足:。
二、在線性支持向量機中,支持向量分三種:
(1)在分離超平面間隔邊界上的向量;
(2)在分離超平面上的向量;
(3)在間隔邊界和分離超平面之間的向量(包含正確分類和誤分類的)。
第十一問:支持向量機的優勢和缺點?
一、優勢:
(1)支持向量機的最終決策函數只由少數的支持向量所肯定,計算的複雜性取決於支持向量的數目,而不是樣本空間的維數,這在某種意義上避免了「維數災難」。
(2)稀疏性,在小樣本集上分類效果一般比較好。
(3)有一套堅實完整的理論來解釋原理,利用核函數代替向高維空間的非線性映射,下降了計算複雜度。
(4)少數支持向量決定了最終結果,不只有利於抓住關鍵樣本、剔除大量冗餘樣本,並且具備較好的「魯棒」性,泛化能力較強。這種「魯棒」性主要體如今:增、刪和移動非支持向量對模型沒有影響;有些成功的應用中,支持向量機對核的選取不敏感。
二、缺點:
(1)支持向量機對大規模訓練樣本難以實施。因爲支持向量機是藉助凸二次規劃來求解支持向量,而求解凸二次規劃將涉及m階矩陣的計算(m爲樣本的個數),當m數目很大時該矩陣的存儲和計算將耗費大量的機器內存和運算時間。
(2)用支持向量機解決多分類問題存在困難。傳統的支持向量機就是解決二分類問題的,儘管有很多解決多分類問題的支持向量機方法,不過各類方法都存在必定程度上的缺陷。
(3)對缺失值敏感,核函數的選擇與調參比較複雜。
參考資料:
一、李航:《統計學習方法》
二、周志華:《機器學習》
三、吳恩達:《機器學習》
四、http://www.javashuo.com/article/p-sjxegjof-hy.html
五、https://blog.csdn.net/a857553315/article/details/79586846
六、https://blog.csdn.net/touch_dream/article/details/63748923
七、https://blog.csdn.net/jieming2002/article/details/79317496