28.9 공변(Covariant) 텐서와 반변(Contravariant) 텐서의 구분
1. 기저 변환과 좌표 변환
공변과 반변의 구분을 이해하기 위해 먼저 기저 변환과 좌표 변환의 관계를 명확히 하자. n차원 벡터 공간 V에서 구 기저 \{\mathbf{e}_1, \ldots, \mathbf{e}_n\}를 신 기저 \{\mathbf{e}_1', \ldots, \mathbf{e}_n'\}로 변환하는 행렬을 \mathbf{P}라 하면,
\mathbf{e}_j' = \sum_{i=1}^{n} P_{ij}\mathbf{e}_i
이다. 벡터 \mathbf{v} = \sum_i v^i \mathbf{e}_i = \sum_j v'^j \mathbf{e}_j'에서, 벡터 자체는 불변이므로 좌표는 다음과 같이 변환된다.
v'^j = \sum_i (P^{-1})_{ji} v^i
여기서 핵심적인 관찰이 있다. 기저가 \mathbf{P}에 의해 변환될 때, 좌표는 \mathbf{P}^{-1}에 의해 변환된다. 즉, 기저와 좌표는 반대 방향으로 변환된다. 이것이 반변(contravariant)이라는 명칭의 기원이다.
2. 반변 텐서(Contravariant Tensor)
반변 벡터(contravariant vector)는 기저 변환 \mathbf{P}에 대하여 좌표가 \mathbf{P}^{-1}로 변환되는 벡터이다. 일반적으로 사용하는 “벡터“가 바로 반변 벡터이다.
v'^i = \sum_j (P^{-1})_{ij} v^j
위 인덱스(superscript)로 표기하는 것이 관례이다. v^i에서 i는 위 인덱스이다.
p차 반변 텐서((p,0)형 텐서)의 성분 T^{i_1 \cdots i_p}는 기저 변환 \mathbf{P}에 대하여 다음과 같이 변환된다.
T'^{i_1 \cdots i_p} = \sum_{j_1, \ldots, j_p} (P^{-1})_{i_1 j_1} \cdots (P^{-1})_{i_p j_p} T^{j_1 \cdots j_p}
각 인덱스가 독립적으로 \mathbf{P}^{-1}에 의해 변환되며, 모든 인덱스가 위 인덱스이다.
3. 공변 텐서(Covariant Tensor)
공변 벡터(covariant vector, 또는 1-형식, covector)는 기저 변환 \mathbf{P}에 대하여 좌표가 \mathbf{P}와 같은 방향으로 변환되는 대상이다. 이는 쌍대 공간 V^*의 원소이다.
선형 범함수 \omega \in V^*는 \omega(\mathbf{v}) = \sum_i \omega_i v^i로 작용한다. 기저 변환 시 쌍대 기저 \{\mathbf{e}^1, \ldots, \mathbf{e}^n\} (\mathbf{e}^i(\mathbf{e}_j) = \delta^i_j)는 다음과 같이 변환된다.
\mathbf{e}'^i = \sum_j (P^{-1})_{ji} \mathbf{e}^j
이에 따라 공변 벡터의 좌표는 다음과 같이 변환된다.
\omega'_i = \sum_j P_{ji} \omega_j
아래 인덱스(subscript)로 표기하는 것이 관례이다.
q차 공변 텐서((0,q)형 텐서)의 성분 T_{j_1 \cdots j_q}는 다음과 같이 변환된다.
T'_{j_1 \cdots j_q} = \sum_{k_1, \ldots, k_q} P_{k_1 j_1} \cdots P_{k_q j_q} T_{k_1 \cdots k_q}
각 인덱스가 \mathbf{P}에 의해 변환되며, 모든 인덱스가 아래 인덱스이다.
4. 공변과 반변의 직관적 이해
공변과 반변의 차이를 기하학적으로 이해하면 다음과 같다.
반변 벡터(위치, 변위): 기저 벡터의 크기를 2배로 늘리면, 같은 벡터를 표현하는 좌표는 1/2배로 줄어야 한다. 기저와 반대로 변하므로 반변이다. 예: 위치 벡터, 속도 벡터.
공변 벡터(기울기, 미분): 좌표축의 단위를 2배로 늘리면, 기울기의 성분도 2배가 된다 (같은 변화에 대한 함수값의 변화율이 좌표 단위에 비례하므로). 기저와 같은 방향으로 변하므로 공변이다. 예: 기울기 벡터 \nabla f, 미분 형식.
딥러닝의 관점에서 이 구분을 적용하면, 매개변수 벡터 \boldsymbol{\theta}는 반변 벡터이고, 기울기 \nabla_{\boldsymbol{\theta}}\mathcal{L} = \frac{\partial\mathcal{L}}{\partial\boldsymbol{\theta}}는 공변 벡터이다. 기울기를 매개변수에 직접 더하는 \boldsymbol{\theta} \leftarrow \boldsymbol{\theta} - \eta\nabla\mathcal{L}은 표준 유클리드 메트릭에서만 올바르며, 일반적 매개변수 공간에서는 메트릭 텐서를 통한 인덱스 올림(index raising)이 필요하다.
5. 메트릭 텐서와 인덱스 올림/내림
메트릭 텐서(metric tensor) g_{ij}는 (0,2)형 공변 텐서로서, 벡터 공간에 내적 구조를 부여한다. 유클리드 공간에서 g_{ij} = \delta_{ij}이다.
메트릭 텐서를 사용하여 반변 인덱스를 공변 인덱스로 변환(내림, lowering)하고, 역 메트릭 텐서 g^{ij}를 사용하여 공변 인덱스를 반변 인덱스로 변환(올림, raising)할 수 있다.
v_i = \sum_j g_{ij}v^j \quad (\text{인덱스 내림}), \quad v^i = \sum_j g^{ij}v_j \quad (\text{인덱스 올림})
유클리드 공간에서 g_{ij} = \delta_{ij}이므로 v_i = v^i가 되어 공변과 반변의 구분이 불필요하다. 딥러닝에서 대부분의 연산은 유클리드 공간에서 이루어지므로, 공변과 반변의 구분이 실용적으로 중요하지 않은 경우가 많다.
그러나 정보 기하학(information geometry)에서 매개변수 공간의 메트릭은 피셔 정보 행렬 \mathbf{F}_{ij}이며, 이는 비유클리드 메트릭이다. 자연 기울기(natural gradient)는 기울기의 공변 성분 (\nabla\mathcal{L})_i를 역 피셔 행렬로 올림하여 반변 성분 (\mathbf{F}^{-1}\nabla\mathcal{L})^i을 구한 것이다. 이것이 좌표계에 무관한 최적 갱신 방향이다.
6. 변환 법칙의 요약
| 텐서 유형 | 인덱스 위치 | 변환 법칙 | 예시 |
|---|---|---|---|
| 반변 벡터 | 위 (v^i) | v'^i = (P^{-1})^i{}_j v^j | 위치, 속도 |
| 공변 벡터 | 아래 (\omega_i) | \omega'_i = P^j{}_i \omega_j | 기울기, 미분 |
| (2,0)형 | 위-위 (T^{ij}) | (P^{-1})(P^{-1}) | 역 메트릭 |
| (0,2)형 | 아래-아래 (T_{ij}) | PP | 메트릭, 헤시안 |
| (1,1)형 | 위-아래 (T^i{}_j) | (P^{-1})P | 선형 사상 |
7. 딥러닝에서의 의의
딥러닝의 표준적 구현에서는 모든 연산이 유클리드 좌표에서 수행되므로 공변/반변 구분을 명시적으로 다루지 않는다. 그러나 다음과 같은 고급 주제에서 이 구분이 중요해진다.
자연 기울기법: 매개변수 공간의 리만 기하학적 구조를 고려할 때, 기울기(공변)와 매개변수 갱신 방향(반변)의 구분이 필수적이다. Adam, AdaGrad 등의 적응적 학습률 방법은 대각 메트릭 근사를 사용하여 암묵적으로 인덱스 올림을 수행하는 것으로 해석할 수 있다.
미분 기하학적 딥러닝: 리만 다양체 위에서의 신경망(예: 쌍곡 공간에서의 임베딩)에서는 메트릭 텐서가 비자명하므로, 공변 미분(covariant derivative)과 텐서의 공변/반변 구분을 정확히 다루어야 한다.
물리 정보 신경망(PINN): 일반 상대성 이론이나 연속체 역학의 편미분방정식을 신경망으로 풀 때, 텐서 방정식의 공변/반변 구조를 보존하는 것이 물리적 일관성의 핵심이다.