[nyyoon] 논문리뷰 : Dermatologist-level classification of skin cancer with deep neural networks

2025. 2. 1. 08:04·Paper_Review

원본 논문 링크 : https://www.nature.com/articles/nature21056

논문 출시일 : 2017년

논문리뷰 작성일 : 250131


Introduction

  • 연구 목적 

본 논문은 CNN(Convolutional Neural Networks)을 이용한 피부 병변을 분류하는 방법을 제시하고, 그 성능을 피부과 전문의의 진단과 비교하여 검증하는 것을 목표로 합니다.

  • 배경 지식
    • CNN(Convolutional Neural Network)
      • end-to-end CNN
    • transfer learning (전이 학습)

Summary

  • 연구 배경 및 필요성

미국인 5명 중 1명은 일생 동안 피부암 진단을 받게 되며, 특히 흑색종은 전체 피부암의 5% 미만으로 발병되지만 피부암 사망자의 약 75%를 차지합니다. 흑색종은 조기 발견 시 생존율이 크게 향상되기 때문에 조기 진단을 위한 피부 병변 분류 기술이 필요합니다. 

기존의 피부암 진단 연구는 전문 장비가 필요한 dermoscopy images(피부경 이미지) 분석이나, biopsy(생검)이 필요한 histological images(조직 병리 이미지) 분석에 집중되어 photographic images(스마트폰 사진 등)에 바로 적용하기 어려웠을 뿐만 아니라 부족한 데이터 때문에 일반화된 모델을 개발하기 부족했습니다.

이에 본 연구에서는 별도의 전처리(lesion segmentation, extraction of domain-specific visual features) 없이 image label 과 raw pixels 만으로 훈련되는 end-to-end CNN을 활용하여 photographic images와 dermoscopic images를 동시에 분석할 수 있는 모델을 개발하였습니다. 

  • 연구 방법 

1. Development of a CNN

 

본 논문에서는 피부과 전문의의 진단과 견줄 수 있는 CNN을 개발하기 위해 GoogleNet Inception v3 CNN architecture을 활용하였습니다. 이 모델은 1,000개의 객체 범주에 대해 128만개의 이미지로 사전 학습된 모델이며, 본 연구의 dataset에 적용하기 위해서 transfer learning(전이 학습)을 이용하였고, 레이아웃은 아래와 같습니다. 

Figure 1 ❘ Deep CNN layout

CNN은 757개의 disease classes에 대해 학습되었으며, dataset은 2,032개 질병의 트리 구조 분류 체계(의 부분 집합 ->Figure 2a)로 정리된 dermatologist-labelled image로 구성되어 있습니다. 

Figure 2 ❘ A schematic illustration of the taxonomy(left) and example test set image(right)

위 그림(왼쪽)은 skin disease의 트리 구조 분류체계의 부분집합을 나타냅니다. 전체 분류체계는 2,032의 질병을 포함하고 있으며, 이는 시각적, 그리고 임상적 유사성을 기반으로 분류됩니다. 빨간색은 malignant(악성), 초록색은 benign(양성), 노란색은 non-neoplastic(비종양성, 악성과 양성 둘다 가능한 상태)을 나타냅니다.  

연구 팀은 분류 체계에 포함된 세밀한 정보를 이용하기 위해 아래와 같은 알고리즘을 개발하였습니다. 이 알고리즘은 질병을 세밀화된 training classes로 분류하고, 추론 과정에서는 세밀화된 클래스에 대해 확률 분포를 출력합니다. 우리가 관심있어 하는 상위 class의 확률을 구하기 위해서는 하위 classes의 확률를 모두 더해주면 됩니다. 

Extended Data Table 1(left) Disease-partitioning algorithm, Extended Data Figure 1(right) Procedure for calculating inference class probabilities from training class probabilites

위 알고리즘에 대해 좀 더 자세히 살펴보자면, 이는 recursive(재귀적) 방식으로 트리 구조의 taxonomy(분류 체계)를 따라가며 각 질병을 적절한 훈련 클래스로 그룹화하도록 설계되었습니다. 단 maxClassSize를 설정해 각 클래스에 포함되는 데이터 수가 특정 임계값을 초과하지 않도록 제한하였습니다. 즉, 하위 질병을 포함한 그룹을 만들되 그룹의 크기가 너무 크면 더 작은 클래스로 나누는 방식으로, 질병의 임상적 유사성을 유지하면서도 학습 데이터가 고르게 분포하도록 할 수 있다는 장점이 있습니다.  

 

+ 코드 해석

Inputs 

