Yapay zeka temelleri

Gradient Boosting Nedir?

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin

Veri biliminde yarışmalarda son derece faydalı olabilen bir makine öğrenimi modeli türü, bir gradient boosting modelidir. Gradient boosting, temelde zayıf öğrenme modellerini güçlü öğrenme modellerine dönüştürme sürecidir. Ancak bu nasıl yapılır? Gradient boosting algoritmalarına ve bir gradient boosting modelinin zayıf öğrenicileri güçlü öğrenicilere nasıl dönüştürdüğüne daha yakından bakalım.

Gradient Boosting’i Tanımlama

Bu makale, gradient boosting’in ne olduğu hakkında size iyi bir sezgi kazandırmayı amaçlar ve algoritmaların altında yatan matematiksel açıklamalara çok fazla girmeyecektir. Gradient boosting’in yüksek düzeyde nasıl çalıştığına bir takdir duyduktan sonra, matematiği mümkün kılan şeyleri daha derinlemesine keşfetmeye teşvik edileceksiniz.

Öğreniciyi “boost”lamak anlamına gelen şeyi tanımlayarak başlayalım. Zayıf öğreniciler, öğrenme modelinin özelliklerini ayarlayarak güçlü öğrenicilere dönüştürülür. Tam olarak hangi öğrenme algoritması güçlendiriliyor?

Boosting modelleri, başka bir ortak makine öğrenimi modeli olan karar ağacını güçlendirerek çalışır.

Bir karar ağacı modeli, bir veri setini daha küçük ve daha küçük parçalara ayırarak çalışır ve bir kez alt kümeler daha fazla bölünemez olduğunda, sonuç bir ağaçtır ve bu ağaçta düğümler ve yapraklar bulunur. Karar ağacındaki düğümler, farklı filtreleme kriterleri kullanılarak veri noktaları hakkında kararlar verildiği yerlerdir. Karar ağacındaki yapraklar, sınıflandırılmış veri noktalarıdır. Karar ağacı algoritmaları hem sayısal hem de kategorik verileri işleyebilir ve ağaçtaki bölünmeler belirli değişkenlere/özelliklere dayanır.

Boosting modellerinin eğitildiği şekilde bir illüstrasyon.
Fotoğraf: SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

Boosting algoritmalarının bir türü, AdaBoost algoritmasıdır. AdaBoost algoritmaları, bir karar ağacı modelini eğitmeye başlar ve her gözlem için eşit bir ağırlık atar. İlk ağaç değerlendirildikten sonra, farklı gözlemlerin ağırlıkları ayarlanır. Kolay sınıflandırılan gözlemlerin ağırlıkları düşürülürken, zor sınıflandırılan gözlemlerin ağırlıkları artırılır. İkinci bir ağaç, bu ayarlanmış ağırlıklar kullanılarak oluşturulur ve ikinci ağacın tahminlerinin ilk ağacın tahminlerinden daha doğru olması amaçlanır.

Model şimdi orijinal ağaç ve yeni ağaç (veya Ağaç 1 + Ağaç 2) tahminlerini içerir. Sınıflandırma doğruluğu, yeni model temelinde yeniden değerlendirilir. Hesaplanan hata temelinde üçüncü bir ağaç oluşturulur ve ağırlıklar yeniden ayarlanır. Bu işlem, belirli bir sayıda yineleme için devam eder ve nihai model, tüm önce oluşturulan ağaçların tahminlerinin ağırlıklı toplamını kullanan bir toplu modeldir.

Yukarıda açıklanan süreç, Karar Ağaçları ve temel öngörücüler/prediktorlar kullanır, ancak bir güçlendirme yaklaşımı, birçok standart sınıflandırıcı ve regresyon modeli gibi çeşitli modellerle gerçekleştirilebilir. Anlaşılması gereken temel kavramlar, sonraki öngörücülerin önceki onesilerin hatalarından öğrendiğidir ve öngörücüler sırayla oluşturulur.

Güçlendirme algoritmalarının birincil avantajı, diğer makine öğrenimi modellerine kıyasla mevcut tahminleri bulmak için daha az zaman harcamalarıdır. Ancak, güçlendirme algoritmalarını kullanırken dikkatli olunmalıdır, çünkü bunlar aşırı uyarlama eğilimindedir.

Gradient Boosting

Şimdi, en yaygın güçlendirme algoritmalarından birini ele alacağız. Gradient Boosting Modelleri (GBM), yüksek doğrulukları ile bilinir ve AdaBoost’te kullanılan genel ilkeleri güçlendirir.

