Bölüm 8: Advanced Practice
Kaynak: Andriy Burkov -- "The Hundred-Page Machine Learning Book" (theMLbook.com)
Bölüm 8: Ileri Pratik (Advanced Practice)
Bu bölüm, belirli bağlamlarda son derece faydali olabilecek ileri teknikleri içerir. "Ileri Pratik" olarak adlandirilmasinin sebebi tekniklerin daha karmaşık olmasi degil, cok spesifik durumlarda uygulanmalaridir. Pek cok pratik durumda bu tekniklere ihtiyac duymayabilirsiniz, ancak bazen büyük fark yaratirlar.
8.1 Dengesiz Veri Setleriyle Basa Cikma (Handling Imbalanced Datasets)
Pek cok pratik durumda, etiketli veri setinizde bazi sınıfların örnekleri yetersiz temsil edilir. Örneğin, bir siniflandirici gerçek ve sahtekar e-ticaret işlemlerini ayirt etmek zorundaysa, gerçek işlem örnekleri cok daha fazladir.
Sorunun Temeli
Support Vector Machines (SVM) gibi algoritmalarda, yumusak marjinli (soft margin) bir model kullanildiginda, yanlis siniflandirilan örnekler için bir maliyet tanimlanir. Eğitim verisinde her zaman gurultu bulundugu icin, cogunluk sınıfına ait örneklerin dogru siniflandirilmasi ugruna azinlik sınıfındaki örnekler yanlis siniflandirilma riski tasir. SVM algoritmasi, hiper duzlemi mumkun oldugunca yanlis siniflandirilan örneklerden kacinacak şekilde tasimaya çalışır.
Cozum Yöntemleri
Sinif Agirliklari (Class Weighting): Azinlik sınıfınin yanlis sınıflandırma maliyeti daha yüksek ayarlanirsa, model bu örnekleri dogru sınıflandırmak için daha cok caba gösterir. scikit-learn'deki SVC gibi bazi uygulamalar her sınıf için ağırlık belirlemeye izin verir.
Aşırı Örnekleme (Oversampling): Agirlik belirlemeye izin vermeyen algoritmalarda, azinlik sınıfınin örneklerinin birden fazla kopyasini olusturarak o sınıfın önemini artirabilirsiniz.
Eksik Örnekleme (Undersampling): Eğitim setinden cogunluk sınıfınin bazi örneklerini rastgele cikarmak.
Sentetik Örnek Olusturma: Azinlik sınıfınin birden fazla örneğinin özellik değerlerini rastgele örnekleyip birlestirerek yeni örnekler oluşturma. Iki populer algoritma vardir:
- SMOTE (Synthetic Minority Oversampling Technique): Azinlik sınıfındaki bir örnek x_i için k en yakin komsusunu bulur. Ardindan x_new = x_i + lambda * (x_zi - x_i) formulu ile sentetik örnek oluşturur (lambda, [0,1] araliginda rastgele bir sayidir).
- ADASYN (Adaptive Synthetic Sampling): SMOTE'a benzer şekilde çalışır, ancak her x_i için oluşturulan sentetik örnek sayisi, o noktanin k komsulugu icindeki azinlik sınıfına ait olmayan örneklerin sayisiyla orantilidir. Boylece azinlik sınıfınin nadir oldugu bölgelerde daha fazla sentetik örnek uretilir.
Dogal Olarak Dayanikli Algoritmalar: Karar ağaçlari, Random Forest ve Gradient Boosting gibi algoritmalar dengesiz veri setlerinde genellikle iyi performans gösterir.
8.2 Model Birlestirme (Combining Models)
Ensemble Methods (topluluk algoritmalari), örneğin Random Forest, genellikle ayni turden modelleri birlestirir. Pratikte, farkli öğrenme algoritmalariyla oluşturulmuş güçlü modelleri birlestirerek ek performans kazanimi elde edilebilir. Bu durumda genellikle yalnizca iki veya uc model kullanılır.
Uc Temel Birlestirme Yöntemi
1. Ortalama Alma (Averaging): Hem regresyon hem de sınıflandırma puani donduren modeller için gecerlidir. Tum temel modeller (base models) girdi x'e uygulanir ve tahminlerin ortalamasi alinir.
2. Cogunluk Oyu (Majority Vote): Sınıflandırma modelleri için gecerlidir. Tum temel modeller girdi x'e uygulanir ve tahminler arasındaki cogunluk sınıfı dondurulur. Esitlik durumunda ya rastgele bir sınıf secilir ya da bir hata mesaji dondurulur.
3. Istifleme (Stacking): Temel modellerin çıktılarini girdi olarak alan bir meta-model olusturulur. Örneğin, f1 ve f2 siniflandiricilari birlestirilecekse, istiflenmis model için her eğitim örneği (x_hat, y_hat) olarak olusturulur; burada x_hat = [f1(x), f2(x)] ve y_hat = y_i'dir. Bazi temel modeller sınıf puani da dondururse, bu değerler de özellik olarak kullanilabilir.
Neden Calisiyor?
Birlestirmenin daha iyi performans saglamasinin nedeni, birbirleriyle korelasyonsuz güçlü modellerin uyum icinde olduklarinda dogru sonuça ulasma olasıliginin daha yüksek olmasidir. Farkli modellerin farkli özellikler veya farkli yapida algoritmalar (örneğin SVM ve Random Forest) kullanilarak elde edilmesi idealdir.
8.3 Sinir Agi Eğitimi (Training Neural Networks)
Sinir agi eğitiminde zorlu bir husus, verinizi agin calisabilecegi girdiye dönüştürmektir.
Veri Hazirlama
- Görüntü Verileri: Tum görüntülerin ayni boyutlara getirilmesi, piksellerin standartlastirilmasi ve [0,1] araligina normalizasyonu gerekir.
- Metin Verileri: Tokenize edilmesi (kelimeler, noktalama işaretleri gibi parçalara bölünmesi) gerekir. Convolutional Neural Networks ve Recurrent Neural Networks için her token one-hot kodlama ile vektore donusturulur. Alternatif olarak kelime gommeleri (word embeddings) kullanilabilir.
Mimari Secimi
Ayni problem için (örneğin seq2seq öğrenme) çeşitli mimariler mevcuttur. Google Scholar veya Microsoft Academic üzerinden son teknoloji çözümleri araştırmak tavsiye edilir. Modern bir mimarinin eski bir mimariye üstünlugu, veri on işleme, temizleme ve normalizasyon ile büyük eğitim seti oluşturulmasıyla azalir.
Katman Sayisi ve Boyutu
- Bir veya iki katmanla baslayip modelin eğitim verisine ne kadar uygun oldugunu kontrol edin (düşük sapma/bias).
- Model iyi uyum saglamazsa, katman boyutunu ve sayisini kademeli olarak artirin.
- Eğitim verisine mukemmel uyum sagladiginda, doğrulama verisinde performans düşükse (yüksek varyans), duzenlesme (regularization) ekleyin.
- Duzenlesme sonrasi eğitim verisine uyum bozulursa, ag boyutunu hafifce artirin.
- Bu iteratif süreçi, model hem eğitim hem doğrulama verisine yeterince uyum saglayincaya kadar tekrarlayin.
8.4 Ileri Duzenlesme Teknikleri (Advanced Regularization)
Sinir aglarinda L1 ve L2 duzenlesmenin otesinde, aga ozgu duzenlesme yöntemleri vardir:
Dropout
Her eğitim örneği ag üzerinden gectiginde, bazi birimler rastgele olarak hesaplamadan dislanir. Dislanan birimlerin yuzdesi ne kadar yüksekse, duzenlesme etkisi o kadar güçlüdur. Dropout parametresi [0,1] araligindadir ve doğrulama verisi üzerinde deneysel olarak ayarlanir.
Yigin Normalizasyonu (Batch Normalization)
Teknik olarak bir duzenlesme teknigi olmamakla birlikte, model üzerinde genellikle duzenlesme etkisi gösterir. Bir katmanin çıktısini standartlastirarak bir sonraki katmana vermek uzere iki ardisik katman arasina eklenir.
Erken Durdurma (Early Stopping)
Her epoktan sonra ara model kaydedilir ve doğrulama seti üzerindeki performansi degerlendirilir. Bir noktadan sonra maliyet azalmaya devam etse de doğrulama performansi kotulestikten sonra, en iyi modele geri donulur. Epoklar sonrasi kaydedilen modellere kontrol noktasi (checkpoint) denir.
Veri Artırma (Data Augmentation)
Orijinal etiketli eğitim setindeki örneklere çeşitli dönüşümler uygulayarak (hafif yakinlastirma, dondurme, cevirme, karartma vb.) sentetik örnekler olusturulur. Orijinal etiket korunur. Bu teknik özellikle görüntü modellerinde sik kullanılır ve pratikte model performansini önemli ölçüde artirabilir. Ayrica bkz. Data Augmentation.
8.5 Coklu Girdi Isleme (Handling Multiple Inputs)
Pek cok pratik problemde cok kipli (multimodal) veriyle calisilir. Örneğin, girdiniz bir görüntü ve metin olabilir; çıktı ise metnin görüntüyu tanimlayip tanimlamadigini belirtir.
Yaklasimlar
- Sig Öğrenme: Her girdi tipi için ayri model egitilir, ardindan model birlestirme teknikleri uygulanir. Alternatif olarak her girdi vektorize edilip birlestirilir (concatenation).
- Sinir Aglari: Daha fazla esneklik saglar. Her girdi tipi için bir alt ag olusturulur (örneğin görüntü için Convolutional Neural Networks, metin için Recurrent Neural Networks). Her alt agin son katmani bir gomme (embedding) katmanidir. Iki gomme birlestirilerek üzerine softmax veya sigmoid gibi bir sınıflandırma katmani eklenir.
8.6 Coklu Cikti Isleme (Handling Multiple Outputs)
Bazi problemlerde bir girdi için birden fazla çıktı tahmini yapilmasi gerekir.
Yaklasim
Bir alt ag kodlayici (encoder) olarak çalışır ve girdi görüntüyu okur. Kodlayicinin son katmani görüntüyu temsil eden bir gomme vektorudur. Ardindan bu gomme katmani üzerine iki ayri alt ag eklenir:
- Koordinat Tahmini Alt Agi: ReLU son katman ile pozitif reel sayilari tahmin eder; ortalama kare hata (MSE) maliyet fonksiyonu C1 kullanir.
- Etiket Tahmini Alt Agi: Softmax son katman ile olasılik çıktısi üretir; çapraz entropi (cross-entropy) maliyet fonksiyonu C2 kullanir.
Iki maliyet fonksiyonu es zamanli optimize edilemeyecegi icin, birlesik maliyet fonksiyonu alpha * C1 + (1 - alpha) * C2 seklinde tanimlanir; burada alpha, [0,1] araliginda bir hiper parametredir ve doğrulama verisi üzerinde ayarlanir.
8.7 Transfer Öğrenme (Transfer Learning)
Transfer öğrenme, sinir aglarinin sig modellere kiyasla benzersiz bir üstünluge sahip oldugu alandir. Mevcut bir veri seti üzerinde eğitilmiş bir model alinir ve farkli bir veri setindeki örnekleri tahmin etmek için uyarlanir. Ayrica bkz. Transfer Learning.
Adimlar
- Orijinal büyük veri seti (örneğin yaban hayvanlari) üzerinde derin bir model olusturulur.
- Ikinci problem için (örneğin evcil hayvanlar) cok daha küçük etiketli bir veri seti derlenir.
- Ilk modelin son bir veya birden fazla katmani (sınıflandırma/regresyon katmanlari) kaldirilir.
- Kaldirilan katmanlar, yeni probleme uygun katmanlarla degistirilir.
- Ilk modelden kalan katmanlarin parametreleri dondurulur.
- Küçük etiketli veri seti ve gradyan inisi (gradient descent) ile yalnizca yeni katmanlarin parametreleri egitilir.
Pratik Ipuclari
- Gorsel problemler için cevrimici olarak hazir derin modeller mevcuttur.
- Etiketleme maliyetinin yüksek oldugu problemlerde, etiketlerin daha kolay elde edilebildigi baska bir veri seti kullanarak on eğitim yapilabilir. Örneğin Wikipedia sayfa kategorileri otomatik etiket olarak kullanilip, belge sınıflandırma modeli on eğitimi yapilabilir.
8.8 Algoritmik Verimlilik (Algorithmic Efficiency)
Bir problemi cozebilen her algoritma pratik degildir. Bazilari hizli, bazilari cok yavas olabilir.
Big O Notasyonu
Bilgisayar biliminde algoritma analizi alt alani, algoritmalarin karmaşıkligini belirleme ve karşılaştırma ile ilgilenir. Big O notasyonu, algoritmalarin çalışma suresi veya bellek gereksinimlerinin girdi boyutu buyudukce nasil buyudugunu siniflandirir.
Örnek: N boyutlu bir kume S icinde en uzak iki örneği bulma problemi:
- O(N^2) çözüm: Ic ice iki dongu ile tum elemanlari birbiriyle karsilastirir.
- O(N) çözüm: Tek bir dongude minimum ve maksimum değerleri bulur.
Genellikle karmaşıkligi polinom olan algoritmalar verimli kabul edilir. Ancak büyük veri caginda O(log N) algoritmalari tercih edilir.
Pratik Verimlilik Ipuclari
- Dongulerden kacinin: Matris ve vektor işlemleri kullanin. Örneğin
numpy.dot(w, x)kullanin, dongu ile carpim yapmayin. - Uygun veri yapilari kullanin: Koleksiyondaki eleman sirasi önemli degilse,
listyerinesetkullanin. Anahtar-değer cifti aramalari içindict(sozluk/hashmap) kullanin. - Populer kutuphaneleri tercih edin: numpy, scipy ve scikit-learn gibi paketler verimlilik odakli tasarlanmistir ve pek cok metodu C dilinde uygular.
- Jenerator kullanin: Büyük koleksiyonlar üzerinde iterasyon yaptiginizda, tum elemanlari bir kerede dondurmek yerine birer birer dondurun.
- Profil araclari kullanin:
cProfilepaketi ile kodunuzdaki verimsizlikleri tespit edin. - Paralellestirme ve derleme:
multiprocessingpaketi ile paralel hesaplama; PyPy veya Numba ile Python kodunuzu optimize edilmis makine koduna derleyin.
Ozet
| Konu | Temel Fikir |
|---|---|
| Dengesiz Veri | Sinif ağırlıklari, SMOTE/ADASYN, oversampling/undersampling |
| Model Birlestirme | Ortalama, cogunluk oyu, istifleme (stacking) |
| Sinir Agi Eğitimi | Veri donusturma, iteratif katman boyutlandirma |
| Ileri Duzenlesme | Dropout, batch normalization, erken durdurma, veri artırma |
| Coklu Girdi/Cikti | Alt ag mimarileri, gomme birlestirme, birlesik maliyet |
| Transfer Öğrenme | On eğitimli modellerin dondurulmus katmanlarla adaptasyonu |
| Algoritmik Verimlilik | Big O, vektorize işlemler, uygun veri yapilari |
Lisans ve Atıf
Bu sayfa, Andriy Burkov tarafından yazılan "The Hundred-Page Machine Learning Book" kitabına dayalı notlar içermektedir.
- Kitap: theMLbook.com
- GitHub: github.com/aburkov/theMLbook
- Lisans: MIT License — Copyright (c) 2019 Andriy Burkov
- İlke: "Read first, buy later" — Kitabı önce okuyun, beğenirseniz satın alın.
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.