基于UNet 和注意力机制的太阳光球层磁场预测模型

2022-06-24 07:22马骁鹏
科学技术创新 2022年18期
关键词:磁场卷积神经网络

马骁鹏

(郑州工业应用技术学院 信息工程学院,河南 郑州451100)

1 研究背景

近年来,机器学习相关技术飞速发展,尤其是深度神经网络在众多领域都得到了成功的应用。神经网络模型通过在已知数据集上进行训练,能够学习到数据中内在的联系,从而获得一定的预测能力。值得一提的是,为了提高神经网络的泛化能力和训练时的收敛速度,研究者们提出了多种类型的神经网络结构。例如,卷积神经网络因为考虑到了图片内容的平移和缩放不变性,在图像处理领域有着广泛的应用。虽然已经有研究者提出了日震学的方法来估计太阳背面活动区的位置,但此方法无法给出更为精细的太阳背面大尺度磁场结构。而基于磁流体对流方程的表面磁通量传输(Surface Flux Transport, SFT)模型虽然能够实现光球层磁场的演化,但此方法是作用于全日面的磁图,而全日面磁图一般是通过整个太阳自转周期的太阳正面磁场数据加权得到的。因此此方法也具有一定局限性。光球层磁场对于日冕等离子体结构和演化起着决定性作用,进而决定着向外流出的太阳风的大尺度结构。不少日冕及太阳风数值模型均是基于光球层磁场观测数据[1]。然而,目前日冕磁场的观测依然局限于地球附近的地基观测和卫星观测两种。无论是哪种观测,它们都只能同时观测太阳的一侧,而太阳的另一侧磁场结构只能在半个太阳自转周期(≈13 天)之后才能观测到。因此,研究基于UNet 和注意力机制的太阳光球层磁场预测模型。

2 模型构建

2.1 神经网络模型

太阳磁场观测数据本质上是一幅单通道的图像。不仅如此,与图像分割和图像修复任务类似,太阳光球层磁场预测模型要求的输入和输出的图像大小也是一致的,且连续多天的数据可以看成是一幅图像的多个通道。因此,UNet神经网络可以直接用于太阳光球层磁场的预测。本文的神经网络模型以UNet 为基础,并尝试性的将MHSA 神经网络层引入其中。

常规的UNet 神经网络结构一般包含编码器和解码器两部分,且二者均由相似的模块搭建而成[2]。图1 中展示了UNet 中基本的神经网络模块结构,其仅包含一层卷积神经网络、一个正则化层和一个激活层。在本文中,所有正则化层均使用批正则化方法(Batch Normalization),而激活函数则统一使用ReLU。需要说明的是,UNet 通常需要部分模块对输入数据进行下采样和上采样[3]。其中下采样可以通过将模块中的卷积神经网络的stride 属性设置为2 来实现,而上采样则需要在卷积神经网络层前面单独实现。

图1 UNet 神经网络中的卷积模块单元

以上述模块为基础,本文的UNet 神经网络模型如图2所示。其编码器和解码器均是通过上述模块顺序连接而成。不同的是,编码器是由普通卷积模块和下采样模块组成,而解码器是由普通卷积模块和上采样模块构成。在编码器中,每一次下采样图像分辨率减半,但通道数加倍。而在解码器中,每一次上采样图像分辨率翻倍,而通道数减半[4]。普通卷积模块输入和输出的图像大小及通道数均不变。编码器和解码器所包含的模块对称分布,解码器的每个上采样模块都与编码器的一个下采样模块对应。编码器和解码器相互对应的模块之间存在快捷连接以构成一个U 型的神经网络结构。这种快捷连接是通过将编码器对应层的输出和解码器对应层的输入进行通道合并实现的。在本文的模型中,UNet 神经网络共包含6 次下采样和6 次上采样。除第一次下采样之后跟着一个普通卷积模块,后续所有下采样模块均跟着3 个普通卷积模块。第一次下采样模块输出数据通道数为32,后续模块的通道数可由上述规则推导得出。需要说明的是,最后一层上采样模块的输出通道数是由输出数据的天数决定的。

图2 UNet 神经网络结构示意图

为了将注意力机制引入上述UNet 模型中,本文直接在卷积神经网络层之后添加一层MHSA 层。但MHSA 的引入会大大增加内存占用,尤其是当输入其中的图像分辨率和通道数量较大的时候。考虑到硬件设备的承受能力,本文的模型仅在输入图像的分辨率不高于64*64 时才会在模块中启用MHSA。

