MIND Journal | ISSN (p): 2528-0015  | ISSN (e): 2528-0902
| Vol. 6 | No. 2 | Halaman 221 - 235
Desember 2021

## Gated Recurrent Units dalam Mendeteksi Obstructive Sleep Apnea

## JASMAN PARDEDE, MUHAMMAD FAUZAN RASPATI
Program Studi Informatika, Institut Teknologi Nasional Bandung Email: jasman@itenas.ac.id
Received 4 Agustus 2021 | Revised 16 November 2021 | Accepted 30 November 2021

## ABSTRAK
Dalam  melakukan  penelitian  obstructive  sleep  apnea  (OSA),  polysomnography (PSG)  digunakan  untuk  diagnosis.  Namun  subjek  diharuskan  menginap dilaboratorium  selama  beberapa  malam  untuk  melakukan  tes  dengan  PSG  dan karena banyaknya alat yang harus dikenakan pada tubuh dapat membuat tidak nyaman saat pengambilan data. Belakangan ini, beberapa peneliti mengunakan single-lead  ECG  untuk  melakukan  deteksi  OSA.  Untuk  menghasilkan  model terbaik,  akan  dilakukan  eksperimen  training,  dengan  batch  normalization  dan dropout  yang  berbeda.  Pada  penelitian  ini  apnea-ecg  dataset  digunakan,  RR- Interval  dan  amplitudo  QRS  complex  dari  released set  berjumlah  35  data  akan disegmentasi  permenit  untuk  digunakan  sebagai  input  dari  arsitektur  yang diajukan adalah gated recurrent unit (GRU). Lalu withheld set berjumlah 35 data akan digunakan untuk pengujian per-segment dan per-recording. Kinerja sistem diukur  berdasarkan  accuracy,  sensitifity,  dan  specificity  dengan  pengujian  per- segment  mendapat  hasil  accuracy  83.92%,  sensitifity  81.28%,  dan  specificity 85.55%,  dan  pengujian  per-recording  mendapat  hasil  accuracy  97.14%, sensitifity 95.65% dan specificity 100%.
Kata kunci : Obstructive sleep apnea, GRU, ECG, RR-Interval, QRS complex.

## ABSTRACT
In  conducting  obstructive  sleep  apnea  (OSA)  studies,  polysomnography  (PSG) was  used  for  the  diagnosis.  However,  the  subject  was  required  to  stay  in  the laboratory for several nights to carry out tests with the PSG and because of the many  devices  that  had  to  be  worn  on  the  body,  it  could  be  uncomfortable  to collect data. Recently, several researchers have used single-lead ECG to detect OSA.  To  produce  the  best  model,  training  experiments  will  be  conducted,  with different batch normalization and dropout. In this study, the apnea-ecg dataset is used,  the  RR-Interval  and  the  QRS  complex  amplitude  from  the  released  set totaling  35  data  will  be  segmented  per  minute  to  be  used  as  input  for  the proposed architecture is the gated recurrent unit (GRU). Then the withheld set of 35  data  will  be  used  for  per-segment  and  per-recording  testing.  System performance  was  measured  based  on  accuracy,  sensitivity,  and  specificity  with per-segment  testing  getting  83.92%  accuracy,  81.28%  sensitivity,  and  85.55% specificity,  and  per-recording  testing  got  97.14%  accuracy,  95.65%  sensitivity and 100% specificity.
Keywords :  Obstructive  sleep  apnea,  GRU,  ECG,  RR-Interval,  QRS  complex.
Gated recurrent units dalam Mendeteksi Obstructive Sleep Apnea

