type
status
date
slug
summary
tags
category
icon
password
comment
梯度下降(Gradient Descent)是一种常用的优化算法,主要用于最小化损失函数。
基本思想
- 梯度下降的核心思想是沿着损失函数的负梯度方向迭代更新参数,以逐步找到函数的局部最小值。
步骤
- 初始化:随机选择一个起始点(初始参数值)。
- 计算梯度:在当前点计算损失函数关于各参数的偏导数(梯度)。
- 更新参数:沿着负梯度方向移动一小步。
- 重复:重复步骤 b 和 c,直到达到停止条件(如迭代次数达到上限或梯度接近零)。
参数更新公式
- 其中,θ 是参数,α 是学习率,∇J(θ) 是损失函数 J 关于 θ 的梯度。
学习率
- 控制每次更新的步长。
- 太大可能导致震荡或发散,太小可能收敛太慢。
变体
- 批量梯度下降:使用所有训练数据计算梯度。
- 随机梯度下降(SGD):每次使用单个样本计算梯度。
- 小批量梯度下降:每次使用一小批样本计算梯度,平衡效率和收敛性。
优点
- 实现简单,计算效率高。
- 广泛适用于各种优化问题。
缺点
- 可能陷入局部最小值。
- 收敛速度可能较慢,特别是接近最小值时。
改进版本
- 动量方法:加入历史梯度信息,加速收敛。
- AdaGrad、RMSprop、Adam 等:自适应调整学习率。
总结
梯度下降是深度学习和机器学习中最基础和重要的优化算法之一,理解其原理对于掌握更复杂的优化技术至关重要。