在MATLAB中,trainingOptions
函数用于配置深度学习模型训练的参数,其参数覆盖了优化算法、学习率策略、数据处理、性能监控等多个维度。以下是2025年最新版本中所有参数的详细解析(基于R2024b及后续版本):
一、核心优化算法参数
1. 'Solver'
- 优化器类型
- 取值:
'sgd'
(随机梯度下降)、'sgdm'
(带动量的SGD)、'rmsprop'
、'adam'
- 作用:决定参数更新方式
'sgdm'
适合大型数据集(动量加速收敛)'adam'
自动调整学习率,适合稀疏数据
2. 'InitialLearnRate'
- 初始学习率
- 取值:正数(如0.001)
- 作用:控制参数更新步长,过高会震荡,过低收敛慢
- 最佳实践:CNN常用0.001-0.01,RNN用0.0001-0.001
3. 'Momentum'
- 动量因子(仅sgdm有效)
- 取值:0-1之间(如0.9)
- 作用:加速收敛并抑制震荡,模拟物理动量效应
4. 'L2Regularization'
- L2正则化强度
- 取值:正数(如0.0001)
- 作用:抑制过拟合,添加权重衰减项
二、学习率调度参数
1. 'LearnRateSchedule'
- 学习率调度策略
- 取值:
'none'
(固定学习率)'piecewise'
(分段常数)'exponential'
(指数衰减)'polynomial'
(多项式衰减)'cosine'
(余弦退火)
2. 'LearnRateDropFactor'
- 学习率下降因子
- 取值:0-1之间(如0.1)
- 作用:每次调度时学习率乘以该因子
3. 'LearnRateDropPeriod'
- 学习率下降周期
- 取值:正整数(如10)
- 作用:每训练多少轮后下降学习率(仅
'piecewise'
有效)
4. 'Power'
- 多项式衰减幂次(仅'polynomial'
有效)
- 取值:正数(如2)
- 公式:
lr = initial_lr * (1 - epoch/max_epochs)^power
三、训练过程控制
1. 'MaxEpochs'
- 最大训练轮数
- 取值:正整数(如50)