Tüm yazılar
Matematik2 Ağustos 2025

Stokastik Gradyan İniş (SGD): Modern Derin Öğrenmenin Sessiz İşgücü

Tüm veriyle gradyan hesaplamak zor — milyonlarca örnek. **Rastgele bir alt kümeyle** gradyan tahmin et, sonra güncelle. Bu basit fikir, modern derin öğrenmenin **yalnız eğitim algoritması**dır.

Matematik Karavanı Editörü 5 dk okuma 5 soru
Sisli orman yolu — SGD'nin gürültülü ama doğru yön ilerleyişinin metaforu

"Bütün veriyi bir kerede çalıştırmak için yeterli RAM yok"

GPT-4 eğitilirken: 1 trilyon token veri. Her bir gradyan adımı için tüm veriyi işlemek? İmkansız. Yetersiz RAM, yetersiz GPU, yetersiz zaman.

Çözüm: stokastik gradyan iniş (Stochastic Gradient Descent, SGD).

Fikir: her adımda tüm veri yerine küçük rastgele alt küme (mini-batch) kullan. Gradyan tahmini gürültülü, ama ortalama doğru yön.

Bu basit fikir, modern derin öğrenmenin tek eğitim algoritmasıdır.

Klasik gradyan iniş (GD)

Loss fonksiyonu L(θ)=1Ni=1Ni(θ)L(\theta) = \frac{1}{N} \sum_{i=1}^N \ell_i(\theta).

Klasik gradyan iniş:

θt+1=θtαL(θt)=θtαNi=1Ni(θt)\theta_{t+1} = \theta_t - \alpha \nabla L(\theta_t) = \theta_t - \frac{\alpha}{N} \sum_{i=1}^N \nabla \ell_i(\theta_t)

Her adımda tüm NN örnek için gradyan hesaplanır. Pahalı.

Stokastik gradyan iniş

SGD bir farklı:

θt+1=θtαit(θt)\theta_{t+1} = \theta_t - \alpha \nabla \ell_{i_t}(\theta_t)

Burada iti_t rastgele seçilmiş örnek. Sadece bir örnekle güncelle.

Mini-batch SGD (yaygın versiyon):

θt+1=θtαBtiBti(θt)\theta_{t+1} = \theta_t - \frac{\alpha}{|B_t|} \sum_{i \in B_t} \nabla \ell_i(\theta_t)

BtB_t = rastgele seçilmiş batch (genelde 32-1024 örnek).

Niçin işe yarar?

1. Hesap maliyeti

Her güncelleme B/N|B|/N kez daha az hesap. GPT-4: N=1012N = 10^{12}, B=4×106|B| = 4 \times 10^6 — bir adım için %0.0004 hesap.

2. Gürültü → düzenleştirme

Gürültülü gradyan yerel minimuma takılmayı önler. Çukurlardan rastgele çıkma.

Modern derin öğrenme non-konveks — bu önemli avantaj.

3. Güncellemeler hızlı

Daha sık güncelleme → daha hızlı yakınsama (büyük veri seti için).

4. Online öğrenme

Yeni veri geldikçe model güncellenebilir. Streaming data için ideal.

Yakınsama analizi

Robbins-Monro teoremi (1951): öğrenme oranı αt0\alpha_t \to 0 ve αt=\sum \alpha_t = \infty koşulu altında SGD olasılıkla doğru parametreye yakınsar.

Konveks loss için O(1/T)O(1/\sqrt{T}) yakınsama hızı. Tam GD'nin O(1/T)O(1/T)'sinden yavaş ama örnek-verimli.

Modern varyantlar

Momentum (1964)

vt+1=βvt+L,θt+1=θtαvt+1v_{t+1} = \beta v_t + \nabla L, \quad \theta_{t+1} = \theta_t - \alpha v_{t+1}

Polyak (1964). "Top tepeden yuvarlanma" sezgisi. Yerel dalgalanmaları yumuşatır.

Nesterov ivmeli gradyan (NAG, 1983)

Yurii Nesterov'un katkısı. Momentum'un geliştirilmiş versiyonu. Konveks fonksiyonlar için optimum yakınsama hızı.

