SpectralGPT: Spectral Foundation Model 论文翻译1

遥感领域的通用大模型 2023.11.13在CVPR发表

原文地址:[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org)

摘要

​ 基础模型最近引起了人们的极大关注,因为它有可能以一种自我监督的方式彻底改变视觉表征学习领域。虽然大多数基础模型都是为了有效地处理各种视觉任务的RGB图像而定制的,但在光谱数据方面的研究存在明显的差距,光谱数据为场景理解提供了有价值的信息,特别是在遥感(RS)应用中。为了填补这一空白,我们首次创建了一个通用的RS基础模型,名为SpectralGPT,该模型专门用于使用新型3D generative pretrained transformer(GPT)处理光谱RS图像。与现有基础模型相比,SpectralGPT

  1. 以渐进式训练方式适应不同尺寸、分辨率、时间序列和区域的输入图像,充分利用广泛的遥感大数据;
  2. 利用3D token生成空间光谱耦合;
  3. 通过多目标重建捕获光谱序列模式;
  4. 在100万张光谱RS图像上进行训练,生成超过6亿个参数的模型。

我们的评估突出了预训练的SpectralGPT模型的显著性能改进,这意味着巨大的潜力

引言

​ 光谱成像能够捕获大量的光谱信息,从而实现对物体和场景的高度精确的分析和识别,这超出了单独使用RGB数据的可能性。这使得多/高光谱(MS/HS)遥感(RS)数据成为首选工具和广泛的地球观测(EO)应用的关键组成部分,包括土地利用/土地覆盖测绘、生态系统监测、天气预报、能源开发、生物多样性保护和地质勘探。遥感卫星任务(如Landsat-8/9、Sentinel-2、高分-1/2/6等)的光谱数据的可用性和可及性迅速扩大,进一步为EO相关领域的新发现和进步提供了机会。然而,这种增长也产生了两个具有挑战性的困难,需要迅速注意和有效解决。

  • 从海量光谱数据中提取和挖掘信息的能力有限。现有的以专家为中心和数据驱动的模型已经达到了极限,不足以有效地从如此大量的光谱RS数据中学习视觉表示。为了将光谱遥感大数据的智能处理和分析能力提高到与其体量相匹配的水平,迫切需要创建新一代模型。
  • 在少数标签和无标签的情况下对地球观测(EO)任务有限的预测和解释能力。与光谱遥感数据的可用性相比,在像素级和图像级都缺乏相应的标签。标记数据的缺乏阻碍了深度学习和人工智能模型在实际EO任务中的全面监督应用。需要采取紧急行动,创建包含谱知识的RS基础模型。

​ 在自我监督学习技术以及基于transformer的方法的迁移能力进步的推动下,基于基础模型的预训练技术的飞速发展。值得注意的是,这种激增在自然语言处理和计算机视觉领域尤为明显。Pretraining agent tasks 通常分为对比学习和生成学习。顾名思义,前者旨在教会模型区分相似和不相似的示例,而后者侧重于训练模型生成新数据或从部分观测中恢复完整数据。它们的区别如图1所示。对比学习的两个代表性框架是动量对比(MoCo)[14]和简单对比学习(SimCLR)[15]。MoCo引入动量更新来改进对比学习过程,而SimCLR利用数据增强来增强用于对比学习的图像对的多样性和复杂性。自从MoCo和SimCLR框架最初提出建议以来,已经开发了许多变体。这些变体旨在解决原始框架的特定挑战或限制,或进一步提高其性能。例如,SimCLR的一些变体加入了新的数据增强类型或改进了训练目标,而MoCo的一些变体探索了不同的动量更新策略或使用额外的损失来改进对比学习。随着**视觉变形(vision transformer, ViT)**的兴起,基于掩膜图像建模(mask image modeling, MIM)的生成学习在视觉预训练任务方面取得了重大进展。来自图像转换器(BEiT)的双向编码器表示,如[23]所示,是构建在ViT之上的MIM架构的一个突出例子。MIM允许输入所有图像patches,这为适应各种网络体系结构提供了灵活性。然而,与MIM相关的高计算成本在一定程度上限制了它在某些应用中的实际应用。他等人[24]提出了掩码自编码器(MAE)作为MIM的一种特殊替代方案。在MAE中,使用未遮挡的补丁或像素来重建那些被遮挡的补丁或像素。这种方法计算效率更高,也增强了预训练模型的推理能力,从而使其更适用于各种应用。

