본문 바로가기
컴퓨터과학

[논문읽기] Fibro-CoSANet: Pulmonary Fibrosis Prognosis Prediction using a Convolutional Self Attention Network

by 홈카페주인 2023. 5. 3.

1. 개요 및 연구동기

Idiopathic pulmonary fibrosis (IPF) 는 폐기능 감소를 유발하는 restrictive interstitial lung disease이다. 강제폐활량 (FVC)로 폐기능 저하를 평가하지만 IPF 의 정확한 진행을 결정하는 것은 여전히 어렵다. 이 연구에서는 FVC 감소를 예측하기 위한 새로운 멀티모달학습을 수행하는 Fibro-CoSANet을 제안한다.

 

논문에 나와있는 본 연구의 기여는 다음과 같다.

1. IPF를 예측하기 위해 멀티모달과 셀프 어텐션을 적용한 첫 번째 연구이다.

2. FVC 측정을 위한 고유한 공식을 추가로 도입

3. 좋은 성능을 보임 laplace log-likelihood

 

 

2. Data Preparation

1. CT에서 폐의 용적을 추정

2. 인구통계학적 특징을 추출하고 정규화

3. SVD를 사용하여 FVC의 pseudo-label을 만들고 적용

 

2.1 Forced Vital Capacity (FVC) Formulation

2.1.1 notation (내가 만든 소제목임)

$C \in {c_i, c_i+1}$ : CT 스캔

$ci \in {s_1, s_2, ... , s_{mi}}$ : ci의 슬라이스. mi = ci 의 슬라이스 수. k는 선택한 슬라이스

$n$ : 환자의 수

$H \in {h_1, h_2, ... , h_n}$ : 생성한 인구통계 및 체적특성세트 

$Z \in {z_i, z_i+1, ..., z_n}$ : FVC

$t_i$ : FVC 값의 수 

$w$ : corresponding week의 representation

 

$j$번째 주에 $i$번째 환자의 FVC 값을 다음과 같이 나타낸다.

$V_bi$ : 기본 FVC

$a_i$ : $i$ 번째 환자의 기울기 

 

다음과 같이 식을 확장할 수 있다.

다음과 같이 vectorize 할 수 있다.

행렬 A 는 다음과 같이 singular form 으로 나타낼 수 있다.

그리고 작업을 다음과 같이 공식화하고 해결할 수 있다.

 

2.2 CT Pre-processing and Lung Volume Extraction

1. CT 스캔당 하나의 슬라이스를 선택함

2. CT 슬라이스를 리사이즈 하고 normalizing

3. CT 사진에서 폐를 분할하고 용적을 계산함. 분할 알고리즘은 watershed algorithm

 

2.3 Extracing Demographic Features

IPF는 기준선 FVC, 연령, 성별, 흡연 상태 와 같은 인구 통계와 연관되므로 [9]에서 영감을 얻어 CT 이미지와 함께 통합한다. 

 

 

 

3. Network Architecture of Fibro-CoSANet

본 논문에서 제안하는 프레임워크는 두 단계로 구성된다.

1. self-attention 모듈이 있는 CNN을 사용하여 정규화된 CT 이미지에서 깊은 feature 를 추출한다.

2. FVC의 기울기를 예측하는 완전연결계층이 폐의 부피 및 인구통계학적 특징과 함께 CNN에서 추출된 feature를 융합시킨다.

GAP : Global Average Pooling

$f_d$와 $f_s$ 는 concatenate 한다. 그리고 FVC의 기울기 a를 얻기 위해 fully connected layer로 전송된다. 

이 섹션에서는 FVC 의 기울기를 예측하는 모듈에서 CT 이미지는 CNN 네트워크와 attention 네트워크를 거치게 된다.

 

3.1.1 Deep CNN for CT Feature Extraction

ResNet, RexNeXt, EfficientNet 기반의 구조를 사용하여 인코더를 구축하였다. 다음과 같이 공식화하였다.

* $W_a$ : CNN 모델의 Weight

* $*$ : 합성곱 연산

* $s$ : original ct image

인코더를 처음부터 무작위 초기화 하는 대신 CNN을 미세조정 했다고 한다. (공개된 코드에서 기학습된 네트워크를 불러오는지 확인할 필요가 있다)

 

3.1.2 Self-Attention Module

추출된 특징 fc 는 CT 이미지의 high level 수준의 의미를 가지고 있을 가능성이 높다. 네트워크가 CT feature map 중 특정 영역에 집중하도록 하기 위해 self-attention 모듈을 적용했다. (저자는 이를 통해 IPF 로 인한 벌집 모양의 낭종에 집중할 수 있게 한다고 설명했다.)

본 단락은 self-attention module에 대해서 자세하게 설명한다. (아래 그림 참고)

 

* $\gamma$ : uniform distribution 에서 추출된 학습가능한 스칼라 값. 처음에는 지역적인 정보에 집중하다가 나중에는 전역적인 정보에 접근하기 좋아진다고 한다. 결론적으로 성능 수렴을 향상시킨다고.

[22] 에서 CNN에 self-attention 을 적용하는 연구를 수행했다. 우리는 I 개의 self-attention 을 적용했다. I 는 하이퍼파라미터로 두었다. 

 

CNN 연산이 low level feature를 포착할 가능성이 높기 때문에 우리는 high level feature 를 포착하기 위해 self-attention 을 사용했다고 설명한다.

 

우리의 배치는 상대적으로 낮은 차원의 합성곱 feature map에 적용했기 때문에 계산 복잡성을 줄였다고 설명한다.

 

3.2 Hybrid Fusion of Convolutional and Shallow Modality Feature

* $a$ : 최종적으로 예측한 기울기

* $w_j$ : $j$ 번째 주의 timeline

* $j$ : week index

 

 

 

 

참고자료

https://arxiv.org/abs/2104.05889

 

Fibro-CoSANet: Pulmonary Fibrosis Prognosis Prediction using a Convolutional Self Attention Network

Idiopathic pulmonary fibrosis (IPF) is a restrictive interstitial lung disease that causes lung function decline by lung tissue scarring. Although lung function decline is assessed by the forced vital capacity (FVC), determining the accurate progression of

arxiv.org

https://paperswithcode.com/paper/fibro-cosanet-pulmonary-fibrosis-prognosis

 

Papers with Code - Fibro-CoSANet: Pulmonary Fibrosis Prognosis Prediction using a Convolutional Self Attention Network

Implemented in one code library.

paperswithcode.com

 

공개된 소스코드 실행방법

애플실리콘에서 pytorch 2.0 을 설치하고 gpu 를 mps 로 변경한다

그 다음 kaggle에서 데이터를 다운받아 압축을 적당한곳에 푼다.

config.py에서 환경변수에서 데이터 들어간 폴더로 경로설정을 잘 해준다.

그 다음 torch.cuda.empth_cache() 는 그대로 두고 실행. (주석을 걸고 실행했을 때 실행 중 gpu 용량이 초과된다.)

 

 

 

 

 

728x90

댓글