支持向量机


文章记录的内容是参加DataWhale的组队学习统计学习方法(第二版)习题解答过程中的笔记与查缺补漏!
参考解答地址支持向量机

1. 比较感知机的对偶形式与线性可分支持向量机的对偶形式。

解答思路

  1. 列出感知机的原始形式;
  2. 写出感知机的对偶形式;
  3. 列出线性可分支持向量机的原始形式;
  4. 写出线性可分支持向量机的对偶形式;
  5. 比较感知机和线性可分支持向量机的对偶形式。

回忆一下感知机的目标函数:

\[\min \limits_{w,b} L(w,b)=-\sum_{x_i \in M} y_i(w \cdot x_i + b) \]

其中\(M\)为误分类点的集合。

  根据书中第44页的算法2.2

输入:线性可分的数据集\(T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}\),其中\(x_i \in R^n, y_i \in \{-1, +1\}, i=1,2,\cdots,N\);学习率\(\eta\)\(0 < \eta \leqslant 1\));
输出:\(a,b\);感知机模型\(\displaystyle f(x)=\text{sign} \left( \sum_{j=1}^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_{j=1}^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_{i=1}^N \alpha_i y_i x_i\\ b=\sum_{i=1}^N \alpha_i y_i \]

也可以从中知道 \(\alpha_i\) 的含义:样本 \((x_i, y_i)\) 被用于更新参数的次数(即分错的次数)\(n_i\) 乘以学习率 \(\eta\),即 \(\alpha_i = n_i * \eta\)

  综上所述:

  1. 感知机的原始形式中的损失函数:

\[\min_{w,b} L(w,b)=-\sum_{x_i \in M} y_i(w \cdot x_i + b) \]

  1. 感知机的对偶形式中的损失函数:可知\(w,b\)表示为\(\langle x_i,y_i \rangle\)的线性组合形式,则

\[\min_{w,b} L(w,b) = \min_{\alpha} L(\alpha) = - \sum \limits_{x_i \in M} ( y_i ( \sum_{j=1}^N \alpha_j y_j x_j \cdot x_i + \sum_{j=1}^N \alpha_j y_j ) ) \]

其中,\(\alpha = (\alpha_1, \alpha_2,\cdots, \alpha_N)^T\)

线性可分 SVM 的原始形式和对偶形式就不在这里描述了,另出文章介绍。二者的比较:

  1. 在两者的对偶形式中,\(w,b\) 都可以表示为 \(\langle x_i,y_i \rangle\)线性组合形式;
  2. 在两者的对偶形式中,都可以通过求解 \(\alpha=(\alpha_1, \alpha_2, \cdots, \alpha_N)^T\),最后代入由 \(x_i,y_i,\alpha_i\) 表示的 \(w\)\(b\) 公式中,从而求解最优化问题的解 \(w^*\)\(b^*\)
  3. 感知机学习得到一个分隔超平面,而线性可分支持向量机学习得到所有分隔超平面中的间隔最大分隔超平面。

为什么要引出对偶形式?[1]

  1. 从对偶形式学习算法过程可以看出,样本点的特征向量以内积的形式存在于感知机对偶形式的训练算法中,凡是涉及到矩阵,向量内积的运算量就非常大(现实中特征维度很高),这里我们如果事先计算好所有的内积,存储于 Gram 矩阵中,以后碰到更新的点,直接从 Gram 矩阵中查找即可,相当于我就初始化运算一遍 Gram 矩阵,以后都是查询,大大加快了计算速度;
  2. 跟 SVM 的对偶形式其实有类似之处。

2. 已知正例点\(x_1=(1,2)^T,x_2=(2,3)^T,x_3=(3,3)^T\),负例点\(x_4=(2,1)^T,x_5=(3,2)^T\),试求最大间隔分离平面和分类决策函数,并在图中画出分离超平面、间隔边界及支持向量。

解答思路

  1. 通过调用 sklearn.svm 的 SVC 类构建模型,根据题目中的数据训练模型,得到 \(w\)\(b\) 和支持向量;
  2. 调用 matplotlib 库,画出分离超平面、间隔边界和支持向量。

具体过程参考这里

3. 线性支持向量机还可以定义为以下形式:

\[\begin{array}{cl} \displaystyle \min \limits_{w,b,\xi} & \displaystyle \frac{1}{2} \|w\|^2 + C \sum_{i=1}^N \xi_i^2 \\ \text{s.t.} & 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{array} \]

试求其对偶形式。

解答思路:
参考书中第127页7.2.2节“学习的对偶算法”内容`

  1. 根据附录C 拉格朗日对偶性,写出拉格朗日函数;
  2. \(L(w,b,\xi,\alpha,\mu)\)\(w,b,\xi\) 的极小;
  3. \(\displaystyle \min \limits_{w,b,\xi} L(w,b,\xi,\alpha,\mu)\)\(\alpha\) 的极大;
  4. 整理得到对偶形式。

具体过程参考这里

4. 证明内积的正整数幂函数:$$K(x,z)=(x \bullet z)^p$$是正定核函数,这里\(p\)是正整数,\(x,z\in R^n\)

解答思路:

  1. 写出正定核函数的判定依据
  2. 使用数学归纳法,证明
    1. \(p=1\) 时,根据定理 7.5,证明 \(K(x, z)=x \bullet z\) 是正定核函数
    2. 假设当 \(p=k\)\(k>1\) 时,\(K(x, z)=(x \bullet z)^k\) 是正定核函数
    3. 证明当 \(p=k+1\) 时,\(K(x, z)=(x \bullet z)^{k+1}\) 是正定核函数

先看看什么是正定核函数,根据书中第139页定理7.5(正定核的充要条件):

\(K: \mathcal{X} \times \mathcal{X} \rightarrow R\)是对称函数,则\(K(x,z)\)为正定核函数的充要条件是对任意\(x_i \in \mathcal{X}, i=1,2,\cdots, m\)\(K(x, z)\)对应的Gram矩阵:

\[K = [K(x_i, x_j)]_{m \times m} \]

是半正定矩阵。

关于半正定矩阵可以参考这这里

具体证明过程参考这里

References


  1. 《浅析感知机(三)--收敛性证明与对偶形式以及python代码讲解》 ↩︎


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM