Dr. Mehmet Solak Siirt Üniversitesi · Ziraat Fakültesi · Biyosistem Mühendisliği · Tarım ve Tarımsal Eğitim İçin Makine Öğrenmesi İçeriği

Bölüm 7: Problems and Solutions

kitapburkovbölüm-7kernel-regresyoncok-siniflitek-siniflicok-etiketlitopluluk-yöntemleri

Kaynak: Andriy Burkov -- "The Hundred-Page Machine Learning Book" (theMLbook.com)

Bölüm 7: Problemler ve Cozumler (Problems and Solutions)

Bu bölüm, cekirdek regresyon, cok sinifli/tek sinifli/cok etiketli sınıflandırma, topluluk öğrenme yöntemleri (bagging, boosting, rastgele orman, gradyan artırma), dizi etiketleme, aktif öğrenme ve yari denetimli öğrenme konularini kapsar.


7.1 Cekirdek Regresyon (Kernel Regression)

Veri doğrusal bir cizgi formunda degilse, polinom regresyonu bir çözüm olabilir. Ancak yüksek boyutlu girdi için dogru polinomu bulmak zordur.

Cekirdek regresyon, parametresiz (non-parametric) bir yöntemdir: ogrenilecek parametre yoktur, model doğrudan veriye dayanır (kNN'e benzer).

Formul:

f(x) = (1/N) * toplam(w_i * y_i)

w_i = N * k((x_i - x) / b) / toplam(k((x_k - x) / b))

k(.) bir cekirdek fonksiyonudur. En sik kullanilani Gauss cekirdegi:

k(z) = (1 / sqrt(2*pi)) * exp(-z^2 / 2)

b hiperparametresi, doğrulama seti ile ayarlanir: - Küçük b: Aşırı uyum (overfitting) riski - Büyük b: Yetersiz uyum (underfitting) riski - Orta b: Iyi uyum

Cok boyutlu girdilerde, x_i - x ifadesi Oklid uzakligi ||x_i - x|| ile degistirilir.


7.2 Cok Sinifli Sınıflandırma (Multiclass Classification)

Etiket C siniftan biri olabilir: y in {1, ..., C}.

Dogal Olarak Cok Sinifli Algoritmalar

  • Karar ağaçlari (ID3 vb.): Her yapraga sınıf olasıliklari atanir
  • Lojistik regresyon: Sigmoid yerine softmax fonksiyonu ile genisletilir
  • kNN: k en yakin komsunun cogunluk sınıfıni dondurur

Bire Karsi Geri Kalan (One-vs-Rest) Stratejisi

Ikili sınıflandırma algoritmalari (örneğin SVM) için kullanılır:

  1. C adet ikili sınıflandırma problemi olusturulur
  2. Her kopya için belirli bir sınıf "1", geri kalan tum siniflar "0" olarak etiketlenir
  3. C model egitilir
  4. Yeni bir girdi x icin: Tum modeller uygulanir, en yüksek guven skoruna sahip sınıf secilir

SVM'de guven skoru, girdinin karar sinirna uzakligi ile belirlenir:

d = |w* . x + b*| / ||w||

7.3 Tek Sinifli Sınıflandırma (One-Class Classification)

Tek sinifli sınıflandırma (unary classification / class modeling), yalnizca tek bir sinifa ait örneklerden olusan eğitim seti ile belirli bir sınıfın nesnelerini tanimlamayi amaclar. Geleneksel sınıflandırmadan daha zordur.

Tipik kullanım alanlari: Aykiri değer tespiti, anomali tespiti, yenilik tespiti (örneğin guvenli ag trafiginde saldirilari tespit etme).

Yöntemler

Tek Sinifli Gauss (One-Class Gaussian)

Veri, cok değişkenli normal dagilim (MND) ile modellenir:

f(x) = exp(-0.5 * (x - mu)^T * Sigma^{-1} * (x - mu)) / sqrt((2*pi)^D * |Sigma|)
  • mu: Ortalama vektoru (dagiiimin merkezi)
  • Sigma: Kovaryans matrisi (dagiiimin sekli)
  • Maksimum olabilirlik ile ogrenilir

Bir girdi x için f(x) degerI hesaplanir. Eger bu değer belirlenen esik değerinin üstündeyse, örnek sinifa ait kabul edilir; aksi halde aykiri değer olarak siniflandirilir.

Daha karmaşık veriler için Gauss karisimi (mixture of Gaussians) kullanilabilir.

Tek Sinifli k-Ortalama (One-Class k-Means)

Tum eğitim örnekleri kümelenir. Yeni bir x icin, x ile en yakin kume merkezi arasındaki uzaklik hesaplanir. Uzaklik esik değerinden küçükse, örnek sinifa aittir.

Tek Sinifli kNN (One-Class kNN)

Benzer prensip: Yeni örneğin mevcut örneklere benzerligine dayali karar verme.

Tek Sinifli SVM (One-Class SVM)

Iki yaklasim: 1. Tum eğitim örneklerini orijinden ayirmak ve hiperduzleme-orijin uzakligini maksimize etmek 2. Veri etrafinda kuresel bir sinir elde ederek hiperkurenin hacmini minimize etmek


7.4 Cok Etiketli Sınıflandırma (Multi-Label Classification)

Her eğitim örneğine tek bir etiket degil, birden fazla etiket atanir. Örneğin bir goruntye ayni anda "insanlar", "konser" ve "doga" etiketleri atanabilir.

Yaklasimlar

Yaklasim 1: Cok sinifli probleme donusturme - Her etiketli örneği, etiket basina bir ornege donusturme - Bire karsi geri kalan stratejisi ile cozme - Birden fazla etiket için bir esik değeri belirleme: Tahmin skoru esik üzerindeyse etiket atanir

Yaklasim 2: Sinir aglari ile doğrudan cok etiketli öğrenme - Cikis katmaninda her etiket için bir birim (sigmoid aktivasyonu) - Ikili çapraz entropi (binary cross-entropy) maliyet fonksiyonu kullanılır: -( y * ln(y_hat) + (1-y) * ln(1 - y_hat) )

Yaklasim 3: Sahte sınıf oluşturma - Her etiket kombinasyonu için yeni bir sınıf tanimlanir - Örnek: {foto, resim} x {portre, manzara, diger} = 6 sahte sinif - Avantaj: Etiketler arasi korelasyonu korur (örneğin [spam, oncelikli] gibi anlamsiz kombinasyonlari onler) - Dezavantaj: Kombinasyon sayisi arttikca daha fazla eğitim verisi gerekir


7.5 Topluluk Öğrenme (Ensemble Learning)

Topluluk öğrenme, tek bir cok dogruu model yerine, cok sayida düşük doğruluklu modeli egitip tahminlerini birlestirerek yüksek doğruluklu bir meta-model elde etme paradigmasıdir.

Zayif ogreniciciler (weak learners): Genellikle sigi karar ağaçlari -- hizli eğitim ve tahmin.

Temel ilke: Her ağaç en azindan rastgele tahminden biraz daha iyiyse, ve ağaçlar birbirinden farkliysa, ağırlıkli oylama ile yüksek doğruluk elde edilebilir.

7.5.1 Rastgele Orman (Random Forest)

Rastgele orman, torbalaama (bagging) paradigmasıni kullanir.

Torbalaama (Bagging) Sureci

  1. Eğitim setinden B adet rastgele örneklem S_b olustur (yerine koyarak örnekleme / sampling with replacement)
  2. Her S_b ile bir karar ağaçi f_b egit
  3. Tahmin:
  4. Regresyon: B tahminin ortalamasi
  5. Sınıflandırma: Cogunluk oyu

Rastgele Ormanin Farki

Vanilla bagging'den farki: Her bolme adiminda rastgele bir özellik alt kumesi incelenir.

Neden? Bazi özellikler cok güçlü tahmin edicilerse, cogu ağaç ayni özellikleri secip birbirine benzer (korelasyonlu) ağaçlar oluşturur. Korelasyonlu ağaçlar doğruluğun iyilesmesini engeller: iyi ağaçlar zaten ayni tahmin üzerinde hemfikirdir, korelasyon kotu ağaçlarin da hemfikir olmasina neden olur.

Ayarlanacak hiperparametreler: - Ağaç sayisi (B) - Her bolmede incelenecek rastgele özellik alt kumesinin boyutu

Neden etkilidir? Orijinal veri setinin birden fazla rastgele örneğini kullanarak, son modelin varyansini azaltir (düşük varyans = düşük aşırı öğrenme).

7.5.2 Gradyan Artırma (Gradient Boosting)

Gradyan artırma, guclendirme (boosting) paradigmasıni kullanir.

Regresyon İçin Gradyan Artırma

  1. Sabit model ile baslaa: f_0(x) = etiketlerin ortalamasi
  2. Artiklari (residual) hesapla: y_hat_i = y_i - f(x_i)
  3. Artiklari etiket olarak kullanarak yeni bir karar ağaçi f_1 egit
  4. Modeli guncelle: f = f_0 + alfa * f_1
  5. Artiklari yeniden hesapla, yeni ağaç egit, modele ekle
  6. M ağaç birlesene kadar tekrarla

Sezgisel açıklama: Her yeni ağaç, mevcut modelin hatalarini duzeltmeye çalışır. Artiklar, modelin hangi örneklerde ne kadar yanlis yaptigini gösterir.

"Gradyan" ismi nereden gelir? Gradyan artırmada doğrudan gradyan hesaplanmaz, ancak artiklar gradyanin bir vekili (proxy) olarak kullanılır: Modelin nasil ayarlanmasi gerektigini gösterirler (gradyan inisindeki adim yonune benzer).

Sınıflandırma İçin Gradyan Artırma

Ikili sınıflandırma icin, sigmoid fonksiyonu kullanılır:

Pr(y=1 | x, f) = 1 / (1 + e^{-f(x)})

Burada f(x) = toplam(f_m(x)) ve her f_m bir regresyon karar ağaçidir.

Maksimum olabilirlik ilkesi ile optimize edilir. Her iterasyonda: 1. Mevcut model için kismi turevler (g_i) hesaplanir 2. Eğitim setinde etiketler, kismi turevlerle degistirilir 3. Yeni ağaç f_m donusturulmus eğitim seti ile egitilir 4. Optimal adim büyüklugu beta_m hesaplanir 5. Model guncellenir: f = f + alfa * beta_m * f_m

Gradyan Artırma Hiperparametreleri

Hiperparametre Etkisi
Ağaç sayisi (M) Model doğruluğu
Öğrenme orani (alfa) Model doğruluğu, adim büyüklugu
Ağaç derinligi Dogruluk + eğitim/tahmin hizi

Bagging vs. Boosting karşılaştırmasi: - Bagging: Varyansi azaltir (aşırı öğrenmeyi onler) - Boosting: Yanliligi azaltir (yetersiz öğrenmeyi onler, ancak aşırı öğrenme riski tasir)

Gradyan artırma genellikle rastgele ormandan daha dogruu sonuçlar verir, ancak ardisik yapisi nedeniyle eğitimi daha yavas olabilir. Milyonlarca örnek ve özellik içeren büyük veri setlerini isleyebilir.


7.6 Dizi Etiketleme (Sequence Labeling)

Dizi etiketlemede, etiketli ardisik örnek bir cift listedir (X, Y): - X = [x_1, x_2, ..., x_n]: Zaman adimi basina özellik vektorleri - Y = [y_1, y_2, ..., y_n]: Karsilik gelen etiketler

Örnek: X = ["büyük", "guzel", "araba"], Y = ["sifat", "sifat", "isim"]

RNN ile Dizi Etiketleme

RNN, her zaman adiminda bir özellik vektoru okur ve son tekrarlamali katman bir etiket çıktılar.

Kosullu Rastgele Alanlar (CRF - Conditional Random Fields)

CRF, özellik vektorleri bircok bilgilendirici ozellige sahip oldugunda etkili bir alternatiftir.

Örnek: Adlandirilmis varlik cikarma gorevi -- "San Francisco'ya gidiyorum" cumlesinde her kelimeyi {konum, isim, sirket_adi, diger} olarak etiketleme.

Bilgilendirici özellikler: "Kelime büyük harfle mi basliyor?", "Kelime konumlar listesinde var mi?"

CRF, lojistik regresyonun dizilere genellemesi olarak gorulebilir. Ancak pratikte cift yonlu derin kapili RNN tarafından gecilmistir ve büyük eğitim setlerinde (yuz binlerce örnek) eğitimi önemli ölçüde daha yavastir.


7.7 Diziden Diziye Öğrenme (Sequence-to-Sequence Learning)

Seq2seq öğrenme, dizi etiketleme probleminin genellemesidir: X ve Y farkli uzunluklara sahip olabilir.

Kullanim alanlari: Makine cevirisi, sohbet arayuzleri, metin ozetleme, yazim duzeltme.

Kodlayici-Kod Cozucu Mimarisi (Encoder-Decoder)

  1. Kodlayici (Encoder): Sirali girdiyi okur, girdinin anlamini temsil eden bir gomme (embedding) vektoru üretir (RNN, CNN veya baska mimari olabilir)
  2. Kod cozucu (Decoder): Gomme vektorunu alir ve çıktı dizisi üretir
  3. Baslangic sinyali (genellikle sifir vektoru) alir
  4. Ilk ciktyi üretir
  5. Her çıktıyi bir sonraki adimin girdisi olarak kullanir

Her iki parca birlikte, eğitim verisi üzerinde geri yayilim ile egitilir.

Dikkat Mekanizmasi (Attention)

Dikkat mekanizması, ek parametreler kullanarak kodlayicidan gelen bilgiyi (tum zaman adimlarindaki durum vektorleri) ve kod cozucunun mevcut durumunu birlestirir. Bu, kapili birimler ve cift yonlu RNN'den daha iyi uzun vadeli bagimliliklarin korunmasini saglar.


7.8 Aktif Öğrenme (Active Learning)

Etiketli örnek elde etmenin maliyetli oldugu durumlarda kullanılır (tip, finans gibi alanlarda uzman gorusu gerektiren durumlar).

Temel fikir: Az sayida etiketli ve cok sayida etiketssiz örnekle baslayip, modele en cok katki saglayacak örneklere etiket eklenmesini istemek.

Veri Yogunlugu ve Belirsizlik Tabanli Strateji

Her etiketssiz x için onem skoru hesaplanir:

onem(x) = yoğunluk(x) * belirsizlik_f(x)
  • Yogunluk: x'in yakin komsuluguundaki örnek yoğunlugu (k-en yakin komsuluk ortalama uzakligi)
  • Belirsizlik: Modelin tahminindeki belirsizlik
  • Ikili sigmoid: Skor 0.5'e ne kadar yakinsa o kadar belirsiz
  • SVM: Karar sinirna ne kadar yakinsa o kadar belirsiz
  • Cok sinifli: Entropi kullanılır -- tum sınıfların olasıligi esitse (1/C) entropi maksimumdadir (en belirsiz)

En yüksek onem skoruna sahip örnek uzmanina gonderilir, etiketlenir, eğitim setine eklenir ve model yeniden egitilir.

Destek Vektor Tabanli Strateji

SVM modeli egitilir, hiperduzleme en yakin etiketssiz örneğin etiketlenmesi istenir. Bu örnek en belirsiz oldugundan, gerçek hiperduzlemin olası konumlarini en fazla azaltacaktir.


7.9 Yari Denetimli Öğrenme (Semi-Supervised Learning)

Az sayida etiketli, cok sayida etiketssiz örnekle, uzman yardimi istemeden model performansini artırmayi amaclar.

Kendi Kendine Öğrenme (Self-Learning)

  1. Etiketli örneklerle model egit
  2. Etiketssiz örneklere modeli uygula
  3. Guven skoru esik üzerinde olan örnekleri etiketli olarak eğitim setine ekle
  4. Modeli yeniden egit, durdurma kriterine kadar tekrarla

Muttevazi iyilesmeler saglayabilir, ancak bazi durumlarda model kalitesi dusebilir.

Merdiven Aglari (Ladder Networks)

Sinir agi tabanli gelismis bir SSL yöntemidir. MNIST veri setinde sınıf basina yalnizca 10 etiketli örnekle neredeyse mukemmel performans gostermistir.

Otokodlayici (Autoencoder): Girdisini yeniden oluşturmak için egitilen kodlayici-kod cozucu mimarili ileri beslemeli sinir agi. Darbogazdaki (bottleneck) gomme katmani, girdi boyutundan cok daha az birime sahiptir.

Gurultu giderici otokodlayici (Denoising Autoencoder): Sol taraftaki girdiye rastgele gurultu ekleyerek bozar; model bozuk girdiden temiz girdiyi yeniden oluşturmayi öğrenir.

Merdiven agi özellikleri: - Kodlayici ve kod cozucu esit sayida katmana sahiptir - Darbogazz katmani, etiket tahmininde doğrudan kullanılır (softmax) - Her katman cifti için yeniden oluşturma maliyeti + sınıflandırma maliyeti birlikte optimize edilir - Eğitim sirasinda hem girdi hem de her kodlayici katmaninin çıktısi gurultuyle bozulur - Tahmin asamasinda gurultu eklenmez

Diger SSL Yöntemleri

  • Etiketli veriyle model egit, sonra etiketli ve etiketssiz örnekleri birlikte kümele; tahmin için kumedeki cogunluk etiketini kullan
  • S3VM: Her olası etiketleme için bir SVM modeli olustur, en genis kenar boosluguna sahip modeli sec

7.10 Tek Atiisli Öğrenme (One-Shot Learning)

Genellikle yuz tanima alaninda uygulanan bir paradigmadir. Amac: Iki fotografin ayni kisiye ait olup olmadigini belirleyen bir model oluşturmak.

Siyam sinir aglari (Siamese Neural Networks - SNN) kullanılır: - CNN, RNN veya MLP olarak uygulanabilir - Önemli olan egitiim seklidir: Uclu kayip fonksiyonu (triplet loss) kullanılır - Uc görüntü: Capa (Anchor), Pozitif (ayni kisi), Negatif (farkli kisi)


Ozet

Konu Aciklama
Cekirdek Regresyon Parametresiz, veri tabanli regresyon yöntemi
Cok Sinifli Softmax, one-vs-rest stratejisi
Tek Sinifli Anomali tespiti: Gauss, k-means, kNN, SVM tabanli
Cok Etiketli Birden fazla etiket: ikili çapraz entropi, sahte siniflar
Torbalaama (Bagging) Rastgele örnekleme + cok ağaç, varyans azaltir
Rastgele Orman Bagging + rastgele özellik secimi, korelasyonu azaltir
Gradyan Artırma Artiklari duzeltme, yanlilik azaltir, en güçlü algoritmalardan
Dizi Etiketleme RNN, CRF ile ardisik veri etiketleme
Seq2Seq Kodlayici-kod cozucu + dikkat mekanizması
Aktif Öğrenme En bilgilendirici örneklere uzman etiketlemesi
Yari Denetimli Az etiketli + cok etiketssiz veri ile öğrenme
Tek Atiisli Siyam aglari, uclu kayip ile yuz tanima

Ilgili bölümler: bölüm-05-temel-pratik | bölüm-06-sinir-aglari


Lisans ve Atıf

Bu sayfa, Andriy Burkov tarafından yazılan "The Hundred-Page Machine Learning Book" kitabına dayalı notlar içermektedir.

MIT Lisansı gereği bu copyright bildirimi ve izin bildirimi, Yazılımın tüm kopyalarına veya önemli bölümlerine dahil edilmelidir.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. Bu içerik eğitim amaçlıdır ve orijinal eserin yerine geçmez. Tam kitap için themlbook.com adresini ziyaret edin.