其他优化技术

迭代梯度下降技术

梯度下降,也称为最陡下降,是一种迭代优化算法,用于查找函数的局部最小值。在最小化函数时,我们关心的是要最小化的成本或误差(记住旅行商问题)。它在深度学习中得到广泛使用,在各种情况下都很有用。这里要记住的一点是,我们关注的是局部优化,而不是全局优化。

主要工作思想

我们可以借助以下步骤理解梯度下降的主要工作思想 −

  • 首先,从对解决方案的初始猜测开始。

  • 然后,在该点取函数的梯度。

  • 稍后,通过在梯度的负方向上逐步解决该问题来重复该过程。

通过遵循上述步骤,算法最终将在梯度为零的地方收敛。

Optimization

数学概念

假设我们有一个函数f(x),我们正在尝试找到该函数的最小值。以下是查找 f(x) 最小值的步骤。

  • 首先,给出一些初始值 $x_{0}\:for\:x$

  • 现在取函数的梯度 $ abla f$ ⁡,直觉上梯度将给出该 x 处曲线的斜率,其方向将指向函数的增加,以找出最小化它的最佳方向。

  • 现在按如下方式更改 x −

    $$x_{n\:+\:1}\:=\:x_{n}\:-\: heta abla f(x_{n})$$

这里,θ > 0 是强制算法进行小幅跳跃的训练率(步长)。

估计步长

实际上,错误的步长 θ 可能无法达到收敛,因此仔细选择步长非常重要。选择步长时必须记住以下几点

  • 不要选择太大的步长,否则会产生负面影响,即它会发散而不是收敛。

  • 不要选择太小的步长,否则需要很长时间才能收敛。

关于选择步长的一些选项 −

  • 一种选择是选择固定的步长。

  • 另一种选择是为每次迭代选择不同的步长。

模拟退火

模拟退火 (SA) 的基本概念源自固体中的退火。在退火过程中,如果我们将金属加热到其熔点以上,然后将其冷却,则结构特性将取决于冷却速度。我们也可以说 SA 模拟了退火的冶金过程。

在 ANN 中的使用

SA 是一种随机计算方法,受退火类比的启发,用于近似给定函数的全局优化。我们可以使用 SA 来训练前馈神经网络。

算法

步骤 1 − 生成随机解决方案。

步骤 2 − 使用某些成本函数计算其成本。

步骤 3 − 生成随机邻近解决方案。

步骤 4 −用相同的成本函数计算新解决方案的成本。

步骤 5 − 将新解决方案的成本与旧解决方案的成本进行比较,如下所示 −

如果 CostNew Solution < CostOld Solution 则转到新解决方案。

步骤 6 − 测试停止条件,可能是达到的最大迭代次数或获得可接受的解决方案。