\chapter{多时间尺度预警模型设计} 本章详细阐述LSTM-Attention深度学习模型和XGBoost基线模型的设计细节、训练策略和评估框架。 \section{模型总体架构} 本研究设计的LSTM-Attention模型采用「编码器-注意力-多任务输出」的架构范式,整体分为四个功能模块: \begin{enumerate} \item \textbf{输入投影层}:将19维气象特征向量线性映射至128维隐藏空间 \item \textbf{双向LSTM编码层}:2层BiLSTM(隐藏维度128),从输入序列中提取时序模式 \item \textbf{多头自注意力层}:4头自注意力机制,捕捉序列中不同时间步之间的依赖关系 \item \textbf{多任务输出层}:3个独立的全连接头,分别输出短期、中期和长期风险等级预测 \end{enumerate} 模型总参数量为983,628,其中LSTM层约占75\%(740K参数),注意力层约占8\%(79K参数),输出头约占17\%。模型实现基于PyTorch 2.12.0框架,在NVIDIA GeForce RTX 4060 Laptop GPU(8GB VRAM)上进行训练。 \section{输入投影层} 输入投影层将19维原始气象特征通过一个全连接层映射至128维隐藏空间: \begin{equation} \mathbf{X}' = \mathbf{X}\mathbf{W}_{\text{proj}} + \mathbf{b}_{\text{proj}} \end{equation} 其中$\mathbf{X} \in \mathbb{R}^{B \times 14 \times 19}$为输入批次($B$为batch size),$\mathbf{W}_{\text{proj}} \in \mathbb{R}^{19 \times 128}$为投影矩阵。投影层的作用是在LSTM处理之前将特征维度提升至与隐藏状态维度一致,避免LSTM在低维输入上的信息瓶颈。 \section{双向LSTM编码层} \subsection{层结构与参数} LSTM编码器由2层堆叠的双向LSTM组成: \begin{itemize} \item 输入维度:128(经投影层的特征向量) \item 隐藏维度:128 \item 层数:2(堆叠式,第一层的输出作为第二层的输入) \item 方向:双向(bidirectional),每层前向和后向LSTM各128维隐藏状态 \item Dropout:0.3(层间dropout,防止过拟合) \end{itemize} 由于是双向LSTM,每个时间步的输出维度为$2 \times 128 = 256$(前向+后向拼接)。经过LSTM编码后,输入序列$\mathbf{X}' \in \mathbb{R}^{B \times 14 \times 128}$被转换为时序特征$\mathbf{H} \in \mathbb{R}^{B \times 14 \times 256}$。 \subsection{LSTM投影层} 在LSTM输出之后、注意力层之前,插入一个线性投影层将256维双向输出映射回128维: \begin{equation} \mathbf{H}' = \mathbf{H}\mathbf{W}_{\text{lstm\_proj}} + \mathbf{b}_{\text{lstm\_proj}} \end{equation} 投影至128维是为了匹配后续多头注意力层的输入期望,同时降低计算量。 \section{多头自注意力层} \subsection{层配置} 多头自注意力机制在时序维度上操作,允许模型动态地关注14天窗口中的关键时间步: \begin{itemize} \item 头数($h$):4 \item 每个头的维度($d_k$):32(总嵌入维度128 / 4个头) \item 位置编码:无需显式位置编码,LSTM的输出已包含时序位置信息 \end{itemize} \subsection{残差连接与层归一化} 参照Transformer的后归一化(post-norm)架构,在多注意力子层后加入残差连接和层归一化: \begin{equation} \mathbf{Z} = \text{LayerNorm}(\mathbf{H}' + \text{MultiHead}(\mathbf{H}', \mathbf{H}', \mathbf{H}')) \end{equation} 残差连接确保梯度可以绕过注意力层直接回传至LSTM,缓解深层网络的梯度消失问题。层归一化稳定了训练过程中的激活分布。 \subsection{全局平均池化} 对注意力输出沿时间维度进行全局平均池化,得到固定长度的序列级特征表示: \begin{equation} \mathbf{z} = \frac{1}{14}\sum_{t=1}^{14} \mathbf{Z}_{t,:} \end{equation} 池化后的向量$\mathbf{z} \in \mathbb{R}^{128}$作为三个输出头的共享输入。 \section{多任务输出层} 考虑到短期、中期和长期预警任务之间的内在关联(都依赖于相同的底层天气-健康关联机制),采用多任务学习(Multi-Task Learning)架构。三个输出头共享LSTM和注意力层的特征表示,通过参数共享实现知识迁移和正则化。 每个输出头由两个全连接层组成: \begin{equation} \mathbf{h}_{\text{head}}^{(k)} = \text{ReLU}(\mathbf{z}\mathbf{W}_1^{(k)} + \mathbf{b}_1^{(k)}), \quad k \in \{\text{short}, \text{medium}, \text{long}\} \end{equation} \begin{equation} \hat{\mathbf{y}}^{(k)} = \mathbf{h}_{\text{head}}^{(k)}\mathbf{W}_2^{(k)} + \mathbf{b}_2^{(k)} \end{equation} 其中第一层为128→32维(带ReLU激活),第二层为32→4维(输出4个风险等级的对数几率logits)。三个头的输出经softmax归一化后得到各风险等级的概率分布。 \section{损失函数:Focal Loss} 鉴于训练集中极度不平衡的类别分布(低风险类占94-97\%),传统交叉熵损失会导致模型倾向于始终预测低风险类。本研究采用Focal Loss(详见第2.5节式2.26)作为损失函数,设置$\alpha=0.5, \gamma=2.0$。 三个预测头的总损失定义为等权重求和: \begin{equation} \mathcal{L}_{\text{total}} = \frac{1}{3}\left(\mathcal{L}_{\text{short}} + \mathcal{L}_{\text{medium}} + \mathcal{L}_{\text{long}}\right) \end{equation} 各头使用Focal Loss独立计算损失,权重相等以平衡三个时间尺度的重要性。 \section{优化器与训练策略} \subsection{优化器配置} 使用AdamW优化器(Adam的权重衰减修正版),参数设置如下: \begin{itemize} \item 初始学习率(lr):$1 \times 10^{-3}$ \item 权重衰减(weight\_decay):$1 \times 10^{-4}$ \item $\beta_1 = 0.9, \beta_2 = 0.999$ \end{itemize} \subsection{学习率调度} 采用ReduceLROnPlateau策略,当验证损失连续5个epoch未下降时,学习率乘以0.5: \begin{equation} lr_{\text{new}} = lr_{\text{old}} \times 0.5 \quad \text{if} \quad \Delta_{\text{val\_loss}} \leq 0 \text{ for 5 consecutive epochs} \end{equation} \subsection{早停与梯度裁剪} \textbf{早停(Early Stopping):}验证损失连续15个epoch未改善时终止训练,防止过拟合并节省计算资源。 \textbf{梯度裁剪(Gradient Clipping):}将梯度的全局范数限制在1.0以内,防止梯度爆炸: \begin{equation} \|\mathbf{g}\|_{\text{new}} = \min\left(1.0 / \|\mathbf{g}\|, 1\right) \cdot \mathbf{g} \end{equation} \subsection{训练配置} \begin{itemize} \item Batch size:32 \item 最大训练轮数:50 epoch \item 数据加载:随机打乱(shuffle=True),不使用加权采样器 \item 设备:NVIDIA RTX 4060 Laptop GPU(CUDA 12.6) \item 每轮训练时间:约2.5分钟(batch\_size=32时约24,000个batch/epoch) \end{itemize} \section{XGBoost基线模型} 为评估深度学习方法的有效性,选择XGBoost作为传统机器学习基线。XGBoost的核心优势在于其基于树的集成结构天然适合表格型数据,且对类别不平衡具有较好的鲁棒性。 \subsection{模型配置} \begin{itemize} \item 估计器数量(n\_estimators):200 \item 最大树深度(max\_depth):6 \item 学习率(learning\_rate):0.05 \item 设备:CUDA(GPU加速) \item 分类器数量:3个(分别对应短期、中期、长期预测) \end{itemize} \subsection{输入处理} XGBoost不直接处理三维时序数据,将(N, 14, 19)的输入序列展平为(N, 266)的二维特征矩阵(14×19=266维)。这种「时间展平」策略将时序信息转换为空间特征,适合基于树的模型处理。 \section{评估指标} 针对多分类任务和类别不平衡特性,采用以下指标: \begin{itemize} \item \textbf{准确率(Accuracy):}$\text{Acc} = \frac{TP + TN}{TP + TN + FP + FN}$ \item \textbf{宏平均F1分数(Macro F1-Score):}各类别F1分数的算术平均,给予少数类与多数类同等权重,是评估不平衡分类任务的核心指标 \item \textbf{混淆矩阵(Confusion Matrix):}$\mathbf{C} \in \mathbb{R}^{4 \times 4}$,$C_{ij}$为真实类别$i$被预测为类别$j$的样本数 \end{itemize} 宏平均F1是本研究的首要评估指标,因为它不受类别不平衡的干扰,能够真实反映模型在各风险等级、特别是高风险等级上的预测能力。