基于多维多粒度级联森林的高原地区云雪分类

2018-10-16 03:12:02翁理国刘万安施必成
计算机应用 2018年8期
关键词:级联决策树粒度

翁理国,刘万安,施必成,夏 旻

(南京信息工程大学 信息与控制学院,南京 210044)(*通信作者电子邮箱liguoweng@hotmail.com)

0 引言

随着卫星遥感技术的不断发展,卫星遥感影像的应用也越来越广泛,涉及到资源调查、自然灾害、环境污染等各个方面,其中遥感卫星对于雪灾监测也成为主要的技术手段[1]。然而云雪分类存在着许多技术难题,主要体现在三个方面:一是云雪表面特征复杂;二是云雪光谱特征的相似性[2];三是云的存在会对光信号传播造成障碍,从而导致遥感影像数据测量精度的缺失[3]。

针对上述问题,殷青军等[4]提出了新的判别因子,使云的纹理特征更加明显,有利于人眼判别;刘玉洁等[5]提出了改进的多光谱云雪判别的方法,通过改进的多光谱云雪判别方法对云雪分类的问题作了简要的分析;丁海燕等[6]提出了基于分形维数的全色影像云雪自动判别方法,相比之前的判别方法有了较大改进;孙磊等[7]提出了基于多种纹理特征的全色图像云雪区特征提取,通过分形维数、灰度共生矩阵、小波变换等方法提取多种云雪的纹理特征,最后使用径向基核函数(Radial Basis Function,RBF)的支持向量机(Support Vector Machine,SVM)来进行云雪的检测。然而上述传统方法都存在着参数量太少、特征单一等不足,忽略了很多有价值的特征,而且都是人工提取特征,需要云雪分类相关的专家多年的积累和经验才能手工设计出来。随着大数据时代的到来以及图形处理器(Graph Processing Unit,GPU)等更强大的计算设备的发展,深度学习的发展有了质的飞跃。深度学习相比传统的方法具有非常明显的技术优势,而多粒度级联森林是一种不同于深度神经网络的深度集成算法。相比神经网络,多粒度级联森林有着参数量少、训练和测试速度快、泛化性能好等优点。本文建立多维多粒度级联森林(Multi-dimensional multi-grained cascade Forest,M-gcForest)以充分提取多光谱数据中的空间特征和光谱信息,使得它在多光谱数据的云雪识别中有更好的准确率,且需要优化的参数量也远少于卷积神经网络(Convolution Neural Network,CNN)[8-9],需要设置的参数较少,易于调优,在分类速度上要比CNN快。最后的实验结果表明,本文方法的效果比SVM、随机森林、CNN要好,更适合后续的气象工作及应用。

1 M-gcForest算法

多粒度级联森林(multi-Grained Cascade Forest, gcForest)是Zhou等[10]提出的新的决策树集成方法。众所周知,表征学习能力对于深度神经网络至关重要。利用学习性能好的模型对大数据进行学习,也正是深度神经网络的模型相比一般模型如SVM等复杂得多的原因。如果能将这样的大规模数据集放在其他形式的深度模型中,有望在克服上述缺陷的情况下实现和深度神经网络相当的性能[10]。

1.1 随机森林

随机森林是由Chen等[11]提出的机器学习算法,随机森林算法是在Bagging的基础上以决策树作为基分类器的集成算法。就单个决策树分类器而言,很难做到准确性和多样性并存,而随机森林算法的提出弥补了单个决策树分类器在数据分类上表现出来的易过拟合、分类结果不稳定的缺陷。不同于Bagging算法的多样性,随机森林的多样性不仅体现在采样的随机性上,也体现在属性选择的随机性上[12]。随机森林算法以其计算量小、训练速度快、不容易陷入过拟合、易作为并行化方法等优点得到了广泛的应用。

随机森林的基分类器是决策树,决策树是一种树形结构,决策树的基本算法是贪心算法[13],用自上向下的方式构造决策树。决策树生成的算法主要分为树的生成和树的剪枝两个步骤:树的生成从根节点开始,所有数据的分类都起始于根节点,然后根据属性的重要程度分别从当前节点自上向下对属性进行分割,直至叶节点[14];树的剪枝主要是防止过拟合现象。决策树构造的关键在于属性选择度量。属性选择的原则是选择分类效果最好的(或分类最纯的或能使树的路径最短的)的属性,本文随机森林中的决策树采用的分裂选择度量为gini指数[15]。假设集合T中包含N个类别的记录,其gini指标为:

(1)

