Geri Çağırma (Callback)
Makine öğreniminde geri aramaların (callbacks) temel rolünü keşfedin; doğruluk, esneklik ve verimliliği artırmak için model eğitimini izleyen, kontrol eden ve otomatik hale getiren araçlar.
Makine öğreniminde, geri çağırma, bir modelin eğitim süreci sırasında belirli noktalarda yürütülen otomatik bir komut dosyası veya işlevdir. Bunu, eğitim çerçevesinin bir epok'un, bir eğitim grubunun veya tüm eğitim oturumunun başında veya sonunda olduğu gibi önceden tanımlanmış aşamalarda izlediği bir dizi talimat olarak düşünün. Geri çağırmalar, geliştiricilerin modelin veya eğitim döngüsünün temel kodunu değiştirmelerine gerek kalmadan eğitimin çeşitli yönlerini izlemeleri, kontrol etmeleri ve otomatikleştirmeleri için güçlü bir mekanizma sağlar. Verimli ve sağlam makine öğrenimi (ML) işlem hatları oluşturmak için temel araçlardır.
Geri Çağrılar Nasıl Çalışır?
Bir modeli eğittiğinizde, sinir ağı (SA), işlem bir veri kümesi birden çok epoch boyunca. Bir eğitim döngüsü, bu süreci yönetir ve bu süreç, modele veri beslemeyi, hesaplamayı içerir. kayıp fonksiyonu, ve güncellenmesi için model ağırlıkları aracılığıyla geri yayılım (backpropagation). Geri aramalar (callbacks), belirli olaylarda bu döngüye bağlanır. Örneğin, bir on_epoch_end geri çağırma, kodu her dönem tamamlandıktan sonra tam olarak çalıştıracaktır. Bu, gibi dinamik müdahalelere olanak tanır. öğrenme oranı, bir modelin en iyi sürümünü kaydetme veya performans düşüş gösterdiğinde eğitimi erken durdurma gibi işlemleri otomatikleştirir. Bu otomasyon, iyi yapılandırılmış bir makine öğrenimi iş akışı.
Pratikteki Örnekler
Geri çağırmalar, eğitim sonuçlarını iyileştirmek için çeşitli bilgisayarlı görü (CV) görevlerinde yaygın olarak kullanılır.
- En İyi Nesne Algılama Modelini Kaydetme: Ultralytics YOLO modelini nesne algılama için eğitirken, bir ModelCheckpoint geri çağrısı kullanabilirsiniz. Bu geri çağrı, doğrulama veri kümesindeki ortalama Ortalama Hassasiyeti (mAP) izler. Modelin ağırlıklarını yalnızca mAP puanı, önceden kaydedilmiş en iyi puana kıyasla iyileştiğinde bir dosyaya kaydeder ve en doğru modeli korumanızı sağlar. Farklı modellerin model karşılaştırma sayfamızda nasıl performans gösterdiğini görebilirsiniz.
- Görüntü Sınıflandırmasında Aşırı Uyumun Önlenmesi: ImageNet gibi karmaşık bir veri kümesi üzerinde görüntü sınıflandırması için bir model eğittiğinizi hayal edin. Bir EarlyStopping geri çağrısı, doğrulama kaybını izlemek için yapılandırılabilir. Doğrulama kaybı belirli sayıda epoch boyunca azalmazsa, geri çağrı eğitimi otomatik olarak durdurur. Bu, modelin eğitim verilerine aşırı uymasını önler ve önemli ölçüde eğitim süresi ve hesaplama maliyeti tasarrufu sağlar. Görüntü sınıflandırma görevleri ve bunların nasıl uygulanacağı hakkında daha fazla bilgi edinebilirsiniz.
Geri Çağırmalar ve Diğer Kavramlar
Geri çağırmaları (callbacks) ilgili terimlerden ayırt etmek faydalıdır:
- Fonksiyonlar: Geri çağırma bir fonksiyon türü olsa da, tanımlayıcı özelliği, başka bir fonksiyona (eğitim döngüsü) bir argüman olarak geçirilmesi ve bu fonksiyon tarafından belirli bir zamanda dahili olarak çağrılmasıdır. Standart bir fonksiyon tipik olarak programcı tarafından doğrudan çağrılır.
- Hooks: Yazılım mühendisliğinde, hook, özel mantığın eklenmesine izin veren koddaki bir yer için daha genel bir terimdir. Makine öğrenimi çerçevelerindeki geri aramalar, bir modelin eğitim yaşam döngüsünün olaylarına göre uyarlanmış, hook kavramının belirli bir uygulamasıdır.
- Hiperparametre Ayarlama (Hyperparameter Tuning): Bu, bir model için en uygun hiperparametreleri (öğrenme oranı veya batch boyutu gibi) bulma işlemidir. Geri aramalar (callbacks), örneğin bir öğrenme oranı zamanlayıcısı uygulayarak hiperparametre ayarlamaya yardımcı olabilir, ancak ayarlama sürecinin kendisi değildir. Ayarlama süreci, daha üst düzey bir arama veya optimizasyon prosedürüdür.
Geri Çağırmaları (Callbacks) Kullanmanın Faydaları
Geri çağırmaları eğitim sürecine entegre etmek çeşitli önemli avantajlar sunar:
- Otomasyon: Geri aramalar, modelleri kaydetme, TensorBoard gibi araçlarla metrikleri kaydetme ve parametreleri ayarlama gibi tekrarlayan görevleri otomatikleştirerek uzun eğitim çalıştırmaları sırasında manuel müdahale ihtiyacını azaltır.
- Esneklik ve Özelleştirme: Geliştiricilerin, temel çerçeve kodunu değiştirmeden eğitim döngüsüne özel mantık eklemelerine olanak tanıyarak, son derece özel eğitim davranışları sağlar. Bu, özellikle karmaşık deneyler veya gelişmiş eğitim teknikleri uygulamak için kullanışlıdır.
- Verimlilik: Erken Durdurma (Early Stopping) ve dinamik öğrenme oranı ayarlaması gibi geri aramalar (callbacks), hesaplama kaynaklarından tasarruf ederek ve potansiyel olarak model yakınsamasını hızlandırarak eğitimi daha verimli hale getirebilir.
- İçgörü ve İzleme: Zaman içindeki metriklerin ayrıntılı olarak kaydedilmesini ve görselleştirilmesini sağlayarak eğitim dinamiklerine dair derin içgörüler sağlarlar, bu da model değerlendirmesi için çok önemlidir.
- Tekrarlanabilirlik: Geri aramalar, eğitim sırasında alınan eylemleri (örneğin, kriterleri kaydetme, durdurma koşulları) standartlaştırarak daha tekrarlanabilir makine öğrenimi deneylerine katkıda bulunur.
Keras ve PyTorch Lightning gibi çerçeveler, kapsamlı yerleşik geri aramalar koleksiyonları ve özel olanları oluşturmak için basit arayüzler sunar. Ultralytics ayrıca, Ultralytics YOLO11 ve Ultralytics HUB platformu gibi araçların sağlamlığına ve kullanıcı dostu olmasına katkıda bulunarak, eğitim hatlarında dahili olarak geri aramaları kullanır. Ultralytics belgelerine başvurmak, YOLO model eğitimiyle ilgili daha spesifik örnekler sağlayabilir.