当训练数据不足 200 条时,如何训练出一个测试 R² 接近 0.9 的回归模型?本文记录了一种将扩散模型(Diffusion Model)与 Transformer-GRU 混合架构相结合的技术方案,在仅有 178 条原始训练样本的条件下,通过合成数据增强与序列化建模,实现了优异的回归预测效果。
一、研究背景
在工业与科研场景中,高质量标注数据的获取成本往往极高。以设备状态监测、材料性能预测、工艺参数优化等典型回归任务为例,可供训练的样本量常不足 200 条,传统机器学习方法(如随机森林、SVR)和常规深度学习网络在这种数据规模下极易陷入过拟合,泛化能力堪忧。
近年来,扩散模型在图像生成领域取得了令人瞩目的成果------从 DDPM 到 Stable Diffusion,其核心思想"逐步加噪、逐步去噪"展现了对复杂数据分布的强大建模能力。与此同时,Transformer 的注意力机制与 GRU 的时序记忆能力在序列预测任务中各有所长。
本方案将这两条技术路线交叉融合:用扩散模型补齐数据,用 Transformer-GRU 完成回归,在小样本条件下构建了一个端到端的回归预测框架。
二、主要功能
本方案的核心任务为多维特征输入的回归预测,输入包含 5 个连续型数值特征(特征 1 至特征 5),输出为单一连续值。系统具备以下三项关键能力:
| 功能模块 | 说明 |
|---|---|
| 扩散模型数据增强 | 基于 DDPM 原理,从 178 条原始训练样本学习数据分布,生成 107 条高质量合成样本,将训练集扩充至 285 条 |
| Transformer-GRU 回归建模 | 双层自注意力机制提取特征交互,GRU 捕捉序列化依赖,全连接层完成最终回归映射 |
| 多维可视化评估 | 输出损失曲线、特征分布直方图、PCA 降维散点图、残差分析、线性拟合图等 9 张诊断图表 |
三、技术路线总览
整体流程分为两条主线:数据增强线 与回归预测线 ,两者依次串联:

原始数据 (224条)
│
├── 80% 训练集 (178条) ──→ [扩散模型训练] ──→ [反向采样生成 107条合成样本]
│ │
│ ▼
│ 增强训练集 (178 + 107 = 285条)
│ │
│ ▼
│ [Transformer-GRU 回归模型训练]
│ │
└── 20% 测试集 (46条) ──────────────────────────→ [模型评估]
│
▼
输出预测结果与评估指标
两条主线的衔接点在于:扩散模型生成的合成样本与原始训练集合并,共同输入回归模型,实现数据层面的"预训练增强"。
四、扩散模型:算法与公式原理
4.1 正向扩散过程
给定一条原始数据 x0∈R5x_0 \in \mathbb{R}^5x0∈R5,正向扩散通过 TTT 步逐步向其注入高斯噪声,每一步的转移分布为:
q(xt∣xt−1)=N(xt;1−βt xt−1,βtI)q(x_t \mid x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t}\, x_{t-1}, \beta_t \mathbf{I})q(xt∣xt−1)=N(xt;1−βt xt−1,βtI)
其中 βt∈(0,1)\beta_t \in (0, 1)βt∈(0,1) 为第 ttt 步的噪声强度系数。通过重参数化技巧,可从 x0x_0x0 直接计算 xtx_txt:
xt=αˉt x0+1−αˉt ϵ,ϵ∼N(0,I)x_t = \sqrt{\bar{\alpha}_t} \, x_0 + \sqrt{1 - \bar{\alpha}_t} \, \epsilon, \quad \epsilon \sim \mathcal{N}(0, \mathbf{I})xt=αˉt x0+1−αˉt ϵ,ϵ∼N(0,I)
其中 αt=1−βt\alpha_t = 1 - \beta_tαt=1−βt,αˉt=∏s=1tαs\bar{\alpha}t = \prod{s=1}^{t} \alpha_sαˉt=∏s=1tαs。
4.2 时间步嵌入
为使去噪网络感知当前所处的时间步,采用正弦-余弦位置编码将离散时间步 ttt 映射为 128 维连续向量:
PE(t,2i)=sin(t⋅exp(−2i128⋅ln10000))\text{PE}(t, 2i) = \sin\left(t \cdot \exp\left(-\frac{2i}{128} \cdot \ln 10000\right)\right)PE(t,2i)=sin(t⋅exp(−1282i⋅ln10000))
PE(t,2i+1)=cos(t⋅exp(−2i128⋅ln10000))\text{PE}(t, 2i+1) = \cos\left(t \cdot \exp\left(-\frac{2i}{128} \cdot \ln 10000\right)\right)PE(t,2i+1)=cos(t⋅exp(−1282i⋅ln10000))
4.3 去噪网络结构
去噪网络以 [当前含噪数据 | 时间嵌入] 拼接后的向量作为输入,核心架构如下:
输入层 [5 + 128 = 133 维]
│
├── FC(256) → ReLU → Dropout(0.1) ──┐
│ │
├── FC(256) → ReLU → Dropout(0.1) ──┤
│ │
├── FC(256) → ReLU → Dropout(0.1) ──┤
│ │
└── FC(256) ────────────── 残差加和 ─┘
│
ReLU → Dropout(0.1) → FC(5)
网络预测的是注入的噪声 ϵθ(xt,t)\epsilon_\theta(x_t, t)ϵθ(xt,t),训练目标为 MSE 损失:
LDM=Ex0,ϵ,t∥ϵ−ϵθ(xt,t)∥2\mathcal{L}{\text{DM}} = \mathbb{E}{x_0, \epsilon, t}\left \\\|\\epsilon - \\epsilon_\\theta(x_t, t)\\\|\^2 \\rightLDM=Ex0,ϵ,t∥ϵ−ϵθ(xt,t)∥2
4.4 反向采样生成
训练完成后,从纯噪声 xT∼N(0,I)x_T \sim \mathcal{N}(0, \mathbf{I})xT∼N(0,I) 出发,逐步去噪:
xt−1=1αt(xt−1−αt1−αˉtϵθ(xt,t))+σtz,z∼N(0,I)x_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}t}} \epsilon\theta(x_t, t) \right) + \sigma_t z, \quad z \sim \mathcal{N}(0, \mathbf{I})xt−1=αt 1(xt−1−αˉt 1−αtϵθ(xt,t))+σtz,z∼N(0,I)
最后一步(t=1t=1t=1)不添加随机噪声 (z=0z = 0z=0),得到干净的生成样本。
4.5 标签生成策略
生成样本的标签不是随机赋予,而是采用 k-NN 回归(k=3)在原始训练集上拟合后预测得到,确保生成数据在特征-标签映射上与原始数据保持一致性。
五、Transformer-GRU 回归模型
5.1 模型架构

