Makine öğrenimi, çeşitli karmaşık regresyon ve sınıflandırma görevleri için tahmine dayalı modeller oluşturmak için en popüler teknolojilerden biridir. Gradyan Arttırma Makinesi (GBM) en güçlü güçlendirme algoritmalarından biri olarak kabul edilir.
Makine öğreniminde kullanılan pek çok algoritma olmasına rağmen, güçlendirme algoritmaları dünya çapındaki makine öğrenimi topluluğunda ana akım haline geldi. Güçlendirme tekniği, topluluk öğrenme kavramını takip eder ve dolayısıyla nihai çıktıyı oluşturmak için birden fazla basit modeli (zayıf öğrenenler veya temel tahminciler) birleştirir. GBM aynı zamanda makine öğreniminde zayıf öğrenenleri güçlü öğrenenlere dönüştüren bir topluluk yöntemi olarak da kullanılır. Bu konuda, 'Makine Öğreniminde GBM' Gradyan makine öğrenimi algoritmalarını, makine öğrenimindeki çeşitli güçlendirme algoritmalarını, GBM'nin tarihçesini, nasıl çalıştığını, GBM'de kullanılan çeşitli terminolojileri vb. tartışacağız. Ancak başlamadan önce, makine öğrenimindeki güçlendirme kavramını ve çeşitli güçlendirme algoritmalarını anlayın.
Makine Öğreniminde Artan Nedir?
Güçlendirme, çeşitli zayıf sınıflandırıcılardan güçlü sınıflandırıcılar oluşturmak için kullanılan popüler öğrenme topluluğu modelleme tekniklerinden biridir. Mevcut eğitim veri setlerinden birincil bir model oluşturmakla başlar ve ardından temel modelde mevcut olan hataları tanımlar. Hatanın belirlenmesinin ardından ikincil bir model oluşturulmakta ve daha sonra bu süreçte üçüncü bir model tanıtılmaktadır. Bu şekilde, daha fazla model tanıtma süreci, modelin doğru tahmin ettiği eksiksiz bir eğitim veri seti elde edene kadar devam eder.
AdaBoost (Uyarlamalı güçlendirme), makine öğrenimi tarihinde çeşitli zayıf sınıflandırıcıları tek bir güçlü sınıflandırıcıda birleştiren ilk güçlendirme algoritmasıdır. Öncelikle ikili sınıflandırma gibi sınıflandırma görevlerini çözmeye odaklanır.
Algoritmaları Güçlendirme Adımları:
Algoritmayı güçlendirmenin birkaç önemli adımı vardır:
- Farklı veri noktalarına sahip bir veri kümesi düşünün ve onu başlatın.
- Şimdi her veri noktasına eşit ağırlık verin.
- Bu ağırlığı model için bir girdi olarak kabul edin.
- Yanlış sınıflandırılan veri noktalarını belirleyin.
- 4. adımda veri noktalarının ağırlığını artırın.
- Uygun çıktıyı alırsanız bu işlemi sonlandırın, aksi takdirde 2. ve 3. adımları tekrar izleyin.
Örnek:
Diyelim ki, tahminleriyle birlikte üç farklı modelimiz var ve bunlar tamamen farklı şekillerde çalışıyor. Örneğin, doğrusal regresyon modeli verilerde doğrusal bir ilişki gösterirken, karar ağacı modeli aşağıdaki resimde gösterildiği gibi verilerdeki doğrusal olmayan durumu yakalamaya çalışır.
Ayrıca bu modelleri ayrı ayrı kullanarak sonucu tahmin etmek yerine seri veya kombinasyon halinde kullanırsak tüm temel modellerden daha doğru bilgiye sahip bir sonuç modeli elde ederiz. Başka bir deyişle, her modelin bireysel tahminini kullanmak yerine bu modellerden ortalama tahmin kullanırsak verilerden daha fazla bilgi elde edebiliriz. Topluluk öğrenmesi olarak anılır ve güçlendirme aynı zamanda makine öğrenimindeki topluluk yöntemlerine de dayanır.
Makine Öğreniminde Algoritmaları Güçlendirme
Makine öğrenmesinde öncelikli olarak 4 adet hızlandırma algoritması bulunmaktadır. Bunlar aşağıdaki gibidir:
Makine Öğreniminde GBM Nedir?
Gradient Boosting Machine (GBM), makine öğreniminde en popüler ileri öğrenme topluluğu yöntemlerinden biridir. Regresyon ve sınıflandırma görevleri için tahmine dayalı modeller oluşturmaya yönelik güçlü bir tekniktir.
GBM, karar ağaçları gibi zayıf tahmin modellerinin bir topluluğu şeklinde tahmine dayalı bir model elde etmemize yardımcı olur. Bir karar ağacı zayıf bir öğrenen olarak performans gösterdiğinde ortaya çıkan algoritmaya gradyan destekli ağaçlar adı verilir.
Çeşitli öğrenci modellerinden gelen tahminleri birleştirmemize ve doğru tahmine sahip son bir tahmin modeli oluşturmamıza olanak tanır.
Ancak burada aynı algoritmayı uyguluyorsak birden fazla karar ağacının tek bir karar ağacından nasıl daha iyi tahminler verebileceği sorusu ortaya çıkabilir. Dahası, her karar ağacı aynı verilerden farklı bilgileri nasıl yakalıyor?
Dolayısıyla bu soruların cevabı, en iyi bölünmeyi seçmek için her karar ağacının düğümleri tarafından farklı bir özellik alt kümesinin alınmasıdır. Bu, her ağacın farklı davrandığı ve dolayısıyla aynı veriden farklı sinyaller yakaladığı anlamına gelir.
Java programları
GBM nasıl çalışır?
Genel olarak denetimli öğrenme algoritmalarının çoğu, doğrusal regresyon, cezalandırılmış regresyon modeli, karar ağaçları vb. gibi tek bir tahmin modeline dayanır. Ancak ML'de, topluluk boyunca çeşitli modellerin bir kombinasyonuna dayanan bazı denetimli algoritmalar vardır. Başka bir deyişle, birden fazla temel model tahminlerine katkıda bulunduğunda, tüm tahminlerin ortalaması, yükseltme algoritmaları tarafından uyarlanır.
Kademeli güçlendirme makineleri aşağıdaki gibi 3 unsurdan oluşur:
- Kayıp fonksiyonu
- Zayıf öğrenciler
- Katkı modeli
Bu üç unsuru ayrıntılı olarak anlayalım.
1. Kayıp fonksiyonu:
Bununla birlikte, makine öğreniminde çözülen görevlerin türüne bağlı olarak kullanılabilecek büyük bir Kayıp fonksiyonları ailesi vardır. Kayıp fonksiyonunun kullanımı, koşullu dağılımın sağlamlık gibi belirli özelliklerinin talebi ile tahmin edilir. Görevimizde kayıp fonksiyonunu kullanırken, kayıp fonksiyonunu ve buna karşılık gelen negatif gradyanı hesaplayacak fonksiyonu belirtmemiz gerekir. Bu iki işlevi elde ettiğimizde, bunlar kolaylıkla gradyan artırma makinelerine uygulanabilir. Ancak GBM algoritmaları için halihazırda önerilen çeşitli kayıp fonksiyonları vardır.
Kayıp fonksiyonunun sınıflandırılması:
Yanıt değişkeni y'nin türüne bağlı olarak kayıp fonksiyonu aşağıdaki gibi farklı türlere ayrılabilir:
- Gauss L2 kayıp fonksiyonu
- Laplace L1 kayıp fonksiyonu
- Huber kayıp fonksiyonu, δ belirtildi
- Nicel kayıp fonksiyonu, α belirtildi
- Binom kayıp fonksiyonu
- Adaboost kayıp fonksiyonu
- Hayatta kalma modelleri için kayıp fonksiyonları
- Kayıp fonksiyonları verileri sayar
- Özel kayıp fonksiyonları
2. Zayıf Öğrenci:
Zayıf öğrenenler, geçmiş hatalardan öğrenen ve makine öğreniminde algoritmaları güçlendirmek için güçlü bir tahmine dayalı model tasarımı oluşturmaya yardımcı olan temel öğrenen modelleridir. Genel olarak karar ağaçları algoritmaları güçlendirmede zayıf öğrenenler olarak çalışır.
Güçlendirme, temel modellerden elde edilen çıktıyı iyileştirmek için sürekli çalışan çerçeve olarak tanımlanır. Birçok gradyan artırma uygulaması, çeşitli zayıf öğrenci sınıflarını emrinizde 'eklemenize' olanak tanır. Bu nedenle, karar ağaçları çoğunlukla zayıf (temel) öğrenenler için kullanılır.
Zayıf öğrenciler nasıl eğitilir:
Makine öğrenimi, temel öğrenicileri eğitmek için eğitim veri kümelerini kullanır ve önceki öğrenicinin tahminine dayanarak, önceki ağacın en büyük hatalara veya kalıntılara sahip olduğu eğitim verisi satırlarına odaklanarak performansı artırır. Örneğin. sığ ağaçlar, birkaç bölünme içerdiğinden, karar verme konusunda zayıf öğrenici olarak kabul edilir. Genel olarak, güçlendirme algoritmalarında 6'ya kadar bölmeye sahip ağaçlar en yaygın olanıdır.
Aşağıda, her ağacın önceki ağacın artıklarıyla aynı sırada olduğu, zayıf öğrenicinin performansını iyileştirmeye yönelik bir eğitim dizisi yer almaktadır. Ayrıca, her yeni ağacı bir önceki ağacın hatalarından ders çıkarabilsin diye tanıtıyoruz. Bunlar aşağıdaki gibidir:
coomeet gibi siteler
- Bir veri seti düşünün ve buna bir karar ağacı yerleştirin.
F1(x)=y - Bir sonraki karar ağacını önceki ağacın en büyük hatalarıyla eşleştirin.
h1(x)=y?F1(x) - Bu yeni ağacı, 1. ve 2. adımlarda ekleyerek algoritmaya ekleyin.
F2(x)=F1(x)+h1(x) - Bir sonraki karar ağacını yine önceki ağacın artıklarıyla eşleştirin.
h2(x)=y?F2(x) - 3. adımda yaptığımızın aynısını tekrarlayın.
F3(x)=F2(x)+h2(x)
Bazı mekanizmalar (yani çapraz doğrulama) bize durmamızı söyleyene kadar bu işleme devam edin. Buradaki son model, b ayrı ağacın aşamalı toplamsal modelidir:
f(x)=B∑b=1fb(x)Bu nedenle ağaçlar, Gini gibi saflık puanlarına dayalı olarak en iyi bölünme noktaları seçilerek veya kayıp en aza indirilerek açgözlülükle inşa edilir.
3. Katkı Modeli:
Eklemeli model, modele ağaçların eklenmesi olarak tanımlanır. Aynı anda birden fazla ağaç eklemememiz gerekse de modeldeki mevcut ağaçların değişmemesi için yalnızca tek bir ağaç eklenmelidir. Ayrıca kaybı azaltmak için ağaçlar ekleyerek gradyan iniş yöntemini de tercih edebiliriz.
Geçtiğimiz birkaç yılda, bir sinir ağındaki regresyon denkleminin katsayısı ve ağırlık gibi parametreler kümesini en aza indirmek için gradyan iniş yöntemi kullanıldı. Hata veya kayıp hesaplandıktan sonra hatayı en aza indirmek için ağırlık parametresi kullanılır. Ancak son zamanlarda çoğu makine öğrenimi uzmanı, bu parametrelerin yerine zayıf öğrenen alt modellerini veya karar ağaçlarını tercih ediyor. Burada hatayı azaltmak ve modelin performansını artırmak için modele bir ağaç eklemeliyiz. Bu şekilde, yeni eklenen ağaçtan elde edilen tahmin, mevcut ağaç serilerinden elde edilen tahminle birleştirilerek nihai bir tahmin elde edilir. Bu süreç, kayıp kabul edilebilir bir seviyeye ulaşana veya artık iyileştirmeye gerek kalmayana kadar devam eder.
Bu yöntem aynı zamanda fonksiyonel gradyan iniş veya fonksiyonlarla gradyan iniş olarak da bilinir.
EXTREME GRADYAN ARTIRMA MAKİNASI (XGBM)
XGBM, GBM'ye çok benzer şekilde çalışan degrade artırma makinelerinin en son sürümüdür. XGBM'de, önceki ağaçların hatalarından öğrenen ve bunları geliştiren ağaçlar sırayla (birer birer) eklenir. Her ne kadar XGBM ve GBM algoritmaları görünüm ve his açısından benzer olsa da aralarında aşağıdaki gibi birkaç fark vardır:
- XGBM, modelin gereğinden az veya fazla takılmasını azaltmak için çeşitli düzenleme teknikleri kullanır; bu da model performansını gradyan artırma makinelerinden daha fazla artırır.
- XGBM her düğümün paralel işlenmesini takip ederken GBM bunu yapmaz, bu da onu gradyan artırma makinelerinden daha hızlı yapar.
- XGBM, eksik değerlerin yüklenmesinden kurtulmamıza yardımcı olur çünkü varsayılan olarak model bununla ilgilenir. Bu değerlerin sağ düğümde mi yoksa sol düğümde mi olması gerektiğini kendi kendine öğrenir.
Hafif Gradyan Arttırma Makineleri (Hafif GBM)
Light GBM, verimliliği ve yüksek hızı nedeniyle Gradient güçlendirme makinesinin daha yükseltilmiş bir versiyonudur. GBM ve XGBM'den farklı olarak büyük miktarda veriyi herhangi bir karmaşıklık olmadan işleyebilir. Sayısı az olan veri noktaları için ise uygun değildir.
Light GBM, seviye bazında büyüme yerine ağacın düğümlerinin yaprak bazında büyümesini tercih eder. Ayrıca, hafif GBM'de birincil düğüm iki ikincil düğüme bölünür ve daha sonra bölünecek bir ikincil düğüm seçer. İkincil düğümün bu şekilde bölünmesi, iki düğüm arasında hangisinin daha fazla kayba sahip olduğuna bağlıdır.
Bu nedenle, yaprak bazında bölünme nedeniyle, Light Gradient Boosting Machine (LGBM) algoritması, büyük miktarda verinin verildiği diğer algoritmalara göre her zaman tercih edilir.
CATBOOST
Catboost algoritması öncelikle bir veri kümesindeki kategorik özellikleri işlemek için kullanılır. GBM, XGBM ve Light GBM algoritmaları sayısal veri kümeleri için uygun olsa da Catboost, kategorik değişkenleri sayısal veriye dönüştürmek için tasarlanmıştır. Dolayısıyla catboost algoritması, kategorik özellikleri başka hiçbir algoritmada bulunmayan sayısal değişkenlere dönüştürmek için gerekli bir ön işleme adımından oluşur.
Algoritmaları Güçlendirmenin Avantajları:
- Güçlendirme algoritmaları, bir modelin gölgede bırakılamayacak daha doğru bir tahmin vermesini sağlayan topluluk öğrenmeyi takip eder.
- Güçlendirme algoritmaları, farklı kayıp fonksiyonlarını optimize edebildiklerinden ve çeşitli hiperparametre ayarlama seçenekleri sunabildiklerinden diğer algoritmalardan çok daha esnektir.
- Hem sayısal hem de kategorik değişkenler için uygun olduğundan veri ön işleme gerektirmez.
- Veri kümesindeki eksik değerlerin atanmasını gerektirmez, eksik verileri otomatik olarak işler.
Algoritmaları Güçlendirmenin Dezavantajları:
Aşağıda algoritmaları güçlendirmenin birkaç dezavantajı bulunmaktadır:
- Algoritmaların güçlendirilmesi aşırı uyumun yanı sıra aykırı değerlerin aşırı vurgulanmasına da neden olabilir.
- Gradyan artırma algoritması sürekli olarak hataları en aza indirmeye odaklanır ve birden fazla ağaç gerektirir, dolayısıyla hesaplama açısından pahalıdır.
- Zaman alıcı ve hafızayı tüketen bir algoritmadır.
- Çeşitli araçlarla kolayca çözülebilmesine rağmen, doğası gereği daha az yorumlayıcıdır.
Çözüm:
Bu sayede makine öğreniminde tahmine dayalı modellemeye yönelik güçlendirme algoritmalarını öğrendik. Ayrıca ML'de kullanılan GBM, XGBM, light GBM ve Catboost gibi çeşitli önemli güçlendirme algoritmalarını da tartıştık. Ayrıca çeşitli bileşenleri (kayıp fonksiyonu, zayıf öğrenen ve eklemeli model) ve GBM'nin bunlarla nasıl çalıştığını gördük. Güçlendirme algoritmalarının gerçek dünya senaryolarında devreye almada ne kadar avantajlı olduğu vb.