## 1. PENDAHULUAN
Salah  satu  gangguan  tidur  yang  paling  sering  ditemukan  adalah sleep  apnea  (henti  nafas pada waktu tidur). Beberapa gejala dari sleep apnea berupa rasa tercekik ketika tidur, nafas terengah-engah,  mengantuk  dipagi  hari,  hilangnya  konsentrasi,  dan  gejala  yang  paling sering  timbul  pada sleep  apnea  adalah  mendengkur.  Mendengkur  (snoring)  adalah  suara bising  yang  disebabkan  oleh  aliran  udara  melalui  sumbatan  saluran  nafas  pada  bagian belakang  hidung  dan  mulut  yang  terjadi  saat  tidur. Sleep  apnea  ditandai  dengan  kolaps berulang dari saluran nafas atas (Darmadi, Rizal, Sunarya, 2015) . Pada 35-45% pria dan 15-28%  wanita  memiliki  kebiasaan  mendengkur.  Akan  tetapi,  tidak  semua  orang  yang mempunyai  kebiasaan  mendengkur  menderita  OSA (Purwowiyoto,  2018) .  Pengaruh buruk dari mendengkur dapat mengakibatkan dampak yang serius seperti peningkatan risiko terjadinya  tekanan  darah  tinggi,  serangan  jantung,  stroke,  depresi  berat,  sulit  konsentrasi, frustasi, dan sering marah. Kualitas tidur yang tidak baik disebabkan oleh mendengkur juga dapat menyebabkan seseorang menjadi sering mengantuk saat beraktivitas.
Untuk melakukan sebuah diagnosis OSA, dilakukan full night polysomnography (PSG) pada laboratorium tidur (Wang, 2019) . PSG melakukan rekaman minimal sebelas sinyal fisiologis yang  dikumpulkan  dari  berbagai  sensor,  beberapa  diantaranya  adalah electrocardiogram (ECG), electromyogram (EMG), electroencephalogram (EEG), electrooculography (EOG), dan sinyal  pernafasan (Song,  2016) .  Dimana  sensor  ini  digunakan  pada  tubuh  yang  akan melakukan  diagnosis  OSA,  sehingga  membuat  sedikit  tidak  nyaman  saat  hendak  tidur. Ukuran  keparahan  dari  OSA  dapat  dilihat  dari  AHI  ( apnea-hypopnea  index),  kriteria  AHI berdasarkan  standar  adalah  AHI  <  5  diindikasikan  sebagai  kondisi  normal,  AHI  15  –  30 sebagai kategori ringan, AHI > 30 diindikasikan sebagai kategori berat (Hudgel, 2016) .
Beberapa penelitian mengenai OSA dengan menggunakan dataset apnea-ecg dari physionet sebelumnya pernah dilakukan. Pada tahun 2015 Carolina Varon (Varon, 2015) melakukan penelitian single-lead    ECG  yang  disegmentasi  permenit  untuk  deteksi  sleep  apnea menggunakan  dua  fitur  yang  berasal  dari  sinyal  ECG  yaitu QRS  complex  dan  RR-interval (RRI),  klasifikasi  menggunakan  LS-SVM.  Pada  tahun  2016  Changyue  Song (Song,  2016) melakukan penelitian single-lead ECG dengan 2 ekstrasi fitur yaitu RRI dan sinyal EDR dan data disegmentasi permenit, proses klasifikasi menggunakan metode HMM-SVM. Tao Wang (Wang,  2019) pada  2019  melakukan  penelitian  OSA  dengan  fitur  otomatis  dari  RRI  dan amplitude,  dalam  melakukan  klasifikasinya  menggunakan  arsitektur  LeNet-5.  Lalu  pada tahun 2021 Haifa Almutairi (Almutairi, Hassan, Datta, 2021) melakukan penelitian OSA menggunakan  ekstrasi  fitur  dari  RRI  dan QRS amplitude, k-fold cross validation digunakan untuk data dan CNN-LSTM digunakan untuk klasifikasi.
Pada  penelitian  ini,  akan  melakukan  deteksi  OSA  menggunakan  sinyal  ECG  yang  akan dilakukan preprocessing  dengan  melakukan  ekstrasi  fitur  frekuensi  domain  dari  RRI  dan amplitude  QRS  complex,  proses  klasifikasi  menggunakan  recurrent  neural  network  dengan arsitektur gated  recurrent  unit  (GRU),  dan  untuk  mengukur  kinerja  sistem  akan menggunakan confusion-matrix,  dengan  menghitung  accuracy,  sensitifity,  dan  spesificity. Dataset  yang  digunakan  dalam  penelitian  ini  berasal  dari  Dr.  Thomas  Penzel  dari  Phillips- University, Marburg, Jerman.

## 2. METODE PENELITIAN
Pada penelitian ini, masukan untuk sistem berupa data sinyal ECG dengan format .dat, .apn, dan  .qrs  yang  didapatkan  dari  Physionet.  Data  ini  akan  melalui  tahapan  pre-processing, training, dan testing.

