宋强 1202121332 统计机器学习大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
统计机器学习大作业
学院:支持向量机理论
学院:电子工程
姓名:宋强
学号:1202121332
1 统计机器学习理论
目前机器学习的一个比较热门的方向是统计机器学习(另外一个可能是图模型,按照Jordan的说法是统计机器学习属于频率主义,而图模型属于贝叶斯主义),对于每一个做统计机器学习的研究者来说,他们大致可以分为两类:一类做统计学习理论相关工作,如泛化界、约简或一致性;一类做优化算法,如支持向量机、Boosting等。
作为一个纯统计机器学习的学者来说,我想这两块内容都得了解。
优化算法的门槛低点,可能比较容易上手,了解他们并不太难,比如支持向量机本质上是求解一个RKHS上的二次优化问题,Boosting是函数空间上的梯度下降优化问题。
统计学习理论的门槛高点,需要的基础数学知识多点,离计算机出生的人比较远,因而常常使人望而生畏。
最近本人对统计学习理论这块做了些整理,发现其实这块东西并非如想象的那么难,他们的本质无非是概率集中不等式在机器学习上的应用,下面以泛化界为例讲一下自己对那块内容的理解。
Talagrand(1996)说过: "A random variable that depends (in a "smooth way") on the influence of many independent variables(But not too much on any of them) is essentially constant". 中文上的意思是,依赖于许多独立随机变量的随机变量本质上是个常量,举个例子,经验风险就是一个依赖于一个随机训练样本集合的随机变量,因而经验风险本质上应该是个常量。
正因为如此,这个随机变量离开它均值的概率就以指数形势衰减,因此这就是泛化界中常见的如下论述:“以1-\sigma的概率,作如下论断”的由来。
目前使用的各种泛化界分析工具本质上正是基于这个原理,下面介绍下目前主流的三种泛化界分析方法,VC维,R复杂度和稳定性分析。
为了叙述清楚,如一个游戏开始之前需要设置游戏规则一样,这里简单介绍一下机器学习问题设置。
统计机器学习研究的问题一般是,给定一堆带标签的训练样本集合,需要从训练集合中学习出一个预测器来,对新的样本进行预测,使得预测结果尽可能的接近它的真实标签。
相应的,对统计机器学习理论分析,我们需要做如下一些假设:假设训练样本集合是从一个未知但固定的分布中独立同分布的抽取出来,学习的目标是根据这样一个样本集合,从一个事先给定的分类器集合中挑选出一个分类器,使得分类器的对从同一个分布中随机抽取的样本在给定的一个损失评价下的风险最小。
一个需要特别注意的是,在统计学习泛化界分析时,分类器的风险常常被认为是随机样本集上的一个随机变量,这样的随机风险集合(以分类器为索引)在统计上被叫做经验过程。
VC维可能是影响最深也是最早提出来的泛化界分析方法,V是统计机器学习理论的垫基者Vapnic的名称的缩写,这从名称上就验证了VC维在统计机器学习理论的影响力。
这块的分析得先从Hoeffding不等式说起,Hoeffding不等式本质说明一组独立随机变量的均值离开它的期望的可能性以指数形式衰减。
因此,对于任一给定的分类器F(F与训练样本集合无关), F与每个随机样本结合形成了一个F作用在该随机变量上的新的随机变量(取值0,1,即分对与分错),这个随机变量的期望刚好是F的期望风险,N个这样随机变量的均值刚好是F的经验风险,因此,我们获得了F在N个训练样本集合上的经验风险偏离F期望风险的可能性的概率描述,为叙述方便,以下简称经验风险偏离F期望风险为偏离情况。
然而,这样的概率描述只能针对一个F,它所起作用的那部分训练样本集合上也直接与F相关,而我们的学习是从事先给定的函数空间中选择一个F,因此我们并不能保证Hoeffding不等式作用的那个F就是我们选择出来的F,即使假设我们没看到训练样本集合之前,我们已经知道选择哪个F,我们在推导该F与最优F(函数空间里期望风险最小的F)之间关系时,也需要一个不随样本集合变化的概率描述。
因此,我们需要一个对函数空间中的所有F一致成立的偏离情况的可能性的概率描述,这就是泛化界里常说的uniform。
当函数空间的势是个有限值时,这种情况比较容易处理,分别对每个F运用Hoeffinding不等式,所有的偏离可能性的和就是存在一个F,它的偏离情况超过一个给定值的概率的上界。
反过来说,即是假设空间里的任何函数都以至少一定的概率,偏离情况小于一个给定值。
当函数空间的势不是一个有限值时,上面的处理就遇到了问题,因为无穷个偏离可能性的和是个无穷大的数,这样的上界就是个无意义的事。
为了处理这种情况,我们的先驱者注意到了以下两个情况:1)假设空间的中所有函数偏离情况的上确界是所有函数偏离情况的上界;2)在任何有限的样本上(比如N),尽管函数空间的势是无穷的,但是它们作用在有限个样本的分类情况却是有限的(上界是2^N)。
如果我们能够找到偏离情况的上确界的概率的一个上界,并且这个上界能够以有限个样本上的某种概率表达出来,我们就能解决问题。
具体的做法是,可以证明偏离情况的上确界的概率的一个上界是两个同样大小的从同一分布中抽取的训练样本集合经验风险之差的概率的上确界。
然后对后者就可以使用有限假设空间下的Hoeffinding不等式,得出后者偏离情况的概率描述。
为了得到比较精确的界的描述,必须刻画函数集合在有限样本上的分类情况,这个分类情况对应的术语叫生长函数,它表示N 个样本被函数空间的函数们分成不同情况的最大值。
为了计算生长函数,VC维被定义出来,它描述了函数集合分类样本的能力,具体表现为函数集合能够任意分类的最大样本个数。
由生长函数和VC维定义马上知道,当样本的个数N小于等于VC维时,生长函数的值等于
2^N, 否则生长函数的值小于2^N。
这也说明了,一个有限VC维空间的生长函数并非指数增长,从而避免了界的无意义性。
Vapnik老前辈已经为我们推导出了生长函数与VC维的关系不等式,将他们之间的关系降到了多项式,因而我们的界从O(1)->O(sqrt(logn/n))。
后人在此基础上又提出了一些改进,主要集中在如何让不等式的界更紧,比如比生长函数小的VC熵,对函数能力的更有效描述的覆盖数,还有对Hoeffding不等式的改进版本Bernstein 不等式等。
VC维这套理论的建立为统计机器学习的理论铺下了坚实的理论基础,从此机器学习变得有理可依,也许这就是机器学习从人工智能中分离出来的一个重要因素之一,然而由于VC维的难以计算,还是给具体应用带来了不便(目前常用的一个事实是,d维超平面集合的VC维是d+1)。
R复杂度的提出,动机之一就是克服VC维的的不容易计算。
另外一个原因是某些算法在无穷维空间里也获得了很好的经验性能,然而却不能用VC维解释。
比如RKHS中的函数都是无穷维的,在此空间得出的用VC维表达的界是平凡的,无法对实际算法设计提供指导。
与VC维类似,R复杂度也是对一个函数集合能力的描述,它描述了函数集合拟合噪声的能力,能力越强,R复杂度越大。
R复杂度有两种:一种是期望R复杂度,一种是经验R 复杂度,期望R复杂度与经验R复杂度本质上也是经验量与期望量之间的关系,因而也可以用概率集中不等式描述其中的关系,经验R复杂度因为是给定了N个样本的情况,因而更容易计算。
与VC维的分析类似,R复杂度的分析也是专注于偏离情况的上确界,与VC 维不同的是,这儿使用了一个比Hoeffinding更强大的不等式McDiarmid集中不等式,由Mcdiarmid不等式我们可以得出,偏离情况与期望偏离情况之间的差的概率描述。
其中期望偏离情况的分析比较复杂,通过一些列分析可以得出期望偏离情况的一个上界,刚好是函数集的R复杂度,由此我们得到了与VC维类似的一个泛化风险界,其中生长函数被替换成了R复杂度。
R复杂度的计算比VC维容易,常常可以根据一些不等式如Cauchy-Schwarz 或Jensen不等式求出,另外机器学习大牛们还提供了一些组合函数的与个体函数之间R复杂度的关系的计算公式,因此对于实际应用更有指导意义,比如我们可以从中推导出著名的Margin界。
VC维和R复杂度存在的一个问题是,它们关心的都是整个函数空间的拟合能力,而对算法如何搜索函数空间无关,实际上我们并不需要一个对整个函数空间都成立的界,我们关心的只是我们的算法可能搜索到的函数的泛化能力,此外,描述一个函数空间能力大小的事也不是一件容易的事情。
因此,我们需要一个能够仅仅对我们算法搜索出来的解的泛化能力分析的概率表达式子。
因此与前面两种分析方法不一样的是,稳定性分析关心的是算法搜索
出来的解的偏离情况的概率描述。
稳定性描述的是当训练样本集合中的训练样本发生变动时(常常研究一个变动),算法输出的分类器是如何变化的,用的最多是算法的一致稳定性,它表示,当训练集合中的一个样本被替换或者删掉时,分类器的输出的函数在定义域上变动的最大值,这个最大值称为稳定数,即对应于两个函数之差的无穷范数。
有了这个工具后,我们对算法输出的函数的偏移情况与期望偏移情况使用McDiarmid集中不等式,就可以得出偏移情况的一个上界,在对期望偏移情况分析,可以得出期望偏移情况的一个用算法稳定数表示的上界,因此我们得到了一个用稳定数表达的算法输出的函数期望风险的上界。
由于我们需要得到一个有意义的上界,因此稳定数至少应该长得像1/N。
接下来稳定性分析关心的是,如何计算有效的稳定数的问题,大牛们已经提供了一套在正则化RKHS空间下的算法稳定性的计算公式,可以发现这个空间下的算法的确满足1/N的形式。
统计机器学习推动了机器学习的发展,统计学习理论的建立为统计机器学习奠定了坚实的基础,随着统计机器学习理论的发展,相信不久将来更紧的更容易指导实践的界会被提出来。
想做这块研究的人需要一定的数学基础,然而,做出来的东西确很少有实际价值,因此需要慎重对待。
好了,改天有空再写写自己对一致性或约简的一些体会。
支持向量机(SVM)是Vapnik等人根据统计学习理论提出的一种学习方法,近年来在模式识别、回归分析、图像处理和数据挖掘等方面得到了广泛应用。
支持向量机方法根据Vapnik的结构风险最小化原则,尽量提高学习机的泛化能力,即由有限训练样本得到的决策规则,对独立的测试集仍能够得到小的误差。
此外,支持向量机算法是一个凸二次优化问题,能够保证找到的极值解就是全局最优解。
这些特点使支持向量机成为一种优秀的学习算法。
目前在国外,SVM是一个研究的热门,并目已经取得了一些成果。
这一点可以从近几年国外发表的学术论文石…出,IEEE Transactions on Neural Networks也已经出版了关于VC 理论和SVM方面的专集。
自从90年代初经典SVM的提出,由十其完整的理论框架和在实际应用中取得的很多好的效果,在机器学习领域受到了广泛的重视。
其理论和应用在横向和纵向上都有了发展。
目前对SVM的理论研究与进展主要包括:模糊支持向量机;最小二乘支持向量机;加权支持向量机;主动学习的支持向量机等。
而对算法的改进主要内容有:降低计算量;自适应算法的研究;噪声数据处理;核函数的构造和参数的选择理论研究;主动学习策略的应用;增量学习等。
虽然SVM方法在理论上具有很突出的优势,但与其理论研究相比,应用研究相对比较
落后。
最近几年,应用研究才逐渐地多起来。
在模式识别领域,包括手写体数字识别、人脸检测、语音识别、目标识别、文本分类等方面,取得了一定的成果。
此外,支持向量机具有调节参数少,运算速度快,时间代价小的优点,随着支持向量机理论研究的逐步深入,支持向量机在模式识别、回归估计、概率密度函数估计等问题上的研究也逐步深入,必将成为各国研究者的研究热点。
2 支持向量机原理
支持向量机(Support Vector Machine ,简称SVM)是由Vapnik 等人提出的,是建立在统计学习理论的VC 维理论和结构风险最小原理的基础上发展起来的一种机器学习方法。
支持向量机集成了最大间隔超平面、Mercer 核、凸二次规划、稀疏解和松弛变量等多项技术[32)。
支持向量机的学习目标就是构造一个决策函数,能够将数据点尽可能多的正确分开。
2.1、线性支持向量机
支持向量机是由线性可分的分类问题发展而来的。
对于线性可分的二类分类问题,能够将其准确分开的直线不是唯一的,而支持向量机就是要从训练样本中找出一个最优的分类超平面,以保证分类的错误率最小。
假设存在训练样本()()()1122{,,,,,,}n n x y x y x y ,其中n i x R ∈是第i 个训练样本的特征向量,{1,1}i y ∈+-为分类识别号,n 为样本数。
2.1.1 线性可分问题
如果有子集1i y =+代表的类和1i y =-的类是线性可分的,则存在一个可将其两类分离的超平面的决策方程:
0T W x b ⋅+=
其中, “”是向量点积,x 是输入向量,W 是超平面的法线向量,b 是偏置,如图2.1
是二位两类线性可分的情况。
图2.1 最优超平面示意图
上图中的实心圈和空心圈分别代表为两类的训练样本,H 为把两类分开的分类线,1H 和
2H 分别为过各类样本中离分类线最近的点并且平行于分类线H 的直线,
那么1H 和2H 之间的距离即为两类的分类间隔(margin)。
所谓最优分类线就是要求分类线不但能将两类无错误的分开,而且要使两类的分类间隔最大。
离分类线距离最小的训练点,决定了最优分类线,即为支持向量((Support Vector)。
图中带方框的训练样本即为支持向量。
为了是分类线对所有样本正确分类并且具备最大的分类间隔,就是要求它满足如下约束:
()121,1
11,1i T T i i i T i i H W x b y y W x b H W x b y ⋅+≥+=+⇔⋅+≥⋅+≤-=-:: 其中1,2,,i n =
距离分类线最近的训练样本与分类线的距离
()T i i W x b d x W ⋅+=
如果限定1T i W x b ⋅+=,则()1i d x W =,则相对应的分类间隔为2W。
可以通过最小化2W 达到最大分类间隔
2W 。
因此,两类线性可分的支持向量机问题是一个二次规划问题,满足强对偶性条件如下
2
min 2W
..s t ()1T i i y W x b ⋅+≥
约束条件就是要保证每个学习样本都能够被正确分类。
总共有n 个训练样本,相应地就有n 个约束表达式。
这是个凸规划问题,则引用拉格朗日乘子()12,,,T
n A ααα= 解决约束最优化问题,则上式的拉格朗日函数为
()()()212111,,[1]21[]2n T i i i i n n T i i i i i i L W b W y W x b W y W x b αααα====-⋅+-=-⋅++∑∑∑ 同过对相应的W 和b 求偏导,然后带入到原始的拉格朗日函数中,可得
()(
)211
,1,11
1
,11,,[]21=21=2n n T i i i i i i n
n n i j i j i j i j i j i j i i j i j i n
n
i i j i j i j i i j L W b W y W x b y y x x y y x x y y x x ααααααααααα========-⋅++⋅-⋅+-⋅∑∑∑∑∑∑∑ 将上面的问题变为了新的问题 (
)1
,111max 2..0
n n
i i j i j i j i i j n i i i W y y x x s t y ααααα====-⋅=∑∑∑
这是个不等式约束的二次函数极值问题。
条件要求最优解()
***,,W b α必须满足 ()
*
**[-1]=0i i i y W x b α⋅+ 其中1,2,,i n =
假设参数*α是上面的二次优化问题的解,则权重向量 *
*
1
n
i i i i W y x α==∑ 即最优分类面的权重向量是训练样本向量的线性组合。
得到了最大间隔超平面的决策函数
(
)()
****1sgn sgn n i i i i f x W X b y x b α=⎛⎫=⋅+=+ ⎪⎝⎭∑
其中x 是待分类的样本,*b 为分类的阈值,可以通过两类中任意一对支持向量值得到
***2r s
W X W X b ⋅+⋅=-
其中,r s x x 表示两类中任意一对支持向量。
2.1.2线性不可分问题
在很多现实情况下,训练样本数据具有噪声,特征空间一般不能线性分开,不可能建立一个不具有分类误差的分类超平面。
如下图所示,希望找到一个最优超平面,对整个训练集合平均的分类误差的概率达到最小。
图2.2 线性不可分示意图
我们在原有基础上引入了松弛变量0,i i ξξ≥可以用来度量样本i x 违反约束条件的程度,在允许一定的程度上违反间隔约束。
约束条件就变为
()1,T i i i y W x b ξ⋅+≥- 1,2,,i n =
对于01i ξ≤≤,样本i x 落入分离区域的内部,挡在分类面的正确一侧,对于1i ξ≥,则i ξ可以用来度量样本i x 违反约束条件的程度,在允许一定的程度上违反间隔约束。
约束条件就变为
()1,T i i i y W x b ξ⋅+≥- 1,2,,i n =
则问题的目标函数和约束条件就为
()211min 2..1n
i
i T i i i
W C s t y W x b ξξ=+⋅+≥-∑ 其中0,1,2,,i i n ξ≥=
其中1n i i ξ=∑提现了经验风险,2
W 体现了表达能力,C 为惩罚参数,它的作用是控制
对错分样本的惩罚程度,实现在错分样本的比例与最大分类间隔之间的折中,C 数值越大,则对错误的惩罚越重,这个值得选取依赖于经验或通过实验确定。
相应地,也可以通过拉格朗日函数来求参数。
线性不可分的约束最优化问题中W 和b 的最优值的计算和线性可分情况中的过程是相同的,因此线性可分可以看作是线性不可分的特例。
线性可分和线性不可分也仅仅区分在它们的约束条件不同,线性可分的约束条件是0i α≥,而线性不可分的约束条件是0i C α≤≤。
2.2 非线性支持向量机
在上述讨论的支持向量机必须所有的训练样本能够被线性分开,构造出最优分类面,很多实际情况中训练样本是不能够被线性分开的,就引出了非线性支持向量机。
非线性支持向量机的实现就是通过某种事先选择的非线性映射(核函数)将输入向量映射到一个高维特征空间中,在这个空间中构造最优分类超平面。
假设有非线性映射:,n R H φ→将输入向量从原始的低维空间n
R 映射到新的高维空间H 中去,然后在高维特征空间中利用二次规划的方法寻找最优超平面。
这就意味着建立非线性学习器分为两步:首先使用一个非线性映射将训练样本数据变换到一个特征空间中,然后在这个特征空间使用线性学习分类器分类。
图2.3展示了样本从二维输入空间映射到二维特征空间,在输入空间数据不能通过线性函数分开,但是在特征空间是可以的[1]。
图2.3 特征的映射
在上面的线性支持向量机对偶问题中,不论是目标函数还是分类函数都只涉及到训练样本之间的内积运算,i j x x ,如果有一种方式可以在高维特征空间中直接计算内积,就避免了复杂的高维运算。
就像在原始输入点的函数中一样,就有可能将两个步骤融合到一起建立一个非线性的学习器。
因此,我们只要能够找到一个核函数K 使得()()(),,i j i j K x x x x φφ=。
根据泛函的有关理论,只要核函数满足Mercer 条件,就对应某一变换空间的内积。
因此,在最优分类面中采用满足Mercer 条件的内积函数(),i j K x x 就可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加。
将核函数()
,i j K x x 带入原问题中,即可得到用于分类的非线性的支持向量机 ()()22
11min 2..1n i i T i i i
W C s t y W x b ξφξ=++≥-∑
求解最优决策方法与线性的类似。
训练样本数据映射到高维特征空间中,在求解最优化问题和计算决策函数时并不需要显式计算该非线性函数,而只需计算核函数,从而避免了特征空间的维数灾难。
核函数是输入空间和特征空间之间的映射,核函数的选择对非线性支持向量机的构建起着至关重要的作用,核函数的选择是一个难题,下面列出了几种常用的核函数:
(1) 线性可分
(),K x y x y =⋅
(2) 多项式核函数
()(),,d
K x y x y r γ=+
(3) 径向基(RBF)核函数 ()()2,exp K x y x y
γ=--
(4) Sigmoid 核函数(多层感知器核函数) ()()(),tanh ,K x y x y r γ=+
(5) 正则傅里叶核函数
()()()
2
21,212cos y K x y x y γγ-=--+ 2.3 支持向量机复杂度
使用SVM 进行分类的时候,实际上是训练和分类两个完全不同的过程,因而讨论复杂度就不能一概而论,我们这里所说的主要是训练阶段的复杂度,即解那个二次规划问题的复杂度。
对这个问题的解,基本上要划分为两大块,解析解和数值解。
解析解就是理论上的解,它的形式是表达式,因此它是精确的,一个问题只要有解,那它的解析解是一定存在的。
当然存在是一回事,能够解出来,或者可以在可以承受的时间范围内解出来,就是另一回事了。
对SVM 来说,求得解析解的时间复杂度最坏可以达到O(Nsv3),其中Nsv 是支持向量的个数,而虽然没有固定的比例,但支持向量的个数多少也和训练集的大小有关。
3 多类分类问题
经典的支持向量机主要解决的是二分类问题,而在实际问题中,除了二分类问题,还有很多是多类分类问题。
为实现多分类的问题,SVM 应用不同的组合策略达到多分类的目的。
3.1 一对一组合
一对一分类法[2,3,4](One-Versus-One ,简称OVO)也称为成对分类法,是一种将多分类问题分解为多个两分类子问题,每次只是选取其中的两类训练样本,在任意两类间构建分类超平面,假设有n 类问题,总共需要构造n(n 一1)/2个二值SVM 分类器。
如图3.1
图3.1 一对一多分类示意图
当对一个未知样本进行分类时,使用投票法:每个分类器都对其类别进行判断,并为相应的类别投上一票,最后得票最多的类别即作为该未知样本的类别。
3.2一对多组合分类
一对多组合分类法[3](One Versus Rest,简称OVR)是最早的多类分类算法,该方法的基本思想就是先将每一类训练样本同其它所有类别的训练样本区分开来,构造所有可能的两分类SVM,再采用某种结合策略将训练得到的全部两分类SVM组合起来解决多分类问题。
如下图所示。
对n类问题,该方法需构造n个二类支持向量机,每个支持向量机分别把某一类数据从其他类别中分离出来。
图3.2 一对多多分类示意图
对任意一个未知样本的判别方法,就是将样本点分别代入上述的n个分类决策函数中,具有最大分类函数值关(x)的那个类,即为样本点的类别。
4 基于SVM实验与分析
实验用的数据来自UCI数据集Blood Transfusion Service Center 的数据集,此数据有5个属性,是一个两类数据。
所有试验都是随机选一定百分比的样本作为训练样本,剩下的样本作为测试样本。
接下来几组试验就是为了更好地了解SVM以及功能,主要是分类方面的了解。
第一组实验是运用不同的训练样本来计算分类精度,该实验用不同百分比来取训练样本,每个百分比的训练样本迭代5次,然后求平均精度值。
我们运用两种SVM来对比,一种是RBF核SVM,另一种就是线性SVM。
实验结果如下图
图4.1 不同训练样本下的分类精度
从图4.1可以看出,分类精度并不高。
整体来说,随着训练样本数的增多,分类精度也会提高,但是增加到一定程度后趋于稳定。
但线性核SVM明显比rbf核SVM好,说明此数据趋于线性可分,更适合线性核SVM分类器。
第二组实验是运用实验精度较好时的训练样本训练而求得ROC图,如图4.2。
该实验取总样本数的30%作为训练样本,剩余样本作为测试样本。
用到的RBF核参数c(惩罚因子)和g(核参数)分别为1000和0.000001。