机器学习——梯度下降

130 阅读2分钟

梯度下降法

● 梯度下降法(Gradient Descent,GD)

  • 常用于求解无约束情况下凸函数(Convex Function)的极小值
  • 是一种迭代类型的算法,因为凸函数只有一个极值点,故求解出来的极小值点就是函数的最小值点。 (回忆下,这里和求导以及求偏导解决的问题非常相似)

梯度下降方法分类:

1.全量梯度下降(Batch Gradient Descent)

  • 特点
    • 每一次参数更新,都使用全部训练数据计算梯度。
    • 更新方向更精确,但每次迭代耗时长。
  • 优点
    • 收敛方向稳定(梯度精确)在凸优化问题(如线性回归)中一定收敛到全局最优
  • 缺点 大数据集时计算成本高,内存占用大更新速度慢 适用场景 数据量较小(如几千~几十万样本) 对收敛稳定性要求高 业务案例:零售门店销售预测(几十个特征、几万条历史订单)

2.随机梯度下降(SGD)

  • 特点
    • 每一次参数更新只用一个样本计算梯度更新速度快,但噪声大,路径抖动明显。
  • 优点
    • 更新频繁,初期收敛快
    • 适合大规模数据和在线学习(实时接收数据就能更新模型)
    • 内存占用极低
  • 缺点
    • 噪声大,收敛曲线波动,不一定收敛到全局最优
    • 需要调节学习率衰减
  • 适用场景
    • 数据规模非常大(百万级、甚至流式数据)
    • 在线学习、实时更新模型
    • 业务案例:支付风控(实时接收交易数据,每条数据立即更新模型防止欺诈)

3.小批量梯度下降(Mini-batch Gradient Descent)

  • 特点
    • 每次更新使用一个小批量样本(如 32、64、128 条)计算梯度。
    • 在精度与效率之间做平衡,也是深度学习的标准做法。
  • 优点
    • 比全量GD快,比SGD稳定
    • 能充分利用向量化计算(GPU/并行运算)噪声适中,有助于跳出局部最优
  • 缺点
    • 需要选择合适的批量大小(太小噪声大,太大接近全量GD)适用场景
    • 数据量大,需要并行加速训练
    • 深度学习、工业级模型训练
    • 业务案例:图像识别(每次用128张图片训练一个批次,提高GPU利用率)

常用参数

image.png

总结

image.png

  • 全量GD:精确但慢,适合小数据
  • SGD:快但抖,适合大数据/在线学习
  • Mini-batch GD:平衡派,工业界主流选择

例题实践:

题目:www.kaggle.com/c/bike-shar…

答案:zhuanlan.zhihu.com/p/143529743