关于Armijo规则的困惑


13

我对行搜索中使用的Armijo规则感到困惑。我正在阅读回溯追踪线搜索,但没有得到Armijo规则的全部内容。谁能详细说明Armijo规则是什么?维基百科似乎解释得不好。谢谢


如果在方程式中变量x不是向量而是矩阵,该怎么办?Armijo规则应如何更新?
— Frank Puk

没有什么变化。您应该将矩阵简单地整形为(列)向量x k。Xkxk
— GoHokies

那就是我被困住的地方。当成为矩阵,在左手侧上的值(˚F (X ķ + α p ķ))仍是一个标量。但在右手侧的值不为-相反,它是一个矩阵(˚F (X ķ)是一个标量和β α ▿ ˚F (X ķ )Ť p ķ是矩阵。)xkf(xk+αpk)f(xk)βα∇f(xk)Tpk
— 弗兰克北辰

您将需要使用向量,而不是矩阵。因此,您可以将个控制变量矩阵(我用X k表示)重塑为具有N 2个元素的向量x k。搜索方向和梯度也将是具有N 2个元素的向量。这样,Armijo条件的RHS和LHS都是标量,可以进行比较。N×NXkxkN2N2
— GoHokies

Answers:


19

pf(x)

f

f(xk+αpk)≤f(xk)+βα∇f(xk)Tpk
pkxkβ∈(0,1)

f(xk+αpk)xkpk


1
βα

这一点很重要的原因,即为什么需要“好的”步骤,是因为许多优化方案的收敛速度会较慢,如Paul所说,或者可能根本不会收敛。因此,可以使用行搜索(有几种变体,Armijo才是最流行的搜索)来为算法提供更强大的收敛性。
— cjordan1

1
保罗:您的解释不完整。单单这种不平等并不能保证“足够的”减少。实际上,您可以使alpha = 0,并且仍然满足您编写的不等式。Armijo规则的一个重要功能是将步长大小限制为零,这是由另一个不等式完成的:f(gamma * x_new)-f(x_old)> beta *(gamma * x_new-x_old)^ T * grad(f (x_old))

f(x)=x2xk=−1pk=−2αf(xk+αpk)α=1/2β>1/2f(xk+1/2pk)=0>1−2β=f(xk)+βαf′(xk)pkβ

β>1/2β=10−4β

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.