回归模型将每个样本视为一个"单时间步序列",由 Transformer 编码器提取特征交互,再由 GRU 完成时序聚合:
| 层序号 | 层类型 | 参数配置 |
|---|---|---|
| 1 | SequenceInput | 5 通道 |
| 2 | PositionEmbedding | maxPosition=256 |
| 3 | Addition(跳跃连接) | 输入 + 位置嵌入 |
| 4 | SelfAttention × 2 | 8 头,keyChannels=256 |
| 5 | Indexing1D ("last") | 取序列最后位置 |
| 6 | GRU | 64 隐藏单元 |
| 7 | FC(64)→ReLU→Dropout(0.05) | 全连接正则化 |
| 8 | FC(1) + RegressionLayer | 输出 |
5.2 注意力机制
自注意力层的核心运算是缩放点积注意力:
Attention(Q,K,V)=softmax(QK⊤dk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dk QK⊤)V
第一个注意力层使用了因果掩码(Causal Mask),使每个位置只关注自身及之前的信息,增强模型的序列建模能力。
5.3 GRU 门控机制
GRU 通过更新门 ztz_tzt 和重置门 rtr_trt 控制信息的流动:
zt=σ(Wz⋅ht−1,xt)z_t = \sigma(W_z \cdot h_{t-1}, x_t)zt=σ(Wz⋅ht−1,xt)
rt=σ(Wr⋅ht−1,xt)r_t = \sigma(W_r \cdot h_{t-1}, x_t)rt=σ(Wr⋅ht−1,xt)
h~t=tanh(W⋅rt⊙ht−1,xt)\tilde{h}_t = \tanh(W \cdot r_t \\odot h_{t-1}, x_t)h~t=tanh(W⋅rt⊙ht−1,xt)
ht=(1−zt)⊙ht−1+zt⊙h~th_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_tht=(1−zt)⊙ht−1+zt⊙h~t
六、关键参数设定
扩散模型参数
| 参数 | 设定值 | 说明 |
|---|---|---|
| 扩散总步数 TTT | 1000 | DDPM 标准步数 |
| β\betaβ 范围 | 10−4,0.0210\^{-4}, 0.0210−4,0.02 | 线性递增噪声调度 |
| 去噪网络宽度 | 256 × 4 层 | 带残差连接 |
| 时间嵌入维度 | 128 | 正弦-余弦编码 |
| Dropout | 0.1 | 层间正则化 |
| 优化器 | Adam | lr=0.001, β₁=0.9, β₂=0.999 |
| 训练轮次 | 100 | MSE Loss 收敛至 ~0.89 |
| 生成数量 | 107 (= 178 × 60%) | 适度增强,避免合成样本主导 |
回归模型参数
| 参数 | 设定值 | 说明 |
|---|---|---|
| 注意力头数 | 8 | 多角度特征交互 |
| Key 通道数 | 256 | 每个头 32 维 |
| GRU 隐藏单元 | 64 | 时序特征聚合 |
| FC 隐藏层 | 64 | ReLU 激活 |
| Dropout | 0.05 | 轻度正则化 |
| 初始学习率 | 0.001 | 分段衰减 |
| 学习率衰减因子 | 0.2 | 每 60 epochs |
| 最大训练轮次 | 100 | 含 early stopping 逻辑 |
七、实验结果与分析
7.1 扩散模型训练曲线
经过 100 轮训练,扩散模型的 MSE 损失从初始约 2.02 下降至 0.90 左右,收敛稳定,未出现过拟合迹象。损失下降过程平滑,表明 Adam 优化器和学习率设置合理。










