感知機與支持向量機 (SVM)


感知機與SVM一樣都是使用超平面對空間線性可分的向量進行分類,不同的是:感知機的目標是盡可能將所有樣本分類正確,這種策略指導下得出的超平面可能有無數個,然而SVM不僅需要將樣本分類正確,還需要最大化最小分類間隔,對SVM不熟悉的朋友可以移步我另一篇文章:支持向量機(SVM)之硬閾值 - ZhiboZhao - 博客園 (cnblogs.com)

為了系統地分析二者的區別,本文還是首先介紹感知機模型,學習策略以及求解思路

一、感知機模型

還是假定在 \(p\) 維空間有 \(m\) 組訓練樣本對,構成訓練集 $T = { (x_{1}, y_{1}), (x_{2}, y_{2}),...,(x_{n}, y_{n})} $,其中 \(x_{i} \in R^{1 \times p}\)\(y_{i}\in \{-1, +1\}\),以二維空間為例,在線性可分的情況下,所有樣本在空間可以描述為:

在上圖中,紫色和藍色的圓形代表不同的類別,紅色的實線表示任意一條能夠將這兩種區分的超平面,理論上這種超平面有無數條,都有可能是感知機的解,然而SVM的模型解出來的超平面很有可能通過最大化最小間隔的策略得到的黑色的實線。我們將超平面表示為:\(\Phi: b+w_{1}x_{1}+w_{2}x_{2}+...+w_{p}x_{p} = 0\),寫成矩陣形式為:\(\Phi: w^{T}x + b = 0\),根據高中數學的知識,可以得出 $ w $ 表示超平面的法向量,\(b\) 表示超平面的截距。感知機的最終目標可以表示為:

\[w^{T}x_{i}+b>0,\quad if \quad y_{i}=1\\ w^{T}x_{i}+b<0,\quad if \quad y_{i}=-1 \]

通過有監督的訓練,不斷地學習超平面的參數 \((w, b)\),最終找到一個超平面 \(f(x) = w^{T}x + b\) 網絡能夠根據任意輸入 \(x_{i}\) 輸出對應的值來區分不同的模型。

二、感知機的學習策略

感知機是根據錯誤驅動的思想來進行學習,具體來說,先給待學習參數 \((w,b)\) 一個初始值,得到的初始超平面一般無法正確區分類別,我們用集合 \(D\) 來代表被錯誤分類的樣本,那么最終的學習策略就是最小化被錯誤分類的點的個數,定量表示如下:

\[L(w,b) = \sum_{i=1}^{n}\psi (y_{i}(w^{T}x_{i}+b) \]

函數 \(\psi(x)\) 定義為:

\[\psi(x) = 1, \quad if\quad x<0\\ \psi(x) = 0, \quad if\quad x>0 \]

因為當 \(y_{i}f(x_{i}) = y_{i}(w^{T}x_{i}+b) <0\) 時,該點被錯誤分類,於是損失函數 \(L(w,b)\) 就記錄了總共被錯誤分類的個數,最小化loss就能求出超平面參數。

然而隨着 \((w,b)\) 的改變,指示函數 \(\psi\) 要么為0,要么為1,是一個不連續的函數,因此損失函數不可導,也就不容易求出極值,需要將 \(L(w,b)\) 轉換成 \((w,b)\) 的連續函數。

根據高中知識,我們得到空間內任意一點到超平面的距離為:

\[distance = \dfrac{1}{||w||}|w^{T}x_{i}+b| \]

那么對於正確分類的正樣本點,其到超平面的距離設為正數,對於正確分類的錯樣本點,其道超平面的距離設為復數,那么所有正確分類的樣本到超平面的距離可以表示為:

\[d = y_{i}\dfrac{1}{||w||}(w^{T}x_{i}+b) \]

因此,所有錯誤分類的樣本的到超平面的總距離就可以表示為:

\[d = -y_{i}\dfrac{1}{||w||}(w^{T}x_{i}+b) \Longleftrightarrow -y_{i}(w^{T}x_{i}+b) \]

所以,感知機的損失函數最終定義為:

\[L(w,b) = -\sum_{i\in D}y_{i}(w^{T}x_{i}+b) \]

顯然:

當正類樣本被分成負類樣本時 \(w^{T}x_{i}+b < 0,y_{i}>0\)

當負類樣本被分成正類樣本時 \(w^{T}x_{i}+b > 0,y_{i}<0\)

因此,損失函數是非負的,且分類錯誤的點就越少,分類錯誤的點就離超平面越近,其值越小。

三、感知機的求解算法

由於損失函數 \(L(w,b)\) 是自變量的連續函數,因此可以用隨機梯度下降 (SGD) 的方式進行求解。那么損失函數的梯度如下:

\[\nabla_{w}L(w,b) = \dfrac{\partial L(w,b)}{\partial w} = -\sum_{x_{i} \in D}y_{i}x_{i}\\ \nabla_{b}L(w,b) = \dfrac{\partial L(w,b)}{\partial b} = -\sum_{x_{i} \in D}y_{i} \]

采用隨機梯度下降法更新的公式為:

\[w = w+\eta y_{i}x_{i};\quad b = b+\eta y_{i} \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM