Gradyan inişi, türevlenebilir bir fonksiyonu yerel olarak en hızlı azaltan yönde tekrar tekrar adım atarak en aza indiren bir algoritmadır. "Gradient descent nedir?" diye arıyorsanız, temel fikir basittir: eğimi hesapla, biraz aşağı in ve tekrarla.

Bu yöntem, kalkülüse dayalı optimizasyonda ve makine öğrenmesinde yaygın olarak kullanılır. Yöntem, bir türev veya gradyan hesaplayabildiğiniz ve kararlı kalacak kadar küçük ama ilerleme sağlayacak kadar büyük bir öğrenme oranı seçebildiğiniz durumlarda en iyi sonucu verir.

Tek değişkende güncelleme kuralı şöyledir:

xk+1=xkηf(xk),x_{k+1} = x_k - \eta f'(x_k),

çok değişkende ise şu hale gelir:

xk+1=xkηf(xk),\mathbf{x}_{k+1} = \mathbf{x}_k - \eta \nabla f(\mathbf{x}_k),

burada η>0\eta > 0 öğrenme oranıdır. Öğrenme oranı, her adımın ne kadar ilerleyeceğini belirler; bu yüzden algoritmanın yakınsayıp yakınsamayacağını, duraksayıp duraksamayacağını veya minimumu aşıp aşmayacağını doğrudan etkiler.

Gradyan İnişi Sezgisi

Gradyan yukarı yönü gösterir. Amacınız minimizasyon ise, doğal yerel hareket bunun ters yönüne gitmektir.

Bu yerel kural, her problemde mümkün olan en iyi cevabı garanti etmez. Konveks bir fonksiyonda gradyan inişi global minimuma götürebilir. Konveks olmayan bir fonksiyonda ise yerel bir minimumda, düz bir bölgede veya başka bir durağan noktada kalabilir.

Gradyan İnişi Algoritması Nasıl Çalışır?

Her iterasyon mevcut eğim bilgisini kullanır, noktayı günceller ve devam edip etmemesi gerektiğini kontrol eder.

  1. Başlangıç tahmini olarak x0x_0 veya x0\mathbf{x}_0 seçin.
  2. Mevcut noktadaki türevi veya gradyanı hesaplayın.
  3. Bu türev veya gradyanın η\eta katını çıkararak güncelleyin.
  4. Gradyan küçük olduğunda, güncellemeler çok küçüldüğünde veya önceden belirlenmiş iterasyon sınırına ulaşıldığında durun.

Standart güncelleme kuralı, amaç fonksiyonunun uygulandığı noktalarda türevlenebilir olduğunu varsayar. Bazı optimizasyon yöntemleri düzgün olmayan problemler için altgradyan kullanır, ancak bu farklı bir kurulumdur.

Gradyan İnişinde Öğrenme Oranı Neden Önemlidir?

Öğrenme oranı η\eta, adım büyüklüğüdür.

η\eta çok küçükse, gradyan inişi genellikle doğru yönde ilerler ama çok yavaş olabilir. η\eta çok büyükse, güncellemeler minimumu aşabilir, ileri geri sıçrayabilir veya hatta ıraksayabilir.

Bu dengeyi ikinci dereceden bir fonksiyonda açıkça görebilirsiniz; çünkü minimumdan uzaklaştıkça eğim daha dik hale gelir. Bir noktada güvenli görünen bir adım büyüklüğü, başka bir noktada fazla agresif olabilir.

Çözümlü Örnek: İkinci Dereceden Bir Fonksiyonda Gradyan İnişi

Şunu ele alalım:

f(x)=(x3)2.f(x) = (x-3)^2.

Bu fonksiyon minimumunu x=3x=3 noktasında alır. Türevi şöyledir:

f(x)=2(x3).f'(x) = 2(x-3).

Öğrenme oranı η=0.1\eta = 0.1 ve başlangıç noktası x0=0x_0 = 0 ile gradyan inişini uygulayın.

Bu durumda güncelleme kuralı şöyledir:

xk+1=xk0.12(xk3)=xk0.2(xk3).x_{k+1} = x_k - 0.1 \cdot 2(x_k-3) = x_k - 0.2(x_k-3).

x0=0x_0 = 0 ile başlarsak:

x1=00.2(03)=0.6.x_1 = 0 - 0.2(0-3) = 0.6.

Sonra

