Makine öğreniminde dönem nedir ve model eğitimi üzerinde nasıl bir etkisi vardır? Optimizasyonu keşfedin, aşırı uyumu önleyin ve Ultralytics kolaylıkla eğitin.
Bir dönem, makine öğrenimi algoritması tarafından tüm eğitim veri seti üzerinden yapılan bir tam döngüyü temsil eder. Bu süreçte, model, verilerdeki her örnek temelinde iç parametrelerini tam olarak bir kez güncelleme fırsatına sahiptir. Derin öğrenme bağlamında, tek bir geçiş, bir sinir ağının karmaşık kalıpları etkin bir şekilde öğrenmesi için nadiren yeterlidir. Bu nedenle, eğitim genellikle birden fazla epok içerir ve öğrenme algoritmasının anlayışını yinelemeli olarak geliştirmesine ve tahminleri ile gerçek durum arasındaki hatayı en aza indirmesine olanak tanır.
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 gibi optimizasyon algoritmaları, her dönem boyunca hesaplanan hatayı kullanarak bu ayarlamaları yönlendirir. Dönem sayısı arttıkça, model genellikle yüksek hata durumundan (rastgele tahmin) daha düşük hata durumuna (öğrenilen modeller) geçer.
Ancak, doğru dönem sayısını seçmek, hiperparametre ayarlamasının kritik bir yönüdür. hiperparametre ayarlaması.
Yeni başlayanların "epoch" ile ilgili terimleri 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 gerekli:
Gerekli olan dönem sayısı, görevin karmaşıklığına ve verilerin boyutuna bağlı olarak büyük ölçüde değişir.
Ultralytics gibi modern çerçeveler kullanıldığında Ultralytics YOLOkullanırken, epoch sayısını tanımlamak eğitim komutunda basit bir argümandır. Ultralytics gibi araçlar, her epoch üzerindeki kayıp eğrilerini görselleştirerek optimum durma noktasını belirlemeye yardımcı olabilir.
Aşağıdaki örnek, bir YOLO26 modelini eğitirken epoch sayısını nasıl ayarlayacağınızı 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 setini 50 farklı kez. Her döngü sırasında, model
ileri yayılım ve
geri yayılım (backpropagation) algılama yeteneklerini geliştirmek için
.