Lompat ke konten Lompat ke sidebar Lompat ke footer

Pengertian dan Cara Kerja Algoritma Convolutional Neural Network (CNN)

Dalam beberapa dekade terakhir, Deep Learning telah terbukti menjadi tools yang sangat powerful karena kemampuannya menangani data dalam jumlah besar.

Bahkan penggunaan hidden layer pada Deep Learning mampu melampaui performa metode tradisional yang telah dulu ada, khususnya pada sistem pengenalan pola. 

Salah satu algoritma  yang populer adalah Convolutional Neural Network (CNN)

Pengertian dan Cara Kerja Algoritma Convolutional Neural Network (CNN)

Di artikel ini, kita akan membahas tuntas apa itu algoritma Convolutional Neural Network (CNN).

Daftar Isi

Pengertian Convolutional Neural Network (CNN)

Apa itu algoritma Convolutional Neural Network?

Dalam bidang deep learning, Convolutional Neural Network (CNN/ConvNet) merupakan bagian dari deep neural network, yakni jenis jaringan saraf tiruan yang umumnya digunakan dalam pengenalan dan pemrosesan gambar. Algoritma ini dirancang khusus untuk memproses data piksel dan citra visual.

Algoritma Convolutional Neural Network memiliki neuron yang didesain untuk bekerja layaknya lobus frontal, khususnya area visual cortex pada otak manusia dan hewan.

Visual cortex yaitu area yang bertanggung jawab untuk memproses informasi dalam bentuk rangsangan visual. 

Hal ini yang membuat CNN cukup efektif digunakan dalam pemrosesan gambar dibanding algoritma neural network sejenis.

Kata convolution pada CNN yaitu sebuah operasi matematika pada dua buah fungsi yang kemudian menghasilkan fungsi ketiga. Fungsi ini menggabungkan 2 buah himpunan informasi dan menunjukkan bagaimana bentuk satu fungsi dimodifikasi oleh fungsi lainnya. 

CNN menggunakan convolution sebagai pengganti perkalian matriks umum. Operasi ini digunakan paling tidak pada satu lapisannya.

Neural network yang umum biasanya mengubah input dengan meletakkannya melalui rangkaian hidden layer. Setiap layer terdiri dari sekumpulan neuron, dimana setiap layer terhubung secara penuh dengan semua neuron pada layer sebelumnya. Terakhir, lapisan yang sudah terhubung sepenuhnya (output layer) digunakan untuk mewakili prediksi.

Tidak seperti neural network biasa, lapisan pada algoritma CNN memiliki neuron yang diatur dalam 3 dimensi: width, height, dan depth. Dimensi depth mengacu pada dimensi ketiga dari fungsi aktivasi, bukan kedalaman neural network atau jumlah total layer dalam jaringan.

Neuron-neuron dalam satu layer tidak terhubung ke semua neuron di layer berikutnya tetapi hanya ke sebagian kecil saja. Terakhir, hasil akhir akan direduksi menjadi satu vektor skor probabilitas, yang diatur sepanjang dimensi depth.

Perbedaan arsitektur ini dapat dilihat pada gambar berikut:

Sumber: https:/cs231n.github.io/convolutional-networks

Di sebelah kiri adalah visualisasi layer yang ada pada neural network biasa. Sedangkan sebelah kanan adalah visualisasi layer yang ada di CNN.

Dapat dilihat bahwa CNN memiliki dimensi depth yang membuatnya berbentuk 3D.

Komponen dan Cara Kerja Convolutional Neural Network

Arsitektur pada algoritma CNN terdiri atas 2 komponen, yakni komponen ekstraksi fitur dan komponen klasifikasi.

Komponen Ekstraksi Fitur

Pada bagian ini, algoritma akan menjalankan rangkaian operasi convolution dan pooling. Operasi ini akan mengumpulkan fitur-fitur yang terdeteksi. Misalnya jika kita punya gambar zebra, jaringan akan mengenali fitur seperti belang, 2 telinga, dan 4 buah kaki.

Operasi convolution merupakan bagian penting dari CNN. Pada algoritma CNN, convolution dijalankan pada data input menggunakan sebuah filter atau kernel yang kemudian digunakan untuk memetakan fitur.

Operasi convolution dilakukan dengan menggeser filter di atas input. Di setiap lokasi, perkalian matriks dilakukan dan menjumlahkan hasilnya ke dalam peta fitur.

Gambar di bawah menunjukkan cara kerja operasi convolution. Filter ditunjukkan dengan blok berwarna hijau bergerak di atas input (ditandai kotak berwarna biru) dan jumlah dari hasil operasi convolution masuk ke peta fitur (kotak merah).

Ilustrasi filter pada algoritma CNN
Sumber gambar: towardsdatascience.com

Untuk memudahkan penjelasan, visualiasi di atas berbentuk 2 dimensi. Tetapi yang sebenarnya terjadi adalah CNN berjalan dalam 3 dimensi.

