왜 CNN kernel은 odd size 일까?

가람·2021년 8월 12일
0

CNN 모델들을 보면 kernel size가 1x1, 3x3, 5x5, 7x7..등 홀수 사이즈가 대부분 입니다. (kernel size = 2, stride = 2인 pooling의 경우 연산이 비슷하지만 Convolution layer가 아니라 학습할 parameter가 없는 pooling layer입니다.)

작은 kernel 사이즈를 사용하는 VGG에서도 2x2가 아니라 3x3 사이즈의 kernel을 사용합니다. 왜 그런걸까요?

odd size kernel의 경우 중앙 픽셀(center pixel)의 위치가 명확합니다. 하지만, kernel size가 even number일 경우에는 어디를 중앙픽셀로 해야될지 명확하지 않습니다. 따라서 even size kernel이 쌓일수록 이미지의 feature map에 distortion이 생기게 됩니다. 또 다른 이유로는 2x2kernel은 주변 픽셀간의 관계를 나타내기에는 너무 작은 크기라는 문제도 있습니다.

참고 사이트
https://datascience.stackexchange.com/questions/23183/why-convolutions-always-use-odd-numbers-as-filter-size

profile
hello world :)

0개의 댓글