Convolutional Neural Network (CNN)
Evrişimli sinir ağı (CNN), paylaşılan ve kayan filtrelerle görüntü özelliklerini öğrenir. Katmanlarını, özelliklerini, temel modelleri ve CNN'lerle ViT'lerin karşılaştırmasını ele alır.
Evrişimli sinir ağı (CNN), ızgara biçimindeki verileri (çoğunlukla görüntüleri) girdi üzerinde kayan, öğrenilebilir küçük filtrelerle işleyen bir derin öğrenme mimarisidir. Her filtre aynı ağırlıkları her konumda yeniden kullanır; böylece CNN, tam bağlantılı bir ağa kıyasla çok daha az parametre kullanırken kenar veya tekerlek gibi bir örüntüyü nerede görünürse görsün algılar. Üst üste yığılmış katmanlar, ilk katmanlardaki kenar ve dokulardan daha derin katmanlardaki nesne parçalarına ve bütün nesnelere uzanan bir özellik hiyerarşisi oluşturur. CNN'ler, AlexNet'in 2012'de ImageNet yarışmasını kazanmasından bu yana bilgisayarlı görü alanındaki ilerlemenin büyük bölümünü sağladı ve uç donanımlarda gerçek zamanlı görü için en yaygın seçenek olmayı sürdürüyor.
CNN Nasıl Çalışır#
Bir CNN, her aşaması bir öncekinden daha düşük çözünürlükte çalışan birkaç katman türünü aşamalar hâlinde tekrarlar:
- Evrişim katmanları: Her katman, genellikle 3×3 boyutunda bir dizi öğrenilebilir filtreyi girdinin yüksekliği ve genişliği boyunca kaydırır. Her filtre, çıktı özellik haritasının bir kanalını üretir; dolayısıyla 64 filtreli bir katman 64 kanal çıktı verir.
- Normalleştirme ve aktivasyon: Yığın normalleştirme, eğitim sırasında her katmanın çıktısını kararlı bir aralıkta tutar. ReLU veya SiLU gibi doğrusal olmayan bir aktivasyon fonksiyonu, üst üste yığılmış katmanların tek bir doğrusal dönüşümden fazlasını temsil etmesini sağlar.
- Alt örnekleme: Maksimum havuzlama veya 2 adımlı evrişim, yüksekliği ve genişliği yarıya indirir; böylece sonraki katmanların alıcı alanı genişler ve hesaplama azalır. Birçok modern tasarım alt örneklemeyi çoğunlukla adımlı evrişimlerle yapar.
- Başlık: Görüntü sınıflandırma için küresel ortalama havuzlama, her son kanalı tek bir sayıya indirger ve tam bağlantılı bir katman bu sayıları sınıf puanlarına dönüştürür. Algılama ve bölütleme modellerinde bu başlığın yerine kutuları veya piksel başına maskeleri tahmin eden katmanlar kullanılır.
CNN'lerin Temel Özellikleri#
Üç özellik, evrişimlerin görüntüler için neden uygun olduğunu açıklar. Yerel bağlantı, her çıktının girdinin yalnızca küçük bir komşuluğuna bağlı olması demektir ve bu, yakındaki pikseller arasındaki güçlü korelasyonla örtüşür. Ağırlık paylaşımı, tek bir filtrenin görüntünün tamamında kullanılmasını sağlar; bu nedenle parametre sayısı her girdi boyutunda aynı kalır. Öteleme eşdeğişmezliği, girdiyi kaydırmanın özellik haritasını aynı miktarda kaydırması demektir; böylece bir köşede öğrenilen örüntü her yerde tanınır. Havuzlama katmanları buna küçük kaymalara karşı bir miktar tolerans ekler. Bu özellikler bir araya gelerek, CNN'nin daha az görüntüyle öğrenmesini sağlayan yerleşik varsayımlar olan CNN'nin tümevarımsal önyargısını oluşturur; Transformer ise daha fazla görüntüye ihtiyaç duyar.
Aşağıdaki PyTorch kod parçası, aynı 224×224 RGB görüntüye uygulanan bir evrişim katmanını tam bağlantılı bir katmanla karşılaştırır.
import torch
from torch import nn
image = torch.randn(1, 3, 224, 224)
# 64 learnable 3x3 filters, each reused at every position of the RGB image
conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1)
# A fully connected layer mapping the same flattened image to only 64 numbers
dense = nn.Linear(3 * 224 * 224, 64)
conv_params = sum(p.numel() for p in conv.parameters())
dense_params = sum(p.numel() for p in dense.parameters())
print(f"Conv2d: output {tuple(conv(image).shape)}, {conv_params:,} parameters")
print(f"Linear: output {tuple(dense(image.flatten(1)).shape)}, {dense_params:,} parameters")Kod Conv2d: output (1, 64, 224, 224), 1,792 parameters ve Linear: output (1, 64), 9,633,856 parameters değerlerini yazdırır. Ağırlık paylaşımı, evrişimin 1,792 parametreyle tam çözünürlüklü 64 özellik haritası üretmesini sağlar; tam bağlantılı katmanın yalnızca 64 sayı üretmek için bunun 5,376 katı kadar parametreye ihtiyacı vardır.
Önemli CNN Mimarileri#
- LeNet-5 (1998): Yann LeCun'un el yazısı rakamları okumak için geliştirdiği ağ, tam bağlantılı katmanların izlediği dönüşümlü evrişim ve havuzlama katmanları düzenini ortaya koydu. Banka çeklerini okumak için ticari olarak kullanıldı.
- AlexNet (2012): İki GPU'da ReLU aktivasyonları ve dropout kullanılarak eğitilen model, ILSVRC 2012 yarışmasını %15,3'lük ilk 5 test hatasıyla kazandı; ikinci en iyi katmanın hata oranı %26,2'ydi.
- VGG (2014): Küçük 3×3 evrişimleri 16 ila 19 ağırlıklı katmana kadar yığmanın ImageNet doğruluğunu önemli ölçüde artırdığını gösterdi.
- ResNet (2015): Artık bağlantılar, 152 katmana kadar derin ağların eğitilmesini sağladı ve bir ResNet topluluğu ILSVRC 2015'i kazandı.
- U-Net (2015): Atlama bağlantılarına sahip bir kodlayıcı-kod çözücü CNN'dir ve biyomedikal görüntü bölütlemede standart mimari hâline gelmiştir.
- ConvNeXt (2022): Transformer dönemindeki tasarım seçimleriyle modernleştirilmiş bir ResNet'tir; ImageNet'te %87,8 ilk 1 doğruluğuna ulaşır ve COCO algılamada Swin Transformer'ı geride bırakır.
CNN'lerin Kullanım Alanları#
- Nesne algılama: Tek aşamalı CNN algılayıcıları, nesneleri tek ileri geçişte bulup sınıflandırır; kameralar, telefonlar ve gömülü kartlarda video işlemek için yeterince hızlıdır.
- Tıbbi görüntü analizi: U-Net tarzı CNN'ler, her pikselin etiketinin önemli olduğu CT ve MRI taramalarında organları, tümörleri ve lezyonları bölütler.
- Poz tahmini: CNN'ler spor analizi, ergonomi ve fitness uygulamaları için vücut anahtar noktalarını tahmin eder.
- Görüntüler dışındaki sinyaller: Tek boyutlu evrişimler ses dalga biçimlerini ve sensör zaman serilerini işler; iki boyutlu CNN'ler ise konuşma tanımada spektrogramları sınıflandırır.
CNN'ler ve Görüntü Transformer'ları#
Bir görüntü Transformer'ı (ViT), görüntüyü parçalara böler ve öz dikkat kullanarak her parçayı diğer tüm parçalarla ilişkilendirir; böylece ilk katmandan itibaren küresel bağlamı görür. Daha zayıf tümevarımsal önyargının bir bedeli vardır: özgün ViT, yalnızca ImageNet üzerinde eğitildiğinde benzer boyuttaki ResNet'lerin gerisinde kalmış; ancak 14 milyondan 300 milyona kadar görüntü üzerinde ön eğitimden sonra onlara yetişmiş veya onları geçmiştir. Dikkat hesaplama maliyeti parça sayısının karesiyle artar; bu da yüksek çözünürlüklü girdileri pahalı hâle getirirken evrişimin maliyeti piksel sayısıyla doğrusal artar. Bu nedenle birçok güncel model iki yaklaşımı birleştirerek yüksek çözünürlükte evrişim aşamalarını korur ve özellik haritası küçük olduğunda dikkat ekler. YOLO26 bu yaklaşımı izler: Conv blokları (evrişim, yığın normalleştirme ve SiLU) ile C3k2 blokları işin çoğunu yapar; çok başlı öz dikkat ise yalnızca 640×640 görüntü için 20×20 ızgaradan oluşan 32 adımlı özellik haritasında çalışır.










