i
KLASIFIKASI CITRA DENGAN MENGGUNAKAN JARINGAN SARAF
KONVOLUSIONAL PADA PEMBELAJARAN DALAM
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Matematika
Oleh:
Marchelina
NIM: 173114042
PROGRAM STUDI MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2021
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
IMAGE CLASSIFICATION USING CONVOLUTIONAL NEURAL
NETWORK IN DEEP LEARNING
Thesis
Presented as a Partial Fulfillment of Requirements
To Obtain the Degree of Sarjana Matematika
Written by:
Marchelina
Student Number: 173114042
MATHEMATICS STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2021
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
SKRIPSI
KLASIFIKASI CITRA DENGAN MENGGUNAKAN JARINGAN SARAF
KONVOLUSIONAL PADA PEMBELAJARAN DALAM
Oleh:
Marchelina
Telah disetujui oleh:
Yogyakarta, 04 Agustus 2021
Pembimbing
Hartono, S.Si., M.Sc., Ph.D.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
SKRIPSI
KLASIFIKASI CITRA DENGAN MENGGUNAKAN JARINGAN SARAF
KONVOLUSIONAL PADA PEMBELAJARAN DALAM
Dipersiapkan dan ditulis oleh:
Marchelina
NIM:173114042
Telah dipertahankan di depan Panitia Penguji
Pada tanggal: 30 Juli 2021
dan dinyatakan telah memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap Tanda Tangan
Ketua: Drs. Haris Sriwindono, M.Kom, Ph.D.
Sekretaris: Dr. C. Kuntoro Adi. S.J., M.A., M.Sc. ……………
Anggota: Hartono, S.Si., M.Sc., Ph.D.
Yogyakarta, Agustus 2021
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian orang lain, kecuali yang telah disebutkan dalam kutipan
atau daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 04 Agustus 2021
Penulis,
Marchelina
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
MOTTO DAN HALAMAN PERSEMBAHAN
“There can be no lotus flower without the mud.”
-THINCH NHAT HANH
Karya ini saya persembahkan untuk:
Tuhan Yesus dan Bunda Maria yang senantiasa menyertai dan memberkati,
Papa, Mama, Pho-Pho, dan keluarga tercinta,
almamater yang saya banggakan, dan
semua orang yang senantiasa memberi dukungan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama : Marchelina
Nomor Mahasiswa :173114042
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul:
KLASIFIKASI CITRA DENGAN MENGGUNAKAN JARINGAN SARAF
KONVOLUSIONAL PADA PEMBELAJARAN DALAM
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan,
mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data,
mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media
lain untuk kepentingan akademis tanpa perlu meminta izin dari saya maupun
memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai
penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal, 04 Agustus 2021.
Yang menyatakan
(Marchelina)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
KATA PENGANTAR
Puji syukur dan terima kasih yang amat besar penulis sampaikan kepada
Allah Bapa di Surga. Atas segala kasih karunia, berkat, dan kebaikan yang
senantiasa dilimpahkan kepada penulis, sehingga penulis dapat menyelesaikan
tugas akhir ini dengan baik dan tepat pada waktunya. Tugas akhir ini dibuat dengan
tujuan untuk memenuhi syarat memperoleh gelar Sarjana Matematika pada
Program Studi Matematika, Fakultas Sains dan Teknologi, Universitas Sanata
Dharma.
Dalam menyelesaikan tugas akhir ini, ada banyak pihak yang senantiasa
mendukung, memberi semangat, dan membantu penulis dalam perjalanan
penulissan tugas akhir ini. Oleh karena itu, pada kesempatan ini, tidak lupa penulis
ingin menyampaikan syukur dan terima kasih kepada:
1. Bapak Hartono, S.Si., M.Sc., Ph.D. selaku Dosen Pembimbing
Akademik, dosen pembimbing tugas akhir dan selaku Kepala Program
Studi Matematika, Fakultas Sains dan Teknologi, Universitas Sanata
Dharma yang telah sangat banyak membantu penulis selama menjalani
proses perkuliahan bahkan juga dalam penulisan tugas akhir.
2. Bapak Sudi Mungkasi, S.Si., M.Math.Sc., Ph.D. selaku Dekan Fakultas
Sains dan Teknologi.
3. Romo Prof. Dr. Frans Susilo, SJ., Bapak Dr. rer. nat. Herry P. Suryawan,
S.Si., M.Si., Bapak Ir. Ig. Aris Dwiatmoko, M.Sc., Bapak Ricky Aditya,
M.Sc., Ibu Maria Vianney Any Herawati, S.Si., M.Si., dan Ibu Dr. Lusia
Krismiyati Budiasih, S.Si., M.Si. selaku dosen-dosen Prodi Matematika
yang telah banyak memberikan ilmu selama penulis menjalani
perkuliahan.
4. Mas Susilo Dwiratno, selaku Kepala Laboratorium Komputer Dasar
yang telah menyediakan sebuah unit komputer untuk penulis gunakan
selama menulis tugas akhir.
5. Bapak/Ibu dosen/karyawan Fakultas Sains dan Teknologi yang telah
berdinamika bersama selama penulis berkuliah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
6. Mama, Papa, Pho-Pho, Cece, Koko, Adek, dan seluruh keluarga besar
yang sangat penulis kasihi dan cintai. Terima kasih atas segala dukungan
baik secara moril dan material, sehingga penulis dapat menyelesaikan
perkuliahan S1 tepat pada waktunya.
7. Ibu Kost Pelangi, Kristiana Trisnawati yang telah memberikan rumah
bagi penulis selama menempuh pendidikan di Yogyakarta, yang
senantiasa memberikan dukungan, dan memberikan motivasi kepada
penulis agar senantiasa menjadi pribadi yang baik, bersemangat, dan
penuh syukur.
8. Teman-teman Prodi Matematika Angkatan 2017: Mydia, Nathania,
NaJo, Ko Anton, Kak Nuky, Denta Kristiana, Clara, Sisil, Meitia, Aryo,
Alicia, dan teman-teman lain juga. Terima kasih atas dinamikanya
selama 4 tahun perkuliahan ini.
9. Semua pihak yang tidak dapat disebutkan satu per satu selama proses
penulisan tugas akhir ini.
Semoga segala perhatian, dukungan, dan bantuan yang telah diberikan
mendapatkan balasan dari Yang Maha Kuasa. Penulis menyadari bahwa
tidak ada satu manusia pun yang luput dari kesalahan begitu pula dalam
penulisan tugas akhir ini. Oleh karena itu, penulis mengharapkan kritik dan
saran yang membangun demi penyempurnaan tugas akhir ini. Adapun
harapan penulis, semoga tugas akhir ini dapat bermanfaat bagi pembaca dan
menjadi referensi belajar yang baik.
Yogyakarta, 04 Agustus 2021
Penulis,
Marchelina
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
ABSTRAK
Klasifikasi citra merupakan salah satu sub-bidang studi dari visi
komputer (computer vision) yang sangat terkenal. Klasifikasi citra bekerja dengan
mengekstraksi makna dari sebuah gambar menggunakan algoritma dari
pembelajaran mesin. Seiring berkembangnya zaman dan seiring dengan popularitas
dari pembelajaran dalam, terdapat banyak teknik yang dapat digunakan dalam
mengklasifikasikan citra. Pada tugas akhir ini, teknik yang digunakan dalam
mengklasifikasikan citra adalah dengan menggunakan jaringan saraf
konvolusional. Jaringan saraf konvolusional dalam penerapannya dapat dikatakan
telah sangat berhasil dan praktis dalam tugas mengklasifikasikan citra. Jaringan ini
sebenarnya mirip dengan jaringan saraf pada umumnya, hanya saja pada jaringan
saraf konvolusional digunakan operasi konvolusi sebagai pengganti perkalian
matriks umum. Pada tugas akhir ini, hasil klasifikasi citra dilakukan dengan
menggunakan 2000 data latih dan 800 data validasi. Hasil dari proses komputasi ini
diperoleh akurasi pada data latih sebesar 82% dan akurasi pada data validasi sebesar
82.2% dengan jumlah epoch sebanyak 80. Dari pengujian yang dilakukan dapat
disimpulkan bahwa jaringan saraf konvolusional dapat mengklasifikasikan citra
dengan cukup baik.
Kata kunci: klasifikasi citra, jaringan saraf konvolusional, pembelajaran
dalam.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
ABSTRACT
Image classification is one of the most popular sub-field of computer
vision. Image classification works by extracting meaning from an image using
machine learning algorithms. Over the years and with the popularity of deep
learning, there are many techniques that can be used to classify images. In this final
project, the technique that used to classify images is convolutional neural network.
Convolutional neural network in its application can be said to have been very
successful and practical in the task of classifying images. This network is actually
similar to neural networks in general, but convolutional neural networks use
convolution operation instead of multiplication for general matrix. In this final
project, we classify images which consist of 2000 training and 800 validation data.
The result of this computational process is 82% for the accuracy of the training data
and 82.2% for the accuracy of the validation data with a total of 80 epochs. From
the tests carried out, it can be concluded that the convolutional neural network can
classify images quite well.
Keywords: image classification, convolutional neural networks, deep
learning.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
HALAMAN JUDUL ................................................................................................ i
HALAMAN JUDUL ............................................................................................... ii
HALAMAN PERSETUJUAN PEMBIMBING .................................................... iii
HALAMAN PENGESAHAN ................................................................................ iv
PERNYATAAN KEASLIAN KARYA ................................................................. v
MOTTO DAN HALAMAN PERSEMBAHAN .................................................... vi
LEMBAR PERNYATAAN PERSETUJUAN ..................................................... vii
KATA PENGANTAR ......................................................................................... viii
ABSTRAK .............................................................................................................. x
ABSTRACT ........................................................................................................... xi
DAFTAR ISI ......................................................................................................... xii
BAB I PENDAHULUAN ....................................................................................... 1
A. Latar belakang ............................................................................................. 1
B. Rumusan Masalah ....................................................................................... 3
C. Batasan Masalah .......................................................................................... 3
D. Tujuan .......................................................................................................... 3
E. Manfaat Penulisan ....................................................................................... 3
F. Metode Penulisan ........................................................................................ 4
G. Sistematika Penulisan .................................................................................. 4
BAB II LANDASAN TEORI ................................................................................. 6
A. Definisi Citra ............................................................................................... 6
B. Dasar-dasar Citra ......................................................................................... 7
C. Citra Warna RGB ........................................................................................ 8
D. Klasifikasi Citra ........................................................................................... 9
E. Pembelajaran Mesin (Machine Learning) ................................................. 10
F. Jaringan Saraf Tiruan (Artificial Neural Network) ................................... 16
G. Pembelajaran Dalam (Deep Learning) ...................................................... 24
BAB III JARINGAN SARAF KONVOLUSIONAL ........................................... 27
A. Jaringan Saraf Konvolusional ................................................................... 27
B. Dropout ..................................................................................................... 39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
C. Fungsi Rugi Binary Cross entropy ............................................................ 40
D. Algoritma Optimisasi RMSprop ............................................................... 41
BAB IV METODOLOGI ...................................................................................... 44
A. Data ........................................................................................................... 44
B. Metode Analisis Data ................................................................................ 45
C. Perancangan Sistem Jaringan Saraf Konvolusional .................................. 46
BAB V APLIKASI JARINGAN SARAF KONVOLUSIONAL UNTUK
KLASIFIKASI CITRA DENGAN PERANGKAT LUNAK ............................... 48
A. Implementasi Pra Proses dan Augmentasi Data ........................................ 48
B. Implementasi Jaringan Saraf Konvolusional ............................................. 52
C. Hasil Pengujian dan Pembahasan .............................................................. 60
BAB VI PENUTUP .............................................................................................. 63
A. Kesimpulan ................................................................................................ 63
B. Saran .......................................................................................................... 63
DAFTAR PUSTAKA ........................................................................................... 64
LAMPIRAN .......................................................................................................... 66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I
PENDAHULUAN
A. Latar belakang
Klasifikasi citra merupakan suatu masalah yang penting dalam visi komputer
(computer vision) selama beberapa dekade terakhir. Visi komputer merupakan
bidang yang melatih komputer agar dapat mengenali data visual berupa citra
maupun video. Namun bagaimana komputer dilatih untuk berpikir layaknya
manusia sehingga komputer dapat membedakan dan mengklasifikasikan citra? Bagi
manusia, mengklasifikasikan citra merupakan hal yang mudah, tetapi bagi
komputer merupakan hal yang sebaliknya. Komputer melihat citra sebagai suatu
matriks angka yang berukuran besar. Ia tidak memiliki gagasan mengenai
pemikiran, pengetahuan, atau makna yang coba disampaikan oleh citra tersebut.
Untuk memahami makna dari citra yang diberikan, komputer perlu dilatih dengan
berbagai macam citra sehingga bisa mendapatkan hasil dengan akurasi yang lebih
baik. Proses melatih komputer dapat dilakukan dengan mengimplementasikan
Pembelajaran Dalam (deep learning) menggunakan metode jaringan saraf
konvolusional.
Pembelajaran Dalam adalah bagian dari pembelajaran mesin yang juga
merupakan bagian dari kecerdasan buatan. Pembelajaran Dalam pada dasarnya
merupakan pengembangan dari jaringan saraf yang terdiri dari banyak lapisan.
Lapisan tersebut membentuk suatu algoritma yang nantinya dapat melakukan tugas
seperti mengenali dan mengklasifikasikan citra, mengenali suara, dan lain-lain.
Jaringan saraf konvolusional merupakan metode yang cukup populer pada
pembelajaran dalam dan biasanya digunakan dalam pemrosesan data dua dimensi,
seperti data yang berupa gambar. Jaringan ini pertama kali dikemukakan oleh Yann
LeCun dan timnya pada tahun 1998. Ide yang diimplementasikan oleh LeCun dan
timnya dibangun atas gagasan David H. Hubel dan Torsten Weisel yang meneliti
tentang visual cortex pada hewan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Istilah jaringan saraf konvolusional mengindikasikan bahwa jaringan tersebut
menggunakan operasi matematika yang disebut konvolusi. Operasi konvolusi
biasanya dilambangkan dengan tanda bintang:
𝑠(𝑡) = (𝑥 ∗ 𝑤)(𝑡) 1.1
dengan 𝑠 adalah keluaran, 𝑥 adalah masukan, dan 𝑤 adalah bobot. Secara garis
besar jaringan saraf konvolusional tidak jauh beda dengan jaringan saraf yang lain.
Jaringan saraf konvolusional terdiri dari bobot, bias, dan fungsi aktivasi. Arsitektur
dari jaringan saraf konvolusional dibagi menjadi lapisan konvolusional, lapisan
pooling, dan lapisan fully-connected.
Dalam mengklasifikasikan citra, jaringan saraf konvolusional bekerja dengan
merepresentasikan citra ke dalam bentuk matriks. Pada matriks tersebut kemudian
dilakukan proses konvolusi terhadap filter yang mempunyai ukuran tertentu. Proses
ini termasuk dalam tahap lapisan konvolusional yang secara formal dinyatakan
sebagai berikut:
𝑆(𝑖, 𝑗) = (𝐼 ∗ 𝐾)(𝑖, 𝑗) = ∑ ∑ 𝐼(𝑚, 𝑛)𝐾(𝑖 − 𝑚, 𝑗 − 𝑛)𝑛𝑚
. 1.2
dengan S adalah keluaran konvolusi, I adalah masukan, dan K adalah kernel.
Selanjutnya adalah lapisan pooling, yang dilakukan untuk mengurangi ukuran
matriks sehingga mempercepat komputasi. Pooling yang akan digunakan pada
tugas akhir ini adalah max pooling, dengan mengambil nilai maksimum pada area
yang terbentuk setelah pergeseran kernel dan stride.
Pada lapisan terakhir, yaitu fully connected, masukan yang diterima adalah
keluaran dari lapisan pooling. Pada keluaran dari lapisan pooling, yang berbentuk
larik multi dimensi, dilakukan pemerataan agar menjadi sebuah vektor yang
digunakan sebagai masukan dari lapisan fully connected. Lapisan fully connected
memiliki beberapa lapisan tersembunyi, fungsi aktivasi, lapisan luaran, dan fungsi
rugi (loss). Keluaran dari lapisan fully connected berupa vektor berdimensi, dengan
banyak dimensi menunjukkan jumlah kelas yang sesuai dengan kategori yang ada
pada data, atau dengan kata lain citra yang berhasil diklasifikasi.
Pada tugas akhir ini, masalah klasifikasi citra menggunakan jaringan saraf
konvolusional akan diselesaikan dengan mengaplikasikan modul Keras yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
menggunakan bahasa pemograman Python. Keras merupakan modul yang dibuat
untuk menyederhanakan model dan mempermudah pembelajaran terhadap
komputer. Dataset yang akan digunakan pada penelitian tugas akhir ini akan
diambil dari situs Kaggle dengan dataset Dogs vs. Cats.
B. Rumusan Masalah
Rumusan masalah untuk tugas akhir ini adalah:
1. Bagaimana membangun model jaringan saraf konvolusional yang digu-nakan
untuk mengklasifikasikan citra?
2. Bagaimana tingkat keakuratan model yang digunakan untuk meng-
klasifikasikan citra?
C. Batasan Masalah
Batasan masalah yang diberikan pada tugas akhir ini adalah:
1. Implementasi menggunakan perangkat lunak Python dengan modul Keras.
2. Dataset yang digunakan berasal dari situs Kaggle dengan dataset Dogs vs. Cats.
D. Tujuan
Tujuan dari tugas akhir ini adalah:
1. Membangun model jaringan saraf konvolusional yang akan digunakan untuk
mengklasifikasikan citra.
2. Mencari tingkat keakuratan model yang digunakan untuk meng-klasifikasikan
citra.
E. Manfaat Penulisan
Manfaat dari penulisan tugas akhir ini adalah untuk menyelesaikan masalah
klasifikasi citra dengan jumlah data yang banyak tetapi dalam waktu yang cukup
singkat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
F. Metode Penulisan
Metode penulisan yang digunakan dalam tugas akhir ini adalah metode studi
pustaka dengan mempelajari buku-buku dan jurnal-jurnal matematika yang
berkaitan dengan jaringan saraf konvolusional, pengambilan data, dan pengolahan
data menggunakan perangkat lunak Python.
G. Sistematika Penulisan
Sistematika penulisan yang akan digunakan dalam tugas akhir ini adalah
sebagai berikut:
BAB I PENDAHULUAN
A. Latar Belakang
B. Rumusan Masalah
C. Batasan Masalah
D. Manfaat Penulisan
E. Manfaat Penulisan
F. Metode Penulisan
G. Sistematika Penulisan
BAB II LANDASAN TEORI
A. Dasar-dasar Citra
B. Definisi Citra
C. Citra Warna RGB
D. Klasifikasi Citra
E. Pembelajaran Mesin (Machine Learning)
F. Jaringan Saraf Tiruan (Artificial Neural Network)
G. Pembelajaran Dalam (Deep Learning)
BAB IV JARINGAN SARAF KONVOLUSIONAL
A. Jaringan Saraf Konvolusional
B. Dropout
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
C. Fungsi Rugi Binary Cross entropy
D. Algoritma Optimisasi RMSprop
BAB IV METODOLOGI
A. Data
B. Pre-Processing Data dan Augmentasi Data
C. Perancangan Model Jaringan Saraf Konvolusional
BAB V APLIKASI JARINGAN SARAF KONVOLUSIONAL UNTUK
KLASIFIKASI CITRA DENGAN PERANGKAT LUNAK
A. Implementasi Pra Proses dan Augmentasi Data
B. Implementasi Jaringan Saraf Konvolusional
C. Hasil Pengujian dan Pembahasan
BAB VI PENUTUP
A. Kesimpulan
B. Saran
DAFTAR PUSTAKA
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II
LANDASAN TEORI
A. Definisi Citra
Secara matematis, citra atau gambar dapat didefinisikan sebagai fungsi dari
dua variabel 𝑓(𝑥, 𝑦), dimana 𝑥 dan 𝑦 adalah koordinat bidang (spasial), dan nilai 𝑓
pada koordinat spasial (𝑥, 𝑦) merupakan tingkat intensitas kecerahan pada titik
tersebut. Akibatnya, 𝑓(𝑥, 𝑦) harus merupakan nilai yang tak negatif dan terbatas,
yaitu:
0 ≤ 𝑓(𝑥, 𝑦) < ∞
2.1
Fungsi 𝑓(𝑥, 𝑦) dapat juga didefinisikan sebagai perkalian dari dua
komponen, yaitu jumlah cahaya yang berasal dari sumbernya dan jumlah cahaya
yang dipantulkan oleh objek. Secara singkatnya, disebut sebagai komponen cahaya,
dan pantulan. Masing-masing komponen dilambangkan dengan 𝑖(𝑥, 𝑦) dan 𝑟(𝑥, 𝑦).
Apabila kedua fungsi dikalikan maka akan didapatkan bentuk 𝑓(𝑥, 𝑦):
𝑓(𝑥, 𝑦) = 𝑖(𝑥, 𝑦)𝑟(𝑥, 𝑦) 2.2
dimana
0 ≤ 𝑖(𝑥, 𝑦) < ∞ 2.3
dan
0 ≤ 𝑟(𝑥, 𝑦) ≤ 1 2.4
dengan nilai 0 pada pantulan adalah nilai absorpsi total dan nilai 1 adalah pantulan
total.
Selanjutnya, misalkan derajat keabuan citra monokrom pada koordinat (𝑥, 𝑦)
dinotasikan sebagai:
ℓ = 𝑓(𝑥, 𝑦) 2.5
dari persamaan 2.2-2.4, maka diketahui
𝐿𝑚𝑖𝑛 ≤ ℓ ≤ 𝐿𝑚𝑎𝑘𝑠 2.6
dengan interval [𝐿𝑚𝑖𝑛, 𝐿𝑚𝑎𝑘𝑠] disebut sebagai skala keabuan (Gonzales & Woods,
2018).
Sebuah citra juga dapat direpresentasikan ke dalam bentuk matriks berukuran
𝑀 × 𝑁. Dalam bentuk matriks, citra didefinisikan sebagai himpunan (array) dua
dimensi yang dapat disusun ke dalam beberapa baris dan kolom. Setiap elemen
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
dalam himpunan (array) dinamakan piksel. Setiap piksel menunjukkan angka yang
merepresentasikan intensitas kanal (channel) warna pada citra.
Secara matematis, definisi citra dapat dilihat pada matriks di bawah ini
dengan 𝑥 menunjukkan baris dan 𝑦 menunjukkan kolom (Gonzales & Woods,
2018):
𝑓(𝑥, 𝑦) = [
𝑓(0,0) 𝑓(0,1) ⋯ 𝑓(0, 𝑁 − 1)𝑓(1,0) 𝑓(1,1) ⋯ 𝑓(1, 𝑁 − 1)⋮ ⋮ ⋮ ⋮
𝑓(𝑀 − 1,0) 𝑓(𝑀 − 1,1) ⋯ 𝑓(𝑀 − 1,𝑁 − 1)
] 2.7
B. Dasar-dasar Citra
Pada sub-bab ini akan dijelaskan mengenai dasar-dasar yang terdapat dalam
sebuah citra, yaitu Kedalaman Bit (Bit Depth) dan Piksel (Pixel)
1. Piksel (Pixel)
Piksel atau yang dalam bahasa Inggrisnya dikenal sebagai pixel
merupakan singkatan dari istilah picture element. Piksel merupakan kotak
persegi kecil yang membangun suatu citra. Setiap piksel ini
merepresentasikan intensitas cahaya yang muncul pada tempat tertentu pada
citra. Misalkan terdapat sebuah citra berukuran 1.000 × 750, ini artinya citra
mempunyai ukuran lebar sebesar 1.000 piksel, tinggi sebesar 750 piksel, dan
total keseluruhan sebesar 750.000 piksel dalam sebuah citra.
2. Kedalaman Bit (Bit Depth)
Rentang piksel dari format citra tertentu ditentukan oleh kedalaman
bitnya. Rentang dari bit adalah [0, 2𝑘𝑒𝑑𝑎𝑙𝑎𝑚𝑎𝑛 𝑏𝑖𝑡 − 1]. Misalnya, pada citra
ukuran 8 bit akan mempunyai rentang antara [0, 28 − 1] = [0,255]. Citra
dengan kedalaman bit yang lebih tinggi membutuhkan penyimpanan dan
memory yang lebih besar. Sebagian besar format citra seperti JPEG, PNG,
dan sebagainya menggunakan ukuran 8 bit untuk penyimpanan dan hanya
mempunyai nilai positif. Pada citra JPEG yang mengandung warna RGB
mempunyai kedalaman bit yang lebih dalam, sebab citra warna RGB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
mempunyai 3 kanal dan masing-masing kanal mempunyai kedalaman sebesar
8 bit, sehingga total kedalaman bitnya adalah 24.
C. Citra Warna RGB
Citra berwarna adalah citra yang memiliki 3 buah kanal warna di dalamnya.
Pada umumnya jenis citra ini terbentuk dari komponen merah (R), hijau (G), dan
biru (B) yang dimodelkan ke dalam ruang warna RGB. Warna RGB merupakan
sistem warna aditif, yang berarti bahwa semua warna dimulai dengan hitam dan
dibuat dengan menambahkan warna primer. Untuk membuat warna yang berbeda,
intensitas masing-masing wana primer dapat dimodifikasi secara independen.
Intensitas yang berbeda dari setiap pancaran warna primer mengontrol bayangan
dan kecerahan warna yang dihasilkan .
Gambar 2.1 Kiri: Representasi ruang warna RGB ke dalam sebuah kubus
tiga dimensi. Kanan: Koordinat warna RGB (Burger & Burge, 2009).
Ruang warna RGB dapat divisualisasikan sebagai kubus tiga dimensi, di
mana tiga warna primer membentuk sumbu koordinat. Warna RGB mempunyai
nilai positif dan berada dalam interval [0, 𝐶𝑚𝑎𝑥] , dan nilai dari 𝐶𝑚𝑎𝑥 = 255 .
Warna-warna 𝐶𝑖 yang mungkin, bersesuaian dengan titik di dalam kubus warna
RGB yang berbentuk
𝐶𝑖 = (𝑅𝑖, 𝐺𝑖, 𝐵𝑖), 2.8
Dimana 0 ≤ 𝑅𝑖, 𝐺𝑖 , 𝐵𝑖 ≤ 𝐶𝑚𝑎𝑥 . Nilai RGB sering dinormalisasikan ke
interval [0,1] sehingga ruang warna yang dihasilkan membentuk kubus satuan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
Titik 𝑆 = (0,0,0) bersesuaian dengan warna hitam, 𝑊 = (1,1,1) bersesuaian
dengan warna putih, dan semua titik yang berada pada diagonal antara 𝑆 dan 𝑊
mempunyai warna abu-abu yang dihasilkan dari komponen warna yang sama 𝑅 =
𝐺 = 𝐵
Gambar 2.2 Citra warna dengan masing-masing kanal warnanya (Burger
& Burge, 2009).
Sistem warna RGB sangat sederhana, terlihat pada Gambar 2.2. Buah yang
digambarkan dominan berwarna kuning dan merah, oleh karena itu kanal warna R
dan G akan memiliki nilai yang lebih tinggi. Untuk kanal warna B memiliki nilai
yang lebih rendah, terlihat nilai keabuannya lebih gelap. Pada bagian atas meja,
latar meja berwarna ungu, oleh karena itu kanal warna B akan lebih tinggi, dan
berwarna lebih terang.
D. Klasifikasi Citra
Klasifikasi citra merupakan sebuah permasalahan dari pembelajaran yang
diawasi (supervised learning). Secara garis besar, pembelajaran yang diawasi
merupakan salah satu jenis pembelajaran yang mendapatkan proses latih terlebih
dahulu, barulah kemudian dapat digunakan untuk memprediksi atau
mengklasifikasi data. Pengklasifikasian citra bekerja dengan memberikan label
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
pada sebuah citra berdasarkan kategori yang telah diberikan. Sebagai contoh,
misalkan citra masukan yang diberikan adalah citra dari seekor anjing. Klasifikasi
citra merupakan proses dari analisa komputer mengenai suatu citra dan mengenali
bahwa itu adalah seekor anjing.
Gambar 2.3 Contoh citra masukan berupa gambar seekor anjing.
E. Pembelajaran Mesin (Machine Learning)
Istilah Machine Learning atau Pembelajaran Mesin pertama kali
dikemukakan oleh Arthur Samuel pada tahun 1959. Arthur Samuel mendefinisikan
pembelajaran mesin sebagai cabang inti dari kecerdasan buatan (Artificial
Intelligence) yang bertujuan untuk memberikan komputer kemampuan untuk
belajar tanpa diprogram secara eksplisit. Pembelajaran mesin dikembangkan dari
beberapa disiplin ilmu, seperti statistika, matematika, kecerdasan buatan, dan ilmu
komputer. Penerapan metode pembelajaran mesin dalam beberapa tahun terakhir
ini menjadi hal yang umum dalam kehidupan sehari-hari. Mulai dari rekomendasi
film, fitur deteksi wajah pada telepon pintar, iklan tentang produk yang ingin dibeli,
dan lain sebagainya.
Dalam algoritma pembelajaran mesin, terdapat beberapa teknik yang
digunakan, antara lain seperti:
1. Pembelajaran yang diawasi (supervised learning).
Algoritma pembelajaran mesin ini bekerja dengan menggunakan
pasangan data masukan dan luaran yang sudah berlabel. Pembelajaran yang
diawasi akan menerapkan apa yang telah dipelajari di masa lalu ke data baru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
menggunakan data-data yang sudah diberi label sebelumnya untuk
memprediksi peristiwa masa depan.
Dalam penggunaannya, pembelajaran yang diawasi dapat dibedakan
menjadi dua tipe yaitu:
a. Regresi
Regresi merupakan teknik pendekatan dengan pemetaan sebuah
fungsi 𝑓 dari variabel bebas 𝑋 ke variabel terikat 𝑦 . Keluaran dari
fungsi tersebut berupa nilai riil, yang biasanya berupa kuantitas,
misalnya berupa harga, ukuran, dsb.
Contoh 2.1 Peningkatan hutang pinjaman mahasiswa di Amerika
Serikat (Watt et al., 2009).
Pada Gambar 2.4 menunjukkan total hutang pinjaman siswa yang
digunakan untuk membiayai uang sekolah dari tahun 2006 hingga tahun
2014 yang diukur setiap tiga bulan. Selama delapan tahun, hutang siswa
telah meningkat hampir tiga kali lipat, dengan total lebih dari satu
triliun dolar pada akhir tahun 2014. Garis regresi dengan warna hitam
menunjukkan penyelesaian dari model ini, dengan kemiringan positif
yang tajam, menunjukkan bahwa hutang siswa meningkat sangat cepat.
Gambar 2.4 Ilustrasi total hutang siswa yang dihitung secara kuartal
dari 2006 sampai 2014 (Watt et al., 2009).
b. Klasifikasi
Pada prinsipnya, klasifikasi mirip dengan regresi, hanya saja yang
membedakannya adalah keluaran yang dihasilkan. Klasifikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
merupakan teknik pendekatan dengan pemetaan sebuah fungsi 𝑓 dari
variabel 𝑋 ke variabel 𝑦 yang diskrit. Keluaran dari teknik ini berupa
label atau kategori. Fungsi pemetaan ini memprediksi kelas atau
kategori dari data yang diberikan, misalnya mengklasifikasikan citra,
pengenalan objek, dsb. Secara geometris, pada tugas klasifikasi dua
dimensi, akan ditemukan sebuah kurva pemisah yang secara akurat
memisahkan dua jenis data. Untuk ilustrasi lebih jelas, tugas klasifikasi
dua dimensi ditunjukkan pada Gambar 2.5.
Gambar 2.5 Model linear yang terlatih untuk memisahkan dua kelas
berbeda (Watt et al., 2009)..
Contoh 2.2 Deteksi objek (Watt et al., 2020).
Deteksi objek merupakan masalah umum dalam klasifikasi yang
bertugas mengidentifikasi objek tertentu dalam sekumpulan gambar
atau video secara otomatis. Aplikasi pendeteksian objek yang banyak
digunakan misalnya pendeteksi wajah yang digunakan dalam
pemfokusan kamera. Dalam melatih pengklasifikasi, dikumpulkan
sejumlah data yang terdiri dari gambar wajah dan yang bukan gambar
wajah. Selanjutnya pada data validasi gambar wajah yang baru dicari
dan diperiksa dengan cara menggeser sebuah jendela kotak. Setiap
lokasi jendela digeser, akan diperiksa di sisi mana pengklasifikasi itu
berada. Jika saat jendela digeser terletak di sisi wajah pengklasifikasi,
maka objek yang terdapat dalam jendela kotak itu diklasifikan sebagai
wajah, jika tidak, maka diklasifikasikan sebagai bukan wajah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Gambar 2.6 Ilustrasi deteksi objek (Watt et al., 2009).
Pada Gambar 2.6 terlihat bahwa kelas yang dibagi hanya terdiri
dari dua kelas yaitu kelas yang mengandung wajah, dan yang tidak. Saat
objek wajah terdeteksi maka akan masuk ke dalam kelas yang
mengandung wajah yaitu kelas yang ditunjukkan dengan warna biru.
Begitu pula sebaliknya, apabila objek yang tidak mengandung wajah
terdeteksi, maka akan masuk ke dalam kelas yang tidak mengandung
wajah yaitu kelas yang ditunjukkan dengan warna merah.
2. Pembelajaran yang tidak diawasi (unsupervised learning).
Pada teknik pembelajaran yang tidak diawasi, data yang diketahui atau
terlabel hanyalah data masukan saja, dan tidak ada data keluaran yang
diketahui. Pembelajaran yang tidak diawasi mempelajari bagaimana
algoritma dapat menyimpulkan suatu fungsi untuk mendeskripsikan struktur
tersembunyi dari data yang tidak berlabel. Sistem mengekplorasi data dan
dapat menarik kesimpulan dari kumpulan data untuk menggambarkan
struktur tersembunyi dari data yang tidak berlabel.
Terdapat dua kasus mendasar dari pembelajaran yang tidak diawasi,
yaitu reduksi dimensi (dimension reduction) dan pengelompokan
(clustering). Dua kasus tersebut memungkinkan penyederhanaan
pengumpulan data melalui dua cara, yang pertama adalah dengan mengurangi
dimensi dari data masukan dan yang kedua adalah dengan menentukan
sejumlah kecil perwakilan yang secara memadai menggambarkan keragaman
kumpulan data yang lebih besar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
a. Reduksi Dimensi (Dimension Reduction)
Pada zaman modern ini, ukuran dimensi data misalnya citra,
video, ataupun teks dokumen, seringkali terlalu besar untuk
efektivitasnya dalam membuat model prediksi atau analisis. Oleh
karena itu, mereduksi dimensi seringkali penting untuk penerapan yang
efektif dari banyak algoritma pembelajaran mesin, dan merupakan
langkah pra-pemrosesan yang umum untuk tugas prediksi dan analisis.
Secara geometris, mereduksi dimensi kumpulan data berarti
menekan atau memproyeksikan data ke garis atau kurva berdimensi
lebih rendah yang tepat, dengan tetap mempertahankan karakteristik
data aslinya. Sebagai ilustrasi dapat dilihat pada Gambar 2.7, pada
gambar tersebut terlihat bahwa terdapat dua jenis dimensi yang berbeda
dari sebuah data yang sama. Pada gambar sebelah kanan merupakan
data yang belum direduksi yaitu data tiga dimensi dengan data masukan
ditunjukkan dengan titik-titik yang berwarna hitam. dan gambar
sebelah kiri merupakan data yang sudah direduksi menjadi data dua
dimensi Dan dalam praktiknya, reduksi dimensi pada zaman modern
jauh lebih besar daripada yang diilustrasikan pada Gambar 2.7 ini.
Gambar 2.7 Ilustrasi data dua dimensi dan tiga dimensi
(Watt et al., 2009).
b. Pengelompokan (Clustering)
Pengelompokan merupakan kasus yang paling sering dijumpai
dalam permasalahan pembelajaran yang tidak diawasi. Pengelompokan
bertujuan untuk mengidentifikasi struktur dasar dari suatu dataset yang
tidak terlabel, kemudian mengelompokannya ke dalam beberapa
kelompok berdasarkan karakteristik tertentu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.8 Ilustrasi pengelompokan dari dua data yang berbeda
(Watt et al., 2009).
Pada Gambar 2.8 terdapat dua data yang berbeda yang tidak
diketahui labelnya. Masing-masing data dikelompokkan menjadi dua
kelompok yang berbeda. Pengelompokan ini dapat sangat bervariasi
bergantung pada algoritma yang digunakan seperti yang terlihat pada
gambar pertama dan kedua.
3. Pembelajaran penguatan (reinfoncerment learning).
Pembelajaran penguatan adalah teknik pembelajaran yang bekerja
dengan menghasilkan tindakan dari menemukan kesalahan atau penghargaan.
Teknik pembelajaran penguatan memerlukan perlakuan yang terpisah dari
dua teknik pembelajaran yang dijelaskan sebelumnya. Teknik ini melibatkan
umpan balik dari lingkungan. Oleh karena itu teknik ini tidak sepenuhnya
dapat disebut pembelajaran yang tidak diawasi. Namun demikian, ia juga
tidak memiliki data yang berlabel untuk melatihnya, sehingga ia juga tidak
dapat dikatakan sebagai pembelajaran yang diawasi. Pada teknik
pembelajaran penguatan, sistem terus berinteraksi dengan lingkungan untuk
menghasilkan perilaku yang diinginkan dan mendapatkan umpan balik dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
lingkungan. Contoh yang sering dijumpai misalnya pada permainan komputer
berupa catur, AlphaGo, ataupun misalnya pada permainan tic-tac-toe.
F. Jaringan Saraf Tiruan (Artificial Neural Network)
Jaringan saraf tiruan adalah teknik pembelajaran mesin yang mensimulasikan
mekanisme pembelajaran dalam organisme biologis. Sistem saraf manusia
mengandung sel, yang disebut neuron. Neuron terhubung satu sama lain dengan
akson dan dendrit. Dendrit adalah jaringan reseptif seperti pohon dari serabut saraf
yang membawa signal listrik ke dalam sel, sedangkan akson adalah serat yang
panjang dan tipis yang membawa signal dari badan sel ke neuron lain. Kemudian,
daerah penghubung antara akson dan dendrit disebut sebagai sinapsis. Kekuatan
dari sinapsis sering berubah sebagai respons terhadap rangsangan dari luar.
Perubahan ini adalah proses pembelajaran yang terjadi pada organisme hidup.
Sebagai ilustrasi dapat dilihat pada Gambar 2.9
Gambar 2.9 Jaringan saraf pada manusia (Haykin, 2008).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Mekanisme biologis ini kemudian disimulasikan ke dalam sebuah jaringan
saraf yang dapat diterapkan ke dalam komputer. Neuron pada jaringan saraf
merupakan unit pemrosesan informasi yang fundamental. Gambar 2.10 merupakan
model neuron yang menjadi dasar dalam merancang jaringan saraf. Pada gambar
tersebut dapat dilihat bahwa dalam struktur jaringan saraf terdapat komponen-
komponen yang dimulai dengan masukan (𝑥𝑖) yang terkoneksi dengan bobot (𝑤𝑖).
Setelah itu, nilai-nilai pada masukan akan dijumlahkan, dan kemudian dikenakan
fungsi aktivasi. Fungsi aktivasi ini berguna untuk menentukan keluaran yang
dihasilkan oleh neuron. Pada Gambar 2.10 juga terdapat komponen eksternal yang
disebut sebagai bias (𝑏). Secara matematis, untuk mendeskripsikan neuron yang
tampak pada Gambar 2.10 dapat ditunjukkan pada persamaan berikut:
𝑧 = ∑𝑤𝑖𝑥𝑖
𝑛
𝑖=1`
2.9
dan
𝑦 = 𝑓(𝑧) = 𝑓(𝒙 ∙ 𝒘 + 𝑏) 2.10
dimana 𝑥1, 𝑥2, … , 𝑥𝑚 adalah masukan, 𝑤1, 𝑤2, … , 𝑤𝑚 adalah bobot dari neuron, 𝑧
adalah kombinasi linear antara masukan dan bobot, 𝑏 adalah bias, 𝑓 merupakan
fungsi aktivasi, dan terakhir 𝑦 adalah keluaran dari neuron.
Gambar 2.10 Model neuron (Aggarwall, 2018).
1. Fungsi Aktivasi
Fungsi aktivasi merupakan bagian yang penting, Fungsi aktivasi
dinotasikan dengan 𝑓 , yang mendefinisikan keluaran dari sebuah neuron.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Pada bagian ini akan dikenalkan dua fungsi aktivasi non-linear dalam
komputasinya.
a. Fungsi aktivasi Sigmoid
Fungsi aktivasi Sigmoid merupakan fungsi yang cukup
sederhana. Fungsi ini dapat digunakan sebagai classifier untuk jenis
klasifikasi yang hanya mempunyai dua kelas, sebab fungsi ini hanya
memberikan nilai diantara 0 dan 1. Secara matematis fungsi aktivasi
Sigmoid dapat dituliskan sebagai berikut:
𝑓(𝑧) =1
1 + 𝑒−𝑧 2.11
Dengan turunannya adalah
𝑑
𝑑𝑥𝑓(𝑧) =
𝑑
𝑑𝑥
1
1 + 𝑒−𝑧
𝑑
𝑑𝑥𝑓(𝑧) =
𝑑
𝑑𝑥(1 + 𝑒−𝑧)−1
𝑑
𝑑𝑥𝑓(𝑧) = −(1 + 𝑒−𝑧)−2 ∙
𝑑
𝑑𝑥(1 + 𝑒−𝑧)
𝑑
𝑑𝑥𝑓(𝑧) = −(1 + 𝑒−𝑧)−2 ∙ −(𝑒−𝑧)
𝑑
𝑑𝑥𝑓(𝑧) =
𝑒−𝑧
(1 + 𝑒−𝑧)2
𝑑
𝑑𝑥𝑓(𝑧) =
𝑒−𝑧 + 1 − 1
(1 + 𝑒−𝑧)2
𝑑
𝑑𝑥𝑓(𝑧) =
1
(1 + 𝑒−𝑧) ∙𝑒−𝑧 + 1 − 1
(1 + 𝑒−𝑧)
𝑑
𝑑𝑥𝑓(𝑧) =
1
(1 + 𝑒−𝑧) ∙ (1 −
1
(1 + 𝑒−𝑧) )
𝑓(𝑧) = 𝑓(𝑧)(1 − 𝑓(𝑧))
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Untuk ilustrasi yang lebih jelas dapat dilihat pada gambar berikut
Gambar 2.11 Fungsi aktivasi Sigmoid (Buduma, 2017).
Pada gambar di atas, terlihat bahwa grafik fungsi sigmoid ini
terbatas antara [0,1]. Apabila menggunakan pendekatan limit dapat
diketahui bahwa apabila 𝑧 membesar ke arah yang positif, maka
lim𝑧→∞
1
1+𝑒−𝑧=
1
1+0= 1 , begitu pula saat 𝑧mengecil ke arah bilangan
negatif, maka lim𝑧→−∞
1
1+𝑒−𝑧=
1
1+∞= 0.
b. Fungsi aktivasi Tanh
Gambar 2.12 Fungsi aktivasi Tanh (Buduma, 2017).
Seperti pada Gambar 2.12 fungsi aktivasi tanh mempunyai bentuk
yang mirip dengan fungsi aktivasi Sigmoid, yaitu grafik yang
menyerupai huruf S. Fungsi aktivasi Tanh mempunyai rentang nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
antara -1 sampai 1, dan digunakan sebagai classifier dua kelas. Secara
matematis, fungsi aktivasi Tanh dituliskan sebagai
𝑓(𝑧) = tanh(𝑧) =sinh(𝑧)
cosh(𝑧) 2.21
Dengan turunannya adalah
𝑑
𝑑𝑧𝑓(𝑧) =
𝑑
𝑑𝑧
sinh(𝑧)
cosh(𝑧)
𝑑
𝑑𝑧𝑓(𝑧) =
cosh2(𝑧) − sinh2(𝑧)
cosh2(𝑧)
𝑑
𝑑𝑧𝑓(𝑧) = 1 −
sinh2(𝑧)
cosh2(𝑧)
𝑑
𝑑𝑧𝑓(𝑧) = 1 − tanh2(𝑧)
𝑑
𝑑𝑧𝑓(𝑧) = 1 − 𝑓2(𝑧)
2.22
2.23
2.24
2.25
2.26
c. Fungsi Rectified Linear Unit
Fungsi aktivasi ReLU merupakan fungsi yang paling banyak
digunakan terutama dalam jaringan saraf yang lebih dalam. Secara
matematis fungsi aktivasi ReLu dituliskan sebagai
𝑓(𝑧) = max(0, 𝑧) = {0, 𝑧 < 0𝑧, 𝑧 ≥ 0
2.27
Dengan turunannya adalah
𝑑
𝑑𝑧𝑓(𝑧) = {
𝑑
𝑑𝑧0, 𝑧 < 0
𝑑
𝑑𝑧𝑧, 𝑧 > 0
𝑑
𝑑𝑧𝑓(𝑧) = {
0, 𝑧 < 01, 𝑧 > 0
2.28
2.29
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Untuk ilustrasi yang lebih jelas dapat dilihat pada gambar berikut
Gambar 2.13 Fungsi aktivasi ReLU (Buduma, 2017).
Dari gambar di atas dapat dilihat bahwa fungsi ReLU akan
bernilai nol saat masukan yang diberikan bernilai negatif dan akan
bernilai 𝑧 saat masukan yang diberikan bernilai non negatif.
2. Perceptron Lapis Tunggal (Single Layer Peceptron)
Perceptron merupakan bentuk paling sederhana dari jaringan saraf
tiruan. Model jaringan ini pertama kali dikembangkan oleh Rosenbaltt pada
tahun 1958. Perceptron terdiri dari satu lapisan saja dan pada umumnya
digunakan untuk mengklasifikasikan data yang linear.
Arsitektur perceptron dapat dilihat pada Gambar 2.10. Pada gambar
tersebut terlihat bahwa masukan yang diberikan pada lapisan, langsung dapat
ditransmisikan dan menghasilkan keluaran. Keluaran yang dihasilkan
perceptron dalam menentukan kelas akan dikenakan sebuah fungsi aktivasi.
Pemilihan fungsi aktivasi yang berbeda dapat digunakan untuk
mensimulasikan berbagai model yang digunakan dalam pembelajaran mesin,
seperti regresi kuadrat terkecil, support vector machine, atau regresi logistik.
3. Perceptron Lapis Jamak (Multi Layer Peceptron)
Perceptron lapis jamak merupakan arsitektur jaringan saraf yang terdiri
dari beberapa lapisan komputasi. Pada perceptron lapis jamak terdapat lapisan
tambahan yang dikenal sebagai lapisan tersembunyi. Arsitektur ini dikenal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
sebagai jaringan umpan maju, sebab komputasinya akan dimulai berurutan
dari lapisan masukan sampai ke lapisan keluaran.
Gambar 2.14 Perceptron lapis jamak (Aggarwall, 2018).
Gambar 2.14 di atas merupakan arsitektur perceptron lapis jamak
dengan dua lapisan tersembunyi dan satu lapisan keluaran. Dibandingkan
dengan perceptron lapis tunggal, perceptron lapis jamak memiliki komputasi
yang cukup berat sehingga membutuhkan waktu yang lama dalam
memprosesnya. Dasar dari perceptron lapis jamak inilah yang kemudian
dijadikan sebagai model untuk menyelesaikan masalah-masalah yang lebih
kompleks seperti pada Pembelajaran Dalam
4. Algoritma Propagasi Balik (Backpropagation)
Jaringan saraf didefinisikan sepenuhnya oleh bobot, bias, dan fungsi
aktivasinya. Dalam jaringan saraf lapis tunggal, proses pelatihan relatif
mudah karena kesalahan (error) dapat dihitung sebagai fungsi yang langsung
dikomputasikan dari bobot. Dalam kasus jaringan saraf lapis jamak, fungsi
yang terdapat di dalamnya cukup rumit, sehingga sulit mengetahui seberapa
besar kesalahannya. Oleh karena itu untuk menyelesaikannya, akan
dikenalkan sebuah algoritma propagasi balik (backpropagation) yang akan
menjadi alat untuk menemukan nilai bobot dan bias dalam jaringan saraf lapis
jamak. Algoritma propagasi balik memanfaatkan aturan rantai yang terdapat
pada kalkulus diferensial. Pelatihan dengan algoritma propagasi balik ini
melibatkan empat langkah dasar yaitu: (1) memasukan vektor pola; (2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
melakukan perhitungan maju; (3) melakukan perhitungan propagasi balik;
dan (4) memodifikasi bobot dan bias dalam jaringan.
Misalkan, diberikan suatu set pola pelatihan sebagai berikut:
Gambar 2.15 Arsitektur JST.
Arsitektur jaringan saraf di atas merupakan jaringan yang sederhana
dan hanya memiliki 1 lapisan tersembunyi. Dengan 𝑎[0] = 𝑥
merepresentasikan lapisan masukan, 𝑎[1] merepresentasikan lapisan
tersembunyi, dan 𝑎[2] = �̂� merepresentasikan lapisan keluaran. Tahapan
perhitungan maju untuk jaringan saraf di atas dapat dilakukan sebagai berikut:
𝑧1[1] = 𝑤1 ∙ 𝑥1 + 𝑤2 ∙ 𝑥2 + 𝑏
𝑎1[1] = 𝑓 (𝑧1
[1])
2.30
2.31
Perhitungan yang serupa juga dilakukan untuk mendapatkan 𝑧2[1], 𝑎2
[1], 𝑧3
[1],
𝑎3[1]
. Kemudian, perhitungan yang serupa juga dilakukan untuk menghitung
keluaran pada lapisan selanjutnya seperti yang ditunjukkan berikut.
𝑧1[2] = 𝑤7 ∙ 𝑎1
[1] + 𝑤8 ∙ 𝑎2[1] + 𝑤9 ∙ 𝑎3
[1] + 𝑏
𝑎1[2] = 𝑓 (𝑧1
[2])
2.32
2.33
Hasil yang diperoleh pada persamaan terakhir merupakan keluaran dari
propagasi maju jaringan saraf. Hasil prediksi ini kemudian akan dibandingkan
dengan nilai yang sebenarnya ada pada data. Apabila terdapat selisih yang
besar maka akan dilakukan modifikasi bobot yang dilakukan melalui proses
propagasi mundur.
𝑥1
𝑥2
𝑎1[1]
𝑎2[1]
𝑎3[1]
𝑤1
𝑤2 𝑤3
𝑤4 𝑤5
𝑤6
𝑤7
𝑤8
𝑤9
∑ 𝑦
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Selanjutnya, pada jaringan saraf ini akan ditentukan fungsi rugi (loss)
sebagai berikut :
𝐿 =1
2(𝑦 − �̂�)2 2.34
dengan �̂� merupakan nilai yang diprediksi dan 𝑦 adalah nilai yang yang
sudah diketahui dari data. Misalkan pada jaringan saraf di atas, akan
menggunakan jenis fungsi aktivasi yang sederhana yaitu fungsi aktivasi
sigmoid. Selanjutnya, untuk memperbaharui bobot 𝑤7 , perlu dilakukan
perhitungan turunan parsial dari fungsi rugi terhadap 𝑤7. Maka komputasi
propagasi baliknya adalah
𝜕𝐿
𝜕𝑤7=𝜕𝐿
𝜕𝑦 𝜕𝑦
𝜕𝑧 𝜕𝑧
𝜕𝑤7 2.35
dengan
𝜕𝐿
𝜕𝑦=1
2∙ 2(�̂� − 𝑦) ∙ (−1) = 𝑦 − �̂�
𝜕𝑦
𝜕𝑧= 𝑓(𝑧) ∙ (1 − 𝑓(𝑧)) = 𝑦(1 − 𝑦)
𝜕𝑧
𝜕𝑤7=𝜕(𝑎1
[1]𝑤7 + 𝑎2[1]𝑤8 + 𝑎3
[1]𝑤9)
𝜕𝑤7= 𝑎1
[1]
2.36
2.37
2.38
sehingga diperoleh
𝜕𝐿
𝜕𝑤7= (𝑦 − �̂�) ∙ 𝑦(1 − 𝑦) ∙ 𝑎1
[1] 2.39
Dari hasil yang diperoleh, kemudian akan dilakukan modifikasi dari bobot
dengan persamaan sebagai berikut:
𝑤7′ = 𝑤7
−𝜕𝐿
𝜕𝑤7 2.40
Setelah bobot yang baru didapatkan, perhitungan yang serupa dapat
dilanjutkan untuk bobot-bobot dan bias yang lainnya.
G. Pembelajaran Dalam (Deep Learning)
Pembelajaran Dalam (Deep Learning) adalah subbidang dari pembelajaran
mesin (machine learning) yang fokus untuk membuat model jaringan saraf yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
besar sehingga dapat membuat keputusan yang akurat dari data. Pembelajaran
Dalam sangat cocok diaplikasikan untuk permasalahan yang datanya kompleks dan
terdapat data yang besar. Pembelajaran dalam memungkinkan untuk
mengidentifikasi dan mengekstrak pola dari kumpulan besar data yang secara
akurat memetakan himpunan input yang kompleks ke hasil keputusan yang baik.
(Kelleher, 2019)
Pembelajaran Dalam menggunakan algoritma jaringan saraf tiruan dalam
memproses data, memperoleh pola atau untuk mengembangkan abstraksi,
mensimulasikan proses berpikir dari otak biologis. Istilah Pembelajaran Dalam
berasal dari jaringan saraf tiruan yang memiliki banyak lapisan tersembunyi.
Jaringan saraf umumnya memiliki 1 atau 2 lapisan tersembunyi, tetapi pada
Pembelajaran Dalam lapisan tersembunyi dapat ditemukan lebih dari 2 bahkan
ratusan lapisan tersembunyi.
Pembelajaran Dalam menggunakan tumpukan beberapa lapisan tersembunyi
dari unit pemrosesan non-linear. Masukan dari lapisan tersembunyi merupakan
keluaran dari lapisan sebelumnya. Fitur diekstraksi dari setiap lapisan tersembunyi.
Fitur dari lapisan yang berbeda mewakili abstrak atau pola dari tingkat yang
berbeda. Oleh karena itu, fitur tingkat yang lebih tinggi berasal dari fitur tingkat
yang lebih rendah, yang diekstrak dari lapisan sebelumnya. Semua ini akhirnya
bersama-sama membentuk representasi hierarkis yang dipelajari dari data.
Pembelajaran Dalam telah banyak membuat kemajuan besar dalam
memecahkan masalah, misalnya visi komputer, pengenalan suara, dan pemrosesan
bahasa alami. Adapun model Pembelajaran Dalam yang cukup terkenal untuk
menyelesaikan masalah klasifikasi adalah jenis jaringan saraf konvolusional yang
juga akan digunakan sebagai metode dalam penulisan tugas akhir ini.
Misalkan diambil contoh klasifikasi citra hewan anjing dan kucing, dalam
penyelesaian pembelajaran mesin tradisional, langkah klasifikasi mengikuti proses
ekstraksi fitur, yang sering kali didasarkan pada:
1. Pengetahuan, seperti warna, bentuk, warna hewan, bentuk telinga, dan lain
sebagainya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
2. Reduksi dimensi, menggunakan analisis komponen utama (PCA), atau
Latent Dirichlet Allocation (LDA)
3. Teknik feature engineering, yang menggunakan kemampuan dan
pengetahuan manusia dalam memilih fitur dari data mentah.
Namun, pada Pembelajaran Dalam dengan menggunakan model jaringan
saraf konvolusional, langkah-langkah ekstraksi fitur manual dihapuskan, dan
sebagai gantinya mengandalkan proses pelatihan untuk secara otomatis
menemukan pola yang tepat dari data masukan. Dan dengan berbagai kombinasi
yang tepat misalnya banyak masukan, lapisan tersembunyi, fungsi aktivasi dan
sebagainya kumpulan fitur yang paling efisien untuk digunakan dalam klasifikasi
dapat ditemukan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III
JARINGAN SARAF KONVOLUSIONAL
A. Jaringan Saraf Konvolusional
Jaringan saraf konvolusional merupakan pengembangan dari jaringan saraf
tiruan yang dirancang untuk mengolah masukan berupa structure grid, yang
memiliki ketergantungan spasial yang kuat di wilayah jaringan lokal. Jaringan ini
pertama kali dikemukakan oleh Yann LeCun dan timnya pada tahun 1998. Ide yang
diimplementasikan oleh LeCun dan timnya dibangun atas gagasan David H. Hubel
dan Torsten Weisel yang meneliti tentang visual cortex pada hewan. Penelitian ini
menemukan hubungan antara aktivitas di area otak yang kecil dan aktivitas di
wilayah bidang visual yang kecil. Hal inilah yang menjadi ide dasar penemuan
bidang reseptif, yang merupakan konsep yang digunakan untuk menggambarkan
hubungan antara bagian-bagian bidang visual dan neuron individu yang memproses
informasi.
Contoh yang paling jelas dari data berbentuk grid adalah citra dua dimensi.
Jenis data ini menunjukkan ketergantungan spasial, karena lokasi spasial yang
berdekatan dalam sebuah gambar sering kali memiliki nilai warna yang sama
dengan masing-masing piksel. Jaringan saraf konvolusional telah banyak
digunakan dalam visi komputer dan telah banyak digunakan untuk
mengklasifikasikan citra dan mengenali objek. Jaringan ini sangat baik dalam
memilih pola pada masukan citra, misalnya garis, lingkaran, bahkan mata dan
wajah.
Jaringan saraf konvolusional dalam penerapannya dapat dikatakan telah
sangat berhasil dan praktis. Nama “jaringan saraf konvolusional” menunjukkan
bahwa di dalam jaringan tersebut digunakan operasi matematika yang disebut
konvolusi. Jaringan saraf konvolusional adalah jaringan saraf sederhana yang
menggunakan operasi konvolusi sebagai pengganti perkalian matriks umum di
setidaknya salah satu lapisannya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
1. Dasar-Dasar Jaringan Saraf Konvolusional
Pada bagian ini akan dijelaskan dasar-dasar yang digunakan pada
jaringan saraf konvolusional, seperti kernel dan filter, operasi konvolusi,
parameter stride dan padding, dan operasi pooling.
a. Kernel atau Filter
Filter atau disebut juga sebagai kernel merupakan salah satu
komponen utama dalam jaringan saraf konvolusional. Filter berbentuk
matriks persegi yang memiliki dimensi 𝑛𝑘 × 𝑛𝑘 , di mana 𝑛𝑘 adalah
bilangan bulat dan biasanya berupa angka kecil, seperti 3 atau 5. Filter
atau kernel ini, dibutuhkan untuk mengaburkan, menajamkan, dan
digunakan untuk mendeteksi tepian objek misalnya Dalam
penggunaannya, terdapat beberapa kernel atau filter yang digunakan,
diantaranya adalah:
1) Kernel untuk deteksi tepi horizontal
𝐾𝐻 = (1 1 10 0 0−1 −1 −1
)
2) Kernel untuk deteksi tepi vertikal
𝐾𝑉 = (1 0 −11 0 −11 0 −1
)
3) Kernel untuk deteksi tepi ketika keterangan cahaya berubah
secara drastis
𝐾𝐿 = (−1 −1 −1−1 8 −1−1 −1 −1
)
4) Kernel untuk mengaburkan tepi pada gambar
𝐾𝐵 = −1
9(1 1 11 1 11 1 1
)
b. Operasi Konvolusi
Langkah yang penting untuk mempelajari jaringan saraf
konvolusional adalah memahami operasi konvolusi. Secara garis besar,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
konvolusi adalah sebuah operasi dari dua fungsi yang bernilai riil
(Goodfellow et al., 2016). Operasi konvolusi biasanya dilambangkan
dengan tanda bintang, dan secara matematis ditulis sebagai berikut:
𝑠(𝑡) = (𝑥 ∗ 𝑤)(𝑡). 3.1
dengan 𝑥 adalah argumen pertama yang juga merupakan masukan, dan
𝑤 adalah argumen kedua yang merupakan kernel. Fungsi 𝑠(𝑡)
merupakan keluaran yang disebut juga sebagai peta fitur.
Untuk mengkonvolusikan citra masukan dengan kernel,
dilakukan perkalian titik antara kernel dan citra masukan. Dalam
pengolahan data citra, yang merupakan data dua dimensi, operasi
konvolusi yang digunakan adalah operasi yang bersifat diskrit. Operasi
konvolusi diskrit dapat ditulis sebagai berikut:
𝑆(𝑖, 𝑗) = (𝐼 ∗ 𝐾)(𝑖, 𝑗)
=∑ ∑ 𝐼(𝑚, 𝑛)𝐾(𝑖 − 𝑚, 𝑗 − 𝑛)𝑛𝑚
.
3.2
3.3
dengan 𝐼 adakah masukan dan 𝐾 merupakan kernel. Operasi konvolusi
merupakan operasi yang komutatif, sehingga Persamaan 3.2 dapat pula
ditulis sebagai:
𝑆(𝑖, 𝑗) = (𝐾 ∗ 𝐼)(𝑖, 𝑗)
=∑ ∑ 𝐼(𝑖 − 𝑚, 𝑗 − 𝑛)𝐾(𝑚, 𝑛)𝑛𝑚
. 3.4
Contoh 3.1:
1. Diketahui sebuah masukan citra 𝐼dan sebuah kernel 𝐾 yang masing-
masing berukuran 4 × 4 dan 3 × 3 sebagai berikut:
𝐼 = (
1 1 1 23 1 2 12 1 1 32 3 1 1
), 𝐾 = (1 0 −11 0 −11 0 −1
)
Hasil konvolusi antara masukan dan kernel adalah?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Penyelesaian:
𝑆 = (
𝟏 𝟏 𝟏 2𝟑 𝟏 𝟐 1𝟐 𝟏 𝟏 32 3 1 1
) ∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
= 1 ∙ 1 + 1 ∙ 0 + 1 ∙ −1 + 3 ∙ 1 + 1 ∙ 0 + 2 ∙ −1 + 2 ∙ 1 + 1 ∙ 0
+ 1 ∙ −1
= 2
𝑆 = (
1 𝟏 𝟏 𝟐3 𝟏 𝟐 𝟏2 𝟏 𝟏 𝟑2 3 1 1
) ∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
= 1 ∙ 1 + 1 ∙ 0 + 2 ∙ −1 + 1 ∙ 1 + 2 ∙ 0 + 1 ∙ −1 + 1 ∙ 1 + 1 ∙ 0
+ 3 ∙ −1
= −3
𝑆 = (
1 1 1 2𝟑 𝟏 𝟐 1𝟐 𝟏 𝟏 3𝟐 𝟑 𝟏 1
) ∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
= 3 ∙ 1 + 1 ∙ 0 + 2 ∙ −1 + 2 ∙ 1 + 1 ∙ 0 + 1 ∙ −1 + 2 ∙ 1 + 3 ∙ 0
+ 1 ∙ −1
= 4
𝑆 = (
1 1 1 23 𝟏 𝟐 𝟏2 𝟏 𝟏 𝟑2 𝟑 𝟏 𝟏
) ∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
= 1 ∙ 1 + 2 ∙ 0 + 1 ∙ −1 + 1 ∙ 1 + 1 ∙ 0 + 3 ∙ −1 + 3 ∙ 1 + 1 ∙ 0
+ 1 ∙ −1
= 0
Hasil konvolusi yang didapatkan adalah:
𝑆 = (2 −34 0
)
Dalam citra, proses konvolusi di atas dimulai dari citra yang
berukuran 4 × 4, kemudian citra dikonvolusi dengan sebuah filter
3 × 3 . Filter yang digunakan merupakan jenis filter untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
mendeteksi tepian citra secara vertikal. Setelah dilakukan proses
konvolusi, ukuran citra menjadi mengecil.
c. Stride dan Padding
Setelah melakukan proses konvolusi, citra yang asli akan
menyusut seperti pada Contoh 3.1 sebelumnya. Selain itu, saat
melakukan proses konvolusi, kernel digeser dan terkadang tidak semua
bagian citra tersentuh oleh kernel. Untuk mengatasi masalah tersebut,
akan dikenalkan dua parameter yaitu stride dan padding.
Dalam proses konvolusi pada Contoh 3.1, kernel yang berukuran
3 × 3 digeser sebesar satu langkah secara vertikal dan satu langkah
secara horizontal. Banyaknya jumlah baris dan kolom yang bergeser
pada contoh sebelumnya adalah 1. Pergeseran ini dinamakan parameter
stride dan disimbolkan dengan 𝑠 . Begitu pula dengan stride 𝑠 = 2
artinya kernel digeser dua langkah secara vertikal dan dua langkah
secara horizontal ke seluruh wilayah citra masukan. Untuk ilustrasi
dapat diperhatikan pada Gambar 3.1, terlihat bahwa masukan citra yang
berukuran 5 × 5 , dikonvolusikan dengan kernel berukuran 2 × 2 ,
dengan stride sebesar dua langkah.
Gambar 3.1 Ilustrasi Proses Konvolusi dengan 𝑠𝑡𝑟𝑖𝑑𝑒 = 2
(Michelucci, 2018)
Selanjutnya parameter yang akan dijelaskan adalah parameter
padding yang disimbolkan dengan p. Parameter ini menentukan jumlah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
piksel yang akan ditambahkan di setiap sisi dari citra masukan. Hal ini
digunakan dengan tujuan untuk memanipulasi ukuran yang didapat dari
proses konvolusi. Dalam penggunaannya, padding dibedakan menjadi
dua jenis, yaitu same padding dan valid padding. Same padding berarti
menerapkan padding pada citra masukan sehingga dimensi keluaran
yang dihasilkan memiliki ukuran yang sama dengan citra masukan.
Valid padding berarti tidak ada padding yang diterapkan sehingga
kernel selalu berada di dalam citra masukan. Sebagai ilustrasi, apabila
masukan citra berukuran 5 × 5 dikonvolusikan dengan kernel yang
berukuran 3 × 3 dan 𝑠𝑡𝑟𝑖𝑑𝑒 = 2 , maka akan didapatkan peta fitur
dengan ukuran 2 × 2. Tetapi apabila diterapkan padding sebanyak 1,
maka peta fitur yang dihasilkan berukuran 3 × 3. Besarnya dimensi
yang dihasilkan dari proses konvolusi dengan menerapkan parameter
dapat disimpulkan sebagai berikut:
𝑍 = ⌊𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋ × ⌊
𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋ 3.5
dengan 𝑍 adalah ukuran keluaran yang berupa matriks persegi, 𝐼 adalah
ukuran citra masukan, 𝑃 adalah parameter padding, dan 𝑆 adalah
parameter stride.
Contoh 3.2:
1. Diketahui sebuah masukan citra 𝐼dan sebuah kernel 𝐾yang masing-
masing berukuran 6 × 6 dan 3 × 3 sebagai berikut:
𝐼 =
(
1 1 1 2 0 23 1 2 1 1 12 1 1 3 3 12 3 1 1 2 21 1 5 4 3 12 3 1 1 2 1)
,
𝐾 = (1 0 −11 0 −11 0 −1
)
Dengan menggunakan 𝑠𝑡𝑟𝑖𝑑𝑒 = 2 dan 𝑝𝑎𝑑𝑑𝑖𝑛𝑔 = 0. Hasil
konvolusi antara masukan dan kernel adalah?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Penyelesaian:
Berdasarkan Persamaan 3.5, dimensi matriks yang akan
dihasilkan sebesar:
𝑍 = ⌊𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋ × ⌊
𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋
𝑍 = ⌊6 + 2 ∙ 0 − 3
2+ 1⌋ × ⌊
6 + 2 ∙ 0 − 3
2+ 1⌋
𝑍 = ⌊3
2+ 1⌋ × ⌊
3
2+ 1⌋
𝑍 = 2 × 2.
Sehingga, dimensi matriks yang akan dihasilkan dari proses
konvolusi tersebut berukuran 2 × 2 . Selanjutnya, akan dihitung
konvolusi antara masukan dan kernel.
𝑆 =
(
𝟏 𝟏 𝟏 2 0 2𝟑 𝟏 𝟐 1 1 1𝟐 𝟏 𝟏 3 3 12 3 1 1 2 21 1 5 4 3 12 3 1 1 2 1)
∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
= 1 ∙ 1 + 1 ∙ 0 + 1 ∙ −1 + 3 ∙ 1 + 1 ∙ 0 + 2 ∙ −1 + 2 ∙ 1 + 1 ∙ 0
+ 1 ∙ −1
= 2
𝑆 =
(
1 1 𝟏 𝟐 𝟎 23 1 𝟐 𝟏 𝟏 12 1 𝟏 𝟑 𝟑 12 3 1 1 2 21 1 5 4 3 12 3 1 1 2 1)
∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
= 1 ∙ 1 + 2 ∙ 0 + 0 ∙ −1 + 2 ∙ 1 + 1 ∙ 0 + 1 ∙ −1 + 1 ∙ 1
+ 3 ∙ 0 + 3 ∙ −1
= 0
𝑆 =
(
1 1 1 2 0 23 1 2 1 1 1𝟐 𝟏 𝟏 3 3 1𝟐 𝟑 𝟏 1 2 2𝟏 𝟏 𝟓 4 3 12 3 1 1 2 1)
∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
= 2 ∙ 1 + 1 ∙ 0 + 1 ∙ −1 + 2 ∙ 1 + 3 ∙ 0 + 1 ∙ −1 + 1 ∙ 1 + 1 ∙ 0
+ 5 ∙ −1
= −2
𝑆 =
(
1 1 1 2 0 23 1 2 1 1 12 1 𝟏 𝟑 𝟑 12 3 𝟏 𝟏 𝟐 21 1 𝟓 𝟒 𝟑 12 3 1 1 2 1)
∗ (𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏𝟏 𝟎 −𝟏
)
= 1 ∙ 1 + 3 ∙ 0 + 3 ∙ −1 + 1 ∙ 1 + 1 ∙ 0 + 2 ∙ −1 + 5 ∙ 1 + 4 ∙ 0
+ 3 ∙ −1
= −1
Hasil konvolusi yang didapatkan adalah:
𝑆 = (2 0−2 −1
)
d. Operasi Pooling
Operasi pooling merupakan operasi yang tak kalah penting juga
dalam jaringan saraf konvolusional. Operasi ini berfungsi untuk
mengurangi ukuran matriks. Operasi ini bekerja dengan memindai
masukan seperti operasi konvolusi dengan ukuran kernel dan stride
tertentu. Berdasarkan jenisnya, terdapat dua jenis pooling yang
digunakan, yaitu Max Pooling dan Average Pooling. Max pooling
adalah operasi pooling yang memilih elemen maksimum dari wilayah
peta fitur yang dicakup oleh kernel, dan Average Pooling adalah operasi
pooling yang menghitung rata-rata elemen di wilayah peta fitur yang
dicakup oleh kernel.
Contoh 3.3
1. Hasil Max Pooling untuk masukan A dengan 𝑠𝑡𝑟𝑖𝑑𝑒 = 2 dan
𝑘𝑒𝑟𝑛𝑒𝑙 2 × 2 adalah?
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
𝐴 = (
1 3 5 74 5 11 34 1 21 613 15 1 2
)
Penyelesaian:
𝐴 = (
𝑎1 𝑎2 𝑎3 𝑎4𝑎5 𝑎6 𝑎7 𝑎8𝑎9 𝑎10 𝑎11 𝑎12𝑎13 𝑎14 𝑎15 𝑎16
)
𝐵1 = max𝑖=1,2,5,6
𝑎𝑖
= 5
𝐵2 = max𝑖=3,4,7,8
𝑎𝑖
= 11
𝐵3 = max𝑖=9,10,13,14
𝑎𝑖
= 15
𝐵4 = max𝑖=11,12,15,16
𝑎𝑖
= 21
𝐵 = (5 1115 21
)
Jadi, Max Pooling dari masukan A adalah (5 1115 21
)
2. Arsitektur Jaringan Saraf Konvolusional
Arsitektur jaringan saraf konvolusional merupakan kumpulan lapisan-
lapisan yang terurut. Perbedaan utama antara arsitektur jaringan saraf tiruan
dengan jaringan saraf konvolusional adalah masukan pada jaringan saraf
konvolusinal berupa larik dua dimensi, sedangkan pada jaringan saraf tiruan
masukan berupa vektor. Namun, komputasi kedua jaringan sangat mirip.
Mulai dari, menghitung jumlahan produk, menambahkan bias, bahkan
keduanya juga melewati fungsi aktivasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Lapisan-lapisan utama yang digunakan untuk membangun suatu
arsitektur jaringan saraf konvolusional antara lain: Lapisan Konvolusional,
Lapisan Pooling (subsampling), dan Lapisan Fully connected. Lapisan ini
kemudian ditumpuk sehingga membentuk arsitektur jaringan saraf
konvolusional yang lengkap.
Gambar 3.2 Jaringan Saraf Konvolusional.
Pada bagian paling kiri dari gambar di atas merupakan masukan citra,
bagian yang ditunjukkan pada bagian masukan disebut sebagai bidang
reseptif. Hal yang dilakukan bidang reseptif yaitu memilih wilayah piksel
pada citra masukan. Seperti yang ditunjukkan gambar, operasi pertama yang
dilakukan adalah konvolusi. Keluaran dari konvolusi menghasilkan peta fitur
yang kemudian diaktifkan dengan fungsi aktivasi ReLU. Proses selanjutnya
adalah Subsampling atau Pooling, dan proses terakhir adalah Fully connected.
a. Lapisan Konvolusional
Lapisan konvolusional merupakan lapisan inti dari jaringan saraf
konvolusional. Lapisan ini yang pertama kali menerima masukan
berupa citra pada arsitektur jaringan dan akan menghasilkan keluaran
berupa peta fitur. Parameter dari lapisan konvolusional terdiri dari
sekumpulan 𝐾 kernel, di mana setiap kernel berbentuk persegi (patch)
yang memindai citra mulai dari kiri atas sampai kanan bawah.
Masukan Lapisan Konvolusi + Fungsi Aktivasi
Lapisan Konvolusi + Fungsi Aktivasi
Lapisan Pooling Lapisan Pooling Lapisan Fully Connected
Keluaran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Gambar 3.3 Ilustrasi Kernel dari Lapisan Konvolusioal yang
Memindai dari Kiri Atas dampai Kanan Bawah (Krohn, 2019).
Sebagai contoh, misalkan diambil sebuah citra berwarna yang
mempunyai input sebesar 32 × 32 × 3 , apabila kernel berukuran
5 × 5, maka setiap neuron pada lapisan konvolusional akan mepunyai
total bobot 5 × 5 × 3 = 75 dengan tambahan 1 parameter bias,
sehingga total parameternya sebanyak 76 parameter.
b. Lapisan Pooling
Seperti yang dibahas di bagian sebelumnya, lapisan
konvolusional dapat memiliki sejumlah kernel. Masing-masing kernel
menghasilkan peta fitur, sehingga keluaran dari lapisan konvolusional
adalah susunan dari peta fitur tiga dimensi.
Setelah itu, keluaran dari lapisan konvolusi, akan menjadi
masukan dari lapisan pooling. Lapisan ini juga bekerja dengan
memindai masukan seperti pada lapisan konvolusional. Pada setiap
posisi yang ditempati, lapisan pooling akan mereduksi ukuran data dari
citra. Lapisan pooling mempunyai ukuran filter 2 × 2 dan panjang
stride 2. Dalam penerapannya, umumnya jenis pooling yang sering
dipakai adalah max-pooling, di mana lapisan ini akan mengambil nilai
terbesar dalam pengoperasiannya.
Gambar 3.4 Operasi Max-Pooling (Krohn, 2019).
1
55
73
7
2
61
30
4
1
2
3
2
4
6
1
1
Max-
Pooling
4 x 4
2 x 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Pada ilustrasi gambar di atas, terlihat peta fitur yang merupakan
keluaran dari lapisan konvolusi mempunyai ukuran 4 × 4, peta fitur
tersebut kemudian dikenakan dengan operasi pooling dengan ukuran
2 × 2 dan stride sebesar 2 langkah. Dengan menggunakan max-pooling
hasil dari lapisan ini berupa peta fitur berukuran 2 × 2.
c. Lapisan Fully Connected
Lapisan fully connected adalah lapisan terakhir dari arsitektur
jaringan saraf konvolusional. Jaringan ini menerima masukan dari
lapisan sebelumnya, yaitu lapisan pooling yang berbentuk matriks
dengan ukuran tertentu. Akan tetapi, keluaran dari lapisan pooling perlu
diratakan menjadi vektor terlebih dahulu agar dapat dijadikan masukan
untuk lapisan fully connected. Vektor yang telah diratakan ini kemudian
akan terhubung dengan lapisan fully connected dan dapat digunakan
untuk mengklasifikasikan citra ke dalam kelasnya. Lapisan fully
connected memiliki beberapa lapisan tersembunyi, fungsi aktivasi,
lapisan luaran, dan fungsi rugi (loss). Keluaran dari lapisan fully
connected berupa vektor berdimensi, dengan banyak dimensi
menunjukkan jumlah kelas yang sesuai dengan kategori yang ada pada
dataset.
Gambar 3.5 Jaringan Fully Connected
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Pada Gambar 3.5 terlihat jaringan dari lapisan fully connected, persis
seperti pada perceptron lapis jamak dalam jaringan saraf. Masukan dari
lapisan fully connected merupakan keluaran dari lapisan pooling yang
sudah diubah menjadi vektor. Vektor ini kemudian menyebar melalui
jaringan saraf, dan menghasilkan keluaran yang akan menjadi kelas dari
arsitektur jaringan saraf konvolusional.
B. Dropout
Dalam pembelajaran mesin, permasalahan utama yang dihadapi adalah
bagaimana membuat suatu algorima yang mempunyai performa yang baik tidak
hanya pada data latih tetapi juga pada masukan yang baru. Strategi yang dikenal
untuk menyelesaikan permasalahan ini adalah Regularisasi. Regularisasi adalah
teknik yang digunakan untuk memodifikasi algoritma pembelajaran yang
dimaksudkan untuk mengurangi galat generalisasinya tetapi bukan galat pelatihan
(Goodfellow et al., 2016). Salah satu jenis regularisasi yang akan digunakan pada
tugas akhir ini adalah dengan menggunakan dropout.
Dropout adalah bentuk regularisasi yang bertujuan membantu mencegah
overfitting dengan meningkatkan akurasi pada pengujian. Saat melakukan pelatihan
pada model, dropout akan memutuskan beberapa neuron secara acak dari lapisan
sebelumnya ke lapisan berikutnya dalam arsitektur jaringan. Regularisasi dropout
menghilangan beberapa neuron pada setiap iterasi berdasarkan probabilitas.
Dengan memutus atau menghilangkan beberapa neuron secara acak, jaringan dapat
belajar dengan lebih baik karena arsitektur jaringan akan menjadi lebih sederhana
dan akan mengurangi terjadinya overfitting.
Gambar 3.6 Kiri: Ilustrasi Jaringan Saraf Tanpa Dropout. Kanan: Jaringan Saraf
dengan Dropout 𝑝 = 0.5 (Rosebrock, 2017).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Ilustrasi di atas merupakan contoh dropout dengan probabilitas 0.5. Pada gambar
sebelah kiri, jaringan yang terlihat terdiri dari 12 koneksi. Setelah dikenakan
dropout koneksi jaringan terputus setengahnya menjadi 6 koneksi saja.
C. Fungsi Rugi Binary Cross entropy
Fungsi rugi adalah fungsi yang digunakan sebagai ukuran seberapa baik
model prediksi dalam hal kemampuan memprediksi hasil yang diharapkan. Di
dalam pembelajaran mesin, fungsi rugi dibagi menjadi tiga bagian, yang pertama
yaitu fungsi rugi untuk regresi, fungsi rugi untuk klasifikasi biner dan fungsi rugi
untuk multi kelas. Pada tugas akhir ini akan dibahas fungsi rugi untuk klasifikasi
biner terutama fungsi rugi binary cross entropy.
Fungsi rugi cross entropy mengukur kinerja model klasifikasi yang
keluarannya berupa nilai 0 dan 1. Fungsi rugi ini akan meningkat apabila prediksi
yang dilakukan oleh model jaringan menyimpang dari label sebenarnya. Secara
matematis, fungsi rugi cross entropy biner dapat ditulis sebagai berikut:
𝑙𝑜𝑠𝑠 = −1
𝑁∑𝑦𝑖
𝑁
𝑖=1
∙ log 𝑦�̂� + (1 − 𝑦𝑖) ∙ log(1 − 𝑦�̂�) 3.6
dengan 𝑦�̂� adalah nilai yang diprediksi dalam keluaran model, 𝑦𝑖 nilai target yang
bersesuaian, dan 𝑁 adalah banyaknya data. Fungsi rugi tersebut juga dapat ditulis
menjadi persamaan berikut:
𝑙𝑜𝑠𝑠 = {𝑙𝑜𝑔 �̂� , 𝑢𝑛𝑡𝑢𝑘 𝑦 = 1log (1 − �̂�) , 𝑢𝑛𝑡𝑢𝑘 𝑦 = 0
3.7
Dalam perhitungannya, fungsi rugi cross entropy ini menggunakan perhitungan
fungsi logaritma. Secara matemtis, fungsi logaritma ditulis sebagai 𝑓(𝑥) =𝑎 log 𝑥,
dengan 𝑎 ≠ 1 . Fungsi logaritma merupakan fungsi naik untuk 𝑎 > 1 , dan
merupakan fungsi turun untuk 0 < 𝑎 < 1. Sehingga, berdasarkan Persamaan 3.7
ketika 𝑦 = 1, fungsi rugi ini akan menurun mendekati nol. Hal ini artinya saat label
yang diberikan adalah 1 dan hasil yang diprediksi merupakan suatu bilangan yang
mendekati 0, maka dapat disimpulkan bahwa terjadi kesalahan yang besar dalam
kemampuan mengklasifikan model.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
D. Algoritma Optimisasi RMSprop
Algoritma optimisasi merupakan bagian yang penting dalam jaringan saraf.
Optimisasi ini berguna untuk meminimalkan fungsi rugi, terutama apabila bekerja
dengan data yang cukup besar. Algoritma optimisasi yang paling mendasar adalah
Gradient Descent.
Sebagai ilustrasi akan diberikan gambaran berupa sebuah umpama. Misalkan
seseorang tersesat di pegunungan dalam kabut yang tebal, yang bisa dirasakan
orang tersebut hanyalah kemiringan tanah di bawah kaki. Strategi yang baik untuk
sampai ke dasar lembah dengan cepat adalah menuruni bukit ke arah lereng yang
paling curam. Inilah tepatnya yang dilakukan oleh Gradient Descent: mengukur
gradien lokal dari fungsi rugi, dan berjalan ke arah gradien menurun. Setelah
gradiennya nol, maka nilai minimum telah dicapai.
Secara konkrit, gradient descent dimulai dengan suatu nilai acak 𝜃, kemudian
nilai tersebut diperbaiki secara bertahap. Langkah-langkah yang diambil akan terus
mencoba meminimumkan fungsi rugi sampai algoritma tersebut konvergen.
Gambar 3.7 Ilustrasi Gradient Descent (Géron, 2019).
Dalam gradient descent terdapat parameter yang sangat penting, yaitu ukuran
langkah, yang ditentukan oleh learning rate. Jika learning rate terlalu kecil, maka
algoritma harus melalui banyak iterasi untuk dapat konvergen dan akan memakan
waktu yang lama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Gambar 3.8 Ilustrasi Learning Rate yang Terlalu Kecil (Géron,
2019).
Akan tetapi, jika learning rate terlalu tinggi, maka mungkin saja melompat
ke seberang lembah dan berakhir di sisi lain, bahkan mungkin lebih tinggi dari
sebelumnya. Hal ini akan membuat algoritma menyimpang, dengan nilai yang besar
dan gagal menemukan nilai yang baik.
Gambar 3.9 Ilustrasi Learning Rate yang Terlalu Besar (Géron,
2019).
Gambar 3.8 dan Gambar 3.9 menunjukkan dua tantangan utama pada Gradient
Descent. Tidak mudah dalam menentukan learning rate yang dapat
mengoptimalkan fungsi rugi. Hal ini memerlukan banyak trial and error. Cara
seperti ini tentunya bukan cara yang paling efisien dalam mencari optimasi yang
baik. Oleh karena itu akan dikenalkan algoritma lain yang akan dapat bekerja
dengan lebih cepat dan efisien, yaitu optimasi momentum dan RMSprop.
Gradient Descent dengan momentum dapat bekerja lebih cepat daripada
algoritma penurunan gradient descent biasa. Algoritma gradient descent dengan
momentum bekerja dengan membatasi osilasi dalam arah penurunannya, sehingga
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
algoritma dapat konvergen dengan lebih cepat. Rumusan matematis dari gradient
descent dengan momentum dapat ditulis sebagai berikut:
𝑣𝑑𝑤 = 𝛽 ∙ 𝑣𝑑𝑤 + (1 − 𝛽) ∙ 𝑑𝑤 3.7
𝑣𝑑𝑏 = 𝛽 ∙ 𝑣𝑑𝑏 + (1 − 𝛽) ∙ 𝑑𝑏 3.8
dengan 𝑣𝑑𝑤, 𝑣𝑑𝑏 masing-masing adalah estimasi gradien bobot dan bias, 𝛽 adalah
nilai momentum, dan 𝑑𝑤, 𝑑𝑏 masing-masing adalah gradien bobot dan bias.
Algoritma berikutnya adalah optimasi RMSprop. Algoritma ini mirip
dengan algoritma gradient descent dengan momentum. Optimasi RMSprop
membatasi osilasi dalam arah vertikal. Perbedaan antara RMSprop dan gradient
descent adalah pada bagaimana gradien itu dihitung. Nilai momentum yang
dilambangkan dengan 𝛽 biasanya diatur sebesar 0,9. Secara matematis RMSprop
dapat ditulis sebagai berikut:
𝑣𝑑𝑤 = 𝛽 ∙ 𝑣𝑑𝑤 + (1 − 𝛽) ∙ 𝑑𝑤2 3.9
𝑣𝑑𝑏 = 𝛽 ∙ 𝑣𝑑𝑏 + (1 − 𝛽) ∙ 𝑑𝑏2 3.10
dengan 𝑣𝑑𝑤, 𝑣𝑑𝑏 masing-masing adalah estimasi gradien bobot dan bias, 𝛽 adalah
nilai momentum, dan 𝑑𝑤2, 𝑑𝑏2 masing-masing adalah kuadrat gradien bobot dan
bias.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV
METODOLOGI
A. Data
Dalam penulisan tugas akhir ini, data yang digunakan adalah data Dogs vs.
Cats. Data ini merupakan data yang digunakan sebagai bagian dari kompetisi situs
Kaggle untuk merancang algoritma pembelajaran yang bisa mengklasifikasikan
citra kucing dan anjing dengan benar. Data citra yang diunduh terdiri dari dua folder
yaitu folder train dan test. Pada folder train terdiri dari 25.000 data, dengan masing-
masing kategori terdiri 12.500 data. Pada folder train, data yang disediakan sudah
terlabel sesuai dengan masing-masing kategorinya, contohnya: cat.04.jpg,
dog.03.jpg. Pada folder test terdiri dari 12.500 data dengan data yang disediakan
belum terlabel.
Pada penulisan tugas akhir ini, penulis mengambil 2800 data citra, dengan
masing-masing kategori terdiri dari 1400 citra. Data citra kemudian dibagi ke dalam
data latih, data validasi, dan data uji. Data latih diambil 2000 citra pada folder train
dengan masing-masing kategori sebanyak 1000 citra, data validasi diambil 800 citra
pada folder train dengan masing-masing kategori sebanyak 400 citra, dan data uji
pada folder test sebanyak 10 citra yang dipilih secara acak.
Gambar 4.1 Sampel Data Uji.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Adapun varibel data yang digunakan dalam penulisan tugas akhit ini yang
tampilkan sebagai berikut:
Tabel 4.1 Definisi Variabel Peneilitian
Gambar Variabel Definisi
Anjing
Merupakan mamalia yang
bertubuh cukup besar menyerupai
serigala dan mempunyai
kecerdasan yang cukup tinggi.
Mamalia ini sering dijadikan
teman peliharaan manusia, dan
mempunyai rahang yang kuat dan
gigi yang tajam.
Kucing
Merupakan mamalia yang
bertubuh kecil. Hewan ini
meskipun bertubuh kecil tetapi
merupakan predator yang cukup
kuat. Hewan ini mempunyai taring
yang cukup tajam, dan cakar yang
digunakannya untuk menangkap
mangsa
B. Metode Analisis Data
Dalam penulisan tugas akhir ini, metode analisis yang digunakan untuk
mengklasifikasikan citra adalah dengan menggunakan algoritma yang terdapat pada
Pembelajaran Dalam, yaitu Jaringan Saraf Konvolusional. Dalam proses
pengerjaan algoritma, penulis menggunakan perangkat lunak Python 3.7 dengan
menggunakan IDE Jupyter Notebook, dan modul Keras 2.4.0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
C. Perancangan Sistem Jaringan Saraf Konvolusional
Adapun tahapan perancangan sistem jaringan dapat dilihat pada diagram alur
di bawah ini:
Selesai
Klasifikasi Data Uji
ya
Apakah akurasi
sudah baik?
tidak
Pra-proses Data
Mulai
Data Masukan
Pembagian Data Data latih, data validasi, data uji
Data Uji
Augmentasi Citra
Data Validasi Data Latih
Augmentasi Citra
Hasil Klasifikasi
Selesai
Melatih Model JSK Merancang
Model JSK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Gambar 4.2 Diagram Alur Sistem Jaringan
Diagram alur di atas merupakan diagram yang menyatakan tahapan dalam
penelitian tugas akhir ini. Tahap pertama dimulai dengan persiapan data masukan.
Data masukan diunduh dari situs Kaggle, kemudian data yang sudah diunduh
diambil sekitar 2800 citra yang akan dijadikan data untuk pelatihan model dan
pengujian model. Tahapan kedua yaitu pra-proses. Pra-proses data dilakukan
dengan mengubah seluruh ukuran data menjadi ukuran yang sama yaitu ke dalam
bentuk persegi. Hal ini dikarenakan pada jaringan saraf konvolusional mempunyai
lapisan yang bergantung pada ukuran masukan. Apabila tidak memiliki ukuran
yang tetap atau sama maka arsitektur model jaringan tidak dapat ditentukan. Data
yang sudah diubah ukurannya, kemudian akan dibagi ke dalam beberapa jenis data,
yaitu data latih, data validasi, dan data uji. Selanjutnya, data latih dan data validasi
dilakukan proses augmentasi. Augmentasi data dilakukan dengan beberapa teknik
transformasi seperti zoom, rescale, flip, dan sebagainya untuk menghasilkan variasi
citra yang berbeda.
Tahap selanjutnya adalah tahap perancangan model jaringan saraf
konvolusional. Pada tahap ini akan dibangun arsitektur berupa lapisan konvolusi,
lapisan pooling, dan lapisan fully connected. Pada penulisan tugas akhir ini, data
yang diproses akan melewati sebanyak tiga kali lapisan konvolusi dan tiga kali
lapisan pooling terlebih dahulu, setelah itu baru akan diproses di lapisan fully
connected.
Setelah arsitektur jaringan terbentuk, tahapan selanjutnya adalah melatih dan
menguji model jaringan. Data latih akan melakukan proses pelatihan dilanjutkan
dengan pengujian dengan data validasi. Proses pelatihan dan pengujian ini akan
menghasilkan nilai akurasi. Model dikatakan baik, apabila nilai akurasi yang
dihasilkan pada proses pelatihan dan pengujian memiliki selisih yang kecil. Apabila
akurasi yang diperoleh mempunyai selisih yang besar, model akan dimodifikasi
kembali dengan mengganti nilai pada parameter.
Kemudian, setelah mendapatkan model jaringan yang sudah baik maka akan
dilakukan pengujian kembali dengan data uji. Pengujian ini dilakukan untuk
memeriksa apakah hasil akurasi yang didapat setelah pengujian dapat benar-benar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
mengklasifikasikan citra atau tidak. Apabila ya, maka dapat disimpulkan bahwa
arsitektur jaringan yang dibangun, mempunyai kemampuan yang baik dalam
mengklasifikasikan citra.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V
APLIKASI JARINGAN SARAF KONVOLUSIONAL UNTUK
KLASIFIKASI CITRA DENGAN PERANGKAT LUNAK
A. Implementasi Pra Proses dan Augmentasi Data
Pada bab sebelumnya telah dijelaskan bagaimana proses dalam
mengumpulkan data yang akan digunakan pada tugas akhir ini. Data dibagi menjadi
tiga jenis folder yaitu data latih, data validasi, dan data uji.
Gambar 5.1 Pembagian Data.
Masing-masing jenis folder data di atas, terdiri dari dua kategori citra, yaitu
citra kucing dan anjing. Data yang sudah dibagi ke dalam beberapa folder tidak
langsung dijadikan masukan ke dalam tahap pengkodean. Data citra yang
dikumpulkan terdiri dari macam-macam ukuran, sehingga perlu dilakukan
perubahan agar semua data citra dapat mempunyai ukuran piksel yang sama.
Data
Data Validasi
800 data
Data Latih
2000 data
Data Uji
10 data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Gambar 5.2 Sampel Data Uji.
Mengubah ukuran citra merupakan proses yang penting dalam memulai
jaringan saraf konvolusional. Citra yang menjadi masukan untuk proses
pengklasifikasian haruslah merupakan citra yang berbentuk persegi. Perubahan
ukuran citra akan ditunjukkan seperti gambar berikut:
Gambar 5.3 Perubahan Ukuran Citra
Pada gambar di atas, terlihat bahwa citra mentah yang berada disebelah kiri masih
berbentuk persegi panjang dengan ukuran 327 × 499 . Citra kemudian diubah
ukurannya dan mengalami penyusutan dengan ukuran 150 × 150 seperti tampak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
pada gambar di sebelah kiri. Ukuran 150 × 150 dipilih secara acak dengan
beberapa percobaan. Pemilihan ukuran yang terlalu kecil dapat menghilangkan
informasi yang penting yang terdapat pada citra, begitu juga apabila pemilihan
ukuran terlalu besar, akan membutuhkan waktu pemrosesan yang lebih lama dan
membutuhkan ruang penyimpanan komputer yang lebih besar.
Selain mengubah ukuran piksel pada citra, terdapat teknik lain yang
digunakan yaitu augmentasi data. Augmentasi data ini merupakan suatu teknik
untuk meningkatkan ukuran dari suatu citra. Idenya adalah dengan membuat suatu
citra baru dengan mengubah citra yang ada dari kumpulan data dengan cara yang
berbeda. Hal ini untuk mencegah terjadinya overfitting dan membantu model
menggeneralisasi dengan lebih baik. Overfitting pada proses pengklasifikasian
dapat terjadi karena terlalu sedikit contoh data yang dapat dipelajari. Dengan
adanya augmentasi, data yang dihasilkan akan menjadi lebih banyak, hal ini akan
melatih model agar model dengan tidak melihat citra yang sama sebanyak dua kali
dan pastinya akan membantu model dalam menggeneralisasi dengan lebih baik.
Terdapat beberapa transformasi yang sering dilakukan, misalnya:
1. rescale adalah nilai yang akan digunakan untuk mengalikan data sebelum
pemrosesan lainnya. Citra masukan asli merupakan citra berwarna (RGB)
dalam 0-255, tetapi karena nilai tersebut terlalu besar saat diproses, maka
nilai akan diganti dengan skala 1/255.
2. shear_range adalah transformasi geser. Transformasi ini akan menggeser
citra sepanjang sumbu dan mereganggkan citra dengan ukuran tertentu.
Hal ini akan membantu komputer agar dapat membaca citra dari sudut
yang berbeda.
3. zoom_range adalah transformasi untuk memperbesar ataupun
mengecilkan citra. Untuk nilai zoom dibawah 1.0, maka citra akan
diperbesar, sedangkan untuk nilai zoom diatas 1.0, maka citra akan
diperkecil.
4. horizontal_flip adalah transformasi untuk membalik citra secara
horizontal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
5. width_shift_range adalah transformasi yang menggeser citra ke arah kiri
atau kanan.
6. height_shift_range transformasi yang menggeser citra ke arah atas atau
bawah.
Gambar 5.4 Ilustrasi Citra yang Ditransformasi.
Untuk lebih jelas, implementasi kode ditunjukkan sebagai berikut
# mengubah ukuran citra
img_width, img_height = 150, 150
train_data_dir = 'data/train'
validation_data_dir = 'data/validation'
nb_train_samples = 2000
nb_validation_samples = 800
epochs = 80
batch_size = 16
if K.image_data_format() == 'channels_first':
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
input_shape = (3, img_width, img_height)
else:
input_shape = (img_width, img_height, 3)
# Augmentasi Citra pada Data Train
train_datagen = ImageDataGenerator(
rescale=1. / 255,
shear_range=0.1,
zoom_range=0.1,
width_shift_range=0.1,
height_shift_range=0.1,
horizontal_flip=True)
# Augmentasi Citra pada Data Validasi
val_datagen = ImageDataGenerator(rescale=1. / 255)
Gambar 5.5 Kode Pra-Proses dan Augmentasi.
Pada Gambar 5.5 di atas menunjukkan bahwa citra masukan yang akan
digunakan mempunyai ukuran 150 × 150 × 3, angka 150 menunjukkan ukuran
lebar dan panjang citra, sedangkan angka 3 menunjukkan jumlah kanal pada citra.
Banyaknya epoch yang digunakan sebanyak 80 dan ukuran batch yang digunakan
sebesar 16. Langkah selanjutnya adalah augmentasi citra pada masing-masing
folder data. Pada kode di atas, penulis menggunakan transformasi sebanyak 6 jenis
pada data latih dan satu jenis transformasi pada data validasi.
B. Implementasi Jaringan Saraf Konvolusional
Setelah tahap pra proses dan augmentasi dilakukan, selanjutnya adalah proses
untuk membangun model penggklasifikasikan citra. Ilustrasi arsitektur jaringan
saraf konvolusional yang digunakan pada tugas akhir ini tampak seperti pada
gambar berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Gambar 5.6 Arsitektur Jaringan Saraf Konvolusional
Pada ilustrasi gambar di atas, terlihat bahwa dalam model pengklasifikasian
terdiri dari tiga lapisan konvolusional, tiga lapisan pooling, dan lapisan fully
connected dengan dua lapisan tersembunyi. Jumlah lapisan untuk model tidaklah
bersifat mutlak. Banyaknya lapisan-lapisan yang ada pada model berfungsi untuk
melatih filter-filter agar mendapatkan filter yang tepat untuk mengklasifikasikan
model. Filter-filter yang ada pada jaringan saraf tiruan tidak dipilih secara manual,
melainkan dilatih agar mendapatkan filter yang tepat.
Filter pada konvolusi yang pertama biasanya akan berfungsi untuk
mendeteksi tepian pada citra. Pada konvolusi yang kedua, filter akan mendeteksi
bagian-bagian yang memiliki informasi yang tinggi, misalnya bagian mata hewan
dan telinga hewan. Selanjutnya pada konvolusi tahap terakhir, biasanya filter akan
mendeteksi gambar secara keseluruhan dan akan memberikan lebih banyak
informasi bagi model terkait dengan kategori kelas yang akan dihasilkan. Kode
dalam mengimplementasikan jaringan saraf konvolusional pada perangkat lunak
ditunjukkan sebagai berikut:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
Masukan Lapisan Konvolusi + ReLU
Lapisan Konvolusi + ReLU
Lapisan Konvolusi + ReLU
Lapisan Pooling Lapisan Pooling Lapisan Pooling
Lapisan Fully Connected
Kelu
aran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.summary()
Gambar 5.7 Kode Perancangan Model Jaringan Saraf Konvolusional.
Jenis model yang digunakan pada kode di atas adalah jenis Sequential. Model
jenis ini digunakan karena model jenis ini memungkinkan untuk membuat model
jaringan saraf yang bertumpuk-tumpuk. Pada kode di atas penggunaan add()
berfungsi untuk menambahkan lapisan pada model jaringan yang dibuat.
Sedangkan untuk Conv2D artinya jenis data yang digunakan merupakan jenis data
2 dimensi. Konvolusi pertama pada kode di atas menggunakan filter berukuran
3 × 3 sebanyak 32 filter. Ukuran 3 × 3 merupakan ukuran yang sering digunakan
pada jaringan saraf konvolusional dan filter sebanyak 32 merupakan ukuran yang
direkomendasikan untuk jaringan membaca pola pada lapisan pertama. Kemudian
pada konvolusi pertama ini digunakan padding dan stride sebesar 1 langkah.
Keluaran dari hasil konvolusi tersebut akan menghasilkan peta fitur dengan ukuran:
𝑍 = ⌊𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋ × ⌊
𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋
𝑍 = ⌊150 + 2 ∙ 0 − 3
1+ 1⌋ × ⌊
150 + 2 ∙ 0 − 3
1+ 1⌋
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
𝑍 = 148 × 148
dengan parameter sebanyak ((3 × 3 × 3) + 1 𝑏𝑖𝑎𝑠) × 32 𝑓𝑖𝑙𝑡𝑒𝑟 =
896 parameter. Proses konvolusi ini kemudian akan diikuti dengan fungsi aktivasi
ReLU.
Lapisan selanjutnya adalah lapisan pooling pertama. Pada lapisan ini, penulis
menggunakan jenis Max-Pooling dengan ukuran filter sebesar 2 × 2. Ukuran ini
merupakan ukuran yang paling sering umum dan paling sering digunakan pada
pooling. Proses pooling ini bekerja dengan mengambil nilai terbesar setiap
pergeseran filter pada peta fitur. Pergeseran pada kode di atas tidak dituliskan, sebab
pada defaultnya, besaran langkah pada pooling akan mengikuti ukuran filternya.
Keluaran dari lapisan pooling akan tereduksi, dan menghasilkan peta fitur baru
dengan ukuran:
𝑍2 = ((𝑍1 − 𝐾)
2+ 1) × (
(𝑍1 − 𝐾)
2+ 1)
𝑍2 = ((148 − 2)
2+ 1) × (
(148 − 2)
2+ 1)
𝑍2 = 74 × 74
Proses konvolusi akan diulang kembali, dengan ukuran dan jumlah filter yang
sama. Ukuran keluaran dari proses konvolusi yang kedua ini adalah:
𝑍3 = ⌊𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋ × ⌊
𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋
𝑍3 = ⌊74 + 2 ∙ 0 − 3
1+ 1⌋ × ⌊
74 + 2 ∙ 0 − 3
1+ 1⌋
𝑍3 = 72 × 72
dengan parameter sebanyak ((3 × 3 × 32) + 1 𝑏𝑖𝑎𝑠) × 32 𝑓𝑖𝑙𝑡𝑒𝑟 =
9248 parameter dan diikuti fungsi aktivasi ReLU. Selanjutnya, operasi pooling
yang kedua juga mempunyai ukuran filter yang sama seperti pada lapisan pooling
yang pertama. Ukuran keluaran dari lapisan pooling yang kedua ini adalah:
𝑍4 = ((𝑍3 − 𝐾)
2+ 1) × (
(𝑍3 − 𝐾)
2+ 1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
𝑍4 = ((72 − 2)
2+ 1) × (
(72 − 2)
2+ 1)
𝑍4 = 36 × 36
Pada lapisan konvolusi yang terakhir, akan digunakan filter berukuran 3 × 3
dengan jumlah filter sebanyak 64. Jumlah filter yang bertambah, berfungsi agar
model jaringan dapat membaca pola citra dengan lebih kompleks. Ukuran keluaran
dari lapisan konvolusi yang terakhir ini adalah:
𝑍5 = ⌊𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋ × ⌊
𝐼 + 2𝑃 − 𝐾
𝑆+ 1⌋
𝑍5 = ⌊36 + 2 ∙ 0 − 3
1+ 1⌋ × ⌊
36 + 2 ∙ 0 − 3
1+ 1⌋
𝑍5 = 34 × 34
dengan parameter sebanyak ((3 × 3 × 32) + 1 𝑏𝑖𝑎𝑠) × 64 𝑓𝑖𝑙𝑡𝑒𝑟 =
18496 parameter dan diikuti fungsi aktivasi ReLU. Dan untuk proses pooling yang
terakhir, menggunakan ukuran filter yang sama seperti lapisan pooling sebelumnya,
yaitu 2 × 2. Ukuran keluaran dari lapisan pooling yang terakhir ini adalah:
𝑍6 = ((𝑍5 − 𝐾)
2+ 1) × (
(𝑍5 − 𝐾)
2+ 1)
𝑍6 = ((34 − 2)
2+ 1) × (
(34 − 2)
2+ 1)
𝑍6 = 17 × 17
Dari proses konvolusi dan pooling yang dilalui, terlihat bahwa ukuran citra
semakin mengecil. Keluaran dari lapisan pooling yang terakhir merupakan petar
fitur yang berbentuk larik multi dimensi. Keluaran dari lapisan pooling ini akan
dilakukan pemerataan (flatten), agar menjadi vektor yang menjadi masukan untuk
lapisan fully connected. Masukan untuk lapisan fully connected mempunyai neuron
sebanyak 17 × 17 × 64 = 18496 yang merupakan hasil perataan lapisan pooling
terakhir. Seperti halnya pada perceptron lapis jamak, dalam lapisan fully connected
ini memiliki lapisan tersembunyi. Lapisan tersembunyi yang pertama mempunyai
64 neuron, dengan total parameter yang ada pada lapisan ini sebanyak
18496 × 64 + 64 𝑏𝑖𝑎𝑠 = 1183808 parameter. Lapisan ini kemudian diikuti
dengan fungsi aktivasi ReLU.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Selanjutnya, lapisan akan dikenakan dengan dropout sebesar 0.25. Ukuran
Dropout dipilih setelah dilakukan beberapa kali pelatihan. Ukuran dropout yang
terlalu besar akan memutus terlalu banyak informasi pada lapisan fully connected
begitu pula sebaliknya apabila terlalu kecil, maka informasi yang diberikan akan
terlalu banyak yang kemudian akan menyebabkan adanya overfitting. Setelah
dropout, lapisan kemudian akan diproses kembali pada lapisan dense dengan 1
neuron. Total parameter yang ada pada lapisan dense yang terakhir ini adalah
sebanyak 64 × 1 + 1 𝑏𝑖𝑎𝑠 = 65 parameter. Dan untuk fungsi aktivasi yang
digunakan pada lapisan terakhir ini adalah fungsi aktivasi sigmoid, yang dapat
mengklasifikasikan dua jenis kategori. Untuk lebih lengkapnya, ukuran keluaran
tiap-tiap lapisan dan jumlah parameter dapat dilihat pada Gambar 5.8.
Gambar 5.8 Summary Model Jaringan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Arsitektur jaringan saraf konvolusional yang sudah dibuat, akan terlebih
dahulu dikonfigurasi sebelum dapat digunakan untuk melatih model. Fungsi rugi
yang digunakan adalah jenis fungsi rugi binary cross entropy. Fungsi rugi jenis ini
digunakan, karena hasil klasifikasi yang akan dicari pada tugas akhir ini hanya
terdiri dari dua kelas saja. Untuk mengoptimasi fungsi rugi, fungsi yang akan
digunakan adalah jenis RMSProp, fungsi ini dipilih setelah penulis melakukan
beberapa kali trial and error, untuk mendapatkan hasil klasifikasi yang optimal.
Untuk implementasinya dapat dilihat pada Gambar 5.9 berikut:
model.compile(loss='binary_crossentropy', optimizer='rmsprop',
metrics=['accuracy'])
Gambar 5.9 Kode Kompilasi Model.
Selanjutnya, arsitektur model yang sudah dibangun akan digunakan untuk melatih
dan memvalidasi data citra yang sudah disiapkan. Pada Gambar 5.5, telah diketahui
bahwa jumlah epoch yang digunakan sebanyak 80, dan batch size yang dipilih
adalah 16. Batch size merupakan jumlah sampel yang akan digunakan terlebih
dahulu dalam proses pelatihan. Jumlah epoch merupakan hyperparameter yang
mendefinisikan berapa kali algoritma pembelajaran melalui seluruh proses
pelatihan untuk keseluruhan dataset. Dalam pemilihan batch size dan jumlah epoch,
sebenarnya tidak ada pemilihan atau jawaban yang tepat, perlu beberapa kali trial
and error untuk mendapatkan kombinasi yang menghasilkan akurasi yang dirasa
optimal. Untuk implemetasinya pada python, akan ditunjukkan pada Gambar 5.10
berikut:
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
validation_data_dir,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary')
history = model.fit_generator(
train_generator,
steps_per_epoch=nb_train_samples // batch_size,
epochs=epochs,
validation_data=validation_generator,
validation_steps=nb_validation_samples // batch_size)
Gambar 5.10 Kode untuk Pelatihan dan Validasi Data.
Proses pelatihan untuk mendapatkan akurasi dari implemetasi kode di atas
ditunjukkan sebagai berikut:
Epoch 1/80
125/125 [==============================] - 58s 467ms/step - loss: 0.
7059 - accuracy: 0.5340 - val_loss: 0.6581 - val_accuracy: 0.6075
Epoch 2/80
125/125 [==============================] - 57s 456ms/step - loss: 0.
6543 - accuracy: 0.6125 - val_loss: 0.6003 - val_accuracy: 0.6612
Epoch 3/80
125/125 [==============================] - 57s 460ms/step - loss: 0.
6309 - accuracy: 0.6540 - val_loss: 0.5954 - val_accuracy: 0.6888
Epoch 4/80
125/125 [==============================] - 58s 461ms/step - loss: 0.
6150 - accuracy: 0.6650 - val_loss: 0.6437 - val_accuracy: 0.6338
Gambar 5.11 Proses Perhitungan Akurasi.
Proses pelatihan di atas akan berlanjut sampai pada epoch 80. Kata “loss” pada
Gambar 5.11 merupakan besarnya kerugian atas data pelatihan dalam setiap epoch.
Nilai loss ini akan diminimalkan dengan fungsi optimasi RMSProp, semakin kecil
nilai loss ini, maka semakin baik pula hasil yang didapat. Kata “accuracy” mengacu
pada rasio antara prediksi yang benar dengan total prediksi dalam proses pelatihan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
Semakin tinggi nilai akurasi, maka akan semakin baik. Begitu pula untuk val_loss
dan val_accuracy, mempunyai konsep yang sama, hanya saja, data yang diproses
merupakan data dari folder validasi. Apabila dalam proses komputasinya, nilai
akurasi antara data latih dan data validasi memiliki selisih yang besar, hal ini berarti
model yang dibuat mengalami overfitting, sehingga model tidak dapat digunakan
dalam memprediksi data.
C. Hasil Pengujian dan Pembahasan
Setelah melakukan proses pelatihan dan validasi, arsitektur model jaringan
saraf konvolusi ini menghasilkan nilai akurasi pada data latih sebesar 82.2% dan
pada data validasi sebesar 82.0%. Untuk lebih jelasnya dapat dilihat pada Gambar
5.7 dan Gambar 5.8 berikut ini:
Gambar 5.7 Grafik Akurasi Data Uji dan Data Validasi.
Gambar 5.8 Grafik Fungsi Rugi Data Uji dan Data Validasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Pada Gambar 5.7 sumbu 𝑥 menunjukkan jumlah epoch yang digunakan, dan sumbu
𝑦 menunjukkan nilai akurasi. Pada Gambar 5.8 sumbu 𝑥 juga menunjukkan jumlah
epoch yang digunakan, dan sumbu 𝑦 menunjukkan nilai kerugian. Dari Gambar 5.7
yang merupakan gambar dari grafik akurasi, terlihat bahwa akurasi antara data uji
dan data validasi, tidak berbeda terlalu jauh. Ini berarti model jaringan mempunyai
kemampuan yang cukup baik dalam mengklasifikasikan citra.
Selanjutnya, setelah di dapat model yang dapat mengklasifikasikan citra
dengan akurasi 82.2%, akan dilakukan pengujian terhadap data diluar data latih dan
data validasi. Data ini terdiri dari 10 citra gabungan antara hewan kucing dan anjing.
Hasil dari pengujian akan ditunjukkan pada tabel berikut
Tabel 5.1 Hasil Prediksi dari Data Uji.
CITRA UJI Jenis Hewan Prediksi dari Model
Kucing Kucing
Kucing Kucing
Anjing Anjing
Anjing Anjing
Anjing Anjing
Kucing Kucing
Kucing Kucing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Kucing Anjing
Anjing Anjing
Anjing Anjing
Pada tabel di atas, model dari jaringan saraf konvolusional tidak dapat
mengklasifikasikan dengan benar satu citra dari sepuluh citra yang disajikan. Dapat
memprediksi sembilan citra dengan benar, mengindikasikan bahwa model jaringan
yang dibangun sudah cukup baik, sehingga sebenarnya untuk meningkatkan
performa pengujiannya lagi kemungkinannya cukup kecil.
Selain menggunakan pengujian pada 80 epoch, penulis juga menggunakan
beberapa skenario pengujian dengan menggunakan jumlah epoch dan batch size
yang berbeda. Pada pengujian yang kedua, penulis menggunakan jumlah epoch
sebanyak 30 dan batch size 16. Diperoleh nilai akurasi pada data latih sebesar
80.5%, dan akurasi pada data validasi sebesar 77.9%.
Gambar 5.9 Grafik Akurasi Data Uji dan Data Validasi Pengujian Ke-2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Gambar 5.10 Grafik Fungsi Rugi Data Uji dan Data Validasi Pengujian Ke-2.
Pada pengujian yang ketiga, penulis menggunakan jumlah epoch sebanyak 50 dan
batch size 16. Diperoleh nilai akurasi pada data latih sebesar 81.4%, dan akurasi
pada data validasi sebesar 78.1%.
Gambar 5.11 Grafik Akurasi Data Uji dan Data Validasi Pengujian Ke-3.
Gambar 5.12 Grafik Fungsi Rugi Data Uji dan Data Validasi Pengujian Ke-3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Pada pengujian yang keempat, penulis menggunakan jumlah epoch sebanyak 100
dan batch size 16. Diperoleh nilai akurasi pada data latih sebesar 85.1%, dan
akurasi pada data validasi sebesar 77.2%.
Gambar 5.13 Grafik Akurasi Data Uji dan Data Validasi Pengujian Ke-4.
Gambar 5.14 Grafik Fungsi Rugi Data Uji dan Data Validasi Pengujian Ke-4.
Pada pengujian yang kelima, penulis menggunakan jumlah epoch sebanyak 30 dan
batch size 32. Diperoleh nilai akurasi pada data latih sebesar 81.4%, dan akurasi
pada data validasi sebesar 78.1%.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Gambar 5.15 Grafik Akurasi Data Uji dan Data Validasi Ke-5.
Gambar 5.16 Grafik Fungsi Rugi Data Uji dan Data Validasi Ke-5.
Pada pengujian yang keenam, penulis menggunakan jumlah epoch sebanyak 50 dan
batch size 32. Diperoleh nilai akurasi pada data latih sebesar 86.2%, dan akurasi
pada data validasi sebesar 80.6%.
Gambar 5.17 Grafik Akurasi Data Uji dan Data Validasi Ke-6.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Gambar 5.18 Grafik Fungsi Rugi Data Uji dan Data Validasi Ke-6.
Pada pengujian yang ketujuh, penulis menggunakan jumlah epoch sebanyak 80 dan
batch size 32. Diperoleh nilai akurasi pada data latih sebesar 89%, dan akurasi pada
data validasi sebesar 77.5%.
Gambar 5.19 Grafik Akurasi Data Uji dan Data Validasi Ke-7.
Gambar 5.20 Grafik Fungsi Rugi Data Uji dan Data Validasi Ke-7.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Pada pengujian yang kedelapan, penulis menggunakan jumlah epoch sebanyak 80
dan batch size 32. Diperoleh nilai akurasi pada data latih sebesar 89%, dan akurasi
pada data validasi sebesar 79%.
Gambar 5.21 Grafik Akurasi Data Uji dan Data Validasi Ke-8.
Gambar 5.22 Grafik Fungsi Rugi Data Uji dan Data Validasi Ke-8.
Dengan menggunakan tabel, hasil dari pengujian epoch dan batch size yang berbeda
dapat ditampilkan sebagai berikut:
Tabel 5.2 Hasil Perbandingan Akurasi antara Epoch dan Batch Size.
Epoch Batch size Accuracy Val_accuracy
30 16 80.5% 77.9%
50 16 81.4% 74%
80 16 82% 82.2%
100 16 85.1% 77.2%
30 32 81.4% 78.1%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
50 32 86.2% 80.6%
80 32 89% 77.5%
100 32 89% 79%
Dari beberapa pengujian yang telah dilakukan, memang didapatkan akurasi yang
tertinggi adalah sebesar 89%, akan tetapi akurasi pada data validasi yang diperoleh
sebesar 79% saja. Terdapat selisih yang besar, yang mengartikan bahwa terjadinya
overfitting yang akan menyebabkan terjadinya kesalahan yang cukup besar dalam
data uji nantinya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB VI
PENUTUP
A. Kesimpulan
Berdasarkan pengujian klasifikasi citra yang dilakukan, didapatkan
kesimpulan sebagai berikut:
1. Model pengklasifikasian jaringan saraf konvolusional menggunakan data
dari situs Kaggle yaitu Cats vs Dogs, dengan data sebanyak 2000 data uji,
800 data validasi, dan 10 data uji. Pengklasifikasian terdiri dari 3 lapisan
konvolusi, 3 lapisan pooling, dengan fungsi aktivasi ReLU. Fungsi rugi
dan fungsi optimasi yang digunakan berturut-turut adalah fungsi rugi
binary cross entropy dan fungsi RMSProp. Akurasi yang diperoleh pada
data latih sebesar 82,2% dan akurasi pada data validasi sebesar 82%
dengan epoch sebanyak 80.
2. Model klasifikasi yang dirancang, dapat mengenali gambar dengan cukup
baik.
B. Saran
Beberapa saran yang dapat diberikan untuk mengembangkan penelitian ini
adalah:
1. Menambahkan jumlah dataset untuk melatih model klasifikasi.
2. Memodifikasi parameter untuk mendapatkan akurasi yang lebih baik.
3. Menggunakan perangkat komputer dengan spesifikasi yang lebih tinggi,
guna mempersingkat waktu untuk melatih model.
4. Menggunakan metode klasifikasi yang terdapat pada pembelajaran mesin
selain jaringan saraf konvolusional, untuk membandingkan keakuraratan
mesin dalam mengklasifikasi.
5. Menggunakan metode transfer learning dari beberapa model
Pembelajaran Dalam yang sudah pernah dilatih.
6. Menggunakan metode cross validation untuk mengevaluasi kinerja model.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
DAFTAR PUSTAKA
Aggarwal, Charu C. (2018). Neural Networks and Deep Learning. New York City:
Springer.
Buduma, Nikhil. (2017). Fundamentals of Deep Learning. United States: O’Reilly
Media.
Burger, W. and Burge, Mark J. (2009). Principles of Digital Image Processing.
New York City: Springer.
Charniak, E. (2018). Introduction to Deep Learning. Cambridge: MIT Press.
Chityala, R. and Pudipeddi, S. (2014). Image Processing and Acquisition Using
Python. London: Chapman and Hall/CRC.
Chollet, F. (2018). Deep Learning with Python. Shelter Island: Manning
Publications.
Ganegedara, Thushan. (2018). Intuitive Guide to Convolution Neural Networks.
https://towardsdatascience.com/light-on-math-machine-learning-intuitive-
guide-to-convolution-neural-networks-e3f054dd5daa. Diakses tanggal 22
Februari 2020.
Géron, Aurélien. (2019). Hands-On Machine Learning with Scikit-Learn, Keras &
TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems.
2nd Edition. Canada: O’Reilly Media.
Ghandi, Rohith. (2018). A Look at Gradient Descent and RMSprop Optimizers.
https://towardsdatascience.com/a-look-at-gradient-descent-and-rmsprop-
optimizers-f77d483ef08b. Diakes tanggal 06 Juni 2021.
Godoy, Daniel. (2018). Understanding Binary Cross-Entropy/Log Loss: A Visual
Explanation. https://towardsdatascience.com/understanding-binary-cross-
entropy-log-loss-a-visual-explanation-a3ac6025181a. Diakses tanggal 22
Februari 2020.
Gonzalez, Rafael C., and Woods, Richard E. (2018). Digital Image Procesing. (4th
Edition). London: Pearson.
Goodfellow, I., Bengio, Y., Courville, A. (2016). Deep Learning. Cambridge:
MIT press.
Gulli, A. and Pal, S. (2017). Deep Learning with Keras. Birmingham: Packt
Publishing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Haykin, Simon. (2008). Neural Networks and Learning Machines. London:
Pearson.
LeCun, Y., Bengio, Y., and Hinton, G. (2015). Deep Learning. Nature, 521(7553),
436-444.
LeCun, Y., Kavukcuoglu, K., and Farabet, C. (2010). Convolution Networks and
Applications in Vision. ISCAS, 253-256.
Liu, Yuxi (Hayden) and Maldonado, Pablo. (2018). R Deep Learning Projects:
Master the Techniques to Design and Develop Neural Network Models in
R. Birmingham: Packt Publishing Ltd.
Krohn, J., Beyleveld, G., and Bassens, A. (2019). Deep Learning Illustrated: A
Visual, Interactive Guide to Artificial Intelligence. United States: Addison-
Wesley
Michelucci, Umberto. (2018). Applied Deep Learning: A Case-Based Approach to
Understanding Deep Neural-Networks. Swizerland: Apress
Pandey, Abhishek Kumar. (2020). Convolution, Padding, Stride, and Pooling in
CNN. https://medium.com/analytics-vidhya/convolution-padding-stride-
and-pooling-in-cnn-13dc1f3ada26. Diakses tanggal 27 Desember 2020.
Rosebrock, Adrian. (2017). Deep Learning for Computer Vision. Baltimore
County: PyImageSearch.
Sena, Samuel. (2017). Pengenalan Deep Learning Part 7: Convolutional Neural
Network (CNN). https://medium.com/@samuelsena/pengenalan-deep-
learning-part-7-convolutional-neural-network-cnn-
b003b477dc94#:~:text=Tujuan%20dari%20penggunaan%20padding%20a
dalah,1x1%20filter%20dengan%20stride%201).&text=Dengan%20mengg
unakan%20padding%2C%20kita%20dapat,setidaknya%20tidak%20berkur
ang%20secara%20drastis. Diakses tanggal 27 Desember 2020.
Watt, J. Borhani, R. Katsaggelos, Aggelos K. (2020). Machine Learning Refined.
(2nd Edition). Cambridge: Cambridge University Press.
-. (2020). CS231n: Convolutional Neural Networks for Visual Recognition. https://cs231n.github.io/. Diakses tanggal 25 Februari 2021.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
Lampiran Proses Pengujian.
Epoch 1/80
125/125 [==============================] - 58s 467ms/step - loss: 0.
7059 - accuracy: 0.5340 - val_loss: 0.6581 - val_accuracy: 0.6075
Epoch 2/80
125/125 [==============================] - 57s 456ms/step - loss: 0.
6543 - accuracy: 0.6125 - val_loss: 0.6003 - val_accuracy: 0.6612
Epoch 3/80
125/125 [==============================] - 57s 460ms/step - loss: 0.
6309 - accuracy: 0.6540 - val_loss: 0.5954 - val_accuracy: 0.6888
Epoch 4/80
125/125 [==============================] - 58s 461ms/step - loss: 0.
6150 - accuracy: 0.6650 - val_loss: 0.6437 - val_accuracy: 0.6338
Epoch 5/80
125/125 [==============================] - 57s 454ms/step - loss: 0.
6239 - accuracy: 0.6645 - val_loss: 0.6157 - val_accuracy: 0.6837
Epoch 6/80
125/125 [==============================] - 57s 460ms/step - loss: 0.
6092 - accuracy: 0.6780 - val_loss: 0.5812 - val_accuracy: 0.7025
Epoch 7/80
125/125 [==============================] - 56s 447ms/step - loss: 0.
5875 - accuracy: 0.6905 - val_loss: 0.6335 - val_accuracy: 0.6787
Epoch 8/80
125/125 [==============================] - 55s 444ms/step - loss: 0.
5915 - accuracy: 0.7020 - val_loss: 0.5608 - val_accuracy: 0.7113
Epoch 9/80
125/125 [==============================] - 57s 456ms/step - loss: 0.
5681 - accuracy: 0.7140 - val_loss: 0.5844 - val_accuracy: 0.6913
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Epoch 10/80
125/125 [==============================] - 56s 449ms/step - loss: 0.
5619 - accuracy: 0.7295 - val_loss: 0.5591 - val_accuracy: 0.7013
Epoch 11/80
125/125 [==============================] - 56s 450ms/step - loss: 0.
5616 - accuracy: 0.7220 - val_loss: 0.5283 - val_accuracy: 0.7237
Epoch 12/80
125/125 [==============================] - 55s 443ms/step - loss: 0.
5545 - accuracy: 0.7235 - val_loss: 0.4999 - val_accuracy: 0.7688
Epoch 13/80
125/125 [==============================] - 56s 448ms/step - loss: 0.
5485 - accuracy: 0.7275 - val_loss: 0.5117 - val_accuracy: 0.7738
Epoch 14/80
125/125 [==============================] - 56s 451ms/step - loss: 0.
5325 - accuracy: 0.7470 - val_loss: 0.5270 - val_accuracy: 0.7412
Epoch 15/80
125/125 [==============================] - 57s 454ms/step - loss: 0.
5427 - accuracy: 0.7400 - val_loss: 0.5666 - val_accuracy: 0.7138
Epoch 16/80
125/125 [==============================] - 56s 451ms/step - loss: 0.
5420 - accuracy: 0.7430 - val_loss: 0.5057 - val_accuracy: 0.7700
Epoch 17/80
125/125 [==============================] - 57s 457ms/step - loss: 0.
5354 - accuracy: 0.7435 - val_loss: 0.5340 - val_accuracy: 0.7475
Epoch 18/80
125/125 [==============================] - 57s 459ms/step - loss: 0.
5266 - accuracy: 0.7505 - val_loss: 0.6347 - val_accuracy: 0.7025
Epoch 19/80
125/125 [==============================] - 57s 453ms/step - loss: 0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
5086 - accuracy: 0.7595 - val_loss: 0.5933 - val_accuracy: 0.7113
Epoch 20/80
125/125 [==============================] - 56s 451ms/step - loss: 0.
5248 - accuracy: 0.7455 - val_loss: 0.5027 - val_accuracy: 0.7475
Epoch 21/80
125/125 [==============================] - 56s 449ms/step - loss: 0.
5321 - accuracy: 0.7505 - val_loss: 0.5139 - val_accuracy: 0.7400
Epoch 22/80
125/125 [==============================] - 59s 471ms/step - loss: 0.
5172 - accuracy: 0.7525 - val_loss: 0.5169 - val_accuracy: 0.7412
Epoch 23/80
125/125 [==============================] - 57s 453ms/step - loss: 0.
5134 - accuracy: 0.7560 - val_loss: 0.4619 - val_accuracy: 0.7975
Epoch 24/80
125/125 [==============================] - 57s 456ms/step - loss: 0.
4923 - accuracy: 0.7655 - val_loss: 0.5735 - val_accuracy: 0.7262
Epoch 25/80
125/125 [==============================] - 56s 448ms/step - loss: 0.
4924 - accuracy: 0.7615 - val_loss: 0.5289 - val_accuracy: 0.7462
Epoch 26/80
125/125 [==============================] - 56s 450ms/step - loss: 0.
4846 - accuracy: 0.7760 - val_loss: 0.4754 - val_accuracy: 0.7700
Epoch 27/80
125/125 [==============================] - 57s 454ms/step - loss: 0.
4869 - accuracy: 0.7810 - val_loss: 0.4782 - val_accuracy: 0.7775
Epoch 28/80
125/125 [==============================] - 56s 452ms/step - loss: 0.
4895 - accuracy: 0.7655 - val_loss: 0.4816 - val_accuracy: 0.7650
Epoch 29/80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
125/125 [==============================] - 56s 452ms/step - loss: 0.
4839 - accuracy: 0.7845 - val_loss: 0.4628 - val_accuracy: 0.7887
Epoch 30/80
125/125 [==============================] - 56s 444ms/step - loss: 0.
4679 - accuracy: 0.7875 - val_loss: 0.4425 - val_accuracy: 0.7925
Epoch 31/80
125/125 [==============================] - 56s 449ms/step - loss: 0.
4772 - accuracy: 0.7885 - val_loss: 0.4708 - val_accuracy: 0.7738
Epoch 32/80
125/125 [==============================] - 58s 463ms/step - loss: 0.
4717 - accuracy: 0.7855 - val_loss: 0.5037 - val_accuracy: 0.7638
Epoch 33/80
125/125 [==============================] - 60s 480ms/step - loss: 0.
4856 - accuracy: 0.7740 - val_loss: 0.8678 - val_accuracy: 0.6662
Epoch 34/80
125/125 [==============================] - 58s 465ms/step - loss: 0.
4667 - accuracy: 0.7905 - val_loss: 0.5251 - val_accuracy: 0.7513
Epoch 35/80
125/125 [==============================] - 59s 468ms/step - loss: 0.
4701 - accuracy: 0.7860 - val_loss: 0.4601 - val_accuracy: 0.7937
Epoch 36/80
125/125 [==============================] - 58s 465ms/step - loss: 0.
4783 - accuracy: 0.7750 - val_loss: 0.5047 - val_accuracy: 0.7738
Epoch 37/80
125/125 [==============================] - 59s 474ms/step - loss: 0.
4713 - accuracy: 0.7825 - val_loss: 0.4731 - val_accuracy: 0.7862
Epoch 38/80
125/125 [==============================] - 58s 460ms/step - loss: 0.
4790 - accuracy: 0.7750 - val_loss: 0.5160 - val_accuracy: 0.7287
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Epoch 39/80
125/125 [==============================] - 58s 466ms/step - loss: 0.
4611 - accuracy: 0.7910 - val_loss: 0.4777 - val_accuracy: 0.7750
Epoch 40/80
125/125 [==============================] - 59s 474ms/step - loss: 0.
4631 - accuracy: 0.7920 - val_loss: 0.5952 - val_accuracy: 0.7400
Epoch 41/80
125/125 [==============================] - 58s 461ms/step - loss: 0.
4742 - accuracy: 0.7905 - val_loss: 0.5060 - val_accuracy: 0.7425
Epoch 42/80
125/125 [==============================] - 58s 468ms/step - loss: 0.
4729 - accuracy: 0.7845 - val_loss: 0.4629 - val_accuracy: 0.7850
Epoch 43/80
125/125 [==============================] - 57s 454ms/step - loss: 0.
4570 - accuracy: 0.7915 - val_loss: 0.4497 - val_accuracy: 0.7937
Epoch 44/80
125/125 [==============================] - 59s 468ms/step - loss: 0.
4528 - accuracy: 0.8005 - val_loss: 0.4371 - val_accuracy: 0.8138
Epoch 45/80
125/125 [==============================] - 58s 463ms/step - loss: 0.
4608 - accuracy: 0.7915 - val_loss: 0.4606 - val_accuracy: 0.7962
Epoch 46/80
125/125 [==============================] - 58s 464ms/step - loss: 0.
4534 - accuracy: 0.8010 - val_loss: 0.4530 - val_accuracy: 0.7900
Epoch 47/80
125/125 [==============================] - 58s 467ms/step - loss: 0.
4473 - accuracy: 0.8055 - val_loss: 0.4532 - val_accuracy: 0.7950
Epoch 48/80
125/125 [==============================] - 58s 462ms/step - loss: 0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
4358 - accuracy: 0.8050 - val_loss: 0.4600 - val_accuracy: 0.7950
Epoch 49/80
125/125 [==============================] - 56s 451ms/step - loss: 0.
4248 - accuracy: 0.8065 - val_loss: 0.4254 - val_accuracy: 0.8263
Epoch 56/80
125/125 [==============================] - 56s 449ms/step - loss: 0.
4401 - accuracy: 0.8055 - val_loss: 0.4498 - val_accuracy: 0.7975
Epoch 57/80
125/125 [==============================] - 56s 448ms/step - loss: 0.
4576 - accuracy: 0.7955 - val_loss: 0.4391 - val_accuracy: 0.8037
Epoch 58/80
125/125 [==============================] - 56s 449ms/step - loss: 0.
4393 - accuracy: 0.8000 - val_loss: 0.4261 - val_accuracy: 0.8188
Epoch 59/80
125/125 [==============================] - 56s 449ms/step - loss: 0.
4254 - accuracy: 0.8145 - val_loss: 0.4188 - val_accuracy: 0.8138
Epoch 60/80
125/125 [==============================] - 57s 460ms/step - loss: 0.
4215 - accuracy: 0.8150 - val_loss: 0.4918 - val_accuracy: 0.7937
Epoch 61/80
125/125 [==============================] - 58s 463ms/step - loss: 0.
4398 - accuracy: 0.7950 - val_loss: 0.4416 - val_accuracy: 0.8150
Epoch 62/80
125/125 [==============================] - 56s 450ms/step - loss: 0.
4310 - accuracy: 0.8055 - val_loss: 0.4483 - val_accuracy: 0.7950
Epoch 63/80
125/125 [==============================] - 43s 348ms/step - loss: 0.
4222 - accuracy: 0.8060 - val_loss: 0.4701 - val_accuracy: 0.7788
Epoch 64/80
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
125/125 [==============================] - 33s 264ms/step - loss: 0.
4350 - accuracy: 0.8090 - val_loss: 0.4189 - val_accuracy: 0.8275
Epoch 65/80
125/125 [==============================] - 34s 273ms/step - loss: 0.
4485 - accuracy: 0.8020 - val_loss: 0.4469 - val_accuracy: 0.7925
Epoch 66/80
125/125 [==============================] - 33s 261ms/step - loss: 0.
4269 - accuracy: 0.8095 - val_loss: 0.4183 - val_accuracy: 0.8250
Epoch 67/80
125/125 [==============================] - 33s 262ms/step - loss: 0.
4034 - accuracy: 0.8190 - val_loss: 0.5033 - val_accuracy: 0.7962
Epoch 68/80
125/125 [==============================] - 34s 270ms/step - loss: 0.
4165 - accuracy: 0.8195 - val_loss: 0.4468 - val_accuracy: 0.8050
Epoch 69/80
125/125 [==============================] - 33s 265ms/step - loss: 0.
4303 - accuracy: 0.8185 - val_loss: 0.4925 - val_accuracy: 0.7675
Epoch 70/80
125/125 [==============================] - 33s 262ms/step - loss: 0.
4487 - accuracy: 0.8040 - val_loss: 0.4618 - val_accuracy: 0.8200
Epoch 71/80
125/125 [==============================] - 33s 261ms/step - loss: 0.
4231 - accuracy: 0.8110 - val_loss: 0.5131 - val_accuracy: 0.7862
Epoch 72/80
125/125 [==============================] - 33s 265ms/step - loss: 0.
4335 - accuracy: 0.8065 - val_loss: 0.5314 - val_accuracy: 0.7775
Epoch 73/80
125/125 [==============================] - 33s 262ms/step - loss: 0.
4346 - accuracy: 0.8065 - val_loss: 0.4559 - val_accuracy: 0.7937
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
Epoch 74/80
125/125 [==============================] - 33s 267ms/step - loss: 0.
4195 - accuracy: 0.8110 - val_loss: 0.4610 - val_accuracy: 0.8100
Epoch 75/80
125/125 [==============================] - 33s 262ms/step - loss: 0.
4317 - accuracy: 0.8040 - val_loss: 0.4112 - val_accuracy: 0.8275
Epoch 76/80
125/125 [==============================] - 33s 264ms/step - loss: 0.
4254 - accuracy: 0.8080 - val_loss: 0.4240 - val_accuracy: 0.8213
Epoch 77/80
125/125 [==============================] - 35s 279ms/step - loss: 0.
4136 - accuracy: 0.8225 - val_loss: 0.4833 - val_accuracy: 0.8062
Epoch 78/80
125/125 [==============================] - 33s 263ms/step - loss: 0.4254 -
accuracy: 0.8115 - val_loss: 0.4174 - val_accuracy: 0.8200
Epoch 79/80
125/125 [==============================] - 33s 262ms/step - loss: 0.4313 -
accuracy: 0.8095 - val_loss: 0.4280 - val_accuracy: 0.8275
Epoch 80/80
125/125 [==============================] - 34s 268ms/step - loss: 0.4201 -
accuracy: 0.8225 - val_loss: 0.4259 - val_accuracy: 0.8200
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI