📜  其他优化技术

📅  最后修改于: 2020-11-26 08:40:16             🧑  作者: Mango


迭代梯度下降技术

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

主要工作思路

通过以下步骤,我们可以了解梯度下降的主要工作原理:

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

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

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

通过执行上述步骤,该算法将最终收敛到梯度为零的位置。

优化

数学概念

假设我们有一个函数f(x) ,并且试图找出该函数的最小值。以下是找到f(x)最小值的步骤。

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

  • 现在,使用梯度$ \ nabla f $⁡of函数,凭直觉,梯度将给出曲线在该x处的斜率,并且其方向将指向函数的增加,从而找出最小化梯度的最佳方向。

  • 现在如下更改x-

    $$ x_ {n \:+ \:1} \:= \:x_ {n} \:-\:\ theta \ nabla f(x_ {n})$$

在这里, θ> 0是迫使算法采取小的跳跃的训练速率(步长)。

估算步长

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

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

  • 不要选择太小的步长,否则会花费很多时间。

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

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

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

模拟退火

模拟退火(SA)的基本概念是由固体中的退火引起的。在退火过程中,如果我们将金属加热到其熔点以上并冷却下来,则结构性能将取决于冷却速率。我们也可以说SA模拟了退火的冶金过程。

在人工神经网络中使用

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

算法

步骤1-生成随机解。

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

步骤3-生成一个随机的邻近解决方案。

步骤4-通过相同的成本函数计算新的解决方案成本。

步骤5-如下比较新解决方案和旧解决方案的成本-

如果“成本解决方案<成本解决方案”,则转到新解决方案。

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