더북(TheBook)

4.2.1 conv2d 층

첫 번째 층은 2D 합성곱을 수행하는 conv2d 층입니다. 이 책에서 첫 번째로 등장하는 합성곱 층입니다. 이 층은 무슨 일을 할까요? conv2d는 이미지-대-이미지 변환입니다. 이 층은 4D (NHWC) 이미지 텐서를 또 다른 4D 이미지 텐서로 바꿉니다.11 하지만 높이, 너비, 채널 개수는 달라질 수 있습니다(conv2d로 4D 텐서를 다루는 것이 이상하게 보일지 모르지만, 배치 차원과 채널 차원은 부가적이라는 점을 유념하세요). 직관적으로 이 층을 흐리게 하거나 선명하게 만드는 간단한 ‘포토샵 필터’12의 묶음으로 이해할 수 있습니다. 이런 효과는 입력 이미지 위를 작은 픽셀 조각(합성곱 커널(convolutional kernel) 또는 간단히 커널(kernel)이라 부릅니다)이 슬라이딩하는 2D 합성곱으로 만들어집니다. 슬라이딩 위치마다 커널이 입력 이미지의 겹치는 부분과 픽셀별로 곱해집니다. 그다음, 이 픽셀별 곱셈이 모두 더해져서 출력 이미지의 한 픽셀이 됩니다.

밀집 층과 비교해 보면 conv2d는 훨씬 매개변수가 많습니다. kernelSizefilters는 conv2d 층의 중요한 두 매개변수입니다. 이 매개변수의 의미를 이해하기 위해 2D 합성곱의 작동 원리를 개념적으로 설명해 보겠습니다.

그림 4-3은 2D 합성곱을 자세히 나타내고 있습니다. 여기에서 입력 이미지 (왼쪽 위) 텐서는 쉽게 종이에 그릴 수 있도록 간단한 샘플로 구성되어 있다고 가정합니다. conv2d 연산은 kernelSize = 3filters = 3으로 설정되었다고 가정합니다. 입력 이미지가 두 개의 채널(설명을 위한 것으로 일반적인 채널 개수는 아닙니다)을 가지고 있기 때문에 커널은 [3, 3, 2, 3] 크기의 3D 텐서입니다. 처음 두 개의 숫자(3과 3)는 kernelSize로 결정되는 커널의 높이와 너비입니다. 세 번째 차원(2)은 입력 채널의 개수입니다. 네 번째 차원(3)은 무엇일까요? 이는 필터13의 개수로, conv2d 출력 텐서의 마지막 차원이 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.