Jaringan saraf konvolusional (bahasa Inggris: Convolutional neural network atau disingkat CNN) adalah salah satu kelas jaringan saraf umpan-majuteregulasi yang secara mandiri mampu mempelajari rekayasa fitur melalui optimasi filter (atau kernel). Keunggulan CNN dibandingkan jaringan saraf sebelumnya terletak pada kemampuannya untuk mengatasi permasalahan gradien menghilang dan gradien meledak yang kerap muncul saat propagasi balik. Hal ini dimungkinkan karena CNN menggunakan bobot terregularisasi pada koneksi yang lebih sedikit. [1][2] Misalnya, untuk setiap neuron di lapisan yang sepenuhnya terhubung (fully connected layers), diperlukan 10.000 bobot untuk memproses gambar berukuran 100 × 100 piksel. Namun, dengan menerapkan kernel konvolusi berjenjang (atau korelasi silang),[3][4] hanya diperlukan 25 neuron untuk memproses petak berukuran 5x5.[5][6] Arsitektur CNN ini memungkinkan ekstraksi fitur tingkat tinggi dari jendela konteks yang lebih luas pada lapisan yang lebih tinggi dibanding lapisan sebelumnya.
CNN juga dikenal sebagai Shift Invariant atau Space Invariant Artificial Neural Networks (SIANN) atau Jaringan Saraf Tiruan Invarian Penggeseran atau Invarian Ruang. Penamaan ini berdasarkan arsitektur bobot-berbagi yang digunakan kernel atau filter konvolusi. Kernel ini bergerak melintasi fitur masukan (input) dan menghasilkan respons translasi-ekuivarian yang dikenal sebagai peta fitur.[12][13] Respons translasi-equivarian berarti bahwa keluaran jaringan tidak berubah secara signifikan oleh pergeseran spasial kecil pada masukan. Namun, sebagian besar CNN tidak invarian terhadap translasi karena operasi downsampling yang diterapkan pada masukan.[14]
Jaringan saraf umpan-maju yang umum digunakan dalam CNN memiliki karakteristik "konektivitas penuh" (fully connected), yaitu setiap neuron di satu lapisan terhubung dengan semua neuron di lapisan berikutnya. "Konektivitas penuh" dari jaringan ini membuatnya rentan terhadap overfitting data. Untuk mengatasi overfitting pada CNN, berbagai teknik regularisasi telah dikembangkan, seperti memberikan penalti pada parameter selama pelatihan (seperti weight decay) atau memangkas konektivitas (skip connections atau koneksi lompat, dropout, dll.) Selain teknik regularisasi, penggunaan kumpulan data yang besar dan representatif juga sangat penting. Kumpulan data yang memadai memungkinkan CNN untuk mempelajari prinsip-prinsip umum yang mendasari data tersebut, alih-alih hanya menghafal bias yang mungkin ada pada kumpulan data yang terbatas. Dengan demikian, CNN dapat menghasilkan generalisasi yang lebih baik pada data baru yang belum pernah dilihat sebelumnya. [15]
CNN terinspirasi dari proses-proses biologis[16][17][18][19] pada pola konektivitas antar-neuron yang menyerupai organisasi korteks visual pada binatang. Tiap neuron kortikal hanya merespons rangsangan dalam satu area terbatas pada bidang visual atau bidang reseptif. Bidang-bidang reseptif neuron tumpang tindih secara parsial (partial overlap) sedemikian sehingga mencakup seluruh bidang reseptif.
CNN secara relatif menggunakan pra-pemrosesan yang lebih sedikit dibandingkan dengan algoritma klasifikasi citra lainnya. Artinya, jaringan pada CNN mempelajari optimasi filter (atau kernel) melalui pemelajaran otomatis. Berbeda dengan algoritma tradisional yang mengandalkan rekayasa filter inisecara manual. Kemampuan ini menjadikan penggunaan CNN memberikan keuntungan yang besar karena independensinya terhadap pra-pengetahuan manusia dalam tahap ekstraksi fitur.
CNN terdiri dari satu lapisan masukan (input layer), beberapa lapisan tersembunyi (hidden layers), dan satu lapisan keluaran (output layer). Lapisan tersembunyi tersebut terdiri dari minimal satu lapisan yang melakukan operasi konvolusi. Konvolusi ini biasanya melibatkan lapisan yang melakukan perkalian titik (dot product) antara kernel konvolusi dengan matriks masukan lapisan tersebut. Hasil perkalian ini umumnya berupa perkalian dalam Frobenius, dan ReLU sebagai fungsi aktivasinya. Saat kernel konvolusi bergerak di sepanjang matriks masukan lapisan, operasi konvolusi ini menghasilkan peta fitur (feature map), yang selanjutnya menjadi masukan lapisan berikutnya. Lapisan konvolusi ini kemudian dilanjutkan dengan lapisan lain, seperti lapisan penggabungan (pooling), lapisan sepenuhnya terhubung (fully connected), dan lapisan normalisasi. Perlu dicatat di sini terkait kemiripan antara jaringan saraf konvolusi dengan matched filter.
[20]
Lapisan konvolusi melakukan konvolusi pada masukan dan meneruskan hasilnya ke lapisan berikutnya. Operasi ini mirip dengan respon neuron di korteks visual terhadap stimulus tertentu.[21] Setiap neuron konvolusi hanya memproses data untuk bidang reseptif-nya sendiri.
Meskipun jaringan saraf lapisan umpan-balik yang sepenuhnya terhubung dapat digunakan untuk mempelajari fitur dan mengklasifikasikan data, arsitektur ini umumnya tidak praktis untuk masukan yang lebih besar (misalnya, citra beresolusi tinggi), yang membutuhkan neuron dalam jumlah besar karena setiap piksel adalah fitur masukan yang relevan. Lapisan yang sepenuhnya terhubung untuk citra berukuran 100 × 100 memiliki 10.000 bobot untuk setiap neuron di lapisan kedua. Konvolusi mengurangi jumlah parameter bebas, memungkinkan jaringan menjadi lebih dalam.[5] Misalnya, menggunakan area petak 5 x 5, masing-masing dengan bobot yang sama, hanya membutuhkan 25 neuron. Penggunaan bobot teregulasi pada parameter yang lebih sedikit untuk menghindari masalah gradien melenyap dan gradien yang meledak yang terjadi selama propagasi balik pada jaringan saraf sebelumnya.[1][2]
Untuk mempercepat pemrosesan, lapisan konvolusi standar dapat diganti dengan lapisan konvolusi yang dapat dipisahkan kedalaman (depthwise separable convolutional layers),[22], yang didasarkan pada konvolusi kedalaman yang diikuti oleh konvolusi pointwise. Pointwise convolution adalah konvolusi spasial yang diterapkan secara independen pada setiap channel dari tensor input, sedangkan konvolusi pointwise adalah konvolusi standar yang dibatasi untuk menggunakan kernel berukuran .
Lapisan penggabungan
Jaringan konvolusi dapat mencakup lapisan penggabungan lokal dan/atau global bersama dengan lapisan konvolusi tradisional. Lapisan penggabungan (pooling layer) mengurangi dimensi data dengan menggabungkan keluaran dari kelompok neuron pada satu lapisan menjadi satu neuron di lapisan berikutnya. Penggabungan lokal menggabungkan kelompok kecil, ukuran petak seperti 2 × 2 biasanya digunakan. Penggabungan global bekerja pada semua neuron pada peta fitur.[23][24] Ada dua jenis penggabungan yang umum digunakan: maksimum dan rata-rata. Penggabungan maksimum atau max pooling menggunakan nilai maksimum dari setiap kelompok neuron lokal di peta fitur,[25][26] sedangkan penggabungan rata-rata mengambil nilai rata-rata.
Lapisan sepenuhnya terhubung
Lapisan sepenuhnya terhubung (fully connected layer) menghubungkan setiap neuron di satu lapisan ke setiap neuron di lapisan lain. Proses ini sama dengan yang digunakan di jaringan saraf multilapis (MLP). Matriks yang diratakan (flattened) melewati lapisan sepenuhnya terhubung untuk mengklasifikasikan citra.
Bidang reseptif
Dalam jaringan saraf, setiap neuron menerima masukan dari sejumlah lokasi di lapisan sebelumnya. Dalam lapisan konvolusi, setiap neuron hanya menerima masukan dari area terbatas dari lapisan sebelumnya yang disebut bidang reseptif saraf. Biasanya areanya berbentuk persegi (misalnya 5 x 5 neuron). Sedangkan pada lapisan yang terhubung penuh, medan reseptif adalah "seluruh lapisan sebelumnya". Jadi, di setiap lapisan konvolusi, setiap neuron mengambil masukan dari area yang lebih luas pada masukan daripada lapisan sebelumnya. Hal ini disebabkan oleh penerapan konvolusi berulang kali, yang memperhitungkan nilai piksel, serta piksel di sekitarnya. Saat menggunakan lapisan yang melebar, (dilated) jumlah piksel di bidang reseptif tetap konstan, tetapi medan tersebut lebih jarang diisi karena dimensinya bertambah ketika menggabungkan efek dari beberapa lapisan.
Untuk memanipulasi ukuran bidang reseptif sesuai keinginan, ada beberapa alternatif dari lapisan konvolusi standar. Misalnya, konvolusi atrofi (atrous) atau dilatasi[27][28]yang memperluas ukuran bidang reseptif tanpa meningkatkan jumlah parameter dengan menyisipkan wilayah yang terlihat dan buta. Selain itu, lapisan konvolusi tunggal yang melebar dapat terdiri dari filter dengan beberapa rasio pelebaran,[29] sehingga memiliki ukuran bidang reseptif yang bervariasi.
Bobot
Dalam jaringan saraf tiruan, setiap neuron menghitung nilai keluaran dengan menerapkan fungsi tertentu pada nilai masukan yang diterima dari bidang reseptif di lapisan sebelumnya. Fungsi yang diterapkan pada nilai input ditentukan oleh vektor bobot dan bias (biasanya berupa bilangan riil). Pemelajaran terdiri dari penyesuaian bias dan bobot ini secara berulang.
Vektor bobot dan bias disebut filter dan mewakili fitur tertentu dari masukan (misalnya, bentuk tertentu). Ciri khas CNN adalah banyak neuron dapat berbagi filter yang sama. Cara ini dapat mengurangi penggunaan memori karena bias tunggal dan vektor bobot tunggal digunakan di semua bidang reseptif yang berbagi filter itu, dibandingkan dengan setiap bidang reseptif yang memiliki bias dan bobot sendiri.[30]
Sejarah
CNN sering dibandingkan dengan cara otak memproses penglihatan pada organisme makhluk hidup.[31]
Bidang reseptif di korteks visual
Penelitian oleh Hubel dan Wiesel pada tahun 1950-an dan 1960-an menunjukkan bahwa korteks visual kucing mengandung neuron yang secara individu dapat merespons wilayah-wilayah kecil dari bidang visual. Asalkan mata tidak bergerak, wilayah ruang visual yang menjadi tempat rangsangan visual memengaruhi pengaktifan satu neuron yang dikenal seabagai bidang visual.[32] Sel-sel yang bertetangga memiliki bidang reseptif yang serupa dan tumpang tindih. Ukuran dan lokasi bidang reseptif bervariasi secara sistematis di seluruh korteks untuk membentuk peta lengkap ruang visual.[butuh rujukan] Korteks di setiap belahan otak mewakili bidang visual yang berlawanan.[butuh rujukan]
Makalah penelitian mereka pada tahun 1968 mengidentifikasi dua jenis sel visual dasar di otak:[17]
sel sederhana, yang keluarannya dimaksimalkan oleh tepi lurus dengan orientasi tertentu dalam bidang reseptifnya
sel kompleks, yang memiliki bidang-bidang reseptif lebih besar, dan keluarannya tidak sensitif terhadap posisi pasti tepi dalam bidang tersebut.
Hubel dan Wiesel juga mengusulkan model berjenjang dari jua jenis sel ini untuk digunakan dalam pengenalan pola.[33][32]
Neocognitron, asal muasal arsitektur CNN
"Neocognitron"[16] adalah model jaringan saraf yang diperkenalkan oleh Kunihiko Fukushima pada tahun 1980.[18][26][34]
Model ini terinsipirasi oleh penelitian Hubel dan Wiesel di atas mengenai sel-sel sederhana dan kompleks di korteks visual. Neurocognitron memiliki dua tipe lapisan dasar:
Sebuah lapisan konvolusi yang mengandung unit-unit dengan bidang reseptifnya mencakup sebagian kecil lapisan sebelumnya. Vektor bobot (suatu kumpulan parameter adaptif) dari unit tersebutlah yang disebut sebagai filter. Unit-unit dalam lapisan konvolusi dapat berbagi filter yang sama.
Beberapa lapisan downsampling yang mengandung unit-unit dengan bidang reseptifnya mencakup sebagian kecil lapisan konvolusi sebelumnya. Setiap unit biasanya menghitung rata-rata aktivasi unit di bidang reseptifnya. Downsampling membantu pengenalan objek secara tepat meskipun objek tersebut mengalami pergeseran.
Varian lain dari neurocognitron yang disebut cresreptron menggunakan metode max-pooling untuk downsampling, diperkenalkan oleh J. Weng, dkk. pada 1993. Max-pooling menghitung nilai maksimum aktivasi unit di bidang reseptifnya. Metode ini berbeda dengan neurocognitron yang menggunakan rerata spasial dalam perhitungan downsampling-nya.[38]Max-pooling ini lebih umum digunakan pada CNN modern dibanding rata-rata.[39]
Pelatihan bobot dalam neurocognitron menggunakan algoritma pemelajaran terarah (supervised learning) dan Pemelajaran tak terarah (unsupervised learning) telah diajukan selama beberapa dekade.[16] Namun, saat ini arsitektur CNN umumnya dilatih menggunakan propagasi balik.
Neocognitron merupakan CNN pertama yang mensyaratkan unit di berbagai posisi jaringan untuk berbagi bobot.
CNN dipresentasikan di Neural Information Processing Workshop pada 1987. Dalam presentasi tersebut, CNN didemonstrasikan dapat secara otomatis menganalisis sinyal yang bervariasi dalam waktu (time-varying) dengan mengganti perkalian yang telah dipelajari dengan konvolusi dalam waktu (convolution in time), dan didemonstrasikan untuk pengenalan suara.[40]
^Chervyakov, N.I.; Lyakhov, P.A.; Deryabin, M.A.; Nagornov, N.N.; Valueva, M.V.; Valuev, G.V. (September 2020). "Residue Number System-Based Solution for Reducing the Hardware Cost of a Convolutional Neural Network". Neurocomputing (dalam bahasa Inggris). 407: 439–453. doi:10.1016/j.neucom.2020.04.018. Diarsipkan dari versi asli tanggal 2023-06-29. Diakses tanggal 2023-08-12. Convolutional neural networks represent deep learning architectures that are currently used in a wide range of applications, including computer vision, speech recognition, malware dedection, time series analysis in finance, and many others.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
^ abHabibi, Aghdam, Hamed (2017-05-30). Guide to convolutional neural networks : a practical application to traffic-sign detection and classification. Heravi, Elnaz Jahani. Cham, Switzerland. ISBN9783319575490. OCLC987790957.
^Valueva, M.V.; Nagornov, N.N.; Lyakhov, P.A.; Valuev, G.V.; Chervyakov, N.I. (2020). "Application of the residue number system to reduce hardware costs of the convolutional neural network implementation". Mathematics and Computers in Simulation. Elsevier BV. 177: 232–243. doi:10.1016/j.matcom.2020.04.031. ISSN0378-4754. Convolutional neural networks are a promising tool for solving the problem of pattern recognition.
^van den Oord, Aaron; Dieleman, Sander; Schrauwen, Benjamin (2013-01-01). Burges, C. J. C.; Bottou, L.; Welling, M.; Ghahramani, Z.; Weinberger, K. Q., ed. Deep content-based music recommendation(PDF). Curran Associates, Inc. hlm. 2643–2651. Diarsipkan dari versi asli(PDF) tanggal 2022-03-07. Diakses tanggal 2022-03-31.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
^Collobert, Ronan; Weston, Jason (2008-01-01). "A unified architecture for natural language processing". Proceedings of the 25th international conference on Machine learning - ICML '08. New York, NY, US: ACM. hlm. 160–167. doi:10.1145/1390156.1390177. ISBN978-1-60558-205-4.
^Mouton, Coenraad; Myburgh, Johannes C.; Davel, Marelie H. (2020). "Stride and Translation Invariance in CNNs". Dalam Gerber, Aurona. Artificial Intelligence Research. Communications in Computer and Information Science (dalam bahasa Inggris). 1342. Cham: Springer International Publishing. hlm. 267–281. arXiv:2103.10097. doi:10.1007/978-3-030-66151-9_17. ISBN978-3-030-66151-9. Diarsipkan dari versi asli tanggal 2021-06-27. Diakses tanggal 2021-03-26.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
^ abcFukushima, K. (2007). "Neocognitron". Scholarpedia. 2 (1): 1717. Bibcode:2007SchpJ...2.1717F. doi:10.4249/scholarpedia.1717.Kesalahan pengutipan: Tanda <ref> tidak sah; nama "fukuneoscholar" didefinisikan berulang dengan isi berbeda
^Yamaguchi, Kouichi; Sakamoto, Kenji; Akabane, Toshio; Fujimoto, Yoshiji (November 1990). A Neural Network for Speaker-Independent Isolated Word Recognition. First International Conference on Spoken Language Processing (ICSLP 90). Kobe, Japan. Diarsipkan dari versi asli tanggal 2021-03-07. Diakses tanggal 2019-09-04.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
^Fukushima, K. (1969). "Visual feature extraction by a multilayered network of analog threshold elements". IEEE Transactions on Systems Science and Cybernetics. 5 (4): 322–333. doi:10.1109/TSSC.1969.300225.