​ 然而,这些先进的模型在RS中的探索相对不足。针对RS任务设计,Wang等人[25]训练了包含1亿参数transformer的模型,开发了一种新的旋转变大小窗口注意机制,用于对下游任务的模型进行微调。不同于仅依赖少数可见图像patches来推断整个图像的mae方法,Sun等人[26]通过在其RS预训练模型中实施MIM策略,考虑了所有图像patches,无论是掩码的还是未掩码的。尽管计算成本增加,推理效率降低,但MIM允许灵活地使用各种深度架构作为网络骨干,如ViT和Swin transformer[27]。这两项初步研究的成功表明,预训练模型在红外光谱中的应用潜力巨大。成像光谱学的快速发展巩固了光谱遥感在红外光谱中的重要性。这种突出源于它有效利用丰富的光谱信息的独特能力。然而,现有的遥感基础模型由于对多波段数据的建模能力有限,在应用于光谱数据时遇到了挑战。光谱数据与现有基础模型之间的具体差距可以总结如下:

  1. (对比现有的RS基础模型):它们通常难以捕获三维张量数据中固有的空间光谱表示。这些模型中的大多数主要设计用于处理类似RGB图像的数据,这限制了它们完全捕获和表征光谱信息的能力。因此,它们处理此类数据类型的适用性仍然受到限制。
  2. (对比视频数据基础模型):计算机视觉中已经有针对视频数据设计的基础模型[28],[29],但视频数据与光谱数据之间存在显著差异。主要区别在于视频中连续帧之间的内容变化以及所有帧之间经常存在的冗余。因此,针对视频数据预先训练的网络设计往往不太适合频谱数据。
  3. (对比光谱数据基础模型):事实上,最近关于光谱数据基础模型的研究相对较少。只有一篇会议论文,即SatMAE[30],深入研究了预训练transformer的利用,例如MAE,用于光谱卫星图像。SatMAE的核心设计方法包括对相邻的光谱带进行分组,类似于RGB波段。然而,这种做法无意中破坏了光谱的连续性,导致三维空间-光谱耦合特征和光谱序列数据的不理想捕获。此外,有关预训练样本数量和有效训练策略的限制进一步阻碍了这方面的性能提高。

​ 为了填补这些空白,我们设计了SpectralGPT,这是一种为光谱数据精心定制的开创性RS基础模型。SpectralGPT具有开创性的元素,例如3D掩蔽策略,用于从空间-光谱混合令牌中学习视觉表示的编码器,以及用于保留光谱序列特征的多目标重建解码器。这些创新显著增强了SpectralGPT从光谱数据中学习内在知识表示的能力,为各种RS下游应用的场景理解提供了有价值的见解。图2展示了SpectralGPT预训练的视觉概述及其在不同下游任务中的通用应用,强调了其深远的贡献。

  • 光谱数据定制基础模型:SpectralGPT是第一个专门为光谱遥感数据设计的基础模型。SpectralGPT在MAE框架中考虑了光谱数据的独特特征,即空间光谱耦合和光谱序列性,具有简单而有效的3D GPT网络。
  • 大规模训练数据:SpectralGPT是在来自Sentinel-2卫星的广泛数据集上进行训练的,该数据集拥有超过100万张光谱图像。这项工作在三个不同的模型迭代(base、Large和huge)的创建中达到高潮,分别包含大约1亿个、3亿个和6亿个参数。
  • 预训练的灵活性:SpectralGPT采用渐进式训练策略,使其能够处理不同大小、分辨率、时间序列和地理区域的输入图像。这种创新的设计使模型的编码器暴露在各种各样的信息中,最终增强了其有效表示广泛特征的能力。
  • 先进的3D掩模和重建:SpectralGPT利用3D张量形状的空间光谱掩模,对光谱RS数据的掩模率至少为90%。此外,它采用开创性的多目标重建策略,全面捕获局部空间光谱特征和光谱序列信息。这些创新通过推理极大地提高了模型的学习能力。
  • 在下游任务中的卓越性能:SpectralGPT的影响扩展到下游RS模型,在各种任务中,它优于现有的最先进的(SOTA)竞争对手,包括单/多标签场景分类、语义分割和变化检测。
  • 新的基准数据集:我们策划了一个新的基准数据集,名为SegMunich,它专注于德国慕尼黑市内的城市地区及其邻近社区。该数据集是为了满足语义分割任务的需求而设计的,有13个类,便于下游分析。

