Skip to content
清晨的一缕阳光
返回

机器学习速成·线性回归(4/4):超参数——学习速率、批次大小与周期

机器学习速成·线性回归(4/4):超参数——学习速率、批次大小与周期

本文参考 Google 机器学习速成课程 - 线性回归:超参数(Hyperparameters) 模块撰写,是线性回归系列的最后一片拼图,讲清三个影响训练节奏的关键旋钮:学习速率、批次大小、周期。


一、超参数 vs 参数:先把概念理清

这是最容易混淆的一对词:

定义举例
参数(Parameter)模型本身的一部分,训练期间由模型计算出来权重 w、偏差 b
超参数(Hyperparameter)由你(开发者)设定,用来控制训练过程的变量学习速率、批次大小、周期

👉 一句话区分:参数是模型”自己学出来”的;超参数是”你提前拧好”的。 前几篇讲的权重和偏差是参数;本篇讲的是超参数。

三种最常见的超参数:


二、学习速率(Learning Rate)

学习速率是你设置的一个浮点数,它决定模型收敛的速度

它决定了梯度下降每一步对权重和偏差的改动幅度——梯度乘上学习速率,就得到下一次迭代的新参数:

新参数 = 旧参数 −(学习速率 × 梯度)

⚠️ 这正好是上一篇《梯度下降》第 4 步那个”少量(0.01)“的正式名字!

2.1 学习速率的影响

学习速率后果
过低收敛极慢,需要非常多迭代
适中快速收敛(如理想情况前 20 次迭代显著改进)
过高永远无法收敛,在最优 w、b 附近来回跳,损失大范围波动甚至持续上升

2.2 结合梯度大小理解

旧参数与新参数的差异,与损失函数的斜率(梯度)成正比

梯度大小 = 2.5,学习速率 = 0.01 → 参数改变 0.025

关键结论:理想的学习速率取决于具体问题——每个模型、每个数据集都有适合自己的学习速率。没有”通吃”的固定值(既不是 1.0 也不是 0.01)。


三、批次大小(Batch Size)

批次大小指:模型在更新权重和偏差之前,一次处理的样本数量

你可能以为应该先算完数据集里每个样本的损失再更新——但当数据有数十万甚至数百万条时,用完整批次并不实际。于是出现了三种方案:

方案每次更新前看的样本特点
完整批次梯度下降整个数据集准确但计算量大,大数据集不现实
随机梯度下降(SGD)1 个 样本快速但噪声大(损失图波浪起伏)
小批量随机梯度下降(小批量 SGD)1 到 N 之间(折衷)兼顾效率与稳定,最常用

小节:SGD 与噪声

有意思的是:一定程度的噪声可能是好事——它能帮模型更好地泛化(这是后话,神经网络章节会细讲)。所以别急着把噪声当洪水猛兽。


四、周期(Epoch)

一个周期(Epoch) = 模型把训练集中的每个示例都处理一遍

计算关系:

举个例子:
训练集 = 1000 个示例,小批量大小 = 100
那么完成 1 个周期需要 1000 / 100 = 10 次迭代

通常训练需要多个周期,即多次反复跑完整份训练数据。

周期数也需要在训练开始前设定。一般规则:周期越多,模型效果越好,但训练时间越长——需要实验来确定收敛所需的周期数。

批次、周期与”更新次数”的关系

批次类型权重和偏差何时更新示例(1000样本,20周期)
完整批次看完整个数据集后(每周期 1 次)更新 20 次
SGD看完单个样本后更新 20,000 次
小批量 SGD看完每个批次后更新 200 次

五、两个常见误区

1. 较大的批次不适合含离群值的数据? ❌ 错。较大的批次反而有助于减少离群值的负面影响——因为对更多梯度求平均,单个离群值的影响被稀释了。

2. 把学习速率提高一倍也许会减慢训练? ✅ 对。加倍的学习速率可能使它过大,导致权重”四处波动”,反而增加收敛所需时间。

一切还是那句话:最佳超参数取决于你的数据集和可用计算资源


六、关键术语速查


总结

超参数一句话把握
学习速率步长大小——太低太慢、太高发散,取合适值才收敛
批次大小一次更新看多少样本——全批次准而慢、SGD 快而噪、小批量折衷
周期整个数据集跑几遍——越多越好但越慢,需实验确定
超参 vs 参数你拧的是超参;模型自己学的是参数

一句话:超参数是你训练前”拧好的旋钮”,参数是模型”自己学出来的”。学习速率决定步子大小,批次大小决定一次迈多大步,周期决定跑几趟——三者的最佳值,永远取决于你的数据和算力。


分享这篇文章到:

上一篇文章
机器学习速成·逻辑回归(1/2):简介与 S 型函数——让模型输出概率
下一篇文章
机器学习速成·线性回归(3/4):梯度下降——如何找到最优的权重和偏差