为什么在神经网络中使用梯度下降?

机器算法验证 神经网络 梯度下降 反向传播
2022-01-29 04:45:12
  1. 当使用反向传播算法训练神经网络时,梯度下降法用于确定权重更新。我的问题是:与其使用梯度下降法缓慢定位相对于某个权重的最小点,不如直接设置导数,并找到使误差最小化的d(Error)dw=0w

  2. 另外,为什么我们确定反向传播中的误差函数是最小的?难道不能证明误差函数是最大值吗?压缩函数是否有一个特定的属性可以保证具有任意数量的具有任意权重和输入向量的隐藏节点的网络总是会给出具有最小值的误差函数?

3个回答
  1. 因为我们做不到。的函数的优化曲面不存在封闭形式的解S(w)wdS(w)dw=0

  2. 梯度下降,顾名思义,下降。如果下降后到达一个静止点,它必须是(局部)最小值或鞍点,但绝不是局部最大值。

关于 Marc Claesen 的回答,我相信梯度下降可能会在您初始化为局部最大值的情况下停止在局部最大值,或者由于运气不好或速率参数不协调而碰巧最终到达那里。局部最大值的梯度为零,算法会认为它已经收敛。这就是为什么我经常从不同的起点运行多次迭代并跟踪沿途的值。

在牛顿型方法中,在每个步骤中,对于问题线性化或近似版本,然后问题关于新点线性化,并重复该过程直到收敛。有些人为神经网络做过,但它有以下缺点,d(error)dw=0

  • 需要处理二阶导数(Hessian,特别是 Hessian-vector 积)。
  • “求解步骤”在计算上是非常昂贵的:在进行求解所需的时间内,可能已经完成了许多梯度下降迭代。

如果对 Hessian 求解使用 Krylov 方法,而对 Hessian 求解没有使用好的预条件子,则成本大致平衡 - 牛顿迭代花费更长的时间但取得更多进展,总时间大致为与梯度下降相同或更慢。另一方面,如果一个人有一个好的 Hessian 预条件子,那么牛顿的方法就会大获全胜。

也就是说,信任域 Newton-Krylov 方法是现代大规模优化的黄金标准,随着人们想要解决越来越大的问题,我预计它们在未来几年在神经网络中的使用会增加。(而且随着越来越多的数值优化人员对机器学习感兴趣)