Pengguna:KhalilullahAlFaath/Jaringan saraf konvolusional

Revisi sejak 2 Maret 2024 20.18 oleh KhalilullahAlFaath (bicara | kontrib) (→‎Arsitektur)
(beda) ← Revisi sebelumnya | Revisi terkini (beda) | Revisi selanjutnya → (beda)

Jaringan saraf konvolusional (bahasa Inggris: Convolutional Neural Network) yang biasa disingkat CNN adalah jaringan saraf umpan maju teregularisasi yang dapat mengekstraksi fitur sendiri dengan menggunakan optimasi filter (atau kernel). Pada versi awalnya, jaringan saraf selama proses propagasi balik seringkali mengalami masalah hilangnya atau meledaknya gradien. Untuk mencegah hal tersebut terjadi, digunakanlah bobot teregulasi dengan koneksi yang lebih sedikit.[1][2] Misalkan, untuk setiap neuron pada lapisan yang terhubung sepenuhnya (fully-connected layers), 10.000 bobot diperlukan untuk memproses sebuah citra berukuran 100 x 100 piksel. Namun, dengan menerapkan kernel konvolusi (atau korelasi silang) bertingkat,[3][4] hanya dibutuhkan 25 neuron untuk memproses petak berukuran 5x5.[5][6] Fitur tingkat tinggi diekstrak dari jendela konteks yang lebih luas dibandingkan fitur tingkat rendah.

CNN diaplikasikan pada:

CNN juga dikenal sebagai Shift Invariant atau Space Invariant Artificial Neural Networks (SIANN), berdasarkan arsitektur bobot bersama (shared-weights) dari kernel konvolusi (filter) yang bergeser sepanjang fitur masukan dan menghasilkan respons yang equivariasi-translasi, yang dikenal sebagai peta fitur (feature maps). Sebaliknya, kebanyakan CNN tidak invarian translasi, karena adanya operasi downsampling yang diaplikasikan pada masukan.

Jaringan saraf umpan maju atau feed-forward neural networks umumnya merupakan jaringan yang terhubung sepenuhnya. Maksudnya, setiap neuron di lapisan tertentu terhubung dengan semua neuron yang ada di lapisan setelahnya. “Keterhubungan penuh” ini menyebabkan jaringan menjadi rentan terhadap overfitting. Cara-cara regularisasi atau pencegahan overfitting yang umum digunakan, adalah pengurangan parameter ketika pelatihan, seperti weight decay (peluruhan bobot) atau pemangkasan konektivitas, seperti penggunaan skip connection, dropout, dll. Selain itu, penggunaan dataset yang kokoh (robust) dapat meningkatkan probabilitas kemampuan CNN untuk mempelajari prinsip-prinsip yang diperumum yang dapat mewakilkan karakter dataset, bukan bias-bias dari dataset yang tidak mewakilkan keseluruhan populasi.[12]

Jaringan konvolusional terinspirasi oleh proses biologis[13][14][15][16], terkait pola koneksi antar-neuron yang menyerupai organisasi korteks visual hewan. Setiap neuron kortikal tersebut merespons rangsangan hanya pada bidang visual terbatas yang biasa disebut sebagai bidang reseptif. Bidang reseptif pada neuron yang berbeda saling sebagiannya tumpang tindih sehingga dapat menutupi seluruh bidang visual.

CNN menggunakan pra-pemrosesan (pre-processing) yang relatif lebih sedikit, dibandingkan dengan algoritma klasifikasi citra lain. Artinya, jaringan pada CNN dapat mengoptimasi filter atau kernel dengan pemelajaran otomatis, yang mana filter pada algoritma tradisional harus direkayasa manual. Kelebihan besar CNN dalam pemodelannya oleh pengguna adalah CNN tidak memerlukan pengetahuan awal dan ekstraksi fitur manual.

