팀원 소개
프로젝트 소개 및 목적
2020년, 세계보건기구(WHO)가 발표한 전 세계 10대 사망 원인 중 3위는
만성 폐쇄성 폐질환(COPD)입니다. 호흡기 질환에 대한 관심이 높아지고
있음에도 불구하고, 청진의 특성상 초기 단계에서의 정확한 진단은 여전히
어렵습니다. 최근에는 전자 청진음을 활용해 환자의 호흡기 질환을 판별하는
딥러닝 기반 진단 기술에 대한 연구가 활발히 진행되고 있습니다.
청진을 통해 식별 가능한 대표적인 이상 호흡음으로는 crackle, wheeze가
있으며 일부 환자에서는 두 소리가 동시에 나타나기도 합니다. 기존 연구들은
crackle, wheeze, 그리고 crackle&wheeze(이하 both)를 개별 클래스로
분류하여 학습하였지만, 이 방식은 클래스 간 경계를 모호하게 하고 복잡한
청진음의 구조적 특성을 충분히 반영하지 못하는 한계가 있습니다.
본 프로젝트에서는 label 없이도 데이터의 임베딩만으로 학습할 수 있는
Self-supervised Learning 프레임워크를 기반으로, crackle과 wheeze의
동시 발생 구조를 반영한 Multi-label 호흡음 분류 모델을 제안합니다.
데이터 소개
ICBHI 2017 Challenge 데이터셋은 실제 임상 환경에서 녹음된 호흡음으로,
아동, 성인, 노인 등 다양한 연령대의 환자 126명으로부터 920개의 청진음을
수집하여 구성되었습니다. 모든 데이터는 crackle, wheeze에 대한 label이
주어져 있으며, 공식적인 train-test 분할 기준(6:4)이 제공되고 있습니다.
[Figure 1] Crackle, Wheeze, Both의 Mel Spectrogram
전처리 과정
1. 청진음 데이터를 4kHz/8kHz/16kHz로 샘플링
2. 0-padding, random crop을 통해 모든 청진음 데이터를 8초로 고정
3. FFT를 적용하여 mel spectrogram으로 변환
4. time masking, frequency masking, Gaussian noise, time stretch,
pitch shift 등 다양한 방법을 통해 mel spectrogram 증강
5. 전체 훈련 데이터의 평균과 표준편차를 사용하여 standard scaling
성능 평가 지표
[Figure 2] ICBHI 2017 데이터셋에서 정의하는 민감도와 특이도
공식적인 성능 평가 지표인 ICBHI Score는 crackle, wheeze, both에 대한
민감도(Se)와 normal에 대한 특이도(Sp)의 평균으로 정의됩니다.
Se는 각 비정상 class의 전체 데이터 개수 중 올바르게 분류한 것의 비율을,
Sp는 정상 중 옳게 분류한 것의 비율을 나타냅니다.
구현 및 분석
Method 1. Multi-label Self-supervised Learning
[Figure 3] Method 1의 모델 훈련 프레임워크
본 프로젝트에서는 crackle과 wheeze가 동시에 나타나는 청진음의 특성을
반영하기 위해 기존 MoCo 구조를 기반으로 multi-label 학습에 적합하게
설계된 Multi-label Self-supervised Learning 방식을 적용했습니다.
본 모델에서는 두 개의 view를 각각 encoder에 통과시켜 임베딩을 얻고,
queue에서 top-k 유사 샘플을 positive pair로 선택하여 pseudo-label을
생성한 후 BCE loss와 InfoNCE loss를 함께 사용해 대조학습을 진행합니다.
즉 다수의 positive pair를 허용하여, crackle과 wheeze 두 가지의 특성이
동시에 나타나도 crackle, wheeze와 가깝도록 학습하는 것이 목표입니다.
데이터 증강 방식, backbone, classifier 구조, loss function 조합에 대해
ablation 실험을 진행하였으나, 훈련 데이터셋의 규모가 작아 pretraining
단계에서는 충분한 representation 학습이 이루어지지 못했습니다.
Method 2. Cycle-mixed Multi-label Attention
[Figure 4] Method 2의 모델 훈련 프레임워크
환자별 생리적 차이와 청진기 종류의 다양성에 대응하는 robustness를
확보하고 소규모 데이터셋에서 self-supervised learning이 갖는 한계점을
보완하기 위해, 본 프로젝트에서는 샘플을 feature-level에서 혼합하여 만든
임베딩이 원본 샘플들의 임베딩과 일정 비율만큼 유사해지도록 학습하는
Cycle-mixed Multi-label Attention 구조를 설계했습니다.
본 모델에서는 patch 단위로 임베딩을 섞는 Patch-Mix 방식과 각 클래스별
attention 가중치를 적용하는 CSRA-attention 구조를 결합하여 혼합된
샘플에 대해 더 robust하고 label에 특화된 표현을 학습하도록 했습니다.
Loss는 BCE loss와 Mix-Contrastive loss를 결합한 형태로, label 정보를
바탕으로 클래스별 특성을 구분함과 동시에 feature-level에서의 샘플 혼합을
통해 다양한 데이터 조합에 robust한 표현을 학습할 수 있도록 하였습니다.
Ablation 실험에서는 SpecAugment, GRU-attention 기반 backbone 등
다양한 설정을 비교하였고, 최종 모델은 ICBHI Score 55점(민감도 39.85%,
특이도 70.23%)을 기록하였습니다. 이는 feature 혼합 및 label-specific
attention 구조가 실제 성능 개선으로 이어질 수 있음을 시사합니다.
결론
본 프로젝트는 crackle과 wheeze가 동시에 나타날 수 있다는 점에 주목하여
청진음 도메인에 특화된 Multi-label 호흡음 분류 모델을 설계하였습니다.
이를 통해 복잡한 구조의 호흡음 표현을 정교하게 학습하고자 하였습니다.
사용한 데이터셋은 규모가 작아 데이터 양과 품질에 민감한 Self-supervised
Learning 프레임워크에서 성능 향상에 한계가 있었습니다. 이에 Multi-label
임베딩 학습 구조는 유지하되, 훈련 과정에서 label 정보를 사용하고 샘플 간
혼합 기법을 적용한 결과 모델 성능이 개선된 것을 확인하였습니다.
Multi-Label Lung Sound Classification
based on Self-Supervised Learning
TEAM 청진스
Bigdata is Our A to Z
심현석
건국대학교
수학과
성예빈
고려대학교
통계학과
손병우
중앙대학교
기계공학부
김경민
세종대학교
데이터사이언스학과
이재욱
중앙대학교
물리학과

