Arsitektur CNN Dasar: Menjelaskan 5 Lapisan Jaringan Neural Convolutional
Diterbitkan: 2020-12-07Daftar isi
pengantar
Dalam beberapa tahun terakhir industri TI, ada permintaan besar untuk satu set keterampilan tertentu yang dikenal sebagai Deep Learning. Deep Learning subset dari Machine Learning yang terdiri dari algoritma yang terinspirasi oleh fungsi otak manusia atau jaringan saraf.
Struktur ini disebut sebagai Neural Networks. Ini mengajarkan komputer untuk melakukan apa yang secara alami datang ke manusia. Deep learning, ada beberapa jenis model seperti Artificial Neural Networks (ANN), Autoencoders, Recurrent Neural Networks (RNN) dan Reinforcement Learning. Namun ada satu model tertentu yang telah banyak berkontribusi di bidang computer vision dan analisis citra yaitu Convolutional Neural Networks (CNN) atau ConvNets.
CNN adalah kelas Deep Neural Networks yang dapat mengenali dan mengklasifikasikan fitur tertentu dari gambar dan banyak digunakan untuk menganalisis gambar visual. Aplikasi mereka berkisar dari pengenalan gambar dan video, klasifikasi gambar, analisis citra medis, visi komputer dan pemrosesan bahasa alami.
Istilah 'Konvolusi' dalam CNN menunjukkan fungsi matematika konvolusi yang merupakan jenis khusus dari operasi linier di mana dua fungsi dikalikan untuk menghasilkan fungsi ketiga yang menyatakan bagaimana bentuk satu fungsi dimodifikasi oleh yang lain. Secara sederhana, dua gambar yang dapat direpresentasikan sebagai matriks dikalikan untuk memberikan output yang digunakan untuk mengekstrak fitur dari gambar.
Pelajari Pembelajaran Mesin online dari Universitas top dunia – Magister, Program Pascasarjana Eksekutif, dan Program Sertifikat Tingkat Lanjut di ML & AI untuk mempercepat karier Anda.
Pelajari: Pengantar Pembelajaran Mendalam & Jaringan Neural

Arsitektur Dasar
Ada dua bagian utama dari arsitektur CNN
- Alat konvolusi yang memisahkan dan mengidentifikasi berbagai fitur gambar untuk analisis dalam proses yang disebut Ekstraksi Fitur
- Lapisan yang sepenuhnya terhubung yang memanfaatkan output dari proses konvolusi dan memprediksi kelas gambar berdasarkan fitur yang diekstraksi pada tahap sebelumnya.
Sumber
Lapisan Konvolusi
Ada tiga jenis lapisan yang membentuk CNN yaitu lapisan convolutional, lapisan pooling, dan lapisan yang terhubung penuh (FC). Ketika lapisan-lapisan ini ditumpuk, arsitektur CNN akan terbentuk. Selain ketiga lapisan tersebut, ada dua parameter penting lainnya yaitu lapisan putus sekolah dan fungsi aktivasi yang didefinisikan di bawah ini.
1. Lapisan Konvolusi
Layer ini merupakan layer pertama yang digunakan untuk mengekstrak berbagai fitur dari citra masukan. Pada lapisan ini, operasi matematis konvolusi dilakukan antara gambar input dan filter dengan ukuran tertentu MxM. Dengan menggeser filter di atas gambar input, produk titik diambil di antara filter dan bagian-bagian dari gambar input sehubungan dengan ukuran filter (MxM).
Outputnya disebut sebagai Feature map yang memberi kita informasi tentang gambar seperti sudut dan tepi. Kemudian, peta fitur ini diumpankan ke lapisan lain untuk mempelajari beberapa fitur lain dari gambar masukan.
2. Lapisan Pengumpulan
Dalam kebanyakan kasus, Convolutional Layer diikuti oleh Pooling Layer. Tujuan utama dari lapisan ini adalah untuk mengurangi ukuran peta fitur yang berbelit-belit untuk mengurangi biaya komputasi. Ini dilakukan dengan mengurangi koneksi antar lapisan dan beroperasi secara independen pada setiap peta fitur. Tergantung pada metode yang digunakan, ada beberapa jenis operasi Pooling.
Di Max Pooling, elemen terbesar diambil dari peta fitur. Average Pooling menghitung rata-rata elemen di bagian Gambar berukuran standar. Jumlah total elemen di bagian yang telah ditentukan sebelumnya dihitung dalam Sum Pooling. Pooling Layer biasanya berfungsi sebagai jembatan antara Convolutional Layer dan FC Layer
Harus Dibaca: Ide Proyek Neural Network
3. Lapisan Terhubung Sepenuhnya
Lapisan Fully Connected (FC) terdiri dari bobot dan bias bersama dengan neuron dan digunakan untuk menghubungkan neuron antara dua lapisan yang berbeda. Lapisan ini biasanya ditempatkan sebelum lapisan keluaran dan membentuk beberapa lapisan terakhir dari Arsitektur CNN.
Dalam hal ini, gambar input dari lapisan sebelumnya diratakan dan diumpankan ke lapisan FC. Vektor yang diratakan kemudian mengalami beberapa lapisan FC lagi di mana operasi fungsi matematika biasanya berlangsung. Pada tahap ini, proses klasifikasi mulai berlangsung.
4. Putus sekolah
Biasanya, ketika semua fitur terhubung ke lapisan FC, hal itu dapat menyebabkan overfitting pada dataset pelatihan. Overfitting terjadi ketika model tertentu bekerja dengan sangat baik pada data pelatihan yang menyebabkan dampak negatif pada kinerja model saat digunakan pada data baru.
Untuk mengatasi masalah ini, lapisan dropout digunakan di mana beberapa neuron dijatuhkan dari jaringan saraf selama proses pelatihan yang mengakibatkan pengurangan ukuran model. Saat melewati dropout 0,3, 30% dari node dikeluarkan secara acak dari jaringan saraf.
5. Fungsi Aktivasi
Terakhir, salah satu parameter terpenting dari model CNN adalah fungsi aktivasi. Mereka digunakan untuk mempelajari dan memperkirakan segala jenis hubungan yang berkesinambungan dan kompleks antara variabel jaringan. Dengan kata sederhana, ia memutuskan informasi model mana yang harus ditembakkan ke arah depan dan mana yang tidak boleh di ujung jaringan.

