Apakah ada alasan matematis untuk konvolusi dalam jaringan saraf di luar kemanfaatan?

14

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 Wij , di mana kita membalikkan baris dan kolom.

masukkan deskripsi gambar di sini

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:

  1. Fakta bahwa konvolusi bersifat asosiatif sedangkan korelasi (lintas) tidak.
  2. 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:

FI(x,y)=j=NNi=NNF(i,j)I(x+i,y+j)

yang pada dasarnya adalah jumlah dari semua sel dalam produk Hadamard:

FI(x,y)=[F[N,N]I[xN,yN]F[N,0]I[xN,yN]F[N,N]I[xN,y+N]F[0,N]I[x,yN]F[0,0]I[x,y]F[0,N]I[x,y+N]F[N,N]I[x+N,yN]F[N,0]I[x+N,y]F[N,N]I[x+N,y+N]]

di mana adalah fungsi filter (dinyatakan sebagai matriks), dan I ( x , y ) adalah nilai piksel dari suatu gambar di lokasi ( x , y ) :F(i,j)I(x,y)(x,y)

masukkan deskripsi gambar di sini

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:

FI(x,y)=j=NNi=NNF(i,j)I(xi,yj)

yang selama filter simetris, itu sama dengan operasi korelasi dengan baris dan kolom filter terbalik:

FI(x,y)=[F[N,N]I[xN,yN]F[N,0]I[xN,yN]F[N,N]I[xN,y+N]F[0,N]I[x,yN]F[0,0]I[x,y]F[0,N]I[x,y+N]F[N,N]I[x+N,yN]F[N,0]I[x+N,y]F[N,N]I[x+N,y+N]]

masukkan deskripsi gambar di sini


[1474141626164726412674162616414741]

masukkan deskripsi gambar di sini


Secara komputasional, kedua operasi adalah produk dalam Frobenius, yang berarti menghitung jejak perkalian matriks .


Pertanyaan (menyusun kembali setelah komentar dan jawaban pertama):

  1. 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.

  1. Apakah konvolusi dan korelasi silang dalam CNN setara?

Ya, mereka setara.

  1. 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) (?).

Antoni Parellada
sumber
Antoni dapatkah Anda menunjuk ke sumber mana pun di mana mereka membalik bobot? Seperti @hossein tunjukkan, Anda dapat melakukan apa saja dengan korelasi silang yang dapat Anda lakukan dengan convolutions, hanya dengan membalik urutannya. Jadi semua hal domain frekuensi ini tidak relevan.
seanv507
@ seanv507 Saya mengedit OP saya untuk memasukkan sumber untuk apa yang saya yakin Anda tanyakan kepada saya. Saya mendapatkan konvolusi adalah operasi yang sama dengan korelasi silang dengan matriks filter terbalik, tetapi saya tidak mengerti mengapa kita membahas "rasa sakit" dari konvolusi diskrit jika tidak ada sesuatu yang tidak mungkin terjadi. dicapai dengan korelasi. Jawaban yang diberikan jelas berpengetahuan luas, tetapi bisa dimasukkan ke dalam komentar, dan tidak menjelaskan alasan di balik dua operasi yang berbeda (apakah ini merupakan "tradisi" dari DSP yang dibawa ke ML?), Implikasinya terhadap proses pembelajaran, dan hubungannya dengan FT.
Antoni Parellada
1
Antoni, tidak perlu membalik. Ini lebih dari sebuah konvensi; dalam dsp orang berbicara tentang konvolusi daripada korelasi silang, dan jaringan saraf lintas korelasional tidak menggelinding. Tetapi operasi yang lebih alami (untuk manusia untuk menafsirkan) adalah korelasi silang (Anda cocok dengan templat) untuk CNN (pertimbangkan misalnya filter tepi vertikal daripada simetris rotasi). Jadi saya pikir Hugo larochelle mungkin berbicara tentang perpustakaan numerik di mana konvolusi daripada korelasi silang adalah fungsi standar (dia secara efektif mengatakan korelasi silang dapat dilakukan oleh konvolusi.)
seanv507
1
Antoni, menyetujui 2 pertanyaan / jawaban pertama, dan komentar saya menjawab pertanyaan ke-3.
seanv507
1
Meskipun tidak selalu ada tautan langsung antara CNN dan FFT, ada bukti yang menunjukkan bahwa Anda dapat memperoleh percepatan CNN dengan menggunakan FFT ketika Anda mempertahankan jumlah konvolusi biasa. Lihat di sini misalnya: arxiv.org/pdf/1312.5851.pdf
Alex R.

Jawaban:

8

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.

Hossein
sumber
Terima kasih. Saya membaca dengan seksama blog yang Anda tautkan, dan sepertinya penggunaan konvolusi tidak hanya setara dengan korelasi, dan tidak menanggapi pemilihan fitur frekuensi-domain. Saya mencari jawaban yang menjelaskan hal ini.
Antoni Parellada
Seperti yang saya tahu, mereka setara dalam apa yang dapat mereka lakukan , karena keduanya melakukan produk titik dari dua matriks, tetapi konvolusi membalik matriks filter sebelum produk titik, dan karena CNN mempelajari filter, mereka dapat mempelajari filter membalik.
Hossein
+1 untuk penjelasan Hosseins, tetapi -1 untuk tautan blog. Blog ini terutama berfokus pada perangkat keras, dan dia adalah seorang pria CS tanpa latar belakang konvolusi dan konsep pemrosesan sinyal lainnya.
seanv507
Saya ingin tetap bersikeras memiliki beberapa paragraf tambahan tentang hubungan (atau ketiadaan) antara konvolusi dalam CNN dan transformasi Fourier.
Antoni Parellada
2

Ada alasan praktis untuk hubungan antara FFT dan konvolusi.

Konvolusi lambat dalam domain waktu / gambar. Menerapkan suatun×n filter ke satu pixel membutuhkan HAI(n2)perkalian dan penambahan. Menerapkannya ke setiap piksel dalamN×N gambar dengan demikian membutuhkan n2N2operasi. 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 baikHAI(N2catatanN2)dan implementasi aktual seringkali sangat dioptimalkan. Beralih ke domain Fourier dengan demikian memungkinkan Anda melakukan konvolusiHAI(N2) waktu (yang didominasi oleh perkalian poinwise), bukan HAI(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

Matt Krause
sumber