1. 행렬 (Matrix) 이란 무엇인가?
행렬은 숫자를 사각형 격자 안에 배열한 2차원 배열입니다. 행렬은 $m$개의 행과 $n$개의 열로 구성되며, 이를 $m \times n$ 행렬이라고 부릅니다.
- 예시:
$$ \\ A = \begin{pmatrix}
1 & 2 & 3 \\
4 & 5 & 6
\end{pmatrix}
$$
(위 행렬은 $2 \times 3$ 행렬입니다.)
- 주요 용도:
- 선형 연립방정식의 표현 및 풀이
- 선형 변환(Linear Transformation)의 표현: 한 벡터를 다른 벡터로 변환(회전, 확대/축소, 전단 등)하는 연산을 나타냅니다.
- 데이터 테이블 (예: 엑셀 시트, 데이터베이스 테이블)
2. 텐서 (Tensor) 란 무엇인가?
텐서는 행렬의 개념을 더 높은 차원으로 일반화한 것입니다. 텐서를 이해하는 방법은 사용되는 분야(컴퓨터 과학 vs 물리학)에 따라 약간 다릅니다.
- 개념적 정의: 텐서는 스칼라, 벡터, 행렬을 포함하는 더 큰 개념입니다.
- Rank 0 텐서: 스칼라 (숫자 하나, 예: 5)
- Rank 1 텐서: 벡터 (1차원 배열, 예: $[1, 2, 3]$)
- Rank 2 텐서: 행렬 (2차원 배열, 예: $\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}$)
- Rank 3 텐서: 숫자가 정육면체 형태로 배열된 3차원 배열.
- Rank n 텐서: n차원 배열.
- 물리학적 정의 (더 엄밀한 정의): 텐서는 좌표계가 변환될 때 특정 규칙에 따라 함께 변환되는 수학적 객체입니다. 이 "변환 규칙"이 텐서를 단순한 다차원 배열과 구분 짓는 핵심 속성입니다. 텐서는 좌표계(관측자의 시점)가 바뀌더라도 그 본질적인 물리량(예: 힘, 곡률)은 변하지 않음을 보장합니다.
3. 행렬과 텐서의 주요 차이점
| 특징 | 행렬 (Matrix) | 텐서 (Tensor) |
| 차원 (Rank) | 항상 Rank 2 (2차원) | Rank 0 (스칼라), Rank 1 (벡터), Rank 2 (행렬) ... Rank n까지 모든 차원을 가질 수 있음. |
| 정의 | 숫자의 2차원 배열 | (물리학) 좌표 변환 규칙에 의해 정의되는 수학적 객체. (컴퓨터 과학) 다차원 배열을 의미하는 데이터 구조. |
| 포함 관계 | 행렬은 Rank 2 텐서의 한 종류 | 텐서는 스칼라, 벡터, 행렬을 모두 포함하는 일반화된 개념. |
| 핵심 속성 | 값들의 배열 그 자체 | (물리학) 좌표계에 독립적인(invariant) 물리 법칙을 기술하는 능력. |
- 모든 행렬은 텐서(Rank 2)이지만, 모든 텐서가 행렬인 것은 아닙니다.
4. 머신러닝(딥러닝)에서의 텐서
머신러닝, 특히 딥러닝(예: TensorFlow, PyTorch)에서 "텐서"는 다차원 배열을 의미하는 핵심 데이터 구조로 사용됩니다. 물리학적 정의보다는 "데이터를 담는 컨테이너"로서의 의미가 강합니다.
딥러닝에서 다루는 데이터의 형태에 따라 다양한 랭크의 텐서가 사용됩니다.
- Rank 0 텐서 (스칼라):
- 용도: 단일 값.
- 예시: 손실(Loss) 값, 학습률(Learning rate), 편향(bias) 항.
- Rank 1 텐서 (벡터):
- 용도: 1차원 데이터의 나열.
- 예시: 하나의 데이터 샘플(feature vector), 단어 임베딩 벡터.
- Rank 2 텐서 (행렬):
- 용도: 2차원 데이터 테이블.
- 예시: 미니배치(minibatch) 데이터. (샘플 수 $\times$ 특성 수), 신경망의 가중치 행렬(Weight matrix).
- Rank 3 텐서 (3D 배열):
- 용도: 시퀀스 데이터 또는 단일 이미지.
- 예시 (시계열): (samples, timesteps, features) (예: 100개의 문장, 각 20개의 단어, 각 단어 50차원 임베딩)
- 예시 (이미지): (height, width, channels) (예: $256 \times 256$ 픽셀의 컬러(RGB, 3채널) 이미지)
- Rank 4 텐서 (4D 배열):
- 용도: 이미지 데이터의 미니배치 (CNN의 표준 입력)
- 구조: (batch_size, height, width, channels)
- 예시: $32$장의 $256 \times 256$ 컬러 이미지를 한 번에 처리.
- Rank 5 텐서 (5D 배열):
- 용도: 비디오 데이터의 미니배치
- 구조: (batch_size, frames, height, width, channels)
- 예시: $16$개의 비디오, 각 $30$프레임, $64 \times 64$ 픽셀, 컬러(3채널) 영상.
딥러닝은 본질적으로 이러한 고차원 텐서들을 입력받아, 미리 정의된 텐서 연산(행렬 곱, 컨볼루션 등)을 통해 변환하고, 원하는 출력 텐서(예: 예측값)를 생성하는 과정입니다.
5. 물리학(일반상대성이론)에서의 텐서
물리학에서 텐서는 "물리 법칙은 관찰자의 좌표계와 무관하게 동일해야 한다"는 일반 공변성 원리(Principle of General Covariance)를 수학적으로 구현하는 핵심 도구입니다.
일반상대성이론은 중력을 시공간의 곡률로 설명합니다. 이 휘어진 시공간에서는 우리가 아는 직교 좌표계(Cartesian coordinates)가 국소적으로만 작동하며, 관찰자에 따라 다양한 좌표계를 사용할 수 있습니다.
- 좌표 변환의 중요성:물리 법칙(예: $F=ma$)이 내가 어떤 좌표계(직교좌표계, 구면좌표계, 아니면 임의로 뒤틀린 좌표계)를 쓰느냐에 따라 달라진다면 그것은 보편적인 법칙이 아닙니다. 텐서는 좌표계가 $A$에서 $B$로 바뀔 때, 텐서의 성분들은 특정 규칙에 따라 변환되지만, 텐서 자체가 나타내는 물리량은 동일하게 유지되도록 보장합니다.
- 주요 텐서 예시:
- 계량 텐서 (Metric Tensor, $g_{\mu\nu}$):
- 일반상대성이론에서 가장 중요한 Rank 2 텐서입니다.
- 시공간의 기하학적 구조 자체를 정의합니다.
- 두 점 사이의 거리(정확히는 시공간 간격)를 어떻게 측정하는지 알려줍니다. 평평한 공간(특수상대성)에서는 민코프스키 계량($\eta_{\mu\nu}$)이 되고, 휘어진 공간에서는 위치마다 다른 값을 가집니다.
- 스트레스-에너지 텐서 (Stress-Energy Tensor, $T_{\mu\nu}$):
- Rank 2 텐서로, 특정 지점의 물질과 에너지의 분포를 나타냅니다.
- 에너지 밀도, 운동량, 압력, 전단 응력 등을 포함합니다.
- 계량 텐서 (Metric Tensor, $g_{\mu\nu}$):
- 아인슈타인 장 방정식 (Einstein Field Equations):$$ \\ G_{\mu\nu} = \frac{8\pi G}{c^4} T_{\mu\nu}
$$이 방정식 자체가 텐서 방정식입니다.- $G_{\mu\nu}$ (아인슈타인 텐서): 시공간이 얼마나 휘었는지(곡률)를 나타냅니다. (계량 텐서 $g_{\mu\nu}$로부터 계산됨)
- $T_{\mu\nu}$ (스트레스-에너지 텐서): 물질과 에너지가 어떻게 분포하는지를 나타냅니다.
- 이 방정식의 의미는 "물질/에너지가 시공간을 휘게 만들고 ($T_{\mu\nu} \rightarrow G_{\mu\nu}$), 그 휘어진 시공간이 물질의 운동을 결정한다"는 것입니다. 이 모든 것이 텐서라는 좌표계에 무관한 언어로 쓰여 있기에, 이 법칙은 우주 어디에서나 어떤 관찰자에게나 동일하게 성립합니다.
6. 요약
- 행렬은 2차원 배열이며, Rank 2 텐서의 특수한 경우입니다.
- 텐서는 스칼라, 벡터, 행렬을 모두 포함하는 일반화된 다차원 객체입니다.
- 머신러닝에서 텐서는 GPU 연산에 최적화된 다차원 데이터 컨테이너입니다.
- 물리학(일반상대성이론)에서 텐서는 좌표계에 독립적인 물리 법칙을 기술하기 위한 필수적인 수학적 언어입니다.
'물리 > 상대성 이론' 카테고리의 다른 글
| 계량 텐서로부터 아인슈타인 텐서 유도 과정 (0) | 2025.11.11 |
|---|---|
| 텐서와 아인슈타인의 장 방정식 (0) | 2025.11.11 |