梯度下降法
● 梯度下降法(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利用率)
常用参数
总结
- 全量GD:精确但慢,适合小数据
- SGD:快但抖,适合大数据/在线学习
- Mini-batch GD:平衡派,工业界主流选择