## 2.1. Gated Recurrent Unit
Gated recurrent unit merupakan salah satu varian dari recurrent neural network yang dibuat untuk  membuat  setiap recurrent unit dapat menangkap  dependencies dengan skala waktu yang berbeda – beda secara adaptive (Chung, 2014) , dan juga untuk mengatasi masalah vanishing gradient (Shen, 2018) . Gambar 1 merupakan arsitektur dari GRU.
Gambar 1. Arsitektur Gated Recurrent Unit
Gambar 2. Arsitektur LSTM(Kiri) dan GRU(Kanan)
GRU  merupakan  variasi  yang  lebih  sederhana  dari  varian  lainnya,  yaitu long  short  term memory  (LSTM).  Gambar  2  merupakan  ilustrasi  dari  arsitektur  GRU  dan  LSTM.  GRU merupakan salah satu arsitektur yang didesain untuk mengatasi masalah data sekuens atau time-series (Le,  2019) .  GRU  memiliki  tiga  gerbang  dalam  melakukan  komputasi  yaitu update  gate  pada  Persamaan  1  untuk  membantu  model  menentukan  berapa  banyak informasi yang perlu dilanjutkan ke  tahap selanjutnya, reset gate pada Persamaan 2 untuk memutuskan  berapa  banyak  informasi  sebelumnya  yang  akan  dilupakan, current  memory content  pada  Persamaan  3  dimana  akan  menggunakan  reset  gate  untuk  menyimpan informasi  yang  relevan  dari  masa  lalu,  dan final  memory  pada  Persamaan  4  yang
menggunakan update gate untuk menyimpan informasi untuk unit saat ini dan informasi dari langkah sebelumnya untuk diteruskan ke jaringan selanjutnya.
( ) (1) ( ) (2) ̃         ( ) (3) (   ) ( )    ̃ (4)
Keterangan:
= Update gate = Reset gate ̃ = Current memory content
= Final memory = Fungsi aktivasi sigmoid = Fungsi aktivasi = Bobot = Input = hidden state
= Bias vector
Untuk mekanisme dari gerbang GRU dimana , , ̃, dan adalah update gate, reset gate, current  memory  content,  dan  final  memory.  Untuk dan merepresentasikan  fungsi aktivasi yang digunakan pada GRU. merupakan input ke layer pada waktu . Dan untuk
, , dan merupakan bobot, hidden state, dan bias vector.
2.2. Dataset Pada  penelitian  ini, dataset yang digunakan adalah  apnea-ecg dari physionet.  Terdapat 70 rekaman ECG pada dataset ini dengan durasi yang bervariasi, mulai dari 401 menit hingga 578  menit (Penzel,  2000) .  Rekaman  ini  memiliki  resolusi  16-bit  dan  rekaman  diambil sampelnya  pada  100  Hz.  Rekaman  ini  dilakukan  segmentasi  1  menit  dan  diberi  label “normal”  (N)  dan  “apnea”  (A) oleh  ahlinya (Li,  2018) .  Rekaman  ECG  ini  terdiri dari  2  set dimana masing – masingnya berisi 35 rekaman. Set pertama ( released set) digunakan untuk membangun  model  dan  memvalidasi  model  dan  set  kedua  ( withheld set) digunakan untuk menguji model.

## Gambar 3. Normal(atas) dan Apnea(bawah)
Terdapat  beberapa  file  yang  saling  terhubung  pada  setiap  rekaman,  .hea  merupakan informasi mengenai nama dan format dari rekaman, .apn berisi anotasi untuk setiap menit
dari rekaman yang menunjukan ada atau tidaknya apnea pada setiap menitnya, .qrs berisi anotasi  QRS  complex  pada  sinyal  ECG,  dan  .dat  berisi  ECG  sinyal.  Karena  durasi  rekaman ECG  yang  bervariasi,  membuat  kelas  yang  terdapat  pada dataset ini memiliki jumlah yang berbeda. Sehingga dataset yang ini menjadi imbalance, dimana jumlah salah satu kelas lebih banyak  daripada  kelas  yang  lainnya (Kulkarni,  Chong,  Batarseh,  2020) .  Berikut merupakan  cuplikan  dan  visualisasi  salah  satu  rekaman  ECG  dengan  ekstensi  .dat  dari dataset yang digunakan.
Gambar 4. Cuplikan Data Selama 1 Detik
Gambar 5. Visualisasi data selama 1 detik
2.3. Perancangan Sistem Bagian ini memaparkan proses perancangan sistem deteksi obstructive sleep apnea dengan metode gated recurrent unit. Gambar 6 merupakan blok diagram secara keseluruhan.

