超参数#
术语解释#
在机器学习和深度学习中,超参数(Hyper Parameter) 是决定模型训练过程和最终性能的关键配置。超参数是指那些不能通过数据集直接训练更新得到,而是需要我们手动设定的参数。它们在训练开始前就已经确定,用于控制算法的运行逻辑和模型的复杂度。
例如常见的超参数有:
-
优化相关:学习率(Learning Rate, $\alpha$)、批大小(Batch Size)、训练轮数(Epochs)。
-
正则化相关:惩罚系数(Penalty Coefficient, $\lambda$)、丢弃率(Dropout Rate)。
-
模型结构:网络层数、隐藏层神经元个数、多头注意力的头数($h$)、多项式回归的次数(Degree)。
-
特定算法参数:KNN 中的 $K$ 值与距离度量 $P$ 值、模型蒸馏或文本生成中的温度参数(Temperature, $T$)。
出现动机#
-
控制学习过程:例如通过学习率控制参数更新的步长,平衡收敛速度与稳定性,避免目标函数发散或陷入局部最优。
-
平衡偏差与方差:通过调整超参数(如 $\lambda$ 或网络深度)来寻找恰拟合状态,缓解过拟合(高方差)或欠拟合(高偏差)问题。
-
适配硬件与数据:例如 Batch Size 的设置需要考虑 GPU 显存限制等;在数据稀疏时,通过 AdaGrad 等算法为不同特征维度提供自适应学习率。
-
引导模型行为:在多任务学习(如模型蒸馏)中,通过权重超参数 $\alpha$ 来平衡软标签损失与硬标签损失的占比。
优点缺点#
-
优点:
-
极高的灵活性:超参数允许我们根据不同的数据集、任务场景(如回归 vs 分类)和硬件资源(如单卡 vs 多卡并行)量身定制模型。
-
提升模型性能:通过科学的调参(如网格搜索),可以在现有架构下显著提高模型的准确率或泛化能力。
-
手动干预优化:当自动梯度更新无法解决问题时(如非凸函数的优化),合理的超参数设置能提供人为的指导。
-
-
缺点:
-
选取具有“玄学”色彩:超参数设置通常缺乏严谨的理论支撑,很大程度上依赖于实验经验和借鉴已有大模型的配置(如借鉴 LLaMA 的 AdamW 配置)。 例如研究人员在通过大量实验(各种参数配置组合)探索发现 SwiGLU 激活函数有效以后,详见「SwiGLU 激活函数原理与 LLaMA 应用」,却找不到为什么,最终还在论文里调侃到一切都归于神的恩赐。所以,超参数的选择有时候更像是以结果为导向的产物。
These architectures are simple to implement, and have no apparent computational drawbacks. We offer no explanation as to why these architectures seem to work; we attribute their success, as all else, to divine benevolence.
-
计算开销巨大:为了寻找最优组合,通常需要结合交叉验证。例如,8 个备选学习率和 7 个惩罚系数配合 5 折交叉验证,需要拟合模型达 280 次。
-
对结果异常敏感:模型对某些超参数极其敏感。例如学习率设置稍大,凸函数虽能收敛但非凸函数可能直接发散;设置过小则可能导致更新缓慢或陷入局部最优。
-
调参门槛高:要求我们必须深刻理解各参数的物理含义,才能在复杂的超参数空间中快速排除不可能的取值组合。
-
相关术语#
-
交叉验证
-
权重参数