Normalleştirilmiş degrade ve degrade kullanımındaki fark


15

Degrade iniş algoritmasının genel ayarında, burada geçerli nokta, adım boyutu ve degrade değerlendirildi . x n η g r a d i e n t x n x nxn+1=xnηgradientxnxnηgradientxnxn

Bazı algoritmada gördük, insanlar kullanır normalize gradyan yerine gradyan . Normalleştirilmiş gradyan ve basit gradyan kullanımındaki farkın ne olduğunu bilmek istedim .


1
Bir soru sorabilir miyim? Degrade vektörünü zaten almışsam normalleştirilmiş degradeyi nasıl hesaplayabilirim? Degrade vektör sayısal büyükse, degradeyi normalleştirmem gerekir. Gradyanı normalleştirme hakkında bazı sezgisel örnekler verebilir misiniz? Teşekkür ederim!

Yanıtlar:


12

Degrade iniş algoritmasında algoritma, en uygun çözümü bulabileceğiniz bir yön bularak ilerler. Optimal yön, gradyan olarak ortaya çıkıyor. Bununla birlikte, sadece yön ile ilgilendiğimiz ve bu yön boyunca ne kadar ilerlediğimiz gerekmediği için, genellikle eğimin büyüklüğü ile ilgilenmiyoruz. Böylece, normalize degrade amacımıza yeterince iyi olduğunu ve izinηhesaplanan yönde ne kadar ilerlemek istediğimizi dikte eder. Ancak, normalleştirilmemiş degrade iniş kullanırsanız, herhangi bir noktada, en uygun yönde hareket ettiğiniz mesafe, degradenin büyüklüğüne göre belirlenir (özünde objektif fonksiyonun yüzeyi tarafından dikte edilir, yani dik bir yüzeydeki bir nokta oldukça düz yüzeydeki bir nokta düşük büyüklüğe sahip olacaktır).

Yukarıdan, gradyanın normalleştirilmesinin elde ettiğiniz ek bir kontrol gücü olduğunu fark etmiş olabilirsiniz (kullanışlı olup olmadığı özel uygulamanıza göre bir şeydir). Yukarıda
bahsettiğim şey şudur: 1] Algoritmanızın her yinelemede sabit adım boyutlarında hareket etmesini sağlamak istiyorsanız, sabit ile normalleştirilmiş degrade iniş kullanmak isteyebilirsiniz . 2] Algoritmanızın tam olarak sizin belirlediğiniz adım boyutlarında hareket etmesini sağlamak istiyorsanız, kodlanmış adım boyutu için yine özel işlevinizle normalleştirilmiş gradyan inişini kullanmak isteyebilirsiniz .ηη
η
3] Degradenin büyüklüğünün adım boyutunu belirlemesine izin vermek istiyorsanız, normalleştirilmemiş degrade inişini kullanırsınız. Degradenin büyüklüğünün adım boyutuna karar vermesine izin verebileceğiniz gibi başka varyantlar da vardır, ancak üzerine bir kapak koyabilirsiniz vb.

Şimdi, adım boyutu açıkça yakınsama ve istikrar hızı üzerinde etkiye sahiptir. Yukarıdaki adım boyutlarından hangisinin en iyi şekilde çalıştığı yalnızca uygulamanıza (yani nesnel işlev) bağlıdır. Bazı durumlarda yakınsama hızı, kararlılık ve basamak boyutu arasındaki ilişki analiz edilebilir. Bu ilişki daha sonra normalize edilmiş veya normalleştirilmemiş gradyan inişiyle gitmek isteyip istemediğinize dair bir ipucu verebilir.

Özetlemek gerekirse, normalize edilmiş ve normalleştirilmemiş gradyan inişi arasında bir fark yoktur (algoritmanın arkasındaki teori kadar). Bununla birlikte, yakınsama ve kararlılık hızı üzerinde pratik etkiye sahiptir. Birinin diğerinin seçimi tamamen eldeki uygulamaya / amaca bağlıdır.


Örneğin, ilk eğime göre normalleştirdiğiniz bir ara yaklaşım kullanabilirsiniz. Bu yine de göreceli gradyan boyutunu adım boyutu açısından önemli hale getirecektir.
Ocak'ta dashnick

2

Asıl önemli olan nasıl seçildiğidir. Adım boyutu, eğimin katının uzunluğu aynı olacak şekilde seçilirse, normalleştirilmiş degradeyi mi yoksa normalleştirilmemiş degradeyi mi kullanmanız önemli değildir . ηηη


2

Hangi yöntemin daha hızlı yakınsaması özel hedefinize bağlı olacaktır ve genellikle normalleştirilmiş gradyanı kullanıyorum. Bunu neden yapmak isteyebileceğinize iyi bir örnek basit bir ikinci dereceden: . Bu durumda, belirli bir degrade iniş yörüngesini tanımlayan ODE (adım boyutları sıfıra yaklaştıkça) analitik olarak belirlenebilir:y ( t ) = x 0 / | | x 0 | | e - tf(x)=xTxy(t)=x0/||x0||et. Böylece, kritik noktaya yaklaştıkça degradenin normu katlanarak hızlı bir şekilde azalır. Bu gibi durumlarda, min. Birkaç kez ileri geri zıplamak çok yavaş yaklaşmaktan daha iyidir. Genel olarak, birinci dereceden yöntemlerin kritik noktalar etrafında çok yavaş bir yakınsamaya sahip olduğu bilinmektedir, bu nedenle doğrulukla gerçekten ilgileniyorsanız bunları kullanmamanız gerekir. Hessian'ı hedefinizin analitik olarak hesaplayamıyorsanız, yine de yaklaşık olarak (BFGS) tahmin edebilirsiniz.

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.