28.32 합성곱 신경망(CNN)에서의 4차 텐서 구조: 배치×채널×높이×너비

28.32 합성곱 신경망(CNN)에서의 4차 텐서 구조: 배치×채널×높이×너비

1. 차 텐서 구조의 도입

합성곱 신경망(Convolutional Neural Network, CNN)은 이미지와 같은 격자(Grid) 구조 데이터를 처리하기 위해 설계된 신경망 계열로, 그 입력과 내부 활성값(Activation)은 거의 예외 없이 4차 텐서로 표현된다. 4차 텐서의 네 축은 각각 배치(Batch), 채널(Channel), 높이(Height), 너비(Width)에 대응하며, 가장 일반적으로 사용되는 NCHW 약속에서는 형상이 (N, C, H, W)로 기술된다. 여기서 N은 미니배치 내 표본 수, C는 채널 수, H는 공간적 높이, W는 공간적 너비이다. 이러한 4차 구조는 임의로 정해진 것이 아니라, 합성곱 연산이 필요로 하는 공간 국소성, 가중치 공유, 다중 특성 표현이라는 세 가지 핵심 요구 사항을 동시에 충족시키기 위한 가장 단순한 형식이다.

2. 입력 텐서의 의미론적 구성

2.1 배치 축 N

배치 축은 동시에 처리되는 독립적인 표본의 수를 나타낸다. 합성곱 계층은 배치 축에 대해 동일한 합성곱 커널을 표본별로 동일하게 적용하므로, 배치 축은 본질적으로 병렬 차원(Parallel Dimension)의 역할만 수행하며 다른 축과 상호작용하지 않는다. 이는 미니배치 내 표본들이 서로 독립적이라는 통계적 가정을 그대로 반영한다.

2.2 채널 축 C

채널 축은 각 공간 좌표 (h, w)에 부여되는 특성 벡터의 차원을 나타낸다. 입력 단계에서는 채널이 색상 성분(예: RGB의 경우 C = 3)에 해당하지만, 신경망 내부로 들어가면 각 채널은 학습된 합성곱 커널이 산출한 특성 맵(Feature Map)에 대응한다. 따라서 채널 축은 단순한 색상 차원이 아니라 “각 위치에서 어떤 특성이 활성화되었는가“를 표현하는 일반화된 특성 차원이며, 합성곱 계층은 이 채널 축에 대해 완전 결합(Fully Connected)된 방식으로 가중합을 수행한다.

2.3 공간 축 HW

높이 축과 너비 축은 격자 위에서의 위치를 표현하며, 합성곱 연산이 가중치 공유와 평행 이동 등변성(Translation Equivariance)을 행사하는 차원이다. 두 축은 본질적으로 동일한 성격을 가지며, 합성곱은 이 두 축에 대해 동일한 형태의 국소 영역을 슬라이딩하면서 적용된다. 합성곱 신경망의 특성인 매개변수 공유는 정확히 이 두 축을 따라 동일한 커널이 반복적으로 적용된다는 사실에서 기인한다.

3. 합성곱 가중치 텐서의 구조

합성곱 계층의 가중치는 입력과 출력 특성 맵 사이의 매핑을 정의하는 4차 텐서로 표현된다. 형상은 일반적으로 (C_{\text{out}}, C_{\text{in}}, k_H, k_W)로 기술되며, 각 축의 의미는 다음과 같다. C_{\text{out}}은 출력 특성 맵의 채널 수, 즉 학습되는 합성곱 커널의 개수이다. C_{\text{in}}은 입력 특성 맵의 채널 수이며, 각 출력 채널이 모든 입력 채널에 대해 가중합을 수행하기 때문에 가중치 텐서에 포함된다. k_Hk_W는 커널의 높이와 너비, 즉 국소 수용 영역(Local Receptive Field)의 크기이다.

이 가중치 구조는 이미지의 모든 위치가 동일한 커널을 공유한다는 사실을 자연스럽게 표현한다. 가중치 텐서에 공간 위치를 나타내는 축이 존재하지 않는다는 점이 핵심이며, 이는 완전 결합 계층이 모든 위치에 독립적인 가중치를 부여하는 것과 본질적으로 구별되는 점이다.

4. 합성곱 연산의 형식적 정의

입력 텐서 \mathcal{X} \in \mathbb{R}^{N \times C_{\text{in}} \times H_{\text{in}} \times W_{\text{in}}}, 가중치 텐서 \mathcal{W} \in \mathbb{R}^{C_{\text{out}} \times C_{\text{in}} \times k_H \times k_W}, 편향 벡터 \mathbf{b} \in \mathbb{R}^{C_{\text{out}}}가 주어졌을 때, 보폭(Stride)이 1이고 패딩이 0인 가장 단순한 경우의 출력 텐서 \mathcal{Y} \in \mathbb{R}^{N \times C_{\text{out}} \times H_{\text{out}} \times W_{\text{out}}}의 원소는 다음과 같이 정의된다.

\mathcal{Y}(n, c_{\text{out}}, h, w) = b_{c_{\text{out}}} + \sum_{c_{\text{in}}=1}^{C_{\text{in}}} \sum_{i=1}^{k_H} \sum_{j=1}^{k_W} \mathcal{W}(c_{\text{out}}, c_{\text{in}}, i, j) \cdot \mathcal{X}(n, c_{\text{in}}, h + i - 1, w + j - 1)

