Makine öğreniminde yükseltme nedir?

Yükseltme, tahmine dayalı veri analizindeki hataları azaltmak için makine öğreniminde kullanılan bir yöntemdir. Veri bilimciler, makine öğrenimi modelleri olarak adlandırılan makine öğrenimi yazılımlarını etiketli veriler üzerinde eğiterek etiketsiz veriler hakkında tahminlerde bulunur. Tek bir makine öğrenimi modeli, eğitim veri kümesinin doğruluğuna bağlı olarak tahmin hataları yapabilir. Örneğin, yalnızca beyaz kedi resimleriyle eğitilen bir kedi tanıma modeli, siyah bir kediyi bazen yanlış tanımlayabilir. Yükseltme, genel sistemin doğruluğunu geliştirmek için birden çok modeli sırayla eğiterek bu sorunun üstesinden gelmeye çalışır.

Yükseltme neden önemlidir?

Yükseltme, birden çok zayıf öğreniciyi tek bir güçlü öğrenme modeline dönüştürerek makine modellerinin tahmin doğruluğunu ve performansını iyileştirir. Makine öğrenimi modelleri zayıf veya güçlü öğreniciler olabilir:

Zayıf öğreniciler

Zayıf öğreniciler, rastgele tahmin yürütmeye benzer şekilde düşük tahmin doğruluğuna sahiptir. Aşırı uyum sergilemeye yatkın olduklarından, orijinal veri kümelerinden fazlaca farklılık gösteren verileri sınıflandıramazlar. Örneğin, modeli kedileri sivri kulaklı hayvanlar olarak tanımlamasını sağlayacak şekilde eğitirseniz model, kulakları kıvrık olan bir kediyi tanımada başarısız olabilir.

Güçlü öğreniciler

Güçlü öğreniciler daha yüksek tahmin doğruluğuna sahiptir. Yükseltme, zayıf öğrenici bileşenlerden oluşan bir sistemi tek bir güçlü öğrenme sistemine dönüştürür. Örneğin, kedi görüntüsünü tanımlamak amacıyla sivri kulaklar için tahminde bulunan zayıf bir öğrenici ile kedi gözü şeklindeki gözler için tahminde bulunan diğer bir öğreniciyi birleştirir. Sistem, hayvan görüntüsünü sivri kulaklar için analiz ettikten sonra, kedi gözü şeklindeki gözler için tekrar analiz eder. Bu, sistemin genel doğruluğunu iyileştirir.

Yükseltme nasıl çalışır?

Yükseltmenin nasıl çalıştığını anlamak için öncelikle makine öğrenimi modellerinin nasıl karar verdiğini açıklayalım. Uygulama birçok yerde farklılık gösterse de veri bilimciler yükseltmeyi sıklıkla karar ağacı algoritmalarıyla birlikte kullanmaktadır:

Karar ağaçları

Karar ağaçları, veri kümesini özelliklerine göre gittikçe daha küçük alt kümelere bölerek çalışan, makine öğrenimindeki veri yapılarıdır. Karar ağaçlarının amacı, geriye yalnızca tek bir veri sınıfı kalana kadar verileri tekrar tekrar bölmektir. Örneğin, ağaç bir dizi evet-hayır sorusu sorarak veriyi her adımda kategorilere ayırabilir.

Yükseltme topluluk yöntemi

Yükseltme, birkaç zayıf karar ağacını sıralı olarak birleştirerek bir topluluk modeli oluşturur. Bireysel ağaçların çıktılarına ağırlık atar. Ardından, birinci karar ağacının yanlış sınıflandırmalarına daha yüksek bir ağırlık atar ve sonraki karar ağacına girdi sağlar. Birçok döngü sonrasında, yükseltme yöntemi bu zayıf kuralları birleştirerek tek bir güçlü tahmin kuralı haline getirir.

Torbalamaya kıyasla yükseltme

Yükseltme ve torbalama, tahmin doğruluğunu iyileştiren iki yaygın topluluk yöntemidir. Bu öğrenme yöntemleri arasındaki temel fark, eğitme yöntemidir. Torbalamada, veri bilimciler birkaç zayıf öğreniciyi birden çok veri kümesi üzerinde eğiterek bunların doğruluk düzeyini geliştirir. Buna karşılık, yükseltme işlevi zayıf öğrenicileri arka arkaya eğitir.

 

