machine-learning-notes
  • 封面
  • 目录
  • 前言
  • 个人前言
  • 机器学习前言
    • 什么是机器学习和模式识别
    • 机器学习的应用
    • 机器学习的流程
    • 不同的机器学习算法对相同数据预测效果不同
    • 快速入门机器学习
    • 机器学习需要参考哪些书
    • 机器学习的学习路径
    • 深度学习的学习路径
    • 互联网机器学习特定岗位所需技能
  • 机器学习面试
  • 数学基础
  • 微积分
    • 泰勒展开
    • e的直观认识
    • 傅里叶变换
    • 希尔伯特空间
  • 线性代数
    • 范数
    • 矩阵求导
    • 特征值
    • 奇异值分解
  • 概率与信息论
    • 综述概率论基本定义
    • 概率论与贝叶斯先验
    • 正态分布
    • 贝叶斯概率
    • 概率符号说明
    • 共轭先验
    • 信息论
  • 数值计算与优化
    • 最小二乘法
    • 等式约束的拉格朗日乘子法
    • 凸优化
      • 凸集和凸函数
      • 凸优化问题
  • 梯度下降算法
    • 随机梯度下降SGD
    • 动量法Momentum
    • 牛顿动量Nesterov
    • AdaGrad
    • RMSprop
    • Adadelta
    • Adam
    • Nadam
    • AMSGrad
    • AdasMax
  • 概率图模型
    • 概率图模型概论
    • 概率图简介
  • 编程基础
  • linux
    • linux常用命令
    • shell
      • 输入输出重定向
  • python
    • python简介
    • python语法
      • 基础语法
      • 数据结构
      • 过程控制
      • 函数
      • 类和对象
      • 文件操作
      • 正则表达式
    • python库
      • numpy
      • pandas
      • scipy
      • matplotlib
      • scikit-learn
    • python应用
      • 排序算法
  • 数据结构与算法
    • 数据结构
    • 算法思想
      • 排序
        • 堆排序
        • 归并排序
        • 快速排序
      • 递归
    • 剑指offer
      • 链表
      • 二叉树
      • 数组
      • 字符串
      • 栈和队列
      • 递归
      • 动态规划
      • 其他
    • leetcode
    • 编程语言
      • c++
  • Hadoop
    • Hadoop简介
    • MapReduce
  • Hive
  • Spark
  • TensorFlow
    • TensorFlow1.0
      • TensorFlow基础
      • TensorFlow基础概念解析
      • TensorFlow机器学习基础
      • Tensorflow分布式架构
    • TensorFlow2.0
  • PyTorch
  • 机器学习
  • 机器学习概论
  • 特征工程
  • 感知机
  • k近邻
  • 朴素贝叶斯
  • 线性模型
    • 最大熵模型
    • 指数族分布与广义线性模型
    • 线性回归
      • Ridge回归(岭回归)
      • Lasso回归
    • Logistic回归-对数几率回归
  • 决策树
  • 支持向量机
    • 线性可分支持向量机与硬间隔最大化
    • 线性支持向量机与软间隔最大化
    • 非线性支持向量机与核函数
    • 序列最小最优化算法SMO
    • SVM总结
  • 集成学习
    • Bagging
      • 随机森林
    • Boosting
      • AdaBoost
      • GradientBoosting
        • GBDT
        • XGBoost
          • XGBoost理论
          • XGBoost实践
    • Stacking
  • 降维
    • PCA主成分分析
    • 流形学习
  • EM算法
  • HMM隐马尔科夫模型
  • CRF条件随机场
  • 聚类
    • k均值聚类
    • 高斯混合模型
  • 主题模型
    • LDA隐狄利克雷分布
  • 知识点
    • 损失函数
    • 负采样
  • 机器学习算法总结
  • 深度学习
  • 深度学习概论
  • ANN人工神经网络
  • 知识点
    • Batch Normalization
  • CNN卷积神经网络
  • 深度学习优化算法
  • RNN循环神经网络
  • LSTM长短期记忆网络
  • GRU门控循环单元
  • GNN图神经网络
    • GNN图神经网络综述
    • GCN图卷积网络
      • GCN图卷积网络初步理解
      • GCN图卷积网络的numpy简单实现
      • GCN图卷积网络本质理解
      • GCN图卷积网络全面理解
      • SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS ICLR2017
  • 神经网络架构搜索
    • Weight-Agnostic-Neural-Networks Google2019
  • 强化学习
  • 强化学习概论
  • 马尔科夫决策过程
  • 动态规划
  • 无模型方法一:蒙特卡洛
  • 无模型方法二:时间差分
  • 无模型方法三:多步自举
  • 函数近似和深度网络
  • 策略梯度算法
  • 深度强化学习
  • 基于模型的强化学习
  • 强化学习前景
  • 自然语言处理
  • 自然语言处理概论
  • 自然语言
  • 语言模型和中文分词
  • word2vec
    • word2vec概述
    • word2vec算法原理
    • word2vec源码分析
    • word2vec实践
  • Seq2Seq模型和Attention机制
  • Self-Attention和Transformer
  • 知识图谱
  • 推荐系统
  • 推荐系统概论
  • 基础知识
  • 进阶知识
    • 机器学习
      • Factorization Machines ICDM2010
    • embedding
      • Network Embedding
        • LINE: Large-scale Information Network Embedding
    • 深度学习
      • DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017
      • DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data CIKM2013
    • 图卷积网络
      • Graph Convolutional Neural Networks for Web-Scale Recommender Systems KDD2018
    • 强化学习
      • DRN基于深度强化学习的新闻推荐模型
  • 业界应用
    • YouTube
      • Deep Neural Networks for YouTube Recommendations RecSys2016
    • Alibaba
      • Learning Tree-based Deep Model for Recommender Systems KDD2018
      • Deep Interest Network for Click-Through Rate Prediction KDD2018
      • DSIN:Deep Session Interest Network for Click-Through Rate Prediction IJCAI2019
