Lung nodule(폐 결절) classification 관련 논문이다.
본 연구에서는 basic 3D CNN, novel multi-output network, 3D DenseNet, augmented 3D DenseNet with multi-outputs 를 포함한 네 가지의 two-pathway CNN을 제안한다.
특히 MoDenseNet은 state-of-the-art(SoTA)를 달성했다.
폐암은 암으로 인한 사망의 가장 큰 원인이며, 2015년에 전 세계적으로 백만 건 이상의 사망이 있었고, 미국에서만 수십만건의 사망이 예상된다고 한다.
저용량(저선량) CT를 사용한 선별 검사가 폐암 사망률을 줄일 수 있지만, 양성(Benign)과 악성(malignant) 폐 결절의 미묘한 차이를 포착하여 진단하는 것은 전문가에게도 꽤 어려운 과제라고 한다.
CAD(Computer-Aided Diagnosis)은 non-invasive한 솔루션을제공하여 전문의의 폐 결절 진단을 보조하는 객관적인 예측을제공할 수 있는데, 기존 CAD 방식은 수동으로 만들어진 feature에 기반한 분류 모델 / 자동 feature 추출을 수행하는 DNN으로 나눌 수 있다.
본 연구에서는 end-to-end 폐 결절 진단을 위한 4개의 3D neural network를 제안한다.
공개 데이터셋인 LIDC-IDRI와 자체 데이터셋에서 모두 우수한 성능을 보였으며, 전이학습을 통해 더 작은 데이터셋에서도 적용될 수 있음을 보여준다. 이를 통해 제한된 데이터를 가진 상황에서도 모델의 활용도를 높일 수 있음을 시사한다.
기존 방식의 한계: 3D 정보의 일부가 소실되는 경향이 있음
Input: 두 가지의 다른 scale에서 3D 이미지 patch가 입력(nodule이 주로 차지하는 50x50x5 크기 / 결절 + 주변 조직 100x100x10 크기)
Convolution layer: 10개의 conv layers, 3x3x3 크기의 kernel, feature map 크기: 32, 32, 64, 64, 128,128, 256, 256, 512, 512
Pooling layer: conv layer 사이에는 2x2x1 크기의 필터를 사용하는 4개의 maxpool layer
Output: 마지막 단계에서 두 경로의 feature map이 합쳐지며, classification output layer로 연결
Basic 3D CNN 구조와 유사하지만, Multi-output(여러 개의 중간 출력)을 추가하여 초기 평가에서부터 피드백 계속 ~~
중간 출력?: 각 pooling layer 다음에 intermediate output이 추가되어 네트워크가 더 빠른 학습 + 최적화 가능
Dense Block: basic conv layer 대신 DenseBlock 사용 -> 모든 레이어가 직접적으로 연결되어 있는 구조로, 각 레이어의 출력이 다음 레이어의 입력으로 사용됨
첫 3개의 DenseBlock은 각각 4, 10, 20개의 conv layer를 포함, 각 레이어는 12개의 feature map 생성,
마지막 두 DenseBlockd는 각각 20개의 layer, 24개, 48개의 feature map 생성
3D DenseNet + Multi-output Network -> 네트워크가 깊어짐에 따라 발생하는 vanishing gradient 문제 완화, 더 나은 최적화
대규모 데이터셋(LIDC-IDRI)와 자체 데이터셋 사용
-> 상대적으로 작은 자체 데이터셋에 대해 네트워크 성능을 향상시키기 위해 transfer learning 적용
pre-trained된 네트워크의 conv layer 고정, 각 네트워크의 마지막 레이어를 자체 데이터셋에 대해 재훈련
3D volume에서 직접 작업하는 것이 2D 슬라이스 사용 등보다 더 나은 결과!
아쉬운건 자체 분류 데이터셋은 얻을 수 없다는점?
모델 코드는
코드 깃허브
참고
ReLU 활성화 함수와 최대 풀링 하고 최종 출력 계층은 선형 변환을 사용하여 두 클래스(양성 또는 악성)에 대한 예측을 생성하는 멋-진 논문... 당신 참개발자야.