这篇论文的核心之一就是使用了一个卷积神经网络(CNN)来预测ENSO指数。这个CNN模型是专门为处理气候数据(特别是具有空间分布的海洋变量)并从中提取预测信息而设计的。
根据论文的描述(主要参考图1和方法部分),这个CNN模型的架构如下:
整体架构概览 (如图1所示):
模型采用了一种经典的CNN结构,它由以下几个主要部分组成:
- 输入层 (Input layer): 接收原始的海洋数据。
- 卷积层 (Convolutional layers): 用于从输入数据中提取空间特征。
- 最大池化层 (Max-Pooling layers): 用于降低空间维度并保留重要特征。
- 全连接层 (Fully connected layer): 用于将提取到的特征组合起来,进行最终的预测。
- 输出层 (Output layer): 输出模型的预测结果。
模型是针对每个预测提前期和目标季节分别构建的,这意味着预测未来1个月、2个月...直到23个月的ENSO状态,以及针对不同的日历月(如预测未来1月的ENSO,预测未来2月的ENSO等),可能都有一个独立的、但结构相似的CNN模型。
各层详细描述:
- 输入层 (Input layer):
- 输入数据: 接收的是过去三个月的海表温度 (SST) 异常场和海洋热含量 (HC) 异常场。论文中表示为 SST(τ−2), SST(τ−1), SST(τ−0) 和 HC(τ−2), HC(τ−1), HC(τ−0),其中 τ 表示当前时间。
- 数据维度: 输入数据覆盖的地理范围是 0∘−360∘E 经度和 55∘S−60∘N 纬度。为了训练模型,这些空间数据被插值到了一个较低的分辨率,用于训练的分辨率是 5∘×5∘。因此,输入层的空间维度是 360/5=72 (经度) × (60+55)/5+1≈24 (纬度)。
- 通道数: 由于输入包含SST和HC两种变量,并且是过去三个月的数据,所以输入层可以看作有 2×3=6 个“通道”或“特征图”。图1中虽然画了6个独立的输入图,但它们共同构成了输入层。
- 总输入维度: 可以理解为 72×24×6。
- 卷积层 (Convolutional layers):
模型包含三个卷积层。卷积层通过应用一组可学习的卷积核(filters)来扫描输入数据,从局部区域提取空间特征。- 卷积核 (Convolutional filter): 卷积核是一些小型的权重矩阵,它们在输入数据的空间维度上滑动,并与局部区域的数据进行卷积运算。不同的卷积核可以学习到不同的空间模式(例如,识别温度的梯度、暖/冷异常的中心等)。
- 激活函数 (Activation function): 论文明确指出,在卷积过程中使用了双曲正切函数 (tanh) 作为激活函数。激活函数引入了非线性,使得模型能够学习更复杂的模式。
- 第一卷积层:
- 卷积核维度: 8×4 (经度 × 纬度)。
- 输出特征图数量 (M): 论文提到卷积核和全连接层神经元的总数是30或50。图1中第一卷积层输出标有“M”,表示特征图数量。在不同的模型配置中,M可以是30或50。
- 输出维度: 经过卷积后,输出的特征图维度会发生变化。为了保持水平维度与输入层一致,论文使用了填充 (padding) 技术。所以输出的空间维度仍是 72×24,但通道数变成了M(30或50)。
- 第二卷积层:
- 卷积核维度: 4×2。
- 输出特征图数量 (M): 与第一层相同,M可以是30或50。
- 输出维度: 经过卷积和填充后,空间维度保持不变,通道数仍为M。
- 第三卷积层:
- 卷积核维度: 4×2。
- 输出特征图数量 (M): 与前两层相同,M可以是30或50。
- 输出维度: 经过卷积和填充后,空间维度保持不变,通道数仍为M。
- 最大池化层 (Max-Pooling layers):
模型包含两个最大池化层,分别位于第一卷积层和第二卷积层之后。池化层的作用是减小特征图的空间尺寸,从而减少计算量和参数数量,并使模型对输入数据的微小空间变化具有一定的鲁棒性。- 池化窗口: 论文提到使用了**2×2的池化窗口**。
- 池化过程: 在每个2×2的窗口内,只保留最大的值,作为该窗口的代表。
- 第一最大池化层: 位于第一卷积层后,将空间维度减半。输出维度变为 (72/2)×(24/2)=36×12,通道数仍为M。
- 第二最大池化层: 位于第二卷积层后,再次将空间维度减半。输出维度变为 (36/2)×(12/2)=18×6,通道数仍为M。
- 全连接层 (Fully connected layer):
在经过卷积和池化层提取并压缩特征后,模型使用一个全连接层来整合这些特征。- 连接方式: 最后一个池化层(第二最大池化层)的输出(维度为 18×6×M)被“展平”成一个长向量,然后连接到全连接层中的每一个神经元。
- 神经元数量 (N): 论文提到全连接层中的神经元数量N可以是30或50。
- 激活函数: 论文方法部分关于热力图的公式中,全连接层的计算似乎也包含了tanh激活函数。
- 输出层 (Output layer):
这是模型的最后一层,用于输出最终的预测结果。- 连接方式: 全连接层连接到输出层。
- 输出: 输出是Nino3.4指数的预测值。这是一个单一数值的预测。
- 维度: 输出层的维度是一。
- 预测提前期: 模型预测的是未来1到23个月的Nino3.4指数。这通常意味着模型会针对不同的提前期进行预测(或者一个模型同时预测多个提前期,但论文描述是针对每个提前期和季节分别构建模型)。
模型配置和参数:
论文中提到了四种不同配置的CNN模型,通过改变卷积核数量(M)和全连接层神经元数量(N)来实现:
- C30H30: M=30, N=30
- C30H50: M=30, N=50
- C50H30: M=50, N=30
- C50H50: M=50, N=50
论文最终的预测结果是通过对这四种配置的CNN模型的预测结果进行平均得到的,以提高预测的稳定性和准确性。
模型的总参数数量根据配置不同而变化,从C30H30的117,511到C50H50的319,851。
训练过程相关:
- Mini Batch Size: 400
- Epochs: 第一次训练(使用CMIP5)700个epoch,第二次训练(使用再分析)20个epoch。
- 学习率: 固定为0.005,未使用学习率调度。
总而言之,这篇论文中的CNN模型是一个精心设计的、针对气候空间数据特点的深度学习模型。它通过多层卷积和池化从SST和HC异常场中提取多尺度的空间特征,再通过全连接层将这些特征整合成对未来ENSO指数的预测。结合迁移学习策略,使得模型能够在有限的观测数据下实现优于传统模型的长期预测能力。