原文:
towardsdatascience.com/genai-with-python-build-agents-from-scratch-complete-tutorial-4fc1e084e2ec
本文将提供常见非凸优化器的简短数学表达式及其从头开始的 Python 实现。理解这些优化算法背后的数学将使你在训练复杂的机器学习模型时获得新的视角。本文的结构如下。首先,我将讨论特定的优化算法;然后,我将给出数学公式并提供 Python 代码。所有算法都是通过纯 NumPy 实现的。以下是我们将讨论的非凸优化算法
-
随机梯度下降(SGD)
-
SGDMomentum
-
AdaGrad
-
RMSprop
-
Adam
让我们从最简单的一个开始,随机梯度下降(SGD)。
随机梯度下降(SGD)
SGD 是一种迭代、非凸和一阶优化算法,它作用在可微分的误差曲面上。它是对梯度下降的随机估计,其中训练数据是随机化的。它是一种计算稳定的、数学上已确立的优化算法。SGD 背后的直觉是我们对目标函数相对于我们可以优化的参数求偏导数,从而得到其梯度,这显示了误差损失的递增方向。因此,我们取该梯度的负值,以便在损失不再增加的地方前进。为了确保稳定和较少振荡的优化,我们引入了学习率参数ŋ,然后将梯度与ŋ相乘。最后,从我们可以优化的参数中迭代地减去获得的价值。以下是 SGD 更新公式和 Python 代码。
1191

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



