SVM学习笔记

基础

本文基本上参考《李航-统计学习方法》进行学习、排版。

  1. 二类分类模型;
  2. 基本模型是定义在特征空间上、间隔最大的线性分类器;
  3. 学习策略是间隔最大化,可形式化为求解凸二次规划问题,等价于正则化的损失函数最小化问题;
  4. 和感知机有何区别:SVM是间隔最大化;
  5. 模型细分类:
    (1)线性可分支持向量机:数据线性可分时,通过硬间隔最大化,学习线性上分类的SVM。
    (2)线性支持向量机(软间隔支持向量机):数据近似线性可分时,通过软间隔最大化,学习线性SVM。
    (3)非线性支持向量机:数据线性不可分,通过核技巧(kernal) 以及软间隔最大化,学习非线性的SVM。
  6. 核函数(kernal)
    输入空间为欧氏空间(多维),或者离散集合,特征空间为希尔伯特空间(完备性)时,核函数表示了,从输入空间映射到特征空间得到的特征向量之间的内积。(之后再解释)
  7. 最开始应该如何定义数据集和系数的维度?笔者不太理解《李航-统计学习方法》中,在对偶问题中,是否直接将xix_i视作一个点?
    笔者的理解:
    单个点计算情况
yiy_i (ww xix_i + bb )
1*1 1*d d*1 1*1

Y=[y1y2...yn]Y= \left[ \begin{matrix} y_1 \\ y_2 \\ ...\\ y_n\\ \end{matrix} \right]

ω=[ω1ω2...ωd]\omega= \left[ \begin{matrix} \omega_1 \\ \omega_2 \\ ...\\ \omega_d\\ \end{matrix} \right]

xi=[xi,1xi,2...xi,d]x_i= \left[ \begin{matrix} x_{i,1} \\ x_{i,2} \\ ...\\ x_{i,d} \\ \end{matrix} \right]

X=[x1Tx2T...xnT]X= \left[ \begin{matrix} x_{1}^{T} \\ x_{2}^{T} \\ ...\\ x_{n}^{T} \\ \end{matrix} \right]

7.1 线性可分SVM

7.1.1 线性可分SVM定义

假设给定一个特征空间上的训练数据集为:
T={(x1,y1),...,(xi,yi),...,(xN,yN)} T= \{ (x_1,y_1),...,(x_i,y_i),...,(x_N,y_N) \}

yiy=[1,+1]y_i \in y=[-1,+1]

其中,xixRnx_i \in x \equiv R^n 称作第i个特征向量,或者实例(理解为样本点)。

定义7.1(线性可分SVM): 这里是引用《李航-统计学习方法》
给定的线性可分训练数据集,通过间隔最大化或者等价求解 —> 凸二次规划问题,学习到模型即分离超平面,以及判断函数:
(7.1)wx+b=0f(x)=sign(wx+b) w^* * x+b=0 \\ \tag{7.1} f(x) = sign(w^* * x+b)

7.1.2 函数间隔和集合间隔

函数间隔概念:分类准确度存在确定程度,在确定wx+b=0w^* * x+b=0 的超平面之后,能够得到目标点距离超平面的距离,距离越远,说明判断的确信程度更高。利用变量y(wx+b)y(w^* * x+b)来表示正确性和确信程度。

定义7.2(函数间隔,有hat): 这里是引用《李航-统计学习方法》
给定的数据集T以及超平面(w,b)(w,b),定义样本点和超平面的函数间隔为
(7.3)γi^=yi(wxi+b) \hat{\gamma_{i}} = y_i * (w* x_i + b) \tag{7.3}
此外,定义超平面(w,b)(w,b)关于训练数据集T的函数间隔为超平面关于所有样本点的函数间隔的最小值【也就是,最靠近】
(7.4)γ^=minγi^ \hat{\gamma} = min \hat{\gamma_{i}} \tag{7.4}

定义7.3(几何间隔,无hat): 这里是引用《李航-统计学习方法》
由于ww的值对于距离有影响,所以需要进行规范化,使得它的范数为1。如果w=1||w||=1则两种间隔相同。
(7.5)γi=yi(wwxi+bw) {\gamma_i} = y_i * (\frac{w}{||w||}*x_i + \frac{b}{||w||} ) \tag{7.5}
类推,超平面关于关于训练数据集T的几何间隔为超平面关于所有样本点的几何间隔的最小值【也就是,最靠近】
(7.6)γ=minγi {\gamma} = min {\gamma_{i}} \tag{7.6}

