Gradyan İnişi

derin öğrenme
matematik
degrade iniş
Gradyan İnişi cover image

Giriiş

$f(x)$ fonksiyonumuz olduğunu ve onun minimumunu bulmak istediğimizi düşünün. Ne yapardın?

Basit değil mi? Sadece aşağıdaki denklemi çözmemiz gerekiyor:

$$f'(x) = 0$$

Mesele şu ki, $f'$ formülünü bulmak her zaman kolay değildir, çünkü bunlar özellikle karmaşık işlevlerle uğraştığımız derin öğrenmede son derece karmaşık olma eğilimindedir. Dolayısıyla $f'$ türevinin formülünü bulmamıza gerek kalmadan bize bir fonksiyonun minimumunu sağlayabilecek başka bir yöntem bulmamız gerekiyor.

Biraz sezgi geliştirelim

Diyelim ki, ilgili grafiği olan bir f fonksiyonumuz var:

Graph 1

Rastgele bir $x_{0}$ noktasıyla başlayalım. Amaç, bu noktayı hareket ettirip $f'($x*$) = 0$ olacak şekilde $x*$'a giderek yaklaştırmaktır. Dolayısıyla sorun iki kısma ayrılabilir:

  • $x$ noktasını hangi yöne hareket ettirmeliyiz? Sol mu Sağ mı?

  • Ne kadar hareket ettirmeliyiz?

Yön

İlk soruyu cevaplamak için biraz sezgi geliştirelim. Aşağıdaki noktaya bir göz atın:

Graph 2

Graph 3

Dikkat:

  • $x_{0}$ noktası en uygun $x*$ noktasının sağında olduğunda teğet çizgisi yukarı çıkar.

  • $x_{0}$ noktası en uygun $x*$ noktasının sağında olduğunda teğet çizgisi aşağı iner.

Bir doğrunun yönü eğiminin işaretiyle belirlenir:

  • Bir doğru $\imali$ yukarıya doğru gidiyor, $a$ eğimi pozitif.

  • Bir doğru aşağı iniyor $\imali$, eğim $a$ negatif.

Şunu unutmayın: \

Bir fonksiyonun belirli bir $x_{0}$ noktasındaki teğet çizgisinin eğimi, o $f'(x_{0})$ noktasındaki türevden fazla değildir:

$$ tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0}) $$

"$x_{0}$'ı nereye taşımalıyız?" sorusuna yanıt olarak:

  • $f'(x_{0}) < 0$ $\implies$ $x_{0}$ $x*$'ın sağına $\implies$ $x_{0}$'ı sola taşımamız gerekiyor.

  • $f'(x_{0}) > 0$ $\implies$ $x_{0}$ $x*$'ın soluna $\implies$ $x_{0}$'ı sağa taşımamız gerekiyor.

Adımlar

Şimdi ikinci soruya gelelim: $x_{0}$'ı ne kadar taşımalıyız?

Aşağıdaki örneklere bir göz atın:

Graph 4

Graph 5

Şu sonuca varabiliriz:

  • $x_{0}$, $x*$'a yakındır => Teğetin eğimi küçüktür => $f'(x_{0})$ küçüktür.

  • $x_{0}$, $x*$'dan uzak => Teğetin eğimi büyük => $f'(x_{0})$ büyük.

Her iki soruyu da yanıtlayarak, yalnızca $x_{0}$ noktasındaki türev bilgisinin bize en uygun $x_{0}$ noktasının yönü ve uzaklığı hakkında birçok fikir verebileceği sonucuna vardık.

Gradyan iniş

Kademeli iniş, önceki iki sorunun yanıtlarının formülasyonudur. Bu, $x_{0}$ rastgele bir başlangıç ​​noktasından başlayarak fonksiyonun minimum $x*$ değerine yaklaşan yinelemeli bir optimizasyon algoritmasıdır. Algoritma şu şekilde ifade ediliyor:

$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$

Neresi:

  • $ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $, $f$'nin $x*{n}$ noktasındaki türevinden fazla değildir.

  • $lr$ adımların ne kadar büyük olacağını belirleyen pozitif bir sabittir.

Şuna dikkat edin:

  • $x_{n}$, $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+'nın sağındadır 1} = x_{n} - pozitif $ => $x_{n}$ sola doğru hareket eder.

  • $x_{n}$, $x*$'ın solundadır => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + pozitif $ => $x_{n}$ sağa doğru hareket eder.

  • $x_{n}$ $x*$'a yakın => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ $0$'a yakın => $x_{'ye küçük güncelleme n}$.

Test

  • Degrade iniş yinelemeyi ne zaman durdurur:

  • $x_{n}$ yeterince küçük olduğunda.

  • $x_{n}$ $x_{0}$ değerine yakın olduğunda.

  • $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $ olduğunda. XXX

  • $x_{0}$'ı nasıl seçeriz:

  • Rastgele seçiyoruz. XXX

  • $x{n}$ civarında alıyoruz.

  • Soruna bağlı.

  • Neden degrade inişe ihtiyacımız var:

  • Çünkü bilgisayarlar türevleri hesaplayacak kadar güçlü değil.

  • Çünkü derin öğrenme modellerinin türev formüllerini bulmak son derece zordur. XXX

  • Çünkü fonksiyonların birden fazla yerel minimumu vardır.


Career Services background pattern

Kariyer Hizmetleri

Contact Section background image

İletişimde kalalım

Code Labs Academy © 2024 Her hakkı saklıdır.