taxnomy(tree): 질병 분류 체계 (트리 구조)
maxClassSize(int): 각 훈련 클래스가 포함할 수 있는 최대 데이터 수

트리 구조로 된 질병 분류 체계를 사용하고, 각 훈련 클래스에 포함되는 데이터 추가 maxClassSize를 초과하면 더 작은 그룹으로 나눕니다. 

 

Output

partition(list of sets) : 질병을 여러 훈련 클래스로 분할한 결과

질병을 그룹화하여 나온 결과의 리스트들을 출력합니다.

 

Procedure 1 : Descendants(node); 특정 노드의 모든 하위 질병을 찾는 함수

procedure Descendants(node)
	return {node} U {Descendants(child) for child in node.child}

특정 질병 노드에서 시작해 모두 하위 질병을 포함한 세트를 반환하는 코드입니다. 즉, node = Melanoma라면, Amelanotic Melanoma, Pigmented Melanoma 등 모든 하위 질병들이 포함된 세트를 말합니다.

 

Procedure2 : NumImages(nodes); 특정 노드 그룹의 총 데이터 수 계산 

procedure NumImages(nodes)
	return sum(length(node.images) for node in nodes)

특정 노드 집합 내 모든 질병의 총 이미지 개수를 합산하여 반환합니다. 즉, 특정 훈련 클래스에 포함된 총 데이터 개수를 계산하는 역할을 하며, nodes = [amelanotic melanoma, pigmented melanoma] 라면 두 질병의 데이터의 개수를 합산하여 반환합니다. 

 

Procedure3 : PartitionDisease(node)

procedure PartitionDiseases(node)
	class <- Descendants(node)  # 현재 노드의 모든 하위 질병 포함
    if NumImages(class) < maxClassSize : 
    	append class to partition  # 데이터 수가 임계값(maxClassSize)보다 작으면 훈련 클래스로 추가)
    else :
    	for child in node.children 
        	PartitionDiseases(child) # 데이터가 너무 많으면 더 작은 단위로 분할

입력 노드의 모든 하위 질병(훈련 클래스 후보)를 가지고 옵니다. 만약 해당 그룹의 데이터 개수(NumImages(class))가 임계값보다 작으면 훈련 클래스로 추가하고, 아니라면 노드를 더 작은 그룹으로 나누어 재귀적으로 처리합니다. 즉, 특정 클래스의 데이터가 너무 많으면 그 아래 하위 질병 단위로 분할하여 학습을 진행하도록 하는 코드입니다. 

 

실행

partition = []  # 최종적으로 분할된 훈련 클래스를 저장할 리스트
PartitionDiseases(taxonomy.root)  # 트리의 루트부터 시작해 분할 수행
return partition

트리의  root 노드부터 시작하여 질병을 분할하고, 최종적으로는 훈련 클래스로 분할된 리스트를 반환하게 됩니다. 

 

이러한 코드의 과정은 Extended Data Figure 1에서도 확인할 수 있습니다. Inference classes는 빨간색, Training classes는 초록색 노드로 표현되어 있으며, 하얀색 노드는 상위 클래스에 포함된 노드이거나 개별 훈련 클래스로 나누기에는 크기가 큰 노드를 나타냅니다. 이런 구조를 통해 parent node;u와 childern node;C(u) 사이의 확률 관계를 정의할 수 있습니다. 즉, C(u)의 확률의 합이 u의 확률과 같아야 합니다. CNN은 training classes, 즉 초록색 노드에 관한 확률 분포를 출력합니다. 앞서 언급 했듯, inference classes의 확률을 계산하기 위해서는 해당 클래스의 하위 training classes 노드의 확률을 모두 더하면 됩니다. 즉, P_benign=0.6=0.1+0.05+0.05+0.3+0.02+0.03+0.05로 이해할 수 있습니다. 

 

즉, 정리해보자면 본 논문에서는 Disease-partitioning algorithm을 이용하여 CNN 모델이 효과적으로 skin diseases를 학습할 수 있도록 적절한 크기의 훈련 클래스를 구성하는 과정을 설명합니다. 질병을 유사한 그룹으로 묶기 위하여 재귀 알고리즘을 사용하고, maxClassSize를 설정해 데이터가 부족한 class나 데이터가 많은 class를 방지해줍니다. 이후, inference 과정에서 CNN 모델이 training class의 확률을 예측하고, 이를 더하여 상위 class의 확률을 계산합니다. 

 

2-1. effectiveness of the algortihm by using nine-fold cross-validation

본 논문에서는 nine-fold cross-validation를 사용하여 두 가지 방식으로 위 알고리즘의 효과를 검증하였습니다. 

 