Powered by GitBook
On this page
  • 线性支持向量机与软间隔最大化
  • 线性支持向量机
  • 线性支持向量机学习的对偶算法
  • 支持向量
  • 合页损失函数
  • 参考资料

Was this helpful?

  1. 支持向量机

线性支持向量机与软间隔最大化

Previous线性可分支持向量机与硬间隔最大化Next非线性支持向量机与核函数

Last updated 5 years ago

Was this helpful?

线性支持向量机与软间隔最大化

支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机( linear support vector machine in linearly separable case )、线性支持向量机( linear support vector machine)及非线性支持向量机(non-linear support vector machine)。简单模型是复杂模型的基础,也是复杂模型的特殊情况。当训练数据线性可分时,通过硬间隔最大化( hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化( soft margin maximization),也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧(kemel trick)及软间隔最大化,学习非线性支持向量机。

当输入空间为欧氏空间或离散集合、特征空间为希尔伯特空间时,核函数(kernel function)表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧。核方法( kernel method)是比支持向量机更为一般的机器学习方法。

Cortes与Vapnik提出线性支持向童机,Boser、Guyon与Vapnik又引入核技巧,提出非线性支持向量机。

本章按照上述思路介绍3类支持向量机、核函数及一种快速学习算法——序列最小最优化算法(SMO)。

线性支持向量机

线性可分子问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为这时上述方法中的不等式约束并不能成立。怎么才能将它扩展到线性不可分问题呢?这就需要修改硬间隔最大化,使其成为软间隔最大化。

假设给定一个特征空间上的训练数据集

T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)}

其中,xi∈X=Rnx_i\in X=R^nxi​∈X=Rn,yi∈Y={−1,+1}y_i\in Y=\{-1,+1\}yi​∈Y={−1,+1},i=1,2,...,Ni=1,2,...,Ni=1,2,...,N,xix_ixi​为第i个特征向量,也称为实例,yiy_iyi​为xix_ixi​的类标记。再假设训练数据集不是线性可分的。通常情况是,训练数据中有一些离群点,将这些离群点除去后,剩下大部分的样本组成的集合是线性可分的。

线性不可分意味着某些样本点是不能满足线性可分中的函数间隔大于等于1的约束条件的。为了解决这个问题,可以对每个样本点(xi,yi)(x_i,y_i)(xi​,yi​)引进一个松弛变量ξi⩾0\xi_i\geqslant 0ξi​⩾0,使函数间隔加上松弛变量大于等于1。这样,约束条件变为

yi(w⋅xi+b)⩾1−ξiy_i(w\cdot x_i+b)\geqslant1-\xi_iyi​(w⋅xi​+b)⩾1−ξi​

上式可以这么理解:ξi\xi_iξi​是数据点到其分隔边界的函数距离,而1−ξi1-\xi_i1−ξi​则就是数据点到分界面的函数距离了。原来要求的是数据点到分界面的函数距离要大于等于1,现在就放宽到了数据点到分界面函数距离大于等于1-ξi\xi_iξi​。这其实是对异常离群点的一种容忍。