Arsitektur sunting

 
Perbandingan lapisan konvolusi (convolution), pengumpul (pooling), rapat (dense) dari LeNet dan AlexNet
(Ukuran citra masukan AlexNet seharusnya 227×227×3, bukan 224×224×3 agar perhitungannya benar. Publikasi aslinya menyebutkan angka yang berbeda, tetapi Andrej Karpathy, kepala visi komputer Tesla mengatakan bahwa seharusnya ukuran citra masukannya adalah 227×227×3 (dia mengatakan bahwa Alex tidak menjelaskan mengapa dia menggunakan 224×224×3). Konvolusi berikutnya seharusnya 11×11 dengan langkah (stride) 4: 55×55×96 (bukan 54×54×96). Sehingga jika dihitung sebagai contoh: [(lebar input 227 - lebar kernel 11) / stride 4] + 1 = [(227 - 11) / 4] + 1 = 55. Karena luaran kernel memiliki panjang yang sama dengan lebar, maka luasnya adalah 55×55).

CNN terdiri atas satu lapisan masukan (input layer), lapisan-lapisan tersembunyi, dan satu lapisan luaran (output layer). Lapisan-lapisan tersembunyi tersebut di dalamnya termasuk satu atau lebih lapisan yang dapat mengkonvolusi. Lapisan ini biasanya menghitung perkalian titik kernel konvolusi dengan matriks lapisan masukan. Lapisan ini melakukan perkalian titik umumnya dengan produk titik Frobenius dan ReLU sebagai fungsi aktivasinya. Proses konvolusi dilakukan dengan pergeseran kernel konvolusi pada matriks masukan pada lapisan tersebut, lalu menghasilkan peta fitur (feature maps) yang digunakan sebagai masukan untuk lapisan selanjutnya. Lapisan konvolusi ini diikuti lapisan-lapisan lainnya, seperti lapisan pengumpul (pooling layer), lapisan terhubung sepenuhnya (fully-connected layer), dan lapisan normalisasi (normalization layer). Di sini dapat dilihat kemiripan antara CNN dengan matched filter.[17]

Lapisan konvolusi sunting

Masukan pada CNN berupa tensor dengan bentuk:

(Jumlah masukan) × (tinggi masukan) × (lebar masukan) × (masukan saluran)

Setelah melewati sebuah lapisan konvolusi, citra tersebut diabstraksi menjadi sebuah peta fitur, disebut juga sebagai peta aktivasi (activation map), dengan bentuk:

(Jumlah masukan) × (tinggi peta fitur) × (lebar peta fitur) × (peta fitur saluran).

Lapisan konvolusi mengkonvolusi masukan dan melemparkan hasilnya kepada lapisan selanjutnya. Proses ini mirip dengan respons neuron dalam korteks visual terhadap rangsangan tertentu.[18] Setiap neuron konvolusi memproses data hanya untuk bidang reseptifnya.

 
1D Convolutional Neural Network feed forward example

Meskipun jaringan umpan-maju yang terhubung sepenuhnya dapat digunakan untuk mempelajari fitur-fitur dan mengklasifikasi data, arsitektur ini umumnya tidak praktis untuk masukan yang lebih besar, contohnya citra beresolusi tinggi yang membutuhkan neuron dalam jumlah besar; setiap pikselnya merupakan satu fitur masukan (input feature). Sebuah lapisan terhubung sepenuhnya untuk satu citra dengan ukuran 100 × 100 memiliki 10.000 bobot untuk setiap neuron di lapisan kedua. Proses konvolusi dapat mengurangi jumlah parameter bebas sehingga jaringan dapat menjadi lebih dalam.[5] Sebagai contoh, dengan menggunakan sebuah 5 × 5 tiling region, each with the same shared weights, requires only 25 neurons. Using regularized weights over fewer parameters avoids the vanishing gradients and exploding gradients problems seen during backpropagation in earlier neural networks.[1][2]

To speed processing, standard convolutional layers can be replaced by depthwise separable convolutional layers,[19] which are based on a depthwise convolution followed by a pointwise convolution. The depthwise convolution is a spatial convolution applied independently over each channel of the input tensor, while the pointwise convolution is a standard convolution restricted to the use of   kernels.

Pooling layers sunting

Convolutional networks may include local and/or global pooling layers along with traditional convolutional layers. Pooling layers reduce the dimensions of data by combining the outputs of neuron clusters at one layer into a single neuron in the next layer. Local pooling combines small clusters, tiling sizes such as 2 × 2 are commonly used. Global pooling acts on all the neurons of the feature map.[20][21] There are two common types of pooling in popular use: max and average. Max pooling uses the maximum value of each local cluster of neurons in the feature map,[22][23] while average pooling takes the average value.

