플로라도의 data workout
뉴럴넷 컨볼루션 필터의 모양과 사이즈는 왜 정사각형일까? 본문
흔히들 육각형을 가장 효율적인 도형의 한 형태로 알고 있을 것이다.
특히, 벌집이 육각형으로 구성되어 구조적 안정성과 효율적인 면적 사용을 확보했다는 이야기는 어린 시절 과학책에서 흔히 볼 수 있는 이야기 중 하나다.
컨볼루션 레이어의 필터는 많고 많은 도형중에 왜 정사각형을 채택한걸까?
일반적으로 컨볼루션 레이어는 위의 그림과 같이 각 채널에 대해서 w1 ~ w9의 가중치로 이루어진 정사각형 형태의 3x3의 필터를 가장 많이 사용한다.
그러나, 굳이 정사각형의 형태를 채택한 이유에 대해서는 좀처럼 다뤄지지 않은 것 같다. 대부분의 딥러닝 강의나 교재 등에서도 다뤄지지 않은 부분이고, 나 역시 이를 의심없이 받아들여 왔다.
위의 벌집의 예시처럼 육각형 형태라던지(물론 사각형의 형태가 가장 무난한 형태겠지만), 다양한 형태로 컨볼루션의 필터를 사용할 수도 있지 않을까? 하는 생각이 들었다.
역사적 배경
우선 나름의 이유를 찾아본 결과, 커널이 정사각형 형태로 발달하게 된 것은 이미지 처리 분야에서 딥러닝 이전의 컴퓨터 비전에서 대부분 정사각형 형태의 필터를 다뤄왔기 때문에 컨볼루션 레이어의 필터도 자연스레 정사각형 형태를 채택했다는 설명이다.
실제로 이미지가 대부분 정사각형 형태였기 때문에, 이미지 처리에 있어 필터는 대부분 정사각형을 사용하게 되었다.
계산의 효율성
사각형 형태의 커널이여야 사각형의 이미지 픽셀을 완벽하게 커버할 수 있고, 연산의 효율성 측면에서 육각형과 같은 다른 형태의 커널을 찾을 이유는 없는 것 같다.
특별히 정사각형의 필터는 이미지를 회전(rotation) 또는 flip을 하더라도 방향에 관계없이 특징 추출을 잘 해 낼수 있다.
직사각형 커널
기본적으로 딥러닝 프레임워크들은 정사각형 형태의 커널뿐만 아니라, 직사각형 형태도 사용할 수 있도록 하고 있다.
파이토치 documentation을 참고하면 nn모듈에서 지원하는 Conv2d의 kernel_size는 다음과 같이 튜플 형태로 입력하게되면, 직사각형 형태의 커널을 사용 할 수 있다.
kernel_size=(5,3)과 같이 커널 사이즈를 직사각형 형태의, 가로3, 세로5의 튜플형태로 주게되면 정사각형이 아닌 직사각형 형태의 커널을 사용하게 되는 것이다. 직사각형의 사용은 정사각형의 커널 대비 특정 방향의 특징을 더 강조하거나, 이미지의 특정 형태를 더 잘 맞추는 가능성을 제공할 수도 있다.
그러나 일반적으로 대부분의 CNN 아키텍쳐들은 정사각형 형태의 커널을 사용하는 것으로 발달 되어 왔고, 방향에 관계없는 균일한 정보 추출, 계산 효율성 등 다양한 실용적인 측면에서 정사각형 형태의 커널이 직사각형 형태의 커널보다 더 우수하다고 할 수 있다.
가능성
최근에는 사각형 형태의 고전적인 이미지 뿐만 아니라 360도 이미지, 파노라마 이미지 등 기존의 이미지를 벗어난 다양한 이미지의 형태들이 등장하였다.
추후에 기존과 같은 정사각형 형태의 커널을 탈피해 쓰임새에 따라 이들을 위한 다양한 커널의 모양을 적용해 볼 수도 있지 않을까 한다.
Reference
https://stackoverflow.com/questions/49003346/why-convolutional-nn-kernel-size-is-often-selected-as-a-square-matrixhttps://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d
'기초 노트 > VisionAI' 카테고리의 다른 글
앵커박스(Anchor-box)와 바운딩 박스(Bounding-box)의 차이 (0) | 2024.06.03 |
---|---|
Trasnfer Learning vs Fine-tuning 그 차이가 뭔가요? (0) | 2024.05.07 |
딥러닝 FLOPs의 의미 (1) | 2024.05.02 |
translation-equivariance vs invariance 설명, "CNN은 translation invariant하다." (0) | 2024.03.06 |
Inductive bias가 뭔가요? (1) | 2024.02.16 |