Convolutional Neural Networks (CNNs): Sebuah Pengantar
Diterbitkan: 2022-08-30Jaringan saraf convolutional menawarkan cara yang lebih terukur untuk tugas pengenalan objek dan klasifikasi gambar.
Banyak sekali kemajuan-kemajuan yang terjadi di dunia teknologi. Kecerdasan buatan dan pembelajaran mesin adalah beberapa hal umum yang mungkin sering Anda dengar.
Saat ini, teknologi ini digunakan di hampir semua bidang, mulai dari pemasaran, eCommerce, dan pengembangan perangkat lunak hingga perbankan, keuangan, dan kedokteran.
AI dan ML adalah bidang yang luas, dan upaya sedang dilakukan untuk memperluas aplikasi mereka untuk memecahkan banyak masalah dunia nyata. Inilah mengapa Anda bisa melihat banyak cabang di dalam teknologi ini; ML adalah bagian dari AI itu sendiri.
Jaringan saraf convolutional adalah salah satu cabang AI yang menjadi populer akhir-akhir ini.
Pada artikel ini, saya akan membahas apa itu CNN, cara kerjanya, dan kegunaannya di dunia modern.
Mari selami!
Apa itu Jaringan Saraf Konvolusi?
Jaringan saraf convolutional (ConvNet atau CNN) adalah jaringan saraf tiruan (JST) yang menggunakan algoritma pembelajaran mendalam untuk menganalisis gambar, mengklasifikasikan visual, dan melakukan tugas visi komputer.

CNN memanfaatkan prinsip aljabar linier, seperti perkalian matriks, untuk mendeteksi pola dalam gambar. Karena proses ini melibatkan komputasi yang kompleks, mereka memerlukan unit pemrosesan grafis (GPU) untuk melatih model.
Dengan kata sederhana, CNN menggunakan algoritma Deep Learning untuk mengambil data input seperti gambar dan menetapkan kepentingan dalam bentuk bias dan bobot yang dapat dipelajari untuk berbagai aspek gambar itu. Dengan cara ini, CNN dapat membedakan antara gambar atau mengklasifikasikannya.
CNN: Sejarah Singkat
Karena jaringan saraf Convolutional adalah jaringan saraf tiruan, penting untuk mengulangi jaringan saraf.
Dalam komputasi, jaringan saraf adalah bagian dari pembelajaran mesin (ML) menggunakan algoritma pembelajaran yang mendalam. Ini analog dengan pola konektivitas yang diikuti oleh neuron di otak manusia. Jaringan saraf tiruan juga mengambil inspirasi dari bagaimana korteks visual diatur.

Jadi, berbagai jenis jaringan saraf atau jaringan saraf tiruan (JST) digunakan untuk tujuan yang berbeda. Salah satunya adalah CNN yang digunakan untuk deteksi dan klasifikasi citra, dan lainnya. Itu diperkenalkan oleh seorang peneliti postdoctoral, Yann LeCun, pada 1980-an.
Versi awal CNN - LeNet, dinamai LeCun, mampu mengenali angka tulisan tangan. Kemudian, digunakan di perbankan dan layanan pos untuk membaca angka pada cek dan kode pos yang tertulis di amplop.
Namun, versi awal ini tidak memiliki skala; karenanya, CNN tidak banyak digunakan dalam kecerdasan buatan dan visi komputer. Selain itu, diperlukan sumber daya dan data komputasi yang signifikan untuk bekerja lebih efisien untuk gambar yang lebih besar.
Selanjutnya, pada tahun 2012, AlexNet meninjau kembali pembelajaran mendalam yang memanfaatkan jaringan saraf yang terdiri dari banyak lapisan. Sekitar waktu ini, teknologi meningkat, dan kumpulan data besar dan sumber daya komputasi berat tersedia untuk memungkinkan pembuatan CNN kompleks yang mampu melakukan aktivitas visi komputer secara efisien.
Lapisan di CNN
Mari kita memahami lapisan yang berbeda di CNN. Meningkatkan lapisan di CNN akan meningkatkan kompleksitasnya dan memungkinkannya mendeteksi lebih banyak aspek atau area dari suatu gambar. Dimulai dengan fitur sederhana, menjadi mampu mendeteksi fitur kompleks seperti bentuk objek dan elemen yang lebih besar hingga akhirnya dapat mendeteksi gambar.
Lapisan Konvolusi
Lapisan pertama dari CNN adalah lapisan convolutional. Ini adalah blok bangunan utama CNN di mana sebagian besar perhitungan terjadi. Ini membutuhkan lebih sedikit komponen, seperti data input, peta fitur, dan filter.

