※ 본인은 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 구조를 사용
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로 받는다.
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 |
---|