机器学习中的优化算法

机器学习中的优化算法

优化是我们迭代训练模型的过程,最大和最小函数评估,未来获得更好的结果是机器学习中最重要的一环。

为什么我们要优化机器学习模型?我们通过改变每一步的超参数来比较每次迭代的结果,直到获得最佳结果。我们创建了一个错误率更低的准确模型。我们可以使用不同的方法来优化模型。本文中,主要讨论两个重要的优化算法:梯度下降和随机梯度下降算法;它们如何在机器学习模型中使用,以及它们背后的数学原理。

2. 最大值和最小值

Maxima是函数在给定范围内的最大值,Minima是函数的最小值。我们的代表如下:

Global Maxima 和 Minima:分别是函数整个域上的最大值和最小值

局部最大值和最小值:分别是函数在给定范围内的最大值和最小值。

全局最小值和最大值只能有一个,但局部最小值和最大值可能不止一个。

3. 梯度下降

梯度下降是一种优化算法,它找出可微函数的局部最小值。它是最小化给定函数的最小化算法。

让我们看看梯度下降的几何直觉:

让我们以抛物线图为例,Y=X²

这里,最小值是原点(0, 0)。这里的斜率是 Tanθ。所以右边的斜率是正值,0<θ<90,它的Tanθ是正值。左侧的斜率为负值,为 90<θ<180,其 Tanθ 为负值。

点向最小值移动的斜率

图中的一个重要观察结果是,斜率在最小值处将其符号从正变为负。当我们靠近最小值时,斜率会减小。

那么,梯度下降算法是如何工作的呢?

目标:计算 X*- 函数 Y=X² 的局部最小值。

  • 随机选取一个初始点 X₀
  • 在 X₀ 处计算 X₁ = X₀-r[df/dx]。r 是学习率(我们将在学习率部分讨论r)。让我们取r=1。在这里,df/dx 只不过是梯度。
  • 在 X₁ 处计算 X₂ = X₁-r[df/dx]。
  • 计算所有点:X₁, X₂, X₃, ……., Xᵢ-₁, Xᵢ
  • 计算局部最小值的通用公式:Xᵢ = (Xᵢ-₁)-r[df/dx] 在 Xᵢ-₁
  • 当 (Xᵢ — Xᵢ-₁) 较小时,即当 Xᵢ-₁, Xᵢ 收敛时,我们停止迭代并声明 X* = Xᵢ

4. 学习率

学习率是一个超参数或调整参数,用于确定每次迭代时的步长,同时向函数中的最小值移动。例如,如果在初始步骤中 r = 0.1,则可以将其视为 r=0.01,并且可以随着我们进一步迭代而呈指数减小。它在深度学习中使用得更有效。

如果我们保持 r 值不变会发生什么:

在上面的例子中,我们取 r=1。当我们计算点 Xᵢ、Xᵢ+₁、Xᵢ+₂、…以找到局部最小值 X* 时,我们可以看到它在 X = -0.5 和 X = 0.5 之间振荡。

当我们保持 r 为常数时,我们最终会遇到振荡问题。因此,我们必须在每次迭代中减少“r”值。随着迭代步长的增加,减小r值。

超参数决定偏差-方差权衡。当r值较低时,可能会过度拟合模型并导致高方差。当r值很高时,它可能会欠拟合模型并导致高偏差。绘制具有不同学习率的图并检查每个值的训练损失并选择损失最小的那个。

5. 逻辑回归中的梯度下降

应用sigmoid函数后逻辑回归中最优平面的公式为:

最优平面——逻​​辑回归

将梯度下降算法应用于逻辑回归:

Logistic 回归中的梯度下降

我们将计算 W₀, W₁, W₂, …., Wᵢ-₁, Wᵢ 以找到 W*。当 (Wᵢ-₁ — Wᵢ) 小时,即,当 Wᵢ-₁,Wᵢ 收敛时,我们声明 W* = Wᵢ

梯度下降的缺点:

当 n 很大时,k次迭代计算最优向量所需的时间变得非常大。

时间复杂度:O(kn²)

这个问题可以通过随机梯度下降解决,并在下一节中讨论。

5. 随机梯度下降(SGD)

在 SGD 中,我们不使用所有数据点,而是使用其中的一个样本来计算函数的局部最小值。随机基本上意味着概率。所以我们从总体中随机选择点。

  • 逻辑回归中的 SGD

逻辑回归中的随机梯度下降

这里,m是从总体中随机选择的数据样本,n

时间复杂度:O(km²)。m 明显小于 n。因此,与梯度下降相比,计算时间更短。

在本文中,我们讨论了梯度下降和随机梯度下降等优化算法及其在逻辑回归中的应用。SGD 是机器学习中最重要的优化算法。大多数情况下,它用于逻辑回归和线性回归。它在深度学习中被扩展为 Adam,Adagrad。

作者:Supriya Secherla

免责声明:凡未注明来源或者来源为网络的信息均转自其它平台,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。网站只负责对文章进行整理、排版、编辑,不承担任何法律责任。若有侵权或异议请联系我们删除,谢谢。

发表评论

您的电子邮箱地址不会被公开。