Kenapa Harus Konvolusi?

Alif Kurniawan
3 min readSep 7, 2019

--

Ada 3 alasan konvolusi mampu meningkatkan kinerja machine learning: sparse interaction, parameter sharing, dan equivariant. Selain itu konvolusi mampu bekerja dengan ukuran data yang bervariasi.

Sparae Ineraction

Spareness dalam machine learning mampu bertindak sebagai regularizer pada proses pembelajaran. Di tradisional neural network, setiap layer parameter saling berinteraksi menggunakan perkalian matrik sehingga seluruh neuron akan saling terhubung. Berbeda dengan tradisional neural network, konvolusi neural network hanya mengubungkan sebuah neuron dengan beberapa neuron. Hal ini akibat ukuran kernel lebih kecil dibandingkan dengan ukuran input.

Misalkan kita memiliki sebuah citra yang berukuran ribuan atau jutaan pixel. Kita dapat mendeteksi sebuah fitur edge dengan membuat kernel edge yang ukurannya kecil dibandingkan input. Output yang diberikan akan menghasilkan fitur yang berukuran puluhan atau ratusan pixel sehingga nilai parameter yang tersimpan menjadi lebih sedikit namun hasil yang diberikan menjadi lebih efektif dan efesien. Jika kita memiliki input berukuran m dan output n, di dalam tradisional machine learning akan dilakukan perkalian matriks sebesar m х n sehingga kompleksitas menjadi O(m х n). Jika kita tambahkan sebuah constraint k dimana k < m, maka kompleksitas akan menjadi O(k х n). Berikut adalah ilustrasi sparse interaction pada proses konvolusi.

Pada gambar di atas, kita dapat lihat bahwa s yang terbentuk dari konvolusi dengan kernel berukuran 3, hanya terdapat 3 node s yang terpengaruh. Beda halnya jika menerapkan perkalian matrik, maka seluruh node s dipengaruhi oleh x sehingga sparse interaction tidak terpenuhi. Oleh karena itu, untuk mendapatkan sparse interaction, kita dapat menggunakan konvolusi.

Parameter Sharing

Parameter sharing memiliki arti penggunaan bobot yang sama pada input yang berbeda. Alih-alih belajar untuk mendapatkan bobot di setiap posisi, dengan konvolusi, parameter dapat dilatih dalam sebuah set yang kemudian bisa digunakan kembali. Meski tidak mengurangi kecepatan pemrosesan, dari kebutuhan akan ruang penyimpanan bobot menjadi jauh berkurang.

Equivariance

Sebuah fungsi dikatan equivariance jika sebuah input berubah, maka outpunya akan berubah dengan cara yang sama. Sebagai contoh, fungsi f(x) dikatakan equivariance dengan fungsi g jika dan hanya jika f(g(x)) = g(f(x)).

Pada gambar di samping, input X ketika diproses oleh fungsi g, maka akan berubah menjadi X. Ketika dilanjutkan dengan fungsi f, maka akan berubah menjadi Y.

Jika kita menggunakan fungsi f terlebih dahulu, kemudian dilanjutkan oleh fungsi g, maka hasilnya akan sama dengan peroses di atas. Jadi, mau fungsi mana yang didahulukan, hasilnya akan sama. Hal ini dikatakan bahwa fungsi f equivariance dengan fungsi g.

Misalkan kita melakukan operasi konvolusi dengan input berpola 1,2,3,4,5 yang memiliki output 1,0,0,1,1. Jika kita memiliki input 3,4,5 maka output yang dihasilkan memiliki pola 0,1,1 dengan konvolusi juga. Dengan kata lain, konvolusi memiliki sifat equivariance. Salah satu manfaat sifat equivariance ialah jika kita memiliki parameter edge untuk suatu input, maka dapat kita gunakan ulang (parameter sharing) terhadap input di posisi lainnya.

--

--

Alif Kurniawan
Alif Kurniawan

No responses yet