Chapter 28. 텐서(Tensor)의 개념과 다차원 배열의 기하학적 의미

Chapter 28. 텐서(Tensor)의 개념과 다차원 배열의 기하학적 의미

1. 개요

텐서(tensor)는 스칼라, 벡터, 행렬을 일반화한 수학적 대상으로, 딥러닝에서 데이터와 매개변수를 표현하는 근본적인 구조이다. 본 장에서는 텐서의 수학적 정의를 다중선형대수학(multilinear algebra)의 관점에서 엄밀하게 제시하고, 딥러닝 프레임워크에서 사용되는 다차원 배열로서의 텐서를 구분하여 다룬다.

텐서는 좌표계의 변환에 대해 특정한 규칙으로 변환되는 다중선형 사상(multilinear map)이다. 0차 텐서는 스칼라, 1차 텐서는 벡터, 2차 텐서는 행렬에 대응하며, 3차 이상의 텐서는 고차원의 기하학적 양을 나타낸다. 딥러닝에서는 이러한 수학적 텐서의 엄밀한 정의보다, 다차원 배열(multidimensional array)로서의 텐서가 실용적으로 더 중요하다. 컬러 이미지는 3차 텐서(높이 \times 너비 \times 채널), 영상 데이터는 4차 텐서(프레임 \times 높이 \times 너비 \times 채널), 배치 처리된 학습 데이터는 추가 차원을 가지는 텐서로 표현된다.

본 장은 텐서의 차수(order)와 형상(shape)의 정의에서 출발하여, 텐서의 기본 연산(원소별 연산, 텐서곱, 축약)을 체계적으로 다루고, 아인슈타인 합산 규약(Einstein summation convention)의 표기법을 소개한다. 이어서 텐서 분해(tensor decomposition)의 기초로서 CP 분해와 터커 분해를 개관하고, 브로드캐스팅(broadcasting)과 형상 변환(reshaping) 등 딥러닝 프레임워크에서의 실용적 텐서 조작을 다룬다. 마지막으로, 텐서 연산이 딥러닝의 순전파와 역전파에서 어떻게 활용되는지를 살펴본다.