Makine Öğreniminde Güçlendirme: Nedir, İşlevler, Türler ve Özellikler
Yayınlanan: 2020-05-29Makine Öğreniminde Güçlendirme önemli bir konudur. Birçok analist bu terimin anlamı konusunda kafa karıştırıyor. Bu nedenle, bu makalede Makine Öğrenimi güçlendirmenin ne anlama geldiğini ve nasıl çalıştığını öğreneceğiz. Güçlendirme, ML modellerinin tahmin doğruluğunu iyileştirmesine yardımcı olur. Bu algoritmayı ayrıntılı olarak tartışalım:
İçindekiler
Makine Öğreniminde Boost Nedir?
' Machine Learning boosting ' konusunu tartışmadan önce, bu terimin tanımını ele almalıyız. Güçlendirme, 'bir şeyi iyileştirmeye teşvik etmek veya yardımcı olmak' anlamına gelir. Makine öğrenimini güçlendirme, makine öğrenimi modellerini güçlendirdiği ve doğruluğunu artırdığı için tam olarak aynı şeyi yapar. Bu nedenle veri biliminde popüler bir algoritmadır.
ML'de artırma, zayıf öğrenme modellerini güçlü olanlara dönüştüren algoritmaları ifade eder. E-postaları 'Spam' ve 'Spam Değil' kategorilerinde sınıflandırmamız gerektiğini varsayalım. Bu ayrımları yapmak için aşağıdaki yaklaşımı kullanabiliriz:
- E-postada yalnızca tek bir resim dosyası varsa, bu spam'dir (çünkü resim genellikle tanıtım amaçlıdır)
- E-posta 'Piyango kazandınız' benzeri bir ifade içeriyorsa, bu spam'dir.
- E-posta yalnızca bir grup bağlantı içeriyorsa, spam'dir.
- E-posta, kişi listemizde bulunan bir kaynaktan geliyorsa, spam değildir.
Şimdi, sınıflandırma kurallarımız olmasına rağmen, bireysel olarak bir e-postanın spam olup olmadığını belirlemek için yeterince güçlü olduklarını düşünüyor musunuz? Onlar değil. Bireysel olarak, bu kurallar zayıftır ve bir e-postayı 'Spam Değil' veya 'Spam' olarak sınıflandırmak için yeterli değildir. Onları daha güçlü hale getirmemiz gerekecek ve bunu ağırlıklı bir ortalama kullanarak veya daha yüksek oy tahminini dikkate alarak yapabiliriz.
Bu durumda, beş sınıflandırıcımız var, bunlardan üçü e-postayı 'Spam' olarak işaretliyor, bu nedenle bu sınıfın oyu 'Spam Değil'den daha yüksek olduğu için varsayılan olarak bir e-postayı 'Spam' olarak kabul edeceğiz. kategori.
Bu örnek size boosting algoritmalarının ne olduğu hakkında bir fikir vermek içindi. Onlar bundan daha karmaşık.