SpectralGPT 介绍

A.简要回顾MAE

​ MAE是一种简单的自动编码方法[31],可以重建原始信号。像所有的自编码器一样,MAE包括一个编码器,它将观察到的信号映射到一个电位表示,以及一个解码器,从电位表示重建原始信号。然而,与经典的自编码器相比,MAE采用非对称设计,使编码器只能对部分和观察到的信号(没有掩码令牌)进行操作。此外,MAE采用轻量级解码器从潜在表示和掩码令牌重构完整信号。具体而言,MAE的实施过程可分为以下几个步骤:

  1. 给定H × W × C的输入图像,采用ViT中的策略将其划分为规则的、不重叠的patch,大小为p × p × C; 记为 x = { x 1 , x 2 , . . . , x H p × W p } x=\{x_1,x_2,...,x_{\frac{H}{p}\times \frac{W}{p}}\} x={x1,x2,...,xpH×pW}
  2. 接下来,对这些patch执行掩膜操作,以识别可见(或未掩膜)和掩膜的patch。即 x_{vis} = {x_i \|i \\in vis}。只有可见的patch被发送到待学习的编码器中。
  3. 编码器 f e n f_{en} fen使用ViT实现,其中每个可见patch首先由共享矩阵 E s E_s Es线性投影,结合位置嵌入 E p o s E_{pos} Epos,然后通过一系列transformer块进行处理。因此,第i个patch的编码器输出可以表示为 z i = f e n ( E s x i + E p o s ) z_i= f_{en}(E_sx_i + E_{pos}) zi=fen(Esxi+Epos)。
  4. MAE解码器的输入,用 g d e g_{de} gde表示,是一组完整的tokens,包括编码的可见patch和掩码tokens(例如, z m z_m zm)。编码特征(来自编码器的潜在表示)和掩码tokens用作输入,并与轻量级ViT解码器的位置嵌入相结合。解码器的最后一层是一个线性投影(例如,W),它输出的几个通道等于一个patch中的像素数。然后对输出进行重塑以重建图像为 x ^ = g d e ( W ( [ z v i s , z m ] ) + p o s ) \hat{x} = g_{de}(W([z_{vis},z_m])+pos) x^=gde(W([zvis,zm])+pos),其中 z v i s z_{vis} zvis是可见补丁的编码表示。
  5. MAE中使用的损失函数是均方误差(mean squared error, MSE),对可见和被掩盖的patch进行计算(类似于BERT[32])

​ 值得注意的是,我们进行了归一化处理,即计算每个patch中像素值的均值和标准差,并对patch进行归一化处理,即 x n o r m = x i − u i σ i ∣ i ∈ v i s x_norm = {\frac{x_i-u_i}{\sigma_i}|i\in vis} xnorm=σixi−ui∣i∈vis。在这种情况下,编码器重建任务更改为重建归一化像素值。

B. SpectralGPT方法概述

​ 我们的SpectralGPT模型由三个关键组件组成:用于处理光谱数据的3D掩模用于学习光谱视觉表示的编码器用于多目标重建的解码器。使我们的方法与众不同的是一种渐进的训练方式,其中模型使用不同类型的光谱数据进行训练。该策略增强了所提出的SpectralGPT基础模型,赋予其更大的灵活性、鲁棒性和泛化能力。图2提供了具有各种下游任务的拟议SpectralGPT的说明性工作流程。

