Çizgi araması yapamadığınızda uyarlanabilir gradyan iniş adımı boyutu


9

değerine bağımlı bir objektif fonksiyon var , burada bir PDE çözümdür. , PDE'nin başlangıç ​​durumuna gradyanlı iniş ile optimize ediyorum : . Yani, ve daha sonra PDE'yi tümlememi hesaplamak için entegre etmeliyim. Ben Bayır iniş adım boyutu için bir hat arama (çağrı yapmak olsaydı araçlar, bu ), her potansiyel değeri için sanki yeniden PDE entegre etmek gerekir.Eϕ(x,t=1.0)ϕ(x,t)Eϕ(x,t=0.0)ϕ(x,t=0.0)αα

Benim durumumda bu oldukça pahalı olurdu. Uyarlamalı gradyan iniş adımı boyutu için başka bir seçenek var mı?

Ben sadece burada matematiksel prensipli şemalar aramıyorum (tabii ki bir şey varsa daha iyi olsa da), ama genellikle statik bir adım boyutundan daha iyi olan herhangi bir şeyle mutlu olurum.

Teşekkürler!


Benim için büyük bir kod yeniden yazma olurdu gibi şu anda PDE entegre şekilde değiştirmek istiyorum sanmıyorum. Ayrıca, PDE'nin zor olduğu kadar fazla değil, çünkü çok yüksek sayısal doğruluk gerektirdiğim için uzay-zaman içinde çok yoğun bir ızgarada çözmem gerekiyor.
NLi10Me

Öte yandan, (aşina olmadığım) BB yöntemi oldukça iyi görünüyor; tek yapmam gereken bir önceki yinelemenin durumunu ve gradyanını takip etmek ve ikinci bir sıra yaklaşımı elde etmek ... çok hoş görünüyor. Ancak, türetme bir dışbükey ikinci dereceden varsayar ve benim sorunum neredeyse kesinlikle değil. Yine de, kesinlikle küresel minima yerine yerel (ve mutlu) buluyorum. BB'nin çok yüksek boyutlu problemlerde ne kadar iyi performans gösterdiğini biliyor musunuz?
NLi10Me

Yerel minima hakkında kastettiğim şey, yerel bir minimumun mahallesinde, herhangi bir işlevin yaklaşık ikinci dereceden olmadığı mı? Sanırım ilk durumum , statik adım boyutu ile bile düzgün yakınsama elde ettiğim için, minimum seviyeye yeterince yakın. Bu yüzden, çok yüksek boyutlu olmasına rağmen ve genel olarak tüm arama alanını düşünürseniz, sorun dışbükey / karesel olmayan olsa da, BB hat araması olmadan hala iyi bir seçim olabilir mi? ϕ(0)(x,t=0.0)
NLi10Me

diğer "bileşenleri" deneysel görüntü verileridir. bir görüntüyü diğeriyle "eşleştirmek" için eğilmeye çalışır (voksellere entegre L2 normu gibi bazı eşleşen işlevlerle ölçülür). Bazı görüntü çiftleri için, statik adım boyutuyla (şu anki seçimim) düzgün bir yakınsama alıyorum. Diğer görüntü çiftleri için çok fazla salınım elde ediyorum. Sistem tamamen otomatik olmalıdır, bu yüzden geri gidemiyorum ve sorunlu görüntü çiftleri için adım boyutunu elle düzenleyemiyorum. Eϕ(x,t=1.0)
NLi10Me

Doğru, gradyanı elde etmek için bitişik sistemi çözmem gerekiyor (bu daha nazik bir sistem ve daha uzun sürüyor). Tamam, sanırım BB'yi backtracking line search ile deneyeceğim. Tavsiye için çok teşekkür ederim ; danışmanlarımın elde edilmesi genellikle zordur ve birçoğu sadece model kadar uygulama ile ilgilenmez. Sayısal yöntemleri, bir modelin ilk başta iyi olup olmadığını göstermek için çok önemli bir bileşen olduğunu düşünüyorum, bu yüzden tekrar teşekkürler, gerçekten takdir ediyorum.
NLi10Me

Yanıtlar:


15