## Gated recurrent units dalam Mendeteksi Obstructive Sleep Apnea
Gambar 6. Blok Diagram Sistem
Gambar 7. Blok Diagram Pre-Processing
Released  set  yang  berjumlah  35  rekaman  ECG  disegmentasi  menjadi  16461  menit,  untuk withheld  set  yang  berjumlah  35  rekaman  ECG  akan  disegmentasi  menjadi  16732  menit. Released set yang sudah disegmentasi akan dibagi menjadi 80% data latih dan 20% data validasi,  dan  untuk  data  tes  akan  menggunakan withheld set dengan 2 macam  pengujian. Kemudian  setiap  data  akan  dilakukan pre-processing untuk mendapatkan nilai  – nilai yang dibutuhkan.  Sebelum  melakukan  deteksi  OSA,  akan  dilakukan  pelatihan  menggunakan metode GRU dengan data latih dan data validasi, keluaran hasil pelatihan ini menghasilkan model dengan format .h5, dengan data validasi yang akan mengukur kinerja model hingga menghasilkan  model  terbaik  yang  akan  digunakan  untuk  testing.  Data  tes  yang  sudah disiapkan  dan  melalui  tahap pre-processing  akan  digunakan  untuk  testing  terhadap  model terbaik yang dihasilkan, hingga output dari data tes ini adalah deteksi OSA.

## 2.4. Pre-Processing
Tahapan pre-processing  pada  Gambar  8,  akan  mengekstraksi  interval  waktu  antara  detak jantung  secara  berturut  –  turut  untuk  mendapatkan RR-Interval.  Proses  ekstrasi  yang pertama adalah mendapatkan nilai RR-interval. RR-interval  adalah jarak dari 2 QRS complex (QRS[n]  –  QRS[1-n]),  dan  domain  waktu  dari RR-interval  adalah  titik  tengah  dari  QRS complex.

## Gambar 8. QRS Complex pada Sinyal ECG
Gambar 9. Ilustrasi ECG dengan QRS dan RR Interval (Singh, Vinod, Saxena 2004)
Untuk  beberapa  kasus,  nilai RR-interval  akan  muncul  dengan  nilai  yang  tidak  diinginkan sehingga akan menimbulkan hasil yang tidak sempurna, maka akan dilakukan low-pass filter untuk  menghilangkan  derau  menggunakan moving  median.  RR-interval  yang  sudah didapatkan  akan  dilakukan cubic  spline  interpolation  untuk  menghilangkan  interval  palsu (Almutairi et al., 2021).
Gambar 10. Plot RR-interval dari Domain Waktu
Setelah  dilakukan cubic  spline  interpolation,  nilai  akan  dilakukan  batchnormalization  yang berguna  untuk  mempercepat  proses  training  dan  meningkatkan learning  rates  pada  saat pembuatan model. Batchnormalization berkerja dengan menyamakan distribusi pada setiap
nilai  input  yang  selalu  berubah  –  ubah  dikarenakan  perubahan  parameter  pada  layer sebelumnya selama proses training (Ioffe, Szegedy, 2016) .

## 2.5. Training
Proses ini merupakan pembuatan model dengan arsitektur GRU. Data latih dan data validasi akan  melalui  tahapan  ini,  dimana  akan  melakukan training  menggunakan  metode  GRU dengan parameter seperti pada Tabel 1.
Tabel 1. Parameter Model Epoch Optimizer Learning rate Dropout 100 Adam 0.0005 0.1 0.2 0.3 0.4 0.5
Pada penelitian ini terdapat beberapa parameter yang digunakan, epoch digunakan sebagai penanda  berapa  kali  model  melakukan  perulangan  pada  data  latih  secara  keseluruhan. Optimizer  yang  digunakan  pada  pembuatan  model  ini  adalah  adam.  Adam  pertama  kali dipresentasikan  pada  ICLR  2015  oleh  Diederik  P.Kingma  dan  Jimmi  Lei  Ba (Kingma,  Ba, 2015) .  Pada  beberapa  penelitian,  optimizer  adam  memiliki  hasil  yang  baik  dibandingkan dengan optimizer lainnya (Brownlee, 2017) . Dalam mengatasi perbedaan jumlah class dari apnea  dan  normal,  regularisasi dropout  dijadikan  eksperimen  dalam  menghasilkan  model terbaik,  karena dropout  merupakan  salah  satu  cara  untuk  menghindari  overfitting (Srivastava, 1993) .

