基于 CNN-SE Attention-ITCN 的多输入单输出回归预测模型
1. 引言
在时间序列分析与多维特征回归任务中,数据的特征提取能力与时序依赖捕获能力是决定预测精度的两大核心。传统的单一模型(如单纯的 CNN 或 RNN)往往难以平衡局部关联性、通道重要性以及长程时间依赖。本文将深度解析一种融合了卷积神经网络(CNN)、挤压-激励注意力机制(SE Attention)以及改进型时间卷积网络(ITCN)的复合架构,探讨其在多输入单输出(MISO)回归任务中的理论优势。
2. 空间特征提取与权重重构:CNN-SE 模块
模型的输入端首先通过 CNN 与 SE Attention 的组合,实现特征的"质量初筛"与"重要性加权"。
2.1 CNN 的局部特征映射
CNN 通过卷积核在输入特征序列上滑动,能够捕获多个输入变量之间的局部空间耦合。在多输入场景下,卷积操作将原始的特征维度映射到高维特征空间,能够识别出变量之间在同一时间节点上的隐含关联模式。
2.2 SE Attention 的通道注意力机制
SE Attention (Squeeze-and-Excitation) 解决的是"特征贡献度分配"问题。并非所有通过卷积提取的特征对最终回归目标都同等重要:
- Squeeze(挤压): 利用全局平均池化将空间特征压缩为通道描述符,获取全局感受野。
- Excitation(激励): 通过全连接层学习通道间的非线性依赖,产生一组权重系数。
- 重标定: 将权重作用于原始通道,自动"增强"关键特征,并"抑制"对预测任务干扰较大的冗余噪声。
3. 改进型时间卷积网络(ITCN):时序建模的核心
在特征经过优化后,模型进入核心的 ITCN 阶段。该模块基于时间卷积网络(TCN)的思想,通过膨胀卷积与多分支融合策略,极大提升了对复杂动态序列的拟合能力。
3.1 膨胀卷积与长程依赖捕获
ITCN 采用了 膨胀卷积 (Dilated Convolution)。与普通卷积不同,膨胀卷积在卷积核中引入"膨胀因子",使其在不增加参数量的前提下,感受野能够呈指数级扩大。这使得模型能够跨越长距离的时间步,捕捉历史数据中深层次的时间规律。
3.2 三分支并行融合架构
本模型的 ITCN 模块采用了创新的并行设计,确保了特征提取的全面性:
- 极大值分支 (Max Branch): 侧重捕获特征序列中的瞬态峰值与显著波动,对突变信号具有极高的敏感度。
- 均值分支 (Avg Branch): 提取序列的整体演变趋势,起到平滑统计特征、滤除随机噪声的作用。
- 跳跃连接分支 (Skip Branch): 引入残差映射,确保底层基础信息能够绕过复杂的非线性变换直接传递。这种设计有效缓解了深层网络中的梯度消失问题。
4. 非线性优化与规范化技术
为了增强回归模型的泛化性能,架构中集成了多项先进组件:
- Layer Normalization (LN): 在层内部进行归一化,降低了内部协变量偏移,使训练过程更加稳定高效。
- GeLU 激活函数: 相比传统的 ReLU,GeLU(高斯误差线性单元)结合了确定性与随机性的思想,在负值区域具有平滑的非零梯度,使模型对连续变化的回归曲面有更好的拟合能力。
GeLU(x)≈0.5x(1+tanh(2π(x+0.044715x3)))GeLU(x) \approx 0.5x \left( 1 + \tanh \left( \sqrt{\frac{2}{\pi}} (x + 0.044715x^3) \right) \right)GeLU(x)≈0.5x(1+tanh(π2 (x+0.044715x3)))
5. 模型评估指标体系
在多输入单输出的回归框架下,通过以下指标综合衡量模型的预测效能:
| 指标名称 | 物理意义 | 理想值趋势 |
|---|---|---|
| MAE (平均绝对误差) | 预测值偏离真实值的绝对程度 | 趋于 0 |
| RMSE (均方根误差) | 对异常误差的惩罚度更高 | 趋于 0 |
| R2R^2R2 (决定系数) | 模型对数据波动的解释能力 | 趋于 1 |
| MAPE (平均绝对百分比误差) | 预测的相对偏差程度 | 越小越好 |
6. 部分代码
c
clc; clear; close all;
rng("default");
%% ---- 1. 超参数配置 ----------------------------------------
cfg.trainRatio = 0.8; % 训练集比例
cfg.outdim = 1; % 输出维度
cfg.numFilters = 32; % TCN 滤波器数量
cfg.numFilters_last = 32; % 跳跃连接滤波器数量
cfg.filterSize = 8; % TCN 卷积核尺寸
cfg.filterSize_last = 3; % 池化/跳跃卷积核尺寸
cfg.dropoutFactor = 0.1; % Dropout 比例
cfg.dilationFactor = 2; % TCN 膨胀因子
% 训练参数
cfg.maxEpochs = 100;
cfg.initLR = 0.001;
cfg.lrDropPeriod = 30;
cfg.lrDropFactor = 0.5;
cfg.gradientThreshold = 1;
cfg.l2Reg = 0.0001;
cfg.executionEnv = 'cpu';
%% ---- 2. 数据读取与划分 ------------------------------------
rawData = xlsread('data.xlsx');
numSamples = size(rawData, 1);
numFeatures = size(rawData, 2) - cfg.outdim;
numTrain = round(cfg.trainRatio * numSamples);
P_train = rawData(1:numTrain, 1:numFeatures)';
T_train = rawData(1:numTrain, numFeatures+1:end)';
P_test = rawData(numTrain+1:end, 1:numFeatures)';
T_test = rawData(numTrain+1:end, numFeatures+1:end)';
M = size(P_train, 2);
N = size(P_test, 2);
fprintf('[数据] 总样本: %d | 训练: %d | 测试: %d | 特征维度: %d\n', ...
numSamples, M, N, numFeatures);
%% ---- 3. 数据归一化 ----------------------------------------
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%% ---- 4. 格式转换(转为 cell 序列)------------------------
vp_train = mat2cell(p_train, numFeatures, ones(1, M))';
vt_train = mat2cell(t_train, cfg.outdim, ones(1, M))';
vp_test = mat2cell(p_test, numFeatures, ones(1, N))';
vt_test = mat2cell(t_test, cfg.outdim, ones(1, N))';
7.运行截图




8. 结论
CNN-SE Attention-ITCN 模型通过"特征初探、权重分配、多分支时序捕获"的逻辑链条,构建了一个高度鲁棒的回归预测框架。
- CNN+SE 负责"精炼特征",确保输入的高纯度;
- ITCN 负责"深度挖掘",兼顾局部细节与全局趋势。
这种多模态融合的设计思路,使其在能源电力、金融预测、工业监测等强时序相关领域展现出卓越的理论优越性。