机器学习-有监督-SVM
2018.1.16
給定訓練集\(T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)}\),一共有N個樣本點。
一、線性可分的支持向量機
假定訓練集是線性可分的。學習的目標是在特征空間找到一個分離超平面\(wx+b=0\),能夠將所有的樣本正確劃分為兩類。學習的策略是間隔最大化。
1 目標函數
樣本點\((x_i,y_i)\)到超平面\(wx+b=0\)的距離是
\[ d= \frac{|wx_i+b|}{\|w\|} \]
正例樣本的\(y_i=+1\),負例樣本的\(y_i=-1\),這樣表示距離可以把絕對值符號去掉:
\[ d= \frac{y_i(wx_i+b)}{\|w\|} \]
\(y_i(wx_i+b)\)稱為點\((x_i,y_i)\)到超平面\(wx+b=0\)的函數間隔。
所有樣本點中離分離超平面最近的那個樣本點的距離是:
\[ \min \limits_{i} {\frac{y_i(wx_i+b)}{\|w\|}} \]
在所有超平面中能讓這個最小距離最大的那個w,b就是我們要的結果:
\[ \max \limits_{w,b} \min \limits_i {\frac{y_i(wx_i+b)}{\|w\|}} \]
為了方便求解,做如下變換:
對于\(\min \limits_{i} {\frac{y_i(wx_i+b)}{\|w\|}}\)這部分,假設點\((x_m,y_m)\)取得最小距離為\(d_0\),也就是\(d_0 = {\frac{y_m(wx_m+b)}{\|w\|}}\),對分子分母同時乘以或除以一個數,使得分子=1,也就是函數間隔=1,這時分母也發生了相應變化,因為\(w\)表示超平面wx+b=0的法向量方向,按比例縮放后方向沒有變化,我們將變化后的分母還記作\(\|w\|\)。通過令最小函數間隔=1,目標函數變為:
\[ \begin{aligned} &\max \limits_{w,b} {\frac{1}{\|w\|}}\\ s.t. \qquad & {y_i(wx_i+b)}\geq 1,\quad i=1,2,\cdots,N \end{aligned} \]
約束條件保證了所有點都能分類正確。
為方便求解,進一步變化為:
\[ \begin{aligned} &\min \limits_{w,b} \frac{1}{2}\|w\|^2\\ s.t. \qquad &{y_i(wx_i+b)} \geq 1, \quad i=1,2,\cdots,N \end{aligned} \]
2 拉格朗日乘子法求解
2.1 構造拉格朗日函數:
\[ L(w,b,\alpha)= \frac{1}{2}\|w\|^2-\sum_{i=1}^{N}\alpha_i[y_i(wx_i+b)-1] \]
其中\(\alpha = (\alpha_1,\alpha_2,\cdots,\alpha_N)^T\)是拉格朗日乘子,\(\alpha_i \geq 0\)
2.2 把w,b看作常數,構造一個函數 \(\theta\)定義為 \(L(w,b,\alpha)\) 關于 \(\alpha\) 求最大值
\[ \theta = \max \limits_{\alpha} L(w,b,\alpha) \]
因為 \(\alpha_i \geq 0\) 且 \({y_i(wx_i+b)} \geq 1\),所以
\[ \theta = \max \limits_{\alpha} L(w,b,\alpha) = \frac{1}{2}\|w\|^2 \]
2.3 原始問題 \(\min \limits_{w,b} \frac{1}{2}\|w\|^2\)等價于 $ \min \limits_{w,b} \max \limits_{\alpha} L(w,b,\alpha) \quad$。
根據拉格朗日對偶性,問題可變為 \(\max \limits_{\alpha} \min \limits_{w,b} L(w,b,\alpha)\)
(1) 求\(\min \limits_{w,b} L(w,b,\alpha)\)
\(\qquad\)對w,b分別求偏導數:
\[ \begin{aligned} \frac{\partial L}{\partial w} &= w - \sum_{i=1}^{N}\alpha_i y_i x_i \\ \frac{\partial L}{\partial b} &= -\sum_{i=1}^{N}\alpha_i y_i \end{aligned} \]
\(\qquad\)令偏導數=0得到:
\[ \begin{aligned} &w = \sum_{i=1}^{N}\alpha_i y_i x_i \\ & \sum_{i=1}^{N}\alpha_i y_i = 0 \end{aligned} \]
\(\qquad\)將這兩個式子帶回拉格朗日函數\(L(w,b,\alpha)\)得到:
\[ L(w,b,\alpha)= -\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i\alpha_j y_i y_j (x_i x_j) + \sum_{i=1}^{N} \alpha_i \]
(2) 求 \(\min \limits_{w,b} L(w,b,\alpha)\) 對\(\alpha\)的極大,$\max \limits_{\alpha} { {-\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i\alpha_j y_i y_j (x_i x_j) + \sum_{i=1}^{N} \alpha_i} } $ ,加負號得到:
\[ \begin{aligned} \min \limits_{\alpha} & {\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i\alpha_j y_i y_j (x_i x_j) - \sum_{i=1}^{N} \alpha_i} \\ s.t. \qquad & \sum_{i=1}^{N} {\alpha_i y_i}=0\\ &\alpha_i \geq 0, i=1,2,\cdots, N \end{aligned} \]
(3) 假設求出了(2)中 $\alpha $ 的最優解 \(\alpha^* =(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T\)
\(w\)的解為\(w^*=\sum_{i=1}^{N} \alpha_i^* y_i x_i\)
選擇\(\alpha_i^*\)的一個正分量\(\alpha_i^*>0\),b的解為 \(b*=y_j -w^*x_j=y_j - \sum \alpha_i^* y_i (x_i x_j)\)
3 支持向量物理意義
在線性可分情況下,訓練集的樣本點中與分離超平面距離最近的樣本點稱為支持向量,即使得等式成立的樣本點:\(y_i(wx_i+b)-1=0\).對正例點,支持向量在超平面\(H1:wx_i+b=1\);對負例點,支持向量在超平面\(H2:wx_i+b=-1\).支持向量就是落在超平面H1和H2上的點。H1和H2稱為間隔邊界。間隔帶的寬度是\(\frac{2}{\|w\|}\)。聯系目標函數最小化\(\|w\|\)也就是要間隔最寬。 支持向量決定了模型,移動支持向量以外的樣本點不影響結果,所以SVM實際上只用到了少數的樣本點。但距離超平面最近的點剛好是噪聲點,那么模型就會有問題。
二、線性不可分的支持向量機
1 為什么加入松弛變量
不一定完全分類正確的超平面就是最好的,如下圖。用第一部分的硬間隔最大化找出的分界面很可能如實線所示,實線可以將訓練數據分為兩類,但其泛化能力不如虛線。
少數特異點outlier造成訓練數據不是線性可分的,如下圖。用第一部分的硬間隔最大化不能找出一個分界面。如果能忽視outlier,就能較好分類。
上面兩張圖反映了硬間隔最大化存在一些問題,所以為每個樣本點引入一個松弛變量,硬間隔修改為軟間隔,這就是線性不可分的支持向量機。
2 目標函數和約束
\[ \begin{aligned} \min \limits_{w,b, \xi} \quad \frac{1}{2}\|w\|^2 & +C \sum_{i=1}^{N} \xi_i\\ s.t. \qquad {y_i(wx_i+b) + \xi_i} & \geq 1, \quad i=1,2,\cdots,N\\ \xi_i & \geq 0, \quad i=1,2,\cdots,N\\ \end{aligned} \]
約束條件:為每個樣本點引入一個松弛變量\(\xi_i \geq 0\)使得函數間隔加上松弛\(\xi_i\)不小于1。如果樣本點的函數間隔本身大于1,那么\(\xi_i=0\); 如果樣本點的函數間隔<1,那么\(\xi_i=1-y_i(wx_i+b)>0\)。
目標函數:\(\sum_{i=1}^{N} \xi_i\)代表誤差,誤差越小越好;\(\|w\|\)和間隔有關,\(\|w\|\)越小,間隔越寬。C是超參數,用來調節兩者關系;C取得越大,對誤分類的懲罰越大,當C趨于無窮大,目標函數就退化為第一部分的硬間隔最大化的目標函數;一般C取得小一些,允許訓練集的少數點被分類錯,從而可以達到比較好的泛化能力。
3 拉格朗日乘子法求解
3.1 構造拉格朗日函數:
\[ L(w,b,\xi,\alpha,\mu)= \frac{1}{2}\|w\|^2 +C \sum_{i=1}^{N} \xi_i-\sum_{i=1}^{N}\alpha_i[y_i(wx_i+b)+\xi_i -1]-\sum_{i=1}^{N}\mu_i\xi_i \]
其中\(\alpha = (\alpha_1,\alpha_2,\cdots,\alpha_N)^T\)是拉格朗日乘子,\(\alpha_i \geq 0\); \(\mu = (\mu_1, \mu_2, \cdots, \mu_N)^T\)也是拉格朗日乘子,\(\mu_i \geq 0\)。
3.2 把w,b,\(\xi\)看作常數,構造一個函數 \(\theta\) 定義為\(L(w,b,\xi,\alpha,\mu)\)關于\(\alpha, \mu\)求最大值
\[ \theta = \max \limits_{\alpha,\mu} L(w,b,\xi,\alpha,\mu)=\frac{1}{2}\|w\|^2+C \sum_{i=1}^{N} \xi_i \]
3.3 原始問題 $ \quad \min \limits_{w,b} \frac{1}{2}|w|^2 +C \sum_{i=1}^{N}\xi_i \quad$等價于 $ \quad \min \limits_{w,b,\xi} \max \limits_{\alpha,\mu} L(w,b,\xi,\alpha,\mu) \quad$。
根據拉格朗日對偶性,問題可變為 $ \quad \max \limits_{\alpha,\mu} \min \limits_{w,b,\xi} L(w,b,\xi,\alpha,\mu) \quad$
(1) 求\(\min \limits_{w,b,\xi} L(w,b,\xi,\alpha,\mu) \quad\)
對w,b,\(\xi_i\)分別求偏導數:
\[ \begin{aligned} \frac{\partial L}{\partial w} &= w - \sum_{i=1}^{N}\alpha_i y_i x_i\\ \frac{\partial L}{\partial b} &= -\sum_{i=1}^{N}\alpha_i y_i\\ \frac{\partial L}{\partial \xi_i} &= C-\alpha_i - \mu_i \end{aligned} \]
\(\qquad\)令偏導數=0得到:
\[ \begin{aligned} &w = \sum_{i=1}^{N}\alpha_i y_i x_i\\ &\sum_{i=1}^{N}\alpha_i y_i = 0\\ &C-\alpha_i - \mu_i = 0\\ \end{aligned} \]
\(\qquad\)將這三個式子帶回拉格朗日函數\(L(w,b,\xi,\alpha,\mu)\)得到:
\[ L(w,b,\xi,\alpha,\mu)= -\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i\alpha_j y_i y_j (x_i x_j) + \sum_{i=1}^{N} \alpha_i \]
(2) 求 \(\min \limits_{w,b,\xi} L(w,b,\xi,\alpha,\mu)\) 對 \(\alpha,\mu\) 的極大,\(\max \limits_{\alpha,\mu} \{-\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i\alpha_j y_i y_j (x_i x_j) + \sum_{i=1}^{N} \alpha_i\}\) ,加負號得到:
\[ \begin{aligned} \min \limits_{\alpha,\mu} & {\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i\alpha_j y_i y_j (x_i x_j) - \sum_{i=1}^{N} \alpha_i}\\ s.t. \qquad & \sum_{i=1}^{N} {\alpha_i y_i}=0\\ &C-\alpha_i - \mu_i =0 \\ & \alpha_i \geq 0,\\ & i=1,2,\cdots,N. \end{aligned} \]
消去\(\mu_i\),從而只剩下 \(\alpha_i\),得到:
\[ \begin{aligned} \min \limits_{\alpha} &{\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i\alpha_j y_i y_j (x_i x_j) - \sum_{i=1}^{N} \alpha_i}\\ s.t. \qquad &\sum_{i=1}^{N} {\alpha_i y_i}=0\\ &0 \leq \alpha_i \leq C,\\ &i=1,2,\cdots, N. \end{aligned} \]
(3) 假設求出了(2)中 \(\alpha\) 的最優解 \(\alpha^* =(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T\)
\(w\) 的解為 \(w^*=\sum_{i=1}^{N} \alpha_i^* y_i x_i\)
選擇 $ \alpha_i^* $ 的一個正分量 $ 0<\alpha_i^*<C $ , b的解為 \(b*=y_j -w^*x_j=y_j - \sum \alpha_i^* y_i (x_i x_j)\)
4 支持向量物理意義
支持向量物理意義:
在線性不可分的情況下,支持向量不僅包括落在間隔邊界上的樣本點,還包括落在間隔帶內的樣本點以及誤分類的點。落在間隔邊界的點,\(\xi_i=0,\alpha_i<C\) .落在間隔帶內的點或者誤分類的點,\(\xi_i>0,\alpha_i=C\).
---
參數C和\(\gamma\)的影響直觀理解:
http://blog.csdn.net/robin_xu_shuai/article/details/77051258
C越大,對錯誤分類的懲罰越大,容忍越小。
三、非線性的支持向量機
常用核函數:
多項式核函數
高斯核函數
轉載于:https://www.cnblogs.com/min2day/p/8298606.html
總結
以上是生活随笔為你收集整理的机器学习-有监督-SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛阳有哪些工艺品 洛阳特产
- 下一篇: react demo