Saya mempelajari jaringan saraf convolutional (CNNs) karena aplikasi mereka dalam visi komputer. Saya sudah terbiasa dengan jaringan saraf feed-foward standar, jadi saya berharap beberapa orang di sini dapat membantu saya mengambil langkah ekstra dalam memahami CNN. Inilah yang saya pikirkan tentang CNN:
- Dalam NN feed-foward tradisional, kami memiliki data pelatihan di mana setiap elemen terdiri dari vektor fitur yang kami input ke NN di "lapisan input," sehingga dengan pengenalan gambar, kami dapat membuat setiap piksel menjadi satu input. Itu adalah vektor fitur kami. Sebagai alternatif, kita dapat secara manual membuat vektor fitur lain yang kemungkinan lebih kecil.
- Keuntungan dari CNN Is adalah ia dapat menghasilkan vektor fitur yang lebih kuat yang lebih tidak berubah-ubah terhadap distorsi dan posisi gambar. Seperti ditunjukkan gambar berikut (dari tutorial ini ), CNN menghasilkan peta fitur yang kemudian diumpankan ke jaringan saraf standar (jadi benar-benar ini merupakan langkah pra-pemrosesan raksasa).
- Cara kita mendapatkan fitur "yang lebih baik" itu adalah dengan mengubah konvolusi dan sub-sampling. Saya mengerti cara kerja sub-sampling. Untuk setiap peta fitur, ambil saja subset pikselnya, atau kami dapat meratakan nilai pikselnya.
Tapi yang paling membingungkan saya adalah bagaimana langkah konvolusi bekerja. Saya akrab dengan konvolusi dari teori probabilitas (kepadatan untuk jumlah dua variabel acak), tetapi bagaimana mereka bekerja di CNN, dan mengapa mereka efektif?
Pertanyaan saya mirip dengan yang satu ini tetapi khususnya, saya tidak yakin mengapa langkah konvolusi pertama berhasil.