Bilgisayar görmedeki uygulamaları nedeniyle evrişimli sinir ağları (CNN) üzerinde çalışıyorum. Standart feed-foward sinir ağlarına zaten aşinayım, bu yüzden burada bazı insanların CNN'leri anlama konusunda ekstra adım atmama yardımcı olabileceğini umuyorum. CNN'ler hakkında şöyle düşünüyorum:
- Geleneksel ileri beslemeli NN'lerde, her bir öğenin "giriş katmanı" ndaki NN'ye girdiğimiz bir özellik vektöründen oluştuğu eğitim verilerine sahibiz, bu nedenle görüntü tanıma ile her pikselin tek bir giriş olmasını sağlayabiliriz. Bunlar bizim özellik vektörlerimiz. Alternatif olarak, diğer olasılıkla daha küçük özellikli vektörleri manuel olarak oluşturabiliriz.
- CNN'nin avantajı, görüntü bozulması ve konumu için daha değişmez olan daha güçlü özellik vektörleri üretebilmesidir. Aşağıdaki görüntüde gösterildiği gibi ( bu öğreticiden ), CNN'ler daha sonra standart bir sinir ağına beslenen özellik haritaları oluşturur (bu yüzden gerçekten dev bir ön işleme adımıdır).
- Bu "daha iyi" özellikleri elde etme şeklimiz dönüşümlü dönüşüm ve alt örneklemedir. Alt örneklemenin nasıl çalıştığını anlıyorum. Her özellik haritası için yalnızca piksellerin bir alt kümesini alın, yoksa piksel değerlerini ortalayabiliriz.
Ama esas olarak kafam karıştı, evrişim adımının nasıl işlediğidir. Olasılık teorisinden (iki rastgele değişkenin toplamı için yoğunluk) kıvrımlara aşinayım, ancak CNN'lerde nasıl çalışırlar ve neden etkilidirler?
Sorum buna benziyor , ancak özellikle, ilk evrişim adımının neden işe yaradığından emin değilim .