无法进行线搜索时的自适应梯度下降步长


9

我有一个客观的功能 E 取决于一个值 ϕ(x,t=1.0),在哪里 ϕ(x,t)是PDE的解决方案。我正在优化E在PDE 的初始条件下通过梯度下降:ϕ(x,t=0.0)。也就是说,我更新ϕ(x,t=0.0)然后必须集成PDE以计算我的残差。这就是说,如果我要对梯度下降步长进行线搜索(称它为α),对于的每个潜在值 α 我将不得不重新整合PDE。

就我而言,这将是非常昂贵的。自适应梯度下降步长还有另一种选择吗?

我不仅在这里寻找数学原理的方案(尽管如果有的话当然会更好),但对通常比静态步长更好的任何事物都会感到满意。

谢谢!


我不认为我现在想修改集成PDE的方式,因为对我而言这将是主要的代码重写。另外,PDE并不是一个棘手的问题,因为我需要非常高的数值精度,因此我必须在时空非常密集的网格上求解它。
NLi10Me

另一方面,BB方法(我不熟悉)似乎还不错。我要做的就是跟踪上一次迭代的状态和梯度,然后得到二阶近似值,这看起来非常好。但是,推导假设是二次凸的,而我的问题几乎可以肯定不是。不过,我当然也发现(并满意)本地而非全球最低要求。您知道BB在超高尺寸问题上的表现如何吗?
NLi10Me

我猜我对局部极小值的意思是,在局部极小值附近,没有函数近似为平方吗?我认为我的初始状态ϕ(0)(x,t=0.0)足够接近最小值,因为在很多情况下,即使使用静态步长,我也可以平滑收敛。因此,即使它的维数很高,并且通常来说,如果您考虑整个搜索空间,那么问题是非凸/非二次的,BB仍然是不进行线搜索的不错选择吗?
NLi10Me

其他“成分” E 是实验图像数据。 ϕ(x,t=1.0)尝试使一个图像扭曲以“匹配”另一幅图像(通过某些匹配功能(如集成在体素上的L2范数来衡量)。对于某些图像对,使用(当前选择的)静态步长进行平滑收敛。对于其他图像对,我会产生很多振荡。该系统必须是全自动的,所以我不能回过头来手动编辑步长,以解决麻烦的图像对。
NLi10Me

是的,我确实必须解决伴随系统才能获得梯度(这是一个较新的系统,需要更长的时间)。好的,我想我会尝试使用BB回溯线搜索。非常感谢您的建议;我的顾问通常很难找到,他们中的许多人对实施并不感兴趣,而不仅仅是模型。我发现数值方法是证明模型是否良好的关键组成部分,所以再次感谢我。
NLi10Me

Answers:


15

我先做一个一般性的评论:一阶信息(即仅使用渐变来编码斜率)只能为您提供方向信息:它可以告诉您函数值在搜索方向上减小,但不会持续多长时间。要确定沿着搜索方向的距离,您需要其他信息(即使出现凸二次问题,具有恒定步长的梯度下降也可能失败)。为此,您基本上有两个选择:

  1. 使用二阶信息(对曲率进行编码),例如,通过使用牛顿方法而不是梯度下降(您可以始终使用步长)1 足够接近最小化器)。
  2. 反复试验(当然,我指的是使用诸如Armijo之类的适当行搜索)。

如您所写,如果您无权访问二阶导数,并且评估目标函数的成本非常高,则您唯一的希望就是妥协:使用足够的近似二阶信息来获得良好的候选步长,以使一条直线仅搜索需求 O(1) 评估(即,评估梯度所需的努力最多为(小的)常数倍)。

一种可能性是使用Barzilai-Borwein步长(例如,参见 Fletcher:关于Barzilai-Borwein方法。应用程序的优化和控制,235-256,Appl。Optim。,96,Springer,New York,2005)。这个想法是使用沿着搜索方向的曲率的有限差分近似来获得步长的估计。具体来说,选择α0>0 任意设置 g0:=f(x0) 然后 k=0,...

  1. sk=αk1gkxk+1=xk+sk
  2. 评估 gk+1=f(xk+1) 并设置 yk=gk+1gk
  3. αk+1=(yk)Tyk(yk)Tsk