其中:pj表示类别j出现的频率。如果集合T分成m个部分N1,N2,…,Nm,那么分割的gini指标为:

(2)

对于数据的每一个属性都要确定其可能的所有分割方法,选择具有最小ginisplit的属性作为分割属性。

决策树对训练有很好的分类能力,但泛化性能较差,即有可能发生过拟合现象。随机森林等集成算法有效地弥补了决策树在这些方面的缺陷。

1.2 改进的M-gcForest

本文的M-gcForest算法主要将训练分成了两个阶段:多维多粒度扫描和级联森林阶段。受到深度神经网络中表征学习对原始特征进行逐层处理的启发,如图1所示,M-gcForest采用了深度网络的层叠结构,从级联森林前层输入数据,输出结果作为下层的输入。

1.2.1 级联森林

图1 级联森林的结构

级联森林阶段中每层的四个随机森林都采用了K折交叉验证[16]的方法,当级联森林中的一层完成训练后,用此模型来对一个检验集进行预测,如果当前层的准确率比前一层的准确率高,那么继续构造级联森林的下一层,直至当前层对检验集的准确率较前一层的准确率不再提升,训练就会终止,模型也就因此而确定。这个操作很关键,M-gcForest每一层都是简单的监督学习,因为它构造森林的方式让级联森林可以自动确定层数,对模型复杂度的自适应调节使M-gcForest能应用在不同规模训练数据集上,同时也就解决了深度神经网络不能在少量数据集上很好应用的困难[16]。

因为级联森林的的单层之间的每个森林之间的训练是相互独立的,单个森林内部的各个决策树之间的训练也是相互独立的[17],这也就是gcForest可以进行并行计算的原因。给定一个测试样本,随机森林中的每棵树会根据样本所在的子空间中训练样本的类别占比生成一个类别的概率分布,然后对随机森林内所有树的各类比例取平均,输出整个随机森林对各类的比例[18]。

图2是四分类问题的一个简化森林,X代表输入向量,输入向量在每棵树中都会找到一条路径去找到自己所属的子空间,在不同的决策树上找到的子空间可能是不一样的,所以可以对不同类别进行统计获取各类的比例,然后通过对所有树的比例进行求均值生成整个森林的概率分布。本文集中对无云无雪、仅有云、仅有雪、云雪混合四种样本进行四分类。因此,每个随机森林对每个输入数据预测都会产生长度为4的概率向量,级联森林中的每一层有4个随机森林,将4个随机森林产生的概率向量拼接起来,那么4个森林就相当于在每一层的级联森林后得到了16个扩充特征,将这16个新的特征和原始特征进行拼接,就得到了新的表征。以此类推,如图1所示,当第N层的级联森林层对检验集的预测准确率比第N-1层的预测准确率有所提升,则将第N层得到的预测概率向量和第N-1层输出的向量进行拼接,作为第N+1层输入,继续构造级联森林;若准确率没有提升,则级联森林构造结束。

图2 类概率向量生成示意图

1.2.2 多维多粒度扫描

类似窗口滑块的技巧在文本、语音等时序数据和图像数据都有普遍应用。而多维多粒度扫描比较特别的一点是将每个窗口滑到的数据都作为一个样本,从原始输入里面学习到输入特征向量,然后用两个随机森林输出的类向量作为新样本的表征。多维多粒度扫描的过程如图3所示,用7×7×4

尺度的滑动窗口在28×28×4的原始图像数据上作滑动,获得原始的特征信息。28×28×4大小的云雪图像用7×7×4的窗口按滑动步长为7来作滑动处理,就会生成16个实例,即16个7×7×4窗口大小的图像。然后将16个7×7×4像素的实例经过一个完全随机森林(Forest A)和一个普通随机森林(Forest B)的训练,每个森林都会产生16个四维的类概率向量。最后将由不同粒度提取的类概率向量拼接起来,形成一个维度非常高的重新表示的特征向量。重要的是,这个过程和深度神经网络有所区别,gcForest对特征的提取是全程受监督的,而深度神经网络的特征提取过程是由高层的误差反向传播[19]指导更新的,在深度神经网络较深的情况下,高层传下来的梯度容易受到各种因素的影响而波动,但M-gcForest的整个训练过程只有前向的,深度学习往往使用误差反向传播,反复更新权重,从速度上来看,M-gcForest没有神经网络的误差反向传播的过程,速度要明显快于深度神经网络,这也是M-gcForest优于深度神经网络的原因。

1.2.3 基于M-gcForest的云雪分类模型