Ini menambahkan non-linearitas ke jaringan. Ada beberapa fungsi aktivasi yang umum digunakan seperti fungsi ReLU, Softmax, tanH dan Sigmoid. Masing-masing fungsi tersebut memiliki kegunaan tertentu. Untuk model CNN klasifikasi biner, fungsi sigmoid dan softmax lebih disukai daripada untuk klasifikasi multi-kelas, umumnya digunakan softmax.
Arsitektur CNN LeNet-5
Pada tahun 1998, arsitektur LeNet-5 diperkenalkan dalam sebuah makalah penelitian berjudul “Pembelajaran Berbasis Gradien yang Diterapkan pada Pengenalan Dokumen” oleh Yann LeCun, Leon Bottou, Yoshua Bengio, dan Patrick Haffner. Ini adalah salah satu arsitektur CNN paling awal dan paling dasar.
Terdiri dari 7 lapisan. Lapisan pertama terdiri dari gambar masukan dengan dimensi 32x32. Itu dililitkan dengan 6 filter ukuran 5x5 sehingga menghasilkan dimensi 28x28x6. Layer kedua adalah operasi Pooling yang memfilter ukuran 2×2 dan langkah 2. Oleh karena itu, dimensi gambar yang dihasilkan akan menjadi 14x14x6.
Demikian pula, lapisan ketiga juga terlibat dalam operasi konvolusi dengan 16 filter ukuran 5x5 diikuti oleh lapisan penyatuan keempat dengan ukuran filter serupa 2x2 dan langkah 2. Dengan demikian, dimensi gambar yang dihasilkan akan dikurangi menjadi 5x5x16.
Setelah dimensi gambar diperkecil, lapisan kelima adalah lapisan konvolusi yang terhubung penuh dengan 120 filter masing-masing berukuran 5×5. Pada layer ini, masing-masing dari 120 unit pada layer ini akan dihubungkan dengan 400 (5x5x16) unit dari layer sebelumnya. Lapisan keenam juga merupakan lapisan yang terhubung penuh dengan 84 unit.
Lapisan ketujuh terakhir akan menjadi lapisan keluaran softmax dengan 'n' kemungkinan kelas tergantung pada jumlah kelas dalam kumpulan data.
Sumber
Diagram di atas adalah representasi dari 7 lapisan Arsitektur CNN LeNet-5.
Di bawah ini adalah cuplikan kode Python untuk membangun arsitektur CNN LeNet-5 menggunakan perpustakaan keras dengan kerangka kerja TensorFlow

