本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考,大家一定要结合书本、PPT来进行复习,有些公式的推导最好能够自己演算一遍。由于作者水平有限,笔记中难免有些差错,欢迎大家评论留言。
完整版跳转
考虑一个二分类问题,当数据集线性可分时,我们想要找到一个平面对数据集进行划分。我们用如下线性方程来描述划分超平面。
w T x + b = 0 w^Tx+b=0 wTx+b=0
其中
w T x i + b > + c for all x i in class 2 w T x i + b < − c for all x i in class 1 w^Tx_i+b>+c \quad \text{for all }x_i \text{ in class 2}\\w^Tx_i+b<-c \quad \text{for all }x_i \text{ in class 1} wTxi+b>+cfor all xi in class 2wTxi+b<−cfor all xi in class 1
可以将上面的两个式子进行合并,得到( y i = ± 1 y_i=\pm1 yi=±1)
( w T x i + b ) y i ≥ c (w^Tx_i+b)y_i \geq c (wTxi+b)yi≥c
两类之间的最小可行间隔(margin)为
m = w T ∣ ∣ w ∣ ∣ ( x i ∗ − x j ∗ ) = 2 c ∣ ∣ w ∣ ∣ m=\frac{w^T}{||w||}(x_{i^*}-x_{j*})=\frac{2c}{||w||} m=∣∣w∣∣wT(xi∗−xj∗)=∣∣w∣∣2c
我们希望这个间隔距离尽可能大,即
max w , b 2 c ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ c , ∀ i \begin{aligned} \max_{w,b}& \quad \frac{2c}{||w||} \\ s.t. &\quad y_i(w^Tx_i+b)\geq c, \forall i \end{aligned} w,bmaxs.t.∣∣w∣∣2cyi(wTxi+b)≥c,∀i
这就是最大间隔方法。
但是,由于改变 c c c的大小相当于给 w w w和 b b b乘上一个系数,不会改变分类平面,所以可以把优化问题转化为
max w , b 1 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ 1 , ∀ i \begin{aligned} \max_{w,b}& \quad \frac{1}{||w||} \\ s.t. &\quad y_i(w^Tx_i+b)\geq 1, \forall i \end{aligned} w,bmaxs.t.∣∣w∣∣1yi(wTxi+b)≥1,∀i
而最大化 ∣ ∣ w ∣ ∣ − 1 ||w||^{-1} ∣∣w∣∣−1等价于最小化 ∣ ∣ w ∣ ∣ 2 ||w||^2 ∣∣w∣∣2,于是上式可重写为
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , ∀ i \begin{aligned} \min_{w,b} & \quad \frac12||w||^2 \\ s.t. & \quad y_i(w^Tx_i+b)\geq 1, \forall i \end{aligned} w,bmins.t.21∣∣w∣∣2yi(wTxi+b)≥1,∀i
这就是支持向量机(SVM)的基本型。
这个形式的优化问题是凸二次规划问题,已经可以直接求解,但是直接求解的计算复杂度较高。接下来我们会利用拉格朗日对偶性来优化。
原问题
min w , b f ( w ) s . t . g i ( w ) ≤ 0 , i = 1 , … , k h i ( w ) = 0 , i = 1 , … , l \begin{aligned} \min_{w,b} & \quad f(w) \\ s.t. &\quad g_i(w)\leq 0, i=1,\dots,k\\ &\quad h_i(w)= 0, i=1,\dots,l\\ \end{aligned} w,bmins.t.f(w)gi(w)≤0,i=1,…,khi(w)=0,i=1,…,l
拉格朗日函数可表示为
L ( w , α , β ) = f ( w ) + ∑ i = 1 k α i g i ( w ) + ∑ i = 1 l β i h i ( w ) L(w,\alpha,\beta)=f(w)+\sum_{i=1}^k\alpha_ig_i(w)+\sum_{i=1}^l\beta_ih_i(w) L(w,α,β)=f(w)+i=1∑kαigi(w)+i=1∑lβihi(w)
其中 α i ≥ 0 , ∀ i \alpha_i \geq 0, \forall i αi≥0,∀i.
引理
max α , β , α i ≥ 0 L ( w , α , β ) = { f ( w ) if w satisfies primal constraints ∞ otherwise \max_{\alpha,\beta,\alpha_i \geq 0}L(w,\alpha,\beta)= \begin{cases} f(w) &\text{if } w \text{ satisfies primal constraints} \\ \infty &\text{otherwise} \end{cases} α,β,αi≥0maxL(w,α,β)={f(w)∞if w satisfies primal constraintsotherwise
原问题可重写为
min w max α , β , α i ≥ 0 L ( w , α , β ) \min_w\max_{\alpha,\beta,\alpha_i \geq 0}L(w,\alpha,\beta) wminα,β,αi≥0maxL(w,α,β)
其对偶问题
max α , β , α i ≥ 0 min w L ( w , α , β ) \max_{\alpha,\beta,\alpha_i \geq 0}\min_wL(w,\alpha,\beta) α,β,αi≥0maxwminL(w,α,β)
弱对偶性
d ∗ = max α , β , α i ≥ 0 min w L ( w , α , β ) ≤ min w max α , β , α i ≥ 0 L ( w , α , β ) = p ∗ d^*=\max_{\alpha,\beta,\alpha_i \geq 0}\min_wL(w,\alpha,\beta)\leq \min_w\max_{\alpha,\beta,\alpha_i \geq 0}L(w,\alpha,\beta)=p^* d∗=α,β,αi≥0maxwminL(w,α,β)≤wminα,β,αi≥0maxL(w,α,β)=p∗
其中对偶问题的最优解为 d ∗ d^* d∗,原问题的最优解为 p ∗ p^* p∗。
强对偶性
there exists a saddle point of L ( w , α , β ) ⟺ d ∗ = p ∗ \text{there exists a saddle point of }L(w,\alpha,\beta) \iff d^*=p^* there exists a saddle point of L(w,α,β)⟺d∗=p∗
KKT条件
如果 L L L中有鞍点,那么鞍点将会满足KKT条件
∂ ∂ w i L ( w , α , β ) = 0 , i = 1 , … , k ∂ ∂ α i L ( w , α , β ) = 0 , i = 1 , … , m ∂ ∂ β i L ( w , α , β ) = 0 , i = 1 , … , l α i g i ( w ) = 0 , i = 1 , … , m g i ( w ) ≤ 0 , i = 1 , … , m α i ≥ 0 , i = 1 , … , m h i ( w ) = 0 , i = 1 , … , l \begin{aligned} \frac{\partial}{\partial w_i}L(w,\alpha,\beta)&=0,\quad i=1,\dots,k\\ \frac{\partial}{\partial \alpha_i}L(w,\alpha,\beta)&=0,\quad i=1,\dots,m\\ \frac{\partial}{\partial \beta_i}L(w,\alpha,\beta)&=0,\quad i=1,\dots,l\\ \alpha_i g_i(w)&=0,\quad i=1,\dots,m\\ g_i(w)&\leq0,\quad i=1,\dots,m\\ \alpha_i&\geq0,\quad i=1,\dots,m\\ h_i(w)&=0, \quad i=1,\dots,l \end{aligned} ∂wi∂L(w,α,β)∂αi∂L(w,α,β)∂βi∂L(w,α,β)αigi(w)gi(w)αihi(w)=0,i=1,…,k=0,i=1,…,m=0,i=1,…,l=0,i=1,…,m≤0,i=1,…,m≥0,i=1,…,m=0,i=1,…,l
定理:如果 w ∗ , α ∗ , β ∗ w^*,\alpha^*,\beta^* w∗,α∗,β∗满足KKT条件,那么对偶问题能获得主问题的最优下界。
最大间隔方法中的原问题
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , ∀ i \begin{aligned} \min_{w,b} &\quad \frac12||w||^2 \\ s.t. &\quad y_i(w^Tx_i+b)\geq 1, \forall i\\ \end{aligned} w,bmins.t.21∣∣w∣∣2yi(wTxi+b)≥1,∀i
我们可以把约束写成 1 − y i ( w T x i + b ) ≤ 0 1-y_i(w^Tx_i+b)\leq 0 1−yi(wTxi+b)≤0,发现形式与拉格朗日乘子的约束对应上了。
对应的拉格朗日函数
L ( w , b , α ) = 1 2 w T w + ∑ i α i [ 1 − y i ( w T x i + b ) ] L(w,b,\alpha)=\frac12w^Tw+\sum_i\alpha_i[1-y_i(w^Tx_i+b)] L(w,b,α)=21wTw+i∑αi[1−yi(wTxi+b)]
原问题可写成
min w , b max α i ≥ 0 L ( w , b , α ) \min_{w,b}\max_{\alpha_i \geq 0}L(w,b,\alpha) w,bminαi≥0maxL(w,b,α)
我们来考虑这个式子在什么时候取到最小值。我们发现如果 w , b w,b w,b非法,那么整个式子将会趋于无穷大,因为如果 1 − y i ( w T x i + b ) > 0 1-y_i(w^Tx_i+b)>0 1−yi(wTxi+b)>0,那么在最大化 L L L时,相应的 α i \alpha_i αi就会趋向于正无穷,从而导致整个式子的值趋向于正无穷。因此,整个式子的最小值一定在 w , b w,b w,b合法的时候才能取到,此时 L ( w , b , α ) = 1 2 w T w L(w,b,\alpha)=\frac12w^Tw L(w,b,α)=21wTw,即整个式子的最小值恰好等于 1 2 w T w \frac12w^Tw 21wTw的最小值。通过拉格朗日乘子法,我们成功地将有约束极值改造成了无约束极值。
我们求解它的对偶问题
max α i ≥ 0 min w , b L ( w , b , α ) \max_{\alpha_i \geq 0}\min_{w,b}L(w,b,\alpha) αi≥0maxw,bminL(w,b,α)
首先通过 w , b w,b w,b最小化 L L L.
令 L L L对 w w w和 b b b的偏导为零可得
w = ∑ i = 1 m α i y i x i 0 = ∑ i = 1 m α i y i \begin{aligned} w&=\sum_{i=1}^m\alpha_iy_ix_i\\ 0&=\sum_{i=1}^m\alpha_iy_i \end{aligned} w0=i=1∑mαiyixi=i=1∑mαiyi
代入 L L L中,消去 w w w和 b b b,即
L ( w , b , α ) = 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i T x j ) + ∑ i = 1 m α i − ∑ i = 1 m α i y i ( ∑ j = 1 m α j y j x j T x i + b ) = 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i T x j ) + ∑ i = 1 m α i − ∑ i = 1 m α i y i ( ∑ j = 1 m α j y j x j T ) x i − ∑ i = 1 m α i y i b = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i T x j ) \begin{aligned} L(w,b,\alpha)&=\frac12\sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j (x_i^Tx_j)+\sum_{i=1}^m\alpha_i-\sum_{i=1}^m\alpha_iy_i(\sum_{j=1}^m\alpha_j y_j x_j^T x_i+b)\\ &=\frac12\sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j (x_i^Tx_j)+\sum_{i=1}^m\alpha_i-\sum_{i=1}^m\alpha_iy_i(\sum_{j=1}^m\alpha_j y_j x_j^T) x_i-\sum_{i=1}^m\alpha_iy_ib\\ &=\sum_{i=1}^m\alpha_i-\frac12\sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j (x_i^Tx_j) \end{aligned} L(w,b,α)=21i=1∑mj=1∑mαiαjyiyj(xiTxj)+i=1∑mαi−i=1∑mαiyi(j=1∑mαjyjxjTxi+b)=21i=1∑mj=1∑mαiαjyiyj(xiTxj)+i=1∑mαi−i=1∑mαiyi(j=1∑mαjyjxjT)xi−i=1∑mαiyib=i=1∑mαi−21i=1∑mj=1∑mαiαjyiyj(xiTxj)
对偶问题变为
max α i ≥ 0 ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i T x j ) s . t ∑ i = 1 m α i y i = 0 \begin{aligned} \max_{\alpha_i \geq 0} &\quad \sum_{i=1}^m\alpha_i-\frac12\sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j (x_i^Tx_j)\\ s.t & \quad \sum_{i=1}^m\alpha_iy_i=0 \end{aligned} αi≥0maxs.ti=1∑mαi−21i=1∑mj=1∑mαiαjyiyj(xiTxj)i=1∑mαiyi=0
这又是一个二次规划问题,但是比原来那个要好解一些。 求出 α i \alpha_i αi之后,我们利用 w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^m\alpha_iy_ix_i w=∑i=1mαiyixi即可恢复出 w w w.
注意到KKT条件,由于
α i g i ( w ) = 0 , i = 1 , 2 , … , m \alpha_ig_i(w)=0, \quad i=1,2,\dots,m αigi(w)=0,i=1,2,…,m
因此只有少数 α i \alpha_i αi非零,我们称这样的样本为支持向量(Support Vectors)。
实际上,我们只需要 α , b \alpha,b α,b即可分类数据,这是因为
w T z + b = ( ∑ i α i y i x i T z ) + b w^Tz+b=(\sum_i\alpha_i y_i x_i^Tz)+b wTz+b=(i∑αiyixiTz)+b
我们甚至能做得更快,注意到只有支持向量的 α i \alpha_i αi才可以非0,在求和的时候只需要取支持向量就行了,即
y ∗ = s i g n ( ∑ i ∈ S V α i y i ( x i T z ) + b ) y^*=sign(\sum_{i \in SV}\alpha_i y_i (x_i^Tz)+b) y∗=sign(i∈SV∑αiyi(xiTz)+b)
在实际应用中,我们的数据可能实际上是线性可分的,但是由于噪声的存在,使得两类的个别数据点之间的距离较近,导致类别之间的距离较近,而如果在这个条件下仍然按照上面的办法求解,显然求得的结果是不合理的(过拟合),甚至有可能出现一类的某个数据点出现在了对侧中,导致不存在分类超平面。因此,我们需要一种手段来使得分类超平面能够容忍这些“错误”的数据点的存在,即允许有些点可以不满足约束
y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b) \geq 1 yi(wTxi+b)≥1
当然,在最大化间隔的同时,不满足约束的样本应该尽可能少。于是,优化目标可写为
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m l 0 / 1 ( y i ( w T x i + b ) − 1 ) \min_{w,b} \frac12||w||^2+C\sum_{i=1}^ml_{0/1}(y_i(w^Tx_i+b) -1) w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)
其中 C > 0 C>0 C>0是一个常数, l 0 / 1 l_{0/1} l0/1是“0/1损失函数”
l 0 / 1 ( z ) = { 1 if z < 0 0 otherwise l_{0/1}(z)=\begin{cases} 1 &\text{if } z<0 \\ 0 &\text{otherwise} \end{cases} l0/1(z)={10if z<0otherwise
显然,当 C C C为无穷大时,上式会迫使所有样本均满足约束条件,这实际上就是“硬间隔”;当 C C C取有限值时,上式允许一些样本不满足约束。
然而, l 0 / 1 l_{0/1} l0/1非凸、非连续,数学性质不好,我们通常用一些替代损失函数来替代 l 0 / 1 l_{0/1} l0/1,它们通常是凸的连续函数且是 l 0 / 1 l_{0/1} l0/1的上界。
通常有三种常用的替代损失函数:
引入松弛变量 ξ i ≥ 0 \xi_i \geq 0 ξi≥0,优化目标可重写为
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , … , m . \begin{aligned} \min_{w,b} &\quad \frac12||w||^2+C\sum_{i=1}^m\xi_i\\ s.t. & \quad y_i(w^Tx_i+b) \geq 1-\xi_i,\\ & \quad \xi_i \geq 0, \ i=1,2,\dots,m. \end{aligned} w,bmins.t.21∣∣w∣∣2+Ci=1∑mξiyi(wTxi+b)≥1−ξi,ξi≥0, i=1,2,…,m.
特别地,如果样本 x i x_i xi没有误差,则有 ξ i = 0 \xi_i=0 ξi=0, ξ i \xi_i ξi是误差的上界。 C C C称为惩罚系数,是间隔和分类误差之间的“trade-off”。
对偶后的问题变为
max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i T x j ) s . t . 0 ≤ α i ≤ C , ∑ i = 1 m α i y i = 0 , i = 1 , 2 , … , m . \begin{aligned} \max_{\alpha} &\quad \sum_{i=1}^m\alpha_i-\frac12\sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j (x_i^Tx_j)\\ s.t. & \quad 0\leq \alpha_i \leq C,\\ & \quad \sum_{i=1}^m\alpha_i y_i=0, \ i=1,2,\dots,m. \end{aligned} αmaxs.t.i=1∑mαi−21i=1∑mj=1∑mαiαjyiyj(xiTxj)0≤αi≤C,i=1∑mαiyi=0, i=1,2,…,m.
以上的求解都是在线性可分的条件下进行的,而事实上大部分时候数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在。对这样的问题可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。幸运的是,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。
回顾之前的过程:我们优化对偶问题的时候,并不需要真正地给向量做特征变换,而只需要知道特征变换之后向量的内积;在分类的时候,也只需要向量的内积。所以我们可以这样做:并不显式地升维变量,而是在向量需要求内积的时候,用我们新的函数来替换内积函数。这就是核函数。
所以我们通过核函数,避免了真正执行升维,只需要在计算内积的时候采用核函数来替代。
常用的核函数有:
哈工大机器学习复习笔记(一)
哈工大机器学习复习笔记(二)
哈工大机器学习复习笔记(三)
哈工大机器学习复习笔记(四)