28.31 딥러닝에서의 텐서 표현: 데이터 배치, 채널, 시퀀스 차원의 의미

28.31 딥러닝에서의 텐서 표현: 데이터 배치, 채널, 시퀀스 차원의 의미

1. 딥러닝에서 텐서가 차지하는 위상

딥러닝의 모든 데이터와 모델 파라미터는 텐서라는 단일한 자료 구조 위에서 표현된다. 이미지, 음성, 자연어, 표 형식 데이터, 비디오 등 그 형태가 무엇이든 간에, 신경망에 입력되는 순간 이들은 정해진 차원 약속(Dimension Convention)에 따라 다차원 배열로 변환되며, 신경망의 모든 계층은 이러한 텐서를 입력으로 받아 또 다른 텐서를 출력한다. 따라서 딥러닝에서 텐서의 각 축이 무엇을 의미하는가, 즉 어떤 축이 어떤 의미론적 단위에 대응하는가를 명확히 이해하는 것은, 모델을 설계하고 디버깅하기 위한 가장 기본적인 전제가 된다. 이 절에서는 딥러닝에서 가장 보편적으로 사용되는 세 가지 핵심 차원인 배치(Batch), 채널(Channel), 시퀀스(Sequence) 차원의 의미를 분석한다.

2. 배치(Batch) 차원의 의미

2.1 미니배치 학습과 배치 차원의 도입 동기

배치 차원은 신경망이 한 번의 순전파(Forward Pass)와 역전파(Backward Pass)에서 동시에 처리하는 독립적인 표본(Sample)의 수를 나타내는 축이다. 이 차원이 도입된 핵심 동기는 미니배치 확률적 경사 하강법(Mini-batch Stochastic Gradient Descent)에 있다. 단일 표본에 대한 경사도는 기댓값에 비해 분산이 매우 크고, 전체 데이터 집합에 대한 배치 경사 하강법은 메모리와 연산량 측면에서 비현실적이다. 따라서 양자 사이의 절충점으로서 일정한 크기 B의 표본을 한 번에 묶어 처리하며, 이로 인해 모든 데이터 텐서의 가장 앞 축에 크기 B의 배치 차원이 추가된다.

2.2 배치 차원의 형식적 표기

크기 B의 미니배치 안에 포함된 각 표본이 형상 (d_1, d_2, \ldots, d_k)를 가지는 텐서라면, 미니배치 전체는 형상 (B, d_1, d_2, \ldots, d_k)(k+1)차 텐서로 표현된다. 예를 들어 하나의 표본이 길이 D의 특성 벡터라면 미니배치는 (B, D) 형상의 행렬이 되며, 하나의 표본이 H \times W 크기의 흑백 이미지라면 미니배치는 (B, H, W) 형상의 3차 텐서가 된다.

2.3 배치 축의 통계적 독립성

배치 축은 다른 축과 본질적으로 구별되는 통계적 성격을 가진다. 동일한 미니배치 안의 서로 다른 표본은 일반적으로 독립적으로 추출된 것으로 가정되며, 신경망의 계층은 배치 축에 대해 표본별로 동일한 함수를 병렬적으로 적용한다. 즉, 배치 축은 함수의 입력 인자로 직접 작용하지 않고, 동일한 연산이 표본별로 반복되는 병렬 차원으로만 사용된다. 이러한 약속은 자동 미분, GPU 병렬화, 브로드캐스팅 규칙 등과 자연스럽게 결합되며, 사용자가 명시적으로 표본별 반복문을 작성하지 않아도 동일한 효과를 얻을 수 있게 한다.

배치 차원이 다른 축과 상호작용하는 거의 유일한 예외는 배치 정규화(Batch Normalization)이다. 배치 정규화 계층은 미니배치 내 표본 통계량(평균과 분산)을 추정하기 위하여 의도적으로 배치 축을 따라 축소(Reduction)를 수행하며, 이때 표본 사이의 독립성 가정과 미니배치 크기에 대한 의존성이 발생한다. 이오페(S. Ioffe)와 세게디(C. Szegedy)의 2015년 논문 “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift“에서 이 점이 형식적으로 분석되었다.

