跳转至

第3讲 机器学习(二)

支持向量机

最大间隔线性分类

支持向量机 SVM 是 Vapnik 在小样本统计学习理论基础上提出的方法。其三要素是:

  • 策略上引入最大分类间隔;
  • 模型上用核函数实现非线性建模;
  • 算法上用带不等式约束的拉格朗日乘子法,可用 SMO 求解对偶问题,也可用神经网络架构和 Hinge Loss 优化。

SVM 直接拟合 \(P(Y\mid X)\) 对应的分类界面,是鉴别式模型;生成式模型则估计 \(P(X,Y)\)

给定训练样本 \((x_i,y_i)\)\(y_i\in\{+1,-1\}\),线性分类面为

\[ w^Tx+b=0. \]

同一分类面可由成比例的 \(w,b\) 表示,因此可调整尺度,使两类离分类面最近的样本满足

\[ y_i(w^Tx_i+b)\ge1. \]

落在两侧边界上的样本 \(x^+,x^-\) 是支持向量:

\[ w^Tx^++b=1,\qquad w^Tx^-+b=-1. \]

两条边界之间的间隔为

\[ M=(x^+-x^-)^T\frac{w}{\|w\|} =\frac{2}{\|w\|}. \]

最大化间隔等价于硬间隔二次规划

\[ \min_{w,b}\frac12\|w\|^2 \quad \text{s.t.}\quad y_i(w^Tx_i+b)-1\ge0,\ i=1,\ldots,n. \]

\(y(w^Tx+b)-1\) 描述样本相对间隔边界的位置:等于0的点位于边界,大于0的点在正确一侧并留有安全距离,小于0则侵入间隔或被误分。与感知机只惩罚 \(y(w^Tx+b)<0\) 的误分类点不同,SVM 的 Hinge Loss 为

\[ L_{\mathrm{hinge}}=\max\bigl(0,1-y(w^Tx+b)\bigr), \]

既惩罚误分类点,也惩罚已分对但落入间隔内的点。用神经网络形式训练 SVM 时,目标函数可取权重的 \(L_2\) 范数与带正则化系数的 Hinge Loss 之和。

拉格朗日对偶与 SMO

硬间隔问题的拉格朗日函数为

\[ \mathcal L(w,b,\alpha) =\frac12w^Tw +\sum_{i=1}^{n}\alpha_i\left[1-y_i(w^Tx_i+b)\right], \qquad \alpha_i\ge0. \]

KKT 条件包括:

\[ y_i(w^Tx_i+b)\ge1,\qquad \alpha_i\ge0, \]
\[ \alpha_i\left[y_i(w^Tx_i+b)-1\right]=0, \]

以及驻点条件

\[ \frac{\partial\mathcal L}{\partial w} =w-\sum_i\alpha_iy_ix_i=0, \qquad \frac{\partial\mathcal L}{\partial b} =-\sum_i\alpha_iy_i=0. \]

因此

\[ w=\sum_{i=1}^{n}\alpha_iy_ix_i, \qquad \sum_{i=1}^{n}\alpha_iy_i=0. \]

这里第二式来自 \(\partial\mathcal L/\partial b=0\)。课件第 12 页红框把它排成了 \(b=\sum_i\alpha_i y_i\),应按上面的 KKT 等式理解。

把它们代回拉格朗日函数,得到对偶问题

\[ \max_{\alpha} \left[ \sum_{i=1}^{n}\alpha_i -\frac12\sum_{i=1}^{n}\sum_{j=1}^{n} \alpha_i\alpha_jy_iy_jx_i^Tx_j \right], \quad \alpha_i\ge0,\quad \sum_i\alpha_iy_i=0. \]

Platt 于1998年提出序列最小优化 SMO,每次选择两个拉格朗日乘子迭代优化。只有 \(\alpha_i>0\) 的样本进入最终权重,它们构成支持向量集合 \(SV\)

\[ w=\sum_{j\in SV}\alpha_jy_jx_j. \]

任选一个支持向量代入 \(y_i(w^Tx_i+b)=1\) 可求 \(b\)。未知样本的判别函数为

\[ f(x)=\sum_{j\in SV}\alpha_jy_jx_j^Tx+b. \]

带不等式约束的凸优化可这样理解:若无约束极小值位于可行域内,答案与无约束问题相同;若它落在可行域外,最优点会落到约束边界上,此时可把活跃不等式看成等式约束。

软间隔

噪声和异常值会使数据只能近似线性可分。为每个样本引入松弛变量 \(\xi_i\ge0\)

\[ y_i(w^Tx_i+b)\ge1-\xi_i. \]

软间隔问题为

\[ \min_{w,b,\xi} \frac12\|w\|^2+C\sum_{i=1}^{n}\xi_i, \]
\[ \text{s.t.}\quad 1-\xi_i-y_i(w^Tx_i+b)\le0,\qquad -\xi_i\le0. \]

其拉格朗日函数为

\[ \mathcal L =\frac12w^Tw +\sum_i\alpha_i[1-\xi_i-y_i(w^Tx_i+b)] -\sum_i\gamma_i\xi_i, \]

