Matlab 贝叶斯优化与深度学习预测专题
从数据时间切分、CNN/LSTM 网络输入到 bayesopt 超参数搜索与独立测试,集中整理 Matlab 自动调参与时序预测的正确实验路径。
先明确:贝叶斯优化不是替代验证设计
贝叶斯优化可以减少低价值的参数尝试,但如果时间序列切分或目标函数存在数据泄漏,它只会更高效地优化一个错误指标。正确顺序是先锁定训练、验证和测试段,再设计搜索空间。
推荐实验闭环
- 按预测发生时间切分数据,测试段在所有调参完成前保持不可见
- 只用训练段拟合归一化参数,并构造 CNN/LSTM 所需的滑动窗口
- 从朴素预测和单模型基线开始,确认混合网络确实有增益
- 把验证集损失封装成 bayesopt 的标量目标函数
- 限定搜索变量数量和合理范围,记录每次评估配置
- 选出配置后重新训练,并在独立测试段一次性评估
搜索空间怎么定
优先选择学习率、隐藏单元、卷积核数量、正则化和批量大小等少数高影响参数。MathWorks 官方文档说明,bayesopt 通过 optimizableVariable 定义变量并最小化目标函数;为了可复现,应固定随机种子,并避免依赖运行时间的 acquisition function。
CNN-LSTM 最容易错在哪里
- 输入维度排列不匹配卷积层与序列层
- 先在全数据上归一化,再切训练和测试
- 滚动均值包含预测时点或未来值
- 使用验证集优化参数后,又把验证结果当最终泛化指标
如何选择下面的资料
只研究 CNN 自动调参,可先看贝叶斯优化 CNN;输入是连续时间序列且希望组合局部特征与长期依赖,可核对 CNN-LSTM;需要一个不含贝叶斯搜索的 Matlab 负荷预测对比,可查看 LSTM/Bi-LSTM。