支援向量機support vector machine (svm)是有監督學習中最有影響的方法之一。
svm與邏輯回歸logistic regression相似, 都基於線性函式 wt
x+b 。
svm的關鍵創新在與kernel trick, 採用樣本點乘的形式我們可以將svm使用的線性函式寫成wt
x+b=
b+∑i
=1mα
ixtx
(i)
其中x(i
) 是訓練樣本,
α 是係數向量
我們用特徵函式 ϕ(
x)替代
x ,則點乘部分可替換為函式 k(
x,x(
i))=
ϕ(x)
⋅ϕ(x
(i))
,這裡的函式
k 就被稱為kernel。
這樣我們可以將函式寫成 f(
x)=b
+∑iα
ik(x
,x(i
))這個函式相對於
x 是非線性的,但相對於 ϕ(
x)是線性的,尤其重要的是 f(
x)對於
α 是線性的。
這就相當於我們首先使用 ϕ(
x)對所有樣本進行了預處理,然後使用乙個線性模型。
由於我們這裡要優化的是
α ,這就使我們能用線性的模型來處理非線性的任務。
最常用到的kernel是gaussian kernel高斯核 k(
u,v)
=n(u
−v;0
,σ2i
) ,其中n(
x;μ,
σ)是標準正態密度,它也被稱為radial basis function (rbf) kernel,
我們可以將高斯核視作執行模板匹配,首先訓練樣本
x 與對應的標籤
y成為
y 類別的模板,當測試樣本 x,
的歐幾里德距離接近
x 時,認為 x,
與x的模板非常相似,模型給對應的
y乙個非常大的權重。
svm不是唯一可以用kernel trick提高的演算法,所有使用kernel trick的演算法被稱為kernel machines或kernel methods。
svm的乙個弱點是評估決策函式的成本與訓練樣本數量成線性相關,減輕影響的方法是學習乙個大多為0的
α 向量,這樣分類新樣本時只需評估那些 αi
不為0的訓練樣本,這些訓練樣本被稱為support vectors 支撐向量。
kernel machines當資料集規模巨大時計算成本非常高,相應的有了stochastic gradient descent,同時核機器也不能很好的泛化,為克服核機器這個弱點引發了深度學習的復興。
支援向量機 SVM 學習筆記
最近學習了coursera上史丹福大學的機器學習課程。其中支援向量機的內容和其他地方的理解不太一樣,現將兩種理解方法記錄如下。這一種理解是從邏輯回歸推理得來。邏輯回歸的損失函式為 其中h z 1 1 exp z 接下來 log h x 和 log 1 h x 的影象如圖所示 其中手繪的函式為原函式的...
SVM支援向量機筆記
舉個簡單的例子,如下圖所示 左圖有三條直線 1 虛線不能很好的進行分類 2 兩條實線能夠實現分類 在該資料集中表現較好 但是這兩個線性模型的判定便界很靠近樣本點,在新的資料上可能不會表現得那麼好。右圖一條實線 1 該實線不僅分開了兩種類別,還盡可能遠離了最靠近的訓練資料點,可以理解為svm分類器在兩...
svm支援向量機學習
1.從零開始的機器學習之svm乙個簡單的實現案例 鳶尾花分類 2.svm的第乙個例項,這個和第乙個鏈結是乙個例子 3.機器學習 支援向量機svm及例項應用,例子仍然是地乙個 4.機器學習之旅 svm分類器,概述了svm的原理 5.支援向量機通俗導論 理解svm的三層境界 對svm原理講述的較為詳細 ...