7.1.3 间隔最大化(学习策略)

直观解释:找到“几何间隔”最大化的超平面,以达到最大的确信程度来进行分类。(尚未涉及可能出现分类混杂于彼此的样本小现象)

  1. 最大间隔分离超平面
    maxw,b γsubject to γi^=yi(wwxi+bw)γ^=minγi^ \max_{w,b}\ \gamma \\ subject \ to \ \hat{\gamma_i} = y_i * (\frac{w}{||w||}*x_i + \frac{b}{||w||} ) \\ \hat{\gamma} = min \hat{\gamma_{i}}
    由于几何间隔的“地板”为γ\gamma,然后再最大化这个指标,写作:
    (7.10)maxw,b  γs.t. yi(wwxi+bw)γ \max_{w,b}\ \ \gamma \\ s.t. \ y_i * (\frac{w}{||w||}*x_i + \frac{b}{||w||} ) \geq {\gamma} \tag{7.10}
    写成函数间隔(带hat)的形式,可能存在λ\lambda使得距离进行拉伸,
    λw,λb>λγ\lambda w ,\lambda b --> \lambda \gamma,所以取γ=1\gamma = 1
    重新写最优化问题:
    minw,b 12w2s.t. yi(wxi+b)10, i=1,2,...,N \min_{w,b}\ \frac{1}{2}||w||^2 \\ s.t. \ y_i(w*x_i + b) - 1 \geq 0, \ i=1,2,...,N
    求解之后,得到:超平面+分类决策函数

  2. 最大间隔分离超平面的存在性及唯一性
    存在性:数据集线性可分,而且目标函数有下界,因此有解。而且,如果w=0w=0则无法单纯依靠系数bb得到分类,因此解满足w0w \neq 0
    唯一性:分别证明ww以及bb
    (1)证明ww
    假设有两个ww符合要求,即(w1,b1)(w_1,b_1)以及(w2,b2)(w_2,b_2)
    因为取最优的最小值,得到w1=w2=const||w_1||=||w_2||=const
    w=w1+w22w = \frac{w_1 + w_2}{2}以及b=b1+b22b = \frac{b_1 + b_2}{2},则没法达到最小值,有cwc \leq ||w||
    依靠模的计算,有w12w1+12w2=c||w|| \leq \frac{1}{2}||w_1|| + \frac{1}{2}||w_2|| = c
    (夹逼)因此有w=12w1+12w2||w|| = \frac{1}{2}||w_1|| + \frac{1}{2}||w_2||w1,w2w_1,w_2角度为0,方向相同,w1=λw2,λ=1w_1 = \lambda w_2, |\lambda|=1λ\lambda取-1时,则w=0w=0不满足存在性,应该取1,则有w1=w2w_1 = w_2
    (2)证明bb

7.1.4 学习的对偶算法

笔者疑问:对偶问题求解相比原始问题有何优势?

