Atrous Convolution
1. 일반적인 convolution
2. Atrous convolution(dilated convolution)
위 두 이미지를 한 번 살펴보자
일반적인 convolution과 달리 atrous convolution의 경우 kernel 사이가 한 칸씩 띄워져 있는 것을 확인할 수 있다.
그렇다면 atrous는 무슨 의미일까?
구글 검색기를 돌려보니 프랑스어로 a trous는 구멍이 있는 이라는 뜻이다.
이 말은 kernel 사이에 구멍이 있는 convolution이라는 뜻으로 볼 수 있다.
이런 kernel 사이의 간격을 dilation rate라고 정의하며,
일반적인 convolution의 경우 dilation rate가 1로 볼 수 있다.
그렇다면 위 atrous convolution 이미지의 dilation rate는 2라고 볼 수 있다.
atrous convolution의 경우 중간 구멍을 0으로 채워지게 해서
그렇다면 왜 이렇게 kernel 중간에 간격을 두는 것일까?
일반적인 convolution와 동일한 computational cost로 더 넓은 field of view(큰 receptive field)를 제공하기 때문이다.
위 이미지와 비교해보면
일반적인 convolution의 receptive field는 3 x 3에 불과하지만
atrous convolution 경우 동일한 parameter로 5 x 5의 receptive field를 가져간다.
아래 deeplabv2의 논문 이미지를 봐보자
윗 부분은 일반적인 convolution, 아래 부분은 atrous convolution을 적용하여 나온 feature map을 보여준다.
동일한 해상도에서,
일반적인 convolution을 보면 feature가 sparse하게 추출된 반면,
atrous convolution의 경우 feature가 dense하게, 더 두드러지게 추출된 것을 확인할 수 있다.
그렇다면 kernel 사이의 간격을 추가해 receptive field를 크게하는 이유는 무엇일까?
일반적인 classification의 경우
detail한 정보보단 대상의 존재 여부만을 확인하는데 집중한다.
그렇기 때문에 convolution과 pooling을 조합하여 object의 변화에 큰 영향을 받지 않은 강인하고 축약된 정보만을 사용한다.
그래서 detail보다는 global information에 집중을 한다.
반면 semantic segmentation의 경우
픽셀단위의 조밀한 예측(dense prediction)이 필요하다.
classification network를 그대로 사용할 경우 계속 feature map의 크기가 줄어들기 때문에 detail한 정보를 얻는데 어려움이 있다.
(일반적인 convolution)
이를 해결하기 위해 deeplab에서는 pooling layer를 없애고,
atrous convolution을 이용하여 receptive field를 확장시키는 효과를 얻었다.
참고
https://towardsdatascience.com/types-of-convolutions-in-deep-learning-717013397f4d
'딥러닝관련 > 기초 이론' 카테고리의 다른 글
신경망 정리 1 (퍼셉트론, 활성화 함수, 시그모이드, 계단함수...) (0) | 2021.05.01 |
---|---|
Perceptron (퍼셉트론) (0) | 2021.05.01 |
확률변수 (0) | 2021.04.14 |
기계 학습에서 확률의 필요성 (0) | 2021.04.14 |
행렬식(determinant) (0) | 2021.03.10 |