同时,对每一个松弛变量ξi\xi_iξi​,支付一个代价ξi\xi_iξi​。原来的目标函数变成了现在的

12∣∣w∣∣2+C∑i=1Nξi\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i21​∣∣w∣∣2+Ci=1∑N​ξi​

这里,C>0称为惩罚函数,一般由应用问题决定,C值大时对误分类的惩罚更大,C值小时对误分类的惩罚减小。最小化目标函数(上式)包含了两层含义:

  • 使

    12∣∣w∣∣2\frac{1}{2}||w||^221​∣∣w∣∣2

    尽可能小,即间隔尽量大;

  • 同时使误分类点的个数尽可能小,

    而C是调和两者的系数。

有了上面的思路,可以和训练数据集线性可分时一样来考虑训练数据集不可分时的线性支持向量机学习问题。相应于硬间隔最大化,它称为软间隔最大化。

线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题):

minw,b,ξ12∣∣w∣∣2+C∑i=1Nξis.t.  yi(w⋅xi+b)⩾1−ξi, i=1,2,...,N   ξi⩾0, i=1,2,...,N\begin{aligned} &\mathop{\text{min}}_{w,b,\xi}\quad \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i\\ &\text{s.t.}\ \ \quad y_i(w\cdot x_i+b)\geqslant 1-\xi_i,\ i=1,2,...,N\\ &\ \ \ \quad \quad \xi_i\geqslant 0,\ i=1,2,...,N\\ \end{aligned}​minw,b,ξ​21​∣∣w∣∣2+Ci=1∑N​ξi​s.t.  yi​(w⋅xi​+b)⩾1−ξi​, i=1,2,...,N   ξi​⩾0, i=1,2,...,N​

原始问题是一个凸二次规划问题,因而关于(w,b,ξ)(w,b,\xi)(w,b,ξ)的解是存在的。可以证明w的解是唯一的,但b的解可能不唯一,而是存在于一个区间。

设原始问题的解是w∗,b∗w^*,b^*w∗,b∗,于是可以得到分离超平面w∗⋅x+b∗=0w^*\cdot x+b^*=0w∗⋅x+b∗=0及分类决策函数f(x)=sign(w∗⋅x+b∗)f(x)=sign(w^*\cdot x+b^*)f(x)=sign(w∗⋅x+b∗)。称这样的模型为训练样本不可分时的线性支持向量机,简称线性支持向量机。显然,线性支持向量机包含线性可分支持向量机。由于现实中训练数据集往往是不可分的,线性支持向量机具有更广泛的适用性。

下面给出线性支持向量机的定义:

对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大问题(上述原始问题),得到的分离超平面为

w∗⋅x+b∗=0w^*\cdot x+b^*=0w∗⋅x+b∗=0

以及相应的分类决策函数

f(x)=sign(w∗⋅x+b∗)f(x)=\text{sign}(w^*\cdot x+b^*)f(x)=sign(w∗⋅x+b∗)

称为线性支持向量机。

线性支持向量机学习的对偶算法

原始问题的对偶问题是

minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=0   0⩽αi⩽C, i=1,2,...,N\begin{aligned} &\mathop{\text{min}}_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ &\text{s.t.}\ \quad \sum_{i=1}^N\alpha_iy_i=0\\ &\ \ \ \quad \quad 0\leqslant\alpha_i\leqslant C,\ i=1,2,...,N\\ \end{aligned}​minα​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​s.t. i=1∑N​αi​yi​=0   0⩽αi​⩽C, i=1,2,...,N​

下面我们来具体说明上述对偶问题是怎么得出的:

原始最优化问题的拉格朗日函数是