C.光谱数据的3D掩膜

​ 受基于mae框架的视频类数据的时空不可知采样的启发[29],我们将多波段光谱图像建模为三维张量数据。为了实现这一点,我们实现了一个3D立方体掩蔽策略,可以有效地处理类张量光谱数据。我们的方法利用90%的掩蔽率以有效的方式捕获空间和光谱的视觉表示,从而从输入的光谱数据中提取更准确和多样化的知识。

​ 给定一个H×W×D给定三维立方体光谱图像,我们沿着空间和光谱维度将其划分为非重叠的3D张量token。每个token的大小为p × p × k,其中p和k分别是空间维度和光谱维度的token大小。如此,我们可以得到 H p × W p × D k \frac{H}{p}\times\frac{W}{p}\times\frac{D}{k} pH×pW×kD个token,记为记为 x = { x 1 , x 2 , . . . , x H p × W p × D k } x=\{x_1,x_2,...,x_{\frac{H}{p}\times\frac{W}{p}\times\frac{D}{k}}\} x={x1,x2,...,xpH×pW×kD},可见图像和掩膜图像表示为 x v i s x_{vis} xvis 和 x m a s k x_{mask} xmask

x v i s , x m a s k \] = M ⋅ x , \[x_{vis},x_{mask}\] = M \\cdot x, \[xvis,xmask\]=M⋅x, ​ 其中 M ∈ 0 , 1 H p × W p × D k M\\in {0,1}\^{\\frac{H}{p}\\times\\frac{W}{p}\\times\\frac{D}{k}} M∈0,1pH×pW×kD是一个标记的二进制掩码,指示应该屏蔽哪些标记,即标记中的所有像素都设置为零。 #### **D.可见标记的编码器** ​ 与MAE中的编码器类似,所有可见标记$ x_{vis} = {x_i \|i \\in vis}$ 空间-光谱混合表示首先使用共享线性投影 E s E_s Es转换为特征嵌入。通过编码器 f θ f_θ fθ学习到的关于变量 θ θ θ的表示表示为 f θ ( E s x i + E p o s ) f_θ(E_sx_i+ E_{pos}) fθ(Esxi+Epos),其中 E p o s E_{pos} Epos表示位置编码。编码器 f θ f_θ fθ由多个堆叠自注意(SA) transfromer块组成。编码器中使用的SA模块可以构造如下。 * 对输入嵌入 z i z_i zi使用可训练矩阵 W Q , W K , W V W_Q ,W_K,W_V WQ,WK,WV,线性变化为query Q i Q_i Qi、key K i K_i Ki、value V i V_i Vi * 查询和关键字嵌入之间的注意力分数 S i S_i Si以点积的形式计算并乘 1 d \\frac{1}{\\sqrt d} d 1 ,通过softmax。然后,结果分数被用来对值嵌入进行加权,这些值嵌入被求和以产生最终的输出嵌入。原SA的完整过程公式为 Q i = w i W Q , K i = x i W K , V i = x i W V S i = s o f t m a x ( Q i K i T d ) , z i = A t t e n t i o n ( Q i , K i , V i ) = S i V i , Q_i =w_iW_Q,K_i = x_iW_K,V_i = x_iW_V\\\\ S_i = softmax(\\frac{Q_iK\^T_i}{\\sqrt d}),\\\\ z_i = Attention(Q_i,K_i,V_i) = S_iV_i,\\\\ Qi=wiWQ,Ki=xiWK,Vi=xiWVSi=softmax(d QiKiT),zi=Attention(Qi,Ki,Vi)=SiVi, * 最后,输出特征z具有相同的维度a,可以被后续编码器进一步处理 #### E.具有多目标重构的轻量级解码器给定编码器输出特征 ​ 我们同时训练一个轻量级解码器,该解码器具有相对于变量z的多目标重建策略,以从可见和掩码图像标记的潜在嵌入中恢复原始图像标记。数学上,重建的图像标记可以表示为 x \^ = g ( f θ ( M ⋅ x ) ) \\hat x = g (f_θ(M\\cdot x)) x\^=g(fθ(M⋅x))。解码器通常比编码器更窄、更浅,通常由几个transformer块和一个线性重构层组成。提出的SpectralGPT以端到端方式训练编码器和解码器,以最大限度地减少重建图像token和原始图像token之间的重建损失。在我们的方法中,重构损失由两个部分组成:token到token,频谱到频谱。这种多目标重构使得学习表征能够有效地捕获空间-频谱耦合特征和频谱序列信息。使用像素空间中的MSE作为损失函数。 #### F.渐进式预训练 ​ 所提出的SpectralGPT模型具有对不同输入图像尺寸具有高度适应性的优点,这对于处理具有不同尺寸、分辨率、时间变化率和地理覆盖范围的图像的大型数据集特别有用。这是通过将输入图像分成固定大小的3D tokens(例如,8 × 8 × 3),然后通过编码器-解码器管道独立处理来实现的。然后将产生的标记拼接在一起,形成最终的输出图像。这种方法确保了模型理论上可以处理任意维度的图像,而不需要对体系结构或超参数进行任何更改。有了这个特性,所提出的模型允许将不同大小的图像输入到编码器网络中,并且只要将3D tokens裁剪为固定大小,就可以使用不同的传感器、分辨率、时间序列和模态来输入图像。 ​ 值得强调的是,将不同类型的输入图像逐步输入到网络中,不仅有助于在输入图像的类型和大小上实现更大的灵活性,而且还有助于提高模型从不同数据源中提取有价值知识的能力,从而增强模型的泛化。例如,**可以先输入96 ×96像素的图像,然后逐步输入128 x 128像素的图像,或者从哨兵2号数据开始,然后过渡到陆地卫星8号或高分2号数据** 。更广泛地说,处理不同类型和大小的输入图像的能力可以产生更健壮和可泛化的特征,而**不限于特定的输入图像类型或大小,从而提高模型的泛化和先前未见过的数据的性能**。此外,这种输入图像大小和类型的灵活性在实际应用中特别有益,在实际应用中,输入图像可能来自不同的来源或具有不同的分辨率,从而允许模型更适应输入图像不可预测的现实场景。 #### G.预训练数据集 ​ 我们的基础模型是在一个全面的数据集上训练的Sentinel-2卫星。该数据集包括12个光谱波段,并从两个主要来源获取:(1)fMoW- s2\[30\],一个基于世界功能地图(fMoW)\[33\]的全球多样化收集,标记为62个类别,(2)BigEarthNet\[34\],一个源自10多个欧洲国家的区域数据集。为了提供数据集的概述,图3显示了地球上有人居住地区的图像样本分布,总共有1,473,105张图像。 ![image-20231124142851814](https://file.jishuzhan.net/article/1729018545511075842/c22902a4220a5e62a8f415cd3f003e86.webp) ​ 斯坦福大学的研究人员精心制作了一项研究数据集,利用fMoW数据集的地理坐标和时间戳。这个过程的目的是构造一个时间哨兵2号的一系列图像为了确保数据质量,排除了sentinel -2之前的fMoW图像。对于部分之前的fMoW图像的位置,进行选择性管理,包括排除这些特定于速度的图像,并每隔6个月引入补充捕获,以丰富时间序列。这种方法最终创建了fMoW Sentinel2数据集,表示为fMoW- s2。该数据集主要覆盖了fMoW位置,并保留了与原始fMoW数据集中的标签镜像。fMoW-S2数据集由Sentinel-2光谱图像(B1-12和B8A)组成,分为三个子集:712874张训练图像、84939张验证图像和84966张测试图像,共882779张。每个图像的平均尺寸约为45像素高和60像素宽。有关fMoW-S2数据集的更多详细信息,有兴趣的人士可参阅专门的网站,[在这!](https://purl.stanford.edu/vg497cb6002)。 ​ 此外,该研究结合了BigEarthNet数据集,特别是BigEarthNet- s2变体,[在这!](https://bigearth.net/),包括590,326个不同的、不重叠的Sentinel-2光谱图像标记。使用该方法对不同变体模型进行预训练,涉及使用712,874张fMoW-S2图像和354,196张bigearth - s2图像。值得注意的是,只有10%的带有标签的bigearth - s2图像(总计35420张)被用于下游任务的微调。 #### H.实现细节和实验设置 ​ 根据既定惯例,我们承认Sentinel-2图像包含13个光谱波段。然而,为了在信道组成方面协调预训练和下游任务之间的数据集,我们选择在所有fMoW数据集图像中保留12个优势波段,不包括波段B10。为了保证数据的一致性,我们将光谱图像**逐波段归一化** ,将其值缩放到0到1的标准化范围。随后,我们遵循既定的方法\[30\]进行预处理。这包括在原始大小的0.2倍到1.0倍范围内随机裁剪图像,将它们调整为96 × 96像素,并应用水平翻转。这些细致的步骤共同有助于我们的谱基础模型的鲁棒性和兼容性。我们采用普通的**ViT-Base** 架构作为网络骨干。为了使模型适应光谱数据,我们使用了**8×8×3** 像素的令牌大小,有效地划分了图像。例如,一个大小为**96 × 96 × 12** 像素的图像被分割成**12 × 12 × 4**个标记。从先前的工作\[29\]中获得灵感,我们的方法结合了两个可学习的位置嵌入。其中一种嵌入是专门用于空间信息的,而另一种是专门用于捕获跨光谱通道的变化的。这种增强进一步提高了模型从光谱输入中提取有意义特征的能力。 ​ 我们的预训练严格遵循先前研究中概述的方法\[30\]。利用**8个NVIDIA GeForce RTX 4090 gpu** 和**AMD EPYC7Y83** 的计算能力。我们实现了**AdamW优化器** \[35\],其基本学习率为 1 0 − 4 10\^{-4} 10−4 ,加上**半周期余弦衰减** 学习率调整策略。为了保证鲁棒性,我们采用了**90%**的3D掩蔽率,便于有效的训练。该模型在fMoW-S2数据集上进行了跨越**200个epoch** 的综合预训练。在此阶段之后,模型继续在BigEarthNetS2数据集上进行**100 epoch** 的训练。虽然这个阶段需要将输入尺寸修改为**128 × 128 × 12** ,但其他设置保持一致。为了区分不同的阶段,仅在fMoW数据集上预训练的模型表示为**SpectralGPT** ,而在两个数据集上以渐进的方式预训练的模型表示为**SpectralGPT+**。这种细致的策略有效地提高了模型在不同数据集上的适应性和性能。 [SpectralGPT: Spectral Foundation Model 论文翻译 实验部分](https://blog.csdn.net/weixin_41099712/article/details/134605230)

