Operasi konvolusi, sederhananya, adalah kombinasi produk elemen-bijaksana dari dua matriks. Selama kedua matriks ini sepakat dalam dimensi, seharusnya tidak ada masalah, dan saya dapat memahami motivasi di balik pertanyaan Anda.
A.1. Namun, tujuan konvolusi adalah untuk menyandikan matriks data sumber (seluruh gambar) dalam hal filter atau kernel. Lebih khusus, kami mencoba untuk menyandikan piksel di lingkungan piksel jangkar / sumber. Lihat gambar di bawah ini:
Biasanya, kami menganggap setiap piksel dari gambar sumber sebagai piksel jangkar / sumber, tetapi kami tidak dibatasi untuk melakukan ini. Bahkan, tidak jarang untuk memasukkan langkah, di mana kita jangkar / sumber piksel dipisahkan oleh jumlah piksel tertentu.
Oke, jadi apa pixel sumbernya? Ini adalah titik jangkar di mana kernel dipusatkan dan kami menyandikan semua piksel tetangga, termasuk piksel jangkar / sumber. Karena, kernel berbentuk simetris (tidak simetris dalam nilai-nilai kernel), ada jumlah yang sama (n) piksel di semua sisi (4- konektivitas) dari piksel jangkar. Oleh karena itu, berapapun jumlah piksel ini, panjang setiap sisi kernel berbentuk simetris kami adalah 2 * n + 1 (setiap sisi jangkar + piksel jangkar), dan karenanya filter / kernel selalu berukuran aneh.
Bagaimana jika kita memutuskan untuk putus dengan 'tradisi' dan menggunakan kernel asimetris? Anda menderita kesalahan alias, jadi kami tidak melakukannya. Kami menganggap piksel sebagai entitas terkecil, yaitu tidak ada konsep sub-piksel di sini.
A.2 Masalah batas ditangani dengan menggunakan pendekatan yang berbeda: beberapa mengabaikannya, beberapa nol padanya, beberapa cermin memantulkannya. Jika Anda tidak akan menghitung operasi terbalik, yaitu dekonvolusi, dan tidak tertarik dengan rekonstruksi sempurna gambar asli, maka Anda tidak peduli kehilangan informasi atau injeksi suara karena masalah batas. Biasanya, operasi pooling (pooling rata-rata atau max pooling) akan menghilangkan artefak batas Anda. Jadi, silakan abaikan bagian dari 'bidang masukan' Anda, operasi pengumpulan Anda akan melakukannya untuk Anda.
-
Zen konvolusi:
Dalam domain pemrosesan sinyal old-school, ketika sinyal input berbelit-belit atau melewati filter, tidak ada cara menilai a-sebelum komponen respons yang berbelit-belit / disaring yang relevan / informatif dan yang tidak. Akibatnya, tujuannya adalah untuk mempertahankan komponen sinyal (semuanya) dalam transformasi ini.
Komponen sinyal ini adalah informasi. Beberapa komponen lebih informatif daripada yang lain. Satu-satunya alasan untuk ini adalah bahwa kami tertarik untuk mengekstraksi informasi tingkat yang lebih tinggi; Informasi berkaitan dengan beberapa kelas semantik. Karenanya, komponen sinyal yang tidak memberikan informasi yang secara khusus kami minati dapat dipangkas. Oleh karena itu, tidak seperti dogma-dogma lama tentang konvolusi / penyaringan, kita bebas untuk mengumpulkan / memangkas respons konvolusi seperti yang kita inginkan. Cara yang kami rasa ingin lakukan adalah menghapus semua komponen data yang tidak berkontribusi terhadap peningkatan model statistik kami.
1) Misalkan
input_field
semuanya nol kecuali untuk satu entri pada indeksidx
. Ukuran filter ganjil akan mengembalikan data dengan puncak terpusat di sekitaridx
, ukuran filter genap tidak akan - pertimbangkan kasus filter seragam dengan ukuran 2. Sebagian besar orang ingin mempertahankan lokasi puncak ketika mereka menyaring.2) Semua
input_field
relevan untuk konvolusi, tetapi ujung-ujungnyaoutput_field
tidak dapat dihitung secara akurat karena data yang diperlukan tidak terkandung di dalamnyainput_field
. Jika saya ingin menghitung jawaban untuk elemen pertamaoutput_field
, filter harus dipusatkan pada elemen pertamainput_field
. Tetapi kemudian ada elemen filter yang tidak sesuai dengan elemen yang tersediainput_field
. Ada berbagai trik untuk mendapatkan tebakan untuk tepioutput_field
.sumber
Untuk filter berukuran ganjil, semua piksel lapisan sebelumnya akan simetris di sekitar piksel keluaran. Tanpa simetri ini, kita harus memperhitungkan distorsi di seluruh lapisan yang terjadi ketika menggunakan kernel berukuran rata. Oleh karena itu, filter kernel berukuran rata-rata sebagian besar dilewati untuk meningkatkan kesederhanaan implementasi. Jika Anda menganggap konvolusi sebagai interpolasi dari piksel yang diberikan ke piksel tengah, kami tidak dapat melakukan interpolasi ke piksel tengah menggunakan filter berukuran rata.
sumber: https://towardsdatascience.com/deciding-optimal-filter-size-for-cnns-d6f7b56f9363
sumber