L(w,b,ξ,α,μ)=12∣∣w∣∣2+C∑i=1Nξi−∑i=1Nαi(yi(w⋅xi+b)−1+ξi)−∑i=1NμiξiL(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w\cdot x_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i\xi_iL(w,b,ξ,α,μ)=21​∣∣w∣∣2+Ci=1∑N​ξi​−i=1∑N​αi​(yi​(w⋅xi​+b)−1+ξi​)−i=1∑N​μi​ξi​

其中,

αi⩾0,μi⩾0\alpha_i\geqslant0,\quad \mu_i\geqslant0αi​⩾0,μi​⩾0

对偶问题是拉格朗日函数的极大极小问题。

首先求L(w,b,ξ,α,μ)L(w,b,\xi,\alpha,\mu)L(w,b,ξ,α,μ)对w,b,ξw,b,\xiw,b,ξ的极小,由

▽wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0▽bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0▽ξiL(w,b,ξ,α,μ)=C−αi−μi=0\begin{aligned} &\bigtriangledown_wL(w,b,\xi,\alpha,\mu)=w-\sum_{i=1}^N\alpha_iy_ix_i=0\\ &\bigtriangledown_bL(w,b,\xi,\alpha,\mu)=-\sum_{i=1}^N\alpha_iy_i=0\\ &\bigtriangledown_{\xi_i}L(w,b,\xi,\alpha,\mu)=C-\alpha_i-\mu_i=0 \end{aligned}​▽w​L(w,b,ξ,α,μ)=w−i=1∑N​αi​yi​xi​=0▽b​L(w,b,ξ,α,μ)=−i=1∑N​αi​yi​=0▽ξi​​L(w,b,ξ,α,μ)=C−αi​−μi​=0​

得

w=∑i=1Nαiyixi∑i=1Nαiyi=0C−αi−μi=0\begin{aligned} &w=\sum_{i=1}^N\alpha_iy_ix_i\\ &\sum_{i=1}^N\alpha_iy_i=0\\ &C-\alpha_i-\mu_i=0\\ \end{aligned}​w=i=1∑N​αi​yi​xi​i=1∑N​αi​yi​=0C−αi​−μi​=0​

将上式代入上面的拉格朗日函数,得

minw,b,ξL(w,b,ξ,α,μ)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi\mathop{\text{min}}_{w,b,\xi}L(w,b,\xi,\alpha,\mu)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_iminw,b,ξ​L(w,b,ξ,α,μ)=−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​

再对极小(上式)求α\alphaα的极大,即得对偶问题:

maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαis.t. ∑i=1Nαiyi=0   C−αi−μi=0   αi⩾0   μi⩾0, i=1,2,...,N\begin{aligned} &\mathop{\text{max}}_{\alpha}\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i\\ &\text{s.t.}\ \quad \sum_{i=1}^N\alpha_iy_i=0\\ &\ \ \ \quad \quad C-\alpha_i-\mu_i=0\\ &\ \ \ \quad \quad \alpha_i\geqslant0\\ &\ \ \ \quad \quad \mu_i\geqslant0,\ i=1,2,...,N\\ \end{aligned}​maxα​−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​s.t. i=1∑N​αi​yi​=0   C−αi​−μi​=0   αi​⩾0   μi​⩾0, i=1,2,...,N​

拉格朗日对偶的重要作用是将w的计算提前并消除w,使得优化函数变为拉格朗日乘子的单一参数优化问题。

将对偶最优化问题(上式)进行变换:利用等式约束(上式第二项约束)消去μi\mu_iμi​,从而只留下变量αi\alpha_iαi​,并将约束(上式后三项约束)写成

0⩽αi⩽C0\leqslant\alpha_i\leqslant C0⩽αi​⩽C

下面具体来说明上式不等式是怎么得到的:

C−αi−μi=0⇒μi=C−αiui⩾0⇒C−αi⩾0⇒αi⩽Cαi⩾0⇒0⩽αi⩽C\begin{aligned} &C-\alpha_i-\mu_i=0 \Rightarrow \mu_i=C-\alpha_i\\ &u_i\geqslant0 \Rightarrow C-\alpha_i\geqslant0 \Rightarrow \alpha_i\leqslant C\\ &\alpha_i\geqslant0 \Rightarrow 0\leqslant \alpha_i\leqslant C \end{aligned}​C−αi​−μi​=0⇒μi​=C−αi​ui​⩾0⇒C−αi​⩾0⇒αi​⩽Cαi​⩾0⇒0⩽αi​⩽C​

再通过取负,将对目标函数求极大转换为求极小,于是得到对偶问题

minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=0   0⩽αi⩽C, i=1,2,...,N\begin{aligned} &\mathop{\text{min}}_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ &\text{s.t.}\ \quad \sum_{i=1}^N\alpha_iy_i=0\\ &\ \ \ \quad \quad 0\leqslant\alpha_i\leqslant C,\ i=1,2,...,N\\ \end{aligned}​minα​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​s.t. i=1∑N​αi​yi​=0   0⩽αi​⩽C, i=1,2,...,N​

可以通过求解对偶问题而得到原始问题的解(w∗,b∗)(w^*,b^*)(w∗,b∗),进而确定分离超平面和决策函数。为此,我们以定理的形式叙述原始问题的最优解(w∗,b∗)(w^*,b^*)(w∗,b∗)和对偶问题的最优解α∗\alpha^*α∗的关系。

定理:原始问题的最优解(w∗,b∗)(w^*,b^*)(w∗,b∗)和对偶问题的最优解的α∗\alpha^*α∗关系:

设

α∗={α1∗,α2∗,...,αN∗}\alpha^*=\{\alpha_1^*, \alpha_2^*, ..., \alpha_N^*\}α∗={α1∗​,α2∗​,...,αN∗​}

是上述对偶问题的一个解,若存在α∗\alpha^*α∗的一个分量αj∗\alpha_j^*αj∗​,0<αj∗<C0<\alpha_j^*<C0<αj∗​<C,则原始问题的解(w∗,b∗)(w^*,b^*)(w∗,b∗)可按下式求得:

w∗=∑i=1Nαi∗yixib∗=yj−∑i=1Nyiαi∗(xi⋅xj)\begin{aligned} &w^*=\sum_{i=1}^N\alpha_i^*y_ix_i\\ &b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_j)\\ \end{aligned}​w∗=i=1∑N​αi∗​yi​xi​b∗=yj​−i=1∑N​yi​αi∗​(xi​⋅xj​)​

证明:

原始问题是凸二次规划问题,满足强对偶问题(凸函数+Slater条件),所以原函数问题和对偶问题等价,则解满足KKT条件。即得

▽wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0▽bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0▽ξiL(w,b,ξ,α,μ)=C−αi−μ=0αi∗(yi(w∗⋅xi+b∗)−1+ξi)=0μi∗ξi∗=0yi(w∗⋅xi+b∗)−1+ξi∗⩾0ξi∗⩾0αi∗⩾0μi∗⩾0,i=1,2,...,N\begin{aligned} &\bigtriangledown_wL(w,b,\xi,\alpha,\mu)=w-\sum_{i=1}^N\alpha_iy_ix_i=0\\ &\bigtriangledown_bL(w,b,\xi,\alpha,\mu)=-\sum_{i=1}^N\alpha_iy_i=0\\ &\bigtriangledown_{\xi_i}L(w,b,\xi,\alpha,\mu)=C-\alpha_i-\mu=0\\ &\alpha_i^*(y_i(w^*\cdot x_i+b^*)-1+\xi_i)=0\\ &\mu_i^*\xi_i^*=0\\ &y_i(w^*\cdot x_i+b^*)-1+\xi_i^*\geqslant 0\\ &\xi_i^*\geqslant0\\ &\alpha_i^*\geqslant0\\ &\mu_i^*\geqslant 0,\quad i=1,2,...,N\\ \end{aligned}​▽w​L(w,b,ξ,α,μ)=w−i=1∑N​αi​yi​xi​=0▽b​L(w,b,ξ,α,μ)=−i=1∑N​αi​yi​=0▽ξi​​L(w,b,ξ,α,μ)=C−αi​−μ=0αi∗​(yi​(w∗⋅xi​+b∗)−1+ξi​)=0μi∗​ξi∗​=0yi​(w∗⋅xi​+b∗)−1+ξi∗​⩾0ξi∗​⩾0αi∗​⩾0μi∗​⩾0,i=1,2,...,N​

解释下上式所述的KKT条件:前三项是一阶偏导等于零,第四五项是互补松弛条件(强对偶性决定的),第六七项是原始问题的约束条件,最后两项是对偶问题的约束条件。

由上式KKT条件中的第一项可知,原始问题的解中的第一项成立,即

w∗=∑i=1Nαi∗yixiw^*=\sum_{i=1}^N\alpha_i^*y_ix_iw∗=i=1∑N​αi∗​yi​xi​

再由KKT的互补松弛条件(第四五项)得,若存在αj∗\alpha_j^*αj∗​,0<αj∗<C0<\alpha_j^*<C0<αj∗​<C,则

yi(w∗⋅xi+b∗)−1=0y_i(w^*\cdot x_i+b^*)-1=0yi​(w∗⋅xi​+b∗)−1=0

。这里具体是怎么得到的呢?

由互补松弛条件的第一项可知,当αj∗>0\alpha_j^*>0αj∗​>0时,该项括号内才等于零,即

yi(w∗⋅xi+b∗)−1+ξi∗=0y_i(w^*\cdot x_i+b^*)-1+\xi_i^*=0yi​(w∗⋅xi​+b∗)−1+ξi∗​=0

