感知機與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, b)\),最終找到一個超平面 \(f(x) = w^{T}x + b\) 網路能夠根據任意輸入 \(x_{i}\) 輸出對應的值來區分不同的模型。
二、感知機的學習策略
感知機是根據錯誤驅動的思想來進行學習,具體來說,先給待學習引數 \((w,b)\) 一個初始值,得到的初始超平面一般無法正確區分類別,我們用集合 \(D\) 來代表被錯誤分類的樣本,那麼最終的學習策略就是最小化被錯誤分類的點的個數,定量表示如下:
函式 \(\psi(x)\) 定義為:
因為當 \(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)\) 的連續函式。
根據高中知識,我們得到空間內任意一點到超平面的距離為:
那麼對於正確分類的正樣本點,其到超平面的距離設為正數,對於正確分類的錯樣本點,其道超平面的距離設為複數,那麼所有正確分類的樣本到超平面的距離可以表示為:
因此,所有錯誤分類的樣本的到超平面的總距離就可以表示為:
所以,感知機的損失函式最終定義為:
顯然:
當正類樣本被分成負類樣本時 \(w^{T}x_{i}+b < 0,y_{i}>0\),
當負類樣本被分成正類樣本時 \(w^{T}x_{i}+b > 0,y_{i}<0\),
因此,損失函式是非負的,且分類錯誤的點就越少,分類錯誤的點就離超平面越近,其值越小。
三、感知機的求解演算法
由於損失函式 \(L(w,b)\) 是自變數的連續函式,因此可以用隨機梯度下降 (SGD) 的方式進行求解。那麼損失函式的梯度如下:
採用隨機梯度下降法更新的公式為: