[AI 수학적 기초]텐서(Tensor)에 대해 배워보았다.

OasisGorilla·2024년 9월 29일
0

선형대수학에서 다중선형사상(multilinear map) 또는 텐서(tensor)는 선형 관계를 나타내는 다중선형대수학의 대상이다. [출처, 위키피디아]

위키피디아에 나와 있는 텐서의 정의

그만 알아보도록 하자.

농담이고, 작은 것부터 천천히 알아보자.

나는 저 어려운 말을 쉽게 바꿔 '선형 관계를 나타내는 무언가'라고 간소화하여 접근해볼 것이다.

선형관계는 무엇일까?

구글에 검색하여 상단노출되는 블로그를 참조했다. [출처, 네이버블로그]

두 데이터의 값사이에 직선식의 형태가 있으면 선형관계가 있다고 블로그에서 말해주고 있다.

다른 사람들 말도 들어보기 위해
gpt로 선형관계의 정의를 알려주는 괜찮은 출처를 찾아달라고 하니 아래 두 사이트를 찾아줬다.
docmckee.com
online.stat.psu.edu
두 사이트는 한 변수가 증가하거나 감소하면 다른 변수는 일정한 양만큼 변경되는 관계라고 말하고 있다.

여러 사이트에서 같은 얘기를 하고 있으니 선형관계에 대한 정의는 위와 같이 이해하면 될 듯 하다.
내가 생각하는 핵심키워드는 직선, 일정한 변화이다.

나는 텐서가 벡터 공간에서 직선을 그리거나, 여러 직선간의 관계를 다루기 위해 필요한 무언가라고 이해했다.

내가 이해한게 맞냐고 gpt에게 물어보니 부분적으로 이해했다고 한다.
1차원 텐서는 벡터로, 단순히 방향만 나타내지만, 2차원부터는 행렬이며, 벡터를 회전시키거나 대칭변환과 같은 방향 변화를 나타내는 도구로 사용된다고 한다.

그 차원에 따라서 내가 생각한 것 이상으로 다양하게 쓰일 수 있다는 얘기같다.

간단한 예시를 들으니까 이해가 쏙쏙된다. 이제 그만 알아보자.
위에서 알아본 것은 수학적인 관점에서 tensor를 바라본 것이다.

나는 딥러닝 관점에서 tensor를 어떻게 바라보는지 알고싶은 것이다.
파이토치 한국 사용자 커뮤니티에서는 텐서를 다음과 같이 정의하고 있다.

텐서(tensor)는 배열(array)이나 행렬(matrix)과 매우 유사한 특수한 자료구조입니다.
[출처, 파이토치 한국 커뮤니티]

아주 심플하다.
내가 듣고 있는 머신러닝 라이브러리의 수학적 기초 강의에서는 텐서를 연산을 위한 것이라고 설명하고 있다.

스칼라(0차원), 벡터(1차원), 행렬(2차원), 3-tensor(3차원) 모두 tensor로 표현할 수 있다고 한다.

스칼라는 단일 값이고, 벡터는 1차원 배열, 행렬은 2차원 배열...n차원 배열까지
이런식으로 아주 큰 차원의 텐서도 생성될 수 있다고 한다.

일단은 여기까지만 알아보았다.

내가 정리한 결론은
텐서는 선형의 데이터를 다루기 위해서 필요한 하나의 표현이다.

물론 이는 틀릴 수도 있고, 여기서는 그저 나의 생각의 흐름을 기록한 것이다.
공부를 더 하면서 이 개념을 보다 명확하게 세워나갈 것이다.

0개의 댓글