相关推荐
蹦蹦跳跳真可爱5891 小时前
Python----目标检测(《Fast R-CNN》和Fast R-CNN)
人工智能·python·深度学习·神经网络·目标检测·cnn
czliutz1 小时前
NiceGUI 是一个基于 Python 的现代 Web 应用框架
开发语言·前端·python
bluebonnet273 小时前
【agent开发】部署LLM(一)
python·llama
HHBon3 小时前
判断用户输入昵称是否存在(Python)
linux·开发语言·python
敢敢变成了憨憨5 小时前
java操作服务器文件(把解析过的文件迁移到历史文件夹地下)
java·服务器·python
敲键盘的小夜猫5 小时前
Milvus向量Search查询综合案例实战(下)
数据库·python·milvus
简简单单做算法6 小时前
基于mediapipe深度学习的虚拟画板系统python源码
人工智能·python·深度学习·mediapipe·虚拟画板
愿望会实现吧7 小时前
|从零开始的Pyside2界面编程|绘图、布局及页面切换
python
zstar-_7 小时前
【Ragflow】24.Ragflow-plus开发日志:增加分词逻辑,修复关键词检索失效问题
人工智能·python·llm
love530love8 小时前
【笔记】2025 年 Windows 系统下 abu 量化交易库部署与适配指南
大数据·运维·人工智能·windows·笔记·python·conda