cnn-pooling-mekanizmalari
CNN Pooling, Convolution ve Attention mekanizmalarının interaktif Jupyter notebook demonstrasyonu
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:
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}$

Average Pooling
- Pencere içindeki ortalaması hesaplar
- Detaylı açıklamalar ve karşılaştırmalar

Mix Pooling
- Max ve Average pooling'in kombinasyonu

- Max ve Average pooling'in kombinasyonu
Stochastic Pooling
- Rastgele ağırlıklandırılmış pooling yöntemi
Detection Pooling
- Özellikleri tespit etmeye yönelik pooling
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ı:
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$
Dilated Convolution
- Receptive field'i genişletmek için kullanılan teknik
- Farklı dilation rate'leri gösterir

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

🛠️ 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.jpggibi ö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
- CNN Architecture - Stanford CS231n
- Convolution Arithmetic Tutorial
- Attention is All You Need
- U-Net: Convolutional Networks for Biomedical Image Segmentation
👨💻 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
elifsudeates