可以证明该选择对于二次函数收敛(实际上非​​常快),但是收敛不是单调的(即函数值)f(xk+1) 可以大于 f(xk),但仅偶尔执行一次;请参阅Fletcher论文第10页的图)。对于非二次函数,您需要将此与行搜索结合起来,需要对其进行修改以处理非单调性。一种可能性是选择σk(0,αk1) (例如,通过回溯)

f(xkσkgk)maxmax(kM,1)jkf(xj)γσk(gk)Tgk,
其中是典型的Armijo参数,控制单调程度(例如)。还有一种使用梯度值而不是函数值的变体,但是在您的情况下,梯度的评估甚至比函数还要昂贵,因此这里没有意义。(注意:当然,您可以尝试盲目接受BB步长并相信自己的运气,但是,如果您需要某种鲁棒性(如您在评论中所写的那样),那将是一个非常糟糕的主意。)γ(0,1)MM=10

另一种方法(我认为更好)是在搜索方向的计算中已经使用了这种有限差分近似。这称为准牛顿法。这个想法是通过使用梯度差逐步建立Hessian的近似值。例如,您可以采用(单位矩阵),对于求解 和集合 与如上所述的和。(这称为Broyden更新2f(xk)H0=Idk=0,

(1)Hksk=gk,
Hk+1=Hk+(ykHksk)T(sk)T(sk)Tsk
ykxk+1=xk+sk在实践中很少使用;一个更好但更复杂的更新是BFGS更新,有关更多信息,我可以参考Nocedal和Wright的书《数值优化》。)缺点是a)这将需要在每个步骤中求解线性系统(但仅是未知数的大小(在您的情况下是初始条件),因此,应通过求解PDE来获得梯度的优势;并且,存在用于更新黑森州近似值的更新规则,该更新规则仅需要计算单个矩阵-vector产品)和b)您仍然需要进行行搜索以确保收敛...

幸运的是,在这种情况下,存在一种替代方法,可以利用每个函数求值。这个想法是,对于对称且为正定的(BFGS更新保证),求解等效于最小化二次模型 在信任区域方法中,您可以使用的附加约束来这样做,其中是适当选择的信任区域半径(长)。现在的关键思想是根据计算出的步长自适应地选择此半径。具体来说,您要查看比率 Hk(1)

qk(s)=12sTHks+sTgk.
sΔkΔkσk
ρk:=f(xk)f(xk+sk)f(xk)qk(sk)
函数值的实际减少和预测减少。如果非常小,则说明您的模型很糟糕,您丢弃了并使用再试一次。如果接近,则您的模型很好,您设置并增加。否则,您只需要设置并保留。来计算实际极小的ρkskΔk+1<Δkρk1xk+1=xk+skΔk+1>Δkxk+1=xk+skΔkskminsΔkqk(s),有几种策略可以避免必须解决完全约束的优化问题。我最喜欢的是Steihaug的截断CG方法。有关更多详细信息,我再次参考Nocedal和Wright。

我现在才再次看这个,意识到我有一个问题。在BB方法的第三步中,您有;其中和。的表达式中的分子和分母看起来像内积。在我的情况下,,其中是具有非平凡黎曼度量的向量空间:K。即。这会影响的定义吗?αk+1=(yk)Tyk(yk)Tskyk=gk+1gksk=αk1gkαk+1gkVVgk,gkV=gk,KgkL2αk+1
NLi10Me

是的,如果您具有非平凡的向量空间结构,则应在算法中予以考虑。特别是,您应该区分同一空间中两个函数的内积(例如和)和该空间中一个函数与对偶空间中一个函数的对偶乘积(例如和)-对于后者,您需要包括Riesz映射,以首先将其转换为内部产品。(这可以解释为预处理。)ykykskyk
Christian Clason

Clason博士,我将向ISBI 2017提交论文,详细介绍我使用BB +线搜索方法完成的用于微晶图像配准任务的一些实验。您想成为作者吗?我还没有写它,但是我已经完成或正在进行大部分实验。请告诉我。
NLi10Me

@ NLi10Me谢谢您的好意,但是我没有做任何值得与他人共同创作的事情-我写的都是标准教科书材料。如果您对此深有感触,则可以感谢我的“关于(有帮助的)评论”,但甚至不需要。知道我写的东西是有帮助的!
克里斯蒂安·克拉森

1
抱歉,您是对的,这是一个错字-已修正!(Armijo条件通常写为,其中是搜索方向-不一定是负数渐变-和步长,这应该使情况更清晰。)f(x+σs)f(x)γf(x)T(σs)sσ
Christian Clason
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.