****
上一篇文章GeoAI:地理信息与人工智能的交叉融合中介绍了GeoAI基本概念、基础、应用场景等内容,本文将介绍地理空间应用中最常用的深度学习架构。针对以下每个主题,本文将简要解释其架构,并提供利用该算法的地理空间人工智能(GeoAI)用例和可供学习的资源链接。
- 多层感知器 (MLP)
- 卷积神经网络 (CNN)
- Transformer
- 循环神经网络 (RNN)
- 生成模型
- 总结
深度学习是机器学习的一个分支,近年来其受欢迎程度显著提升。许多人在讨论机器学习时往往只想到深度学习。然而,深度学习实际上是建立在人工神经网络(ANNs)之上的一系列方法,这些网络具有多个隐藏层。


深度学习架构形式多样,每种都基于不同的核心概念。本文将介绍最基础的架构,它们是更高级混合模型的基础。为了方便理解,本文将地理空间研究中常见的模型归类到这些基本架构下,以便读者在遇到这些模型时能够理解其构建的核心概念。
多层感知器 (MLP)
让我们从最基本、最先接触的深度学习模型——多层感知器(MLP)开始。MLP基于人工神经网络的概念,具有多个隐藏层。它由相同的基本组件(输入-Inputs、权重-Weights、偏置-Bias、激活函数-Activation Function等)构成,并通过前向和反向传播机制进行训练。
由于网络中的信息仅沿一个方向流动——从输入节点经过隐藏节点到达输出节点,不存在循环或回路(这与其他架构,如循环神经网络不同),因此MLP属于前馈神经网络。
在MLP中,所有层都是完全连接的,意味着一层中的每个节点都与后续层中的每个节点相连。虽然这是深度人工神经网络中最简单的架构,但它也是应用最广泛的架构之一。这是因为全连接层的原理是构建更复杂架构(如CNN和Transformer)的基础,它们常常被整合到模型的特定部分中。

在GeoAI的背景下,需要注意MLP的输入层。在MLP中,输入由独立的节点组成,每个节点代表数据的一个特征。例如,在判断一个区域是否容易发生洪水时,输入节点可以代表海拔、坡度、预测年降水量等特征。这种结构非常适合以表格形式表示的数据。
然而,当处理图像(例如卫星数据集)时,过程会变得更加复杂,因为每个输入神经元都对应一个像素。这会带来两个主要的挑战:
-
**图像空间上下文的丢失:**由于MLP要求输入层是特征的一维向量,图像必须首先从其二维矩阵形式展平为一维向量。这个操作会移除像素之间的空间关系,而这些关系在地理空间分析中至关重要。例如,边缘和纹理等特征在展平后会丢失。
-
**参数数量庞大:**展平图像会显著增加输入神经元的数量,从而导致大量的参数。例如,假设你有一张大小为224×224像素的RGB(3通道)图像。展平后,我们将有3 * 224 * 224 = 150528 个输入神经元。如果我们使用一个简单的MLP架构,带有一个包含7个神经元的隐藏层和一个包含1个神经元的输出层,那么参数总数将是:(150528 * 7) + 7 + (7*1) +1 = 1053711。

对于一张小的RGB图像来说,这已经超过了一百万个参数!在遥感应用中,需要处理大尺寸的高分辨率多光谱图像,这种情况会迅速变得非常耗费计算资源。这些局限性突显了卷积神经网络(CNN)在地理空间应用中的重要性。
MLP 在地理空间分析中的用例:
-
Urban Sprawl Modeling :一个关于如何在伊拉克巴格达的城市扩张预测工作流程中应用MLP架构的例子。作者模拟了该城市的几个短期和长期发展规划。
-
Coastal Erosion Prediction Modeling(海岸侵蚀预测建模):该研究利用 MLP 构建了一个预测葡萄牙里斯本卡帕里卡海岸沙丘-海滩系统海岸线移动的模型。
卷积神经网络 (CNN)
在过去的几十年里,CNN一直是图像处理领域最核心的架构(Yann LeCun 及其团队于 1989 年首次提出)。与MLP不同,CNN能够捕获数据的空间上下文,这归功于卷积运算。
卷积运算(convolution operation)指的是滑动一个滤波器(也称为内核)在输入图像上,并通过计算滤波器矩阵与滤波器覆盖的图像块的点积来创建特征图的过程。这个操作保留了每个像素的空间上下文,使得图像处理更加高效,因为保留了数据中更重要的信息。滤波器的数值是网络的权重,它们通过训练过程学习得到,类似于MLP,训练过程包括前向传播和反向传播两个步骤。CNN架构的这种结构也使其成为一种前馈神经网络。

