黎瑞泉,翁 彬,陈家祯,黄添强,游立军
(1.福建师范大学计算机与网络空间安全学院,福建 福州 350117;2.数字福建大数据安全技术研究所,福建 福州 350117;3.福建省公共服务大数据挖掘与应用工程技术研究中心,福建 福州 350117;4.福建省气象信息中心,福建 福州 350007;5.福建省灾害天气重点实验室,福建 福州 350007)
现有网格化的再分析气候数据集的空间分辨率较低,不确定性较大,对于许多应用领域,如城市规划、水资源管理、农业和生态系统研究,一般需要更高空间和时间分辨率的气候数据。降尺度任务的目的是将大尺度、低分辨率的模式输出信息转化为小尺度、高分辨率的信息。这项任务的目的是提供更详细、准确的气候信息,以满足对高分辨率数据有要求的下游任务需求[1]。传统的降尺度方法可以大致分为统计降尺度和动力降尺度,大部分的降尺度任务旨在获得更高的空间分辨率的气候数据。在气候变化评估中,统计降尺度被广泛使用,它涉及通过在空间和时间维度上与某些大尺度大气参数建立统计关系来缩小区域尺度气候变量[2-4]。动力降尺度通过求解局部地区的大气动力热力方程实现提高空间分辨率的目的,动力降尺度的一个主要缺点是,它需要大量的计算资源[5],所以往往只能在小区域内使用。
随着深度学习的兴起,近年来使用深度学习进行降尺度的研究也逐渐多了起来。由于降尺度任务和计算机视觉领域中的图像超分辨率任务比较相似,所以一些深度降尺度任务所使用网络模型的原型往往可以在图像超分辨率任务中找到。2017年,Vandal等根据深度学习图像超分辨率领域的开山之作SRCNN[6]提出了一种堆叠的SRCNN,称作DeepSD[7],对美国大陆的每日降水进行空间降尺度,这是最早的使用深度学习进行降尺度的工作之一,随后出现了越来越多的基于深度学习的降尺度工作。Cheng等[8]提出了一种将气候数据与相关气象因素融合生成气候图像的方法,并使用了在图像生成有着优异性能的对抗生成模型,在图像超分辨率模型SRGAN[9]的基础上,进行修改,取得了较好的降尺度结果。Passarella等[10]在SRCNN的基础上,改变了下采样在网络中的位置,并且添加了新的特征提取层,提出了FSRCNN-ESM,取得更优于DeepSD的效果。随着Transformer模型在计算机视觉方向的深入研究,注意力机制也成为了计算机视觉研究者们优化模型的常用模块,Jing等[11]在气象领域也引入了注意力机制,提出了全局注意力交叉块,综合考虑了降水与复杂地表特征的关系,实现了对中国月均降水合成数据以及真实数据的10倍降尺度。
深度学习模型可以自动学习数据的特征表示。通过层叠多个神经网络层,深度学习模型能够从原始数据中提取出抽象的、高层次的特征表示[12]。这种能力使得深度学习在降尺度任务中自动发现数据中的重要模式和结构,无需手动设计特征提取方法。气候数据通常包含非线性的变化趋势和关系,深度学习模型由多个非线性层组成,具备较强的非线性建模能力,能够更好地捕捉温度数据中的复杂非线性模式,提高降尺度的准确性和预测能力。深度学习降尺度仍然处于初步阶段,没有图像超分辨率领域发展得成熟,对比统计降尺度,它的准确性更高,对比动态降尺度,它的计算量大大减少,是一种很有应用前景的降尺度方式。
不同尺度的气象数据本质上是同一个现实数据的不同尺度采样,不同尺度数据之间的关系不仅仅是单向的,它们能够相互转换。而现有的深度学习降尺度方法致力于对重建网络进行改进,较少考虑数据的退化过程对重建过程的影响。
基于上述观察发现,以及受到Zhu等[13]提出的CycleGAN和基于CycleGAN的机器翻译方法[14]的启发,本文提出了一种半循环对抗生成的降尺度模型,对中国及其周边地区的地表2 m温度(t2m)进行4倍的降尺度。对比现有的深度学习降尺度模型,引入重建生成器网络和退化生成器网络,在进行降尺度重建的同时,学习数据的退化过程,从而得到更好的学习重建过程;引入对抗性损失,进一步学习低分辨率数据和高分辨率数据的映射关系;引入了半循环损失,建立起退化网络和重建网络之间的联系,进一步优化降尺度结果;并对网络结构和损失函数进行了消融实验,验证了模型和损失函数的有效性,实验证明该方法优于现有的深度学习方法。
ERA5是欧洲中期天气预报中心(ECMWF)制作的最新一代全球再分析数据集,该数据集是使用了数值模型和观测数据来生成历史或过去时间段的气象数据集,提供了从1950年到现在的数十个常用地表和大气变量[15],本文使用ERA5月均0.25°×0.25°的地表2 m的温度数据。
选择将1950—2022年的月均t2m数据划分为训练集(1950—2008年)和测试集(2009—2022年),研究区域选择中国大陆及其附近地域(16°N-55°N;72°E-135°E)。低分辨率数据通过将0.25°×0.25°的数据通过气象分析处理工具CDO进行双线性插值到1°×1°得到,高分辨率数据集使用原始0.25°×0.25°数据,高分辨率数据的大小为160×256像素,低分辨数据的大小为40×64像素。为了更稳定地训练模型,将低分辨率和高分辨率的数据分别做了归一化处理,如下式所示:
(1)
其中,datanorm是归一化后的数据,data是归一化前的数据,datamin表示训练集中所有格点的最小值,datamax表示训练集中所有格点的最大值。
本文提出的半循环的对抗生成网络HC-GAN(half-cycle generative adversarial network)的网络结构如图1所示。HC-GAN由重建生成器GR、退化生成器GF、退化判别器DL和重建判别器DH组成。其中退化生成器GF学习数据的退化过程,将真实高分辨率数据退化成低分辨率数据;重建生成器GR则负责将低分辨率数据重建为高分辨率数据;退化判别器DL的任务是鉴别真实的低分辨率数据rL和通过退化生成器GF得到虚假的低分辨率数据fL;重建判别器DH的任务是鉴别真实的高分辨率数据rH和通过重建生成器GR得到虚假的低分辨率数据fH。图1包括2个半循环路径,低分辨数据的半循环路径(图1中的绿色箭头)首先由GR接收输入的真实低分辨率数据rL,并将其重建为虚假的高分辨数据fH,之后GF接收fH,将其退化成低分辨率的数据,称为cycL。类似地,高分辨率数据的半循环路径(图1中的红色箭头)则依次将真实高分辨率数据rH退化成虚假低分辨率数据fL,再重建为高分辨率数据cycH。本质上退化生成器GF、退化判别器DL和重建判别器DH都是为了重建生成器GR更好地学习重建过程而设计的。在训练阶段,需要对GR、GF、DL、DH进行训练,在测试阶段,将低分辨率数据输入给训练好的重建生成器GR得到重建结果。之所以称为半循环,是因为只对cycH和rH计算损失,并没有对cycL和rL计算损失。
图1 半循环对抗生成网络结构Fig.1 Structure of the half-cycle generative adversarial network
重建生成器GR旨在将低分辨率数据重建为高分辨率数据,与图像超分辨任务的目标一致,因此本文借鉴了Lim等[16]提出的图像超分辨率模型EDSR中的残差结构,并设计了重建生成器网络。该残差结构由2个卷积层和1个非线性激活层组成,相比于He等[17]提出的最原始的残差块,它被证明更适用于图像超分辨率领域。如图2所示,重建生成器GR包括了初始卷积块,深层特征提取的残差集合以及最后的上采样块。初始卷积块从低分辨率图像提取低维度特征作为后续网络的输入,残差组包括了16个残差块(resblock),学习从低分辨率数据到高分辨率数据的非线性映射关系。上采样层采用卷积层以及像素重组(pixelshuffle)将提取的特征重建为高分辨率的数据。
图2 重建生成器网络结构Fig.2 Structure of the reconstruction generator network
图4 判别器网络结构Fig.4 Structure of the discriminator network
与现有的深度学习进行降尺度的模型不同,提出的模型除了重建生成器外,还引入了退化生成器,学习从高分辨率数据到低分辨率数据的退化过程,结构如图3所示。退化过程可以看作是重建高分辨率数据的逆过程。退化生成器由1个初始卷积层、1个非线性激活层、3个残差块以及最后的下采样卷积层组成,初始卷积层和残差块用于提取高分辨率数据的特征,学习高分辨率数据和低分辨率数据的映射关系,最后使用一个充当下采样作用的卷积层将其缩放至低分辨率数据的尺寸。
图3 退化生成器网络结构Fig.3 Structure of the degradation generator network
提出的模型包括2个判别器,两个判别器的结构相同,如图4所示。输入的数据首先经过初始卷积层提取浅层特征,之后经过非线性激活层后进入3个基本块,进一步提取特征,随后经过平均池化和全连接层得到介于0到1之间的输出,越接近1表示该数据的分布越接近真实图像。退化/重建判别器旨在通过对抗学习的方式帮助生成器学习到更准确地退化/重建过程。以重建生成器GR和重建判别器DH为例子,GR首先将低分辨率数据重建为高分辨率数据,DH通过交替地学习分辨真实的高分辨率数据rH和重建生成器GR生成的虚假的高分辨率数据fH,从而学习到真实高分辨率数据的分布,最终能够分辨虚假的高分辨率数据和真实的高分辨率数据之间的区别。重建生成器则需要在有重建判别器“监督”的情况下学习重建高分辨数据,从而更好地学习到重建过程。
本文算法中对重建生成器GR和退化生成器GF使用的损失函数由3个部分组成,如下所示:
L=Lpixel+Ladv-G+Lhalf_cycle_HH,
(2)
其中,Lpixel是像素损失,用来约束重建生成器GR退化生成器GF产生的结果和真实高分辨数据、真实低分辨率之间的差距,Ladv-G是生成器的对抗性损失,通过重建判别器DH和退化判别器DL对真实数据和网络生成的虚假数据的判别结果来对两个生成器的参数优化,Lhalf_cycle_HH是高分辨率数据的半循环损失,将2个生成器的输出结果连接起来,保证了重建生成器生成结果的准确性。
(1)像素损失(pixel loss)
像素损失使用L1损失,计算公式如下:
3.1.3 规范出租停靠。对于出租车和网约车,要设置合理的出租车停靠点,在靠近医院门口的道路上通过摆设锥桶专门划分出一个车道来让出租车停靠上下客,而且要求不能滞留,保证车辆稳定经过。此外,医院出入口要坚决杜绝出租车违章占道和随意上下客的情况,防止堵塞医院的出入口以及妨碍救护车辆的紧急通行。
(3)
其中,rH、fH、rL、fL分别表示真实的高分辨率数据、重建生成器GR得到的高分辨率数据、真实的低分辨率数据和退化生成器GF得到的低分辨率数据,n表示数据格点的数量。
(2)对抗性损失(adversarial loss)
(4)
(5)
其中,PrH和PrL分别表示真实的高分辨率数据和真实低分辨率数据的分布,PfH和PfL表示重建的高分辨率数据和退化的低分辨率数据的分布。
在训练阶段,生成器的对抗性损失Ladv_G优化退化生成器GF和重建生成器GR,使得GF和GR学习“欺骗”DL和DH,从而更好学习退化和重建过程,如下式所示:
Ladv_G=EfH~PfH[DL(fH)-1]2+EfL~PfL[DL(fL)-1]2,
(6)
(3)半循环损失(half_cycle loss)
为了使得退化生成器和重建生成器“连接”起来,本文使用了高分辨率数据的半循环损失Lhalf_cycle_HH来约束真实高分辨率数据rH和其经过退化生成器后又经过重建生成器得到的循环的高分辨率数据cycH。这样能够保证真实高分辨率数据经过了2个生成器后仍然能够接近本身,如式(7)所示。式(8)为低分辨率的半循环损失Lhalf_cycle_LL,对低分辨率数据rL的半循环做了约束(图1绿色箭头)。
Lhalf_cycle_HH=|rH-GR(GF(rH))|,
(7)
Lhalf_cycle_LL=|rL-GF(GR(rL))|。
(8)
HC-GAN的一次训练包括了重建生成器、退化生成器、退化判别器和重建判别器的训练。
实验平台为64位Ubuntu操作系统,采用深度学习框架Pytorch,使用GPU(NVIDIA Tesla V100)训练网络。实验设置如下:像素损失和半循环损失采用L1损失,对抗性损失采用L2损失;共迭代250轮次,迭代的批次大小设置为1;采用Adam优化器,其中参数数β1=0.5,β2=0.999;学习率初始为0.000 2,在最后的150轮,学习率线性衰减直到0。
评价指标选用降尺度中流行的均方误差MSE、决定系数R2和偏差[10],其中MSE越小表示效果越好,Bias越接近0越好,R2越大越好。表1给出的模型与传统插值方法有双线性插值(bilinear)、双三次插值(bicubic)和2个深度学习图像超分辨率模型SRCNN[6]和EDSR,以及一个用于气象的深度学习降尺度模型FSRCNN-ESM在4倍放大的降尺度情景下的指标对比。SRCNN作为最早的深度学习图像超分辨率领域的工作,采用了上采样后提取特征重建的框架,对深度学习图像超分辨率的工作影响深远。EDSR则使用了适用于图像超分辨率的残差块,在许多超分辨率重建竞赛中取得了出色的结果,并被认为是图像超分辨率领域的基准模型之一。FSRCNN-ESM在堆叠的SRCNN模型,即DeepSD的基础上进行改进,在气温、降水等5个气候变量上取得了更好的效果。为了对比的公平性,SRCNN、EDSR和FSRCNN-ESM采用和HC-GAN相同的训练轮数、优化器以及其他参数。
表1 与插值方法以及其他深度学习方法对比结果Tab.1 Comparison results with interpolation methods and other deep learning methods
从图5可知,HC-GAN在MSE和R2上要优于其他方法,在Bias上,仅略差于EDSR的结果。
图5 测试集上3个评价指标箱线图Fig.5 Boxplots of three evaluation metrics on the test set
图6展示了低分辨率(LR)以及高分辨率(HR)的2022年1月均温度数据,以及表1中涉及的方法在测试数据集上的降尺度结果。图7展示了红框内局部地区的空间细节,可以很明显地看到,HC-GAN的重建结果在空间细节上更加丰富,相对于其他方法,重建结果更接近高分辨率的原数据。
图6 2022年1月均温度原数据和降尺度结果(单位:K)Fig.6 Original data and downscaling results of January 2022 monthly average temperature (Unit:K)
图7 2022年1月均温度降尺度结果的空间细节(单位:K)Fig.7 Spatial details of downscaling results for January 2022 monthly average temperature (Unit:K)
为了验证模型以及损失函数的有效性,本文设计了消融实验,对网络结构的消融实验结果见表2,表2第1行表示没有使用提出的网络结构,即仅使用重建生成器进行降尺度;第2行表示使用了提出的网络结构,即模型包括了退化生成器、重建生成器、退化判别器和重建判别器。由表2可知,提出的模型对于重建生成器的重建结果有较大的提升。对损失函数的消融实验结果见表3,表3第1行的模型使用了像素损失Lpixel和对抗性损失Ladv_G;第2行的模型在第1行模型的基础上添加了另一个半循环损失Lhalf_cycle_LL;第3行的模型使用了两个半循环损失;第4行的模型是本文提出的模型。对比第1和第2行,发现加入Lhalf_cycle_LL后,在R2和Bias上性能有所提升,但在MSE性能下降明显。对比表3中第2行和第3行可知Lhalf_cycle_HH的加入使得重建结果在MSE上的表现更加好;对比表3第3行和第4行可知使用Lhalf_cycle_HH且不使用Lhalf_cycle_LL能够达到最好的效果。
表2 网络结构的消融实验结果Tab.2 The results of ablation experiment of network structure
表3 损失函数的消融实验结果Tab.3 The results of ablation experiment of loss function
在温度降尺度的研究中引入了一种半循环的对抗生成网络结构,同时学习温度数据的退化和重建过程,在客观量化评价和重建图像的视觉质量上取得了性能提升。目前使用了合成的ERA5温度数据验证模型的有效性,后续工作将考虑引入真实数据,以及引入多种气象数据作为辅助数据来对温度或者其他的气象数据(降水、土壤湿度等)进行降尺度。