CNN juga dapat memiliki lapisan konvolusi tambahan. Ini membuat struktur CNN menjadi hierarkis karena lapisan berikutnya dapat memvisualisasikan piksel dalam bidang reseptif lapisan sebelumnya. Selanjutnya, lapisan convolutional mengubah gambar yang diberikan menjadi nilai numerik dan memungkinkan jaringan untuk memahami dan mengekstrak pola yang berharga.
Lapisan Pengumpulan
Pooling layer digunakan untuk mengurangi dimensi dan disebut downsampling. Ini mengurangi parameter yang digunakan dalam input. Operasi pooling dapat memindahkan filter ke input lengkap seperti layer convolutional tetapi tidak memiliki bobot. Di sini, filter menerapkan fungsi gabungan ke nilai numerik di bidang reseptif untuk mengisi larik hasil.
Pooling memiliki dua jenis:
- Pengumpulan rata-rata: Nilai rata-rata dihitung di bidang reseptif yang disapu filer di atas input untuk dikirim ke array output.
- Penggabungan maksimum: Ini memilih piksel nilai maksimum dan mengirimkannya ke larik keluaran saat filter menyapu masukan. Penyatuan maksimum digunakan lebih dari penyatuan rata-rata.
Meskipun data signifikan hilang dalam penyatuan, itu masih menawarkan banyak manfaat bagi CNN. Ini membantu mengurangi risiko dan kerumitan overfitting sekaligus meningkatkan efisiensi. Ini juga meningkatkan stabilitas CNN.
Lapisan Terhubung Sepenuhnya (FC)

Seperti namanya, semua node di lapisan output terhubung langsung ke node lapisan sebelumnya di lapisan yang terhubung penuh. Ini mengklasifikasikan gambar berdasarkan fitur yang diekstraksi melalui lapisan sebelumnya bersama dengan filternya.
Selanjutnya, lapisan FC umumnya menggunakan fungsi aktivasi softmax untuk mengklasifikasikan input dengan benar daripada fungsi ReLu (seperti dalam kasus lapisan penyatuan dan konvolusi). Ini membantu menghasilkan probabilitas 0 atau 1.
Bagaimana Cara Kerja CNN?
Jaringan saraf convolutional terdiri dari banyak lapisan, bahkan ratusan di antaranya. Lapisan ini belajar untuk mengidentifikasi berbagai fitur dari gambar yang diberikan.
Meskipun CNN adalah jaringan saraf, arsitekturnya berbeda dari JST biasa.

