BAB I. PENDAHULUAN
BAB 2. TINJAUAN PUSTAKA
2.5. Deep Learning
Deep Learning adalah perkembangan ilmu dari Jaringan Saraf Tiruan yang merupakan cabang ilmu dari machine learning (Ilahiyah et al., 2018). Deep Learning merupakan suatu proses pembelajaran yang mengacu pada hukum matematik dengan menggunakan algoritme dan dapat bekerja seperti layaknya manusia (Maulana et al., 2019).
Deep learning memiliki beberapa penerapan yang dapat digunakan dalam mengenali objek pada sebuah citra digital. Berikut merupakan beberapa algoritme penerapan deep learning:
1. Reccurent Neural Network
Metode Recurrent Neural Network adalah salah satu algoritme dari penerapan Deep Learning yang memiliki sistematika perhitungan bobot secara berulang.
Setiap input yang masuk dan menghasilkan suatu output, akan dimasukkan kembali menjadi sebuah input untuk diproses kembali di dalam hidden layer sehingga memperoleh output sesuai dengan target (Graves, 2012). Nilai akurasi yang dihasilkan RNN dapat lebih baik apabila dibandingkan dengan algoritme
sederhana lainnya karena yang dihitung akan lebih akurat mendekati persamaan setiap kata (Ivanedra et al., 2018).
Gambar 6 Arsitektur Recurrent Neural Network.
2. Probabilistic Neural Network
Metode Probabilistic Neural Network adalah salah satu algoritme dari penerapan deep learning yang digunakan untuk pengklasifikasian suatu objek pada citra digital. PNN dikategorikan sebagai pembelajaran yang tidak terawasi dan tidak memerlukan proses training yang berulang. Hal yang membedakan dengan algoritme yang lain adalah PNN sangat bergantung dengan parameter smoothing yang digunakan. Fungsi yang digunakan pada algoritme ini yaitu fungsi probabilitas, fungsi ini tidak membutuhkan dataset yang besar dalam pengerjaannya. Kelebihan dari algoritme ini adalah dapat mengatasi perbatasan yang terdapat pada backpropagation dengan mengatasi waktu training yang lama (Adyati, 2019).
Gambar 7 Arsitektur Probabilistic Neural Network.
3. Convolutional Neural Network
Metode Convolutional Neural Network dipercaya dapat mendeteksi dan mengenali suatu objek pada sebuah citra digital dengan sangat kompleks karena CNN sangat baik dalam menemukan fitur yang baik pada citra ke lapisan selanjutnya untuk membentuk hipotesis nonlinier yang dapat meningkatkan kekompleksitasan sebuah model. CNN merupakan pengembangan dari metode backpropagation yang tidak memerlukan proses komputasi yang besar (Alam et al., 2019). Secara teknis CNN adalah sebuah algoritme yang dapat dilatih dan terdiri dari beberapa tahap dengan input dan output dari setiap tahap terdiri dari beberapa array yang disebut dengan feature map. Setiap tahap pada CNN terdiri tiga layer yaitu Convolution, ReLu, dan Pooling layer. Berikut merupakan jaringan arsitektur Convolutional Neural Network:
Gambar 8 Arsitektur Convolutional Neural Network.
Berdasarkan gambar arsitektur CNN tersebut, tahap pertama pada arsitektur CNN adalah tahap Convolution. Tahap ini dilakukan dengan menggunakan sebuah kernel dengan ukuran tertentu. Perhitungan sebuah kernel yang digunakan tergantung dari banyak jumlah fitur yang dihasilkan. Selanjutnya dilakukan tahap fungsi aktivasi yang sering digunakan yaitu fungsi aktivasi ReLu (Rectifier Linear Unit), kemudian setelah keluar dari proses fungsi aktivasi tahap selanjutnya dilakukan proses pooling. Proses ini dilakukan berulang-ulang sampai didapatkan hasil peta fitur yang dilanjutkan ke fully connected neural network, dan dari fully connected network adalah output class
a. Convolution Layer
Convolution adalah sebuah proses untuk menghasilkan citra baru dengan cara citra dimanipulasi dengan mengunakan eksternal mask atau subwindows.
Convolution adalah jumlah keseluruhan total hasil kali antara setiap elemen yang memiliki posisi koodinat yang sama dalam dua vektor dan dua matriks (Madenda, 2015).
Gambar 9 Tahap Convolutional Layer.
Convolutional layer terdiri dari neuron yang tersusun dan membentuk sebuah filter dengan pixel. Operasi ini menerapkan fungsi output sebagai feature map dari input citra. Input dan ouput ini dapat dilihat sebagai dua argumen yang bernilai riil. Operasi Convolution dapat dituliskan sebagai berikut:
� � = � ∗ � � =
∝=−∞ � � ∗�(�− �)
∞
(4)
Keterangan:
S(t) = fungsi hasil opereasi convolution X = input
W = kernel
Fungsi dari hasil operasi convolution akan memberikan output tunggal berupa feature map. Argumen pertama adalah input yang merupakan x dan argumen kedua w sebagai kernel kemudian menggantikannya dengan i dan j.
Operasi convolution ke input dengan lebih dari satu dimensi dapat ditulis sebagai berikut:
� �� = � ∗ � �� = ∞ ∞ � � − �, � − � �(�, �)
� �� = � ∗ � �� = ∞ ∞ � � + �, � + � �(�, �)
(5)
Berdasarkan atas persamaan tersebut, i dan j dalam operasi convolution adalah sebuah pixel dari citra. Perhitungan pada persamaan ini bersifat komulatif kemudian muncul K sebagai kernel, dan I sebagai input dan kernel yang dapat dibalik relatif terhadap input. Penentuan pada volume output dapat ditentukan dari setiap lapisan menggunakan hyperparameter, yang digunakan untuk menghitung banyaknya jaringan syaraf aktivasi dalam sekali ouput. Berikut merupakan persmaan dari hyperparameter:
(�–�+ 2�)/(�+ 1)
(6)
Keterangan:
W = ukuran volume gambar F = ukutan filter
P = nilai padding yang digunakan S = ukuran pergeseran (stride)
Ukuran spasial dari volume output yaitu hyperparameter yang dipakai adalah ukuran volume, filter, stride, dan jumlah padding nol yang digunakan. Stride digunakan utuk menggeser filter melalui input citra dan zero padding untuk mendapatkan angka nol disekitar border citra.
b. Rectified Linear Unit
Rectified Linear Unit (ReLu) adalah salah satu fungsi aktivasi. Tujuan dari fungsi aktivasi yaitu untuk menghilangkan negatif citra menjadi nilai nol (Pangestu et al., 2020). Fungsi aktivasi ReLu adalah cara dasar dalam memperkenalkan non-linearitas ke dalam neuron (Rohim et al., 2019).
Fungsi ReLu dapat dirumuskan sebagai berikut:
ƒ � = � � ≥ 00 (� < 0)
(7)
c. Pooling Layer
Pooling adalah proses mereduksi ukuran sebuah data citra yang bertujuan untuk meningkatkan invariansi posisi dari fitur serta mempercepat komputasi dan mengontrol terjadinya overfitting (Rohim et al., 2019). Pooling layer terdiri dari sebuah filter dengan ukuran dan stride tertentu yang secara bergantian bergeser pada seluruh area feature map. Pooling yang digunakan yaitu average pooling dan max-pooling. Nilai yang diambil pada average pooling adalah nilai rata-rata, sedangkan pada max-pooling yang digunakan adalah nilai maksimal. Lapisan pooling umumnya menggunakan filter dengan ukuran 2x2 yang diaplikasikan dengan dua langkah dan beroperasi pada setiap irisan dari inputnya.
Gambar 10 Operasi Max-pooling.
Berdasarkan gambar tersebut operasi max-pooling menggunakan filter 2x2, dengan masukan 4x4 dari setiap empat angka pada input operasi tersebut diambil nilai maksimalnya yang kemudian akan dilanjutkan untuk mmembuat ukuan output baru menjadi 2x2. Output dari proses pooling layer tersebut yaitu matriks dengan dimensi yang lebih kecil dari citra awal.
d. Fully Connected Layer
Fully Connected Layer adalah lapisan terakhir yang menghubungkan masing-masing jaringan syaraf dari lapisan pooling ke setiap jaringan syaraf output atau sejumlah kelas klasifikasi. Pada lapisan ini digunakan pada Multi Layer Perceptron yang bertujuan untuk melakukan suatu transformasi pada dimensi data agar data dapat diklasifikasikan secara linier.
Gambar 11 Fully Connected Layer.
Pada gambar tersebut dapat dilihat sebelum hasil pooling digunakan sebagai input, hasil pooling terlebih dahulu diubah menjadi satuan vektor yang kemudian akan diproses ke dalam fully connected layer. Pada layer ini akan digunakan fungsi aktiasi sigmoid atau softmax untuk mendapatkan hasil klasifikasi dari citra yang masuk pada input layer CNN.