1. 서 론
최근 국내의 경제성장과 생활환경이 서구화됨에 따라 심장질환이 암, 뇌혈관질환과 더불어 한국인의 주요 사망원인 중 하나로 부각되고 있다(1). 통계청의 자료에 따르면, 순환기계 질환이 전체 사망률 중 약 25%로 가장 많은 원인을 차지하고 있는 것으로 나타났다(2).
심장 박동은 상대정맥과 우심방 사이에 존재하는 동방결절(SA Node, Sinoatrial Node)이라는 조직이 발생시킨다. 동방결절은 보통 분당
60~80회의 전기 자극을 만들어 내며 심방의 심근을 통해 골고루 퍼지면서 심방을 수축시킨다. 자극은 심실로 전이되고 방실결절(AV Node, Atrioventricular
Node)에서 지연되어 심실에 피가 충분히 공급되도록 조절한다. 전이된 자극은 좌각(Left bundle) 과 우각(Right bundle) 이라고
하는 조직을 통해 좌, 우심실에 자극을 전달해 심실이 동시에 수축하도록 한다. 이러한 체계의 기능 부전, 비정상적인 경로에서 전기 자극 등이 발생되면
부정맥이 발생한다.
부정맥의 종류는 크게 서맥, 빈맥, 불규칙한 심장 운동 3가지로 나뉜다. 서맥은 분당 60 이하로 느린 맥박을 보이며 동기능부전, 방실전도차단 등이
원인이다. 반대로 빈맥은 분당 100회 이상으로 빠른 맥박을 보이며 원인에 따라 심방성, 방실접합부 의존성, 심실성 빈맥 등으로 나뉜다. 마지막으로
불규칙한 심장으로 인해 심장의 조기 수축, 심방세동 등이 발생한다.
인공지능은 환자의 데이터를 복합적으로 분석 및 진단, 영상의료데이터 판독, 위험 징후 예측 등 다양한 의료 분야에서 진전을 보여주고 있다(3). 특히, 부정맥을 검출 연구는 인공 신경망(4), 합성곱 신경망(CNN, Convolutional Neural Network)(5) 등 여러 방식의 사례가 있으며 데이터를 분류할 때 특징을 찾는 것이 중요하다. 특징을 추출 관련 연구는 웨이블릿(6-7), DAUBECHIES 웨이블릿(8) 변환 등을 이용한 방식이 있다.
본 논문은 LMS의 확률적 분포 이용한 심전도 R 피크 검출 연구(9)를 기반으로 웨이블릿과 비슷한 방식을 취하지만 단순히 변환되는 LMS 행렬과 내포되어 있는 확률적 분포가 하나의 특징 추출 방법으로써 부정맥 검출에
사용될 수 있는지 고찰하고자 한다.
2. 본 론
2.1 MIT/BIH Arrythmia Database
PhysioNet이 시작된 이후로 오픈소스(Open Source)로 제공되고 있다. 부정맥 검출 평가를 위해 일반적으로 사용 가능한 최초의 테스트
자료이며 1980년 이후 전 세계 약 500개 사이트에서 심장 역학에 대한 기본 연구뿐만 아니라 그 목적으로도 사용되었다(10).
표 1 부정맥 주석
Table 1 Arrhythmia annotation
Beat Type
|
Symbol
|
No.
|
Beat Type
|
Symbol
|
No.
|
Normal
|
. or N
|
0
|
Ventricular Flutter
|
!
|
9
|
Left Bundle Branch
|
L
|
1
|
End of Ventricular Flutter / Fibrillation
|
]
|
-
|
Right Bundle Branch
|
R
|
2
|
Atrial Escape
|
e
|
10
|
Atrial Premature
|
A
|
3
|
Nodal Escape
|
j
|
11
|
Aberrated Atrial Premature
|
a
|
4
|
Ventricular Escape
|
E
|
12
|
Nodal Premature
|
J
|
5
|
Paced
|
/
|
13
|
Supraventricular Premature
|
S
|
6
|
Fusion of Paced & Normal
|
f
|
14
|
Premature Ventricular
|
V
|
7
|
Non-Conducted P-wave
|
x
|
15
|
Fusion of Ventricular & Normal
|
F
|
8
|
Unclassifable
|
Q
|
16
|
Start of Ventricular Flutter / Fibrillation
|
[
|
-
|
Isolated QRS-like Artifact
|
|
|
-
|
MIT-BIH 부정맥 데이터베이스는 1975 ~ 79년 BIH(Boston Israel Hospital) 부정맥 연구소에서 연구한 47 명의 피험자를
대상으로 얻은 2 채널 외래 심전도 기록의 30분 발췌본 48개로 구성되어 있다. 제공되는 23개의 심전도 기록은 입원 환자 (약 60%)와 외래
환자 (약 40%)의 비율로 수집된 4000개의 24시간 심전도 기록에서 무작위 선택되었다. 기록은 10mV 범위에서 11-bit 분해능으로 채널마다
초당 360개 샘플($f_{s}=360Hz$)로 디지털화되어 있다. 주석은 표 1 과 같이 두 명 이상의 심장 전문의가 각 기록에 독립적으로 그림 1 방식으로 표시했다. 또한 표 1의 상징 옆의 숫자는 분류 모델 데이터 세트의 정답 레이블을 의미한다.
그림 1 MIT/BIH 데이터베이스의 주석 표시 예
Fig. 1 Example of comment display of MIT/BIH database
2.2 디지털 필터
디지털 필터는 FIR(Finite Impulse Response)과 IIR(Infinite Impulse Response)가 있다. FIR 필터의
전달함수는 식 (1)로 입력신호의 일정한 값들로 필터링을 한다. 따라서 표현 식에서 회귀 성분을 가지지 않기 때문에 위상 변이가 일어나지 않는다. 하지만 IIR 필터에
비해 차수가 높아지기 때문에 구현비용이 높다는 단점이 있다. IIR 필터의 전달함수는 식 (2)로 입력과 출력 신호 값이 재귀적으로 적용된다. 따라서 FIR 필터에 비해 차수가 낮아지는 장점이 있지만 위상이 비선형성을 가져 입, 출력 파형이
달라진다.
주파수 영역에서 통과 영역의 특성에 따라 그림 2와 같이 버터워스(Butter worth), 체비셰프(Chebyshev), 베셀(Bssel)로 나눌 수 있다. 버터워스는 통과 대역이 평평하지만 날카롭게
주파수를 잘라내지 못한다. 반대로 체비셰프는 날카롭게 주파수를 잘라내지만 통과대역에 리플(Ripple)이 발생한다. 베셀은 넓은 주파수 범위에 걸쳐
선형적인 응답 특성을 가진다.
주파수 통과 대역의 특성에 따라 저주파만 통과시키는 저역 통과(Lowpass), 고주파만 통과시키는 고역 통과(Highpass), 정해진 주파수 대역만
통과시키는 대역 통과 필터(Bandpass) 필터, 정해진 주파수 대역만 저지시키는 대역 저지 필터 총 4 가지로 구분된다.
그림 2 필터의 특성
Fig. 2 Filter characteristics
2.3 Local Maximum Scalogram(LMS)
Felix Scholkmann 등이 처음 제안한 방법으로 주어진 데이터가 주기적 또는 준주기적 피크 성분을 포함하는 단변량(Univariate)으로
균일하게 샘플링된 신호라고 가정한다(11).
그림 3 Felix Scholkmann의 피크 검출 과정
Fig. 3 Felix Scholkmann’s peak detection process
피크 점은 양의 방향으로 솟아오르는 특징이 있다. 이용하기 위해 입력 데이터 $x$에 대해 $x_{i-k},\: x_{i},\: x_{i+k}$ 값을
비교한다. 식 (3)과 같이 최대값이 $x_{i}$일 경우 $0$, 그 외일 경우 $r +\alpha$로 행렬을 계산한다. 여기서 $\gamma =0\sim 1$ 사이의
임의의 값이고 $\alpha$는 정수 1이다. 데이터 길이가 N이라고 할 때 $i = 1,\: 2,\: 3,\:\cdots ,\: N/2$로 식 (4)와 같은 $(N/2,\: N)$행렬이 계산된다. 이를 LMS(Local Maximum Scalogram)이라고 한다. 심전도를 LMS 행렬로 계산했을
때 그림 3과 같은 이미지로 피크 지점의 분포에 대한 특징이 추출된 것을 볼 수 있다.
심전도의 R피크를 검출하기 위해 LMS 행렬의 각 행을 기준으로 합을 구해(Gamma 배열), 해당 배열의 최소값을 가질 때 인덱스 값(Lambda
인덱스)을 이용한 사례(9)가 있다. 행렬의 확률 분포를 이용한 방법으로 해당 데이터의 이미지뿐만 아니라 열의 표준편차도 분류 데이터의 특징으로 사용한다.
2.4 Support Vector Machine (SVM)
기계 학습 방법 중 하나로 분류, 회귀 분석을 위해 사용된다. 초평면(Hyperplane)의 집합으로 구성되며 가장 가까운 학습 데이터 지점과 가장
먼 거리를 가지는 초평면을 찾는다. 먼저 간단한 예로, 선형 분류를 수식으로 표현한다. $wx+b = 0$이라는 기준점이 있고 데이터 $a$를 분류
한다고 가정하면 최대 및 최소 기준점 간의 거리 즉, 마진(margin)은 $2/|w|$가 된다. 최대화하는 것이 목적이므로 식 (5)의 $|\hat w |^{2}/2$이 최소가 돼야한다. 따라서 라그랑주 승수법(Lagrange multiplier)을 이용해 선형 분류는 식 (5)로 정리된다. 식 (5)에서 $k(x_{i},\: x_{j})$는 선형 커널 함수로 식 (6)과 같이 표현된다.
비선형 분류의 경우 커널 트릭을 적용을 제안(12)(13)했는데 선형 분류와 형식 상 비슷하지만 내적 연산이 비선형 커널 함수로 대체된다. 비선형 커널 함수의 종류로 RBF(Radial Basis Function),
Polynomial 등이 있으며 그림 4와 같이 차원을 변환시켜 선형에서 보이지 않는 분류 기준점을 찾는 것이다.
그림 4 커널 함수를 이용한 차원 변환
Fig. 4 Dimensional transformation using kernel function
RBF 커널 함수식은 식 (7)로 표현된다. 이 수식을 식 (8)로 정리해 구성 성분을 보면 식 (9)과 같은 테일러 급수(Talyor Series)가 포함돼있기 때문에 식 (10)에서 볼 수 있듯이 무한 차원 공간으로 변환시킨다.
Polynomial 커널 함수식은 식 (7)로 표현되고 $c = 0$일 경우 동차 다항식(Homogeneous polynomial)이라고 한다. $d$다항식의 차수로 식 (11)에서 알 수 있듯이 해당 값만큼의 특징 공간으로 변환한다.
앞서 설명한 목적함수의 최소화는 하드 마진으로 엄격하게 클래스를 분류하는 방법이다. 이는 잘못 분류된 데이터가 존재할 경우 문제를 발생될 수 있기
때문에 변형된 최대 마진 분류기, 소프트 마진을 제안했다(14). 하드마진 방법을 기반으로 하지만 SVM이 위치한 경계선에 느슨한 변수(slack variable) $\xi_{i}$를 이용한다. $\xi_{i}$만큼의
에러를 수용하겠다는 의미로 마진을 최대화하는 목적함수는 식 (12)와 같이 표현된다.
2.5 Convolutional Neural Network (CNN)
인공 신경망은 2개 이상의 은닉층(Hidden Layer), 출력층으로 이루어져 있다. 가중치(Weight)와 편향(Bias)이라는 여러 입력 신호로
인한 임계치에 도달하면 신호를 전달한다. 이러한 함수를 활성화 함수라고 하며 신경망 층을 깊게 할수록 비선형 함수를 사용한다. 식 (13)은 시그모이드 곡선을 갖는 Sigmoid 활성화 함수, 식 (14)은 입력값이 0보다 작으면 0으로, 0 보다 크면 입력값 그대로 출력하는 ReLU 활성화 함수, 식 (15)는 Softmax 수식으로 주로 신경망의 마지막 층에서 분류 활성화 함수로 사용된다.
은닉층으로만 구성 하면 입력 데이터가 1차원(배열) 형태로 제한된다. 이미지를 1차원 배열로 변환해 신경망으로 학습시키면 공간정보가 손실되기 때문에
특징을 추출하고 정확도를 높이는데 한계가 존재한다. 따라서 CNN은 이미지의 공간 정보를 유지하기 위해 합성곱 계층(Convolution Layer)과
맥스 풀링 계층(Max Pooling Layer)으로 구성된다.
그림 5 합성곱 필터 계산 과정
Fig. 5 Convolutional filter calculation process
합성공 계층은 입력 데이터의 크기보다 작은 지정된 $n$개의 합성곱 필터가 스트라이드(Stride)라고 하는 지정된 간격을 이동하며 그림 5와 같이 값을 계산한다. 계산된 값이 활성화 함수에 의해 $n$ 배수의 특징이 추출된다. 하지만 계산 입력 데이터의 외곽의 특징이 잘 반영되지 않는
문제가 발생하기 때문에 패딩(Padding)을 사용한다. 그림 5처럼 합성곱 필터와 입력 데이터 크기를 고려해 빈 공간을 0으로 채워 방법이다.
합성곱 필터로 추출된 특징은 맥스 풀링 계층으로 입력되는데 $n\times k$의 행렬 이내의 특징 중 가장 큰 값이 다음 계층으로 전달되어 크기가
$1/n\times 1/k$로 줄어든다. 반복되는 합성곱과 맥스 풀링 계층으로 데이터 크기가 줄어들고 추출된 특징이 적절해지면 1차원 데이터로 변환(Flatten)한다.
변환된 1차원 데이터는 FC Layer(Fully Connected Layer)로 전달돼 활성화 함수로 결과 값이 결정된다. 이러한 과정이 그림 6에 나타나있다.
그림 6 CNN의 구조
Fig. 6 Structure of CNN
결과 값에 따른 손실함수의 값을 최소화하기 위해 옵티마이저(Optimizer)를 사용한다. 옵티마이저는 경사 하강법(GD, Gradient Descent),
SGD(Stochastic Gradient Decent), Momen- tum, Adagrad, RMSProp, Adam 등이 있다.
기본적인 방법은 경사 하강법으로 식 (16)으로 표현되며 기울기에 비례해 최적의 가중치를 갱신한다(15). SGD는 역전파와 함께 표준 알고리즘(16)으로 경사 하강법은 갱신 기준이 전체 데이터 학습이지만 부분 학습 데이터 즉, 미니배치가 기준이 된다. Momentum은 SGD 방식에서 이전의 학습
결과를 반영하는 모멘텀(momentum)이 추가돼 식 (17)로 표현할 수 있다(17).
AdaGrad는 식 (18)과 같이 변동이 큰 가중치의 학습률을 감소시키고 작은 가중치는 학습률을 증가시킨다(18). RMSProp은 AdaGrad 방식에서 가중치 기울기를 단순히 누적시키는 것이 아니라 최신 기울기 반영률을 높여 식 (19)과 같다(19). Adam은 Momentum과 RMSProp 방식을 혼합한 것으로 잘못된 초기화로 인해 bias가 0이 되는 문제를 해결한 식 (20)이다(20).
데이터 입력 시 배치(Batch) 사이즈란 모델의 가중치를 업데이트 시키기 위해 사용될 데이터의 크기이다. 크기에 따라 가중치 업데이트 수가 정해지는데
예를 들어, 1000개의 샘플에서 배치 사이즈를 100개로 하면 가중치 업데이트는 1 에폭(Epoch) 당 총 10번하게 된다. 에폭은 전체 데이터를
학습 시킨 횟수를 의미하는데 배치 사이즈가 너무 작으면 가중치 업데이트가 잦아 훈련이 제대로 되지 않고 반대로 너무 크면 메모리 부족 문제가 있으므로
적절한 선택이 필요하다.
샘플의 성능을 높이기 위해 배치 정규화(Batch Normalization), 드롭아웃(Dropout) 등의 방식이 존재한다. 배치 정규화란 평균
0, 분산 1로 입력 데이터를 변환하는 것으로 가중치의 변화의 폭을 줄여 안정화시킨다. 드랍아웃은 은닉층이 많아질수록 성능이 좋아 지지만 과적합 문제
발생이 높고 학습 시간도 길어지기 때문에 그림 7처럼 인공 신경망의 경로 즉, 네트워크 일부를 생략해 학습하는 방법이다.
그림 7 일반 신경망과 드롭아웃의 구조
Fig. 7 Structure of general neural network and dropout
2.5 성능 평가
학습된 모델은 테스트 데이터 세트에 대한 예측값을 보여준다. 예측값과 결과를 비교했을 때 4가지 경우가 존재하는데 먼저, 예측값과 결과가 일치하는
정답으로 진양성(True Positive, TP)이다. 나머지 3가지는 오답일 경우로 위양성(False Positive, FP), 위음성(False
Negative, FN), 진음성(True Negative, TN)이라고 하며 표 2와 같이 분류할 수 있다. 이는 성능 평가 척도의 기반으로 정확도(Accuracy), 재현율(Recall), 정밀도(Precision), F1 Score
등이 있다.
표 2 기본 분류 기준
Table 2 Basic classification criteria
Answer
Predict
|
True
|
False
|
True
|
진양성
(TP, True Positive)
|
위양성
(FP, False Positive)
|
False
|
위음성
(FN, False Negative)
|
진음성
(TN, True Negative)
|
정확도는 식 (20)으로 올바르게 예측한 데이터의 비율을 나타낸다. 하지만 데이터가 불균형할 경우 편중되는 문제점이 있다. 따라서 이를 보완할 지표로 재현율과 정밀도가
필요하다. 재현율은 양성 중 진양성 비율로 식 (21), 정밀도는 정답 중 진양성의 비율인 식 (22)로 표현된다.
그림 8 ROC 커브 amp; AUC
Fig. 8 ROC Curve amp; AUC
시각적 지표로 ROC 커브(Reciever Operating Characteristic Curve) 및 AUC(Area Under Curve), 혼동
행렬(Confusion Matrix)를 사용한다. ROC 커브는 y축이 1-민감도(Sensitivity), x축이 특이도(Specificity) 즉,
음성 판정 중 진음성의 비율 식 (23)로 그림 8과 같이 나타낸다.
민감도는 재현율이라고도 하는데, 예측 결과 실제로 양성인 비율이고 특이도는 예측이 틀렸을 경우 실제로 음성인 비율이다. 따라서 ROC 커브가 왼쪽
위 모서리에 가까울수록 좋은 성능으로 평가하는데 이 곡선의 면적을 AUC라고 하며 1에 가까울수록 좋다고 평가할 수 있다.
혼동 행렬은 그림 9와 같이 x축이 예측 결과, y축은 실제 값으로 훈련 결과를 비교하도록 만들어진 표를 의미한다. 앞서 설명한 정확도, 정밀도, 재현율, 특이도 외에도
여러 지표들을 참고 및 비교할 수 있다.
그림 9 혼동행렬의 예시
Fig. 9 Example of confusion matrix
2.6 교차 검증
분류 모델은 훈련 데이터를 학습하고 테스트 데이터로 성능을 측정한다. 일반적으로 훈련 및 테스트 데이터는 전체 데이터 세트에서 일정 비율로 나눠 사용한다.
하지만 데이터가 불균형하게 나뉘어 졌을 경우 비율이 높은 데이터에 대한 과적합(Overfitting) 문제가 생긴다. 이는 테스트 데이터 세트에 따라
정확도가 달라져 신뢰성이 떨어지기 때문에 교차 검증(Cross Validation)이 필요하다.
교차 검증이란 전체 데이터를 훈련시키기 않고 일부를 남겨 테스트 데이터로 사용하는 것이다. 모든 데이터를 훈련 및 검증에 사용하기 때문에 시간이 오래걸린다는
단점이 존재하지만 과적합 문제의 해결 방법이 될 수 있다. 방법에는 크게 2가지가 있다. 첫 번째는, n개의 데이터에서 1개를 테스트 세트로 하고
나머지 n-1개를 학습시키는 LOO(Leave-One-Out)과 같은 소모적 방식, 데이터 세트를 k 개의 그룹으로 나눠 1개의 그룹을 테스트 세트로
하고 나머지 k-1개를 학습시키는 K-fold 비소모적 방식이 있다.
그림 10 교차 검증 과정(LOO, K-fold)
Fig. 10 Cross-validation process (LOO, K-fold)
그림 10은 앞서 설명한 2가지 방법에 대한 과정을 나타낸 것이다. 먼저, 교차 검증 방식에 따라 학습 및 검증 데이터를 나누고 차례대로 정확도를 계산한다.
계산된 정확도의 평균과 분산으로 학습 모델에 대한 신뢰성을 평가할 수 있다. LOO는 데이터 1개마다 검증을 하기 때문에 신뢰성이 가장 높지만 k
그룹으로 나누어 검증하는 K-fold보다 시간이 길어진다는 단점이 있다.
3. 실험 구성 및 방법
3.1 입력 데이터
정상인의 일반적인 심박수는 분당 60~100회로 1초 사이에 R피크가 적어도 1개 존재한다. 따라서 R피크를 기준으로 0.25초, 0.5초, 0.75초,
1초, 1.25초 즉, 데이터베이스는 360Hz 샘플링으로 90, 180, 270, 360, 450 개의 총 4가지 경우의 샘플을 사용한다.
진단 ECG 기록은 0.05 ~ 100Hz에 비해 ECG 모니터는 0.5 ~ 40Hz의 제한된 대역폭으로 설계된다(20). 40Hz 컷오프(Cutoff) 필터링 표준화가 심장 진단 위험에 큰 영향을 미치지 않으면서 12-리드 심전도의 품질을 향상시킨다는 결과(21)가 있는데 그림 11에서(20) 심전도의 주파수를 살펴보았을 때 대략 0.5Hz ~ 40Hz 사이의 분포를 볼 수 있다. 따라서 특정 대역만 사용하기 위해 위상 변이가 일어나지
않는 FIR(Finite Impulse Response) 버터워스 5차 필터를 구성해 데이터를 추출한다.
그림 11 심전도의 주파수 영역
Fig. 11 Frequency range of ECG
그림 12 데이터 준비 과정
Fig. 12 Data preparation process
그림 12 과정에서 LMS 행렬로 변환시키기 전, 부정맥에 대한 주석은 문자로 모델 학습에 적절하지 않다. 심실 세동 / 조동의 시작점과 끝 지점은 심실 세동
정보가 있기 때문에 제외한다. 따라서 앞서 표 1에서 설명했듯이 정답 레이블에 사용될 숫자로 표현해 진행한다.
일반적인 LMS는 $r = 0\sim 1$로 해당 행렬의 행과 열의 표준편차를 SVM의 1차원 입력 데이터로 사용한다. CNN 입력 데이터는 $r
= 0\sim 1$과 $r = 0$으로 고정돼 있는 2가지 데이터를 사용한다. 단, $r = 0\sim 1$일 경우 행렬의 값 모두 $1\sim 2$
로 값을 정규화 시킨다.
3.2 분류 모델 설계
SVM 모델은 2가지 커널을 사용한다. Polynomial과 RBF 커널로 학습시 분류기의 커널 계수는 1 / 특징개수×(입력 데이터 분산)으로 설정한다.
Polynomial의 경우 3차 다항식으로 설계한다.
CNN 모델은 초기 가중치와 편향은 $0\sim 1$ 사이 임의의 값, 학습률은 0.001부터 시작한다. 손실함수를 최소화 시키기 위해 최적화 방법으로
Adam을 사용한다. 배치 사이즈는 100으로 설정하고 그림 13과 같이 5개의 합성곱 및 맥스풀링 계층으로 설계한다. 계층이 깊어질수록 데이터 크기가 작아지기 때문에 합성곱 필터의 크기를 입력부부터 차례대로 11×11,
9×9, 7×7, 5×5, 3×3로 설계하되 특징 추출율을 높이기 위해 필터의 개수는 8, 16, 32, 64, 128로 한다. 맥스풀링은 일반적으로
모든 계층이 2x2로 데이터가 1/2로 줄어들도록 하고 마지막 은닉층은 1024개, 활성화 함수는 출력층만 Softmax 함수를 사용하고 그 외,
ReLu 함수를 사용한다. 과적합 문제를 줄이기 위해 마지막 계층에 드롭아웃 방식을 추가한다.
그림 13 CNN 모델 설계
Fig. 13 CNN model design
3.3 모델 검증
SVM 모델은 $n$ 개의 샘플($n = 90,\: 180,\: 270,\: 360,\: 450$ )에 따른 기본 LMS 행렬의 행의 표준 편차($n$
개), 열의 표준 편차($n/2$ 개), 행과 열의 표준편차($3n/2$ 개) 총 3가지의 데이터 학습 모델에 대해 혼동 행렬과 ROC 커브 및 AUC를
시각화시켜 모델 성능을 평가한다. 15가지 모델 설계에 이상이 없다면 전체 학습 데이터에 대해 K-fold 교차 검증을 실시한다. K-fold는 5번으로
5개의 정확도 분포를 그래프로 확인한다. CNN 모델도 동일하지만 학습 데이터로 $r=0,\: r = 0\sim 1$인 2가지 LMS 행렬을 사용한다.
마지막으로 필터링된 심전도 데이터를 혼동행렬 결과 그래프와 비교해 분류가 어려운 부정맥 종류에 대해 고찰한다.
4. 실험 결과
4.1 SVM
그림 14의 ROC 커브는 입력 데이터에 대해 학습이 잘 되었다는 결과를 알 수 있다. 하지만 샘플 개수가 적을수록 AUC 값이 낮은 경우를 볼 수 있다.
이는 RBF와 Polynomial 커널 학습 모델의 정확도에 반영 된다. 표 3은 입력데이터로 LMS 행렬의 열 표준편차를 SVM 모델에 학습시켰을 때 정확도 수치다. Polynomial 커널이 RBF 커널보다 전체적으로 정확도가
높다는 것을 보여준다.
그림 15와 16의 분류율이 낮은 레이블에 대해 혼동행렬 그래프를 보았을 때 가장 큰 특징은 3가지 지점으로 첫 번째, 정상(0번)과 심박 조기 수축(3번)
두 번째, 심실 조기 수축(7번)과 심실 세동 세 번째, 정상(0번)과 심실 및 정상 신호 혼합(8번)의 분류 기준이 뚜렷하지 않다.
하지만 샘플 개수가 늘어날수록 분류 기준이 명확해지면서 심실 세동의 분류 정확도가 높아지지만 나머지의 경우 여전히 분류 성능이 낮다.
그림 14 ROC 커브 및 AUC (270 샘플, Polynomial 커널)
Fig. 14 ROC curve and AUC (270 samples, Polynomial kernel)
표 3 SVM 모델 정확도
Table 3 SVM model accuracy
샘플(%)
커널
|
90
|
180
|
270
|
360
|
450
|
Polynomial
|
89.47
|
94.32
|
95.13
|
95.58
|
95.55
|
RBF
|
85.75
|
92.05
|
94.11
|
94.48
|
94.90
|
그림 15 SVM 분류 혼동 행렬(90 샘플, Polynomial 커널)
Fig. 15 SVM classification confusion matrix (90 samples, Polynomial kernel)
그림 16 SVM 분류 혼동 행렬(450 샘플, Polynomial 커널)
Fig. 16 SVM classification confusion matrix (450 samples, Polynomial kernel)
그림 17 Polynomial 커널 K-fold 점수 분포
Fig. 17 Polynomial Kernel K-fold Score Distribution
표 4 Polynomial K-fold 결과
Table 4 Polynomial K-fold results
정확도(%)
샘플
|
1
|
2
|
3
|
4
|
5
|
평균
|
90
|
90.60
|
89.66
|
90.64
|
89.70
|
90.03
|
90.18
|
180
|
94.15
|
94.48
|
94.07
|
94.15
|
94.56
|
94.28
|
270
|
95.71
|
95.79
|
94.93
|
95.38
|
95.22
|
95.40
|
360
|
96.16
|
96.07
|
95.99
|
95.75
|
95.91
|
95.97
|
450
|
95.38
|
96.44
|
96.07
|
95.75
|
96.03
|
95.93
|
그림 17과 표 4를 참고해 K-fold의 정확도 분포를 살펴보았을 때 180, 360 샘플의 경우 가장 안정적이다. 정확도의 경우 270 샘플이 180 샘플과 1.12%,
360 샘플과 0.57% 차이를 보인다. 450샘플까지 사용할 경우 정확도의 큰 차이가 보이지 않으며 모든 모델에 대해 과적합 문제가 발생하지 않는
것을 알 수 있다.
RBF 커널 모델은 앞선 표 4의 결과와 같이 Polynomial 커널 모델보다 상대적으로 180 샘플을 사용했을 때 성능이 떨어지지만 270 이상의 샘플을 사용하면서 큰 차이가
없어지게 된다. 혼동 행렬 그림 18, 19에서 정상, 심방 조기 수축 등이 샘플이 길어질수록 분류율이 개선되는 것은 동일하다. 하지만 최종 분류 오차의 분포가 Polynomial과 다르다는
것을 알 수 있다. 특히, 90 샘플에서 RBF 커널은 심실 조기 수축이 정상 및 심실 혼합 신호와, 그리고 450샘플에서 전도 되지 못한 p파와
구분하지 못한 점이 있다.
표 5와 그림 20에서 180 샘플의 경우 3번째 검증 절차에서 약 1~1.5% 오차를 보인다. 따라서 검증하기 위한 데이터 추출시 데이터 편향 또는 모델의 과적합
문제일 가능성이 있다.
그림 18 SVM 분류 혼동 행렬(90 샘플, RBF 커널)
Fig. 18 SVM classification confusion matrix (90 samples, RBF kernel)
그림 19 SVM 분류 혼동 행렬(450 샘플 RBF 커널)
Fig. 19 SVM classification confusion matrix (450 sample RBF kernel)
그림 20 RBF 커널 K-fold 점수 분포
Fig. 20 RBF kernel K-fold score distribution
표 5 RBF K-fold 결과
Table 5 RBF K-fold results
정확도(%)
샘플
|
1
|
2
|
3
|
4
|
5
|
평균
|
90
|
85.86
|
86.11
|
86.19
|
85.58
|
85.78
|
85.90
|
180
|
91.87
|
91.99
|
93.34
|
91.66
|
92.03
|
92.17
|
270
|
94.85
|
94.36
|
94.32
|
95.42
|
93.83
|
94.55
|
360
|
95.50
|
95.91
|
95.01
|
95.01
|
95.83
|
95.45
|
450
|
95.95
|
96.40
|
95.09
|
95.87
|
95.34
|
95.73
|
그림 21 K-fold 점수 분포(행의 표준편차)
Fig. 21 K-fold score distribution (standard deviation of rows)
그림 22 K-fold 점수 분포(행과 열의 표준편차)
Fig. 22 K-fold score distribution (standard deviation of rows and columns)
그림 23 ROC 커브 및 AUC (270 샘플, $r=0\sim 1$)
Fig. 23 ROC curve and AUC (270 samples, $r=0\sim 1$)
그림 21은 행의 표준편차를, 그림 22는 행과 열의 표준편차를 1차원으로 나열해 분류 시 k-fold 점수 분포도를 나타낸다. 두 가지 경우 모두 열의 표준편차를 사용했을 때와 마찬가지로
Polynomial 커널을 사용했을 때 정확도가 더 높은 것으로 나타났다. 행의 표준편차만 사용할 경우 샘플의 개수가 많을수록 정확도가 높아지지만
이를 1차원 데이터로써 열의 표준편차와 같이 학습 시켰을 경우 정확도가 낮아진다.
4.2 CNN
그림 23의 ROC 커브 및 AUC를 확인해 학습 상태를 확인할 수 있다. SVM 모델과 마찬가지로 AUC 값이 낮은 레이블은 정상(0번), 심방(3번) 그리고
심실(7번)의 조기 수축이며 샘플의 개수가 늘어남에 따라 개선된다. 정확도는 표 6으로 SVM 모델보다 약 2% 높으며 입력 데이터가 r = 0 ~ 1 보다 r = 0일 때 높다. 하지만 270개의 샘플 이후로 정확도에 큰 차이를
보이지 않는다.
표 6 CNN 모델 정확도
Table 6 CNN model accuracy
샘플(%)
데이터
|
90
|
180
|
270
|
360
|
450
|
$r=0$
|
89.47
|
94.32
|
95.13
|
95.58
|
95.55
|
$r=0\sim 1$
|
85.75
|
92.05
|
94.11
|
94.48
|
94.90
|
그림 24 CNN 분류 혼동 행렬(90 샘플, $r=0$)
Fig. 24 CNN classification confusion matrix (90 samples, $r=0$)
그림 24, 25의 혼동행렬을 SVM 모델 결과와 비슷한 경향(정상, 조기 심방 및 심실 신호 에러)을 가진다. 그림 26과 표 7을 참고해 k-fold 점수의 분포를 보았을 때 정확도의 편차가 대략 0.9 ~ 1.8% 이며 45×90, 180×350을 제외하고 학습이 잘 되었다는
것을 알 수 있다.
그림 25 CNN 분류 혼동 행렬(450 샘플, $r=0$)
Fig. 25 CNN classification confusion matrix (450 samples, $r=0$)
그림 26 CNN ($r=0$) K-fold 점수 분포
Fig. 26 CNN ($r=0$) K-fold score distribution
그림 27 CNN 분류 혼동 행렬(90 샘플, $r=0\sim 1$)
Fig. 27 CNN classification confusion matrix (90 samples, $r=0\sim 1$)
표 7 CNN 결과($r=0$)
Table 7 CNN results ($r=0$)
정확도(%)
샘플
|
1
|
2
|
3
|
4
|
5
|
평균
|
45×90
|
92.72
|
93.66
|
94.32
|
94.56
|
94.40
|
93.93
|
90×180
|
96.40
|
95.95
|
95.87
|
96.77
|
96.20
|
96.23
|
135×270
|
96.40
|
97.14
|
96.16
|
97.09
|
96.81
|
96.72
|
180×360
|
97.05
|
97.63
|
96.48
|
98.03
|
97.91
|
97.42
|
225×450
|
97.22
|
96.89
|
97.34
|
97.34
|
96.56
|
97.07
|
그림 28 CNN 분류 혼동 행렬(450 샘플, $r=0\sim 1$)
Fig. 28 CNN classification confusion matrix (450 samples, $r=0\sim 1$)
r = 0일 경우에 비해 샘플 개수가 적으면 그림 27의 0, 3, 7번에서 볼 수 있듯이 에러율이 높다. 하지만 그림 28와 그림 25 및 표 5를 비교 했을 때 270개 이상의 샘플에서 비슷한 성능임을 알 수 있다.
그림 29 CNN ($r=0\sim 1$) K-fold 점수 분포
Fig. 29 CNN ($r=0\sim 1$) K-fold score distribution
그림 29와 표 8에서 45×90, 90×180 샘플 학습의 경우 결과 분포가 넓다. 그 외 학습 결과 신뢰할만한 결과를 보여준다. 적은 에폭 수가 원인일 수 있지만
학습 및 검증 데이터가 편향되지 않았는지 확인할 필요가 있다.
표 8 CNN 결과($r=0\sim 1$)
Table 8 CNN results ($r=0\sim 1$)
정확도(%)
샘플
|
1
|
2
|
3
|
4
|
5
|
평균
|
45×90
|
92.15
|
92.64
|
92.68
|
93.42
|
92.11
|
92.6
|
90×180
|
96.65
|
96.20
|
94.89
|
95.50
|
96.48
|
95.94
|
135×270
|
96.73
|
97.01
|
96.93
|
97.05
|
97.22
|
96.98
|
180×360
|
97.38
|
97.01
|
97.38
|
97.14
|
96.66
|
97.11
|
225×450
|
96.77
|
94.93
|
96.73
|
97.26
|
97.87
|
96.71
|
$r=0$, $r=0\sim 1$ 학습 모델의 일부가 신뢰할 수 없는데 손실함수가 에폭 수가 작아 최적화되지 않은 문제인 것으로 판단된다. k-fold
결과 평균 정확도는 135×270 샘플보다 많을수록 비슷하지만 $r=0\sim 1$일 경우 결과의 분포가 신뢰할 수 없다는 것을 보여준다.
4.3 심전도 비교
그림 30 ~ 33은 필터링된 심전도 데이터를 평균과 표준편차를 이용해 나타낸 것이다. 먼저, 그림 30은 다른 신호에 비해 표준편차가 없는 것으로 보인다. 이는 사용된 데이터베이스의 부정맥 정보가 불균형하기 때문에 학습 데이터의 주어진 데이터를 중복을
포함해 720개씩 추출했기 때문이다. 예를 들어, 조기 심실위 신호로 데이터베이스 전체 중에 6개만 존재하기 때문에 120번 중복해 추출됐다. 따라서
분류율은 높지만 학습 범위가 좁다.
그림 30 조기 심실위 신호와 심방 이탈 신호
Fig. 30 Early ventricular gastric signal and atrial departure signal
그림 31 정상 신호와 조기 심방 신호
Fig. 31 Normal signal and early atrial signal
그림 32 조기 일탈 심방 신호와 심실 조기 수축
Fig. 32 Early Deviation Atrial Signal and Early Ventricular Contraction
그림 33 심실 세동과 페이스 및 정상 혼합 신호
Fig. 33 Ventricular Fibrillation and Pace and Normal Mixed Signals
그림 31 ~ 33은 혼동 행렬을 참고한 신호들로 주로 정확도를 낮추는 원인이 되는데 조기 발생 신호 중 심방 및 심실과 관련해 에러 발생율이 높다. 그림 33의 심실 세동은 넓은 표준편차 범위를 갖고 페이스 및 정상 혼합 신호는 구분 기준이 제한적인 것을 알 수 있다.
5. 토 론
CNN 2가지 모델을 비교했을 때, 이미지의 크기가 135×270 보다 클 경우 평균 정확도가 약 0.1 ~ 0.2% 차이로 비슷한 결과를 보여준다.
이미지 크기가 135×270 보다 작을 경우, $r=0$인 LMS 행렬 학습 모델이 약 2~5% 높은 분류율을 보인다. 이는 이미지의 특징을 추출해
학습하기 때문에, $r=0\sim 1$인 LMS 행렬 학습 모델은 고정되지 않은 임의의 값이 이미지의 잡음 특징이 나타난 것으로 판단된다.
SVM 2가지 모델을 비교했을 때, 샘플이 270개 이하일 경우 Polynomial 커널 모델의 분류율이 높지만 그 이상일 경우 차이를 보이지 않는다.
최대 약 95% 정확도로 분류하지만 행과 열의 표준편차를 1차원 데이터로 단순 나열할 경우, 데이터 각각의 학습 결과보다 성능이 낮다. 결과를 배경으로
실험 과정에서 나타난 문제점은 데이터들 간의 상관관계를 고려하지 않은 점이다.
전체 학습 모델에서 조기 심실 및 심방 신호 등이 정상 신호와 구분이 되지 않는다. 심박수의 시간 변동성 특징을 고려하지 않고 R 피크를 기준으로
고정된 간격의 데이터를 이용이 그 원인으로 볼 수 있다.
6. 결 론
결과를 개선하기 위해 CNN 모델에서 $r=0\sim 1$인 이미지 데이터를 사용하기 위해 에폭 수를 늘리고 기본 구조가 아닌 inception V4,
efficientNet 등과 같은 다른 모델을 실험해 볼 필요가 있다. SVM 모델은 관련된 새로운 커널을 시도할 수 있지만 Felix는 피크 검출을
위해 행과 열의 데이터를 매칭하는 방법을 사용한 것과 같이, 데이터간의 상관관계에 대한 연구 및 반영이 필요하다. 또한 입력데이터를 R 피크를 기준으로
고정된 간격이 아닌 심박 수의 시간 변동성을 반영할 필요가 있다.
결과를 통해 CNN, SVM 모델의 결과를 통해 LMS 행렬의 행 또는 열의 표준편차 데이터, 그리고 이미지가 부정맥 비트 검출의 기준이 될 수 있다는
것을 알 수 있다. 따라서 해당 데이터를 이용해 R피크 검출 뿐만 아니라 P파, T파 등의 정밀한 심전도 특징 검출 가능성을 제시한다. 특히, LMS
행렬의 확률적 분포가 단순한 계산을 통해 높은 분류율을 보여주기 때문에 하나의 특징 추출 방식으로써 다양하게 사용될 것으로 기대된다.