参数(Parameters) vs. 超参数(Hyperparameters)
1.1 参数(Parameters)
- 定义:模型中需要学习的变量,例如神经网络中的权重(Weight)和偏置(Bias)。
- 例子:
- 线性回归中的 ww 和 bb(y=wx+by=wx+b)。
- BERT中的注意力权重、全连接层的参数。
- 调整者:优化器(Optimizer) 负责调整这些参数,使其在训练过程中不断优化。
1.2 超参数(Hyperparameters)
- 定义:由开发者手动设置的参数,控制训练过程,但不会被优化器直接学习。
- 例子:
- 优化器类型(如Adam、SGD)。
- 学习率(Learning Rate)(如
lr=2e-5
)。 - 批量大小(Batch Size)(如
batch_size=32
)。 - 训练轮次(Epochs)(如
num_epochs=5
)。
- 调整者:开发者 需要手动调整或通过超参数优化技术(如网格搜索)寻找最佳值。
-
超参数的调整需要人工干预或超参数优化算法,例如:
- 手动调整:尝试不同的学习率(如
1e-4
、5e-5
)。 - 超参数优化工具:
- 网格搜索(Grid Search):遍历超参数组合。
- 贝叶斯优化(Bayesian Optimization):智能搜索最佳超参数。
- 随机搜索(Random Search):随机尝试超参数组合。
2. 优化器的作用
优化器只调整模型参数(Parameters),不调整超参数(Hyperparameters)
- 优化器的核心任务:
根据损失函数的梯度,自动更新模型参数(如权重、偏置),使其在训练过程中逐步优化。 - 优化器无法调整超参数:
超参数(如学习率、优化器类型)是开发者预先设置的,优化器只能按照这些超参数的规则工作。 -
概念 定义 谁调整它? 例子 参数 模型的可学习变量(权重、偏置) 优化器(自动调整) BERT的注意力权重、线性层的 ww 超参数 开发者设置的训练控制参数 开发者或超参数工具 学习率、批量大小、优化器类型