论文翻译:Deep Convolutional Capsule Network for Hyperspectral Image Spectral and Spectral-Spatial Classification
基于深度卷积胶囊网络的高光谱图像和光谱-空间分类
摘要
最近在监督分类问题中展现出优势的胶囊网络被认为将是深度学习的下一个时代。胶囊网络利用向量代替标量来表示特征,从而增加了特征的表现能力。本篇论文介绍一个针对高光谱图像(HSI)分类的深度胶囊网络来改良传统卷积神经网络的表现。除此之外,还提出一个叫做Conv-Capsule的对胶囊网络的改进。Conv-Capsule使用了CNNs的核心思想,本地连接(local connect)和分享变换矩阵来替代最初胶囊使用的全连接,和最初的胶囊相比,降低了需要训练的参数的数量,强有力的减缓了当训练集数据的数量被限制时产生的【过拟合】(overfitting)问题。
我们提出了两种有针对性的策略:
- 针对光谱分类问题设计一个一维深度胶囊网络,结合了主成分分析(PCA),CNN,和Conv-Capsule等方法;
- 针对光谱-空间分类问题设计一个三维深度胶囊网络,结合了扩展的多形态剖面(multi-attribute profiles),CNN,Conv-Capsule等方法;
将提出的分类方法在三组使用广泛的高光谱数据集上进行测试,获得的实验结果证实推荐方法和最先进的方法,支持向量机(SVM),卷积神经网络(CNNs),循环神经网络(RNN)相比拥有竞争的能力。
关键词:CNN,深度学习,胶囊网络,,高光谱图片分类
1.介绍
分类的任务,当他和HSIs相关的时候,最终都会涉及到对数据中的每一个像素进行标记。HSI分类对于农村发展,土地变更监视,景象解释,资源管理等众多应用来说是重要的一步。因此,HSI分类在远景社区中是最热门的话题之一。但是,HSI分类由于几个问题的存在,比如维度数量过高,训练集数量受限,图片的情况复杂等,仍然是一项具有挑战性的任务。
在之前的10年中,大量关于HSI分类问题的方法被提出。由于HSIs丰富的可用的光谱信息,人们提出了用于HSI分类的大量光谱分类器,包括k近邻算法,最大相似,神经网络,logitic回归,SVMs。
高光谱传感器提供了丰富的光谱信息,光谱分辨率也随着传感器发展越来越好。通过光谱信息的帮助,分类结果得到大大改善。在光谱-空间分类技术中,多态剖面是一种常用的方法。在SVM或者RF中用来获得最终的分类结果[18-21]。作为SVM的扩展,多核学习是光谱-空间HSI识别的另一个主要流派,有很强大能力通过空间-光谱图像获得各种各样的特征[22]。
由于大气情况的复杂性,各个类别几何上分散,各种类型的变量和光线的变化情况,提取不变的健壮的特征对HSI分类的精确度非常重要。深度学习使用分层模型来从HSI中以一种高效的方式提取使用的不变的和区分特征,从而获得精确的分类。在过去的几年间,许多有关HSI分类的深度学习方法被提出。深度学习包括了一系列的模型,包括堆栈自动编码机,深度信念网络,RNN,CNN。所有上述的深度学习模型都用于过HSI分类。
SAE是第一个用于HSI特征提取和分类的深度学习模型。在[25]中,两个SAE被用来分等级的提取空间和光谱特征。提取和区分出来的不变的特征产生了更好的分类结果。除此之外,最近深度信念网络也被用来作为HSI特征的提取和分类[26,27]
因为CNNs独一无二和有用的模型结构(比如:本地连接和分享权重),这样的网络通常能够比其他网络就分类精确度而言更加优秀。[28]中,提出了一个拥有五层的设计优秀的CNN来提取光谱特征。在[29]中,为了在训练集数量受限的情况下得到良好的分类结果,提出了一个基于CNN的光谱分类器配对像素信息的方法。
许多基于CNN的HSI分类方法已经同时考虑空间和光谱信息。[30]中提出了第一个基于CNN的光谱-空间分类器,将PCA,深度学习CNN,Logistic回归结合在了一起。由于深度学习模型通常使用3D数据作为输入,很有必要为HSI光谱-空间分类建立一个三维CNNs[31,32]。除此之外,CNN能够和其他强大的技术结合来改善分类结果。在[33]中,CNN和SR结合来改进学习获得的向量。CNNs能够和其他空间特征提取方法连接来进一步改善分类结果,比如MP和GF[34,35]。
HSIs的像素向量天然的拥有时序性。RNN有以时序性数据为特征的能力。因此,在[27],一个深度学习RNN能够将高光谱像素向量作为时序数据进行分析,提出了通过网络原因决定信息类别的方法。
虽然深度学习模型已经在HSI分类问题上展现了他们的能力,依旧存在一些会破坏这些技术的结果的缺点。总的来说,深度学习模型需要大量的训练集进行训练来获得网络中大量的参数的合适的值。在这一方面,训练集不足在远景图像分类中是一个常见的问题。在2017年,Sabour 提出了一种基于胶囊网络的新想法,拥有能够应对训练集数量受限的情况的优点[36]。除此之外,传统的CNNs通常使用池化层从输入数据中来获取不变的特征,池化的操作会丢失特征之间精确的位置联系。在远景高光谱图像中,像素向量(pixel vector)中丰富的光谱信息和位置联系是加速光谱分类的重要部分。因此,在特征提取中维持位置关系的准确是相当重要的。另外,当从HSI中提取光谱-空间特征时,保证光谱-空间特征之间的位置联系也是很重要的。除此之外,大多数现有的深度学习方法使用标量来表现特征强度。相比之下,胶囊网络使用向量来表现特征。向量的使用使特征的表现更加清晰完整,并且相较于标量是一个很大的进步,同时更加稳健。胶囊网络的这个优势完美的契合了这个研究的目标和最近高光谱社区的需求。
基于深度学习的方法,包括深度胶囊网络,拥有在训练集数量充足时强力的特征提取能力。不幸的是,训练集数量的限制常常是高光谱分类问题的瓶颈。深度学习模型通常在数量少的训练集下进行训练,大大降低(downgrades)了识别精确度。为了减缓过拟合问题和减轻特征提取对深度学习模型造成的工作负担,我们提出了基于本地连接(local connection)的胶囊网络的思路。提出的Conv-Capsule网络使用了本地连接和分享变换矩阵来降低训练参数的数量,强有力地缓解了当训练集数量受限时造成的过拟合(overfitting)问题。
在近期的研究当中,胶囊网络的思想被改进用于HSI分类。两个深度胶囊网络框架,1D-Capsule和3D-Capsule作为对光谱和光谱-空间的分类被提出,被推荐用于提高分类的精确度。
论文的主要贡献简要总结如下:
-
提出了名为Conv-Capsule的胶囊网络改进,Conv-Capsule在网络中使用本地连接和分享变换矩阵,降低了训练参数和减缓了分类中的过拟合问题。
-
提出用于HSI分类的两个基于胶囊网络的框架,1D-Capsule和3D-Capsule
-
为了进一步改善HSI 分类的表现,提出了两个名为1D-Conv-Capsule 和 3D-Conv-Capsule的框架。
-
在三个著名的高光谱数据集在数据集受限的情况下进行了测试
论文剩下的部分组织如下:
-
第二部分展示了深度学习和胶囊网络的背景
-
第三部分和第四部分专注于提出的深度学习胶囊网络框架,包括对HSI的光谱和光谱-空间建筑的分类
-
第五部分展示了提及的实验数据
-
第六部分展示结论和讨论
2.背景
2.1 卷积神经网络
总的来说,CNN是一个特别的深度学习神经网络,【放宽了生物视觉系统的激励】。和其他深度学习方法相比较,在CNN的结构中有两个独一无二的部分,本地连接和分享加权。每个神经元只接受一定范围内的数据进行处理,【只反映一定范围内的数据的特征】。(responds to a small region known as the reception field),CNN能够有效的查找结构间的相关性。除此之外,CNN通过在整个层中使用共享的加权和激活参数,从而显著的降低了神经网络的参数数量。通过使用这些特别的结构,CNN能够为更多种类的应用提供更好的归纳总结方法。
CNNs 由三个主要模块构成,卷积层,神经元训练层,池化层。将几个卷积层,神经元操作,几个池化层堆在一起,就可以建立一个深度学习CNN网络。
一个卷积层可以定义为下面的形式
\(x_j^l=f(\sum^m_{i=1}x^{l-1}_i*k^l_{ij}+b^l_j)\)
\(f(x)=max(0,x)\)
矩阵\(x^{l-1}_i\)是第(l-1)层的第i个特征图像,\(x^l_j\)是最近的第l层特征图像,\(M\)是输入特征图像的数目。\(k^l_{ij}\)和\(b^l_j\)是随机的初始值,设置为0。除此之外,\(f(\cdot)\)是一个神经元函数ReLU,\(*\)是一个卷积操作。
【池化操作通过降低特征图像的分辨率提供了不变性。】池化层中的神经元整合了一个\(N\times N\)卷积层的区域。最常用的池化操作是最大池化。
CNN中所有的参数都是用反向传播算法训练而来。
在这个研究中,CNN被改造作为特征提取的方法,提取的特征被输入进深度胶囊网络进行进一步处理。
2.2 胶囊网络
胶囊网络是一个对传统神经元网络的改进,使用了一系列神经元来获得向量所表示的确切的类型实体。
在[36]中,一个胶囊\(s_j\)的输入是前一层预测向量\(u_{j|i}\)的权值和。\(u_{j|i}\)是将前一层的胶囊通过转换矩阵\(W_{ij}\)相乘获得的。公式如下:
\(s_j=\sum_ic_{ij}u_{j|i} \ \ \ \ \ \ \ \ \ \ (3)\)
\(u_{j|i}=W_{ij}u_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ (4)\)
\(c_{ij}\)表现的系数是通过名为(dynamic routing)的过程获得的。
胶囊用输出向量的长度来表示实体存在的可能性,一个叫做压缩方程(squash function)的神经元方程被用来压缩向量。公式如下:
\(v_j = \frac{{\lVert s_j \rVert}^{2}}{1+{\lVert s_j \rVert}^{2}} \cdot \frac{s_j}{ \lVert s_j \rVert }\)
\(v_j\)作为胶囊 \(j\) 的输出,是一个向量,表示了输入值,,传统神经元网络用一个标量来给出最终分类的结果。当我们使用向量代替标量的时候,有如下优点:
- 向量使用长度来表示这个实体出现的可能性,同时表示这个实体的定向,方位等信息
- 在传统的CNNs中,一个卷积层用来减小网络的输入,限制了效率。CNNs通常无法在数据旋转等操作后,还表现优良。在胶囊网络中,输出的胶囊表示一类实体。当实体发生变化时,实体对应的胶囊的输出向量的长度并不会改变太多。通过胶囊网络,我们能够获得更稳健的输出的表示。
2.3.胶囊网络在HSI分类上的应用
胶囊网络能够和传统神经网络(比如CNN)结合构成一个为了具体任务的分类系统。在远景社区当中,已经有两个对胶囊网络进行改造的工作。Paoletti et al. [41] 和 Deng et al. [42]对胶囊网络进行改造HSI分类,并且获得了良好的分类结果。 Paoletti et al. 提出了一个光谱-空间胶囊网络来捕捉高抽象层次特征从而减小了网络设计的复杂。[41]中的分类结果表明提出的方法能够提取更相关和更完整的有关HSI数据不同通道之间的信息。Deng et al.提出了一个两层胶囊网络的改进来解决训练集数量受限的问题。
之前的胶囊网络包含一个全连接胶囊层,导致了大量的训练参数。众所周知,大量的参数在训练数量受限的情况下有可能造成过拟合问题。在本次研究中,提出了一个改良的叫做Conv-Capsule的胶囊网络,使用本地连接和分享训练参数,减缓了HSI分类中的过拟合问题。除此之外,前面提到的胶囊网络是对光谱-空间的分类。本研究中,也提出了一个1D胶囊网络作为光谱分类器来增强HSI的分类技术。我们将在第3,4部分对提出的方法的细节进行详细讲解。
3.对光谱进行分类地一维深层胶囊网络
3.1 一维卷积胶囊
深度学习模型使用多层神经元网络分级提取输入数据中的特征是保持深度学习模型有效的关键部分。传统的胶囊网络并不包含多层的胶囊层。因此,有必要建立一个多层胶囊网络。
将多个胶囊网络堆积到一起能够形成一个简单的深度胶囊网络,但是,传统的胶囊层是全连接并且包含大量的训练参数的。当训练集的数量收到限制时,结果会变得更糟。由CNN得到灵感,将CNN的核心思想,本地连接和分享变换矩阵和胶囊层中的动态路由过程相结合,我们称其为Conv-Capsule层。在Conv-Capsule层中,每个本层的胶囊,只和上一层一定范围内的胶囊相连。本地连接中的转换矩阵和整个层分享。
【within its local receptive field 直译的话是他本地能够接受的范围内,在后文这里的范围指的是一个和卷积核类似的范围,所以意译了下翻译成了一定范围内】
在HSI分类中,光谱分类是重要的研究方向。为了改进一个HSI分类的一维胶囊网络,需要利用一个一维Conv-Capsule。以下为一维Conv-Capsule的描述,我们用来构造一个光谱分类器。一维胶囊网络中一个胶囊\(s^x_j\)是从最后一层胶囊层一定范围内所有通道获得的预测向量\(u^{x+p}_{j|i}\)的权值和。除此之外,\(u^{x+p}_{j|i}\)通过上一层的胶囊\(u^{x+p}_i\)连接和上一层整层分享的对应的变换矩阵\(W^p_{ij}\)。通过使用一个压缩函数,输出的胶囊\(v^x_j\)能够从输入\(s^x_j\)获得。在以上描述中使用的等式列举如下:
\(u^{x+p}_{j|i}=W^p_{ij}u^{x+p}_i,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (6)\)
\(s^x_j=\sum^I_{i=1}\sum^{P-1}_{p=0}c^p_{ij}u^{x+p}_{j|i},\ \ \ \ (7)\)
\(v^x_j=squash(s^x_j) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (8)\)
\(I\)和\(P\)是最后一个胶囊层胶囊的通道数量和这层一维Conv-Capsule层卷积核大小。\(s^x_j\)是这层一维Conv-Capsule层第\(j\)个通道的胶囊在位置\(x\)上的输入,\(v^x_j\)是其对应的输出。\(u^{x+p}_i\)是第i个通道胶囊在上一层胶囊层位置(x+p)的输出。\(W^p_{ij}\)是\(u^{x+p}_i\)和\(v^x_j\)之间的转换矩阵。\(c^p_{ij}\)表示由动态路由决定的对应系数。用图表表示如下:
3.2 一维Conv-Capsule层的动态路由
两个连续的胶囊层之间,我们使用动态路由来迭代更新相关系数。操作细节描述如下:
从上个小节中的一维Conv-Capsule的描述中,我们能够知道这层的每个胶囊从上一胶囊层一定区域接受得到了预测向量。每个预测向量在这层中所占的权重是由相关系数决定的。\(u^{x+p}_i\)和上一层胶囊层,在相同位置的所有通道的胶囊的相关系数之和为1,能过够通过softmax函数获得
$ c{p}_{ij}=\frac{exp(b_{ij}p)}{\sum_{k}exp(b_{ik}^p)} \ (9)$
\(b^p_{ij}\)是在训练前初始值为0,之后由动态路由决定的。
在动态路由中,系数\(b^p_{ij}\)是通过测量预测向量和\(v^x_j\)之间的一致性,不断迭代更新。如果一致性达到了很大的程度,说明胶囊\(u^{x+p}_i\)为\(v^x_j\)做了一个很好的预测。之后,系数将大幅度增加。在我们的网络中,一致性是通过两个向量之间的内积确定的,然后会将这个一致性将会被添加到\(b^p_{ij}\)
$ ap_{ij}=u_{j|i}\cdot v^x_j$
\(b^p_{ij} \leftarrow b^p_{ij}+a^p_{ij}\)
以下是一维Conv-Capsule层动态路由的伪代码:
3.3一维HSI分类胶囊网络框架
一维Conv-Capsule网络的主要框架,整合了基于主成分分析PCA,卷积神经网路,胶囊网络的方法,展示如下。我们建立了基于HSI光谱特征这个框架,只用训练数据中的光谱向量来训练模型。
从图二可观察,首先使用PCA用来降低输入数据的维度从而降低网络中需要训练的参数的数量。之后,将每个像素的m个主成分输入网络。通过胶囊网络,可以获得每一个像素的预测标签。
提出的一维Conv-Capsule网络包括了六层。第一层是一个输入层,每个像素拥有m个主成分。第二和第三层是卷积层,和传统CNN中的卷积层一样。第四层是第一层\(I\)个通道的\(d_1\)维胶囊,意味着每个胶囊包括了\(d_1\)个卷积单元。第五层是一个一维Conv-Capsule层,输出\(J\)个通道\(d_2\)维的胶囊。最后一层是一个有\(n_{class}\)种类别的\(d_3\)维的全连接胶囊层,每个胶囊都表现了一个种类,简写为ClassCaps layer。每个输出向量的长度都表明了输入光谱向量属于的种类。图2中的$\lVert L_2\rVert $是向量的欧几里得范数(即长度)。一些关于网络的细节列举如下。
前两个卷积层和传统的卷积层没有区别。我们使用LeakyReLU来获得一个神经元映射[44]
\(\alpha\)是一个小的正标量
第四层是一个转换层,也是第一个胶囊层。这层将卷积结果转化成胶囊,虽然卷积依旧是这层的基础操作,但是他和传统卷积有很多地方不同。在卷积胶囊层中,每个通道的输出\(p\)(每个胶囊包含的神经元个数)个特征图像。之后,这\(p\)个特征图像取本地一定区域\(p\)个卷积单元组成胶囊。
【Then, p convolutional units in the same location of the p feature map represent one capsule.】这些卷积单元激活后给出了每个胶囊的使用式(6)的输出。
在第二,第三,第四层,卷积操作是跟随着每一次BN和LeakyReLU激活函数。提出的网络中没有池化层。
第五层是一个一维Conv-Capsule层。本地连接和分享变换矩阵被应用在这一层。我们使用在上一小节中提到的动态路由来迭代更新相关系数。之后我们得到了这一层的输出胶囊。
最后一层,我们称之为ClassCaps layer层,是一个全连接胶囊层。在这一层中也需要使用动态路由。
ClassCaps layer层中每一个胶囊表示一个类别,一个像素属于一个类别的可能性通过对应胶囊向量的长度来决定。在我们的网络中,我们使用margin loss 作为损失函数。
\(L_M=\sum^{n_{class}}_{j=1}[T_jmax(0,m^+-\lVert v_j\rVert)^2+\lambda(1-T_j)max(0,\lVert v_j\rVert-m^-)^2], \ \ \ \ \ (13)\)
当像素属于类别\(j\)的时候\(T_j=1\)。参数\(m^+\)表示如果向量长度大于$ m+$,我们能过够确信像素属于类比$j$。参数$m-\(表示当向量小于\)m^-\(,我们能够确切相信像素并不属于类别\)j$。【像素并不属于的类别所代表的损失函数可能会因为ClassCaps 层的所有输出向量的长度收缩停止最开始的的学习。所以使用 \(\lambda\)来减轻他的权重。】
4.三维深度胶囊网络作为光谱-空间分类器
4.1三维卷积胶囊
一维胶囊网络只通过提取光谱特征进行HSI分类。为了获得一个更好的分类结果,空间信息也应该被纳入考虑。因此,我们进一步扩展了三维胶囊网络来进行HSI分类。在三维胶囊网络中使用了一个三维Conv-Capsule层,描述如下。
对三维Conv-Capsule层中的每一个胶囊,所有的胶囊在他可接受范围内通过变换矩阵形成一个预测。之后,所有预测向量的权重的总和作为胶囊的输入。最终,输入向量被神经元函数(比如压缩函数)压缩,来形成胶囊的输出。方程细节列举如下:
\(u^{(x+p)(y+p)}_{j|i}=W^{pq}_{ij}u^{(x+p)(y+q)}_i\ \ \ \ \ (14)\)
\(s^{xy}_j=\sum^I_{i=1}\sum^{P-1}_{p=0}\sum^{Q-1}_{q=0}c^{pq}_{ij}u^{(x+p)(y+q)}_{j|i}\ \ \ \ \ (15)\)
\(v^{xy}_j=squash(s^{xy}_j)\)
\(I\)是上一胶囊层的胶囊通道数量。\(P\) 和\(Q\)表示核的大小。除此之外,\(u^{(x+p)(y+q)}_i\)是上一胶囊层在第\(i\)个通道位置\((x+p,y+p)\)的胶囊。另外,\(W^{pq}_{ij}\)是上一胶囊层第i个通道胶囊和这一Conv-Capsule层第j个通道的胶囊的共享变换矩阵。\(c^{pq}_{ij}\)表示通过动态路由决定的相关系数。
三维Conv-Capsule层的描述图如下:
三维Conv-Capsule层的动态路由和一维Conv-Capsule层中的一样。伪代码展示如下:
4.2三维HSI分类胶囊框架
三维Conv-Capsule网络的主要框架展示如图四。和一维Conv-Capsule网络的不同是一维Conv-Capsule网络只提取光谱特征,三维Conv-Capsule网络会将空间信息也纳入考虑。
从图四展示的框架我们能够看到,第一步使用EMAP技术来降低输入数据的维度和训练参数的个数。之后,每个像素的\(a\times a\)个邻居,作为三维输入图像对于3D-Conv-Capsule很重要。通过网络,每一个像素都获得了\({n_{class}}\)个\(d_3\)维度的胶囊。每一个胶囊表示一类实体。每个胶囊输出向量的长度都表示了这种实体存在的可能性。换而言之,他表示了像素点属于每种类别的可能性。因此,能够通过计算向量的长度来获得分类结果。
APs(attribute profiles),EMAP的基础,广泛用于MPs(形态剖面)[20]。EMAP使用多重形态来代替修复结构参数,使EMAP能过够更快的建立空间信息模型。
为了提取更详尽的空间信息,使用了不同的贡献衡量。在这篇论文中,考虑了四种贡献(1)区域的面积(2)方框回归的对角线长度(3)Hu的第一时间[46](4)\(s\),相对标准的偏移量。【通过将通过计算EAPs不同的贡献将他们联系起来生成EMAPs。EAPs通过运用APs进行主成成分分析获得。通过PCA提取主要成分。】
和一维Conv-Capsule网络相似,三维Conv-Capsule也有六层,输入层,两个卷积层,三个连续的胶囊层。两个卷积层为本地特征提取。之后,对转化层(比如胶囊层)进行改进。对后两个胶囊层,我们使用一个动态路由来计算Conv-Capsule层和ClassCaps layer层的胶囊输出。和一维Conv-Capsule相比,输入数据从一维光谱信息变成了三维光谱-空间信息,从一维卷积操作变成了二维卷积操作。三维Conv-Capsule网络使用ReLU作为激活函数。同时使用(batch normalization)缓和过拟合问题和增加分类的准确度。
5.实验结果
5.1数据描述
在我们的研究中,使用了三个拥有不同环境情况的常用高光谱数据集来确认提出方法的高效性。这几个数据集分别是,Salinas Valley in California (Salinas) ,Kennedy Space Center(KSC) ,University of Houston campus and the neighboring area(Houston)。
第一个数据是通过224-band AVIRIS 传感器在加利福尼亚捕捉完成。在移除了噪声之后,剩下可用的数据由204组512$\times$217像素的图像构成。图像覆盖的区域包括了16种类别。高光谱图片导致高空间分辨率(3.7米每像素)。图五展示了错色合成图像和涉及的对应土地的图像。每一个种类的例子的数量列举如下表。
第二组数据,KSC,是通过飞行器记录了佛罗里达的Kennedy 空间中心。KSC数据集有接近海拔20km的高度,一个空间的分辨率是18m。之后移除水的偏离和低噪声,划分成176个512*614像素的向量进行分析。为了分类的目的,挑选了13种事物进行分类。KSC数据集的交错颜色合成图展示如下。每个种类的样例数量展示如表4。
第三组数据是一个休斯顿大学的乡村和临近区域,通过ITRES-CASI 1500传感器收集。数据集是2.5-m分辨率并且由349$\times$1905像素向量,【高光谱图像是通过聚集了144个光谱划分成从380m到1050nm范围内的光谱】地图涉及的15种不同的土地覆盖类型展示如图7。类型数量如表5。
对于所有三组数据集,我们将数据集的图像分成三个部分,训练,校验,测试。在我们的实验中,我们随机选取200个已标记的样例作为训练集来训练每一个神经元和两个相关系数层之间的转换矩阵。我们随机的挑选100个样例,通过在这些样例上面训练出来的结果决定我们网络的正确结构所应该设定的参数,像是卷积操作的核的大小,和每个胶囊输出向量的维度。在训练结束后,所有剩下的标记数据作为测试集来评价网络的能力和获得最后的分类结果。以此设置了三个标准:OA,AA,K。
5.2一维胶囊网络的分类结果
只基于光谱特征建立的一维胶囊网络包括了两部分。一个是将普通的光谱向量作为输入的全连接胶囊网络,另一个是将通过PCA提取的输入光谱特征作为输入的Conv-Capsule网络。我们可以把两个方法简单的称作一维Capsule,和一维Conv-Capsule。在一维Conv-Capsule中,我们先使用PCA减少数据的光谱维度。之后分别随机挑选200个和100个已标记例子作为训练集和校验集。训练集对一维胶囊网络来说很重要。PC的数量是通过校验数据的分类结果决定的。一些其他参数也是通过这样的方法决定。在我们的方法中,mini-batch的大小是100,迭代次数设置为150。在训练开始阶段,我们降低学习速率初始化为0.01。对三组实验数据,PC的数量分别设置为20,20,30。我们在LeakyReLU中分别将\(\alpha\),\(\lambda\),\(m^+\),\(m^-\),设置为,0.1,0.5,0.9,0.1。
每个数据集一维Conv-Capsule网络的主要框架设置展示如表6.由于对输入数据的PC选择一样,第一个和第二个数据集的网络拥有相同的结构。在表六中,\((5\times1\times8)\times8\)在第四层的意味着,使用了八个通道的核大小为5$ \times \(1,每个通道输出八个特征图像。第五层是一个拥有通道胶囊输入,16个通道输出的Conv-Capsule层。核的大小是5\) \times \(1。我们使用\)(5\times1\times8)\times16\(来表示这些操作。最后一层是全连接胶囊层,第五层所有的胶囊和\){n_{class}}\(个分类胶囊在这层连接在一起。这一层每个胶囊的长度表示了这个网络输入属于每个类别的可能性。在一维Conv-Capsule的连续的胶囊层中,运用三个重复迭代来决定相关系数\)b^p_{ij}$。
在这一系列实验中,我们的方法只和其他基于光谱信息进行分类的经典方法进行比较。这些方法包括,RF,MLP,L-SVM,RBF-SVM,RNN,1D-CNN。除此之外,和一维Conv-Capsule拥有相似结构的1D-PCA-CNN也被设计用以比较。分类结果列举如表7--9。
为实验设置的经典分类方法描述如下:用做分类的RF,一个方格搜索的方法和四折交叉验证决定了RFs的两个关键参数。在实验中,F和T的搜索范围是(5,10,15,20)和(100,200,300,400)。本实验中使用的MLP是一个全连接层和一个隐藏层构成的网络。使用的MLP包括了64个隐藏单元。L-SVM是一个没有核函数的线性SVM。RBF-SVM使用径向激励函数作为核。在L-SVM和RBF-SVM中,同样使用一个按格搜索的方法和四层穿越校验定义了大多数使用的高光谱参数。在这次实验中,搜索范围以指数形式增长。设置了一个拥有门控单元和双曲正切激励函数的单层RNN。一维CNN的结构采用了论文[28]中的形式,包括了一个输入层,一个卷积层,一个最大池化层,一个全连接层,一个输出层。卷积核的大小和核的数量对所有的数据集都设置成17和20。对Salinsa,KSC,Houston三个数据集的池化层的大小是5,5,4。表7-9展示了使用如上设定获得的分类结果。所有的实验都用不同的随机训练样例进行了10次训练。分类的精确度以 ±标准差的形式给出。一维Conv-Capsule网络在所有的数据集上都展现了良好的结果。
对所有的三组数据集,RBF-SVM,是著名的解决训练集数量受限情况的方法,给出了竞争性的分类结果。我们使用200组实验样例作为例子讨论结果。对于Sailnas,一维Conv-Capsule展示了最好的OA,AA和K,和RCF-SVM相比超过了2.05%,3.01%,0.023。我们的方法和一维PCA-CNN相比在OA,AA和K方面超过了1.6%,1.62%,0.0179。在KSC方面,我们可以看到1D-CC的OA是88.22%,和RBF-CNN和1D-PCA-CNN相比增加了1.58%和2.2%。对于Houston数据集来说,和1D-PCA-CNN相比在OA,AA,K方面增加了3.21%,2.84%,0.0346。结果是一维Conv-Capsule方法在三个数据集上在OA,AA,K,展示了最好的结果。除此之外,在将100和300个训练样例作为训练集的情况下进行的所有实验中,提出方法也展现了很好的效果。从表7-9展现的结果报告中,可以看出来一维Conv-Capsule当训练集的数量被限制的时候比其他经典分类方法做的更好。
除此之外,也进行了不同数量的PC作为一维Conv-Capsule的输入的实验。图8展示了一维Conv-Capsule在三个数据集上使用200个训练样例的分类结果。由于我们仅将光谱信息添加进一维Conv-Capsule,需要使用更多的PC用来确保保存了充足的光谱信息,同时保持低水平的计算复杂度。从图8中,能够看出如果选择的元素过小或者过大,分类结果将会低于适当情况。一方面,在这种情况下,光谱信息没有很好的保存下来从而导致光谱特征没有办法被有效提取。另一方面,当PC选择过多的时候,会导致大量的训练。如果数据训练数量被限制,情况会变得更糟。对这三个数据集来说,获得的最好的分类结果是当主要元素设置为20,20,30的时候。
5.3一维胶囊学习的特征分析
从前面有关胶囊的描述,能够懂得输出的胶囊是一类实体的象征。为了展示提出方法在远景数据上的真正的优点,我们设计重建一个1D-Capsule网络(1D-Capsule-Recon)进行验证。重建的网络结构展示如图9。根据输入像素的标签,将ClassCaps layer层对应的胶囊输入至重建网络。(如果输入的像素属于第i类,将这个ClassCaps layer的对应的输出向量输入至重建网络)。重建网络包含了三个全连接网络。前面两个FCC层分别有128和256个使用ReLU激发函数的隐藏单元。最后一FC层拥有Sigmoid激发函数输出重构的光谱(比如:一个重建的不同层的映射)作为1D-Capsule-Recon的输入。
重建的图的损失函数,是输入和重建光谱之间的欧几里得距离,描述如下:
\(L_{total}=L_M+\varepsilon L_R\)
LM是边缘损失,LR是重建损失,\(\varepsilon\)是用来避免训练过程中LR过分大从而控制LM的权重系数。在实验中,\(\varepsilon\)设置为0.1。\(L_{total}\)作为1D-Capsule-Recon的损失函数。
为了可视化胶囊表示的向量,我们使用了重建网络。在1D-Capsule-Recon训练结束之后,我们随机挑选了一些不同类别的样例,并且计算了和他们在ClassCaps layer对应的胶囊的向量。我们对向量的不同维度进行了扰动,并且把他们输入至重建网络。图10展示了Salinas中三个类型重建结果的例子。对表示向量的两个维度进行调谐。在图10中,原型是输入1D-Capsule-Recon的输入光谱。图10中的\([v(i)+\Delta]\)意味着我们将\(v\)表示的向量的第i个维度进行\(\Delta\)的扰动。将扰动后的\(v\)用来重建光谱。从图10所展示的结果来看,向量\(v\)能够很好的重建它所表示的光谱,也就意味着选中的向量包括了在低维度的光谱中信息。
除此之外,如同图10中展示的,\(v(i)+\Delta\)能够影响一些特殊区域的重建,意味着\(v(i)\)和特殊区域有着紧密的关系。\(v\)是一个包括了几个\(v(i)\)的向量,同时光谱是健壮的简化的表示。
5.4 三维胶囊网络的分类
在三维胶囊网络中,网络同时提取光谱特征和空间特征,使其就分类精度而言能够获得比一维胶囊网络更好的结果。像是上面提及的,我们提出两个三维框架,三维胶囊和三维卷积胶囊。和一维框架一样,三维胶囊是一个普通的全连接胶囊网络,三维Conv-Capsule是一个卷积胶囊网络。除此之外,三维胶囊直接使用了高光谱数据作为输入,三维Conv-Capsule利用EMAP提取高光谱数据的特征。在三维Conv-Capsule中,使用三个PC并且参数设置同[21]。通过EMAP分析,将三个数据集的光谱维度的数量变换为108.在这一系列的实验中,训练集和校验集的数量和前面一维Conv-Capsule的设置相同.mini-batch大小为100.训练迭代次数设置为100,训练速率设置为0.001.损失函数的参数设置和一维胶囊网络设置相同.三维Conv-Capsule的结果的细节如表10所示.表10中参数定义能够在前面一维Conv-Capsule网络的描述中找到.我们使用批标准化来处理改进网络结果.
在实验中将基于SVM和基于CNN的方法和提出方法进行了详尽的比较。分类结果展示如表11-13.对三组数据集来说,我们使用每个像素27$\times$27相邻做为三维图片输入。
由于就分类精度而言SVM展现了良好的表现,所以将提出的方法和一些基于SVM的改进方法进行了比较。EMP-SVM是一个常用空间-光谱分类器[19]。在EMP-SVM方法中,在通过PCA计算的HSIs数据的前三个部分用形态学的开关操作实现提取空间信息。在这个实验中,结构元素(SE)的形态设置为一个硬盘,硬盘的转速在两个区间内从2升值8。因此,提取到27个空间特征。学习的特征输入至RBF-SVM从而获得最终的分类结果。EMAP是EMP的一般化,并且能够提取许多空间信息。EMAP是由EMAP-RF组成的。为了公平的进行比较,EMAP的参数和三维Conv-Capsule设置相同。在RBF-SVM中,参数 \(C\)和\(\gamma\)通过方格搜索和四折交叉验证的方法获得。除此之外,CNN也被用作比较。同时,我们将三维CNN,EMP-CNN和三维EMAP-CNN和提出方法比较。他们的CNN结构和[31]中相同。为了得到更详尽的比较,同时将提出方法和在[49]中提出的改良的像素空间网络来进行比较。
表11-13给出了推荐方法和比较方法的在三个数据集分类结果。我们也是用200个训练例子的分类结果作为一个例子。对于Sali数据集。三维Conv-Capsule展示了最高的OA,AA,K,分别超过了三维EMAP-CNN,3.64%,3.35%,0.0409。另一方面,我们的三维胶囊方法就OA,AA,K而言也比三维EMAP-CNN表现得好。对KSC数据,三维Conv-Capsule比EMP-CNN好,在OA,AA,K方面分别超出2.19%,3.36%,0.0244。我们得三维胶囊方法也比EMP-CNN就OA,AA,K表现好了,0.52%,1.12%,0.0057。对于Houston数据集,我们获得了同样的结果。使用100和300的训练样例也是同样的结果。分类结果的细节展示如图11-13.和其他最先进方法相比,三维Conv-Capsule在不同的训练情况中展示了最好的结果。
在使用三维Conv-Capsule的实验中,我们也发现EMAP中使用的PC的数量不同也会影响实验结果。由于考虑空间信息和EMAP分析数据值的增长,我们使用极少相关的PC和一维Conv-Capsule进行对比。结果如图11所示。拥有不同数量的PC的三维Conv-Capsule远超其他比较的实验。不像一维Conv-Capsule,更多的PC的保存导致了大量数据卷积,从而带来了大量硬件的访问和三维Conv-Capsule中训练的时间更长。虽然他的分类结果的精准度和使用的分类正相关,但是我们考虑到计算的损失,只是在三维Conv-Capsule中只是用三个PC。
5.5参数分析
在三维Conv-Capsule中,卷积层用来提取特征,并且作为胶囊层的最初输入。因此,卷积层的数量和卷积核的大小能够影响三维Conv-Capsule模型的分类结果。除此之外,由于一个三维Conv-Capsule的输入是一个a\(\times\)a临近大小的像素,邻居的大小也是一个重要的部分。这些部分分析如下。
当我们在分类结果中参数的影响,另一个参数被修复。邻居的大小和卷积核的大小设置为27和3。对于卷积核大小的分析,三维Conv-Capsule使用了27$\times$27的邻居大小核两个卷积层。相同的,卷积层的数量和卷积核的大小设置为2和3用来分析邻居的大小。所有对实验的分析是基于200个训练模板的。表14-16展示了分类结果的细节。从表14可以看出来,使用两个卷积层能够获得最好的分类结果。分析原因,【一个卷积层不能高效的提取特征,三层使模型可能会造成过拟合。】当卷积核大小设置为3时,三维Conv-Capsule展现了更好的结果。对于邻居大小,三维Conv-Capsule的分类精确度在Salinas和KSC数据集上和邻居大小呈正相关,但是在Houston数据集上是另外一种情况。
5.6胶囊网络中学习获得的特征的可视化
和使用标量表示属于不同类型输入可能性的传统神经元网络不同,胶囊网络输出的\({n_{class}}\)(n是存在的种类)个胶囊表示不同类别的实体。每个胶囊输出的向量长度表示了这种实体存在的可能性。在HSI分类任务中,不同胶囊的输出向量的长度能够解释为输入数据属于不同类型的可能性。
我们从数据集中随机挑选几个样例,将他们输入进三维Conv-Capsule网络进行训练。Conv-Capsule层每个胶囊的输出向量长度计算展示如图12.对于图12展示的结果,能够观察到胶囊最长向量和他真正的种类相符合。由于Graminoid 和Spartina之间的相似度,【从Graminoid来看,三个例子中Graminoid类表示,对应的相似的类型的向量的长度要比其他类型要长】
5.7时间消耗
本论文的所有实验都是在i5-7300H的戴尔笔记本上进行的。软件条件为,Windows10作为操作系统,CUDA9.0和cuDNN7.1,使用TensorFlow的Keras框架作为背景,Python3.6作为编程语言。训练和测试的时间列在表17和18中。传统的RF和SVM分类器展示了很高的计算效率。作为深度学习模型,模型能够在训练数据集受限的情况下进行训练,和GPU强大的训练速度。三维Conv-Capsule需要接近3D0CNN的时间,和小于SSRN的时间。在实验中,发现基于胶囊网络的方法比基于CNN的方法要快(比如,100次迭代的3D-Conv-Capsule和500次迭代的3D-EMAP-CNN)。在未来的工作中,更多的具体计算速率的使用能够更大的激发基于胶囊网络方法的计算效率。
5.8分类地图
最终,我们通过视觉处理估计分类的精确度。选择训练模型包括1D-CNN,1D-Conv-Capsule,EMAP-SVM,3D-CNN和3D-Conv-Capsule,对整张图像进行分类。将这些模型的参数设置为最佳。图13-15展示了不同的分类方法获得的分类地图。从图13-15中,我们能够发现不同的分类方法会导致不同的分类结果。1D-Conv-Capsule展示了比1D-CNN更高的精确度。1D-Conv-Capsule和1D-CNN只是使用了光谱特征,和基于光谱-空间的方法相比有更多的错误。基于光谱的模型在分类图谱上经常会散布许多噪点。(可以从图13-15中看出)光谱-空间方法克服了这个缺点。显而易见的,3D-CNN和3D-Conv-Capsule直接使用邻居的信息作为模型输入,最终得到了更平滑的分类地图。通过和真实的图像进行比较,可以发现3D-Conv-Capsule获得了更加精确的分类结果,表明胶囊网络对HSI分类是一个有效的方法。
6.结论
在本篇论文中,提出了一个叫做Conv-Capsule网络的改良胶囊网络。作为Conv-Capsule的基础,新的深度模型叫做1D-Conv-Capsule和3D-Conv-Capsule为了进行HSI分类设计的。除此之外,1D-Conv-Capsule和3D-Conv-Capsule可以和PCA和EMAP结合来获得更好的改良分类结果。
提出的模型,1D-Conv-Capsule和3D-Conv-Capsule能够从数据中高效的提取光谱和光谱-空间特征。他们在三个常用的高光谱数据集中,在训练集数据数量受限的情况下进行测试。测试的结果展示了就分类精确度来说优于基于SVM和基于CNN的方法。
提出的模型探索了卷积胶囊网络在HSI分类上的应用,提出了一个新的方法论来对HSI进行更好的处理。和全连接胶囊层相比,卷积胶囊层能够显著的降低需要训练的参数数量,避免了训练量过大。在我们未来的工作中,基于卷积胶囊,将会试着和深度胶囊结构像是CNN中的SSRN结合,全面的研究胶囊网络的潜能。