Tab 3 · Training strategy

선행연구가 말하는 것,
우리가 해야 할 것

같은 문제를 이미 수백만 쌍으로 푼 연구가 있습니다. 그 결론을 그대로 베끼지 않고, 이 데이터셋(10만 장 · 36,286명 · 12 라벨)의 제약에 맞춰 다시 짠 계획입니다.

1. 선행연구에서 확정된 사실

01 / 07

① 다중 라벨 합성이 정답이다. EchoNext(Nature 2025)는 70만–120만 ECG-초음파 쌍, 23만 명으로 학습했고, 저자들은 라벨 간 공선성이 크기 때문에 단일 라벨이 아니라 다중 라벨(multilabel) 접근이 합성 지표(SHD composite)를 더 잘 잡는다고 명시했습니다.

② 진짜 적은 분포 이동이다. 외부 병원 3곳(Cedars-Sinai 10,177 · Montreal 10,862 · UCSF 6,106)에서 AUROC 가 내부 83%에서 78–80%로 5–7%p 떨어졌고, 커뮤니티 코호트(PREVUE-VALVE, 65–85세 재택 ECG)에서는 71%까지 내려갔습니다. 유병률이 43% → 8%로 바뀌면 같은 모델이 다른 도구가 됩니다.

③ 전향 배포의 성적은 재현 가능하다. 85,000명에게 배포했을 때 9%를 고위험으로 표시했고, 그중 초음파를 찍은 사람의 약 3/4 이 실제 SHD 로 진단돼 기존 진단 경로 대비 수율이 약 2배였습니다.

④ 같은 데이터로 이미 벤치마크가 있다. PhysioNet EchoNext Mini-Model(우리가 쓰는 10만 장 부분집합)로 학습한 2026년 프리프린트에서 단순 CNN·TCN 계열이 AUROC 0.86 수준을 보고했습니다. 즉 “잘 만든 baseline 은 0.85 근처”가 현실적 기준선이고, 우리 목표는 그 위에서 누수 없는 평가·사진 강건성·배포입니다.

⑤ 라벨 하나짜리 문제는 이미 RCT 까지 갔다. Mayo 의 low-EF AI-ECG 는 무작위 임상시험(Nat Med 2021)에서 진단율을 올렸습니다. LVEF ≤ 45% 는 가장 성숙한 타깃이므로, 우리도 주 지표는 LVEF, 나머지 11개는 보조 지표로 두는 편이 안전합니다.

출처는 7절.

2. 우리 데이터의 제약 세 가지

02 / 07

제약 1

환자 누수

36,286명 중 4,618명(12.7%)이 둘 이상의 split 에 등장합니다. 그대로 학습하면 val/test 성능이 부풀려집니다. 학습 전에 patient_key 그룹 split 을 다시 만드는 것이 0순위 작업입니다.

제약 2

텍스트 누수

결과지에 인쇄된 판독문(“ABNORMAL ECG” 61%, “LEFT AXIS DEVIATION” 등)이 라벨과 직접 상관합니다. 헤더·판독문을 끈 변형으로 이미지 기여도를 분리 측정해야 합니다.

제약 3

합성 이미지 → 실사진

학습 이미지는 정면·무왜곡 렌더입니다. 실제 입력은 손떨림·원근·조명이 있는 사진이라 도메인 간극이 큽니다. 증강과 문서 정면화가 성능의 절반입니다.

3. 단계별 계획

03 / 07

Stage 0 — 데이터 정비 (GPU 불필요)

  • 그룹 split: patient_key 기준 70/15/15 로 새 split 을 만들고, 기존 no_split 17,457장은 외부 검증으로 고정. 기존 Kaggle split 은 “참고용”으로만 병기.
  • 라벨 확정: 12개 이진 라벨 + LVEF 회귀(보조). PASP·TR max 는 결측이 43–55% 이므로 라벨로만 쓰고 입력에는 넣지 않음.
  • 누수 변형 렌더: --no-header --no-interpretation 으로 2만 장(각 split 비례)을 별도 렌더. 같은 split 정의를 그대로 사용해야 A/B 비교가 성립.
  • 썸네일 캐시: 224×224 uint8 npy(약 15GB → 100k×224×224 = 15GB, float16 회피)를 만들어 매 epoch 디코딩 비용을 제거. Kaggle Dataset 으로 1회만 만들면 학습 속도가 3–5배 빨라짐.

