Yapay zekâ haberlerinde “makine öğrenmesi” ve “derin öğrenme” ifadeleri çoğu zaman aynı cümlede, hatta birbirinin yerine geçiyor. Aslında ikisi aynı şey değil, ama birbirinden bağımsız da değil. Bu yazıda farkı bir örnekle ve on satırlık bir Python koduyla netleştireceğiz.
Kısa tanım
- Makine öğrenmesi, bilgisayarın kuralları bizim yazmamıza gerek kalmadan, örneklerden öğrenmesini sağlayan yöntemlerin genel adı.
- Derin öğrenme, makine öğrenmesinin bir alt dalı. Çok katmanlı yapay sinir ağlarını kullanıyor.
Yani her derin öğrenme modeli bir makine öğrenmesi modeli, ama her makine öğrenmesi modeli derin öğrenme değil. İç içe üç halka gibi düşünebilirsin: En dışta yapay zekâ, onun içinde makine öğrenmesi, en içte derin öğrenme.
Asıl fark: özellikleri kim seçiyor?
Bir fotoğrafta kedi olup olmadığını anlayan bir model yapmak istediğimizi düşünelim.
Klasik makine öğrenmesiyle önce bizim düşünmemiz gerekiyor: Bir kediyi kedi yapan ne? Kulakların şekli, bıyıklar, gözlerin konumu… Bu özellikleri fotoğraftan çıkaran kodu biz yazıyoruz. Model de bu özelliklere bakıp karar vermeyi öğreniyor. Bu adıma özellik mühendisliği (feature engineering) deniyor.
Derin öğrenmeyle modele doğrudan fotoğrafın piksellerini veriyoruz. Sinir ağının ilk katmanları kenarları ve renk geçişlerini, sonraki katmanlar kulak ve göz gibi şekilleri, son katmanlar da “kedi yüzü” gibi bütünleri tanımayı kendi kendine öğreniyor. Hangi özelliğe bakacağını biz söylemiyoruz.
Adındaki “derin” kelimesi de buradan geliyor: Üst üste dizilmiş çok sayıda katman.
Python ile küçük bir karşılaştırma
scikit-learn’ün içinde gelen el yazısı rakam veri setini kullanalım: 8×8 piksellik, 1797 rakam görüntüsü. Aynı veride bir karar ağacını ve küçük bir sinir ağını deneyelim:
from sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_splitfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.neural_network import MLPClassifierX, y = load_digits(return_X_y=True)X_egitim, X_test, y_egitim, y_test = train_test_split(X, y, test_size=0.25, random_state=42)agac = DecisionTreeClassifier(random_state=42).fit(X_egitim, y_egitim)sinir_agi = MLPClassifier(hidden_layer_sizes=(64, 32), max_iter=1000, random_state=42).fit(X_egitim, y_egitim)print(f"Karar ağacı: {agac.score(X_test, y_test):.0%}") # 86%print(f"Sinir ağı: {sinir_agi.score(X_test, y_test):.0%}") # 97%
Aynı piksellerle karar ağacı test verisinin %86’sını, iki gizli katmanlı sinir ağı %97’sini doğru tanıdı. Karar ağacı tek tek piksellere bakıp “5. piksel koyu mu?” gibi sorular sorabiliyor. Sinir ağı ise katmanları sayesinde pikselleri bir araya getirip çizgi ve eğri gibi daha anlamlı kalıplar öğrenebiliyor.
Dürüst bir not: İki katmanlı bu ağ gerçek dünyadaki derin öğrenme modellerinin yanında çok küçük. Yine de fikri göstermek için yeterli: Ham veride kalıp arama işinde katmanlı ağlar çok güçlü.
Yan yana
| Klasik makine öğrenmesi | Derin öğrenme | |
|---|---|---|
| Özellikleri kim seçiyor? | Çoğunlukla insan | Model kendisi öğreniyor |
| Veri ihtiyacı | Az ya da orta miktarda veriyle çalışabiliyor | Genelde çok fazla veri istiyor |
| Donanım | Sıradan bir bilgisayar yeterli | Büyük modeller için GPU gerekiyor |
| Açıklanabilirlik | Karar ağacı gibi modellerin kuralları okunabiliyor | Neden o kararı verdiğini anlamak zor |
| Güçlü olduğu yer | Tablo verisi: satış, kredi, müşteri kayıtları | Görüntü, ses, metin |
| Örnekler | Karar ağacı, rastgele orman, lojistik regresyon | Yapay sinir ağları, CNN’ler, Transformer’lar |
Hangisi ne zaman?
- Elinde Excel benzeri tablo verisi varsa (müşteri yaşı, alışveriş sayısı, şehir gibi) klasik makine öğrenmesi çoğu zaman hem daha hızlı hem daha açıklanabilir bir sonuç veriyor.
- Elinde fotoğraf, ses kaydı ya da uzun metin varsa derin öğrenme genelde çok önde.
- Veri azsa, önce basit bir modelle başla. Basit model işini görüyorsa daha karmaşıkına geçmene gerek yok.
Bu blogdan iki örnek: Seçmen Şapkası yazısındaki karar ağacı klasik makine öğrenmesiydi; dört puanlık bir tablo verisinden kurallar çıkardı ve o kuralları okuyabildik. Attention yazısında anlattığım Transformer modelleri ise derin öğrenmenin bugünkü en bilinen örneği; ChatGPT gibi dil modellerinin temeli bunlar.
[AFFILIATE: makine öğrenmesine giriş kitabı ya da kursu]
Bir cümlede
Makine öğrenmesi bilgisayarın örneklerden öğrenmesi; derin öğrenme ise bunun, çok katmanlı sinir ağlarıyla neye bakacağını da kendi kendine öğrenen alt dalı.

Bir yanıt yazın