超参数(Hyperparameter) 是机器学习模型的 "外部设定" ,由人预先指定,不通过训练自动学习。
核心区别:超参数 vs 模型参数
表格
| 对比项 | 超参数 | 模型参数 |
|---|---|---|
| 谁来定 | 你(开发者) 设定 | 算法自动学习 |
| 例子 | 学习率、网络层数 | 权重w、偏置b |
| 作用 | 控制训练过程 | 决定模型行为 |
| 是否变化 | 训练前固定(通常) | 训练中持续更新 |
通俗类比:烤蛋糕
-
超参数:烤箱温度、烘烤时间(你设定)
-
模型参数:配方中面粉、糖的具体克数(通过调试得出)
BP神经网络中的关键超参数
在刚才的反向传播算法中,这些值由你决定:
-
学习率(Learning Rate)
-
控制权重调整步长
-
太大:可能跳过最优解(震荡)
-
太小:训练速度慢,耗时过长
-
-
隐藏层数量 & 每层神经元数量
-
决定网络复杂度
-
层数太多:容易过拟合,计算慢
-
层数太少:学习能力不足
-
-
训练轮数(Epochs)
-
整个数据集训练多少遍
-
太多:浪费时间且过拟合
-
太少:学不透
-
-
批量大小(Batch Size)
-
每次更新权重用多少样本
-
太大:内存压力大,可能陷入局部最优
-
太小:训练不稳定,速度慢
-
-
激活函数类型
-
ReLU、Sigmoid、Tanh等
-
影响网络非线性能力和梯度流动
-
-
优化器选择
-
SGD、Adam、RMSprop等
-
决定权重更新的具体策略
-
如何选择超参数?
试错法是最常用的:
-
网格搜索(Grid Search):穷举所有组合,选最好
-
随机搜索(Random Search):随机尝试,效率更高
-
经验法则:参考前人成功案例
-
自动调参工具:如Optuna、Hyperopt
实用建议:
-
学习率:先从0.01或0.001开始尝试
-
隐藏层:简单问题1-2层,复杂问题3-5层
-
Batch Size:32、64、128是常用值
一句话总结
超参数是你给模型的 "学习规则" ,而模型参数是模型在规则下自己学到的知识。规则定得好,学得就快、准、稳!
回到BP神经网络:超参数决定了"学习环境"(教室大小、学习节奏),BP算法在这个环境下负责"传授知识"(调整权重w和偏置b)。