Quasi-Newton yöntemi - Quasi-Newton method

Quasi-Newton yöntemleri Newton yöntemine alternatif olarak sıfırları veya yerel maksimumları ve minimumları bulmak için kullanılan yöntemlerdir. Kullanılabilirlerse Jacobian veya Hessian mevcut değil veya her yinelemede hesaplanması çok pahalı. Dolu" Newton yöntemi Sıfırları aramak için Jacobian'ı veya extrema bulmak için Hessian'ı gerektirir.

Sıfır arama: kök bulma

Newton yöntemi bir fonksiyonun sıfırlarını bulmak için birden çok değişken tarafından verilir , nerede ... sol ters of Jacobian matrisi nın-nin için değerlendirildi .

Kesinlikle, Jacobian'ın yerine geçen herhangi bir yöntem bir yaklaşımla bir yarı-Newton yöntemidir.[1] Örneğin, akor yöntemi (nerede ile değiştirilir tüm yinelemeler için) basit bir örnektir. Aşağıda verilen yöntemler optimizasyon Newton benzeri yöntemlerin önemli bir alt sınıfına, sekant yöntemlerine gönderme yapar.[2]

Sıfırları bulmak için ekstremayı bulmak için geliştirilen yöntemleri kullanmak her zaman iyi bir fikir değildir, çünkü ekstremayı bulmak için kullanılan yöntemlerin çoğu kullanılan matrisin simetrik olmasını gerektirir. Bu ekstrema arayışı bağlamında geçerli olsa da, sıfırları ararken nadiren tutar. Broyden'ın "iyi" ve "kötü" yöntemleri sıfırları bulmak için de uygulanabilen, ekstremayı bulmak için yaygın olarak kullanılan iki yöntemdir. Kullanılabilecek diğer yöntemler şunlardır: sütun güncelleme yöntemi, ters sütun güncelleme yöntemi, yarı-Newton en küçük kareler yöntemi ve yarı-Newton ters en küçük kareler yöntemi.

Daha yakın zamanlarda yarı-Newton yöntemleri, çoklu bağlı denklem sistemlerinin çözümünü bulmak için uygulanmıştır (örneğin, akışkan-yapı etkileşim problemleri veya fizikte etkileşim problemleri). Küresel sistemin çözümü bulunana kadar döngüsel, yinelemeli bir şekilde her bir bileşen sistemi ayrı ayrı (küresel sistemden daha basit olan) çözerek çözümün bulunmasına izin verirler.[2][3]

Ekstrema arayın: optimizasyon

Skaler değerli bir fonksiyonun minimum veya maksimumunun aranmasının, fonksiyonun sıfırlarını aramadan başka bir şey olmadığını not ederek gradyan Bu fonksiyonun, Newton benzeri yöntemler, bir fonksiyonun ekstremma bulmak için kolayca uygulanabilir. Başka bir deyişle, eğer gradyanı , sonra vektör değerli fonksiyonun sıfırlarını arar skaler değerli fonksiyonun ekstremma aramasına karşılık gelir ; Jacobian şimdi Hessian oldu . Temel fark şudur: Hessian matrisi simetrik bir matristir Jacobian'ın aksine sıfır aramak. Optimizasyonda kullanılan yarı-Newton yöntemlerinin çoğu bu özelliği kullanır.

İçinde optimizasyon, yarı-Newton yöntemleri (özel bir durum değişken metrik yöntemler) yerel bulma algoritmalarıdır maksimum ve minimum nın-nin fonksiyonlar. Quasi-Newton yöntemleri temel alır Newton yöntemi bulmak için sabit nokta gradyan 0 olduğunda bir fonksiyonun yöntemi, fonksiyonun yerel olarak yaklaşık olarak tahmin edilebileceğini varsayar. ikinci dereceden Optimum çevresindeki bölgede ve durağan noktayı bulmak için birinci ve ikinci türevleri kullanır. Daha yüksek boyutlarda, Newton'un yöntemi degradeyi ve Hessen matrisi saniyenin türevler en aza indirilecek işlevin.

