Makine Öğreniminde Güçlendirme Teknikleri: Doğruluğu Artırma ve Hataları Azaltma
Yayınlanan: 2025-01-16Boosting, makine öğreniminde (ML) hataları azaltarak model doğruluğunu artıran güçlü bir topluluk öğrenme tekniğidir. Önceki eksiklikleri gidermek için sıralı modelleri eğiterek güçlendirme, güçlü tahmin sistemleri oluşturur. Bu kılavuz, güçlendirmenin nasıl çalıştığını kapsar; avantajları, zorlukları ve uygulamaları; ve bunun torbalamayla karşılaştırıldığında nasıl olduğu.
İçindekiler
- Arttıran nedir?
- Önyargı ve varyans
- Arttırma ve torbalama
- Güçlendirme nasıl çalışır?
- Güçlendirme algoritmalarının türleri
- Yükseltme uygulamaları
- Arttırmanın avantajları
- Güçlendirmenin zorlukları ve sınırlamaları
Arttıran nedir?
Güçlendirme, topluluktaki önceki modellerin hatalarını düzeltmek için yeni, sıralı modelleri eğiten bir topluluk öğrenme tekniğidir. Topluluk öğrenme teknikleri, performansı ve doğruluğu artırmak için birden fazla benzer modeli kullanmanın yollarıdır. Güçlendirmede yeni modeller yalnızca topluluğun önceki hatalarına göre eğitilir. Daha sonra yeni modeller daha doğru tahminler vermesine yardımcı olmak için topluluğa katılıyor. Her türlü yeni girdi modellerden geçirilir ve tüm modellerdeki hataları azaltmak için toplanır.
Doğruluk geniş bir kavramdır. Yükseltme, model yanlılığını (ve daha az ölçüde varyansı) azaltarak model performansını özellikle artırır. Varyans ve önyargı, bir sonraki bölümde ele alacağımız iki önemli makine öğrenimi kavramıdır.
Önyargı ve varyans
Önyargı ve varyans, bir bütün olarak makine öğreniminin iki temel özelliğidir. Herhangi bir makine öğrenimi algoritmasının amacı, modellerin varyansını ve önyargısını azaltmaktır. Önemleri göz önüne alındığında, her biri hakkında daha fazla bilgi vereceğiz ve neden genellikle birbirleriyle anlaşmazlık içinde olduklarını açıklayacağız.
Her bir kavramı açıklamak için, evlerin özelliklerine (örneğin metrekare, yatak odası sayısı vb.) ilişkin veriler verilerek satış fiyatının tahmin edilmesi örneğini ele alalım.
Ön yargı
Önyargı, bir modelin ortalama olarak ne kadar yanlış olduğunun bir ölçüsüdür. Bir ev gerçekten 400.000 dolara satılıyorsa ve model 300.000 dolar öngörüyorsa, bu veri noktasına ilişkin sapma -100.000 dolardır. Tüm eğitim veri kümesindeki önyargının ortalamasını alın ve bir modelin önyargısına sahip olun.
Önyargı genellikle modellerin özellikler ve çıktılar arasındaki karmaşık ilişkileri kavrayamayacak kadar basit olmasından kaynaklanır. Çok basit bir model, yalnızca metrekareye bakmayı öğrenebilir ve eğitim verilerinde bile sürekli olarak yanılgıya düşebilir. ML dilinde buna yetersiz uyum denir.
Varyans
Varyans, benzer girdiler verildiğinde bir modelin çıktılarının ne kadar farklı olduğunu ölçer. Çoğu durumda, benzer mahallelerdeki ve benzer metrekare, yatak odası ve banyo sayısına sahip evlerin fiyatlarının benzer olması gerekir. Ancak varyansı yüksek bir model çok farklı fiyatlar verebilir. Neden?
Model, eğitim verilerinden sahte ilişkiler öğrenmiş olabilir (örneğin, ev numaralarının fiyatı etkilediğini düşünmek). Bu sahte ilişkiler daha sonra verilerdeki yararlı ilişkileri bastırabilir. Genel olarak karmaşık modeller, aşırı uyum adı verilen bu ilgisiz ilişkileri yakalar.
Önyargı-varyans değiş tokuşu
İdeal olarak, verilerdeki gerçek ilişkileri yakalayacak, ancak daha fazlasını değil, düşük önyargılı, düşük varyanslı bir makine öğrenimi modeli istiyorsunuz. Ancak pratikte bunu yapmak zordur.
Bir modelin gelişmişliğini veya karmaşıklığını artırmak, ona verilerdeki daha derin kalıpları bulma gücü vererek önyargısını azaltabilir. Bununla birlikte, aynı güç aynı zamanda ilgisiz kalıpları bulmasına da yardımcı olabilir ve bunun tersi de bu önyargı-varyans değiş tokuşunun çözülmesini zorlaştırır.
Artırma önyargıyı ve varyansı iyileştirir
Yükseltme çok popüler bir toplu öğrenme tekniğidir çünkü hem önyargıyı hem de varyansı azaltabilir (ancak varyans azaltma o kadar yaygın değildir).
Yükseltme, önceki hataları düzelterek ortalama hata oranını ve model grubunun boyutunu azaltır ve önyargıyı azaltır.
Birden fazla model kullanılarak, bireysel modellerdeki hatalar iptal edilebilir ve bu da potansiyel olarak daha düşük varyansa yol açabilir.
Arttırma ve torbalama
Topluluk öğreniminde en yaygın iki teknik güçlendirme ve torbalamadır. Bagging, eğitim veri kümesini alır, bunun rastgele alt kümelerini oluşturur ve her alt kümede farklı bir modeli eğitir. Daha sonra modeller tahminlerde bulunmak için birlikte kullanılır. Bu, torbalama ve güçlendirme arasında aşağıda ayrıntılarıyla açıklayacağımız birkaç farklılığa yol açmaktadır.
Torbalama | Artırma | |
Model eğitimi | Modeller farklı veri alt kümeleri üzerinde paralel olarak eğitilir. | Modeller sırayla eğitilir ve her model bir önceki modelin hatalarına odaklanır. |
Hata azaltma odağı | Varyansı azaltır | Önyargıyı azaltır |
Ortak algoritmalar | Rastgele orman, torbalanmış karar ağaçları | AdaBoost, degrade artırma, XGBoost |
Aşırı uyum riski | Rastgele örnekleme nedeniyle daha düşük aşırı uyum riski | Aşırı uyum riski daha yüksek |
Hesaplama karmaşıklığı | Daha düşük | Daha yüksek |
Her iki teknik de yaygındır ancak güçlendirme daha popüler bir seçimdir çünkü önyargıyı ve sapmayı azaltabilir.
Güçlendirme nasıl çalışır?
Güçlendirmenin nasıl çalıştığına bakalım. Temel olarak güçlendirme, her yeni modelin önceki modellerin yanlış anladığı veri noktaları üzerinde eğitilmesinden oluşur. Üç bölüm vardır:
- Eğitim verilerini hatalara göre ağırlıklandırma
- Bu ağırlıklı hata veri kümesinde yeni bir modelin eğitilmesi
- Yeni modelin topluluğa eklenmesi
Başlangıç olarak, ilk modeli (bir modelden oluşan bir topluluk) eğittiğimizi varsayalım.
Eğitim verilerini hatalara göre ağırlıklandırma
Eğitim verilerini mevcut topluluk üzerinden çalıştırıyoruz ve topluluğun hangi girdiler için yanlış tahminler verdiğini not ediyoruz. Daha sonra, bu sorunlu girdilerin daha fazla temsil edildiği veya daha önemli olduğu eğitim veri setinin değiştirilmiş bir versiyonunu oluştururuz.
Yeni modeli eğitmek
Topluluktaki diğer modellerle aynı türde olan yeni bir modeli eğitmek için oluşturduğumuz değiştirilmiş veri setini kullanıyoruz. Ancak bu yeni model, eğitim verilerinden elde edilen zor örneklere daha fazla odaklandığından, muhtemelen bunlar üzerinde daha iyi performans gösterecektir. Hata performansındaki bu iyileşme, önyargının azaltılmasının önemli bir parçasıdır.
Yeni modelin dahil edilmesi
Yeni eğitilen model topluluğa eklenir ve tahminleri doğruluklarına göre ağırlıklandırılır. Buna paralel olarak, topluluktaki her modele yeni girdi aktarılır ve her modelin nihai çıktıları, topluluğun çıktısını elde etmek için ağırlıklandırılır.
Sınıflandırma görevleri için (genellikle yükseltme problemlerinde iki etiket arasında seçim yapmak), bunun için en yüksek ağırlıklı oy toplamına sahip olan sınıf, topluluğun tahmini olarak seçilir.
Regresyon görevleri için topluluğun tahmini, her modelin tahmininin ağırlıklı ortalamasıdır.
Bu noktada eğer sapma hâlâ çok yüksekse süreç tekrarlanabilir.
Güçlendirme algoritmalarının türleri
Güçlendirme algoritmalarının çeşitli çeşitleri vardır ve aralarında bazı büyük farklar vardır. En popülerleri uyarlanabilir güçlendirme (AdaBoost), degrade artırma, aşırı degrade artırma (XGBoost) ve kedi güçlendirmedir. Her birini sırayla ele alacağız.
AdaBoost
AdaBoost, daha önce ortaya koyduğumuz güçlendirme algoritmasına çok benzer: Daha önceki topluluklar için sorun teşkil eden eğitim verileri, bir sonraki model eğitilirken daha fazla ağırlıklandırılır. AdaBoost orijinal güçlendirme algoritmalarından biriydi ve basitliğiyle biliniyordu.
AdaBoost, diğer güçlendirme algoritmalarına göre fazla uyum sağlamaya daha az eğilimlidir çünkü yeni modeller, eğitim veri kümesinin farklı varyasyonlarını (katı veri noktaları daha yaygın olmak üzere) görmektedir. Ancak diğer güçlendirme teknikleriyle karşılaştırıldığında aykırı verilere karşı daha hassastır ve önyargıyı o kadar azaltmaz.
Gradyan artırma
Gradyan artırma, yükseltmeye yönelik benzersiz bir yaklaşımdır. Uyarlanabilir güçlendirmenin aksine, yeni modeller eğitim veri kümesinin hata ağırlıklı bir versiyonunu almaz. Orijinal veri kümesini alırlar. Ancak veri setindeki girdilerin çıktılarını tahmin etmeye çalışmak yerine, her girdideki önceki topluluğun negatif gradyanını tahmin etmeye çalışırlar.
Negatif eğim, aslında topluluğun model ağırlıklarının ve tahminlerinin hatayı azaltmak, yani doğru cevaba yaklaşmak için hareket etmesi gereken yöndür. Negatif gradyanlar, önceki topluluğun çıktı tahminine, onu doğru olmaya yaklaştıracak şekilde eklenir (bir ağırlıklandırma faktörü uygulanarak).
Gradyan artırma, özellikle karmaşık verilerde AdaBoosting'den çok daha performanslıdır. Ayarlanacak daha fazla hiper parametre de var; bu da insanlara daha fazla kontrol sağlıyor ama aynı zamanda deney ihtiyacını da artırıyor.
XGBoost
XGBoost (veya aşırı degrade artırma), degrade artırmanın oldukça optimize edilmiş bir versiyonudur. XGBoost, degrade artırma eğitimini ve çıkarımı çok daha paralel hale getirir. XGBoost ayrıca aşırı uyumu önlemek ve eksik verileri daha iyi ele almak için düzenlileştirme (yani karmaşıklık için cezalar) ekler. Son olarak XGBoost, büyük veri kümeleri veya iş yükleri için çok daha ölçeklenebilir.
XGBoost, degrade artırmadan bile daha performanslıdır ve 2010'ların en popüler makine öğrenimi algoritmalarından biriydi. Ancak yorumlanması daha zor ve çalıştırılması hesaplama açısından çok daha pahalı.
KediBoost
CatBoost, kategorik veriler üzerinde çalışmak üzere tasarlanmış bir degrade artırma biçimidir. Kategorik veriler, değerlerin birkaç sınırlı grupta olabildiği verilerdir. İşte bazı örnekler:
- Evet-hayır veri (örn. evin garajı var mı?)
- Renk kategorileri (örneğin, kırmızı, mavi, yeşil)
- Ürün kategorileri (ör. elektronik, giyim, mobilya)
Gradyan artırma modelleri genellikle kategorik verilerle iyi çalışmazken CatBoost bunu yapar. CatBoost ayrıca sürekli verileri işleyebilir, bu da onu başka bir popüler güçlendirme seçeneği haline getiriyor. Diğer gradyan artırma modellerinde olduğu gibi, CatBoost da hesaplama karmaşıklığından ve aşırı uyumdan muzdariptir.
Yükseltme uygulamaları
Hatalar ve sapmalar genellikle istediğimizden daha yüksek olduğundan, yükseltme hemen hemen her makine öğrenimi sorununa uygulanabilir. Sınıflandırma ve regresyon makine öğreniminin büyük alt bölümlerinden ikisidir ve güçlendirme her ikisi için de geçerlidir. İçerik önerileri ve sahtekarlık tespiti, artırmanın da yardımcı olabileceği şirketlerin karşılaştığı makine öğrenimi sorunlarına iki örnektir.
Sınıflandırma ve regresyon
Sınıflandırma ve regresyon temel makine öğrenimi görevlerinden ikisidir. Kullanıcı, bir görselin köpek mi yoksa kedi mi içerip içermediğini tahmin etmek isteyebilir (sınıflandırma) veya bir evin satış fiyatını tahmin etmek isteyebilir (regresyon). Yükseltme, özellikle temel modeller zayıf olduğunda veya karmaşık olmadığında, her iki görev için de işe yarar.
İçerik önerileri
Yükseltme, kullanıcı tercihlerine göre tahmin doğruluğunu sürekli olarak iyileştirerek içerik önerilerini (ör. Netflix'in sizin için önerdiği filmler) geliştirir. Bir öneri modeli belirli izleme modellerini (mevsimsel tercihler veya bağlama bağlı seçimler gibi) yakalamakta başarısız olduğunda, yükseltme, özellikle bu kaçırılan kalıplara odaklanan ek modeller oluşturur. Dizideki her yeni model, daha önce kötü tahmin edilen kullanıcı tercihlerine ekstra ağırlık vererek daha düşük hatalara yol açıyor.
Dolandırıcılık tespiti
Finans şirketleri için yaygın bir kullanım örneği olan dolandırıcılık tespitinde, yanlış sınıflandırılmış işlemlerden giderek daha fazla ders alınarak üstünlük sağlanır. İlk modeller karmaşık dolandırıcılık modellerini kaçırıyorsa, daha yeni güçlendirilmiş modeller özellikle bu sorunlu durumları hedef alıyor. Bu teknik, son zamanlardaki yanlış sınıflandırmalara daha fazla ağırlık vererek değişen dolandırıcılık taktiklerine özellikle iyi uyum sağlıyor ve sistemin yüksek tespit oranlarını korumasına olanak tanıyor.
Arttırmanın avantajları
Yükseltme, model önyargısını ve daha az ölçüde sapmayı azaltmada mükemmeldir. Diğer birleştirme teknikleriyle karşılaştırıldığında daha az veri gerektirir ve insanlara aşırı uyum konusunda daha fazla kontrol sağlar.
Azaltılmış önyargı ve varyans
Yüksek önyargı, modellerin sıklıkla yanlış olduğu anlamına gelir. Yükseltme, modellerdeki önyargıyı azaltmak için harika bir tekniktir. Her model önceki modellerin hatalarını düzeltmeye odaklandığından, topluluk bir bütün olarak hata oranını azaltır.
Azalan varyansın bir yan etkisi de vardır: Daha yeni modeller, farklı eğitim verileri karışımlarına sahip olabilir ve bu da farklı modellerdeki hataların birbirini iptal etmesine olanak tanır.
Daha az veriye ihtiyaç duyar
Diğer birleştirme tekniklerinden farklı olarak, artırmanın iyi çalışması için çok büyük bir veri kümesine ihtiyacı yoktur. Her yeni model öncelikle eski modellerin hatalarına odaklandığından dar bir hedefi vardır ve tonlarca veriye ihtiyaç duymaz. Yeni model, mevcut eğitim verilerini kullanabilir ve hatalar üzerinde tekrar tekrar eğitim verebilir.
Aşırı uyum üzerinde daha fazla kontrol
Yükseltme, her yeni modelin topluluk tahminine ne kadar katkıda bulunduğunu kontrol eden birkaç hiper parametreye sahiptir. Kullanıcılar bu hiperparametreleri değiştirerek yeni modellerin etkisini azaltabilirler. Bu, önyargıyı artıracak, ancak potansiyel olarak varyansı azaltacak ve kullanıcılara önyargı-varyans dengelemesinde nereye varmak istedikleri konusunda kontrol imkanı verecek.
Güçlendirmenin zorlukları ve sınırlamaları
Güçlendirmenin de uyarıları var. Eğitilmesi ve kullanılması daha fazla zaman gerektirir, aykırı verilere karşı duyarlıdır ve daha fazla hiperparametre ayarı gerektirir.
Daha uzun eğitim süresi
Güçlendirmede her yeni model, önceki topluluğun hatalarına bağlıdır. Bu, modellerin teker teker eğitilmesi gerektiği anlamına gelir ve bu da uzun eğitim sürelerine yol açar. Diğer bir dezavantaj ise sıralı eğitimin, bir düzine modeli eğitene kadar güçlendirmenin etkili olup olmayacağını bilemeyeceğiniz anlamına gelmesidir.
Aykırı hassasiyet
Güçlendirmede yeni modeller yalnızca önceki modellerin hatalarına odaklanır. Eğitim setindeki göz ardı edilmesi gereken bazı aykırı veriler daha sonraki modellerin tek odak noktası haline gelebilir. Bu, topluluğun genel performansını düşürebilir ve eğitim süresini boşa çıkarabilir. Aykırı değerlerin etkilerini ortadan kaldırmak için dikkatli veri işlemeye ihtiyaç duyulabilir.
Daha fazla hiperparametre ayarı
Kullanıcılara aşırı uyum üzerinde daha fazla kontrol vermenin avantajı, aynı zamanda kullanıcıların önyargı ve varyans arasında iyi bir denge bulmak için daha fazla hiper parametre ayarlaması gerektiği anlamına da gelir. Çoğu zaman çoklu güçlendirme deneylerine ihtiyaç duyulur, bu da sıralı eğitimi daha da sıkıcı hale getirir. Güçlendirme çok fazla hesaplama kaynağı gerektirir.