1. Introduction
생체신호와 관련된 프로젝트를 진행하고 있는데, 가장 어려운 부분은 역시나 메디컬 도메인 지식입니다.
작년 말부터 진행 중이었던 현재 프로젝트를 너무 데이터 그 자체와 약간의 도메인 지식 그리고 인공지능 모델링 측면에서만 봐서 그런지 너무나 더딘 개선 속도가 마음에 걸려서 처음으로 돌아왔습니다.
많은 생체신호 데이터를 사용 중이지만, 그 중에서도 가장 중심적으로 활용이 되어야 하는 ECG와 PPG에 관해서 조금 더 deep하게 알아볼 것입니다. 개별적인 논문을 모두 자세히 보려고 했지만, 사실 ECG라는 데이터로 할 수 있는 연구가 너무나 많다보니 Feature Extraction 역시 각 연구의 목적에 따라 처리 방법이 너무나 다릅니다.
제가 가지고 있는 데이터는 125Hz인 반면 대부분의 논문은 거의 5-10Hz 를 사용하기도 하고 400Hz를 사용하기도 하더라구요. 아무래도 추출 방식에 따라서도 전처리 기법이 매우 다르기도 해서 여러 논문을 훑어보며 어떤 방식을 사용하는구나! 정도로만 보고 넘어가야 할 것 같습니다.
2. ECG
제가 보유한 ECG 데이터는 125Hz로 측정되었습니다. 논문마다 추출된 샘플링 레이트가 차이가 나는 경우가 많습니다. Resampling 과정을 통해 데이터의 샘플링을 줄이거나 늘릴 수 있는데요, 매우 낮은 샘플링 레이트로 리샘플링한다면 신호로부터 얻을 수 있는 정보의 손실이 커질 수 있습니다.
어떤 논문에서는 5-10 Hz 구간의 샘플링을 사용하기도하고 400Hz에서 사용하기도 합니다.
125Hz에서 원본 데이터를 획득했다면, 400Hz로 업샘플링해도 추가적인 정보는 얻기 힘듭니다. 오히려 샘플링이 높을수록 데이터의 크기가 커지기 때문에 불필요한 계산 복잡성만 증가하게 되겠죠?
Automatic diagnosis of the 12-lead ECG using a deep neural network
이 논문은 심전도의 자동 진단을 위한 DNN의 사용 연구입니다.
1,676,384 명의 환자에게서 추출된 ECG 데이터를 사용하고, 1도 방실차단(1dAVb), 우각차단(RBBB), 좌각차단(LBBB), 동서맥(SB), 심방세동(AF), 동빈맥(ST)의 6가지 이상의 예측을 목표로 합니다.
Fig3.은 이 논문에서 사용한 DNN 구조인데요. 1차원 신호를 처리하고 분류하는 데 사용됩니다.
이 구조를 통해 학습하는 주요 목표는 심전도 데이터에서 6가지 ECG 문제를 정확하게 인식하고 분류하는 것이라고 합니다.
이 논문에서 사용된 방법이 400Hz 샘플링 속도로 리샘플링을 진행하고 7~10초의 신호를 4096 샘플로 zero padding 하여 입력값을 만들어 줍니다. 모델의 구조는 복잡하지 않게 설계되어 있습니다.
기본적인 Convolutional Layer 와 Residual Blocks을 사용했고 마지막에 Fully Connected Layer를 통해 심전도의 각 이상 상태에 대한 확률을 계산하게 됩니다.
결과를 보면 흉부외과 레지던트 의사들보다 높은 성능을 보였다고 하며 DNN 기반 ECG 분석이 단일 리드 설정에서 12-lead 검사로 일반화될 수 있다고 주장합니다.
ECG-SL: Electrocardiogram(ECG) Segment Learning, a deep learning method for ECG signal
이 논문은 ECG 신호의 주기적 특성을 명시적으로 모델링하기 위해 새로운 ECG 세그먼트 학습 프레임워크를 제시합니다. 기존의 딥러닝 접근법은 ECG 신호의 주기적 특성을 충분히 고려하지 않았다는 문제가 있다고 언급합니다.
ECG 신호를 개별 심장 박동 세그먼트로 분할하고 1차원 CNN 기반으로 오토인코더를 사용하여 특징을 추출합니다.
Transformer 인코더를 사용하여 시간적 정보를 학습하고 최종적으로 Attention Layer를 통해 예측을 수행합니다.
본 모델은 오토인코더를 사용하여 구조적 임베딩을 pretrain 하고 Transformer 인코더를 사용하여 masking된 세그먼트를 재구성하는 방식으로 시간적 표현을 학습합니다.
이 모델에서 인상깊은 점은 Saliency Map을 사용하여 모델의 의사 결정 과정을 시각화하고 사용자가 이해할 수 있도록 돕는다는 점입니다. ECG 신호의 주기적 특성을 명시적으로 모델링하는 새로운 접근법을 제안하고 , 다양한 임상 테스크에서 뛰어난 성능을 입증했습니다.
3. ECG feature에 대해서 알아보자 !
ECG(심전도) 신호에서 추출할 수 있는 주요 특징들 중 RMSSD, SDNN, pNN50은 심박 변이도(Heart Rate Variability, HRV)를 평가하는 데 중요한 지표입니다. 이들은 자율신경계의 활동과 심장 건강 상태를 반영하는 중요한 생리학적 정보를 제공합니다.
심박 변이도(Heart Rate Variability, HRV)는 연속적인 심장 박동 사이의 시간 변화를 측정하는 생리학적 현상입니다. HRV는 자율신경계의 기능과 심장의 적응력을 반영하는 중요한 지표로, 전반적인 건강 상태와 스트레스 대처 능력을 평가하는 데 광범위하게 사용됩니다.
HRV의 기본 원리는 건강한 심장이 외부 환경과 내부 상태의 변화에 따라 박동 간격을 지속적으로 조절한다는 것입니다. 예를 들어, 흡기 시에는 심박수가 약간 증가하고 호기 시에는 감소하는 현상(호흡 동성 부정맥)이 나타납니다. 이러한 변화는 주로 자율신경계의 교감신경과 부교감신경의 상호작용에 의해 조절됩니다.
HRV의 임상적 응용은 매우 다양합니다.
심혈관 질환의 위험 평가: 낮은 HRV는 심혈관 질환의 위험 증가와 관련이 있습니다.
자율신경계 기능 평가: 당뇨병성 자율신경병증 등의 진단에 활용됩니다.
RMSSD(Root Mean Square of Successive Differences)는 연속된 RR 간격(RR interval) 차이의 제곱 평균의 제곱근으로, 심박의 단기 변동성을 나타냅니다. 이 지표는 주로 부교감 신경계의 활동을 반영하며, 높은 RMSSD 값은 더 좋은 심장 건강과 스트레스 대처 능력을 시사할 수 있습니다. 일반적으로 20-70ms 사이의 값이 정상 범위로 간주되며, 이보다 높은 값은 더 강한 부교감 신경 활동을 의미할 수 있습니다. RMSSD는 스트레스 관리, 운동 회복, 그리고 전반적인 심혈관 건강 평가에 유용하게 사용됩니다.
SDNN(Standard Deviation of NN intervals)은 RR 간격의 표준편차로, 전체적인 심박 변이도를 나타냅니다. 이 지표는 교감 및 부교감 신경계를 포함한 전반적인 자율신경계 활동을 평가하는 데 사용됩니다. SDNN 값이 높을수록 심장이 다양한 상황에 더 잘 적응할 수 있음을 의미하며, 이는 더 나은 심장 건강 상태를 반영합니다. 일반적으로 0.5에서 2.0 사이의 값이 정상으로 간주되지만, 이는 측정 기간과 개인의 상태에 따라 다를 수 있습니다. SDNN은 장기적인 심장 건강 예측과 전반적인 자율신경계 균형 평가에 중요한 역할을 합니다.
pNN50(Percentage of successive NN intervals that differ by more than 50ms)는 연속된 RR 간격 중 50ms 이상 차이나는 간격의 비율을 나타냅니다. 이 지표 역시 부교감 신경 활동의 또 다른 지표로 사용되며, RMSSD와 마찬가지로 단기 심박 변이도를 반영합니다. 일반적으로 건강한 성인에서는 10% 이상의 값이 정상으로 간주됩니다. pNN50이 높을수록 부교감 신경 활동이 더 활발함을 의미하며, 이는 더 나은 심장 건강과 스트레스 대처 능력을 시사할 수 있습니다. 이 지표는 특히 연령에 따른 자율신경계 기능 변화를 평가하거나, 운동 훈련의 효과를 모니터링하는 데 유용하게 사용됩니다.
이러한 HRV 지표들은 개별적으로도 중요하지만, 함께 분석될 때 더욱 포괄적인 심장 건강 평가가 가능합니다. 예를 들어, RMSSD와 pNN50이 모두 높고 SDNN도 정상 범위 내에 있다면, 이는 건강한 자율신경계 기능과 좋은 심장 적응력을 나타낼 수 있습니다. 반면, 이 지표들이 모두 낮다면 자율신경계 기능 저하나 심장 건강의 문제를 시사할 수 있습니다. 따라서 이러한 ECG 특징들은 임상에서 심장 질환의 조기 진단, 치료 효과 모니터링, 그리고 전반적인 건강 상태 평가에 중요한 도구로 활용됩니다.
4. CO
해당 논문은 Cardiac Output을 추정하는 멀티모달 방법론에 대한 내용입니다. 469명의 환자들로부터 추출된 NIBP(Non-invasive Blood Pressure) , HR(Heart Reate) , SpO2, CO 를 데이터로 사용하네요.
아래는 멀티모달 모델링을 통해 CO를 추정하는 방법입니다.
머신러닝 알고리즘인 Generalized linear model (GLM), random forest (RF), gradient boosting machine (GBM), extreme gradient boosting (XGBoost)를 사용합니다. 개별 base learner들을 사용해서 마지막에 Ensemble 기법을 통해 합쳐줍니다. 평가 지표는 MSE , RMSE, MAE , R제곱 등을 통해 평가하네요.