Fully connected layers sunting

Fully connected layers connect every neuron in one layer to every neuron in another layer. It is the same as a traditional multilayer perceptron neural network (MLP). The flattened matrix goes through a fully connected layer to classify the images.

Receptive field sunting

In neural networks, each neuron receives input from some number of locations in the previous layer. In a convolutional layer, each neuron receives input from only a restricted area of the previous layer called the neuron's receptive field. Typically the area is a square (e.g. 5 by 5 neurons). Whereas, in a fully connected layer, the receptive field is the entire previous layer. Thus, in each convolutional layer, each neuron takes input from a larger area in the input than previous layers. This is due to applying the convolution over and over, which takes the value of a pixel into account, as well as its surrounding pixels. When using dilated layers, the number of pixels in the receptive field remains constant, but the field is more sparsely populated as its dimensions grow when combining the effect of several layers.

To manipulate the receptive field size as desired, there are some alternatives to the standard convolutional layer. For example, atrous or dilated convolution[24][25] expands the receptive field size without increasing the number of parameters by interleaving visible and blind regions. Moreover, a single dilated convolutional layer can comprise filters with multiple dilation ratios,[26] thus having a variable receptive field size.

Weights sunting

Each neuron in a neural network computes an output value by applying a specific function to the input values received from the receptive field in the previous layer. The function that is applied to the input values is determined by a vector of weights and a bias (typically real numbers). Learning consists of iteratively adjusting these biases and weights.

