Degrade inişte sabit adım boyutunu kullanırken adımlarım neden küçülüyor?


9

Degrade düzgün bir oyuncak örneği yaptığımızı varsayalım , sabit adım boyutu kullanarak ikinci dereceden işlevini en aza . ( )xTAxα=0.03A=[10,2;2,3]

Her bir yinelemede izini çizersek, aşağıdaki rakamı elde ederiz. Sabit adım boyutu kullandığımızda neden noktalar "daha yoğun" oluyor ? Sezgisel olarak, sabit bir adım boyutuna değil, azalan adım boyutuna benziyor.x

resim açıklamasını buraya girin


Not: R Kodu grafik içerir.

A=rbind(c(10,2),c(2,3))
f <-function(x){
  v=t(x) %*% A %*% x
  as.numeric(v)
}
gr <-function(x){
  v = 2* A %*% x
  as.numeric(v)
}

x1=seq(-2,2,0.02)
x2=seq(-2,2,0.02)
df=expand.grid(x1=x1,x2=x2)
contour(x1,x2,matrix(apply(df, 1, f),ncol=sqrt(nrow(df))), labcex = 1.5, 
        levels=c(1,3,5,10,20,40))
grid()

opt_v=0
alpha=3e-2
x_trace=c(-2,-2)
x=c(-2,-2)
while(abs(f(x)-opt_v)>1e-6){
  x=x-alpha*gr(x)
  x_trace=rbind(x_trace,x)
}
points(x_trace, type='b', pch= ".", lwd=3, col="red")
text(x_trace, as.character(1:nrow(x_trace)), col="red")

Kodunuz açıklamanızla eşleşmiyor: alpha=3e-2yerine0.01.
whuber

Yanıtlar:


12

İzin Vermek f(x)=12xTAx nerede Asimetrik ve pozitif olarak tanımlanmıştır (bence bu varsayım örneğinize göre güvenlidir). Sonraf(x)=Ax ve köşegenleştirebiliriz A gibi A=QΛQT. Temel değişikliğini kullanıny=STx. Sonra elimizde

f(y)=12yTΛyf(y)=Λy.

Λ çapraz olduğundan güncellemelerimizi

y(n+1)=y(n)-αΛy(n)=(ben-αΛ)y(n)=(ben-αΛ)n+1y(0).

Bunun anlamı şudur ki 1-αλben yakınsamayı yönetirsek, ancak yakınsama |1-αλben|<1. Senin durumunda

Λ(10.5002.5)
yani
ben-αΛ(0.89000.98).

Özdeğerli özvektöre karşılık gelen yönde nispeten hızlı bir şekilde yakınsak oluruz λ10.5 yinelemelerin paraboloidin daha dik kısmına nasıl hızlı bir şekilde indiği ile görüldüğü gibi, yakınsama daha küçük özdeğer ile özvektör yönünde yavaştır çünkü 0.98 çok yakın 1. Yani öğrenme oranıα sabittir, bu yöndeki adımların gerçek büyüklükleri yaklaşık olarak (0.98)nyavaşlar ve yavaşlar. Bu yöndeki ilerlemedeki bu üstel görünümlü yavaşlamanın nedeni budur (her iki yönde de olur, ancak diğer yön fark etmeyecek veya umursamayacağımız kadar yakında kapanır). Bu durumda yakınsama çok daha hızlı olurduα arttırıldı.

Bunun çok daha iyi ve daha kapsamlı bir tartışması için, https://distill.pub/2017/momentum/ ' ı önemle tavsiye ederim .


ayrıntılı cevap ve büyük referans için teşekkürler !. temelini değiştirmekybana gerçekten yardımcı oldu.
Haitao Du

11

Düzgün bir işlev için, f=0 yerel minima.

Çünkü güncelleme şemanız αf, büyüklük |f|adım boyutunu kontrol eder. İkinci dereceden durumunda|Δf|0(sadece sizin durumunuzdaki kuadratik kendir'i de hesaplayın). Bunun her zaman doğru olması gerekmediğini unutmayın. Örneğin, aynı şemayı deneyin:f(x)=x. O zaman adım büyüklüğünüz her zamanαdolayısıyla asla azalmayacaktır. Veya daha ilginç olarak,f(x,y)=x+y2, burada degrade y koordinatında 0'a gider, ancak xkoordinat. Kuadratik metodoloji için Chaconne'nin cevabına bakınız.

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.