Self-supervised representation learning from 12-lead ECG data 내용 요약
논문 읽기 연습/공통

Self-supervised representation learning from 12-lead ECG data 내용 요약

※ 본인은 Self-supervised learning이 뭔지 몰라 막 대충 함. 기대하지 말아주세요. 개인 작성용임.

https://github.com/hhi-aml/ecg-selfsupervised

 

GitHub - hhi-aml/ecg-selfsupervised: Self-supervised representation learning from 12-lead ECG data

Self-supervised representation learning from 12-lead ECG data - GitHub - hhi-aml/ecg-selfsupervised: Self-supervised representation learning from 12-lead ECG data

github.com

 

0. abstract

같은 양의 label dataset으로 더 좋은 결과가 나왔다.

sota self-supervised 방법을 ECG data에 도입

  • linear evaluation performance을 기반으로 대조
  • 순수 supervised learning과 self-supervised pretraining 을 비교.

가장 좋은 결과는 supervised 성능보다 linear performance가 0.5% 떨어지지만 finetuned model은 supervised performance, label efficiency, robustness와 비교하여  downstream performance 1% 증가

 

1. Introduction

의료 데이터는 label 된 것이 얼마 없기 때문에 self-supervised learning이 유용할 것이다.

ECG는 나온지 100년 동안 정해진 알고리즘을 써왔지만 최근엔 deep-learning-based ECG 알고리즘이 높은 성능을 보임. 또 self-supervised learning은 자연어, Computer Vision에서 좋은 성능이 나왔고, label efficiency 도 올려주기 때문에 유용할 것. 더 좋은지 실험해보고 싶다.

 

핵심 요약

  • 12-lead ECG data에 self-supervised learning
  • instance-based self-supervised 방법(SimCLR, BYOL, SWaV, CPC)로 ECG data에서 유용성을 증명
  • CPC구조를 조금 개조하고 훈련한 것이 성능향상이 있었다.
  • downstream 분류 관점에서 처음부터 훈련한 것과 비교하여 같은 훈련데이터에서 label 효율성, robust 증가.

2. Materials and methods

2.1 ECG analysis using deep learning

  • ECG dataset은 갯수가 적고, eval 기준도 부족했음.
  • 최근에 여러개의 classifcation으로 labeling한 대량의 공개데이터(PTB-XL)이 나왔기 때문에 시도해 볼 만 하다.
  • Computer Vision에서 좋은 성과를 보인 모델로 개조한 것이 좋은 성능을 보였었다.

2.2 Self-supervised representation learning for ECG data

2.2.1 Instance discrimination

  • self-supervised learning에도 SimCLR, BYOL, SwAV 의 여러 방법이 있음
  • 3가지를 다 실험해 보았다.
  • CNN 기반의 xresnet1d 구조를 사용

https://kaen2891.tistory.com/77
https://hongl.tistory.com/97

2.2 Self-supervised representation learning for ECG data

2.2.2 Latent forecasting (CPC)

  • Contrastive Predictive Coding(CPC)는 Unsupervised learning을 사용하기 위해 고안된 방법
  • audio domain용이라 10kHz를 받지만, 여기서 사용한 ECG는 100HZ.
  • -> 평균으로 뭉개지 않고, fully connected encoder를 사용
  • 2 layers와 512 hidden units인 LSTM모델을 수정하여 CPC 구조보다 향상된 버전을 제안한다.
  • finetuning classification model은 maximum LSTM outputs, mean LSTM outputs, 마지막 단계의 LSTM outputs을 concat한 것을 fully connected classification head로 받는다.

https://kaen2891.tistory.com/77
https://kaen2891.tistory.com/77

2.2 Self-supervised representation learning for ECG data

2.2.3 Self-supervised representation learning for physiological time series data

  • 기존에 ECG를 포함한 physiological time series data를 위한 self-supervised 방법은 있었으나, 12-lead ECGs 작업은 없었다.
  • 다른 저자도 BYOL과 SimCLR을 고려했지만 매우 작은 모델에서 사용했다.
  • -> PTB-XL같은 대량의 ECG datasets을 받아들일 수 있는 큰 sota모델 사용이 필요해 보임

2.3 ECG datasets

  • CinC2020대회에 나온 모든 데이터(5가지), Riberio, Chapman으로 총 12-lead ECG 54,566 records를 확보
  • 특히 CinC2020의 PTB-XL은 71개의 multi-label로 가치가 높아 evaluation으로도 사용
  • 데이터를 label-balanced로 하고 train, val, test를 8:1:1로 사용

2.4 Training and evaluation protocol

  • 10초 길이의 ECG로 CPC model을 pretrain. 나머지 다른 모델들은 2.5초로 train.
  • train은 2.5초를 무작위로 crop, test는 2.5초를 순서대로 자르고 최종 예측들의 평균으로 하는데, 0.01 in macro AUC로 naive evaluation.
  • AdamW optimizer, InfoNCE loss, SimCLR와 BYOL, SwAV에서 사용된 LR scheduler를 사용
  • finetuning에선 binary crossentropy를 multi-label classification 작업에 적합하게 optimize 하고, PTB-XL의 71개 label에서 계산된 macro AUC으로 모델 평가
  • linear evaluation과 finetuning에서 각각 다른 평가 방식을 적용
    • linear evalution은 선형 구분이 목적, classification head를 single linear layer로 바꿀 수 있게 될 것이다.
    • finetuning은 downstream 작업에서 유용성을 발견
    • -> CPC에서 classification head만 50 epoch로 학습하고 validation score를 보고 finetune model은 20 epoch로 전체 학습.

3. Experiments

3.1 Self-supervised pretraining learns meaningful representations from ECG data

  • ECG domain에서 self-supervised representation learning은 매우 효과적
  • PTB-XL은 전체 train dataset의 40%. 역시 데이터가 늘어나면 성능도 늘어난다.

3.2 Self-supervised pretraining improves downstream performance

3.3 Self-supervised pretraining improves downstream data efficiency

  • finetuning이 label efficiency가 있는지 검증하려고 finetuning과 train from scratch 비교
  • train data 약 62% 정도만 학습하면 supervised learning을 따라잡는다.

3.4 Self-supervised pretraining improves robustness of downstream classifiers

  • 잡음비(SNR)을 늘려가며 비교
  • 모두 xresnet1d보다 더 떨어졌기 때문에, transformed하며 학습시켜서 더 좋아졌다.

4. Summary and conclusions

  • linear evalution에선 supervised learning에 비해 0.5%만 감소했지만, finetuning에선 1.0% 증가
  • label efficiency가 증가. 데이터의 50~60% 정도 쓰고도 supervised learning과 같은 성능을 낼 수 있다.
  • 대부분의 pretrained model에서 robustness가 증가했지만, 특정한 domain-specific noise 변화에 대해서만 증가.

 

'논문 읽기 연습 > 공통' 카테고리의 다른 글

참고 가이드 라인들 및 자잘한것들  (0) 2021.10.05