引子1:拉格朗日

  1. 原始问题:各式子均可微
    minxRnf(x)s.t. ci(x)0hj(x)=0 \min_{x \in R^n}{f(x)} \\ s.t. \ {c_i(x) \leq 0} \\ h_j(x) = 0
  2. 引进拉格朗日函数:αi0\alpha_i \geq 0
    L(x,α,β)=f(x)+i=1kαici(x)+i=1lβjhj(x) L(x,\alpha, \beta) = f(x) + \sum_{i=1}^{k}{\alpha_i c_{i}(x)} + \sum_{i=1}^{l}{\beta_j h_{j}(x)}
    引入 xx的函数:注意max底下并没有x,说明其中的f(x)f(x)项并没有起到最大化效果。pp表示原始问题。
    θP(x)=maxα,β;α0L(x,α,β) \theta_P(x) = \max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)}
    换言之:
    假设xx引发两个条件,即存在i,ji,j使得ci(x)0,hj(x)=0c_i(x) \leq 0 ,h_j(x) = 0无法成立,因为αi,βj>+\alpha_i, \beta_j -> +\infty
    maxα,β;α0i=1kαici(x)=+maxα,β;α0i=1lβjhj(x)=+\max_{\alpha, \beta; \alpha \geq 0} \sum_{i=1}^{k}{\alpha_i c_{i}(x)} = +\infty \\ \max_{\alpha, \beta; \alpha \geq 0} \sum_{i=1}^{l}{\beta_j h_{j}(x)} = +\infty
    因此有:
    θP(x)=maxα,β;α0L(x,α,β)={f(x),ConditionsSatisfied+,NotSatisfied\theta_P(x) = \max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)}= \begin{cases} f(x), Conditions Satisfied\\ +\infty, NotSatisfied \\ \end{cases}
  3. 考虑原始问题minxRnf(x)\min_{x \in R^n}{f(x)} 则有“拉格朗日极小极大问题”:
    minxRnf(x)=minxRnθP(x)=minxRnmaxα,β;α0L(x,α,β)\min_{x \in R^n}{f(x)}=\min_{x \in R^n}{\theta_P(x) }=\min_{x\in R^n}\max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)}
  4. 原始问题的值:p=minxRnθP(x)p^* = \min_{x \in R^n}{\theta_P(x) }

引子2:拉格朗日对偶问题

  1. “拉格朗日极大极小问题”(min,maxmin,max的下标一样需要跟进):
    maxα,β;α0θD(α,β)=maxα,β;α0minxRnL(x,α,β)\max_{\alpha, \beta; \alpha \geq 0 }{\theta_D(\alpha, \beta) }=\max_{\alpha, \beta; \alpha \geq 0} \min_{x \in R^n}{L(x,\alpha,\beta)}
    对偶问题的值:d=maxα,β;α0θD(α,β)d^* = \max_{\alpha, \beta; \alpha \geq 0 }{\theta_D(\alpha, \beta) }
  2. 对偶问题和原始问题的关系:
    (1)
    θD(α,β)=minxRnL(x,α,β)L(x,α,β)maxα,β;α0L(x,α,β)=θP(x)\theta_D(\alpha, \beta) = \min_{x \in R^n}{L(x,\alpha,\beta)} \leq L(x,\alpha,\beta) \\ \leq \max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)} = \theta_P(x)
    即有,θD(α,β)θP(x)\theta_D(\alpha, \beta) \leq \theta_P(x)
    所以两者的最优值有大小关系,d=maxα,β;α0θD(α,β)minxRnθP(x)=pd^* = \max_{\alpha, \beta; \alpha \geq 0 }{\theta_D(\alpha, \beta) } \leq \min_{x \in R^n}{\theta_P(x) }=p^*

(2)xx^*是原始问题的解,α,β\alpha^*,\beta^*是对偶问题的解
<— 充分必要条件 —>
KKT条件(图片来自于《统计学习方法-李航》)
拉格朗日函数要对x,α,βx,\alpha,\beta求导得0,其他满足于前文所示条件。
SVM学习笔记

如何进行学习的对偶算法

由7.1.3我们得到应该求得的最优化凸二次规划问题

minw,b 12w2s.t. yi(wxi+b)10, i=1,2,...,N \min_{w,b}\ \frac{1}{2}||w||^2 \\ s.t. \ y_i(w*x_i + b) - 1 \geq 0, \ i=1,2,...,N

构造拉格朗日函数:在此拉格朗日中的xx为问题中的ω,b\omega, b

L(ω,b,α,β)=f(ω,b)+i=1kαici(ω,b)+i=1lβjhj(ω,b)=12w2+i=1kαi(1yi(wxi+b))=12w2i=1kαiyi(wxi+b)+i=1kαi1 L(\omega,b, \alpha, \beta) = f(\omega,b) + \sum_{i=1}^{k}{\alpha_i c_{i}(\omega,b)} + \sum_{i=1}^{l}{\beta_j h_{j}(\omega,b)} \\ = \frac{1}{2}||w||^2 + \sum_{i=1}^{k}{\alpha_i (1 - y_i(w*x_i + b))} \\ = \frac{1}{2}||w||^2 - \sum_{i=1}^{k}{\alpha_i y_i(w*x_i + b)} + \sum_{i=1}^{k}{\alpha_i * 1}

