在感知機一節中說到,咱們在線性可分的狀況下,尋找一個超平面使得html
一部分實例$\sum_{i=1}^{n}w _{i}\cdot x_{i}>0$,算法
另外一部分實例$\sum_{i=1}^{n}w _{i}\cdot x_{i}<0$函數
可是感知機的解不惟一,因此會出現這樣的狀況優化
咱們應該如何選擇一個最佳的解呢?spa
首先定義幾何間隔爲:3d
$d=\frac{y\left | w\cdot x_{i}+b \right |}{\left \| w \right \|_{2}}$htm
其實就是感知機損失函數在固定分子以前的形式blog
定義函數間隔爲:ip
$y_{i}(w\cdot x_{i}+b)$get
幾何間隔d纔是真正的點到超平面的距離
支持向量
圖中過樣本點的虛線表示的就是支持向量(support vector)
中間的實線就是超平面$y_{i}(w\cdot x_{i}+b)=0$
通常設置支持向量爲 $y_{i}(w\cdot x_{i}+b)=+1/-1$
SVM但願全部的點到超平面的距離都大於1,公示表示爲
max $ d=\frac{1}{\left \| w \right \|_{2}}\sum_{x_{i}\subseteq M}^{ }y_{i}(w\cdot x_{i}+b) $
而且 $s.t y_{i}(w\cdot x_{i}+b)≥1$
與感知機不一樣,咱們固定d的分子爲1,
又最大化$\frac{1}{\left \| w_{2} \right \|_{2}}$,等同於最小化$\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}$
tips
要加1/2 和 平方 單純的爲了求導的方便
因此優化公式變爲:
min $\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}$
$s.t y_{i}(w\cdot x_{i}+b)≥1$
創建拉格朗日函數,將不等於約束變成無約束優化問題
$L(w,b,a)=\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}-\sum a_{i}\left [ y\left ( w\cdot x+b \right )-1 \right ]且a_{i}> 1 $
這裏i= 1,2,,,m,即樣本個數。下文爲了編輯公式方便再也不贅述。
(這裏不明白的爲何ai≥0,請看KKT條件一文)
因此優化目標變成:
$\underset{w,b}{min}$ $\underset{a\geq 0}{max}$ $L(w,b,a)$
這裏爲何要max ai
博主我的認爲 是要獲得L(w,b,a)的最小值,可是關於a的那部分前面是負號,因此要求L最大時a的值。(ps:純屬我的意見,但願你們指點。)
欲獲得min L(w,b,a)時對應的w,b,對L求偏導
$\frac{\partial L}{\partial w}=0\Rightarrow w = \sum a_{i}y_{i}x_{i}$
$\frac{\partial L}{\partial b}=0\Rightarrow b = \sum a_{i}y_{i}$
這裏w可由a表示,帶入方程,咱們可要求出maxL時對應的 a即可求得w,b暫時先無論。
定義:$\psi (\alpha )=\underset{w,b}{min} {w,b}$ $L(w,b,a)$
將$w = \sum a_{i}y_{i}x_{i}$帶入
獲得
(公式太過龐大,編輯公式太繁瑣,so..盜圖)推導很關鍵,反正博主本身推不出來...
因此,優化目標變成:
$\underset{a}{max}=-\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}+\sum a_{i}$
$s.t \sum a_{i}y_{i}=0$
$a_{i}≥0 $
也能夠去掉負號,變成:
$\underset{a}{max}=\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}-\sum a_{i}$
$s.t \sum a_{i}y_{i}=0$
$a_{i}≥0 $
上述優化目標只有α未知,求得α便可獲得w
α的計算使用SMO算法。假設獲得α*
根據$w = \sum a_{i}y_{i}x_{i}$,求得
$w* = \sum a*_{i}y_{i}x_{i}$
求b
在線性可分的狀況下,找到一個支持向量,必有$y_{s}(w\cdot x_{s}+b)=1\Rightarrow y_{s}(\sum a*_{i}y_{i}x_{i}\cdot x_{s}+b)=1$,能夠求得b
線性不可分問題請看下一節soft margin(軟間隔)。
給一個簡單的小例子感覺一下計算過程。
如圖,兩個樣本M1,M2,每一個樣本兩個特徵X1,X2,一個Y(因此是三個點表示他的座標)
求最佳線性分割平面
首先,根據最終的優化目標,其中第一個約束條件爲$s.t \sum a_{i}y_{i}=0$,能夠獲得
第二,根據$\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}-\sum a_{i}$
爲了計算簡便,定義:$H = y_{i}y_{j}x_{i}\cdot x_{j}$
因此
而
將H和第一步獲得的$\alpha _{1}=\alpha _{2}$帶入LD,有
如今欲獲得優化目標最大對應的α,很明顯,這是個開口向上的拋物線
α取到1,優化目標值最大,因此
第三,w的求解。將α值帶入$w = \sum a_{i}y_{i}x_{i}$,獲得
第四,b的求解。
由於只有兩個樣本,因此這兩個點都在支持向量上,選M1帶入w·x1+b=1有
獲得超平面
自我總結
(感知機與SVM的不一樣,感知機欲使誤分類點到超平面的距離最小,SVM想讓全部點到超平面的距離最大)