NIH 흉부 엑스레이 데이터세트에 대한 이진 분류(Binary Classification)를 통한 폐 질환 예측
이번 리포트에서는 NIH 흉부 엑스레이 데이터세트에 대한 이진 분류를 수행하겠습니다.
Created on July 2|Last edited on July 2
Comment
본 리포트는 Ayush Thakur의 "Predicting Lung Disease with Binary Classification on the NIH Chest X-ray Dataset"를 한국어로 번역한 글입니다.
개요
의학 영상을 이용한 머신러닝은 꽤 오랫동안 유망한 분야였습니다. 실제로 이 분야의 많은 사람들이 머신러닝 중심 진단이 “만약”이 아닌 “언제”의 문제라고 생각하고 있습니다. 그러나 거짓 음성(false negative) 또는 거짓 양성 (false positive)는 환자들에게 있어 매우 좋지 않은 것이므로, 해당 분야의 연구원들과 해당 업계는 여전히 주저하고 있습니다.
대부분의 의학 이미지와 마찬가지로 흉부 엑스레이는 데이터의 관점에서 매우 이상적입니다. 크기와 각도의 측면에서 상당히 균일하며, 많은 경우 공개적으로 이용할 수 있습니다. (물론, 개인 식별 정보의 경우 삭제됨)
이번 시간에 저희는 이러한 이미지의 NIH 데이터 세트를 활용하여 폐 질환 진단을 예측할 수 있는지에 대해 살펴보겠습니다. 특히, 여기서 저희 출력(output)은 정상적인 폐인지 비정상적인 폐인지에 대한 예측입니다.
수행 작업: 이진 분류
입력 유형: 이미지
출력: 정상 또는 비정상 폐를 나타내는 예측 점수(Prediction score)
그럼 이제 자세히 살펴보겠습니다:
데이터세트
NIH 흉부 엑스레이 데이터세트는 30,805명 고유한 환자의 14개 텍스트 마이닝(text-mined) 된 질병 레이블과 함께 112,120개의 엑스레이 이미지로 구성됩니다. 14개의 질병 레이블은 무기폐(Atelectasis), 심장 비대(Cardiomegaly), 경화(Consolidation), 부종(Edema), 삼출(Effusion), 폐기종(Emphysema), 섬유증(Fibrosis), 탈장(Hernia), 침윤(Infiltration), 종괴(Mass), 결절(Nodule), 흉막 비후(Pleural Thickening), 폐렴(Pneumonia), 기흉(Pneumothorax)입니다.
이러한 레이블을 생성하기 위해, 저자는 자연어 처리(Natural Language Processing)를 사용하여 관련 방사선 리포트에서의 질병 분류를 텍스트 마이닝(text-mine) 했습니다. 이 레이블은 90% 이상 정확하며 약한 지도 학습(weakly-supervised learning)에 적합한 것으로 보입니다.
라이선스 및 속성
- NIH 흉부 엑스레이 사용에는 제약이 없습니다.
- 데이터는 NIH 임상 센터(NIH Clinical Center)에서 제공하며, NIH 다운로드 사이트를 통해 이용하실 수 있습니다: https://nihcc.app.box.com/v/ChestXray-NIHCC/folder/36938765345
- Wang, et al. “ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks on Weakly-Supervised Classification and Localization of Common Thorax Diseases” ArXiv:1705.02315 [cs.CV], May 2017. arXiv.org, https://arxiv.org/abs/1705.02315.
Model: v1
문제 수립
이 모델을 통해, 특정 엑스레이 이미지를 정상(질병과 관련 없음) 또는 비정상(하나 이상의 질병이 있음)으로 예측하는 것이 목적입니다.
대상 사용 사례
- 연구: 컴퓨터 보조 진단(computer-aided diagnosis, CAD)을 위한 자동 딥러닝 기반 “흉부 엑스레이 판독” 분야의 발전을 위해.
- 사전 훈련된 가중치(Pretrained Weights): 엑스레이를 포함하는 다운스트림 작업에 대한 사전 훈련된 가중치 제공하기 위해.
- 홍보: 모델 리포팅을 위한 모델 카드 사용을 촉진하기 위해.
피해야 할 용도
- 모델의 이 버전은 엑스레이 이미지에 관련된 폐 질환이 있는지를 확인하는 데 사용되어서는 안 됩니다.
- 이 기술은 최신 기술(state of the art, SOTA)로 간주되어서는 안 됩니다.
훈련 데이터
NIH 흉부 엑스레이 데이터세트의 51,759개의 샘플은 하나 또는 그 이상의 질병(멀티 레이블)으로 레이블 지정됩니다. 이러한 샘플의 레이블은 1로 변환됩니다.
나머지 샘플은 No Finding으로 레이블이 지정됩니다. 데이터세트의 저자가 사용한 NLP 기반 레이블링 테크닉은 어떠한 질병과 이러한 샘플과 연관시킬 수 없었습니다. 이러한 샘플의 레이블은 0으로 변환됩니다.
model:v0의 훈련, 검증 및 테스트를 위해 20,000개의 훈련 이미지 및 5,000개의 검증 이미지, 10,000 테스트 이미지가 사용되었습니다.
사전처리(preprocessiong): 원본 이미지 크기는 (1024 x 1024) 픽셀입니다. 이 이미지들은 (256 x 256) 픽셀로 조정되며, 크기가 조정된 이미지는 축소됩니다.