## 2.6. Testing
Pada  tahap  ini  akan  dilakukan  2  macam  pengujian,  dengan  melakukan  pengujian  per- segment dan per-recording. Pengujian per-segment dilakukan untuk menguji kinerja sistem secara keseluruhan karena menggunakan keseluruhan rekaman yang disegmentasi permenit dan juga memberi dasar yang kuat untuk melakukan diagnosis seseorang yang dicurigai OSA (Wang, 2019) . Sebuah rekaman ECG terdiri dari beberapa segmentasi permenit, dan untuk klasifikasi  setiap  rekaman  berdasarkan  pada  keseluruhan  segmentasi  permenit,  maka dilakukan pengujian per-recording untuk melakukan deteksi OSA. AHI akan digunakan untuk membedakan mana rekaman yang OSA dan normal pada pengujian per- recording. Jika AHI >  5  maka  akan  dideteksi  sebagai  OSA  dan  jika  kurang  akan  dideteksi  sebagai  normal. Karena setiap segmentasi permenit memiliki label OSA atau normal, maka perkiraan jumlah menit dengan OSA per jam dapat dihitung sebagai berikut:
(5)
Dimana merupakan jumlah menit segmentasi rekaman ECG, merupakan jumlah jam dari segmentasi rekaman ECG, lalu akan dikalikan dengan jumlah segmentasi OSA. Nilai AHI ini  nantinya  akan  dibandingkan  dengan  nilai  AHI  yang  sebenarnya  dari dataset  untuk menentukan rekaman ECG tersebut OSA atau normal. Tahapan testing seperti pada Gambar 11.

## Gambar 11. Tahapan Testing

## 2.7. Evaluasi
Evaluasi  dalam  mengukur  kinerja  sistem ini,  mengukur accuracy, sensitifity,  dan specificity dengan confusion  matrix.  Dalam  melakukan  diagnosis  sebuah  penyakit,  sensitifity  dan specificity  biasa  digunakan  untuk  evaluasi  kinerja  sistem.  Confusion  matrix  merupakan ukuran yang biasa digunakan dalam memecahkan masalah binary classification dan masalah multiclass  classification (Kulkarni,  Chong,  Batarseh,  2020) . Sensitivity  merupakan persentase true  positive  dengan  kondisi  OSA,  dan  specificity  merupakan  persentase  true negative dengan kondisi normal (Bolin, Lam, 2013) . Tabel 2 merupakan confusion matrix untuk binary classification.
Tabel 2. Confusion Matrix
Predicted A ct ual Negative Positive Negative TN FP Positive FN TP (6) (7)
(8)
Keterangan :
 TP = Jumlah class apnea yang terprediksi apnea.
 TN = Jumlah class normal yang terprediksi normal.
 FP = Jumlah class normal yang terprediksi apnea.
 FN = Jumlah class apnea yang terprediksi normal.
Pada  penelitian  ini  hasil  dari  TP  merupakan  “ true  positive”  dimana  data  positif  yang terprediksi  benar,  subjek  yang  OSA  terprediksi  memiliki  OSA.  Untuk  FP  merupakan  “ false positive”  dimana  data  negative  terprediksi  sebagai  data  positive,  subjek  yang  normal terprediksi memiliki OSA. Begitupun sebaliknya, untuk TN merupakan “ true negative” dimana data  negative  yang  terprediksi  benar,  subjek  normal  terprediksi  normal.  Untuk  FN merupakan  “ false negative” dimana data  positive terprediksi sebagai data  negative, subjek yang OSA terprediksi normal.

## 3. HASIL DAN PEMBAHASAN
Penelitian  ini  dilakukan  menggunakan  produk  dari Google  Research  yaitu  Google  Colab (Colab) untuk membantu proses training, spesifikasi yang disediakan untuk colab pro yaitu menggunakan Graphic  Processing  Unit  (GPU)  Tesla  P100.  Untuk  testing  menggunakan processor Intel Core i7-5500U @2.40GHz, Random Access Memory (RAM) 8 GB, GPU Nvidia GeForce GTX 850M. Hasil penelitian ini akan dituangkan dan dijabarkan pada bagian ini. Sistem ini dibangun menggunakan bahasa pemrograman Python 3.8 dengan menggunakan library  dari Tensorflow  2.5,  dalam  mengolah  sinyal  ECG  menggunakan  library  waveform- database (WFDB) dan library heart rate variability (HRV).