里面还有个ξi∗\xi_i^*ξi∗​未知,那怎么消去这个ξi∗\xi_i^*ξi∗​呢?由互补松弛条件的第二项可知,当μi∗>0\mu_i^*>0μi∗​>0时,ξi∗=0\xi_i^*=0ξi∗​=0,这时候就能消去ξi∗\xi_i^*ξi∗​了。那么当μi∗>0\mu_i^*>0μi∗​>0时,αj∗\alpha_j^*αj∗​必须满足什么条件呢?或者说,当αj∗\alpha_j^*αj∗​满足什么条件时,才能保证μi∗>0\mu_i^*>0μi∗​>0?我们知道,对偶问题的条件中有一个C−αi−μi=0C-\alpha_i-\mu_i=0C−αi​−μi​=0,即μi=C−αi>0\mu_i=C-\alpha_i>0μi​=C−αi​>0,则αi<C\alpha_i<Cαi​<C,这时,上式中的ξi∗=0\xi_i^*=0ξi∗​=0。也就是说,当0<αj∗<C0<\alpha_j^*<C0<αj∗​<C时,ξi∗=0\xi_i^*=0ξi∗​=0,则有

yi(w∗⋅xi+b∗)−1=0y_i(w^*\cdot x_i+b^*)-1=0yi​(w∗⋅xi​+b∗)−1=0

即由此即得原始问题的解中的第二项(注意上式中1可以写成yi2y_i^2yi2​,然后可消去yiy_iyi​,求得b∗b^*b∗),即

b∗=yj−∑i=1Nyiαi∗(xi⋅xj)b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_j)b∗=yj​−i=1∑N​yi​αi∗​(xi​⋅xj​)

。由此定理可知,分离超平面可以写成

∑i=1Nαi∗yi(x⋅xi)+b∗=0\sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*=0i=1∑N​αi∗​yi​(x⋅xi​)+b∗=0

分类决策函数可以写成

f(x)=sign(∑i=1Nαi∗yi(x⋅xi)+b∗)f(x)=\text{sign}\left( \sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^* \right)f(x)=sign(i=1∑N​αi∗​yi​(x⋅xi​)+b∗)

上式为线性支持向量机的对偶形式。

综合前面的结果,有下面的算法。

线性支持向量机学习算法

输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},其中,xi∈X=Rnx_i\in X=R^nxi​∈X=Rn,yi∈Y={−1,+1}y_i\in Y=\{-1,+1\}yi​∈Y={−1,+1},i=1,2,...,Ni=1,2,...,Ni=1,2,...,N;

输出:分离超平面和分类决策函数。

(1)选择惩罚参数C>0,构造并求解凸二次规划问题(对偶问题)

minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=0   0⩽αi⩽C, i=1,2,...,N\begin{aligned} &\mathop{\text{min}}_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ &\text{s.t.}\ \quad \sum_{i=1}^N\alpha_iy_i=0\\ &\ \ \ \quad \quad 0\leqslant\alpha_i\leqslant C,\ i=1,2,...,N\\ \end{aligned}​minα​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​s.t. i=1∑N​αi​yi​=0   0⩽αi​⩽C, i=1,2,...,N​

求得最优解

α∗={α1∗,α2∗,...,αN∗}\alpha^*=\{\alpha_1^*, \alpha_2^*, ..., \alpha_N^*\}α∗={α1∗​,α2∗​,...,αN∗​}

(2)计算原问题的最优解的参数w∗w^*w∗和b∗b^*b∗。

w∗=∑i=1Nαi∗yixiw^*=\sum_{i=1}^N\alpha_i^*y_ix_iw∗=i=1∑N​αi∗​yi​xi​

选择α∗\alpha^*α∗的一个满足条件0<αj∗<C0<\alpha_j^*<C0<αj∗​<C的分量αj∗\alpha_j^*αj∗​ ,计算

b∗=yj−∑i=1Nyiαi∗(xi⋅xj)b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_j)b∗=yj​−i=1∑N​yi​αi∗​(xi​⋅xj​)

(3)求得分离超平面和分类决策函数

分离超平面:

w∗⋅x+b∗=0w^*\cdot x+b^*=0w∗⋅x+b∗=0

分类决策函数:

f(x)=sign(w∗⋅x+b∗)f(x)=\text{sign}(w^*\cdot x+b^*)f(x)=sign(w∗⋅x+b∗)

上述步骤(2)中,对任一符合条件0<αj∗<C0<\alpha_j^*<C0<αj∗​<C的αj∗\alpha_j^*αj∗​,按照该算法求b∗b^*b∗的公式都可以求出b∗b^*b∗,但是由于原始问题对b的解并不唯一,所以实际计算时,可以取在所有符合条件的样本点上的平均值。

