了解pde约束优化的伴随方法的成本


11

我正在尝试了解基于伴随的优化方法如何用于PDE约束优化。特别是,我试图理解为什么伴随方法对于设计变量数量大而“方程式数量小”的问题更有效。

我的理解:

请考虑以下PDE约束优化问题:

minβ I(β,u(β))s.t.R(u(β))=0

其中是向量设计变量β和取决于设计变量的场变量未知数u (β )的向量的(足够连续的)目标函数,而R (u )是PDE的残差形式。Iβu(β)R(u)

显然,我们可以将I和R的第一个变体设为

δ一世=∂一世∂βδβ+∂一世∂üδü

δ[R=∂[R∂βδβ+∂[R∂üδü=0

引入拉格朗日乘数的向量,目标函数的变化可以写成λ

δ一世=∂一世∂βδβ+∂一世∂üδü+λŤ[∂[R∂βδβ+∂[R∂üδü]

重新排列术语,我们可以这样写:

δ一世=[∂一世∂β+λŤ∂[R∂β]δβ+[∂一世∂ü+λŤ∂[R∂ü]δü

因此,如果我们能够解决,使得∂ 我λ

∂一世∂ü+λŤ∂[R∂ü=0 (伴随方程式)

然后梯度仅在设计变量方面被评估β。δ一世=[∂一世∂β+λŤ∂[R∂β]δββ

因此,基于伴随的优化算法将遍历以下步骤:

  1. 给定当前设计变量β
  2. 解决字段变量(来自PDE)ü
  3. 求解拉格朗日乘数(从伴随方程式中)λ
  4. 计算梯度 ∂一世∂β
  5. 更新设计变量 β

我的问题

在设计变量数量很大的情况下,这种伴随的“技巧”如何提高每次迭代的优化成本?我听说伴随方法的梯度评估成本与设计变量的数量“无关”。但是这到底是真的吗?

我敢肯定,有些东西很明显地被我忽略了。


3
顺便说一句,拉格朗日乘数通常加到目标函数上,而不是变数上。因此。将关于u的导数设置为零将产生伴随方程,并将其(以及状态方程R (u ,β )= 0的解u)插入到关于β的导数中分ü,β最大值λ一世(ü,β)+λŤ[R(ü,β)üü[R(ü,β)=0β产生渐变。如果从PDE的弱公式开始,事情会变得更加简单:只需插入Lagrange乘数来代替测试函数。在任何地方都不需要强大的形式或部分集成。
— 克里斯蒂安·克拉森2014年

1
任何模拟中最昂贵的部分是求解阶段。通过使用伴随,您可以得到两个解的梯度,与有限差分相比,该梯度要便宜得多,有限差分至少需要n + 1个解,n是模型中自由参数的数量。
— stali 2014年

Answers:


10

在设计变量数量很大的情况下,这种伴随的“技巧”如何提高每次迭代的优化成本?

我从线性代数的角度考虑成本。(请参阅Stephen G. Johnson的这些注释,我发现这些注释比Lagrange乘数方法更直观)。向前的方法等于直接解决敏感性问题:

∂ü∂β=-(∂[R∂ü)-1个∂[R∂β

这涉及为向量中的每个参数求解线性系统,然后求值β

d一世dβ=∂一世∂β+∂一世∂ü∂ü∂β,

其中表示总导数,∂表示偏导数。d∂

伴随方法指出

d一世dβ=∂一世∂β-∂一世∂ü(∂[R∂ü)-1个∂[R∂β,

因此,伴随变量(拉格朗日乘数)可以定义为λ

-∂一世∂ü(∂[R∂ü)-1个=λŤ,

对应于伴随方程

∂一世∂ü+λŤ∂[R∂ü=0。

项的这种重新组合仅需要一个线性解,而不是每个参数的线性解,这使得在多参数情况下,伴随评估便宜。

我听说伴随方法的梯度评估成本与设计变量的数量“无关”。但是这到底是真的吗?

它不是完全独立的。据推测评估的成本和(∂ - [R / ∂ β)将与参数的数量增加。但是,只要u的大小不变,线性解的大小仍将相同。假设解决方案比功能评估要昂贵得多。(∂一世/∂β)(∂[R/∂β)ü


8

简而言之,优点来自以下事实:要计算简化目标的导数,您实际上并不需要知道u (β )关于作为独立对象的β的导数。,但只有导致I (β ,u (β ))变化的那部分一世(β,ü(β))ü(β)β一世(β,ü(β))。

让我切换到一个我更喜欢的符号: ( u是设计变量, y是状态变量, J是目标)。假设 e (y ,u )足以应用隐函数定理,因此方程 e (y ,u )= 0具有唯一解 y (u ),该解关于 u和导数 y可以连续微分。 '(ü )

分ÿ,üĴ(ÿ,ü)服从Ë(ÿ,ü)=0
üÿĴË(ÿ,ü)Ë(ÿ,ü)=0ÿ(ü)üÿ′(ü)由 (e y和e u
(1)Ëÿ(ÿ(ü),ü)ÿ′(ü)+Ëü(ÿ(ü),ü)=0
ËÿËü是偏导数)的解给出。

这意味着您可以定义精简目标,这也是可微的(如果J (y ,u )是可微的)。表征梯度单程∇ Ĵ (Û )是经由定向衍生物(例如,计算所有相对于偏导数的设计空间的基础上)。在此,方向h的方向导数由链规则给出为 j '(u ; hĴ(ü):=Ĵ(ÿ(ü),ü)Ĵ(ÿ,ü)∇Ĵ(ü)H 如果Ĵ是好的,唯一困难的事情是计算Ÿ'(ü)^ h对于给定的^ h。这可以通过相乘来进行(1)与ħ从右侧和求解ÿ'(û)Ĥ(其隐函数定理允许),即,计算

(2)Ĵ′(ü;H)=⟨Ĵÿ(ÿ(ü),ü),ÿ′(ü)H⟩+⟨Ĵü(ÿ(ü),ü),H⟩。
Ĵÿ′(ü)HH(1个)Hÿ′(ü)H 并将此表达式插入(2)。在PDE约束的优化中,这等于求解线性化的PDE
(3)[ÿ′(ü)H]=Ëÿ(ÿ(ü),ü)-1个[Ëü(ÿ(ü),ü)H]
(2) 设计空间的每个基向量。H

但是,如果我们发现运营商使得 Ĵ “(ü ; ^ h )= ⟨ ∇ Ĵ ,^ h ⟩∇Ĵ 这必须是所需的梯度。综观(1 ),我们可以写出 ⟨ Ĵ ý(Ý (Û ),Û ),ÿ '(û )Ĥ ⟩ = ⟨ Ý '(Û )* Ĵ Ý(Ý (Û ),Û ),ħ ⟩ (与 y '(u )∗

Ĵ′(ü;H)=⟨∇Ĵ,H⟩对全部 H,
(1个)
⟨Ĵÿ(ÿ(ü),ü),ÿ′(ü)H⟩=⟨ÿ′(ü)∗Ĵÿ(ÿ(ü),ü),H⟩
ÿ′(ü)∗是伴随运算符),因此我们只需计算。使用(A B )* = B ∗ A ∗,可以使用(3 )来完成,即计算 λ := e y(y (u ),u )- ∗ J y(y (ÿ′(ü)∗Ĵÿ(ÿ(ü),ü)(一种乙)∗=乙∗一种∗(3)单一 和设置 ∇ Ĵ (Û )= È ù(Ý (Û ),ü )* λ + Ĵ ù(Ý (Û ),ù )。 在PDE约束优化中, J y(y (u ),u )通常是某种残差,计算 λ涉及求解
λ:=Ëÿ(ÿ(ü),ü)-∗Ĵÿ(ÿ(ü),ü)
∇Ĵ(ü)=Ëü(ÿ(ü),ü)∗λ+Ĵü(ÿ(ü),ü)。
Ĵÿ(ÿ(ü),ü)λ(线性)伴随PDE,与设计空间的尺寸无关。(实际上,这甚至适用于分布式参数,即,如果是某个无限维Banach空间中的函数,则第一种方法不可行。)ü
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.