SIMULASI METODE CONVOLUTIONAL NEURAL NETWORK DAN
LONG SHORT-TERM MEMORY UNTUK GENERATE IMAGE CAPTIONING
PADA GAMBAR LALU LINTAS KENDARAAN BERBAHASA INDONESIA
SKRIPSI
Oleh :
ISMA ARTYANI
11150910000013
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2019 M / 1441 H
SIMULASI METODE CONVOLUTIONAL NEURAL NETWORK DAN
LONG SHORT-TERM MEMORY UNTUK GENERATE IMAGE CAPTIONING
PADA GAMBAR LALU LINTAS KENDARAAN BERBAHASA INDONESIA
SKRIPSI
Diajukan Sebagai Salah Satu Syarat untuk Memperoleh Gelar
Sarjana Komputer (S.Kom)
Oleh :
ISMA ARTYANI
11150910000013
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2019 M / 1441 H
i
UIN Syarif Hidayatullah Jakarta
LEMBAR PERSETUJUAN
ii
UIN Syarif Hidayatullah Jakarta
PENGESAHAN UJIAN
iii
UIN Syarif Hidayatullah Jakarta
PERNYATAAN ORISINALITAS
iv
UIN Syarif Hidayatullah Jakarta
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI
v
UIN Syarif Hidayatullah Jakarta
Nama : Isma Artyani
Program Studi : Teknik Informatika
Judul : Simulasi Metode Convolutional Neural Network dan
Long Short Term Memory Untuk Generate Image Captioning
Pada Gambar Lalu Lintas Kendaraan Berbahasa Indonesia
ABSTRAK
Intelligent Transport System sebagai salah satu penerapan teknologi kecerdasan
buatan yang digunakan untuk memantau lalu lintas kendaraan di jalan. Sistem tersebut
menggunakan gambar atau video sebagai media penyebaran informasi lalu lintas
kepada masyarakat. Salah satu cara untuk mendapatkan informasi dari gambar adalah
dengan membaca deskripsi dari gambar tersebut. Dengan deskripsi gambar, kita dapat
memahami informasi yang tersirat dari gambar. Oleh karena itu dibutuhkan deskripsi
pada gambar lalu lintas kendaraan agar masyarakat dapat dengan mudah memahami
informasi yang diberikan oleh Intelligent Transport System. Untuk dapat membuat
deskripsi gambar, komputer memerlukan sebuah metode gabungan computer vision
untuk mengolah gambar dan natural language processing untuk mengolah teks
deskripsi gambar. Dalam penelitian ini dilakukan simulasi metode Convolutional
Neural Network dengan Long Short Term Memory untuk menghasilkan model yang
akan digunakan untuk Generate Image Captioning pada gambar lalu lintas kendaraan.
Penelitian ini menghasilkan dua model. Model-1 yang menggunakan VGG-16 untuk
ekstraksi fitur gambar dan Model-2 yang menggunakan ResNet50 untuk ekstraksi fitur
gambar dengan hasil skor BLEU {1,2,3,4} dari masing- masing model sebesar {0.66 ,
0.50, 0.43, 0.30} pada Model-1 dan {0.67, 0.51, 0.42, 0.27} pada Model-2.
Kata Kunci : Image captioning, lalu lintas, kendaraan, Convolutional Neural
Network, VGG-16, ResNet50, Long Short Term Memory
Daftar Pustaka : 21 Jurnal + 13 Buku + 7 Website
Daftar Isi : VI BAB + XV Halaman + 93 Halaman
vi
UIN Syarif Hidayatullah Jakarta
Author : Isma Artyani
Study Program : Informatics
Title : Simulation Convolutional Neural Network and Long Short
Term Memory Method for Generate Image Captioning on
Traffic Image In Bahasa
ABSTRAC
Intelligent Transport System is one of adjustments of the artificial intelligence
technology which is used to monitor the traffic on the road. The system uses image or
video as media of information dissemination to the society. One of the ways to get the
information from the image is read the image caption. Image caption helps us to
understand implicit information from the image. For this reason, it is necessary to put
caption on the traffic image in order to ease the society getting the information from
Intelligent Transport System. In creating the image caption, computer requires a
combine method, Computer Vision to process the image and Natural Language
Processing to process image caption text. In this research, simulation Convolutional
Neural Network and Long Short Term Memory method are used to produce a model,
which will be used for generate image captioning on traffic image. This study produced
two models. Model-1 used VGG-16 for extracting image feature and Model-2 used
ResNet50 for extracting image feature with the score BLEU {1,2,3,4} from each
models in amount of {0.66 , 0.50, 0.43, 0.30} on Model-1 and {0.67, 0.51, 0.42, 0.27}
on Model-2.
Keywords : Image captioning, traffic, Convolutional Neural Network,
Long Short Term Memory, VGG-16, ResNet50, BLEU Score
References : 21 Journals + 13 Books + 7 Website
Table of Contents : VI BAB + XV Pages + 93 Pages
vii
UIN Syarif Hidayatullah Jakarta
KATA PENGANTAR
Alhamdulillah segala puji bagi Allah SWT yang telah memberikan Rahmat dan
Hidayah-Nya serta berbagai kemudahan kepada penulis sehingga penulis dapat
menyelesaikan skripsi ini dengan baik. Shalawat serta salam tak lupa pula penulis
ucapkan kepada Nabi Muhammad SAW, beserta keluarga, sahabat dan para
pengikutnya hingga akhir zaman.
Skripsi berjudul “Simulasi Metode Convolutional Neural Network dan Long Short
Term Memory untuk Generate Image Captioning pada Gambar Lalu Lintas Kendaraan
Berbahasa Indonesia” yang disusun untuk memenuhi persyaratan guna mendapatkan
gelar Sarjana Komputer (S.Kom) pada Program Studi Teknik Informatika di
Universitas Islam Negeri Syarif Hidayatullah Jakarta.
Selama proses penyusunan skripsi ini, penulis mendapatkan banyak bimbingan,
masukan motivasi serta dukungan dari berbagai pihak. Oleh karena itu, penulis ingin
menyampaikan banyak terimakasih kepada :
1. Ibu Prof. Dr. Lily Surraya Eka Putri, M.Env.Stud selaku Dekan Fakultas Sains
dan Teknologi UIN Syarif Hidayatullah Jakarta.
2. Bapak Dr. Imam Marzuki Shofi, MT selaku Ketua Program Studi Teknik
Informatika UIN Syarif Hidayatullah Jakarta.
3. Ibu Fenty Eka Muzayyana Agustin, M.Kom selaku Dosen Pembimbing I dan
Bapak Victor Amrizal, M.Kom selaku Dosen Pembimbing II yang telah
memberikan banyak saran, arahan, masukan, dukungan dan motivasi kepada
penulis sehingga penulis dapat menyelesaikan skripsi ini dengan baik.
viii
UIN Syarif Hidayatullah Jakarta
4. Seluruh Dosen dan Staff Karyawan Fakultas Sains dan Teknologi UIN Syarif
Hidayatullah Jakarta yang telah memberikan banyak ilmu, dukungan dan
bantuan selama masa perkuliahan.
5. Kedua orang tua penulis, Mama dan Bapak yang senantiasa mendo’akan,
memberikan perhatian dan kasih sayang kepada penulis serta memberikan
motivasi dan dukungan agar penulis dapat menyelesaikan kuliah dengan baik
serta menjadi orang yang sukses dan bermanfaat di masa depan.
6. Bapak Octaviano Pratama, S.Kom, M.Kom, Kak Ndi dan seluruh tim Bisa.ai
yang telah bersedia meluangkan waktunya untuk memberikan bantuan, saran,
nasehat dan masukan yang bermanfaat kepada penulis.
7. Teman-teman terbaik, Ayu, Addin, Pinka, Asrani, Handan, Ulfa dan Nichyta
yang selalu menebarkan keceriaan, kehangatan dan kebersamaan.
8. Seluruh teman-teman Teknik Informatika Angkatan 2015, khususnya kelas A.
Terimakasih sudah banyak membantu penulis di masa perkuliahan dan
mengisi 4 tahun penulis dengan banyak kenangan, kebersamaan dan
pengalaman.
9. Teman-teman KKN HIKARI, khususnya Nilam, Bella dan Cholis yang selalu
memberikan semangat kepada penulis untuk menyelesaikan skripsi ini.
10. Seluruh pihak yang tidak dapat disebutkan satu-persatu yang secara langsung
maupung tidak langsung telah membantu penulis dalam menyelesaikan skripsi
ini.
Tangerang, September 2019
Isma Artyani
ix
UIN Syarif Hidayatullah Jakarta
DAFTAR ISI
LEMBAR PERSETUJUAN ........................................................................................ i
PENGESAHAN UJIAN .............................................................................................. ii
PERNYATAAN ORISINALITAS ............................................................................ iii
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI .................................... iv
ABSTRAK ................................................................................................................... v
ABSTRAC ................................................................................................................... vi
KATA PENGANTAR ............................................................................................... vii
DAFTAR ISI ............................................................................................................... ix
DAFTAR GAMBAR ................................................................................................ xiii
DAFTAR TABEL ..................................................................................................... xv
BAB I PENDAHULUAN ............................................................................................ 1
1.1 Latar Belakang ............................................................................................... 1
1.2 Rumusan Masalah .......................................................................................... 4
1.3 Batasan Masalah ............................................................................................. 4
1.3.1 Proses ...................................................................................................... 4
1.3.2 Metode..................................................................................................... 4
1.3.3 Tools ........................................................................................................ 5
1.4 Tujuan Penelitian ............................................................................................ 5
1.5 Manfaat Penelitian .......................................................................................... 5
1.6 Metodologi Penelitian .................................................................................... 6
1.6.1 Metode Pengumpulan Data ..................................................................... 6
1.6.2 Metode Simulasi ..................................................................................... 6
1.7 Sistematika Penelitian .................................................................................... 7
BAB II LANDASAN TEORI ..................................................................................... 9
2.1 Image Captioning ........................................................................................... 9
2.2 Kecerdasan Buatan (Artificial Inteligence) .................................................. 12
2.3 Computer Vision ........................................................................................... 14
x
UIN Syarif Hidayatullah Jakarta
2.4 Pemrosesan Bahasa Alami (Natural Language Processing) ....................... 15
2.5 Jaringan Syaraf Tiruan (Artificial Neural Network) ..................................... 16
2.5.1 Arsitektur Jaringan Syaraf Tiruan ........................................................ 17
2.5.2 Algoritma Pembelajaran........................................................................ 19
2.6 Machine Learning ........................................................................................ 20
2.7 Deep Learning .............................................................................................. 20
2.8 Convolutional Neural Network .................................................................... 21
2.8.1 Operasi Convolusi ................................................................................. 23
2.8.2 Convolutional Layer (Lapisan Konvolusi)............................................ 24
2.8.3 Pooling layer (Lapisan Pooling) ........................................................... 26
2.8.4 Fully Connected Layer .......................................................................... 27
2.9 VGG Net ....................................................................................................... 27
2.10 Residual Network (ResNet) ...................................................................... 28
2.11 Model Bahasa (Language Model)............................................................. 32
2.11.1 Count-Based Language Models ............................................................ 33
2.11.2 Continuous Space Languge Models ...................................................... 34
2.12 Long Short Term Memory (LSTM) ........................................................... 37
2.12.1 Arsitektur LSTM ................................................................................... 38
2.12.2 Alur Kerja LSTM .................................................................................. 40
2.13 Dataset ...................................................................................................... 42
2.14 Skor BLEU ............................................................................................... 42
2.14.1 Cara Menghitung Skor BLEU ............................................................... 43
2.14.2 Skor BLEU Individual dan Kumulatif .................................................. 44
2.15 Python ....................................................................................................... 44
2.16 Tensorflow ................................................................................................ 45
2.17 Keras ......................................................................................................... 45
2.18 Google Colaboratory ................................................................................ 46
2.18.1 Cara Penggunaan Google Colab ........................................................... 47
2.19 Metode Pengumpulan data........................................................................ 51
2.19.1 Studi Pustaka ......................................................................................... 51
xi
UIN Syarif Hidayatullah Jakarta
2.19.2 Observasi ............................................................................................... 51
2.20 Metode Simulasi ....................................................................................... 51
2.21 Studi Literatur Sejenis .............................................................................. 54
BAB III METODOLOGI PENELITIAN ............................................................... 57
3.1 Metode Pengumpulan Data .......................................................................... 57
3.1.1 Studi Pustaka ......................................................................................... 57
3.1.2 Observasi ............................................................................................... 57
3.2 Metode Simulasi ........................................................................................... 57
3.2.1 Formulasi Masalah (Problem Formulation) ......................................... 57
3.2.2 Konseptual Model (Conseptual Model) ................................................ 58
3.2.3 Pengumpulan Data Input/Output (Collection Input/Output Data) ....... 58
3.2.4 Pemodelan (Modelling) ......................................................................... 59
3.2.5 Simulasi (Simulation) ............................................................................ 59
3.2.6 Verifikasi dan Validasi (Verification and Validation) .......................... 59
3.2.7 Eksperimentasi (Eksperimentation) ...................................................... 59
3.2.8 Analisis Output (Output Analysis) ........................................................ 59
3.3 Kerangka Berpikir Penelitian ....................................................................... 60
BAB IV IMPLEMENTASI ...................................................................................... 61
4.1 Formulasi Masalah (Problem Formulation) ................................................. 61
4.2 Konseptual Model (Conseptual Model) ....................................................... 61
4.3 Pengumpulan Data Masukan/Keluaran (Collection Input/Output Data) ..... 63
4.4 Pemodelan (Modelling) ................................................................................ 68
4.5 Simulasi (Simulation) ................................................................................... 70
4.6 Verifikasi dan Validasi (Verification and Validation) ................................. 75
4.7 Eksperimentasi (Eksperimentation).............................................................. 75
4.8 Analisis Output (Output Analysis) ............................................................... 75
BAB V HASIL DAN PEMBAHASAN .................................................................... 76
5.1 Verifikasi dan Validasi (Verification and Validation) ................................. 76
5.2 Eksperimen (Eksperimentation) ................................................................... 77
5.3 Analisis Keluaran (Output Analysis) ............................................................ 77
xii
UIN Syarif Hidayatullah Jakarta
5.3.1 Hasil Nilai Loss dan Akurasi Model ..................................................... 77
5.3.2 Hasil Skor BLEU .................................................................................. 79
5.3.3 Hasil Pecobaan Generate Caption ........................................................ 82
BAB VI PENUTUP ................................................................................................... 88
PENUTUP .................................................................................................................. 88
6.1 Kesimpulan ................................................................................................... 88
6.2 Saran ............................................................................................................. 88
DAFTAR PUSTAKA ................................................................................................ 89
xiii
UIN Syarif Hidayatullah Jakarta
DAFTAR GAMBAR
Gambar 3. 1 Kerangka berpikir ................................................................................... 60
Gambar 2.1. Ilustrasi image captioning ........................................................................ 9
Gambar 2.2 arsitektur metode gabungan .................................................................... 10
Gambar 2.3 Arsitektur Init Inject ................................................................................ 11
Gambar 2. 4 Arsitektur Pre inject ............................................................................... 12
Gambar 2.5 Arsitektur Par inject ................................................................................ 12
Gambar 2.6 Arsitektur JST ......................................................................................... 17
Gambar 2.7 Arsitektur single layer network ............................................................... 18
Gambar 2.8 Arsitektur Multi Layer Network ............................................................. 18
Gambar 2 .9. Arsitektur Competitive Layer Network................................................. 19
Gambar 2.10. Ruang lingkup kecerdasan buatan ........................................................ 21
Gambar 2.11 Arsitektur CNN ..................................................................................... 22
Gambar 2.12 Vektor-vektor CNN ............................................................................... 24
Gambar 2.13 Ilustrasi pooling layer ............................................................................ 27
Gambar 2.14. Arsitektur VGG-16 ............................................................................... 28
Gambar 2.15 Arsitektur dan Jumlah lapisan ResNet .................................................. 29
Gambar 2.16 Blok bangunan koneksi pintas............................................................... 30
Gambar 2. 17 Arsitektur ResNet ................................................................................. 31
Gambar 2.18 Bottleneck Shortcut ............................................................................... 31
Gambar 2 .19 Arsitektur RNN .................................................................................... 36
Gambar 2 .20 Struktur Reccurent Neural Network ..................................................... 37
Gambar 2.21 Rangkaian RNN .................................................................................... 38
Gambar 2.22 Rangkaian LSTM .................................................................................. 38
Gambar 2.23 Notasi pada lapisan LSTM .................................................................... 38
Gambar 2.24 Arsitektur LSTM ................................................................................... 39
Gambar 2.25 Sel State ................................................................................................. 40
Gambar 2.26 Lapisan sigmoid .................................................................................... 40
Gambar 2.27 Logo Tensorflow ................................................................................... 45
xiv
UIN Syarif Hidayatullah Jakarta
Gambar 2.28 Logo Keras ............................................................................................ 46
Gambar 2.29 Koneksi Google Colab dengan Gdrive.................................................. 47
Gambar 2.30 Membuat Google Colab dari Gdrive ..................................................... 48
Gambar 2.31 Tampilan awal Google Colab ................................................................ 48
Gambar 2.32 Tampilan google colab notebook .......................................................... 49
Gambar 2.33 Kode untuk koneksi Google Drive ke Google Colab ............................ 49
Gambar 2.34 Cara koneksi Google Drive ke Google Colab ....................................... 50
Gambar 2.35 Tampilan setelah Google Drive dan Google Colab terhubung ............. 50
Gambar 2.36 Contoh Program Sederhana ................................................................... 51
Gambar 3. 1 Kerangka berpikir penelitian .................................................................. 60
Gambar 4. 1 Flowchart ekstrak fitur gambar .............................................................. 62
Gambar 4. 2 Contoh gambar yang berkualitas baik .................................................... 63
Gambar 4. 3 Contoh gambar yang sudah dipotong ..................................................... 64
Gambar 4. 4 Contoh dataset gambar ........................................................................... 65
Gambar 4. 5 Alur ekstraksi fitur deskripsi dan cleansing ........................................... 67
Gambar 4. 6 Alur pembuatan model ........................................................................... 70
Gambar 4. 7 Nilai-nilai yang digunakan pada Model-1 .............................................. 71
Gambar 4. 8 Nilai-nilai yang digunakan pada Model-2 .............................................. 72
Gambar 4. 9 Summary Model Dengan VGG-16 (Model-1) ....................................... 73
Gambar 4. 10 Summary Model Dengan RestNet50 (Model-2) .................................. 73
Gambar 4. 11Arsitektur Model Dengan VGG-16 (Model-1) ..................................... 74
Gambar 4. 12 Arsitektur Model Dengan ResNet50 (Model-2) .................................. 74
Gambar 5.1 Grafik loss Model-1 ................................................................................ 78
Gambar 5.2 Grafik akurasi Model-1 ........................................................................... 78
Gambar 5.3 Grafik loss Model-2 ................................................................................ 78
Gambar 5.4 Grafik akurasi Model-2 ........................................................................... 79
xv
UIN Syarif Hidayatullah Jakarta
DAFTAR TABEL
Tabel 2.1 Perbandingan Literatur Sejenis ................................................................... 55
Tabel 4. 1 Contoh proses sequence deskripsi ............................................................. 69
Tabel 5. 1 Hasil Loss dan Akurasi Model ................................................................... 77
Tabel 5. 2 Hasil Prediksi Caption dari Model-1 ......................................................... 80
Tabel 5. 3 Hasil Prediksi Caption dari Model-2 ......................................................... 81
Tabel 5. 4 Perbandingan Hasil Skor BLEU Model-1 dan Model 2 ............................ 82
Tabel 5. 5 Hasil generate caption menggunakan Model-1 ......................................... 83
Tabel 5. 6 Hasil generate caption menggunakan Model-2 ......................................... 85
1
UIN Syarif Hidayatullah Jakarta
BAB I
PENDAHULUAN
1.1 Latar Belakang
Di era kemajuan teknologi saat ini, teknologi kecerdasan buatan (Artificial
Intelligence) sudah banyak diterapkan dalam berbagai aspek kehidupan manusia.
Salah satu penerapan dari teknologi kecerdasan buatan adalah adalah penerapan
Intelligence Transport System. Intelligence Transport System merupakan suatu
teknologi yang dapat memantau dan mengatur keadaan lalu lintas kendaraan di jalan.
Teknologi ini merupakan teknologi yang memanfaatkan gabungan dari teknologi
kecerdasan buatan seperti pengolahan gambar, video maupun basis data (Marieski,
Hidayat, & Safitri, 2017). Dengan Intelligence Transport System, masyarakat dapat
memperoleh informasi keadaan lalu lintas dengan memanfaatkan informasi yang
terdapat pada gambar (Hartini, Nyoto, & Irwansyah, 2016).
Salah satu cara mendapatkan informasi pada gambar adalah dengan membaca
deskripsi dari gambar tersebut. Deskripsi gambar berguna untuk menjelaskan maksud
yang tersirat dalam gambar, sehingga kita dapat memahami informasi dari gambar
tersebut. Selain itu, deskripsi gambar juga dapat membantu pengguna internet untuk
mencari gambar yang diinginkan dengan mengetikkan deskripsi gambar yang
dimaksud di mesin pencarian (Rachmawati, Siradjuddin, & Putro, 2017).
Perkembangan teknologi kecerdasan buatan memungkinkan komputer dapat
menghasilkan deskripsi gambar (image caption) secara otomatis (Devlin et al., 2015).
Untuk dapat menghasilkan deskripsi gambar dengan otomatis, komputer
membutuhkan suatu metode gabungan dari Computer Vision dengan Natural Language
Processing (Vinyals, Toshev, Bengio, & Erhan, 2015). Computer Vision digunakan
komputer agar dapat mengenali objek yang terdapat pada gambar, sedangkan Natural
Language Processing untuk menghasilkan deskripsi gambar berupa bahasa alami dari
suatu model bahasa (Devlin et al., 2015).
2
UIN Syarif Hidayatullah Jakarta
Salah satu teknologi Computer Vision yang banyak digunakan untuk pengolahan
gambar adalah Convolutional Neural Network. Convolutional Neural Network
merupakan metode yang banyak digunakan untuk pekerjaan seperti deteksi gambar,
klasifikasi gambar, dan segmentasi gambar dengan akurasi yang baik. Selain itu fitur
gambar yang dipelajari oleh Convolutional Neural Network dapat digunakan untuk
pembuatan model deskripsi gambar (Pu et al., 2016). Sedangkan untuk menghasilkan
deskripsi gambar diperlukan sebuah teknologi dari Natural Language Processing ,
salah satu yang dapat digunakan adalah Long Short Term Memory. Long Short Term
Memory merupakan sebuah jaringan syaraf berulang (Recurrent Neural Networks)
yang banyak digunakan dalam translasi dan generate urutan kalimat (Vinyals, Toshev,
Bengio, & Erhan, 2017).
Sebelumnya terdapat beberapa penelitian mengenai deskripsi gambar (image
captioning), diantaranya penelitian yang dilakukan oleh Arnav et al., (2017) yang
menggunakan algoritma Convolutional Neural Network yakni VGG-16, VGG-19, dan
ResNet untuk proses ekstraksi fitur gambar pada dataset Flickr8K dan Long Short Term
Memory untuk menghasilkan deskripsi gambar (image caption). Dari penelitian
tersebut didapatkan hasil skor BLEU {1,2,3,4} menggunakan algoritma VGG-16
masing-masing sebesar 55.2; 24.77; 10.75; 4.33. Sedangkan untuk algoritma VGG-19
mendapatkan skor BLEU {1,2,3,4} sebesar 55.6 ; 24.73; 10.56; 4.5 dan pada algoritma
ResNet skor BLEU {1,2,3,4} yang dihasilkan sebesar 57.49; 26.60; 11.82; 5.01. Pada
penelitian ini menunjukkan bahwa penggunaan ResNet lebih baik.
Sedangkan pada penelitian Singh & Sharma, (2018) yang melakukan
perbandingan dua model. Model pertama menggunakan Convolutional Neural
Network jenis VGG-16 dan model kedua menggunakan 4 lapisan Convolutional Neural
Network untuk ekstraksi fitur gambar pada dataset Flickr8K serta masing-masing
model menggunakan Long Short Term Memory untuk menghasilkan deskripsi gambar
(image caption). Dari kedua model tersebut, deskripsi gambar yang dihasilkan tidak
berbeda jauh dan berhasil mendeksripsikan gambar dengan tepat. Model pertama
3
UIN Syarif Hidayatullah Jakarta
meraih skor BLEU {1,2,3,4} sebesar 54, 28, 19, 0.82. Sedangkan pada model kedua
meraih skor BLEU {1,2,3,4} sebesar 51, 25,17, 0.7. sehingga dapat disimpulkan bahwa
penggunaan VGG-16 lebih baik dari pada Convolutional Neural Network biasa.
Penelitian lain yaitu perbandingan antara Convolutional Neural Network dengan
Long Short Term Memory untuk image captioning menggunakan dataset MS COCO.
Dalam penelitian ini menunjukkan bahwa akurasi hasil prediksi kata yang dihasilkan
oleh Convolutional Neural Network lebih baik daripada prediksi kata yang dihasilkan
oleh Long Short Term Memory. Selain itu rendahnya hasil akurasi klasifikasi gambar
jika menggunakan Long Short Term Memory. Hal ini menujukkan perlu adanya
penggabungan algortima agar hasil prediksi kata pada caption menjadi lebih baik
(Aneja, Deshpande, & Schwing, 2018).
Selain penelitian-penelitian yang dipaparkan sebelumnya, Al-muzaini, Al-yahya,
& Benhidour (2018) juga melakukan penelitian mengenai deskripsi gambar (image
captioning). Deskripsi gambar (caption) yang dihasilkan berbahasa arab menggunakan
dataset Flickr dan MS COCO menggunakan Convolutional Neural Network jenis
VGG-16 untuk ekstraksi fitur gambar dan Long Short Term Memory untuk
menghasilkan deskripsi. Deskripsi gambar (caption) yang dihasilkan dalam penelitian
tersebut berbahasa arab yang merupakan terjemahan dari deskripsi gambar pada
dataset Flickr dan MS COCO yang berbahasa Inggris. Dari penelitian ini, didapatkan
hasil skor BLEU {1,2,3,4} sebesar 46, 26, 19, 8 untuk model yang menggunakan
dataset caption yang diterjemahkan secara manual, sedangkan untuk dataset yang
diterjemahkan menggunakan Google Translate mendapatkan skor BLEU {1,2,3,4}
sebesar 52, 46, 34, 18. Dari penelitian ini menunjukkan bahwa Convolutional Neural
Network dan Long Short Term Memory dapat digunakan untuk generate image caption
dengan baik pada bahasa selain bahasa Inggris.
Berdasarkan pemaparan latar belakang diatas, dalam penelitian ini penulis akan
melakukan simulasi untuk menghasilkan model yang akan digunakan untuk generate
4
UIN Syarif Hidayatullah Jakarta
image captioning pada gambar lalu lintas kendaraan menggunakan metode
Convolutional Neural Network dan Long Short Term Memory.
1.2 Rumusan Masalah
Bagaimana cara menghasilkan model untuk generate Image Captioning pada
gambar lalu lintas kendaraan berbahasa Indonesia menggunakan metode Convolutional
Neural Network dan Long Short Term Memory?
1.3 Batasan Masalah
1.3.1 Proses
1. Penelitian ini dibuat dengan ruang lingkup kendaraan pada lalu lintas.
2. Deskripsi gambar (image caption) yang dihasilkan hanya berbahasa Indonesia.
3. Deskripsi gambar (image caption) hanya menjelaskan situasi kendaraan pada
lalu lintas.
4. Gambar yang digunakan sebagai dataset gambar didapatkan dari foto yang
penulis ambil sendiri.
5. Gambar yang digunakan sebagai dataset gambar hanya berupa gambar
mengenai kendaraan pada lalu lintas.
6. Deskripsi gambar yang digunakan sebagai dataset caption merupakan deskripsi
dari setiap gambar pada dataset gambar.
7. Deskripsi gambar yang digunakan sebagai dataset caption hanya berbahasa
Indonesia dan dibuat berdasarkan aturan pada dataset teks Flickr.
8. Pada penelitian ini tidak membahas mengenai image processing dan deteksi
gambar,.
1.3.2 Metode
1. Penelitian ini menggunakan dua model Convolutional Neural Network untuk
ekstraksi fitur gambar yaitu VGG-16 dan ResNet50.
5
UIN Syarif Hidayatullah Jakarta
2. Proses ekstraksi fitur dataset gambar merupakan proses untuk mengubah
gambar menjadi vektor yang mereprepresentasikan gambar-gambar tersebut
agar dapat diproses dalam penggabungan bersama vektor dataset caption.
3. Proses generate caption menggunakan model yang dibuat dari gabungan
Convolutional Neural Network dan Long Short Term Memory.
4. Model yang digunakan untuk generate caption merupakan model hasil dari
proses pelatihan dan validasi menggunakan dataset latih dan dataset validasi.
5. Deskripsi gambar yang dihasilkan merupakan hasil dari model yang
mencocokan setiap gambar dengan deskripsinya (caption).
1.3.3 Tools
1. Pemodelan dilakukan menggunakan bahasa pemrograman Python dengan
library Keras dan backend Tensorflow.
2. Menggunakan Google Colaboratoy sebagai tempat pengkodean.
3. Menggunakan Google Drive sebagai media penyimpanan yang terhubung
dengan Google Colaboratory.
4. Perhitungan skor BLEU dihitung menggunakan library python yaitu Natural
Languange Toolkit (NLTK) dengan fungsi corpus_bleu.
1.4 Tujuan Penelitian
Tujuan yang ingin dicapai oleh penulis dari penelitian ini adalah:
1. Membuat model untuk generate image captioning pada gambar lalu lintas
kendaraan berbahasa Indonesia.
2. Melakukan pengembangan teknologi deep learning.
1.5 Manfaat Penelitian
Adapun manfaat yang didapatkan adalah sebagai berikut :
1. Bagi Mahasiswa
Menambah ilmu dan pengetahuan mahasiswa mengenai kegunaan teori-
teori yang didapatkan ketika kuliah.
6
UIN Syarif Hidayatullah Jakarta
2. Bagi Universitas
Menambah koleksi karya ilmiah Universitas mengenai Simulasi
Metode Convolutional Neural Network dan Long Short Term Memory Untuk
Generate Image Captioning Pada Gambar Lalu Lintas Kendaraan Berbahasa
Indonesia.
1.6 Metodologi Penelitian
Metodologi penelitian merupakan tahapan-tahapan yang dilalui oleh penulis dari
perumusan masalah sampai kesimpulan, yang membentuk sebuah alur hingga
sistematis. Metodologi ini digunakan sebagai pedoman penulis dalam pelaksanaan
penelitian ini agar hasil yang dicapai tidak menyimpang dari tujuan. Metodologi
penelitian meliputi pengumpulan data hingga terbentuknya hasil akhir yaitu model
yang digunakan untuk generate image captioning.
1.6.1 Metode Pengumpulan Data
Dalam melakukan analisis data dan penelitian skripsi ini, penulis menggunakan
2 metode pengumpulan data, yaitu:
a. Studi Pustaka
Studi pustaka merupakan salah satu kegiatan penelitian yang berfungsi
sebagai landasan teori bagi penyelesaian masalah dalam penelitian yang
dilakukan.
b. Observasi
Penulis melakukan studi lapangan dengan melakukan pengambilan gambar
di jalan raya untuk pembuatan dataset gambar.
1.6.2 Metode Simulasi
Dalam penelitian ini, penulis menggunakan metode simulasi. Adapun tahap-tahap
pada metode simulasi adalah sebagai berikut (Madani, Kazmi, & Mahlknecht, 2010):
1. Formulasi Masalah (Problem Formulation)
2. Konseptual Model (Conceptual Model)
7
UIN Syarif Hidayatullah Jakarta
3. Pengumpulan Data Input/Output (Collected Input/Output Data)
4. Pemodelan (Modeling )
5. Simulasi (Simulation)
6. Verifikasi dan Validasi (Verification and Validation)
7. Eksperimentasi (Experimentation)
8. Analisis Keluaran (Experimentation and Output Analysis)
1.7 Sistematika Penelitian
Sistematika yang dibuat pada tugas akhir ini akan dibagi dalam enam bagian,
yaitu:
BAB I PENDAHULUAN
Dalam bab ini membahas mengenai latar belakang penelitian,
perumusan masalah, batasan masalah, tujuan dan manfaat,
metode dan sistematika penelitian yang merupakan gambaran
menyeluruh dari penelitian skripsi ini.
BAB II LANDASAN TEORI
Dalam bab ini membahas mengenai berbagai teori yang mendasari
analisis permasalahan yang berhubungan dengan pembahasan.
BAB III METODOLOGI PENELITIAN
Bab ini berisi pembahasan atau pemaparan metode yang penulis
pakai dalam pencarian data maupun perancangan sistem yang
dilakukan pada penelitian.
BAB IV IMPLEMENTASI
Bab ini membahas mengenai hasil implementasi dan pengujian
sistem selama penelitian ini berlangsung.
8
UIN Syarif Hidayatullah Jakarta
BAB V HASIL DAN PEMBAHASAN
Bab ini membahas mengenai hasil dan pembahasan rancangan
pembuatan image captioning dengan menggunakan metode
Convolutional Neural Network dan Long Short Term Memory.
BAB VI KESIMPULAN DAN SARAN
Pada bab ini kesimpulan dari hasil pembahasan seluruh bab serta
saran-saran yang kiranya dapat diperhatikan serta
dipertimbangkan untuk pengembangan sistem dimasa mendatang.
9
UIN Syarif Hidayatullah Jakarta
2 BAB II
LANDASAN TEORI
2.1 Image Captioning
Image captioning merupakan suatu proses pembuatan teks deskripsi pada sebuah
gambar. Untuk dapat menghasilkan deskripsi atau caption pada suatu gambar, image
captioning menggunakan gabungan proses dari Computer Vision dan Natural
Languange Processing (Radhakrishnan, 2017). Menurut Vinyals, Toshev, Bengio, &
Erhan, (2015) Computer vision berperan untuk mendeteksi dan mengenali objek pada
gambar. Selain itu, metode Computer Vision berguna untuk mengenali lokasi, properti
dan interaksi pada sebuah gambar. Sedangkan fungsi dari Natural Language
Processing adalah menghasilkan suatu kalimat yang tersusun dengan baik sesuai aturan
semantik dan sintaksis dalam suatu bahasa (Sohel, Shiratuddin, & Laga, 2018).
Gambar 2.1. Ilustrasi image captioning
(Sumber : https://www.analyticsvidhya.com/blog/2018/04/solving-an-image-captioning-task-
using-deep-learning/)
Menurut Tanti, Gatt, & Camilleri, (2017), ketika model bahasa dari Recurrent
Neural Network digunakan untuk generate caption, informasi gambar dapat
dimasukkan ke neural network dengan dua cara. Cara pertama adalah dengan metode
10
UIN Syarif Hidayatullah Jakarta
gabungan (merge). Pada metode gabungan, ekstraksi fitur gambar dipisahkan dari
Recurrent Neural Network sehingga Recurrent Neural Network hanya mengolah
informasi teks. Kemudian vektor gambar akan digabungkan dengan vektor prefix pada
lapisan multimodal yang terpisah yang muncul setelah subnetwork Recurrent Neural
Network setelah prefix di encode. Proses penggabungan biasanya dilakukan dengan
mengkonket dua vektor secara bersamaan. Dalam kasus ini, Recurrent Neural Network
dilatih untuk hanya melakukan encoding prefix dan penggabungan dilakukan di
subsequence feed forward layer. Berikut ini merupakan arsitektur dari metode
gabungan :
Gambar 2.2 arsitektur metode gabungan
(sumber : Tanti et al., 2017)
Pada metode gabungan, Recurrent Neural Network tidak terkena vektor
gambar pada setiap titik. Oleh karena itu, gambar diperkenalkan ke model bahasa
setelah prefix di encode oleh Recurrent Neural Network secara keseluruhan. Arsitektur
metode gabungan merupakan arsitektur yang mengikat dan tidak memodifikasi
representasi gambar setiap waktu.
Selain metode gabungan yang sudah dipaparkan diatas, ada metode lain yaitu
dengan memasukan informasi gambar secara langsung ke Recurrent Neural Network
yakni dengan cara menginjeksi model bahasa dengan fitur gambar. Cara tersebut
disebut dengan metode injeksi. Pada metode ini, vektor gambar (biasanya berasal dari
11
UIN Syarif Hidayatullah Jakarta
nilai aktivasi hidden layer dalam Convolutional Neural Network yang diinjeksi
kedalam Recurrent Neural Network. Misalnya dengan memperlakukannya setara
dengan sebuah ‘kata’ dan dan memasukkannya sebagai bagian dari prefiks teks.
Recurrent Neural Network dilatih untuk melakukan encoding campuran gambar dan
bahasa kedalam vektor tunggal sehingga vektor ini dapat digunakan untuk
memprediksi kata berikutnya dalam prefix.
Ada beberapa tipe arsitektur pada metode injeksi menurut Tanti et al., (2017),
diantaranya :
1. Init inject. Pada arsitektur ini, inisial vektor hidden state diatur menjadi vektor
gambar (atau vektor berasal dari vektor gambar). Sehingga vektor gambar harus
memiliki ukuran yang sama sebagai vektor hidden state Recurrent Neural
Network. Arsitektur ini bersifat mengikat diawal dan memungkinkan
representasi gambar dapat dimodifikasi oleh Recurrent Neural Network.
Gambar 2.3 Arsitektur Init Inject
(sumber : Tanti et al., 2017)
2. Preinject. Pada arsitektur ini, input pertama ke Recurrent Neural Network
adalah vektor gambar (atau vektor berasal dari vektor gambar). Selanjutnya
datang vektor kata dari prefix caption. Setelah itu, vektor gambar diperlakukan
sebagai kata pertama dalam prefiks. Sehingga vektor gambar harus memiliki
ukuran yang sama sebagai vektor hidden state Recurrent Neural Network.
Arsitekur ini sama seperti arsitektur init inject yang bersifat mengikat diawal
dan memungkinkan gambar untuk dimodifikasi oleh Recurrent Neural
Network.
12
UIN Syarif Hidayatullah Jakarta
Gambar 2. 4 Arsitektur Pre inject
(sumber : Tanti et al., 2017)
3. Par inject. Dalam arsitektur ini, vektor gambar bertugas sebagai input ke
Recurrent Neural Network secara pararel dengan vektor kata dari prefix
caption. Sehingga sama seperti init inject yang mana Recurrent Neural
Network mengambil 2 input terpisah atau seperti preinject yang
mengkombinasi vektor dengan vektor gambar kedalam sebuah input tunggal
sebelum diteruskan ke Recurrent Neural Network. Dalam arsitektur par inject,
vektor gambar tidak harus sama persis untuk setiap kata dan juga tidak perlu
dimasukkan kedalam setiap kata. Arsitektur ini bersifat pengikat campuran,
namun beberapa modifikasi representasi gambar akan lebih sulit bagi Recurrent
Neural Network karena jika gambar yang sama diumpankan ke Recurrent
Neural Network pada setiap langkah waktu dan vektor hidden state setiap kali
diperbarui dengan gambar asli.
Gambar 2.5 Arsitektur Par inject
(sumber : Tanti et al., 2017)
2.2 Kecerdasan Buatan (Artificial Inteligence)
Artificial Inteligence atau kecerdasan buatan adalah bagian dari ilmu komputer.
Program ini menggunakan bahasa yang sama dengan sistem konvensional, tetapi
dengan logika yang berbeda. Pada beberapa kasus, sistem kecerdasan dioperasikan
13
UIN Syarif Hidayatullah Jakarta
dengan suatu logika yang simple, namun pada kasus lain seperti pada jaringan syaraf
tiruan, mesin ini mencoba meniru jaringan syaraf manusia dimana informasi akan
dialirkan dari satu sel ke sel lain dan digabungkan dengan data lain untuk mencapai
sebuah solusi (Introbooks, 2018).
Kecerdasan buatan dimulai dari penelitian Alan Turing pada tahun 1950 yang
membuat tes yang disebut tes turing. Tes tersebut melibatkan manusia untuk menguji
kecerdasan mesin. Tes ini dilakukan dengan skenario dimana seorang penguji berada
di ruangan pertama, manusia lain berada di ruangan kedua, dan mesin berada di
ruangan ketiga. Penguji memberikan pertayaan kepada manusia tersebut dan mesin
menggunakan teks. Untuk membedakan keduanya berdasarkan jawaban dari
pertanyaan yang diberikan penguji. Jika penguji tidak bisa membedakan mana mesin
dan mana manusia, maka mesin tersebut dinyatakan memiliki kecerdasan (Neapolitan
& Jiang, 2018).
Menurut Rich dan Knight, kecerdasan buatan adalah ilmu tentang bagaimana
komputer dapat melakukan sesuatu seperti yang manusia lakukan (Kulkarni & Praci,
2015). Menurut Budiharto & Suhartono (2014), bidang ilmu kecerdasan buatan terdiri
dari:
a. Natural Language Processing
Natural Language Processing (NLP) adalah suatu sistem yang membuat
manusia dapat berkomunikasi dengan komputer menggunakan bahasa alami
manusia.
b. Computer Vision
Computer vision merupakan bidang ilmu kecerdasan buatan yang membuat
komputer dapat mengolah, menganalisa dan memahami suatu objek pada
gambar.
c. Robotika dan sistem navigasi
14
UIN Syarif Hidayatullah Jakarta
Pada bidang ini, dipelajari cara membuat sebuah robot yang dapat bermanfaat
bagi kehidupan manusia.
d. Game playing
Bidang ilmu ini mempelajari untuk membuat suatu sistem permainan yang
cerdas.
e. Sistem pakar
Bidang ilmu ini dipelajari proses membuat suatu sistem yang memiliki
kecerdasan dalam memecahkan masalah serta dapat meniru suatu pakar
dalam bidang ilmu tertentu.
2.3 Computer Vision
Seperti yang sudah dijelaskan dalam subbab sebelumnya mengenai kecerdasan
buatan, computer vision merupakan suatu cabang dari bidang kecerdasan buatan yang
membuat komputer dapat memproses serta menganalisis suatu objek pada gambar.
Pada computer vision juga dipelajari cara akuisisi dan pemrosesan gambar. Dengan
computer vision memungkinkan komputer dapat memiliki sebuah penglihatan seperti
manusia. Selain itu, kita juga bisa mendapatkan suatu informasi pada suatu gambar.
(Budiharto & Suhartono, 2014).
Computer vision berfokus pada algorima kecerdasan buatan yang digunakan
untuk menganalisis isi sebuah gambar dengan mengintegrasikan serangkaian proses
untuk pemahaman visual seperti akuisisi citra, pengenalan serta pengolahan citra. Saat
ini sudah banyak dikembangkan teknologi-teknologi berbasis computer vision seperti
robot yang dapat mengenali manusia (Amrizal & Aini, 2013).
Menurut Amrizal & Aini (2013), proses-proses pada computer vision adalah
sebagai berikut :
1. Akuisisi citra
Proses akuisisi citra adalah suatu proses untuk menerjemahkan bentuk visual
kedalam suatu format yang dapat dikenali dan di proses oleh komputer.
15
UIN Syarif Hidayatullah Jakarta
Contohnya sebuah kamera yang menangkap sebuah gambar atau adegan,
kemudian kamera tersebut menerjemahkan gambar tersebut kedalam suatu
sinyal digital berupa bilangan biner yang dapat dipahami komputer.
2. Pengolahan citra
Pada tahap ini, merupakan tahapan untuk memperbaiki kualitas sebuah citra
agar dapat dipahami oleh komputer. Kegiatan yang dilakukan dalam
pengolaham citra adalah praproses citra, contohnya dengan menggunakan
berbagai macam filter supaya gambar dapat dipahami lebih mudah oleh
komputer. Setelah praproses citra, tahap selanjutnya adalah menghilangkan
noise, memperbaiki kontras atau pencahayaan citra dan lain sebagainya.
3. Analisis citra
Analisis citra merupakan tahapan untuk menganalisis ciri dan karakteristik
citra.
4. Pemahaman citra
Dalam tahap pemahaman citra, kita membuat komputer dapat memiliki
pengetahuan seperti mengenal objek-objek yang terdapat pada citra. Dalam
tahap ini terdapat beberapa metode yaitu template matching dan feature
matching
2.4 Pemrosesan Bahasa Alami (Natural Language Processing)
Natural Language atau bahasa alami merupakan bahasa yang digunakan oleh
manusia untuk berkomunikasi. Jadi, Natural Language Processing atau pemrosesan
bahasa alami berarti mengolah sebuah bahasa alami manusia agar dapat dipahami oleh
komputer. Dengan NLP, manusia dapat berinteraksi dengan komputer melalui tulisan
maupun ucapan (Budiharto & Suhartono, 2014).
NLP terdiri dari tiga komponen utama basis pengetahuan, diantaranya :
• Sintaks merupakan bentuk dari bahasa. Bentuk spesifikasi dari sintaks
disebut grammar.
16
UIN Syarif Hidayatullah Jakarta
• Semantik merupakan penjelasan arti dari suatu kalimat pada sebuah
bahasa.
• Pragmatik merupakan komponen yang menjelaskan hubungan sebuah
kalimat dengan suatu keadaan seperti bentuk pengucapan, waktu
pengucapan dan maksud dari kalimat tersebut.
Selain komponen utama diatas, dalam NLP terdapat beberapa istilah,
diantanya:
• Morfologi merupakan pengetahuan tentang kata dan bentuknya
sehingga kata-kata tersebut dapat dibedakan satu sama lain.
Contoh : memanfaatkan -> manfaat (kata dasar), mem (prefix), kan
(suffix)
• Fonetik merupakan pengetahuan tentang bunyi atau pelafalan suatu
bahasa sebagai pengenalan kata.
Beberapa ruang lingkup penelitian mengenai NLP diantaranya Question
Answering System yang membuat komputer dapat menjawab pertanyaan yang
diberikan pengguna, summarization yakni aplikasi yang dapat membuat rangkuman
dari sebuah dokumen, mesin translasi yakni aplikasi yang dapat menerjemahkan
sebuah bahasa kedalam bahasa lain, speech recognition adalah aplikasi yang dapat
mendeteksi sebuah suara untuk mengenali suatu bahasa dan document classification
yaitu aplikasi yang dapat mengelompokkan suatu dokumen seperti spam email dan
sebagainya.
2.5 Jaringan Syaraf Tiruan (Artificial Neural Network)
Artificial Neural Network atau jaringan syaraf tiruan merupakan proses
pembelajaran mesin yang meniru jaringan syaraf manusia. Jaringan ini meniru cara
kerja sistem syaraf pada otak manusia. Otak manusia terdiri dari neuron, akson, dendrit
dan sinapsis. Neuron berfungsi untuk memproses setiap informasi yang masuk, akson
berfungsi sebagai pengirim informasi dari badan sel ke jaringan syaraf lain. Sedangkan
17
UIN Syarif Hidayatullah Jakarta
dendrit berfungsi sebagai pengirim informasi yang diterima ke badan sel dan sinapsis
berfungsi sebagai penghubung antar neuron. Komponen-komponen tersebut saling
terhubung satu sama lain (Budiharto & Suhartono, 2014).
Model dari jaringan syaraf tiruan memiliki banyak lapisan atau layer sehingga
sulit dibaca dan dipahami oleh manusia. Jaringan syaraf tiruan terdiri dari input layer,
hidden layer dan output layer. Input layer bertugas sebagai penerima masukan yang
kemudian diteruskan kedalam hidden layer yang bertugas untuk memproses dan
melakukan perhitungan fungsi aktivasi pada setiap neuron. Sedangkan output layer
berfungsi sebagai penerima output yang dihasilkan oleh hidden layer (Gotama, 2018).
Gambar 2.6 Arsitektur JST
(Sumber: Amrizal & Aini, 2013)
2.5.1 Arsitektur Jaringan Syaraf Tiruan
Arsitektur jaringan syaraf tiruan berbentuk susunan neuron dalam lapisan-
lapisan (layer) yang saling terhubung satu sama lain (Budiharto & Suhartono, 2014).
Kedalaman (depth) pada jaringan syaraf tiruan berarti jumlah layer, sedangkan lebar
jaringan merupakan jumlah unit pada layer (Gotama, 2018). Menurut Budiharto &
Suhartono, (2014), berikut ini merupakan bentuk-bentuk arsitektur dari jaringan syaraf
tiruan:
1. Jaringan lapisan tunggal (single layer network)
Jaringan ini merupakan bentuk terkecil dari jaringan syaraf tiruan. Jaringan
ini hanya terdiri dari satu lapisan (layer) yakni lapisan input yang berguna
sebagai penerima masukan dan lapisan output sebagai pemberi respon dari
masukan tersebut.
18
UIN Syarif Hidayatullah Jakarta
Gambar 2.7 Arsitektur single layer network
( Sumber : http://saraftiruan.blogspot.com/2016/10/arsitektur-jaringan-syaraf-tiruan.html)
2. Jaringan lapisan banyak (multilayer network)
Jaringan lapisan multi merupakan jaringan syaraf tiruan yang terdiri dari
beberapa lapisan (layer). Lapisan-lapisan tersebut diantaranya adalah input
layer, hidden layer dan output layer. Lapisan hidden layer terdapat diantara
input dan output layer. Layer-layer tersebut saling terhubung dengan bobot.
Gambar 2.8 Arsitektur Multi Layer Network
(Sumber: http://jeyegzcorner.blogspot.com/2014/07/jaringan-syaraf-tiruan-artifical-
neural.html)
3. Competitive layer network
19
UIN Syarif Hidayatullah Jakarta
Dalam arsitektur jaringan syaraf ini, hubungan antar jaringan tidak terlihat .
jaringan-jaringan tersebut saling terhubung dengan sebuah bobot yang
bernilai -∊.
Gambar 2 .9. Arsitektur Competitive Layer Network
(Sumber : Budiharto & Suhartono, 2014)
2.5.2 Algoritma Pembelajaran
Pada jaringan syaraf tiruan, terdapat proses pembelajaran. Pembelajaran
dilakukan oleh mesin untuk dapat memberikan respon kepada lingkungan tempat
jaringan tersebut berada. Metode pembelajaran dapat ditentukan oleh pola tempat
dilakukannya pengubahan parameter (Amrizal & Aini, 2013). Jenis-jenis algortima
pembelajara pada jaringan syaraf tiruan adalah sebagai berikut :
1. Supervised learning (pembelajaran terawasi)
Supervised learning adalah proses belajar yang diibaratkan dengan guru yang
mengajari siswa mengenali angka. Guru memperkenalkan kepada siswa bentuk
angka 1,2,3,4. Kemudian guru mengajari cara membaca angka-angka tersebut.
Dalam hal ini angka sebagai masukan (input), cara membaca sebagai keluaran
yang diinginkan (desired output) dan pasangan masukan dan keluaran yang
diingikan (input desired output) disebut sebagai data pelatihan. Keluaran
(output) merupakan bentuk model yang dihasilkan dari proses mempelajari
masukan dan keluaran yang diinginkan (desired output) .Proses murid
20
UIN Syarif Hidayatullah Jakarta
mempelajari disebut supervised learning. Contoh dari supervised learning
adalah klasifikasi (Gotama, 2018).
2. Unsupervised learning (pembelajaran tidak terawasi)
Pada pembelajaran Unsupervised learning tidak terdapat guru. Mesin
dituntut agar dapat mengenali sesuatu berdasarkan sifat-sifat pada data. Contoh
unsupervised learning adalah clustering (Gotama, 2018).
2.6 Machine Learning
Machine learning merupakan salah satu bagian dari kecerdasan buatan yang
membuat mesin dapat melakukan inferensi terhadap data yang diberikan. Inferensi
dilakukan dengan cara membuat model menggunakan pendekatan matematis. Machine
learning memungkinkan mesin dapat memprediksi masa depan dengan mempelajari
konfigurasi parameter dan data-data yang diberikan (Gotama, 2018).
Kinerja machine learning diukur dari optimalnya nilai suatu fungsi seperti
minimalnya nilai loss dan error. Loss adalah ukuran seberapa dekat atau berbeda model
yang dihasilkan dengan data asli, sedangkan error merupakan salah satu cara untuk
menghitung loss. Nilai dari loss dan error tergantung dari parameter pembelajaran yang
digunakannya. Kekurangan dari machine learning adalah membutuhkan data yang
banyak untuk proses pembelajarannya (Gotama, 2018)
2.7 Deep Learning
Deep Learning adalah bagian dari metodologi machine learning yang
menggunakan jaringan syaraf tiruan. Machine learning hanya berfokus pada cara
komputer belajar tanpa terprogram secara spesifik (Gulli & Pal, 2017).
21
UIN Syarif Hidayatullah Jakarta
Gambar 2.10. Ruang lingkup kecerdasan buatan
(Sumber : Gulli & Pal, 2017)
Deep learning merupakan bentuk pembelajaran dari deep neural network.
Disebut deep karena jaringan memiliki banyak lapisan atau layer. Deep neural network
merupakan bentuk dari jaringan syaraf tiruan yang memiliki banyak layer. Biasanya
terdiri dari 3 lapisan lebih. Dalam deep neural network, estimasi parameter sulit
dilakukan karena jaringan ini memiliki banyak lapisan dan sinapsis bobot (Gotama,
2018).
Deep learning dapat menyelesaikan permasalahan yang tidak dapat diselesaikan
oleh multilayer perceptron yaitu menentukan relasi tersembunyi antara input dan
output. Pada deep neural network terjadi banyak proses transformasi yaitu mengubah
input menjadi suatu representasi berbentuk hidden layer dengan struktur hirarki. Proses
pembelajaran pada deep learning cenderung lebih lama karena deep learning memilki
banyak parameter. Namun hal tersebut dapat diatasi dengan regulasi, successive
learning ataupun autoencoder. Teknik yang sering digunakan adalah Successive
learning yaitu membangun suatu jaringan secara bertahap, contohnya kita melatih
jaringan neural menggunakan 3 layer, lalu kita tambahkan satu layer lagi sehingga
menjadi 4 layer dan seterusnya (Gotama, 2018).
2.8 Convolutional Neural Network
Convolutional Neural Network banyak digunakan dalam bidang pengolahan
gambar. Jaringan konvolusi merupakan jaringan syaraf konvolusi yang menggunakan
22
UIN Syarif Hidayatullah Jakarta
operasi konvolusi sebagai pengganti perkalian matriks. Jaringan konvolusi ini
merupakan salah satu dari pembelajaran mendalam (deep learning). (Goodfellow,
Bengio, & Courville, 2016).
Menurut Zhang dan Zhu (2018), Jaringan konvolusi terinspirasi dari pola
hubungan antar neuron visual cortex pada binatang. Cortical neuron memberi
tanggapan stimulasi hanya dalam suatu area terbatas pada bidang visual atau bidang
reseptif . Bidang-bidang reseptif ini saling bertumpang tindih secara parsial (partially
overlap) yang mencangkup seluruh bidang reseptif (Suyanto, 2018).
Menurut Alom et.al (2018), Convolutional Neural Network terdiri dari tiga
lapisan diantaranya adalah lapisan masukan (input layer), lapisan keluaran (output
layer) dan lapisan tersembunyi (hidden layer). Di dalam hidden layer terdapat lapisan-
lapisan yang tersusun secara bertumpuk. Lapisan-lapisan tersebut diantaranya adalah
convolutional layer, pooling layers, normalization layer, ReLU layer, fully Connected
layer dan loss layer (Suyanto, 2018).
Selain itu, arsitektur CNN tersusun dari 3 dimensi yaitu lebar (width), tinggi
(height) dan kedalaman (depth) yang mana lebar dan tinggi merupakan representasi
dari dimensi gambar dan kedalaman merupakan tiga kanal dari gambar berwarna yaitu
Red, Green dan Blue (RGB) (Suyanto, 2018).
Gambar 2.11 Arsitektur CNN
(Sumber : https://docplayer.info/57318252-Bab-iii-landasan-teori.html )
23
UIN Syarif Hidayatullah Jakarta
2.8.1 Operasi Convolusi
Operasi konvolusi adalah operasi pada dua fungsi dari argument yang bernilai
rill. Argument pertama (x) disebut input dan argument kedua (w) disebut kernel. Hasil
keluaran dari operasi konvolusi disebut sebagai feature map (Goodfellow et al., 2016).
Operasi konvolusi dapat dinotasikan dengan :
s(t)=(x*w)(t)
Keterangan:
x = input, w =kernel, t = timestep
biasanya pada aplikasi mesin pembelajaran, bentuk input berupa data array
multidimensi dan kernel berbentuk parameter array multidimensi yang diadaptasi dari
algoritma pembelajaran. Array multidimensi ini biasa disebut tensor karena setiap
elemen dari input dan kernel harus disimpan secara eksplisit yang diasumsikan dengan
fungsi-fungsi bernilai 0 tetapi disimpan dalam finite state. Sehingga dapat
diimplementasiikan penjumlahan tak terbatas sebagai penjumlahan pada seluruh
elemen aray. Jika kita menggunakan gambar dua dimensi, maka I merupakan input
maka kita gunakan kernel dua dimensi K dimana i dan j merupakan piksel gambar,
maka persamaannya adalah sebagai berikut :
S(i,j) = (I *K)(i,j) = ∑m ∑n I ( i – m, j – n) K(m, n)
Persamaan diatas bersifat kumutatif karena terdapat sedikit variasi nilai untuk
m dan n. selain itu juga karena kernel relative dibalik ke input sehingga jika nilai m
meningkat dan indeks ke input pun meningkat, tetapi indeks kedalam kernel menurun.
Kernel dibalik agar mendapatkan properti komutatif yang berguna untuk perbaikan
yang mana tidak penting pada implementasi neural network. Oleh karena itu banyak
library mengimplementasi sebuah fungsi yang disebut cross-correlation yang mana
hampir mirip dengan operasi konvolusi tetapi tidak melakukan pembalikan kernel.
Jadi, Persamaan konvolusi dengan cross correlation adalah sebagai berikut :
24
UIN Syarif Hidayatullah Jakarta
S(i,j) = (I *K)(i,j) = ∑m ∑n I ( i + m, j + n) K(m, n)
2.8.2 Convolutional Layer (Lapisan Konvolusi)
Menurut Le Cun, 2015, Lapisan konvolusi berperan sebagai ekstraktor fitur yang
mana mempelajari representasi fitur gambar yang dimasukkan (Rawat & Wang, 2017).
Selain itu, lapisan ini berfungsi sebagai penentu keluaran dari jaringan yang terhubung
dengan wilayah lokal pada gambar menggunakan perhitungan produk skalar antara
bobot dan wilayah yang terhubung ke volume input. Parameter pada lapisan ini fokus
pada penggunaan kernel pembelajaran. Kernel-kernel tersebut berukuran kecil pada
dimensi spasial dan menyebar keseluruh kedalaman (depth) pada input. Ketika gambar
mengenai convolutional layer, tersebut menggabungkan setiap filter melewati dimensi
spasial input untuk menghasilkan sebuah peta aktivasi (activation map) atau feature
map (Shea, 2015).
Ketika melewati input, produk skalar menghitung setiap nilai pada kernel
tersebut. Aktivasi terjadi ketika kernel melihat fitur tertentu pada posisi spasial input.
Elemen pusat kernel diletakkan pada vektor input kemudian dihitung dan diganti
dengan suatu jumlah bobot dari dirinya dan piksel didekatnya. Setiap kernel akan
memiliki peta aktivasi yang sesuai dan akan ditumpuk sepanjang dimensi kedalaman
untuk membuat volume output dari convolutional layer.
Gambar 2.12 Vektor-vektor CNN
(Sumber : Shea, 2015)
Setiap neuron pada convolutional layer terhubung pada lokasi kecil dari volume
input yang disebut ukuran bidang reseptif (receptive field size) dari neuron yang
25
UIN Syarif Hidayatullah Jakarta
berfungsi untuk mengecilkan model yang dihasilkan pada jaringan syaraf standar.
Contohnya ketika kita mempunyai input gambar RGB (Red, Green, Blue) berukuran
64x64 berarti 64x64x3, kemudian kita atur ukuran bidang reseptifnya menjadi 6x6x3,
maka kita akan mempunyai total 108 bobot pada setiap neuron pada convolutional
layer daripada pada bentuk standar JST yang memiliki neuron masing-masing 12.288
bobot (Shea, 2015).
Selain itu convolutional layer juga dapat mengurangi kompleksitas model secara
signifikan menggunakan optimisasi output. Optimisasi tersebut terdiri hiperparameter
yaitu :
1. Depth merupakan hyperparameter penentu jumlah total neuron pada jaringan,
semakin kecil nilainya maka jumlah neuron akan semakin kecil sehingga
kemampuan model untuk mengenali pola akan berkurang.
2. Stride adalah parameter pengatur banyaknya pergeseran filter. Contohnya jika
nilai stride adalah 1 maka filter akan bergeser setiap satu piksel.
3. Zero padding (P) adalah parameter penentu jumlah piksel yang ditambahkan
pada setiap sisi input.
P = (F-1)/2
Perhitungan penggunaan hyperparameter sebagai penentu volume output adalah
sebagai berikut :
(𝑉 − 𝑅) + 2𝑍
𝑆 + 1
Dimana : V = ukuran volume input (height, width, depth)
R = receptive field size
Z = nilai zero padding
S = nilai stride
26
UIN Syarif Hidayatullah Jakarta
2.8.3 Pooling layer (Lapisan Pooling)
Pooling layer merupakan lapisan pada jaringan konvolusi yang berfungsi untuk
mengurangi representasi ukuran spasial untuk mengurangi jumlah parameter dan
perhitungan dalam jaringan serta mengontrol terjadinya overfitting. Pooling layer
beroperasi secara independen dalam setiap irisan kedalam input dan mengubah
ukurannya secara spasial menggunakan operasi MAX. Pooling layer biasanya
berbentuk sebuah lapisan dengan filter yang berukuran 2x2 yang diterapkan dengan 2
langkah downsampling pada setiap irisan kedalaman pada input oleh 2 panjang lebar
dan tinggi serta menghilangkan 75% aktivasi. Setiap operasi max akan mengambil max
lebih dari 4 angka (wilayah kecil berukuran 2x2 dalam beberapa irisan dalam). Dimensi
kedalaman tidak berubah (http://cs231n.github.io/convolutional-networks/).
Secara umum, operasi pooling layer adalah sebagai berikut :
• Menerima sebuah volume dengan ukuran W1 x H1 x D1
• Membutuhkan dua hiperparameter yakni:
F = ukuran bidang receptif
S = stride
• Menghasilkan sebuah volume dengan ukuran W2 x H2 x D2, dimana :
W2 = (W1 -F)/S+1
H2 = (H1-F)/S+1
D2 = D1
• Memperkenalkan zero parameter karena menghitung fungsi input yang tetap.
• Pooling layer biasanya tidak memasukkan input menggunakan zero-padding.
Pada praktiknya, hanya ada dua variasi yang terlihat pada max pooling layer yaitu
sebuah pooling layer dengan F=3, S=2 (disebut juga sebagai overlapping pooling) dan
lebih umum lagi F=2, S=2. Ukuran pooling dengan bidang reseptif yang lebih besar
sangat merusak.
27
UIN Syarif Hidayatullah Jakarta
Gambar 2.13 Ilustrasi pooling layer
(Sumber : (http://cs231n.github.io/convolutional-networks/)
2.8.4 Fully Connected Layer
Fully connected layer merupakan lapisan yang terhubung secara penuh, lapisan
berisi neuron yang terhubung langsung dengan neuron lain pada dua lapisan yang
berdekatan tanpa terhubung dengan lapisan apapun
(http://cs231n.github.io/convolutional-networks).
2.9 VGG Net
Jaringan VGG diciptakan oleh peneliti dari Oxford Visual Geometry Group,
Karen Simonyan dan Andrew Zisserman. Ada 2 jenis VGG yaitu VGG-16 yang
memiliki kedalaman 16 lapisan dan VGG-19 dengan 19 lapisan. Jaringan ini terdiri
dari 3x3 lapisan konvolusi, selain itu lapisan max pooling yang digunakan untuk
mengurangi ukuran volume dan lapisan terakhir yaitu lapisan fully connected dengan
4096 neuron yang diikuti oleh lapisan softmax. Prapemrosesan yang dilakukan hanya
pada input yaitu substraksi dari nilai rata-rata RGB yang dihitung pada set pelatihan
dari setiap piksel. Proses pooling dilakukan oleh lapisan max pooling yang diikuti oleh
beberapa lapisan konvolusi. Tidak semua lapisan konvolusi diikuti oleh max pooling.
Max pooling dilakukan dengan 2x2 pixel window dan 2 stride. Aktivasi ReLu
digunakan pada setiap hidden layer. Jumlah filter meningkat sesuai dengan kedalaman
varian VGG (Shanmugamani, 2018).
28
UIN Syarif Hidayatullah Jakarta
VGG-16 merupakan model yang tersusun dari 16 lapisan konvolusi dan fully
connected yang biasanya digunakan untuk mengenali dan mengklasifikasikan gambar.
Arsitektur VGG-16 memiliki 13 lapisan konvolusi yang menggunakan 3x3 filter
konvolusi dengan lapisan max pooling untuk downsampling. Selain itu, VGG-16 juga
mempunyai dua lapisan fully connected pada lapisan tersembunyi (hidden layer)
dengan total 4096 unit lapisan yang diikuti oleh lapisan dense berjumlah 1000 unit,
dimana setiap unit merepresentasikan satu dari kategori gambar pada database
ImageNet (Shanmugamani, 2018). Arsitektur VGG-16 diilustrasikan seperti gambar
berikut :
Gambar 2.14. Arsitektur VGG-16
(Sumber : https://learning.oreilly.com/library/view/hands-on-transfer-
learning/9781788831307/4d604d47-7c48-4a5b-9ac3-7940cb8a5122.xhtml)
2.10 Residual Network (ResNet)
Resnet atau Residual Network merupakan jaringan residual yang memiliki
jaringan yang dalam. Jaringan terdalam dari resnet berjumlah 152 lapisan. Jaringan ini
8 kali lebih dalam dari jaringan VGG namun kompleksitasnya masih lebih rendah dari
pada jaringan VGG. Pada tahun 2015, Jaringan ini berhasil memenangkan juara
pertama pada kompetisi ILSVRC (ImageNet Large Scale Visual Recognition
Challenge) dan COCO dalam hal klasifikasi, deteksi dan segmentasi gambar pada
dataset COCO dan ImageNet (He, Zhang, Ren, & Sun, 2015).
29
UIN Syarif Hidayatullah Jakarta
Gambar 2.15 Arsitektur dan Jumlah lapisan ResNet
(Sumber: https://pytorch.org/hub/pytorch_vision_resnet/)
Peningkatan kedalaman jaringan pada deep convolutional neural network tidak
selalu menghasilkan akurasi pelatihan yang lebih baik, ada kalanya terdapat penurunan
akurasi pelatihan. Hal tersebut disebabkan oleh degradasi yang terjadi pada jaringan
karena tidak semua jaringan mudah dioptimisasi. Solusi untuk mengurangi degradasi
pada jaringan yang lebih dalam adalah dengan menambahkan pemetaan identitas
(identity mapping) dan lapisan lainnya yang disalin dari model yang lebih dangkal.
Maka dibuatlah jaringan residual atau ResNet. Jaringan ini membiarkan lapisan-lapisan
sesuai dengan pemetaan residual. Jaringan ini berupa jaringan feed forward dengan
koneksi pintas (shortcut connection) yang melewatkan satu atau lebih lapisan. Koneksi
pintas ini hanya melakukan pemetaan identitas dan outputnya ditambahkan ke output
lapisan yang ditumpuk. Koneksi pintas juga tidak menambahkan parameter atau
kompleksitas komputasi. Selain itu, koneksi pintas yang dimiliki oleh jaringan ResNet
seluruh jaringannya juga dapat dilatih oleh Stocastic Gradient Descent dan mudah
diimplemetasikan dengan library tanpa memodifikasinya (He et al., 2015). Koneksi
pintas berbentuk blok bangunan seperti pada gambar 2.16.
30
UIN Syarif Hidayatullah Jakarta
Gambar 2.16 Blok bangunan koneksi pintas
(Sumber : He et al., 2015)
Adapun formula dari blok bangunan koneksi pintas adalah sebagai berikut :
F (x): = H (x) + x,
Dimana :
F(x) = fungsi residual
H(x) = pemetaan yang mencocokan beberapa lapisan yang ditumpuk
x = input
Pintasan identitas (shortcut identity) pada jaringan residual dapat langsung
digunakan ketika input dan output mempunyai dimensi yang sama. Ketika dimensi
bertambah, terdapat dua pilihan yang pertama adalah pintasan masih melakukan
pemetaan identitas dengan masukan ekstra nol yang diisi untuk memperbesar dimensi.
Pilihan ini tidak membolehkan parameter tambahan. Pilihan yang kedua adalah jalan
pintas proyeksi digunakan untuk mencocokkan dimensi yang dilakukan dengan
konvolusi 1x1. Pada kedua pilihan tersebut, pintasan dilakukan dengan 2 stride ketika
melewati peta fitur (He et al., 2015). Berikut ini merupakan arsitektur ResNet :
31
UIN Syarif Hidayatullah Jakarta
Gambar 2. 17 Arsitektur ResNet
(Sumber : https://medium.com/@sidereal/cnns-architectures-lenet-alexnet-vgg-googlenet-resnet-and-
more-666091488df5 )
Pada jaringan ResNet 50, 101 dan 152 layer, terdapat modifikasi pada blok
bangunan koneksi pintas. Modifikasi tersebut adalah setiap fungsi residual ditumpuk 3
lapisan konvolusi dengan ukuran 1x1, 3x3,dan 1x1. Modifikasi ini disebut Deeper
Bottleneck architecture, dimana lapisan terakhir 1x1 yang responsible untuk
mengurangi dan meningkatkan dimensi dengan meninggakan lapisan konvolusi 3x3
input/output yang lebih kecil. Pada ResNet 50,101 dan 152 layer digunakan pintasan
identitas yang bebas parameter (parameter-free identity shortcut) (He et al., 2015).
Gambar 2.18 Bottleneck Shortcut
(Sumber : He et al., 2015)
32
UIN Syarif Hidayatullah Jakarta
Pada ResNet 50 layer, untuk meningkatkan dimensi menggunakan projection
shortcut pada pintasan identitas (identity shortcut) dan mengubah 2 layer block pada
ResNet 34 layer dengan 3 layer bottleneck block. Sedangkan pada ResNet 101 dan 152
layer menggunakan lebih dari 3 layer block. Meskipun ResNet 152 layer kedalamannya
meningkat secara signifikan, namun masih mempunyai kompleksitas yang lebih rendah
dari VGG-19 (He et al., 2015).
Jaringan residual mudah dioptimalkan dan memperoleh peningkatan akurasi dan
hasil yang lebih baik dari jaringan sebelumnya berkat peningkatan kedalaman pada
jaringan ini. Namun pada jaringan yang hanya menumpuk lapisan (counterpart plain)
terjadi kesalahan pelatihan yang lebih tinggi ketika kedalamannya meningkat (He et
al., 2015).
2.11 Model Bahasa (Language Model)
Tugas mendasar dari kecerdasan buatan dan pemrosesan bahasa alami (NLP)
adalah Pemodelan bahasa. Pemodelan bahasa biasanya diterapkan dalam berbagai
pekerjaan mengenai pemrosesan bahasa alami (NLP) seperti speech recognition,
generate teks dan mesin translasi (Kim, Jernite, Sontag, & Rush, 2016).
Model bahasa dapat diklasifikasikan menjadi dua, yaitu Count-Based (Count-
Based Language Model) dan Continuous-Space (Continuous-Space Language Model).
Contoh model Count Based adalah model statistik tradisional. Pada metode ini, Sebuah
model bahasa diformalisasi sebagai distribusi probabilitas melalui suatu urutan string
atau kata-kata dan metode tradisional yang biasanya diikuti oleh pembuatan ke-n
permintaan asumsi Markov dan estimasi probabilitas n-gram dengan menghitung dan
perataan subsequent . Model count based mudah untuk dilatih, namun meskipun
menggunakan teknik rata-rata, probabilitas dari n-gram yang langka dapat
diestimasikan dengan buruk karena terbatasnya data. Sedangkan contoh Model
continuous-space adalah Feed-Forward Neural Probabilistic Language Models
(NPLMs) dan Recurrent Neural Network Language Models (RNNs). Menurut Begio
33
UIN Syarif Hidayatullah Jakarta
et al. (2003) dan Mikolov et al. (2010), keduanya merupakan Neural Language Models
yang mengatasi masalah keterbatasan data gram yang kemudian melalui parameterisasi
kata sebagai vektor (word embeddings) dan menggunakan input ke jaringan syaraf.
Menurut Deerwester (1990), parameter-parameter tersebut dipelajari sebagai bagian
dari proses pelatihan. Word embeddings yang didapat melalui Neural Language
Models menunjukkan bahwa properti dimana kata-kata yang dekat secara semantik
ternyata juga dekat dengan ruang vektor yang diinduksi. Neural Language Models
dapat memahami informasi kontekstual pada tingkat kalimat, korpus dan sub kata (Kim
et al., 2016)
2.11.1 Count-Based Language Models
Model ini menggunakan rumus statistik untuk menggambarkan model bahasa
yang digunakan untuk membangun probabilitas gabungan dari urutan kata. Contohnya
adalah model n-gram. Berdasarkan asumsi Markov, dalam model n-gram,
memprediksi urutan kata dipecah menjadi memprediksi satu kata pada suatu waktu.
Probabilitas model adalah produk dari probabilitas kata berdasarkan pada riwayat kata-
kata sebelumnya, di mana riwayat tersebut terbatas pada m-kata (Synced, 2017).
Berikut ini merupakan rumus Markov Chain :
P (wn|w1,w2,…,wn-1 == p(wn|wn-m, …, n-2, wn-1)
Berdasarkan rumus diatas, dimana jumlah state sebelumnya (kata-kata) adalah
urutan model. Ide dasar untuk model n-gram adalah bahwa kita dapat memprediksi
probabilitas w_ (n +1) dengan konteks sebelumnya, dengan membagi jumlah
kemunculan w_n, w_ (n +1) dengan jumlah kemunculan w_n, yang kemudian akan
disebut bigram. Jika kita hanya mendasarkan pada frekuensi relatif w_ (n + 1), ini akan
menjadi penaksir unigram. Estimasi probabilitas prediksi kata trigram (paling sering
digunakan untuk model bahasa dalam aplikasi NLP sederhana), oleh karena itu
langsung dengan asumsi estimasi kemungkinan maksimum. Namun, ketika
memodelkan distribusi bersama dari sebuah kalimat, model n-gram sederhana akan
34
UIN Syarif Hidayatullah Jakarta
memberikan probabilitas nol untuk semua kombinasi yang tidak ditemukan dalam
pelatihan korpus, yaitu kemungkinan besar akan memberikan probabilitas nol untuk
sebagian besar contoh kasus uji. Sehingga kemungkinan akan terjadi masalah sparsity
atau kombinasi dari n-word yang tidak terlihat dalam set pelatihan yang menyebabkan
probabilitas nol. Solusi dari permasalahan tersebut adalah menggunakan berbagai
teknik back-off dan smoothing (Synced, 2017)
Kelemahan dari model n-gram adalah berpotensi terkena dimensionalitas kata
karena ada sejumlah besar kombinasi nilai nilai variabel input yang berbeda dan harus
didiskriminasi satu sama lain. Contohnya sejumlah besar kemungkinan urutan kata
dengan 10 kata yang diambil dari 100.000 kosakata berarti ada 10⁵⁰ urutan yang
mungkin. Selain itu, model tradisional ini bergantung pada pola yang tepat, yaitu
pencocokan string atau urutan kata, dan oleh karena itu secara bahasa sama sekali tidak
diinformasikan. Contohnya kita berharap model dapat mengenali urutan kata seperti
“kucing berjalan di kamar” agar mirip secara sintaksis dengan “ anjing berlari di
kamar”. Selain itu juga masalah ketergantungan yang diabaikan karena ketika
memperkirakan parameter model hanya mempertimbangkan konteks kata n-1 atau
tidak memodelkan probabilitas kondisi sebenarnya berdasarkan asumsi Markov
(Synced, 2017).
2.11.2 Continuous Space Languge Models
Seperti yang sudah dipaparkan sebelumnya mengenai continuous space
languge models, ada dua jenis dari model bahasa ini yaitu Feed Forward Neural
Network yang yang diusulkan untuk mengatasi masalah sparsity data dan Reccurent
Neural Network yang diusulkan untuk mengatasi masalah konteks terbatas (Synced,
2017).
A. Feed Forward Neural Network Model
Model ini merupakan model yang mempelajari parameter dari distribusi
probabilitas bersyarat dari kata berikutnya dengan mengingat kata-kata n-1 sebelumnya
35
UIN Syarif Hidayatullah Jakarta
menggunakan tiga lapisan Feed Forward Neural Network. Pada model ini, setiap kata
pada kosakata diasosiasi dengan vektor fitur kata terdistribusi dan fungsi probabilitas
gabungan urutan kata-kata yang diutarakan oleh fungsi vektor fitur kata-kata didalam
urutan. Model ini dapat mempelajari vektor fitur kata dan parameter fungsi probabilitas
secara bersamaan. Selain itu juga dapat mengatasi masalah sparseness, dan juga telah
terbukti menggeneralisasi dengan baik dibandingkan dengan model n-gram dalam hal
perplexity. Namun kelemahan dari model ini adalah waktu pelatihan dan pengujian
yang sangat lama. Untuk mengatasi kelemahan dari model ini makan dibuatlah model
hirarki probabilistik yang diharapkan dapat mempercepat pelatihan dan prediksi dan
model pohon kata hirarki binary. Pohon binary ini membentuk deskripsi hirarkis dari
suatu kata sebagai urutan keputusan. Kedua model hirarki tersebut belajar mengambil
keputusan secara hirarki sehingga model ini lebih cepat daripada model non-hirarki
namun memiliki kelemahan yaitu kinerjanya yang lebih buruk daripada model non-
hirarki (Synced, 2017).
Model hirarki lainnya adalah model hierarchical log-bilinear yang menggunakan
metode data-driven untuk membangun pohon kata biner daripada pengetahuan ahli.
Cara kerja model ini adalah melatih model menggunakan pohon acak di korpus
kemudian mengesktraksi representasi kata dari model yang dilatih dan melakukan
melakukan pengelompokan hierarkis pada representasi yang diekstraksi. Dalam model
ini, probabilitas kata berikutnya (w) adalah probabilitas untuk membuat urutan
keputusan biner yang ditentukan oleh pengkodean kata, mengingat konteksnya. Karena
apa yang hanya penting untuk menghasilkan probabilitas pada setiap node adalah
vektor fitur yang diprediksi, ditentukan oleh konteksnya, probabilitas kata saat ini dapat
dinyatakan sebagai produk probabilitas dari keputusan biner. Model ini mengurangi
perplexity sebanyak 11,1% dibandingkan dengan Kneser-Ney yang telah memperhalus
model 5 gram, pada waktu pelatihan hanya 32 menit per epoch. Model ini tidak
mengalami masalah data sparsity karena dapat menerapkan smoothing otomatis
36
UIN Syarif Hidayatullah Jakarta
sehingga dengan menggunakan model ini data dapat dilatih dan diuji lebih cepat dan
dapat mengungguli model non hirarki dan model n-gram terbaik (Synced, 2017) .
B. Reccurent Neural Network (RNN)
Jika Feed Forward Neural Network model menggunakan konteks dengan panjang
tetap, jaringan saraf berulang menggunakan ukuran konteks yang tidak terbatas.
Dengan jaringan saraf berulang, siklus informasi di dalam jaringan ini dapat bertahan
dalam waktu yang lama. Model ini memberikan generalisasi lebih lanjut di dalam
neuron dari koneksi berulang yang diasumsikan untuk merepresentasikan memory
jangka pendek (short term memory). arsitekur jaringan ini adalah sebagai berikut :
Gambar 2 .19 Arsitektur RNN
1. Input layer (w) dan output layer (y) mempunyai dimensi yang sama sebagai
kosakata.
2. Hidden layer (s) merupakan urutan yang besarnya lebih kecil.
3. U adalah martiks bobot antara input dan hidden layer, V adalah matriks bobot
antara hidden dan output layer
4. Tanpa bobot berulang (W) (reccurent weights), model ini dapat menjadi
jaringan bigram.
37
UIN Syarif Hidayatullah Jakarta
Jenis-jenis RNN mengimplemetasikan faktorisasi output layer untuk
mengurangi kompleksitas komputasi dan meningkatkan kinerja RNN.
Memodifikasi RNN dapat memperkecil jaringan dan lebih cepat dalam hal
pelatihan dan pengujian juga akurasi menjadi lebih baik (Synced, 2017).
2.12 Long Short Term Memory (LSTM)
Long Short Term Memory merupakan jaringan syaraf tiruan berulang (Recurrent
Neural Network) yang memiliki alur berurut (sequence) dan berulang (loop).
Recurrent Neural Network dapat menghubungkan informasi sebelumnya dengan
informasi saat ini, yang mana informasi sebelumnya merupakan lanjutan dari informasi
saat ini. Jaringan Recurrent Neural Network mempelajari informasi sebelumnya untuk
memprediksi informasi selanjutnya (Colah, 2015).
Gambar 2 .20 Struktur Reccurent Neural Network
(Sumber : https://colah.github.io/posts/2015-08-Understanding-LSTMs/)
Metode Long Short Term Memory (LSTM) diperkenalkan oleh Hochreiter dan
Schmidhuber pada tahun 1997 dan sampai saat ini telah disempurnakan serta
dipopulerkan oleh banyak orang karena banyak digunakan untuk memecahkan
berbagai masalah. Long Short Term Memory (LSTM) dapat mengatasi masalah
ketergantungan jangka panjang (long-term dependencies) karena dapat mengingat
informasi pada periode jangka panjang (Colah, 2015).
Struktur Long Short Term Memory hampir sama dengan Recurrent Neural
Network yang memiliki bentuk rangkaian modul berulang dari neural network. Namun
modul berulang pada Recurrent Neural Network memiliki lapisan tunggal seperti
38
UIN Syarif Hidayatullah Jakarta
lapisan tunggal Tanh. Sedangkan rangkaian LSTM memiliki empat lapisan yang saling
berinteraksi (Colah, 2015).
Gambar 2.21 Rangkaian RNN
(Sumber : https://colah.github.io/posts/2015-08-Understanding-LSTMs/)
Gambar 2.22 Rangkaian LSTM
(Sumber : https://colah.github.io/posts/2015-08-Understanding-LSTMs/)
Gambar 2.23 Notasi pada lapisan LSTM
(Sumber : https://colah.github.io/posts/2015-08-Understanding-LSTMs/)
2.12.1 Arsitektur LSTM
Komponen LSTM terdiri dari (Sanjeevi, 2018) :
39
UIN Syarif Hidayatullah Jakarta
1. Forget gate (f) ,Input gate (i), dan output gate (o) yang merupakan suatu
jaringan syaraf dengan Sigmoid.
2. Candidate layer (Ĉ ) yang merupakan suatu jaringan syaraf dengan Tanh.
3. Hidden state (h) , memory state (C)
Struktur sel Long Short Term Memory pada suatu langkah waktu (t)
Gambar 2.24 Arsitektur LSTM
(Sumber : Sanjeevi, (2018))
Kegiatan sel state dikontrol oleh lapisan yang disebut gerbang (gates). Gerbang
ini terdiri dari lapisan jaringan syaraf sigmoid dan operasi multiplikasi yang searah,
sehingga Long Short Term Memory dapat menghapus atau menambahkan informasi
kedalam sel (Colah, 2015). Long Short Term Memory memiliki tiga gerbang utama
yang berfungsi untuk menjaga dan mengontrol sel state, diantaranya forget gate (f)
untuk melupakan atau menghapus informasi yang terdapat pada sel saat ini. Input gate
(i) untuk membaca input dan output gate (o) untuk menampilkan informasi baru
(Vinyals et al., 2015).
Inti dari Long Short Term Memory adalah sel state yang merupakan garis
horizontal yang berjalan melewati bagian atas diagram. Sel state ini berjalan lurus ke
bawah seluruh rantai dengan beberapa interaksi linear yang kecil. Hal ini yang
menyebabkan informasi dapat mengalir dengan mudah tanpa adanya perubahan
(Colah, 2015).
40
UIN Syarif Hidayatullah Jakarta
Gambar 2.25 Sel State
(Sumber : https://colah.github.io/posts/2015-08-Understanding-LSTMs/)
Lapisan sigmoid (σ) mengeluarkan output berupa nilai 0 dan 1. Jika 0 berarti
tidak memperbolehkan informasi apapun masuk kedalam sel, sedangkan jika bernilai
1 berarti sel boleh diisi oleh informasi (Colah, 2015).
Gambar 2.26 Lapisan sigmoid
(Sumber : https://colah.github.io/posts/2015-08-Understanding-LSTMs/)
2.12.2 Alur Kerja LSTM
Berikut ini merupakan langkah-langkah kerja Long Short Term Memory
(Colah, 2015)
1. Menentukan informasi mana yang akan dihapus atau dilupakan dari sel state.
Penentuan ini berasal dari sigmoid layer yang disebut forget gate layer.
Dinotasikan dengan ht-1 dan xt. Outputnya berupa nilai 1 atau 0 pada setiap sel
state.
ft = σ (Wf .[ ht-1 , xt ] + bf )
41
UIN Syarif Hidayatullah Jakarta
2. Menentukan informasi baru yang akan disimpan pada sel state. Pada tahapan
ini memiliki dua bagian:
• Sigmoid layer yang disebut input gate layer menentukan nilai yang akan
diperbarui
• Tanh layer membuat vektor dari nilai kandidat baru (Ĉt) yang dapat
ditambahkan pada state.
Setelah itu kita kombinasikan kedua langkah tersebut untuk membuat state
baru.
it = σ (Wi . [ ht-1, xt ] + bi)
Ĉt = tanh( WC . [ ht-1, xt] + bC)
3. Memperbarui sel state lama (Ct-1) kedalam sel state baru (Ct) dengan langkah
berikut:
1. Kalikan state lama dengan ft, menghapus hal-hal yang ingin kita hapus
sebelumnya.
2. Kemudian tambahkan operasi it * Ĉt . ini merupakan nilai kandidat baru
yang diskalakan dengan seberapa banyak kita ingin memperbarui setiap
nilai state.
Ct = ft * Ct-1 + it * Ĉt
4. Output kita tentukan sendiri. Output tersebut berdasarkan pada sel state, tetapi
akan menjadi versi yang sudah difilter. Untuk menentukan output, kita jalankan
sigmoid layer yang menentukan bagian sel mana yang akan menjadi output.
Kemudian kita tempatkan sel state melalui tanh (untuk mendorong nilai antara
-1 dan 1) dan mengalikannya dengan output dari gerbang sigmoid sehingga kita
hanya menampilkan output yang kita inginkan.
ot = σ (Wo [ht-1 , xt ] + bo)
ht = ot * tanh (Ct)
42
UIN Syarif Hidayatullah Jakarta
2.13 Dataset
Menurut Gotama (2018), Dataset adalah kumpulan data yang digunakan untuk
membuat dan mengevaluasi model. Dataset terbagi menjadi 3 jenis, diantaranya :
1. Set pelatihan (Training set)
Set pelatihan adalah kumpulan data yang digunakan untuk melatih atau
membuat model.
2. Development set atau validation set
Development atau validation set adalah kumpulan data yang digunakan sebagai
optimisasi dalam melatih model. Kumpulan data ini biasanya digunakan untuk
menguji data-data dalam proses pelatihan.
3. Set pengujian (Testing set)
Set pengujian merupakan kumpulan data yang digunakan untuk menguji model
setelah selesainya proses pelatihan model.
Rasio pembagian dataset untuk training, development dan testing biasanya
adalah (80% : 10% : 10%) atau (90% : 5% : 5%). Akan tetapi jika dataset berukuran
kecil, tidak bisa dilakukan pembagian untuk development set sehingga dataset hanya
dibagi menjadi dataset training dan testing dengan rasio pembagian (90% : 10%), (80%
: 20%), (70% : 30%), atau (50% : 50%) dan pengujian kinerja saat pelatihan dilakukan
menggunakan training set.
2.14 Skor BLEU
BLEU Score ( Bilingual Evaluation Understudy Score) merupakan salah satu
metrik evaluasi yang digunakan untuk mengukur kinerja mesin translasi, selain itu juga
digunakan pada masalah lain yang berkaitan dengan generating bahasa seperti
language generation, image caption generation, teks summarization, speech
recognition dan lain-lain. Skor BLEU ditemukan oleh Kishore Papineni et.al (2002).
Metrik evaluasi ini bekerja dengan menghitung kecocokan n-gram pada kandidat
translasi ke n-gram dari teks referensi. Dimana 1-gram atau unigram pada setiap token
43
UIN Syarif Hidayatullah Jakarta
dan perbandingan pada setiap pasangan kata. Perbandingan tersebut tidak
memperhatikan urutan kata. Jika banyak kata yang cocok maka skor akan meningkat
(Brownlee, 2017).
2.14.1 Cara Menghitung Skor BLEU
Rentang nilai BLEU adalah 0 hingga 1. Beberapa translasi akan mencapai skor
1 jika sangat sama dengan referensi translasi. Untuk menghitung skor BLEU, Python
menyediakan sebuah library yaitu Natural language toolkit atau NLTK yang dapat
digunakan untuk mengevaluasi teks yang di-generate terhadap suatu referensi teks.
Pada NLTK, terdapat fungsi sentence_bleu yang dapat digunakan untuk
mengevaluasi kalimat kandidat terhadap satu atau lebih kalimat referensi. Kalimat
referensi harus disediakan sebagai list kalimat-kalimat dimana setiap referensi adalah
list token. Kalimat kandidat disediakan sebagai list token (Brownlee, 2017). Contoh
penggunaan fungsi sentence_bleu untuk menghitung skor BLEU:
From nltk.traslate.bleu_score import sentence_bleu
reference = [(‘this’, ‘is’, ‘a’ , ‘test’), (‘this’, ‘is’, ‘test’)]
candidate = [‘this’, ‘is’, ‘a’, ‘test’]
score = sentence_bleu(reference, candidate)
print (score)
Pada contoh diatas, didapatkan hasil skor BLEU = 1 karena kecocokan kandidat
dengan satu dari referensi yang sama persis. Selain fungsi sentence_bleu, pada NLTK
juga terdapat fungsi corpus_bleu untuk menghitung skor BLEU pada beberapa
kandidat seperti paragraf atau dokumen. Referensi harus spesifik sebagai list dari
dokumen dimana setiap dokumen adalah list referensi dan setiap alternatif referensi
adalah list token seperti list-list token. Berikut ini merupakan contoh dari 2 referensi
pada 1 dokumen :
From nltk.traslate.bleu_score import corpus_bleu
reference = [(‘this’, ‘is’, ‘a’ , ‘test’), (‘this’, ‘is’, ‘test’)]
candidate = [‘this’, ‘is’, ‘a’, ‘test’]
score = corpus_bleu(references, candidates)
print (score)
Pada contoh diatas, skor BLEU yang diraih adalah 1.
44
UIN Syarif Hidayatullah Jakarta
2.14.2 Skor BLEU Individual dan Kumulatif
Skor BLEU dihitung pada NLTK dapat dengan menetapkan bobot dari n-gram
yang berbeda pada perhitungan skor BLEU. Hal ini memberikan kebebasan untuk
menghitung tipe yang berbeda dari skor bleu sperti individual dan cumulative skor n-
gram. Skor n-gram individual mengevaluasi kecocokan gram lebih spesifik seperti 1-
gram untuk kata tunggal atau pasangan kata (bigram). Bobot adalah tuple spesifik
dimana setiap indeks mengacu pada gram yang diinginkan. Contohnya jika akan
menghitung skor hanya 1-gram maka bobot dapat dispesifikan dengan nilai 1 untuk 1-
gram dan 0 untuk 2,3,4-gram (1,0,0,0) (Brownlee, 2017).
Sedangkan skor n-gram kumulatif, digunakan untuk menghitung skor n-gram
individual dari 1 hingga n-gram dengan memberikan bobot rata-rata yang dihitung
secara geometric. Secara default, skor sentence_bleu() dan corpus_bleu() menghitung
n-gram skor BLEU kumulatif. Kumulatif dan individual 1-gram BLEU (BLEU-1)
menggunakan bobot yang sama yaitu (1,0,0,0), jika 2-gram (BLEU-2) bobotnya
menjadi 50% pada setiap 1-gram dan 2-gram (0.5 , 0.5 , 0, 0), jika 3-gram maka
bobotnya adalah 33% untuk setiap 1,2,3 gram skor (0.33, 0.33, 0.33, 0) sedangkan
BLEU-4 dengan bobot ¼ (25%) atau 0,25 untuk setiap 1-gram, 2 gram, 3, gram, dan 4
gram (0.25 , 0.25, 0.25, 0.25) (Brownlee, 2017).
2.15 Python
Python merupakan suatu bahasa pemrograman yang diciptakan oleh Guido van
Rossum di akhir tahun 1980 hingga awal 1990 di National Research Institute for
Mathematics and Computer Science di Netherlands. Python memiliki kelebihan seperti
mudah dipelajari karena kode-kodenya mudah dipahami. Selain itu, Python dapat
berjalan di banyak sistem operasi seperti Windows, Macintosh, Unix dan lain
sebagainya (Tutorials Points, 2014).
45
UIN Syarif Hidayatullah Jakarta
2.16 Tensorflow
Tensorflow adalah sebuah platform untuk machine learning yang bersifat end-
to-end open source. Tensorflow mempunyai ekosistem tools, library dan resources
community yang konferensif dan fleksibel yang memungkinkan para penulis
meningkatkan teknologi mutakhir pada machine learning dan memudahkan para
developers dalam membuat dan menciptakan aplikasi berbasis machine learning
(www.tensorflow.com)
Gambar 2.27 Logo Tensorflow
(Sumber : https://www.tensorflow.org/)
Keunggulan tensorflow adalah :
• Membangun model yang mudah dengan menggunakan API berstandar tinggi
seperti Keras yang dapat mengeksekusi lebih baik dan membuat iterasi model
secara langsung dengan debugging yang mudah.
• Dapat membuat machine learning yang kuat dimana saja karena proses
pelatihan model dapat dilakukan di cloud, on-prem, browser atau di perangkat
apapun dengan bahasa yang digunakan pengguna.
• Eksperimen yang kuat untuk penelitian karena arsitekturnya sederhana dan
fleksibel dalam mengambil ide-ide baru dari konsep ke kode, ke model yang
canggih dan cepatnya publikasi.
2.17 Keras
Keras adalah API neural network berlevel tinggi yang ditulis dengan bahasa
pemrograman Python. Keras dapat berjalan diatas Tensorflow, CNTK, atau Theano
sebagai backend. Keras dapat digunakan dalam penelitian deep learning yang
memerlukan pembuatan prototipe yang mudah dan cepat dan user friendly. Selain itu
Keras juga mendukung komputasi pada Convolutional Neural Network dan Reccurent
46
UIN Syarif Hidayatullah Jakarta
Neural Network ataupun kombinasi dari keduanya. Keras dapat berjalan dengan baik
pada CPU maupun GPU. Keras kompatibel dengan Python versi 2.7 sampai versi 3.6
(Keras.io.).
Gambar 2.28 Logo Keras
( Sumber : https://keras.io)
Prinsip Keras adalah sebagai berikut :
• User friendliness, Keras merupakan API yang didesain untuk manusia, bukan
mesin sehingga mengutamakan pada user experience dengan menawarkan API
yang konsisten dan sederhana, meminimalkan jumlah tindakan pengguna dan
cepat tanggap dalam memberikan feedback jika terjadi eror.
• Modularity yaitu dapat menggabungkan modul-modul individual menjadi
sebuah modul.
• Easy extensibility adalah prinsip Keras yang mana pengguna dapat dengan
mudah untuk menambahkan modul baru atau ekstensi modul baru.
• Work in Python. Keras berjalan menggunakan bahasa pemrograman Python.
2.18 Google Colaboratory
Google colabolatory atau Google colab merupakan sebuah tools yang
dikeluarkan oleh Google. Tools ini memberikan fasilitas kepada para peneliti atau
orang yang ingin mempelajari dan mengolah data menggunakan machine learning
maupun deep learning, namun memiliki keterbatasan perangkat untuk melakukan
komputasi. Google Colab menyediakan layanan GPU gratis sebagai backend
komputasi yang dapat digunakan selama 12 jam.
Google Colab dibuat diatas environment Jupyter sehingga mirip dengan Jupyter
Notebook. Penggunaannya pun hampir sama dengan Jupyter Notebook hanya saja
47
UIN Syarif Hidayatullah Jakarta
berbeda dalam hal media penyimpanannya. Media penyimpanan pada Google Colab
adalah Google Drive dan tools ini berjalan pada sistem Cloud. Dengan menggunakan
Google Colab, kita dapat membuat suatu aplikasi berbasis deep learning dengan
berbagai library seperti Tensorflow, Keras, Pytorch maupun OpenCV (Digimi, 2018).
2.18.1 Cara Penggunaan Google Colab
Cara menggunakan Google Colab adalah sebagai berikut (Digimi, 2018):
1. Install Colab
Pertama-tama kita perlu mengkoneksikan Google Drive kita dengan Google
Colab dengan menambahkan ekstensi baru ke Google Drive. Caranya dengan
klik tombol New > More > Connect more apps lalu tuliskan “colab” pada
kolom search kemudian klik tombol connect.
Gambar 2.29 Koneksi Google Colab dengan Gdrive
(Sumber: https://imamdigmi.github.io/post/google-colab-gratis-untuk-belajar-deep-learning/ )
2. Setelah mengkoneksikan Google Drive dengan Google Colab, maka kita sudah
bisa menggunakan Google Colab. Pertama-tama kita perlu membuat notebook
dengan cara Klik kanan > More > Colaboratory.
48
UIN Syarif Hidayatullah Jakarta
Gambar 2.30 Membuat Google Colab dari Gdrive
( Sumber : https://imamdigmi.github.io/post/google-colab-gratis-untuk-belajar-deep-learning/)
Atau kita dapat membuat notebook langsung dengan mengakses
https://colab.research.google.com/ tetapi sebelumnya kita harus sudah login
Gmail yang terkoneksi dengan Google Colab. Setelah itu kita bisa mengklik
pilihan NOTEBOOK PYTHON 3 BARU.
Gambar 2.31 Tampilan awal Google Colab
( Sumber : https://imamdigmi.github.io/post/google-colab-gratis-untuk-belajar-deep-learning/)
49
UIN Syarif Hidayatullah Jakarta
Maka tampilan awal notebook seperti berikut :
Gambar 2.32 Tampilan google colab notebook
( Sumber : https://imamdigmi.github.io/post/google-colab-gratis-untuk-belajar-deep-learning/)
3. Jika kita ingin menggunakan GPU untuk komputasinya, maka bisa kita atur
dengan klik menu Edit > Notebook settings kemudian ganti “Hardware
accelerator” menjadi GPU. Kemudian klik save.
4. Setelah itu, koneksikan Google Drive dengan Google Colab dengan
menuliskan kode berikut pada sel Google Colab :
Gambar 2.33 Kode untuk koneksi Google Drive ke Google Colab
(Sumber: https://medium.com/@endaputri240899/cara-menghubungkan-google-colab-dengan-google-
drive-254b3d358e55)
5. Kemudian klik button play pada sel, maka kode akan diproses. Setelah itu
muncul permintaan kode verifikasi seperti gambar berikut :
50
UIN Syarif Hidayatullah Jakarta
Gambar 2.34 Cara koneksi Google Drive ke Google Colab
(Sumber: https://medium.com/@endaputri240899/cara-menghubungkan-google-colab-dengan-google-
drive-254b3d358e55
Kemudian klik link tersebut untuk mengambil kode verifikasi. Setelah itu
masukkan kode verifikasinya. Setelah dimasukan kode verifikasi maka
tampilannya akan seperti berikut :
Gambar 2.35 Tampilan setelah Google Drive dan Google Colab terhubung
(Sumber: https://medium.com/@endaputri240899/cara-menghubungkan-google-colab-dengan-google-
drive-254b3d358e55)
6. Contoh koding sederhana menggunakan Google Colab :
51
UIN Syarif Hidayatullah Jakarta
Gambar 2.36 Contoh Program Sederhana
2.19 Metode Pengumpulan data
Metode pengumpulan data adalah Teknik atau cara yang digunakan penulis
untuk mengumpulkan data (Sudaryono, 2014).
2.19.1 Studi Pustaka
Studi pustaka adalah kegiatan mengkaji secara teori suatu referensi yang
berkaitan dengan permasalahn yang sedang diteliti. Suatu penelitian tidak terlepas dari
studi pustaka karena dalam penelitian diperlukan literatur-literatur ilmiah (Sudaryono,
2014).
2.19.2 Observasi
Observasi adalah kegiatan mengamati secara langsung objek-objek terkait
penelitian. Objek penelitian dapat berbentuk perilaku, tindakan manusia, fenomena,
maupun proses kerja (Sudaryono, 2014).
2.20 Metode Simulasi
Menurut Sridadi (2009) yang dikutip dari skripsi (Rahman, Agustin, & Rozy,
2019), metode simulasi adalah metode yang digunakan untuk simulasi yaitu mengikuti
tingkah laku nyata dari suatu sistem tertentu.
Menurut (Madani et al., 2010) yang juga dikutip dari skripsi (Rahman et al.,
2019) metode simulasi mempunyai beberapa tahapan. Tahapan-tahapan tersebut
52
UIN Syarif Hidayatullah Jakarta
biasanya diatur dalam suatu siklus. Siklus pada tahapan-tahapan metode simulasi dapat
menyesuaikan dengan kompleksitas sistem sehingga tahapan-tahapan tersebut tidaklah
selalu berurutan, berulang maupun berlawanan arah. Terkadang, beberapa tahapan
dapat dilangkahi oleh tahapan berikutnya tergantung dengan rumit atau tidaknya sistem
tersebut. Berikut ini merupakan tahap-tahap dalam metode simulasi menurut (Madani
et al., 2010) :
1. Formulasi masalah (Problem Formulation)
Dalam proses simulasi diawali oleh masalah yang membutuhkan suatu pemecahan
atau pemahaman. Contohnya seperti sebuah perusahaan kargo yang ingin
mengembangkan suatu strategi baru kepada truk yang digunakan untuk pengiriman.
Selain contoh itu juga seperti astronom yang berusaha untuk memahami asal mula
terbentuknya nebula. Pada tahap ini diperlukan pemahaman tingkah laku sistem yang
mengatur operasi sistem sebagai objek dalam percobaan. Kemudian barulah
menganalisis berbagai cara penyelesaian masalah dengan menginvestigasi hasil
sebelumnya menggunakan masalah yang sama. Cara yang paling diterima wajib
dipilih. (tahap ini tidak dapat dihilangkan karena dapat mengakibatkan pemilihan cara
penyelesaian masalah yang salah).
2. Konseptual Model (Conceptual Model)
Tahapan ini terdiri dari deskripsi tingkat tinggi dari struktur dan tingkah laku suatu
sistem dan mengenali semua objek dengan atribut dan antarmuka sistem. Selain itu,
variable state harus ditentukan, bagaimana mereka saling berhubungan dan memilih
yang penting untuk penelitian. Dalam tahap ini juga dinyatakan aspek-aspek kunci dari
requirement. Fitur yang penting perlu dijabarkan selama definisi model konseptual.
Selain itu, kita juga harus mendokumentasikan informasi non-fungsional, contohnya
seperti perubahan di masa yang akan datang, tingkah laku non-intuitive atau non-
formal dan hubungannya dengan lingkungan.
3. Pengumpulan Data Masukan dan Keluaran (Collection Input and Output Data)
53
UIN Syarif Hidayatullah Jakarta
Dalam tahap ini, untuk memperoleh data input/output kita harus mempelajari
sistem. Untuk mempelajari sistem, kita harus mengamati dan mengumpulkan atribut
yang sudah ditentukan pada tahap sebelumnya. Selain itu, dalam tahapan ini penting
untuk melakukan pemilihan ukuran sampel yang valid secara statistik dan format data
yang dapat diproses menggunakan komputer. Kemudian barulah ditentukan atribut
yang stokastik dan deteministik. Pada beberapa kasus, tidak ada data yang dapat
dikumpulkan (biasanya karena sistem belum ada). Sehingga untuk kasus tersebut, kita
perlu mencoba untuk mendapatkan set data dari sistem yang sama (jika ada). Opsi lain
adalah dengan menggunakan pendekatan stokastik untuk mendapatkan data yang
dibutuhkan melalui generasi nomor acak.
4. Pemodelan (Modelling)
Pada tahap pemodelan, kita perlu membangun representasi sistem secara detail
berdasarkan pada model konseptual dan pengumpulan data masukan/keluaran. Model
dibangun dari mendefinisikan objek, atribut, dan metode menggunakan paradigma
yang dipilih. Pada titik ini dibuatlah spesifikasi model, termasuk set persamaan yang
mendefinisikan tingkah laku dan struktur. Setelah definisi ini terselesaikan, kita harus
membangun struktur awal model (mungkin berkaitan dengan variable sistem dan
metrik kinerja). Dalam menjelaskan setiap asumsi dan penyederhanaan serta
pengumpulan atribut ke kerangka entitas (Entity Framework) diperlukan kehati-hatian.
5. Simulasi (Simulation)
Untuk tahap simulasi, kita harus menentukan mekanisme untuk menerapkan model
(banyak kasus yang menggunakan komputer dan bahasa pemrograman dan tools yang
mendukung) dan model simulasi yang dibangun. Dalam tahapan ini mungkin juga
menentukan algoritma dan menerjemahkannya ke dalam program. Selain itu, kita juga
harus membangun model kerangka entitas (Entity Framework) untuk proses simulasi
selama tahap ini.
6. Verifikasi dan Validasi (Verification and Validation)
Ada tiga model yang dibangun dalam tahapan sebelumnya, diantaranya : model
konseptual (spesifikasi), model sistem (desain) dan model simulasi (program yang
54
UIN Syarif Hidayatullah Jakarta
dapat dieksekusi). Dalam tahap ini kita perlu memverifikasi dan memvalidasi model-
model tersebut. Verifikasi berkaitan dengan konsistensi internal pada model-model
tersebut. Sedangkan validasi berfokus pada korespondensi antara model dengan
kenyataan, yakni hasil simulasi yang sesuai dengan sistem yang dianalisis dan model
yang dibangun sudah benar.
7. Eksperimentasi (Experimentation)
Model simulasi harus dijalankan dan mengikuti tujuan yang dinyatakan dalam
model konseptual. Dalam tahap ini, dilakukan evaluasi keluaran dari simulator
menggunakan korelasi statistik gua menentukan tingkat presisi untuk metrik kinerja.
Tahap ini diawali dengan desain percoban menggunakan teknik-teknik yang berbeda.
Teknik-teknik tersebut mencangkup analisis sensitivitas, optimasi dan seleksi
(dibandingkan dengan sistem alternatif.
8. Analisis Keluaran (Output Analysis)
Dalam tahap ini, dilakukan analisis terhadap keluaran simulasi untuk memahami
tingkah laku sistem. Keluaran ini digunakan untuk mendapatkan respon dari tingkah
laku sistem yang asli. Penggunaan alat visualisasi dapat membantu proses tersebut.
2.21 Studi Literatur Sejenis
Dalam penelitian ini, penulis menggunakan literatur penelitian sejenis dengan
penelitian yang sudah ada sebelumnya. Hal ini dimaksudkan untuk membandingkan
studi literatur tersebut. Berikut ini tabel literatur sejenis:
55
UIN Syarif Hidayatullah Jakarta
Tabel 2.1 Perbandingan Literatur Sejenis
Penulis (Soh, 2016) (Arnav et al., 2017) (Singh & Sharma,
2018)
(Al-muzaini et al.,
2018)
(Aneja et al., 2018)
Judul
Penelitian
Learning CNN-LSTM
Architectures for
Image Caption
Generation
Image Captioning
Using Deep Learning Image captioning
using Deep Neural
Networks
Automatic
Arabic Image
Captioning using
RNN-LSTM Based
Language Model and
CNN
Convolutional Image
Captioning
Dataset yang
digunakan
MS COCO Flickr 8K Flickr 8K Flickr 8K, MS
COCO
MS COCO
Metode
ekstrak fitur
gambar
GoogleNet VGG-16, VGG-19,
ResNet dengan
menghapus dense
layer terakhir
Model 1: VGG-16,
Model 2 : 4 layer
CNN
VGG-16 CNN
Metode
generate
caption
Gabungan CNN
dengan LSTM
Gabungan CNN dan
LSTM
Gabungan CNN
dan LSTM
Gabungan CNN
dan LSTM untuk
model bahasa
CNN, LSTM, CNN
+ LSTM with
attention
Kelebihan Memperhatikan fitur
semantik dari
deskripsi gambar yang
dihasilkan
Deskripsi gambar
yang dihasilkan
mendeskripsikan
gambar cukup baik
Hasil generate
deskripsi gambar dari
kedua model tidak
berbeda jauh. Model
2 berhasil
mendeksripsikan
gambar dengan tepat
Deskripsi gambar
yang dihasilkan
berbahasa arab
Akurasi Hasil
prediksi kata dari
CNN lebih baik
daripada LSTM
56
UIN Syarif Hidayatullah Jakarta
Kekurangan • Deskripsi gambar
yang dihasilkan
kurang
merepresentasikan
keterangan gambar
secara detail
• Bahasa pada
deskripsi gambar
yang dihasilkan
masih default dari
dataset yang
digunakan
• Beberapa hasil
deskripsi gambar
bersifat ambigu
• Bahasa pada
deskripsi gambar
yang dihasilkan
masih default dari
dataset yang
digunakan
• Model 2 Gagal
menggambarkan
fitur, salah
memprediksi
fitur-fitur kecil
dan
mendeskripsikan
hubungan yang
tepat antara
gambar dengan
deskripsinya.
• Bahasa pada
deskripsi gambar
yang dihasilkan
masih default dari
dataset yang
digunakan.
Beberapa bagian dari
dataset diterjemahkan
secara manual oleh
manusia
• Akurasi hasil
klasifikasi
gambar
menggunakan
LSTM rendah,
Pada pendekatan
LSTM, caption
yang dihasilkan
pada timestep x
hampir mirip
dengan caption
pada x-1.
• Bahasa pada
deskripsi gambar
yang dihasilkan
masih default dari
dataset yang
digunakan
Berdasarkan studi literatur yang dipaparkan dalam tabel 2.1, penulis melakukan penelitian untuk generate image
captioning menggunakan metode Convolutional Neural Network dan Long Short Term Memory pada gambar lalu lintas
kendaraan berbahasa Indonesia.
57
UIN Syarif Hidayatullah Jakarta
3 BAB III
METODOLOGI PENELITIAN
3.1 Metode Pengumpulan Data
3.1.1 Studi Pustaka
Salah satu metode pengumpulan data yang penulis lakukan adalah studi
pustaka. Studi pustaka penulis lakukan dengan kegiatan yang berhubungan dengan
metode pengumpulan data pustaka seperti membaca, mencatat serta mengolah
informasi yang berkaitan dengan penelitian. Data dan informasi yang penulis
kumpulkan berupa 21 Jurnal, 13 Buku, 7 situs online. Sumber-sumber tersebut
diperlukan penulis untuk membantu penyelesaian pada bab pendahuluan, landasan
teori dan metode penelitian.
3.1.2 Observasi
Penulis melakukan observasi di jalan Petogogan 1, Jakarta Selatan dan Jalan
Margonda Raya No.1, Depok untuk mengambil data berupa foto kendaraan untuk
digunakan sebagai pembuatan dataset gambar. Penulis mengambil data dari tanggal 20
Februari 2019- 5 Maret 2019 pada pukul 13.00 – 15.00.
3.2 Metode Simulasi
Dalam penelitian ini, penulis menggunakan metode simulasi. Berikut ini
merupakan langkah-langkah metode simulasi :
3.2.1 Formulasi Masalah (Problem Formulation)
Pada tahap ini, penulis melakukan identifikasi masalah berdasarkan hasil
penelitian sebelumnya yang berkaitan dengan metode Convolutional Neural Network
dan Long Short Term Memory untuk generate image captioning (Tabel 2.1). Pada
penelitian (Soh, 2016), (Arnav et al., 2017) dan (Singh & Sharma, 2018), bahasa pada
deskripsi gambar (image caption) yang dihasilkan masih default dari dataset yang
digunakan.
58
UIN Syarif Hidayatullah Jakarta
3.2.2 Konseptual Model (Conseptual Model)
Pada tahap ini, penulis membahas konsep model pada penelitian ini. Dalam
penelitian ini akan melakukan pemodelan untuk generate deskripsi gambar lalu lintas
kendaraan dengan arsitektur model gabungan Convolutional Neural Network dan Long
Short Term Memory yang berbeda. Hasil dari ekstraksi fitur gambar mempengaruhi
input pada model yang akan dibuat dengan gabungan Long Short Term Memory,
sehingga akan mempengaruhi hasil akurasi model. Pada tahap ini dipaparkan proses
ekstraksi fitur pada dataset gambar menggunakan Convolutional Neural Network yaitu
VGG-16 dan ResNet50. Keluaran dari model berupa skor BLEU dan hasil generate
deskripsi gambar.
3.2.3 Pengumpulan Data Input/Output (Collection Input/Output Data)
Pada tahap ini, penulis melakukan pengumpulan data masukan yang
dibutuhkan untuk generate image captioning yaitu data berupa gambar kendaraan yang
peneliti kumpulkan dari gambar kendaraan-kendaraan yang melintas di Jalan
Petogogan 1, Jakarta Selatan dan Jalan Margonda Raya No.1, Depok. Data gambar
yang berhasil dikumpulkan sebanyak 300 gambar setelah dilakukan pemilihan gambar-
gambar yang berkualitas baik. Sedangkan untuk data deskripsi dibuat berdasarkan
deskripsi pada setiap gambar dengan mengikuti aturan dataset Flickr. Setiap gambar
diberi 3 deskripsi yang berbeda namun tetap mendeskripsikan gambar tersebut. Setelah
pembuatan dataset gambar, dilakukan proses ekstraksi fitur dan cleansing pada dataset
tersebut.
Data gambar dan deskripsi dibagi menjadi data latih, data validasi, dan data uji
dengan data latih sebanyak 210 data gambar dan deskripsi, data validasi sebanyak 30
data gambar dan deskripsi dan data uji sebanyak 60 data gambar dan deskripsi.
kemudian data masukan tersebut dibuat model dengan metode gabungan Convolutional
Neural Network dan Long Short Term Memory. Keluaran dari model tersebut berupa
skor BLEU dan deskripsi gambar.
59
UIN Syarif Hidayatullah Jakarta
3.2.4 Pemodelan (Modelling)
Pada tahap ini penulis melakukan pembuatan model untuk generate deskripsi
gambar lalu lintas kendaraan berbahasa Indonesia.
3.2.5 Simulasi (Simulation)
Pada tahap ini, penulis melakukan simulasi dengan membuat model untuk
generate deskripsi gambar lalu lintas kendaraan berbahasa Indonesia menggunakan
hasil ekstraksi fitur gambar yang berbeda.
3.2.6 Verifikasi dan Validasi (Verification and Validation)
Pada tahap verifikasi dilakukan pengulasan kembali mengenai kegiatan yang
dilakukan pada tahapan-tahapan sebelumnya apakah sudah sesuai dengan yang
diharapkan dan saling berhubungan. Sedangkan validasi dilakukan dengan menghitung
nilai loss dan akurasi serta skor BLEU dari model-model yang dihasilkan. Hal ini
bertujuan untuk melihat seberapa baik kinerja masing-masing model.
3.2.7 Eksperimentasi (Eksperimentation)
Pada tahap ini, penulis melakukan eksperimen dengan mencoba setiap model
yang sudah dihasilkan pada tahap sebelumnya untuk meng-generate deskripsi gambar
menggunakan gambar yang tidak terdapat pada dataset latih, dataset validasi dan
dataset uji.
3.2.8 Analisis Output (Output Analysis)
Penulis melakukan analisa terhadap output – output berdasarkan skenario yang
dilakukan yaitu menghitung skor BLEU dari masing-masing model. Selain itu juga
pada tahap ini akan ditampilkan perbandingan hasil deskripsi gambar yang dihasilkan
dari masing-masing model.
60
UIN Syarif Hidayatullah Jakarta
3.3 Kerangka Berpikir Penelitian
Studi Pustaka/
Literatur
Mulai
Formulasi
Masalah
Perumusan
masalah
Pengkonsepan
Model
Menentukan
konsep penelitian
Pengumpulan
data input/
output
Mengumpulkan
data input dan
menetukan data
output
Modeling
Membuat model
genenrate
deskripsi gambar
SimulasiVerifikasi dan
validasi
Melakukan
simulasi
terhadap
model
Melakukan
verifikasi dan
validasi
Kesimpulan dan
saran
Observasi
Selesai
Eksperimen Analisis
Output
Melakukan
percobaan
terhadap model
Menghitung nilai
loss akurasi, dan
skor BLEU
model
Gambar 3. 1 Kerangka berpikir penelitian
61
UIN Syarif Hidayatullah Jakarta
4 BAB IV
IMPLEMENTASI
4.1 Formulasi Masalah (Problem Formulation)
Berdasarkan penelitian sebelumnya yang sudah dipaparkan pada Sub Bab 3.2.1,
diperoleh kesimpulan bahwa hasil deskripsi gambar menggunakan metode gabungan
Convolutional Neural Network dan Long Short Term Memory yang dilakukan pada
penelitian-penelitian tersebut merupakan default dari dataset yang digunakan yakni
masih berbahasa Inggris.
Pada penelitian ini penulis menggunakan metode gabungan Convolutional
Neural Network dan Long Short Term Memory untuk generate image captioning
menggunakan data gambar lalu lintas kendaraan dan caption yang dihasilkan
berbahasa Indonesia.
4.2 Konseptual Model (Conseptual Model)
Pada tahap ini, penulis membuat konsep alur yang akan diterapkan untuk
pembuatan deskripsi gambar (generate image captioning) lalu lintas kendaraan
berbahasa Indonesia menggunakan metode gabungan Convolutional Neural Network
dan Long Short Term Memory. Pada penelitian ini, jenis Convolutional Neural Network
digunakan untuk proses ekstraksi fitur gambar pada dataset gambar.adalah VGG-16
dan ResNet50, sedangkan Long Short Term Memory digunakan sebagai penghasil
urutan deskripsi gambar.
Proses ekstraksi fitur dataset gambar lalu lintas kendaraan dilakukan
menggunakan server Google Colaboratory dengan pengaturan runtime GPU yang
terhubung dengan Google Drive sebagai media penyimpanan. Penulis melakukan
proses ekstraksi fitur gambar dengan mengekstraksi seluruh gambar pada dataset
gambar menjadi vektor berukuran tetap. Proses ekstraksi fitur dataset gambar
dilakukan menggunakan algoritma Convolutional Neural Network yaitu VGG-16 dan
62
UIN Syarif Hidayatullah Jakarta
ResNet50. Hasil ekstraksi fitur gambar dari VGG-16 akan digunakan untuk membuat
Model-1 dan ResNet50 untuk membuat Model-2. Berikut ini merupakan alur pada
tahapan ekstraksi fitur pada dataset gambar adalah sebagai berikut :
Mulai
Input dataset
gambar
Load Model
Ekstraksi Fitur
Hapus 1 lapisan terakhir
Model Ekstraksi Fitur
Ekstrak fitur setiap gambar di
folder datasetFor image_id=1 sampai image_id>=300
Load gambar berdasarkan id
Resize piksel gambar menjadi
224x224
Reshape gambar
Preprocessing gambar
Ambil fitur gambar
Simpan fitur gambar
Print “Fitur gambar
berdasarkan Id
gambar”
Print “Summary
model”
Fitur.pkl
selesai
Buka Google Colab
Koneksikan dengan Google
Drive
Load library keras yang
diperlukan
Gambar 4. 1 Flowchart ekstrak fitur gambar
63
UIN Syarif Hidayatullah Jakarta
Output dari proses ekstraksi fitur ini adalah sebuah file berekstensi Pickle (.pkl)
yang akan digunakan dalam membuat model untuk generate image captioning.
4.3 Pengumpulan Data Masukan/Keluaran (Collection Input/Output Data)
Dalam tahapan ini, penulis melakukan pengumpulan data masukan dan keluaran.
Data masukan pada simulasi ini adalah kumpulan (dataset) gambar lalu lintas
kendaraan dan deskripsi gambar. Untuk mengumpulkan data gambar lalu lintas
kendaraan, penulis melakukan pengambilan data gambar kendaraan yang melintas.
Setelah data terkumpul, penulis melakukan penyortiran gambar dengan kualitas baik
secara manual. Data gambar yang berkualitas baik adalah gambar tidak blur serta
objek-objek pada gambar terlihat jelas. Gambar-gambar yang terpilih tersebut nantinya
akan digunakan untuk membuat dataset gambar. Contoh gambar yang berkualitas baik
adalah sebagai berikut :
Gambar 4. 2 Contoh gambar yang berkualitas baik
Setelah melakukan penyortiran gambar-gambar yang berkualitas baik, kemudian
gambar-gambar tersebut dikumpulkan dan dilakukan preprocessing untuk dijadikan
dataset gambar. Berikut ini merupakan langkah-langkah dalam membuat dataset
gambar lalu lintas kendaraan :
64
UIN Syarif Hidayatullah Jakarta
1) Untuk dataset gambar, penulis melakukan pemotongan gambar agar gambar lebih
terfokus pada kendaraan yang melintas. Contoh gambar yang belum di pemotongan
gambar terdapat pada Gambar 4.2, sedangkan contoh gambar setelah dilakukan
pemotongan seperti gambar berikut :
Gambar 4. 3 Contoh gambar yang sudah dipotong
2) Setelah dilakukan pemotongan gambar, penulis mengubah ukuran piksel 209
gambar pada dataset dengan ukuran 500x400px dan 91 gambar dengan ukuran
400x500px. Hal ini dilakukan agar pada proses ekstraksi fitur tidak terlalu berat
dan memakan waktu yang lama.
Setelah proses pembuatan dataset gambar dilakukan, penulis melakukan
pembuatan dataset deskripsi gambar lalu lintas kendaraan menggunakan bahasa
Indonesia. Adapun langkah-langkah dalam pembuatan dataset deskripsi gambar
lalu lintas kendaraan menggunakan bahasa Indonesia adalah sebagai berikut :
1) Dataset deskripsi gambar (caption) dibuat berdasarkan situasi pada setiap
dataset gambar. Setiap gambar diberi identifier (ID) berupa nama file gambar.
Setiap identifier diberi 3 token deskripsi. Contoh gambar dan deskripsinya
sebagai berikut :
65
UIN Syarif Hidayatullah Jakarta
Gambar 4. 4 Contoh dataset gambar
Deskripsi gambar :
159.jpg#0 Beberapa pengendara motor berada di
belakang truk
159.jpg#1 Mobil berwarna silver melaju di samping
dua pengendara motor
159.jpg#2 Beberapa pengendara motor melaju di
belakang sebuah truk
Keterangan :
159.jpg = nama file foto atau identifier gambar
#0 = token deskripsi pertama
#1 = token deskripsi kedua
#2 =token deskripsi ketiga
Setelah pembuatan dataset gambar dan dataset deskripsi gambar, penulis
melakukan proses preprocessing pada dataset deskripsi gambar (caption) diantaranya
adalah ekstraksi fitur dan cleansing pada dataset deskripsi gambar dengan beberapa
langkah sebagai berikut :
66
UIN Syarif Hidayatullah Jakarta
1. Ekstraksi deskripsi gambar
Pada tahap ekstraksi deskripsi gambar, penulis melakukan pemetaan
setiap deskripsi gambar berdasarkan identifier gambar (ID gambar). Proses
pemetaan dilakukan dengan memisahkan deskripsi dengan token-tokennya
setelah itu mengubah token menjadi string. Proses ini dilakukan pada seluruh
dataset deskripsi gambar.
2. Cleansing dataset deskripsi gambar
Kegiatan ini dilakukan setelah proses ekstraksi deskripsi gambar. Pada
tahap ini, dilakukan proses pembersihan deskripsi gambar diantaranya seperti
tokenisasi, mengubah seluruh deskripsi menjadi huruf kecil, menghapus tanda
baca pada deskripsi dan menghapus penomoran pada token deskripsi. Berikut
ini merupakan alur kegiatan yang dilakukan pada tahap preprocessing deskripsi
gambar :
67
UIN Syarif Hidayatullah Jakarta
Mulai
Dataset deskripsi
gambar (caption)
Load ke memory
Sistem membaca dataset deskripsi
gambar sebagai teks
Mapping setiap deskripsi ke gambar
berdasarkan id gambar
Load dataset deskripsi
Split deskripsi perbaris dan
pisahkan token
Jika panjang urutan deskripsi
perbaris <2
Ubah token pertama menjadi id
gambar dan token selanjutnya
menjadi deskripsi gambar
Hapus nama file dataset deskripsi
Ubah token deskripsi menjadi string
Semua id gambar sudah ter-
mapping?
Buat list id gambar yang
belum ter-mapping
Simpan semua deskripsi gambar
yang sudah ter-mapping
sudah
belum
sudah
belum
Print “Jumlah
deskripsi foto yang
dimuat”
Membuat tabel untuk menghapus tanda
baca pada deskripsi
List deskripsi i= urutan
deskripsi, i++
Tokenisasi deskripsi
Ubah deskripsi menjadi
menjadi huruf kecil
Hapus tanda baca pada
deskripsi
Hapus penomoran pada token
Simpan deskripsi yang sudah
dibersihkan
Ubah seluruh deskripsi menjadi kosakata
Print “total kosakata
pada seluruh deskripsi”
Print “ kosakata”
Simpan deskripsi bersih
deskripsi.txt
Selesai
Gambar 4. 5 Alur ekstraksi fitur deskripsi dan cleansing
68
UIN Syarif Hidayatullah Jakarta
Sedangkan, untuk data keluaran dari simulasi ini adalah :
1. Deskripsi aktual dan prediksi dari model yang dihasilkan
2. Skor BLEU merupakan tingkat akurasi dari deskripsi yang dihasilkan. Skor
BLEU bernilai antara 0 hingga 1.
3. Hasil deskripsi gambar yang di-generate menggunakan model yang akan
dihasilkan pada tahapan selanjutnya.
4.4 Pemodelan (Modelling)
Dalam tahap ini, penulis membuat model untuk generate deskripsi gambar lalu
lintas berbahasa Indonesia. Proses membuat model dilakukan menggunakan server
Google Colaboratory dengan pengaturan runtime GPU yang terhubung dengan Google
Drive sebagai media penyimpanan. Pemodelan dilakukan dengan menggabungkan
output vektor dari proses ekstraksi fitur gambar sebagai input dalam pemodelan
menggunakan Long Short Term Memory. Untuk membuat model, dataset dibagi
menjadi dataset latih, dataset validasi dan dataset uji dengan perbandingan 70:10:20
dari jumlah total 300 data. Sehingga jumlah dataset uji berjumlah 210 data, dataset
validasi berjumlah 30 data, dan dataset latih berjumlah 60 data. Model dibuat
menggunakan dataset latih dan dataset validasi. Selain itu juga menggunakan hasil
ekstraksi fitur gambar, deskripsi bersih yang sudah dipaparkan pada sub bab 4.3.
Model yang dibuat akan menghasilkan teks deskripsi gambar. Teks deskripsi
tersebut akan menghasilkan satu kata setiap kali. Urutan kata-kata yang dihasilkan
sebelumnya akan digunakan sebagai input. Oleh karena itu dibutuhkan kata pertama
untuk memulai proses pembuatan deskripsi dan kata terakhir sebagai penanda akhir
dari teks deskripsi. Kata pertama ditandai dengan “startseq” dan kata terakhir akan
ditandai dengan “endseq”. Token startseq dan endseq akan ditambahkan kedalam
deskripsi yang akan dimuat. Contoh proses sequence kata-kata pada deskripsi
diilustrasikan pada tabel berikut :
69
UIN Syarif Hidayatullah Jakarta
Tabel 4. 1 Contoh proses sequence deskripsi
X1 X2 (urutan kata) Y (kata)
Gambar Startseq Pengendara
Gambar Startseq, pengendara motor
Gambar Startseq, pengendara, motor melaju
Gambar Startseq, pengendara, motor, melaju di
Gambar Startseq, pengendara, motor, melaju, di depan
Gambar Statrseq, pengendara, motor, melaju, di, depan mobil
Gambar Startseq, pengendara, motor, melaju, di, depan, mobil berwarna
Gambar Startseq, pengendara, motor, melaju, di, depan, mobil,
berwarna
merah
Gambar Startseq, pengendara, motor, melaju, di, depan, mobil,
berwarna, merah
endseq
Pada penelitian ini, model dibagi menjadi 3 bagian, yaitu:
1. Ekstraktor fitur gambar. Bagian ini merupakan bagian untuk mengekstrak
fitur gambar seperti yang sudah dipaparkan dalam subbab 4.2.
2. Sequence processor. Bagian ini merupakan lapisan embedding untuk
memproses teks masukan, selain itu bagian ini juga merupakan lapisan dari
Long Short Term Memory (LSTM).
3. Decoder. Bagian ini merupakan gabungan dari ekstraktor fitur gambar dan
keluaran sequence processor yaitu vektor dengan panjang tetap. Keduanya
kemudian digabungkan dan diproses oleh lapisan Dense untuk membuat
prediksi caption.
Berikut ini merupakan alur dalam pembuatan model :
70
UIN Syarif Hidayatullah Jakarta
Mulai
Import library yang
dibutuhkan
Load dataset latih dan validasi
ke memory
Model ekstrak fitur
Model sequence
Model decoder
Compile model
Buat generator untuk
fitting Model
Buat tokenizer dari
dataset latih
Simpan tokenizer
Fitting model
Model summary
Print “Akurasi,
loss model”
Model.h5
selesai
Model plot
Load list id_gambar
Load deskripsi bersih ke
memory
Pisahkan id_gambar dengan
deskripsi
Id_gambar ada di
dataset?
Wrap deskripsi per-token
(startseq+desc+endseq)
Simpan deskripsi
Load ekstrak fitur gambar
Pisahkan deskripsi
perbaris/token
Ubah kamus deskripsi bersih
menjadi list deskripsi
Ubah kamus deskripsi bersih
menjadi string
Tokenisasi deskripsi
Buat sequence kata input dan
output dari list deskripsi
gambar
Hitung maksimal panjang
deskripsi setiap baris
Y
Buat list id
gambar tersebutT
Deskripsi.txt
ekstrakfitur.pkl
Gabungkan model
Tokenizer.pkl
Gambar 4. 6 Alur pembuatan model
4.5 Simulasi (Simulation)
Setelah melakukan pemodelan, pada tahap ini penulis melakukan simulasi
dengan membuat dua model dengan proses ekstraksi fitur gambar yang berbeda.
Simulasi ini dilakukan menggunakan source code. Seperti yang sudah dijelaskan
pada Sub Bab 4.1, penulis menggunakan metode gabungan kedua algoritma yaitu
Convolutional Neural Network dan Long Short Term Memory untuk menghasilkan
71
UIN Syarif Hidayatullah Jakarta
sebuah model yang akan digunakan untuk generate deskripsi gambar (caption).
Model-model yang akan dibuat pada simulasi ini yaitu:
A. Menggunakan hasil ekstraksi fitur gambar dari VGG-16. Nilai input model
diambil dari vektor terakhir dari proses ekstraksi fitur yaitu 4096. Hasil dari
simulasi ini disebut Model-1. Adapun nilai-nilai yang digunakan untuk proses
simulasi untuk Model-1 dipaparkan pada gambar berikut :
Gambar 4. 7 Nilai-nilai yang digunakan pada Model-1
B. Menggunakan hasil ekstraksi fitur gambar dari ResNet50. Nilai input model
diambil dari vektor terakhir hasil proses ekstraksi fitur yaitu 2048. Hasil dari
simulasi ini disebut Model-2. . Adapun nilai-nilai yang digunakan untuk proses
simulasi untuk Model-1 dipaparkan pada gambar berikut :
72
UIN Syarif Hidayatullah Jakarta
Gambar 4. 8 Nilai-nilai yang digunakan pada Model-2
Simulasi dilakukan menggunakan optimizer Adam dengan pelatihan setiap model
sebanyak 10 epoch pada setiap model dengan pengaturan Early Stopping yang akan
memberhentikan proses pelatihan pada epoch tertentu dimana kinerja model membaik
pada dataset validasi. Simulasi dilakukan untuk melihat akurasi dari kedua model.
Berikut ini merupakan summary model-model-model yang dihasilkan pada
tahapan ini :
73
UIN Syarif Hidayatullah Jakarta
Gambar 4. 9 Summary Model Dengan VGG-16 (Model-1)
Gambar 4. 10 Summary Model Dengan RestNet50 (Model-2)
Selain summary model-model yang dihasilkan, berikut ini merupakan arsitekur
dari model-model yang dibuat pada tahapan ini :
74
UIN Syarif Hidayatullah Jakarta
Gambar 4. 11Arsitektur Model Dengan VGG-16 (Model-1)
Gambar 4. 12 Arsitektur Model Dengan ResNet50 (Model-2)
75
UIN Syarif Hidayatullah Jakarta
4.6 Verifikasi dan Validasi (Verification and Validation)
Penjelasan dan pemaparan mengenai verifikasi dan validasi akan dijelaskan pada
BAB V skripsi ini, yaitu bab yang membahas hasil pembahasan
4.7 Eksperimentasi (Eksperimentation)
Penjelasan dan pemaparan mengenai eksperimentasi akan dijelaskan pada BAB
V skripsi ini, yaitu bab yang membahas hasil pembahasan
4.8 Analisis Output (Output Analysis)
Penjelasan dan pemaparan mengenai analisis keluaran akan dijelaskan pada BAB
V skripsi ini, yaitu bab yang membahas hasil pembahasan.
76
UIN Syarif Hidayatullah Jakarta
5 BAB V
HASIL DAN PEMBAHASAN
5.1 Verifikasi dan Validasi (Verification and Validation)
Pada tahap ini, penulis melakukan verifikasi dan validasi dari tahapan-tahapan
yang dilakukan pada bab 4. Verifikasi dilakukan dengan tujuan untuk meyakinkan
bahwa kegiatan yang dilakukan pada tahapan-tahapan tersebut sudah sesuai dengan
yang diharapkan dan saling berhubungan. Penulis melakukan validasi dengan
mengupas kembali setiap tahapan tersebut. Tahap pertama yang dilakukan pada bab 4
adalah formulasi masalah, dimana pada tahapan tersebut dilakukan identifikasi
masalah untuk dirumuskan dalam penelitian sehingga rumusan masalah tersebut dapat
dijadikan suatu pemodelan konsep sebagai upaya pemecahan masalah tersebut. Tahap
kedua adalah pemodelan konsep, dimana pada tahapan ini dilakukan pengkajian
konsep yang terdiri dari input, proses sampai keluaran dari proses pemodelan gambar
lalu lintas berbahasa Indonesia. Tahap ketiga adalah pengumpulan data masukan dan
keluaran, dimana pada tahap ini membahas masukan dan keluaran dari penelitian ini
dengan menjelaskan langkah-langkah apa saja yang penulis lakukan untuk membuat
data masukan hingga menjelaskan data keluaran pada penelitian ini. Tahap keempat
adalah tahap pemodelan, pada tahap ini dilakukan langkah-langkah untuk membuat
model untuk generate deskripsi gambar lalu lintas kendaraan berbahasa Indonesia.
Selanjutnya pada tahap simulasi dilakukan pembuatan model menggunakan hasil
ekstrak fitur gambar yang berbeda namun mengikuti alur yang sama pada tahap
pemodelan. Karena setiap tahapan berpengaruh pada tahapan-tahapan selanjutnya, hal
ini menunjukan bahwa saling berhubungan. Maka dapat disimpulkan bahwa penjelasan
tahapan-tahapan tersebut sudah terverifikasi.
Sedangkan untuk validasi, dilakukan penilaian terhadap kinerja dari model-
model yang dihasilkan pada sub bab 4.5 dengan membandingkan nilai loss dan akurasi
pada masing-masing model. Setelah itu dilakukan pengujian masing-masing model
77
UIN Syarif Hidayatullah Jakarta
menggunakan data uji untuk mendapatkan deskripsi prediksi dengan deksripsi aktual.
Tingkat akurasi dari deskripsi prediksi dan aktual akan dinilai menggunakan skor
BLEU. Hasil keluaran dari kegiatan validasi akan dibahas pada tahapan analisis
keluaran.
5.2 Eksperimen (Eksperimentation)
Pada tahap ini dilakukan proses generate deskripsi pada gambar lalu lintas
kendaraan menggunakan model-model yang dihasilkan. Tahap ini dimulai dengan
melakukan proses ekstraksi fitur gambar yang sama dengan ekstraksi fitur dataset
gambar yakni menggunakan VGG-16 atau ResNet50. Kemudian memasukkan model
yang ingin digunakan, selain itu juga dengan memasukkan tokenizer yang dihasilkan
dari masing-masing model. Pada penulisan ini penulis membandingkan perbedaan
yang terjadi jika kita menggunakan Model-1 atau Model-2 untuk generate deskripsi
gambar lalu lintas berbahasa Indonesia. hasil dari tahapan ini akan dibahas pada bab
analisis keluaran.
5.3 Analisis Keluaran (Output Analysis)
5.3.1 Hasil Nilai Loss dan Akurasi Model
Berdasarkan penjelasan pada sub bab 4.5, ada dua model yang dihasilkan dalam
penelitian ini. Dari kedua model tersebut, dihitung nilai loss dan akurasi pada dataset
latih dan dataset validasi dengan pengujian model sebanyak 10 epoch dengan
pengaturan Early Stopping. Pada Model-1 dan Model-2 pengujian berhenti di epoch
ke-7. Berikut ini merupakan hasil nilai loss dan akurasi dari kedua model :
Tabel 5. 1 Hasil Loss dan Akurasi Model
Model-1
(VGG-16)
Model-2
(ResNet50)
Loss Data Latih 0.87 0.84
Loss Data Validasi 1.04 0.99
Akurasi Data Latih 0.68 0.69
Akurasi Data Validasi 0.63 0.67
78
UIN Syarif Hidayatullah Jakarta
Gambar 5.1 Grafik loss Model-1
Gambar 5.2 Grafik akurasi Model-1
Gambar 5.3 Grafik loss Model-2
79
UIN Syarif Hidayatullah Jakarta
Gambar 5.4 Grafik akurasi Model-2
Berdasarkan hasil loss dan akurasi pada kedua model serta grafik yang sudah
dipaparkan diatas menunjukan bahwa kinerja model yang menggunakan hasil ekstraksi
fitur gambar dengan ResNet50 (Model-2) lebih baik daripada kinerja model yang
menggunakan ekstraksi fitur gambar dengan VGG-16 (Model-1). Hal tersebut
ditunjukan oleh akurasi pada data latih dan data validasi Model-2 yang lebih besar
daripada Model-1 dan loss pada Model-2 lebih kecil daripada loss Model-1.
5.3.2 Hasil Skor BLEU
Berikut ini merupakan beberapa hasil prediksi deskripsi gambar (caption) yang
dihasilkan dari Model-1 dan Model-2 yang dibuat menggunakan dataset uji dan model.
80
UIN Syarif Hidayatullah Jakarta
Tabel 5. 2 Hasil Prediksi Caption dari Model-1
Caption Asli Caption Asli Setelah Diproses Caption Prediksi
231.jpg#0 Mobil berwarna putih
melaju searah dengan pengendara
motor
231.jpg#1 Pengendara motor
melaju searah dengan mobil
231.jpg#2 Sebuah mobil dan
motor melaju searah
[['startseq', 'mobil', 'berwarna', 'putih',
'melaju', 'searah', 'dengan', 'pengendara',
'motor', 'endseq'],
['startseq', 'pengendara', 'motor', 'melaju',
'searah', 'dengan', 'mobil', 'endseq'],
['startseq', 'sebuah', 'mobil', 'dan', 'motor',
'melaju', 'searah', 'endseq']]
startseq
pengendara motor
melaju di samping
truk endseq
232.jpg#0 Seorang pengendara
motor melaju di belakang
pengendara motor yang
berboncengan
232.jpg#1 Pengendara motor
yang berboncengan melaju di
depan seorang pengendara motor
232.jpg#2 Ada dua pengendara
motor melaju searah
[['startseq', 'seorang', 'pengendara',
'motor', 'melaju', 'di', 'belakang',
'pengendara', 'motor', 'yang',
'berboncengan', 'endseq'],
['startseq', 'pengendara', 'motor', 'yang',
'berboncengan', 'melaju', 'di', 'depan',
'seorang', 'pengendara', 'motor', 'endseq'],
['startseq', 'ada', 'dua', 'pengendara',
'motor', 'melaju', 'searah', 'endseq']]
startseq ada dua
pengendara motor
melaju di samping
truk endseq
233.jpg#0 Ada dua pengendara
motor berlawanan arah dengan
mobil berwarna putih
233.jpg#1 Mobil berwarna putih
berlawanan arah dengan beberapa
pengendara motor
233.jpg#2 Ada dua pengendara
motor melaju di depan beberapa
pengendara motor
[['startseq', 'ada', 'dua', 'pengendara',
'motor', 'berlawanan', 'arah', 'dengan',
'mobil', 'berwarna', 'putih', 'endseq'],
['startseq', 'mobil', 'berwarna', 'putih',
'berlawanan', 'arah', 'dengan', 'beberapa',
'pengendara', 'motor', 'endseq'],
['startseq', 'ada', 'dua', 'pengendara',
'motor', 'melaju', 'di', 'depan', 'beberapa',
'pengendara', 'motor', 'endseq']]
startseq mobil
berwarna hitam
berada di
belakang
pengendara motor
endseq
234.jpg#0 Ada dua pengendara
motor melaju di depan pagar
234.jpg#1 Seorang pengendara
motor berada di depan pagar
234.jpg#2 Seorang pengendara
motor melaju di belakang
pengendara motor
[['startseq', 'ada', 'dua', 'pengendara',
'motor', 'melaju', 'di', 'depan', 'pagar',
'endseq'],
['startseq', 'seorang', 'pengendara', 'motor',
'berada', 'di', 'depan', 'pagar', 'endseq'],
['startseq', 'seorang', 'pengendara', 'motor',
'melaju', 'di', 'belakang', 'pengendara',
'motor', 'endseq']]
startseq
pengendara motor
melaju di samping
mobil berwarna
hitam endseq
235.jpg#0 Beberapa pengendara
motor melaju searah dengan
pengendara motor lainnya
235.jpg#1 Beberapa pengendara
motor melaju berlawanan arah
dengan pengendara motor lainnya
235.jpg#2 Beberapa pengendara
motor memakai helm
[['startseq', 'beberapa', 'pengendara',
'motor', 'melaju', 'searah', 'dengan',
'pengendara', 'motor', 'lainnya', 'endseq'],
['startseq', 'beberapa', 'pengendara',
'motor', 'melaju', 'berlawanan', 'arah',
'dengan', 'pengendara', 'motor', 'lainnya',
'endseq'],
['startseq', 'beberapa', 'pengendara',
'motor', 'memakai', 'helm', 'endseq']]
startseq ada dua
pengendara motor
melaju di
belakang mobil
berwarna hitam
endseq
81
UIN Syarif Hidayatullah Jakarta
Tabel 5. 3 Hasil Prediksi Caption dari Model-2
Caption Asli Caption Dataset Asli Setelah Diproses Caption Prediksi
231.jpg#0 Mobil berwarna putih
melaju searah dengan
pengendara motor
231.jpg#1 Pengendara motor
melaju searah dengan mobil
231.jpg#2 Sebuah mobil dan
motor melaju searah
[['startseq', 'mobil', 'berwarna', 'putih',
'melaju', 'searah', 'dengan', 'pengendara',
'motor', 'endseq'],
['startseq', 'pengendara', 'motor', 'melaju',
'searah', 'dengan', 'mobil', 'endseq'],
['startseq', 'sebuah', 'mobil', 'dan', 'motor',
'melaju', 'searah', 'endseq']]
startseq mobil
berwarna putih
berada di samping
pengendara motor
endseq
232.jpg#0 Seorang pengendara
motor melaju di belakang
pengendara motor yang
berboncengan
232.jpg#1 Pengendara motor
yang berboncengan melaju di
depan seorang pengendara motor
232.jpg#2 Ada dua pengendara
motor melaju searah
[['startseq', 'seorang', 'pengendara',
'motor', 'melaju', 'di', 'belakang',
'pengendara', 'motor', 'yang',
'berboncengan', 'endseq'],
['startseq', 'pengendara', 'motor', 'yang',
'berboncengan', 'melaju', 'di', 'depan',
'seorang', 'pengendara', 'motor', 'endseq'],
['startseq', 'ada', 'dua', 'pengendara',
'motor', 'melaju', 'searah', 'endseq']]
startseq ada dua
pengendara motor
melaju di samping
mobil berwarna
putih endseq
233.jpg#0 Ada dua pengendara
motor berlawanan arah dengan
mobil berwarna putih
233.jpg#1 Mobil berwarna putih
berlawanan arah dengan
beberapa pengendara motor
233.jpg#2 Ada dua pengendara
motor melaju di depan beberapa
pengendara motor
[['startseq', 'ada', 'dua', 'pengendara',
'motor', 'berlawanan', 'arah', 'dengan',
'mobil', 'berwarna', 'putih', 'endseq'],
['startseq', 'mobil', 'berwarna', 'putih',
'berlawanan', 'arah', 'dengan', 'beberapa',
'pengendara', 'motor', 'endseq'],
['startseq', 'ada', 'dua', 'pengendara',
'motor', 'melaju', 'di', 'depan', 'beberapa',
'pengendara', 'motor', 'endseq']]
startseq ada dua
pengendara motor
melaju searah
endseq
234.jpg#0 Ada dua pengendara
motor melaju di depan pagar
234.jpg#1 Seorang pengendara
motor berada di depan pagar
234.jpg#2 Seorang pengendara
motor melaju di belakang
pengendara motor
[['startseq', 'ada', 'dua', 'pengendara',
'motor', 'melaju', 'di', 'depan', 'pagar',
'endseq'],
['startseq', 'seorang', 'pengendara', 'motor',
'berada', 'di', 'depan', 'pagar', 'endseq'],
['startseq', 'seorang', 'pengendara', 'motor',
'melaju', 'di', 'belakang', 'pengendara',
'motor', 'endseq']]
startseq ada dua
pengendara motor
melaju di samping
pohon endseq
235.jpg#0 Beberapa pengendara
motor melaju searah dengan
pengendara motor lainnya
235.jpg#1 Beberapa pengendara
motor melaju berlawanan arah
dengan pengendara motor
lainnya
235.jpg#2 Beberapa pengendara
motor memakai helm
[['startseq', 'beberapa', 'pengendara',
'motor', 'melaju', 'searah', 'dengan',
'pengendara', 'motor', 'lainnya', 'endseq'],
['startseq', 'beberapa', 'pengendara',
'motor', 'melaju', 'berlawanan', 'arah',
'dengan', 'pengendara', 'motor', 'lainnya',
'endseq'],
['startseq', 'beberapa', 'pengendara',
'motor', 'memakai', 'helm', 'endseq']]
startseq ada dua
pengendara motor
melaju di samping
mobil berwarna
putih endseq
82
UIN Syarif Hidayatullah Jakarta
Deskripsi sebenarnya dan deskripsi prediksi akan dikumpulkan dan dievaluasi
secara kolektif menggunakan skor corpus BLEU yang merangkum seberapa dekat teks
deskripsi yang dihasilkan dengan teks deskripsi yang diharapkan. Untuk masing-
masing skor BLEU ditambahkan bobot untuk setiap skor BLEU dan kemudian di
proses dengan library python NLTK. Berikut ini merupakan bobot dari masing-masing
skor BLEU :
BLEU-1 = (1,0,0,0)
BLEU-2 = (0.5, 0.5, 0, 0)
BLEU-3 = (0.3, 0.3, 0.3, 0)
BLEU-4 = (0.25, 0.25, 0.25, 0.25)
Berikut ini merupakan hasil skor BLEU dari Model-1 dan Model-2:
Tabel 5. 4 Perbandingan Hasil Skor BLEU Model-1 dan Model 2
BLEU-N Model-1 (VGG-16) Model-2 (ResNet50)
BLEU-1 0.66 0.67
BLEU-2 0.50 0.51
BLEU-3 0.43 0.42
BLEU-4 0.30 0.27
Berdasarkan tabel 5.4, skor BLEU-1 dan BLEU-2 dari Model-2 lebih besar
daripada Model-1. Sedangkan pada BLEU-3 dan BLEU-4 skor Model-2 lebih besar
daripada Model-1.
5.3.3 Hasil Pecobaan Generate Caption
Pada sub bab ini, akan dipaparkan beberapa hasil percobaan generate caption
gambar yang menggunakan Model-1 dan Model-2. Beberapa data yang digunakan
untuk generate caption gambar adalah data yang sama dengan beberapa dataset latih
namun penulis mengubah warna dari gambar mobil yang terdapat pada setiap gambar.
83
UIN Syarif Hidayatullah Jakarta
1. Model-1 (VGG-16)
Tabel 5. 5 Hasil generate caption menggunakan Model-1
Gambar Pada Dataset yang
Dimodifikasi
Hasil caption Kesesuaian Gambar
dan Caption
Gambar Asli pada
Dataset latih
Ada dua
pengendara
motor melaju
di belakang
mobil berwarna
hitam
Ya
Mobil berwarna
hitam berada di
samping mobil
berwarna hitam
Tidak
84
UIN Syarif Hidayatullah Jakarta
Mobil berwarna
hitam berada di
samping
pengendara
motor
Ya
Mobil berwarna
merah berada di
samping mobil
berwarna hitam
Tidak
Mobil berwarna
putih melaju di
samping pohon
Ya
85
UIN Syarif Hidayatullah Jakarta
2. Model-2 (ResNet 50)
Tabel 5. 6 Hasil generate caption menggunakan Model-2
Gambar Hasil caption Kesesuaian Gambar
dengan Caption
Gambar Asli pada
Dataset Uji
Mobil berwarna
putih berada di
depan
pengendara
motor
Tidak
Sebuah mobil
berwarna merah
berada di
samping pohon
Tidak
86
UIN Syarif Hidayatullah Jakarta
Pengendara
motor melaju di
samping mobil
berwarna hitam
Ya
Mobil berwarna
putih melaju di
belakang
pengendara
motor
Ya
Mobil berwarna
putih berada di
samping mobil
berwarna putih
Tidak
87
UIN Syarif Hidayatullah Jakarta
Berdasarkan percobaan generate caption menggunakan Model-1 dan Model-2 yang
dipaparkan pada tabel 5.6 dan 5.7 , penulis melakukan percobaan generate caption
menggunakan gambar yang sama dengan dataset latih namun mengubah warna pada
gambar mobilnya. Dari percobaan menggunakan Model-1, didapatkan 3 dari 5
percobaan yang menghasilkan caption yang sesuai dan 2 percobaan lainnya tidak
sesuai. Sedangkan pada percobaan menggunakan Model-2 didapatkan 2 dari 5
percobaan yang menghasilkan caption yang sesuai dan 3 percobaan lainnya tidak
sesuai. Hal tersebut terjadi karena model yang dibuat sangat bergantung pada data
gambar dan variasi dari caption. Pada penelitian ini, kasus data gambar yang digunakan
hampir mirip sehingga caption yang dihasilkan pun hampir serupa. Selain itu,
kesalahan pada hasil caption yang kurang spesifik dengan gambar seperti warna mobil,
posisi mobil atau posisi pengendara motor terjadi karena akurasi model dan model juga
hanya belajar menjelaskan secara umum apa yang terdapat pada gambar, bukan
gambaran spesifik apa yang terdapat pada gambar.
88
UIN Syarif Hidayatullah Jakarta
6 BAB VI
PENUTUP
6.1 Kesimpulan
Pada penelitian ini dihasilkan dua model untuk generate image captioning pada
gambar lalu lintas kendaraan berbahasa Indonesia menggunakan metode Convolutional
Neural Network dan Long Short Term Memory. Kedua model tersebut dihasilkan
dengan menggunakan metode simulasi yang terdiri dari tahapan formulasi masalah,
konseptual model, pengumpulan data input dan output, modeling, simulasi, verifikasi
dan validasi, ekperimentasi dan analisi output. Dari tahap-tahapan tersebut menunjukan
bahwa Model-1 yang menggunakan VGG-16 pada model ekstraksi fitur gambar
menghasilkan skor BLEU {1,2,3,4} sebesar 0.66, 0,50, 0,43, 0,30. Sedangkan Model-
2 yang menggunakan ResNet50 pada model ekstraksi fitur gambar menghasilkan skor
BLEU {1,2,3,4} sebesar 0.67; 0.51; 0.42; 0.27. Selain itu juga deskripsi gambar yang
dihasilkan oleh Model-2 lebih baik daripada deskripsi gambar yang dihasilkan oleh
Model-1.
6.2 Saran
Dalam penelitian ini masih terdapat keterbatasan. Oleh karena itu penulis
mengharapkan adanya pengembangan untuk penelitian selanjutnya. Adapun saran dari
penulis untuk penelitian ini adalah :
1. Pada penelitian selanjutnya diharapkan dapat menggunakan dataset gambar
dan deskripsi (caption) yang lebih banyak dan bervariasi agar akurasi model
meningkat.
2. Pada penelitian ini, model hanya dapat mendeskripsikan gambar secara umum,
diharapkan kedepannya model dapat dibuat untuk dapat mendeteksi setiap
objek pada gambar dengan lebih spesifik dan caption yang lebih spesifik
3. Diberikan user interface untuk generate caption gambar.
89
UIN Syarif Hidayatullah Jakarta
DAFTAR PUSTAKA
Al-muzaini, H. A., N., T., & Benhidour, H. (2018). Automatic Arabic Image
Captioning using RNN-LSTM-Based Language Model and CNN. International
Journal of Advanced Computer Science and Applications, 9(6), 67–73.
https://doi.org/10.14569/ijacsa.2018.090610
Amrizal, V., & Aini, Q. (2013). Kecerdasan Buatan. Jakarta: Halaman Moeka.
Aneja, J., Deshpande, A., & Schwing, A. G. (2018). Convolutional Image Captioning.
Proceedings of the IEEE Computer Society Conference on Computer Vision and
Pattern Recognition, 5561–5570. https://doi.org/10.1109/CVPR.2018.00583
Arnav, A., Jang, H., & Maloo, P. (2017). Image Captioning Using Deep Learning.
Brownlee, J. (2017). Deep Learning for Natural Language Processing: Develop Deep
Learning Models for your Natural Language Problems. Machine Learning
Mastery. Diakses dari
https://books.google.co.id/books?id=_pmoDwAAQBAJ&hl=id&source=gbs_na
vlinks_s
Budiharto, W., & Suhartono, D. (2014). Artificial Intelligence Konsep dan
Penerapannya. Yogyakarta: Penerbit ANDI.
Colah. (2015). Understanding LSTM Networks. diakses 9 Juni, 2019, dari
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
Devlin, J., Cheng, H., Fang, H., Gupta, S., Deng, L., He, X., … Mitchell, M. (2015).
Language Models for Image Captioning: The Quirks and What Works. Microsoft
Research.
Digimi, I. (2018). Google Colab Gratis Untuk Belajar Deep Learning. Diakses 12 Juni
12, 2019, dari https://imamdigmi.github.io/post/google-colab-gratis-untuk-
belajar-deep-learning/
90
UIN Syarif Hidayatullah Jakarta
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press book.
diakses dari www.deeplearningbooks.org
Gotama, J. W. P. (2018). Pengenalan Pembelajaran Mesin dan Deep Learning Jan
Wira Gotama Putra Pengenalan Konsep Pembelajaran Mesin dan Deep Learning
(1.2). Tokyo: Tokyo Institute of Technology.
Gulli, A., & Pal, S. (2017). Deep Learning With Keras. Birmingham, UK: Packt
Publishing Ltd.
Hartini, C., Nyoto, R. D., & Irwansyah, M. A. (2016). Rancang Bangun Aplikasi
Monitoring Trafik Lalu Lintas di Kota Pontianak, 1–6. diakses dari
http://jurnal.untan.ac.id/index.php/justin/article/view/13223
He, K., Zhang, X., Ren, S., & Sun, J. (2015). Deep Residual Learning for Image
Recognition Kaiming. IIEE, 32(5), 428–429. https://doi.org/10.1246/cl.2003.428
Introbooks. (2018). Artificial Intelligence. Introbooks.com.
Karpathy, A. (n.d.). CS231n Convolutional Neural Networks for Visual Recognition.
diakses dari http://cs231n.github.io/convolutional-networks/
Keras.io. (n.d.). Keras: The Python Deep Learning library. diakses 12 Juni, 2019, dari
keras.io
Kim, Y., Jernite, Y., Sontag, D., & Rush, A. M. (2016). Character-Aware Neural
Language Models. Proceedings of the Thirtieth AAAI Conference on Artificial
Intelligence (AAAI-16) Character-Aware, 2741–2749.
Kulkarni, P., & Praci, J. (2015). ARTIFICIAL INTELLIGENCE: Building Intelligent
Systems. Delhi: PHI Learning Private Limited.
Madani, S. A., Kazmi, J., & Mahlknecht, S. (2010). Wireless sensor networks :
modeling and simulation, 1–16.
91
UIN Syarif Hidayatullah Jakarta
Marieski, T. C., Hidayat, B., & Safitri, I. (2017). Perancangan Aplikaasi Deteksi
Kemacetan Berdasarkan Pengolahan Video Digital Menggunakan Metode Frame
Difference Berbasis Android, 4(1), 480–491. diakses dari
https://libraryeproceeding.telkomuniversity.ac.id/index.php/engineering/article/v
iew/3361/3189
Neapolitan, R. E., & Jiang, X. (2018). Artificial Intelligence: With an Introduction to
Machine Learning (Kedua). New York: CRC Pres Taylor&Francais Group.
Pu, Y., Gan, Z., Henao, R., Yuan, X., Li, C., Stevens, A., & Carin, L. (2016).
Variational autoencoder for deep learning of images, labels and captions.
Advances in Neural Information Processing Systems, (Nips), 2360–2368.
Rachmawati, E., Siradjuddin, I. A., & Putro, M. D. (2017). Description of Images
Related To Haze Crisis in Indonesia Using Deep Learning. Technical Report,
(January).
Radhakrishnan, P. (2017). Image Captioning in Deep Learning.
Rahman, T., Agustin, F. E. M., & Rozy, N. F. (2019). Analisis Sentimen Terhadap
Elektabilitas Prabowo Sebagai Calon Presiden 2019 Berdasarkan Opini
Warganet Twitter Menggunakan Metode Naive Bayes Classifier. UIN Syarif
Hidayatullah Jakarta.
Rawat, W., & Wang, Z. (2017). Deep Convolutional Neural Networks for Image
Classification: A Comprehensive Review. Massachusetts Institute of Technology.
https://doi.org/10.1162/NECO
Sanjeevi, M. (2018). DeepNLP — LSTM (Long Short Term Memory) Networks with
Math. diakses 8 Juni, 2019, dari https://medium.com/deep-math-machine-
learning-ai/chapter-10-1-deepnlp-lstm-long-short-term-memory-networks-with-
math-21477f8e4235
92
UIN Syarif Hidayatullah Jakarta
Shanmugamani, R. (2018). Deep Learning for Computer Vision. Packt Publishing.
diakses dari https://learning.oreilly.com/library/view/deep-learning-
for/9781788295628/1ab53400-64ab-43d7-9088-ad64943351f9.xhtml
Shea, K. T. O. (2015). An Introduction to Convolutional Neural Networks An
Introduction to Convolutional Neural Networks, (November).
Singh, R., & Sharma, A. (2018). Image captioning using Deep Neural Networks.
Proceedings of 2017 International Conference on Innovations in Information,
Embedded and Communication Systems, ICIIECS 2017, 2018-Janua(June), 1–4.
https://doi.org/10.1109/ICIIECS.2017.8276124
Soh, M. (2016). Learning CNN-LSTM Architectures for Image Caption Generation.
Nips, (c), 1–9. Retrieved from https://cs224d.stanford.edu/reports/msoh.pdf
Sohel, F., Shiratuddin, M. F., & Laga, H. (2018). A Comprehensive Survey of Deep
Learning for Image Captioning, 0(0).
Sudaryono. (2014). Metodologi Riset di Bidang TI (Panduan Praktis, Teori dan Contoh
Kasus). Tangerang: Penerbit ANDI.
Suyanto. (2018). Machine Learning Tingkat Dasar dan Lanjut. Bandung: Penerbit
Informatika.
Synced. (2017). Language Model: A Survey of the State-of-the-Art Technology.
diakses 7 September, 2019, dari https://medium.com/syncedreview/language-
model-a-survey-of-the-state-of-the-art-technology-64d1a2e5a466
Tanti, M., Gatt, A., & Camilleri, K. P. (2017). Where to put the Image in an Image
Caption Generator, 1–28. https://doi.org/10.1017/S1351324918000098
Tutorials Points. (2014). Python Programming Language. Tutorials Points (I) Pvt. Ltd.
Vinyals, O., Toshev, A., Bengio, S., & Erhan, D. (2015). Show and tell: A neural image
caption generator. Proceedings of the IEEE Computer Society Conference on
93
UIN Syarif Hidayatullah Jakarta
Computer Vision and Pattern Recognition, 07-12-June, 3156–3164.
https://doi.org/10.1109/CVPR.2015.7298935
Vinyals, O., Toshev, A., Bengio, S., & Erhan, D. (2017). Show and Tell: Lessons
Learned from the 2015 MSCOCO Image Captioning Challenge. IEEE
Transactions on Pattern Analysis and Machine Intelligence, 39(4), 652–663.
https://doi.org/10.1109/TPAMI.2016.2587640
www.tensorflow.com. (n.d.). Tensorflow. diakses 10 Juni, 2019, dari tensorflow.org