根据一些初步研究,共轭梯度法与梯度下降法几乎完全相同,只是搜索方向必须与上一步正交。
从我读到的内容来看,这个想法往往是共轭梯度法比常规梯度下降法更好,所以如果是这样,为什么要使用常规梯度下降法?
此外,我知道诸如Powell 方法之类的算法使用共轭梯度法来查找最小值,但我也知道 Powell 方法在查找参数更新时计算量很大,因为它可以在任意函数上运行,而无需查找计算图。更具体地说,当在神经网络上运行梯度下降时,每个参数的梯度都是在后向传递中计算的,而 Powell 方法只是根据我的理解在这一步计算整个函数的梯度。(请参阅scipy 的最小化,从技术上讲,您可以将整个神经网络传递给该函数并对其进行优化,但没有比反向传播更快的世界)
然而,考虑到梯度下降与共轭梯度方法的相似程度,我们能否不将每个参数的梯度更新替换为与其上一次更新正交的梯度更新?那不是更快吗?