DEV Community

Jinho Seo
Jinho Seo

Posted on

벡터와 텐서의 차이점은?

고객 방문 세미나를 하면, 가끔 기본적인 질문을 하는 분들이 있다. 벡터와 텐서의 차이점에 대해 무엇이냐고?

이것에 대한 답변은 인공지능을 처음 배울 때 나오는 내용이다. 특히, 머신러닝모델에서는 다차원 공간 이상의 텐서로 구성으로 되어 있고 텐서들끼리 연산하기 때문이다. 물론 벡터(Vector)와 텐서(Tensor)는 둘 다 선형대수학 및 물리학 등에서 다루는 중요한 대상이지만, 머신러닝 분야에서 그 쓰임새는 약간 다르다.

1. 벡터

  • 정의
    • 보통 1차원 배열 형태로 나타내며, 스칼라(실수, 복소수 등) 원소들이 일렬로 나열된 수열.
    • 예: 3차원 실수 벡터 v=(v1,v2,v3)\mathbf{v} = (v_1, v_2, v_3)
  • 특징
    • 물리적 관점: “길이(크기)와 방향”을 갖는 양으로도 해석
    • 벡터 공간(vector space)에서 덧셈, 스칼라배 연산 등이 정의됨
    • 차원이 nn인 벡터 공간에 속하는 원소를 nn-차원 벡터라 함.
  • 활용 예
    • 머신러닝에서 입력, 가중치, 임베딩을 표현할 때
    • 2차원/3차원 물리적 위치, 힘, 속도 등

2. 텐서

  • 정의
    • 다차원 배열(n차원 배열)로 일반화할 수 있으며, 다양한 좌표계에서 선형 변환의 규칙에 따라 변환되는 기하학적 객체.
    • 수학적으로 “(다중)선형 사상”을 좌표화한 것이 텐서이기도 함.
  • 차원에 따른 예시
    • 0차 텐서: 스칼라(scalar)
    • 1차 텐서: 벡터(vector)
    • 2차 텐서: 행렬(matrix)
    • 3차 이상: 일반 다차원 배열(예: 이미지 batch × 채널 × 높이 × 너비 등)
  • 특징
    • 각 축(axis)이 물리학이나 수학적으로 의미 있는 좌표, 지표(index)를 가질 수 있다.
    • 다양한 연산(텐서 곱, 텐서 전치 등)이 정의되며, 머신러닝 라이브러리에서 “텐서 연산”은 행렬 곱 이상의 고차원 연산을 포괄한다.
    • 물리학(일반상대론, 전자기학)에서 응력 텐서, 장(Field) 표현 등으로 쓰이고, 딥러닝에서 입력·출력·가중치·중간 피처 모두 텐서 구조로 저장 및 연산한다.

3. 차이점

구분 벡터(Vector) 텐서(Tensor)
차원의 일반성 1차원 배열 (예: $[1, 2, 3]$)
→ “1차 텐서”로도 분류됨
0차(스칼라), 1차(벡터), 2차(행렬), 3차 이상(ND 배열) 모두 포함
수학적 정의 Rn 벡터 공간에서의 원소
→ 단순한 방향성과 크기를 갖는 1차 구조
좌표계 변환 시 특정 규칙을 따르는 다중선형 사상 (multilinear map)
→ 고차원 관계와 구조 표현 가능
사용 맥락 - 기하학적 방향·크기
- ML의 피처 벡터
- 선형회귀의 가중치 등
- 딥러닝의 모든 입출력 데이터
- CNN의 이미지(4D)
- RNN의 시퀀스
- 응력/변형률 텐서 등
예시 (차원) [5.0,3.2,1.2] → shape: (3,) 스칼라: 7 → shape: ()
행렬: [[1,2],[3,4]] → shape: (2,2)
이미지: (32, 32, 3)
프레임워크 내 사용 대부분의 벡터는 numpy, torch 등에서 1차 텐서로 간주됨 PyTorch, TensorFlow 등에서는 모든 데이터를 "텐서"로 표현함

요약

  • 벡터는 텐서 개념에서 1차원에 해당하는 특수한 경우다.
  • 텐서는 0차원(스칼라), 1차원(벡터), 2차원(행렬), 더 나아가 임의 차원의 다차원 배열까지 포괄하는 보다 일반적인 개념이다.
  • 물리학·수학적으로 텐서는 좌표계 변환 규칙을 정의하는 다중선형 사상이며, 벡터는 그 특수한 한 형태(1차)에 해당한다.

Top comments (0)