Batch gradient descent, stochastic gradient descent (SGD) ve mini-batch gradient descent arasındaki fark nedir?
Cevap
Üçü de parametreleri w = w - lr · ∇L kuralıyla günceller. Fark, gradyanın kaç örnek üzerinden hesaplandığıdır.
| Yöntem | Gradyan hesabı | Avantaj | Dezavantaj |
|---|---|---|---|
| Batch GD | Tüm veri seti | Kararlı, düzgün yakınsama | Büyük veride çok yavaş, belleğe sığmaz |
| SGD | Tek örnek | Çok hızlı güncelleme, local minimum'dan kaçabilir | Çok gürültülü, GPU'yu verimsiz kullanır |
| Mini-batch | 32–4096 örnek | GPU paralelliği + makul gürültü | Batch size ayarı gerekir |
Pratikte "SGD" denince neredeyse her zaman mini-batch kastedilir.
Learning rate ve batch size
- Learning rate çok büyükse loss sıçrar veya NaN olur. Çok küçükse eğitim çok yavaşlar.
- Batch size'ı büyütürken learning rate'i de genelde orantılı artırmak gerekir (linear scaling kuralı) ve warmup eklenir.
- Modern eğitimde sabit LR yerine warmup + cosine decay gibi schedule'lar standarttır.
import numpy as np
def minibatch_gd(X, y, lr=0.1, epochs=20, bs=64):
w = np.zeros(X.shape[1])
for _ in range(epochs):
idx = np.random.permutation(len(X))
for i in range(0, len(X), bs):
b = idx[i:i + bs]
grad = 2 * X[b].T @ (X[b] @ w - y[b]) / len(b) # MSE gradyanı
w -= lr * grad
return wMomentum, RMSProp ve Adam gibi optimizer'lar bu temel güncelleme kuralının üzerine kurulur.
İlgili Makine Öğrenmesi soruları
- Hiperparametre optimizasyonunu nasıl yaparsınız? Grid search, random search ve Bayesian optimization'ı karşılaştırın.
- Feature scaling nedir? Standardization ile normalization arasındaki fark nedir ve hangi modeller ölçeklendirme gerektirir?
- PCA (Principal Component Analysis) nasıl çalışır? Ne zaman kullanılır, ne zaman kullanılmamalıdır?
- NumPy kullanarak k-means algoritmasını sıfırdan yazın. k değerini nasıl seçersiniz ve algoritmanın sınırlamaları nelerdir?
- XGBoost ve LightGBM klasik gradient boosting'den hangi açılardan farklıdır? En önemli hiperparametreleri nelerdir?
- Random Forest ile Gradient Boosting arasındaki fark nedir? Bagging ve boosting'i karşılaştırın.
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.