더북(TheBook)

사고 실험으로 두 개의 conv2d 층(conv2d_1, conv2d_2라고 부르겠습니다)이 순서대로 쌓여 있고 중간에 maxPooling2d 층이 없을 때 어떻게 되는지 생각해 보죠. 두 conv2d 층의 kernelSize는 3입니다. conv2d_2의 출력 텐서에 있는 각 픽셀은 conv2d_1의 원본 입력에 있는 5 × 5 영역에 해당합니다.19 conv2d_2 층의 각 뉴런이 5 × 5 크기의 수용장을 가졌다고 말할 수 있습니다. (앞에서 만든 MNIST 합성곱 신경망처럼) 두 conv2d 층 사이에 maxPooling2d 층이 추가되면 어떻게 될까요? conv2d_2의 뉴런의 수용장은 훨씬 커져 8 × 8이 됩니다.20 물론 이는 풀링 연산 때문입니다. 여러 개의 maxPooling2d 층이 합성곱에 추가되면 나중에 등장하는 층은 더 큰 수용장과 위치 불변성을 가질 수 있습니다. 간단히 말해서 더 넓게 볼 수 있습니다!

둘째, maxPooling2d 층도 입력 텐서의 높이와 너비를 줄이기 때문에 이어지는 층과 합성곱 신경망 전체적으로 필요한 계산량을 크게 줄여 줍니다. 예를 들어 첫 번째 conv2d 층의 출력은 [26, 26, 16] 크기의 텐서입니다. maxPooling2d 층을 통과하고 나면, 이 텐서의 크기는 [13, 13, 16]이 됩니다. 텐서 원소의 개수가 네 배나 줄어듭니다. 이 합성곱 신경망은 또 다른 maxPooling2d 층을 포함하고 있어서 이어지는 층의 가중치 크기와 원소별 연산의 개수를 더 줄여 줍니다.

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