SVM算法教科书(一)
2016-03-15 22:47
162 查看
写这篇取名为《SVM算法教科书》的文章目的有三,其一梳理思路,技术交流;其二,为了写一个工具软件,软件的功能是实现SVM算法的训练和识别;其三,也是最重要的一点,就是用于帮助入门者更好地开始算法的研究之路和提高者能够有一个更全面的提高。本文的思路,有别于其他的相关文章,但是也参考了相关的文章,本文的思路立意于一个算法工程师开始SVM算法的工程研究与运用。
此外,写这篇文章,参考的文章基本上都会注明出处,但是难免会有疏忽,欢迎指正,不胜感激涕零。
最后,也期待大家一起交流、研究、学习。现在已经是半夜一点,依然在键盘不息,我计划3月底,这篇文章在保证高质量的前提下可以与大家相见,为此我努力尽力。
一、Boost库在VS2010环境中使用
Boost库在VS2010环境中使用
二、支持向量机
参考资料:
SVM支持向量机算法的详细推导(详细到每个步骤,值得推荐)
1、Vapnik提出的支持向量机(Support Vector Machine,SVM),解决模式分类与非线性映射问题。
从线性可分模式分类角度看, SVM的主要思想是: 建立一个最优决策超平面, 使得该平面两侧距平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。根据cover定理:将复杂的模式分类问题非线性地投射到高维特征空间可能是线性可分的,因此只要特征空间的维数足够高,则原始模式空间能变换为一个新的高维特征空间,使得在特征空间中模式以较高的概率为线性可分的。此时,应用支持向量机算法在特征空间建立分类超平面,即可解决非线性可分的模式识别问题。
什么叫线性可分?就是可以用一条或几条直线把属于不同类别的样本点分开。
SVM主要针对小样本数据进行学习、分类和预测(有时也叫回归)的一种方法,能解决神经网络不能解决的过学习问题。类似的根据样本进行学习的方法还有基于案例的推理( Case-Based Reasoning),决策树归纳算法等。
过学习问题: 训练误差过小导致推广能力下降,即真实风险的增加。
推广能力: generalization ability,也可以说是泛化能力,就是对未知样本进行预测时的精确度。
2、最优超平面的概念
考虑P个线性可分样本{(X1,d1)(X1,d1),(X2,d2)(X2,d2),…,(Xp−1,dp−1)(X_{p-1},d_{p-1}),…,(Xp,dp)(X_{p},d_{p})},对于任一输入样本XpX_p ,期望输出为dp=±1d_p =±1(代表两类类别标识)。
用于分类的超平面方程为:
WTX+b=0W^TX+b=0 式2-2-1
式中, XX为输入向量, WW为权值向量, bb为偏置(相当于前述负阈值),则有:
{WTXp+b>0,WTXp+b<0,dp=+1dp=-1\begin{cases}
W^TX^p+b>0, & \text{$d^p$=+1} \\
W^TX^p+b<0, & \text{$d^p$=-1}
\end{cases} 式2-2-2
超平面与最近的样本点之间的间隔称为分离边缘,用ρρ表示。
支持向量机的目标是找到一个分离边缘最大的超平面,即最优超平面。也就是要确定使ρρ最大时的WW和bb。
图2-2-1给出二维平面中最优超平面的示意图。可以看出,最优超平面能提供两类之间最大可能的分离,因此确定最优超平面的权值W0W_0和偏置b0b_0应是唯一的。在式子WTX+b=0W^TX+b=0,定义的一簇超平面中,最优超平面的方程应为:WTX0+b0=0W^TX_0+b_0=0 式2-2-3
直接求W0W_0和b0b_0基本上不太可能,除了训练集无别的信息可用,如何办?
一种方法:使求得的预测函数 y=f(x)=sgn(W⋅X+b)y = f(x) = sgn(W·X + b)对原有样本的分类错误率最小。 如何使分类错误率最小?下面慢慢分析:
x>0,sgn(x)=1x > 0, sgn(x) = 1
x=0,sgn(x)=0x = 0, sgn(x) = 0
x<0,sgn(x)=−1x < 0, sgn(x) = -1
![](http://img.blog.csdn.net/20160316213809833)
参考:支持向量机通俗导论(理解SVM的三层境界)
图2-2-1
继续分析:
![](http://img.blog.csdn.net/20160317190700518)
北大SVM讲义
![](http://img.blog.csdn.net/20160313010516217)
二次规划
MATLAB解二次规划
![](http://img.blog.csdn.net/20160313010530483)
![](http://img.blog.csdn.net/20160317184954403)
由解析几何知识可得样本空间任一点X到最优超平面的距离为:
![](http://img.blog.csdn.net/20160316221842578)
,从而有判别函数:
![](http://img.blog.csdn.net/20160316222127657)
,g(X)g(X)给出从X到最优超平面的距离的一种代数度量。
将判别函数进行归一化,使所有样本都满足:
{WT0Xp+b0>0,WT0Xp+b0<0,dp=+1dp=-1\begin{cases}
W_0^TX^p+b_0>0, & \text{$d^p$=+1} \\
W_0^TX^p+b_0<0, & \text{$d^p$=-1}
\end{cases} 式2-2-4
则对于离最优超平面最近的特殊样本Xs满足: |g(Xs)|=1|g(Xs)|=1, 称为支持向量。由于支持向量最靠近分类决策面,是最难分类的数据点,因此这些向量在支持向量机的运行中起着主导作用。
式2-2-4中的两行也可以组合起来用下式表示:
![](http://img.blog.csdn.net/20160314225405450)
三、非线性支持向量机
对非线性可分模式分类, SVM的方法是, 将输入向量映射到一个高维特征向量空间,如果选用的映射函数适当且特征空间的维数足够高,则大多数非线性可分模式在特征空间中可以转化为线性可分模式,因此可以在该特征空间构造最优超平面进行模式分类,这个构造与内积核相关。
1、 基于内积核的最优超平面
设X为N维输入空间的向量,令Φ(X)=[φ1(X),φ2(X),…,φM(X)]TΦ(X)=[φ_1(X),φ_2(X) , …, φ_M(X)]^T表示从输入空间到M维特征空间的非线性变换,称为输入向量X在特征空间诱导出的“像” 。按照前面思路,可在该特征空间构建一个分类超平面:∑Mj=1ωjφj(X)+b=0\sum_{j=1}^M \omega_jφ_j(X)+b=0 式3-1-1
式中的wjw_j为将特征空间连接到输出空间的权值, bb为偏置或负阈值。
令 φ0(x)=1,w0=bφ_0(x) =1, w_0=b,上式可简化为:∑Mj=0ωjφj(X)=0\sum_{j=0}^M \omega_jφ_j(X)=0 (式3-1-2)或WTΦ(X)=0W^TΦ (X)=0(式3-1-3)
将适合线性可分模式输入空间的式:
W=∑Pp=1apdpXpW=\sum_{p=1}^Pa_pd^pX^p(式3-1-4)
用于特征空间中线性可分的“像”,只需用Φ(X)Φ (X)替换XX,得到:
W=∑Pp=1apdpΦ(Xp)W=\sum_{p=1}^Pa_pd^pΦ (X^p)(式3-1-5)
将上式代入式3-1-3可得特征空间的分类超平面为:
∑Pp=1apdpΦT(Xp)Φ(X)=0\sum_{p=1}^Pa_pd^pΦ ^T(X^p)Φ (X)=0(式3-1-6)
式中ΦT(Xp)Φ(X)Φ^T (X^p) Φ (X) 表示第pp个输入模式XpX_p在特征空间的像Φ(Xp)Φ (X^p)与输入向量XX在特征空间的像Φ(X)Φ (X)的内积,因此在特征空间构造最优超平面时, 仅使用特征空间中的内积。
补充分析:
![](http://img.blog.csdn.net/20160317184510854)
SVM算法教科书(二)
此外,写这篇文章,参考的文章基本上都会注明出处,但是难免会有疏忽,欢迎指正,不胜感激涕零。
最后,也期待大家一起交流、研究、学习。现在已经是半夜一点,依然在键盘不息,我计划3月底,这篇文章在保证高质量的前提下可以与大家相见,为此我努力尽力。
一、Boost库在VS2010环境中使用
Boost库在VS2010环境中使用
二、支持向量机
参考资料:
SVM支持向量机算法的详细推导(详细到每个步骤,值得推荐)
1、Vapnik提出的支持向量机(Support Vector Machine,SVM),解决模式分类与非线性映射问题。
从线性可分模式分类角度看, SVM的主要思想是: 建立一个最优决策超平面, 使得该平面两侧距平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。根据cover定理:将复杂的模式分类问题非线性地投射到高维特征空间可能是线性可分的,因此只要特征空间的维数足够高,则原始模式空间能变换为一个新的高维特征空间,使得在特征空间中模式以较高的概率为线性可分的。此时,应用支持向量机算法在特征空间建立分类超平面,即可解决非线性可分的模式识别问题。
什么叫线性可分?就是可以用一条或几条直线把属于不同类别的样本点分开。
SVM主要针对小样本数据进行学习、分类和预测(有时也叫回归)的一种方法,能解决神经网络不能解决的过学习问题。类似的根据样本进行学习的方法还有基于案例的推理( Case-Based Reasoning),决策树归纳算法等。
过学习问题: 训练误差过小导致推广能力下降,即真实风险的增加。
推广能力: generalization ability,也可以说是泛化能力,就是对未知样本进行预测时的精确度。
2、最优超平面的概念
考虑P个线性可分样本{(X1,d1)(X1,d1),(X2,d2)(X2,d2),…,(Xp−1,dp−1)(X_{p-1},d_{p-1}),…,(Xp,dp)(X_{p},d_{p})},对于任一输入样本XpX_p ,期望输出为dp=±1d_p =±1(代表两类类别标识)。
用于分类的超平面方程为:
WTX+b=0W^TX+b=0 式2-2-1
式中, XX为输入向量, WW为权值向量, bb为偏置(相当于前述负阈值),则有:
{WTXp+b>0,WTXp+b<0,dp=+1dp=-1\begin{cases}
W^TX^p+b>0, & \text{$d^p$=+1} \\
W^TX^p+b<0, & \text{$d^p$=-1}
\end{cases} 式2-2-2
超平面与最近的样本点之间的间隔称为分离边缘,用ρρ表示。
支持向量机的目标是找到一个分离边缘最大的超平面,即最优超平面。也就是要确定使ρρ最大时的WW和bb。
图2-2-1给出二维平面中最优超平面的示意图。可以看出,最优超平面能提供两类之间最大可能的分离,因此确定最优超平面的权值W0W_0和偏置b0b_0应是唯一的。在式子WTX+b=0W^TX+b=0,定义的一簇超平面中,最优超平面的方程应为:WTX0+b0=0W^TX_0+b_0=0 式2-2-3
直接求W0W_0和b0b_0基本上不太可能,除了训练集无别的信息可用,如何办?
一种方法:使求得的预测函数 y=f(x)=sgn(W⋅X+b)y = f(x) = sgn(W·X + b)对原有样本的分类错误率最小。 如何使分类错误率最小?下面慢慢分析:
x>0,sgn(x)=1x > 0, sgn(x) = 1
x=0,sgn(x)=0x = 0, sgn(x) = 0
x<0,sgn(x)=−1x < 0, sgn(x) = -1
参考:支持向量机通俗导论(理解SVM的三层境界)
图2-2-1
继续分析:
北大SVM讲义
二次规划
MATLAB解二次规划
由解析几何知识可得样本空间任一点X到最优超平面的距离为:
,从而有判别函数:
,g(X)g(X)给出从X到最优超平面的距离的一种代数度量。
将判别函数进行归一化,使所有样本都满足:
{WT0Xp+b0>0,WT0Xp+b0<0,dp=+1dp=-1\begin{cases}
W_0^TX^p+b_0>0, & \text{$d^p$=+1} \\
W_0^TX^p+b_0<0, & \text{$d^p$=-1}
\end{cases} 式2-2-4
则对于离最优超平面最近的特殊样本Xs满足: |g(Xs)|=1|g(Xs)|=1, 称为支持向量。由于支持向量最靠近分类决策面,是最难分类的数据点,因此这些向量在支持向量机的运行中起着主导作用。
式2-2-4中的两行也可以组合起来用下式表示:
三、非线性支持向量机
对非线性可分模式分类, SVM的方法是, 将输入向量映射到一个高维特征向量空间,如果选用的映射函数适当且特征空间的维数足够高,则大多数非线性可分模式在特征空间中可以转化为线性可分模式,因此可以在该特征空间构造最优超平面进行模式分类,这个构造与内积核相关。
1、 基于内积核的最优超平面
设X为N维输入空间的向量,令Φ(X)=[φ1(X),φ2(X),…,φM(X)]TΦ(X)=[φ_1(X),φ_2(X) , …, φ_M(X)]^T表示从输入空间到M维特征空间的非线性变换,称为输入向量X在特征空间诱导出的“像” 。按照前面思路,可在该特征空间构建一个分类超平面:∑Mj=1ωjφj(X)+b=0\sum_{j=1}^M \omega_jφ_j(X)+b=0 式3-1-1
式中的wjw_j为将特征空间连接到输出空间的权值, bb为偏置或负阈值。
令 φ0(x)=1,w0=bφ_0(x) =1, w_0=b,上式可简化为:∑Mj=0ωjφj(X)=0\sum_{j=0}^M \omega_jφ_j(X)=0 (式3-1-2)或WTΦ(X)=0W^TΦ (X)=0(式3-1-3)
将适合线性可分模式输入空间的式:
W=∑Pp=1apdpXpW=\sum_{p=1}^Pa_pd^pX^p(式3-1-4)
用于特征空间中线性可分的“像”,只需用Φ(X)Φ (X)替换XX,得到:
W=∑Pp=1apdpΦ(Xp)W=\sum_{p=1}^Pa_pd^pΦ (X^p)(式3-1-5)
将上式代入式3-1-3可得特征空间的分类超平面为:
∑Pp=1apdpΦT(Xp)Φ(X)=0\sum_{p=1}^Pa_pd^pΦ ^T(X^p)Φ (X)=0(式3-1-6)
式中ΦT(Xp)Φ(X)Φ^T (X^p) Φ (X) 表示第pp个输入模式XpX_p在特征空间的像Φ(Xp)Φ (X^p)与输入向量XX在特征空间的像Φ(X)Φ (X)的内积,因此在特征空间构造最优超平面时, 仅使用特征空间中的内积。
补充分析:
SVM算法教科书(二)
相关文章推荐
- 高斯分布_三种类别
- Block传值原理
- JS_原型
- 学习和使用STL
- iOS--页面间的代理传值(属性、代理(委托)、代码块、单例、通知)
- 简单的IO流应用-将文件夹中的所有文件拷贝到指定目录下
- lua相关
- html上传图片之前在网页预览实现
- 105. Construct Binary Tree from Preorder and Inorder Traversal LeetCode
- Java关键字static、final使用小结
- jquery基础篇(一)— —选择器
- iOS之页面传值
- C#高级编程 (第六版) 学习 第四章:继承
- Android--多媒体操作
- python 爬虫——针对query爬取百度百科页面
- java学习笔记——多线程
- iOS开发者计划简单介绍
- 常用排序算法总结
- hibernate中Session常用方法那些事(save(),flush(),delete().......)
- 在IE6下 浮动 margin-bottom会消失问题