其中 \(\alpha_i,\gamma_i\ge0\)。驻点条件给出

\[ w=\sum_i\alpha_iy_ix_i,\qquad \sum_i\alpha_iy_i=0,\qquad C-\alpha_i-\gamma_i=0, \]

所以对偶变量满足 \(0\le\alpha_i\le C\),对偶目标仍为

\[ \max_{\alpha} \left[ \sum_i\alpha_i -\frac12\sum_i\sum_j\alpha_i\alpha_jy_iy_jx_i^Tx_j \right]. \]

\(C\) 控制模型对误差的容忍度。\(C\) 越大,越不容许样本进入间隔,容易过拟合;\(C\) 越小,容许的误差越大,进入间隔的样本更多,容易欠拟合。

核函数与核技巧

非线性分类可以先用基函数 \(\phi(x)\) 把样本映射到高维空间,再在该空间线性分类。核函数直接计算映射后的内积:

\[ K(x_i,x_j)=\phi(x_i)^T\phi(x_j). \]

Mercer 定理给出有效核函数的充要条件:核矩阵

\[ \boldsymbol K_{ij}=K(x_i,x_j) \]

必须对称半正定,即 \(K(x_i,x_j)=K(x_j,x_i)\),且任意非零向量 \(a\) 都满足 \(a^T\boldsymbol Ka\ge0\)

常用核函数有:

\[ K_{\mathrm{linear}}(x_i,x_j)=x_i^Tx_j, \]
\[ K_{\mathrm{poly}}(x_i,x_j)=\left(1+x_i^Tx_j\right)^p, \]
\[ K_{\mathrm{Gaussian}}(x_i,x_j) =\exp\left(-\gamma\|x_i-x_j\|^2\right), \qquad \gamma=\frac{1}{2\sigma^2}, \]
\[ K_{\tanh}(x_i,x_j)=\tanh(\beta_0x_i^Tx_j+\beta_1). \]

引入核函数后,对偶问题成为

\[ \max_{\alpha} \left[ \sum_i\alpha_i -\frac12\sum_i\sum_j \alpha_i\alpha_jy_iy_jK(x_i,x_j) \right], \quad 0\le\alpha_i\le C, \]

判别函数为

\[ f(x)=\sum_{j\in SV}\alpha_jy_jK(x,x_j)+b. \]

这就是核技巧:只需核函数,不必显式写出可能维度很高的 \(\phi(x)\)\(w\)

非线性 SVM 求解 XOR

四个样本为

样本 \(x_i\) \(y_i\)
\(x_1\) \((-1,-1)^T\) \(-1\)
\(x_2\) \((-1,1)^T\) \(1\)
\(x_3\) \((1,-1)^T\) \(1\)
\(x_4\) \((1,1)^T\) \(-1\)

取二次多项式核

\[ K(x_i,x_j)=\left(1+x_i^Tx_j\right)^2. \]

核矩阵为

\[ \boldsymbol K= \begin{bmatrix} 9&1&1&1\\ 1&9&1&1\\ 1&1&9&1\\ 1&1&1&9 \end{bmatrix}. \]

该核可对应到六维基函数

\[ \phi(x)= \left(1,x_1^2,\sqrt2x_1x_2,x_2^2,\sqrt2x_1,\sqrt2x_2\right)^T. \]

四个样本映射为

\[ \begin{aligned} \phi(x_1)&=(1,1,\sqrt2,1,-\sqrt2,-\sqrt2)^T,\\ \phi(x_2)&=(1,1,-\sqrt2,1,-\sqrt2,\sqrt2)^T,\\ \phi(x_3)&=(1,1,-\sqrt2,1,\sqrt2,-\sqrt2)^T,\\ \phi(x_4)&=(1,1,\sqrt2,1,\sqrt2,\sqrt2)^T. \end{aligned} \]

把样本代入对偶目标并令各偏导为0,得到

\[ \begin{aligned} 9\alpha_1-\alpha_2-\alpha_3+\alpha_4&=1,\\ -\alpha_1+9\alpha_2+\alpha_3-\alpha_4&=1,\\ -\alpha_1+\alpha_2+9\alpha_3-\alpha_4&=1,\\ \alpha_1-\alpha_2-\alpha_3+9\alpha_4&=1. \end{aligned} \]

解为

\[ \alpha_1=\alpha_2=\alpha_3=\alpha_4=\frac18, \]

所以四个样本全是支持向量。权重和偏置为

\[ w=\sum_i\alpha_iy_i\phi(x_i) =\left(0,0,-\frac{\sqrt2}{2},0,0,0\right)^T, \qquad b=0. \]

高维超平面 \(w^T\phi(x)+b=0\) 在原二维空间对应

\[ x_1x_2=0, \]

即两条坐标轴,正好把 XOR 四点分开。

高斯核的基函数也存在,但维数无穷。标量情形下,

