Sözlük

Stokastik Gradyan İnişi (SGD)

Stochastic Gradient Descent'in makine öğrenimi modellerini nasıl optimize ederek büyük veri kümeleri ve derin öğrenme görevleri için verimli eğitim sağladığını keşfedin.

YOLO modellerini Ultralytics HUB ile basitçe
eğitin

Daha fazla bilgi edinin

Genellikle SGD olarak bilinen Stokastik Gradyan İnişi, Makine Öğreniminde (ML) ve özellikle Derin Öğrenmede (DL) yaygın olarak kullanılan popüler ve verimli bir optimizasyon algoritmasıdır. Standart Gradyan İnişi algoritmasının bir varyasyonu olarak hizmet eder, ancak çok büyük veri kümeleriyle uğraşırken hız ve verimlilik için özel olarak tasarlanmıştır. Her adımda tüm veri kümesini kullanarak gradyanı (kayıp fonksiyonu için en dik iniş yönü) hesaplamak yerine SGD, tek, rastgele seçilmiş bir veri örneğine veya mini parti adı verilen küçük bir alt kümeye dayalı olarak gradyana yaklaşır. Bu yaklaşım, hesaplama maliyetini ve bellek gereksinimlerini önemli ölçüde azaltarak bilgisayarla görme gibi alanlarda bulunan büyük miktarda veri üzerinde karmaşık modellerin eğitilmesini mümkün kılar.

Makine Öğreniminde Uygunluk

SGD, büyük ölçekli makine öğrenimi modellerinin, özellikle de birçok modern yapay zeka uygulamasına güç veren karmaşık Sinir Ağlarının (NN) eğitimi için bir köşe taşıdır. Verimliliği, belleğe sığmayacak kadar büyük veya geleneksel Batch Gradient Descent kullanılarak işlenmesi çok uzun sürecek veri kümeleriyle çalışırken vazgeçilmez olmasını sağlar. Gibi modeller Ultralytics YOLO genellikle nesne algılama, görüntü sınıflandırma ve görüntü segmentasyonu gibi görevlere yönelik örüntüleri öğrenmek için eğitim sürecinde SGD veya varyantlarını kullanır. Aşağıdakiler gibi başlıca derin öğrenme çerçeveleri PyTorch ve TensorFlow SGD'nin sağlam uygulamalarını sağlayarak yapay zeka ekosistemindeki temel rolünü vurgulamaktadır.

Anahtar Kavramlar

SGD'yi anlamak birkaç temel fikri içerir:

  • Kayıp Fonksiyonu: Modelin tahminlerinin gerçek hedef değerlerle ne kadar iyi eşleştiğinin bir ölçüsü. SGD bu fonksiyonu en aza indirmeyi amaçlar.
  • Öğrenme Oranı: Her parametre güncellemesi sırasında atılan adım boyutunu kontrol eden bir hiperparametre. Etkili bir eğitim için iyi bir öğrenme oranı bulmak çok önemlidir. Öğrenme oranı çizelgeleri genellikle eğitim sırasında bunu ayarlamak için kullanılır.
  • Yığın Boyutu: Gradyanı tahmin etmek için bir iterasyonda kullanılan eğitim örneklerinin sayısı. Saf SGD'de yığın boyutu 1'dir. Küçük alt kümeler kullanıldığında, genellikle Mini-batch Gradient Descent olarak adlandırılır.
  • Eğitim Verisi: Modeli eğitmek için kullanılan veri kümesi. SGD bu verileri örnek örnek veya mini gruplar halinde işler. Yüksek kaliteli veri esastır ve genellikle dikkatli veri toplama ve açıklama gerektirir.
  • Gradyan: Kayıp fonksiyonundaki en dik artışın yönünü gösteren bir vektör. SGD, parametreleri bir örnekten veya mini partiden hesaplanan gradyanın ters yönünde hareket ettirir.
  • Dönem: Tüm eğitim veri kümesinden bir tam geçiş. Eğitim tipik olarak birden fazla epok içerir.

İlgili Kavramlardan Farklılıkları

SGD, çeşitli optimizasyon algoritmalarından biridir ve onu diğerlerinden ayırmak önemlidir:

  • Toplu Gradyan İnişi (BGD): Her adımda tüm eğitim veri kümesini kullanarak gradyanı hesaplar. Bu, doğru bir gradyan tahmini sağlar ancak büyük veri kümeleri için hesaplama açısından pahalı ve bellek yoğundur. SGD'nin gürültülü güncellemelerine kıyasla daha yumuşak bir yakınsama yolu sağlar.
  • Mini yığın Gradyan İnişi: BGD ve SGD arasında bir uzlaşmadır. Verilerin küçük, rastgele bir alt kümesini (mini parti) kullanarak gradyanı hesaplar. Bu, BGD'nin doğruluğunu SGD'nin verimliliği ile dengeler ve pratikte en yaygın yaklaşımdır. Performans, yığın boyutuna bağlı olabilir.
  • Adam Optimize Edici: Farklı parametreler için bireysel uyarlanabilir öğrenme oranlarını hesaplayan uyarlanabilir bir öğrenme oranı optimizasyon algoritması. Genellikle standart SGD'den daha hızlı yakınsar ancak "The Marginal Value of Adaptive Gradient Methods in Machine Learning" gibi araştırmalarda tartışıldığı gibi bazen daha az etkili genelleme yapabilir. Bunların ötesinde birçok Gradyan İnişi varyantı mevcuttur.

Gerçek Dünya Uygulamaları

SGD'nin verimliliği, çok sayıda büyük ölçekli yapay zeka uygulamasında kullanılmasını sağlar:

Örnek 1: Büyük Dil Modellerinin (LLM'ler) Eğitimi

Doğal Dil İşleme'de (NLP) kullanılanlar gibi modellerin eğitimi genellikle devasa metin veri kümelerini (milyarlarca kelime) içerir. SGD ve varyantları (Adam gibi) bu verileri verimli bir şekilde yinelemek için gereklidir ve GPT-4 gibi modellere veya Hugging Face dilbilgisi, bağlam ve anlambilim öğrenmek için. Stokastik yapı, karmaşık kayıp ortamında zayıf yerel minimumlardan kaçmaya yardımcı olur.

Örnek 2: Gerçek Zamanlı Nesne Algılama Eğitimi

Ultralytics YOLO gibi gerçek zamanlı çıkarım için tasarlanmış modeller için eğitimin verimli olması gerekir. SGD, geliştiricilerin bu modelleri COCO gibi büyük görüntü veri kümeleri veya Ultralytics HUB gibi platformlar aracılığıyla yönetilen özel veri kümeleri üzerinde eğitmesine olanak tanır. Hızlı güncellemeler, model geliştirme ve hiperparametre ayarlama sırasında hızlı bir şekilde yineleme yapmak için çok önemli olan Batch GD'ye kıyasla daha hızlı yakınsama sağlar. Bu verimlilik, otonom araçlar ve robotik gibi alanlardaki uygulamaları destekler.

Tümünü okuyun