3. 채널(Channel) 차원의 의미

3.1 채널의 정의

채널 차원은 동일한 공간적·시간적 좌표에 대응되는 서로 다른 종류의 특성 값(Feature Value)을 한꺼번에 묶기 위한 축이다. 가장 직관적인 예시는 컬러 이미지이다. 이미지의 각 화소는 단일한 밝기 값이 아니라 적색, 녹색, 청색에 해당하는 세 개의 강도 값을 가지므로, 이를 표현하기 위하여 공간 축과 별개로 크기 3의 채널 축이 도입된다. 흑백 이미지의 경우 채널 축의 크기는 1이며, 다중 분광(Multi-spectral) 이미지나 의료 영상에서는 채널 축의 크기가 수십에서 수백 개에 이를 수 있다.

3.2 채널과 특성 맵(Feature Map)의 관계

신경망의 내부 표현에서 채널 차원은 단순한 색상 정보로 환원되지 않고, 학습된 특성(Feature)의 종류를 나타내는 일반적 의미를 갖는다. 합성곱 신경망의 한 계층이 출력하는 텐서의 채널 축은 그 계층이 학습한 서로 다른 합성곱 커널이 산출한 응답 지도, 즉 특성 맵(Feature Map)에 대응한다. 예를 들어 어떤 채널은 수직 가장자리에 강하게 반응하고, 다른 채널은 특정 질감에 반응하며, 더 깊은 계층의 채널은 보다 추상적이고 의미론적인 개념에 대응할 수 있다. 따라서 채널 축은 “각 위치에서 어떤 특성이 얼마나 강하게 활성화되는가“라는 의미를 가지는 특성 차원(Feature Dimension)으로 해석된다.

3.3 채널 축의 위치 약속

채널 축이 텐서의 어디에 배치되는가는 프레임워크와 백엔드(Backend)에 따라 두 가지 주요 약속이 존재한다. 첫째는 채널-우선(Channel-First) 약속으로, 4차 이미지 텐서의 형상이 (B, C, H, W)이며 PyTorch와 cuDNN의 기본 약속이다. 둘째는 채널-마지막(Channel-Last) 약속으로, 형상이 (B, H, W, C)이며 TensorFlow의 기본 약속이자, 일부 텐서 코어(Tensor Core) 기반 최적화가 선호하는 메모리 레이아웃이다. 두 약속은 수학적으로는 동일한 정보를 담지만, 메모리 접근 패턴과 합성곱 커널의 효율, 캐시 활용도에 영향을 주므로 실제 성능 차이를 만들 수 있다.

4. 시퀀스(Sequence) 차원의 의미

4.1 시퀀스 차원의 정의

시퀀스 차원은 시간적 또는 위치적으로 정렬된 일련의 단위(Token, Frame, Time Step)를 표현하는 축이다. 자연어 처리에서는 토큰의 나열, 음성 처리에서는 시간 프레임의 나열, 비디오 처리에서는 영상 프레임의 나열이 시퀀스 축에 대응한다. 시퀀스 축은 단순한 병렬 차원이 아니라, 인접한 원소 사이에 의미 있는 순서적 관계가 존재한다는 점에서 배치 축과 본질적으로 구분된다.

4.2 시퀀스 차원의 형식적 표현

길이 T의 시퀀스가 각 시점에서 D차원의 특성 벡터를 가지는 경우, 단일 표본은 (T, D) 형상의 2차 텐서로 표현되며, 미니배치를 포함하면 (B, T, D) 형상의 3차 텐서가 된다. 자연어 처리의 임베딩 후 표현이나 순환 신경망(RNN) 입력의 표준 형식이 이에 해당한다. 일부 프레임워크는 (T, B, D)의 시간-우선(Time-First) 약속을 채택하며, 이는 시점별 순차 처리에서 메모리 접근의 연속성을 확보하기에 유리하다.