Dalam Pemrograman Python, tipe model yang paling umum digunakan adalah tipe Sequential. Ini adalah cara termudah untuk membangun model CNN dengan keras. Ini memungkinkan kita untuk membangun model lapis demi lapis. Fungsi 'add()' digunakan untuk menambahkan lapisan ke model. Seperti yang telah dijelaskan di atas, untuk arsitektur LeNet-5, terdapat dua pasangan Convolution dan Pooling yang diikuti oleh layer Flatten yang biasanya digunakan sebagai penghubung antara Convolution dan layer Dense.
Lapisan padat adalah yang paling banyak digunakan untuk lapisan keluaran. Aktivasi yang digunakan adalah 'Softmax' yang memberikan probabilitas untuk setiap kelas dan dijumlahkan seluruhnya menjadi 1. Model akan membuat prediksi berdasarkan kelas dengan probabilitas tertinggi.
Ringkasan model ditampilkan seperti di bawah ini.
Kesimpulan
Oleh karena itu, dalam artikel ini kita telah memahami struktur dasar CNN, arsitekturnya, dan berbagai lapisan yang membentuk model CNN. Juga, kita telah melihat contoh arsitektur dari model LeNet-5 yang sangat terkenal dan tradisional dengan program Python-nya.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang kursus pembelajaran mesin, lihat Program PG Eksekutif IIIT-B & upGrad dalam Pembelajaran Mesin & AI yang dirancang untuk para profesional yang bekerja dan menawarkan 450+ jam pelatihan ketat, 30+ studi kasus & tugas, Status Alumni IIIT-B, 5+ proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.
Apa fungsi aktivasi di CNN?
Fungsi aktivasi merupakan salah satu komponen yang paling vital dalam model CNN. Mereka digunakan untuk mempelajari dan memperkirakan segala bentuk asosiasi variabel-ke-variabel jaringan yang berkelanjutan dan kompleks. Secara sederhana, ini menentukan informasi model mana yang harus mengalir ke arah depan dan mana yang tidak boleh di ujung jaringan. Ini memberikan jaringan non-linearitas. Fungsi ReLU, Softmax, tanH, dan Sigmoid adalah beberapa fungsi aktivasi yang paling sering digunakan. Semua fungsi ini memiliki kegunaan yang berbeda. Untuk model CNN 2-kelas, fungsi sigmoid dan softmax lebih disukai, sedangkan softmax biasanya digunakan untuk klasifikasi multi-kelas.
Apa saja komponen dasar dari arsitektur jaringan saraf convolutional?
Lapisan input, lapisan output, dan beberapa lapisan tersembunyi membentuk jaringan konvolusi. Neuron di lapisan jaringan konvolusi disusun dalam tiga dimensi, tidak seperti yang ada di jaringan saraf standar (dimensi lebar, tinggi, dan kedalaman). Ini memungkinkan CNN untuk mengubah volume input tiga dimensi menjadi volume output. Lapisan konvolusi, penyatuan, normalisasi, dan terhubung penuh membentuk lapisan tersembunyi. Beberapa lapisan konv digunakan di CNN untuk memfilter volume input ke tingkat abstraksi yang lebih tinggi.
Apa manfaat dari arsitektur CNN standar?
Sementara arsitektur jaringan tradisional hanya terdiri dari lapisan konvolusi yang ditumpuk, arsitektur yang lebih baru mencari cara baru dan baru untuk membangun lapisan konvolusi untuk meningkatkan efisiensi pembelajaran. Arsitektur ini memberikan rekomendasi arsitektur umum bagi praktisi pembelajaran mesin untuk beradaptasi untuk menangani berbagai masalah visi komputer. Arsitektur ini dapat digunakan sebagai ekstraktor fitur yang kaya untuk klasifikasi gambar, identifikasi objek, segmentasi gambar, dan berbagai tugas lanjutan lainnya.