-  three-class disease partition

세 가지 질병 그룹을 사용하여 알고리즘을 검증하는 방법입니다. benign lesions(양성 병변), malignant lesions(악성 병변), non-neoplastic lesions(비종양성 병변)의 질병 그룹이며, 이는 taxonomy의 최상위 노드에 해당합니다. 이를 적용했을 때, CNN 모델은 72.1±0.9%의 전체 정확도를 나타낸 반면, 두 명의 피부과 전문의는 각각 66.56%, 66.0%의 정확도를 기록했습니다. 

 

- nine-class disease partition 

아홉 가지 질병 그룹을 사용하여 알고리즘을 검증하는 방법입니다. taxonomy의 두 번째 레벨의 노드에 해당합니다. 이때, CNN  모델은 55.4 ±1.7%의 전체 정확도를 달성했으며, 두 명의 피부과 전문의는 각각 53.3%, 55.0%의 정확도를 보여주었습니다. 

 

아래의 표를 통해 Disease Partitioning Algorithm을 적용해 더 세밀한 질병 분할에서 학습된 CNN 모델이 기존의 CCN 모델, 즉 각각의 클래스만 직접 학습한 CNN 보다 더 나은 성능을 갖고, 전문의 보다 높은 정확도를 가진다는 것을 보다 면밀하게 확인해 볼 수 있습니다. 

Extended Data Table 2 ❘ General validation results

(단, 이미지들이 biopsy로 확인된 것이 아닌 피부과 전문의에 의해 라벨링만 된 것이므로 위의 평가지표 만으로 최종적인 결론을 내리기는 어렵습니다.)

즉, Disease Partitioning Algorithm이 효과적임을 확인할 수 있습니다. 

 

2-2. effectiveness of the algortihm by using biopsy-proven images

위 방법에서 dermatologist-labelled images로 검증을 진행했다면, 최종적으로는 biopsy-proven images 를 이용하여 malignant vs benign (lesions of epidermal or melanocytic)을 구분할 수 있는지를 검증하였습니다. 

(epidermal -> keratinocyte carcinoma(악성 각질세포암) vs seborrheic keratosis(양성 지루각화증), melanocytic -> malignant melanoma(악성 흑색종) vs nevus(양성 모반))

epidermal lesions(표피성 병변), melanocytic lesions(멜라닌 세포 병변), melanocytic lesions visulaized with a dermoscope(dermoscopy로 확인된 멜라닌 세포 병변), 이 세 가지 task에 대해 malignant vs benign 식별을 진행합니다.

(Figure 2b를 확인해 보았을 때 malignant vs benign이 얼머나 어려운지 확인해 볼 수 있습니다.)

비교 기준은 'sensitivity(민감도)' 와 'specificity(특이도)'를 사용하였는데, sensitivity는 실제 악성 병변 중 CNN이 정확히 악성으로 예측한 비율이며, specificity는 실제 양성 병변 중 CNN이 정확히 양성으로 예측한 비율입니다. 

(이때 true positive는 맞게 예측된 악성 병변 수, positive는 실제 악성 병변 수, true negative는 맞게 예측된 양성 병변 수, negative는 실제 양성 병변 수를 의미합니다.)

테스트 세트를 CNN에 입력하면, CNN은 각 이미지에 대해 악성일 확률 P를 출력합니다. 이를 이용하여 sensitivity와 specificity를 계산할 수 있는데 이를 위해 threshold probability(기준 임계값); t를 설정하고 각 이미지에 대한 예측 값; ŷ 을 ŷ =P≥t 와 같이 정의합니다. 즉, P가 t보다 크거나 같으면 모델은 악성으로 예측하고, t보다 작으면 양성으로 예측합니다. 

t를 0부터 1까지 변화시키면, CNN이 달성할 수 있는 다양한 sensitivity와 specificity의 조합을 나타내는 아래와 같은 ROC 곡선(Receiver Operating Characteristic Curve)을 그릴 수 있습니다. 

Figure 3 ❘ Skin Cancer classification performance of the CNN and dermatologist

Figure 3a는 epidermal과 melanocytic lesions을 분류하는 CNN의 성능과 피부과 전문의의 성능을 비교한 것으로, 빨간 점은 피부과 전문의의 민감도 및 특이도를 나타냅니다. 이때 빨간점이 파란 곡선 아래에 위치하는 경우 CNN이 해당 피부과 의사보다 더 나은 성능을 보인다는 것을 알 수 있습니다. (AUC, 즉 곡선 아래 면적이 클 수록 더 좋은 분류 모델이다.) 초록점은 피부과 전문의의 평균 성능을 나타냅니다. Figure 3a(sample test set)와 Figure 3b(full test set)를 비교했을 때 AUC 값의 변화는 0.03 미만으로 미미하기에 더 큰 데이터 셋에서도 이 결과가 신뢰할 수 있음이 검증되었습니다. 

