• Tidak ada hasil yang ditemukan

Convolutional Neural Network (CNN) adalah pengembangan dari Multilayer Perceptron (MLP) yang termasuk dalam neural network bertipe feed forward (bukan berulang).

Convolutional Neural Network adalah neural network yang didesain untuk mengolah data dua dimensi. CNN termasuk dalam jenis Deep Neural Network karena kedalaman jaringan yang tinggi dan banyak diaplikasikan pada data citra. (Suartika, et.al, 2016). CNN digunakan untuk menganalisis gambar visual, mendeteksi dan mengenali objeck pada image, yang merupakan vektor berdimensi tinggi yang akan melibatkan banyak parameter untuk mencirikan jaringan.

Secara garis besar,CNN tidak terlalu jauh berbeda dengan neural network biasanya.

CNN terdiri dari neuron yang memiliki weight, bias dan activation function. Arsitektur Convolutional Neural Network dapat dilihat pada gambar 2.4.

Gambar 2.4.Arsitektur Convolutional Neural Network (Peng, et al, 2017) Dari gambar 2.4. dapat dilihat ada tiga tipe layer dalam convolutional network:

2.5.1. Convolution Layer

Convolutional Layer merupakan layer yang pertama kali menerima gambar yang diinputkan.

Layer ini melakukan proses konvolusi menggunakan sebuah filter. Filter ini diinisialisasi dengan nilai tertentu (random atau menggunakan teknik tertentu seperti Glorot), dan nilai dari filter inilah yang menjadi parameter yang akan di-update dalam proses learning. Filter ini akan bergeser ke seluruh bagian gambar. Pergeseran tersebut akan menghasilkan dot product antara input dan nilai dari filter tersebut seperti pada gambar 2.5.

12

Gambar 2.5.Operasi dot (Dharmadi, 2018)

Dengan menggeser filter keseluruh bagian gambar, dihasilkan sebuah output yang disebut sebagai activation map atau feature map (Nurfita, 2018). Proses konvolusi dapat dilihat pada gambar 2.6.

Gambar 2.6.Proses Konvolusi dengan 2 filter untuk menghasilkan Feature Map / Activation map

(Karpathy, 2018).

Pergeseran filter ditentukan oleh sebuah parameter bernama stride dan padding. Stride menentukan jumlah pixels yang bergeser secara horizontal dan vertikal. Semakin kecil stride yang digunakan, maka akan mendapatkan hasil yang lebih detail namun juga membutuhkan komputasi yang lebih baik. Namun perlu diperhatikan bahwa dengan menggunakan stride yang kecil kita tidak selalu akan mendapatkan performa yang baik. (Sena, 2017b).

Sedangkan Padding atau adalah parameter yang menentukan jumlah pixels (berisi nilai 0) yang akan ditambahkan di setiap sisi dari input. Hal ini digunakan dengan tujuan untuk memanipulasi dimensi output dari convolutional layer (Feature Map) agar tetap sama seperti dimensi input atau setidaknya tidak berkurang secara drastis, sehingga kita bisa menggunakan conv. layer yang lebih dalam/deep sehingga lebih banyak features yang berhasil diekstrak, dan meningkatkan performa dari model karena filter akan fokus pada informasi yang sebenarnya yaitu yang berada di antara zero padding tersebut.

Untuk menghitung dimensi dari feature map dapat menggunakan persamaan 2.1.

𝒐𝒖𝒕𝒑𝒖𝒕 = 𝑡 βˆ’ 𝑭 + πŸπ‘· diulang dengan beberapa filter berbeda, hingga menghasilkan β€œgambar” baru yang merupakan kumpulan dari activation maps seperti pada gambar 2.7

14

Gambar 2.7 Activation Map (Dharmadi, 2018)

Beberapa hal yang perlu diperhatikan pada convolutional layer diantaranya:

ο‚· Ukuran ketebalan dari sebuah filter selalu mengikuti ketebalan/volume dari gambar input yang digunakan.

ο‚· Tinggi (dan lebar) filter (F) pada umumnya berukuran ganjil. Secara intuisi, filter berukuran ganjil memberikan representasi yang lebih baik karena mencakup bagian kiri dan kanan yang β€œseimbang”.

