从目标函数到优化过程

说明训练为何可写成优化问题,以及梯度、学习率、局部结构和数值稳定性如何影响结果。

从目标函数到优化过程

模型训练常被写成“最小化损失”,但目标函数只是把学习要求转成可计算问题。优化过程还受到参数化方式、数据批次、学习率、停止条件和数值精度影响。损失下降说明算法更好地满足了训练目标,不等于系统已经解决真实任务。

目标函数规定训练在追求什么

监督学习通常比较模型输出与标签,用损失函数量化差异。回归任务可能关心平方误差,分类任务常使用对数损失。选择不同损失,会对大误差、类别不平衡和概率校准产生不同影响。

目标函数还可能包含正则项,用来限制参数规模或结构。正则化不是给模型增加一个抽象的“简单偏好”,而是在数据有限时改变可接受解的范围。它是否有效,需要通过独立验证判断。

梯度给出局部变化方向

梯度由目标函数对各参数的偏导数组成,描述参数发生微小变化时目标怎样改变。梯度下降沿负梯度方向更新参数,希望逐步减小目标值。这个方向是局部信息,不保证一步就接近全局最优。

学习率决定更新步长。过大可能越过较好区域或导致发散,过小则训练缓慢,也可能在平坦区域几乎不动。参数尺度、损失曲面和批次噪声都会改变合适步长,因此不存在适用于所有任务的固定学习率。

随机优化用噪声换取计算效率

完整数据集上的梯度计算成本较高,随机梯度及小批量方法用部分样本估计更新方向。估计会有波动,却可以更频繁地更新并利用硬件并行。批次大小同时影响梯度噪声、内存占用和吞吐,不能只按“越大越稳定”选择。

样本抽取方式也属于优化条件。时间序列被随机打乱可能造成信息泄漏,类别极不平衡时普通抽样可能让少数类很少进入批次。优化器看到的数据顺序会影响训练轨迹。

非凸问题不只有一个答案

深层网络的目标通常是非凸的,包含鞍点、平坦方向和多个参数解。不同初始化和训练顺序可能得到不同参数,却产生相近性能。工程上更关心解在独立数据上的表现、稳定性和资源成本,而不是声称找到了唯一最优参数。

自适应优化、动量和学习率计划改变更新方式,但不能修复错误标签、数据泄漏或不合适目标。scikit-learn 文档中的优化参数属于具体估计器实现,使用时要结合版本,不应当作普遍理论结论。

停止训练需要外部证据

训练损失持续下降时,验证表现可能已经停止改善。早停使用独立验证信号控制训练长度,检查点则保留可恢复状态。停止条件应与最终任务指标一致,并避免反复依据测试集调参。

优化日志至少应记录数据版本、随机种子、目标函数、优化器、学习率、批次和停止原因。只有这些条件可追溯,训练结果才能被复现和比较。

资料依据