Makine Öğrenimi (ML) Kapsamlı Yol Haritası: Sıfırdan Uzmanlığa
1.1 Makine Öğrenimi Nedir?
Makine Öğrenimi (ML - Machine Learning), bilgisayar sistemlerine, açıkça programlanmadan, veri kullanarak öğrenme yeteneği kazandıran bir Yapay Zekâ (YZ) alt alanıdır. Bu disiplin, bilgisayarların insan müdahalesi olmadan verilerden çıkarımlar yapmasına, örüntüleri keşfetmesine ve zamanla bu örüntüleri kullanarak kararlar almasına olanak tanır. ML'in temel motivasyonu, geleneksel programlamanın zor veya imkansız olduğu karmaşık görevleri (örneğin: bir görüntünün içindeki kediyi tanımak, bir finansal piyasa trendini tahmin etmek) çözebilmektir.
ML'in Tarihsel Kökleri ve Tanımı
ML terimi ilk olarak 1959 yılında Arthur Samuel tarafından kullanılmıştır. Samuel, makine öğrenimini "bilgisayarlara açıkça programlanmadan öğrenme yeteneği kazandıran çalışma alanı" olarak tanımlamıştır. Bu tanım, günümüzde de geçerliliğini korumaktadır. ML, istatistik, olasılık teorisi ve bilgisayar bilimlerinin kesişiminde yer alır.
Geleneksel Programlama vs. Makine Öğrenimi
Geleneksel programlamada, bir problem için kural setini (mantığı) biz yazıp, veriyi girdi olarak veririz ve bilgisayar çıktıyı üretir. Yani: $\text{Veri} + \text{Kurallar} \rightarrow \text{Çıktı}$.
Makine öğreniminde ise durum tersine döner. Model, verilen çıktı-girdi çiftleri arasındaki kuralları (mantığı) kendi başına öğrenir. Yani: $\text{Veri} + \text{Çıktı} \rightarrow \text{Kurallar (Model)}$.
Bu öğrenilen kurallar, makine öğrenimi modeli olarak adlandırılır ve model, yeni, daha önce görmediği verilere uygulandığında genelleme yapma ve doğru tahminler üretme yeteneği kazanır.
Makine Öğrenimi Yaşam Döngüsü (Pipeline)
- Veri Toplama ve Keşfetme: Problem için uygun ve yeterli miktarda verinin toplanması ve yapısının anlaşılması.
- Veri Ön İşleme (Preprocessing): Eksik değerleri doldurma, aykırı değerleri temizleme, kategorik verileri dönüştürme ve ölçeklendirme işlemleri. Bu aşama, projenin başarısının %80'ini oluşturabilir.
- Model Seçimi: Görevin türüne (Regresyon, Sınıflandırma, Kümeleme) göre uygun algoritmanın belirlenmesi.
- Model Eğitimi (Training): Ön işlenmiş verinin algoritmaya verilerek modelin parametrelerinin öğrenilmesi.
- Model Değerlendirme: Modelin performansının bağımsız bir test kümesi üzerinde çeşitli metrikler (Doğruluk, F1 Skoru, RMSE vb.) kullanılarak ölçülmesi.
- Hiperparametre Ayarlama: Modelin performansını artırmak için dışsal parametrelerin optimize edilmesi.
- Model Dağıtımı (Deployment): Eğitilen modelin gerçek zamanlı tahminler yapması için canlı bir sisteme entegre edilmesi.
Makine öğrenimi, otomasyon, kişiselleştirme, tahmin ve karar verme süreçlerini dönüştüren, günümüz teknolojisinin en kritik bileşenlerinden biridir. Sağlık, finans, e-ticaret, ulaşım ve robotik gibi sektörlerdeki uygulamaları, sürekli genişleyen bir alandır.
1.2 Yapay Zekâ, Derin Öğrenme ve ML Farkları
Bu üç kavram genellikle birbirinin yerine kullanılsa da, aralarında net bir hiyerarşik ilişki bulunur. En geniş kapsamdan en dar ve spesifik alana doğru sıralanırlar: $\text{Yapay Zekâ} \supset \text{Makine Öğrenimi} \supset \text{Derin Öğrenme}$.
1. Yapay Zekâ (YZ / AI - Artificial Intelligence): En Geniş Alan
Tanım: İnsan zekasını taklit eden, çevresini algılayabilen, muhakeme edebilen, öğrenebilen ve problem çözme gibi insana özgü görevleri yerine getirebilen sistemler oluşturma bilimidir. YZ, 1950'li yıllardan bu yana var olan genel ve kapsayıcı bir hedeftir.
- Amaç: Makineleri akıllı davranış sergileyecek şekilde programlamaktır.
- Kapsam: Uzman Sistemler, Planlama, Doğal Dil İşleme, Bilgisayarlı Görü ve Robotik gibi çok geniş bir yelpazeyi kapsar. Makine öğrenimi, bu amaca ulaşmak için kullanılan yöntemlerden sadece biridir.
2. Makine Öğrenimi (ML - Machine Learning): YZ'nin Alt Kümesi
Tanım: YZ hedefine ulaşmak için kullanılan temel bir yaklaşımdır. Bilgisayarların açıkça programlanmak yerine, veri kullanarak öğrenmesini sağlayan matematiksel ve istatistiksel algoritmaları içerir. ML'in odak noktası, genelleme yeteneğine sahip modeller oluşturmaktır.
- Öğrenme Mekanizması: Verilen örneklerden (girdi/çıktı çiftleri) öğrenerek, daha önce görmediği durumlarda tahmin yapma yeteneği kazanır.
- Örnek Algoritmalar: Doğrusal Regresyon, Karar Ağaçları, Destek Vektör Makineleri (SVM), K-Means Kümeleme.
3. Derin Öğrenme (DL - Deep Learning): ML'nin Alt Kümesi
Tanım: Makine öğreniminin özel ve ileri bir alt kümesidir. **Birden fazla (derin) gizli katmana sahip Yapay Sinir Ağları (YSA)** kullanılarak gerçekleştirilir. DL, geleneksel ML'den farklı olarak, girdi verilerinden (örneğin bir resimdeki piksel değerlerinden) ilgili özellikleri **otomatik olarak çıkarma** yeteneğine sahiptir (Özellik Mühendisliğine olan ihtiyacı azaltır).
- Mimari: Genellikle Evrişimli Sinir Ağları (CNN) veya Tekrarlayan Sinir Ağları (RNN/LSTM/GRU) gibi karmaşık mimarileri kullanır.
- Uygulama Alanı: Büyük veri setleri ve karmaşık veriler (görüntü, ses, metin) üzerinde üstün performans sergiler. Günümüzdeki çeviri, yüz tanıma ve otonom araçlar gibi atılımların çoğu DL sayesinde gerçekleşir.
Farkların Özeti
Geleneksel Makine Öğrenimi, genellikle Veri Ön İşleme aşamasında insanın özellik seçimi (Feature Engineering) yapmasını gerektirirken, Derin Öğrenme modeli, katmanları aracılığıyla ham veriden en iyi özellikleri kendisi hiyerarşik olarak öğrenir. Her iki yaklaşım da Yapay Zekâ hedefine hizmet eder.
Kapsam Hiyerarşisi
- Yapay Zekâ: İnsan zekasını taklit etme hedefi.
- Makine Öğrenimi: Veriden öğrenerek YZ'ye ulaşma yöntemi.
- Derin Öğrenme: Çok katmanlı Sinir Ağları kullanarak öğrenme, ML'in güçlü bir alt kolu.
1.3 Denetimli/Denetimsiz/Pekiştirmeli Öğrenme
Makine öğrenimi algoritmaları, temel olarak, kullanılan veri setinin yapısına ve modelin öğrenme şekline göre üç ana paradigma altında sınıflandırılır. Bu ayrımlar, problem türünü ve çözmek için uygun algoritmayı belirler.
1. Denetimli Öğrenme (Supervised Learning)
Denetimli öğrenme, bir öğretmenin öğrenciyi yönlendirmesi gibi, modelin etiketli (labelled) veri setleriyle eğitildiği durumdur. Etiketli veri, her girdi örneği ($X$) için doğru çıktının ($Y$) bilindiği veridir. Modelin amacı, girdi ($X$) ile çıktı ($Y$) arasındaki eşleme fonksiyonunu ($f$) öğrenmektir, öyle ki $Y = f(X)$ doğru tahminler yapsın.
- Veri Tipi: Etiketli Veri (Girdi ve beklenen çıktı çiftleri).
- Temel Görevler:
- Sınıflandırma (Classification): Girdinin ayrık kategorilerden hangisine ait olduğunu tahmin etme (Örn: E-posta spam mi/değil mi, Görüntü kedi mi/köpek mi).
- Regresyon (Regression): Girdiye karşılık gelen sürekli bir sayısal değeri tahmin etme (Örn: Ev fiyatı, Hisse senedi değeri, Sıcaklık tahmini).
- Kullanılan Algoritmalar: Doğrusal Regresyon, Lojistik Regresyon, Karar Ağaçları, Destek Vektör Makineleri.
2. Denetimsiz Öğrenme (Unsupervised Learning)
Denetimsiz öğrenmede, model etiketsiz (unlabelled) verilerle çalışır. Modelin görevi, herhangi bir rehberlik olmadan, veri setinin kendi içindeki gizli yapıları, örüntüleri ve ilişkileri keşfetmektir. Bu öğrenme türü, veriyi anlamlandırmak ve keşfetmek için kullanılır.
- Veri Tipi: Etiketsiz Veri (Sadece girdi örneği $X$ mevcuttur).
- Temel Görevler:
- Kümeleme (Clustering): Benzer özelliklere sahip veri noktalarını gruplara (kümelere) ayırma (Örn: Müşteri segmentasyonu, Haber makalelerini konularına göre ayırma).
- Boyut İndirgeme (Dimensionality Reduction): Veri setindeki özellik sayısını azaltma, böylece modelin eğitimi hızlanır ve görselleştirme kolaylaşır (Örn: PCA, Autoencoders).
- Birliktelik Kuralı Madenciliği: Veri setindeki öğeler arasındaki ilişkileri bulma (Örn: Birlikte satın alınan ürünler).
- Kullanılan Algoritmalar: K-Means, Hiyerarşik Kümeleme, DBSCAN, PCA.
3. Pekiştirmeli Öğrenme (Reinforcement Learning - RL)
Pekiştirmeli öğrenme, diğer ikisinden farklı bir öğrenme modelidir. Bir Ajan (Agent)'ın, dinamik bir Ortam (Environment) içinde deneme yanılma yoluyla, belirli bir hedefi maksimize edecek en uygun eylem dizisini öğrenmesini konu alır.
- Öğrenme Mekanizması: Ajan, ortamla etkileşime girer. Doğru eylemler için Ödül (Reward), yanlış eylemler için ise Ceza (Penalty) alır. Model, uzun vadede kümülatif ödülü maksimize etmeyi öğrenir.
- Veri Tipi: Etkileşim yoluyla toplanan deneyim verisi (State, Action, Reward).
- Uygulama Alanları: Robotik kontrol, Otonom Sürüş Sistemleri, Karmaşık Oyun Yapay Zekâsı (DeepMind'ın AlphaGo'su).
1.4 Özellik, Etiket, Model, Eğitim
Makine öğrenimi alanında başarılı olmak için, bir modelin bileşenlerini oluşturan temel terminolojiyi doğru anlamak çok önemlidir. Bu kavramlar, tüm ML algoritmalarının ortak dilini oluşturur.
1. Veri Bileşenleri: Özellik (Feature) ve Etiket (Label)
Bir veri setini tablo olarak düşünürsek (örneğin bir ev fiyatı tahmini tablosu):
- Özellik (Feature - $X$): Bir tahmini yapmak için kullanılan girdi değişkenidir. Tablodaki sütun başlıklarına karşılık gelirler. Modelin çıktıyı üretmek için ihtiyaç duyduğu tüm bilgileri içerir.
- Örnek: Evin metrekaresi, oda sayısı, bulunduğu ilçe, yaşı.
- Özelliklerin doğru seçimi ve işlenmesi (Feature Engineering), model başarısını doğrudan etkileyen en önemli adımlardan biridir.
- Etiket (Label - $Y$): Tahmin etmeye çalıştığımız çıktı değişkenidir. Bu, denetimli öğrenmede modelin öğrenmek için kullandığı "doğru cevap"tır.
- Örnek: Evin nihai satış fiyatı (Regresyon), Evin kategori türü (Sınıflandırma).
- Gözlem/Örnek (Observation/Instance): Özellikler ve etiketlerin bir araya geldiği tek bir veri satırıdır. (Örn: 100 metrekare, 3 oda, 5 yaşında olan evin fiyatı 500.000 TL).
2. Öğrenme Mekanizması: Model ve Eğitim
- Model: Eğitim verisinden öğrenilmiş, girdi ($X$) ile çıktı ($Y$) arasındaki ilişkiyi temsil eden matematiksel fonksiyondur. Bu, bir Karar Ağacı yapısı, bir sinir ağı mimarisi veya bir regresyon denklemi olabilir. Modelin asıl amacı, bu ilişkiyi genelleştirmektir.
- Eğitim (Training): Modelin, eğitim veri kümesindeki girdi-çıktı çiftlerini kullanarak kendi içindeki ayarlanabilir parametrelerini (**ağırlıklar (weights)** ve **sapmalar (biases)**) optimize etme sürecidir. Eğitim sırasında model, tahmin hatasını (Loss Function) sürekli olarak minimize etmeye çalışır.
- Tahmin (Prediction): Model eğitimini tamamladıktan sonra, daha önce hiç görmediği yeni bir girdi ($X$) aldığında, öğrenilmiş ilişkiyi kullanarak bir çıktı ($Y$) üretmesi işlemidir.
3. Maliyet Fonksiyonu ve Optimizasyon
- Maliyet Fonksiyonu (Cost/Loss Function): Modelin yaptığı tahminler ile gerçek etiketler arasındaki farkın (hataların) büyüklüğünü ölçer. Amacımız bu değeri minimuma indirmektir. (Örn: Regresyonda Hata Kareler Ortalaması - MSE, Sınıflandırmada Çapraz Entropi - Cross-Entropy Loss).
- Optimizasyon Algoritması: Maliyet fonksiyonunu minimize etmek için kullanılan matematiksel yöntemdir. En yaygın kullanılanı **Gradyan İnişi (Gradient Descent)**'dir. Bu algoritma, maliyet fonksiyonunun en keskin eğimli olduğu yönde (gradyan) ilerleyerek modelin ağırlıklarını küçük adımlarla ayarlar.
Bu temel bileşenler, makine öğrenimi projesinin başarıyla tamamlanması için birbiriyle uyumlu çalışmak zorundadır.
1.5 Aşırı/Az Öğrenme ve Hiperparametreler
Bir makine öğrenimi modelinin başarısı, sadece eğitim verisine ne kadar iyi uyum sağladığı ile değil, aynı zamanda **genelleme yeteneği** ile ölçülür. Genelleme, modelin daha önce hiç görmediği yeni veriler üzerinde doğru tahminler yapabilmesidir. Bu genelleme yeteneği, modelin karmaşıklığı ile verinin karmaşıklığı arasındaki dengeye bağlıdır ve bu denge bozulduğunda aşırı veya az öğrenme sorunları ortaya çıkar.
1. Aşırı Öğrenme (Overfitting)
Tanım: Modelin eğitim verisindeki temel örüntüler yerine, **gürültüyü ve rastgele dalgalanmaları** bile ezberlemesi durumudur. Bu, modelin eğitim verisine mükemmel bir şekilde uyum sağlamasına neden olur, ancak yeni verilerde performans hızla düşer.
- Belirti: Eğitim skorları (Accuracy/R-squared) **çok yüksek**, ancak test/doğrulama skorları **düşüktür**.
- Nedenleri:
- Modelin veri setine göre **çok karmaşık** olması (çok fazla özellik, çok derin sinir ağı).
- Yetersiz büyüklükte bir eğitim veri setinin kullanılması.
- Çözümler:
- Daha fazla veri toplamak.
- Düzenlileştirme (Regularization): Modelin ağırlıklarını cezalandırarak karmaşıklığını azaltmak (L1 veya L2 Regularization).
- Modelin mimarisini basitleştirmek.
- Erken Durdurma (Early Stopping) kullanmak.
2. Az Öğrenme (Underfitting)
Tanım: Modelin eğitim verisindeki temel ve kritik örüntüleri bile öğrenemeyecek kadar **basit** kalmasıdır. Model, veriyi temsil edemez ve hem eğitim hem de test verilerinde kötü performans sergiler.
- Belirti: Hem eğitim hem de test skorları **düşüktür**. Modelin kapasitesi, problem karmaşıklığının altındadır.
- Nedenleri:
- Modelin veri setine göre **çok basit** olması (Doğrusal modelle karmaşık, doğrusal olmayan veriyi modellemeye çalışmak).
- Özellik mühendisliğinin yetersiz olması veya alakalı özelliklerin eksikliği.
- Çok fazla Düzenlileştirme uygulanması.
- Çözümler:
- Daha karmaşık ve esnek bir model kullanmak (Örn: Doğrusal model yerine Ağaç tabanlı veya Derin Öğrenme modelleri).
- Modele daha alakalı, yeni özellikler eklemek (Feature Engineering).
- Düzenlileştirmeyi azaltmak.
3. Hiperparametreler
Hiperparametreler, algoritmanın öğrenme sürecini kontrol eden, ancak **veriden öğrenilmeyen** ayarlardır. Bu değerler, veri bilimci tarafından eğitim başlamadan önce belirlenir ve modelin karmaşıklığını dolaylı olarak kontrol ederler.
- Örnekler: Öğrenme Oranı (Learning Rate), K-En Yakın Komşu sayısındaki K, Karar Ağacındaki maksimum derinlik, Yapay Sinir Ağlarındaki katman ve nöron sayısı.
- Optimizasyon: Modelin en iyi performansını elde etmek için doğru hiperparametre kombinasyonunu bulmak gerekir. Bu genellikle **Grid Search** veya **Random Search** gibi optimizasyon teknikleriyle yapılır.
1.6 Veri Ön İşleme, Normalizasyon ve Veri Bölme
Veri biliminde yaygın bir deyiş vardır: "Çöp Girdi, Çöp Çıktı (Garbage In, Garbage Out)". Veri Ön İşleme (Data Preprocessing), ham veriyi bir makine öğrenimi modelinin en iyi şekilde öğrenebileceği temiz, tutarlı ve formatlanmış bir yapıya dönüştürme sürecidir. Bu aşama, modelin performansını doğrudan belirler.
1. Eksik Verilerin Yönetimi (Handling Missing Data)
Veri setlerinde sıklıkla karşılaşılan eksik (NaN, Null) değerler, doğrudan algoritmalara beslenemez. Yönetim stratejileri:
- Satır Silme: Eğer eksik veri miktarı çok azsa ve veri kaybı önemsizse, ilgili satırları tamamen silmek.
- Doldurma (Imputation): Eksik değerleri tahmin edilen veya hesaplanan değerlerle doldurmak.
- Sayısal Özellikler için: Ortalama (Mean), Ortanca (Median) veya Mod (Mode) ile doldurma.
- Kategorik Özellikler için: En sık görülen değer (Mod) veya 'Bilinmiyor' gibi yeni bir kategori ile doldurma.
2. Kategorik Verilerin Kodlanması (Encoding Categorical Data)
ML algoritmaları çoğunlukla sadece sayısal verilerle çalışır. "Kırmızı, Mavi, Yeşil" gibi kategorik değerler sayısal formata dönüştürülmelidir:
- One-Hot Encoding: Her bir kategori değeri için yeni bir ikili (Binary, 0 veya 1) sütun oluşturur. Örneğin, "Şehir" sütunu için "Şehir\_İstanbul", "Şehir\_Ankara" gibi yeni sütunlar açılır. Sınıf sayısının az olduğu durumlarda idealdir.
- Label Encoding: Her bir kategori değerini basitçe bir tam sayı ile değiştirir (Örn: Kırmızı=1, Mavi=2). Ancak bu yöntem, modelin sayılar arasında hiyerarşi olduğunu düşünmesine neden olabileceği için dikkatli kullanılmalıdır.
3. Ölçeklendirme ve Normalizasyon (Scaling and Normalization)
Özelliklerin değer aralıkları çok farklıysa (Örn: Gelir 100.000'lerde, Yaş 20'lerde), büyük aralığa sahip özellikler, algoritmanın maliyet fonksiyonunda haksız yere daha fazla ağırlığa sahip olur. Ölçeklendirme bu sorunu çözer:
- Standardizasyon (Standardization): Veriyi ortalaması $0$ ve standart sapması $1$ olacak şekilde dönüştürür. Bu, çoğu ML algoritması için en yaygın yaklaşımdır. ($\text{z-score}: z = \frac{x - \mu}{\sigma}$)
- Normalizasyon (Normalization - Min-Max Scaling): Veriyi, genellikle $0$ ile $1$ arasına sıkıştırır. Bu, özellikle görüntü işleme ve Yapay Sinir Ağları için faydalıdır.
4. Veri Bölme (Data Splitting)
Modelin genelleme yeteneğini test etmek için veriyi eğitimden önce bölmek gerekir:
- Eğitim Kümesi (Training Set): Modelin parametrelerini öğrenmek için kullanılan veri (%70 - %80).
- Test Kümesi (Test Set): Modelin son performansını, **eğitim sürecine dahil olmadan** ölçmek için kullanılan bağımsız veri (%20 - %30). Modelin görmediği veride ne kadar başarılı olduğunu gösterir.
- Doğrulama Kümesi (Validation Set): Genellikle eğitim sırasında hiperparametre ayarı ve aşırı öğrenmeyi kontrol etmek için kullanılır. Eğer bu küme kullanılıyorsa, oranlar genellikle %60 (Eğitim) - %20 (Doğrulama) - %20 (Test) şeklinde ayarlanır.
1.7 Python ve Temel ML Kütüphaneleri
Makine öğrenimi ve veri bilimi dünyasında Python, esnekliği, geniş kütüphane ekosistemi ve öğrenme kolaylığı sayesinde tartışmasız en popüler dildir. Temel bir ML projesini uçtan uca yönetmek için gerekli olan başlıca Python kütüphaneleri şunlardır:
1. NumPy (Numerical Python)
- Amaç: Bilimsel hesaplamalar ve yüksek performanslı $n$-boyutlu diziler (Array'ler) oluşturmak ve bunlarla çalışmak.
- Önem: Tüm ML kütüphaneleri (Pandas, Scikit-learn vb.) dahili olarak NumPy dizilerini kullanır. Büyük matris çarpımları gibi işlemleri optimize edilmiş C/C++ kodları sayesinde Python'a göre çok daha hızlı yapar.
- Temel Fonksiyonlar: Dizi oluşturma (`np.array`), matematiksel işlemler, matris manipülasyonları.
2. Pandas
- Amaç: Veri manipülasyonu, temizliği ve analizi.
- Önem: Veri setlerini okumak (CSV, Excel), düzenlemek ve incelemek için kullanılan iki temel yapı sunar: **Series** (Tek sütun) ve **DataFrame** (Tablo yapısı). Eksik veri doldurma, veri filtreleme, gruplama ve birleştirme gibi işlemlerin merkezidir.
- Kullanım: Veri Ön İşleme aşamasında verimli ve hızlı çalışmanın anahtarıdır.
3. Scikit-learn (Sklearn)
- Amaç: Temel ve orta düzey ML algoritmalarını standart bir arayüzle sunmak.
- Önem: Endüstride en yaygın kullanılan kütüphanedir. Denetimli (Regresyon, Sınıflandırma) ve Denetimsiz (Kümeleme, Boyut İndirgeme) algoritmaların neredeyse tamamını içerir. Aynı zamanda veri ön işleme, model değerlendirme ve hiperparametre optimizasyonu araçlarına da sahiptir.
- Tasarım Prensibi: Tüm modeller aynı `fit()` (eğitim), `predict()` (tahmin) ve `transform()` (dönüşüm) arayüzlerine sahiptir, bu da farklı algoritmalar denemeyi çok kolaylaştırır.
4. Matplotlib ve Seaborn
- Amaç: Veri görselleştirme (Data Visualization).
- Matplotlib: Python'daki temel çizim kütüphanesidir. Dağılım grafikleri, histogramlar, kutu grafikleri ve karmaşık 2D/3D çizimler için temel oluşturur.
- Seaborn: Matplotlib üzerine inşa edilmiş, daha estetik ve istatistiksel grafikler oluşturmaya odaklanmış bir kütüphanedir. Korelasyon matrislerini, yoğunluk grafiklerini ve karmaşık veri dağılımlarını görselleştirmeyi kolaylaştırır.
- Önem: Model sonuçlarını ve verideki örüntüleri anlamak için görselleştirme kritiktir.
Kurulum ve Çevre Yönetimi
Bu kütüphanelerin verimli çalışması ve çakışmaması için **Anaconda** veya **Miniconda** gibi çevre yönetim araçları önerilir. Bu araçlar, projenize özel sanal ortamlar oluşturmanıza ve gerekli kütüphaneleri (`pip install [kütüphane adı]`) izole bir şekilde kurmanıza olanak tanır.
2.1 Regresyon ve Temel Sınıflandırma (Doğrusal, Lojistik, KNN)
Denetimli öğrenmenin en temel taşları olan regresyon ve sınıflandırma algoritmaları, makine öğrenimine atılan ilk adımları oluşturur. Regresyon sürekli bir değeri, sınıflandırma ise ayrık bir kategoriyi tahmin etmeyi hedefler.
1. Doğrusal Regresyon (Linear Regression)
Doğrusal regresyon, özellikler ($X$) ve hedef değişken ($Y$) arasındaki ilişkiyi, bir veya daha fazla özellik için en uygun düz çizgiyi (hiperdüzlemi) bularak modelleyen istatistiksel bir yöntemdir. Temel amacı, tahmin edilen değerler ile gerçek değerler arasındaki farkın karelerinin toplamını (MSE - Mean Squared Error) minimize etmektir.
Basit Doğrusal Regresyon Formülü: $y = \beta_0 + \beta_1 x + \epsilon$
- $\beta_0$: Kesişim noktası (intercept).
- $\beta_1$: Eğim (slope) veya ağırlık.
- $\epsilon$: Hata terimi.
Çoklu Doğrusal Regresyon: Birden fazla özellik kullanıldığında, formül şu şekilde genelleştirilir: $y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + ... + \beta_n x_n$. Modelin başarısı genellikle $R^2$ (Belirleme Katsayısı) ile ölçülür.
Varsayımları: Doğrusal ilişki, hataların normal dağılması, özellikler arası bağımsızlık (Multicollinearity olmaması) gibi sıkı istatistiksel varsayımları vardır.
2. Lojistik Regresyon (Logistic Regression)
Adında "Regresyon" geçmesine rağmen, Lojistik Regresyon temel olarak bir **Sınıflandırma** algoritmasıdır. İkili (Binary) sınıflandırma problemleri (Evet/Hayır, Spam/Değil, 0/1) için kullanılır. Doğrusal regresyonun çıktılarını doğrudan tahmin olarak kullanmak yerine, bu çıktıları **olasılığa** dönüştürmek için **Sigmoid (Lojistik) Fonksiyonu** kullanılır.
Sigmoid Fonksiyonu: $P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x)}}$
Bu fonksiyonun çıktısı her zaman $0$ ile $1$ arasında bir değer (olasılık) verir. Belirlenen bir eşik değere (genellikle 0.5) göre, bu olasılık sınıflandırılarak nihai çıktı belirlenir. Lojistik regresyonun maliyet fonksiyonu, Doğrusal Regresyon'dan farklı olarak **Çapraz Entropi Kaybı (Cross-Entropy Loss)** kullanır.
3. K-En Yakın Komşu (K-Nearest Neighbors - KNN)
KNN, hem sınıflandırma hem de regresyon için kullanılabilen, **ezberci (non-parametric)** ve **gecikmeli öğrenme (lazy learning)** algoritmasıdır. Eğitim sırasında sadece veri noktalarını depolar, herhangi bir model parametresi öğrenmez.
Çalışma Prensibi:
- Yeni bir veri noktası geldiğinde, bu nokta ile eğitim setindeki tüm diğer noktalar arasındaki **mesafeyi** (genellikle Öklid Mesafesi) hesaplar.
- En küçük mesafeye sahip $K$ adet komşuyu belirler.
- Sınıflandırmada: Yeni noktayı, $K$ komşu arasındaki **en sık görülen sınıfa** (çoğunluk oyu) atar.
- Regresyonda: Yeni noktayı, $K$ komşunun hedef değerlerinin **ortalamasına** atar.
Parametreler: En kritik parametre **$K$ değeri**dir. Küçük $K$ değeri gürültüye duyarlı (aşırı öğrenme eğilimli), büyük $K$ değeri ise genellemeye zorlar (az öğrenme eğilimli) hale getirir. Diğer bir önemli faktör de hangi **mesafe metriğinin** kullanılacağıdır.
Avantajları: Basit, sezgisel ve dağılım hakkında varsayım gerektirmez. Dezavantajları: Veri seti büyüdükçe tahmin süresi uzar (gecikmeli öğrenme), yüksek boyutlu verilerde performansı düşer (Curse of Dimensionality).
2.2 Ağaç Bazlı Modeller (Karar Ağacı, Rastgele Orman) ve SVM
Bu algoritmalar, denetimli öğrenmede sıklıkla yüksek performans gösterir. Karar Ağaçları sezgisel ve yorumlanabilir bir yapı sunarken, Topluluk Öğrenimi (Ensemble) yöntemleri ve SVM, karmaşık veri yapılarını çözmek için güçlü araçlardır.
1. Karar Ağaçları (Decision Trees)
Karar Ağacı, veri setini, bir dizi mantıksal kural veya if-else yapısı kullanarak kökten yapraklara doğru hiyerarşik olarak bölen bir modeldir. Her iç düğüm, bir özellik üzerindeki testi temsil eder; her dal, testin sonucunu temsil eder; ve her yaprak (terminal) düğüm, nihai sınıf etiketini veya regresyon değerini temsil eder.
Bölme Kriterleri: Ağaç, veriyi en iyi şekilde bölen özellik ve eşiği bulmak için çeşitli kriterler kullanır:
- Sınıflandırmada: **Gini Katsayısı (Gini Impurity)** veya **Entropi/Bilgi Kazancı (Information Gain)**. Amaç, her alt düğümdeki saflığı (saf sınıfa ait olma oranını) artırmaktır.
- Regresyonda: Hata Kareler Ortalaması (MSE) veya Mutlak Hata (MAE) kullanılır.
Avantajları: Yorumlanabilirlik çok yüksektir ve veri ölçeklendirmeye ihtiyaç duymazlar. Dezavantajları: Tek başına kullanıldığında küçük veri değişikliklerine karşı çok hassastırlar ve **aşırı öğrenmeye (overfitting)** son derece yatkındırlar.
2. Rastgele Orman (Random Forest) - Topluluk Öğrenimi (Ensemble)
Rastgele Orman, Karar Ağaçlarının zayıflığını (aşırı öğrenme) gidermek ve modelin genelleme yeteneğini artırmak için kullanılan güçlü bir **Bağlama (Bagging)** Topluluk Öğrenimi yöntemidir. Birçok bağımsız Karar Ağacını bir araya getirir ve bu ağaçların tahminlerinin ortalamasını (regresyon) veya çoğunluk oyunu (sınıflandırma) alarak nihai tahmini yapar.
İki Temel Rastgelelik:
- **Örnek Rastgeleliği (Bootstrap Aggregation - Bagging):** Her bir ağaç, eğitim verisinin rastgele seçilmiş bir alt kümesi (değiştirilerek örnekleme) üzerinde eğitilir.
- **Özellik Rastgeleliği:** Her düğümde en iyi bölmeyi ararken, tüm özellikler yerine, özelliklerin rastgele seçilmiş bir alt kümesi değerlendirilir.
Bu iki rastgelelik, ağaçların birbirinden farklı öğrenmesini sağlar ve tahminler arasındaki korelasyonu azaltarak modelin **varyansını düşürür** (aşırı öğrenmeyi engeller), sonuç olarak daha sağlam ve genelleştirilebilir bir model ortaya çıkar.
Özellik Önem Derecesi: Rastgele Ormanlar, hangi özelliklerin nihai kararı en çok etkilediğini belirleyerek "Özellik Önem Derecesi" (Feature Importance) sunabilir.
3. Destek Vektör Makineleri (Support Vector Machines - SVM)
SVM, sınıflandırma ve regresyon için kullanılan güçlü bir algoritmadır. Temel amacı, iki sınıfı birbirinden ayırmak için **maksimum marjı** olan en iyi hiperdüzlemi bulmaktır. Marj, hiperdüzlem ile ona en yakın eğitim veri noktaları (**Destek Vektörleri**) arasındaki mesafedir. Marj ne kadar büyükse, modelin genelleme yeteneği o kadar iyi kabul edilir.
Çekirdek Hilesi (Kernel Trick):
SVM'nin en büyük gücü, verilerin doğrusal olarak ayrılamadığı durumlarda bile sınıflandırma yapabilmesidir. **Çekirdek (Kernel) Fonksiyonları** (Örn: RBF, Polinomal), girdiyi daha yüksek boyutlu bir uzaya dönüştürerek, düşük boyutta doğrusal olmayan bir ilişkiyi yüksek boyutta doğrusal olarak ayırmayı mümkün kılar. Bu dönüşüm, doğrudan yüksek boyutta çalışmanın getireceği hesaplama yükünden kaçınmayı sağlayan matematiksel bir "hile"dir.
Uygulama Alanları: Özellikle metin ve görüntü sınıflandırması gibi karmaşık, yüksek boyutlu veri setlerinde etkilidir.
2.3 Naive Bayes ve Boosting Algoritmaları (XGBoost, LightGBM)
Bu algoritmalar, denetimli öğrenme alanında performansı ve hızı artırmak için kritik öneme sahiptir. Naive Bayes olasılık tabanlı basitliği ile öne çıkarken, Boosting algoritmaları en yüksek tahmini performansı sunar.
1. Naive Bayes (Saf Bayes)
Naive Bayes, **Bayes Teoremi**ne dayanan, olasılık tabanlı bir sınıflandırma algoritmasıdır. Basitliğine rağmen, özellikle yüksek boyutlu veri setlerinde (metin verileri gibi) şaşırtıcı derecede iyi sonuçlar verebilir.
Bayes Teoremi: $P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}$
"Saf (Naive)" Varsayımı: Algoritma, tüm özelliklerin ($X_i$), hedef sınıf ($Y$) verildiğinde, **birbirinden bağımsız** olduğunu varsayar. (Örn: Bir e-postadaki "indirim" kelimesinin görünmesi, "bedava" kelimesinin görünmesinden bağımsızdır.) Gerçek hayatta bu varsayım nadiren doğru olsa da, modelin basitliği ve hızlı hesaplaması onu pratik uygulamalar için popüler kılar.
Uygulama Alanları: Spam tespiti, metin sınıflandırması, duygu analizi.
2. Boosting Algoritmaları - Topluluk Öğrenimi (Ensemble)
Boosting, Topluluk Öğreniminin (Ensemble Learning) güçlü bir diğer kategorisidir. Ağaçları **ardışık (sequential)** olarak inşa eder, burada her yeni ağaç, kendisinden önceki ağaçların yaptığı **hataları düzeltmeyi** öğrenmeye odaklanır. Bu, modelin **önyargısını (Bias)** kademeli olarak azaltır ve çok yüksek performans sağlar.
Gradient Boosting: Temel fikir, her yeni ağacın, önceki modelin tahmin hatasına (rezidüel) uyacak şekilde eğitilmesidir. Hata düzeltme, maliyet fonksiyonunun gradyanını (eğimini) takip ederek yapılır.
3. XGBoost (Extreme Gradient Boosting)
XGBoost, Gradient Boosting çatısı altında geliştirilmiş ve hız, performans ve ölçeklenebilirlik açısından endüstri standardı haline gelmiştir. Birçok Kaggle yarışmasının kazanan çözümünde yer almıştır.
- Hız ve Paralellik: Eğitim sürecini hızlandırmak için paralelleştirme (çoklu çekirdek kullanımı) optimizasyonlarını içerir.
- Düzenlileştirme: Aşırı öğrenmeyi azaltmak için L1 ve L2 düzenlileştirme tekniklerini bünyesinde barındırır.
- Kayıp Fonksiyonları: Kullanıcı tanımlı kayıp fonksiyonlarını destekler ve eksik verileri yerleşik olarak işleyebilir.
4. LightGBM (Light Gradient Boosting Machine)
Microsoft tarafından geliştirilen LightGBM, özellikle **büyük veri setleri** için tasarlanmış bir Boosting çerçevesidir. XGBoost'a göre daha az bellek kullanır ve çoğu zaman daha hızlı çalışır.
- Ağaç Büyütme: XGBoost, derinlemesine (level-wise) büyürken, LightGBM **yaprak-odaklı (leaf-wise)** büyür. Bu, kayıp miktarını en çok azaltacak yaprağı seçerek daha hızlı yakınsama sağlar, ancak küçük veri setlerinde aşırı öğrenme riski taşıyabilir.
- Özellik Gruplama: Sürekli özellikleri histogramlar halinde gruplayarak eğitim süresini ve bellek tüketimini ciddi ölçüde azaltır.
Bu Boosting algoritmaları, geleneksel ML'in sınırlarını zorlar ve Derin Öğrenme kullanmanın gereksiz olduğu birçok yapısal veri probleminde birinci tercih olmaya devam eder.
2.4 K-Means, Hiyerarşik ve DBSCAN Kümeleme
Kümeleme, denetimsiz öğrenmenin en yaygın uygulamasıdır. Amacı, veri setindeki benzer veri noktalarını otomatik olarak gruplara (kümelere) ayırmaktır. Bu, pazar segmentasyonu, görüntü sıkıştırma veya anomali tespiti gibi alanlarda kullanılır.
1. K-Means Kümeleme
K-Means, kümeleme algoritmalarının en popüleridir. Önceden belirlenen $K$ sayısı kadar küme oluşturmayı hedefler, öyle ki her kümedeki noktalar birbirine yakın, farklı kümelerdeki noktalar ise birbirinden uzak olsun.
Çalışma Adımları:
- Kullanıcı $K$ (küme sayısı) değerini belirler.
- Veri seti içinden rastgele $K$ adet başlangıç **merkezi (centroid)** seçilir.
- **Atama (Assignment):** Her veri noktası, kendisine **en yakın** merkeze atanır (genellikle Öklid mesafesi kullanılır).
- **Güncelleme (Update):** Her küme için yeni merkez noktası, o kümeye atanmış tüm noktaların **ortalaması** (merkez noktanın konumu) alınarak hesaplanır.
- Merkezler sabitlenene kadar (veya maksimum iterasyon sayısına ulaşana kadar) 3. ve 4. adımlar tekrar edilir.
Optimal K Değerini Bulma: En büyük zorluk $K$'yı seçmektir. Bunun için **Dirsek Yöntemi (Elbow Method)** veya **Silüet Skoru (Silhouette Score)** gibi metrikler kullanılır. Dirsek yönteminde, küme içi kareler toplamı (WCSS) $K$'ya karşı çizilir ve grafikteki "dirsek" noktası (azalan faydanın başladığı yer) optimal $K$ olarak kabul edilir.
2. Hiyerarşik Kümeleme (Hierarchical Clustering)
Hiyerarşik kümeleme, iç içe geçmiş küme hiyerarşisi (ağacı) oluşturan bir yaklaşımdır. Bu hiyerarşi, bir **Dendrogram** adı verilen ağaç yapısıyla görselleştirilir.
- Toplamsal (Agglomerative - Bottom-Up): Her veri noktası ayrı bir küme olarak başlar. Ardından, en yakın iki küme sürekli olarak birleştirilir.
- Bölücü (Divisive - Top-Down): Tüm veri tek bir küme olarak başlar ve en az benzer olan parçalar ayrıştırılır.
Bağlantı Türleri (Linkage): Kümeler arasındaki mesafeyi hesaplama yöntemleri (Örn: En yakın noktalar arasındaki mesafe (Single-Linkage), en uzak noktalar arasındaki mesafe (Complete-Linkage), merkezler arası mesafe (Average-Linkage)).
Avantajları: Küme sayısını önceden belirlemeye gerek yoktur; küme yapısı Dendrogram ile görsel olarak incelenebilir.
3. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
DBSCAN, K-Means'in küre şeklindeki kümeleri bulma kısıtlamasının aksine, **rastgele şekilli kümeleri** bulabilen yoğunluğa dayalı bir algoritmadır.
Çalışma Prensibi: Algoritma, veri noktalarının etrafındaki yoğunluğa odaklanır. İki ana parametre kullanılır:
- $\epsilon$ (epsilon veya eps): Bir noktayı çevreleyen yarıçap.
- MinPts (Minimum Points): Bir noktayı çekirdek nokta (Core Point) olarak kabul etmek için $\epsilon$ yarıçapı içindeki minimum nokta sayısı.
Noktalar üç türe ayrılır:
- Çekirdek Noktası (Core Point): $\epsilon$ yarıçapı içinde en az MinPts kadar komşusu olan nokta.
- Sınır Noktası (Border Point): Çekirdek noktanın $\epsilon$ yarıçapı içinde olan, ancak kendisi çekirdek noktası olmayan nokta.
- Gürültü Noktası (Noise Point - Outlier): Ne çekirdek ne de sınır noktası olan, düşük yoğunluklu alandaki nokta.
Avantajları: Küme sayısını önceden belirtme zorunluluğu yoktur ve aykırı değerleri gürültü olarak doğal yolla etiketleyebilir.
2.5 PCA ve t-SNE (Boyut İndirgeme Teknikleri)
Boyut İndirgeme (Dimensionality Reduction), makine öğreniminde kritik bir ön işleme adımıdır. Veri setindeki özellik (sütun) sayısını azaltmayı hedeflerken, orijinal verinin en önemli bilgisini korumaya çalışır. Bu, model eğitimini hızlandırır, bellek ihtiyacını azaltır ve aşırı öğrenme riskini düşürür.
1. Temel Bileşen Analizi (Principal Component Analysis - PCA)
PCA, en popüler doğrusal (Linear) boyut indirgeme tekniğidir. Veri setindeki varyansı (bilgiyi) en iyi şekilde yakalayan, yeni, ortogonal (birbirine dik) bileşenler (axes) oluşturur. Bu yeni bileşenlere **Temel Bileşenler (Principal Components - PC)** denir.
Çalışma Prensibi:
- Veriyi standardize eder.
- Özellikler arasındaki ilişkiyi gösteren **Kovaryans Matrisini** hesaplar.
- Kovaryans Matrisinin **Özdeğerleri (Eigenvalues)** ve **Özvektörleri (Eigenvectors)** hesaplanır. Özvektörler, Temel Bileşenlerin yönlerini, Özdeğerler ise o yöndeki varyansın miktarını gösterir.
- En büyük varyansa sahip Özvektörler (en büyük Özdeğerlere sahip olanlar) seçilerek yeni boyuta dönüştürülür.
Kullanım: PCA, yeni bileşenler oluşturarak orijinal özellikleri birleştirir. Bu, verinin içindeki gürültüyü azaltmada ve yüksek boyutlu veriyi (özellikle 2 veya 3 boyuta) görselleştirmede çok etkilidir. Örneğin, 100 özellikli bir veri setini, varyansın %95'ini koruyan 10 Temel Bileşene düşürebiliriz.
Kısıtlaması: PCA doğrusal bir dönüşümdür ve verideki ilişkiler doğrusal olmadığında (eğri veya karmaşık yapılar) başarısız olabilir.
2. t-SNE (t-distributed Stochastic Neighbor Embedding)
t-SNE, özellikle **görselleştirme** amaçlı kullanılan, **doğrusal olmayan (Non-linear)** bir boyut indirgeme tekniğidir. Amacı, yüksek boyutlu uzaydaki veri noktaları arasındaki yerel yapıları (yani birbirine yakın olan noktaları) koruyarak, bu noktaları 2D veya 3D'ye haritalamaktır.
Çalışma Prensibi:
- Yüksek boyutta, noktalar arasındaki benzerliği olasılık dağılımıyla hesaplar (Gauss dağılımı).
- Düşük boyutta (2D/3D), noktalar arasındaki benzerliği farklı bir olasılık dağılımıyla (t-dağılımı) hesaplar.
- İki dağılım arasındaki farkı (Kullback-Leibler ayrışması) minimize etmeye çalışarak noktaların düşük boyuttaki konumlarını optimize eder.
Perplexity Parametresi: t-SNE'nin en önemli hiperparametresidir. Ne kadar "komşu" göz önünde bulundurulacağını belirler. İyi bir Perplexity değeri (genellikle 5 ile 50 arasında) hem yerel hem de küresel yapıyı korumaya yardımcı olur.
Kullanım: Kümeleme sonuçlarını, özellikle Denetimsiz öğrenmede, görsel olarak doğrulamak için mükemmeldir. Ancak, t-SNE'nin amacı dönüşüm değil, sadece görselleştirmedir. Yeni gelen bir veri noktasına doğrudan uygulanamaz.
Özet: PCA genellikle modelin girdi özelliğini azaltmak için kullanılırken, t-SNE daha çok verinin yapısını anlamak için görsel analizde kullanılır.
2.6 Karışıklık Matrisi, ROC-AUC ve F1 Skoru
Model değerlendirme, bir ML modelinin tahminlerinin kalitesini ölçmenin ve farklı modelleri karşılaştırmanın bilimsel yoludur. Seçilen değerlendirme metriği, projenin iş hedefine uygun olmalıdır.
1. Karışıklık Matrisi (Confusion Matrix)
Sınıflandırma modelinin performansını gösteren tablodur. İkili sınıflandırma (Binary Classification) için dört temel sonucu özetler, bunlar tüm diğer metriklerin temelini oluşturur:
- Gerçek Pozitif (True Positive - TP): Gerçekte Pozitif olan ve doğruca Pozitif olarak tahmin edilenler.
- Gerçek Negatif (True Negative - TN): Gerçekte Negatif olan ve doğruca Negatif olarak tahmin edilenler.
- Yanlış Pozitif (False Positive - FP): Gerçekte Negatif olan, ancak yanlışlıkla Pozitif olarak tahmin edilenler (Tip I Hata).
- Yanlış Negatif (False Negative - FN): Gerçekte Pozitif olan, ancak yanlışlıkla Negatif olarak tahmin edilenler (Tip II Hata).
2. Temel Sınıflandırma Metrikleri
Bu metrikler, matris değerlerinden türetilir ve modelin farklı açılardan ne kadar başarılı olduğunu gösterir:
- Doğruluk (Accuracy): Tüm doğru tahminlerin oranı. En basit metriktir ve dengeli veri setlerinde yeterlidir: $$ \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} $$
- Kesinlik (Precision): Modelin Pozitif olarak tahmin ettiklerinin ne kadarının gerçekten Pozitif olduğu (FP maliyeti yüksekse önemlidir, Örn: Spam tespiti - Yanlış spam etiketi sinir bozucudur). $$ \text{Precision} = \frac{TP}{TP + FP} $$
- Duyarlılık (Recall / Sensitivity): Gerçekte Pozitif olanların ne kadarının model tarafından yakalanabildiği (FN maliyeti yüksekse önemlidir, Örn: Hastalık tespiti - Hastayı kaçırmak tehlikelidir). $$ \text{Recall} = \frac{TP}{TP + FN} $$
- F1 Skoru: Precision ve Recall'ın harmonik ortalamasıdır. Özellikle veri setinde **sınıf dengesizliği** olduğunda veya hem Precision hem de Recall'ın önemli olduğu durumlarda daha güvenilir bir metrik sunar. $$ \text{F1 Score} = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} $$
3. ROC Eğrisi ve AUC (Receiver Operating Characteristic - Area Under the Curve)
ROC eğrisi, bir sınıflandırma modelinin tüm olası eşik değerleri (threshold) üzerindeki performansını görselleştiren bir grafiktir. Y-ekseninde **Doğru Pozitif Oranı (TPR - Recall)**, X-ekseninde ise **Yanlış Pozitif Oranı (FPR)** bulunur.
AUC: Eğrinin Altında Kalan Alan (Area Under the Curve). AUC, rastgele bir pozitif örneği, rastgele bir negatif örnekten daha yüksek bir skorla derecelendirme olasılığını temsil eder.
- AUC değeri 1'e yaklaştıkça model mükemmeldir.
- AUC değeri 0.5 ise model rastgele tahminden farksızdır.
- AUC, sınıf dengesizliğinden nispeten daha az etkilenen, modelin genel ayırma yeteneğini ölçen güçlü bir metrik sunar.
2.7 Çapraz Doğrulama ve Hiperparametre Optimizasyonu (Grid Search)
Bir makine öğrenimi modelinin güvenilir ve kararlı olduğundan emin olmak için iki temel optimizasyon ve değerlendirme tekniği kullanılır: Çapraz Doğrulama ile genelleme yeteneğini sağlamlaştırmak ve Hiperparametre Optimizasyonu ile modelin potansiyelini maksimize etmek.
1. Çapraz Doğrulama (Cross Validation - CV)
Çapraz doğrulama, modelin eğitim veri setine olan bağımlılığını (aşırı öğrenme) test etmek ve nihai modelin genelleme skorunu daha güvenilir bir şekilde tahmin etmek için kullanılır. En yaygın türü **K-Katmanlı Çapraz Doğrulama (K-Fold Cross Validation)**'dır.
K-Fold CV Çalışma Adımları:
- Eğitim veri seti $K$ adet eşit büyüklükte alt kümeye (katmana) ayrılır.
- $K$ defa döngü çalıştırılır. Her döngüde:
- $K-1$ adet katman eğitim kümesi olarak kullanılır.
- Geri kalan tek katman **doğrulama (validation)** kümesi olarak kullanılır.
- Her döngü sonunda modelin doğrulama kümesi üzerindeki performansı ölçülür.
- Nihai performans skoru, $K$ adet döngüden elde edilen doğrulama skorlarının **ortalaması** olarak belirlenir.
Avantajları: Tüm veri setinin hem eğitim hem de doğrulama için kullanıldığından emin olunur, böylece skorun varyansı (dalgalanması) azalır ve daha güvenilir bir genelleme tahmini elde edilir. Özellikle küçük veri setlerinde çok değerlidir.
2. Hiperparametre Optimizasyonu (Hyperparameter Tuning)
Modelin performansını artırmak için, öğrenme sürecinden önce belirlenen dışsal parametrelerin (Hiperparametreler) en iyi kombinasyonunu bulma sürecidir. En yaygın teknikler:
a. Grid Search (Izgara Araması)
Tanım: Kullanıcı tarafından belirlenen hiperparametre değerlerinin **tüm olası kombinasyonlarını** sistematik olarak dener ve her kombinasyon için çapraz doğrulama skorunu hesaplar.
- İşleyiş: Bir 'ızgara' oluşturulur (Örn: $K$ değerleri: [3, 5, 7], Maksimum Derinlik: [5, 10, 15]). Toplamda $3 \times 3 = 9$ deneme yapılır.
- Dezavantajı: Parametre sayısı ve her parametrenin aralığı arttıkça, deneme sayısı katlanarak artar (kombinasyonel patlama), bu da hesaplama süresini aşırı uzatır.
b. Random Search (Rastgele Arama)
Tanım: Belirlenen aralıklar içinde, parametre kombinasyonlarını rastgele seçerek dener. Grid Search'teki gibi tüm kombinasyonları denemez.
- Avantajı: Belirli bir bütçe (toplam deneme sayısı) dahilinde Grid Search'ten daha verimli olabilir ve önemli hiperparametrelerin etkisine daha hızlı odaklanabilir. Daha iyi sonuç veren bölgeleri daha kısa sürede keşfetme olasılığı yüksektir.
c. Bayesian Optimization (Bayesçi Optimizasyon)
Tanım: Daha gelişmiş bir tekniktir. Önceki denemelerin sonuçlarını kullanarak, bir sonraki denemenin hangi hiperparametre kombinasyonu olması gerektiği hakkında olasılıksal tahminler yapar. Bu, deneme sayısını dramatik şekilde azaltarak en iyi kombinasyonu bulmayı hızlandırır.
3.1 YSA, Geriye Yayılım ve Aktivasyon Fonksiyonları
Yapay Sinir Ağları (YSA - Artificial Neural Networks), insan beyninin nöron yapısından esinlenerek geliştirilmiş, derin öğrenmenin temelini oluşturan hesaplama modelleridir. Bu ağlar, girdi verilerindeki karmaşık ve doğrusal olmayan ilişkileri öğrenme yeteneğine sahiptir.
1. Yapay Sinir Ağlarının Mimarisi
Bir YSA, genellikle üç ana katmandan oluşur:
- Girdi Katmanı (Input Layer): Veri setindeki özelliklerin (feature) girdiği katmandır. Her nöron bir özelliği temsil eder.
- Gizli Katmanlar (Hidden Layers): Girdi ve çıktı katmanları arasında yer alan, modelin karmaşık örüntüleri öğrendiği katmanlardır. Bir YSA, bir veya birkaç gizli katman içerebilir. İki veya daha fazla gizli katmana sahip ağlara **Derin Sinir Ağları (Deep Neural Networks)** denir.
- Çıktı Katmanı (Output Layer): Modelin tahminini ürettiği katmandır. Sınıflandırmada sınıf sayısına, regresyonda ise tahmin edilen değişken sayısına eşittir.
Her nöron (perceptron), önceki katmandan gelen girdileri alır, bu girdileri ilgili **ağırlıklarla (weights)** çarpar, bir **sapma (bias)** ekler ve sonucu bir **aktivasyon fonksiyonuna** ileterek bir çıktı üretir.
2. Aktivasyon Fonksiyonları (Activation Functions)
Aktivasyon fonksiyonları, nöronun çıktısını doğrusal olmayan bir dönüşüme tabi tutar. Bu, ağın doğrusal olmayan ve karmaşık ilişkileri modelleyebilmesi için hayati önem taşır. Aktivasyon fonksiyonu olmadan, kaç katman olursa olsun, ağ sadece basit bir doğrusal regresyon yapabilir.
- Sigmoid: Çıktıyı $0$ ile $1$ arasına sıkıştırır. İkili sınıflandırmanın çıktı katmanında olasılık hesaplamak için kullanılır. Dezavantajı: Gradyan Kaybolması (Vanishing Gradient) sorununa yol açması.
- Tanh (Hyperbolic Tangent): Çıktıyı $-1$ ile $1$ arasına sıkıştırır. Sigmoid'den daha iyi merkezlenmiş bir çıktı verir.
- ReLU (Rectified Linear Unit): Gizli katmanlarda en popüler olanıdır. Pozitif girdiler için girdinin kendisini, negatif girdiler için $0$ döndürür. Hesaplama açısından hızlıdır ve Gradyan Kaybolması sorununu hafifletir.
- Softmax: Çok sınıflı (Multi-class) sınıflandırmanın çıktı katmanında kullanılır. Tüm çıktıların toplamını 1'e eşitleyen bir olasılık dağılımı üretir.
3. Geriye Yayılım (Backpropagation)
Geriye Yayılım, YSA'nın eğitimini sağlayan ve ağırlıkların nasıl güncelleneceğini belirleyen temel algoritmadır. Bir **optimizasyon** tekniği olan **Gradyan İnişi (Gradient Descent)**'nin uygulanmasıdır.
Çalışma Prensibi:
- İleri Besleme (Forward Pass): Girdi, ağ üzerinden ilerler ve çıktı katmanında bir tahmin üretilir.
- Hata Hesaplama: Tahmin edilen çıktı ile gerçek etiket arasındaki hata (Loss) hesaplanır (Maliyet Fonksiyonu).
- Geriye Yayılım (Backward Pass): Hesaplanan hata, ağın son katmanından ilk katmanına doğru geriye yayılır. Bu yayılım sırasında, **Zincir Kuralı (Chain Rule)** kullanılarak her bir ağırlığın, toplam hataya olan katkısı (gradyanı) hesaplanır.
- Ağırlık Güncelleme: Optimizasyon algoritması (Örn: Adam, SGD), hesaplanan gradyanları kullanarak ağırlıkları, hatayı azaltacak yönde küçük bir adım (Öğrenme Oranı ile çarpılarak) günceller.
Bu döngü binlerce kez (Epoch) tekrar edilerek modelin ağırlıkları optimize edilir ve model, veriyi en iyi şekilde temsil etmeyi öğrenir.
3.2 Derin Öğrenme Frameworkleri (TensorFlow, PyTorch, Keras)
Derin Öğrenme modellerini sıfırdan NumPy/matematik kütüphaneleri kullanarak kurmak çok zordur. Frameworkler (Çerçeveler), gerekli tüm hesaplama araçlarını, gradyan hesaplama (otomatik türev alma) ve GPU hızlandırma desteğini sağlayarak bu süreci basitleştirir.
1. TensorFlow (Google)
TensorFlow, Google tarafından geliştirilen açık kaynaklı, uçtan uca bir platformdur. Başlangıçta statik hesaplama grafikleri kullanmasıyla bilinirken, TF 2.0 ile birlikte daha esnek olan eager execution (dinamik grafikler) özelliğini de desteklemeye başlamıştır.
- Felsefe: Ölçeklenebilirlik, dağıtık eğitim ve üretim ortamına (deployment) entegrasyon.
- TensorBoard: Eğitim sürecini, metrikleri ve ağ grafiklerini görselleştirmek için harika bir araç sunar.
- TensorFlow Lite/JS: Mobil cihazlar (Lite) ve web tarayıcıları (JS) üzerinde model çalıştırma yeteneği ile model dağıtımında çok güçlüdür.
- Özellik: Toptan üretim ve dağıtım altyapıları için genellikle ilk tercihtir.
2. PyTorch (Meta / Facebook)
PyTorch, Facebook'un yapay zekâ araştırma ekibi tarafından geliştirilmiştir. Esnekliği ve Pythonic (Python'a özgü) yapısı nedeniyle araştırmacılar arasında çok popülerdir.
- Felsefe: Dinamik Hesaplama Grafiği (Eager Execution). Bu, geleneksel programlama akışına daha yakındır, hata ayıklamayı (debugging) kolaylaştırır ve hızlı prototipleme imkanı sunar.
- Autograd: Tensor'lar üzerindeki tüm işlemleri izleyerek geriye yayılım için gradyanları otomatik olarak hesaplayan güçlü bir motor içerir.
- TorchScript: Üretim ortamına geçişi kolaylaştırmak için statik grafikler oluşturma yeteneği sunar.
- Özellik: Akademik araştırmalar ve son teknoloji DL modellerini denemek için sıklıkla tercih edilir.
3. Keras (TensorFlow'un Yüksek Seviye API'si)
Keras, aslında bir zamanlar ayrı bir kütüphane olsa da, artık TensorFlow'un varsayılan ve yüksek seviyeli API'sidir. En basit ve kullanıcı dostu arayüzü sunar.
- Felsefe: Hızlı deneysellik. DL modellemeyi, katman ekleme gibi sezgisel adımlara indirger.
- Model Tanımlama: **Sequential (Sıralı)** ve **Functional (İşlevsel)** olmak üzere iki ana API sunar. Sequential, basit, düz yığın mimarileri için hızlı bir yol sunarken, Functional API, birden çok girdi/çıktı veya paylaşılan katmanlar gibi daha karmaşık mimarileri tasarlamayı sağlar.
- Kullanıcı Dostu: Karmaşık DL kavramlarını basit Python kodlarına çevirerek DL'e yeni başlayanlar için ideal bir başlangıç noktasıdır.
Modern DL projelerinde genellikle TensorFlow, PyTorch ve Keras üçlüsünden bir veya ikisi kullanılır. Seçim, projenin ölçeğine, hız ihtiyacına ve geliştirici ekibinin aşinalığına bağlıdır.
3.3 Evrişimli (CNN) ve Tekrarlayan Sinir Ağları (RNN/LSTM/GRU)
Derin Öğrenmede, veri türüne özgü mimariler geliştirilmiştir. CNN'ler uzamsal (spatial) veriler (görüntü) için, RNN'ler ise sırasal (sequential) veriler (zaman serileri, metin) için optimize edilmiştir.
1. Evrişimli Sinir Ağları (Convolutional Neural Networks - CNN)
CNN'ler, özellikle **Bilgisayarlı Görü (Computer Vision)** alanında devrim yaratmıştır. Geleneksel YSA'ların aksine, girdi görüntüsünün uzamsal yapısını koruyarak öğrenirler.
- Evrişim Katmanı (Convolutional Layer): Görüntü üzerinde küçük bir filtre (çekirdek) gezdirir. Bu filtre, yerel desenleri (kenarlar, köşeler, dokular) algılar. Filtreleme işlemi, görüntünün uzamsal yapısını (genişlik, yükseklik) koruyarak bir **Özellik Haritası (Feature Map)** üretir.
- Havuzlama Katmanı (Pooling Layer): Özellik haritasının uzamsal boyutunu azaltır (Örn: Max Pooling, ortalama havuzlama). Bu, modelin boyutu küçültülerek hesaplama maliyetini düşürür ve modelin konumdaki küçük değişikliklere karşı daha sağlam (daha az duyarlı) olmasını sağlar.
- Tam Bağlantılı Katman (Fully Connected Layer): Havuzlama katmanından gelen nihai özellikleri düzleştirir (flatten) ve sınıflandırma için kullanılır (tıpkı geleneksel YSA gibi).
Kullanım Alanları: Görüntü sınıflandırma, nesne tespiti, yüz tanıma.
2. Tekrarlayan Sinir Ağları (Recurrent Neural Networks - RNN)
RNN'ler, sırasal verileri (metin, ses, zaman serileri) işlemek için tasarlanmıştır. Geleneksel YSA'ların aksine, bir RNN hücresi, bir önceki adımdan elde edilen bilgiyi (**gizli durum/hafıza**) kullanarak mevcut girdiyi işler. Bu, ağın sıradaki öğeyi tahmin ederken dizinin bağlamını (context) korumasını sağlar.
Temel Sorunu: Geleneksel RNN'ler, zamanla gradyanları çok hızlı bir şekilde kaybetme eğilimindedir (**Vanishing Gradient**), bu da uzun dizilerdeki (uzun metinler) erken bilgiyi hatırlayamamasına (uzun vadeli bağımlılıklar) neden olur.
3. LSTM ve GRU (Gelişmiş RNN'ler)
Uzun Vadeli Bağımlılık sorununu çözmek için geliştirilmiş özel RNN mimarileridir:
- LSTM (Long Short-Term Memory): Hücre durumu (Cell State) adı verilen özel bir mekanizma ve üç temel **geçit (gates)** (Unutma, Giriş ve Çıktı Geçitleri) kullanır. Bu geçitler, ağın hangi bilginin hafızada tutulması, hangi bilginin atılması gerektiğine dinamik olarak karar vermesini sağlar.
- GRU (Gated Recurrent Unit): LSTM'den biraz daha basittir. İki geçit (Güncelleme ve Sıfırlama Geçitleri) kullanır ve hücre durumu ile gizli durumu birleştirir. Genellikle LSTM kadar iyi performans gösterir, ancak daha az parametreye sahip olduğu için daha hızlı eğitilebilir.
Kullanım Alanları: Doğal Dil İşleme (Makine Çevirisi, Metin Üretimi), Konuşma Tanıma, Zaman Serileri Tahmini.
3.4 Transfer Learning, Autoencoders, GAN’ler ve Transformerlar
Derin Öğrenmenin en ileri ve en yenilikçi konuları, karmaşık problemleri çözmek ve yeni içerikler üretmek için tasarlanmış gelişmiş mimarileri içerir.
1. Transfer Öğrenimi (Transfer Learning)
Bir modelin, bir görev (Source Task) üzerinde öğrendiği bilgiyi, tamamen farklı ama ilgili başka bir göreve (Target Task) aktarmasıdır. Büyük bir veri kümesi üzerinde eğitilmiş önceden eğitilmiş (Pre-trained) modellerin (Örn: Görüntü için ResNet, metin için BERT) kullanılmasıdır.
- Finansal Faydası: Sıfırdan büyük bir model eğitmek çok fazla GPU gücü ve zaman gerektirir. Transfer öğrenimi, bu maliyetleri dramatik şekilde azaltır.
- Çalışma Yöntemi: Önceden eğitilmiş modelin alt katmanları (özellik çıkarıcılar) dondurulur, sadece üst katmanlar (sınıflandırma katmanları) yeni, küçük veri setimizle eğitilir.
- Uygulama Alanı: Veri setinin küçük olduğu veya eğitim süresinin kısıtlı olduğu tüm alanlar.
2. Otomatik Kodlayıcılar (Autoencoders)
Denetimsiz bir Yapay Sinir Ağı türüdür. Amacı, girdiyi alıp, çıktıda orijinal girdiye çok yakın bir sürümünü üretmeyi öğrenmektir. Ağa bu görevi öğreten, ağın ortasındaki bir katmandır.
- Kodlayıcı (Encoder): Girdiyi alır ve onu daha düşük boyutlu bir temsil (**latent space / gizli uzay**) haline sıkıştırır.
- Kod Çözücü (Decoder): Gizli uzaydaki temsili alır ve orijinal girdiye mümkün olduğunca yakın bir çıktıya geri dönüştürür.
- Kullanım: **Anomali Tespiti** (Anormal girdiler kötü yeniden yapılandırılır), **Boyut İndirgeme** (Gizli uzay, verinin sıkıştırılmış temsilidir), **Gürültü Giderme**.
3. Üretken Çekişmeli Ağlar (Generative Adversarial Networks - GAN’ler)
İki sinir ağının birbiriyle rekabet ettiği bir mimaridir ve gerçekçi yeni içerikler (görüntü, video, ses) üretmek için kullanılır.
- Üretici (Generator): Gerçekçi görünen sahte veriler üretmeye çalışır.
- Ayırt Edici (Discriminator): Girdi olarak aldığı verinin gerçek eğitim setinden mi yoksa Üretici tarafından mı oluşturulduğunu ayırt etmeye çalışır.
- Oyun Teorisi: Bu iki ağ "çekişmeli" bir oyunda bulunur. Üretici, Ayırt Ediciyi kandıracak kadar iyi sahte veri üretmeyi öğrenirken, Ayırt Edici de giderek daha iyi ayırt edici olmayı öğrenir. Bu denge, son derece gerçekçi çıktılar üretilene kadar devam eder.
4. Transformer Mimarileri (BERT, GPT)
2017'de Google tarafından tanıtılan Transformer mimarisi, RNN'lerin sırasal işleme kısıtlamasını aşarak NLP alanını yeniden tanımlamıştır. RNN'ler gibi sırayla işlemek yerine, tüm diziyi **paralel** olarak işler.
- Dikkat Mekanizması (Attention Mechanism): Bu mimarinin kalbidir. Modelin, bir kelimeyi işlerken, dizideki hangi diğer kelimelere odaklanması (dikkat etmesi) gerektiğini belirlemesini sağlar. Bu, uzun vadeli bağımlılıkları mükemmel bir şekilde yakalar.
- Uygulamalar: **BERT** (Çift yönlü kodlayıcı), metin anlama ve sınıflandırma için kullanılır. **GPT** (Üretken Önceden Eğitilmiş Transformer), metin üretme, sohbet botları ve büyük dil modellerinin (LLM) temelini oluşturur.
3.5 Model Dağıtımı (Deployment), API'ler ve ML Ops Kavramı
Bir makine öğrenimi modelinin geliştirilmesi, projenin sadece yarısıdır. Modelin iş değeri yaratması için, laboratuvar ortamından çıkarılıp bir yazılım uygulamasına, web sitesine veya mobil cihaza entegre edilmesi gerekir. Bu sürece **Dağıtım (Deployment)** denir.
1. Model Dağıtımı ve API Servisleri
Eğitilen model, genellikle bir **REST API (Representational State Transfer Application Programming Interface)** aracılığıyla erişilebilir bir servise dönüştürülür. Bu, herhangi bir uygulamanın (mobil, web, arka uç) HTTP istekleri göndererek modelden tahmin alabilmesini sağlar.
- Araçlar: Python'da popüler mikro-çerçeveler olan **Flask** veya **FastAPI** kullanılarak modelin yüklü olduğu bir sunucu uygulaması yazılır.
- Çalışma Mekanizması: Kullanıcı, API'ye JSON formatında veri (Örn: Özellikler) gönderir. API, veriyi alır, modeli yükler (veya halihazırda yüklüyse kullanır), tahmini yapar ve sonucu JSON formatında geri döndürür.
- Kapsülleme: Model ve gerekli tüm bağımlılıklar (Scikit-learn, TensorFlow, vb.) genellikle **Docker** kapsayıcıları içine alınır, bu sayede modelin farklı bir ortamda çalışmama riski (dependency hell) ortadan kalkar.
2. ML Ops (Machine Learning Operations) Kavramı
ML Ops, ML projelerinin geliştirilmesi, dağıtılması ve sürdürülmesini otomatikleştiren ve standartlaştıran süreçler ve araçlar bütünüdür. Geleneksel DevOps'un (Yazılım Geliştirme Operasyonları) ML dünyasındaki karşılığıdır.
ML Ops Neden Gereklidir?
ML modelleri, geleneksel yazılımdan farklıdır; yalnızca kod değil, aynı zamanda veriye ve modele de bağımlıdır. Zamanla modelin performansı, girdiği verideki değişiklikler (veri kayması - Data Drift) nedeniyle düşebilir. ML Ops, bu düşüşü yönetmeyi sağlar.
3. ML Ops'un Temel Bileşenleri (Pipeline)
- Otomatik ML Eğitimi: Veri güncellendiğinde veya belirli aralıklarla modelin otomatik olarak yeniden eğitilmesi.
- Model Sürüm Kontrolü: Her eğitilen modelin ve kullandığı verinin kesin sürümünün kaydedilmesi (Örn: Git, DVC).
- Model Kayıt ve Yönetimi: Üretim ortamına hazır modellerin merkezi bir depoda saklanması.
- Sürekli Dağıtım (Continuous Deployment - CD): Testleri geçen yeni modelin otomatik olarak API servisine yüklenmesi.
- Model İzleme (Monitoring): Dağıtılan modelin gerçek zamanlı performansının, gecikme süresinin ve en önemlisi **veri/model kaymasının (Drift)** izlenmesi. Performans düştüğünde uyarı sistemlerinin tetiklenmesi ve yeniden eğitim döngüsünün başlatılması.
ML Ops; Model Dağıtımı, Versiyonlama ve İzleme işlerini otomatize ederek, modelin canlı ortamda sürekli olarak yüksek performans göstermesini sağlar.
4.1 Görüntü Tanıma ve Doğal Dil İşleme (NLP)
Görüntü Tanıma ve Doğal Dil İşleme, Derin Öğrenmenin en önemli ve görsel açıdan en etkileyici uygulama alanlarını oluşturur. Her iki alan da, CNN ve RNN/Transformer mimarilerinin gücünü kullanarak insan benzeri algılama ve anlama yetenekleri sağlar.
1. Görüntü Tanıma ve Bilgisayarlı Görü (Computer Vision)
Bilgisayarlı Görü, makinelerin dijital görüntülerden veya videolardan anlamlı bilgiler çıkarmasını sağlayan bir disiplindir. CNN'ler bu alanda standart mimaridir.
- Görüntü Sınıflandırma: Bir görüntünün tamamını alıp, onu önceden tanımlanmış bir kategoriye atama (Örn: Bir resimde kedi mi, köpek mi var?). Temel CNN mimarileri (AlexNet, VGG, ResNet) bu görevi mükemmel bir şekilde yerine getirir.
- Nesne Tespiti (Object Detection): Bir görüntüdeki birden fazla nesneyi hem sınıflandırma hem de tam konumunu (sınırlayıcı kutu - bounding box) belirleme. Popüler algoritmalar:
- YOLO (You Only Look Once): Hızı ve gerçek zamanlı yeteneği ile öne çıkar. Görüntüdeki tüm nesneleri tek bir ağ geçişinde tahmin eder.
- Faster R-CNN: Daha yüksek doğruluk için, önce ilgi bölgelerini önerir, ardından sınıflandırma ve kutu optimizasyonu yapar.
- Semantik Bölütleme (Semantic Segmentation): Görüntüdeki her pikseli bir sınıfa atama (Örn: Hangi pikseller yol, hangi pikseller araba?). Otonom araçlar ve tıbbi görüntüleme için kritik öneme sahiptir.
- Örnek Uygulamalar: Otonom sürüş sistemlerinde çevre algılama, fabrikalarda kalite kontrol, güvenlik kameralarında yüz tanıma.
2. Doğal Dil İşleme (Natural Language Processing - NLP)
NLP, insan dili ile bilgisayarlar arasındaki etkileşimi inceler. Makinelerin metin ve ses verilerini anlamasını, yorumlamasını ve üretmesini sağlar. Modern NLP'de Transformer mimarileri (BERT, GPT) hakimdir.
- Metin Sınıflandırma: Metin girdisini bir kategoriye atama (Örn: Duygu Analizi - Tweet pozitif mi, negatif mi?; Spam Tespiti).
- Makine Çevirisi (Machine Translation): Bir dildeki metni diğerine çevirme. Encoder-Decoder yapıları ve Dikkat Mekanizmaları (Attention) ile çalışan Transformerlar, bu alanda insan seviyesine yakın performans göstermektedir.
- Adlandırılmış Varlık Tanıma (Named Entity Recognition - NER): Metin içindeki yer, kişi, tarih gibi anlamlı varlıkları bulma ve etiketleme (Örn: "Tesla CEO'su Elon Musk" cümlesinde "Elon Musk" bir kişi, "Tesla" bir organizasyon).
- Soru Cevaplama ve Özetleme: Uzun bir metin veya belge kümesi üzerinden soruları yanıtlama ve metni orijinal anlamını koruyarak kısaltma.
3. Model Geliştirme Yaklaşımları
Hem görüntü hem de NLP alanında, büyük ölçekli modellerin (Örn: ResNet50, BERT) **Transfer Öğrenimi** ile küçük ve özelleşmiş görevlere uyarlanması standart bir uygulamadır. Bu, özellikle veri toplama maliyetinin yüksek olduğu Türkçe gibi dillerde veya nadir görülen tıbbi görüntülerde hayati önem taşır. Bu iki uygulama alanı, DL teknolojilerinin en hızlı gelişen ve en yüksek ticari değere sahip olduğu kısımlardır.
4.2 Tavsiye Sistemleri ve Finansal Tahminleme
Makine Öğrenimi, ticari kararların optimize edilmesinde ve kullanıcı deneyiminin kişiselleştirilmesinde kilit rol oynar. Tavsiye Sistemleri, e-ticaretin ve medyanın bel kemiğiyken, finansal tahminleme modelleri risk yönetimini ve yatırım stratejilerini yönlendirir.
1. Tavsiye Sistemleri (Recommender Systems)
Tavsiye sistemleri, kullanıcılara ilgi duyabilecekleri ürünleri, filmleri veya haberleri önerme amacı taşır. İki temel yaklaşımla çalışırlar:
- İşbirlikçi Filtreleme (Collaborative Filtering):
- Kullanıcı Tabanlı: Benim gibi (aynı şeyleri beğenen) kullanıcıların beğendiği diğer şeyleri öner.
- Öğe Tabanlı: Beğendiğim şeye (film, ürün) benzeyen (aynı kitle tarafından beğenilen) diğer şeyleri öner.
Bu yöntem, kullanıcı-ürün etkileşim matrisini temel alır ve genellikle Matris Faktörleştirme (Matrix Factorization) teknikleri (Örn: SVD) veya Derin Öğrenme gömme (embedding) katmanları kullanılarak uygulanır.
- İçerik Tabanlı Filtreleme (Content-Based Filtering): Kullanıcının geçmişte beğendiği ürünlerin **özelliklerine** bakarak, bu özelliklere benzeyen yeni ürünler önerir. (Örn: Sadece bilim kurgu filmleri izleyen birine yeni çıkan bir bilim kurgu filmi önermek).
- Karma (Hybrid) Sistemler: Genellikle en iyi performansı veren, hem işbirlikçi hem de içerik tabanlı yaklaşımları birleştiren sistemlerdir.
- Uygulama Alanları: Netflix (film), Spotify (müzik), Amazon (ürün), haber siteleri (makale).
2. Finansal Tahminleme ve Risk Yönetimi
Finans sektöründe ML, hız, otomasyon ve karmaşık örüntü tanıma yeteneği nedeniyle vazgeçilmezdir. Bu alanda sıklıkla zaman serisi analizleri kullanılır.
- Hisse Senedi/Piyasa Tahmini: Geçmiş fiyat verileri, makroekonomik göstergeler ve haber duyarlılık verileri (NLP ile) kullanılarak gelecekteki fiyat trendlerini tahmin etme. Bu, genellikle Regresyon modelleri ve Tekrarlayan Sinir Ağları (LSTM/GRU) ile yapılır, zira bu ağlar sırasal verilerdeki uzun vadeli bağımlılıkları yakalamada güçlüdür.
- Kredi Riski Puanlaması (Credit Scoring): Bireyin kredi geçmişi, geliri ve borç yükü gibi yapısal verileri kullanarak, kişinin borcu geri ödeme olasılığını tahmin etme. Genellikle Lojistik Regresyon, Karar Ağaçları veya Boosting algoritmaları (XGBoost) ile uygulanır.
- Yüksek Frekanslı Ticaret (High-Frequency Trading - HFT): Milisaniyeler içinde piyasa verilerini analiz ederek otomatik alım/satım kararları verme. Çok düşük gecikmeli (low-latency) ML modelleri gerektirir.
- Dolandırıcılık Tespiti (Fraud Detection): Kredi kartı işlemleri, banka transferleri veya sigorta talepleri gibi verilerdeki anormal örüntüleri (Outliers) tespit etme. Genellikle Anomali Tespiti algoritmaları (DBSCAN, Autoencoders) veya denetimli sınıflandırma kullanılır.
Finansal tahminlemede en büyük zorluk, piyasa verilerinin **gürültülü** ve tahmin edilmesi **zor** (non-stationary) olmasıdır. Hiçbir model piyasayı %100 doğrulukla tahmin edemez, ancak riskleri yönetmede ve optimize edilmiş kararlar almada ML'in katkısı büyüktür.
4.3 Sağlık, Robotik ve Otonom Sistemler
ML ve Derin Öğrenme, insan hayatını ve fiziksel dünyayla etkileşimimizi doğrudan etkileyen en kritik sektörlere uygulanmaktadır. Tıbbi teşhisin hızından, robotların hareket kabiliyetine kadar geniş bir yelpazeyi kapsar.
1. Sağlık Hizmetleri (Healthcare)
Sağlıkta ML, tanı sürecini hızlandırır, kişiselleştirilmiş tedaviyi mümkün kılar ve hastalıkların erken aşamada tespitini sağlar.
- Tıbbi Görüntü Analizi: CNN'ler, röntgen, MR veya CT taramaları gibi görüntüler üzerinde kanserli tümörleri, kırıkları veya diğer patolojileri otomatik olarak tespit eder ve sınıflandırır. (Örn: Retinanın CNN ile analizi, Diyabetik Retinopati tanısını hızlandırır).
- Hastalık Tahmini ve Tanı: Hasta verileri (laboratuvar sonuçları, genetik veriler, semptomlar) kullanılarak, hastanın belirli bir hastalığa yakalanma riskini tahmin etme. Bu, genellikle yapısal veriler üzerinde Boosting veya Geleneksel ML algoritmalarıyla yapılır.
- İlaç Keşfi (Drug Discovery): Derin Öğrenme modelleri, yeni ilaç bileşiklerinin etkilerini tahmin ederek ilaç geliştirme sürecini kısaltır ve maliyetini düşürür (Örn: Kimyasal bileşiklerin biyolojik hedeflerle etkileşimini modelleme).
- Elektronik Sağlık Kayıtları (EHR) Analizi: Metin tabanlı doktor notlarından anlam çıkarma (NLP) ve hastanelerin operasyonel verimliliğini artırma.
2. Robotik ve Otonom Sistemler
Bu alan, makine öğreniminin fiziksel bir ortamda eylem gerektiren uygulamalarını içerir. Özellikle **Pekiştirmeli Öğrenme (RL)** bu alanda kilit rol oynar.
- Otonom Sürüş: Otonom araçlar, çevreyi algılamak (CNN ile nesne tespiti, segmentasyon), karar vermek (RL ile optimal rota ve hız seçimi) ve kontrol etmek için ML'i kullanır. Bu sistemler, kameradan, LIDAR'dan ve radardan gelen verileri gerçek zamanlı olarak birleştiren karmaşık DL mimarileri gerektirir.
- Robot Kontrolü: Robot kollarının hassas görevleri yerine getirmeyi (Örn: Fabrikada bir parçayı tutma) öğrenmesi. RL, robotun deneme yanılma yoluyla en verimli hareketi öğrenmesini sağlar.
- Navigasyon ve Haritalama: SLAM (Simultaneous Localization and Mapping) algoritmaları, sensör verilerini kullanarak robotun hem haritayı oluşturmasını hem de harita üzerindeki kendi konumunu eş zamanlı olarak belirlemesini sağlar.
Robotik uygulamalar, sadece yüksek doğruluk değil, aynı zamanda **düşük gecikme (low-latency)** ve **sağlamlık (robustness)** gerektirir. Çevresel koşullardaki küçük değişiklikler, felaketle sonuçlanabilecek hatalara yol açabilir.
4.4 Siber Güvenlik ve Anomali Tespiti
Siber güvenlik tehditlerinin hızı ve karmaşıklığı, geleneksel kural tabanlı sistemleri aşmıştır. Makine öğrenimi, bilinmeyen tehditleri (zero-day attacks) ve anormal davranışları tespit etme yeteneği sayesinde modern siber savunmanın önemli bir parçasıdır. Bu süreç, büyük ölçüde **Anomali Tespiti (Anomaly Detection)** üzerine kuruludur.
1. Anomali Tespiti (Outlier Detection)
Anomali tespiti, veri setindeki diğer tüm veri noktalarından önemli ölçüde farklı olan, sıra dışı örüntüleri tanımlama sürecidir. Bu, bankacılıkta sahtekarlık, bir makinede arıza veya bir ağda siber saldırı anlamına gelebilir.
- İstatistiksel Yaklaşımlar: Verinin normal dağılımını varsayarak, dağılımdan çok uzak olan noktaları anomali olarak etiketler (Örn: Z-Skoru).
- Yoğunluk Tabanlı Yaklaşımlar: Bir veri noktasının yerel yoğunluğunun etrafındaki komşulara göre ne kadar düşük olduğunu hesaplar (Örn: DBSCAN, Yerel Aykırı Faktör - LOF).
- YSA Tabanlı Yaklaşımlar: **Otomatik Kodlayıcılar (Autoencoders)**, normal veriyi mükemmel bir şekilde sıkıştırmayı ve yeniden oluşturmayı öğrenir. Anormal veriyi yeniden oluşturmaya çalıştıklarında hata (reconstruction error) çok yüksek çıkar, bu da o noktanın anomali olduğunu gösterir.
- Uygulama: Üretim hatlarında sensör verilerini izleyerek makine arızasını önceden tahmin etme (Predictive Maintenance).
2. Siber Güvenlik Uygulamaları
ML, siber güvenlikte çeşitli tehdit vektörlerini ele almak için kullanılır:
- Kötü Amaçlı Yazılım Tespiti (Malware Detection): Binari dosyasının kod yapısı (statik analiz) veya çalışma sırasındaki davranışı (dinamik analiz) özellik olarak kullanılır. ML modelleri, daha önce görmediği yeni kötü amaçlı yazılımları bile, benzerliklerine dayanarak tespit edebilir.
- Ağ Saldırısı Tespiti (Intrusion Detection): Ağ trafiği (paketler, bağlantı süreleri) verileri üzerinde denetimli (etiketli saldırı verileriyle) veya denetimsiz (anomali tespiti ile normalden sapmaları bulma) öğrenme uygulanır. DDoS, port taraması ve yetkisiz erişim denemelerini tespit eder.
- Kimlik Avı (Phishing) ve Spam Tespiti: E-postaların metin ve başlık bilgileri (NLP ile) analiz edilerek dolandırıcılık veya spam olasılığı hesaplanır (Naive Bayes ve Lojistik Regresyon hala hızlı çözümler sunar).
- Kullanıcı ve Varlık Davranış Analizi (UEBA): Kullanıcıların tipik oturum açma saatlerini, erişim modellerini ve veri indirme hacimlerini öğrenerek, bir hesaba sızıldığında normalden sapmaları hızla tespit eder.
Siber güvenlikteki ML modellerinin sürekli olarak yeni tehditlere karşı **yeniden eğitilmesi** (retraining) ve adaptasyonu (drift management) kritik bir ML Ops zorluğudur.
5.1 Özellik Seçimi ve Boyut İndirgeme
Bir makine öğrenimi projesinin başarısı, neredeyse tamamen kullanılan özelliklerin kalitesine bağlıdır. Bu iki teknik, "özelliklerin laneti" (Curse of Dimensionality) ile mücadele etmeyi ve gereksiz gürültüyü modelden uzak tutmayı amaçlar.
1. Özellik Seçimi (Feature Selection)
Özellik seçimi, orijinal veri setindeki özelliklerin sadece en alakalı alt kümesini bulma sürecidir. Bu, modelin yorumlanabilirliğini artırır ve aşırı öğrenme riskini azaltır.
- Filtre Yöntemleri (Filter Methods): Özellikleri, bağımsız olarak hedef değişkene olan ilişkilerine göre sıralar. Modelden bağımsız çalışırlar. (Örn: Korelasyon katsayısı, Ki-Kare testi (Chi-Square) veya Bilgi Kazancı). Yüksek korelasyonlu ve alakasız özellikler elenir.
- Sarmalayıcı Yöntemler (Wrapper Methods): Özellik alt kümelerini oluşturur ve her bir alt küme için bir ML modelini eğiterek performansını değerlendirir. (Örn: Geriye Doğru Eleme - Backward Elimination, İleriye Doğru Seçim - Forward Selection). Hesaplama maliyetleri yüksektir ancak genellikle daha iyi özellik kombinasyonları bulurlar.
- Gömülü Yöntemler (Embedded Methods): Özellik seçimi, model eğitimi sırasında otomatik olarak gerçekleşir. Modelin kendi mekanizması, önemli olmayan özelliklerin ağırlıklarını sıfıra yaklaştırır. (Örn: Lasso Regresyon (L1 Düzenlileştirme) ve Karar Ağaçları/Rastgele Ormanların Özellik Önem Derecesi (Feature Importance)).
2. Boyut İndirgeme (Dimensionality Reduction)
Özellik seçiminden farklı olarak, boyut indirgeme mevcut özellikleri atmaz, aksine onları birleştirerek **yeni, daha az sayıda, düşük boyutlu bileşenler** oluşturur.
- PCA (Principal Component Analysis): Doğrusal dönüşümle varyansı en üst düzeyde koruyan yeni, ortogonal eksenler bulur. (Bkz. 2.5).
- Lineer Ayırıcı Analiz (Linear Discriminant Analysis - LDA): Denetimli bir tekniktir. Amacı, sınıf ayrımını maksimize eden yeni boyutları bulmaktır (Sınıflar arası mesafeyi maksimize, Sınıf içi varyansı minimize eder).
- Çekirdek PCA (Kernel PCA): Çekirdek hilesini kullanarak PCA'nın doğrusal olmayan versiyonudur. Karmaşık (eğrisel) veri yapılarında daha etkili olabilir.
- t-SNE/UMAP: Görselleştirme amaçlı, doğrusal olmayan, yerel yapıları koruyan tekniklerdir. (Bkz. 2.5).
Özellik Seçimi ve Boyut İndirgeme, özellikle yüksek boyutlu (çok fazla özellik) ve seyrek (sparse) veri setlerinde, aşırı öğrenmeyi önlemek ve modelin genelleme gücünü artırmak için birbirini tamamlayan süreçlerdir.
5.2 Model Açıklanabilirliği (XAI) ve Etik ML
Derin Öğrenme ve karmaşık Boosting algoritmalarının yaygınlaşmasıyla birlikte, kararlarının neden verildiğini anlamak (Kara Kutu sorunu), yasal, etik ve iş açısından hayati bir zorunluluk haline gelmiştir. Bu alan, sadece teknik yeterliliği değil, aynı zamanda sosyal sorumluluğu da kapsar.
1. Açıklanabilir Yapay Zekâ (Explainable AI - XAI)
XAI, ML modellerinin çıktılarını ve davranışlarını insanlar tarafından anlaşılabilir terimlerle açıklayan yöntem ve teknikler kümesidir. Açıklanabilirlik, modelin güvenilirliğini ve şeffaflığını sağlar.
- Model-Agnostik Yöntemler (Model-Agnostic): Modellerden bağımsız olarak çalışır ve herhangi bir ML modeline uygulanabilir.
- LIME (Local Interpretable Model-agnostic Explanations): Tek bir tahminin nedenini, o tahmin etrafında basit, yorumlanabilir bir model (Örn: Doğrusal Regresyon) oluşturarak açıklar.
- SHAP (SHapley Additive exPlanations): Oyun teorisinden ilham alır. Her bir özelliğin bir tahmin üzerindeki katkısını, tüm olası özellik kombinasyonları üzerinden hesaplayarak adil ve tutarlı bir değer verir.
- Model-Spesifik Yöntemler (Model-Specific): Sadece belirli model türleri için tasarlanmıştır (Örn: Karar Ağaçları için doğrudan kural çıkarma, CNN'ler için Sınıf Aktivasyon Haritaları - CAM).
- İhtiyaç Alanları: Finansal kredilerin reddedilme nedeni, tıbbi teşhislerin gerekçesi veya otonom araçların kaza kararlarının analizi.
2. Etik Makine Öğrenimi (Ethical ML)
Etik ML, modelin sosyal sonuçlarını, taraflılığını ve adaletini ele alır. ML modelleri, eğitim verilerindeki insan önyargılarını (ırk, cinsiyet, gelir vb.) öğrenip büyütebilir, bu da ayrımcı sonuçlara yol açabilir.
- Taraflılık (Bias) ve Adalet (Fairness):
- Veri Taraflılığı: Eğitim verisinin belirli bir demografik grubu yeterince temsil etmemesi (Underrepresentation) veya tarihsel önyargılar içermesi.
- Algoritmik Taraflılık: Algoritmanın, bir grup için diğerine göre sistematik olarak daha fazla hata yapması. (Örn: Yüz tanıma modellerinin koyu tenli bireyleri daha sık yanlış tanıması).
- Şeffaflık ve Sorumluluk: Bir modelin neden hatalı davrandığını açıklayabilme ve bu hatanın sorumluluğunu alabilme zorunluluğu. Açıklanabilirlik (XAI), bu sorumluluk için teknik bir temel oluşturur.
- Gizlilik (Privacy): Model eğitimi sırasında kullanılan hassas verilerin (GDPR/KVKK) korunması (Örn: Diferansiyel Gizlilik - Differential Privacy, Federasyon Öğrenimi - Federated Learning).
Model Açıklanabilirliği ve Etik ML, makine öğrenimi sistemlerinin toplumsal kabulü ve yasal düzenlemelere uyumu için giderek artan bir öneme sahiptir.
5.3 Büyük Veri, Dağıtık Öğrenme ve GPU Hızlandırma
Modern Derin Öğrenme ve Yapay Zekâ, gigabaytlarca, hatta terabaytlarca veri ile çalışmayı gerektirir. Bu tür büyük veri setlerinin işlenmesi ve milyarlarca parametreli modellerin eğitilmesi, geleneksel tek CPU/tek makine mimarilerinin sınırlarını aşar. Bu durum, dağıtık sistemleri ve özel donanım hızlandırmayı zorunlu kılar.
1. Büyük Veri ve Dağıtık Öğrenme
Büyük Veri, geleneksel veritabanı sistemlerinin başa çıkamadığı hacim (Volume), hız (Velocity) ve çeşitlilik (Variety) ile karakterize edilen veri setlerini ifade eder.
- Veri Yönetimi Araçları: Büyük veriyi depolamak ve işlemek için **Apache Hadoop (HDFS)** ve **Apache Spark** gibi dağıtık sistemler kullanılır. Spark, veriyi düğümler (nodes) arasında paralel olarak işleyerek geleneksel CPU tabanlı işlemleri hızlandırır.
- Dağıtık Öğrenme (Distributed Training): Model eğitiminin birden fazla makine, CPU veya GPU üzerinde eş zamanlı olarak yapılması.
- Veri Paralelliği: Modelin bir kopyası her bir düğüme yüklenir. Veri seti, düğümler arasında paylaştırılır ve her düğüm kendi küçük veri dilimi üzerinde eğitim yapar. Elde edilen gradyanlar (ağırlık güncellemeleri) birleştirilerek ana modele senkronize edilir. Bu, büyük veri setleri için kullanılır.
- Model Paralelliği: Çok büyük modellerin (Örn: LLM'ler) farklı katmanları veya bölümleri farklı düğümlere bölünür. Bu, bir düğümün belleğine sığmayacak kadar büyük olan modeller için kullanılır.
- Araçlar: TensorFlow Distributed Strategy, PyTorch DistributedDataParallel (DDP) ve Horovod (Uber).
2. GPU (Graphics Processing Unit) Hızlandırma
Derin Öğrenmenin son on yıldaki yükselişi büyük ölçüde GPU'ların kullanılabilirliğine borçludur. GPU'lar, matris çarpımı ve toplama gibi çok sayıda paralel matematiksel işlemi çok hızlı yapacak şekilde tasarlanmıştır.
- CUDA (Compute Unified Device Architecture): NVIDIA tarafından geliştirilen ve GPU'lar üzerinde genel amaçlı paralel programlamayı sağlayan bir platform. Tüm büyük DL frameworkleri (TensorFlow, PyTorch) bu teknolojiye bağımlıdır.
- Paralellik: DL eğitimi, binlerce ağırlığın aynı anda güncellenmesini gerektirir; bu, GPU'nun binlerce küçük çekirdeği tarafından verimli bir şekilde gerçekleştirilir (CPU'lar ise az sayıda güçlü çekirdeğe sahiptir).
- TPU (Tensor Processing Unit): Google tarafından özel olarak **Tensor (matris)** işlemleri ve Derin Öğrenme iş yükleri için tasarlanmış özel donanım hızlandırıcılarıdır. GPU'lardan bile daha fazla enerji verimliliği ve hız sağlayabilirler.
Büyük Veri teknikleri, Dağıtık Öğrenme paradigmaları ve GPU/TPU gibi donanım hızlandırıcıları, veri bilimcilerinin en karmaşık DL projelerini bile makul bir sürede eğitebilmelerini sağlayan modern ML altyapısının temelini oluşturur.