今天继续看Numerical Optimization这本书,在看第六章,实用牛顿法。
6.1 提到“不准确”的牛顿法。意思是每次确定迭代方向都要解方程,很慢,实际上也不一定要解出非常精确的迭代方向。于是尝试用一些迭代解法(例如,共轭梯度法)去解 H*x + G = 0这个方程。
6.2 提到通过共轭梯度法解 Ax = b 找搜索方向p = x的具体做法。
一旦发现一个点x有 x^T * A * x <= 0此时A非正定,若当前为第一次迭代,以此迭代方向更新牛顿法,否则,以上一次迭代方向更新。前一种情况实际等价于最速下降法。
初始位置x0可以设置为0,也可以设置为上一帧的搜索方向。两种方法差不多。
此法不需要显式的H,只需要H * p。因此节省了计算H的时间。
时间: 2024-10-03 22:25:13