Yükseltmede eğitim süreci nasıl gerçekleştirilir?

Eğitme yöntemi, yükseltme algoritması olarak adlandırılan yükseltme süreci türüne bağlı olarak değişiklik gösterir. Ancak, bir algoritma yükseltme yöntemini eğitmek için aşağıdaki genel adımları gerçekleştirir:

1. Adım

Yükseltme algoritması, veri örneklerinin her birine eşit ağırlık atar. Verileri, temel algoritma olarak adlandırılan birinci makine modeline besler. Temel algoritma, veri örneklerinin her biri için tahminlerde bulunur.

2. Adım

Yükseltme algoritması, model tahminlerini değerlendirir ve örneklerin ağırlığını daha ciddi bir hata ile artırır. Ayrıca, model performansına göre bir ağırlık atar. Mükemmel tahminler ortaya koyan bir modelin, nihai karar üzerinde yüksek miktarda etkisi olacaktır.

3. Adım

Algoritma, ağırlıklandırılan verileri bir sonraki karar ağacına geçirir.

4. Adım

Algoritma, eğitim hatası örnekleri belirli bir eşiğin altına düşene kadar 2. ve 3. adımları tekrar eder.

Yükseltme türleri nelerdir?

Üç ana yükseltme türü aşağıda verilmiştir:

Uyarlanabilir yükseltme

Uyarlanabilir Yükseltme (AdaBoost), geliştirilen ilk yükseltme modellerinden biridir. Yükseltme sürecinin her tekrarında kendi kendini düzeltmeye çalışarak uyum sağlar. 

AdaBoost başlangıçta her bir veri kümesine aynı ağırlığı atar. Ardından, veri noktalarının ağırlıklarını her karar ağacından sonra otomatik olarak ayarlar. Yanlış sınıflandırılan nesnelere, sonraki turda bunları düzeltmek amacıyla daha fazla ağırlık atar. Artık hatası veya gerçek değer ile tahmini değer arasındaki fark, kabul edilebilir bir eşiğin altına düşene kadar süreci tekrar eder.

AdaBoost'u pek çok tahmin unsuruyla birlikte kullanabilirsiniz ve bu, genellikle diğer yükseltme algoritmaları kadar hassas değildir. Bu yaklaşım özellikler arasında bir bağıntı veya yüksek veri boyutluluğu söz konusu olduğunda düzgün çalışmaz. Genel bağlamda, AdaBoost sınıflandırma sorunları için uygun bir yükseltme türüdür.

Aşamalı yükseltme

Aşamalı Yükseltme (GB), sıralı bir eğitme tekniği olmasıyla AdaBoost'a benzer bir yöntemdir. AdaBoost ve GB arasındaki fark, GB'nin yanlış sınıflandırılan nesnelere daha fazla ağırlık vermemesidir. Bunun yerine GB yazılımı, mevcut durumdaki temel öğrenicinin daima öncekinden daha etkili olabilmesi için temel öğrenicileri sıralı şekilde oluşturarak kayıp işlevi optimize eder. Bu yöntem, AdaBoost gibi sürecin tamamı boyunca hataları düzeltmek yerine başlangıçta doğru sonuçlar oluşturmaya çalışır. Bu nedenle, GB yazılımı daha doğru sonuçlar sağlayabilir. Aşamalı Yükseltme, hem sınıflandırma hem de regresyon temelli sorunlarda yardımcı olabilir.

Aşırı aşamalı yükseltme

Aşırı Aşamalı Yükseltme (XGBoost), hesaplama hızı ve ölçeğine yönelik aşamalı yükseltmeyi birkaç yolla iyileştirir. XGBoost, eğitim süreci sırasında öğrenmenin paralel şekilde gerçekleşmesi için CPU'da birden çok çekirdek kullanır. Geniş çaplı veri kümelerini kullanabilen ve böylece büyük veri uygulamaları için ideal olan bir yükseltme algoritmasıdır. XGBoost'un temel özellikleri paralelleştirme, dağıtılmış işlem, önbellek optimizasyonu ve çekirdek dışı işlemedir.

Yükseltmenin avantajları nelerdir?

Yükseltme şu önemli avantajları sunar:

