텐서 (Tensor)

수학
한 줄 정의: 여러 방향의 성분을 한꺼번에 담기 위해 스칼라·벡터·행렬을 일반화한 다차원 배열입니다.

쉽게 풀면

숫자 하나(스칼라)는 "차원이 0"인 정보입니다. 화살표 하나(벡터)는 방향과 크기를 가진 "1차원" 정보이고, 표 형태의 행렬은 "2차원" 정보입니다. 텐서는 이 흐름을 계속 확장한 것으로, 몇 개의 방향(축)으로든 값을 늘어놓을 수 있는 그릇이라고 생각하면 됩니다. 예를 들어 컬러 사진 한 장은 세로·가로·색상(R, G, B)이라는 세 방향의 정보를 담고 있어서 3차원 텐서로 표현하고, 여러 장의 사진을 모으면 4차원 텐서가 됩니다. 딥러닝에서 데이터와 가중치를 다룰 때 "텐서"라는 말을 쓰는 이유도, 이미지·영상·문장 같은 복잡한 데이터를 하나의 통일된 수학적 그릇에 담아 계산하기 위해서입니다.

왜 중요한가

텐서는 딥러닝뿐 아니라 물리학, 역학, 신호처리 등 다양한 분야의 논문에서 데이터와 연산을 표현하는 공통 언어 역할을 합니다. 딥러닝 논문에서는 모델 구조나 연산 흐름을 정확히 전달하기 위해 입력·출력 텐서의 형태(shape)를 명시하는 것이 관례이며, 물리학·공학 논문에서는 응력이나 관성 같은 물리량을 방향에 따라 다르게 나타내기 위해 텐서 표기를 사용합니다.

논문에서는 이렇게 쓰입니다

"입력 이미지는 (배치 크기, 채널 수, 높이, 너비)의 4차원 텐서(tensor)로 모델에 전달되었다."

이 문장은 실험에 사용한 데이터가 단순한 숫자 목록이 아니라, 여러 축(방향)을 가진 다차원 배열 형태로 신경망에 입력되었다는 것을 설명하고 있습니다.

"물체 내부의 응력 상태는 3x3 응력 텐서(stress tensor)로 표현되며, 각 성분은 특정 면에 작용하는 힘의 방향을 나타낸다."

재료역학에서 응력이라는 물리량이 단일 숫자가 아니라 방향에 따라 달라지는 값이므로 텐서로 표현해야 함을 설명하는 문장입니다.

"자연어 처리 모델에서 어텐션 가중치는 (배치 크기, 헤드 수, 시퀀스 길이, 시퀀스 길이) 형태의 텐서로 계산된다."

트랜스포머 계열 모델의 중간 연산 결과 역시 여러 축을 가진 텐서로 표현되고 관리된다는 것을 보여주는 문장입니다.

조금 더 깊게 보면

딥러닝 프레임워크(PyTorch, TensorFlow 등)에서 텐서는 형태(shape), 자료형(dtype), 저장 방식(연속 메모리 배치 여부) 같은 속성을 함께 가지며, 연산 그래프 위에서 자동미분(autograd)의 대상이 됩니다. 논문을 읽을 때는 텐서의 각 축이 무엇을 의미하는지(배치, 채널, 시퀀스 길이 등)를 파악하는 것이 모델 구조를 이해하는 핵심이며, 물리학 계열 텐서를 다룰 때는 좌표 변환에 대한 공변·반변 성질까지 구분해서 봐야 하는 경우도 있습니다.

주의할 점

딥러닝·프로그래밍에서 말하는 텐서는 대체로 "다차원 배열"을 가리키는 실용적인 표현이지만, 물리학이나 순수수학(미분기하학)에서 말하는 텐서는 좌표계가 바뀌어도 일정한 규칙으로 변환되어야 한다는 더 엄격한 조건을 포함합니다. 두 용법을 같은 것으로 오해하면 논문을 읽을 때 혼란이 생길 수 있으므로, 어떤 분야의 논문인지에 따라 의미를 구분해서 이해해야 합니다.

관련 용어