基于深度学习的城市遥感影像检索方法通过多层网络结构对影像进行场景分析,能够从遥感数据中自动学习影像特征,适用于海量的、场景复杂的城市遥感影像检索问题。本节介绍了常用的深度学习方法,包括无监督特征学习方法自编码器和监督特征学习方法卷积神经网络。
1.基于无监督特征学习的城市遥感影像检索方法
自编码(Auto-Encoder)作为一种神经网络结构,是一种无监督的特征学习算法。图12-25给出了一个简单的自编码神经网络,包括一个输入层、一个隐含层和一个输出层,可以看出自动编码器在结构上与一般的神经网络是相同的,不同之处在于自编码网络的输入层和输出层神经元数目是一致的。该自编码网络只包含了一个隐含层,属于“浅层”的网络。为了学习更好的影像特征表示,可以通过增加隐含层数目来实现,此时的自编码网络也称为栈式自编码。
图12-25 自编码结构图
自编码神经网络利用反向传播算法,尝试学习一个恒等函数,使输出值尽可能接近输入值。自编码器包含两部分:编码器(encoder)和解码器(decoder)。其中,从输入层到隐含层这一过程称为编码,从隐含层到输出层这一过程则称为解码。在一般情况下,隐含层的神经元数目会少于输入层的神经元数目,此时网络会经过编码学习输入数据的压缩表示,然后经过解码重构出输入数据。基于自编码的特征提取包括以下三个步骤。
1)数据预处理
对于训练数据XT,自编码网络训练(即无监督特征学习)前需要进行白化(whitening)预处理。所谓白化,是指通过一定的变换降低输入数据的冗余性,从而降低特征之间的相关性并使所有特征具有相同的方差,是一些深度学习方法处理影像数据必不可少的一个预处理步骤,常见的白化方法包括PCA(Principal Component Analysis)白化以及ZCA(Zero Component Analysis)白化。
式中,Xmean表示训练数据XT计算得到的均值向量。
PCA白化后的数据可用式(12-50)计算:
在PCA白化的基础上,ZCA白化后的数据可用式(12-51)计算:
在式(12-50)和式(12-51)中,如果把等式右边分成其他项和训练数据两项,则可将“其他项”分别称为PCA白化矩阵TPCAwhite和ZCA白化矩阵TZCAwhite,分别如式(12-52)、式(12-53)所示:
在后续的特征编码这一步,特征提取前数据需要进行同样的去均值和白化预处理。因此,实际使用时应保存训练数据计算得到的均值向量和白化矩阵以用于后续的数据预处理。
2)自编码网络训练
与一般神经网络相同,自编码网络的计算过程也可分为前向传播和反向传播。前向传播包括两个步骤:编码(encoding)和解码(decoding)。所谓编码,是指预处理后的训练数据经过网络隐含层的激活函数输出,该过程可用式(12-54)表示:
式中:W1和b1分别表示编码阶段的权值矩阵和偏置项;Xwhite表示PCA或ZCA白化处理后的训练数据;f1(·)表示隐含层的激活函数,常见的隐含层激活函数除了sigmoid函数外,还包括修正线性单元(Rectified Linear Unit,ReLU)、双曲正切函数(tanh函数),ReLU和tanh激活函数分别如式(12-55)、式(12-56)所示:
所谓解码,是指网络隐含层的激活值(隐含层输出)经过输出层的激活函数得到网络最终的输出,该过程可用式(12-57)表示:
式中,W2和b2分别表示解码阶段的权值矩阵和偏置项;f2(·)表示输出层的激活函数,常见的输出层激活函数除了常用的sigmoid等函数外,还包括线性函数y=x。当输出层采用线性函数作为激活函数时,此时的自编码网络也可以称为线性解码器(linear decoder)。
自编码网络经过前向传播后,网络的整体代价函数可定义如下:(www.xing528.com)
式中,Xwhite表示白化后的数据;s2表示网络隐含层的神经元数目;KL(·)表示求相对熵;β表示控制惩罚项的权重;ρ为稀疏度参数;ρ^j表示隐含层j单元的平均激活值,表示如下:
为了实现网络训练,需要针对参数W和b求代价函数J(W,b)的最小值,我们采用L-BFGS(Limited-memory BFGS)对代价函数进行优化。
3)特征编码
自编码网络训练结束后,利用学习的特征提取器提取影像库中各影像的特征。对于影像i,特征编码可用式(12-61)表示:
式中,Yi表示学习的影像特征;Xwhite i表示利用训练数据计算得到的均值向量和白化矩阵经过去均值和白化预处理后的影像i;W1和b1表示编码阶段的权值和偏置项;f1(·)表示隐含层的激活函数。
由式(12-61)可以看出,特征编码与上文介绍的编码过程本质上是相同的,区别在于编码是在网络训练过程中进行的,主要作用是将训练数据经过隐含层的激活函数进行输出,而特征编码是在网络训练结束后利用学习的网络参数(编码阶段的权重和偏置项)提取影像库中各影像学习的影像特征。
基于无监督特征学习的城市遥感影像检索方法如图12-26所示。
2.基于卷积神经网络的城市遥感影像检索方法
卷积神经网络(CNN)是一种有监督的深度学习方法,目前已被广泛用于影像识别与分析任务。CNN主要由卷积层(convolutional layer)、池化层(pooling layer)以及全连接层(fully-connected layer)构成,其中待训练的网络参数存在于卷积层和全连接层,而池化层并不包含网络参数。
图12-26 基于无监督特征学习的城市遥感影像检索方法
1)CNN不同网络层
卷积层是CNN的核心层,网络大部分的计算工作都是在卷积层进行的。卷积层是由一系列可学习的卷积核(也称为滤波器)构成的,其中,卷积核在空间维(宽和高)上一般尺寸比较小,而在第三维(深度)上等于网络上一层输出的深度。例如,假设CNN网络的输入为一幅3通道的RGB影像,则第一个卷积层的滤波器尺寸为w×h×3,其中,w和h分别表示滤波器的宽和高,通常w=h且取值一般为3,5,7等较小的值。为了学习不同的影像特征,卷积层一般包含几十甚至上百个滤波器。
不同于一般的神经网络(神经元之间是全连接的),CNN网络结构的特点在于局部连接(local connectivity)和权值共享(parameter sharing)。所谓局部连接,是指卷积层的一个神经元只与卷积层的输入的一个局部区域是连接的,这个区域也称为该神经元对应的感受野(receptive field),可以看出感受野大小与滤波器尺寸是一致的。局部连接减少了神经元的连接数,从而也减少了网络参数,使得CNN可以直接处理大尺寸影像。所谓权值共享,是指卷积层的各输出(卷积结果)对应的神经元共享一组权值,而不是每个神经元分别对应一组权值,即卷积层的各输出分别是由对应的一个滤波器通过卷积计算得到的。基于局部连接和权值共享,对于式(12-62)中的例子,可知卷积层的每个滤波器包含Fc×Fc×个权值和一个偏置项,Kc个滤波器共包含(Fc×Fc×)×Kc个权值和K个偏置项。
全连接层是CNN网络的最后几层(一般是三层,其中最后一层输出影像分类的类别分数),与神经网络相同,全连接层的神经元与前一层也是全连接的。全连接层不具备卷积层的局部连接和权重共享的特点,但二者神经元的计算方式是相同的(点积运算,dot product)。因此,全连接层和卷积层是可以相互转化的:①对于任意一个卷积层,可以用一个全连接层实现相同的前向传播运算,其中,除了某些特定的块,全连接层的权值矩阵的大部分元素都是零(由于卷积层的局部连接性),且在这些特定的块中很多块的权值都是相等的(由于卷积层的权值共享性);②对于任意一个全连接层,可以将其相应地转换为卷积层。假设CNN网络最后一个卷积层的输出为7×7×512,第一个全连接层的神经元数目为4096,则全连接层的计算等价于Fc=7,Pc=0,Sc=1,Kc=4096的卷积层。这一转换得到的输出结果与直接利用全连接层计算得到的结果是一致的,且网络的参数数量也是相同的。因此,全连接层可以看作一种特殊的卷积层,这种转化在实际应用中是十分有效的,可以提高计算效率。
2)CNN遥感影像检索
CNN遥感影像检索的关键在于训练一个成功的网络模型对影像进行特征提取,但训练深层的CNN需要大量的标注数据。遥感领域缺少与ImageNet类似规模的标注影像库,因此,对遥感领域来说,从头开始训练深层的CNN是不切实际的。迁移学习(transfer learning)是解决缺少标注数据情况下的CNN训练常用的方法。简单来说,迁移学习就是将ImageNet影像库训练得到的CNN模型(称为预训练CNN)迁移至缺少标注数据的领域。
CNN迁移学习遥感影像检索包括两种方法。一是,把预训练的CNN视为特征提取器,用以提取影像的全连接层和卷积层特征。对于全连接层特征,直接计算影像的相似性,进行相似性匹配;对于卷积层特征,将其视为局部特征采用传统的特征聚合方法,如BoVW等对卷积层特征进行编码得到影像的全局特征。二是,用标注的遥感影像库对预训练CNN进行微调,提取影像的目标域特征。
基于卷积神经网络特征学习的城市遥感影像检索方法如图12-27所示。
图12-27 基于卷积神经网络特征学习的城市遥感影像检索方法
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。