Convolutional Neural Network (CNN) (Evrişimli Sinir Ağı)

Evrişimli Sinir Ağı (CNN), yapay sinir ağlarının özellikle görselleri (fotoğraf, video), pikselleri ve uzamsal verileri işlemek için tasarlanmış özel bir türüdür.

Evrişimli Sinir Ağı (CNN), yapay sinir ağlarının özellikle görselleri (fotoğraf, video), pikselleri ve uzamsal verileri işlemek için tasarlanmış özel bir türüdür. İnsan görme korteksinin (gözün) çalışma prensibinden ilham alır ve nesne tanıma, yüz tanıma ve medikal teşhis gibi Bilgisayarlı Görü (Computer Vision) problemlerinin şampiyonudur.

filter_b_and_w Evrişim (Convolution) Mantığı

Normal bir yapay sinir ağına resim verirseniz, tüm pikselleri düz bir çizgi haline getirip uzamsal ilişkiyi yok eder (Örn: Gözün buruna göre nerede olduğunu unutur). CNN ise resmin üzerinde ufak mercekler (filtreler/kernel) gezdirerek tarama yapar. İlk katmanlardaki filtreler sadece düz çizgileri ve kenarları fark eder. Derinlere indikçe filtreler kulakları, gözleri, tekerlekleri ve nihayetinde kedileri veya arabaları tanımaya başlar.

CNN Mimarisi

camera Convolutional Layer (Evrişim Katmanı)

Görüntüden özellikleri (feature map) çıkartan filtrelere sahip temel katmandır.

compress Pooling Layer (Havuzlama)

Resmin boyutunu küçülterek (örn: en yüksek değerleri alıp pikselleri atarak) işlemi hızlandırır ve modelin resmin kaymasına/dönmesine karşı dirençli olmasını sağlar.

layers Fully Connected Layer (Tam Bağlı Katman)

Ağın son kısmıdır; piksellerden elde edilen yüksek seviyeli özellikleri kullanarak resmin %90 ihtimalle köpek olduğuna karar verir.

grid_view CNN Nasıl Çalışır? Katman Yapısı

  • check_circle Evrişim (Convolution) Katmanı: Küçük bir filtre (kernel) görüntü üzerinde kayarak kenar, köşe ve doku gibi yerel örüntüleri tespit eder. Her filtre farklı bir özelliği öğrenir; ilk katmanlar kenarlara, derin katmanlar yüzlere veya nesnelere odaklanır.
  • check_circle Pooling (Alt Örnekleme) Katmanı: Özellik haritalarının boyutunu küçülterek hesaplama maliyetini azaltır ve öteleme değişmezliği (translation invariance) sağlar. Max pooling en yaygın türdür.
  • check_circle Tam Bağlı (Fully Connected) Katman: Evrişim ve pooling katmanlarından çıkan özellik haritaları düzleştirilir (flatten) ve sınıflandırma için tam bağlı katmandan geçirilir. Çıkış katmanı softmax ile sınıf olasılıkları üretir.

photo_camera CNN Kullanım Alanları

CNN (Evrişimli Sinir Ağı), görüntü sınıflandırma, nesne tespiti (YOLO, Faster R-CNN), yüz tanıma ve tıbbi görüntü analizi (MRI, X-ray) gibi bilgisayarlı görü görevlerinde baskın mimaridir. ResNet, VGG, EfficientNet ve MobileNet en yaygın önceden eğitilmiş CNN aileleridir. Transformer mimarileri (ViT) görüntü işlemede CNN'e rakip olsa da CNN küçük veri kümelerinde ve uç cihazlarda hâlâ tercih edilir.