그림 1: 이진 분류를 위한 훈련 세트의 샘플
모델 아키텍처
Global Max Pooling의 출력은 512개의 유닛을 포함한 relu 활성화 Dense 네트워크를 통해 전달됩니다. 이다음에는 드롭아웃 레이어(드롭률 0.2)가 뒤따릅니다. 출력 레이어는 sigmoid 활성화됩니다.

그림 2: 모델 활성화
훈련 관련 세부사항
- 학습률이 0.001의 Adam 옵티마이저가 사용됩니다.
- 크로스 엔트로피(Cross-entropy) 손실이 사용됩니다.
- 모델은 조기 종료(early stopping)와 함께 훈련됩니다.
Run set
1
평가
Run set 2
3
모델 편향(Model Bias)
NIH 흉부 엑스레이와 함께 제공되는 Data_Entry_2017_v2020.csv는 환자 데이터와 클래스 레이블을 포함하고 있습니다. 제공되는 환자 데이터는 다음과 같습니다:
- 성별: 남성 또는 여성
- 연령: 연속 값(continuous value)
훈련 중에는 연령 또는 성별에 대한 신호(signal)는 제공되지 않았습니다.
성별에 대한 편향(Bias)
모델은 테스트 데이터의 남성 전용(파란색) 및 여성 전용(오렌지색) 부분집합에서 평가됩니다.
관측
- 모델은 남성 카테고리에 속하는 엑스레이의 경우 더 나은 예측을 제공합니다.
- 이는 성별 측면에서 훈련 데이터세트에서의 불균형을 보여줍니다.
- 이러한 편향(bias)은 해당 데이터세트에서 비롯됩니다.
Run set
2
연령 집단에 대한 편향(bias)
연속 연령은 다음과 같이 분류됩니다: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90].
모델은 각 버킷에 대하여 평가되어 각 버킷의 모델 퍼포먼스에 대해 학습합니다.
관측
- 폐 관련 질환은 특정 연령대(중년 범위)에 흔한 것으로 보입니다.
- 테스트 오류율은 0-20세 연령 그룹에서 높으며, 이는 용인될만한 수준입니다.
- 70-90세 연령 그룹의 경우, 데이터 샘플 수가 다른 연령 그룹에 비해 적습니다.
이는 분야 지식 활용을 통해 더 잘 수량화될 수 있습니다.
Run set
19
다운로드
model:v1 다운로드
# initialize wandb runrun = wandb.init()# download model_nih_1.h5 as artifactartifact = run.use_artifact('wandb/model-card-NIH-Chest-X-ray-binary/model:latest')artifact_dir = artifact.download()# close the runrun.join()
제약
데이터세트
- 훈련에 사용된 데이터세트는 전체 데이터세트의 작은 부분집합입니다.
- 이미지 레이블은 NLP 추출되어 일부 잘못된 레이블이 있을 수 있습니다. NLP 레이블링 정확도는 90% 이상으로 추정됩니다.
모델
- 자연적으로 발생하지 않는 엑스레이와 같은 이미지의 경우, 바닐라 컨볼루션 신경망(vanilla convolutional neural network) 기반 이미지 분류기(classifier)는 충분하지 않습니다.
Add a comment
Tags: Beginner, Computer Vision, Classification, Experiment, Panels, Plots, Kaggle, NIH X-ray, Health Care
Iterate on AI agents and models faster. Try Weights & Biases today.