Şuna bir göz atın: 25 Makine Öğrenimi Mülakat Soruları ve Cevapları
Nasıl çalışırlar?
Yukarıdaki örnek bize, pekiştirmenin zayıf öğrenenleri katı kurallar oluşturmak için birleştirdiğini göstermiştir. Peki, bu zayıf kuralları nasıl tanımlarsınız? Belirsiz bir kural bulmak için örnek tabanlı öğrenme algoritmaları kullanmanız gerekir. Bir temel öğrenme algoritması uyguladığınızda, zayıf bir tahmin kuralı üretecektir. Bu işlemi birden çok yineleme için tekrarlayacaksınız ve her yinelemede artırma algoritması, güçlü bir kural oluşturmak için zayıf kuralları birleştirir.
Güçlendirme algoritması, birkaç adımda her yineleme için doğru dağıtımı seçer. İlk olarak, tüm çeşitli tahsisleri alacak ve onlara eşit ağırlık atayacaktır. İlk temel öğrenme algoritması bir hata yaparsa, bu gözlemlere daha fazla ağırlık katacaktır. Ağırlıkları atadıktan sonra bir sonraki adıma geçiyoruz.
Bu adımda, algoritmamızın doğruluğunu artırana kadar işlemi tekrarlamaya devam edeceğiz. Daha sonra zayıf öğrencilerin çıktılarını birleştireceğiz ve modelimizi güçlendirecek ve daha iyi tahminler yapmasına yardımcı olacak güçlü bir tane yaratacağız. Bir artırma algoritması, zayıf kuralları nedeniyle yüksek hatalara neden olan varsayımlara daha fazla odaklanır.
Daha fazla bilgi edinin: Makine Öğreniminin 5 Çığır Açan Uygulaması
Farklı Artırıcı Algoritma Türleri
Hızlandırma algoritmaları, marj maksimize ediciler, karar damgaları ve diğerleri dahil olmak üzere birçok temel motor türünü kullanabilir. Öncelikle, üç tür Makine Öğrenimi artırma algoritması vardır:
- Uyarlanabilir Güçlendirme (AdaBoosta olarak da bilinir)
- Gradyan Artırma
- XGBoost
İlk ikisi olan AdaBoost ve Gradient Boosting'i bu makalede kısaca tartışacağız. XGBoost, başka bir makalede tartışacağımız çok daha karmaşık bir konudur.
1. Uyarlanabilir Güçlendirme
Beş artı ve beş eksi olan bir kutunuz olduğunu varsayalım. Senin görevin onları sınıflandırmak ve farklı tablolara koymak.
İlk yinelemede, her veri noktasına eşit ağırlıklar atarsınız ve kutuya bir karar kütüğü uygularsınız. Bununla birlikte, çizgi gruptan yalnızca iki artıyı ayırır ve diğerleri bir arada kalır. Karar kütüğünüz (ki bu bizim varsayılan kutumuzdan geçen bir çizgidir), tüm veri noktalarını doğru tahmin edemez ve eksilerle birlikte üç artı yerleştirmiştir.

Bir sonraki yinelemede, daha önce kaçırdığımız üç artıya daha fazla ağırlık veriyoruz; ama bu sefer karar kütüğü gruptan sadece iki dakika ayırıyor. Bu yinelemede kaçırdığımız eksilere daha fazla ağırlık atayacağız ve işlemi tekrarlayacağız. Bir veya iki tekrardan sonra, bu sonuçlardan birkaçını bir katı tahmin kuralı oluşturmak için birleştirebiliriz.
AdaBoost aynen bu şekilde çalışır. Önce orijinal verileri kullanarak tahmin yapar ve her noktaya eşit ağırlık verir. Daha sonra ilk öğrenenin doğru tahmin edemediği gözlemlere daha fazla önem verir. Modelin doğruluğunda bir sınıra ulaşana kadar işlemi tekrarlar.
Adaboost ile karar damgalarını ve diğer Makine Öğrenimi algoritmalarını kullanabilirsiniz.
İşte Python'da bir AdaBoost örneği:
sklearn.ensemble'dan AdaBoostClassifier'ı içe aktarın
sklearn.datasets'ten make_classification dosyasını içe aktarın
X,Y = make_classification(n_samples=100, n_features=2, n_informative=2,
n_redundant=0, n_repeated=0, random_state=102)
clf = AdaBoostClassifier(n_estimators=4, random_state=0, algoritma='SAMME')
clf.fit(X, Y)
2. Gradyan Artırma
Gradient Boost , tüm operasyonun kayıp fonksiyonunu azaltmak için gradyan iniş yöntemini kullanır. Gradyan iniş, bir fonksiyonun (diferansiyellenebilir fonksiyon) yerel minimumunu bulan birinci dereceden bir optimizasyon algoritmasıdır. Gradyan artırma, birden fazla modeli sırayla eğitir ve yanıtın daha iyi bir tahminini elde etmek için yeni modellere uyabilir.
Kayıp fonksiyonunun negatif gradyanı ile ilişki kurabilen ve tüm sisteme bağlı yeni temel öğreniciler oluşturur. Python'da Gradient Tree Boosting (GBRT olarak da bilinir) kullanmanız gerekir. Sınıflandırma ve regresyon problemleri için kullanabilirsiniz.
Python'da Gradient Tree Boost'a bir örnek:
sklearn.ensemble'dan GradientBoostingRegressor'u içe aktarın
model = GradientBoostingRegressor(n_estimators=3,learning_rate=1)
model.fit(X,Y)
# sınıflandırma için
sklearn.ensemble'dan GradientBoostingClassifier'ı içe aktarın
model = GradientBoostingClassifier()

