← All projects

cnn-pooling-mekanizmalari

CNN Pooling, Convolution ve Attention mekanizmalarının interaktif Jupyter notebook demonstrasyonu

● Jupyter Notebook ★ 2 ⑂ 0 Last updated: December 17, 2025

CNN Pooling, Convolution & Attention - Demo Projesi

Bu proje, Convolutional Neural Networks (CNN) mimarisinde temel işlemleri detaylı olarak gösterir. İki Jupyter notebook halinde pooling, convolution ve attention mekanizmalarının görsel demonstrasyonlarını içerir.


📋 Proje İçeriği

Bölüm 1: CNN Pooling İşlemleri (pooling-demo.ipynb)

CNN'lerde feature map boyutlarını azaltmak ve temel özellikleri korumak için kullanılan pooling işlemleri:

  1. Max Pooling

    • Pencere içindeki maksimum değeri seçer
    • Formül: $y_{i,j} = \max_{(m,n) \in \text{window}} x_{i+m, j+n}$

    Max Pooling Örneği

  2. Average Pooling

    • Pencere içindeki ortalaması hesaplar
    • Detaylı açıklamalar ve karşılaştırmalar Average Pooling Örneği
  3. Mix Pooling

    • Max ve Average pooling'in kombinasyonu Mix Pooling Örneği
  4. Stochastic Pooling

    • Rastgele ağırlıklandırılmış pooling yöntemi
  5. Detection Pooling

    • Özellikleri tespit etmeye yönelik pooling
  6. U-Net Pooling

    • Segmentation mimarisinde kullanılan pooling

Bölüm 2: CNN Convolution & Attention (pooling-demo-2.ipynb)

CNN'lerde feature extraction ve dikkat mekanizmaları:

  1. Strided Convolution

    • Stride parametresiyle farklı adımlı konvülüsyon işlemleri
    • Formül: $\text{output_size} = \lfloor \frac{\text{input} - \text{kernel}}{\text{stride}} \rfloor + 1$
  2. Dilated Convolution

    • Receptive field'i genişletmek için kullanılan teknik
    • Farklı dilation rate'leri gösterir

    Dilated Convolution

  3. Attention Mechanism

    • Self-attention ve channel attention mekanizmaları
    • Model performansını artıran teknikler

    Attention Mechanism


🛠️ Gereksinimler

numpy
matplotlib
pillow (PIL)

Kurulum:

pip install numpy matplotlib pillow

🚀 Kullanım

Jupyter Notebook Açmak:

jupyter notebook pooling-demo.ipynb

veya

jupyter notebook pooling-demo-2.ipynb

Not:

  • Projede kullanılacak görsel dosyaları (.jpg, .jpeg, .png) aynı dizine yerleştirilmelidir
  • Demoları çalıştırmak için apple.jpg gibi örnek bir görsel bulunmalıdır

📊 Notebook Yapısı

pooling-demo.ipynb

  • 12 hücre (cell) içerir
  • Markdown açıklamaları ve matematiksel formüller
  • Görsel örnekler ve karşılaştırmalı analizler

pooling-demo-2.ipynb

  • 8 hücre (cell) içerir
  • Convolution ve attention tekniklerini adım adım gösterir
  • İnterkaif görselleştirmeler

🎯 Temel Kavramlar

Max Pooling

Belirtilen pencere boyutundaki maksimum değeri seçerek feature map'i daraltır.

def max_pooling(mat, size=2):
    if len(mat.shape) == 3:
        return np.stack([max_pooling(mat[:,:,i], size) for i in range(3)], axis=2)
    h, w = mat.shape[0] // size, mat.shape[1] // size
    return mat.reshape(h, size, w, size).max(axis=(1, 3))

Strided Convolution

Stride parametresi ile sıçrama mesafesini kontrol ederek konvülüsyon işlemi gerçekleştirir.


📁 Dosya Yapısı

pooling-demo-2/
├── README.md                    # Bu dosya
├── pooling-demo.ipynb           # Bölüm 1: Pooling İşlemleri
├── pooling-demo-2.ipynb         # Bölüm 2: Convolution & Attention
├── images/                      # Görseller (opsiyonel)
│   ├── max_pooling.png
│   ├── pooling_comparison.png
│   ├── strided_convolution.png
│   ├── dilated_convolution.png
│   └── attention_mechanism.png
└── apple.jpg                    # Demo için örnek görsel

💡 Öğrenme Çıktıları

Bu proje tamamlandıktan sonra şunları öğreneceksiniz:

✅ CNN'deki pooling işlemlerinin matematiksel temeli
✅ Farklı pooling türlerinin kullanım alanları ve farkları
✅ Strided ve dilated convolution konseptleri
✅ Attention mekanizmalarının nasıl çalıştığı
✅ Feature extraction ve dimensionality reduction
✅ PyTorch/TensorFlow'da bu teknikler nasıl uygulanır


🔗 Kaynaklar


👨‍💻 Yazar

Pooling ve Convolution Demo Projesi


📝 Notlar

  • Tüm görseller notebook içinde otomatik olarak oluşturulur
  • Matematiksel formüller LaTeX formatında yazılmıştır
  • Kod açıklamalı ve anlaşılır şekilde yazılmıştır
  • Proje eğitim amaçlı hazırlanmıştır

📧 İletişim & Geri Bildirim

Sorularınız ve önerileriniz için lütfen iletişime geçiniz.


Son Güncelleme: Aralık 2025