Memahami biaya metode adjoint untuk optimasi pde-constrained

11

Saya mencoba memahami bagaimana metode pengoptimalan berbasis adjoint bekerja untuk optimisasi terbatas PDE. Khususnya, saya mencoba memahami mengapa metode adjoint lebih efisien untuk masalah di mana jumlah variabel desain besar, tetapi "jumlah persamaan kecil".

Apa yang saya mengerti:

Pertimbangkan masalah pengoptimalan terbatas PDE berikut:

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

di mana adalah fungsi objektif (cukup kontinu) dari variabel desain vektor dan vektor variabel lapangan tidak diketahui yang bergantung pada variabel desain, dan adalah bentuk residu dari PDE.Iβu(β)R(u)

Jelas, kita dapat variasi pertama dari I dan R sebagai

δI=Iβδβ+Iuδu

δR=Rβδβ+Ruδu=0

Memperkenalkan vektor pengganda lagrange , variasi dalam fungsi tujuan dapat ditulis sebagaiλ

δI=Iβδβ+Iuδu+λT[Rβδβ+Ruδu]

Menyusun ulang istilah, kita dapat menulis:

δI=[Iβ+λTRβ]δβ+[Iu+λTRu]δu

Dengan demikian, jika kita dapat menyelesaikan untuk sehinggaλ

Iu+λTRu=0 (adjoint equation)

Kemudian gradien dievaluasi hanya dalam hal variabel desain .δI=[Iβ+λTRβ]δββ

Dengan demikian, algoritma optimisasi berbasis adjoint akan mengulangi langkah-langkah berikut:

  1. Diberikan variabel desain saat iniβ
  2. Memecahkan variabel bidang (dari PDE)u
  3. Memecahkan untuk pengganda lagrange (dari persamaan adjoint)λ
  4. Hitung gradienIβ
  5. Perbarui variabel desainβ

Pertanyaan saya

Bagaimana 'trik' adjoin ini meningkatkan biaya optimasi per iterasi dalam kasus di mana jumlah variabel desain besar? Saya pernah mendengar bahwa biaya evaluasi gradien untuk metode adjoint adalah 'independen' dari jumlah variabel desain. Tetapi bagaimana tepatnya ini benar?

Saya yakin ada sesuatu yang sangat jelas bahwa saya entah bagaimana menghadap.

Paul
sumber
3
Omong-omong, pengali Lagrange biasanya ditambahkan ke fungsional objektif, bukan variasi; dengan demikian . Mengatur turunan sehubungan dengan ke nol menghasilkan persamaan adjoint, dan memasukkan ini (dan solusi dari persamaan keadaan ) ke dalam turunan sehubungan dengan menghasilkan gradien. Jika Anda memulai dengan formulasi PDE yang lemah, segalanya menjadi lebih sederhana: Cukup masukkan pengganda Lagrange sebagai ganti fungsi tes. Tidak perlu untuk bentuk yang kuat atau integrasi parsial di mana saja. minu,βmaxλI(u,β)+λTR(u,β)uuR(u,β)=0β
Christian Clason
1
Bagian paling mahal dari setiap simulasi adalah fase penyelesaian. Dengan menggunakan adjoint Anda mendapatkan gradien dalam dua solves, jauh lebih murah dibandingkan dengan perbedaan hingga di mana Anda setidaknya membutuhkan n + 1 solves, n menjadi jumlah parameter bebas dalam model Anda.
stali

Jawaban:

10

Bagaimana 'trik' adjoin ini meningkatkan biaya optimasi per iterasi dalam kasus di mana jumlah variabel desain besar?

Saya berpikir tentang biaya dari perspektif aljabar linier. (Lihat catatan ini oleh Stephen G. Johnson , yang saya temukan lebih intuitif daripada pendekatan pengali Lagrange). Pendekatan ke depan berarti penyelesaian untuk sensitivitas secara langsung:

uβ=(Ru)1Rβ

yang melibatkan penyelesaian sistem linier untuk setiap parameter dalam vektor , lalu evaluasiβ

