Jaringan saraf konvolusional: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan
Tag: Suntingan perangkat seluler Suntingan peramban seluler
Menambah konten: Arsitektur (diterjemahkan dari wikipedia english
Baris 27:
 
CNN secara relatif menggunakan pra-pemrosesan yang lebih sedikit dibandingkan dengan [[Visi komputer|algoritma klasifikasi citra]] lainnya. Artinya, jaringan pada CNN mempelajari optimasi [[Filter (pemrosesan sinyal)|filter]] (atau kernel) melalui pemelajaran otomatis. Berbeda dengan algoritma tradisional yang mengandalkan rekayasa filter ini[[Rekayasa fitur|secara manual]]. Kemampuan ini menjadikan penggunaan CNN memberikan keuntungan yang besar karena independensinya terhadap pra-pengetahuan manusia dalam tahap ekstraksi fitur.
 
== Architecture ==
[[File:Comparison image neural networks.svg|thumb|480px|Perbandingan lapisan konvolusi, penggabungan, dan lapisan sepenuhnya terhubung pada [[LeNet]] dan [[AlexNet]]<br>(Perlu dicatat bahwa ukuran citra yang digunakan pada AlexNet dalam artikel ini adalah 227x227x3, bukan 224x224x3 seperti yang disebutkan pada penelitian awal. Koreksi ini berdasarkan saran Andrej Karpathy, kepala divisi visi komputer di Tesla. Alasan pemilihan ukuran gambar 224x224x3 dalam penelitian awal AlexNet tidak dijelaskan secara rinci oleh Alex. Lapisan konvolusi selanjutnya berukuran 11x11 dengan langkah (''stride'') 4: 55×55×96 (bukan 54×54×96). Akan dihitung dengan contoh sebagai berikut: [(lebar masukan 227 - lebar kernel 11) / langkah 4] + 1 = [(227 - 11) / 4] + 1 = 55. Karena keluaran kernel memiliki panjang dan lebar yang sama, maka luasnya adalah 55x55.)]]
 
{{Main|Lapisan (pemelajaran dalam)}}
CNN terdiri dari satu lapisan masukan (''input layer''), beberapa [[Jaringan saraf tiruan#Organisasi|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 [[produk dot|perkalian titik (''dot product'')]] antara kernel konvolusi dengan matriks masukan lapisan tersebut. Hasil perkalian ini umumnya berupa [[perkalian dalam Frobenius]], dan [[rectifier (jaringan saraf)|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]]''.
<ref>Convolutional Neural Networks Demystified: A Matched Filtering Perspective Based Tutorial https://arxiv.org/abs/2108.11663v3</ref>
 
=== Lapisan konvolusi ===
Dalam CNN, masukan berupa [[Tensor (pemelajaran mesin)|tensor]] dengan ukuran:
 
(jumlah masukan) × (tinggi masukan) × (lebar masukan) × (masukan [[Kanal (citra digital)|kanal]])
 
Setelah melewati lapisan konvolusi, gambar menjadi terabstraksi menjadi peta fitur, disebut juga peta aktivasi, dengan ukuran:
 
(jumlah masukan) × (tinggi peta fitur) × (lebar peta fitur) × (peta fitur [[kanal (citra digital)|kanal]]).
 
Lapisan konvolusi melakukan konvolusi pada masukan dan meneruskan hasilnya ke lapisan berikutnya. Operasi ini mirip dengan respon neuron di korteks visual terhadap stimulus tertentu.<ref name="deeplearning">{{cite web |title=Convolutional Neural Networks (LeNet) – DeepLearning 0.1 documentation |url=http://deeplearning.net/tutorial/lenet.html |work=DeepLearning 0.1 |publisher=LISA Lab |access-date=31 August 2013 |archive-date=28 December 2017 |archive-url=https://web.archive.org/web/20171228091645/http://deeplearning.net/tutorial/lenet.html |url-status=dead }}</ref> Setiap neuron konvolusi hanya memproses data untuk [[bidang reseptif]]-nya sendiri.
 
[[File:1D Convolutional Neural Network feed forward example.png|thumb|Contoh jaringan saraf konvolusi umpan-balik 1 dimensi]]
Meskipun [[multilayer perceptron|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.<ref name="auto1" /> 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 [[Algoritma perambatan mundur|propagasi balik]] pada jaringan saraf sebelumnya.<ref name="auto3" /><ref name="auto2" />
 
Untuk mempercepat pemrosesan, lapisan konvolusi standar dapat diganti dengan lapisan konvolusi yang dapat dipisahkan kedalaman (''depthwise separable convolutional layers''),<ref>{{Cite arXiv |last=Chollet |first=François |date=2017-04-04 |title=Xception: Deep Learning with Depthwise Separable Convolutions |class=cs.CV |eprint=1610.02357 }}</ref>, 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 <math>1\times1</math>.
 
=== 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.<ref name="flexible"/><ref>{{cite web |last=[[Alex Krizhevsky|Krizhevsky]] |first=Alex |title=ImageNet Classification with Deep Convolutional Neural Networks |url=https://image-net.org/static_files/files/supervision.pdf |access-date=17 November 2013 |archive-date=25 April 2021 |archive-url=https://web.archive.org/web/20210425025127/http://www.image-net.org/static_files/files/supervision.pdf |url-status=live }}</ref> 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,<ref name=Yamaguchi111990>{{cite conference |title=A Neural Network for Speaker-Independent Isolated Word Recognition |last1=Yamaguchi |first1=Kouichi |last2=Sakamoto |first2=Kenji |last3=Akabane |first3=Toshio |last4=Fujimoto |first4=Yoshiji |date=November 1990 |location=Kobe, Japan |conference=First International Conference on Spoken Language Processing (ICSLP 90) |url=https://www.isca-speech.org/archive/icslp_1990/i90_1077.html |access-date=2019-09-04 |archive-date=2021-03-07 |archive-url=https://web.archive.org/web/20210307233750/https://www.isca-speech.org/archive/icslp_1990/i90_1077.html |url-status=dead }}</ref><ref name="mcdns">{{cite book |last1=Ciresan |first1=Dan |first2=Ueli |last2=Meier |first3=Jürgen |last3=Schmidhuber |title=2012 IEEE Conference on Computer Vision and Pattern Recognition |chapter=Multi-column deep neural networks for image classification |date=June 2012 |pages=3642–3649 |doi=10.1109/CVPR.2012.6248110 |arxiv=1202.2745 |isbn=978-1-4673-1226-4 |oclc=812295155 |publisher=[[Institute of Electrical and Electronics Engineers]] (IEEE) |location=New York, NY |citeseerx=10.1.1.300.3283 |s2cid=2161592}}</ref> 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 [[multilayer perceptron| 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<ref>{{Cite arXiv|last1=Yu |first1=Fisher |last2=Koltun |first2=Vladlen |date=2016-04-30 |title=Multi-Scale Context Aggregation by Dilated Convolutions |class=cs.CV |eprint=1511.07122 }}</ref><ref>{{Cite arXiv|last1=Chen |first1=Liang-Chieh |last2=Papandreou |first2=George |last3=Schroff |first3=Florian |last4=Adam |first4=Hartwig |date=2017-12-05 |title=Rethinking Atrous Convolution for Semantic Image Segmentation |class=cs.CV |eprint=1706.05587 }}</ref>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,<ref>{{Cite arXiv|last1=Duta |first1=Ionut Cosmin |last2=Georgescu |first2=Mariana Iuliana |last3=Ionescu |first3=Radu Tudor |date=2021-08-16 |title=Contextual Convolutional Neural Networks |class=cs.CV |eprint=2108.07387 }}</ref> 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.<ref name="LeCun">{{cite web |url=http://yann.lecun.com/exdb/lenet/ |title=LeNet-5, convolutional neural networks |last=LeCun |first=Yann |access-date=16 November 2013 |archive-date=24 February 2021 |archive-url=https://web.archive.org/web/20210224225707/http://yann.lecun.com/exdb/lenet/ |url-status=live }}</ref>
 
 
== Lihat juga ==