Bölüm 6: Neural Networks and Deep Learning
Kaynak: Andriy Burkov -- "The Hundred-Page Machine Learning Book" (theMLbook.com)
Bölüm 6: Sinir Aglari ve Derin Öğrenme (Neural Networks and Deep Learning)
Bu bölüm, yapay sinir aglarinin temellerini, cok katmanli algalayicilari (MLP), aktivasyon fonksiyonlarini, geri yayilimi, evrisimli sinir aglarini (CNN) ve tekrarlamali sinir aglarini (RNN/LSTM) kapsar.
6.1 Sinir Aglari (Neural Networks)
Bir sinir agi (NN), matematiksel olarak ic ice gecmis fonksiyonlardan olusan bir fonksiyondur:
y = f_NN(x) = f3(f2(f1(x)))
Her katman fonksiyonu su formda tanimlanir:
f_l(z) = g_l(W_l * z + b_l)
Burada: - l: Katman indeksi - g_l: Aktivasyon fonksiyonu (sabit, genellikle doğrusal olmayan, analist tarafından secilir) - W_l: Agirlik matrisi (ogrenilebilir parametreler) - b_l: Yanlilik vektoru (ogrenilebilir parametreler)
Bu formul, lojistik regresyonla neredeyse aynidir; tek fark g_l'nin sigmoid yerine baska bir fonksiyon olabilmesidir. Parametreler W_l ve b_l, gradyan inisi kullanilarak ogrenilir.
Neden matris W_l kullanılır? Çünkü g_l bir vektor fonksiyonudur. Matrisin her satiri w_{l,u}, bir birimi (unit) temsil eder. Katman l'deki birim sayisi "size_l" olarak ifade edilir.
6.1.1 Cok Katmanli Algalayici (Multilayer Perceptron - MLP)
MLP, ileri beslemeli sinir aglarinin (FFNN) belirli bir mimarisidir. Temel özellikleri:
- Girdi katmani: Özellik vektorunu alir
- Gizli katmanlar: Her birimde doğrusal dönüşüm + aktivasyon fonksiyonu uygulanir
- Cikti katmani: Sonuç üretir
Her birimde gerçeklesen işlemler: 1. Tum girdiler bir girdi vektorunde birlestirilir 2. Girdi vektorune doğrusal dönüşüm uygulanir (lineer regresyon gibi) 3. Aktivasyon fonksiyonu g uygulanarak çıkış değeri elde edilir
Tam bagli mimaride (fully-connected), bir katmanin tum çıkışlari, bir sonraki katmanin tum girdilerine baglanir.
6.1.2 Ileri Beslemeli Sinir Agi Mimarisi
Son katmanin aktivasyon fonksiyonuna gore model turu degisir: - Doğrusal aktivasyon --> Regresyon modeli - Lojistik (sigmoid) aktivasyon --> Ikili sınıflandırma modeli
Katman sayisi ve birim sayisi, veri analistinin secmesi gereken hiperparametrelerdir.
Aktivasyon Fonksiyonlari
Doğrusal olmayan bilesenler, sinir aginin doğrusal olmayan fonksiyonlari yaklasiklastirmasini saglar. Doğrusal olmayan bilesenler olmasaydi, kac katman olursa olsun f_NN doğrusal kalirdi (doğrusal fonksiyonun doğrusal fonksiyonu yine dogrusaIdir).
Yaygin aktivasyon fonksiyonlari:
| Fonksiyon | Formul | Aralik |
|---|---|---|
| Sigmoid | 1 / (1 + e^(-z)) | (0, 1) |
| TanH | (e^z - e^(-z)) / (e^z + e^(-z)) | (-1, 1) |
| ReLU | max(0, z) | [0, sonsuz) |
ReLU, kaybolan gradyan sorununa karsi daha direnclidir ve modern aglar için en populer secenektir.
6.2 Derin Öğrenme (Deep Learning)
Derin öğrenme, ikiden fazla gizli katmana sahip sinir aglarinin egitilmesi anlamina gelir. Tarihsel olarak iki büyük zorlukla karsilasisilmistir:
Patlayan ve Kaybolan Gradyan Sorunlari
Patlayan gradyan (exploding gradient): Gradyan değerleri katmanlar boyunca kontrolsuzce buyur. - Cozum: Gradyan kirpma (gradient clipping), L1/L2 duzenlilestirme
Kaybolan gradyan (vanishing gradient): Gradyan değerleri katmanlar boyunca giderek kuculur ve başlangıç katmanlarinin parametreleri guncelenemez. - Neden: TanH gibi geleneksel aktivasyon fonksiyonlari (0,1) araliginda gradyanlara sahiptir. Zincir kurali ile n adet küçük sayinin carpimi, katlanarak kuculen gradyanlar üretir. - Cozum: ReLU aktivasyon fonksiyonu, LSTM aglari, atlama bağlantılari (skip connections) kullanan artik sinir aglari (residual networks)
Geri yayilim (Backpropagation): Zincir kurali kullanilarak sinir aglarinin gradyanlarini hesaplayan verimli algoritmadur.
Modern uygulamalarda, yuzlerce katmana sahip sinir aglari başarıyla egitilir. Pratikte pek cok is problemi, girdi ile çıktı arasında 2-3 gizli katmanla cozulebilir.
6.2.1 Evrisimli Sinir Aglari (CNN)
Evrisimli sinir aglari, özellikle görüntü işleme için tasarlanmis, parametre sayisini önemli ölçüde azaltan ozel bir FFNN turudur.
Temel fikir: Görüntülerde birbirine yakin pikseller genellikle ayni tur bilgiyi temsil eder (gokyuzu, su, yaprak vb.). Istisna: nesnelerin birbirine degdigi kenarlar.
Evrisim Islemi (Convolution)
- Görüntü, hareketli pencere yaklasimi ile kare yamalara (patch) bolunur
- Her yama için küçük bir regresyon modeli egitilir
- Her model, belirli bir oruntu turunu tespit etmeyi öğrenir (gokyuzu, cim, bina kenari vb.)
Bir filtre (F), p x p boyutunda bir parametre matrisidir. Evrisim işlemi: - Yama (P) ile filtre (F) arasında nokta carpimi alinir - Sonuçlar toplanir - Yama filtreye ne kadar benzerse, evrisim sonuçu o kadar yüksek olur
Örnek (3x3 filtre):
P * F --> yüksek değer = yama filtreye benzer
düşük değer = yama filtreye benzemez
Her filtre, gradyan inisi ve geri yayilim ile ogrenilir.
CNN Katman Yapisi
- Her evrisim katmani birden fazla filtreden olusur
- Her filtrenin bir de yanlilik parametresi (b) vardir
- Bir katmanin çıktısi, "size_l" adet matris içerir (her filtre için bir tane)
- Birbirini izleyen evrisim katmanlarinda, sonraki katman onceki katmanin çıktısini bir hacim (volume) olarak işler
- Tipik olarak tum gizli katmanlarda ReLU aktivasyonu kullanılır
- Renkli görüntüler 3 kanal (R, G, B) olarak giriş alir
Önemli CNN Kavramlari
- Adim (Stride): Filtrenin görüntü üzerinde kac piksel kaydigi
- Dolgu (Padding): Girdi etrafina eklenen sifir değerleri
- Havuzlama (Pooling): Parametre sayisini daha da azaltan teknik
6.2.2 Tekrarlamali Sinir Aglari (RNN)
Tekrarlamali sinir aglari, dizileri (sequences) etiketlemek, sınıflandırmak veya uretmek için kullanılır. Bir dizi, satirlarin özellik vektorleri oldugu ve satir sirasinin önemli oldugu bir matristir.
Kullanim alanlari: - Dizi etiketleme: Her özellik vektorune bir sınıf atama - Dizi sınıflandırma: Tum diziye bir sınıf atama - Dizi uretme: Girdi dizisine karsilik gelen baska bir dizi çıktı uretme
RNN'ler özellikle metin işleme ve konusma işleme alanlarinda yaygin kullanılır.
RNN Mimarisi
RNN, ileri beslemeli degildir çünkü donguler içerir: - Her birim u, iki girdi alir: (1) onceki katmanin çıktısi, (2) ayni katmanin onceki zaman adimindaki durum vektoru - Girdi dizisi X = [x_1, x_2, ..., x_t, ...] sirayla okunur - Her zaman adiminda durum guncellenir:
h_l,u^t = g1(w_{l,u} * x_t + u_{l,u} * h_l^{t-1} + b_{l,u})
- Cikti için genellikle softmax fonksiyonu kullanılır:
sigma(z) = [exp(z_j) / toplam(exp(z_k))]
Softmax, sigmoid fonksiyonunun cok boyutlu genellemesidir; tum çıkış değerlerinin toplami 1'dir ve her değer pozitiftir.
Eğitim, zamanda geri yayilim (backpropagation through time) ile yapilir.
RNN'lerin Sorunlari
- Kaybolan gradyan: Dizinin uzunlugu arttikca ag "acilir" ve gradyan hesaplamasi daha derinlesir
- Uzun vadeli bagimliliklar: Dizinin basindaki bilgiler, daha yeni okunan özellik vektorleri tarafından bastirilair
Kapili RNN'ler: LSTM ve GRU
LSTM (Long Short-Term Memory) ve GRU (Gated Recurrent Unit), bu sorunlari cozmek için geliştirilmiştir.
Kapili birimler, bilgiyi bilgisayar bellegindeki bitler gibi saklayabilir: okuma, yazma ve silme işlemleri (0,1) araliginda değer alan aktivasyon fonksiyonlariyla kontrol edilir.
Minimal GRU birimi (Minimal Gated GRU):
Bir hafiza hucresi ve bir unutma kapisi içerir:
h_tilde = g1(w * x_t + u * h^{t-1} + b) # Aday durum
gamma = sigmoid(m * x_t + o * h^{t-1} + a) # Kapi değeri
h^t = gamma * h_tilde + (1 - gamma) * h^{t-1} # Yeni durum
- Kapi değeri (gamma) 0'a yakinsa: Hafiza hucresi onceki değeri korur
- Kapi değeri (gamma) 1'e yakinsa: Hafiza hucresi yeni degerle yazilir
Neden kaybolan gradyan sorunu cozulur? Kapili birimler, girdiye ozdeslik fonksiyonu (f(x) = x) uygular. Ozdeslik fonksiyonunun turevi sabit oldugundan, gradyan kaybolmaz.
Diger Önemli RNN Uzantilari
- Cift yonlu RNN (Bidirectional RNN): Diziyi hem ileri hem geri okur
- Dikkat mekanizmali RNN (Attention Mechanisms): Uzak bagimlikklari daha iyi yakaliar
- Diziden diziye modeller (Sequence-to-Sequence): Makine cevirisi ve metin dönüşümleri icin
- Yinelemeli sinir aglari (Recursive Neural Networks): RNN'lerin genellemesi
Ozet
| Konu | Aciklama |
|---|---|
| Sinir Agi | Ic ice gecmis fonksiyonlardan olusan matematiksel model |
| MLP | Tam bagli, ileri beslemeli sinir agi mimarisi |
| Aktivasyon Fonksiyonlari | Sigmoid, TanH, ReLU -- doğrusal olmayisi saglar |
| Geri Yayilim | Zincir kurali ile gradyan hesaplama algoritmasi |
| Derin Öğrenme | 2+ gizli katmanli sinir aglarinin eğitimi |
| CNN | Evrisim filtreleri ile özellik çıkarımi, görüntü işleme için ideal |
| RNN | Dizi verilerini (metin, konusma) işleme için dongu içeren aglar |
| LSTM/GRU | Kaybolan gradyan ve uzun vadeli bagimlilik sorunlarina çözüm |
Ilgili bölümler: bölüm-05-temel-pratik | bölüm-07-problemler-çözümler
Lisans ve Atıf
Bu sayfa, Andriy Burkov tarafından yazılan "The Hundred-Page Machine Learning Book" kitabına dayalı notlar içermektedir.
- Kitap: theMLbook.com
- GitHub: github.com/aburkov/theMLbook
- Lisans: MIT License — Copyright (c) 2019 Andriy Burkov
- İlke: "Read first, buy later" — Kitabı önce okuyun, beğenirseniz satın alın.
MIT Lisansı gereği bu copyright bildirimi ve izin bildirimi, Yazılımın tüm kopyalarına veya önemli bölümlerine dahil edilmelidir.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. Bu içerik eğitim amaçlıdır ve orijinal eserin yerine geçmez. Tam kitap için themlbook.com adresini ziyaret edin.