DeepLab 요약 정리

기린이·2023년 3월 19일
0

Dilated convolution(Atrous conv)

receptive field를 넓히는 데에는

  1. pooling 이 많이 사용됌.
    -> 그러나 이는 정보의 손실이 크다.

  2. 큰 크기의 커널
    -> 연산량이 늘어난다.

dilated conv를 사용하면 정보의 손실을 줄이되 연산량이 기존의 conv와 똑같다.

Inception module

googlenet에서 사용된 모듈.

receptive field를 넓히기위해 여러 크기의 커널을 사용한다.

그리고 이 결과를 concat한다.

depth wise separable convolution

depth wise convolution은 인풋의 각 채널별 필터로 conv연산 수행 후 이를 합치는 것이다.

depth wise convolution은 depth wise convolution 수행 후 1x1 conv를 이용하여 원하는 채널 수 만큼 늘리는 것이다.

즉 기존의 conv연산을 width와 depth 따로 수행하고 더한 것이다.

이는 depth wise covolution은 연산량을 줄일 수 있다.
자세한 내용은 과거의 내 글, 다른 자료를 참고하자.

Xception 모델

Xception 모델은 inception 모듈과 depth wise seqarable conv를 이용하여 연산량을 줄이면서 성능을 증가한 자주 사용되는 backbone 모델.

여기까지 deeplab을 이해하기 위한 준비가 다 됐당

DeepLab v1

  • dilated convolution
    이를 통해 더 넓은 receptive field를 가지는 feature를 뽑아낸다.
  • bi-linear upsampling
    마지막에 이를 이용해 upsampling한다.

DeepLab v2, v3

  • ASPP(Atrous Spatial Pyramid Pooling)
    다양한 rate의 dilated conv적용하고 이를 더하는 것

DeepLab v3+

  • DeepLab v3 인코더
    ASPP를 활용한 deeplab v3로 인코딩하고 이를 skip conntection으로 디코더와 연결

  • 수정된 Xception 인코더
    depth wise separable conv와 inception 모듈을 활용한 Xception모델로 인코딩, 이를 디코더에서 skip conntection으로 연결하여 upsampling

Q. 수정된 Xception이란?

  • 연산의 순서: 원래는 depthwise 를 진행하고, pointwise 를 했는데, 이제는 pointwise -> depthwise 로 바꿈
  • Non-Linearity 의 유무: Inception 모델의 경우, 첫 연산 후에 non-linearity (ReLU)가 있지만, Xception은 중간에 ReLU non-linearity 를 적용하지 않는다
  • Residual connection 이 거의 모든 Layer 에 있다 -> 없애고 실험해봤더니 있을때의 정확도가 훨씬 높았음. residual connection 이 굉장히 중요한 요소임
    참조
  • 인코더와 디코더를 skip connection으로 연결하여 upsampling

참고

https://wikidocs.net/143446

profile
중요한 것은 속력이 아니라 방향성, 공부하며 메모를 남기는 공간입니다.

0개의 댓글