文章目录
0. 前言
本文介绍常见用于训练机器学习模型特别是深度学习模型的优化算法,它们的目标是通过最小化损失函数来更新模型参数。
1. Batch Gradient Descent (BGD)
批量梯度下降是一种迭代优化算法,用于寻找损失函数的最小值。给定损失函数 J ( θ ) J(\theta) J(θ),其中 θ \theta θ 是模型参数,批量梯度下降在每次迭代中计算整个训练集上损失函数关于参数 θ \theta θ 的梯度,然后沿负梯度方向更新参数以减小损失。更新规则如下:
θ t + 1 = θ t − η ⋅ ∇ θ J ( θ t ) \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta J(\theta_t) θt+1=θt−η⋅∇θJ(θt)
其中,
- θ t \theta_t θt 表示在第 t 次迭代时的模型参数,
- η \eta η 是学习率(step size),
- ∇ θ J ( θ t ) \nabla_\theta J(\theta_t) ∇θJ(θt) 是在当前参数值下,整个训练集上的损失函数梯度。
2. Stochastic Gradient Descent (SGD)
随机梯度下降同样是用于优化模型参数的方法,但与批量梯度下降不同的是,它在每次迭代时仅随机抽取一个训练样本(或一个批次中的单个样本),并以此计算损失函数关于参数的梯度,然后更新参数:
θ t + 1 = θ t − η ⋅ ∇ θ J ( θ t ; x i , y i ) \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta J(\theta_t; x_i, y_i) θt+1=θt−η⋅∇