Yang terakhir menempatkan input melalui banyak lapisan tersembunyi untuk mengubahnya, di mana setiap lapisan dibuat dengan satu set neuron buatan dan sepenuhnya terhubung ke setiap neuron di lapisan yang sama. Akhirnya, ada lapisan yang sepenuhnya terhubung atau lapisan keluaran untuk menampilkan hasilnya.
Di sisi lain, CNN mengatur lapisan dalam tiga dimensi - lebar, kedalaman, dan tinggi. Di sini, lapisan dari neuron hanya terhubung ke neuron di wilayah kecil alih-alih berhubungan dengan masing-masing neuron di lapisan berikutnya. Akhirnya, hasil akhir diwakili oleh satu vektor dengan skor probabilitas dan hanya memiliki dimensi kedalaman.
Sekarang, Anda mungkin bertanya apa "konvolusi" di CNN.
Nah, konvolusi mengacu pada operasi matematika untuk menggabungkan dua set data. Di CNN, konsep konvolusi diterapkan untuk memasukkan data ke dalam output peta fitur dengan menyaring informasi.
Ini membawa kita ke beberapa konsep dan terminologi penting yang digunakan dalam CNN.
- Filter : Juga dikenal sebagai pendeteksi fitur atau kernel, filter dapat memiliki dimensi tertentu, seperti 3×3. Ini melewati gambar input untuk melakukan perkalian matriks untuk setiap elemen untuk menerapkan konvolusi. Menerapkan filter ke setiap gambar pelatihan pada resolusi yang berbeda-beda ditambah output dari gambar yang berbelit-belit akan berfungsi sebagai input untuk lapisan berikutnya.
- Padding : Digunakan untuk memperluas matriks input ke batas matriks dengan memasukkan piksel palsu. Ini dilakukan untuk melawan fakta bahwa konvolusi mengurangi ukuran matriks. Misalnya, matriks 9x9 dapat berubah menjadi matriks 3x3 setelah penyaringan.
- Striding : Jika Anda ingin mendapatkan output yang lebih kecil dari input Anda, Anda dapat melakukan striding. Ini memungkinkan melewatkan area tertentu saat filter meluncur di atas gambar. Dengan melewatkan dua atau tiga piksel, Anda dapat menghasilkan jaringan yang lebih efisien dengan mengurangi resolusi spasial.
- Bobot dan Bias: CNN memiliki bobot dan bias di neuronnya. Sebuah model dapat mempelajari nilai-nilai tersebut saat pelatihan, dan nilainya tetap sama di seluruh lapisan yang diberikan untuk semua neuron. Ini menyiratkan bahwa setiap neuron tersembunyi mendeteksi fitur yang sama di area gambar yang berbeda. Akibatnya, jaringan menjadi lebih toleran saat menerjemahkan objek ke dalam gambar tertentu.
- ReLU : singkatan dari Rectified Linear Unit (ReLu) dan digunakan untuk pelatihan yang lebih efektif dan lebih cepat. Ini memetakan nilai negatif ke 0 dan mempertahankan nilai positif. Ini juga disebut aktivasi, karena jaringan hanya membawa fitur gambar yang diaktifkan ke lapisan berikutnya.
- Bidang reseptif: Dalam jaringan saraf, setiap neuron menerima input dari lokasi yang berbeda dari lapisan sebelumnya. Dan pada lapisan convolutional, setiap neuron menerima input dari area terbatas hanya dari lapisan sebelumnya, yang disebut bidang reseptif neuron. Dalam kasus lapisan FC, seluruh lapisan sebelumnya adalah bidang reseptif.
Dalam tugas komputasi dunia nyata, biasanya, konvolusi dilakukan dalam gambar 3D yang membutuhkan filter 3D.
Kembali ke CNN, itu terdiri dari bagian atau lapisan node yang berbeda. Setiap lapisan simpul memiliki ambang batas dan bobot dan terhubung ke yang lain. Setelah melebihi batas ambang batas, data dikirim ke lapisan berikutnya dalam jaringan ini.
Lapisan ini dapat melakukan operasi untuk mengubah data untuk mempelajari fitur yang relevan. Selain itu, operasi ini mengulangi ratusan lapisan berbeda yang terus belajar mendeteksi fitur lain dari suatu gambar.

Bagian-bagian dari CNN adalah:
- Lapisan input: Di sinilah input diambil, seperti gambar. Ini akan menjadi objek 3D dengan tinggi, lebar, dan kedalaman yang ditentukan.
- Satu/beberapa lapisan tersembunyi atau fase ekstraksi fitur: lapisan ini dapat berupa lapisan konvolusi, lapisan penyatuan, dan lapisan yang terhubung penuh.
- Lapisan keluaran: Di sini, hasilnya akan ditampilkan.
Melewati gambar melalui lapisan konvolusi diubah menjadi peta fitur atau peta aktivasi. Setelah mengonversi input, layer menggulung gambar dan meneruskan hasilnya ke layer berikutnya.
CNN akan melakukan banyak teknik konvolusi dan pooling untuk mendeteksi fitur selama fase ekstraksi fitur. Misalnya, jika Anda memasukkan gambar kucing, CNN akan mengenali empat kakinya, warna, dua matanya, dll.
Selanjutnya, lapisan yang sepenuhnya terhubung di CNN akan bertindak sebagai pengklasifikasi atas fitur yang diekstraksi. Berdasarkan apa yang diprediksi oleh algoritma pembelajaran mendalam tentang gambar, lapisan akan menghasilkan hasilnya.
Kelebihan CNN