x2=0.60.2(0.63)=1.08.x_2 = 0.6 - 0.2(0.6-3) = 1.08.

ve

x3=1.080.2(1.083)=1.464.x_3 = 1.08 - 0.2(1.08-3) = 1.464.

Her adım 33 değerine biraz daha yaklaşır ve fonksiyon değeri her seferinde azalır. Burada fark edilmesi gereken ana örüntü şudur: gradyan inişi cevaba tek sıçrayışta ulaşmaz. Tahmini, tekrarlanan yerel düzeltmelerle iyileştirir.

Yaygın Gradyan İnişi Varyantları

Batch Gradient Descent

Batch gradient descent, her güncellemeyi hesaplamak için tüm veri kümesini kullanır. Sabit bir amaç fonksiyonu için bu, deterministik bir adım verir; ancak veri kümesi büyük olduğunda maliyetli olabilir.

Stochastic Gradient Descent

Stochastic gradient descent, her seferinde tek bir örnek kullanarak güncelleme yapar. Her adım daha ucuzdur ama daha gürültülüdür. Bu gürültü yöntemin hareket etmeye devam etmesine yardımcı olabilir, ancak izlenen yolu daha az pürüzsüz hale getirir.

Mini-Batch Gradient Descent

Mini-batch gradient descent, her adımda küçük bir örnek grubu kullanır. Bu, saf stokastik güncellemelere göre gürültüyü azaltırken tam batch güncellemelerden çok daha ucuz kaldığı için çoğu zaman pratik bir uzlaşmadır.

Bu varyantlar en çok, amaç fonksiyonunun çoğu zaman çok sayıda eğitim örneği üzerindeki ortalama kayıp olduğu makine öğrenmesinde önem kazanır.

Gradyan İnişinde Yaygın Hatalar

Öğrenme Oranını Önemsiz Görmek

η\eta değerini değiştirmek, algoritmanın davranışını da değiştirir. Bir öğrenme oranında yakınsayan bir yöntem, başka bir öğrenme oranında başarısız olabilir.

Gradyan İnişinin Her Zaman Global Minimumu Bulduğunu Varsaymak

Bu sonucun geçerli olması için bazı koşullar gerekir. Örneğin konvekslik, genel bir konveks olmayan yapıya göre çok daha güçlü garantiler sağlar.

Uygulamalı Problemlerde Özellik Ölçeğini Göz Ardı Etmek

Kötü ölçeklenmiş değişkenlere sahip optimizasyon problemlerinde bir yön, diğerine göre çok daha hızlı değişebilir. Bu durumda problem yeniden formüle edilmez veya daha dikkatli ölçeklenmezse gradyan inişi zikzak çizerek yavaş yakınsayabilir.

Sadece Gradyan Tam Olarak Sıfır Değil Diye Durmak

Sayısal algoritmalar nadiren kusursuz bir sıfırı bekler. Pratik durdurma kuralları genellikle gradyan normunun, parametre değişiminin veya amaç fonksiyonundaki değişimin yeterince küçük olup olmadığını kontrol eder.

Gradyan İnişi Ne Zaman Kullanılır?

Gradyan inişi, sayısal optimizasyon, istatistik ve makine öğrenmesinde kullanılır. Özellikle kapalı formda tam bir çözüm olmadığında veya böyle bir çözümü doğrudan hesaplamak çok maliyetli olduğunda yaygındır.

Küçük ve basit formüllü problemlerde kalkülüs minimumu tam olarak verebilir. Parametre uzayı büyük olduğunda, amaç fonksiyonunda çok sayıda değişken bulunduğunda veya kayıp büyük veri kümelerinden geldiğinde gradyan inişi daha kullanışlı hale gelir.

Benzer Bir Problem Deneyin

f(x)=(x5)2f(x) = (x-5)^2 ve başlangıç noktası x0=12x_0 = 12 ile kendi sürümünüzü deneyin. Bir durumu η=0.1\eta = 0.1, diğerini ise η=1.2\eta = 1.2 ile çalıştırın. Biri kararlı, diğeri kararsız olan iki çalışmayı görmek, öğrenme oranının rolünü yalnızca formülden çok daha net gösterir.

Bir soruyla yardıma mı ihtiyacın var?

Sorunuzu yükleyin ve saniyeler içinde doğrulanmış adım adım çözüm alın.

GPAI Solver Aç →