Ensemble
Topluluk öğrenmesi; tek bir modelden daha düşük hata elde etmek için torbalama, artırma veya yığınlama yoluyla birkaç modelin tahminlerini birleştirir.
Topluluk öğrenmesi, aynı görev için birkaç model eğitir ve tahminlerini oylama, ortalama alma veya öğrenilmiş bir birleştirici kullanma yoluyla birleştirerek, genellikle her bir modelden daha doğru ve kararlı tek bir çıktı üretir. Farklı modeller farklı hatalar yaptığı için bu yöntem işe yarar; tahminleri birleştirmek her modelin hatasının bir bölümünü dengeler. Anders Krogh ve Jesper Vedelsby, 1995'te ortalaması alınan regresyon modelleri için bunu matematiksel olarak kanıtladı: topluluğun karesel hatası, üyelerin ortalama hatasından topluluğa göre ortalama uyuşmazlıklarının çıkarılmasına eşittir. Dolayısıyla ortalama bir topluluk, ortalama üyesinden hiçbir zaman daha kötü değildir; onu daha iyi yapan, üyeler arasındaki çeşitliliktir.
Bagging, Boosting ve Stacking#
Makine öğrenimindeki toplulukların çoğu üç aileden birine girer ve bu aileler yanlılık-varyans ödünleşiminin farklı taraflarını etkiler.
Bootstrap aggregating ifadesinin kısaltması olan bagging, Leo Breiman tarafından 1996'da ortaya atıldı. Her üyeyi, eğitim kümesinden yerine koyarak çekilen bir bootstrap örneği üzerinde bağımsız olarak eğitir ve sonuçların ortalamasını alır ya da sonuçlar arasında oylama yapar; bu yöntem esas olarak varyansı azaltır. Derin karar ağaçları gibi kararsız öğreniciler için uygundur. Breiman'ın 2001'de geliştirdiği random forest, ağaçları birbirinden daha da farklı kılmak için her bölmede özelliklerin rastgele bir alt kümesini ekler.
Boosting, üyeleri sırayla eğitir ve her birinin topluluğun o ana kadar yanlış yaptığı örneklere odaklanmasını sağlar; bu yöntem esas olarak yanlılığı azaltır. Yoav Freund ve Robert Schapire'ın geliştirdiği AdaBoost, sonraki zayıf öğreniciyi eğitmeden önce yanlış sınıflandırılan örneklerin ağırlığını artırır. Jerome Friedman'ın gradient boosting yöntemi, her yeni ağacı kayıp fonksiyonunun gradyanına uydurur. Birçok tablolu veri kümesinde en güçlü modeller olmaya devam eden XGBoost, LightGBM ve CatBoost bu yaklaşımı temel alır.
Stacked generalization olarak da bilinen stacking, David Wolpert tarafından 1992'de önerildi. Çoğu zaman bir lojistik regresyon olan meta model, temel modellerin dışarıda tutulan katlardaki tahminlerinden farklı türdeki modelleri nasıl birleştireceğini öğrenir ve dışarıda tutulan tahminleri en güvenilir olan modellere daha fazla ağırlık verir.
Bu scikit-learn örneği, meme kanseri tanısı veri kümesinde tek bir ağacı her aileden bir toplulukla karşılaştırır ve 5 katlı çapraz doğrulama kullanır:
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import GradientBoostingClassifier, RandomForestClassifier, StackingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier
X, y = load_breast_cancer(return_X_y=True) # 569 tumors, 30 measurements each
forest = RandomForestClassifier(n_estimators=200, random_state=0)
boosting = GradientBoostingClassifier(random_state=0)
models = {
"Single decision tree": DecisionTreeClassifier(random_state=0),
"Bagging (random forest)": forest,
"Boosting (gradient boosting)": boosting,
# Stacking: a logistic regression learns how to combine the forest and the boosted trees
"Stacking": StackingClassifier([("forest", forest), ("boosting", boosting)], LogisticRegression()),
}
for name, model in models.items():
print(f"{name}: {cross_val_score(model, X, y, cv=5).mean():.3f}")Tek ağaç 0.917, random forest 0.960, gradient boosting 0.963 ve stacking modeli 0.963 puan alır. Her topluluk ağacın hatasını yaklaşık yarıya indirir. Ormanın yanlış sınıflandırdığı 23 tümörün 16'sı boosting uygulanmış ağaçlar tarafından da yanlış sınıflandırıldığı için stacking, daha güçlü üyesiyle aynı sonucu verir ve meta modelin kullanabileceği uyuşmazlık çok az kalır.
Derin Öğrenme ve Görüde Topluluklar#
Derin topluluklar, farklı rastgele başlangıçlardan birkaç sinir ağı eğitir ve çıktıların ortalamasını alır. Balaji Lakshminarayanan ve DeepMind'daki çalışma arkadaşları, 2017'de bunun hem doğruluğu hem de belirsizlik nicelemesini iyileştirdiğini gösterdi; çünkü üyeler, eğitim verilerinden farklı girdiler üzerinde en çok uyuşmazlık gösterir. Nesne tespitinde, çeşitli tespit modellerinden gelen sınırlayıcı kutular bir araya getirilir ve maksimum olmayan bastırma (NMS) veya Weighted Boxes Fusion ile birleştirilir. Weighted Boxes Fusion, yalnızca en yüksek güven değerine sahip kutuyu tutmak yerine örtüşen kutuların ortalamasını alır. Doğruluğun çıkarım maliyetinden daha önemli olduğu tıbbi görüntü analizinde ve yarışma çalışmalarında farklı mimarilerden oluşan topluluklar yaygındır.
Maliyet, her ek üyeyle birlikte artar ve uç yapay zekâ cihazlarında topluluk kullanımını sınırlar. Bilgi damıtma kısmen bu sorunu çözmek için ortaya atıldı: Geoffrey Hinton, Oriol Vinyals ve Jeff Dean, bir topluluğun ortalama çıktılarını taklit edecek tek bir model eğitti. Dropout, daha düşük maliyetli bir alternatiftir; çünkü bu yöntemle yapılan eğitim, üstel sayıda inceltilmiş alt ağın ortalamasını yaklaşık olarak hesaplar.
Topluluklar, Model Çorbaları ve Uzman Karışımları#
Model topluluğu genellikle derin öğrenmede en yaygın topluluk öğrenimi biçimi olan, çıkarım sırasında ayrı ayrı eğitilmiş ağların birleştirilmesini ifade eder. Model çorbaları ve diğer model birleştirme yöntemleri, tahminler yerine ağırlıkların ortalamasını alır. Böylece tek modelin maliyeti korunur, ancak bu yöntem yalnızca aynı önceden eğitilmiş ağırlıklardan ince ayar yapılmış modellerde işe yarar. Uzman karışımı (MoE), uzmanları, her girdiyi birkaç uzmana yönlendiren bir yönlendiriciyle birlikte eğitir; böylece her uzman görevin tamamını çözmek yerine belirli alanlarda uzmanlaşır.
Tek bir eğitim çalıştırmasındaki ağırlıkların ortalamasını almak, tek model maliyetiyle o çalıştırmanın denetim noktalarından oluşan bir topluluğu yaklaşık olarak temsil eder. Pavel Izmailov ve çalışma arkadaşları bunu 2018'de stokastik ağırlık ortalaması için gösterdi. Ultralytics YOLO eğitimi bunu her YOLO26 çalıştırmasına uygular: her eniyileyici adımından sonra 0.9999'a doğru yükselen bir sönümleme oranıyla güncellenen üstel hareketli ağırlık ortalamasını tutar ve ham ağırlıklar yerine bu ortalamayı doğrular ve best.pt ile last.pt içinde kaydeder.