要充分理解CNN,还需要学习其他关键概念,包括池化层、填充以及网络的超参数,例如滤波器的大小和步长,以及池化块的大小、步长和类型。
池化层(Pooling layers)是CNN的另一个重要组成部分,负责降低卷积层生成的特征图的维度。池化层有不同的类型,但最大池化是最常用的,因为它保留了图像中激活程度最高的部分。

填充(Padding) 是一项基本操作,用于保留结果特征图中图像的空间分辨率。由于卷积操作本身会减小图像尺寸,填充通过在图像边缘添加一行或多行像素来帮助控制特征图的尺寸。虽然最常见的是零填充(用0填充),但也存在其他类型的填充,例如反射填充或复制填充。

通常在CNN模型的末尾添加一个MLP(全连接层),以便基于提取的图像空间特征执行最终的分类任务。

自1989年问世以来,CNN架构已经以多种方式演变,产生了许多广泛使用的变体。本文列出了一些最常用的基于CNN的架构。
- Vanilla CNNs (例如AlexNet, LeNet):这些是基础的CNN架构,引入了卷积层、池化层和全连接层等核心概念,用于图像分类等任务。
- 深度CNNs (例如 VGGNet, GoogLeNet):这些模型引入了显著增加的网络深度来捕获分层特征,使用了许多堆叠的、内核较小的卷积层。
- 残差网络 (ResNets):这些架构通过引入跳跃连接来解决训练极深网络的难题,使得梯度能够更有效地流动。
- 其他常用于GeoAI应用的基于CNN的模型:
- U-Nets:专门用于语义分割任务,具有编码器-解码器结构和跳跃连接。
- YOLO (You Only Look Once):通过将目标检测问题转化为一个回归问题进行求解,从而实现实时目标检测的优化。
- 特征金字塔网络 (FPNs):专为目标检测设计,采用特征金字塔来检测不同尺度的目标。
CNN 架构在地理空间分析中的应用案例:
-
Land Cover Mapping(土地覆盖制图):该研究基于Sentinel-2影像上采用CNN来绘制罗马地区的土地覆盖图。
-
Change Detection of Deforestation in the Brazilian Amazon Using Landsat Data and Convolutional Neural Networks(巴西亚马逊地区森林砍伐变化检测):该研究应用CNN架构,利用Landsat卫星数据来绘制森林砍伐图。
Transformer
尽管Transformer是一种相对较新的深度学习技术,但它已迅速成为处理地理空间数据的强大架构。虽然它不像CNN那样捕获空间上下文,但其注意力机制使其成为当今最高效和最有前景的机器学习技术之一。最初专为自然语言处理 (NLP) 而提出的Transformer,其开创性论文是2017年的 “Attention is All You Need”,如今已得到了迅速发展以解决计算机视觉和图像处理任务。

在图像处理领域,Transformer演化出了视觉Transformer (ViT)。 这种对原始架构的调整在2020年的论文 “An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale” 中被提出。 ViT仅使用原始Transformer架构的 编码器 部分,其工作原理是将输入图像分割成固定大小的图像块,然后将这些图像块展平并嵌入到编码器中。 编码器由基于注意力机制的注意力模块构建,而注意力机制是Transformer的核心概念。 注意力机制使模型能够捕捉图像中的长距离依赖关系和上下文信息,从而实现全局理解。

ViT在基础模型(Foundation Models)和迁移学习(Transfer Learning)的兴起与发展中扮演了重要角色。如今,这两种技术也在地理空间应用中得到了快速发展。
ViT在地理空间应用中的用例:
-
Transformer-based land use and land cover classification(基于 Transformer 的土地利用和土地覆盖分类):一项研究利用 Transformer 模型进行土地利用和土地覆盖 (LULC) 分类。
-
Building Extraction from Remote Sensing Images(从遥感影像中提取建筑物):一项研究探索了使用Transformer从航空影像中高效提取建筑物的潜力。
-
Enhanced Wildfire Detection and Characterization(增强的野火检测和特征分析):一个GitHub仓库,包含一个旨在利用ViT和Landsat-8数据检测和分析野火的项目。 该仓库包含了所有Python代码。
循环神经网络 (RNN)
循环神经网络 (RNN) 在机器学习领域中占有重要地位,尤其是在自然语言处理 (NLP) 应用中。 然而,与广泛使用的CNN和Transformer框架相比,RNN在地理空间分析中的应用较少。 RNN的核心应用集中在时间序列数据分析上,例如气象预报、气候建模或土地利用变化监测。 RNN于20世纪80年代被提出用于处理序列数据,其中前一步的输出被用作下一步的输入,从而使模型能够保持时间上下文。 其核心概念围绕反馈循环,使其能够处理不同长度的序列。

