Deep Learning

Atrous Convolution 개념, 설명, 정리

Kimhj 2023. 12. 15. 14:37
  • Atrous Convolution(또는 Dilated Convolution) 컨볼루션 레이어에서 특정 픽셀 간의 간격을 필터를 사용하는 기술로, 컨볼루션 네트워크(Convolutional Neural Network, CNN)에서 피처 맵의 크기를 확장하면서도 계산 효율성을 유지하는 사용됨.
  • 다시 얘기하면, 일반적인 Convolution Layer와 달리, Atrous Convolution 은 dilated 개념이 적용된 합성곱 연산으로 볼 수 있음.
  • atrous = a trous (구멍이 있는)의 의미와 같게, convolution의 각 커널 사이에 1칸씩 구멍이 있는 것을 의미함. (일반적인 convolution layer의 dilation은 1이지만, Atrous Convolution의 dilation은 2임)
  • 이러한 layer를 사용하는 이유는, 더 넓은 범위(receptive field가 크다) 의 특징들을 추출하기 위함인데, 계산비용이 큰 Task에서 사용하기에 적합하다. (같은 자원으로 더 넓은 영역을 계산할 수 있음.)
  • Atrous Convolution 사용하면 필터의 크기를 확장하면서도 연산량은 증가하지 않는다는 장점이 있음.
  • 주로 러닝에서 세그멘테이션 객체 감지와 같은 작업에서 사용되며, Atrous Convolution DeepLab 같은 세그멘테이션 모델에서 공간 해상도를 높이면서도 높은 수용 영역을 유지하는 활용됨.
  • 이러한 내용을 잘 설명하는 예시가 있는데, 아래 사진을 보면 알 수 있다. (출처 : https://arxiv.org/abs/1606.00915)

상단 : 일반 convolution, 하단 : atrous convolution

  • 위 사진에서도 보다시피, 동일한 해상도의 입력값에 atrous layer를 사용하면  feature가 더 잘 추출된다.
  • 일반적인 convolution을 사용하면 pooling layer로 인해 feature map size가 계속 줄어들어 detail한 정보를 얻기 어려운데, pooling layer를 없앤 후 (receptive field가 큰) atrous conv layer를 적용하면 detail한 정보를 얻을 수 있음.