通过对偶问题来求解,极大极小问题

maxα;α0minωbRnL(ω,b,α) \max_{\alpha; \alpha \geq 0} \min_{\omega b \in R^n}{L(\omega,b,\alpha)}

(1)先求解 minωbRnL(ω,b,α)\min_{\omega b \in R^n}{L(\omega,b,\alpha)}: 对于ω,b\omega,b求导

ωL(ω,b,α)=wi=1Nαiyixi=0bL(ω,b,α)=i=1Nαiyi=0 \nabla_{\omega} L(\omega,b,\alpha) = w-\sum_{i=1}^{N}{\alpha_i y_ix_i }=0 \\ \nabla_{b} L(\omega,b,\alpha) = - \sum_{i=1}^{N}{\alpha_i y_i} = 0

所以,得到目标的表达式和另外的条件。如果看下表,则ω\omega不应该按照如下公式表示,xix_i需要转置。(但暂时不看向量的积的维度问题)

yiy_i (ww xix_i + bb )
1*1 1*d d*1 1*1

w=i=1Nαiyixii=1Nαiyi=0 w = \sum_{i=1}^{N}{\alpha_i y_ix_i } \\ \sum_{i=1}^{N}{\alpha_i y_i} = 0

将其代入L(ω,b,α)L(\omega,b,\alpha)之中,得到

L(ω,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=i=1Nαi12i=1Nj=1Nαiαjyiyj(xixj) L(\omega,b,\alpha) = \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) \\ -\sum_{i=1}^{N} \alpha_i y_i ((\sum_{j=1}^{N} \alpha_j y_j x_j) \cdot x_i +b) + \sum_{i=1}^{N} \alpha_i \\ =\sum_{i=1}^{N} \alpha_i - \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)

得到下一步的输入物:

minω,bRnL(ω,b,α)=i=1Nαi12i=1Nj=1Nαiαjyiyj(xixj) \min_{\omega, b \in R^n}{L(\omega,b,\alpha)} = \sum_{i=1}^{N} \alpha_i - \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)

(2)开始求极大极小中的极大问题,

maxα;α0minωbRnL(ω,b,α)=maxαi=1Nαi12i=1Nj=1Nαiαjyiyj(xixj)s.t. i=1Nαiyi=0αi0 \max_{\alpha; \alpha \geq 0} \min_{\omega b \in R^n}{L(\omega,b,\alpha)}\\ = \max_{\alpha} \sum_{i=1}^{N} \alpha_i - \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) \\ s.t. \ \sum_{i=1}^{N}{\alpha_i y_i} = 0\\ \alpha_i \geq 0

转化为极小问题

minα;α0L(ω,b,α)=minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t. i=1Nαiyi=0αi0 \min_{\alpha; \alpha \geq 0} {L(\omega,b,\alpha)}\\ = \min_{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) -\sum_{i=1}^{N} \alpha_i\\ s.t. \ \sum_{i=1}^{N}{\alpha_i y_i} = 0\\ \alpha_i \geq 0

支持向量

将训练数据集中对应于αi&gt;0\alpha_i &gt;0的样本点(xi,yi)(x_i, y_i)的实例xiRnx_i \in R^n称为支持向量。由于存在KKT条件,αi(yi(wxi+b)1)=0\alpha_i (y_i (w * x_i +b)-1)=0,需要解同时符合

yi(wxi+b)=1y_i (w * x_i +b)=1

因此xix_i是在间隔边界上。

优缺点

【参考 https://blog.****.net/x1kz18nkbqg/article/details/78690795
SVM算法的主要优点有:

  1. 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
  2. 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
  3. 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
  4. 样本量不是海量数据的时候,分类准确率高,泛化能力强。

SVM算法的主要缺点有:

  1. 如果特征维度远远大于样本数,则SVM表现一般。
  2. SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
  3. 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
  4. SVM对缺失数据敏感。

用于回归问题

【参考】
https://blog.****.net/x1kz18nkbqg/article/details/78690795
https://blog.****.net/luoshixian099/article/details/51121767

参考书目

  1. 李航-统计学习方法
  2. 西瓜书
  3. 清华大学深圳研究生院袁春ppt