特征选择双层SVM的融合算法用于极化SAR图像分类

然而,单一特征对SAR图像的描述能力有限,如果图像的类间变化较小,而类内变化较大,若只使用一种类型的特征,则可能出现个别类识别准确率较低的现象。

特征向量内不同特征分量的幅度变化较大,而且不同特征向量的物理意义也不同,相似距离的可比性差。因此,在利用多种类型特征进行图像分类时,不仅要对特征向量内部的特征分量进行归一化处理,还需要对不同特征向量再进行归一化,这样才能保证不同特征在同一准则下进行选择。本文所使用的4种特征都经过归一化处理,并依次串接起来作为图像数据的新特征,便于下一步处理。

式中,Sm为已选的特征集合;m为特征个数;c为目标类别;H(fi|c)表示特征fi在目标类别下的信息熵;H(fi)表示j特征fi的信息熵;I(fi,c)为特征fi与目标类别之间的互信息;I(fi,fj)为特征fi与fj之间的互信息。因此,假定已确定特征集Sm,下一步从{S-Sm}中选择第m+1个特征的公式为:

单层SVM算法可通过非线性变换将低维的特征空间映射到高维特征空间,并通过构建判别函数实现对图像的分类。但单层次分类仅仅通过单方面的计算,得到每个像素属于每种类别的概率,然后取其中概率最大的类别,实现对图像的分类。这种分类方法一次性将像素归为具体的类别,对训练样本的选择有很高的要求,而且容易造成错分现象。

本文引用多层的思想,多层分类可以在不同的层次中,使用不同的信息对数据进行处理,分层解决不同的分类需求,对于单层的错分现象也可以进行相应的改善。双层SVM流程图如图1所示,具体步骤为:(1)针对每个类别分别进行特征选择,选择出最适合把该类识别出来的最优特征子集;(2)构造线性判别函数和超平面,将每种类别的最优特征子集分别通过第1层SVM分类器,得到每个像元属于类A、类B…的概率,假设一共有n个类,则每个像元有n个概率α1,α2,…,αn;(3)将每个像素的n个概率作为像素的特征,重新导入第2层SVM分类器中进行训练;(4)根据训练参数,结合概率特征对图像进行分类,得到最终的分类结果。

基于FS-BSVM算法的极化SAR图像分类框架如图2所示。首先,针对单一特征表示图像不能满足分类需要的问题,多种类型的特征被引入到了本文模型中。在本文算法中分别提取了4类特征,分别为:(1)极化分解特征;(2)GMRF;(3)GLCM;(4)基于测量数据的极化特征。由于不同特征的物理意义不同,若基于某个特征计算两图像间的相似距离,其范围的差别比较大,相似距离之间的可比性差。因此,在利用综合特征进行图像检索时,需要对不同特征向量进行归一化处理,以保证不同的特征向量在同一准则下进行选择,以期在进行分类时具有相同的作用。

最后,将不同类别的最优特征子集导入双层SVM。将第1层中得到的每个像素属于各个类别的概率重新串接,作为图像的特征输入到第2层中,得到最终的分类结果。

本文的实验数据为旧金山海湾地区的AIRSAR图像,如图3(a)所示,图像大小为900像素×1024像素。该地区地物地貌类型丰富,包括山地、海洋、湖泊、草坪、建筑等。本文将地物类型设置为山地、水体、建筑和绿地4类,GroundTruth为ARCGIS软件针对同一时期的旧金山地区的真实地表进行的人工判读和标注,如图3(b)所示。

本文在实验数据的每一类中分别选取10%作为训练数据,另外90%作为测试数据。

特征选择的维数设置对分类精度有较大影响。特征维数的增加虽能在一定程度上提高分类精度,但计算代价更高。本文经过空间金字塔后的特征总维数为51×21=1071维,通过综合考虑实验精度和计算复杂度并反复实验,最终将实验数据中每种类别的最优特征子集维数设置为200维。

为了验证该算法在极化SAR图像分类中的有效性,设置对比实验1为基于极化分解特征和单层SVM的分类,对比实验2为基于极化分解特征和特征选择双层SVM的分类,对比实验3为基于特征融合和单层SVM的分类。通过不同组实验结果的相互比较,可分别验证特征融合方法相比于单个类型的特征、双层SVM相比于单层SVM的优越性。

本文通过分析实验数据中建筑、绿地、水体、山地的分类准确率来评价对比算法及FS_BSVM算法的分类精度,如图3和表2所示。

1)对比实验1中,绿地很大一部分被错分到了建筑中,准确率仅为48.52%,而山地也有一部分被错分为建筑,因而加权平均准确率最低。

2)对比实验2和3中,绿地和山地的分类准确率相比于实验1逐渐改善,但仍明显低于FS_BSVM。

3)FS_BSVM的分类结果中,除了建筑区域0.02%的差距,其余类别的分类准确度均优于对比实验。

