Penerapan Deep Learning Menggunakan Convolutional Neural Network (CNN)

mukhlishatun nada
6 min readJan 2, 2019

--

DEEP LEARNING (Source: Google)

Deep Learning merupakan salah satu bidang dari Machine Learning yang memanfaatkan jaringan syaraf tiruan untuk implementasi permasalahan dengan dataset yang besar. Teknik Deep Learning memberikan arsitektur yang sangat kuat untuk Supervised Learning. Dengan menambahkan lebih banyak lapisan maka model pembelajaran tersebut bisa mewakili data citra berlabel dengan lebih baik. Pada Machine Learning terdapat teknik untuk menggunakan ekstraksi fitur dari data pelatihan dan algoritma pembelajaran khusus untuk mengklasifikasi citra maupun untuk mengenali suara. Namun, metode ini masih memiliki beberapa kekurangan baik dalam hal kecepatan dan akurasi. Aplikasi konsep jaringan syaraf tiruan yang dalam (banyak lapisan) dapat ditangguhkan pada algoritma Machine Learning yang sudah ada sehingga komputer sekarang bisa belajar dengan kecepatan, akurasi, dan skala yang besar. Prinsip ini terus berkembang hingga Deep Learning semakin sering digunakan pada komunitas riset dan industri untuk membantu memecahkan banyak masalah data besar seperti Computer vision, Speech recognition, dan Natural Language Processing. Feature Engineering adalah salah satu fitur utama dari Deep Learning untuk mengekstrak pola yang berguna dari data yang akan memudahkan model untuk membedakan kelas. Feature Engineering juga merupakan teknik yang paling penting untuk mencapai hasil yang baik pada tugas prediksi. Namun, sulit untuk dipelajari dan dikuasai karena kumpulan data dan jenis data yang berbeda memerlukan pendekatan teknik yang berbeda juga. Algoritma yang digunakan pada Feature Engineering dapat menemukan pola umum yang penting untuk membedakan antara kelas Dalam Deep Learning, metode CNN atau Convolutional Neural Network sangatlah bagus dalam menemukan fitur yang baik pada citra ke lapisan berikutnya untuk membentuk hipotesis nonlinier yang dapat meningkatkan kekompleksitasan sebuah model. 21 Model yang kompleks tentunya akan membutuhkan waktu pelatihan yang lama sehingga di dunia Deep Learning pengunaan GPU sudah sangatlah umum (Danukusumo, 2017).

Convolutional Neural Network (CNN) merupakan salah satu metode Deep learning (DL) yang dapat digunakan untuk mendeteksi dan mengenali sebuah objek pada sebuah citra digital.

convolutional Neural Network dapat digunakan untuk membaca, mendeteksi dan mengenali sebuah objek pada sebuah citra digital (data berupa gambar) yaitu dengan cara mengubah struktur gambar menjadi matrix array atau pixel, maksudnya data gambar yang dibaca akan diubah oleh neural network
menjadi sebuah matix dengan nilai pixel tergantung pada intensitas pixel pada setiap titik.

Didalam convolutional Neural Network terdapat stride dan padding. dimana Stride adalah jumlah piksel yang digunakan untuk menggeser filter secara horizontal atau vertikal.Dengan kata lain, dalam hal ini stride memindahkan filter satu piksel pada setiap langkah untukmenghitung output konvolusi berikutnya. sedangkan Padding adalah modifikasi yang umum digunakan yang memungkinkan ukuran input disesuaikan dengan kebutuhan.

Convolutional Neural Network (CNN) merupakan pengembangan dari multilayer perceptron (MLP) yang didesain untuk mengolah data dua dimensi dalam bentuk citra. CNN ini termasuk kedalam jenis Deep Neural Network karena kedalaman jaringan yang tinggi dan banyak diaplikasikan pada data citra. Pada dasarnya klasifikasi citra dapat digunakan dengan MLP, akan tetapi dengan metode MLP kurang sesuai untuk digunakan karena tidak menyimpan informasi spasial dari data cita dan menganggap setiap piksel adalah fitur yang independen sehingga menghasilkan hasil yang kurang baik. Penelitian awal yang mendasari oenemuan CNN ini pertama kali dilakukan oleh Hubel dan Wiesel (Hubel & Wiesel, T, 1968) mengenai viual cortex pada indera penglihatan kucing. Secara teknis, CNN adalah sebuah arsitektur yang dapat dilatih dan terdiri dari beberapa tahap. Masukan (input) dan keluaran (output) dari setiap tahap adalah terdiri dari beberapa array yang biasa disebut feature map. Setiap tahap terdiri dari tiga layer yaitu konvolusi, fungsi aktivasi layer dan pooling layer. Berikut adalah jaringan arsitektur

Image result for Arsitektur Convolutional Neural Network
Arsitektur Convolutional Neural Network (Source: Google)