Akurasi Lebih Tinggi
CNN menawarkan akurasi yang lebih tinggi daripada jaringan saraf biasa yang tidak menggunakan konvolusi. CNN sangat membantu, terutama ketika tugas melibatkan banyak data, video dan pengenalan gambar, dll. Mereka menghasilkan hasil dan prediksi yang sangat tepat; oleh karena itu, penggunaannya meningkat di berbagai sektor.

Efisiensi Komputasi

CNN menawarkan tingkat efisiensi komputasi yang lebih tinggi daripada jaringan saraf biasa lainnya. Ini karena menggunakan proses konvolusi. Mereka juga menggunakan pengurangan dimensi dan berbagi parameter untuk membuat model lebih cepat dan lebih mudah untuk digunakan. Teknik-teknik ini juga dapat dioptimalkan untuk bekerja pada perangkat yang berbeda, baik itu smartphone atau laptop Anda.
Ekstraksi Fitur
CNN dapat dengan mudah mempelajari fitur gambar tanpa memerlukan rekayasa manual. Anda dapat memanfaatkan CNN yang telah dilatih sebelumnya dan mengelola bobot dengan memasukkan data ke dalamnya saat mengerjakan tugas baru, dan CNN akan menyesuaikannya dengan mulus.
Aplikasi CNN
CNN digunakan di industri yang berbeda untuk banyak kasus penggunaan. Beberapa aplikasi CNN di kehidupan nyata meliputi:
Klasifikasi Gambar

CNN digunakan secara luas dalam klasifikasi citra. Ini dapat mengenali fitur berharga dan mengidentifikasi objek dalam gambar tertentu. Oleh karena itu, ini digunakan di sektor-sektor seperti perawatan kesehatan, khususnya MRI. Selain itu, teknologi ini digunakan dalam pengenalan digit tulisan tangan, yang merupakan salah satu kasus penggunaan CNN paling awal dalam visi komputer.
Deteksi Objek
CNN dapat mendeteksi objek dalam gambar secara real time dan juga memberi label dan mengklasifikasikannya. Oleh karena itu, teknik ini digunakan secara luas pada kendaraan otomatis. Ini juga memungkinkan rumah pintar dan pejalan kaki untuk mengenali wajah pemilik kendaraan. Ini juga digunakan dalam sistem pengawasan bertenaga AI untuk mendeteksi dan menandai objek.

Pencocokan Audiovisual
Bantuan CNN dalam pencocokan audiovisual membantu meningkatkan platform streaming video seperti Netflix, YouTube, dll. Ini juga membantu memenuhi permintaan pengguna seperti "lagu cinta oleh Elton John".
Pengenalan suara

