Klasik bilgisayarlı görüden derin öğrenme tabanlı yaklaşımlara geçişin temel nedenlerini açıklayabilecektir.
Bir evrişim (convolution) işleminin matematiksel mantığını ve özellik çıkarımındaki rolünü kavrayabilecektir.
Stride (Adım) ve Padding (Dolgu) parametrelerinin çıktı boyutu üzerindeki etkisini hesaplayabilecektir.
Pooling (Ortaklama) katmanının neden kullanıldığını ve türlerini ayırt edebilecektir.
Basit bir CNN mimarisinin (Conv -> ReLU -> Pool -> FC) bileşenlerini tanımlayabilecektir.
1. Neden Derin Öğrenme?
Klasik Yaklaşımların Sınırı (Hand-crafted Features)
Şu ana kadar öğrendiğimiz SIFT, HOG, Harris gibi yöntemler:
Uzmanlar tarafından tasarlanmış matematiksel formüllere dayanır.
Belirli koşullarda (aydınlatma, ölçek) çok başarılıdır.
Ancak karmaşık sahnelerde ve genelleme konusunda zorlanabilirler.
Geleneksel Akış vs. Derin Öğrenme
Geleneksel:Görüntü -> El Yapımı Özellik Çıkarımı -> Sınıflandırıcı (SVM, RF) -> Sonuç
Derin Öğrenme:Görüntü -> [Özellik Çıkarımı + Sınıflandırma] -> Sonuç
Derin öğrenme, hangi özelliğin (kenar, doku, şekil) önemli olduğunu veriden kendisi öğrenir (Feature Learning).
2. Evrişimsel Sinir Ağları (CNN) Nedir?
CNN’ler, özellikle görüntü verisi gibi 2B/3B ızgara yapılı veriler için tasarlanmış özel bir sinir ağı türüdür.
Temel Sezgi:
Yerel Bağlantısallık (Local Connectivity): Gözümüz bir görüntüyü incelerken tüm piksellere aynı anda değil, bölge bölge odaklanır.
Ağırlık Paylaşımı (Weight Sharing): Bir bölgede dikey kenarı bulan bir filtre, görüntünün her yerinde dikey kenarı bulabilir.
3. Evrişim (Convolution) İşlemi
Evrişim, bir çekirdeğin (kernel) görüntü üzerinde kaydırılarak piksellerle çarpılması ve sonuçların toplanması işlemidir.
Bir filtre (örn. 3x3) görüntü üzerinde gezer.
Matris çarpımı (Element-wise multiplication) ve toplama yapılır.
Sonuç: Bir Özellik Haritası (Feature Map).
4. Filtreler Ne İşe Yarar?
Filtreler, görüntüdeki spesifik bilgileri “süzgeçten” geçirir.
Filtre Türü
Amaç
Dikey Kenar Filtresi
Dikine olan ani değişimleri yakalar
Yatay Kenar Filtresi
Yatay çizgileri belirginleştirir
Bulanıklaştırma Filtresi
Görüntüyü yumuşatır
İnteraktif Örnek: Evrişim Hesabı
Aşağıdaki kod bloğunda 3x3’lük bir görüntüye 2x2’lik bir filtre uygulayalım.
5. Stride (Adım) ve Padding (Dolgu)
Stride
Filtrenin her adımda kaç piksel atlayacağını belirler. - Stride = 1: Normal tarama. - Stride = 2: Çıktı boyutunu yarı yarıya indirir.
Padding
Evrişim işlemi görüntüyü doğal olarak küçültür ve köşelerdeki bilgi kaybına neden olur. Bunu engellemek için görüntü etrafına sanal pikseller (genelde 0) eklenir.
Valid Padding: Hiç dolgu yapılmaz (Görüntü küçülür).
Same Padding: Çıktı boyutu girdi boyutuyla aynı kalacak şekilde dolgu yapılır.
6. Doğrusal Olmayan Aktivasyon: ReLU
Evrişim işlemi lineer (doğrusal) bir işlemdir. Karmaşık dünyayı anlamak için sistemimize doğrusalsızlık eklemeliyiz.
ReLU (Rectified Linear Unit):\[f(x) = \max(0, x)\]
Negatif değerleri 0 yapar.
Pozitif değerlere dokunmaz.
Neden? Daha hızlı eğitim sağlar ve ağın karmaşık özellikleri öğrenmesine izin verir.
7. Ortaklama (Pooling)
Pooling, özellik haritalarının boyutsallığını azaltmak için kullanılır.
graph LR
A[Girdi Görüntüsü] --> B[Evrişim - Conv]
B --> C[Aktivasyon - ReLU]
C --> D[Ortaklama - Pooling]
D --> E[Tekrarla...]
E --> F[Vektöre Dönüştür - Flatten]
F --> G[Sınıflandırma - FC]
Bölüm Özeti
Bu derste: - Klasik yöntemin neden derin öğrenmeye evrildiğini gördük. - Evrişim (Convolution) işleminin matematiksel temelini öğrendik. - Stride, Padding ve Pooling gibi “vites” ayarlarını kavradık. - Bir CNN’in hangi katmanlardan oluştuğunu özetledik.
Gelecek Hafta: VGG, ResNet ve Inception gibi tarihe geçmiş popüler mimarileri ve bu ağların nasıl eğitildiğini inceleyeceğiz.
Basit Dünya
Sadece 2 karakterden oluşan bir alfabemiz olsun. \ ve /
Görüntü düzlemimiz ise bu iki karakteri ifade edebilecek en küçük boyut olan 2x2 piksellik görüntülerden oluşsun.
Bu pikseller sadece Siyah ve Beyaz renk olabilirler.