59
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

KLASIFIKASI PENYAKIT TUBERCULOSIS DAN PNEUMONIA PADA …repository.uinjkt.ac.id/dspace/bitstream/123456789... · Abdul Hamid, Klasifikasi Penyakit Tuberculosis dan Pneumonia pada

  • 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