벡터와 텐서의 차이점은?
고객 방문 세미나를 하면, 가끔 기본적인 질문을 하는 분들이 있다. 벡터와 텐서의 차이점에 대해 무엇이냐고? 이것에 대한 답변은 인공지능을 처음 배울 때 나오는 내용이다. 특히, 머신러닝모델에서는 다차원 공간 이상의 텐서로 구성으로 되어 있고 텐서들 끼리 연산하기 때문이다. 물론 벡터(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 등에서는 모든 데이터를 "텐서"로 표현함 4. 요약 벡터는 텐서 개념에서 1차원에 해당하는 특수한 경우다. 텐서는 0차원(스칼라), 1차원(벡터), 2차원(행렬), 더 나아가 임의 차원의 다차원 배열까지 포괄하는 보다 일반적인 개념이다. 물리학·수학적으로 텐서는 좌표계 변환 규칙을 정의하는 다중선형 사상이며, 벡터는 그 특수한 한 형태(1차)에 해당한다.

고객 방문 세미나를 하면, 가끔 기본적인 질문을 하는 분들이 있다. 벡터와 텐서의 차이점에 대해 무엇이냐고?
이것에 대한 답변은 인공지능을 처음 배울 때 나오는 내용이다. 특히, 머신러닝모델에서는 다차원 공간 이상의 텐서로 구성으로 되어 있고 텐서들 끼리 연산하기 때문이다. 물론 벡터(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 등에서는 모든 데이터를 "텐서"로 표현함 |
4. 요약
- 벡터는 텐서 개념에서 1차원에 해당하는 특수한 경우다.
- 텐서는 0차원(스칼라), 1차원(벡터), 2차원(행렬), 더 나아가 임의 차원의 다차원 배열까지 포괄하는 보다 일반적인 개념이다.
- 물리학·수학적으로 텐서는 좌표계 변환 규칙을 정의하는 다중선형 사상이며, 벡터는 그 특수한 한 형태(1차)에 해당한다.