本文的M-gcForest的结构如图4所示,采集的样本均来自环境与灾害监测预报卫星HJ-1A/1B[20],采用的云雪分类图像的尺寸为28×28×4,数据集的样本包括:无云雪陆地样本、仅含云的样本、仅含雪的样本、既有云又有雪的样本各4 200张。取样本总量的80%作为训练集,剩余的20%作为测试集。

在基于M-gcForest的云雪分类模型中,每一张图像分别用维度为4、粒度为14、步长为14和维度为4、粒度为7、长为7的两种不同尺寸的粒度对原始图像作特征提取,这样分别得到了9个14×14×4的子样本和16个7×7×4的子样本。

图3 多维多粒度扫描的结构

图4 多维多粒度级联森林的结构

本文是一个四分类的问题,训练集的大小是16 800,对7×7×4粒度的窗口而言,就可以获得16 800×16=268 800个实例(子样本)。单张原始图像经过14×14×4和7×7×4粒度扫描后得到的拼接的概率向量的尺寸分别为72和128,这两个重新表示的特征向量将由不同粒度扫描并由随机森林预测得到的所有概率向量进行拼接,这样就得到了一个200维的特征向量,以此特征向量作为级联森林的输入,级联森林中的每一层通过对该特征向量的反复学习,在构造级联森林的同时达到了数据训练的目的。

2 仿真结果与分析

采用M-gcForest对西藏地区的多光谱卫星遥感图像全图进行云雪识别,并使用了SVM、随机森林、CNN等多种不同的云雪识别方法进行对比。其中SVM方法利用灰度共生矩阵提取样本的纹理信息[21],然后以纹理信息作为输入,用径向基函数(Radial Basis Function, RBF)[22]作为SVM的核函数作分类,随机森林由1 000棵决策树组成;CNN则采用5层的卷积结构。本文的所有实验在以下条件下进行:ubuntu 16.04,CPU为i7-8700k,内存为16 GB。

表1为本文实验数据集在各分类算法下经过10次训练的平均测试准确率、训练时间和测试时间的比较。其中测试准确率Acc=X/Y,X为测试集中被分类正确的样本的数目,Y为测试集样本的总数。

从表1中可以看出,对于单光谱卫星图像的云雪分类,传统SVM的分类准确率最低(仅54.12%),与SVM相比,随机森林的测试准确率提升了41.26%,CNN的测试准确率提升了55.64%,M-gcForest的准确率提升了56.41%。从表1可以看出,与CNN相比,M-gcForest在单光谱图像上的平均测试准确率提升了0.42个百分点,训练耗时减少了91.18%,测试耗时减少了53.65%。

表1 各算法单光谱卫星图像分类性能比较

为了评估各类算法的泛化能力,分别用SVM、随机森林、CNN、M-gcForest在100张HJ-1A/1B单光谱卫星云图上作预测。图5为不同算法对同一张单光谱图像的预测效果图。图5(b)、(c)、(d)、(e)的预测图中,黑色表示无云雪区域,浅灰色为仅有雪区域,深灰色为仅有云区域,白色为云雪混合区域。

图5 不同算法的云雪识别图

从图5中可以看出,利用不同的算法训练单光谱卫星图像数据,SVM的泛化效果是最差的,它的预测效果图中存在大面积的云覆盖区域,云雪分界不够明显;与之相比,随机森林检测到有云、有雪的能力有了很大的提升,已经能够可以看出云区域和雪区域的大致轮廓;CNN和M-gcForest比前两种算法的效果都有所提升,对比图(c)、(d)、(e)中间的黑色部分可以看出,对于无云无雪和仅有云区域,M-gcForest和CNN的辨别能力有所增强,M-gcForest和CNN两种算法的预测效果图很相似,从图像的中间部分还是可以看出局部微小的差异。对于底部只有雪覆盖的区域,从图5中各种算法对单光谱云图的泛化效果可以看出,虽然M-gcForest和CNN的测试准确率都达到了84%以上(见表2),但是对于复杂的卫星图像,这两种算法对单个光谱的卫星图像数据的云雪样本的预测没有达到预期的效果。

基于以上遇到的问题,本文尝试分别用M-gcForest和CNN分别对多通道卫星图像进行训练,并对100张多光谱卫星图像全图作预测,表2为M-gcForest和CNN算法分别对单光谱数据集和多光谱数据集的性能比较。可以看出,与CNN相比,M-gcForest在多光谱数据集上的测试准确率提升了0.32%;与单光谱数据集的测试准确率相比,CNN在多光谱数据集上的测试准确率提升了2.98%,M-gcForest在多光谱数据集上的测试准确率提升了2.80%。两种算法在多光谱数据集和单光谱数据集上的实验结果表明,对多光谱卫星图像进行分析更有利于云雪识别。

