Evrişimli Sinir Ağlarında (CNN) Shifted Problem (Kayma Problemi)

Ramazan Güven
3 min readAug 19, 2019

--

Çalışmanın ilk versiyonu 25 Nisan 2019 tarihinde yayımlandıktan sonra ikinci versiyonu 09 Haziran 2019 tarihinde yayımlanmıştır.

Evrişimli sinir ağınızı (CNN) eğittikten sonra test ederken herhangi bir resminizin sadece bir piksel bile ötelenmiş olması veya ağınızı oluşturduktan sonra ağınızı test ederken doğruluk oranını düşürdüğü aşikardır.

Buna çözüm olarak araştırmacılardan Richard Zhang tarafından yapılan çalışma ile state-of-the-art olarak bilinen Alexnet,VggNet,Resnet50,Resnet101 gibi ağ mimarilerinde CIFAR10 veri setiyle yapılan çalışmalar sonucunda doğruluk oranının arttığı ve variance(değişim,uyuşmazlık) problemi olarak bilinen bu problemi bir miktar azalttığı gözlemlenmiştir.

Araştırma sinyal işlemede uzun süre kullanılan ve halen de kullanılmakta olan Nyquist-Shannon Örnekleme Teoremi’nden ( teoreme buradan bakabilirsiniz)esinlenerek tasarlanmış olup pooling katmanlarındaki max pooling-average pooling katmanlarına odaklanılmıştır.

Max Pooling ve Average Pooling Neydi?

— — — — — — — — — — -Metodun Genel Yapısı — — — — — — — — — —

Max pooling,average pooling ve stride işlemlerinin arkasından MaxBlurPool, BlurPool, ve ConvBlurPool gibi işlemler yapılarak tasarlanan bu mimarinin blurlanmış katmanlarda daha az hassas davranacağı sezgisel olarak anlaşılmaktadır.

Peki Model Nasıl Çalıyor?

1-) Modelden de anlaşılacağı gibi max pooling işleminden sonra oluşan pencerelere uygulanan MaxBlurpool işlemi ile oluşan maksimum değerler blurlanarak baskı altına alınmıştır.

2-)Strided Convolution aşamasında ise pikselleri kaydırarak aynı boyutta yeni veriler üretilir.Daha sonra bu oluşturulan veriler blurlandıktan sonra stride (adım) uygulanmadan aynı şekilde yeni bir filtre gibi tekrar ağa uygulanır.

3-)Average Pooling aşaması olarak adlandırılan son aşamada ise average pooling uygulandıktan sonra oluşan değerler blurlanıp yeni değerler ağa tekrar uygulanır.

Sonuç olarak bu çalışma ResNet, VGG, and DenseNet gibi mimarilerin doğruluk oranlarını yaklaşık %2 oranında arttırmıştır. Max pooling ve average pooling işlemleri evrişimli sinir ağlarında çok iyi bir performans gösterdikleri için araştırmacılar tarafından kayma problemi göz ardı edilebiliyordu.Bu araştırmayla aynı performans ile kayma problemi bir miktar daha çözülerek daha iyi bir sonuç elde etmenizi sağlayacaktır.

Bu araştırma ve bu araştırmaya benzer çalışmalar küçük yüzdelerde etkiler yaparken bazen oluşturduğunuz ağlara büyük fayda sağlayabileceği göz ardı edilmemelidir.

Kodlamasını yaptıktan sonra github adresimden ağın kodlanmış halini inceleyebilirsiniz.[GİTHUB]

Richard Zhang ~2019 International Conference on Machine Learning ‘de Yapmış Olduğu Konuşma :

Faydalı Bağlantılar ve Çalışmanın Örnek Kodlaması:

1-)Çalışma ve Ek Metaryeller => https://arxiv.org/abs/1904.11486

2-)Github => https://github.com/adobe/antialiased-cnns

3-) https://www.deeplearning.ai/

--

--

Ramazan Güven

Electrical and Electronic Engineering ~~~Deep Learning Researcher Linkedin:rguven20