一核有难多核围观学习时 对多个核进行组合 特征需要分为几类吗

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于多特征和多核学习的行人检测方法的研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口总体评分:
我的评分:
借阅关系图1516人阅读
机器学习(58)
图像处理(56)
SVM是机器学习里面最强大最好用的工具之一,它试图在特征空间里寻找一个超平面,以最小的错分率把正负样本分开。它的强大之处还在于,当样本在原特征空间中线性不可分,即找不到一个足够好的超平面时,可以利用核(kernel)函数,将特征映射到希尔伯特(Hilbert)空间。后者一般维度更高,通过这样的映射之后,样本在新的特征空间中便是线性可分的了。
记得刚刚学习SVM的时候,对“核”这个词很恐惧,一直理解不了它究竟是什么。在看MKL的时候,又经常会遇到“核矩阵”(kernel matrices)这个词。现在说一下我的理解。
刚才说过,我们通过核把特征从低维空间映射到高维空间。举例来说,我们看下面的多项式核函数:
其中x,y是两个样本,他们的特征分别是(x1,x2),(y1,y2),通过这个核函数,可以看到二维特征被映射到了六维特征。而且我们也可以理解,这个映射其实就是用一个矩阵A乘以原来的特征(x1,x2)得到的。矩阵A也就是核矩阵了。一个核函数对应一个核矩阵。
2.基本概念阐述
&&&&特征融合:主要用来描述各种不同的特征融合方式,常见的方式有前期融合,就是前面所描述的将各个特征拼接在一起,后期融合本文后面会提到
&&&&核函数:SVM遇到线性不可分问题时,可以通过核函数将向量映射到高维空间,在高维空间线性可分
&&&&多核学习:在利用SVM进行训练时,会涉及核函数的选择问题,譬如线性核,rbf核等等,多核即为融合几种不同的核来训练。
3.应用背景
&&&&在图片搜索中,会出现这样的一类badcase,图像的内容和描述图像的文本不一致,经常会有文本高相关,而图像完全不一致的情况。解决这类问题的一个思路就是综合利用图像的内容分类属性和文本的query分类属性,看两者的匹配程度做相应策略。
4.分类方法的选取
对分类熟悉的同学,马上可能要说出,这还不easy,抽取各种特征,然后一拼接,随便找个分类器,设定几个参数,马上分类模型文件就出来啦,80%准确率没问题。
&&&&图像的分类问题跟一般的分类问题方法本质上没太大差异,主要差异体现在特征的抽取上以及特征的计算时间上。
&&&&图像特征的抽取分为两部分,一部分是针对通用图像的特征,还有一部分则是针对特定类别抽取的特征。这些特征与普通的文本特征不一致的地方在于,一个图像特征由于存在分块、采样、小波变换等,可能维度就已经很高。譬如常见的MPEG-7标准中提到的一些特征,边缘直方图150维,颜色自相关特征512维等。在分类过程中,如果将这些特征拼接在一起直接就可能过千维,但是实际在标注样本时,人工标注的正负样本也才几千张,所以在选择分类器时,挑选svm,该分类器由于可以在众多分类面中选择出最优分界面,以及在小样本的学习中加入惩罚因子产生一定软边界,可以有效规避overfitting。
&&&&在特征的计算时间上,由于图像处理涉及的矩阵计算过多,一个特征的计算时间慢的可以达到0.3秒,所以如何挑选出既有效又快速的特征也非常重要。
5.两种特征融合方式的比较
&&&&那刚才的方法有什么问题呢?
仔细想想,大致存在以下几点问题:
&&&& 1. 你所提取的所有特征,全部串在一起,一定合适么?如果我想知道哪些特征组合在一起效果很好,该怎么办?
&&&& 2. 用svm进行学习时,不同的特征最适合的核函数可能不一样,那我全部特征向量串在一起,我该如何选择核函数呢?
&&&& 3. 参数的选取。不同的特征即使使用相同的核,可能最适合的参数也不一样,那么如何解决呢?
&&&& 4. 全部特征都计算,计算时间的花销也是挺大的
对于刚才的问题,如果用前期融合,可能是用下面方式来解决:
&&&& 1. 根据经验,觉得在样本中可能表现不错的特征加进来,至于组合么,全部串在一起,或者选几个靠谱的串一起,慢慢试验,慢慢调,看哪些特征有改进就融合在一起
&&&& 2. 也是根据经验,选取普遍表现不错的RBF核,总之结果应该不会差
&&&& 3. 交叉验证是用来干嘛的?验证调优参数呗,全部特征融合在一起,再来调,尽管验证时间长,不要紧,反正模型是离线训练的,多调会也没关系。
&&&&那是否有更好的选择方案呢?
& &&我们学过的SVM都是单核(single kernel)的,在使用的时候,需要我们根据经验或试验来选择用哪种核函数、怎样指定它的参数,这样很不方便。另一方面,实际应用当中,特征往往不是single
domain的,而是异构的。拿图像分类来说,我们可能用到颜色相关的特征、纹理相关的特征、空间相关的特征,这几类特征对应的最佳的核函数未必相同,让他们共用同一个核函数,未必能得到最优的映射。对这些问题的思考,就引出了MKL。
简单地说,我们给定一些basekernels,比如linear,Polynomial,RBF,Sigmoid,对于每一个,可以指定多组参数,也就是一共有M个base kernels,我们想用它们的线性组合来作为最终的核函数。通过training,得到这个线性组合中每个kernel的权重d(weight)。由于融合了各种kernel,可以照顾到异构的特征;由于自动学习权重,我们就不需要费脑子想究竟用哪一个核哪一种参数,把可能的核、参数都拿过来,组合着来用就可以了。
多核学习(MKL)可能是个不错的选择,该方法属于后期融合的一种,通过对不同的特征采取不同的核,对不同的参数组成多个核,然后训练每个核的权重,选出最佳核函数组合来进行分类。
与传统的单核SVM的不同,就是除了要学习w、b之外,还要学习上面提到的权重d。这样的话,decision function, cost function都会有些变化,棘手的是,cost function 的求解不再是一个convex problem,传统的优化方法就不适用了。近年来MKL比较热,很多论文都是在优化方法上面下功夫,企图达到更快的收敛速度、更好的解。具体的优化方法就比较复杂了,略去。
&&&&先看下简单的理论描述:
&&&&普通SVM的分类函数可表示为:
&&&&其中为待优化参数,物理意义即为支持向量样本权重,用来表示训练样本属性,正样本或者负样本,为计算内积的核函数,为待优化参数。
&&&&其优化目标函数为:
&&&& 其中用来描述分界面到支持向量的宽度,越大,则分界面宽度越小。C用来描述惩罚因子,而则是用来解决不可分问题而引入的松弛项。
&&&& 在优化该类问题时,引入拉格朗日算子,该类优化问题变为:
&&&& 其中待优化参数在数学意义上即为每个约束条件的拉格朗日系数。
&&&& 而MKL则可认为是针对SVM的改进版,其分类函数可描述为:
&&&& 其中,表示第K个核函数,则为对应的核函数权重。
&&&& 其对应的优化函数可以描述为:
&&&& 在优化该类问题时,会两次引入拉格朗日系数,参数与之前相同,可以理解为样本权重,而则可理解为核函数的权重,其数学意义即为对每个核函数引入的拉格朗日系数。具体的优化过程就不描述了,不然就成翻译论文啦~,大家感兴趣的可以看后面的参考文档。
&&&& 通过对比可知,MKL的优化参数多了一层其物理意义即为在该约束条件下每个核的权重。
&&&& Svm的分类函数形似上是类似于一个神经网络,输出由中间若干节点的线性组合构成,而多核学习的分类函数则类似于一个比svm更高一级的神经网络,其输出即为中间一层核函数的输出的线性组合。其示意图如下:
&&&& 在上图中,左图为普通SVM示例,而全图则为MKL示例。其中为训练样本,而为不同的核函数,为支持向量权重(假设三个训练样本均为支持向量),为核权重,y为最终输出分类结果。
6.实验过程与相关应用
&&&&以实际对地图类别的分类为例,目前用于分类的特征有A,B,C,D,E,F,G(分别用字母代表某特征),这些特征每个的维数平均几百维。
&&&& 准备工作:
&&&& 1. 人工标注地图类别正负样本,本次标注正样本176张,负样本296张
&&&& 2. 提取正负训练样本图片的A~G各个特征
&&&& 3. 归一化特征
&&&& 4. 为每个特征配置对应的核函数,以及参数
&&&& 工具:
&&&&Shogun工具盒:,其中关于该工具的下载,安装,使用实例都有详细说明。该工具除了提供多核学习接口之外,几乎包含所有机器学习的工具,而且有多种语言源码,非常方便使用。
&&&&结果测试:
&&&&经过大约5分钟左右的训练,输出训练模型文件,以及包含的核函数权重、准确率。
&&&&在该实例中,7个特征分别用七个核,其权重算出来为:
&&&&0...335 0..232,
&&&&最终在测试样本上准确率为:91.6%
&&&&为了节省特征抽取的时间,考虑去掉权重较小的特征A、C、F,
&&&&拿剩下4个核训练,几分钟后,得到核函数权重如下:
&&&&0....370261,
&&&&最终在测试样本上准确率为:91.4%
&&&&在这次训练中,就可以节约抽取A、C、F特征的训练时间,并且很快知道哪些特征组合在一起会有较好的结果。
&&&&实验的几点说明:
&&&& 1. 该类别的分类,因为样本在几百的时候就已经达到不错效果,所以选取数目较少。
&&&& 2. 该实验是针对每个特征选择一个核,且每个核配置固定参数,实际中如果时间允许,可以考虑每个特征选不同核,同一核可以选取不同参数,这样可以得到稍微更好的结果。
&&&& 参考文章:
&&&&Large Scale Multiple Kernel Learning
&&&&SimpleMKL
&&&&Representing shape with a spatial pyramid kernel
&&&&参考代码:
多核线性组合,最经典的是simpleMKL,也被作为MKL的具体实现,应用在了计算机各领域。为了使MKL应用地更广,应对各种特征组合、各种样本量级,后来又有人提出了GMKL,G即Generalized,最优化方法用的是PGD(Projected Gradient
Descend)。为了改进收敛效果,Vishwanathan又提出SPG-GMKL(Spectral Projected Gradient),同时提出了多核的product组合。SPG-GMKL也被后来者视作state-of-art。
除了MKL,还有一个MKB(Multiple Kernel Boosting),大连理工大学的卢湖川有几篇论文就是用MKB做跟踪。论文生成MKB是基于MKL的,我觉得不然。请看MKB的框架图:
这里的确用到多核,但每一个SVM都是单核的,根本没有用到多核训练的东西。本质上就是训练出M * N个single-kernel SVM,然后用boosting的方法,把这些弱分类器ensemble为一个强分类器。用到的就是传统的SVM加传统的boosting,只是名字新,实质并无新意。
TKDE12 有一篇 MKBoost论文,这应该是正宗的MKB,它提出了一个框架,并提供了几个formulation,然后与MKL做了比较。论文中全是公式,没有看,以后需要的时候再研究吧。
MKL的经典实现有SimpleMKL,Shogun,SPG-GMKL,SMO-MKL。
如果只是要使用MKL,可以不看论文中的推导,更多的是看看上述几种实现附带的例子;可以看看MKL在跟踪、图像分类中的使用,输入输出是什么;可以看看和教程。
7.个人经验与总结:
&&&&1. 多核学习在解释性上比传统svm要强。多核学习可以明显的看到各个子核中哪些核在起作用,哪些核在一起合作效果比较好。
&&&& 2. 关于参数优化。曾经做过实验,关于同一特征选用同一核,但是不同参数,组合成多个核,也可以提升分类准确率。
&&&& 3. 多核学习相比前期特征融合在性能上会有3%~5%左右的提升。
&&&& 4. 通过特征选择,可以节约特征计算时间。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:260063次
积分:4689
积分:4689
排名:第4982名
原创:190篇
转载:172篇
评论:71条
(6)(6)(1)(3)(1)(5)(5)(2)(9)(3)(1)(10)(4)(5)(3)(18)(12)(28)(17)(35)(7)(19)(29)(13)(4)(2)(6)(11)(2)(88)(2)您的位置: &
基于多核学习的多特征融合图像分类研究
优质期刊推荐百度技术 的BLOG
用户名:百度技术
文章数:403
评论数:153
访问量:1129098
注册日期:
阅读量:5863
阅读量:12276
阅读量:390101
阅读量:1081130
51CTO推荐博文
分类在搜索引擎中的应用非常广泛,这种分类属性可以方便在rank过程中针对不同类别实现不同的策略,来更好满足用户需求。本人接触分类时间并不长,在刚用SVM做分类的时候对一个现象一直比较困惑,看到大家将各种不同类型特征,拼接在一起,组成庞大的高维特征向量,送给SVM,得到想要的分类准确率,一直不明白这些特征中,到底是哪些特征在起作用,哪些特征组合在一起才是最佳效果,也不明白为啥这些特征就能够直接拼在一起,是否有更好的拼接方式?后来了解到核函数以及多核学习的一些思想,临时抱佛脚看了点,对上面的疑问也能够作一定解释,正好拿来和大家一起探讨探讨,也望大家多多指点。本文探讨的问题所列举的实例主要是围绕项目中的图像分类展开,涉及SVM在分类问题中的特征融合问题。扩展开来对其他类型分类问题,理论上也适用。
关键词: SVM& 特征融合 核函数 多核学习
2基本概念阐述
SVM:支持向量机,目前在分类中得到广泛的应用
特征融合:主要用来描述各种不同的特征融合方式,常见的方式有前期融合,就是前面所描述的将各个特征拼接在一起,后期融合本文后面会提到
核函数:SVM遇到线性不可分问题时,可以通过核函数将向量映射到高维空间,在高维空间线性可分
多核学习:在利用SVM进行训练时,会涉及核函数的选择问题,譬如线性核,rbf核等等,多核即为融合几种不同的核来训练。
在图片搜索中,会出现这样的一类badcase,图像的内容和描述图像的文本不一致,经常会有文本高相关,而图像完全不一致的情况。解决这类问题的一个思路就是综合利用图像的内容分类属性和文本的query分类属性,看两者的匹配程度做相应策略。
4分类方法的选取
下面就可以谈到本文的重点啦,那是如何对图像分类的呢?
对分类熟悉的同学,马上可能要说出,这还不easy,抽取各种特征,然后一拼接,随便找个分类器,设定几个参数,马上分类模型文件就出来啦,80%准确率没问题。
那这个方法确实不错也可行,但是有没有可以改进的地方呢?
这里可能先要说明下图像分类的一些特殊性。
图像的分类问题跟一般的分类问题方法本质上没太大差异,主要差异体现在特征的抽取上以及特征的计算时间上。
图像特征的抽取分为两部分,一部分是针对通用图像的特征,还有一部分则是针对特定类别抽取的特征。这些特征与普通的文本特征不一致的地方在于,一个图像特征由于存在分块、采样、小波变换等,可能维度就已经很高。譬如常见的MPEG-7标准中提到的一些特征,边缘直方图150维,颜色自相关特征512维等。在分类过程中,如果将这些特征拼接在一起直接就可能过千维,但是实际在标注样本时,人工标注的正负样本也才几千张,所以在选择分类器时,挑选svm,该分类器由于可以在众多分类面中选择出最优分界面,以及在小样本的学习中加入惩罚因子产生一定软边界,可以有效规避overfitting。
在特征的计算时间上,由于图像处理涉及的矩阵计算过多,一个特征的计算时间慢的可以达到0.3秒,所以如何挑选出既有效又快速的特征也非常重要。
5两种特征融合方式的比较
那刚才的方法有什么问题呢?
仔细想想,大致存在以下几点问题:
1. 你所提取的所有特征,全部串在一起,一定合适么?如果我想知道哪些特征组合在一起效果很好,该怎么办?
2. 用svm进行学习时,不同的特征最适合的核函数可能不一样,那我全部特征向量串在一起,我该如何选择核函数呢?
3. 参数的选取。不同的特征即使使用相同的核,可能最适合的参数也不一样,那么如何解决呢?
4. 全部特征都计算,计算时间的花销也是挺大的
对于刚才的问题,如果用前期融合,可能是用下面方式来解决:
1. 根据经验,觉得在样本中可能表现不错的特征加进来,至于组合么,全部串在一起,或者选几个靠谱的串一起,慢慢试验,慢慢调,看哪些特征有改进就融合在一起
2. 也是根据经验,选取普遍表现不错的RBF核,总之结果应该不会差
3. 交叉验证是用来干嘛的?验证调优参数呗,全部特征融合在一起,再来调,尽管验证时间长,不要紧,反正模型是离线训练的,多调会也没关系。
那是否有更好的选择方案呢?
多核学习(MKL)可能是个不错的选择,该方法属于后期融合的一种,通过对不同的特征采取不同的核,对不同的参数组成多个核,然后训练每个核的权重,选出最佳核函数组合来进行分类。
先看下简单的理论描述:
普通SVM的分类函数可表示为:
其中为待优化参数,物理意义即为支持向量样本权重,用来表示训练样本属性,正样本或者负样本,为计算内积的核函数,为待优化参数。
其优化目标函数为:
其中用来描述分界面到支持向量的宽度,越大,则分界面宽度越小。C用来描述惩罚因子,而则是用来解决不可分问题而引入的松弛项。
在优化该类问题时,引入拉格朗日算子,该类优化问题变为:
其中待优化参数在数学意义上即为每个约束条件的拉格朗日系数。
而MKL则可认为是针对SVM的改进版,其分类函数可描述为:
其中,表示第K个核函数,则为对应的核函数权重。
其对应的优化函数可以描述为:
在优化该类问题时,会两次引入拉格朗日系数,参数与之前相同,可以理解为样本权重,而则可理解为核函数的权重,其数学意义即为对每个核函数引入的拉格朗日系数。具体的优化过程就不描述了,不然就成翻译论文啦~,大家感兴趣的可以看后面的参考文档。
通过对比可知,MKL的优化参数多了一层其物理意义即为在该约束条件下每个核的权重。
Svm的分类函数形似上是类似于一个神经网络,输出由中间若干节点的线性组合构成,而多核学习的分类函数则类似于一个比svm更高一级的神经网络,其输出即为中间一层核函数的输出的线性组合。其示意图如下:
在上图中,左图为普通SVM示例,而全图则为MKL示例。其中
为训练样本,而
为不同的核函数,
为支持向量权重(假设三个训练样本均为支持向量),
为核权重,y为最终输出分类结果。
6实验过程:
以实际对地图类别的分类为例,目前用于分类的特征有A,B,C,D,E,F,G(分别用字母代表某特征),这些特征每个的维数平均几百维。
准备工作:
1. 人工标注地图类别正负样本,本次标注正样本176张,负样本296张
2. 提取正负训练样本图片的A~G各个特征
3. 归一化特征
4. 为每个特征配置对应的核函数,以及参数
Shogun工具盒:,其中关于该工具的下载,安装,使用实例都有详细说明。该工具除了提供多核学习接口之外,几乎包含所有机器学习的工具,而且有多种语言源码,非常方便使用。
结果测试:
经过大约5分钟左右的训练,输出训练模型文件,以及包含的核函数权重、准确率。
在该实例中,7个特征分别用七个核,其权重算出来为:
0...335 0..232,
最终在测试样本上准确率为:91.6%
为了节省特征抽取的时间,考虑去掉权重较小的特征A、C、F,
拿剩下4个核训练,几分钟后,得到核函数权重如下:
0....370261,
最终在测试样本上准确率为:91.4%
在这次训练中,就可以节约抽取A、C、F特征的训练时间,并且很快知道哪些特征组合在一起会有较好的结果。
实验的几点说明:
1. 该类别的分类,因为样本在几百的时候就已经达到不错效果,所以选取数目较少。
2. 该实验是针对每个特征选择一个核,且每个核配置固定参数,实际中如果时间允许,可以考虑每个特征选不同核,同一核可以选取不同参数,这样可以得到稍微更好的结果。
参考文章:
Large Scale Multiple Kernel Learning
Representing shape with a spatial pyramid kernel
参考代码:,
7个人经验与总结:
1. 多核学习在解释性上比传统svm要强。多核学习可以明显的看到各个子核中哪些核在起作用,哪些核在一起合作效果比较好。
2. 关于参数优化。曾经做过实验,关于同一特征选用同一核,但是不同参数,组合成多个核,也可以提升分类准确率。
3. 多核学习相比前期特征融合在性能上会有3%~5%左右的提升。
4. 通过特征选择,可以节约特征计算时间。
by wenshilei&
【本文首发于:
【本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)}

我要回帖

更多关于 一核有难多核围观 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信