CNN'in temel yapı taşları nelerdir? Convolution katmanının çıktı boyutunu nasıl hesaplarsınız?

Cevap

Convolutional Neural Network, görüntü gibi ızgara yapılı verilerde yerel örüntüleri öğrenen bir ağdır. Temel fikir: küçük bir filtre (kernel) görüntü üzerinde kaydırılır ve her konumda aynı ağırlıklar kullanılır.

Yapı taşları

  • Convolution katmanı: Kenar, doku gibi yerel özellikleri çıkarır.
  • Aktivasyon (genelde ReLU).
  • Pooling (max/average): Uzamsal boyutu küçültür, küçük kaymalara karşı dayanıklılık sağlar.
  • Normalization (BatchNorm) ve residual connection (ResNet).
  • Sonda global average pooling ve fully connected sınıflandırıcı.

Neden fully connected yerine CNN?

  1. Parametre paylaşımı: 3x3'lük bir filtre tüm görüntüde aynıdır. 224x224x3 bir görüntüye FC katman milyonlarca parametre gerektirirdi.
  2. Yerel bağlantı: Her nöron sadece küçük bir bölgeye bakar.
  3. Translation equivariance: Nesne kaysa özellik haritası da kayar.
  4. Katmanlar derinleştikçe receptive field büyür: kenar, sonra şekil, sonra nesne parçaları.

Çıktı boyutu formülü

çıktı = floor((girdi - kernel + 2·padding) / stride) + 1

Örnek: 32x32 girdi, kernel 3, padding 1, stride 1 olursa çıktı 32x32 olur ("same" padding). Stride 2 olursa 16x16.

Parametre sayısı: (kernel_h · kernel_w · in_channels + 1) · out_channels. 3x3, 64 kanaldan 128 kanala giden bir katman için (3·3·64 + 1)·128 = 73.856.

import torch.nn as nn
conv = nn.Conv2d(in_channels=64, out_channels=128, kernel_size=3, stride=1, padding=1)

Not: 2025 itibarıyla görüntüde Vision Transformer (ViT) ve ConvNeXt gibi modeller yaygın olsa da CNN'ler edge cihazlarda ve küçük veri setlerinde hâlâ çok kullanılır.

  1. NumPy ile sayısal olarak kararlı (numerically stable) softmax ve cross-entropy loss yazın. Logit'lere göre gradyanı nedir?ZorDerin ÖğrenmeYapay Zeka
  2. PyTorch ile bir sınıflandırma modeli için eksiksiz bir training loop yazın. Hangi adımlar sık unutulur?OrtaDerin ÖğrenmeYapay Zeka
  3. Transfer learning nedir? Önceden eğitilmiş bir modeli küçük bir veri setine nasıl fine-tune edersiniz?OrtaDerin ÖğrenmeYapay Zeka
  4. Embedding nedir? One-hot encoding'e göre avantajı nedir ve nerelerde kullanılır?KolayDerin ÖğrenmeYapay Zeka
  5. Transformer mimarisini anlatın. Encoder-only, decoder-only ve encoder-decoder modeller arasındaki fark nedir?ZorDerin ÖğrenmeYapay Zeka
  6. Self-attention nasıl çalışır? Scaled dot-product attention'ı NumPy ile yazın ve neden sqrt(d_k) ile bölündüğünü açıklayın.ZorDerin ÖğrenmeYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle