优化器:梯度下降算法详解
1. 梯度下降算法概述
在机器学习中,梯度下降是一种常用的优化算法,用于最小化损失函数。不同的梯度下降算法在更新权重的方式和效率上有所不同,下面将详细介绍几种常见的梯度下降算法。
1.1 批量梯度下降(Batch Gradient Descent)
批量梯度下降是一种离线算法,它在每个 epoch 中使用整个训练数据集来更新权重。这意味着我们必须保留所有样本,并在每个 epoch 中反复遍历它们。例如,在一个有 300 个样本的数据集上,批量梯度下降在每个 epoch 结束后更新一次权重。然而,这种方法可能需要较多的 epoch 才能收敛,如图所示,可能需要大约 20,000 个 epoch 才能使误差接近 0。
1.2 随机梯度下降(Stochastic Gradient Descent, SGD)
随机梯度下降则走向了另一个极端,它在每个样本之后更新权重。由于样本是以随机顺序呈现给网络的,所以我们无法预测权重从一个样本到下一个样本的变化情况。在一个有 300 个样本的数据集上,每个 epoch 需要更新 300 次权重。这会导致误差在小范围内剧烈波动,但从 epoch 到 epoch 的大尺度上仍能看到明显的变化。
随机梯度下降的优点是效率较高,通常在较少的 epoch 内就能使误差接近 0,例如在大约 400 个 epoch 内。然而,它也存在一些问题,如结果具有较大的噪声,可能会导致系统在寻找最小值时跳过较深的局部最小值,并且难以判断系统何时开始过拟合。
1.3 小批量梯度下降(Mini-Batch Gradient Descent)
梯度下降算法详解与优化
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