Yarı-Newton yöntemlerinde, Hessian matrisinin hesaplanmasına gerek yoktur. Hessian, bunun yerine ardışık gradyan vektörleri analiz edilerek güncellenir. Yarı-Newton yöntemleri, sekant yöntemi çok boyutlu problemler için birinci türevin kökünü bulmak. Birden çok boyutta sekant denklemi az belirlenmiş ve yarı-Newton yöntemleri, tipik olarak Hessian'ın mevcut tahminine basit bir düşük sıralı güncelleme ekleyerek çözümü nasıl kısıtladıklarında farklılık gösterir.

İlk yarı-Newton algoritması tarafından önerildi William C. Davidon, çalışan bir fizikçi Argonne Ulusal Laboratuvarı. İlk yarı-Newton algoritmasını 1959'da geliştirdi: DFP güncelleme formülü, daha sonra 1963'te Fletcher ve Powell tarafından popüler hale getirilen, ancak bugün nadiren kullanılmaktadır. En yaygın yarı-Newton algoritmaları şu anda SR1 formülü ("simetrik sıra bir" için), BHHH yöntem, yaygın BFGS yöntemi (1970'te Broyden, Fletcher, Goldfarb ve Shanno tarafından bağımsız olarak önerildi) ve düşük bellek uzantısı L-BFGS. Broyden'ın sınıfı, DFP ve BFGS yöntemlerinin doğrusal bir kombinasyonudur.

SR1 formülü, güncelleme matrisinin korunacağını garanti etmez. pozitif kesinlik ve belirsiz problemler için kullanılabilir. Broyden yöntemi güncelleme matrisinin simetrik olmasını gerektirmez ve genel bir denklem sisteminin kökünü (gradyan yerine) bulmak için kullanılır. Jacobian (Hessian yerine).

Yarı-Newton yöntemlerinin başlıca avantajlarından biri Newton yöntemi bu mu Hessen matrisi (veya yarı-Newton yöntemleri söz konusu olduğunda, yaklaşımı) ters çevrilmesine gerek yoktur. Newton yöntemi ve türevleri iç nokta yöntemleri, Hessian'ın ters çevrilmesini gerektirir, bu genellikle bir çözülerek gerçekleştirilir. doğrusal denklem sistemi ve genellikle oldukça maliyetlidir. Buna karşılık, yarı-Newton yöntemleri genellikle bir tahmin üretir direkt olarak.

De olduğu gibi Newton yöntemi biri, bir fonksiyonun minimumunu bulmak için ikinci dereceden bir yaklaşım kullanır . Taylor serisi nın-nin bir yineleme etrafında

nerede () gradyan, ve bir yaklaşım Hessen matrisi[4]. Bu yaklaşımın gradyanı ( ) dır-dir

ve bu gradyanı sıfıra ayarlamak (optimizasyonun amacıdır), Newton adımını sağlar:

Hessen yaklaşımı tatmin etmek için seçildi

buna denir sekant denklem (degradenin Taylor serisi). Birden fazla boyutta dır-dir az belirlenmiş. Tek boyutta ve Newton adımını güncellenmiş değerle uygulamak, sekant yöntemi. Çeşitli yarı-Newton yöntemleri, sekant denkleminin çözüm seçiminde farklılık gösterir (bir boyutta, tüm varyantlar eşdeğerdir). Çoğu yöntem (ancak istisnalar dışında, örneğin Broyden yöntemi ) simetrik bir çözüm aramak (); ayrıca, aşağıda listelenen varyantlar bir güncelleme bularak motive edilebilir mümkün olduğu kadar yakın bazılarında norm; yani, , nerede biraz pozitif tanımlı matris normu tanımlayan. Yaklaşık bir başlangıç ​​değeri hızlı yakınsama elde etmek için genellikle yeterlidir, ancak seçilecek genel bir strateji olmamasına rağmen [5]. Bunu not et pozitif tanımlı olmalıdır. Bilinmeyen o anki yaklaşık Hessian matrisi kullanılarak hesaplanan Newton adımını uygulayarak güncellenir :

  • , ile tatmin etmek için seçilmiş Wolfe koşulları;
  • ;
  • Yeni noktada hesaplanan gradyan , ve

yaklaşık Hessian'ı güncellemek için kullanılır veya doğrudan tersi kullanmak Sherman-Morrison formülü.

  • BFGS ve DFP güncellemelerinin önemli bir özelliği, pozitif tanımlıdır ve Wolfe koşullarını karşılamak için seçilirse aynı zamanda pozitif-tanımlıdır.

En popüler güncelleme formülleri şunlardır:

Yöntem
BFGS
Broyden
Broyden ailesi
DFP
SR1

Diğer yöntemler, Pearson yöntemi, McCormick'in yöntemi, Powell simetrik Broyden (PSB) yöntemi ve Greenstadt'ın yöntemidir.[2]

Matris ters çevirme ilişkisi

Ne zaman pozitif tanımlı Hessian ile dışbükey ikinci dereceden bir fonksiyondur matrisler beklenir ters Hessian'a yakınsamak için bir yarı-Newton yöntemi ile üretilir . Bu gerçekten de en az değişiklik güncellemelerine dayanan yarı-Newton yöntemleri sınıfı için geçerlidir.[6]

Önemli uygulamalar

Yarı-Newton yöntemlerinin uygulamaları birçok programlama dilinde mevcuttur. Önemli uygulamalar şunları içerir:

  • GNU Oktav bir BFGS biçimi kullanır fsolve işlevi ile güven bölgesi uzantılar.
  • Mathematica yarı-Newton çözücüleri içerir.[7]
  • NAG Kitaplığı birkaç rutin içerir[8] bir işlevi küçültmek veya büyütmek için[9] yarı-Newton algoritmaları kullanan.
  • MATLAB'larda Optimizasyon Araç Kutusu, fminunc işlev kullanır (diğer yöntemlerin yanı sıra) BFGS yarı-Newton yöntemi.[10] Optimizasyon araç kutusunun kısıtlı yöntemlerinin çoğu, BFGS ve varyant L-BFGS.[11]
  • R 's iyileştirmek genel amaçlı optimize edici rutini, BFGS kullanarak yöntem method = "BFGS".[12]
  • Scipy.optimize fmin_bfgs'e sahiptir. İçinde SciPy uzantısı Python, scipy.optimize.minimize işlev, diğer yöntemlerin yanı sıra, bir BFGS uygulama.[13]

Ayrıca bakınız

Referanslar

  1. ^ Broyden, C.G. (1972). "Yarı-Newton Yöntemleri". Murray, W. (ed.). Kısıtlamasız Optimizasyon için Sayısal Yöntemler. Londra: Akademik Basın. sayfa 87–106. ISBN  0-12-512250-0.
  2. ^ a b c Haelterman, Rob (2009). "Etkileşim problemleri için En Küçük Kareler Yarı-Newton yönteminin analitik çalışması". Doktora Tezi, Ghent Üniversitesi. Alındı 2014-08-14.
  3. ^ Rob Haelterman, Dirk Van Eester, Daan Verleyen (2015). "(Ters) Sütun Güncelleme Yöntemini kullanarak bir tokamak içindeki bir fizik modelinin çözümünü hızlandırmak". Hesaplamalı ve Uygulamalı Matematik Dergisi. 279: 133–144. doi:10.1016 / j.cam.2014.11.005.CS1 Maint: yazar parametresini kullanır (bağlantı)
  4. ^ https://mathinsight.org/taylors_theorem_multivariable_introduction
  5. ^ Nocedal, Jorge; Wright, Stephen J. (2006). Sayısal Optimizasyon. New York: Springer. pp.142. ISBN  0-387-98793-2.
  6. ^ Robert Mansel Gower; Peter Richtarik (2015). "Randomize Yarı-Newton Güncellemeleri Doğrusal Yakınsak Matris Ters Çevirme Algoritmalarıdır". arXiv:1602.01768 [math.NA ].
  7. ^ http://reference.wolfram.com/mathematica/tutorial/UnconstrainedOptimizationQuasiNewtonMethods.html
  8. ^ Sayısal Algoritmalar Grubu. "Anahtar Kelime Dizini: Quasi-Newton". NAG Kitaplığı Kılavuzu, Mark 23. Alındı 2012-02-09.
  9. ^ Sayısal Algoritmalar Grubu. "E04 - Bir İşlevi Küçültme veya Büyütme" (PDF). NAG Kitaplığı Kılavuzu, Mark 23. Alındı 2012-02-09.
  10. ^ http://www.mathworks.com/help/toolbox/optim/ug/fminunc.html
  11. ^ http://www.mathworks.com/help/toolbox/optim/ug/brnoxzl.html
  12. ^ [1]
  13. ^ http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html

daha fazla okuma