2.2 数据预处理

本文通过利用SDO 卫星上HMI 设备观测到的太阳磁场数据(http://jsoc.stanford.edu/ajax/lookdata.html)来训练上述神经网络模型。在目前所有太阳日面磁场观测数据中,SDO/HMI 的数据拥有最高的空间分辨率和时间分辨率。我们下载了从2010 年4 月26 日到2022 年10 月4 日的每日凌晨0 点的数据,并且对其进行了预处理以便于神经网络模型训练和评估。

首先,卫星观测数据中可能会出现无效数值。这些无效数值在下载的数据文件中一般会被标记为NaN[5]。由于太阳磁场的磁极近似于与黄道面垂直,因此太阳正面磁场强度整体平均值一般在0 附近。考虑到这种情况,磁场数据中的无效数值我们均以0 代替。

其次,SDO/HMI 提供的数据的空间分辨率为4096*4096,直接使用此分辨率的数据作为神经网络模型的输入输出会使神经网络模型占用大量内存,且会大大增加训练和预测所需的时间。以目前的计算机硬件水平,直接使用此分辨率的数据是不现实的。因此,我们通过像素平均的方式将数据缩放至512*512,即原始数据中每个8*8 的像素块均取平均值合并成1 个像素。此分辨率对于大部分太阳日冕和太阳风数值模型已经足够,且不会给神经网络模型带来太大的内存压力和计算量[6]。SDO/HMI 提供的数据是以Gauss 为单位的,在作为神经网络输入和输出时进行归一化能够有助于加速收敛和提高预测精度。本文统计了所有下载的数据,得到磁场强度的平均值约为0.025 Gauss,标准偏差约为24.37 Gauss,最大绝对值在3400 Gauss 与3500 Gauss 之间。在对数据进行归一化时,本文为后续训练和评估准备了两套方案,第一套方案为使用数据的最大绝对值值进行归一化,而第二套方案为使用数据的标准偏差进行归一化。

最后,太阳磁场观测数据往往包含有大量的噪声。在训练过程,这些噪声会严重干扰神经网络模型的学习。为此,我们采用了高斯平滑的方式来消除噪声。在本文中,我们采用sklearn 开发库提供的函数实现上述高斯平滑过程,而对于决定其平滑程度的σ 参数,我们取σ=10。高斯平滑不仅会去除数据中的噪声,同时还会在一定程度上削弱太阳活动区磁场强度[7]。但大部分日冕和太阳风数值模型都直接处理活动区的强磁场,一般也需要通过上述类似的方式削弱活动区的磁场。因此,高斯平滑处理并不会过多影响本文模型的结果在各类数值模型中的应用。

2.3 训练与评估

当所有数据按上述过程处理完毕后,它们会按照3:1 的比例划分为训练数据集和评估数据集。具体方法为每256 天为一个单位,前192 天的数据归为训练数据集,而后64 天的数据归为评估数据集。前者用于训练神经网络模型,而后者则用来评估神经网络模型的预测能力。

将连续多天的磁场数据输入进本文的神经网络模型中之后,它将给出后续多天的磁场数据预测结果[8]。在上述数据集中,后续多天的磁场数据也是已知的。神经网络模型一般通过定义损失函数的方式来衡量预测结果和真实结果之间的差异。由于本文的神经网络模型的输出为连续的磁场数据,因此此模型本质上仍然为回归模型。回归模型一般使用均方误差(Mean Squared Error, MSE)或平均绝对误差(Mean Absolute Error,MAE)来衡量预测结果和真实结果之间的误差。出于以上考虑,在训练神经网络模型时,本文同时测试了这两种损失函数以比较二者效果的差异。

在训练过程中,神经网络模型一般通过梯度下降的方式使损失函数不断减小,从而让其预测结果越来越接近真实结果,达到学习的目的。为了提高收敛速度,本文采用了神经网络模型中广泛使用的Adam 优化器[9]。在常规梯度下降方法的基础上,Adam 优化器通过引入动量的方式记录前几步的梯度大小,并使其在梯度下降方向上逐渐累积,从而达到加速收敛的目的。

3 结果与讨论

本文根据不同的参数配置测试了多个算例。首先,我们测试了输出数据为1 天的情况,以确定最优神经网络配置以及损失函数的选择等。我们将输入数据的天数选定为32天。这样做不仅使输入数据覆盖了一个太阳自转周期(≈27天),且由于32 是2 的幂次方,在GPU 计算的过程中会获得一定程度的加速。表1 展示了磁场数据按最大绝对值(3500 Gauss)归一化的测试结果,而表2 中的则是磁场数据按标准偏差(24.37 Gauss)归一化的结果。在表中,我们用预测磁场和观测磁场之间的平均绝对误差MAE 和均方根误差(Root Mean Square Error, RMSE)来衡量模型的预测精度。从表中可以直接看出,本文提出的神经网络模型在预测1 天后的光球层磁场数据时,平均绝对误差已经可以达到0.43 Gauss 的精度,而均方根误差也能达到1.21 Gauss的精度。这说明本文的模型已经具备一定的预测能力。

通过比较表1 中训练时的不同损失函数可以发现,相较于MSE 损失函数,训练时使用MAE 损失函数有助于获得更高的预测精度。这主要是因为磁图中活动区的磁场往往远强于其他部分的磁场,且较为难以预测。在计算损失函数时,MSE 会放大这部分的差异,从而强迫神经网络模型利用更多的参数预测活动区磁场,从而减弱了其他区域的磁场预测能力。整体来看,这样并没有使得活动区磁场的预测结果得到显著改善,反而拉低了整体的预测能力。这在表2中也有所体现,但表2 中两种损失函数的差距没有表1 大。其原因在于当使用磁场数据最大绝对值归一化后,磁场数据的数值整体偏小。MSE 损失函数在更新梯度时需要乘上其自身,这就使得梯度的传递效率受到大大限制。当使用磁场数据标准偏差进行归一化时,这种效应便明显减小。需要说明的是,即使上述效应的存在,我们依然发现磁场数据使用最大绝对值进行归一化,并在训练时使用MAE 损失函数得到的结果最好,因此后续的多个测试算例也均采用此方案。

表1 磁场数据按最大绝对值归一化的测试算例结果

表2 磁场数据按标准偏差归一化的测试算例结果

在表1 中,我们也不难看出,MHSA 注意力机制的加入,使得平均绝对误差降低了9.8%左右,从0.47 Gauss 降低至0.43 Gauss。而均方根误差则更是降低了14.9%左右,从1.42 Gauss 降低至1.21 Gauss。这说明注意力机制的加入的确能够显著提升UNet 模型的预测能力。均方根误差降低更明显则意味着MHSA 机制在一定程度上改善了活动区磁场的预测能力。

仅预测当前时间后1 天的磁场数据对于实际应用显然是远远不够的。本文的模型允许同时输出多天的磁场预测数据,而仅需将输出图像的通道数增加即可。表3 给出了本文模型输出的多天磁场预测数据的首日误差及整体误差。可以看到,增加输出数据的天数会降低第一天的预测精度,这在均方根误差上尤为明显,且两日整体的精度明显不如首日的预测精度。当输出天数增加到8 天时,首日预测结果的MAE 与RMSE 均增加了50%左右,而整体误差更是首日误差的2 倍左右。本文的模型在预测多天的数据时,会压缩预测首日数据所用的神经网络参数,因此才会使得首日结果预测精度下降。同时,预测时间越长,预测精度越低是目前所有模型的通病。如需改善上述结果,本文的模型需要增加大量的神经网络参数以分配到输出的多天数据上。但目前的计算机硬件条件仍难以满足此计算需求。

表3 模型输出多天数据时的测试结果

4 结论与展望

本文利用UNet 神经网络和MHSA 神经网络层构建了一个太阳日冕磁场预测模型。MHSA 的引入大大提高了UNet 神经网络在预测太阳磁场时的精度。当输出数据的天数较少时,此模型能够以较高的精度预测太阳日面磁场。但当输出天数增加时,模型的结果仍然难以达到要求。进一步提升此模型的预测能力需要更强的运算能力支持,这也预示着此模型仍存在着巨大的潜力等待挖掘。

猜你喜欢
磁场卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
西安的“磁场”
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
文脉清江浦 非遗“磁场圈”
三次样条和二次删除相辅助的WASD神经网络与日本人口预测