배움 기록/Deep Learning

[MONAI] UNETR 이란? (feat. Vision Transformers)

Spezi 2023. 1. 12. 03:14
반응형

 자세한 내용은 아래의 논문에서 확인가능

https://arxiv.org/abs/2103.10504

Background 한 줄 정리

FCNN(Fully Convolutional Neural Networks) 에서 인코더는 중요한 역할을 한다. global, local 의 Feature 를 배워서 contextual representation 을 함. 근데 FCNN의 locality 때문에 long-range 를 배우는데는 한계가 있다. -> NLP에서 큰 성공을 거둔 'transformer' 개념 도입 -> 그래서 만든게 UNEt TRansformers (UNETR)

 


UNETR

인코더와 디코더를 사용하는 U-Net 구조를 따르지만, 인코더에 transformer를 사용함. ->  장점: input volume의 sequence representation을 배울 수 있음, global 정보 capture 가능

 

U-Net

  • Encoder : extracted feature들을 점점 downsampling 해가면서 global contextual representation을 배울 수 있게 한다.
  • Decoder : extracted 된 representation을 반대로 upsampling 해서 input resolution과 같게 만들어 prediction 한다.
  • Skip connection : encoder의 output 를 different resolution 의 decoder와 합쳐서 downsampling 중 잃게 되는 spatial 정보를 보안한다.

FCNN-based approach의 단점

  • FCNN (convolutional layer의 단점) : long-range dependency 낮음 <- 이미지는 여러개의 작은 feature들로 구성되어 있기있고, 그 픽셀의 종속성은 feauture 가 있는 local 지역에 한정됨 <- 일정한 크기의 Kernel 사용해서 receptive field가 제한되어 있으니까
  • 즉 근접한 애들끼리만 종속됨

Transformer

  • long-range 끼리도 dependent 함
  • transformer 는 NLP 에서 성공을 거둠. 이를 이미지 분야에 적용한 예 : Vision Transformers
  • vision transformer 와 관련된 자세한 논문 : (https://arxiv.org/abs/2010.11929)
  • Transformer Encoder를 사용하려면 Transformer에 맞는 input을 넣어야함
    • 이미지를 patch 단위로 쪼개서 tocken 화 시킴 + position embedding

Transformer encoder 에서 3D pathces를 직접 사용해 결과를 CNN-based decoder에 넣어줌

Architecture of UNETR

  • 이미지를 transformer input에 맞게 만들기
    • 3D volume -> non-overlapping patches 들로 나눠줌 -> embedding space 에 넣어줌 -> position embedding 추가
  • 추출된 encoded representations을 decoder와 merge함
    • skip connection 사용

 

 

 


배움을 기록하기 위한 공간입니다. 

수정이 필요한 내용이나 공유하고 싶은 것이 있다면 언제든 댓글로 남겨주시면 환영입니다 :D

 

반응형