Gradient Boosting Modeli ile AdaBoost arasındaki birincil fark, GBM’lerin veri noktalarını yanlış tanımlayan öğrenicileri hesaplamak için farklı bir yöntem kullanmasıdır. AdaBoost, bir modelin nerede kötü performans gösterdiğini, ağırlıklı olarak ağır veri noktalarını inceleyerek hesaplar. Öte yandan, GBM’ler, bir modelin doğruluğunu belirlemek için gradientleri kullanır ve bir loss fonksiyonu uygular. Loss fonksiyonları, bir modelin veri setindeki uyumunun doğruluğunu ölçmek ve hatayı en aza indirerek modeli optimize etmek için bir yol sağlar. GBM’ler, kullanıcıların belirli bir loss fonksiyonunu optimize etmesine izin verir.

En yaygın loss fonksiyonu olan Ortalama Kare Hatası (MSE) örneğini ele alalım, gradient iniş bir öğrenme oranına dayanarak tahminleri günceller, loss’un minimal olduğu değerleri bulmayı hedefler.

Daha net olması için:

Yeni model tahminleri = çıktı değişkenleri – eski eksik tahminler.

Daha istatistiksel bir sentido, GBM’ler bir modelin artıklarında ilgili desenler bulmaya çalışır, modeli bu desenlere uydurur ve artıkları sıfıra mümkün olduğunca yakın getirir. Bir modelin tahminleri üzerinde regresyon yapılırsa, artıklar 0 (mükemmel uyum) etrafında dağılır ve GBM’ler bu artıklardaki desenleri bulur ve modeli bu desenlere göre günceller.

Diğer bir deyişle, tahminler öyle güncellenir ki tüm artıkların toplamı mümkün olduğunca 0’a yakın olur, yani tahmin edilen değerler gerçek değerlere çok yakın olur.

Not bahwa bir dizi başka loss fonksiyonu (örneğin, logaritamik loss) GBM tarafından da kullanılabilir. Yukarıda MSE seçildi çünkü basitlik amacıyla.

Gradient Boosting Modellerinin Çeşitleri

Gradient Boosting Modelleri, aşırı uyarlama eğiliminde olan açgözlü algoritmalarlardır. Bu, GBM’nin performansını iyileştirebilecek çeşitli yöntemlerle önlenebilir.

GBM’ler dört farklı yöntem ile düzenlenebilir: Shrinkage, Ağaç Kısıtlamaları, Stokastik Gradient Boosting ve Cezalı Öğrenme.

Shrinkage

Önceden de bahsedildiği gibi, GBM’lerde tahminler sıralı bir şekilde toplanır. “Shrinkage”de, her ağacın toplam modele katkısı ayarlanır. Öğrenme oranını yavaşlatan ağırlıklar uygulanır, böylece modelin daha fazla ağaca ihtiyacı olur, bu da genellikle modelin sağlamlığını ve performansını iyileştirir. Ancak, modelin eğitilmesi daha uzun sürer.

Ağaç Kısıtlamaları

Ağacın çeşitli ayarlamalarla, örneğin ağacın derinliğini artırarak veya ağacın düğümlerini ve yapraklarını artırarak kısıtlanması, modelin aşırı uyarlama yapmasını daha zor hale getirebilir. Bir bölünme için minimum gözlem sayısını zorunlu kılmak da benzer bir etkiye sahiptir. Yine, modelin eğitilmesi daha uzun sürer.

Rastgele Örnekleme

Bireysel öğreniciler, eğitim veri setinin rastgele seçilen alt örneklerinden oluşan bir stokastik süreç kullanılarak oluşturulabilir. Bu, ağaçlar arasındaki korelasyonu azaltır ve aşırı uyarlama karşıtı bir etki sağlar. Veri seti, ağaçlar oluşturulmadan önce veya bir ağaçta bir bölme dikkate alındığında alt örneklenebilir.

Cezalı Öğrenme

Ağacın yapısını sınırlayarak modeli düzenlemenin ötesinde, bir regresyon ağacı kullanılabilir. Regresyon ağaçları, her yaprağa sayısal değerler ekler ve bu değerler ağırlık olarak işlev görür ve L1 ve L2 düzenleme gibi ortak düzenleme fonksiyonları ile ayarlanabilir.

Blog yazarı ve programcı, Machine Learning ve Deep Learning konularında uzmanlık sahibi. Daniel, başkalarının AI'nin gücünü sosyal fayda için kullanmasına yardımcı olmak umudu taşıyor.