개념
성능 수치는 데이터 나누기에서 결정된다
레슨 1 에서 성능 지표를 다뤘다. 그 숫자가 어느 데이터에서 나왔는지 가 숫자 자체보다 중요한 경우가 많다.
핵심 원리는 단순하다. 평가 데이터가 학습에 조금이라도 섞이면 성능이 부풀어 오른다. 그리고 의료 데이터에서는 그 "조금" 이 생기는 경로가 많고 눈에 잘 보이지 않는다.
공개 자료가 보고하는 영향 크기가 이 문제의 심각성을 보여 준다. 환자 단위 구조를 무시하면 중간 정도의 누출 상황에서도 AUC 가 관측 단위에서 약 18 퍼센트포인트, 환자 단위에서 약 12 퍼센트포인트 부풀 수 있다 는 분석이 있고, 병리 영상에서 한 환자의 조각(tile) 이 학습과 검증에 함께 들어가는 경우 성능 지표가 최대 41 퍼센트포인트까지 부풀 수 있으며, 환자 단위 분리를 적용하면 알려진 모델의 성능이 크게 떨어지는 것이 드러난다는 보고가 있다.
퍼센트포인트 수십 단위의 차이 다. 이것은 모델의 좋고 나쁨이 아니라 측정이 틀렸는지 의 문제이고, QA 가 확인하지 않으면 아무도 확인하지 않는다.
인용한 수치는 특정 연구·조건의 결과이므로 우리 상황에 그대로 적용되지 않는다. 읽어야 할 것은 크기의 자릿수 다 — 누출은 소수점 문제가 아니라 결론을 바꾸는 문제다.
누출이 생기는 경로 — 축으로 정리한다
QA 가 확인할 축이 일곱이다.
| 축 | 누출이 생기는 방식 |
|---|---|
| 환자 | 같은 환자의 다른 영상·다른 검사가 학습과 평가에 나뉘어 들어간다 |
| 검사·시점 | 같은 검사의 여러 장면, 또는 같은 환자의 추적 검사가 갈린다 |
| 조각·패치 | 한 영상에서 잘라 낸 조각들이 학습과 평가에 섞인다 |
| 전처리 기준 | 정규화·보정 통계를 전체 데이터로 계산한 뒤 나눈다 |
| 라벨 경로 | 평가 라벨을 만드는 데 모델 출력이 쓰였다 |
| 선택 기준 | 평가 데이터를 모델이 잘하는 조건으로 골랐다 |
| 반복 조정 | 평가 데이터를 보고 모델을 고치는 것을 반복했다 |
첫 번째가 가장 흔하고 가장 큰 영향을 준다. 의료 데이터는 한 환자에게 여러 건 이 있는 것이 기본이다. 좌·우, 여러 각도, 여러 시점, 여러 부위. 무작위로 나누면 같은 환자의 데이터가 양쪽에 들어가고, 모델은 그 환자의 특징을 외운다.
그래서 원칙이 정해진다. 환자 단위로 나눈다. 공개 자료는 표준적인 K-겹 교차검증이 환자 그룹을 무시하므로 환자 단위 누출을 허용 한다고 지적한다. 그룹을 고려하는 분할 방식을 써야 한다.
네 번째(전처리 기준) 는 눈에 잘 안 보인다. 영상 밝기를 정규화하기 위해 평균·표준편차를 구하는데, 그것을 나누기 전 전체 데이터로 계산하면 평가 데이터의 정보가 학습에 들어간다. 올바른 순서는 나눈 뒤 학습 데이터만으로 기준을 계산하고 그 기준을 평가 데이터에 적용 하는 것이다.
일곱 번째(반복 조정) 는 가장 다루기 어렵다. 평가 데이터로 성능을 보고 모델을 고치는 것을 여러 번 반복하면, 그 평가 데이터는 더 이상 독립적이지 않다 — 사실상 학습에 쓰인 것이다. 그래서 최종 평가용 데이터를 따로 봉인 하는 설계가 필요하다. 아래에서 다룬다.
세 묶음과 봉인
널리 쓰이는 분할 구조다.
[학습용] 모델을 학습시킨다
[개발·조정용] 하이퍼파라미터·임계값을 고르고 중간 성능을 본다. 여러 번 본다
[최종 평가용] 한 번만 본다. 봉인한다세 번째가 "봉인" 되어야 하는 이유 가 일곱 번째 누출 축이다. 여러 번 보면 그 데이터에 맞춰 조정하게 되고, 성능이 부푼다.
QA 가 확인할 질문이 셋이다.
- 세 묶음이 분리되어 있는가 — 두 묶음만 쓰고 있으면 조정과 평가가 섞여 있다
- 최종 평가용을 몇 번 봤는가 — 기록이 있는가
- 봤다면 그 뒤에 모델을 고쳤는가 — 고쳤으면 그 데이터는 더 이상 독립이 아니다
두 번째의 기록이 없는 경우가 대부분 이다. 그러면 "몇 번 봤는지 모른다" 가 되고, 성능 수치의 독립성을 주장할 수 없다. 접근 기록을 남기는 절차 를 요구하는 것이 QA 의 실질적 기여다.
분리가 올바른지 검사로 확인한다
"환자 단위로 나눴습니다" 를 말로 받지 않고 검사로 확인 한다. 모듈 61 레슨 2, 모듈 46 레슨 10 의 "결과 0건이면 통과" 형태로 만든다.
| 검사 | 통과 조건 |
|---|---|
| 환자 식별자 교집합 | 학습·평가 묶음 간 환자 식별자가 겹치지 않음 → 0건 |
| 검사 식별자 교집합 | 같은 검사가 양쪽에 없음 → 0건 |
| 영상 식별자 중복 | 같은 영상이 두 묶음에 없음 → 0건 |
| 조각 출처 교집합 | 조각의 원본 영상이 양쪽에 없음 → 0건 |
| 내용 해시 중복 | 식별자가 달라도 내용이 같은 파일이 없음 → 0건 |
| 묶음 크기·구성 | 선언된 비율과 실제가 일치 |
다섯 번째가 식별자만으로 못 잡는 누출을 잡는다. 같은 영상이 다른 식별자로 두 번 들어온 경우, 익명화 과정에서 식별자가 새로 부여된 경우가 실재한다. 내용 기반 비교가 그것을 잡는다.
이 검사들을 데이터 준비 파이프라인에 넣는 것 이 목표다. 사람이 한 번 확인하는 것으로는 유지되지 않는다 — 데이터가 추가될 때마다 다시 확인되어야 한다.
편향 — 집단별로 쪼개 보지 않으면 보이지 않는다
누출이 성능을 부풀리는 문제라면, 편향은 특정 집단에서 성능이 낮은데 전체 평균에 가려지는 문제다.
전체 민감도 90% 인 모델이 이렇게 구성될 수 있다.
전체 민감도 90%
├ 집단 A (표본 900건) → 92%
└ 집단 B (표본 100건) → 72%집단 B 에서는 쓸 수 없는 모델 인데 전체 숫자는 좋다. 그리고 집단 B 가 임상적으로 중요한 집단 일 수 있다 — 고령층, 소아, 특정 질환 동반, 특정 장비로 촬영한 영상.
그래서 QA 가 요구할 것이 분명하다. 집단별 성능을 쪼개서 보고하라.
쪼갤 축은 이렇다.
| 축 | 왜 중요한가 |
|---|---|
| 촬영 장비·제조사·모델 | 영상 특성이 다르다. 학습에 없던 장비에서 떨어진다 |
| 촬영 조건·프로토콜 | 선량, 재구성 방식, 두께, 조영 유무 |
| 기관 | 장비와 프로토콜이 기관마다 다르다. 가장 큰 변동 요인 |
| 연령·성별 | 해부학적 차이와 유병률 차이 |
| 동반 질환·삽입물 | 수술 흔적, 금속 삽입물, 다른 병변 동시 존재 |
| 질환 중증도·크기 | 작은 병변에서 성능이 떨어지는 것이 전형적이다 |
| 영상 품질 | 움직임 흔적, 잡음, 일부 잘림 |
세 번째(기관) 가 가장 큰 변동 요인 이고, 그것이 외부 검증의 중요성으로 이어진다. 아래에서 다룬다.
여섯 번째(병변 크기) 는 임상적으로 특히 중요하다. 작은 병변을 놓치는 것이 조기 발견의 핵심이고, 전체 성능은 큰 병변이 끌어올린다. 크기 구간별 민감도 를 보고하지 않으면 이 약점이 숨는다.
집단별 보고의 함정 — 표본이 작아진다
쪼개면 각 집단의 표본이 작아지고 신뢰구간이 넓어진다. 레슨 1 에서 다룬 문제가 여기서 커진다.
집단 B 의 표본이 20건이면 민감도 72% 의 신뢰구간이 매우 넓고, "집단 B 에서 성능이 낮다" 고 단정할 수 없다. 그런데 "성능을 확인하지 못했다" 는 것은 말할 수 있다.
이 구분이 중요하다.
| 상황 | 올바른 보고 |
|---|---|
| 집단별 표본이 충분 | "집단 B 에서 민감도 72%(신뢰구간 …)" |
| 집단별 표본이 부족 | "집단 B 의 표본이 N 건으로 성능을 확인하지 못했다" |
| 집단이 아예 없음 | "집단 B 의 데이터가 없다" |
두 번째와 세 번째가 정직한 보고 이고, 그것이 사용 범위 제한이나 추가 데이터 수집으로 이어진다. "성능이 좋다" 로 묻어 버리면 그 집단에서 쓰이고 문제가 난다.
모듈 65 레슨 4 에서 다룬 "덮이지 않은 영역을 명시하는 것이 증거의 신뢰를 만든다" 와 같은 원칙이다. 전체 숫자 하나보다 집단별 표와 비어 있는 칸 이 강하다.
외부 검증 — 다른 기관 데이터로 재는 것
같은 기관 데이터로만 평가하면 그 기관의 장비·프로토콜·환자 구성에 맞춰진 성능 을 재게 된다. 다른 기관에서는 떨어진다.
공개 자료가 보고하는 실태가 이것을 보여 준다. AI 연구 중 외부 검증이 수행된 비율이 낮다 는 분석이 있고(한 체계적 검토에서 약 15% 수준, 이후 증가 추세), 외부 데이터에서 AUROC 가 평균적으로 낮아지며 절반 가까운 연구에서 0.05 이상 떨어졌다 는 보고가 있다.
이 수치도 특정 분석의 결과이고 우리 경우와 다르다. 읽어야 할 것은 방향이다 — 외부 데이터에서 성능은 거의 항상 떨어지고, 그 하락 폭을 모르면 현장 성능을 예측할 수 없다.
QA 가 확인할 질문이 넷이다.
- 외부 검증을 했는가 — 안 했으면 현장 성능을 예측할 근거가 없다
- "외부" 가 얼마나 외부인가 — 같은 기관의 다른 기간인가, 다른 기관인가, 다른 지역·장비인가. 외부성의 정도 가 중요하다
- 하락 폭이 얼마인가 — 내부 성능과 나란히 보고되는가
- 하락의 원인을 분석했는가 — 장비·프로토콜·환자 구성 중 무엇인가
두 번째가 자주 느슨하게 처리된다. 같은 병원의 다른 시기 데이터를 "외부 검증" 으로 부르면 외부성이 거의 없다. 외부성의 정도를 명시 해야 그 결과가 무엇을 보장하는지 알 수 있다.
현장 배포 후의 변화
데이터 문제는 배포로 끝나지 않는다. 시간이 지나면 입력 분포가 변한다.
| 변화 | 예 |
|---|---|
| 장비 교체·갱신 | 새 장비의 영상 특성이 다르다 |
| 프로토콜 변경 | 촬영 조건이 바뀐다 |
| 환자 구성 변화 | 진료 과목·지역 구성이 바뀐다 |
| 유병률 변화 | 레슨 1 의 PPV 가 바뀐다 |
| 상류 소프트웨어 갱신 | 재구성·전처리가 달라진다 |
마지막이 눈에 안 보이는 경로 다. 영상 장비나 PACS 쪽 소프트웨어가 갱신되면 우리 입력이 미묘하게 달라질 수 있고, 모델은 그대로인데 성능이 변한다.
그래서 운영 중 감시 가 필요하다. 모듈 57 레슨 2 의 드리프트 감시, 모듈 40 레슨 8 의 시판 후 감시 되돌림이 여기서 결합된다.
감시할 것은 둘이다.
- 입력 분포 — 장비·프로토콜 구성, 영상 특성 통계. 학습 당시와 비교
- 출력 분포 — 양성 판정 비율. 급변하면 입력이 바뀌었거나 문제가 있다
정답이 늦게 오거나 안 오는 것 이 의료의 특성이다. 확진까지 시간이 걸리고, 일부는 확인되지 않는다. 그래서 출력 분포 감시가 대리 지표 로 쓰이고, 정답이 모이는 대로 주기적 재평가를 한다.
데이터 취급 — 절차 안에서만
이 레슨의 모든 작업은 환자 데이터 를 다룬다. 전제를 분명히 해 둔다.
- 접근 권한과 승인 절차 안에서만 작업한다
- 가명·익명 처리 방식과 그 결과 검증 이 필요하다(모듈 41 레슨 10 의 "가명화를 돌린 기록은 있고 결과를 확인한 기록은 없다" 와 같은 문제)
- 의료 영상에는 파일 메타데이터에 식별 정보 가 들어 있을 수 있다. 영상 자체만 가리고 메타데이터를 그대로 두는 실수가 실재한다(레슨 4 와 연결)
- 반출 통제와 보관 기간 이 규정과 법령에 따라 정해진다
- 절차를 우회하지 않는다. 분석 편의를 위한 우회는 그 자체로 중대한 문제다
QA 가 데이터 분리·편향 분석을 하려면 데이터에 접근해야 하고, 그 접근이 정당한 절차로 이뤄졌는지 가 심사에서 확인된다.
실무에서 왜 필요한가
의료 AI 조직에서 성능 수치가 부풀어 있는 것을 발견하는 것은 QA 가 만들 수 있는 가장 큰 가치 다. 그리고 그 발견은 어려운 분석이 아니라 식별자 교집합 검사 한 번 으로 나오는 경우가 많다.
환자 단위 분리가 안 되어 있으면 보고된 성능이 전부 다시 계산되어야 하고, 그 사실을 출시 전에 아는 것과 심사·현장 도입 후에 아는 것의 차이가 자릿수로 크다. "환자 식별자가 겹치지 않는지 확인했습니까" 라는 질문 하나 가 그 차이를 만든다.
두 번째 기여는 집단별 성능 쪼개기 다. 전체 평균에 가려진 약점을 드러내고, 표본이 부족한 집단은 "확인하지 못했다" 로 정직하게 보고 하게 만든다. 그 보고가 사용 범위 제한이나 추가 데이터 수집으로 이어진다.
세 번째는 외부성의 정도를 묻는 것 이다. "외부 검증했습니다" 를 받으면 "어느 정도로 외부입니까" 를 묻는다. 같은 기관 다른 기간이면 외부성이 거의 없고, 그 사실이 보고에 적혀야 한다.
네 번째는 최종 평가 데이터 접근 기록 이다. 몇 번 봤는지 기록이 없으면 성능의 독립성을 주장할 수 없다. 기록 절차를 요구하는 것은 비용이 거의 없고 효과가 크다.
다섯 번째는 배포 후 입력 분포 감시 다. 모델은 그대로인데 성능이 변하는 경로가 있고, 상류 소프트웨어 갱신 같은 것은 아무도 우리 쪽 영향으로 생각하지 않는다. 감시를 요구해 두면 그 변화를 잡는다.
채용시장에서의 위치
이 영역은 의료 AI 공고에서 "데이터 검증", "성능 평가", "임상 검증 지원" 으로 나타나고, 의료기기 시험기관과 인허가 컨설팅 쪽에서도 요구된다.
특징은 데이터 엔지니어링과 임상 이해의 교집합 이라는 점이다. 식별자 구조를 이해하고 검사를 만들 수 있으면서, 어느 집단이 임상적으로 중요한지 판단할 수 있어야 한다. 양쪽을 다루는 사람이 적다.
면접에서 가르는 질문이 분명하다. "성능 수치가 부풀려졌는지 어떻게 확인 하시겠습니까." 환자 단위 식별자 교집합, 전처리 기준 계산 시점, 최종 평가 데이터 접근 횟수를 들면 즉시 구분된다. 그리고 "전체 민감도 90% 보고를 받으면 무엇을 물어보시겠습니까" — 집단별로 쪼갠 결과와 각 집단의 표본 수를 묻겠다고 답하면 실무자로 읽힌다.