더불어 CNN이 학습한 내부 특징을 t-SNE(t-distributed Stochastic Neighbour Embedding)을 이용해 분석하였고, 그 결과는 아래와 같습니다.

Figure 4 ❘ t-SNE visualization of the last hidden layer representations in the CNN for four disease classes

각 점은 CNN의 마지막 은닉 층에서 2,048 차원 출력으로부터 2차원으로 투영된 피부 병변 이미지를 나타냅니다. 우리는 동일한 임상적 classes 에 속하는 점들이 무리를 형성하는 것을 확인할 수 있습니다. Basal 과 squamous cell carcinomas(기저 및 편평세포암)은 malignant epidermal(악성 표피성 병법) 구름 내에서 분리되어 나타났으며, Melanomas(흑색종)은 중앙에 무리를 형성하고 있습니다. Nevi(모반)은 오른쪽에서 클러스터를 형성하고, Seborrheic keratoses(지루성 각화증)은 악성 병변들과 반대 방향으로 무리를 형성하고 있음을 확인할 수 있습니다. 


Strengths

  • 연구의 기여점(새로운 이론, 실험 방법, 데이터 분석 방식 등)

본 연구를 통해 피부 병변 분류에 있어서의 딥러닝 효과성이 입증되었으며, 이 기술이 일반적인 피부 질환과 특정 암을 분류하는 데 사용될 수 있음을 보여줍니다. CNN을 사용하여, 최소 21명의 피부과 전문의들이 수행한 세가지 주요 진단 작업(keratinocyte carcinoma 분류, melanoma 분류, dermoscopy를 활용한 melanoma 분류)에서의 성능이 검증되었습니다.

이는 모바일 기기에서도 활용될  수 있어, 피부암의 초기 진단이 가능할 수 있도록 해줍니다. 

 

+ end-to-end CNN을 이용하여 전처리 과정을 생략할 수 있는 방식을 사용했다는 것, 새로운 알고리즘을 적용시켜 더 나은 CNN 모델을 개발했다는 점을 다른 연구에 이용해 볼 수 있을 듯 합니다. 

'Paper_Review' 카테고리의 다른 글

[shpark] Machine Learning Prediction Models for Postoperative Stroke in Elderly Patients Analyses of the MIMIC Database 논문 리뷰  (0) 2025.02.17
[nyyoon] VoxelMorph: A Learning Framework for Deformable Medical Image Registration  (0) 2025.02.13
[shpark] A Deep Learning Model for Automated Sleep Stages Classification Using PSG Signals 논문 리뷰  (0) 2025.02.08
[hsjung] [논문리뷰] The false hope of current approaches to explainable artificial intelligence in health care  (0) 2025.02.08
[shpark] [논문 리뷰] High-Resolution Image Synthesis with Latent Diffusion Models  (0) 2025.02.01
'Paper_Review' 카테고리의 다른 글
  • [nyyoon] VoxelMorph: A Learning Framework for Deformable Medical Image Registration
  • [shpark] A Deep Learning Model for Automated Sleep Stages Classification Using PSG Signals 논문 리뷰
  • [hsjung] [논문리뷰] The false hope of current approaches to explainable artificial intelligence in health care
  • [shpark] [논문 리뷰] High-Resolution Image Synthesis with Latent Diffusion Models
team-sudal
team-sudal
team-sudal 님의 블로그 입니다.
  • team-sudal
    SUDAL
    team-sudal
  • 전체
    오늘
    어제
    • 분류 전체보기 (127) N
      • MedicalFM (22)
        • anomaly_detection (1)
        • change_detection (1)
        • report_generation (3)
        • classification (1)
        • denoising (1)
        • generation (0)
        • reconstruction (0)
        • regression (3)
        • segmentation (0)
        • super_resolution (1)
        • MAE (7)
      • MAISI (9)
        • MAISI_Data (9)
      • Paper_Review (46) N
      • Others (18)
      • LambdaCourse (0)
        • Paper_Review (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Occlusal caries
    Fibre-optic transillumination
    GaN
    Bite-wing radiograph
    0
    Visual inspection
    Diagnosis
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
team-sudal
[nyyoon] 논문리뷰 : Dermatologist-level classification of skin cancer with deep neural networks
상단으로

티스토리툴바