Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
KLASIFIKASI PENYAKIT TUBERCULOSIS DAN
PNEUMONIA PADA PARU-PARU MANUSIA
BERDASARKAN CITRA CHEST X-RAY MENGGUNAKAN
CONVOLUTIONAL NEURAL NETWORK
SKRIPSI
ABDUL HAMID
11150940000006
PROGRAM STUDI MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UIN SYARIF HIDAYATULLAH JAKARTA
2019 M / 1441 H
i
KLASIFIKASI PENYAKIT TUBERCULOSIS DAN
PNEUMONIA PADA PARU-PARU MANUSIA
BERDASARKAN CITRA CHEST X-RAY MENGGUNAKAN
CONVOLUTIONAL NEURAL NETWORK
SKRIPSI
Diajukan kepada
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Fakultas Sains dan Teknologi
Untuk Memenuhi Persyaratan dalam
Memperoleh Gelar Sarjana Matematika (S.Mat)
Oleh :
Abdul Hamid
11150940000006
PROGRAM STUDI MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UIN SYARIF HIDAYATULLAH JAKARTA
2019 M / 1441 H
v
PERSEMBAHAN DAN MOTTO
Segala Puji dan Syukur ku persembahkan kepada Allah Subhanahu Wata’ala.
Seiring shalawat serta salam kepada sang pembangun peradaban manusia, Nabi
Muhammad Shallallahu ‘Alaihi Wassalam.
Persembahan kecil ku lantunkan untuk mereka yang dalam diamnya turut
mendoakan atas dasar cinta tanpa paksaan sedikitpun terutama kepada mamah dan
papah.
Skripsi ini juga ku persembahkan untuk para sahabat serta mereka yang mencintai
saya dengan tulus.
“Lebih baik mencoba untuk bisa, lalu pasrah, dari pada menyerah tanpa usaha”
“Allah Ta’ala berfirman, 'Aku tergantung persangkaan hamba kepadaKu. Aku
bersamanya kalau dia mengingat-Ku. Kalau dia mengingatku pada dirinya, maka
Aku mengingatnya pada diriKu. Kalau dia mengingatKu di keramaian, maka Aku
akan mengingatnya di keramaian yang lebih baik dari mereka. Kalau dia
mendekat sejengkal, maka Aku akan mendekat kepadanya sehasta. Kalau dia
mendekat kepada diri-Ku sehasta, maka Aku akan mendekatinya sedepa. Kalau
dia mendatangi-Ku dengan berjalan, maka Aku akan mendatanginya dengan
berlari." (HR bukhari, no. 7405 dan Muslim, no. 2675)
vi
ABSTRAK
Abdul Hamid, Klasifikasi Penyakit Tuberculosis dan Pneumonia pada Paru-Paru
Manusia Berdasarkan Citra Chest X-Ray Menggunakan Convolutional Neural
Network, dibawah bimbingan Muhaza Liebenlito, M.Si dan Yanne Irenne, M.Si.
Tuberculosis dan pneumonia merupakan jenis penyakit yang dapat menginfeksi
paru-paru. Salah satu metode seorang ahli mendiagnosis kedua penyakit ini dengan
melihat citra chest x-ray pasien. Pada penelitian ini memanfaatkan data citra chest
x-ray penderita penyakit tuberculosis dan pneumonia. Model convolutional neural
network digunakan untuk membantu mendiagnosis kedua penyakit ini. Data yang
digunakan masing-masing sudah dilabeli sebanyak 4273 citra pneumonia, 1989
citra normal dan 394 citra tuberculosis. Data tersebut dibagi menjadi 80%
himpunan data latih dan 20% data uji. Himpunan data tersebut juga telah melalui 3
tahap prepocessing yaitu resize citra, merubah citra RGB menjadi grayscale dan
standarisasi gausian pada citra. Pada data latih dilakukan teknik sampling berupa
undersampling data dan oversampling data untuk menyeimbangkan data latih antar
kelas. Pemilihan model terbaik dipilih berdasarkan nilai AUC (Area Under the
Curve) yaitu luas daerah dibawah kurva Receiver Operating Chracteristics (ROC).
Model terbaik dihasilkan jika dilatih menggunakan data latih hasil oversampling
dengan nilai AUC kelas tuberculosis sebesar 0,99 dan nilai AUC kelas pneumonia
sebesar 0,98 sehingga mampu mengindentifikasi sebanyak 86% penyakit
tuberculosis dan 96% penyakit pneumonia.
Kata Kunci: Citra Chest X-Ray, Penyakit Infeksi Paru, Pengolahan Citra Digital
Convolutional Neural Network.
vii
ABSTRACT
Abdul Hamid, Classification of Tuberculosis and Pneumonia in Human Lung
Based on Chest X-Ray Images Using the Convolutional Neural Network Method,
under guidance Muhaza Liebenlito, M.Si dan Yanne Irenne, M.Si.
Tuberculosis and Pneumonia are kind of disease that infecting human lung. To
diagnose these diseases, experts look the images of chest x-ray of a patient. This
research uses chest x-ray images of Tuberculosis and Pneumonia to support an
expert to diagnose by using convolutional neural network model. Data used is 4273
images of pneumonia, 1989 images of normal, and 394 images of tuberculosis. Data
is splitted into 80% of train set and 20% of test set. These data sets also have been
through preprocessing step such as resize, converting RGB to grayscale, and
gaussian normalization. On train set, a sampling technique is used are undersample
and oversample to balance over each class. Best model also chosen based on AUC
value, which is the area under curve of Receiver Operating Characteristics (i.e.
ROC). The best fitted model is obtained if the train data is trained by oversampling
method. The AUC value is 0.99 for tuberculosis and 0.98 for pneumonia, and it is
able to identify 86% true for tuberculosis and 96% true for pneumonia.
Keywords: Chest X-Ray Images, Lung Infection Disease, Image Processing,
Convolutional Neural Network.
viii
KATA PENGANTAR
Alhamdulillah, puji syukur kehadirat Allah Subhanahu Wata’ala atas segala
limpahan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan
penyusunan skripsi dengan judul “Klasifikasi Penyakit Tuberculosis Dan
Pneumonia Pada Paru-Paru Manusia Berdasarkan Citra Chest X-Ray
Menggunakan Convolutional Neural Network”. Shalawat serta salam senantiasa
tercurah kepada Nabi Muhammad Sallalahu Alaihi Wassalam, para sahabat,
keluarga serta muslimin dan muslimat. Semoga kita mendapatkan syafaat baginda
Rasul kelak diakhirat. Penulis dapat menyelesaikan skripsi ini karena adanya
banyak bimbingan, saran, kerjasama dan bantuan dari berbagai pihak. Untuk itu,
pada kesempatan ini penulis ingin menyampaikan terima kasih kepada :
1. Ibu Prof Dr. Lili Surayya Putri, M.Env.Stud, selaku Dekan Fakultas Sains dan
Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta.
2. Ibu Dr. Suma’inna, M.Si, selaku Ketua Program Studi Matematika Fakultas
Sains dan Teknologi UIN Syarif Hidayatullah Jakarta, dan Ibu Irma Fauziah,
M.Sc, selaku Sekretaris Program Studi Matematika Fakultas Sains dan
Teknologi UIN Syarif Hidayatullah Jakarta.
3. Bapak Muhaza Liebenlito, M.Si selaku pembimbing I dan Ibu Yanne Irenne,
M.Si selaku pembimbing II yang telah memberikan ilmu pengetahuan,
pengarahan, bimbingan dan membantu penulis dalam menyelesaikan skripsi ini
serta memberikan inspirasi dari mulai pemilihan topik hingga metode penelitian
yang digunakan.
ix
4. Ibu Dr. Nina Fitriyati, M.Kom selaku penguji I, dan Ibu Madona Yunita Wijaya,
M.Sc selaku penguji II, terima kasih atas kritik dan sarannya kepada penulis
selama melaksanakan seminar hasil dan sidang skripsi.
5. Bapak Asril dan Ibu Bukharti Dewi sebagai orang tua penulis, serta adik-adik
penulis, Qurata ‘Aini, Wilda Azkia dan Lutfiatul Aziz yang telah memberikan
dukungan baik moril ataupun materil untuk penulis.
6. Alfarih Faza, Fitria Eka S, Kharisma Monardo, Heryanti Dewi F, Khusnul, Ayu,
Shinta, dan Vika yang selalu memberikan motivasi serta dukungan lainnya
kepada penulis.
7. Seluruh mahasiswa matematika serta seluruh pihak yang telah membantu
penulis dalam penyelesaian skripsi ini.
Penulis menyadari bahwa masih banyak kesalahan dalam penyusunan
skripsi ini. Oleh sebab itu, penulis sangat menerima kritik dan saran yang bersifat
membangun agar kesalahan yang telah terjadi tidak terulang di masa yang akan
datang. Penulis sangat berharap bahwa skripsi ini dapat bermanfaat bagi banyak
pihak.
Yang terakhir, semoga skirpsi ini dapat memberi manfaat bagi kita semua
Aamiin Aamiin ya Rabbal Aamiin.
Wassaamu’alaikum Wr. Wb
Jakarta, November 2019
Penulis
x
DAFTAR ISI
LEMBAR PENGESAHAN ................................................................................ ii
PERNYATAAN ................................................................................................ iii
LEMBAR PERNYATAAN PERSETUJUAN.................................................. iv
PERSEMBAHAN DAN MOTTO ..................................................................... v
ABSTRAK ......................................................................................................... vi
ABSTRACT ..................................................................................................... vii
KATA PENGANTAR ..................................................................................... viii
DAFTAR ISI ...................................................................................................... x
DAFTAR GAMBAR ........................................................................................ xii
DAFTAR TABEL ........................................................................................... xiii
BAB I PENDAHULUAN ................................................................................. 1
1.1. Latar Belakang....................................................................................... 1
1.2. Rumusan Masalah .................................................................................. 3
1.3. Batasan Masalah .................................................................................... 3
1.4. Tujuan Penelitian ................................................................................... 4
1.5. Manfaat Penelitian ................................................................................. 4
BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI ........................... 5
2.1. Penyakit Paru-Paru ................................................................................ 5
2.2. Neural Network ..................................................................................... 6
2.3. Multi Layer Neural Network .................................................................. 7
2.4. Fungsi Aktivasi ...................................................................................... 8
2.5. Loss Function ........................................................................................ 9
2.6. Convolutional Neural Network............................................................. 10
2.7. Backpropagation ................................................................................. 13
2.8. Confusion Matrix ................................................................................. 15
2.9. Kurva ROC dan AUC .......................................................................... 18
BAB III METODOLOGI PENELITIAN ....................................................... 20
3.1. Sumber Data ........................................................................................ 20
3.2. Alur Penelitian ..................................................................................... 21
BAB IV HASIL DAN PEMBAHASAN........................................................... 31
4.1. Hasil Preprocessing Data ..................................................................... 31
4.2. Pembagian Data ................................................................................... 32
xi
4.3. Keseimbangan Data ............................................................................. 32
4.4. Pemilihan Model dari Setiap Teknik Sampling .................................... 33
4.5. Evaluasi ............................................................................................... 35
4.6. Pemilihan Model Terbaik ..................................................................... 38
BAB V PENUTUP........................................................................................... 41
5.1. Kesimpulan.......................................................................................... 41
5.2. Saran ................................................................................................... 41
REFERENSI .................................................................................................... 42
xii
DAFTAR GAMBAR
Gambar 2.1 Arsitektur Dasar dari Perceptron ..................................................... 6
Gambar 2.2 Contoh Arsitektur dari Feed Forward Networks .............................. 8
Gambar 2.3 Ilustrasi Konvolusi antara Input dan Kernel ................................... 11
Gambar 2.4 Ilustrasi Operasi Aktivasi dari Input Feature Map ......................... 12
Gambar 2.5 Ilustrasi Operasi Pooling dari Input Feature Map .......................... 13
Gambar 2.6 Ilustrasi Forward Phase pada Sebuah NN ..................................... 13
Gambar 2.7 Ilustrasi Backward Phase pada Sebuah NN ................................... 14
Gambar 2.8 Confusion Matrix untuk Klasifikasi Multi-class ............................. 16
Gambar 2.9 Contoh Ilustrasi Kurva ROC ......................................................... 19
Gambar 3.1 Contoh Data Citra CXR ................................................................ 21
Gambar 3.2 Alur Penelitian .............................................................................. 23
Gambar 3.3 Undersampling Data ..................................................................... 25
Gambar 3.4 Oversampling Data........................................................................ 26
Gambar 3.5 Pelatihan Model CNN ................................................................... 29
Gambar 4.1 Proses Prepocessing ...................................................................... 31
Gambar 4.2 Plot Jumlah Data Latih dan Data Uji ............................................. 32
Gambar 4.3 Plot Jumlah Data Hasil Undersampling dan Oversampling ............ 33
Gambar 4.4 Plot Nilai Loss Model CNN Undersampling .................................. 34
Gambar 4.5 Plot Nilai Loss Model CNN Oversampling .................................... 35
Gambar 4.6 Plot Waktu Pelatihan ..................................................................... 38
Gambar 4.7 Plot ROC Model CNN Undersampling.......................................... 39
Gambar 4.8 Plot ROC Model CNN Oversampling ............................................ 40
xiii
DAFTAR TABEL
Tabel 2.1 Ukuran Untuk Klasifikasi Multi Class. ...………………………...…..16
Tabel 3.1 Arsitektur Model CNN ...................................................................... 26
Tabel 3.2 Hyperparameter pada Model CNN yang lain ..................................... 27
Tabel 3.3 Output Hidden layer .......................................................................... 28
Tabel 4.1 Jumlah Data CXR Setelah Penggabungan .......................................... 31
Tabel 4.6 Confusion Matrix Model CNN Undersampling .................................. 36
Tabel 4.7 Matrix Classification Model CNN Undersampling ............................ 36
Tabel 4.8 Confusion Matrix Model CNN Oversampling .................................... 37
Tabel 4.9 Matrix Classification Model CNN Oversampling .............................. 37
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Dari sahabat Jabir bin Abdillah radhiyallahu‘anhu, bahwasanya Nabi
shallallahu ‘alaihi wa sallam bersabda :
ِلكُِلِّ دَاٍء دََواٌء، فَإِذَا أُِصْيَب دََواُء الدَّاِء بََرأَ بِإِذِْن للاِ
“Semua penyakit ada obatnya. Jika sesuai antara penyakit dan obatnya, maka akan
sembuh dengan izin Allah” (HR Muslim 2204). Dari hadits berikut kita tahu
penyakit yang menimpa kita bisa saja merupakan suatu cobaan yang seharusnya
kita tidak perlu khawatir dapat sembuh ataupun tidak, karena Nabi Muhammad
sendiri bersabda setiap penyakit pasti ada obatnya untuk itu sebagai manusia kita
harus senantiasa berusaha, berdoa dan bertawakal kepada Allah untuk bisa sembuh
dari berbagai penyakit yang diderita.
Paru-paru merupakan organ terpenting dalam sistem pernapasan manusia,
jika paru-paru bermasalah tentunya akan menggangu aktifitas sehari-hari.
Permasalahan paru-paru yang umum diderita manusia adalah masalah infeksi akibat
virus, bakteri, atau jamur. Penyakit infeksi paru-paru diantaranya adalah
tuberculosis dan pneumonia. Kedua penyakit ini umumnya ditandai dengan gejala
batuk yang terus-menerus, walaupun untuk tuberculosis sendiri batuk yang dialami
terkadang disertai darah [1]. Pada anak-anak, kasus tuberculosis tahun 2017,
diperkirakan 1 juta menderita penyakit tuberculosis dan 230.000 diantaranya
meninggal dunia [2]. Sedangkan pada pneumonia pada tahun 2015 menyumbang
total 16% kematian pada anak di bawah usia 5 tahun [3].
Dalam mendiagnosis penyakit ini umumnya alat atau teknik diagnosis yang
dilakukan adalah melakukan rontgen dengan sinar x pada bagian dada pasien, data
citra yang dihasilkan dari teknik ini disebut sebagai citra chest x-ray (CXR), teknik
ini dipilih karena teknik ini ekonomis dan mudah digunakan [4]. Pada CXR dapat
2
dilihat gambaran permukaan dalam dada pasien yang digunakan sebagai bahan
pertimbangan oleh seorang ahli untuk mengetahui apakah seorang pasien terjangkit
penyakit pneumonia atau tuberculosis. Seiring pesatnya kemajuan teknologi
terutama di bidang machine learning, permasalahan pada citra seperti
pengklasifikasian terus dilakukan pengembangan menjadi lebih dinamis untuk
berbagai permasalahan, dimana untuk membedakan suatu objek pada citra dapat
dilakukan dengan bantuan komputasi mesin. Sehingga prediksi yang dihasilkan
oleh model machine learning dalam hal mendeteksi suatu penyakit dapat membantu
seorang ahli dalam mendiagnosis kemungkinan penyakit yang diderita oleh pasien.
Beberapa penelitian sudah dilakukan terkait dalam mengidentifikasi
penyakit paru-paru dengan menggunakan algoritma mechine learning pada data
CXR. Schilham dkk [5] menggunakan gausian kernel untuk mengekstrak fitur dan
11 karakterisasi lung nodule (bintil pada paru-paru sebagai kemungkinan tanda dari
adanya kanker paru-paru) fitur dan kemudian mengklasifikasikannya dengan
algoritma k-nearest neighbors (KNN) dengan menerima rata-rata dua false
positives per-hasil gambar serta mampu mengidentifikasi 51% dari semua nodule,
meningkat dengan empat false positives menjadi 67%. Pada penyakit tuberculosis,
Tan dkk [6] mengemukakan tuberculosis index (TI) berdasarkan fitur hasil
segmentasi tekstur daerah paru-paru yang kemudian diklasifikasikan antara normal
dan tidak normal dengan sebanyak 95 data menggunakan algoritma decision tree
dan mendapatkan akurasi 92,9%. Sedangkan Hwang dkk [7] menjadi yang pertama
mengemukakan penggunaaan Convolutional Neural Network dalam sistem
pendeteksian penyakit tuberculosis secara otomatis dengan menggunakan transfer
learning untuk meningkatkan performa sistem, akurasi sistem yang berhasil dibuat
oleh mereka adalah sebesar 90,3% dengan menggunakan himpunan data KIT, MC
dan Senzhen.
Sedangkan penelitian terhadap gabungan dari beberapa penyakit paru-paru
diantaranya dilakukan oleh Bar dkk [8] dengan menggunakan kombinasi dari fitur
yang diekstrak oleh metode Convolutional Neural Network (CNN) dengan
arsitektur ImageNet mereka berhasil mendeteksi pembesaran jantung, pleural
3
effusion sebelah kanan, sehat vs penyakit abnormal lainnya dengan nilai AUC
secara berurutan 93%, 89%, dan 79%. Sedangkan Abivey dkk [9] dengan arsitektur
CNN yang mereka buat sendiri berhasil mengalahkan model CNN dengan
arsitektur GIST, VGG16 dan VGG19 dalam mengklasifikasikan 14 jenis penyakit
paru-paru dengan akurasi total 92,4%.
Banyak permasalahan pendeteksian penyakit pada paru-paru diselesaikan
dengan metode machine learning, terutama metode CNN selain tahap
preprocessing yang dibutuhkan cenderung lebih sedikit, akurasi yang dihasilkan
sangat menjanjikan, walaupun memiliki biaya komputasi jauh lebih banyak
dibanding metode machine learning yang lebih sederhana. Oleh karena itu peneliti
memutuskan untuk menggunakan metode CNN dalam mengatasi masalah
klasifikasi penyakit tuberculosis paru-paru, pneumonia serta normal sebagai
pembanding pada data CXR.
1.2. Rumusan Masalah
Berdasarkan uraian latar belakang di atas, rumusan masalah pada penelitian
ini adalah :
1. Bagaimana teknik sampling yang tepat untuk menangani masalah data tidak
seimbang pada data latih agar model dapat mengklasifikasikan citra CXR
termasuk tuberculosis atau pneumonia dengan baik?
2. Bagaimana nilai AUC yang dihasilkan pada model CNN terbaik untuk
mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia?
3. Bagaimana hasil prediksi dari model terbaik untuk mengklasifikasikan citra
CXR termasuk tuberculosis atau pneumonia?
1.3. Batasan Masalah
Pada penelitian ini peneliti menetapkan batasan masalah yaitu:
1. Data citra CXR yang akan diklasifikasikan sebanyak 3 kelas yaitu
tuberculosis dan pneumonia, kemudian ditambahkan normal sebagai
pembanding jika kedua penyakit tidak terklasifikasi.
4
2. Penulis menggunakan metode CNN dengan hyperparameter yang sesuai
pada subbab 3.2.4 untuk dapat mengklasifikasikan penyakit tuberculosis
dan pneumonia pada suatu data CXR.
1.4. Tujuan Penelitian
Adapun tujuan dalam penelitian ini adalah:
1. Mengetahui teknik sampling yang tepat untuk menangani masalah data
tidak seimbang pada data latih agar model dapat mengklasifikasikan citra
CXR termasuk tuberculosis atau pneumonia dengan baik?
2. Mengetahui bagaimana nilai AUC yang dihasilkan pada model CNN terbaik
untuk mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia
3. Mengetahui bagaimana hasil prediksi dari model terbaik untuk
mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia.
1.5. Manfaat Penelitian
Dengan penelitian ini diharapkan pembaca mengetahui bahwa pendeteksian
penyakit tuberculosis dan pneumonia dapat dilakukan dengan menggunakan
metode CNN, serta dapat menjadi acuan untuk penelitian dan pengembangan
metode lain yang lebih baik dari sebelumnya.
5
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
2.1. Penyakit Paru-Paru
Paru – paru merupakan organ penting yang ada didalam tubuh manusia
sebagai salah satu organ pada sistem pernapasan. Pernapasan yang dilakukan oleh
manusia berguna untuk menghirup gas yaitu oksigen yang akan diserap oleh tubuh
dan diolah menjadi energi. Terganggunya pernapasan pada manusia akan sangat
mempengaruhi aktifitas sehari-hari yang erat kaitannya dengan anomali yang
terjadi pada paru-paru, salah satunya yang diakibatkan oleh kebiasaan atau
lingkungan yang tidak baik umumnya penyebab utamanya polusi udara sehingga
paru-paru menjadi rawan terinfeksi oleh patogen-patogen seperti virus, bakteri, atau
jamur.
Infeksi pada paru-paru yang disebakan oleh patogen-patogen seperti virus,
bakteri, atau jamur diantaranya adalah tuberculosis dan pneumonia. Tuberculosis
disebabkan oleh bakteri mycobacterium tuberculosis sedangkan secara umum
infeksi yang disebabkan oleh patogen-patogen tersebut disebut sebagai pneumonia.
Pneumonia adalah peradangan kantung udara di paru-paru (alveoli) dan jaringan di
sekitarnya, umumnya penyakit ini ditandai dengan gejala batuk disertai dahak,
tubuh terasa lemas, dan nafas pendek dan cepat [10]. Sedangkan, penyakit
tuberculosis ditandai dengan batuk berdahak yang terkadang disertai darah, sesak
napas ,hilang nafsu makan yang berkepanjangan, kehilangan berat badan, dan
demam yang disertai keringat dimalam hari [11]. Gejala diatas mungkin memiliki
beberapa perbedaan tergantung kepada kondisi yang dialami oleh pasien sendiri.
Diagnosa untuk kedua penyakit memiliki kesamaan dimana keduanya perlu
dilakukan rontgen dada dengan sinar X, untuk mendapatkan gambaran bagian
dalam dada. Walaupun, pemeriksaan lanjutan diperlukan untuk lebih memastikan
penyakit paru-paru apa yang diderita oleh pasien. Citra yang dihasilkan dari rontgen
dada ini disebut dengan chest x-ray images (CXR) dimana untuk dapat
mendiagnosis penyakit dari data ini dibutuhkan seorang ahli yang paham mengenai
6
data tersebut. Seorang ahli yang mampu mendiagnosa CXR umumnya melihat
karakter atau ciri khusus pada citra tersebut.
2.2. Neural Network
Salah satu algoritma mechine learning yang popular saat ini adalah Neural
Network (NN), terinspirasi dari mekanisme pembelajaran yang dilakukan oleh otak
dari makhluk hidup, arsitektur paling sederhana dari NN adalah perceptron yang
dikemukakan pertama kali oleh Ronsenblatt [12] .
Gambar 2.1 Arsitektur Dasar dari Perceptron
Perceptron merupakan NN yang berisikan sebuah input layer dan sebuah
output node. Arsitektur dasar dari perceptron ditunjukan pada Gambar 2.1.
Misalkan pada suatu permasalahan klasifikasi dengan 2 kelas, dimana setiap data
contoh pelatihan memenuhi bentuk (𝑋, 𝑦). Setiap 𝑋 = [x1, x2 , x3, … , xd] berisi
sebanyak 𝑑 variabel fitur, dan 𝑦𝜖{−1, +1} yang berisi nilai observasi dari variabel
kelas. Sehingga prediksi akan mengacu pada nilai observasi (𝑦) yaitu target atau
tujuan untuk melakukan klasifikasi dari nilai yang belum terobservasi (𝑋) [13].
𝑥1
𝑥2
𝑥3
𝑥𝑑
+1
𝑤1
𝑤2
𝑤3
𝑤𝑑
b
�̂� Σ
Input Layer
Output Node
Φ
7
Input layer pada perceptron berisikan nilai input 𝑋 yang saling terhubung
dengan weight yaitu 𝑊 = [𝑤1, 𝑤2, 𝑤3, … 𝑤𝑑], dan sebuah bias (𝑏) terhadap ouput
node atau output neuron. pada input layer tidak terjadi proses perhitungan, proses
perhitungan terjadi pada output node, yaitu fungsi linier 𝑧 = 𝑊. 𝑋 + 𝑏 =
∑ 𝑤𝑖𝑥𝑖 + 𝑏𝑑𝑖=1 , lalu digunakan suatu fungsi untuk memprediksi dari variabel 𝑋.
Prediksi �̂� dihitung mengikuti aturan dibawah ini:
�̂� = Φ(𝑊. 𝑋 + 𝑏) = Φ (∑ 𝑤𝑖𝑥𝑖
𝑑
𝑖=1
+ 𝑏). ( 1 )
Pada perceptron algoritm, prediksi dilakukan menggunakan suatu fungsi
tangga yang memetakan bilangan real terhadap nilai +1 atau -1. Peran fungsi ini
disebut sebagai fungsi aktivasi yang berguna untuk memetakan output dari setiap
input dari layer sebelumnya terhadap suatu nilai pada selang tertentu sesuai fungsi
yang digunakan. Pemilihan fungsi aktivasi dapat berbeda tergantung tujuan dan
desain dari model yang akan kita gunakan. Pilihan fungsi aktivasi akan dibahas
pada subab 2.4.
2.3. Multi Layer Neural Network
Setelah pada subab sebelumnya membahas mengenai arsitektur paling
sederhana dari NN yaitu perceptron, jenis lain dari NN yang lebih kompleks adalah
Multi Layer Neural Network (MLNN). Berbeda dengan perceptron yang hanya
memiliki 1 input layer dan 1 output node, dalam MLNN arsitekturnya memiliki 3
jenis layer yaitu input layer, hidden layer dan output layer.
Didalam perceptron perhitungan hanya terjadi pada output layer dengan
sebuah output node, sehingga seluruh perhitungan dalam perceptron dapat dilihat
secara jelas oleh pengguna. Berbeda dengan MLNN yang memiliki paling sedikit
sebuah layer tambahan untuk melakukan perhitungan serta menghubungkan antara
input layer dengan output layer. Layer tambahan yang berada di antara input layer
dan output layer disebut sebagai hidden layer, disebut sebagai hidden layer karena
proses perhitungan tidak sepenuhnya terlihat oleh pengguna [13].
8
Secara spesifik arsitektur pada MLNN dapat disebut sebagai feed forward
networks karena setiap node pada suatu layer saling terhubung pada layer
sebelumnya, sehingga pada feed forward networks setiap input yang diproses
menjadi output akan dibawa maju hingga output layer menjadi output jaringan,
dengan cara output dari layer sebelumnya menjadi input pada layer setelahnya.
Gambar 2.2 Contoh Arsitektur dari Feed Forward Networks
Gambar diatas merupakan contoh arsitektur dari feed forward networks
dengan 2 buah node pada input layer, 3 node pada hidden layer dan 1 buah node
pada output layer.
2.4. Fungsi Aktivasi
Setiap node pada hidden layer dan output layer, dalam memproses segala
input, menggunakan suatu fungsi aktivasi (Φ), tidak ada aturan khusus dalam
pemilihan fungsi aktivasi (Φ). Berikut ini adalah beberapa fungsi aktivasi yang
digunakan :
Input
Layer
Hidden layer
Output layer
9
Φ(𝑧) = 𝑧 (linier function) ( 2 )
Φ(𝑧) = 𝑠𝑖𝑔𝑛(𝑧) (step function) ( 3 )
Φ(𝑧) = max{𝑧, 0} (ReLU function) ( 4 )
Φ(𝑧) = max{min[𝑧, 1] , −1} (hard tanh function) ( 5 )
Φ(𝑧) =1
1 + 𝑒−𝑧
(sigmoid function) ( 6 )
Φ(𝑧) =𝑒2𝑧 − 1
𝑒2𝑧 + 1
(tanh function) ( 7 )
Φ(𝑧𝑖) =𝑒𝑧𝑖
∑ 𝑒𝑧𝑗𝑘𝑗=1, ∀𝑖 ∈ [1, . . . , 𝑘]
(softmax function) ( 8 )
Fungsi diatas biasa digunakan didalam hidden layer, dan beberapa juga digunakan
sebagai output layer, khusus permasalahan klasifikasi umumnya pada output layer
menggunakan fungsi aktivasi linier function kemudian sofmax function.
Beberapa tahun terakhir fungsi ReLU dan hard tanh menjadi populer
digunakan sebagai fungsi aktivasi dibandingkan sigmoid dan tanh, karena
kemudahan dalam pelatihan pada MLNN menggunakan fungsi aktivasi ini [13].
Kemudahan yang didapatkan yaitu murahnya biaya komputasi dan kecepatan
menuju konvergen ketika menggunakan optimasi SGD yang lebih cepat dan akurat
dibandingkan fungsi aktivasi lainnya. Namun penggunaan fungsi aktivasi ini
mudah menyebabkan model menjadi overfitting jika learning rate tidak
diperhatikan.
2.5. Loss Function
Didalam model NN pasti memiliki fungsi objektif, dimana fungsi ini akan
diminimumkan atau dimaksimumkan sedemikian sehingga NN yang dibentuk
mampu melaksanakan tujuan dibuatnya. Fungsi objektif ini biasa disebut sebagai
loss function atau cost function. Loss function pada suatu NN dipilih berdasarkan
tujuan dari NN tersebut dibuat, pada permasalahan klasifikasi, loss function yang
sering digunakan untuk setiap contoh pelatihan (𝑥𝑖, 𝑦𝑖 ) adalah:
𝐿 = − log(�̂�𝑟). ( 9 )
10
Dimana jika 𝑧1, 𝑧2, 𝑧3, … , 𝑧𝑘 merupakan nilai output dari 𝑘 kelas yang
dihasilkan pada output layer dan �̂�1, �̂�2, … , �̂�𝑘 merupakan peluang dari 𝑘 kelas
(dengan menggunakan 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 pada nilai ouput layer), dan kelas ke-𝑟
merupakan kelas target sesungguhnya, maka loss function ini desebut cross entropy
loss [13]. Sehingga persamaan cross entropy loss dapat ditulis sebagai berikut:
𝐿 = − log (𝑒𝑧𝑟
∑ 𝑒𝑧𝑗𝑘𝑗=1, ∀𝑟 ∈ [1, . . . , 𝑘]). ( 10 )
2.6. Convolutional Neural Network
Covolutional Neural Network (CNN) merupakan salah satu variasi dari NN
yang terinspirasi oleh pemahaman Hubel dan Weasel mealalui cara kerja korteks
visual kucing pada tahun 1968 [14]. Dimana pada korteks visual memiliki daerah
kecil yang terdiri dari beberapa sel yang peka terhadap daerah tertentu di bidang
visual. Sel-sel didalam korteks visual, aktif hanya pada bentuk dan orientasi objek
tertentu pada bidang visual.
Sistem kerja ini menjadi dasar bagaimana salah satu jenis arsitektur NN
yaitu CNN dibuat, pada CNN memiliki struktur dasar yang nyaris serupa dengan
NN pada umumnya, seperti input layer, hidden layer hingga output layer,namun
pada CNN setiap layer umumnya terdiri dari beberapa bagian yakni konvolusi,
aktivasi dan pooling. Keadaan setiap layer diatur berdasarkan spatial grid structure.
Dimana setiap nilai fitur bergantung pada bagian area kecil pada layer sebelumnya.
2.6.1. Konvolusi
Misalkan input pada layer ke 𝑞 memiliki ukuran dimensi (𝐿𝑞 𝑥 𝐵𝑞𝑥 𝑑𝑞)
dimana secara berturut-turut merupakan panjang, lebar dan kedalaman input, kernel
𝑝 pada layer 𝑞 adalah parameter yang di notasikan sebagai tensor 3 dimensi
𝑊(𝑝,𝑞) = [𝑤𝑖𝑗𝑘(𝑝,𝑞)
]. Index 𝑖,𝑗 dan 𝑘 menyatakan posisi sepanjang tinggi, lebar dan
kedalaman. Ukuran dimensi pada kernel tersebut adalah (𝐹𝑞 𝑥 𝐹𝑞 𝑥 𝑑𝑞). Feature
map pada layer ke-𝑞 direpresentasikan dengan tensor 3 dimensi 𝐻(𝑞) = [ℎ𝑖𝑗𝑘(𝑞)
] ,saat
𝑞 = 1 maka 𝐻(1) merepresentasikan sebagai input layer [13]. Stride (S) adalah
11
ukuran langkah dalam melakukan konvolusi. Sehingga secara formal operasi
konvolusi dari layer q ke layer (𝑞 + 1) didefinisikan sebagai berikut:
ℎ𝑖𝑗𝑝(𝑞+1)
= ∑ ∑ ∑ 𝑤𝑟𝑠𝑘(𝑝,𝑞)
ℎ𝑖+𝑟−1,𝑗+𝑠−1,𝑘(𝑞)
𝑑𝑞
𝑘=1
𝐹𝑞
𝑠=1
𝐹𝑞
𝑟=1
∀𝑖 ∈ {1, 𝑆𝑞 + 1,2𝑆𝑞 + 1, … ,𝐿𝑞 − 𝐹𝑞
𝑆𝑞+ 1}
∀𝑗 ∈ {1, 𝑆𝑞 + 1,2, 𝑆𝑞 + 1, … ,𝐵𝑞 − 𝐹𝑞
𝑆𝑞+ 1}
∀𝑝 ∈ {1, … , 𝑑𝑞+1}. ( 11 )
Dari Gambar 2.3 dapat dilihat ilustrasi dari operasi konvolusi antara input dan
kernel didalam layer konvolusi, dimana kedalaman dari input sama dengan
kedalaman kernel yang digunakan, sehingga operasi konvolusi keduanya akan
menghasilkan output berupa feature map yang memiliki kedalaman sebanyak
kernel yang digunakan.
Gambar 2.3 Ilustrasi Konvolusi antara Input dan Kernel
1
3
2
3
2 5
5
1
6
2
8
2
8
INPUT
KERNEL
OUTPUT
Kedalaman
setiap kernel
harus sama
dengan input-
nya.
Kedalaman output
terdefinisi berdasarkan
banyaknya kernel yang
digunakan .
12
2.6.2. Aktivasi
Pada bagian aktivasi pada sebuah layer dari arsitektur CNN dilakukan
dengan cara memetakan setiap nilai yang ada pada feature map dengan salah satu
fungsi aktivasi (Φ) seperti ReLU, tanh, sigmoid atau sebagainya. Dimana operasi
pada bagian ini serupa dengan operasi yang terjadi pada NN biasa. Ilustrasi aktivasi
dari input feature map dapat dilihat pada Gambar 2.4.
Gambar 2.4 Ilustrasi Operasi Aktivasi dari Input feature Map
2.6.3. Pooling
Hampir sama seperti operasi konvolusi, hanya saja pada operasi pooling
tidak melibatkan nilai kernel dengan mengkombinasikannya pada input layer
sehingga menghasilkan output berupa feature map [13]. Pada pooling, kernel
berfungsi sebagai region yang disebut activation map yang akan dilakukan
pengumpulan disetiap bagian feature map sehingga menghasilkan feature map yang
baru. Hal ini akan berdampak pengurangan ukuran spasial dimensi pada feature
map. Tidak ada aturan khusus mengenai pemilihan operasi pooling, namun operasi
pooling yang umum digunakan diantaranya adalah maximum pooling, minimum
pooling atau average pooling. Ilustrasi dari operasi pooling dari input feature map
dapat dilihat pada Gambar 2.5.
𝒙𝟏𝟏 𝒙𝟏𝟐 𝒙𝟏𝟑 𝒙𝟏𝟒 𝒙𝟐𝟏 𝑥22 𝑥23 𝑥24 𝒙𝟑𝟏 𝑥32 𝑥33 𝑥34 𝒙𝟒𝟏 𝑥42 𝑥43 𝑥44
𝑥31
𝑥32
𝑥33
𝑥34
𝑥41
𝑥42
𝑥43
𝑥44
Aktivasi
𝚽(𝒙𝟏𝟏) 𝚽(𝒙𝟏𝟐) 𝚽(𝒙𝟏𝟑) 𝚽(𝒙𝟏𝟒) 𝚽(𝒙𝟐𝟏) Φ(𝑥22) Φ(𝑥23) Φ(𝑥24) 𝚽(𝒙𝟑𝟏) Φ(𝑥32) Φ(𝑥33) Φ(𝑥34) 𝚽(𝒙𝟒𝟏) Φ(𝑥42) Φ(𝑥43) Φ(𝑥44)
13
Gambar 2.5 Ilustrasi Operasi Pooling dari Input Feature Map
2.7. Backpropagation
Algoritma yang digunakan untuk meminimumkan fungsi loss adalah
algoritma backpropagation. Dimana salah satunya adalah stochastic gradient
descent (SGD) yang merupakan algoritma optimasi berbasis gradient-descent.
Backpropagation terdiri dari 2 fase yaitu forward phase dan backward phase [13].
Gambar 2.6 Ilustrasi Forward Phase pada Sebuah NN
𝑥11 𝑥12 𝑥13 𝑥14 𝑥21 𝑥22 𝑥23 𝑥24 𝑥31 𝑥32 𝑥33 𝑥34 𝑥41 𝑥42 𝑥43 𝑥44
pooling 𝑝11 𝑝12 𝑝21 𝑝22
𝑝11 = 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥11 , 𝑥12, 𝑥21 , 𝑥22])
𝑝12 = 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥13 , 𝑥14, 𝑥23 , 𝑥24])
𝑝21 = 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥31, 𝑥32 , 𝑥41, 𝑥42])
𝑝22 = 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥33, 𝑥34 , 𝑥43, 𝑥44])
+1
𝑥1
𝑥2
b
𝑤1
𝑤2
∑ Φ Type
equati
on
here.
�̂�
𝑧 = ∑ 𝑥𝑖𝑤𝑖 + 𝑏
2
𝑖=1
�̂� = Φ(𝑧)
𝐿 = −log (�̂�)
14
Forward phase: Didalam forward phase, input digunakan untuk menghitung nilai
dari setiap hidden layer berdasarkan nilai weight (w) dan bias (b) yang ada. Tujuan
dari forward phase adalah untuk menghitung seluruh output dari hidden layer
hingga output layer, berdasarkan input yang diberikan. Kemudian dihitunglah nilai
loss dari function loss (L) berdasarkan nilai output layer [13]. Ilustrasi forward
phase pada NN dengan 2 feature input dan sebuah node dapat dilihat pada Gambar
2.6.
Gambar 2.7 Ilustrasi Backward Phase pada Sebuah NN
Backward phase: Didalam backward phase perhitungan gradient dilakukan dari
fungsi loss berdasarkan berbagai parameter weight (w) dan bias (b) setiap layer.
Pada tahapan ini gradient dihitung dengan turunan parsial secara mundur, yakni
gradient dihitung dari loss function (L) hingga input layer dengan memperhatikan
weight (w) dan bias (b) pada layer tersebut. Setelah itu nilai gradient dari fungsi
loss terhadap weight (w) atau bias (b) akan digunakan untuk optimasi parameter
didalam NN dengan algoritma optimasi berbasis gradient-descent [13]. Ilustrasi
backward phase pada NN dengan 2 feature input dan sebuah node dapat dilihat pada
Gambar 2.7.
Algoritma optimasi SGD merupakan salah satu algoritma optimasi berbasis
gradient-descent yang digunakan untuk memperbaharui nilai parameter yang
+1
𝑥1
𝑥2
b
𝑤1
𝑤2
Φ
�̂�
𝜕𝐿
𝜕�̂�= −
1
�̂�
𝜕�̂�
𝜕𝑧= Φ′(𝑧)
𝜕𝑧
𝜕𝑤𝑖= 𝑥𝑖
𝜕𝑧
𝜕𝑏= 1
𝜕𝐿
𝜕𝑏=
𝜕𝐿
𝜕�̂�×
𝜕�̂�
𝜕𝑧×
𝜕𝑧
𝜕𝑏
𝜕𝐿
𝜕𝑤𝑖=
𝜕𝐿
𝜕�̂�×
𝜕�̂�
𝜕𝑧×
𝜕𝑧
𝜕𝑤𝑖
∑
15
dioptimasi yaitu 𝜃 (weight dan bias) berdasarkan titik data yang dipilih secara acak
dari himpunan data latih, dibawah ini merupakan persamaan untuk mengoptimasi
parameter dengan SGD:
𝜃 ← 𝜃 − 𝛼𝜕𝐿
𝜕𝜃.
( 12 )
Didalam SGD, learning rate (𝛼) adalah ukuran langkah setiap iterasi untuk
mencapai titik minimum pada loss function (L). Untuk mempercepat pelatihan
model serta menghindari nilai loss terjebak pada minimum lokal, dapat dilakukan
dengan memodifikasi sedikit optimasi SGD dengan variabel penghalus yaitu
𝛽𝜖(0,1). Metode ini dapat disebut SGD with momentum, berikut adalah optimasi
parameter yang dilakukan:
𝑣 = −𝛼𝜕𝐿
𝜕𝜃
( 13 )
𝑣 ← 𝑣𝛽 − 𝛼𝜕𝐿
𝜕𝜃
( 14 )
𝜃 ← 𝜃 + 𝑣. ( 15 )
Untuk mengurangi waktu yang dibutuhkan pada saat pelatihan model CNN,
dapat menggunakan metode optimasi Mini-batch SGD. Sedikit berbeda dengan
SGD biasa, Mini-batch SGD melakukan optimasi setiap bagian kecil data (Mini-
batch) yang dipilih secara acak dimana ukurannya lebih dari 1 buah data latih.
2.8. Confusion Matrix
Melakukan pengukuran dalam kinerja pada sistem klasifikasi merupakan
hal yang penting untuk menggambarkan seberapa baik sistem dalam
mengklasifikasikan data. Confusion matrix merupakan salah satu metode yang
digunakan untuk mengukur kinerja suatu metode dalam klasifikasi. Cara kerjanya
yakni membandingkan hasil klasifikasi yang dilakukan oleh sistem dengan hasil
klasifikasi yang seharusnya. Berdasarkan outputnya, salah satu sistem klasifikasi
adalah sistem klasifikasi multi-class dimana setiap data dapat diklasifikasikan
menjadi lebih dari dua kelas namun setiap satu data hanya dapat diklasifikan tepat
satu kelas [15].
16
Gambar 2.8 Confusion Matrix untuk Klasifikasi Multi-Class
Confusion matrix memberikan informasi tentang berapa banyak hasil
klasifikasi yang dilakukan sistem klasifikasi pada setiap kelas. Dari Gambar 2.8
Jika C merupakan suatu confusion matrix dan 𝑐𝑖𝑗 adalah jumlah data yang
terklasifikasi pada kelas 𝑖 tetapi sebenarnya kelas 𝑗 maka dengan memperhatikan
sebuah target klasifikasi kelas 𝑘 terdapat 4 istilah dalam pengukuran kinerja
menggunakan confusion matrix sebagai berikut [16]:
1. True Positive (TP) yaitu kelas yang diperkirakan saat itu sebenarnya terjadi
(𝑐𝑘𝑘).
2. True Negative (TN) yaitu kelas tidak diperkirakan dan itu tidak terjadi (𝑐𝑘𝑛).
3. False Positive (FP) yaitu kelas diperkirakan, tetapi tidak terjadi (𝑐𝑛𝑘).
4. False Negative (FN) yaitu kelas tidak diperkirakan tetapi memang terjadi
(𝑐𝑛𝑛).
Berdasarkan Gambar 2.8 dapat diperoleh nilai akurasi, precision, dan recall.
Pada klasifikasi multi-class, jika banyak kelas pada data tersebut dinotasikan
dengan 𝑙 dan banyak data adalah 𝑁, Berikut ini langkah-langkah pengukurannya:
Tabel 2.1 Ukuran Untuk Klasifikasi Multi-Class
Ukuran Formula Keterangan
Akurasi ∑ TPklk=0
𝑁
Perbandingan antara
kelas yang diprediksi
17
dengan benar oleh sistem
klasifikasi ter-hadap
total data yang ada.
𝐏𝐫𝐞𝐜𝐢𝐬𝐢𝐨𝐧𝐤 TPkTPk + FPk
Perbandingan antara
kelas yang diprediksi
dengan benar oleh sistem
terhadap total data yang
terklasifikasi-kan kelas
k.
𝐑𝐞𝐜𝐚𝐥𝐥𝐤 TPkTPk + FNk
Perbandingan antara
kelas yang diprediksi
dengan benar oleh sistem
terhadap total data yang
ada pada kelas k
Macro Average
Precision
∑ Precisionklk=0
l
Rata-rata precision dari
setiap kelas
Macro Average Recall ∑ Recallklk=0
l
Rata-rata recall dari
setiap kelas
Micro Average
Precision
∑ TPklk=0
∑ [TPk + FPk]lk=0
Perbandingan antara
seluruh kelas yang
diprediksi dengan benar
oleh sistem terhadap
penjumlahan total data
yang terklasifikasikan
dengan benar dan data
setiap kelas yang salah
diprediksi oleh sistem.
Micro Average Recall ∑ TPklk=0
∑ [TPk + FNk]lk=0
Perbandingan antara
seluruh kelas yang
diprediksi dengan benar
18
oleh sistem terhadap
penjumlahan total data
yang terklasifikasikan
dengan benar dan data
yang terprediksi salah
oleh sistem pada setiap
kelas.
2.9. Kurva ROC dan AUC
Kurva ROC (Receiver Operating Characteristics) adalah suatu teknik untuk
menvisualisasikan, mengatur dan memilih sistem klasifikasi (classifiers)
berdasarkan performa classifiers tersebut [17]. Membentuk kurva ROC dilakukan
dengan menghitung nilai True Positive Rate (TPR) dan False Positive Rate (FPR)
berdasarkan batasan (threshold) yang ditentukan. Pada permasalahan klasifikasi
binari perhitungan TPR dan FPR adalah sebagai berikut:
𝑇𝑃𝑅 = 𝑟𝑒𝑐𝑎𝑙𝑙 = 𝑠𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 =𝑇𝑃
𝑇𝑜𝑡𝑎𝑙 𝐾𝑒𝑙𝑎𝑠 𝑃𝑜𝑠𝑖𝑡𝑖𝑓
( 16 )
𝐹𝑃𝑅 = 𝐹𝑃
𝑇𝑜𝑡𝑎𝑙 𝐾𝑒𝑙𝑎𝑠 𝑁𝑒𝑔𝑎𝑖𝑓
( 17 )
𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 =𝑇𝑁
𝐹𝑃 + 𝑇𝑁= 1 − 𝐹𝑃𝑅
( 18 )
Sedangkan pada permasalahan multi-class perhitungan TPR dan FPR dilakukan
dengan mengansumsikan kelas yang diperhatikan (k) merupakan kelas positif dan
kelas lain merupakan kelas negatif, sehingga kurva ROC pada kasus multi-class
dapat dibentuk disetiap kelasnya.
Kurva ROC merupakan plot dua dimensi antara TPR sebagai sumbu-y dan FPR
sebagai sumbu-x. Pada sistem klasifikasi menghasilkan tingkat kepercayaan model
(𝑝) atas data yang diprediksi sebagai kelas positif atau (𝑞) pada kelas negative.
Nilai TPR dan FPR ditentukan berdasarkan nilai threshold, dimana saat 𝑝 >
threshold pada data kelas positif maka jumlah TP ditambah +1, sedangkan jika 𝑞 >
19
threshold pada kelas negatif maka jumlah FP ditambah +1, penentuan nilai
threshold
Setelah dilakukan perhituangan TPR dan FPR dari berdasarkan TP dan FP
maka akan dihasilkan himpunan pasangan berupa koordinat (FPR, TPR) yang
diirutkan berdasarkan threshold terbesar hingga terkecil, kemudian setiap koordinat
dihubungkan sehingga membentuk suatu kurva yang memiliki area dibawahnya.
ilustrasi kurva ROC dapat dilihat pada Gambar 2.9.
Gambar 2.9 Contoh Ilustrasi Kurva ROC
Berdasarkan Gambar 2.9 Area dibawah kurva ROC disebut sebagai AUC
(Area Under the ROC Curve), nilai AUC dihitung dengan cara menghitung luas
daerah dibawah kurva ROC dimana rentang nilai AUC berada diantara 0 hingga 1.
Semakin besar nilai AUC maka semakin baik performa sistem klasifikasi.
20
BAB III
METODOLOGI PENELITIAN
Pada bab ini akan membahas mengenai metodologi penelitian untuk
mendapatkan model yang tepat agar bisa mengklasifikasikan penyakit infeksi paru-
paru melalui data CXR, dibutuhkan data dengan tahapan preprocessing yang tepat,
serta hyperparameter model CNN yang tepat, sehingga hasil evaluasi yang
didapatkan memuaskan. Semua tahapan yang dilakukan sesuai dengan alur
penelitian yang dapat dilihat pada Gambar 3.2.
3.1. Sumber Data
Data yang digunakan dalam penilitian ini adalah data sekunder yang di
unduh dari situs Kaggle dimana untuk data pneumonia di [18] dan tuberculosis di
[19]. Data ini merupakan data gabungan dari beberapa penyakit yaitu:
a. Pneumonia
Sumber data ini [20] berisi data CXR sebanyak 5863 (JPEG) citra
normal dan pneumonia, himpunan data ini diambil dari kelompok pasien
anak-anak usia satu hingga lima tahun pada Guangzhou Women and
Children’s Medical Center, Guangzhou China
Himpunan data ini sebelumnya sudah melalui kontrol kualitas dengan
membuang hasil pemindaian yang berkualitas rendah atau tidak dapat
dibaca, setelah itu data didiagnosis oleh dua orang ahli [21].
b. Tuberculosis
Himpunan data tuberculosis ini berisi dari gabungan dua sumber
himpunan data yaitu:
21
i. China Set - The Shenzhen set
Himpunan data ini dibuat oleh National Library of Medicine,
Maryland, USA bekerjasama dengan Shenzhen No.3 People’s Hospital,
Guangdong Medical College, Shenzhen, China [22].
Data diambil berdasarkan Philips DR Digital Diagnose sistems.
Himpunan data ini berisi 336 citra yang terinfeksi penyakit tuberculosis
dan 326 normal.
ii. Montgomery County X-ray Set
Himpunan data ini dibuat oleh The National Library of Medicine
bekerjasama dengan The Department of Health and Human Services of
Montgomery County, MD, USA. Datasets berisi 58 citra CXR
tuberculosis dan 80 citra CXR normal [22].
Dibawah ini merupakah contoh beberapa CXR dari himpunan data diatas.
Gambar 3.1 Contoh Data Citra CXR
3.2. Alur Penelitian
Pada sub-bab ini berisikan tentang alur penelitian yang akan dilakukan.
Penelitian ini dilakukan menggunakan laptop dengan spesifikasi:
a. Intel Core i3-5005U 2.0GHz
b. Vga Nvidia Geforce 930M
c. RAM 4GB + 2GB
22
d. SSD 250GB + HDD 500GB
e. OS Linux Ubuntu
Adapun bahasa pemograman yang digunakan adalah Python 3.6.1 dengan
framework utama adalah pytorch serta beberapa modul fungsi lain seperti Numpy,
Scikit-Learn, OpenCV, Seaborn, Matplotlib dll. Adapun alur penelitian yang akan
dilakukan adalah sebagai berikut:
23
Gambar 3.2 Alur Penelitian
24
3.2.1 Preprocessing
Sebelum menggunakan data citra CXR untuk model CNN, data terlebih
dahulu di-preprocessing agar dapat diolah dengan model yang kita inginkan.
Adapun prepocessing yang dilakukan adalah:
a. Resize
Digunakan untuk mentransformasi citra menjadi ukuran yang berbeda
dari ukuran awalnya. Umumnya resize digunakan untuk mengecilkan
ukuran citra agar bisa mengurangi biaya komputasi saat pegolahan data
dilakukan oleh model. Pada penelitian ini peneliti me-resize seluruh citra
menjadi ukuran panjang 32 piksel dan lebar 32 piksel.
b. RGB to Grayscale
Digunakan untuk mentransformasi citra yang hanya memiliki 3 channel
(red, green, dan blue) menjadi 1 channel (Grayscale). Pada penelitian ini
setiap citra yang memiliki channel 3 (red, green, dan blue) di-transformasi
menjadi 1 channel (Grayscale).
c. Standarisasi Gaussian
Digunakan untuk mentransformasi setiap nilai piksel dengan mean dan
standar deviasi pada keseluruhan data citra, sehingga data baru akan
memiliki mean mendekati 0 dan standar deviasi mendekati satu. Rumus
untuk menstandarisasi gambar adalah sebagai berikut.
𝑐itra standarisasi =citra−mean citra
standar deviasi citra
Pada penelitian ini setiap citra distandarisasi kemudian seluruh citra akan
simpan dalam bentuk tensor dengan format numpy array, dengan dimensi
dimensi (N,C,H,W) dimana N untuk banyaknya citra, C untuk jenis
channel, H untuk panjang piksel setiap citra, dan W untuk lebar piksel
setiap citra.
3.2.2 Pembagian Data
Setelah dilakukan preprocessing data kemudian dilakukan pembagian dataset
CXR dengan proporsi 80% untuk data pelatihan dan 20% data uji.
25
3.2.3 Keseimbangan Data
Ketidakseimbangan data didalam kasus klasifikasi dapat menimbulkan
permasalahan, salah satunya yaitu tingginnya akurasi model yang diakibatkan
karena model selalu meprediksi data sebagai kelas mayoritas, hasilnya tingginya
rasio perbandingan antara kelas mayoritas dan minoritas dapat mengakibatkan
model mengabaikan sepenuhnya atas data yang merupakan kelas minoritas [23].
Oleh karena itu pada penilitian ini setelah data melalui tahap pembagian data
menjadi data latih dan data uji, kemudian pada data latih dilakukan pengecekan data
pada setiap kelasnya apakah setiap kelas memiliki anggota yang cukup seimbang.
Jika anggota pada data latih tidak seimbang setiap kelasnya, maka akan dilakukan
teknik sampel pada data latih yaitu undersampling data atau oversampling data
secara acak. Proses undersampling data dilakukan dengan memperhatikan
kelompok data yang paling sedikit, dimana proses ini secara acak membuang data
pada kelompok lain sehingga ukuran setiap kelas sama banyak, proses
undersampling dapat dilihat pada Gambar 3.3. Oversampling data dilakukan
berdasarkan kelas terbanyaknya, dimana proses ini memperbanyak data pada kelas
lain dengan menggandakan anggotanya, sehingga ukuran setiap kelas menjadi sama
besar. Proses oversampling dapat dilihat pada Gambar 3.4.
Gambar 3.3 Undersampling Data
Undersampling
Kondisi
Awal
Sesudah
Undersampling
26
Gambar 3.4 Oversampling Data
3.2.4 Pengaturan Hyperparameter
Setelah dilakukan pemeriksaan atas keseimbangan data dan penerapan
undersampling atau oversampling jika diperlukan, selanjutnya dilakukan
pembuatan model CNN, dalam pembuatan model CNN sebelumnya perlu mengatur
nilai hyperparameter seperti learning rate, epoch, loss function, optimizer, dan
sebagainya. Hyperparameter adalah suatu parameter yang secara kusus digunakan
untuk mengatur design model [13]. Pada penelitian ini hyperparameter untuk
arsitektur model CNN yang digunakan berdasarkan penelitian yang dilakukan oleh
Abivey dkk[9] sebagai berikut :
Tabel 3.1 Arsitektur Model CNN
Layers Deskripsi Nilai
Input Layer Input Citra 32 x 32 x 1
Hidden 1 Conv1
ReLU
Maxpool1
16 kernel berukuran 2 x 2
Dengan stride 2
Ukuran kernel 2 x 2
Hidden 2 Conv2
ReLU
Maxpool2
32 kernel berukuran 2 x 2
Dengan stride 2
Ukuran kernel 2 x 2
Hidden 3
Classification
Layer
Conv3
ReLU
FC
64 kernel berukuran 2 x 2
3 Node
Oversampling
Kondisi
Awal
Sesudah
Oversampling
27
Pada Tabel 3.1 merupakan struktur dari arsitektur CNN yang akan digunakan
dimana istilah “Conv” merepresentasikan layer konvolusi, “Maxpool”
merepresentasikan pooling layer yang digunakan yaitu maximum pooling, dan
“FC” merepresentasikan fully connected layer yang berjumlah 3 node sesuai jumlah
kelas yang akan diprediksi.
Tabel 3.2 Hyperparameter pada Model CNN yang lain
Jenis Nilai
Optimizer SGD
Learning Rate 0,0001
Maksimal Epoch 2000
Batch Size 50
Momentum 0,9
Pada Tabel 3.2 merupakan hyperparameter lain yang digunakan saat pelatihan
dimana learning rate 0,0001 dipilih agar saat pelatihan nilai loss dapat mencapai
minimum global dengan baik, oleh karena itu epoch maksimum yang dipilih
sebesar 2000 epoch. Momentum 0,9 digunakan untuk mempercepat model dalam
meminimumkan nilai loss nya, dan batch size sebesar 50 dipilih agar pelatihan
model dapat dilakukan dengan 50 data sekaligus dalam satu kali iterasi sehingga
dapat memangkas waktu pelatihan yang dibutuhkan.
3.2.5 Pelatihan Model CNN
Setelah melalui tahap pengaturan hyperparameter, model akan dilatih dengan
data CXR. Pada penelitian ini metode optimasi yang digunakan adalah Mini-Batch
SGD, sehingga proses pelatihan dilakukan pada setiap bagian kecil (Mini-batch)
data yang berisi 50 data latih. Pertama data input berukuran 32 × 32 piksel
sebanyak 50 data yang dipilih secara acak dari himpunan data latih, masing-masing
data dibawa menuju hidden layer pertama, hidden layer ini terdiri dari beberapa
bagian yaitu konvolusi, aktivasi dan pooling. Operasi yang terjadi pada bagian
konvolusi adalah operasi konvolusi seperti pada persamaan ( 11 ) dengan kernel
28
berukuran 2 × 2 sebanyak 16 buah dan stride sebanyak 2 sehingga menghasilkan
output berupa feature map berukuran 16 × 16 sebanyak 16. Kemudian seluruh
feature map diaktivasi dengan memepetakan setiap nilai pada feature map terhadap
fungsi aktivasi ReLU seperti pada persamaan ( 4 ). Setelah diaktivasi, kemudian
masuk pada bagian pooling, pada penelitian ini jenis pooling yang digunakan
adalah maximum pooling dengan ukuran kernel 2 × 2 dan stride sebanyak 2,
sehingga menghasilkan 16 buah feature map yang masing-masing berukuran 8 ×
8.
Tabel 3.3 Output Hidden layer
Nama Layer Conv Max Pooling
Ukuran Feature Map Ukuran Feature Map
Hidden layer 1 16 × 16 16 8 × 8 16
Hidden layer 2 4 × 4 32 2 × 2 32
Hidden layer 3 1 × 1 64
Setelah melalui layer pertama, kemudian output dari layer pertama akan
masuk menuju hidden layer ke dua, dengan operasi dalam hidden layer ke 2 sama
dengan hidden layer sebelumnya, pada layer ketiga pun demikian. Output setiap
hidden layer dirangkum pada Tabel 3.3. Setelah melalui seluruh hidden layer, maka
feature map yang dihasilkan dari hidden layer 3, dibawa masuk menuju
classification layer. Sebelum itu feature map akan dilakukan flatten yakni diubah
menjadi berbentuk vektor, setelah feature map diubah menjadi vektor barulah
dengan menggunakan persamaan ( 1 ) dimasukan kedalam classification layer yang
berisikan 3 buah node. Setelah itu nilai output dari output layer sebuah batch data,
digunakan untuk menghitung total nilai loss dari loss function. Pada penelitian ini
loss function yang digunakan adalah cross entropy loss seperti pada persamaan ( 10
). Proses dari input layer hingga menghitung output layer disebut sebagai forward
phase.
Setelah melalui forward phase maka akan dilakukan backward pada model
CNN untuk menghitung gradient setiap parameter yang akan dioptimasi berupa
29
weight dan bias. Kemudian parameter tersebut diperbaharui dengan parameter baru
berdasarkan algoritma optimasi SGD with momentum, proses ini disebut sebagai
backward phase. Keseluruhan proses dari forward phase hingga backward phase
disebut sebagai backpropagation. Satu kali proses backpropagation yang dilakukan
pada keseluruh bagian data, disebut satu epoch. Pada penelitian ini proses dilakukan
sebanyak 2000 epoch dan model dengan nilai loss terkecil pada data uji akan
disimpan.
Gambar 3.5 Pelatihan Model CNN
Ilustrasi proses pelatihan dari input hingga output model CNN dapat dilihat
pada Gambar 3.5. Pada penelitian ini pelatihan model CNN akan dilakukan
sebanyak 2 kali, yakni pertama untuk data hasil undersampling dan kedua dengan
data hasil oversampling. Setiap model yang dilatih nilai loss serta waktu yang
dibutuhkan akan disimpan.
3.2.6 Pemilihan Model dari Setiap Teknik Sampling
Setelah pelatihan model selesai dilakukan, selanjutkan dilihat pertumbuhan
nilai loss pada data uji dari awal pelatihan hingga akhir pelatihan, untuk melihat
saat kapan model mulai overfitting dan pada saat kapan model mencapai minimum
nilai loss pada data uji.
Model CNN dengan nilai loss minimum pada data uji akan dipilih dan
kemudian dievaluasi untuk melihat performa masing-masing model dalam
memprediksi setiap data.
30
3.2.7 Evaluasi
Model yang sudah dilatih dengan data latih akan menghasilkan model yang
siap untuk dievaluasi. Evaluasi dilakukan dengan melihat confusion matrix, matrix
classification yang berisi precision dan recall setiap kelas serta akurasi dari model,
untuk melihat seberapa baik model yang dipilih untuk mengklasifikasikan data
disetiap kelas dan plot waktu untuk melihat seberapa lama waktu yang dibutuhkan
saat pelatihan model dilakukan.
3.2.8 Pemilihan Model Terbaik
Setelah model dievaluasi, model terbaik yang dilatih dari data latih hasil
setiap teknik sampling akan dipilih berdasarkan nilai AUC terbaik, nilai AUC ini
didapatkan dari luas area dibawah kurva ROC.
31
BAB IV
HASIL DAN PEMBAHASAN
4.1. Hasil Preprocessing Data
Himpunan data CXR yang ada dilakukan penggabungan dan penempatan
data sesuai dengan kelasnya, jumlah keseluruhan data dapat dilihat pada pada Tabel
4.1. Selanjutnya proses prepocessing dilakukan pada setiap citra pada data CXR
dengan melakukan transformasi pada setiap citra yang memiliki channel sebanyak
3 (RGB) menjadi channel sebanyak 1 (grayscale), Setelah itu dilakukan resizing
seperti pada Gambar 4.1 dengan merubah citra menjadi ukuran 32 × 32 piksel.
Kemudian ditransformasi menjadi tensor dimana setiap piksel pada citra
distandarisasi mengikuti distribusi normal dengan mean 0 dan standar deviasi 1,
kemudian disimpan dalam format numpy array.
Tabel 4.1 Jumlah Data CXR Setelah Penggabungan
Kelas Data CXR
Pneumonia 4273
Normal 1989
Tuberculosis 394
Jumlah 6656
Gambar 4.1 Proses Preprocessing
(𝑚 × 𝑛 ) (32 × 32)
Resize
Setelah proses
Grayscale
32
4.2. Pembagian Data
Setelah tahapan preprocessing data, kemudian data akan dibagi menjadi 2
bagian dimana 80% menjadi data latih dan 20% sisanya sebagai data uji, hasil
pembagian data dapat dilihat pada Gambar 4.2.
Gambar 4.2 Plot Jumlah Data Latih dan Data Uji
4.3. Keseimbangan Data
Setelah tahapan pembagian data dilakukan, tahap selanjutnya adalah
memeriksa jumlah anggota pada setiap kelompok atau kelas pada data latih.
Terlihat pada Gambar 4.2 jumlah data pada setiap kelas pada data latih merupakan
data tidak seimbang sehingga untuk mengatasinya peneliti melakukan dua teknik
sampling yaitu undersampling dan oversampling.
Undersampling data dilakukan dengan membuang secara acak anggota pada
kelompok data yang lebih banyak dari kelompok data yang berjumlah lebih sedikit,
sehingga jumlah data pada setiap kelas sama besar, proses undersampling ini dapat
dilihat pada Gambar 4.3.
3420
1581
323
853
40871
0
500
1000
1500
2000
2500
3000
3500
4000
Pneumonia Normal Tuberculosis
Jum
lah
Dat
a
Label
Plot Jumlah Data Latih dan Data Uji
Data Latih Data Uji
33
Gambar 4.3 Plot Jumlah Data Hasil Undersampling dan Oversampling
Sedangkan oversampling data merupakan kebalikannya dari undersampling
dimana kelompok data yang lebih sedikit dari kelompok data yang berjumlah paling
besar akan diperbanyak secara acak berdasarkan data contoh yang ada sehingga
jumlah data setiap kelompok akan sama besar, proses oversampling ini dapat dilihat
pada Gambar 4.3 bagian kanan.
4.4. Pemilihan Model dari Setiap Teknik Sampling
Pada tahap ini pemilihan model untuk setiap teknik sampling pada data latih
dilakukan dengan menghitung nilai loss setiap epoch pada data uji, kemudian nilai
loss pada data uji terendah dipilih sebagai model yang akan digunakan. Hal ini
dilakukan karena model yang memiliki nilai minimum loss pada data uji merupakan
model yang memiliki tingkat kesalahan terkecil untuk memprediksi kelas pada
setiap data.
4.4.1. Undersampling
Pada model CNN yang dibentuk dengan data latih dari hasil undersampling
dapat dilihat perubahan nilai loss pada data latih dan data uji setiap epoch pada
Gambar 4.4.
323
3420
323
3420
323
3420
0
500
1000
1500
2000
2500
3000
3500
4000
Undersampling Oversampling
Plot Jumlah Data Latih Hasil Undersampling dan Oversampling
Pneumonia Normal Tuberculosis
34
Gambar 4.4 Plot Nilai Loss Model CNN Undersampling
Pada Gambar 4.4 terlihat bahwa performa model dari nilai loss pada data
latih terus menurun hingga akhir pelatihan dengan nilai loss minimum sebesar
0,197. Sedangkan pada data uji, nilai loss terus menurun hingga mencapai
minimum pada epoch ke-1781 dengan nilai loss sebesar 0,373 lalu konvergen
setelahnya hingga akhir pelatihan. Sehingga model CNN dengan data latih hasil
undersampling yang dipilih adalah model yang dihasilkan pada epoch ke-1781.
4.4.2. Oversampling
Pada model CNN yang dibentuk dengan data latih dari hasil oversampling
dapat dilihat pada Gambar 4.5 perubahan nilai loss pada data latih dan data uji
setiap epoch. Pada gambar tersebut terlihat bahwa performa model dari nilai loss
pada data latih terus menurun hingga epoch ke-1999 dengan nilai loss minimum
sebesar 0,020 dan konvergen setelahnya hingga akhir pelatihan. Sedangkan pada
data uji, nilai loss terus menurun hingga mencapai minimum pada epoch ke-596
dengan nilai loss sebesar 0,244 lalu kemudian nilai loss pada data uji meningkat
hingga akhir pelatihan.
35
Gambar 4.5 Plot Nilai Loss Model CNN Oversampling
Penurunan nilai loss pada data latih dari awal hingga akhir pelatihan,
sedangkan peningkatan nilai loss yang terjadi pada data uji setelah epoch ke-596
mengindikasikan bahwa model yang dibentuk setelah epoch tersebut merupakan
model yang overfitting. Sehingga model CNN dari data latih oversampling yang
dipilih adalah model yang dihasilkan pada epoch ke-596.
4.5. Evaluasi
Setelah dilakukan pemilihan model dengan melihat nilai loss minimum pada
setiap teknik sampling yang berbeda, selanjutnya akan dilihat performa model
berdasarkan matrix classification dan confusion matrix pada data uji.
4.5.1. Undersampling
Pada Tabel 4.2 dapat dilihat confusion matrix pada model CNN yang
terbaik dengan data yang melalui proses undersampling, dari sini dapat dilihat
bahwa model dalam mengklasifikasikan penyakit pneumonia memiliki kesalahan
prediksi 70 dari 853 data, sedangkan yang normal memiliki total kesalahan
sebanyak 116 dari 408 dan tuberculosis memiliki total kesalahan sebanyak 3 dari
71 data. Dari hasil tersebut jika berdasarkan total kesalahan yang dibuat maka
36
model memiliki kemampuan terbaik saat mengklasifikasikan kelas penyakit
tuberculosis diikuti dengan kelas penyakit pneumonia dan terakhir kelas normal.
Tabel 4.2 Confusion Matrix Model CNN Undersampling
Pneumonia Normal Tuberculosis
Pneumonia 783 68 2
Normal 48 292 68
Tuberculosis 0 3 68
Dari confusion matrix pada Tabel 4.2, didapat hasil evaluasi berupa akurasi,
precision dan recall yang ditunjukan pada Tabel 4.3.
Tabel 4.3 Matrix Classification Model CNN Undersampling
Precision Recall Jumlah
Data
Pneumonia 0.94 0.92 853
Normal 0.80 0.72 408
Tuberculosis 0.49 0.96 71
Akurasi 0.86 1332
Micro Average 0.86 0.86 1332
Macro Average 0.75 0.86 1332
Berdasarkan Tabel 4.3 model CNN dengan data latih hasil undersampling
memiliki akurasi, micro average precision dan micro average recall sebesar 0,86.
Sedangkan macro average precision memiliki nilai sebesar 0,75 dan macro average
recall sebesar 0.86. Pada kelas pneumonia memiliki precision tertinggi sebesar 0,94
diikuti dengan normal 0,80 lalu tuberculosis 0,49. Walaupun tuberculosis memiliki
nilai precision paling rendah dibanding kelas lainnya, namun tuberculosis memiliki
nilai recall tertinggi sebesar 0,96 diikuti dengan pneumonia 0,92 kemudian normal
0,72.
4.5.2. Oversampling
Pada Tabel 4.4 dapat dilihat confusion matrix pada model CNN yang
terbaik dengan data yang melalui proses oversampling, dari sini dapat dilihat bahwa
model dalam mengklasifikasikan penyakit pneumonia memiliki kesalahan prediksi
37
47 dari 853 data, sedangkan yang normal memiliki total kesalahan sebanyak 83 dari
408 data dan tuberculosis memiliki total kesalahan sebanyak 10 dari 61 data. Dari
hasil tersebut jika berdasarkan total kesalahan yang dibuat maka model memiliki
kemampuan terbaik saat mengklasifikasikan kelas penyakit tuberculosis, setelah itu
kelas penyakit pneumonia dan terakhir kelas normal.
Tabel 4.4 Confusion Matrix Model CNN Oversampling
Pneumonia Normal Tuberculosis
Pneumonia 816 36 1
Normal 40 325 43
Tuberculosis 0 10 61
Dari confusion matrix pada Tabel 4.4, didapat hasil evaluasi berupa akurasi,
precision dan recall yang ditunjukan pada Tabel 4.5.
Tabel 4.5 Matrix Classification Model CNN Oversampling
Precision Recall Jumlah
Data
Pneumonia 0.95 0.96 853
Normal 0.88 0.80 408
Tuberculosis 0.58 0.86 71
Akurasi 0.90 1332
Micro Average 0.90 0.90 1332
Macro Average 0.80 0.87 1332
Berdasarkan Tabel 4.5 model CNN dengan oversampling memiliki akurasi,
micro average precision dan micro average recall sebesar 0,90. Sedangkan macro
average precision memiliki nilai sebesar 0,80 dan macro average recall sebesar
0.87. Pada precison dan recall nilai tertinggi ada pada kelas penyakit pneumonia
dengan nilai berturut-turut 0,95 dan 0,96. Untuk precision tertinggi kedua yaitu ada
pada kelas normal dengan nilai 0,88, kemudian tuberculosis dengan nilai precision
0,58. Sedangkan untuk nilai recall terbaik kedua yaitu pada kelas tuberculosis
dengan nilai 0,85 kemudian normal dengan nilai recall 0,80.
38
4.5.3. Waktu Pelatihan
Pelatihan yang dilakukan dengan spesifikasi sesuai pada subbab 3.2. dapat
dilihat pada gambar di bawah ini.
Gambar 4.6 Plot Waktu Pelatihan
Pada Gambar 4.6 dapat dilihat bahwa waktu yang dibutuhkan untuk
pelatihan Model CNN disetiap data latih hasil teknik sampling yang digunakan
berbeda, tentunya teknik oversampling memerlukan waktu pelatihan lebih lama
dibandingan dengan undersampling. Hal ini disebabkan banyaknya data latih yang
digunakan untuk pelatihan pada model CNN dengan oversampling jauh lebih
banyak dibandingkan model CNN yang dilatih dengan data latih hasil
undersampling.
4.6. Pemilihan Model Terbaik
Banyak permasalahan didalam penelitian untuk mendeteksi suatu penyakit,
lebih mengutamakan pengukuran dalam hal recall [24]. Dalam penelitian ini recall
penting karena, tingginya recall berarti Model CNN yang dibuat memiliki tingkat
kesalahan yang sedikit dalam mendeteksi sesorang terkena penyakit pneumonia
atau tuberculosis.
39
Gambar 4.7 Plot ROC Model CNN Undersampling
Pembentukan kurva ROC untuk menghitung nilai AUC setiap model
dilakukan untuk memilih model terbaik pada penelitian ini. Kurva ROC umum
digunakan dalam pengambilan keputusan medis dan juga digunakan dalam
pemilihan model terbaik dari algoritma machine learning dan penelitian pada
bidang data mining [17]. Kurva ROC meringkas dan menampilkan secara
informatif dari performa sebuah model terutama recall.
Berdasarkan Gambar 4.7 dan Gambar 4.8 performa model berdasarkan
nilai AUC terlihat bahwa model CNN yang dihasilkan dari data latih hasil
oversampling lebih baik dibandingkan model CNN yang dihasilkan dari data latih
hasil undersampling. Dimana nilai micro average AUC , macro average AUC, AUC
kelas pneumonia, AUC kelas normal dan AUC kelas tuberculosis berturut-turut
pada model CNN hasil oversampling adalah 0,98; 0,98; 0,98; 0,96 dan 0,99.
40
Gambar 4.8 Plot ROC Model CNN Oversampling
Sedangkan pada model CNN undersampling nilai micro average AUC,
macro average AUC, AUC kelas pneumonia, AUC kelas normal dan AUC kelas
tuberculosis berturut-turut yaitu 0,96; 095; 0,97; 0,91; 0,98. Karena setiap nilai
AUC pada model CNN oversampling lebih besar dibanding model CNN
undersampling maka model terbaik dari hasil data latih setiap teknik sampling
adalah model CNN yang dibuat dengan data latih hasil oversampling.
41
BAB V
PENUTUP
5.1. Kesimpulan
Berdasarkan data dan hasil penelitian yang dilakukan memperlihatkan
bahwa model CNN terbaik adalah model yang dihasilkan oleh data latih hasil
oversampling dengan nilai AUC pada kelas tuberculosis sebesar 0,99 dan AUC
pada kelas pneumonia sebesar 0,98, serta hasil prediksi yang mampu
mengidentifikasi sebanyak 86% penyakit tuberculosis dan 96% penyakit
pneumonia secara benar.
5.2. Saran
Pada penelitian kali ini, terdapat beberapa hal yang mungkin dapat
dikembangkan dimasa depan. Oleh sebab itu, penulis ingin memberikan saran
untuk penelitian selanjutnya yaitu:
1. Dapat menambahkan preprocessing lain seperti penghilangan tulang pada
data CXR.
2. Dapat meningkatkan jumlah data setiap kelas baik secara manual maupun
menggunakan generator seperti GAN.
3. Dapat melakukan penelitian menggunakan arsitektur CNN lain.
4. Dapat melakukan penelitian menggunakan optimizer lain.
5. Dapat melakukan penelitian dengan menambahkan teknik regularization
lain untuk mencegah overfitting dan mempercepat proses pelatihan.
42
REFERENSI
[1] “Pneumonia Vs TBC, Sama Nggak Sih? Yuk Tanya Dokter Paru.” [Online].
Tersedia: https://health.detik.com/berita-detikhealth/d-4298312/pneumon
ia-vs-tbc-sama-nggak-sih-yuk-tanya-dokter-paru. [Accessed: 08-Juli-2019].
[2] “Tuberculosis.” [Online]. Available: https://www.who.int/news-room/fact-
sheets/detail/tuberculosis. [Accessed: 08-Juli-2019].
[3] “Pneumonia.” [Online]. Available: https://www.who.int/news-room/fact-
sheets/detail/pneumonia. [Accessed: 08-Juli-2019].
[4] C. Qin, D. Yao, Y. Shi, dan Z. Song, “Computer-Aided Detection in Chest
Radiography Based on Artificial Intelligence: A Survey,” BioMedical
Engineering Online, vol. 17, no. 1, pp. 1–23, 2018. https://doi.org/
10.1186/s12938
[5] A. M. Schilham, B. van Ginneken, dan M. Loog, “A Computer-Aided
Diagnosis System for Detection of Lung Nodules in Chest Radiographs with
An Evaluation on A Public Database,” Medical Image Analysis, vol. 10, no.
2, pp. 247–258, 2006.
[6] J. H. Tan, U. R. Acharya, C. Tan, K. T. Abraham, dan C. M. Lim,
“Computer-Assisted Diagnosis of Tuberculosis: A First Order Statistical
Approach to Chest Radiograph,” Journal of Medical Systems, vol. 36, no. 5,
pp. 2751–2759, Oktober. 2012.
[7] S. Hwang, H.-E. Kim, J. Jeong, dan H.-J. Kim, “A Novel Approach for
Tuberculosis Screening Based on Deep Convolutional Neural Networks,”
In: Medical imaging 2016: computer-aided diagnosis, Vol. 9785, San Diego:
SPIE; 2016. https://doi.org/10.1117/12.2216198
[8] Y. Bar, I. Diamant, L. Wolf, dan H. Greenspan, “Deep Learning with Non-
Medical Training Used for Chest Pathology Identification,” In: SPIE
medical imaging; Orlando, Florida, United States. SPIE; 2015. p. 7.
https://doi.org/ 10.1117/12.2083124.
43
[9] R. H. Abiyev dan M. K. S. Ma’aitah, “Deep Convolutional Neural Networks
for Chest Diseases Detection,” Journal of Healthcare Engineering, vol.
2018, 2018.
[10] O. Ruuskanen, E. Lahti, L. C. Jennings, dan D. R. Murdoch, “Viral
Pneumonia,” Lancet, vol. 377, no. 9773, pp. 1264–1275, April. 2011.
[11] I. A. Campbell dan O. Bah-Sow, “Pulmonary Tuberculosis: Diagnosis And
Treatment,” BMJ, vol. 332, no. 7551, pp. 1194–7, Mei 2006.
[12] F. Rosenblatt, “The Perceptron: A Probabilistic Model for Information
Storage and Organization in The Brain,” Psychological Review, vol. 65, no.
6, pp. 386–408, 1958.
[13] C. Aggarwal, Neural Networks and Deep Learning. Cham: Springer
International Publishing, 2018.
[14] D. H. Hubel dan T. N. Wiesel, “Receptive Fields and Functional Architecture
of Monkey Striate Cortex,” The Journal of Physiology, vol. 195, no. 1, pp.
215–243, Mar. 1968.
[15] M. Sokolova dan G. Lapalme, “A Systematic Analysis of Performance
Measures for Classification Tasks,” Information Processing and
Management, vol. 45, no. 4, pp. 427–437, 2009.
[16] F. Krüger, “Activity, Context, and Plan Recognition with Computational
Causal Behaviour Models” Ph.D. Dissertation, University of Rostock , 2016.
[17] T. Fawcett, “An Introduction to ROC Analysis,” Pattern Recognition
Letters, vol. 27, no. 8, pp. 861–874, 2006.
[18] M. Paul, “Chest X-Ray Images (Pneumonia) | Kaggle.” [Online]. Available:
https://www.kaggle.com/paultimothymooney/chest-xray-pneumonia.
[Accessed: 31-Jul-2019].
[19] M. Kevin, “Pulmonary Chest X-Ray Abnormalities | Kaggle” [Online].
Available: https://www.kaggle.com/ kmader/pulmonary-chest-xray-
abnormalities. [Accessed: 31-Jul-2019].
[20] D. S. Kermany, K. Zhang, dan M. H. Goldbaum, “Labeled Optical
Coherence Tomography (OCT) and Chest X-Ray Images for Classification,”
2018.
44
[21] D. S. Kermany et al, “Identifying Medical Diagnoses and Treatable Diseases
by Image-Based Deep Learning,” Cell, vol. 172, no. 5, pp. 1122-1131.e9,
Feb. 2018.
[22] S. Jaeger, S. Candemir, S. Antani, Y.-X. J. Wáng, P.-X. Lu, dan G. Thoma,
“Two Public Chest X-Ray Datasets for Computer-Aided Screening of
Pulmonary Diseases,” Quantitative Imaging in Medicine and Surgery, vol.
4, no. 6, pp. 475–7, Dec. 2014.
[23] A. Somasundaram dan U. S. Reddy, “Data Imbalance: Effects and Solutions
for Classification of Large and Highly Imbalanced Data,” In Proceedings Of
1st International Conference On Research In Engineering, Computers And
Technology (ICRECT 2016), 2016, no. November, pp. 28–34.
[24] Y. Zhao, Z. S.-Y. Wong, dan K. L. Tsui, “A Framework of Rebalancing
Imbalanced Healthcare Data for Rare Events’ Classification: A Case of
Look-Alike Sound-Alike Mix-Up Incident Detection,” Journal of
Healthcare Engineering, vol. 2018, p. 6275435, 2018.
45
LEMBAR PENGESAHANPERNYATAANLEMBAR PERNYATAAN PERSETUJUANPERSEMBAHAN DAN MOTTOABSTRAKABSTRACTKATA PENGANTARDAFTAR ISIDAFTAR GAMBARDAFTAR TABELBAB I1.1. Latar Belakang1.2. Rumusan Masalah1.3. Batasan Masalah1.4. Tujuan Penelitian1.5. Manfaat Penelitian
BAB II2.1. Penyakit Paru-Paru2.2. Neural Network2.3. Multi Layer Neural Network2.4. Fungsi Aktivasi2.5. Loss Function2.6. Convolutional Neural Network2.7. Backpropagation2.8. Confusion Matrix2.9. Kurva ROC dan AUC
BAB III3.1. Sumber Data3.2. Alur Penelitian3.2.6 Pemilihan Model dari Setiap Teknik Sampling
BAB IV4.1. Hasil Preprocessing Data4.2. Pembagian Data4.3. Keseimbangan Data4.4. Pemilihan Model dari Setiap Teknik Sampling4.5. Evaluasi4.6. Pemilihan Model Terbaik
BAB V5.1. Kesimpulan5.2. Saran
REFERENSI