Teoriden Pratiğe Makine Öğrenmesi: Notasyon, Matematiksel Temeller ve Algoritmik İçgörüler
Makine öğrenmesi dünyasına adım atarken topluluktaki en büyük eksikliklerden biri, eğitimin ya tamamen teorik matematikte boğulması ya da ezbere dayalı kütüphane fonksiyonlarından ibaret kalmasıdır.
Ezberci Yaklaşımdan Sıyrılmak
Yapay zeka ve veri bilimi dünyasına adım atan birçok geliştiricinin düştüğü çok tipik bir tuzak vardır: Birkaç satır Python kodu yazıp Scikit-Learn kütüphanesinden model.fit() ve model.predict() çağırmak, ardından elde edilen %90'lık doğruluk oranıyla algoritmanın "çalıştığını" varsaymak.
Ancak bir AI Engineer / Makine Öğrenmesi Mühendisi perspektifinden baktığımızda, bu yaklaşım sistemi tam anlamıyla bir "kara kutu" (black-box) olarak kullanmaktan öteye geçmez. Gerçek hayattaki mühendislik problemlerinde ve karmaşık veri setlerinde işler her zaman ideal gitmez. Modeliniz aşırı öğrendiğinde (overfitting), sınıflandırma veri setiniz dengesiz olduğunda (imbalanced data) ya da boyut sayısı arttıkça modelin performansı çöktüğünde (curse of dimensionality), kütüphanelerin sunduğu hazır fonksiyonlar tek başına çözüm sunmaz.
Problem anında müdahale edebilmek, modelin arkasındaki matematiğe, veri notasyonuna ve optimizasyon dinamiklerine hakim olmayı gerektirir. Bu yazıda; tamamladığım kapsamlı Machine Learning eğitimi boyunca edindiğim teorik bilgileri, ezbere dayalı uygulama kalıplarından sıyrılarak endüstri standartlarına uygun bir dille inceleyeceğiz.
Veriyi Matematiksel İfade Etmek: Notasyon Standartları
Makine öğrenmesinde algoritmanın dili matematiktir. Farklı modelleri kıyaslarken, makaleleri okurken veya bir problemi formüle ederken kafa karışıklığını önlemek için evrensel bir notasyon standardı kullanırız. Veriyi bilgisayarın anlayacağı dilde temsil etmek için temelde şu dört kavramı tanımlarız:
- $n$ (Gözlem / Satır Sayısı): Veri setimizdeki toplam veri veya kayıt adedini ifade eder.
- $p$ (Özellik / Sütun Sayısı): Verinin sahip olduğu değişken veya öznitelik (feature) adedidir.
- $X$ (Girdi / Feature Matrisi): Tüm bağımsız değişkenlerimizi tutan $n \times p$ boyutlu devasa bir matristir. $x_{ij}$, $i$-inci gözlemin $j$-inci özelliğine karşılık gelen tekil bir değeri temsil eder.
- $y$ (Çıktı / Target Vektörü): Tahmin etmeye çalıştığımız hedef değişkeni içeren $n \times 1$ boyutlu tek sütunluk bir vektördür.
Hakiki İlişki: $y = f(X) + \epsilon$
Bütün gözetimli (supervised) makine öğrenmesi serüvenimizin tek bir teorik temeli vardır: Doğada veya iş süreçlerinde $X$ ile $y$ arasında var olduğuna inandığımız, fakat matematiksel denklemini bilmediğimiz bir $f$ ilişki fonksiyonu bulunur. Amacımız, eldeki verileri kullanarak bu bilinmeyen $f$ fonksiyonunu en iyi şekilde taklit eden bir $\hat{f}$ (tahmin fonksiyonu) oluşturmaktır.
Yüksek Boyutların Gizli Tehlikesi: Curse of Dimensionality
Modelimize ne kadar çok özellik ($p$) eklersek, veriyi o kadar iyi anlatacağımızı düşünebiliriz. Ancak pratikte işler böyle yürümez. Özellik sayısını artırmak, verinin içinde bulunduğu uzayın boyutunu katlayarak büyütür ve karşımıza yapay zekadaki en büyük dertlerden biri çıkar: Boyutun Laneti (Curse of Dimensionality).
1-D (Çizgi) 2-D (Kare) 3-D (Küp)
o---o---o o---o---o o---o---o
| | / /|
o---o---o o---o---o o
| | | |/
o---o---o o---o---o
(Yoğun Veri) (Aralıklar Açılır) (Veri Seyrekleşir / Sparse)
Boyut sayısı ($p$) arttıkça, uzayın hacmi üstel olarak büyür. Ancak elimizdeki gözlem sayısı ($n$) sabit kalır.
- Mesafe Metriklerinin Çöküşü: $k$-NN (K-Nearest Neighbors) gibi komşuluk tabanlı algoritmaları düşünelim. 1 boyutlu bir çizgide noktalar birbirine oldukça yakınken; 50 veya 100 boyutlu bir küpte noktalar uzayın köşelerine çekilir ve birbirine aşırı uzak hale gelir.
- Anlamsızlaşan Komşuluk: Yüksek boyutlu uzayda neredeyse tüm noktalar birbirine eşit derecede "uzak" görünmeye başlar. Bu durumda "en yakın komşu" kavramı geometrik anlamını yitirir.
Mühendislik Çözümleri
Uygulamalarda bu laneti kırmak ve modeli genelleyebilir tutmak için iki ana yaklaşım kullanırız:
- Regülarizasyon ($L_1 / L_2$)Ridge ($L_2$) katsayıları küçülterek varyansı düşürürken, Lasso ($L_1$) gereksiz özelliklerin katsayılarını doğrudan sıfıra eşitleyerek otomatik özellik seçimi (feature selection) yapar.
- Boyut İndirgeme (PCA)Yüksek boyutlu uzaydaki varyansın büyük kısmını temsil eden özvektörleri (eigenvectors) bularak, bilgiyi en az kayıpla daha düşük boyutlu bir alt uzaya projekte ederiz.
Model Sağlığı ve Denge: Bias-Variance Trade-off
Bir makine öğrenmesi modelinin gerçek dünyadaki (test verisindeki) başarısını belirleyen en kritik dinamik, Bias (Önyargı) ve Variance (Varyans) arasındaki dengedir. Modelimizin test verisinde yaptığı toplam beklenen hatayı matematiksel olarak ayırdığımızda karşımıza üç temel bileşen çıkar:
Hata (MSE)
^
| \ / (Test Hatası / Total Error)
| \ _--_ /
| \/ \
| /\ \___ (Varyans / Overfitting)
| / \
| / \_______ (Bias / Underfitting)
| /
+------------------------------------> Model Esnekliği
^
(İdeal Denge)
Bias (Önyargı) / Underfitting
- Modelin gerçek ilişkiyi çok basit varsaymasından kaynaklanır.
- Model veri setini temsil etmekte çok basit kalır.
- Örn: Eğrisel ve karmaşık bir veri dağılımına zorla düz bir doğru (Lineer Regresyon) oturtmaya çalışmak.
- Model ne eğitim verisini öğrenebilir ne de test verisinde başarılı olur.
Varyans (Variance) / Overfitting
- Tahminlerin farklı eğitim setlerinde ne kadar değiştiğinin ölçüsüdür.
- Model aşırı esnektir ve verideki tüm gürültüyü (noise) ezberler.
- Eğitim verisinde %99 doğruluk elde ederken, daha önce hiç görmediği test verisinde çullanır ve çökertir.
Amacımız, model esnekliğini (flexibility) öyle bir noktada tutmaktır ki; Bias ve Varyansın toplamı minimum olsun ve test hatası U-şeklindeki dip noktasına ulaşsın.
Regresyondan Sınıflandırmaya: Model Performansını Doğru Ölçmek
Bir modeli eğitmek madalyonun sadece bir yüzüdür; asıl mühendislik marifeti o modelin başarısını doğru metriklerle ölçebilmektir. Problem türüne göre ölçüm metodolojimiz kökten değişir:
Sürekli Değerleri Ölçmek (Regresyon Metrikleri)
Hedef değişkenimiz sayısal ve sürekli bir değerse (ev fiyatı, sıcaklık, satış miktarı), yapılan hatanın büyüklüğünü temel metriklerle ölçeriz:
- MSE (Mean Squared Error): Hataların karelerinin ortalamasıdır. Kare alma işleminden dolayı büyük hataları ağır bir şekilde cezalandırır.
- RMSE (Root Mean Squared Error): MSE'nin kareköküdür. Hatanın birimini hedef değişkenle aynı ölçeğe getirerek yorumlamayı kolaylaştırır.
- $R^2$ (Belirleme Katsayısı): Modelimizin, verideki toplam varyansın yüzde kaçını açıklayabildiğini gösterir. $R^2 = 0.85$ demek, verideki değişkenliğin %85'ini modelimizin başarıyla açıkladığı anlamına gelir.
Kategorik Kararları Değerlendirmek (Sınıflandırma Metrikleri)
Sınıflandırma problemlerinde en büyük tuzak sadece Accuracy (Doğruluk Oranı) metriğine güvenmektir. Dengesiz bir veri setinde (örneğin 1000 hastadan sadece 10'unun kanser olduğu bir vakada) model her vakaya "Sağlıklı" derse %99 Accuracy elde eder ama tıp açısından tam bir felakettir.
Bu nedenle değerlendirmemizi Confusion Matrix (Karmaşıklık Matrisi) üzerinden yaparız:
| Tahmin: Pozitif | Tahmin: Negatif | |
|---|---|---|
| Gerçek: Pozitif | TP (True Positive) | FN (False Negative) |
| Gerçek: Negatif | FP (False Positive) | TN (True Negative) |
- Precision (Hassasiyet): "Pozitif" dediğimiz durumların ne kadarı gerçekten pozitif? ($TP / (TP+FP)$). Yanlış alarm vermemenin kritik olduğu durumlarda önemlidir.
- Recall (Duyarlılık): Gerçekteki pozitif vakaların ne kadarını yakalayabildik? ($TP / (TP+FN)$). Kaçırmanın hayati olduğu durumlarda kritik metriktir.
- F1-Score: Precision ve Recall arasındaki dengedir (harmonik ortalama). Dengesiz veri setlerinde en güvenilir metriktir.
- ROC-AUC Eğrisi: Farklı karar eşiklerine göre modelin ayırt etme gücünü ölçer. AUC l'e ne kadar yakınsa başarı o kadar yüksektir.
Teoriden Sahaya Geçiş
Makine öğrenmesini sadece kütüphanelerin sunduğu hazır metotlardan ibaret görmek, karmaşık ve değişken veri dinamikleriyle karşılaştığınızda sizi yarı yolda bırakır. Bir Yapay Zeka Mühendisi olarak fark yaratmanın yolu; modellerin matematiksel temellerini, veri notasyonunu, boyut yükseldiğinde ortaya çıkan problemleri ve model parametrelerinin arkasındaki dengeleri tam anlamıyla kavramaktan geçer.
Projelerinizde daha sağlam ve genelleyebilir sistemler kurabilmek için şu temel ilkeleri her zaman odağınızda tutmanızı öneririm:
- Önce Veriyi DinleyinVerinizi $n \times p$ boyutlu bir matris olarak görün ve boyut sayısı arttıkça seyrekleşme problemlerine karşı regülarizasyon veya boyut indirgeme (PCA) tekniklerini hazırda tutun.
- Ezberden Kaçının, Varyansı YönetinEğitim verisindeki (%99) performans başarının göstergesi değildir. Her zaman $k$-fold Cross-Validation kullanarak modelin hiç görmediği verideki davranışını (Test Hatası) optimize edin.
- Probleme Uygun Metrik SeçinSınıflandırma sorunlarında asla sadece doğruluk (Accuracy) metriğine güvenmeyin. Dengesiz veri setlerinde Precision, Recall, F1-score ve ROC-AUC değerlerini analizin merkezine koyun.

