我想线性搜索和信任区域方法在处理缩放方式上可能会有一些差异,但是只要我们知道缩放比例,我实际上就不会看到它的实际效果。而且,需要明确的是,Nocedal和Wright的书是在谈论仿射缩放。非线性缩放很难量化。
f:X→RA∈L(X)J:X→R
J(x)=∇J(x)=∇2J(x)=f(Ax)A∇f(Ax)A∇2f(Ax)A
A∇2J(x)δx=−∇J(x)
A∇2f(Ax)Aδx=−A∇f(Ax)
Aδx=−∇2f(Ax)−1∇f(Ax)
Hδx=−∇J(x)
HHδx=−A∇f(Ax)
AH
ϕ
δx=ϕ(−A∇f(Ax))
ϕϕϕA
∇2J(x)δx=−∇J(x)
不精确地使用CG。这恰好是在信任区域设置中使用Steihaug-Toint(Nocedal和Wright中的第171页)或Newton-CG进行线搜索(Nocedal和Wright中的第169页)。它们的工作原理几乎相同,并且不在乎仿射缩放。它们也不需要存储Hessian,仅需要Hessian向量乘积。确实,这些算法应该是大多数问题的主力军,它们并不关心仿射缩放。
至于信任区域问题的前提条件,我认为没有任何简单的方法可以告诉apriori您是否要提高整体优化迭代的次数。归根结底,最优化方法有两种运行方式。在模式一下,我们离牛顿方法的收敛半径太远,因此我们进行全球化并只是强制迭代以确保目标下降。信任区域是一种方法。线搜索是另一个。在第二种模式下,我们处于牛顿方法的收敛半径内,因此我们尽量不要弄乱它,而让牛顿方法起作用。实际上,我们可以在诸如信任区域方法之类的收敛证明中看到这一点。例如,查看定理4.9(Nocedal和Wright中的第93页)。非常明确地,它们说明了信任区域如何变为非活动状态。在这种情况下,预处理器的用途是什么?当然,当我们处于牛顿方法的收敛半径时,我们要做的工作要少得多,并且CG迭代次数会减少。当我们超出此半径时会发生什么?这要看情况。如果我们计算完整的牛顿步长,则好处是我们所做的工作更少。如果我们由于被截断的CG截断而提前中断了步伐,那么我们的方向将是Krylov子空间
{−P∇J(x),−(PH)(P∇J(x)),…,−(PH)k(P∇J(x))}
PH{−∇J(x),−(H)(∇J(x)),…,−(H)k(∇J(x))}?
这并不意味着定义好的预处理器没有任何价值。但是,我不确定有人如何定义前置条件来帮助优化远离牛顿方法收敛半径的点。通常,我们设计一个预处理器以对Hessian近似的特征值进行聚类,这是一个切实可行的目标。
tldr; 实际上,与信任区域方法相比,线搜索方法生成迭代的方法种类繁多,因此可能存在一种惊人的方式来处理仿射缩放。但是,只需使用不精确的牛顿方法就可以了。预处理器的确会影响算法的性能,而不会影响牛顿方法的收敛半径,但是很难量化其方式,因此只需设计一个预处理器以聚类Hessiasn近似的特征值即可。