## 3.1. Training
Untuk  mendapatkan  model  terbaik  dari  arsitektur  GRU,  dilakukan  pelatihan  model  dengan menggunakan released set yang telah dibagi menjadi 80% data latih dan 20% data validasi. Layer yang digunakan untuk membangun model terdapat pada Tabel 3.
Tabel 3. Struktur Model No Layer Unit 1. Batchnormalization - 2. GRU 64 3. GRU 1 128 4. Dense 64 5. Dense 1 1
Eksperimen  dilakukan  menggunakan dropout  0.1,  0.2,  0.3,  0.4,  dan  0.5,  100  epoch,  128 batch  size,  optimizer  Adam,  dan  learning  rate  0.0005.  Gambar  10  dan  Gambar  11 merupakan  hasil accuracy  dan  loss  dari eksperimen  training.  Dimana  sumbu  x  merupakan jumlah epoch yang digunakan dan sumbu y merupakan informasi accuracy dan loss.
Gambar 12. Accuracy untuk Dropout yang Berbeda

## Gambar 13. Loss untuk Dropout yang berbeda
Dari  grafik  yang  ditampilkan  pada  Gambar  10  dan  Gambar  11,  memperlihatkan perubahan accuracy dan  loss saat proses training dengan  dropout yang berbeda.  Seluruh model akan digunakan  pengujian  untuk  mengetahui  pada dropout  berapa  yang  menghasilkan  model terbaik.

## 3.2. Pengujian
Pengujian  terhadap  model  terbaik  akan  dilakukan  dengan  2  cara,  yaitu  pengujian  per- segment dan per-recording.

## 3.2.1. Pengujian Per- Segment
Pada  pengujian  per- segment  akan  menggunakan  20%  data  dari  withheld  set  yang  telah disegmentasi  menjadi  16732.  Sebanyak  3347  data  dari withheld  set  secara  acak  akan digunakan  untuk  pengujian  per- segment.  Dengan  mengukur  kinerja  arsitektur  GRU menggunakan confusion-matrix  dimana  mengukur  kinerja  sistem  secara  keseluruhan berdasarkan accuracy, sensitivity dan specificity dihitung menggunakan Persamaan (6), (7), dan  (8).  Pada  Gambar  12  merupakan  hasil confusion-matrix  dari  3347  data  test  yang digunakan, dan Tabel 4 merupakan perbandingan dari setiap model.
Tabel 4. Perbandingan setiap Model Model Accuracy Sensitifity Specificity Model 1 81.23% 71.55% 87.20% Model 2 83.92% 81.28% 85.55% Model 3 80.99% 80.09% 81.55% Model 4 80.16% 77.74% 81.65% Model 5 80.90% 71.78% 86.52%
Gambar 14. Confusion-matrix Data Test pada setiap Model
Berdasarkan  hasil  pengujian  per- segment  dengan  data  tes,  menunjukan  bahwa  model  2 memiliki accuracy  dan  sensitifity  yang  tinggi.  Sensitifity  yang  tinggi  penting  untuk  menjadi acuan dalam deteksi sebuah penyakit, karena memiliki hasil true positive yang tinggi . Maka model 2 akan digunakan untuk melakukan pengujian per-recording untuk deteksi OSA.

