Epoch
Makine öğrenmesinde 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 üzerinde baştan sona gerçekleştirdiği tek bir döngüyü temsil eder. Bu süreçte model, verilerdeki her örneğe tam olarak bir kez dayanarak dahili parametrelerini güncelleme fırsatı bulur. Derin öğrenme bağlamında, bir sinir ağının karmaşık örüntüleri etkili bir şekilde öğrenmesi için tek bir geçiş nadiren yeterlidir. Bu nedenle eğitim genellikle birden fazla epoch içerir; böylece öğrenme algoritması anlayışını yinelemeli olarak geliştirebilir ve tahminleri ile gerçek yer gerçeği arasındaki hatayı en aza indirebilir.
Optimizasyonda Epoch'ların Rolü#
Eğitimin temel amacı, belirli bir kayıp fonksiyonunu en aza indirmek için model ağırlıklarını ayarlamaktır. Stokastik gradyan inişi (SGD) veya Adam optimizer gibi optimizasyon algoritmaları, bu ayarlamalara yön vermek için her epoch sırasında hesaplanan hatayı kullanır. Epoch sayısı arttıkça model genellikle yüksek hata durumundan (rastgele tahmin) daha düşük hata durumuna (öğrenilmiş örüntüler) geçer.
Bununla birlikte, doğru epoch sayısını seçmek hiperparametre ayarlamanın kritik bir unsurudur.
- Çok az epoch: Bu durum, modelin verilerin temel eğilimini henüz yakalayamadığı yetersiz öğrenmeye yol açabilir.
- Çok fazla epoch: Bu durum genellikle modelin yeni verilere genelleme yapmak yerine eğitim gürültüsünü ezberlediği aşırı öğrenmeyle sonuçlanır. Bunu önlemek için geliştiriciler genellikle doğrulama verileri üzerindeki performansı izler ve genelleme iyileşmeyi bıraktığında eğitimi durdurmak için erken durdurma gibi tekniklerden yararlanır.
Epoch ve Batch ile Iteration Karşılaştırması#
Yeni başlayanların "epoch" terimini ilişkili 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 önemlidir:
- Epoch: Veri kümesinin tamamı üzerinde gerçekleştirilen tek bir tam geçiş.
- Batch: Aynı anda işlenen veri kümesinin bir alt kümesi. Veri kümeleri genellikle tek seferde GPU belleğine sığamayacak kadar büyük olduğundan, batch boyutu tarafından belirlenen daha küçük gruplara ayrılır.
- Iteration: Modelin ağırlıklarına yapılan tek bir güncelleme. Bir veri kümesinde 1.000 görüntü ve batch boyutu 100 ise, bir epoch'u tamamlamak 10 iteration alır.
Gerçek Dünya Uygulamaları#
Gerekli epoch sayısı, görevin karmaşıklığına ve veri miktarına bağlı olarak büyük ölçüde değişir.
- Tıbbi Görüntü Analizi: Tümörlerin MRI taramalarında tespit edilmesi gibi tıbbi görüntü analizinde doğruluk son derece önemlidir. Bu görevler için eğitilen modeller genellikle yüzlerce epoch boyunca çalıştırılır. Bu kapsamlı eğitim, evrişimli sinir ağının (CNN) kötü huylu dokuyu sağlıklı dokudan ayıran ince anormallikleri tespit edebilmesini sağlayarak potansiyel olarak hayat kurtarır.
- Otonom Sürüş: Otonom araçlar için nesne algılama modellerinin yayaları, işaretleri ve diğer araçları güvenilir bir şekilde tanımlaması gerekir. Bu sağlam sistemlerin eğitimi genellikle COCO veya Objects365 gibi devasa veri kümelerini içerir. Veri kümesinin boyutu çok büyük olsa da modelin, farklı hava ve aydınlatma koşullarına iyi genelleme yapan bir çözümde yakınsaması için yine de birden fazla epoch gerekir.
Eğitim Döngülerini Kodla Yönetme#
Ultralytics YOLO gibi modern framework'leri kullanırken epoch sayısını tanımlamak, eğitim komutunda basit bir bağımsız değişkendir. Ultralytics Platform gibi araçlar, en uygun durma noktasını belirlemek için kayıp eğrilerini her epoch boyunca görselleştirmeye yardımcı olabilir.
Aşağıdaki örnek, bir YOLO26 modelini eğitirken epoch sayısının nasıl ayarlanacağını gösterir:
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 bağımsız değişkeni, eğitim motoruna coco8.yaml veri kümesi üzerinde 50 farklı kez döngü gerçekleştirmesini söyler. Her döngü sırasında model, algılama yeteneklerini geliştirmek için ileri yayılım ve geri yayılım gerçekleştirir.









