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 등에서는 모든 데이터를 “텐서”로 표현함

요약

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

댓글남기기