📜  批次梯度下降与随机梯度下降之间的区别(1)

📅  最后修改于: 2023-12-03 15:39:43.574000             🧑  作者: Mango

批次梯度下降与随机梯度下降之间的区别
简介

在机器学习中,梯度下降是一种用于优化模型的算法。它的思想是通过不断迭代更新模型参数,使得损失函数下降,从而得到最优解。常用的梯度下降方法包括批次梯度下降和随机梯度下降。

批次梯度下降

批次梯度下降(Batch Gradient Descent,简称BGD)是指一次迭代使用所有的训练样本。具体的步骤是计算所有样本的误差,求出误差梯度,然后按照梯度的反方向更新模型参数。例如,对于线性回归模型$y=wx+b$,其中$w$和$b$是需要训练的参数,BGD的更新方式如下:

$$w=w-\eta\frac{\partial L}{\partial w}$$

$$b=b-\eta\frac{\partial L}{\partial b}$$

其中,$L$是损失函数,$\eta$是学习率,$\frac{\partial L}{\partial w}$和$\frac{\partial L}{\partial b}$分别是损失函数关于$w$和$b$的导数。BGD的优点是每次迭代可以收敛到全局最优解,但缺点是计算量大,时间复杂度高。

随机梯度下降

随机梯度下降(Stochastic Gradient Descent,简称SGD)是指一次迭代只使用一个样本。与BGD不同的是,SGD不需要计算所有样本的误差,而只计算一个样本的误差,然后按照该样本的误差梯度更新模型参数。例如,对于线性回归模型$y=wx+b$,SGD的更新方式如下:

$$w=w-\eta\frac{\partial L_i}{\partial w}$$

$$b=b-\eta\frac{\partial L_i}{\partial b}$$

其中,$L_i$是第$i$个样本的损失函数,$\frac{\partial L_i}{\partial w}$和$\frac{\partial L_i}{\partial b}$分别是样本$i$关于$w$和$b$的导数。SGD的优点是计算复杂度低,时间复杂度小,但缺点是容易陷入局部最优解。

批次梯度下降与随机梯度下降之间的区别

批次梯度下降和随机梯度下降之间的区别主要在于每次迭代使用的样本数和计算误差的方式。

BGD使用所有样本来计算误差和更新模型参数,因此每次迭代需要计算所有样本的误差,所需计算量大,时间复杂度高,但可以收敛到全局最优解。

SGD仅使用一个样本来计算误差和更新模型参数,因此每次迭代计算量小,时间复杂度低,但容易陷入局部最优解。

除了BGD和SGD之外,还有一种折中的方法叫做小批量梯度下降(Mini-Batch Gradient Descent),它是在每次迭代中使用一部分样本来计算误差和更新模型参数,既能够减少计算量,同时也可以避免过于随机造成的不稳定性。