Dalam convolutional neural networks (CNN), matriks bobot pada setiap langkah mendapatkan baris dan kolom terbalik untuk mendapatkan matriks kernel, sebelum melanjutkan dengan konvolusi. Ini dijelaskan pada serangkaian video oleh Hugo Larochelle di sini :
Menghitung peta yang tersembunyi akan sesuai dengan melakukan konvolusi diskrit dengan saluran dari lapisan sebelumnya, menggunakan matriks kernel [...], dan kernel tersebut dihitung dari matriks bobot tersembunyi , di mana kita membalikkan baris dan kolom.
Jika kita membandingkan langkah-langkah tereduksi dari konvolusi ke perkalian matriks reguler seperti pada tipe NN lainnya, kemanfaatan akan menjadi penjelasan yang jelas . Namun, ini mungkin bukan perbandingan yang paling relevan ...
Dalam pemrosesan pencitraan digital, penerapan konvolusi filter ke suatu gambar ( ini adalah video youtube yang bagus untuk intuisi praktis ) tampaknya terkait dengan:
- Fakta bahwa konvolusi bersifat asosiatif sedangkan korelasi (lintas) tidak.
- Kemungkinan untuk menerapkan filter dalam domain frekuensi gambar sebagai perkalian, karena konvolusi dalam domain waktu sama dengan perkalian dalam domain frekuensi ( teorema konvolusi ).
Dalam lingkungan teknis khusus korelasi DSP ini didefinisikan sebagai:
yang pada dasarnya adalah jumlah dari semua sel dalam produk Hadamard:
di mana adalah fungsi filter (dinyatakan sebagai matriks), dan I ( x , y ) adalah nilai piksel dari suatu gambar di lokasi ( x , y ) :
The Tujuan dari korelasi silang adalah untuk menilai seberapa mirip adalah gambar probe untuk gambar tes. Perhitungan peta korelasi silang bergantung pada teorema konvolusi.
Di sisi lain, konvolusi didefinisikan sebagai:
yang selama filter simetris, itu sama dengan operasi korelasi dengan baris dan kolom filter terbalik:
Secara komputasional, kedua operasi adalah produk dalam Frobenius, yang berarti menghitung jejak perkalian matriks .
Pertanyaan (menyusun kembali setelah komentar dan jawaban pertama):
- Apakah penggunaan konvolusi di CNN terkait dengan FFT?
Dari apa yang saya kumpulkan sejauh ini jawabannya adalah tidak. FFT telah digunakan untuk mempercepat implementasi konvolusi GPU . Namun, FFT biasanya tidak menjadi bagian dari struktur atau fungsi aktivasi di CNN, meskipun menggunakan konvolusi dalam langkah-langkah pra-aktivasi.
- Apakah konvolusi dan korelasi silang dalam CNN setara?
Ya, mereka setara.
- Jika sesederhana "tidak ada perbedaan", apa gunanya membalik bobot ke dalam matriks kernel?
Baik asosiatif konvolusi (berguna dalam pembuktian matematika), maupun pertimbangan mengenai FT dan teorema konvolusi tidak berlaku. Bahkan, tampaknya seolah-olah membalik bahkan tidak terjadi (korelasi silang yang hanya salah label sebagai konvolusi) (?).
sumber
Jawaban:
Tidak ada perbedaan dalam apa yang dapat dilakukan jaringan saraf ketika mereka menggunakan konvolusi atau korelasi. Ini karena filternya dipelajari dan jika CNN dapat belajar untuk melakukan tugas tertentu menggunakan operasi konvolusi, itu juga dapat belajar untuk melakukan tugas yang sama menggunakan operasi korelasi (Ini akan mempelajari versi rotasi dari setiap filter).
Untuk menemukan lebih banyak detail tentang alasan yang terkadang orang temukan lebih intuitif untuk berpikir tentang konvolusi daripada korelasi, posting ini mungkin berguna.
Masih ada pertanyaan ini bahwa jika tidak ada perbedaan antara konvolusi dan korelasi silang, apa gunanya memasukkan bobot ke dalam matriks kernel? Saya ingin memasukkan beberapa kalimat dari buku pembelajaran Deep oleh Ian Goodfellow et al.untuk menjawab pertanyaan ini:
"Satu-satunya alasan untuk membalik kernel adalah untuk mendapatkan properti komutatif. Sementara properti komutatif berguna untuk menulis bukti, itu biasanya bukan properti penting dari implementasi jaringan saraf ... Banyak perpustakaan pembelajaran mesin menerapkan korelasi silang tetapi memanggil itu berbelit-belit. "
Kesimpulannya adalah meskipun konvolusi adalah operasi favorit dalam aplikasi visi mesin klasik, konvolusi digantikan oleh korelasi dalam banyak implementasi jaringan saraf convolutional.
sumber
Ada alasan praktis untuk hubungan antara FFT dan konvolusi.
Konvolusi lambat dalam domain waktu / gambar. Menerapkan suatun × n filter ke satu pixel membutuhkan O ( n2) perkalian dan penambahan. Menerapkannya ke setiap piksel dalamN× N gambar dengan demikian membutuhkan n2N2 operasi. Ini tumbuh dengan cepat, dan sejumlah besar operasi tidak hanya membutuhkan waktu ekstra, tetapi juga memperkenalkan lebih banyak kesalahan numerik.
Teorema Konvolusi mengatakan bahwa konvolusi dalam domain waktu sama dengan multiplikasi pointwise dalam domain frekuensi. FFT cepat: mereka memiliki kinerja asimptotik yang baikO ( N2catatanN2) dan implementasi aktual seringkali sangat dioptimalkan. Beralih ke domain Fourier dengan demikian memungkinkan Anda melakukan konvolusiO ( N2) waktu (yang didominasi oleh perkalian poinwise), bukan O ( n2N2) . Ini dapat memberikan peningkatan kecepatan yang cukup besar, meskipun tampaknya jauh lebih rumit untuk menuruni FFT -> multiplication -> inverse FFT route. Lebih lanjut di sini
sumber