여기서 출력 공간 크기는 H_{\text{out}} = H_{\text{in}} - k_H + 1, W_{\text{out}} = W_{\text{in}} - k_W + 1이며, 보폭 s와 패딩 p를 일반화하면 다음 식으로 확장된다.

H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2p - k_H}{s} \right\rfloor + 1, \quad W_{\text{out}} = \left\lfloor \frac{W_{\text{in}} + 2p - k_W}{s} \right\rfloor + 1

이 식은 4차 텐서의 각 축이 합성곱 연산에서 어떻게 결합되는가를 명시적으로 보여 준다. 배치 축 n과 출력 채널 축 c_{\text{out}}, 출력 공간 축 h, w는 결과 텐서의 자유 인덱스이며, 입력 채널 축 c_{\text{in}}과 커널 공간 축 i, j는 합산되는 축약 인덱스이다.

5. NCHW와 NHWC 약속의 비교

4차 텐서의 축 순서에 대해서는 두 가지 표준 약속이 존재한다. NCHW는 채널 축이 배치 축 바로 다음에 위치하는 채널-우선 약속이며, PyTorch와 NVIDIA cuDNN의 기본 형식이다. NHWC는 채널 축이 가장 마지막에 위치하는 채널-마지막 약속이며, TensorFlow의 기본 형식이자 모바일 추론 환경과 일부 GPU 텐서 코어(Tensor Core)에서 선호되는 메모리 레이아웃이다.

두 약속은 수학적으로 동일한 정보를 표현하지만, 실제로는 메모리 접근 패턴과 캐시 효율, 합성곱 알고리즘 구현에서 중요한 차이를 만든다. NCHW에서는 동일한 채널의 공간 좌표가 메모리 상에서 연속적으로 배치되므로, 채널별 연산과 일반적인 GEMM 기반 합성곱(im2col 변환)에 유리하다. 반면 NHWC에서는 동일한 공간 좌표의 채널들이 연속적으로 배치되어, 채널 차원에 대한 벡터화된 연산과 깊이별 분리 합성곱(Depthwise Separable Convolution) 구현에 유리하다. 따라서 두 약속은 우열이 아니라 하드웨어 및 알고리즘 선택에 따라 적절히 채택되는 두 가지 표준이다.

6. 보폭, 패딩, 팽창의 형상 영향

합성곱 계층의 출력 형상은 보폭(Stride) s, 패딩(Padding) p, 팽창(Dilation) d의 세 매개변수에 의해 일반화된 다음 식으로 결정된다.

H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2p - d(k_H - 1) - 1}{s} \right\rfloor + 1

너비 축에 대해서도 동일한 형태가 성립한다. 보폭은 출력 공간 크기를 축소하는 효과를, 패딩은 입력 가장자리에 값을 추가하여 공간 크기를 보존하거나 확대하는 효과를, 팽창은 동일한 매개변수 수로 더 넓은 수용 영역을 확보하는 효과를 가진다. 이러한 매개변수들은 모두 4차 텐서의 공간 축 H, W의 크기를 결정적으로 변화시키며, 깊은 신경망에서 계층 간 공간 해상도의 변화를 의도적으로 제어하기 위한 핵심 도구이다.

7. 풀링과 정규화 계층에서의 4차 텐서

풀링(Pooling) 계층은 동일한 4차 텐서 구조를 유지하면서 공간 축 H, W를 축소하는 역할만을 수행하며, 채널 축과 배치 축은 그대로 유지한다. 배치 정규화(Batch Normalization) 계층은 배치 축과 공간 축을 따라 표본 통계량을 추정하고, 채널 축에 대해 채널별로 학습 가능한 척도(Scale)와 이동(Shift) 매개변수를 적용한다. 즉, 배치 정규화는 4차 텐서의 네 축 가운데 채널 축만을 특별하게 취급하며, 나머지 세 축에 대해서는 통계량 추정을 위한 축소 차원으로 간주한다. 이는 합성곱 신경망의 채널 축이 가지는 특별한 의미론적 위상을 잘 보여 주는 사례이다.

8. 차 텐서 표현의 역사적 정착

이러한 4차 텐서 구조는 르쿤(Y. LeCun) 등의 1998년 논문 “Gradient-Based Learning Applied to Document Recognition“에서 LeNet-5의 구현과 함께 사실상의 표준으로 정착되었으며, 크리제프스키(A. Krizhevsky) 등의 2012년 논문 “ImageNet Classification with Deep Convolutional Neural Networks“에서 GPU 기반 대규모 학습으로 확장되었다. 이후 모든 주류 딥러닝 프레임워크가 NCHW 또는 NHWC를 기본 약속으로 채택하면서, (N, C, H, W) 또는 (N, H, W, C) 형식의 4차 텐서는 컴퓨터 비전 분야의 보편적 자료 구조로 자리잡았다. 이 4차 구조는 단순한 자료 정렬 방식이 아니라, 합성곱 신경망이 가지는 가중치 공유, 국소 수용 영역, 다중 특성 표현이라는 본질적 성질을 가장 직접적으로 부호화한 표현 형식이라는 점에서 중요한 의미를 가진다.