Stage 1 — 베이스라인 (Kaggle GPU, 1회 1–2시간)

  • 모델: ResNet18 / DenseNet121 (torchvision, ImageNet pretrained), 입력 224×224, 출력 12 sigmoid.
  • 손실: BCE + 라벨별 pos_weight(음성/양성 비율). PR ≥ moderate(0.8%)처럼 희귀한 라벨에서 focal loss 와 비교.
  • 목표: LVEF ≤ 45% AUROC 0.85 이상, SHD composite 0.80 이상. 이 아래면 데이터 파이프라인을 먼저 의심(라벨 정렬·경로 오류).
  • 판독문 있는 버전과 없는 버전을 같은 조건으로 두 번 학습 → AUROC 차이가 곧 텍스트 누수의 크기.

Stage 2 — 해상도·구조 (반복 실험)

  • 해상도: 224 → 384 → 448. 파형의 미세 진폭(QRS 폭·ST 변화)이 정보이므로 해상도가 가장 큰 레버일 가능성이 큼. 단, 448 입력은 배치·시간이 4배.
  • 구조: ConvNeXt-T / EfficientNet-B0 / ViT-S 중 2개만 비교. 12유도를 채널로 분리해 넣는 lead-wise stem 도 후보.
  • 보조 입력: 나이·성별을 별도 MLP branch 로 넣고, 이미지 단독 성능을 항상 함께 보고(나이 단축 방지).

Stage 3 — 사진 강건성

  • 증강: 회전 ±8°, 원근 변환, 조명 그라디언트, 그림자, 모션 블러, JPEG q40–90, 종이 접힘.
  • 실사진 소수(직접 촬영 50–100장)를 라벨 없이 모아 도메인 적응 검증에 사용. 라벨이 없어도 예측 분포가 무너지는지(평균 확률 이동·confidence collapse) 확인 가능.
  • 입력 파이프라인: 문서 검출 → 원근 보정 → 회색조·CLAHE → 224 리사이즈. 데모와 학습이 같은 코드를 쓰게 한다.

Stage 4 — 운영점과 보정

  • AUROC 만 보지 않고 보정(ECE·Brier)과 threshold 선택을 라벨별로 수행. 스크리닝이므로 high-sensitivity 운영점(예: NPV 우선)을 기본으로 제시.
  • DCA(decision curve)로 “초음파를 더 찍는 것이 이득인 임계 확률”을 제시.
  • 하위군 보고: 성별·연령대·진료 세팅(응급/입원/외래). 데이터에 race_ethnicity 가 있으므로 형평성 지표도 함께.

Stage 5 — 배포

  • PyTorch → ONNX (opset 17) → onnxruntime-web. 224 입력 기준 모델 크기 15–45MB로 압축(양자화 int8).
  • 웹 데모 탭에 실제 가중치 연결 → PC 앱(Electron/ Tauri) → APK(CameraX + ONNX Runtime Mobile).
  • 모든 배포본에 “연구용, 진단 대체 아님” 고지 + 입력 이미지 비전송(클라이언트 추론) 유지.

4. 평가 설계

04 / 07
보고할 지표와 이유
지표대상왜
AUROC라벨별 + macro선행연구와 직접 비교 가능한 공통 지표
AUPRC희귀 라벨(PR 0.8%, AR 1.3%)불균형에서 AUROC 는 낙관적
Sensitivity @ fixed specificityLVEF·SHD스크리닝 운영점은 여기서 결정
ECE / Brier전 라벨확률을 그대로 보여주는 UI 이므로 보정 필수
Δ AUROC (판독문 유/무)전 라벨텍스트 누수 크기 정량화
Group split vs 기존 splitLVEF·SHD환자 누수로 부풀려진 정도
하위군 AUROC성별·연령대·세팅형평성·일반화

보고 형식은 “내부 split / 그룹 split / no_split 외부” 세 열을 항상 같이 제시합니다. 한 숫자만 보고하면 이 데이터에서는 어떤 결론도 방어할 수 없습니다.

5. Kaggle 예산

05 / 07
GPU 시간 추정 (T4 ×2, 72,475 학습 이미지)
단계epoch추정
224px ResNet18 baseline121.5 h
384px124 h
448px 또는 ConvNeXt-T108 h
누수 A/B 재학습121.5 h
사진 증강 파인튜닝82 h

주당 GPU 할당(약 30시간) 안에서 2주면 Stage 1–3 을 끝낼 수 있습니다. 가장 비싼 실험(448px)은 Stage 1 에서 해상도 민감도가 확인된 뒤에만 실행합니다.

스토리지: 이미지 4.3 GB + 썸네일 캐시 15 GB + 체크포인트. Kaggle Dataset 상한 안에서 여유가 있습니다.

