更多文章,歡迎你們關注的個人我的博客網站:fangd123ide
英文原文連接:SVM - Understanding the math - Part 2網站
在SVM教程的第一部分中,咱們瞭解了SVM的目標。它的目標是是尋找最大化間隔的超平面。spa
可是咱們如何計算這個邊距?教程
SVM = Support VECTOR Machineip
在支持向量機中,有一個概念,叫作向量(vector)。get
這也就是說理解向量和如何使用它們是很重要的。博客
Here a short sum-up of what we will see today:
這是今天咱們將要了解的內容的摘要:數學
什麼是向量?it
若是咱們定義點 $A(3,4)$,咱們可以把它像這樣繪製出來。io
圖 1:一個點
定義:點 $x=(x1,x2),x≠0$ in $R^2 $ 肯定平面的一個向量,即向量的起點爲原點,終點爲點x。
這個定義的意思是在原點和點A存在一個向量。
圖 2 - 一個向量
若是咱們說原點座標爲 $O(0,0)$,那麼上邊的這條向量是 $OA$,咱們也可以給它一個抽象的名字例如$u$。
注意:你可能注意到咱們書寫的向量,要麼是在字母頂端標箭頭,要麼加粗。在文章的接下來的部分我將會使用箭頭,在存在兩個字母像$OA$,在其餘狀況下加粗標識。
好,目前咱們向量的存在,可是咱們仍然不知道什麼是向量。
定義:向量是一個同時擁有大小和方向的東西。
咱們將會從兩個方面來理解這個概念。
向量X的大小或者長度被寫做 $\| x \|$,被稱範數。
對於咱們的向量$OA$,$||OA||$就是線段$OA$的長度
圖3
使用勾股定理可以很容易地計算出圖3中$OA$的距離:
$$OA^2=OB^2+AB^2$$
$$OA^2=3^2+4^2$$
$$OA^2=25$$
$$OA=\sqrt{25}$$
$$||OA||=OA=5$$
方向是向量的第二個組成部分。
定義:向量 $u(u_1,u_2)$ 的 方向是向量:
$$ w(\frac{u1}{∥u∥},\frac{u2}{∥u∥})$$
$w$ 的座標是怎麼來的?
爲了找到向量的方向,咱們須要使用它的角度。
圖4 - 向量的方向
圖4表示向量 $u(u_1,u_2)$ 中 $u_1=3$,$u_2=4$
咱們能夠得出:
樸素的定義1:向量 $u$ 的方向是由橫軸夾角 $\theta$ 和縱軸夾角 $\alpha$ 決定的。
這個有點荒謬,實際上咱們用角度的餘弦值肯定向量的方向。
在右邊的三角形中,角 $\beta$ 的餘弦值定義爲:
$$cos(\beta) = \frac{鄰邊}{斜邊}$$
在圖4中咱們可以找到兩個三角形,它們的鄰邊是座標軸之一,這也就是說餘弦值的定義隱含着和角度相關的座標軸。咱們能夠將咱們的樸素定義換一種方式表達:
樸素定義 2:向量 $u$ 的方向是由角 $\theta$ 的餘弦值和角 $\alpha$ 的餘弦值決定的。
如今咱們看看它們的值:
$cos(\theta) = \frac{u_1}{||u||}$
$cos(\alpha) = \frac{u_2}{||u||}$
這就是向量 $w$ 最初的定義,這是爲何它的座標也被稱爲方向餘弦。
咱們如今將開始計算圖4中向量 $u$ 的方向:
$cos(\theta) = \frac{u_1}{||u||} = \frac{3}{5} = 0.6$
和
$cos(\theta) = \frac{u_2}{||u||} = \frac{4}{5} = 0.6$
$u(3,4) $的方向是向量 $w(0.6,0.8)$
若是咱們繪製出這個向量咱們就獲得了圖5:
Figure 5: the direction of u
圖 5:u 的方向
咱們可以看到 $w$ 除了更小一些外,其餘的實際上和 $u$ 是同樣的。有趣的是相似 $w$ 這樣的方向向量的範數爲1。這就是爲何咱們經常稱它們爲單位向量。
圖 6:向量u和v
已知向量 $u(u_1,u_2)$ 和 $v(v_1,v_2)$:
$$u+v = (u_1+v_1,u_2+v_2)$$
也就是說,兩個向量相加獲得的新向量的座標是兩個向量的座標的和。
你能夠經過下邊的這個例子確信這一點:
圖 7:兩個向量的和
差的運算同理:
$$u+v = (u_1-v_1,u_2-v_2)$$
圖 8:兩個向量的差
由於減法是沒有交換律的,咱們也能夠考慮另一種狀況:
圖 9:u-v的差
最後兩張圖描述了$u$和$v$的差向量
然而,由於向量有大小和方向,咱們經常考慮向量平移變換(擁有相同大小和方向可是起點不同的向量)獲得的向量是同樣的,僅僅是在空間上不一樣地方繪製而已。
所以若是你遇到以下的狀況不要感到驚訝:
圖 10:v-u的另外一種展示方式
和
圖 11:u-v的另外一種展示方式
若是你進行數學計算,它看起來是錯的,由於向量 $u-v$ 的終點並不在正確的位置,可是你講會在之後常常遇到這種便捷地表示向量的方式。
點乘是理解SVM的一個很是重要的概念。
"定義:從幾何的角度看,點乘的結果是兩個向量的歐氏距離和他們之間的夾角。"
也就是說,若是咱們有兩個向量$x$和$y$,以及它們之間的夾角 $\theta$ ,它們的點乘是:
$$x\cdot y = ||x||||y||cos(\theta)$$
爲了理解這個,讓咱們從幾何的角度看看這個問題。
咱們來看看定義中 $cos(\theta)$ 是什麼。
根據定義咱們知道在直角角形中:
$$cos(\theta) = \frac{鄰邊}{斜邊}$$
在咱們的例子中,咱們並無直角三角形。
然而若是咱們換一個角度看圖 12,咱們可以找到兩個直角三角形,每一個都是由向量和橫軸的組成的。
圖 13
和
圖 14
所以如今咱們可以像這樣的方式觀察以前的圖:
圖 15
咱們可以獲得
$$\theta = \beta - \alpha$$
所以計算 $cos(\theta)$ 等價於計算 $cos(\beta - \alpha)$
有一個公式被稱之爲 difference identity :
$$cos(\beta - \alpha) = cos(\beta)cos(\alpha) + sin(\beta)sin(\alpha)$$
(若是你想了解更多,請看這個例子)
讓咱們使用這個公式!
$$cos(\beta) = \frac{鄰邊}{斜邊} = \frac{x_1}{||x||}$$
$$sin(\beta) = \frac{對邊}{斜邊} = \frac{x_2}{||x||}$$
$$cos(\alpha) = \frac{鄰邊}{斜邊} = \frac{y_1}{||y||}$$
$$cos(\alpha) = \frac{對邊}{斜邊} = \frac{y_2}{||y||}$$
所以若是咱們替換每一個參數
$$cos(\beta - \alpha) = cos(\beta)cos(\alpha) + sin(\beta)sin(\alpha)$$
$$cos(\theta) = \frac{x_1}{||x||}\frac{y_1}{||y||}+\frac{x_2}{||x||}\frac{y_2}{||y||}$$
$$cos(\theta) = \frac{x_1y_1+x_2y_2}{\|x\|\|y\|}$$
若是咱們兩邊同時乘以$\|x\| \|y\|$獲得:
$\|x\|\|y\|cos(\theta) = x_1y_1 + x_2y_2$
等價於:
$\|x\|\|y\|cos(θ)=xy$
咱們可以發現點乘的幾何定義!
實際上咱們可以從最後兩個公式中看到:
$$xy = x_1y_1 + x_2y_2 = \sum{2}{i=1}(x_iy_i)$$
這是點乘的代數定義!
點乘之說以被這樣稱呼是由於咱們在兩個向量中間寫了一個點。
討論點乘$x\cdoty$和討論一下的說法是同樣的
給定兩個向量$x$和$y$,咱們想找到$x$在$y$上的正交投影。
圖 16
爲了可以這樣作,咱們將向量$\mathbf{x}$投影在$\mathbf{y}$上
圖 17
咱們獲得向量$\mathbf{z}$
根據定義:
$$cos(\theta) = \frac{\|z\|}{\|x\|}$$
$$\|z\| = \|x\|cos(\theta)$$
咱們已經知道了點乘公式
$$cos(\theta) = \frac{\mathbf{x}\cdot\mathbf{y}}{\|x\|\|y\|}$$
所以咱們替換公式中的$cos(\theta)$:
$$\|z\| = \|x\|\frac{\mathbf{x}\cdot\mathbf{y}}{\|x\|\|y\|}$$
若是咱們定義$\mathbf{u}$爲$\mathbf{y}$的方向,而後:
$$\mathbf{u} = \frac{\mathbf{y}}{\|y\|}$$
和
$$\|z\| = \mathbf{u}\cdot\mathbf{x}$$
咱們如今有了計算向量$\mathbf{z}$的範數的簡單的方法。
由於向量$\mathbf{z}$和$\mathbf{y}$的方向一致,也是向量$\mathbf{u}$的方向
$$\mathbf{u}=\frac{\mathbf{z}}{\|z\|}$$
$$\mathbf{z} = \|z\|\mathbf{u}$$
所以咱們可以說:
向量$\mathbf{z} = (\mathbf{u}\cdot\mathbf{x})\mathbf{u}$是$\mathbf{x}$到$\mathbf{y}$的正交投影。
爲何咱們對於正交投影如此感興趣呢?在咱們的例子中,它讓咱們可以計算$\mathbf{x}$和通過$\mathbf{y}$的直線之間的距離。
圖 19
咱們可以看到這個距離就是$\|x-z\|$
$$\|x-z\| = \sqrt{(3-4)^2+(5-1)^2} = \sqrt{17}$$
你也許瞭解到直線方程是這樣的:$y = ax+b$。然而,當你讀到超平面的時候,你將會發現超平面方程是這樣定義的:
$$\mathbf{w}^T\mathbf{x} = 0$$
二者之間有什麼聯繫呢?
在超平面方程中,你可以發現變量名是粗體的。這也就是說它們都是向量!更重要的是,$\mathbf{w}^T\mathbf{x}$是咱們計算兩個向量內積的方法,若是你會想前邊所講過的,內積就是點乘的另外一種說法!
注意
$$y = ax +b$$
和
$$y-ax-b = 0$$
是同樣的
給定兩個向量$\mathbf{w}(-b,-a,1)和\mathbf{x}(1,x,y)$
$$\mathbf{w}^T\mathbf{x} = -b \times (1) + (-a)\times x + 1 \times y$$
$$\mathbf{w}^T\mathbf{x} = y - ax -b$$
兩個方程僅僅是用不一樣的方式表達一樣的意思。
有趣的是,$w_0$的值爲$-b$,也就是說這個值決定這直線和縱軸的交點。
爲何咱們使用超平面方程$\mathbf{w}^T\mathbf{x}$而不是$ y=ax+b$?
兩個緣由:
而且最後一條性質在計算點到超平面的距離上十分有用。
在 圖20 咱們有一個超平面,將數據分爲了兩組。
圖 20
爲了簡化這個例子,咱們設$w_0=0$。
正如你在圖20上看到的,超平面方程爲:
$$x_2 = -2x_1$$
等價於
$$\mathbf{w}^T\mathbf{x} = 0$$
其中$\mathbf{w}(2,1)$、$\mathbf{x}(x_1,x_2)$
注意向量$\mathbf{w}$在圖20中。($\mathbf{w}$不是一個數據點)
咱們想計算點$A(3,4)$到超平面的距離。
這個是$A$和它在超平面上的投影的距離
圖 21
咱們能夠將點 $A$ 視爲一個從原點到 $A$ 的向量。
若是咱們將它投影到法向量 $\mathbf{w}$
圖 22:$\mathbf{a}$ 投影到 $\mathbf{w}$
咱們獲得向量 $\mathbf{p}$
圖 23:p 是 a 投影到 w 的向量
咱們的目標是找到 $A(3,4)$ 和超平面之間的距離。
經過圖 23 咱們可以看到這個距離等於 $\|p\|$。
讓咱們來計算這個值。
咱們從這兩個向量開始,$\mathbf{w}=(2,1)$ 是超平面是法向量,$\mathbf{a}=(3,4)$ 是從原點到點 $A$ 之間的向量。
$$\|w\| = \sqrt{2^2+1^2} = \sqrt{5}$$
設向量 $\mathbf{u}$ 是 $\mathbf{w}$ 的方向向量
$$\mathbf{u} = (\frac{2}{\sqrt{5}},\frac{1}{\sqrt{5}})$$
$\mathbf{p}$ 是 $\mathbf{a}$ 在 $\mathbf{w}$ 上的正交投影,所以:
$$\mathbf{p}=(\mathbf{u}\cdot\mathbf{a})\mathbf{u}$$
$$\mathbf{p}=(3\times\frac{2}{\sqrt{5}}+4\times\frac{1}{\sqrt{5}})\mathbf{u}$$
$$\mathbf{p}=(\frac{6}{\sqrt{5}}+\frac{4}{\sqrt{5}})\mathbf{u}$$
$$\mathbf{p}=\frac{10}{\sqrt{5}}\mathbf{u}$$
$$\mathbf{p}=(\frac{10}{\sqrt{5}}\times\frac{2}{\sqrt{5}},\frac{10}{\sqrt{5}}\times\frac{1}{\sqrt{5}})$$
$$\mathbf{p}=(\frac{20}{5},\frac{10}{5})$$
$$\mathbf{p}=(4,2)$$
$$\|p\| = \sqrt{4^2+2^2} = 2\sqrt{5}$$
如今咱們已經有了 $A$ 和超平面之間的距離了,間隔的定義是:
$$margin = 2\|p\| = 4\sqrt{5}$$
咱們作到了!咱們計算出了超平面的間隔!
這是本系列的第二篇。
數學的內容比較多,可是我但願你已經可以很好的理解這個問題了。
如今咱們已經知道如何計算間隔,咱們也許想知道如何選擇最佳的超平面,這將在本教程的第三部分討論:如何找到最優超平面?