Epoch
Makine öğreniminde bir epoch'un ne olduğunu ve model eğitimini nasıl etkilediğini öğren. Optimizasyonu keşfet, aşırı öğrenmeden kaçın ve Ultralytics YOLO26'yı kolayca eğit.
Bir epoch, bir makine öğrenimi algoritmasının tüm eğitim veri kümesi üzerinden gerçekleştirdiği bir tam döngüyü temsil eder. Bu süreç boyunca model, verideki her bir örneğe dayanarak dahili parametrelerini tam olarak bir kez güncelleme fırsatına sahip olur. Derin öğrenme bağlamında, tek bir geçiş, bir sinir ağının karmaşık kalıpları etkili bir şekilde öğrenmesi için nadiren yeterlidir. Bu nedenle, eğitim genellikle birden fazla epoch içerir; bu da öğrenme algoritmasının anlayışını yinelemeli olarak iyileştirmesine ve tahminleri ile gerçek değer arasındaki hatayı en aza indirmesine olanak tanır.
Link to this sectionOptimizasyonda Epoch'ların Rolü#
The primary goal of training is to adjust model weights to minimize a specific loss function. Optimization algorithms, such as stochastic gradient descent (SGD) or the Adam optimizer, use the error calculated during each epoch to guide these adjustments. As the number of epochs increases, the model generally shifts from a state of high error (random guessing) to lower error (learned patterns).
Ancak, doğru epoch sayısını seçmek, hiperparametre ayarının kritik bir yönüdür.
- Çok az epoch: Bu, modelin verideki temel eğilimi henüz yakalayamadığı underfitting durumuna yol açabilir.
- Çok fazla epoch: Bu durum genellikle, modelin yeni verilere genelleme yapmak yerine eğitim gürültüsünü ezberlediği overfitting ile sonuçlanır. Bunu önlemek için geliştiriciler genellikle doğrulama verileri üzerindeki performansı izler ve genelleme iyileşmesi durduğunda eğitimi durdurmak için erken durdurma gibi teknikler kullanırlar.
Link to this sectionEpoch vs. Batch vs. İterasyon#
Yeni başlayanların "epoch" terimini ilgili terimlerle karıştırması yaygındır. Bu kavramların hiyerarşisini anlamak, eğitim döngülerini doğru şekilde yapılandırmak için esastır:
- Epoch: Tüm veri kümesi üzerinden bir tam geçiş.
- Batch: Eş zamanlı olarak işlenen veri kümesinin bir alt kümesi. Veri kümeleri genellikle GPU belleğine bir kerede sığmayacak kadar büyük olduğundan, bunlar batch size ile tanımlanan daha küçük gruplara bölünürler.
- İterasyon: Modelin ağırlıklarına yapılan tek bir güncelleme. Eğer bir veri kümesinde 1.000 görüntü varsa ve batch size 100 ise, bir epoch'u tamamlamak 10 iterasyon sürecektir.
Link to this sectionGerçek Dünya Uygulamaları#
Gereken epoch sayısı, görevin karmaşıklığına ve verinin boyutuna bağlı olarak büyük ölçüde değişir.
- Tıbbi Görüntü Analizi: MRI taramalarındaki tümörleri tespit etmek gibi tıbbi görüntü analizi çalışmalarında doğruluk her şeyden önemlidir. Bu görevler için eğitilen modeller genellikle yüzlerce epoch boyunca çalıştırılır. Bu kapsamlı eğitim, konvolüsyonel sinir ağının (CNN) kötü huylu dokuyu sağlıklı dokudan ayıran ince anomalileri fark edebilmesini sağlar ve potansiyel olarak hayat kurtarır.
- Otonom Sürüş: Otonom araçlar için nesne algılama modelleri, yayaları, işaretleri ve diğer araçları güvenilir bir şekilde tanımlamalıdır. Bu sağlam sistemleri eğitmek genellikle COCO veya Objects365 gibi devasa veri kümeleri gerektirir. Veri kümesi boyutu çok büyük olsa da, modelin çeşitli hava ve ışık koşullarında iyi genelleme yapan bir çözüme ulaşması için yine de birden fazla epoch gerekir.
Link to this sectionEğitim Döngülerini Kod ile Yönetme#
Ultralytics YOLO gibi modern çerçeveler kullanılırken, epoch sayısını tanımlamak eğitim komutunda basit bir argümandır. Ultralytics Platform gibi araçlar, optimal durdurma noktasını belirlemek için her epoch'taki kayıp eğrilerini görselleştirmeye yardımcı olabilir.
Aşağıdaki örnek, bir YOLO26 modeli eğitilirken epoch sayısının nasıl ayarlanacağını göstermektedir:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)Bu kod parçacığında, epochs=50 argümanı, eğitim motoruna coco8.yaml veri kümesi üzerinde 50 farklı kez döngü yapmasını söyler. Her döngü sırasında model, tespit yeteneklerini geliştirmek için ileri yayılım ve geriye yayılım gerçekleştirir.