dIdβ=Iβ+Iuuβ,

di mana menunjukkan turunan total, dan menunjukkan turunan parsial.d

Pendekatan adjoint mencatat itu

dIdβ=IβIu(Ru)1Rβ,

sehingga variabel adjoint (pengali Lagrange) dapat didefinisikan olehλ

Iu(Ru)1=λT,

yang sesuai dengan persamaan adjoint

Iu+λTRu=0.

Pengelompokan ulang persyaratan ini hanya membutuhkan satu penyelesaian linier, alih-alih penyelesaian linier untuk setiap parameter, yang membuat evaluasi adjoin menjadi murah untuk banyak kasus parameter.

Saya pernah mendengar bahwa biaya evaluasi gradien untuk metode adjoint adalah 'independen' dari jumlah variabel desain. Tetapi bagaimana tepatnya ini benar?

Itu tidak sepenuhnya independen; mungkin biaya evaluasi dan akan meningkat dengan jumlah parameter. Namun, penyelesaian linier masih akan memiliki ukuran yang sama, asalkan ukuran tidak berubah. Asumsinya adalah bahwa solves jauh lebih mahal daripada evaluasi fungsi.(I/β)(R/β)u

Geoff Oxberry
sumber
8

Singkatnya, keuntungan berasal dari fakta bahwa untuk menghitung turunan dari tujuan dikurangi , Anda tidak benar-benar perlu mengetahui turunan dari sehubungan dengan sebagai objek terpisah, tetapi hanya bagian itu yang mengarah ke variasi dalam .I(β,u(β))u(β)βI(β,u(β))

Biarkan saya beralih ke notasi. Saya sedikit lebih nyaman dengan: ( menjadi variabel desain, menjadi variabel keadaan, dan menjadi objektif). Katakanlah cukup baik untuk menerapkan teorema fungsi implisit, sehingga persamaan memiliki solusi unik yang secara terus menerus dapat dibedakan sehubungan dengan , dan turunannya diberikan oleh solusi dari ( dan menjadi turunan parsial) .

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

Ini berarti Anda dapat mendefinisikan tujuan yang dikurangi , yang dapat dibedakan juga (jika adalah). Salah satu cara untuk mengkarakterisasi gradien adalah melalui turunan terarah (misalnya, hitung semua turunan parsial sehubungan dengan dasar ruang desain). Di sini, turunan terarah dalam arah diberikan oleh aturan rantai sebagai Jika baik, satu-satunya hal yang sulit untuk dihitung adalah untuk diberikan . Ini dapat dilakukan dengan mengalikan denganj(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)hdari kanan dan penyelesaian untuk (yang mana teorema fungsi implisit memungkinkan), yaitu, komputasi dan menghubungkan ekspresi ini ke dalam . Dalam optimasi PDE-dibatasi, jumlah ini untuk memecahkan PDE linierisasi untuk setiap vektor basis dari ruang desain.y(u)h
(3)[y(u)h]=ey(y(u),u)1[eu(y(u),u)h]
(2) h

Namun, jika kita menemukan operator sehingga maka ini harus gradien yang diinginkan. Melihat , kita dapat menulis (dengan menjadi operator adjoint), jadi yang perlu kita hitung adalah . Dengan menggunakan , ini dapat dilakukan dengan menggunakan , yaitu, menghitung dan pengaturan Dalam optimasi terbatas-PDE,j

j(u;h)=j,hfor 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)=BA(3)
λ:=ey(y(u),u)Jy(y(u),u)
j(u)=eu(y(u),u)λ+Ju(y(u),u).
Jy(y(u),u)biasanya semacam residual, dan penghitungan melibatkan penyelesaian satu PDE adjoin (linier), terlepas dari dimensi ruang desain. (Sebenarnya, ini bahkan bekerja untuk parameter didistribusikan, yaitu, jika adalah fungsi di beberapa ruang Banach dimensi tak terbatas, di mana pendekatan pertama adalah tidak layak.)λu
Christian Clason
sumber