CNN nedir?
Bu derste görüntü tanımanın klasik derin öğrenme mimarisi olan CNN (Convolutional Neural Network, Evrişimli Sinir Ağı) yapısını baştan sona işliyoruz: evrişim nasıl çalışır, filtreler ne öğrenir, havuzlama neden gerekir ve CNN bugün hangi işlerde kullanılır. Temeller için Yapay sinir ağları dersine, serinin tamamı için Yapay Zekâ dersleri sayfasına göz atabilirsin.
CNN (Evrişimli Sinir Ağı) Nedir?
CNN, görüntü gibi ızgara yapısındaki verilerde örüntü tanımak için tasarlanmış bir derin öğrenme mimarisidir. Adındaki “evrişim” sözü temel işlemi anlatır: küçük bir filtre, görüntünün üzerinde adım adım gezdirilerek her bölgede aranan örüntü test edilir. Bu fikrin ilhamı biyolojidir; 1960'larda Hubel ve Wiesel'in görme korteksi deneyleri, görme hücrelerinin tüm görüntüyü değil yalnızca küçük bir görü alanını izlediğini göstermişti. CNN'de de her nöron tüm görüntüye değil, komşu piksellerden oluşan küçük bir pencereye bakar.
Tarihsel kilometre taşları da konunun pusulasıdır: Yann LeCun'un 1990'lardaki LeNet ağı el yazısı rakam tanımayı gösterdi; 2012'de AlexNet'in ImageNet görüntü tanıma yarışmasını açık farkla kazanması, derin öğrenme çağını başlatan dönüm noktası sayılır. Bu başarının ardındaki katmanlı temsil fikrini Derin öğrenme nedir? dersinde bulabilirsin.
Neden Tam Bağlı Ağ Görüntü İçin Verimsizdir?
Bir görüntüyü klasik ağa vermek için onu tek boyutlu diziye indirmen gerekir; bedeli büyüktür. 224×224 piksellik renkli bir görüntü yaklaşık 150 bin girdidir; bunu yalnızca 1.000 nöronlu bir katmana bağlamak bile yaklaşık 150 milyon ağırlık demektir. Bu, hem bellek hem de aşırı öğrenme (overfitting) açısından sürdürülemez.
Daha temel sorun yapısaldır: düzleştirme komşuluk bilgisini yok eder. Kediyi kedi yapan, piksellerin tek tek değerleri değil, birbirine komşu dizilişidir. CNN iki fikirle çözüm üretir: yerel bağlantılar (her nöron yalnızca küçük bir bölgeye bakar) ve parametre paylaşımı (aynı filtre görüntünün her yerine uygulanır). Katman diziliminin genel çerçevesi için Katmanlar dersine bakabilirsin.
Evrişim Katmanı: Filtre ve Öznitelik Haritası
İşlemin kahramanı, çekirdek (kernel) ya da filtre adı verilen 3×3 veya 5×5 boyutunda küçük bir ağırlık matrisidir. Filtre görüntünün sol üstünden başlar; her konumda filtre değerleri ile altındaki pikseller çarpılıp toplanır ve sonuç çıkışın bir hücresine yazılır. Çıktıya öznitelik haritası (feature map) denir: filtre neyi arıyorsa harita, o örüntünün görüntünün nerede güçlü olduğunu gösterir. Hesabı üreten birim, Nöron nedir? dersindeki yapay nöronun aynısıdır: girdileri ağırlıklarla çarp, topla, aktivasyondan geçir.
Kritik fark şudur: klasik görüntü işlemede kenar filtreleri elle tasarlanırdı; CNN'de ise filtrelerin değerleri eğitimle öğrenilir. İlk katmanlar kenar ve köşe gibi basit örüntüleri, derin katmanlar göz, tekerlek, pencere gibi bileşik örüntüleri yakalayan filtreler öğrenir. Evrişim çıktısı her adımda ReLU gibi bir aktivasyon fonksiyonundan geçirilerek doğrusal olmayanlık kazanır. Katmanın davranışını iki ayar belirler:
- Adım (stride): filtrenin her hamlede kaç piksel kayacağı; adım büyüdükçe çıktı küçülür.
- Dolgu (padding): kenarlara sıfırlardan çerçeve ekleyerek kenar bölgelerini hesaba katmak ve çıktı boyutunun aşırı erimesini önlemek.
Havuzlama ve Tipik Bir CNN Mimarisi
Evrişimden sonra çoğunlukla havuzlama (pooling) katmanı gelir. En yaygın türü olan 2×2'lik maksimum havuzlama (max pooling), haritayı 2×2'lik pencerelere böler ve her pencereden en büyük değeri alır; böylece boyut yarıya iner. Amaç, güçlü sinyalleri korurken hesap yükünü azaltmak ve örüntüyü küçük kaymalara karşı toleranslı hâle getirmektir. Havuzlamanın öğrenilecek ağırlığı yoktur; saf bir özetleme işlemidir.
Öğrenilebilir evrişim ve özetleyici havuzlama katmanları, klasik bir CNN'de şu sırayla dizilir:
- Girdi görüntüsü ilk evrişim katmanına girer; düşük düzey örüntüler çıkarılır.
- Çıktı ReLU ile aktive edilir, ardından havuzlamayla küçültülür.
- “Evrişim + ReLU + havuzlama” blokları birkaç kez yinelenir; derine indikçe harita sayısı artar, boyut küçülür.
- Sonuç tek boyutlu diziye düzleştirilir.
- Tam bağlı katmanlar ve sondaki softmax katmanı sınıf olasılıklarını üretir.
Bu zincirde her blok bir öncekininkinden daha soyut örüntü öğrenir: kenardan dokuya, dokudan parçaya, parçadan nesneye. Eğitim, tüm katmanlardaki milyonlarca ağırlığı aynı anda günceller; bu hesabın paralel donanıma yaslandığını GPU ve yapay zekâ dersinde inceleyebilirsin.
CNN Bugün Nerede Kullanılır?
- Günlük yaşam: telefonlarda yüzle kilit açma, galeride kişi ve yer arama, fotoğraf iyileştirme uygulamaları.
- Sağlık: röntgen, MR ve patoloji görüntülerinde tümör ve lezyon adaylarının işaretlenmesi; günümüzde hekime destek aracı olarak yaygınlaşmıştır.
- Sanayi ve ulaşım: üretim hatlarında hatalı ürün ayıklama, sürücü destek sistemlerinde şerit ve tabela algılama.
- Tarım ve çevre: drone ve uydu görüntülerinde hastalık taraması, arazi ve afet analizi.
2024–2025 tablosunda denge şudur: büyük ölçekli görüntü ve çok kipli (multimodal) modellerin merkezinde artık Transformer mimarisi ve onun görüntüye uyarlanan biçimleri var; dikkat mekanizması, görüntünün uzaktaki bölgeleri arasındaki ilişkiyi de kurabiliyor. Yine de CNN terk edilmiş değildir: telefonda, gömülü cihazda ve gerçek zamanlı gerektiren uygulamalarda hesap yükü düşük CNN çeşitleri hâlâ en pratik seçenektir. Eğitilmiş bir CNN'in öznitelik haritaları ayrıca transfer öğrenmenin, yani hazır modeli yeni bir göreve uyarlamanın klasik başlangıç noktasıdır. Görüntü ile sıralı verinin işleniş farkını görmek için RNN nedir? dersine geçebilirsin.
Sık Yapılan Hatalar ve Yanılgılar
CNN'i ilk öğrenenlerin en sık düştüğü noktalar şunlardır:
- “Filtreler elle yazılır” sanmak: klasik görüntü işlemedeki hazır filtrelerle karıştırmayın; CNN'in tüm filtreleri eğitim verisinden öğrenilir.
- Görüntüyü düzleştirip tam bağlı ağa vermenin yeteceğini düşünmek: parametre patlaması ve komşuluk kaybı, evrişimin varlık sebebidir.
- CNN'i her veri türü için en iyi mimari saymak: ızgara yapılı veride güçlüdür; metin ve ses gibi dizilerde sıra önemlidir ve o işi RNN ile Transformer daha iyi yapar. Metin tarafı için NLP nedir? dersine bakabilirsin.
- Aşırı havuzlamayla ayrıntıyı silmek: her havuzlama boyutu küçültür; küçük nesneleri ayırt etmen gereken bir görevde kaybedilen ayrıntı geri gelmez.
- Az veriyle sıfırdan derin CNN eğitmeye çalışmak: milyonlarca ağırlığı küçük bir veri setiyle sağlıklı öğrenemezsin; hazır eğitilmiş modeli ince ayarla (fine-tuning) kullanmak genellikle çok daha başarılıdır.
- “Ne kadar derinse o kadar iyi” sanmak: derinlik örnekleme gücünü artırır ama eğitimi zorlaştırır; katman sayısı görevin karmaşıklığına ve veri miktarına göre seçilir.
Sık Sorulan Sorular
CNN nedir?
CNN (Convolutional Neural Network, Evrişimli Sinir Ağı), görüntü gibi ızgara yapılı verilerde örüntü tanımak için tasarlanmış bir derin öğrenme mimarisidir. Küçük filtreleri görüntünün üzerinde gezdirerek kenar gibi basit örüntülerden nesnelere uzanan öznitelikleri katman katman öğrenir.
CNN ile RNN arasındaki fark nedir?
CNN, görüntü gibi uzamsal veride komşuluk ilişkilerinden örüntü çıkarır; RNN ise metin ve ses gibi sıralı veride adımlar arasındaki sıra ve zaman bağını işler. Kısacası CNN “nerede” sorusuna, RNN “hangi sırada” sorusuna odaklanır.
CNN'de filtre (çekirdek) nedir?
Filtre ya da çekirdek, görüntünün üzerinde gezdirilen küçük boyutlu (örneğin 3×3) bir ağırlık matrisidir. Her konumda filtre değerleri altındaki piksellerle çarpılıp toplanarak öznitelik haritasının bir değeri üretilir; filtre değerleri eğitimle öğrenilir.