CNN'in Temel Bileşenleri

  • check_circle Evrişim Katmanı (Convolution Layer): Kayan filtreler (kernel) görüntü üzerinde yerel özellikler çıkarır: kenar, köşe, doku. Farklı filtreler farklı örüntüleri yakalar.
  • check_circle Aktivasyon Fonksiyonu (ReLU): Doğrusal olmayanlık ekler. ReLU(x) = max(0,x); negatif değerleri sıfıra eşitler. Derin ağlarda hesaplama açısından verimli.
  • check_circle Havuzlama (Pooling): Özellik haritasını boyut küçültme. Max pooling en büyük değeri, average pooling ortalamayı seçer. Uzamsal özellik invariance sağlar.
  • check_circle Tam Bağlantılı Katman (FC Layer): CNN'in son katmanlarında yüksek seviyeli özellikler sınıflandırma çıktısına dönüştürülür.
  • check_circle Ağırlık Paylaşımı: Aynı filtre görüntünün her bölgesine uygulanır; bu parametre sayısını dramatik biçimde azaltır ve ötelenme değişmezliği (translation invariance) sağlar.
  • check_circle Derinlik ve Genişlik: Daha derin ağlar daha soyut özellikler öğrenir. Erken katmanlar kenar/renk, derin katmanlar nesne parçaları ve tüm nesneleri yakalar.

CNN'in Evrimi ve Modern Mimarileri

Evrişimli sinir ağı (CNN), 1989'da Yann LeCun tarafından rakam tanıma için önerildi; ancak asıl çığır 2012'de AlexNet'in ImageNet yarışmasını büyük farkla kazanmasıyla açıldı. Bu başarı derin öğrenme devrimini tetikledi. Sonraki yıllarda mimari rekabeti hız kazandı: VGGNet (daha derin ve düzenli), GoogLeNet/Inception (dallanmış modüler mimari), ResNet (artık bağlantılar — daha derin ağların eğitimini mümkün kıldı), EfficientNet (NAS ile hesaplama-doğruluk dengesi). Günümüzde Vision Transformer (ViT) ve hibrit modeller CNN'i birçok kıyaslamada geçmiştir; ancak CNN'ler edge cihazlarda, gerçek zamanlı işlemede ve eğitim verisi az olan senaryolarda hâlâ güçlü bir seçimdir. Pratik araçlar: PyTorch torchvision, timm (PyTorch Image Models) ve Ultralytics (YOLO) CNN uygulamaları için zengin kütüphane ekosistemi sunar. Transfer öğrenme açısından ImageNet önceden eğitilmiş CNN ağırlıkları tıbbi görüntü, uydu görüntüsü ve endüstriyel muayene gibi özel alanlarda fine-tuning başlangıç noktası.

help Sıkça Sorulan Sorular (FAQ)

  • check_circle CNN nedir?: CNN (Convolutional Neural Network / Evrişimli Sinir Ağı), görüntü verisi üzerinde yerel bağlantı ve ağırlık paylaşımı kullanan yapay sinir ağı mimarisidir. Evrişim filtreleri görsel örüntüleri hiyerarşik biçimde öğrenir; nesne tanıma ve görüntü sınıflandırmasında standart çözümdür.
  • check_circle CNN ile RNN arasındaki fark nedir?: CNN uzamsal veri (görüntü, video karesi) için tasarlanmıştır; komşu piksel ilişkilerini evrişim filtresiyle yakalar. RNN ise sıralı ve zamansal veri (metin, ses sinyali) için geliştirilmiştir; gizli durum mekanizmasıyla önceki adımları hatırlar.
  • check_circle CNN neden görüntüler için bu kadar iyi?: Yerel bağlantı ve ağırlık paylaşımı sayesinde piksel uzaklığına bağımsız örüntüleri öğrenir. Havuzlama ise uzamsal değişmezlik (translation invariance) sağlar. Bu özellikler görüntünün doğasıyla mükemmel uyum içindedir.
  • check_circle CNN ile ViT (Vision Transformer) arasındaki fark nedir?: CNN yerel özelliklere odaklanır ve öteleme değişmezliği sunar; az veriyle iyi çalışır. ViT global ilişkileri dikkat mekanizmasıyla yakalar; büyük veri setlerinde CNN'i geçebilir.
  • check_circle CNN eğitmek için ne kadar veri gerekir?: Transfer öğrenme ile birkaç yüz örnek bile yeterli olabilir. Sıfırdan eğitim için binlerce veya milyonlarca örnek gerekebilir. ImageNet ön eğitimli modeller başlangıç noktası olarak tercih edilir.