表2 M-gcForest和CNN对单光谱和多光谱数据测试准确率

如图6所示,单光谱数据和多光谱数据在CNN算法中训练和测试均达到了很好的收敛效果,图6(a)中,单光谱数据的测试准确率收敛在87%左右,训练准确率收敛在84%左右,图6(c)中,多光谱图像在CNN中的测试准确率收敛在86%左右,训练准确率收敛在92%~93%。

图6 单光谱和多光谱数据在CNN中的准确率与误差对比

图7为分别利用M-gcForest和CNN对单光谱图像数据和多光谱图像数据的预测效果。图7中,M-gcForest对单光谱数据和多光谱数据的预测效果和CNN对两种数据的预测极为接近。从图7(d)和图7(e)中M-gcForest对单光谱和多光谱数据的对比可以看出,利用M-gcForest对多光谱数据进行训练和预测的效果比单光谱要好,这是因为:M-gcForest在多粒度扫描阶段逐步取得窗口大小的像素块,并反复地利用原始图像中像素点之间的特征信息;而使用多光谱数据,按照M-gcForest中多粒度扫描的扫描方式,M-gcForest不仅提取了空间信息,还提取了光谱之间信息,然后利用级联森林进行训练。图8为M-gcForest在单光谱图像和多光谱图像下得到的效果图。可以明显地看出,M-gcForest有效地利用了多光谱数据间的光谱信息,图(c)中左上角的无云无雪部分相比图(b)虽然将部分的无云雪区域误识别为有云区域,但是图(c)中的将无云雪区域误检为仅有雪区域大幅减少,其对云和云雪的识别能力增强了,对比图(a)、(b)、(c)的中部,可以明显看出图(c)对于很稀薄的云也能够很好地识别,图(c)中对识别为云雪区域的面积远大于图(b)。对多光谱数据的云雪识别能力要远好于单光谱数据,多光谱预测效果图中能够识别更为稀薄的云,且检测到的云雪混合区域也远大于单光谱图像。

图7 M-gcForest和CNN的单光谱和多光谱图像预测效果对比

图8 基于M-gcForest的卫星图像预测图

3 结语

本文主要针对HJ-1A/1B环境卫星图像在传统方法中出现的特征利用率不高、不能有效提取云雪特征的问题,利用M-gcForest对高原地区的多光谱卫星云雪图像进行云雪识别。本文的实验数据集均为HJ-1A/1B卫星图像,实验结果表明,在单光谱图像的云雪识别中,单维的gcForest已经具备了云雪识别的能力,但是其对于雪的误检还有待降低。相比单光谱图像,M-gcForest对多光谱图像中的云和雪的识别能力有所提升,能够识别到较为稀薄的云以及云雪混合区域,但是M-gcForest在云雪识别的研究中还处于初始阶段,仍有一些不足,有待进一步改进和深度研究。主要有以下方面:1)M-gcForest在云雪识别任务上的准确率还有待提升,因此接下来在保证识别速度的前提下,重点提高多维多粒度级联森林对云雪的识别准确率;2)本文主要对卫星云图中的无云无雪、仅有云、仅有雪以及云雪混合样本进行分类实验,但在云图中,一些陆地上的河流、湖泊、雾霾等样本等会对分类研究产生很大影响,因此,在接下来的研究中将重点提高该算法的抗干扰能力;3)为使云雪识别任务速度更快、准确率更高,不仅要提高模型的性能,也要与实际硬件设备相结合,提高云雪识别任务的处理效率。

猜你喜欢
级联决策树粒度
粉末粒度对纯Re坯显微组织与力学性能的影响
基于矩阵的多粒度粗糙集粒度约简方法
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
电子制作(2018年16期)2018-09-26 03:27:06
级联LDPC码的STBC-OFDM系统
电子制作(2016年15期)2017-01-15 13:39:09
基于粒度矩阵的程度多粒度粗糙集粒度约简
基于决策树的出租车乘客出行目的识别
基于级联MUSIC的面阵中的二维DOA估计算法
基于肺癌CT的决策树模型在肺癌诊断中的应用
LCL滤波器在6kV级联STATCOM中的应用
电测与仪表(2014年1期)2014-04-04 12:00:34