4.3 가변 길이 시퀀스와 패딩, 마스킹

배치 내 시퀀스들은 일반적으로 길이가 서로 다르므로, 동일한 형상의 텐서로 묶기 위해서는 가장 긴 시퀀스의 길이에 맞추어 빈자리를 특수 토큰으로 채우는 패딩(Padding)을 수행해야 한다. 이때 모델이 패딩 위치의 출력에 의존하지 않도록, 어느 위치가 실제 토큰이고 어느 위치가 패딩인지를 표시하는 이진 텐서, 즉 마스크(Mask)가 함께 전달된다. 마스크는 손실 함수 계산, 어텐션 가중치 계산, 정규화 계산에서 패딩 위치를 배제하는 역할을 수행한다. 또한 트랜스포머의 디코더에서 사용되는 인과 마스크(Causal Mask)는 미래 시점의 토큰을 보지 못하도록 어텐션을 차단하는 또 다른 형태의 마스크이다.

4.4 시퀀스 축의 위치 정보

시퀀스 축은 본질적으로 순서를 가지지만, 자기 어텐션(Self-Attention) 계열의 모델은 입력 토큰들에 대해 본래 순열 등변(Permutation-Equivariant)으로 동작한다. 따라서 토큰 사이의 위치 관계를 모델이 인식할 수 있도록, 위치 부호화(Positional Encoding)나 회전 위치 임베딩(Rotary Position Embedding) 등을 통해 위치 정보를 명시적으로 주입한다. 이는 시퀀스 차원이 단순한 인덱스 축이 아니라, 위치 정보가 외부에서 보조적으로 부여되어야 비로소 의미를 갖는 축임을 보여 준다.

5. 세 차원의 결합과 일반적 텐서 형상

배치, 채널, 시퀀스 차원은 데이터의 특성에 따라 단독으로 또는 결합되어 사용된다. 표 형식 데이터는 (B, D)의 2차 텐서, 이미지는 (B, C, H, W) 또는 (B, H, W, C)의 4차 텐서, 토큰 임베딩 시퀀스는 (B, T, D)의 3차 텐서, 비디오는 (B, T, C, H, W)의 5차 텐서, 그리고 다중 헤드 어텐션의 내부 표현은 (B, h, T, d_k) 형태의 4차 텐서로 표현된다. 여기서 h는 어텐션 헤드의 수, d_k는 헤드당 차원이다. 이러한 형상 약속은 임의로 정해진 것이 아니라, 각 축이 가지는 의미론적 역할과 신경망 계층의 요구 사항을 동시에 만족시키기 위한 것이다.

6. 차원 의미에 대한 일관된 인식의 중요성

딥러닝 모델의 디버깅에서 가장 빈번하게 발생하는 오류는, 텐서의 형상은 일치하지만 각 축의 의미가 달라지는 의미론적 불일치이다. 예컨대 채널 축과 시퀀스 축이 우연히 같은 크기를 가질 때, 두 축을 혼동한 채로 연산을 적용해도 텐서 형상 검사는 이를 잡아 내지 못한다. 이 때문에 일부 연구에서는 축에 명시적으로 이름을 부여하는 명명된 텐서(Named Tensor) 개념을 제안하였으며, PyTorch는 실험적 기능으로 이를 지원한다. 결국 딥러닝에서 텐서를 다룰 때 가장 중요한 것은, 형상이라는 수치적 정보가 아니라 각 축이 표현하는 의미론적 단위에 대한 일관된 인식이며, 배치·채널·시퀀스 차원에 대한 표준 약속은 그러한 의미론적 인식을 공동체 차원에서 공유하기 위한 가장 기본적인 어휘이다.