支援向量機

2022-09-10 10:42:14 字數 3367 閱讀 1800

文章記錄的內容是參加datawhale的組隊學習統計學習方法(第二版)習題解答過程中的筆記與查缺補漏!

參考解答位址:支援向量機。

解答思路

列出感知機的原始形式;

寫出感知機的對偶形式;

列出線性可分支援向量機的原始形式;

寫出線性可分支援向量機的對偶形式;

比較感知機和線性可分支援向量機的對偶形式。

回憶一下感知機的目標函式:

\[\min \limits_ l(w,b)=-\sum_ y_i(w \cdot x_i + b)

\]其中\(m\)為誤分類點的集合。

根據書中第44頁的演算法2.2

輸入:線性可分的資料集\(t=\\),其中\(x_i \in r^n, y_i \in \, i=1,2,\cdots,n\);學習率\(\eta\)(\(0 < \eta \leqslant 1\));

輸出:\(a,b\);感知機模型\(\displaystyle f(x)=\text \left( \sum_^n \alpha_j y_j x_j \cdot x + b \right)\),其中\(\alpha = (\alpha_1, \alpha_2,\cdots, \alpha_n)^t\)

(1)\(\alpha \leftarrow 0,b \leftarrow 0\);

(2)在訓練集中選取資料\((x_i, y_i)\);

(3)如果\(\displaystyle y_i\left( \sum_^n \alpha_j y_j x_j \cdot x + b \right) \leqslant 0\),

\[\alpha_i \leftarrow \alpha_i + \eta \\

b \leftarrow b + \eta y_i

\](4)轉至(2),直至訓練集中沒有誤分類資料。

結合對偶形式的感知機模型,可知:

\[w=\sum_^n \alpha_i y_i x_i\\

b=\sum_^n \alpha_i y_i

\]也可以從中知道 \(\alpha_i\) 的含義:樣本 \((x_i, y_i)\) 被用於更新引數的次數(即分錯的次數)\(n_i\) 乘以學習率 \(\eta\),即 \(\alpha_i = n_i * \eta\)。

綜上所述:

感知機的原始形式中的損失函式:

\[\min_ l(w,b)=-\sum_ y_i(w \cdot x_i + b)

\]感知機的對偶形式中的損失函式:可知\(w,b\)表示為\(\langle x_i,y_i \rangle\)的線性組合形式,則

\[\min_ l(w,b) = \min_ l(\alpha) = - \sum \limits_ ( y_i ( \sum_^n \alpha_j y_j x_j \cdot x_i + \sum_^n \alpha_j y_j ) )

\]其中,\(\alpha = (\alpha_1, \alpha_2,\cdots, \alpha_n)^t\)

在兩者的對偶形式中,\(w,b\) 都可以表示為 \(\langle x_i,y_i \rangle\) 的線性組合形式;

在兩者的對偶形式中,都可以通過求解 \(\alpha=(\alpha_1, \alpha_2, \cdots, \alpha_n)^t\),最後代入由 \(x_i,y_i,\alpha_i\) 表示的 \(w\) 和 \(b\) 公式中,從而求解最優化問題的解 \(w^*\) 和 \(b^*\);

感知機學習得到乙個分隔超平面,而線性可分支援向量機學習得到所有分隔超平面中的間隔最大分隔超平面。

從對偶形式學習演算法過程可以看出,樣本點的特徵向量以內積的形式存在於感知機對偶形式的訓練演算法中,凡是涉及到矩陣,向量內積的運算量就非常大(現實中特徵維度很高),這裡我們如果事先計算好所有的內積,儲存於 gram 矩陣中,以後碰到更新的點,直接從 gram 矩陣中查詢即可,相當於我就初始化運算一遍 gram 矩陣,以後都是查詢,大大加快了計算速度;

跟 svm 的對偶形式其實有類似之處。

解答思路

通過呼叫 sklearn.svm 的 svc 類構建模型,根據題目中的資料訓練模型,得到 \(w\)、\(b\) 和支援向量;

呼叫 matplotlib 庫,畫出分離超平面、間隔邊界和支援向量。

具體過程參考這裡。

\[\begin

\displaystyle \min \limits_ & \displaystyle \frac \|w\|^2 + c \sum_^n \xi_i^2 \\

\text & y_i(w \cdot x_i + b) \geqslant 1 - \xi_i, \quad i=1,2,\cdots, n \\

& \xi_i \geqslant 0, \quad i=1,2,\cdots, n

\end

\]試求其對偶形式。

解答思路:

參考書中第127頁7.2.2節「學習的對偶演算法」內容`

根據附錄c 拉格朗日對偶性,寫出拉格朗日函式;

對 \(l(w,b,\xi,\alpha,\mu)\) 求 \(w,b,\xi\) 的極小;

對 \(\displaystyle \min \limits_ l(w,b,\xi,\alpha,\mu)\) 求 \(\alpha\) 的極大;

整理得到對偶形式。

具體過程參考這裡。

解答思路:

寫出正定核函式的判定依據

使用數學歸納法,證明

當 \(p=1\) 時,根據定理 7.5,證明 \(k(x, z)=x \bullet z\) 是正定核函式

假設當 \(p=k\) 且 \(k>1\) 時,\(k(x, z)=(x \bullet z)^k\) 是正定核函式

證明當 \(p=k+1\) 時,\(k(x, z)=(x \bullet z)^\) 是正定核函式

先看看什麼是正定核函式,根據書中第139頁定理7.5(正定核的充要條件):

設\(k: \mathcal \times \mathcal \rightarrow r\)是對稱函式,則\(k(x,z)\)為正定核函式的充要條件是對任意\(x_i \in \mathcal, i=1,2,\cdots, m\),\(k(x, z)\)對應的gram矩陣:

\[k = [k(x_i, x_j)]_

\]是半正定矩陣。

關於半正定矩陣可以參考這這裡。

具體證明過程參考這裡。

《**感知機(三)--收斂性證明與對偶形式以及python**講解》

↩︎

支援向量機專題 線性支援向量機

原文 當資料線性不可分時,使用硬間隔支援向量機很難得到理想的結果。但是如果資料近似線性可分,可以採用軟間隔支援向量機 線性支援向量機 進行分類。這通常適用於有少量異常樣本的分類,如果使用線性支援向量機,它會盡量使得所有訓練樣本都正確,如下圖所示。顯然這並不是最好的結果,軟間隔支援向量機可以權衡 間隔...

支援向量機

支援向量機 svm 一種專門研究有限樣本 的學習方法。是在統計學習理論基礎之上發展而來的。沒有以傳統的經驗風險最小化原則作為基礎,而是建立在結構風險最小化原理的基礎之上,發展成為一種新型的結構化學習方法。結構風險最小歸納原理 解決了有限樣本或小樣本的情況下獲得具有優異泛化能力的學習機器。包含了學習的...

支援向量機

支援向量 與分離超平面距離最近的樣本點的例項 優點 泛化錯誤率低,計算開銷不大,結果易解釋 缺點 對引數調節和核函式選擇敏感,原始分類器不加修改僅適用於處理二分類問題 適合資料型別 數值型和標稱型資料 每次迴圈中選擇兩個alpha進行優化處理。一旦找到一對合適的alpha,那麼久增大其中乙個同時減小...