벡터와 텐서의 차이점은?

고객 방문 세미나를 하면, 가끔 기본적인 질문을 하는 분들이 있다. 벡터와 텐서의 차이점에 대해 무엇이냐고? 이것에 대한 답변은 인공지능을 처음 배울 때 나오는 내용이다. 특히, 머신러닝모델에서는 다차원 공간 이상의 텐서로 구성으로 되어 있고 텐서들 끼리 연산하기 때문이다. 물론 벡터(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차)에 해당한다.

May 6, 2025 - 04:56
 0
벡터와 텐서의 차이점은?

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

이것에 대한 답변은 인공지능을 처음 배울 때 나오는 내용이다. 특히, 머신러닝모델에서는 다차원 공간 이상의 텐서로 구성으로 되어 있고 텐서들 끼리 연산하기 때문이다. 물론 벡터(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차)에 해당한다.