本发明涉及一种算法机器学习算法用于解决高光谱图像分类问题,特别涉及一种通过组合卷积神经网络和超限学习机来提升高光谱分类精度。
背景技术:
对于高光谱图像分类问题,作为高光谱图像的基础研究,它一直是高光谱图像重要的信息获取手段,高光谱图像分类的主要目标是根据待测地物的空间几何信息与光谱信息将图像中的每个像素划分为不同的类别。高光谱图像分类和计算机视觉领域中讲样本分类成不同的类别非常相似,但是它们之间主要的两个不同的之处在于高光谱图像的每个像素点有许许多多的光带,并且高光谱图像的标签的样本有限。因此在有限的样本和每个像素点有着很高维度的光谱分辨率的情况下这给高光谱图像分类算法提出了严峻的挑战。目前有许许多多的算法用于解决高光谱图像分类问题,比如奇异谱分析,支持向量机,主成分分析法等等,然而在高光谱图像分类问题上还是存在许许多多的挑战,比如高光谱的每个像素点的数据结构非常复杂,数据维度非常大,因此在有限的样本情况下实现高精度的分类和在时间耗费比较少的时间要寻找最优的参数显的非常困难,所以既要实现高精度的分类又要减少时间的消耗是一个很大的挑战。
技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提供一种既能提高高光谱图像的分类精度,又能保持比较少的时间的耗费寻找最优的参数的算法。
作为一个单隐层的前馈型神经网络,超限学习机由于以下优点获得了广泛的关注:(1)它相对于支持向量机和其他目前的算法而言有着非常简单的结构和良好的推广性能。(2)它有着非常高的计算效率可以大大的减少计算代价。(3)一旦网络结构被确定以后并不需要调节额外的参数。(4)许许多多的分段连续函数可以作为其隐藏节点的激活函数,比如径向基函数,正弦函数,sigmoid函数等等。虽然超限学习机有着这么多的优点,但是它还是有一些缺点,比如分类精度并不太高,因此,既要维持比较高的分类精度又要维持快速的分类速度对于高光谱图像分类而言仍然是一个非常大的挑战。
最近,深度学习中的卷积神经网络被认为是机器学习算法里面相对而言比较成功的算法,它可以提取高光谱图像像素点的深度特征实现高精度的分类,并且在相邻的两层,卷积神经网络通过局部连接模式来探索局部的空间关联性,基于卷积神经网络这些优点,它可以实现非常好的分类精度,但是它需要反复的进行迭代,耗费的时间非常长。因此我们提出让卷积神经网络只进行一次迭代来进行高光谱像素的深度特征的提取,然后把这些卷积神经网络提取出来的深度特征作为超限学习机的输入,由超限学习机进行分类,这样既可以提高高光谱图像的分类精度又可以维持比较高的分类速度。
本发明的目的通过下述技术方案实现的:
步骤一:首先对于高光谱数据,为了数据分析的方便性,对其进行归一化,让高光谱数据集的取值范围在0到1之间:
其中xij表示高光谱数据集中的一个数据,max()表示高光谱数据集中最大的那个数据。归一化以后,我们就可以进行第二个步骤。
步骤二:对于高光谱数据,因为它的每个像素点有许许多多的光谱特征,因此可以把高光谱数据中的像素点看成是一个二维的曲线,因为卷积神经网络具有提取深度特征的能力,因此在数据进行归一化以后,抽取训练样本,然后将训练样本用来训练卷积神经网络,训练完以后保存卷积神经网络的参数。
步骤三:在卷积神经网络训练完之后,将卷积神经网络提出出来的光谱特征作为超限学习机的输入,对超限学习机进行训练,训练完以后保存超限学习机的参数。
步骤四:当卷积神经网络和超限学习机训练完以后训练完以后,将归一化以后的所有高光谱数据的像素点作为卷积神经网络的输入进行光谱特征重构。
步骤五:卷积神经网络提取高光谱数据集的像素点的深度特征后,把这些提取像素点深度的特征作为超限学习机的输入,用超限学习机把它进行分类,从而既能实现高精度的分类又能保证时间的耗费的不是很大。
本发明相对于现有技术具有如下的优点及效果:
本发明对于现有技术而言,这是首次利用卷积神经网络把高光谱的数据集的像素点的光谱特征进行光谱特征重构,然后把这些重构后的光谱特征作为超限学习机进行分类。
本发明不仅维持了算法的高速性,而且提升了高光谱数据集的分类精度。
本发明相对现有技术而言,在进行光谱特征重构后,还保持了高光谱数据集的空间信息。
附图说明
图1所采用的卷积神经网络的结构;
图2超限学习机原理图;
图3是本发明的完整框架。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
具体实施方式:
步骤一:假定x≡(x1,x2,...,xn)∈rn×l为高光谱数据集中的像素点,高光谱数据集有n个像素点,每个像素点有l个光谱特征,归一化是将高光谱数据集中的所有数据的数值范围保持在[0,1]之间,既以下公式:
其中xij表示高光谱数据集中的一个数据,max()表示高光谱数据集中最大的那个数据。
步骤二:在高光谱数据集进行归一化以后那么接下来就可以利用卷积神经网络对归一化后的高光谱数据集的像素点进行光谱特征重构。如图1所示,我们所采用的卷积神经网络有八层,第一层为输入层,第二层为卷积层,第三层为池化层,第四层为卷积层,第五层为池化层,第六层的作用是光栅化,第七层为全连接层,第八层为光栅化层。
训练样本的抽取:
首先将归一化的高光谱数据集中的每一类样本随机抽取一部分(每一类可以抽取百分之五,或者百分之十,百分之十五等等都可以),抽取好之后将这些样本放进卷积神经网络进行光谱特征重构。
卷积神经网络的训练过程:
将所抽取的样本(也就是像素点)放进卷积神经网络进行训练,首先卷积神经网络进行前向传播,传播到输出层通过计算代价函数:
其中p为总共的样本数量,y和
然后进行反向传播迭代,反向传播过程中保存每一层的参数。为了维持所提出的算法的高速性,我们只将卷积神经网络进行一次迭代,一次迭代完以后保存卷积神经网络每一个层的参数。
步骤三:在卷积神经网络训练完以后,如图1所示,将卷积神经网络的第七层的输出(也就是倒数第二层)的重构后的光谱特征作为超限学习机的输入。如图2所示,对于超限学习机它有三层,首先随机产生隐层节点的权重ai和偏置bi,用这些重构后的光谱特征作为输入,那么隐层矩阵可以由下式所得:
其中g为激活函数。
隐层矩阵形成后接下里就可以计算输出矩阵:
其中
超限学习机训练完以后,保存超限学习机的参数。
步骤四:在卷积神经网络和超限学习机训练完以后,将归一化高光谱数据集的所有像素点作为卷积神经网络的输入进行光谱特征重构,在测试过程中,卷积神经网络的最后一层也就是输出层不用,直接将第七层所重构后的光谱特征进行输出。
步骤五:将卷积神经网络输出的光谱特征作为超限学习机的输入,从而进行分类。本发明既可以利用超限学习机的高速性,又可以利用卷积神经网络提取深度特征的能力,从而既保证了算法的高速性,又提升了高光谱图像分类的精度。
如图3所示,此框架为本发明的完整框架。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。