Uygulama kolaylığı

Yükseltme; hatalarından öğrenen, anlaması ve yorumlaması kolay algoritmalara sahiptir. Bu algoritmalar, veri ön işlemi gerektirmez ve eksik verilerin ele alınması için yerleşik rutinlere sahiptir. Ek olarak, yükseltme algoritmalarını performansı hassas şekilde ayarlayan pek çok parametreyle uygulamaya koymak amacıyla çoğu dil yerleşik kitaplıklar içermektedir.

Sapmaları azaltma

Sapma, makine öğrenimi sonuçlarında meydana gelen belirsizlik veya hatalardır. Yükseltme algoritmaları birden çok zayıf öğreniciyi sıralı bir yöntemle birleştirerek gözlemleri yinelemeli olarak iyileştirir. Bu yaklaşım, makine öğrenimi modellerinde yaygın olan yüksek sapmaları azaltmaya yardımcı olur.

Hesaplama verimliliği

Yükseltme algoritmaları, eğitim süreci sırasında tahmin doğruluğunu artıran özelliklere öncelik verir. Veri özniteliklerini azaltmaya ve büyük veri kümelerini verimli şekilde kullanmaya yardımcı olabilir.

Yükseltmenin zorlukları nelerdir?

Yükseltme modlarına ilişkin yaygın sınırlamalar şunlardır:

Uç verilere açık olma

Yükseltme modelleri, veri kümesinin geri kalanından farklı olan uç değerlere veya veri değerlerine açıktır. Her bir model, bir öncekinin hatalarını düzeltmeye çalıştığından, uç değerlere sahip sonuçları önemli ölçüde saptırabilir.

Gerçek zamanlı uygulama

Algoritma diğer süreçlerden daha karmaşık olduğundan, yükseltmeyi gerçek zamanlı uygulamada kullanırken de zorlanabilirsiniz. Yükseltme yöntemleri yüksek uyum yeteneğine sahiptir ve böylece modelin performansına anında etki eden çok çeşitli model parametreleri kullanabilirsiniz.

AWS size yükseltme konusunda nasıl yardımcı olabilir?

AWS ağ iletişimi hizmetleri kurumlara aşağıdakileri sağlayacak şekilde tasarlanmıştır:

Amazon SageMaker

Amazon SageMaker, makine öğrenimi için amaca özel tasarlanmış geniş bir özellik yelpazesini bir araya getirir. Yüksek kaliteli makine öğrenimi modellerini hızlıca hazırlamak, oluşturmak, eğitmek ve dağıtmak için bunu kullanabilirsiniz.

Amazon SageMaker Autopilot

Amazon SageMaker Autopilot, makine öğrenimi modelleri oluşturma sürecinin ağır iş yükünü ortadan kaldırır ve verilerinize göre otomatik olarak modeller oluşturmanıza ve eğitmenize yardımcı olur. SageMaker Autopilot'ta, tablo halinde bir veri kümesi sağlar ve tahmin edilecek hedef sütunu (bir rakam veya kategori olabilir) seçersiniz. SageMaker Autopilot, en iyi modeli bulmak için otomatik olarak farklı çözümler keşfeder. Ardından, modeli yalnızca bir tıklamayla doğrudan üretime dağıtır veya model kalitesini daha da artırmak üzere önerilen çözümler üzerinde Amazon SageMaker Studio aracılığıyla yinelemeler yaparsınız.

Amazon SageMaker Hata Ayıklayıcısı

Amazon SageMaker Hata Ayıklayıcısı, eğitim ölçümlerini gerçek zamanlı olarak saptayıp hata algıladığında uyarılar göndererek makine öğrenimi modellerini optimize etmeyi kolaylaştırır. Bu, bir görüntünün yanlış tanımlanması gibi hatalı model tahminlerini anında düzeltmeye yardımcı olur.

Amazon SageMaker, büyük ölçekli derin öğrenme modelleri ve veri kümelerinin eğitilmesi için hızlı ve kolay yöntemler sunar. SageMaker dağıtılmış eğitim kitaplıkları, büyük veri kümelerini daha hızlı eğitir.

Hemen bir AWS hesabı oluşturarak Amazon SageMaker'ı kullanmaya başlayın.

AWS makine öğrenimi için sonraki adımlar