尽管RNN不是最流行的地理空间数据分析架构,但理解RNN非常重要,因为它们广泛应用于涉及时间序列、语音识别和自然语言处理的任务。 了解RNN的工作原理、用途以及基于RNN架构开发的一些关键模型(例如 LSTM(长短期记忆网络)和 GRU(门控循环单元))是有价值的。
RNN 在地理空间应用中的用例:
-
A GNN-RNN Approach for Harnessing Geospatial and Temporal Information: Application to Crop Yield Prediction(基于图的 RNN 在作物产量预测中的应用):一项研究利用 RNN 架构预测美国大陆基于 1981 年至 2019 年数据的作物产量。该模型在天气、地表和土壤质量等多种因素上进行训练。
-
Exploring the Sensitivity of Recurrent Neural Network Models for Forecasting Land Cover Change(探索RNN在土地覆盖预测中的敏感性):该研究通过进行涉及假设和真实世界数据集的敏感性分析,评估LSTM模型在预测土地覆盖变化方面的性能。
生成式模型(Generative models)
生成式模型是机器学习的一个子领域,旨在基于给定数据集的分布生成新的数据样本。 在地理空间分析中,它们被用于数据增强、云去除、超分辨率增强或异常检测等任务。 相比于CNN或Transformer系列的模型,它们的应用相对较少,但对于特定的任务来说至关重要。 随着Transformer的引入,生成式模型的重要性正在迅速提升,Transforme 彻底改变了生成式模型的可扩展性、多模态输入和建模长距离依赖关系的能力。
- GAN(生成对抗网络): GAN的目标是自主识别输入数据中的模式,从而使模型能够生成与原始数据集相似的新样本。 它们由两个神经网络组成:判别器 和 生成器。
- VAE(变分自编码器): VAE由编码器和解码器组成。 VAE中编码器背后的思想是生成可用于重建其输入的编码。
生成式模型在地理空间分析中的用例:
-
Generative Adversarial Models for Extreme Geospatial Downscaling(用于极端地理空间降尺度的生成对抗模型):该研究论文利用 GAN 架构从极低分辨率的输入生成高分辨率、精确的气候数据集。
-
Cloud removal from satellite imagery using multispectral edge-filtered conditional generative adversarial networks(使用多光谱边缘滤波条件 GAN 从卫星影像中去除云):一篇科学出版物,主题与前一个示例相同,提出了一个使用多光谱卫星数据的基于 GAN 的架构。
总结
深度学习在地理空间人工智能领域正发挥着越来越重要的作用。理解各种神经网络的架构和应用案例,能够帮助研究人员和开发者更好地利用这些工具来解决复杂的地理空间问题。 从简单的MLP到复杂的CNN、Transformer和RNN,每种架构都有其独特的优势和适用的场景。 此外,生成式模型的出现为数据增强和超分辨率等任务提供了新的可能性。 随着技术的不断进步,我们可以期待深度学习在GeoAI领域发挥更大的作用。
本公众号相关内容推荐
- xgcm-通用环流模式后处理Python工具包
- GeoAI:地理信息与人工智能的交叉融合
- 深度学习提升全球海洋涡旋动力学卫星观测能力
- 基于xarray扩展的开源地图可视化Python库
- NOAA 发布世界磁场模型 WMM2025
- 推荐10个用于处理GIS和遥感数据的Python库
- AI行业的2024年
- ECMWF的AI天气预报系统AIFS开放模型权重参数
- The Well:可用于机器学习研究的15TB 物理模拟数据集
- 推荐6个美化Matplotlib可视化样式的python库
- AI天气模型的现状与未来
- 流式传输和渲染可视化三维地理空间数据
- GIS领域常用的24种数据格式
- 一种基于图神经网络的三维建筑模型重建方法
- WebGIS技术栈推荐
- 使用Python工具可视化大型图网络
- 使用NetworkX提取图网络特征
- Argo海洋观测数据处理分析python库:ArgoPy
- 在Jupyter环境中创建交互式可视化地图
- 处理和可视化地理空间数据的Python库:EarthPy
- 地理空间深度学习python库:TorchGeo
- 遥感数据分析python库scikit-eo
- 图网络的应用场景及图分析python库
- 使用Python和NetworkX创建并可视化图网络(Graph Network)
- OpenResearcher:一个开源科学研究AI助理
- NeuralGCM: 一种融合机器学习与物理原理来模拟地球大气的新方法
- Transformer Explainer:文本生成模型交互式可视化工具
- 用于探索性数据分析(EDA)的开源python库
- 分享一个构建交互式D3js可视化的Python库
- 推荐15个图网络可视化python软件包
- 9个提升科研效率的软件工具
- 生成式人工智能模型颠覆传统天气预报
- 分享5个python可视化图表工具
- 分享17个网络(Network)数据可视化工具