ο‚· Dalam sebuah convolutional layer, filter-filter yang digunakan berukuran sama, untuk kemudahan proses komputasi.

ο‚· Jumlah filter (K) yang digunakan dalam sebuah convolutional layer adalah kelipatan 2 (powers of 2). Beberapa library memiliki subroutine khusus untuk komputasi kernel/dimensi berkelipatan 2 yang dapat meningkatkan efisiensi.

ο‚· Besaran zero padding (P) umumnya menyesuaikan agar ukuran spasial dari output yang dihasilkan tetap sama dengan ukuran spasial input. (P=

F-1/2)

Secara keseluruhan, bila input sebuah convolutional layer adalah gambar dengan ukuran W1 x H1 x D1, output dari layer tersebut adalah sebuah β€œgambar” baru dengan ukuran W2 x H2 x D2, seperti pada persamaan 2.2

π‘ΎπŸ = π‘ΎπŸ βˆ’ 𝑭 + πŸπ‘·

𝑺 + 𝟏 = π‘―πŸ

π‘«πŸ = 𝑲

(2.2)

Keterangan:

ο‚· K adalah jumlah filter yang digunakan.

ο‚· F adalah ukuran spasial dari filter (lebar/tinggi).

ο‚· S adalah stride, atau besar pergeseran filter dalam konvolusi.

ο‚· P adalah padding, jumlah penambahan nol pada gambar.

2.5.2. Pooling layer

Pooling layer menerima output dari convolutional layer, pada layer ini dimensi data akan dikurangi (downsampling). Prinsipnya pooling layer terdiri dari filter dengan ukuran tertentu dan stride / langkah kemudian bergeser ke seluruh area feature map.

Tujuan dari penggunaan pooling layer adalah mengurangi dimensi dari feature map (downsampling), sehingga mempercepat komputasi karena parameter yang harus diupdate semakin sedikit dan mengatasi overfitting(Sena, 2017). Gambar 2.8.

menampilkan contoh downsampling.

Gambar 2. 8. Contoh Downsampling (Santos, 2018)

Metode pooling yang biasa digunakan adalah Average pooling dan max pooling (Scherer, et.al. 2010). Average Pooling akan memilih nilai rata-rata pada filter akan dipilih pada saat pergeseran. Sedangkan Max pooling membagi output convolutional layer menjadi beberapa grid kemudian setiap pergeseran filter akan mengambil nilai terbesar dari setiap grid. Tergantung pada panjang langkahnya, gambar yang dihasilkan adalah sebagian kecil dari ukuran aslinya yang berguna untuk mengurangi dimensi data, sehingga mengurangi jumlah parameter pada langkah selanjutnya (Shukla, Nishant, 2018). Penggunaan Pooling layer tergantung pada jenis data set yang digunakan (Rahman, 2017). Gambar 2.9. menampilkan max pooling layer dan average layer.

16

Gambar 2.9.Max Pooling dan Average Pooling (Rahman, 2017)

Sebagai contoh, input ke pooling layer memiliki ukuran W1 x H1 x D1. Untuk mendapatkan ukuran output dari pooling layer dapat menggunakan persamaan 2.3.

π‘ΎπŸ = π‘ΎπŸ βˆ’ 𝑭

𝑺 + 𝟏 = π‘―πŸ π‘«πŸ = π‘«πŸ

(2.2)

*padding tidak umum dilakukan pada pooling layer, namun mungkin ditemukan.

2.5.3. Fully connected layer

Fully connected layer mengambil input dari hasil output pooling layer yang berupa feature map. Feature map tersebut masih berbentuk multidimensional array. Oleh karena itu, lapisan ini akan melakukan reshape feature map dan menghasilkan vektor sebanyak n- dimensi dimana n adalah jumlah kelas output yang harus dipilih program.

Misalnya, jika lapisan terdiri dari 500 neuron, maka akan diterapkan fungsi aktivasi softmax yang mengembalikan daftar probabilitas terbesar untuk masing-masing 10 label kelas sebagai klasifikasi akhir dari jaringan(Anuj Dutt, 2017). Gambar 2.10 menampilkan contoh fully connected layer.

Gambar 2.10.Contoh Fully Connected Layer (Murray, 2017)

Dokumen terkait