28.6 텐서의 대수적 정의: 다중선형 사상(Multilinear Map)으로서의 텐서
1. 다중선형 사상의 정의
다중선형 사상(multilinear map)은 여러 벡터 공간의 직적(Cartesian product)에서 스칼라 체(또는 다른 벡터 공간)로의 함수로서, 각 인수(argument)에 대하여 독립적으로 선형인 함수이다.
d개의 벡터 공간 V_1, V_2, \ldots, V_d에 대하여 함수 f: V_1 \times V_2 \times \cdots \times V_d \to \mathbb{R}이 다중선형(multilinear)이라 함은, 각 k = 1, \ldots, d에 대하여 나머지 인수를 고정했을 때 k번째 인수에 대해 선형인 것이다.
f(\mathbf{v}_1, \ldots, c\mathbf{v}_k + c'\mathbf{v}_k', \ldots, \mathbf{v}_d) = c\,f(\mathbf{v}_1, \ldots, \mathbf{v}_k, \ldots, \mathbf{v}_d) + c'\,f(\mathbf{v}_1, \ldots, \mathbf{v}_k', \ldots, \mathbf{v}_d)
d = 1이면 통상적인 선형 사상(linear map)이고, d = 2이면 쌍선형 사상(bilinear map)이다.
쌍선형 사상의 구체적 예를 살펴보자. 내적 \langle\cdot, \cdot\rangle: \mathbb{R}^n \times \mathbb{R}^n \to \mathbb{R}은 \langle\mathbf{u}, \mathbf{v}\rangle = \sum_{i=1}^{n} u_i v_i로 정의되며, 각 인수에 대해 선형이므로 쌍선형이다. 더 일반적으로, 행렬 \mathbf{A} \in \mathbb{R}^{n \times n}에 의한 이차형식 f(\mathbf{u}, \mathbf{v}) = \mathbf{u}^\top\mathbf{A}\mathbf{v} = \sum_{i,j} a_{ij}u_iv_j도 쌍선형 사상이다.
2. 텐서의 대수적 정의
수학적으로 엄밀한 텐서의 정의는 다중선형 사상에 기반한다. 벡터 공간 V_1, \ldots, V_p와 그 쌍대 공간(dual space) V_1^*, \ldots, V_q^*에 대하여, (p, q)형 텐서는 다음과 같은 다중선형 사상이다.
T: \underbrace{V^* \times \cdots \times V^*}_{p} \times \underbrace{V \times \cdots \times V}_{q} \to \mathbb{R}
이 텐서는 p개의 쌍대 벡터(covector)와 q개의 벡터를 입력으로 받아 스칼라를 출력하며, 모든 인수에 대해 선형이다. p를 반변(contravariant) 차수, q를 공변(covariant) 차수라 하고, 전체 차수는 p + q이다.
이 관점에서 익숙한 대상들이 텐서로 재해석된다.
스칼라: (0, 0)형 텐서이다. 인수를 받지 않고 스칼라를 출력한다.
벡터: (1, 0)형 텐서이다. 하나의 쌍대 벡터(선형 범함수) \omega \in V^*를 입력으로 받아 T(\omega) = \omega(\mathbf{v})를 출력한다.
쌍대 벡터(Covector): (0, 1)형 텐서이다. 하나의 벡터를 입력으로 받아 스칼라를 출력하는 선형 범함수이다.
행렬(선형 사상): (1, 1)형 텐서이다. 하나의 쌍대 벡터 \omega와 하나의 벡터 \mathbf{v}를 받아 T(\omega, \mathbf{v}) = \omega(\mathbf{A}\mathbf{v})를 출력한다. 성분으로 표현하면 T(\omega, \mathbf{v}) = \sum_{i,j} A^i{}_j \omega_i v^j이다.
내적 텐서: (0, 2)형 텐서이다. 두 벡터를 받아 내적 값을 출력한다. 메트릭 텐서 g_{ij}가 이 유형에 해당한다.
3. 좌표 표현과 성분
기저 \{\mathbf{e}_1, \ldots, \mathbf{e}_n\}과 그 쌍대 기저 \{\mathbf{e}^1, \ldots, \mathbf{e}^n\} (\mathbf{e}^i(\mathbf{e}_j) = \delta^i_j)가 주어지면, (p, q)형 텐서 T는 다음과 같이 성분으로 표현된다.
T = T^{i_1 \cdots i_p}{}_{j_1 \cdots j_q}\; \mathbf{e}_{i_1} \otimes \cdots \otimes \mathbf{e}_{i_p} \otimes \mathbf{e}^{j_1} \otimes \cdots \otimes \mathbf{e}^{j_q}
여기서 아인슈타인 합산 규약을 사용하여 반복되는 인덱스에 대한 합산이 암묵적으로 이루어진다. 성분 T^{i_1 \cdots i_p}{}_{j_1 \cdots j_q}는 기저 벡터들을 텐서에 대입하여 얻는다.
T^{i_1 \cdots i_p}{}_{j_1 \cdots j_q} = T(\mathbf{e}^{i_1}, \ldots, \mathbf{e}^{i_p}, \mathbf{e}_{j_1}, \ldots, \mathbf{e}_{j_q})
이 성분들이 다차원 배열을 형성하며, 딥러닝에서 사용하는 텐서(다차원 배열)의 수학적 근거가 된다.
4. 다중선형 사상으로서의 행렬 곱셈
행렬 곱셈을 다중선형 사상의 관점에서 재해석하자. 행렬 \mathbf{A} \in \mathbb{R}^{m \times n}는 (1,1)형 텐서 A^i{}_j로 볼 수 있다. 벡터 \mathbf{v} = v^j \mathbf{e}_j에 대하여,
(\mathbf{Av})^i = A^i{}_j v^j = \sum_j A^i{}_j v^j
행렬 곱셈 \mathbf{C} = \mathbf{AB}는 텐서 축약이다.
C^i{}_k = A^i{}_j B^j{}_k = \sum_j A^i{}_j B^j{}_k
반복되는 인덱스 j에 대하여 합산이 이루어지며, 이는 두 (1,1)형 텐서의 축약으로 새로운 (1,1)형 텐서를 생성하는 것이다.
5. 텐서 공간의 벡터 공간 구조
고정된 유형 (p,q)의 텐서들의 집합 T^p_q(V)는 벡터 공간을 형성한다. 텐서의 덧셈과 스칼라 곱이 다음과 같이 정의된다.
(S + T)(\omega_1, \ldots, \mathbf{v}_q) = S(\omega_1, \ldots, \mathbf{v}_q) + T(\omega_1, \ldots, \mathbf{v}_q)
(cT)(\omega_1, \ldots, \mathbf{v}_q) = c \cdot T(\omega_1, \ldots, \mathbf{v}_q)
이 벡터 공간의 차원은 n^{p+q}이다 (n = \dim V). (1,1)형 텐서 공간의 차원은 n^2으로, 이는 n \times n 행렬의 자유도와 일치한다.
서로 다른 유형의 텐서 간에는 덧셈이 정의되지 않는다. (1,0)형 텐서와 (0,1)형 텐서는 같은 수의 성분을 가지지만 좌표 변환에서 다르게 변환되므로 더할 수 없다. 이는 딥러닝에서 형상(shape)이 다른 텐서 간의 연산이 정의되지 않는 것과 대응한다.
6. 딥러닝과의 연결
딥러닝 프레임워크에서 사용하는 텐서는 엄밀한 수학적 텐서의 좌표 표현에 해당한다. 프레임워크의 텐서는 고정된 기저(표준 기저)에서의 성분 배열이며, 좌표 변환 규칙을 명시적으로 추적하지 않는다.
그러나 다중선형 사상으로서의 텐서 개념은 딥러닝의 여러 측면에서 유용한 통찰을 제공한다.
선형 계층의 쌍선형 구조: 어텐션 점수 \text{score}(\mathbf{q}, \mathbf{k}) = \mathbf{q}^\top\mathbf{W}\mathbf{k}는 쌍선형 사상이다. 가중치 행렬 \mathbf{W}는 (0, 2)형 텐서의 성분으로, 두 벡터 사이의 관계를 측정한다.
다중선형 상호작용: 신경 텐서 네트워크(Neural Tensor Network)에서 f(\mathbf{e}_1, \mathbf{e}_2) = \mathbf{u}^\top \tanh(\mathbf{e}_1^\top \mathbf{W}^{[1:k]} \mathbf{e}_2 + \mathbf{V}[\mathbf{e}_1; \mathbf{e}_2] + \mathbf{b})의 쌍선형 항 \mathbf{e}_1^\top \mathbf{W}^{[s]} \mathbf{e}_2는 3차 텐서 \mathcal{W} \in \mathbb{R}^{d \times d \times k}를 통한 다중선형 상호작용이다.
텐서 네트워크: 양자 물리학에서 발전한 텐서 네트워크(tensor network)는 고차 텐서를 저차 텐서들의 축약으로 표현하는 기법으로, 최근 딥러닝에서 모델 압축과 양자 계산의 시뮬레이션에 응용되고 있다. 이 맥락에서 다중선형 사상으로서의 텐서 이해는 수학적으로 필수적이다.