The vectors of weights and biases are called filters and represent particular features of the input (e.g., a particular shape). A distinguishing feature of CNNs is that many neurons can share the same filter. This reduces the memory footprint because a single bias and a single vector of weights are used across all receptive fields that share that filter, as opposed to each receptive field having its own bias and vector weighting.[27]

  1. ^ a b Venkatesan, Ragav; Li, Baoxin (2017-10-23). Convolutional Neural Networks in Visual Computing: A Concise Guide (dalam bahasa Inggris). CRC Press. ISBN 978-1-351-65032-8. Diarsipkan dari versi asli tanggal 2023-10-16. Diakses tanggal 2020-12-13. 
  2. ^ a b Balas, Valentina E.; Kumar, Raghvendra; Srivastava, Rajshree (2019-11-19). Recent Trends and Advances in Artificial Intelligence and Internet of Things (dalam bahasa Inggris). Springer Nature. ISBN 978-3-030-32644-9. Diarsipkan dari versi asli tanggal 2023-10-16. Diakses tanggal 2020-12-13. 
  3. ^ Zhang, Yingjie; Soon, Hong Geok; Ye, Dongsen; Fuh, Jerry Ying Hsi; Zhu, Kunpeng (September 2020). "Powder-Bed Fusion Process Monitoring by Machine Vision With Hybrid Convolutional Neural Networks". IEEE Transactions on Industrial Informatics. 16 (9): 5769–5779. doi:10.1109/TII.2019.2956078. ISSN 1941-0050. Diarsipkan dari versi asli tanggal 2023-07-31. Diakses tanggal 2023-08-12. 
  4. ^ 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. 
  5. ^ a b Habibi, Aghdam, Hamed (2017-05-30). Guide to convolutional neural networks : a practical application to traffic-sign detection and classification. Heravi, Elnaz Jahani. Cham, Switzerland. ISBN 9783319575490. OCLC 987790957. 
  6. ^ Atlas, Homma, and Marks. "An Artificial Neural Network for Spatio-Temporal Bipolar Patterns: Application to Phoneme Classification" (PDF). Neural Information Processing Systems (NIPS 1987). 1. Diarsipkan dari versi asli (PDF) tanggal 2021-04-14. 
  7. ^ 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. ISSN 0378-4754. Convolutional neural networks are a promising tool for solving the problem of pattern recognition. 
  8. ^ 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. 
  9. ^ 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, USA: ACM. hlm. 160–167. doi:10.1145/1390156.1390177. ISBN 978-1-60558-205-4. 
  10. ^ Avilov, Oleksii; Rimbert, Sebastien; Popov, Anton; Bougrain, Laurent (July 2020). "Deep Learning Techniques to Improve Intraoperative Awareness Detection from Electroencephalographic Signals" (PDF). 2020 42nd Annual International Conference of the IEEE Engineering in Medicine & Biology Society (EMBC) (PDF). 2020. Montreal, QC, Canada: IEEE. hlm. 142–145. doi:10.1109/EMBC44109.2020.9176228. ISBN 978-1-7281-1990-8. PMID 33017950 Periksa nilai |pmid= (bantuan). Diarsipkan dari versi asli tanggal 2022-05-19. Diakses tanggal 2023-07-21. 
  11. ^ Tsantekidis, Avraam; Passalis, Nikolaos; Tefas, Anastasios; Kanniainen, Juho; Gabbouj, Moncef; Iosifidis, Alexandros (July 2017). "Forecasting Stock Prices from the Limit Order Book Using Convolutional Neural Networks". 2017 IEEE 19th Conference on Business Informatics (CBI). Thessaloniki, Greece: IEEE. hlm. 7–12. doi:10.1109/CBI.2017.23. ISBN 978-1-5386-3035-8. 
  12. ^ Kurtzman, Thomas (August 20, 2019). "Hidden bias in the DUD-E dataset leads to misleading performance of deep learning in structure-based virtual screening". PLOS ONE. 14 (8): e0220113. Bibcode:2019PLoSO..1420113C. doi:10.1371/journal.pone.0220113 . PMC 6701836 . PMID 31430292. 
  13. ^ Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama fukuneoscholar
  14. ^ Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama hubelwiesel1968
  15. ^ Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama intro
  16. ^ Matusugu, Masakazu; Katsuhiko Mori; Yusuke Mitari; Yuji Kaneda (2003). "Subject independent facial expression recognition with robust face detection using a convolutional neural network" (PDF). Neural Networks. 16 (5): 555–559. doi:10.1016/S0893-6080(03)00115-1. PMID 12850007. Diarsipkan dari versi asli (PDF) tanggal 13 December 2013. Diakses tanggal 17 November 2013. 
  17. ^ Convolutional Neural Networks Demystified: A Matched Filtering Perspective Based Tutorial https://arxiv.org/abs/2108.11663v3
  18. ^ "Convolutional Neural Networks (LeNet) – DeepLearning 0.1 documentation". DeepLearning 0.1. LISA Lab. Diarsipkan dari versi asli tanggal 28 December 2017. Diakses tanggal 31 August 2013. 
  19. ^ Chollet, François (2017-04-04). "Xception: Deep Learning with Depthwise Separable Convolutions". arΧiv:1610.02357 [cs.CV]. 
  20. ^ Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama flexible
  21. ^ Krizhevsky, Alex. "ImageNet Classification with Deep Convolutional Neural Networks" (PDF). Diarsipkan dari versi asli (PDF) tanggal 25 April 2021. Diakses tanggal 17 November 2013. 
  22. ^ 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. 
  23. ^ Ciresan, Dan; Meier, Ueli; Schmidhuber, Jürgen (June 2012). "Multi-column deep neural networks for image classification". 2012 IEEE Conference on Computer Vision and Pattern Recognition. New York, NY: Institute of Electrical and Electronics Engineers (IEEE). hlm. 3642–3649. arXiv:1202.2745 . CiteSeerX 10.1.1.300.3283 . doi:10.1109/CVPR.2012.6248110. ISBN 978-1-4673-1226-4. OCLC 812295155. 
  24. ^ Yu, Fisher; Koltun, Vladlen (2016-04-30). "Multi-Scale Context Aggregation by Dilated Convolutions". arΧiv:1511.07122 [cs.CV]. 
  25. ^ Chen, Liang-Chieh; Papandreou, George; Schroff, Florian; Adam, Hartwig (2017-12-05). "Rethinking Atrous Convolution for Semantic Image Segmentation". arΧiv:1706.05587 [cs.CV]. 
  26. ^ Duta, Ionut Cosmin; Georgescu, Mariana Iuliana; Ionescu, Radu Tudor (2021-08-16). "Contextual Convolutional Neural Networks". arΧiv:2108.07387 [cs.CV]. 
  27. ^ LeCun, Yann. "LeNet-5, convolutional neural networks". Diarsipkan dari versi asli tanggal 24 February 2021. Diakses tanggal 16 November 2013.