matlab人工智能项目——ELM地质分类

智慧城市这些年抄的非常的热,主要的目的就是让人类更加方便的去生活。本项目为智慧城市类的一个图像分类的应用。通过对遥感图像(遥感图像包含的地图范围比较大)进行分类,得出很大一个地区范围内不同类别地质(河流,山川等)的分布。价值在于有效的判断大范围内的建筑分布,为整体的地图数据提供支撑,为地理学家提供有效的数据支撑。

本项目应用机器学习的分类方法。图像数据是一种维度特别大的非结构化数据,每一张图像都是一个矩阵,需要时间复杂度非常低的算法去进行支撑。

项目应用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为输入与输出的关系。此处模型已经建立完毕。极限学习机也可以理解成一种特殊的单隐藏层神经网络。

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

matlab人工智能项目——ELM地质分类_第1张图片

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

matlab人工智能项目——ELM地质分类_第2张图片

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

matlab人工智能项目——ELM地质分类_第3张图片

未来输入一张遥感图像即可识别出此区域的不同地质特征,后续还与地质研究着实现一些地质上的科研研究,有兴趣的可以关注后续文章也可以关注微博Zason_張


你可能感兴趣的:(算法,数据挖掘,matlab,人工智能,预测)