7.2 回归预测核心指标
| 指标 | 训练集 | 测试集 |
|---|---|---|
| MAE | 1.1915 | 1.0688 |
| RMSE | 1.6013 | 1.3322 |
| R² | 0.8175 | 0.8949 |
测试集 R² 达到 0.8949,说明模型能够解释近 90% 的目标变量方差。值得注意的是,测试集表现优于训练集(R² 高出 0.077),这一"反直觉"现象可以从两个角度解释:
- 训练集包含 107 条合成样本,这些样本的标签由 k-NN 估计得出,存在一定误差,略微拖累了训练集指标;
- 测试集全部为真实样本,标签精确,而增强后的训练集分布更广,使模型学到了更强的泛化能力。
7.3 数据分布验证
通过特征分布直方图与 PCA 降维散点图对比可知,扩散模型生成的合成样本在特征空间上与原数据保持高度一致的分布形态,未引入异常点或分布偏移,验证了扩散模型在表格型数据上的数据增强有效性。
八、运行环境
| 组件 | 版本 / 要求 |
|---|---|
| 操作系统 | Windows 10/11 64-bit |
| MATLAB 版本 | R2024a 及以上 |
| Deep Learning Toolbox | 必需(dlnetwork, trainNetwork, adamupdate) |
| Statistics and Machine Learning Toolbox | 必需(fitcknn, pca) |
| 硬件 | CPU 可运行(单 CPU 训练约 14 秒),GPU 加速更佳 |
| 数据格式 | Excel 文件 (.xlsx),特征列在前,标签列在末 |
九、应用场景
本方案的小样本数据增强 + 深度回归范式,适用于以下典型场景:
- 工业设备剩余寿命预测:传感器采集的运行参数多、历史故障样本少,利用扩散模型生成典型退化模式,提升寿命模型的置信度;
- 材料性能参数回归:实验数据获取周期长,通过生成合理范围内的合成实验点,加速配方优化;
- 金融风控评分建模:高风险样本稀缺时,基于已有风险样本分布生成增强数据,改善模型的召回能力;
- 医疗指标趋势预测:患者随访数据有限,利用扩散模型构建更丰富的数据空间,辅助临床决策;
- 工艺参数与质量指标映射:产线调试阶段数据不足,合成数据帮助模型快速收敛。
十、总结与展望
本文构建了一套完整的"DM + Transformer-GRU"回归预测框架,在仅 178 条训练样本的条件下,通过扩散模型合成 107 条增强样本,配合 Transformer 注意力机制与 GRU 时序建模,最终在 46 条测试样本上取得了 R² = 0.8949 的优异性能。
该方案的核心优势在于:
- 数据效率高:扩散模型从数据分布层面学习,比传统 SMOTE、高斯噪声注入等方法更能保留特征间相关性;
- 模型结构合理:Transformer 捕获全局特征交互,GRU 提供序列压缩能力,两者互补;
- 工程可行性好:基于 MATLAB 官方工具箱,无需第三方库,部署和复现成本低。
后续改进方向包括:引入条件扩散模型(Conditional DDPM),使生成样本直接受标签指导;采用高斯过程回归替代 k-NN 进行标签估计;以及在更大规模工业数据集上验证泛化边界。