Selain gambar, CNN sangat membantu dalam pemrosesan bahasa alami (NLP) dan pengenalan suara. Contoh nyata dari hal ini adalah Google yang menggunakan CNN dalam sistem pengenalan ucapannya.
Rekonstruksi Objek
CNN dapat digunakan dalam pemodelan 3D objek nyata dalam lingkungan digital. Model CNN juga dapat membuat model wajah 3D menggunakan gambar. Selain itu, CNN berguna dalam membangun kembaran digital di bidang biotek, manufaktur, biotek, dan arsitektur.
Penggunaan CNN di berbagai sektor meliputi:
- Perawatan Kesehatan: Penglihatan komputer dapat digunakan dalam radiologi untuk membantu dokter mendeteksi tumor kanker dengan efisiensi yang lebih baik pada seseorang.
- Pertanian: Jaringan dapat memanfaatkan gambar dari satelit buatan seperti LSAT dan memanfaatkan data ini untuk mengklasifikasikan tanah subur. Ini juga membantu memprediksi tingkat kesuburan tanah dan mengembangkan strategi yang efektif untuk memaksimalkan hasil.
- Pemasaran: Aplikasi media sosial dapat menyarankan seseorang dalam gambar yang diposting di profil seseorang. Ini membantu Anda menandai orang di album foto Anda.
- Ritel: Platform e-niaga dapat menggunakan pencarian visual untuk membantu merek merekomendasikan item relevan yang ingin dibeli oleh pelanggan target.
- Otomotif: CNN menemukan penggunaan di mobil untuk meningkatkan keselamatan penumpang dan pengemudi. Itu dilakukan dengan bantuan fitur seperti deteksi garis jalur, deteksi objek, klasifikasi gambar, dll. Ini juga membantu dunia mobil self-driving untuk lebih berkembang.
Sumber Daya untuk Mempelajari CNN
Kursus:
Coursera memiliki kursus ini di CNN yang dapat Anda pertimbangkan untuk diambil. Kursus ini akan mengajarkan Anda bagaimana visi komputer telah berkembang selama bertahun-tahun dan beberapa aplikasi CNN di dunia modern.
Amazon:
Anda dapat membaca buku dan kuliah ini untuk mempelajari lebih lanjut tentang CNN:
- Neural Networks dan Deep Learning: Ini mencakup model, algoritma, dan teori pembelajaran mendalam dan jaringan saraf.
Pratinjau | Produk | Peringkat | Harga | |
---|---|---|---|---|
![]() | Jaringan Syaraf Tiruan dan Pembelajaran Mendalam: Buku Ajar | $49,00 | Beli di Amazon |
- Panduan Jaringan Saraf Konvolusi untuk Visi Komputer: Buku ini akan mengajarkan Anda aplikasi CNN dan konsepnya.
Pratinjau | Produk | Peringkat | Harga | |
---|---|---|---|---|
![]() | Panduan Jaringan Saraf Konvolusi untuk Computer Vision (Kuliah Sintesis tentang Computer Vision) | $49,26 | Beli di Amazon |
- Jaringan Neural Convolutional Hands-on dengan Tensorflow: Anda dapat memecahkan berbagai masalah dalam visi komputer menggunakan Python dan TensorFlow dengan bantuan buku ini.
Pratinjau | Produk | Peringkat | Harga | |
---|---|---|---|---|
![]() | Jaringan Neural Convolutional Hands-On dengan TensorFlow: Memecahkan masalah visi komputer dengan pemodelan... | $15,24 | Beli di Amazon |
- Pembelajaran Mendalam Terapan Tingkat Lanjut: Buku ini akan membantu Anda memahami CNN, pembelajaran mendalam, dan aplikasi lanjutannya, termasuk deteksi objek.
Pratinjau | Produk | Peringkat | Harga | |
---|---|---|---|---|
![]() | Pembelajaran Mendalam Terapan Tingkat Lanjut: Jaringan Saraf Konvolusi dan Deteksi Objek | $23,74 | Beli di Amazon |
- Convolutional Neural Networks dan Recurrent Neural Networks: Buku ini akan mengajarkan Anda tentang CNN dan RNN dan bagaimana membangun jaringan ini.
Pratinjau | Produk | Peringkat | Harga | |
---|---|---|---|---|
![]() | Jaringan Saraf Konvolusi dan Jaringan Saraf Berulang: Jaringan Saraf Konvolusi dan... | $1,99 | Beli di Amazon |
Kesimpulan
Jaringan saraf convolutional adalah salah satu bidang yang muncul dari kecerdasan buatan, pembelajaran mesin, dan pembelajaran mendalam. Ini memiliki berbagai aplikasi di dunia saat ini di hampir setiap sektor. Melihat penggunaannya yang semakin meningkat, diharapkan dapat lebih berkembang dan lebih berguna dalam mengatasi masalah dunia nyata.