제 22회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [청진스] : Multi-Label Lung Sound Classification based on Self-Supervised Learning

  • 1.
    팀원 소개 프로젝트 소개및 목적 2020년, 세계보건기구(WHO)가 발표한 전 세계 10대 사망 원인 중 3위는 만성 폐쇄성 폐질환(COPD)입니다. 호흡기 질환에 대한 관심이 높아지고 있음에도 불구하고, 청진의 특성상 초기 단계에서의 정확한 진단은 여전히 어렵습니다. 최근에는 전자 청진음을 활용해 환자의 호흡기 질환을 판별하는 딥러닝 기반 진단 기술에 대한 연구가 활발히 진행되고 있습니다. 청진을 통해 식별 가능한 대표적인 이상 호흡음으로는 crackle, wheeze가 있으며 일부 환자에서는 두 소리가 동시에 나타나기도 합니다. 기존 연구들은 crackle, wheeze, 그리고 crackle&wheeze(이하 both)를 개별 클래스로 분류하여 학습하였지만, 이 방식은 클래스 간 경계를 모호하게 하고 복잡한 청진음의 구조적 특성을 충분히 반영하지 못하는 한계가 있습니다. 본 프로젝트에서는 label 없이도 데이터의 임베딩만으로 학습할 수 있는 Self-supervised Learning 프레임워크를 기반으로, crackle과 wheeze의 동시 발생 구조를 반영한 Multi-label 호흡음 분류 모델을 제안합니다. 데이터 소개 ICBHI 2017 Challenge 데이터셋은 실제 임상 환경에서 녹음된 호흡음으로, 아동, 성인, 노인 등 다양한 연령대의 환자 126명으로부터 920개의 청진음을 수집하여 구성되었습니다. 모든 데이터는 crackle, wheeze에 대한 label이 주어져 있으며, 공식적인 train-test 분할 기준(6:4)이 제공되고 있습니다. [Figure 1] Crackle, Wheeze, Both의 Mel Spectrogram 전처리 과정 1. 청진음 데이터를 4kHz/8kHz/16kHz로 샘플링 2. 0-padding, random crop을 통해 모든 청진음 데이터를 8초로 고정 3. FFT를 적용하여 mel spectrogram으로 변환 4. time masking, frequency masking, Gaussian noise, time stretch, pitch shift 등 다양한 방법을 통해 mel spectrogram 증강 5. 전체 훈련 데이터의 평균과 표준편차를 사용하여 standard scaling 성능 평가 지표 [Figure 2] ICBHI 2017 데이터셋에서 정의하는 민감도와 특이도 공식적인 성능 평가 지표인 ICBHI Score는 crackle, wheeze, both에 대한 민감도(Se)와 normal에 대한 특이도(Sp)의 평균으로 정의됩니다. Se는 각 비정상 class의 전체 데이터 개수 중 올바르게 분류한 것의 비율을, Sp는 정상 중 옳게 분류한 것의 비율을 나타냅니다. 구현 및 분석 Method 1. Multi-label Self-supervised Learning [Figure 3] Method 1의 모델 훈련 프레임워크 본 프로젝트에서는 crackle과 wheeze가 동시에 나타나는 청진음의 특성을 반영하기 위해 기존 MoCo 구조를 기반으로 multi-label 학습에 적합하게 설계된 Multi-label Self-supervised Learning 방식을 적용했습니다. 본 모델에서는 두 개의 view를 각각 encoder에 통과시켜 임베딩을 얻고, queue에서 top-k 유사 샘플을 positive pair로 선택하여 pseudo-label을 생성한 후 BCE loss와 InfoNCE loss를 함께 사용해 대조학습을 진행합니다. 즉 다수의 positive pair를 허용하여, crackle과 wheeze 두 가지의 특성이 동시에 나타나도 crackle, wheeze와 가깝도록 학습하는 것이 목표입니다. 데이터 증강 방식, backbone, classifier 구조, loss function 조합에 대해 ablation 실험을 진행하였으나, 훈련 데이터셋의 규모가 작아 pretraining 단계에서는 충분한 representation 학습이 이루어지지 못했습니다. Method 2. Cycle-mixed Multi-label Attention [Figure 4] Method 2의 모델 훈련 프레임워크 환자별 생리적 차이와 청진기 종류의 다양성에 대응하는 robustness를 확보하고 소규모 데이터셋에서 self-supervised learning이 갖는 한계점을 보완하기 위해, 본 프로젝트에서는 샘플을 feature-level에서 혼합하여 만든 임베딩이 원본 샘플들의 임베딩과 일정 비율만큼 유사해지도록 학습하는 Cycle-mixed Multi-label Attention 구조를 설계했습니다. 본 모델에서는 patch 단위로 임베딩을 섞는 Patch-Mix 방식과 각 클래스별 attention 가중치를 적용하는 CSRA-attention 구조를 결합하여 혼합된 샘플에 대해 더 robust하고 label에 특화된 표현을 학습하도록 했습니다. Loss는 BCE loss와 Mix-Contrastive loss를 결합한 형태로, label 정보를 바탕으로 클래스별 특성을 구분함과 동시에 feature-level에서의 샘플 혼합을 통해 다양한 데이터 조합에 robust한 표현을 학습할 수 있도록 하였습니다. Ablation 실험에서는 SpecAugment, GRU-attention 기반 backbone 등 다양한 설정을 비교하였고, 최종 모델은 ICBHI Score 55점(민감도 39.85%, 특이도 70.23%)을 기록하였습니다. 이는 feature 혼합 및 label-specific attention 구조가 실제 성능 개선으로 이어질 수 있음을 시사합니다. 결론 본 프로젝트는 crackle과 wheeze가 동시에 나타날 수 있다는 점에 주목하여 청진음 도메인에 특화된 Multi-label 호흡음 분류 모델을 설계하였습니다. 이를 통해 복잡한 구조의 호흡음 표현을 정교하게 학습하고자 하였습니다. 사용한 데이터셋은 규모가 작아 데이터 양과 품질에 민감한 Self-supervised Learning 프레임워크에서 성능 향상에 한계가 있었습니다. 이에 Multi-label 임베딩 학습 구조는 유지하되, 훈련 과정에서 label 정보를 사용하고 샘플 간 혼합 기법을 적용한 결과 모델 성능이 개선된 것을 확인하였습니다. Multi-Label Lung Sound Classification based on Self-Supervised Learning TEAM 청진스 Bigdata is Our A to Z 심현석 건국대학교 수학과 성예빈 고려대학교 통계학과 손병우 중앙대학교 기계공학부 김경민 세종대학교 데이터사이언스학과 이재욱 중앙대학교 물리학과