SVM零基礎系列教程(二)

更多文章,歡迎你們關注的個人我的博客網站: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

clipboard.png

圖 1:一個點

定義:點 $x=(x1,x2),x≠0$ in $R^2 $ 肯定平面的一個向量,即向量的起點爲原點,終點爲點x。

這個定義的意思是在原點和點A存在一個向量。

clipboard.png

圖 2 - 一個向量

若是咱們說原點座標爲 $O(0,0)$,那麼上邊的這條向量是 $OA$,咱們也可以給它一個抽象的名字例如$u$。

注意:你可能注意到咱們書寫的向量,要麼是在字母頂端標箭頭,要麼加粗。在文章的接下來的部分我將會使用箭頭,在存在兩個字母像$OA$,在其餘狀況下加粗標識。

好,目前咱們向量的存在,可是咱們仍然不知道什麼是向量。

定義:向量是一個同時擁有大小和方向的東西。

咱們將會從兩個方面來理解這個概念。

1)向量的大小

向量X的大小或者長度被寫做 $\| x \|$,被稱範數。

對於咱們的向量$OA$,$||OA||$就是線段$OA$的長度

clipboard.png

圖3

使用勾股定理可以很容易地計算出圖3中$OA$的距離:

$$OA^2=OB^2+AB^2$$

$$OA^2=3^2+4^2$$

$$OA^2=25$$

$$OA=\sqrt{25}$$

$$||OA||=OA=5$$

2)向量的方向

方向是向量的第二個組成部分。

定義:向量 $u(u_1,u_2)$ 的 方向是向量:
$$ w(\frac{u1}{∥u∥},\frac{u2}{∥u∥})$$

$w$ 的座標是怎麼來的?

理解定義

爲了找到向量的方向,咱們須要使用它的角度。

clipboard.png

圖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:

clipboard.png

Figure 5: the direction of u
圖 5:u 的方向

咱們可以看到 $w$ 除了更小一些外,其餘的實際上和 $u$ 是同樣的。有趣的是相似 $w$ 這樣的方向向量的範數爲1。這就是爲何咱們經常稱它們爲單位向量

向量的加減法

兩個向量的和

clipboard.png

圖 6:向量u和v

已知向量 $u(u_1,u_2)$ 和 $v(v_1,v_2)$:
$$u+v = (u_1+v_1,u_2+v_2)$$

也就是說,兩個向量相加獲得的新向量的座標是兩個向量的座標的和。

你能夠經過下邊的這個例子確信這一點:

clipboard.png

圖 7:兩個向量的和

兩個向量的差

差的運算同理:
$$u+v = (u_1-v_1,u_2-v_2)$$

clipboard.png

圖 8:兩個向量的差

由於減法是沒有交換律的,咱們也能夠考慮另一種狀況:

clipboard.png

圖 9:u-v的差

最後兩張圖描述了$u$和$v$的差向量

然而,由於向量有大小和方向,咱們經常考慮向量平移變換(擁有相同大小和方向可是起點不同的向量)獲得的向量是同樣的,僅僅是在空間上不一樣地方繪製而已。

所以若是你遇到以下的狀況不要感到驚訝:

clipboard.png

圖 10:v-u的另外一種展示方式

clipboard.png

圖 11:u-v的另外一種展示方式

若是你進行數學計算,它看起來是錯的,由於向量 $u-v$ 的終點並不在正確的位置,可是你講會在之後常常遇到這種便捷地表示向量的方式。

點乘

點乘是理解SVM的一個很是重要的概念。

"定義:從幾何的角度看,點乘的結果是兩個向量的歐氏距離和他們之間的夾角。"

也就是說,若是咱們有兩個向量$x$和$y$,以及它們之間的夾角 $\theta$ ,它們的點乘是:

$$x\cdot y = ||x||||y||cos(\theta)$$

爲何?

爲了理解這個,讓咱們從幾何的角度看看這個問題。

clipboard.png

咱們來看看定義中 $cos(\theta)$ 是什麼。

根據定義咱們知道在直角角形中:

$$cos(\theta) = \frac{鄰邊}{斜邊}$$

在咱們的例子中,咱們並無直角三角形。

然而若是咱們換一個角度看圖 12,咱們可以找到兩個直角三角形,每一個都是由向量和橫軸的組成的。

clipboard.png

圖 13

clipboard.png
圖 14

所以如今咱們可以像這樣的方式觀察以前的圖:

clipboard.png
圖 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$,咱們想找到$x$在$y$上的正交投影。

clipboard.png
圖 16

爲了可以這樣作,咱們將向量$\mathbf{x}$投影在$\mathbf{y}$上

clipboard.png

圖 17

咱們獲得向量$\mathbf{z}$

clipboard.png

根據定義:

$$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}$的直線之間的距離。

clipboard.png
圖 19

咱們可以看到這個距離就是$\|x-z\|$

$$\|x-z\| = \sqrt{(3-4)^2+(5-1)^2} = \sqrt{17}$$

SVM 超平面

理解超平面公式

你也許瞭解到直線方程是這樣的:$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$?

兩個緣由:

  • 這種表達方式在高於二維的尺度上更加有效
  • 向量$\mathbf{w}$是超平面的法線

而且最後一條性質在計算點到超平面的距離上十分有用。

計算點到超平面的距離

在 圖20 咱們有一個超平面,將數據分爲了兩組。

clipboard.png
圖 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$和它在超平面上的投影的距離

clipboard.png
圖 21

咱們能夠將點 $A$ 視爲一個從原點到 $A$ 的向量。
若是咱們將它投影到法向量 $\mathbf{w}$

clipboard.png
圖 22:$\mathbf{a}$ 投影到 $\mathbf{w}$

咱們獲得向量 $\mathbf{p}$

clipboard.png
圖 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}$$

咱們作到了!咱們計算出了超平面的間隔!

結論

這是本系列的第二篇。
數學的內容比較多,可是我但願你已經可以很好的理解這個問題了。

接下來是什麼?

如今咱們已經知道如何計算間隔,咱們也許想知道如何選擇最佳的超平面,這將在本教程的第三部分討論:如何找到最優超平面?

相關文章
相關標籤/搜索