Dr. Mehmet Solak Siirt Üniversitesi · Ziraat Fakültesi · Biyosistem Mühendisliği · Tarım ve Tarımsal Eğitim İçin Makine Öğrenmesi İçeriği

Bölüm 6: Neural Networks and Deep Learning

kitapburkovbölüm-6sinir-aglariderin-öğrenmemlpaktivasyon-fonksiyonlarigeri-yayilim

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)

  1. Görüntü, hareketli pencere yaklasimi ile kare yamalara (patch) bolunur
  2. Her yama için küçük bir regresyon modeli egitilir
  3. 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

  1. Kaybolan gradyan: Dizinin uzunlugu arttikca ag "acilir" ve gradyan hesaplamasi daha derinlesir
  2. 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.

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.