支持向量

在线性不可分的情况下,将对偶问题的解

α∗=(a1∗,α2∗,...,αN∗)T\alpha^*=(a_1^*,\alpha_2^*,...,\alpha_N^*)^Tα∗=(a1∗​,α2∗​,...,αN∗​)T

中对应于αi∗>0\alpha_i^*>0αi∗​>0的样本点(xi,yi)(x_i,y_i)(xi​,yi​)的实例xix_ixi​称为支持向量(软间隔的支持向量)。如下图所示,这时的支持向量要比线性可分时的情况更复杂一些。图中,分离超平面由实线表示,间隔边界由虚线表示,正例点由“。”表示,负例点由“x”表示。图中还标出了实例xi到间隔边界的距离

ξi∣∣w∣∣\frac{\xi_i}{||w||}∣∣w∣∣ξi​​

软间隔的支持向量xix_ixi​或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。

  • 若αi∗<C\alpha_i^*<Cαi∗​<C,则ξi=0\xi_i=0ξi​=0,支持向量恰好落在间隔边界上;

  • 若αi∗=C\alpha_i^*=Cαi∗​=C,

    • 0<ξi<10<\xi_i<10<ξi​<1,则分类正确,xix_ixi​在间隔边界与分离超平面之间;

    • ξi=1\xi_i=1ξi​=1,则xix_ixi​在分离超平面上;

    • ξi>1\xi_i>1ξi​>1,则xix_ixi​位于分离超平面误分一侧。

这里解释下为什么,由上一节我们知道

C−αi∗−μi∗=0μi∗ξi∗=0\begin{aligned} &C-\alpha_i^*-\mu_i^*=0\\ &\mu_i^*\xi_i^*=0 \end{aligned}​C−αi∗​−μi∗​=0μi∗​ξi∗​=0​

所以,当αi∗<C\alpha_i^*<Cαi∗​<C,则μi∗>0\mu_i^*>0μi∗​>0,所以ξi=0\xi_i=0ξi​=0,即支持向量恰好落在间隔边界上;而当αi∗=C\alpha_i^*=Cαi∗​=C时,μi∗=0\mu_i^*=0μi∗​=0,所以ξi>0\xi_i>0ξi​>0。

合页损失函数

对于线性支持向量机学习来说,其模型为分离超平面w∗⋅x+b∗=0w^*\cdot x+b^*=0w∗⋅x+b∗=0及决策函数f(x)=sign(w∗⋅x+b∗)f(x)=sign(w^*\cdot x+b^*)f(x)=sign(w∗⋅x+b∗),其学习策略为软间隔最大化,学习算法为图二次规划。

线性支持向量机学习还有另外一种解释,就是最小化以下目标函数:

∑i=1N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2\sum_{i=1}^N\left[ 1-y_i(w\cdot x_i+b) \right]_++\lambda||w||^2i=1∑N​[1−yi​(w⋅xi​+b)]+​+λ∣∣w∣∣2

目标函数的第一项是经验损失是或经验风险,函数

L(y(w⋅x+b))=[1−y(w⋅x+b)]+L(y(w\cdot x+b))=[1-y(w\cdot x+b)]_+L(y(w⋅x+b))=[1−y(w⋅x+b)]+​

