Bir Makine Öğrenmesi Tutkununun Büyü Defteri ve Kirli İtirafları
Merhaba "from sklearn import hayat_kurtar" dostlarım!
Bugün, ML yolculuğumdaki "fit() basınca her şey hallolur" safsatasından, "neden
çalışmadı?" çığlıklarına uzanan trajikomik hikayemi anlatacağım. Veri
büyüsü yaparken düştüğüm çukurlar, yaktığımız modeller ve öğrendiğimiz dersler. Hazırsanız, ezberci
büyücülükten, akıl yürütme bilgeliğine giden yolda
kaybettiğimiz "accuracy"ları bulalım!
"Mükemmelmiş Gibi Davran, Kimse Sorgulamaz!"
1. Fit() Tuşuna Basınca Her Şeyi Çözdüğümüzü Sandığımız O
Masum Günler
"Kod çalıştı, accuracy %90! Ben bir dahiyim!" diye
LinkedIn’e post atarken, aslında:
- Hiperparametrelerle kumar
oynayan bir korsan,
- Val_loss’a
körü körüne inanan bir hacı,
- Ve "Neden
bu model?" sorusuna "Çünkü Kaggle'da
popüler!" diyen bir kopyala-yapıştır ustasıydım.
Gerçek şu: Scikit-learn'de fit() demek, mikrodalgaya
su koyup "Çay yaptım!" demeye benziyor. , veya pizza atıp
şef olmaya benziyor.
2. İstatistik Bilmezsek, Model Bizi Bilir Mi?
Bir eğitmen "İstatistik önemli ama şart
değil" deyince, içimdeki normal dağılım anormal
oldu. İtiraf ediyorum:
- Confusion
Matrix’i, hayatımdaki karmaşayla karıştırdım.
- Dağılım?
"Dağınık masaüstüm gibi bir şey herhalde
- p-değerini,
Puan mı veriyorlar?" .
- Gradient
Descent’i, bisikletle yokuş aşağı kaymak zannettim.
İstatistik bilmeyen ML’ci, haritayı yakıp GPS’e güvenen
gezgin gibidir. Sonra "Neden
kayboldum?" diye sorar.
3. Metriklerle Dans: Rakamlar Bize Yalan Söylemez, Ama
Her Şeyi Anlatmaz!
"Accuracy %99! AUC 1.0!" diye sevinirken, modelin:
- Kedileri
kopek,
- Krediyi
reddettiği müşteriyi “Bitcoin al!" veya” Sansinizi
Rulette deneyin” diye yönlendirdiğini fark etmiyoruz.
- Ve SHAP’ın
Marvel değil, modeli sorgulama aracı olduğunu fark etmedik. yoksa mahkeme
kapısında *"Ama accuracy %95’ti!"* diye ağlarsınız
Not: Overfitting, sevgilinin "Seni
asla bırakmam" deyip ertesi gün terk etmesi gibidir.
4. Makine Öğrenmesi Günlükleri: Biraz Karmaşa, Biraz
Merak
Zamanla öğrendim ki ML, "doğru cevabı
bulmak" değil, "yanlışın nerede olduğunu
anlamak".
- Model
%90 doğru mu? Güzel, ama %10 hata nerede?
- Feature
Importance yoksa, model kararlarını "Rüyamda
gördüm!" diye mi açıklayacağız?
- Ethics?
Evet, o bir şey yemek değil! Modeliniz "kadınlar teknik
direktör olamaz" diyorsa, accuracy ne kadar yüksek olursa
olsun yanlıştır!
Bu iş, "veriye dokunan sanat" ile "matematiğe
dayanan bilim" arasında gidip gelmek.
5. Ustalaşma Yolu: Freni Anlamak
Backpropagation'ı anlamadan derin öğrenme yapmak, arabayla
otobanda giderken frenin ne işe yaradığını bilmemek gibi. Bir gün
duvara çarparsınız!
Çözüm:
- "Nasıl
çalışır?" diye sor.
- "Neden
çalışmıyor?" diye kazı.
- "Bu
karar adil mi?" diye dert et.
Unutmayın: Kütüphaneler sihir değil, araçtır. Gerçek
ustalık, "import tensorflow" değil, "Bu
tensor neden burada?" diye sormaktır.
6. Hiperparametre Avcıları: Random Search’ün Kurbanları
Hiperparametre optimizasyonu yaparken:
- Grid Search ile tüm kombinasyonları deneyip, "En
iyisi 42 numaralı ayar!" diye not alıyorsunuz.
- Bayesian Optimization’ı duyunca, "Thomas
Bayes’in torunu mu bu?" diye düşünüyorsunuz.
Gerçek şu: Hiperparametre aramak, markette gözü kapalı
çikolata seçip sonra hepsini tek tek tadıp “Aha! Bu fıstıklısıymış” demek gibi
veya radyo frekansı ayarlayıp “Şarkı
güzel ama biraz cızırtılı, bir tık sola alayım…” diye uğraşmaya benziyor.
7. Etik mi Dediniz, Yeni Bir Python Library mi?
Modeliniz:
- Kadın başvuruları görünce kredi oranını düşürüyor,
- İsimden etnik köken tahmini yapıyor ve “riskli”
etiketini yapıştırıyor,
- Ve siz "Ama accuracy %95!" diye
savunuyorsunuz.
Tebrikler! "Etik? Ben NumPy ve Istatistik biliyorum!"** rozetiniz hazır.
Unutmayın: Bias’lı modeliniz bir gün sizi "adil
algoritma" davasında bekliyor olacak.
Son Söz: Buyucu olmayalim.
Neden herkes modelin iç dünyasını merak
etmek yerine, LinkedIn'de "%99 AUC!" diye
böbürleniyor? Belki de CV'mize "ML Uzmanı" yazınca
egomuz tavan yapıyor. Ya da "gradient descent" ile "grand
theft auto" arasındaki farkı bilmeden, en kolay terimleri seçip
kendimizi kandırıyoruz.
Ama gerçek şu:
·
Kod yazmayı bırak, önce sor: "Bu model
neden böyle çalışıyor?". Cunku , "Süper model" diye
bir şey yoktur, "doğru soruya cevap veren model" vardır.
·
Kütüphaneler sihir değil, araçtır.Itiraf
etmeliyim ki , bazen cok buyuk kisayollardir. Ama import tensorflow yazmakla "Bu
tensor neden burada?" diye sormak arasındaki fark, çırakla
bilge arasındaki farktır.
·
Ethics dusun, Bias’lı veriyle beslenen
model veya "Accuracy yüksekse sorun yok" demek, gerçek
dünyada "kadınların maaşını düşük tahmin eden" bir
sistem haline gelebilir. Bias'lı bir model, adalet mahkemesinde sizi
bekleyen bir davadan farksızdır. Bu karar adil mi?
·
Ezberlemeyin, anlayın. Sorularla yaptiginizi tekrar deneyin , baska
metodlari sorgulayin modellerinizde. Ornegin , Aritmetik Mean yerine ‘ Geometrik
Mean’ ile bir deneyeyim deyin.
·
Karistirmaktan , kurcalamaktan cekinmeyin ,
hatta bir cok seyi bir arada dusunun.
·
Sonuç almak değil, "Bu sonuç
gerçek dünyada neyi değiştirir?" diye sorgulayın.
Çünkü bu iş:
· "Veriye dokunan bir sanat" ile, "matematiğe dayanan bir bilim" arasında gidip gelmektir.
Yoksa elinizde:
· Çalışan bir model değil,
Çalışıyor gibi yapan bir illüzyon kalır.
P.S. Adam Optimizer’ın beta’sını hâlâ tam
bilmiyorsanız, üzülmeyin. Hepimiz "import pandas as pd" yazıp
hayata tutunuyoruz.
Not: Bu yazıyı okuyup "Acaba SHAP
mı öğrensem?" diyenlere selam olsun!
For English
Hiç yorum yok:
Yorum Gönder