목차
- Dilated Convolution 이란
- Dilated Convolution 적용 이유
- Dilated Residual Network와 Pytorch 코드
Dilated Convolution 이란

- 위 이미지를 보면 왼쪽이 일반적인 convolution 연산이고 오른쪽이 dilated convolution 연산입니다.
- 위 이미지의 파란색이 입력이고 초록색이 출력인데 오른쪽의 dilated convolution을 보면 왼쪽의 일반적인 convolution과 비교하였을 때, 필터간의 간격이 있는 것을 확인할 수 있습니다.
- dilation 상수를 통해서 표현하면 왼쪽의 일반적인 convolution은 dilation이 1이고 오른쪽의 dilated convolution은 dilation이 2가 됩니다. 즉, 필터에서 픽셀 간의 간격이
dilation에 해당합니다.
- dilated convolution의 개념은 wavelet decomposition 알고리즘에서
atrous algorithm이라는 이름으로도 사용되었습니다. 따라서 dilated convolution, atrous convolution 이라고 불립니다. 이 글에서는 dilated convolution 이라고 칭하겠습니다.
- 참고로 dilated convolution이라고 시작하게된 계기는 FCN을 발전시킨 Fisher Yu의 Multi-Scale Context Aggregation by Dilated Convolutions에서 시작되었고 atrous convolution은 deeplab 논문에서 사용되었습니다.
- atrous는 프랑스어로 구멍이라는 뜻입니다.

- dilated convolution을 적용하면 소위 말하는
receptive field가 넓어지게 됩니다.
receptive field는 convolution filter가 커버하는 영역이라고 생각하면 됩니다. 따라서 receptive field가 넓어진다는 것은 필터가 받아들이는 영역이 넓어진다는 것이고 필터가 넓은 범위를 본다고 생각하시면 됩니다.
- 위 그림에서 빨간색 점이 있는 위치에서만 필터의 파라미터가 존재한다고 생각하시면 됩니다.
- 앞에서 설명한 바와 같이 가장 왼쪽의 그림은
dilation이 1인 convolution filter 입니다. (input : 3 x 3 영역 → output : 3 x 3 영역)
- 가운데 그림은
dilation이 2가 적용되었습니다. 여기서도 빨간색 점이 연산에 사용되는 필터의 파라미터 입니다. 따라서 가운데 그림의 경우 output으로 3 x 3 을 만들었을 때 input의 receptive field는 7 x 7이 됩니다. (input : 7 x 7 영역 → output : 3 x 3 영역)
- 가장 오른쪽 그림의 경우
dilation이 4가 적용되었습니다. 가운데 그림과 동일한 원리로 receptive field가 15 x 15로 아주 넓습니다. (input : 15 x 15 영역 → output : 3 x 3 영역)

- 따라서 위 그림과 같이 dilation rate가 서로 다른 3 x 3 convolution을 한 지점에서 여러 개 사용함으로써 receptive field를 늘릴 수 있습니다.