## 3.2.2. Pengujian Per- Recording
Untuk  mendeteksi  OSA  atau  normal  akan  menggunakan withheld  set  yang  berjumlah  35 rekaman  (x01  –  x35).  Nilai  AHI  akan  digunakan  untuk  diagnosis.  Perbandingan  nilai  AHI yang tersedia dengan hasil prediksi nilai AHI terdapat pada Tabel 5.
Tabel 5. Hasil Per- Recording untuk x01-x35 Rekaman ECG Anotasi Oleh Ahli Model GRU AHI Deteksi  AHI oleh Sistem Deteksi X01 63 OSA 36.2 OSA X02 37.7 OSA 21.7 OSA X03 0.13 Normal 0.64 Normal X04 0 Normal 0 Normal X05 34 OSA 33.9 OSA X06 0 Normal 0 Normal X07 21 OSA 24.6 OSA X08 48 OSA 33.9 OSA X09 18.5 OSA 14.7 OSA X10 10 OSA 7.20 OSA X11 5 Normal 0.92 Normal X12 33 OSA 4.91 Normal
Rekaman ECG Anotasi Oleh Ahli Model GRU AHI Deteksi  AHI oleh Sistem Deteksi X13 18.7 OSA 21.9 OSA X14 79.5 OSA 37.7 OSA X15 15.9 OSA 12 OSA X16 24 OSA 6.54 OSA X17 0 Normal 0.17 Normal X18 0 Normal 0 Normal X19 56.2 OSA 47.5 OSA X20 43 OSA 25.3 OSA X21 19 OSA 12.8 OSA X22 0 Normal 0 Normal X23 14.3 OSA 12 OSA X24 0 Normal 0 Normal X25 48 OSA 32.8 OSA X26 15.1 OSA 27.4 OSA X27 75 OSA 53.5 OSA X28 75 OSA 46.1 OSA X29 0 Normal 0 Normal X30 41 OSA 34.5 OSA X31 93.5 OSA 37.6 OSA X32 71.8 OSA 31.3 OSA X33 0.13 Normal 0.12 Normal X34 0.38 Normal 0.25 Normal X35 0 Normal 0 Normal Tabel 6. Evaluasi Per- Recording Predicted Pengukuran A ct ual Negative Positive Accuracy 97.14% Negative 12 0 Sensitivity 95.65% Positive 1 22 Specificity 100%
Dari  hasil  evaluasi  untuk  deteksi  OSA  per-recording  mendapatkan  hasil  akurasi  97.14%, namun  perlu  diingatkan  bahwa  withheld  set  hanya  memiliki  35  data,  yang  mengakibatkan pengujian per- segment mendapatkan hasil yang lebih rendah.

## 4. KESIMPULAN
Pada  penelitian  ini,  telah  mengimplementasikan  arsitektur  GRU  untuk  melakukan  deteksi OSA.  Model  GRU  pada  penelitian  ini  menggunakan  100 epoch,  128  batch  size,  optimizer Adam,  dan learning  rate  0.0005.  Dalam  melakukan  optimasi  model,  early  stopping  pada proses training digunakan untuk menghentikan proses pelatihan ketika akurasi validasi tidak ada  peningkatan  selama  20 epoch.  Regularisasi  dari  dropout  digunakan  untuk  membantu mengurangi overfitting pada model. Hasil eksperimen pada dropout 0.2 mendapatkan hasil pengujian  per-segmentasi  terbaik  dengan  hasil accuracy  83.92%,  sensitifity  81.28%,  dan specificity  85.55%.  Untuk  melakukan  pengujian  per-recording,  35  data  dari  withheld  set digunakan  untuk  deteksi  OSA,  dengan  hasil accuracy  97.14%,  sensitifity  95.65%  dan specificity  100%.  Kedua  pengujian  yang  dilakukan  memperlihatkan  bahwa  penggunaan jumlah data dapat mempengaruhi hasil accuracy yang didapatkan, sehingga pengujian per- recording  mendapatkan  hasil  yang  lebih  tinggi  karena  jumlah  data  yang  digunakan  tidak sebanyak pengujian per-segmentasi.