Genel bir açıklama ile başlayacağım: birinci dereceden bilgi (yani, eğimi kodlayan degradeleri kullanmak) size sadece yönlü bilgi verebilir: Size fonksiyon değerinin arama yönünde azaldığını söyleyebilir, ancak ne kadar süreyle değil . Arama yönü boyunca ne kadar ilerleyeceğinize karar vermek için ekstra bilgiye ihtiyacınız vardır (dışbükey ikinci dereceden problemlerde bile sabit adım uzunluklu gradyan inişi başarısız olabilir). Bunun için temel olarak iki seçeneğiniz var:

  1. Kullanım ikinci dereceden bilgi Newton yöntemi yerine gradyan (kendisi için her zaman adım uzunluğunu kullanarak kullanılarak (örneğin, eğrilik kodlayan), yeterince yakın asgarileştirir için).1
  2. Deneme yanılma (tabii ki Armijo gibi uygun bir çizgi arama kullanarak demek istedim ).

Yazarken, ikinci türevlere erişiminiz yoksa ve obejctive fonksiyonunu değerlendirmek çok pahalıysa, tek umudunuz uzlaşmaktır: iyi bir aday adım uzunluğu elde etmek için yeterli yaklaşık ikinci dereceden bilgi kullanın. arama yalnızca değerlendirmeye ihtiyaç duyar (yani, gradyanızı değerlendirmek için gereken çabanın en fazla (küçük) sabit bir katı).O(1)

Bir olasılık Barzilai - Borwein basamak uzunluklarını kullanmaktır (bakınız örn. Fletcher: Barzilai-Borwein yönteminde . Uygulamalarla optimizasyon ve kontrol, 235–256, Appl. Optim., 96, Springer, New York, 2005 ). Fikir, adım boyutu hakkında bir tahmin elde etmek için eğriye arama yönü boyunca sonlu bir fark yaklaşımı kullanmaktır. Özellikle, keyfi seçin, ve ardından için :α0>0g0:=f(x0)k=0,...

  1. Takım vesk=αk1gkxk+1=xk+sk
  2. değerlendirin vegk+1=f(xk+1)yk=gk+1gk
  3. Takımαk+1=(yk)Tyk(yk)Tsk