Arsitektur Convolutional Neural Network Berdasarkan gambar diatas, Tahap pertama pada arsitektur CNN adalah tahap konvolusi. Tahap ini dilakukan dengan menggunakan sebuah kernel dengan ukuran tertentu. Perhitungan jumlah kernel yang dipakai tergantung dari jumlah fitur yang dihasilkan. Kemudian dilanjutkan menuju fungsi aktivasi, biasanya menggunakan fungsi aktivasi ReLU ( Rectifier Linear Unit ), Selanjutnya setelah keluar dari proses fungsi aktivasi kemudian melalui proses pooling. Proses ini diulang beberapa kali sampai didapatkan peta fitur yang cukup untuk dilanjutkan ke fully connected neural network, dan dari fully connected network adalah output class. 3.7.1. Convolution Layer Convolution layer merupakan bagian dari tahap pada arsitektur CNN. Tahap ini melakukan operasi konvolusi pada output dari layer sebelumnya. Layer tersebut adalah proses utama yang mendasari jaringan arsitektur CNN. Konvolusi adalah istilah matematis dimana pengaplikasian sebuah fungsi pada output fungsi lain secara berulang. Operasi konvolusi merupakan operasi pada dua fungsi argumen bernilai nyata. Operasi ini menerapkan fungsi output sebagai Feature Map dari input citra. Input dan output ini dapat dilihat sebagai dua argumen bernilai riil. Operasi konvolusi dapat dituliskan sebagai berikut :

s(t) = (x*t) (t) = ∑ 𝑥(α) ∗ w(t − α) ∞ α=−∞

Keterangan :

S(t) = Fungsi hasil operasi konvolusi

X = Input 33

W = bobot (kernel)

Fungsi s(t) memberikan output tunggal berupa feature Map.

Argumen pertama adalah input yang merupakan x dan argumen kedua w sebagai kernel atau filter. Apabila dilihat input sebagai citra dua dimensi, maka bisa dikatakan t sebagai piksel dan menggantinya dengan i dan j. Maka dari itu, operasi untuk konvolusi ke input dengan lebih dari satu dimensi dapat menulis sebagai berikut :

s(i,j) = (K*I) (i,j) = ∑∞ ∑∞ 𝐼(𝑖 − 𝑚,𝑗 − 𝑛)𝐾(𝑚, 𝑛) (3.16) s(i,j) = (K*I) (i,j) = ∑∞ ∑∞ 𝐼(𝑖 + 𝑚,𝑗 + 𝑛)𝐾(𝑚, 𝑛)

Berdasarkan kedua persamaan diatas merupakan perhiutngan dasdar dalam opersai konvolusi, dengan i dan j adalah sebuah piksel dari citra. Perhitungan tersebut bersifat komulatif dan muncu saat K sebagai kernel, kemudian I sebagai input dan kernel yang dapat dibalik relatif terhadap input. Sebagai alternatif operasi konvolusi dapat dilihat sebagai perkalian perkalian matriks antara citra masukan dan kernel dimana keluarannya dihitung dengan dot product. Selain itu, penentuan volume output juga dapat ditentukan dari masing-masing lapisan dengan hyperparameters. Hyperparameter yang digunakan pada persamaan di bawah ini digunakan untuk menghitung banyaknya neuron aktivasi dalam sekali output. Perhatikan persamaan berikut

(𝑊 − 𝐹 + 2𝑃)/(𝑆 + 1)

Keterangan :

W = Ukuran volume gambar

F = Ukuran Filter

P = Nilai Padding yang digunakan

S = Ukuran Pergeseran (Stride) Berdasarkan persamaan di atas, dapat dihitung ukuran spasial dari volume output dimana hyperparameter yang dipakai adalah ukuran volume (W), filter (F), Stride yang diterapkan (S) dan jumlah padding nol yang digunakan (P). Stride merupakan nilai yang digunakan untuk menggeser filter melalui input citra dan 34 Zero Padding adalah nilai untuk mendapatkan angka nol di sekitar border citra. Berikut adalah operasi Convolutional Layer terdiri dari neuron yang tersusun sedemikian rupa sehingga membentuk sebuah filter dengan panjang dan tinggi (pixels). Sebagai contoh, layer pertama pada feature extraction layer biasanya adalah conv. Layers dengan ukuran 5x5x3. Panjang 5 pixels, tinggi 5 pixels dan tebal/jumlah 3 buah sesuai dengan channel dari image tersebut. Ketiga filter ini akan digeser keseluruh bagian dari gambar. Setiap pergeseran akan dilakukan operasi “dot” antara input dan nilai dari filter tersebut sehingga menghasilkan sebuah output atau biasa disebut sebagai activation map atau feature map. Perhatikan ilustrasi berikut :

Convolution Layer (Medium Samuel Sena, 2017)

Cara Kerja Layar Convolutional Pertama

gambar (matrix dengan nilai-nilai pixel) dimasukkan kedalam layer pertama. Pembacaan matriks. masukan dimulai di bagian atas kiri gambar. Berikutnya perangkat lunak memilih matriks yang lebih kecil, yang disebut filter. Kemudian filter menghasilkan layer, bergerak sepanjang gambar yang
dimasukkan. Filter bertugas memperbanyak nilai-nilai piksel yang asli.

Cara kerja Layar Convolutional Kedua

layer convolution kedua memiliki fungsi aktivasi.

--

--