Bootcamp MissionComputer Vision
흉부 X-Ray 폐렴 분류
흉부 X-Ray 이미지를 CNN으로 분류하는 컴퓨터 비전 실습
게시 2026-07-10
PythonPyTorchtorchvisionJupyter
Contents · 목차
무엇을 하는 미션인가
흉부 X-Ray 이미지를 정상 / 폐렴으로 분류하는 교육용 실습입니다. 의료 판독에 쓸 수 있는 수준을 목표로 한 것이 아니라, 불균형 데이터에서 전이학습과 지표 해석을 익히는 과제입니다.
모델과 불균형 처리
직접 쌓은 CNN과 사전학습 ResNet18(ResNet18_Weights.DEFAULT)을 함께 학습했습니다.
클래스 수가 불균형해 CrossEntropyLoss(weight=class_weights)로 손실에 가중치를 줬습니다.
옵티마이저는 Adam(lr=0.001, weight_decay=1e-4)입니다.
결과 — 검증과 테스트가 벌어진 지점
| 구간 | Accuracy | Precision | Recall | F1 |
|---|---|---|---|---|
| Train (10 에폭) | 0.9904 | 0.9959 | 0.9912 | 0.9935 |
| Val (best) | — | — | — | 0.9923 |
| Test | 0.8510 | 0.8113 | 0.9923 | 0.8927 |
검증 F1 0.9923과 테스트 F1 0.8927의 차이가 이 실습의 핵심입니다. 테스트에서 Recall은 0.9923으로 유지되는데 Precision이 0.8113으로 떨어집니다 — 테스트셋에서 폐렴을 놓치는 비율은 낮았지만, 정상 이미지를 폐렴으로 분류하는 경우가 늘었다는 뜻입니다. 검증셋 성능만 보고 멈췄다면 이 격차를 보지 못했을 구간입니다.
한계
- 교육 과정의 분류 실습입니다. 위 수치는 이 데이터셋 안에서의 값이며 진단 성능이 아닙니다
- 임계값은 0.50 고정이고 조정 실험은 없습니다
- 테스트 624장 단일 실행 결과이며 반복 측정은 없습니다