随机优化

17 Mar 2025 | 6 分钟阅读

随机优化是一种强大的方法,通过使用随机选择的训练数据子集迭代更新模型参数来确定模型的最佳参数。与每次迭代都考虑整个数据集的标准优化方法不同,随机优化算法仅使用一小部分数据,使其更适用于大型数据集和非凸优化问题。

随机优化技术具有广泛的应用,包括机器学习、深度学习、计算机视觉、自然语言处理和大型数据集优化挑战。它们通常用于训练神经网络、优化超参数、选择特征并有效处理复杂的优化问题。

代码

现在我们将探讨一些常见的随机优化算法。

导入库

读取数据集

绘制数据集

现在,我们将绘制数据集。

输出

Stochastic Optimization
Stochastic Optimization
Stochastic Optimization

模型实现

我们将构建模型,然后实现它。



优化器

这是我们将要查看随机优化算法的部分。

1. 随机梯度

随机梯度下降(SGD)是一种用于优化具有适当平滑特性(例如,可微分或可次微分)的目标函数的迭代方法。它是梯度下降优化的一种随机近似,因为它将真实梯度(源自整个数据集)替换为估计值(根据随机选择的数据部分计算)。这最大限度地降低了高维优化问题中的计算成本,从而实现更快的迭代但更低的收敛速度。下降(SGD)。

2. 动量

带有动量的随机梯度下降保留每次迭代的更新 Δw,并将下一次更新推导为梯度和前一次更新的线性组合。

3. Nesterov 动量

Nesterov 动量,或 Nesterov 加速梯度(NAG),是随机梯度下降动量的一种略微修改形式,为凸函数提供更好的理论收敛保证。在实践中,它比传统动量产生了稍好的结果。

4. AdaGrad

AdaGrad(自适应梯度算法)是一种修改后的随机梯度下降技术,它使用每个参数的学习率。它最初于 2011 年描述。非正式地,这提高了稀疏参数的学习率,同时降低了不那么稀疏的参数的学习率。在数据稀疏且稀疏参数信息量更大的情况下,该技术通常优于传统的随机梯度下降。

5. RMSProp

RMSProp(Root Mean Square Propagation 的缩写)是另一种为每个参数调整学习率的方法。这个概念是将权重的学习率除以其最近梯度的幅度的运行平均值。首先,运行平均值以均方值确定。

6. Adam

Adam(自适应矩估计)是 RMSProp 优化器的升级。这种优化方法使用梯度及其二阶矩的运行平均值。

训练

输出

Stochastic Optimization

从以上结果我们可以看出

  • 对于 blobs 数据集,所有优化技术都表现出色,获得了完全的准确性。
  • SGD、AdaGrad、RMSprop 和 Adam 在 moons 数据集上表现良好,但动量和 Nesterov 的准确性较差且变异性较大。
  • SGD 在 circles 数据集上表现最佳,其次是 AdaGrad、RMSprop 和 Adam。动量和 Nesterov 的得分很差,这表明它们可能难以处理数据集的非线性。
  • 总的来说,SGD、AdaGrad、RMSprop 和 Adam 在数据集上都表现出有希望的性能,其中 SGD 最稳定。然而,所使用的算法可能取决于数据集的特定属性和优化目标。