称为合页损失函数(hinge loss function)。下标“+”表示以下取正值的函数。

 [z]+={z,z>00,z⩽0\begin{aligned} \ [z]_+= \left\{\begin{matrix} z,\quad z>0\\ 0,\quad z\leqslant0 \end{matrix}\right. \end{aligned} [z]+​={z,z>00,z⩽0​​

这就是说,当样本点(xi,yi)(x_i,y_i)(xi​,yi​)被正确分类且间隔函数(确信度)yi(w⋅xi+b)>1y_i(w\cdot x_i+b)>1yi​(w⋅xi​+b)>1时,损失是0,否则损失是1−yi(w⋅xi+b)1-y_i(w\cdot x_i+b)1−yi​(w⋅xi​+b),注意到在上图中的实例点x4x_4x4​被正确分类,但损失不是0。目标函数的第2项是系数为λ\lambdaλ的L2L_2L2​范数,是正则化项。

定理:线性支持向量机原始最优化问题 等价于 合页损失+正则化的最优化问题

线性支持向量机原始最优化问题

minw,b,ξ12∣∣w∣∣2+C∑i=1Nξis.t.  yi(w⋅xi+b)⩾1−ξi, i=1,2,...,N   ξi⩾0, i=1,2,...,N\begin{aligned} &\mathop{\text{min}}_{w,b,\xi}\quad \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i\\ &\text{s.t.}\ \ \quad y_i(w\cdot x_i+b)\geqslant 1-\xi_i,\ i=1,2,...,N\\ &\ \ \ \quad \quad \xi_i\geqslant 0,\ i=1,2,...,N\\ \end{aligned}​minw,b,ξ​21​∣∣w∣∣2+Ci=1∑N​ξi​s.t.  yi​(w⋅xi​+b)⩾1−ξi​, i=1,2,...,N   ξi​⩾0, i=1,2,...,N​

等价于合页损失+正则化的最优化问题

minw,b ∑i=1N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2\mathop{\text{min}}_{w,b}\ \sum_{i=1}^N\left[ 1-y_i(w\cdot x_i+b) \right]_++\lambda||w||^2minw,b​ i=1∑N​[1−yi​(w⋅xi​+b)]+​+λ∣∣w∣∣2

证明:令

[1−yi(w⋅xi+b)]+=ξi\left[ 1-y_i(w\cdot x_i+b) \right]_+=\xi_i[1−yi​(w⋅xi​+b)]+​=ξi​

,则ξi⩾0\xi_i\geqslant 0ξi​⩾0,原始最优化问题约束条件的第二项成立。

由上式,

  • 当1−yi(w⋅xi+b)>01-y_i(w\cdot x_i+b)>01−yi​(w⋅xi​+b)>0时,有yi(w⋅xi+b)=1−ξiy_i(w\cdot x_i+b)=1-\xi_iyi​(w⋅xi​+b)=1−ξi​;

  • 当1−yi(w⋅xi+b)⩽01-y_i(w\cdot x_i+b)\leqslant 01−yi​(w⋅xi​+b)⩽0时,ξi=0\xi_i=0ξi​=0,有yi(w⋅xi+b)⩾1−ξiy_i(w\cdot x_i+b)\geqslant 1-\xi_iyi​(w⋅xi​+b)⩾1−ξi​

故原始最优化问题约束条件的第一项成立。

于是w,b,ξiw,b,\xi_iw,b,ξi​满足原始最优化问题的约束条件。

所以合页损失+正则化最优化问题可写成

minw,b∑i=1Nξi+λ∣∣w∣∣2\mathop{\text{min}}_{w,b}\sum_{i=1}^N\xi_i+\lambda||w||^2minw,b​i=1∑N​ξi​+λ∣∣w∣∣2

若取λ=12C\lambda=\frac{1}{2C}λ=2C1​,则

minw,b1C(12∣∣w∣∣2+C∑i=1Nξi)\mathop{\text{min}}_{w,b} \frac{1}{C}\left( \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \right)minw,b​C1​(21​∣∣w∣∣2+Ci=1∑N​ξi​)

与原始最优化问题等价。

反之,也可将原始最优化问题表示成合页损失+正则化的最优化问题。

合页损失函数的图形如上图所示,横轴是函数间隔y(w⋅x+b)y(w\cdot x+b)y(w⋅x+b),纵轴是损失。由于函数像一个合页,故名合页损失函数。

图中还画出0-1损失函数,可以认为它是二类问题的真正的损失函数,而合页损失函数是0-1损失函数的上界。由于0-1损失函数不是连续可导的,直接优化由其构成的目标函数比较困难,可以认为线性支持向量机是优化由0-1损失函数的上界(合页损失函数)构成的目标函数。这时的上界损失函数又称为代理损失函数。

上图中虚线显示的是感知机的损失函数

[−yi(w⋅xi+b)]+\left[ -y_i(w\cdot x_i+b) \right]_+[−yi​(w⋅xi​+b)]+​

。这时,当样本点(xi,yi)(x_i,y_i)(xi​,yi​)被正确分类时,损失是0,否则损失是−yi(w⋅xi+b)-y_i(w\cdot x_i+b)−yi​(w⋅xi​+b)。相比之下,合页损失函数不仅要分类正确,而且确信度要足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。这就是SVM和感知机分本质区别!

参考资料

  • 《统计学习方法》李航

本章的结构和大部分内容均参考此书对应章节。

返回顶层目录
返回上层目录
线性支持向量机
线性支持向量机学习的对偶算法
支持向量
合页损失函数
meaning-of-xi
support-vector-of-soft-interval
hinge-loss-function