AdaGrad (2011)

Duchi, Hazan, Singer. Her parametre için ayrı öğrenme oranı. Sparse veriler için iyi.

RMSProp (2012)

Hinton Coursera dersinde tanıttı. AdaGrad'in yumuşatılmış versiyonu.

Adam (2014)

Kingma, Ba. Momentum + RMSProp kombinasyonu. Modern derin öğrenmenin standart optimizer'ı.

mt=β1mt1+(1β1)gt(momentum)m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t \quad \text{(momentum)}
vt=β2vt1+(1β2)gt2(uyarlamalı o¨lc¸ek)v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2 \quad \text{(uyarlamalı ölçek)}
θt+1=θtαm^tv^t+ϵ\theta_{t+1} = \theta_t - \alpha \frac{\hat m_t}{\sqrt{\hat v_t} + \epsilon}

GPT, BERT, ResNet — hepsi Adam ile eğitildi.

AdamW (2017)

Loshchilov, Hutter. Adam + L2 düzenleştirmenin doğru uygulanması. Modern büyük dil modelleri standartı.

Tarihsel köken

  • Robbins, Monro (1951): stokastik yaklaşım. Modern SGD'nin matematik temeli.
  • Rosenblatt (1958): Perceptron algoritması — ilk SGD uygulaması.
  • Widrow, Hoff (1960): LMS (Least Mean Squares) — adaptive filtre.
  • Polyak (1964): momentum.
  • Bottou (1991+): büyük ölçekli SGD.
  • Modern derin öğrenme (2010+): GPU'larla devrim.

Hiperparametreler

SGD'nin pratik kullanımı dikkatli ayarlama gerektirir:

  • Öğrenme oranı α\alpha: çok büyük → kararsız, çok küçük → yavaş.
  • Batch boyutu: küçük → gürültülü, büyük → yavaş.
  • Momentum β\beta: 0.9 standart.
  • Learning rate schedule: zamanla azaltma (cosine, step decay).

Bu "hiperparametre ayarı" modern makine öğrenmesinin kara büyüsüdür.

Genelleştirme

Şaşırtıcı gözlem: SGD'nin gürültüsü, eğitim seti üzerinde global optimuma değil, iyi genelleştiren noktaya yöneliyor.

Implicit regularization: SGD doğal olarak basit (geniş minima) çözümler bulur. Sinir ağlarının "çok fazla parametre yine de iyi genelleştirme" mucizesinin sebebi.

Modern teori (Bottou, Bach, Belkin) bu gözlemi anlamaya çalışıyor.

Uygulamalar

  • Derin sinir ağları: standart eğitim.
  • Lojistik regresyon, SVM: büyük veri.
  • Pekiştirmeli öğrenme: policy gradient.
  • Online öğrenme: streaming ortamlar.
  • Bayes inference: stokastik gradyan MCMC.

Sonuç

Stokastik gradyan iniş:

  • Modern makine öğrenmesinin işgücü algoritması.
  • Robbins-Monro (1951)'in modern türevi.
  • Adam, AdamW gibi varyantlarla pratik standart.
  • Implicit düzenleştirme: derin öğrenmenin mucize genelleştirmesinin sebebi.
  • GPT, BERT, AlphaGo, ChatGPT — hepsi SGD ile eğitildi.

Bir basit prensip: "Tüm veriyi kullanma — küçük rastgele alt kümeyle yön tahmin et." Bu sade fikir, derin öğrenme devrimini mümkün kıldı.

Modern AI sistemlerini eğitirken, her saniye milyonlarca SGD güncellemesi gerçekleşiyor. Görünmez ama vazgeçilmez.

Etiketler

stokastik gradyan inişSGDderin öğrenmeoptimizasyonmini-batch

Kendinizi Test Edin

Cevaplarınız profilinizde istatistik olarak saklanır.

1. SGD klasik GD'den nasıl farklıdır?

2. SGD'nin yakınsama teorisini ilk veren teorem hangisidir?

3. Modern derin öğrenmenin standart optimizer'ı nedir?

4. SGD'nin gürültüsünün şaşırtıcı bir yararı nedir?

5. Momentum (Polyak 1964) ne yapar?