ELM分类算法遥感图像分类

浏览: 1760

本文应用机器学习的分类方法。图像数据是一种维度特别大的非结构化数据,每一张图像都是一个矩阵,需要时间复杂度非常低的算法去进行支撑。本文为一个图像分类的应用。通过对遥感图像(遥感图像包含的地图范围比较大)进行分类,得出很大一个地区范围内不同类别地质(河流,山川等)的分布。价值在于有效的判断大范围内的地址分布,为整体的地图数据提供支撑,为地理学家提供有效的数据支撑。

项目应用MATLAB进行算法验证,应用速度很快的分类算法ELM(极限学习机)。下面本文来详细阐述极限学习机在本项目算法分析的作用。不同类别的地质的图像进行一个分类模型的建设。

先来看下遥感图像的地质情况。即数据如下:

遥感图像都是灰度图,不同颜色的地方代表着不同的地质(可能是山川,河流等),地质类型很多,这里只截取4种。以上即是训练的数据。图片为X,为输入,第N类地质的N为Y,为输出。

进而通过以上图像(数据)进行模型建立

ELM的第一步:

与SVM一样,要将数据转化成线性可分情况,即数据线性变化(可以参考我的其他文章)。X通过Sigmoid Function函数

转化成:

MATLAB代码如下:

InputWeight=rand(NumberofHiddenNeurons,NumberofInputNeurons)*2-1;

BiasofHiddenNeurons=rand(NumberofHiddenNeurons,1);

tempH=InputWeight*P;                                          %  Release input of training data 

ind=ones(1,NumberofTrainingData);

BiasMatrix=BiasofHiddenNeurons(:,ind);              %  Extend the bias matrix BiasofHiddenNeurons to match the demention of H

tempH=tempH+BiasMatrix;

H = 1 ./ (1 + exp(-tempH));

ELM的第二步:

第二步又到了Y=AX的公式 求解过程了,求出Y和X之间那个关系A的时刻了。不像SVM需要繁琐的求解方法,大家都知道如果是个方阵矩阵,求解直接可以用求逆的方法,但实际的数据基本没有方阵,但是可以用一个数学方法——广义逆。ELM通过矩阵求广义逆的方法实现(黄广斌教授2006年证明有效),极大的减少了运算速度。

MATLAB代码如下:

Hp=pinv(H);%¼ÆËãHµÄMoore-Penrose¹ãÒåÄæ

beta=Hp*y;

此公式的T为输出(Y),HT为输入H(X)的广义逆。B为输入与输出的关系。此处模型已经建立完毕。极限学习机也可以理解成一种特殊的单隐藏层神经网络。

从此有了输入和输出的关系,就可以对遥感图像进行分类了。输入一个遥感图像就可以分辨出图中所有的地质。举个例子如下图像

对此图像进行分类,由于遥感图像为灰度图,最终我们要通过明显图像进行标注出来。

由于本图像只包含六个类别,这里我们把6个类别进行彩色颜色的标记。通过ELM此图为最终的分类结果:

未来输入一张遥感图像即可识别出此区域的不同地质特征

推荐 3
本文由 张聪 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册