Setiap gambar direpresentasikan sebagai matriks 3D dengan dimensi width, height, dan depth. Depth merupakan dimensi karena adanya warna yang digunakan dalam gambar (RGB).

Ilustrasi 3D Convolution layer CNN
Sumber gambar: towardsdatascience.com

Beberapa operasi convolution pada data input akan dilakukan menggunakan filter yang berbeda. Hasilnya juga akan disimpan dalam peta fitur yang berbeda. Namun pada akhirnya, semua peta fitur ini akan diambil dan digabungkan sebagai hasil akhir dari convolution layer.

Sama seperti Neural Network lainnya, kita menggunakan fungsi aktivasi (activation function) untuk membuat output kita menjadi non-linear. Dalam kasus Convolutional Neural Network, output dari operasi convolution akan dilewatkan melalui fungsi aktivasi. Salah satunya menggunakani fungsi aktivasi ReLU.

Setelah convolution layer, biasanya ditambahkan lapisan penyatuan (pooling layer) di antara layer CNN. Fungsi pooling adalah untuk mengurangi dimensi  secara terus menerus serta mengurangi jumlah parameter dan komputasi dalam jaringan. Hal ini akan mempersingkat waktu training dan mengontrol terjadinya overfitting.

Jenis pooling yang paling sering digunakan pada CNN adalah max pooling. Pooling ini mengambil nilai maksimum di setiap window/blok. Ukuran window/blok ini perlu ditentukan sebelumnya. Operasi ini mengurangi ukuran peta fitur dan hanya akan menyimpan informasi penting dan signifikan dalam proses klasifikasi nantinya.

Ketika menggunakan CNN, ada 4 hyperparameter penting yang perlu kita tentukan, yakni:

  1. Ukuran kernel/filter, yaitu panjang dan lebar filter yang akan digunakan. Misalnya 3x3
  2. Jumlah filter, yaitu seberapa banyak filter yang akan kita gunakan
  3. Stride, yaitu seberapa jauh step dari filter ketika digeser
  4. Padding

Visualisasi dari cara kerja convolution layer pada CNN dapat dilihat pada animasi berikut:

Komponen Klasifikasi

Setelah melalui convolution layer dan pooling layer, komponen selanjutnya adalah klasifikasi yang terdiri dari beberapa fully-connected layer (layer yang terhubung secara penuh). Layer ini hanya dapat menerima data berdimensi 1.

Untuk mengonversi data 3 dimensi menjadi 1 dimensi, kita bisa menggunakan fungsi flatten.

Neuron pada Fully-Connected (FC) memiliki koneksi menyeluruh ke semua aktivasi di layer sebelumnya. Bagian ini pada prinsipnya sama dengan Neural Network biasa.

Penutup

Sebagai kesimpulan, CNN sangat berguna untuk klasifikasi dan pengenalan gambar. Algoritma ini memiliki dua bagian utama: bagian ekstraksi fitur dan bagian klasifikasi.

Teknik khusus utama pada algoritma CNN adalah convolution, di mana filter meluncur di atas input dan menggabungkan nilai input + nilai filter pada peta fitur. Tujuan akhirnya adalah CNN mampu mengenali objek atau gambar baru berdasarkan fitur-fitur yang dideteksi.

Demikianlah penjelasan singkat mengenai algoritma CNN. Semoga bermanfaat.

Apabila tertarik mengenai artikel seputar algoritma deep learning seperti ini, Anda bisa mengunjungi rubrik Deep Learning atau membaca artikel lainnya mengenai algoritma Recurrent Neural Network (RNN) yang juga menarik untuk dibaca.

Salam!

Referensi:

Trivusi
Trivusi Ikatlah ilmu dengan menulis. Menebar manfaat dengan berbagi :)

3 komentar untuk "Pengertian dan Cara Kerja Algoritma Convolutional Neural Network (CNN)"

  1. kak mau tanya, perbedaan metode CNN sama metode Faster R CNN tuh apa ya?

    BalasHapus
    Balasan
    1. Beda dari segi kegunaan, CNN biasa umumnya dipakai untuk klasifikasi gambar, sedangkan R-CNN bisa dipakai untuk deteksi objek.

      R-CNN sebenarnya pengembangan dari CNN. Kekurangan CNN yaitu hanya mampu memberi info bahwa dalam citra terdapat sebuah objek tertentu, tapi tidak bisa menyimpulkan lokasi tepat objeknya jika lebih dari satu. Nah dari sini kemudian R-CNN muncul.

      Hapus
  2. kak mau tanya kalau cnn kan bisa mendeteksi berbagai fitur, jadi yang saya mau tanyakan bagaimana cnn bisa mengenali fitur yang ingin kita ambil sebagai parameternya itu adalah teksturnya, bukan dari warna atau ukuran bentuk buahnya mohon jawabannya kak

    BalasHapus


Komentar SPAM akan disensor. Harap gunakan kalimat yang tidak menjurus pada SARA dan pornografi.