\[ \begin{aligned} K(x_i,x_j) &=\exp\left[-\frac{(x_i-x_j)^2}{2\sigma^2}\right]\\ &=\exp\left(-\frac{x_i^2+x_j^2}{2\sigma^2}\right) \exp\left(\frac{x_ix_j}{\sigma^2}\right)\\ &=\exp\left(-\frac{x_i^2+x_j^2}{2\sigma^2}\right) \sum_{n=0}^{\infty}\frac{x_i^nx_j^n}{n!\sigma^{2n}}, \end{aligned} \]

因此可构造无穷维 \(\phi(x)\),满足 \(K(x_i,x_j)=\phi(x_i)^T\phi(x_j)\)

具体地,可以取

\[ \phi(x)=\exp\left(-\frac{x^2}{2\sigma^2}\right)\left[1,\frac{x}{\sigma},\frac{1}{\sqrt{2!}}\frac{x^2}{\sigma^2},\ldots,\frac{1}{\sqrt{n!}}\frac{x^n}{\sigma^n},\ldots\right]^T. \]

这也直接说明高斯核对应的基函数确实存在,而且维数无穷。

应用

SVM 可用于分类和回归。多分类可拆成多个“一对多”分类器,也可拆成两两“一对一”分类器,再用投票汇总。课件的深度图像手势识别流程为去背景、检测手部区域、识别数字1至5,150个样本中正确142个,识别率为 \(94.7\%\)

模型选择与评估

模型容量、过拟合与欠拟合

模型容量描述其拟合能力,常与参数量、网络层数和节点数有关。容量大的模型通常需要更多训练样本,也更容易过拟合;限制过强则会欠拟合。

模型预测与真值的差异称误差。训练集上的误差叫训练误差或经验误差,测试集上的误差叫测试误差或泛化误差;训练期间还可观察验证集损失决定是否停止。理想模型从训练集学到适用于潜在样本的规律。过拟合表现为训练误差小、测试误差大;欠拟合则连训练规律也未掌握,训练误差大,测试误差通常更大。

评价指标

\(N\) 个样本中有 \(N_{\mathrm{error}}\) 个分类错误时,

\[ \mathrm{ER}=\frac{N_{\mathrm{error}}}{N}, \qquad \mathrm{AR}=1-\frac{N_{\mathrm{error}}}{N}. \]

语音和文本识别常按编辑距离计算识别率:

\[ \mathrm{AR}=1-\frac{D_e+S_e+I_e}{N}, \]

其中 \(D_e,S_e,I_e\) 分别是把识别结果改成真值所需的删除、替换、插入次数。

多分类混淆矩阵大小为 \(C\times C\),行表示真值类别,列表示预测类别;所有元素之和是样本数,主对角线之和是正确数。石头、剪子、布分类例的矩阵为

\[ \begin{bmatrix} 99&0&1\\ 4&94&2\\ 1&1&98 \end{bmatrix}, \]

准确率为

\[ \frac{99+94+98}{300}=97\%. \]

二分类混淆矩阵含真正类 TP、假负类 FN、假正类 FP、真负类 TN。常用指标为

\[ \operatorname{Recall}=\frac{TP}{TP+FN}, \qquad \operatorname{Precision}=\frac{TP}{TP+FP}, \]
\[ F_1=\frac{2PR}{P+R}, \qquad F_\beta=\frac{(\beta^2+1)PR}{\beta^2P+R}, \]
\[ \operatorname{TPR}=\operatorname{Recall}, \qquad \operatorname{FPR}=\frac{FP}{TN+FP}. \]

\(TP=7,FN=3,FP=1,TN=9\),则 Recall 为 \(70\%\),Precision 为 \(87.5\%\)

PR 曲线以 Recall 为横轴、Precision 为纵轴,曲线下面积 AP 越大越好。ROC 曲线以 FPR 为横轴、TPR 为纵轴,曲线下面积 AUC 越大越好。等错误率 EER 满足

\[ \operatorname{FPR}=\operatorname{FNR}=1-\operatorname{TPR}, \]

对应 ROC 与对角线 \(\operatorname{FPR}=1-\operatorname{TPR}\) 的交点,越接近 \((0,1)\) 越好。

课件还以 MNIST 比较线性分类器、SVM 和 CNN。每幅图像为 \(28\times28=784\) 像素,训练集60000张、测试集10000张,比较指标是测试集识别错误率。

交叉验证

K 折交叉验证把数据近似均分为 \(K\) 组,轮流以一组作测试集、其余 \(K-1\) 组作训练集,共训练 \(K\) 个模型,再对指标取平均;常取 \(K=10\)。样本很少时可用留一法:每次以一个样本作测试集,其他 \(N-1\) 个样本训练。

思考与探究

  1. SVM 的约束 \(y(w^Tx+b)-1\) 有什么几何意义?它与感知机的损失有何区别与联系?
  2. Softmax 输出可解释为后验概率并用作置信度;SVM 如何给出识别结果的置信度?
  3. 高斯核 SVM 欠拟合时,应怎样调整 \(\gamma\) 与正则化参数 \(C\)

评论