model.fit(X,Y)
Makine Öğreniminde Güçlendirmenin Özellikleri
Güçlendirme birçok avantaj sunar ve diğer algoritmalar gibi sınırlamaları da vardır:
- Yükseltme tahminlerini yorumlamak oldukça doğaldır çünkü bu bir topluluk modelidir.
- Bu algoritmanın bir başka avantajı da özellikleri örtük olarak seçer.
- Hızlandırma algoritmalarının tahmin gücü, karar ağaçlarından ve torbalamadan daha güvenilirdir.
- Ölçeklendirmek biraz zor, çünkü artırmadaki her tahmin edici, önceki tahmin edicilere dayanıyor.
Ayrıca okuyun: Yeni Başlayanlar için Makine Öğrenimi Proje Fikirleri
Buradan nereye gidilir?
Güçlendirmeyle ilgili bu makaleyi yararlı bulduğunuzu umuyoruz. İlk olarak, bu algoritmanın ne olduğunu ve Makine Öğrenimi problemlerini nasıl çözdüğünü tartıştık. Ardından işleyişine ve nasıl çalıştığına bir göz attık.
Ayrıca çeşitlerini de tartıştık. AdaBoost ve Gradient Boosting'i de örneklerini paylaşırken öğrendik. Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT- sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka PG Diplomasına göz atın. B Mezun statüsü, 5+ pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.
Basit terimlerle makine öğreniminde güçlendirmeyi nasıl tanımlayabilirim?
Makinelerde güçlendirme, zayıf öğrenme modellerini güçlü modellere dönüştürmeye yardımcı olan algoritmalara atıfta bulunmaktan oluşur. E-postaları spam değil spam olarak sınıflandırma örneğini alırsak, anlaşılmasını kolaylaştırmak için kullanılabilecek belirli ayrımlar vardır. Bu ayrımlara, bir e-postanın tek bir dosyası olduğunda, piyangoyu kazandınız gibi benzer bir ifade içerdiğinde, bir sürü bağlantı içerdiğinde ve bir kişi listesinden kaynaklandığında yaklaşılabilir.
Yükseltme algoritması nasıl çalışır?
Zayıf kurallar, örnek tabanlı öğrenme algoritmaları kullanılarak belirlenir. Temel öğrenme algoritması birden fazla yinelemede uygulandığında, sonunda zayıf kuralları tek bir güçlü kuralda birleştirir. Güçlendirme algoritması, her yinelemeyi birden çok adımda dağıtmak için doğru seçimleri yapar. Tahsisleri aldıktan sonra, bir hata yapılana kadar eşit ağırlık atar, ardından daha fazla ağırlık atanır. Bu işlem daha iyi doğruluk elde edilene kadar tekrarlanır. Daha sonra, tüm zayıf çıktılar, güçlü bir çıktı yapmak için birleştirilir.
Farklı türde artırma algoritmaları ve özellikleri nelerdir?
Farklı türler, uyarlanabilir güçlendirme, gradyan artırma ve XGBoost'tur. Boost, özellikleri örtük olarak seçiyor gibi özelliklere sahiptir. Karar ağaçları, tahmin güçlerinden daha az güvenilirdir. Ayrıca ölçeklendirme daha zordur çünkü tahminciler öncekilere dayalıdır. Ve bir topluluk modeli olduğu için boost tahminlerini yorumlamak doğaldır.