ทำความเข้าใจกับต้นทุนของวิธีการ adjoint สำหรับการเพิ่มประสิทธิภาพ pde-constrained


11

ฉันพยายามที่จะเข้าใจว่าวิธีการปรับให้เหมาะสมแบบ adjoint นั้นทำงานอย่างไรสำหรับการปรับให้เหมาะสมแบบ จำกัด PDE โดยเฉพาะฉันพยายามเข้าใจว่าทำไมวิธีการ adjoint มีประสิทธิภาพมากขึ้นสำหรับปัญหาที่จำนวนตัวแปรการออกแบบมีขนาดใหญ่ แต่ "จำนวนสมการมีขนาดเล็ก"

สิ่งที่ฉันเข้าใจ:

พิจารณาปัญหาการปรับให้เหมาะสมแบบ จำกัด PDE ต่อไปนี้:

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

ที่เป็น (ต่อเนื่องเพียงพอ) ฟังก์ชันวัตถุประสงค์ของเวกเตอร์ตัวแปรการออกแบบเบต้าและเวกเตอร์ของราชวงศ์ตัวแปรสนามยู( β )ซึ่งขึ้นอยู่กับตัวแปรการออกแบบและR ( U )เป็นรูปแบบการตกค้างของ PDEIβu(β)R(u)

เห็นได้ชัดว่าเราสามารถผันแปรแรกของ I และ R

δI=∂I∂βδβ+∂I∂uδu

δR=∂R∂βδβ+∂R∂uδu=0

ขอแนะนำเวกเตอร์ของตัวคูณลากรองจ์การแปรผันของฟังก์ชันวัตถุประสงค์สามารถเขียนได้λ

δI=∂I∂βδβ+∂I∂uδu+λT[∂R∂βδβ+∂R∂uδu]

จัดเรียงเงื่อนไขใหม่เราสามารถเขียน:

δI=[∂I∂β+λT∂R∂β]δβ+[∂I∂u+λT∂R∂u]δu

ดังนั้นหากเราสามารถที่จะแก้ปัญหาสำหรับดังกล่าวว่า∂ ฉันλ

∂I∂u+λT∂R∂u=0 (adjoint equation)

จากนั้นการไล่ระดับสีคือการประเมินเพียง แต่ในแง่ของการออกแบบตัวแปรβδI=[∂I∂β+λT∂R∂β]δββ

ดังนั้นอัลกอริธึมการปรับให้เหมาะสมแบบ adjoint จะวนซ้ำตามขั้นตอนต่อไปนี้:

  1. รับตัวแปรการออกแบบปัจจุบันβ
  2. หาค่าตัวแปรฟิลด์ (จาก PDE)u
  3. หาค่าตัวคูณแบบลากรองจ์ (จากสมการ adjoint)λ
  4. คำนวณการไล่ระดับสี∂I∂β
  5. ปรับปรุงตัวแปรการออกแบบβ

คำถามของฉัน

adjoint 'หลอกลวง' นี้ปรับปรุงต้นทุนของการปรับให้เหมาะสมต่อการทำซ้ำในกรณีที่จำนวนของตัวแปรการออกแบบมีขนาดใหญ่ได้อย่างไร ฉันได้ยินมาว่าค่าใช้จ่ายในการประเมินผลการไล่ระดับสีสำหรับวิธี adjoint นั้น 'อิสระ' ของจำนวนตัวแปรการออกแบบ แต่สิ่งนี้เป็นความจริงแค่ไหน?

ฉันแน่ใจว่ามีสิ่งที่ชัดเจนมากที่ฉันมองอย่างใด


3
minu,βmaxλI(u,β)+λTR(u,β)uuR(u,β)=0βให้ผลการไล่ระดับสี หากคุณเริ่มต้นด้วยการกำหนดสูตรที่ไม่รัดกุมของ PDE สิ่งต่างๆจะดูเรียบง่ายยิ่งขึ้นเพียงใส่ตัวคูณ Lagrange แทนฟังก์ชั่นการทดสอบ ไม่จำเป็นต้องมีรูปแบบที่แข็งแกร่งหรือการรวมบางส่วนได้ทุกที่
— Christian Clason

1
ส่วนที่แพงที่สุดของการจำลองคือช่วงการแก้ปัญหา โดยใช้ adjoint คุณจะได้รับการไล่ระดับสีในสองตัวแก้ถูกกว่ามากเมื่อเทียบกับความแตกต่างแน่นอนที่คุณต้องการอย่างน้อย n + 1 ตัวแก้และ n เป็นจำนวนของพารามิเตอร์ฟรีในแบบจำลองของคุณ
— stali

คำตอบ:


10

adjoint 'หลอกลวง' นี้ปรับปรุงต้นทุนของการปรับให้เหมาะสมต่อการทำซ้ำในกรณีที่จำนวนของตัวแปรการออกแบบมีขนาดใหญ่ได้อย่างไร

ฉันคิดถึงต้นทุนจากมุมมองพีชคณิตเชิงเส้น (ดูหมายเหตุเหล่านี้โดย Stephen G. Johnsonซึ่งฉันพบว่าใช้งานง่ายกว่าวิธีการคูณแบบลากรองจ์) วิธีการไปข้างหน้ามีจำนวนการแก้สำหรับความไวโดยตรง:

∂u∂β=−(∂R∂u)−1∂R∂β

β

dIdβ=∂I∂β+∂I∂u∂u∂β,

d∂

วิธีการ adjoint บันทึกว่า

dIdβ=∂I∂β−∂I∂u(∂R∂u)−1∂R∂β,

λ

−∂I∂u(∂R∂u)−1=λT,

ซึ่งสอดคล้องกับสมการ adjoint

∂I∂u+λT∂R∂u=0.

การจัดกลุ่มคำใหม่ต้องใช้การแก้ปัญหาเชิงเส้นเดียวแทนที่จะเป็นการแก้ปัญหาเชิงเส้นสำหรับแต่ละพารามิเตอร์ซึ่งทำให้การประเมิน adjoint ถูกสำหรับกรณีพารามิเตอร์จำนวนมาก

ฉันได้ยินมาว่าค่าใช้จ่ายในการประเมินผลการไล่ระดับสีสำหรับวิธี adjoint นั้น 'อิสระ' ของจำนวนตัวแปรการออกแบบ แต่สิ่งนี้เป็นความจริงแค่ไหน?

(∂I/∂β)(∂R/∂β)u


8

I(β,u(β))u(β)βI(β,u(β))

miny,uJ(y,u)subject toe(y,u)=0
uyJe(y,u)e(y,u)=0y(u)uy′(u)
(1)ey(y(u),u)y′(u)+eu(y(u),u)=0
eyeu

j(u):=J(y(u),u)J(y,u)∇j(u)h

(2)j′(u;h)=⟨Jy(y(u),u),y′(u)h⟩+⟨Ju(y(u),u),h⟩.
Jy′(u)hh(1)hy′(u)h
(3)[y′(u)h]=ey(y(u),u)−1[eu(y(u),u)h]
(2) h

∇j

j′(u;h)=⟨∇j,h⟩for all h,
(1)
⟨Jy(y(u),u),y′(u)h⟩=⟨y′(u)∗Jy(y(u),u),h⟩
y′(u)∗y′(u)∗jy(y(u),u)(AB)∗=B∗A∗(3)
λ:=ey(y(u),u)−∗Jy(y(u),u)
∇j(u)=eu(y(u),u)∗λ+Ju(y(u),u).
Jy(y(u),u)λu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.