Algoritma Convolutional Neural Network (CNN)

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

Bahkan pengguna hiddden layer pada Deep Learning mampu melampui performa metode tradisional yang telah dulu ada, khususnya pada sistem pengenalan pola.

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


Pengertian Convolutional Neural Network (CNN)

Apa itu algoritma Convolutional Nueral 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 memproses gambar. Algoritma ini dirancang khusus untuk memproses data piksel dan citra visual.
Algoritma Convolutional Neural Network memiliki neuron yang didesaun 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 convolutional 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 aktivitas, 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 diprediksi menjadi satu vektor probabilitas, yang diatur sepanjang dimensi depth.
Perbedaan arsitektur ini dapat dilihat pada gambar  berikut :


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-fitur seperti belang, 2 telinga, dan 4 buah kaku.
Operasi convolution dilakukan dengan menggeser filter di atas input. Di setiap lokasi, perkalian matriks dilakukan dan menjumlahkan hasilnya ke dalam peta fitur.
Ganabar dibawah menunjukkan cara kerja operasi convolution. Fiilter ini ditunjukkan dengan blok berwarna hijau bergerak diatas input (ditandai kotak berwarna biru) dan jumlah dari hasil operasi convolution masuk ke peta fitur (kotak merah).


Untuk memudahkan penjelasan, visualisasi diatas berbentuk 2 dimensi. Tetapi yang sebenarnya terjadi adalah CNN berjalan dalam 3 dimensi.
Setiap gambar dipresentasikan sebagai matriks 3D dengan dimensi width, height,dan depth. Depth merupakan dimensi karena adanya warna yang digunakan dalam gambar (RGB).


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 Nueral Network, output dari operasi convolution akan dilewatkan melalui fungsi aktivasi. Salah satunya menggunakan fungsi aktivasi ReLU.
Setelah convolution layer,  biasanya ditambahkan lapisan menyatuan (Pooling Layer) diantara layer CNN. Fungsi pooling adalah untuk mengurangi dimensi secara terus menerus serta mengurangu jumlah parameter dan komputasi dalam jaringan. Hal ini akan mempersingkat waktu training dan mengontrol terjadinya overfitting.
Jenis pooling yang sering digunakan pada CNN adalah Max Pooling. Pooling ini merupakan nilai maksimal 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 yang perlu kita tentukan, yakni :
  1. Ukuran kernel/filter, yaitu panjang dan lebar filter yang akan digunakan. Maksimal 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 mengkoversikan data 3 dimensi menjadi 1 dimensi, kita bisa menggunakan fungsi flatten.
Neuron pada Fully-Connected (FC) memiliki koneksi menyeluruh ke semua aktivitas 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, dimana filter meluncurkan diatas input dan menggabungkan niilai input + nilai filter pada peta fitur. Tujuan akhirnya adalah CNN mampu mengenali objek atau gambar baru berdasarkan fitur-fitur yang dideteksi.
Demikian penjelasan singkat mengenai algoritma CNN. Semoga bermanfaat.


Komentar

Postingan Populer