Epoch (Epoch (Eğitim Döngüsü))

Tüm eğitim veri setinin bir yapay sinir ağından baştan sona tam olarak bir kez geçirilmesine 'epoch' (epok veya eğitim döngüsü) denir.

Epoch (Epok ya da Eğitim Döngüsü), makine öğrenimi ve derin öğrenme modellerinin eğitiminde kullanılan temel bir zaman birimidir. Bir epoch; modelin tüm eğitim veri setini baştan sona tam olarak bir kez işlemesi, yani her örnek üzerinde hem ileri yayılım (forward pass) hem de geri yayılım (backward pass) gerçekleştirmesi anlamına gelir. Makine öğrenimi modellerini eğitirken, yalnızca bir epoch genellikle yeterli olmaz. Model, karmaşık kalıpları ve ilişkileri kavrayabilmek için aynı veriler üzerinde defalarca geçiş yapmak zorundadır. Bu nedenle modeller onlarca, yüzlerce hatta binlerce epoch boyunca eğitilebilir. Büyük dil modellerinin (LLM) eğitimi milyarlarca token üzerinde birden fazla epoch uygulanarak gerçekleştirilir; görüntü sınıflandırma gibi daha küçük görevlerde ise 10-100 epoch sıkça kullanılır. Epoch ve Batch İlişkisi Her epoch, büyük veri setini daha küçük parçalara (batch) bölerek işler. Bir epoch içindeki güncelleme sayısı, veri seti boyutunun batch boyutuna bölünmesiyle hesaplanır. Örneğin 10.000 örnekli bir veri seti 100'lük batch boyutuyla işleniyorsa, her epoch 100 ağırlık güncellemesi (iterasyon) içerir. Her iterasyonda gradyan hesaplanır ve model ağırlıkları güncellenir; böylece model adım adım öğrenir. Overfitting ve Erken Durdurma Epoch sayısının doğru seçilmesi kritik öneme sahiptir. Çok az epoch modelin yeterince öğrenememesine (underfitting) yol açar; model verinin altında yatan örüntüleri kavramaz ve hem eğitim hem de test verisinde kötü performans gösterir. Öte yandan, çok fazla epoch modelin eğitim verisini mekanik olarak ezberlemeye (overfitting) başlamasına neden olabilir. Bu durumda model eğitim setinde mükemmel sonuçlar verirken yeni verilerde başarısız olur. Bu dengesizliği çözmek için "Early Stopping" (Erken Durdurma) tekniği uygulanır: model her epoch sonunda doğrulama (validation) seti üzerinde değerlendirilir ve doğrulama kaybı iyileşmemeye başladığında eğitim otomatik olarak durdurularak en iyi ağırlıklar korunur. Eğitim ve doğrulama kaybının birbirinden ayrışmaya başlaması (divergence), overfitting'in erken belirtisidir. Epoch Sayısını Belirlemek Kaç epoch kullanılacağı, modelin karmaşıklığına, veri setinin büyüklüğüne ve görevin zorluğuna bağlıdır. Küçük veri setlerinde genellikle daha fazla epoch gerekir çünkü model her geçişte sınırlı miktarda örneğe maruz kalır. Büyük veri setlerinde ise tek bir epoch bile çok sayıda güncelleme içerdiğinden az epoch ile tatmin edici sonuçlar alınabilir. Epoch sayısı, öğrenme hızı (learning rate) ve model mimarisiyle birlikte hiperparametre optimizasyonunun temel bileşenlerinden biridir.

loop Neden Birden Fazla Epoch Gerekir?

Bir öğrenciye 1000 sayfalık bir kitabı bir kez okutursanız, konuyu tam anlayamaz. Kitabı ikinci kez okuduğunda daha iyi anlar, 10. kez okuduğunda ustalaşır. Yapay zeka da böyledir. 1 Epoch, 10.000 fotoğrafın hepsine bir kez bakılmasıdır. Modelin detayları kavraması için genellikle 50 veya 100 Epoch'a (aynı veriyi 100 kez turlamaya) ihtiyaç vardır.

balance Epoch Sayısını Belirlemek

