28.9 공변(Covariant) 텐서와 반변(Contravariant) 텐서의 구분

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): 일반 상대성 이론이나 연속체 역학의 편미분방정식을 신경망으로 풀 때, 텐서 방정식의 공변/반변 구조를 보존하는 것이 물리적 일관성의 핵심이다.