超参数、模型参数 作者:马育民 • 2026-01-30 10:02 • 阅读:10004 # 超参数 “超参数”(Hyperparameter)是**在机器学习模型训练开始之前需要人为设定的参数**,它们**不是通过训练数据自动学习得到的**,而是由开发者或研究人员根据经验、实验或调优策略来指定的。 ### 定义 在训练开始前由开发者手动设定的配置项。 ### 作用 控制模型结构、训练过程或正则化方式。 ### 如何获得 不能从数据中学到,需通过经验、实验或调优方法确定。 ### 是否需要人工设定 ✅ 是。 ### 为什么超参数重要? 超参数对模型性能影响极大。例如: - 学习率太大 → 模型不收敛; - 学习率太小 → 训练太慢甚至陷入局部最优; - 正则化太强 → 欠拟合; - 网络太深但数据太少 → 过拟合。 因此,**超参数调优(Hyperparameter Tuning)** 是机器学习工作流中的关键步骤。 --- ### 常见的超参数调优方法 1. **手动调参**:基于经验尝试; 2. **网格搜索(Grid Search)**:遍历预设的参数组合; 3. **随机搜索(Random Search)**:随机采样参数组合,通常比网格更高效; 4. **贝叶斯优化(Bayesian Optimization)**:智能地选择下一个最有希望的参数; 5. **自动化工具**:如 Optuna、Ray Tune、Hyperopt、Keras Tuner 等。 # 模型参数 模型在训练过程中自动学习的内部变量。 ### 作用 直接决定模型的预测结果。 ### 如何获得 通过优化算法(如梯度下降)从训练数据中学习得到。 ### 是否需要人工设定 ❌ 不需要,由训练过程自动更新。 # 例子 假设训练一个神经网络: ### 模型参数(Parameters) 神经网络中的权重(weights)和偏置(biases)。这些是模型在训练过程中**自动学习**的——通过反向传播和梯度下降不断调整。 | 模型类型 | 模型参数 | |--------|--------| | 线性回归 | 权重 ` w_1, w_2, ... ,w_n` ,偏置 `b` | | 神经网络 | 所有层的权重矩阵 `W` 和偏置向量 `b` | | 逻辑回归 | 权重和偏置 | | 支持向量机(SVM) | 支持向量对应的系数(在对偶形式中) | ### 超参数(Hyperparameters) **不能被模型自己学会**,必须在训练前就定好: | 类别 | 超参数示例 | |------|-----------| | 模型结构 | 神经网络层数、每层神经元数、卷积核大小、注意力头数 | | 优化相关 | 学习率(learning rate)、优化器类型(Adam/SGD)、批量大小(batch size) | | 训练设置 | 训练轮数(epochs)、早停耐心值(patience) | | 正则化 | L1/L2 正则化系数(λ)、Dropout 比例、数据增强强度 | # 代码例子(神经网络) 用 PyTorch 训练一个全连接网络: ``` model = nn.Sequential( nn.Linear(784, 128), # ← 这里的 784 和 128 是超参数(结构设计) nn.ReLU(), nn.Linear(128, 10) ) optimizer = torch.optim.Adam(model.parameters(), lr=0.001) # ← lr=0.001 是超参数 ``` - 模型参数:`Linear` 层中的权重矩阵和偏置向量(训练时自动更新)。 - 超参数:输入/输出维度`(784, 128, 10)`、激活函数类型、优化器类型、学习率 `0.001`。 # 二者关系图 ``` 你(开发者) │ ├── 设定超参数 ──▶ 控制 ──▶ 模型结构 & 训练过程 │ │ │ ▼ 训练数据 ───────────▶ 模型自动学习 ──▶ 模型参数 │ ▼ 预测结果 ``` # 超参数 vs 模型参数 对比 | 项目 | 模型参数(Parameters) | 超参数(Hyperparameters) | |------|------------------------|----------------------------| | 是否自动学习? | ✅ 是(通过训练) | ❌ 否(需人工设定) | | 例子 | 权重、偏置 | 学习率、网络结构、正则化强度 | | 数量 | 通常非常多(百万级) | 相对较少(几个到几十个) | | 调整方式 | 由优化算法自动更新 | 通过交叉验证、网格搜索、贝叶斯优化等手动/自动调优 | 原文出处:http://www.malaoshi.top/show_1GW2gYvYnxXc.html