Bu seçim (çok hızlı pratikte) kuadratik fonksiyonlar için yakınsama gösterilmiştir fakat yakınsama edilebilir değil yani fonksiyon değeri (monoton daha büyük olabilir , ancak arada bir; 10. sayfadaki Fletcher'ın belgesine bakınız). Karesel olmayan işlevler için, bunu tekdüze olmayanlarla başa çıkmak için değiştirilmesi gereken bir satır aramasıyla birleştirmeniz gerekir. Bir olasılık seçmektir (örneğin, geri izleme ile), böylece burada tipik Armijo parametresi vef(xk+1)f(xk)σk(0,αk1)

f(xkσkgk)maxmax(kM,1)jkf(xj)γσk(gk)Tgk,
γ(0,1)Mmonotonite derecesini kontrol eder (örneğin, ). Ayrıca işlev değerleri yerine degrade değerleri kullanan bir varyant da vardır, ancak durumunuzda degradeyi değerlendirmek işlevden daha pahalıdır, bu nedenle burada bir anlam ifade etmez. (Not: Elbette BB adım uzunluklarını körü körüne kabul etmeye ve şansınıza güvenmeye çalışabilirsiniz, ancak herhangi bir sağlamlığa ihtiyacınız varsa - yorumlarınızda yazdığınız gibi - bu gerçekten kötü bir fikir olacaktır.)M=10

Alternatif (ve bence çok daha iyi) bir yaklaşım, bu sonlu fark yaklaşımını zaten arama yönünün hesaplanmasında kullanmak olacaktır; buna yarı Newton yöntemi denir . Fikir, gradyan farklılıklarını kullanarak Hessian kademeli olarak bir yaklaştırılmasıdır . Örneğin, sürebilir (kimlik matrisi) ve için çözmek ve ile yukarıdaki gibi ve . (Buna Broyden güncellemesi denir2f(xk)H0=Idk=0,

(1)Hksk=gk,
Hk+1=Hk+(ykHksk)T(sk)T(sk)Tsk
ykxk+1=xk+skve pratikte nadiren kullanılır; daha iyi ama biraz daha karmaşık bir güncelleme, BFGS güncellemesidir , bunun için - ve daha fazla bilgi - Nocedal ve Wright'ın Sayısal Optimizasyon kitabına atıfta bulunuyorum .) Dezavantajı, a) bunun her adımda doğrusal bir sistemin çözülmesini gerektireceği (ancak sadece sizin durumunuzda bir başlangıç ​​koşulu olan bilinmeyenin büyüklüğünde, bu nedenle degradeyi elde etmek için PDE'leri çözerek çabaya egemen olunmalıdır; ayrıca, sadece tek bir matrisin hesaplanmasını gerektiren ters Hessian'ın yaklaşımları için güncelleme kuralları vardır. -vektör ürünü) ve b) yakınsamayı garanti etmek için hala bir satır araması yapmanız gerekir ...

Neyse ki, bu bağlamda her fonksiyon değerlendirmesini kullanan alternatif bir yaklaşım vardır. Buradaki fikir, simetrik ve pozitif kesin (BFGS güncellemesi için garanti edilen) için çözümünün, modelini en aza indirmeye eşdeğer olmasıdır. Bir güven bölgesi yönteminde , bunu ; burada uygun şekilde seçilmiş bir güven bölgesi yarıçapıdır (adım uzunluğunun rolünü oynar ). Ana fikir, bu yarıçapı hesaplanan adıma göre uyarlamalı olarak seçmektir. Özellikle, orana bakıyorsunuz Hk(1)

qk(s)=12sTHks+sTgk.
sΔkΔkσk
ρk:=f(xk)f(xk+sk)f(xk)qk(sk)
işlev değerinde gerçek ve tahmin edilen azalma. Eğer çok küçüktür, modeliniz kötüydü ve atmak ve tekrar deneyin . Eğer yakındır , modeliniz iyi ve ayarladığınız ve artış . Aksi takdirde, sadece yalnız bırakın . gerçek küçültücü değerini hesaplamak içinρkskΔk+1<Δkρk1xk+1=xk+skΔk+1>Δkxk+1=xk+skΔkskminsΔkqk(s), tam kısıtlı optimizasyon sorununu çözmek zorunda kalmamak için çeşitli stratejiler vardır; benim favorim Steihaug'un kesilmiş CG yöntemidir . Daha fazla ayrıntı için tekrar Nocedal ve Wright'a başvuruyorum.

Şimdi buna tekrar bakıyorum ve bir sorum olduğunu fark ettim. BB yöntemi için üçüncü adımda ; burada ve . ifadesindeki pay ve payda iç ürünlere benziyor. Benim durumumda, , burada önemsiz olmayan Riemann metriğine sahip bir vektör alanıdır: K. Yani, . Bu, tanımını etkiler mi? αk+1=(yk)Tyk(yk)Tskyk=gk+1gksk=αk1gkαk+1gkVVgk,gkV=gk,KgkL2αk+1
NLi10Me

Evet, önemsiz olmayan bir vektör uzay yapınız varsa, algoritmalarda buna saygı duymalısınız. Özellikle, aynı alandaki iki fonksiyonun (örn. ve ) iç ürünleri ile boşluktaki bir fonksiyon ile ikili alandaki bir fonksiyon (örn. ve ) arasındaki ikilik ürünler arasında ayrım yapmalısınız. ) - İkincisi için, önce bir iç ürüne dönüştürmek için Riesz eşlemesini eklemeniz gerekir. (Bu önkoşullama olarak yorumlanabilir.)ykykskyk
Christian Clason

Dr. Clason, ISBI 2017'ye bir difeomorfik görüntü kayıt görevi için BB + hat arama yöntemini kullanarak yaptığım bazı deneyleri detaylandıran bir makale sunacağım. Makaleye yazar olarak dahil olmak ister misiniz? Henüz yazmadım, ancak deneylerin çoğunun tamamlanmış veya devam ediyor. Lütfen bana haber ver.
NLi10Me

@ NLi10Me Nazik teklifiniz için teşekkür ederim, ancak birlikte çalışmayı hak edecek hiçbir şey yapmadım - yazdığım her şey standart ders kitabı materyali. Bu konuda güçlü bir şekilde hissediyorsanız, bana "yardımcı olan ne olursa olsun (yardımcı olan her şey)" için teşekkür edebilirsiniz, ancak bu gerekli değildir. Yazdıklarımın yararlı olduğunu bilmek yeterli!
Christian Clason

1
Üzgünüm, haklısın, bu bir yazım hatası - düzeltildi! (Armijo koşulu genellikle olarak yazılır , burada arama yönüdür - mutlaka negatif değildir degrade - ve adım boyutunu, ne olup bittiğini daha net hale getirmelidir.)f(x+σs)f(x)γf(x)T(σs)sσ
Christian Clason
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.