对本文提出的方案和对比实验方案的结果进行分析:(1)对比实验1是建立在问题的复杂度和结构风险最小原理基础上的,提取的特征比较单一,而本文的样本的数目相对越小,因此导致较低的分类准确率。(2)对比实验3融合了SAR图像的4种类型的特征,能更全面地描述图像,因此分类准确率较对比实验1明显提高。(3)对比实验2和FS_BSVM算法是分别在对比实验1、3的基础上由单层SVM变为双层SVM,从实验结果可看出,双层SVM比单层SVM的分类准确率要高,表明双层SVM确实能提高图像的分类准确率。(4)本文所提出的基于特征选择双层SVM的分类方法,综合了各类特征,同时针对每个类别选取最优特征子集,确保不同的特征子集在特定类别中获得较高的分类准确率,最后双层SVM引入了多层的思想,能够对SAR图像实现较精确的分类。从图3可明显看出FS_BSVM算法的优越性。

本文提出了一种基于特征选择双层SVM的特征融合算法,通过mRMR方法能对不同目标类别选取最优的特征子集,且充分利用空间金字塔中不同尺度下的特征,并构建了一个双层SVM模型实现极化SAR图像的分类。相比于单一特征和单层SVM,该算法可极大程度地利用极化SAR图像中的有用信息,而且稳定性较高。实验结果验证了该算法的优越性。下一步的研究方向将考虑此算法效率的优化。

THE END
1.学习SVM,这篇文章就够了!(附详细代码)机器之心而当你把数据点映射一下成右图所示的情况后,现在数据点明显看上去是线性可分的,那么在这个空间上的数据点我们再用前面的SVM算法去处理,就可以得到每个数据点的分类情况了,而这个分类情况也是我们在低维空间的情况。也就是说,单纯的SVM是不能处理非线性问题的,说白了只能处理线性问题,但是来了非线性样本怎么办呢?https://www.jiqizhixin.com/articles/2018-10-17-20
2.机器学习SVM算法介绍及应用消费金融风控联盟求解线性可分支持向量机的最优化问题,很多时候会将它转化为对偶问题来求解,也就是应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,即线性可分支持向量机的对偶算法(dual algorithm)。 为什么要将求解SVM的原始问题转换为对偶问题? 对偶问题将原始问题中的约束转为了对偶问题中的等式约束,降低了算法计算的的复https://www.shangyexinzhi.com/article/7386181.html
3.机器学习SVM算法常见面试题(一)51CTO博客机器学习SVM算法常见面试题(一) 在面试数据分析或算法相关岗位时,支持向量机是常被问到的一个算法,因此本文对于面试中常见的SVM原理以及核函数方面的问题进行了汇总。 1 什么是支持向量机? 支持向量机(SVM,Support Vector Machines)是一种用于分类和回归的监督学习算法。目的是在特征空间中找到间隔最大的超平面。https://blog.51cto.com/u_15479825/4911494
4.基于机器学习算法的SVM优化人工智能机器学习必将会设计算法的优化问题,主要是实现Platt SMO算法,那么,下面本文对SVM的优化进行了介绍,主要实现了Platt SMO算法优化SVM模型,并尝试使用遗传算法框架GAFT对初始SVM进行了优化。 SMO中启发式选择变量 在SMO算法中,我们每次需要选取一对α来进行优化,通过启发式的选取我们可以更高效的选取待优化的变量使得目标函https://www.elecfans.com/rengongzhineng/565974.html
5.机器学习分类算法(三)SVM(支持向量机)算法机器学习在机器学习中,支持向量机(Support Vector Machine,SVM)是经典的分类算法之一,应用领域也非常广,其效果自然也是很厉害的。本章对支持向量机算法进行解读,详细分析其每一步流程及其参数对结果的影响。 支持向量机工作原理 前面已经给大家讲解了一些机器学习算法,有没有发现其中的一些套路呢?它们都是从一个要解决的问题https://download.csdn.net/blog/column/8943490/107214957
6.支持向量机(SupportVectorMachinesSVM)算法笔记(一)本文主要是学习支持向量机的算法原理,并且用Python来实现相关算法。内容包括:SVM概述、线性可分支持向量机、线性支持向量机、非线性不可分向量机、核函数、核技巧、SMO、KKT条件等等,但是还是没有讲完,会继续学习讨论~~ 再次申明:本文的理论知识来自Peter Harrington的《机器学习实战》和李航的《统计学习方法》,非常感https://www.jianshu.com/p/ba59631855a3
7.机器学习算法(一)SVM腾讯云开发者社区SVM 算法特性 机器学习的一般框架: 训练集 => 提取特征向量 => 结合一定的算法(分类器:比如决策树、KNN)=>得到结果 1. SVM 支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了https://cloud.tencent.com/developer/article/2155006