수치는 4 worker 렌더 실측(0.20 s/장)과 통상적인 T4 처리량에서 계산한 추정입니다. 첫 실행에서 실측으로 대체합니다.

6. 리스크와 중단 기준

06 / 07

실측 결과 (EfficientNetB0 · 6 epoch · 224px)

그룹 val macro AUROC 0.749 · LVEF ≤ 45% 0.818 · SHD 0.792. LVEF 는 목표(0.85)에 0.03 못 미쳤고 SHD 는 목표(0.80)에 근접했습니다. 같은 모델의 기존 val(학습에서 본 환자) macro 는 0.835 로, 환자 누수만으로 +0.086 이 부풀려집니다. 학습에 쓰지 않은 no_split 에서는 0.589 로 떨어져 별도 원인 분석이 필요합니다.

ViT(small) 는 0.485 — 사전학습 없이 6 epoch 로는 학습되지 않았습니다(구조 비교 불가).

판독문 누수 통제 실험 완료: 같은 2만 행에서 헤더·판독문만 제거하고 다시 학습한 결과 macro AUROC 0.721 → 0.708 (−0.013). LVEF −0.037, PR −0.067, AR·AS 는 +. 인쇄 텍스트의 기여는 작고 성능의 대부분은 파형에서 나옵니다. Grad-CAM 이 헤더에 몰린 것은 텍스트 판독이 아니라 상단 고주파 영역에 주의가 쏠린 현상으로 해석합니다.

해상도 실험 완료 (224 → 384): 그룹 val macro 0.749 → 0.768, 그룹 test 0.742 → 0.763. LVEF ≤ 45% 는 그룹 test 0.853 으로 목표(0.85) 달성, SHD 0.806 으로 목표(0.80) 달성. 반면 no_split 외부는 0.589 → 0.556 으로 악화 — 해상도가 아니라 분포 문제입니다. 다음 단계는 모델 확대가 아니라 no_split 코호트 규명과 실사진(촬영) 증강입니다.

이 숫자가 안 나오면 전략을 바꾼다

① 224px 베이스라인에서 LVEF AUROC < 0.80 이면 → 라벨 정렬·경로 오류를 먼저 점검(모델 문제로 보지 않음).

② 그룹 split 과 기존 split 의 AUROC 차이가 0.02 미만이면 → 환자 누수는 이 데이터에서 무시 가능, 이후 실험은 기존 split 로 단축.

③ 판독문 유/무 차이가 0.05 이상이면 → 텍스트 누수 통제 없는 결과는 폐기하고 이미지 단독 성능만 보고.

④ 448px 가 224px 대비 +0.01 미만이면 → 해상도 실험 중단, 증강·강건성에 자원 이동.

남는 위험

  • 합성→실사 간극: 이 계획의 최대 미지수. 웹 데모에 실제 촬영 사진을 넣었을 때 성능이 유지되는지가 배포 성공을 판정하는 기준입니다.
  • 스펙트럼 편향: 응급 31,453 · 입원 48,162 로 중증 편향. 커뮤니티 유병률(8%)에서는 AUROC 가 크게 떨어질 수 있습니다(선행연구 71%).
  • 임상 사용 금지선: 연구·교육용 데모로만 배포하고, 진단·치료 결정에 쓰지 않는다는 고지를 유지합니다.

7. 참고문헌

07 / 07
  1. Poterucha TJ, Elias P, et al. Detecting structural heart disease from electrocardiograms using AI. Nature. 2025. doi:10.1038/s41586-025-09227-0 — nature.com
  2. Elias P, Finer J. EchoNext: A Dataset for Detecting Echocardiogram-Confirmed Structural Heart Disease from ECGs (v1.1.1). PhysioNet. — physionet.org/content/echonext
  3. AI-ECG Detection of Structural Heart Disease in the Community Setting: Transportability and Spectrum Effects in PREVUE-VALVE. PubMed 42615442. — pubmed
  4. Yao X, et al. AI-enabled electrocardiograms for identification of patients with low ejection fraction: a pragmatic, randomized clinical trial. Nat Med. 2021;27:815–819.
  5. Multimodal Deep Learning for Structural Heart Disease Prediction (EchoNext Mini-Model subset benchmark). medRxiv preprint, 2026. — medrxiv
  6. NewYork-Presbyterian. EchoNext receives FDA clearance to aid early detection of structural heart disease. — nyp.org

수치(70만–120만 쌍, 외부 AUROC 78–80%, 배포 85,000명·9%·2배 수율, PREVUE-VALVE 71%)는 위 문헌의 초록·본문에서 인용했습니다. 우리 데이터 수치는 EDA 리포트에서 코드로 계산한 값입니다.