机器学习(五)——SVM(3)
http://antkillerfarm.github.io/
规则化和不可分情况处理(续)
这时候应该允许一些点游离并在模型中违背限制条件(函数间隔大于1)。我们设计得到新的模型如下(也称软间隔(Soft-margin)):
\begin{align} &\operatorname{min}_{\gamma,w,b}& & \frac{1}{2}\|w\|^2+C\sum_{i=1}^m\xi_i\\ &\operatorname{s.t.}& & y^{(i)}(w^Tx^{(i)}+b)\ge 1-\xi_i,i=1,\dots,m\\ & & & \xi_i\ge 0,i=1,\dots,m \end{align}
这里的C是离群点的权重,C越大表明离群点对目标函数影响越大,也就是越不希望看到离群点。我们看到,目标函数控制了离群点的数目和程度,使大部分样本点仍然遵守限制条件。
模型修改后,拉格朗日公式修改如下:
\mathcal{L}(w,b,\xi,\alpha,r)=\frac{1}{2}w^Tw+C\sum_{i=1}^m\xi_i-\sum_{i=1}^m\alpha_i[y^{(i)}(w^Tx^{(i)}+b)-1+\xi_i]-\sum_{i=1}^mr_i\xi_i
其对偶优化问题为:
\begin{align} &\operatorname{max}_\alpha & & W(\alpha)=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i,j=1}^my^{(i)}y^{(j)}\alpha_i\alpha_j\langle x^{(i)},x^{(j)}\rangle\\ &\operatorname{s.t.}& & 0\le\alpha_i\le C,i=1,\dots,m\\ & & & \sum_{i=1}^m\alpha_iy^{(i)}=0 \end{align}
此时,我们发现没有了参数ξi\xi_i,与之前模型唯一不同在于αi\alpha_i多了αi≤C\alpha_i\le C的限制条件。需要注意的是,b的求值公式发生了改变,这将在SMO算法里面介绍。
坐标上升法
\begin{align} &\operatorname{max}_\alpha & & W(\alpha_1,\dots,\alpha_m) \end{align}
对于上面这个优化问题,除了之前介绍的梯度下降法和牛顿法之外,还有坐标上升法(Coordinate ascent)。其过程为:
Loop until convergence:{
for i=1 to m, {
αi:=argmaxα^iW(α1,…,αi−1,α^i,αi+1,…,αm)\alpha_i:=\arg\max_{\hat\alpha_i}W(\alpha_1,\dots,\alpha_{i-1},\hat\alpha_i,\alpha_{i+1},\dots,\alpha_m)
}
}
最里面语句的意思是固定除αi\alpha_i之外的所有αj(j≠i)\alpha_j(j\neq i),这时W可看作只是关于αi\alpha_i的函数,那么直接对αi\alpha_i求导优化即可。这里我们进行最大化求导的顺序是从1到m,可以通过更改优化顺序来使W能够更快地增加并收敛。如果W在内循环中能够很快地达到最优,那么坐标上升法会是一个很高效的求极值方法。
图中的直线表示迭代优化的路径,可以看到每一步前进路线都是平行于坐标轴的,因为每一步只优化一个变量。
序列最小优化方法
序列最小优化方法(Sequential Minimal Optimization,SMO)算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对SVM和数据稀疏时性能更优。关于SMO最好的资料就是他本人写的《Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》。
注:John Carlton Platt,1963年生,14岁进入加州州立大学长滩分校,加州理工学院博士。先后供职于Synaptics和Microsoft Research,现为Google首席科学家。
针对之前列出的SVM对偶优化问题:
\begin{align} &\operatorname{max}_\alpha & & W(\alpha)=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i,j=1}^my^{(i)}y^{(j)}\alpha_i\alpha_j\langle x^{(i)},x^{(j)}\rangle \tag{1}\\ &\operatorname{s.t.}& & 0\le\alpha_i\le C,i=1,\dots,m \tag{2}\\ & & & \sum_{i=1}^m\alpha_iy^{(i)}=0 \tag{3} \end{align}
我们可以考虑使用坐标上升法,即首先固定除α1\alpha_1以外的所有参数,然后在α1\alpha_1上求极值。然而由于约束3的存在,把除α1\alpha_1以外的所有参数固定,实际上也就把α1\alpha_1给固定了。因此,需要一定的技巧来处理,比如:
Repeat till convergence:{
1.挑选一对αi\alpha_i和αj\alpha_j(挑选的规则可以是启发式的,以收敛快为准则)
2.固定除αi\alpha_i和αj\alpha_j之外的其余参数,以确定W极值条件下的αi\alpha_i和αj\alpha_j
}
这里假设我们固定α3,…,αm\alpha_3,\dots,\alpha_m,来优化α1\alpha_1和α2\alpha_2。由约束3可得:
\alpha_1y^{(1)}+\alpha_2y^{(2)}=-\sum_{i=3}^m\alpha_iy^{(i)}=\zeta\tag{4}
因为α3,…,αm\alpha_3,\dots,\alpha_m的值已经固定,所以ζ\zeta实际上是个常数。
同理:
\begin{align} W(\alpha)&=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i,j=1}^my^{(i)}y^{(j)}\alpha_i\alpha_j\langle x^{(i)},x^{(j)}\rangle=\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i,j=1}^my^{(i)}y^{(j)}\alpha_i\alpha_jK_{ij} \\&\begin{split} =\alpha_1+\alpha_2+\sum_{i=3}^m\alpha_i-\frac{1}{2}\left(\sum_{i,j=1}^2y^{(i)}y^{(j)}\alpha_i\alpha_jK_{ij}+2\sum_{j=3}^my^{(1)}y^{(j)}\alpha_1\alpha_jK_{1j} \\+2\sum_{j=3}^my^{(2)}y^{(j)}\alpha_2\alpha_jK_{2j}+\sum_{i,j=3}^my^{(i)}y^{(j)}\alpha_i\alpha_jK_{ij}\right) \end{split} \\&=\alpha_1+\alpha_2+\psi_1-\frac{1}{2}\sum_{i,j=1}^2y^{(i)}y^{(j)}\alpha_i\alpha_jK_{ij}-\sum_{j=3}^my^{(1)}y^{(j)}\alpha_1\alpha_jK_{1j}-\sum_{j=3}^my^{(2)}y^{(j)}\alpha_2\alpha_jK_{2j}-\psi_2 \\&=\alpha_1+\alpha_2-\frac{1}{2}\left((y^{(1)})^2\alpha_1^2K_{11}+(y^{(2)})^2\alpha_2^2K_{22}+2y^{(1)}y^{(2)}\alpha_1\alpha_2K_{12}\right) \\&\qquad-y^{(1)}\alpha_1\sum_{j=3}^my^{(j)}\alpha_jK_{1j}-y^{(2)}\alpha_2\sum_{j=3}^my^{(j)}\alpha_jK_{2j}+\psi_3 \\&=\alpha_1+\alpha_2-\frac{1}{2}\alpha_1^2K_{11}-\frac{1}{2}\alpha_2^2K_{22}-s\alpha_1\alpha_2K_{12}-y^{(1)}\alpha_1v_1-y^{(2)}\alpha_2v_2+\psi_3 \tag{5} \end{align}
其中,ψi\psi_i表示常数项,s=y(1)y(2)s=y^{(1)}y^{(2)},vi=∑mj=3y(j)αjKijv_i=\sum_{j=3}^my^{(j)}\alpha_jK_{ij}。
如上图所示,因为约束2的存在,α1\alpha_1和α2\alpha_2的值实际上被固定在如图所示的[0,C]×[0,C][0,C]\times[0,C]的方框内。根据约束3可得,α1\alpha_1和α2\alpha_2落在图中的直线上。从图中还可看出L≤α2≤HL\le \alpha_2\le H,其严格定义如下:
\begin{align} L=\max(0,\alpha_2-\alpha_1),H=\min(C,C+\alpha_2-\alpha_1) & & if\ y^{(1)}\neq y^{(2)}\\ L=\max(0,\alpha_2+\alpha_1-C),H=\min(C,\alpha_2+\alpha_1) & & if\ y^{(1)}= y^{(2)} \end{align}
根据公式4可得:
\alpha_1=\frac{(\zeta-\alpha_2y^{(2)})}{y^{(1)}}
因为y(1)y^{(1)}的取值要么是1,要么是-1,即(y(1))2=1(y^{(1)})^2=1,同理,s2=1s^2=1。因此上式又可改写为:
\begin{align} \alpha_1&=\frac{(\zeta-\alpha_2y^{(2)})}{y^{(1)}}=\frac{(\zeta-\alpha_2y^{(2)})(y^{(1)})^2}{y^{(1)}}=(\zeta-\alpha_2y^{(2)})y^{(1)} \\&=y^{(1)}\zeta-y^{(1)}y^{(2)}\alpha_2=\omega-s\alpha_2 \end{align}
其中ω=y(1)ζ\omega=y^{(1)}\zeta。
将上式代入公式5可得:
\begin{align} W(\alpha)&=\alpha_1+\alpha_2-\frac{1}{2}\alpha_1^2K_{11}-\frac{1}{2}\alpha_2^2K_{22}-s\alpha_1\alpha_2K_{12}-y^{(1)}\alpha_1v_1-y^{(2)}\alpha_2v_2+\psi_3 \\&=(\omega-s\alpha_2)+\alpha_2-\frac{1}{2}(\omega-s\alpha_2)^2K_{11}-\frac{1}{2}\alpha_2^2K_{22}-s(\omega-s\alpha_2)\alpha_2K_{12} \\&\qquad-y^{(1)}(\omega-s\alpha_2)v_1-y^{(2)}\alpha_2v_2+\psi_3 \\&=(\omega-s\alpha_2)+\alpha_2-\frac{1}{2}(\omega-s\alpha_2)^2K_{11}-\frac{1}{2}\alpha_2^2K_{22}-s\omega\alpha_2K_{12}+s^2\alpha_2^2K_{12} \\&\qquad-y^{(1)}(\omega-s\alpha_2)v_1-y^{(2)}\alpha_2v_2+\psi_3 \\&=(\omega-s\alpha_2)+\alpha_2-\frac{1}{2}(\omega-s\alpha_2)^2K_{11}-\frac{1}{2}\alpha_2^2K_{22}-s\omega\alpha_2K_{12}+\alpha_2^2K_{12} \\&\qquad-y^{(1)}(\omega-s\alpha_2)v_1-y^{(2)}\alpha_2v_2+\psi_3 \end{align}
对上式求导可得:
\begin{align} \frac{\mathrm{d}W(\alpha)}{\mathrm{d}\alpha_2}&=-s+1+s(\omega-s\alpha_2)K_{11}-\alpha_2K_{22}-s\omega K_{12}+2\alpha_2K_{12}+y^{(1)}sv_1-y^{(2)}v_2 \\&=-s+1+s\omega K_{11}-\alpha_2K_{11}-\alpha_2K_{22}-s\omega K_{12}+2\alpha_2K_{12}+y^{(2)}v_1-y^{(2)}v_2=0 \end{align}
所以:
\alpha_2(K_{11}+K_{22}-2K_{12})=s\omega(K_{11}-K_{12})+y^{(2)}(v_1-v_2)+1-s \tag{6}
定义u=wTx+bu=w^Tx+b,则根据《机器学习(四)》中的公式6,可得ui=∑mj=1αjy(j)K(x(i),x(j))+bu_i=\sum_{j=1}^m\alpha_jy^{(j)}K(x^{(i)},x^{(j)})+b
因为迭代前后约束条件3不变,所以:
\alpha_1y^{(1)}+\alpha_2y^{(2)}=-\sum_{i=3}^m\alpha_iy^{(i)}=\alpha_1^*y^{(1)}+\alpha_2^*y^{(2)}
\alpha_1+s\alpha_2=\omega=\alpha_1^*+s\alpha_2^* \tag{7}
v_i=\sum_{j=3}^my^{(j)}\alpha_j^*K_{ij}=u_i-b^*-y^{(1)}\alpha_1^*K_{1i}-y^{(2)}\alpha_2^*K_{2i} \tag{8}
\begin{align} v_1-v_2&=(u_1-b^*-y^{(1)}\alpha_1^*K_{11}-y^{(2)}\alpha_2^*K_{21})-(u_2-b^*-y^{(1)}\alpha_1^*K_{12}-y^{(2)}\alpha_2^*K_{22}) \\&=u_1-u_2-y^{(1)}\alpha_1^*K_{11}-y^{(2)}\alpha_2^*K_{21}+y^{(1)}\alpha_1^*K_{12}+y^{(2)}\alpha_2^*K_{22} \end{align}
\begin{align} y^{(2)}(v_1-v_2)+1-s&=y^{(2)}(u_1-u_2)-y^{(2)}y^{(1)}\alpha_1^*K_{11}-(y^{(2)})^2\alpha_2^*K_{21}+y^{(2)}y^{(1)}\alpha_1^*K_{12} \\&\qquad+(y^{(2)})^2\alpha_2^*K_{22}+(y^{(2)})^2-y^{(2)}y^{(1)} \\&=y^{(2)}(u_1-u_2)-s\alpha_1^*K_{11}-\alpha_2^*K_{21}+s\alpha_1^*K_{12} \\&\qquad+\alpha_2^*K_{22}+(y^{(2)})^2-y^{(2)}y^{(1)} \\&=y^{(2)}(u_1-u_2+y^{(2)}-y^{(1)})-s\alpha_1^*K_{11}-\alpha_2^*K_{21}+s\alpha_1^*K_{12}+\alpha_2^*K_{22} \end{align}
这里的α∗\alpha^*代表旧的迭代值,虽然它的含义和之前讨论KKT条件时的α∗\alpha^*有所不同,但内涵是一致的——迭代值的极限是最优值,且迭代过程满足约束条件。其他变量也是类似的。
将ω\omega、v代入公式6可得:
\alpha_2(K_{11}+K_{22}-2K_{12})=s(\alpha_1^*+s\alpha_2^*)(K_{11}-K_{12})+y^{(2)}(v_1-v_2)+1-s
\alpha_2(K_{11}+K_{22}-2K_{12})=s\alpha_1^*K_{11}+\alpha_2^*K_{11}-s\alpha_1^*K_{12}-\alpha_2^*K_{12}+y^{(2)}(v_1-v_2)+1-s
\alpha_2(K_{11}+K_{22}-2K_{12})=\alpha_2^*(K_{11}+K_{22}-2K_{12})+y^{(2)}(u_1-u_2+y^{(2)}-y^{(1)})
定义η=K11+K22−2K12,Ei=ui−y(i)\eta=K_{11}+K_{22}-2K_{12},E_i=u_i-y^{(i)}。其中,η\eta是W的二阶导数,而EiE_i是第i个训练样本的误差,即预测值和实际值的差。
\alpha_2\eta=\alpha_2^*\eta+y^{(2)}(E_1-E_2)
\alpha_2^{new,unclipped}=\alpha_2+\frac{y^{(2)}(E_1-E_2)}{\eta}
αnew,unclipped2\alpha_2^{new,unclipped}是无约束的W(α2)W(\alpha_2)问题的最优值。如果考虑约束条件则有:
\alpha_2^{new}=\begin{cases} H, & if \ \alpha_2^{new,unclipped}>H \\ \alpha_2^{new,unclipped}, & if \ L\le \alpha_2^{new,unclipped} \le H \\ L, & if \ \alpha_2^{new,unclipped}
其中,αnew2\alpha_2^{new}是更新值。
由公式7可得:
\alpha_1+s\alpha_2=\alpha_1^{new}+s\alpha_2^{new}
\alpha_1^{new}=\alpha_1+s(\alpha_2-\alpha_2^{new})
在特殊情况下,η\eta可能不为正,如果核函数K不满足Mercer定理,那么目标函数可能变得非正定,η\eta可能出现负值。即使K是有效的核函数,如果训练样本中出现相同的特征x,那么η\eta仍有可能为0。SMO算法在η\eta不为正值的情况下仍有效。
当η≤0\eta\le 0时,W本身没有极值,极值出现在边界处,即αnew2=L\alpha_2^{new}=L或αnew2=H\alpha_2^{new}=H。我们需要对边界的W值进行检查。
这里首先对αnew2=L\alpha_2^{new}=L的情况做一下讨论。
\alpha_1^{new}=L_1=\alpha_1+s(\alpha_2-L)
由公式8可得:
\begin{align} L_1-y^{(1)}L_1v_1&=L_1\left[(y^{(1)})^2-y^{(1)}(u_i-b-y^{(1)}\alpha_1K_{11}-y^{(2)}\alpha_2K_{21})\right] \\&=L_1\left[y^{(1)}(y^{(1)}-u_i+b)+\alpha_1K_{11}+s\alpha_2K_{12}\right] \\&=L_1\left[y^{(1)}(b-E_1)+\alpha_1K_{11}+s\alpha_2K_{12}\right]=L_1f_1 \end{align}
即
f_1=y^{(1)}(b-E_1)+\alpha_1K_{11}+s\alpha_2K_{12}
机器学习(五)——SVM(3)相关推荐
- 系统学习机器学习之SVM(三)--Liblinear,LibSVM使用整理,总结
1.Libsvm与Liblinear区别,简单源码剖析. http://blog.csdn.net/zhzhl202/article/details/7438160 http://blog.csdn. ...
- 百面机器学习—4.SVM模型基础知识
文章目录 引言 一.间隔与支持向量 1.什么是线性可分? 2.什么是超平面?什么是最大间隔超平面? 3.什么是支撑向量? 4.SVM最优化问题 二.对偶问题 1.约束条件下的目标函数如何求解最优化问题 ...
- 【机器学习】SVM学习(三):线性分类器的求解
[机器学习]SVM学习(三):线性分类器的求解 2016-10-10 19:56 239人阅读 评论(0) 收藏 举报 本文章已收录于: 机器学习知识库 分类: 机器学习(37) 目录(?)[+ ...
- Scikit-Learn 机器学习笔记 -- SVM
Scikit-Learn 机器学习笔记 – SVM 参考文档: handson-ml import numpy as np# 加载鸢尾花数据集 def load_dataset():from skle ...
- 【机器学习】SVM理论与python实践系列
理论部分: <机器学习--支持向量机SVM之线性模型> <机器学习--支持向量机SVM之非线性模型低维到高维映射> <机器学习--支持向量机SVM之非线性模型原问题与对偶 ...
- python机器交易_[原创]Python 机器学习之 SVM 预测买卖 -- 基于 BotVS 量化平台
Python 机器学习之 SVM 预测买卖 Python入门简单策略 sklearn 机器学习库的使用 回测系统自带的库有 numpy pandas TA-Lib scipy statsmodels ...
- 【机器学习】SVM学习(五):松弛变量与惩罚因子
转载:http://blog.csdn.net/qll125596718/article/details/6910921 1.松弛变量 现在我们已经把一个本来线性不可分的文本分类问题,通过映射到高维空 ...
- 机器学习——支持向量机SVM之非线性模型(原问题转化为对偶问题)
目录 一.复习(原问题.对偶问题.KKT条件.凸函数) 二.将最优化问题标准化为原问题(严格转化为标准形式) 1.原最优化问题 2.标准化后的问题 三.转化为对偶问题(注意变量的对应关系) 四.对对偶 ...
- 系统学习机器学习之SVM(一)
原文引自: http://blog.csdn.net/sunanger_wang/article/details/7887218 此处,我做下补充. 一.线性分类器: 首先给出一个非常非常简单的分类问 ...
- 系统学习机器学习之SVM(四)--SVM算法总结
这边文章介绍的相当浅显易懂,写的很好.算是SVM总结吧. 转自:http://www.blogjava.net/zhenandaci/category/31868.html (一)SVM的简介 ...
最新文章
- 子元素超出父元素宽高是否会报错?
- ELK结合logback搭建日志中心
- sphinx error connection to 127.0.0.1:9312 failed (errno=0, msg=)
- MapReduce之单词计数
- [渗透攻防] 一.从数据库原理学习网络攻防及防止SQL注入
- redis 重新加载_Redis持久化和Redis持久化方式
- 小程序 云函数 python_小程序云函数
- spring集成mybatis后怎么在控制台打印sql语句
- c# 执行js方法
- CAM365|超高性价比CAM软件推荐
- 软件体系结构测试定义,软件体系结构-中国大学mooc-题库零氪
- 威斯康星大学计算机科学教授,UW机器学习和数据科学活动吸引了国际知名的计算机科学家...
- MybatisPlus中@TableField注解的使用详解
- 11.18-刷题日结
- shell脚本——正则表达式(包含grep详细介绍及应用)
- 完美解决 请在微信客户端打开链接
- oracle10g数据库复制,Oracle10g中Duplicate复制数据库
- 自建ES通过OSS快照迁移至阿里云ES
- 湖南大学 实验八 青蛙与蚊子
- 戴尔 Vostro 3470 成就商务台式机(i3-8100) 安装Win7系统