Ensemble
Topluluk öğreniminin (ensemble learning) doğruluğu nasıl artırdığını ve aşırı öğrenmeyi nasıl azalttığını keşfet. Daha üstün bilgisayarlı görü sonuçları için Ultralytics YOLO26 gibi birden fazla modeli birleştirmeyi öğren.
Makine öğrenimi (ML) alanında topluluk öğrenimi (ensemble learning), genellikle "zayıf öğreniciler" olarak adlandırılan birden fazla bağımsız modelin tek bir tahmin çıktısı üretmek üzere birleştirildiği güçlü bir stratejidir. Temel varsayım, bir model grubunun, tek başına hareket eden herhangi bir modelden genellikle daha yüksek doğruluk ve daha iyi genelleştirme elde edebileceğidir. Çeşitli algoritmaların tahminlerini bir araya getiren topluluk yöntemleri, eğitim verilerine aşırı uyum sağlama (overfitting) riskini etkili bir şekilde azaltır, rastgele hataları düzeltir ve genel sistem kararlılığını iyileştirir. Bu yaklaşım, kritik bir karar vermek için tek bir kişinin görüşüne güvenmek yerine bir uzmanlar paneline danışmaya benzer.
Topluluk Öğreniminin Mekanizmaları#
Topluluk yöntemlerinin etkinliği, yanlılık-varyans değişimi (bias-variance tradeoff) ile başa çıkma yeteneklerinde yatar. Bireysel modeller yüksek varyans (gürültüye duyarlılık) veya yüksek yanlılık (aşırı basitleştirme) sorunlarından muzdarip olabilir. Topluluk oluşturma (ensembling), bu sorunları belirli tekniklerle hafifletir:
- Torbalama (Bagging - Bootstrap Aggregating): Bu teknik, aynı algoritmanın birden fazla örneğini veri setinin farklı alt kümeleri üzerinde eğitmeyi içerir. En bilinen örnek, varyansı azaltmak için birçok karar ağacının kararlarını birleştiren Random Forest algoritmasıdır.
- Boosting: Torbalamanın aksine, boosting modelleri sırayla eğitir. Her yeni model, önceki modellerin yaptığı hataları düzeltmeye odaklanır. LightGBM ve CatBoost gibi popüler çerçeveler, son derece doğru tahmin sistemleri oluşturmak için bunu kullanır.
- Yığma (Stacking - Stacked Generalization): Bu yöntem, çeşitli heterojen temel modellerin (örneğin bir sinir ağı ve bir Destek Vektör Makinesi) tahminlerini birleştirmek için yeni bir "meta model" eğitilmesini içerir.
Bilgisayarlı Görüde Topluluk Oluşturma#
Bilgisayarlı görü (CV) alanında, yarışmalarda ve kritik güvenlik uygulamalarında performansı en üst düzeye çıkarmak için topluluklar sıklıkla kullanılır. Nesne algılama için bu genellikle aynı görüntü üzerinde YOLO26 gibi farklı sürümler dahil birden fazla modeli çalıştırmayı gerektirir. Elde edilen sınırlayıcı kutular (bounding boxes), en olası nesne konumlarını türetmek için Maksimum Olmayan Bastırma (NMS) veya Ağırlıklı Kutu Birleştirme (WBF) gibi teknikler kullanılarak birleştirilir.
Gerçek Dünya Uygulamaları#
Topluluk yöntemleri, tahmine dayalı güvenilirliğin en önemli olduğu endüstrilerde her yerdedir.
-
Tıbbi Teşhis ve Görüntüleme: Sağlık hizmetlerinde yanlış negatiflerden kaçınmak kritik önem taşır. Bir topluluk, anomalileri tespit etmek için X-ışınları üzerinde eğitilmiş bir Evrişimli Sinir Ağı (CNN) ile bir Görüntüleme Transformer'ı (ViT) modelini birleştirebilir. Modeller arasındaki fikir birliği daha yüksek bir güven puanı sağlayarak radyologlara tümörleri tespit etmede veya nadir durumları teşhis etmede yardımcı olur.
-
Finansal Dolandırıcılık Tespiti: Finansal kurumlar işlem kalıplarını analiz etmek için toplulukları kullanır. Lojistik regresyon modellerini gradyan artırma (gradient boosting) makineleriyle birleştirerek sistem, tek bir modelin gözden kaçırabileceği ince dolandırıcılık göstergelerini tespit edebilir ve sahte alarm oranlarını düşük tutabilir.
Python ile Model Topluluğu Uygulama#
Birden fazla eğitilmiş modeli yükleyerek ve aynı girdi için tahminler üreterek temel bir çıkarım topluluğu simüle edebilirsiniz. Ultralytics Platform, bu varyantları kolayca eğitmenizi sağlar. Aşağıdaki örnek, bir görüntü üzerindeki tespitleri doğrulamak için iki farklı Ultralytics YOLO modelinin (YOLO26n ve YOLO26s) yüklenmesini göstermektedir.
from ultralytics import YOLO
# Load two distinct YOLO26 model variants
# 'n' (nano) is faster, 's' (small) is more accurate
model_nano = YOLO("yolo26n.pt")
model_small = YOLO("yolo26s.pt")
# Define the image source
source = "https://ultralytics.com/images/bus.jpg"
# Run inference with both models
results_n = model_nano(source)
results_s = model_small(source)
# Compare the number of objects detected by each model
print(f"Nano Model Found: {len(results_n[0].boxes)} objects")
print(f"Small Model Found: {len(results_s[0].boxes)} objects")Topluluk vs. Veri Çoğaltma#
Ensemble öğrenmeyi Veri Artırma (Data Augmentation) işleminden ayırmak önemlidir.
- Topluluk, sonuçları iyileştirmek için eğitilmiş birden fazla farklı modeli birleştirerek mimari ve tahmin aşamasına odaklanır.
- Veri Artırma, tek ve daha sağlam bir model eğitmek amacıyla veri setinin çeşitliliğini yapay olarak artırarak (örneğin döndürme veya çevirme yoluyla) eğitim verisi aşamasına odaklanır.
Veri artırma tek bir modelin daha iyi öğrenmesine yardımcı olurken, topluluk öğrenimi birden fazla modelin birbirinin çıktısını doğrulamasına yardımcı olur. Örnek bölütleme (instance segmentation) ve poz kestirimi (pose estimation) gibi görevlerde son teknoloji sonuçlar elde etmek için her iki strateji de genellikle birlikte kullanılır.