Eğer Epoch çok düşük (Örn: 2) olursa, model hiçbir şey öğrenemez (Underfitting). Eğer Epoch çok yüksek (Örn: 1000) olursa, model veriyi tamamen ezberler ve yeni durumlara adapte olamaz (Overfitting). Veri bilimciler Loss grafiğine bakarak 'Erken Durdurma' (Early Stopping) yöntemiyle en ideal Epoch anında eğitimi keserler.

Epoch, Batch ve Iteration İlişkisi

  • check_circle Epoch: Tüm Verinin Bir Kez Görülmesi: Model eğitim verisinin tamamını bir kez işlediğinde bir epoch tamamlanır. 10.000 örnekli veri seti ile 10 epoch eğitim yapılırsa model bu örnekleri toplamda 10 kez görür. Her epoch tamamlandığında genellikle doğrulama seti üzerinde performans ölçülür.
  • check_circle Batch: Her Seferinde İşlenen Örnek Grubu: Model tüm veriyi aynı anda değil, küçük gruplara (batch) bölerek işler. Batch boyutu (batch size) tipik olarak 16, 32, 64 veya 128 olarak seçilir. Küçük batch → daha gürültülü ama daha düzenli güncelleme; büyük batch → daha kararlı ama bellek gereksimi yüksek.
  • check_circle Iteration: Her Batch için Bir Güncelleme: Her batch'in işlenmesi ve parametre güncellemesi bir iteration'dır. 10.000 örnek ve batch boyutu 100 ise 1 epoch = 100 iteration. 3 epoch eğitim = 300 iteration = 30.000 örnek görülmesi. Learning rate scheduler, warmup adımları ve early stopping çoğunlukla iteration sayısına göre ayarlanır.
  • check_circle Gradient Accumulation: GPU belleği kısıtlı olduğunda büyük batch boyutu kullanmak mümkün olmayabilir. Gradient accumulation, birkaç küçük batch'in gradyanlarını topladıktan sonra tek bir büyük güncelleme yapmayı sağlar. Örnek: 32'lik batch boyutu ve 4 adım birikim = 128'lik efektif batch boyutu; bellek kullanımı değişmez.

Doğru Epoch Sayısı: Early Stopping ve LR Scheduling

Kaç epoch eğitim yapılmalı sorusunun evrensel cevabı yoktur; veri boyutu, model karmaşıklığı ve görev türüne göre değişir. Çok az epoch → underfitting: model veriyi yeterince öğrenemez. Çok fazla epoch → overfitting: model eğitim verisini ezberler, doğrulama performansı bozulur. Early stopping bu dengeyi otomatik bulur: doğrulama kaybı belirli bir sabır (patience) sayısı kadar iyileşmediğinde eğitim durdurulur. Learning rate scheduling da epoch/iteration tabanlıdır: cosine annealing, step decay ve warmup stratejileri eğitim süresince öğrenme hızını yönetir. LLM ince ayarında (fine-tuning) genellikle 1-5 epoch yeterlidir; görüntü sınıflandırma modellerinde 50-200 epoch tipiktir.

Sıkça Sorulan Sorular

  • check_circle Epoch nedir?: Epoch, makine öğrenmesi modelinin eğitim verisinin tamamını bir kez işlediği eğitim döngüsüdür. Eğitim genellikle birden fazla epoch ile yapılır; her epoch'ta model parametreleri güncellenir ve doğrulama performansı ölçülür.
  • check_circle Epoch ile iteration arasındaki fark nedir?: Epoch: tüm eğitim verisinin bir kez işlenmesi. Iteration: tek bir batch'in işlenmesi ve parametre güncellemesi. Eğer veri seti 1000 örnek ve batch boyutu 50 ise: 1 epoch = 20 iteration (1000/50 = 20). 10 epoch eğitim = 200 toplam iteration.
  • check_circle Kaç epoch eğitim yapmak gerekir?: Görev ve model büyüklüğüne bağlıdır. LLM ince ayarı: genellikle 1-5 epoch. Sıfırdan görüntü sınıflandırma: 50-200 epoch. En iyi pratik: early stopping — doğrulama performansı iyileşmediğinde otomatik durdurma kullan. Bu hem overfitting'i önler hem de gereksiz hesaplamayı engeller.