## DAFTAR RUJUKAN
Almutairi, H., Hassan, G. M., & Datta, A. (2021). Detection of obstructive sleep apnoea by ECG signals using deep learning architectures. European Signal Processing Conference,
2021-Janua, 1382–1386. https://doi.org/10.23919/Eusipco47968.2020.9287360
Bolin,  E.,  &  Lam,  W.  (2013).  A  review  of  sensitivity,  specificity,  and  likelihood  ratios: Evaluating  the  utility  of  the  electrocardiogram  as  a  screening  tool  in  hypertrophic cardiomyopathy.
Congenital Heart Disease, 8(5), 406–410.
https://doi.org/10.1111/chd.12083
Brownlee,  J.  (2017). Gentle  Introduction  to  the  Adam  Optimization  Algorithm  for  Deep Learning.  Neural  Networks.  https://machinelearningmastery.com/adam-optimization- algorithm-for-deep-learning/
Chung,  J.,  Gulcehre,  C.,  Cho,  K.,  &  Bengio,  Y.  (2014). Empirical  Evaluation  of  Gated Recurrent Neural Networks on Sequence Modeling. 1–9. http://arxiv.org/abs/1412.3555
Darmadi,  F.,  Rizal,  A.,  &  Sunarya,  U.  (2015). Deteksi  Sleep  Apnea  Melalui  Analisis  Suara Dengkuran Dengan Metode Mel Frekuensi Cepstrum. 2(2), 2681–2686.
Hudgel,  D.  W.  (2016).  Sleep  Apnea  Severity  Classification  Revisited. Sleep,  39(5),  1165– 1166. https://doi.org/10.5665/sleep.5776
Ioffe, S., & Szegedy, C. (2016). Batch Normalization: Accelerating Deep Network Training by Reducing  Internal  Covariate  Shift. Journalism  Practice,  10(6),  730–743. https://doi.org/10.1080/17512786.2015.1058180
Kingma,  D.  P.,  &  Ba,  J.  L.  (2015).  Adam:  A  method  for  stochastic  optimization. 3rd International  Conference  on  Learning  Representations,  ICLR  2015  -  Conference Track Proceedings, 1–15.
Kulkarni,  A.,  Chong,  D.,  &  Batarseh,  F.  A.  (2020).  Foundations  of  data  imbalance  and solutions  for  a  data  democracy.  In Data  Democracy:  At  the  Nexus  of  Artificial Intelligence,  Software  Development,  and  Knowledge  Engineering.  Elsevier  Inc. https://doi.org/10.1016/B978-0-12-818366-3.00005-8
Le,  X.  H.,  Ho,  H.  V.,  Lee,  G.,  &  Jung,  S.  (2019).  Application  of  Long  Short-Term  Memory (LSTM)  neural  network  for  flood  forecasting. Water  (Switzerland),  11(7). https://doi.org/10.3390/w11071387
Penzel, T., Moody, G. B., Mark, R. G., Goldberger, A. L., & Peter, J. H. (2000). Apnea-ECG database. Computers in Cardiology, 255–258.
Purwowiyoto,  S.  L.  (2018).  Obstructive  Sleep  Apnea  dan  Gagal  Jantung. YARSI  Medical Journal, 25(3), 172. https://doi.org/10.33476/jky.v25i3.364
Shen, G., Tan, Q., Zhang, H., Zeng, P., & Xu, J. (2018). Deep learning with gated recurrent unit networks for financial sequence predictions. Procedia Computer Science, 131, 895– 903. https://doi.org/10.1016/j.procs.2018.04.298
Singh,  D.,  Vinod,  K.,  &  Saxena,  S.  C.  (2004).  Sampling  frequency  of  the  RR  interval  time series for spectral analysis of heart rate variability. Journal of Medical Engineering and Technology, 28(6), 263–272. https://doi.org/10.1080/03091900410001662350
Song,  C.,  Liu,  K.,  Zhang,  X.,  Chen,  L.,  &  Xian,  X.  (2016).  An  Obstructive  Sleep  Apnea Detection  Approach  Using  a  Discriminative  Hidden  Markov  Model  from  ECG  Signals. IEEE Transactions on Biomedical Engineering, 63(7), 1532–1542. https://doi.org/10.1109/TBME.2015.2498199
Srivastava,  N.,  Hinton,  G.,  Krizhevsky,  A.,  Sutskever,  I.,  &  Salakhutdinov,  R.  (1993). Dropout: A Simple Way to Prevent Neural Networks from Overfittin.  Physics Letters B, 299(3–4), 345–350. https://doi.org/10.1016/0370-2693(93)90272-J
Varon, C., Caicedo, A., Testelmans, D., Buyse, B., & Van Huffel, S. (2015). A Novel Algorithm for  the  Automatic  Detection  of  Sleep  Apnea  from  Single-Lead  ECG. IEEE Transactions on Biomedical Engineering, 62(9), 2269–2278.
https://doi.org/10.1109/TBME.2015.2422378
Wang, T., Lu, C., Shen, G., & Hong, F. (2019). Sleep apnea detection from a single-lead ECG signal  with  automatic  feature-extraction  through  a  modified  LeNet-5  convolutional neural network. PeerJ, 2019(9), 1–17. https://doi.org/10.7717/peerj.7731