더북(TheBook)

Note ≡ | 벡터, 행렬, 텐서

인공지능(머신 러닝/딥러닝)에서 데이터는 벡터(vector)로 표현됩니다. 벡터는 [1.0, 1.1, 1.2]처럼 숫자들의 리스트로, 1차원 배열 형태입니다. 행렬(matrix)은 행과 열로 표현되는 2차원 배열 형태입니다. 이때 가로줄을 행(row)이라고 하며, 세로줄을 열(column)이라고 합니다. 마지막으로 텐서는 3차원 이상의 배열 형태입니다. 이를 정리하면 다음과 같습니다.

• 1차원 축(행) = axis 0 = 벡터

• 2차원 축(열) = axis 1 = 행렬

• 3차원 축(채널) = axis 2 = 텐서

 

▲ 그림 2-2 벡터, 행렬, 텐서

행렬은 복수의 차원을 가지는 데이터 레코드의 집합입니다. 이때 하나의 데이터 레코드를 벡터 단독으로 나타낼 때는 다음과 같이 하나의 열로 표기됩니다.

반면에 복수의 데이터 레코드 집합을 행렬로 나타낼 때는 다음과 같이 하나의 데이터 레코드가 하나의 행으로 표기됩니다.

즉, 행렬의 일반적인 표현은 다음과 같습니다.

텐서는 행렬의 다차원 표현이라고 생각하면 쉽습니다. 같은 크기의 행렬이 여러 개 묶여 있는 것으로 다음과 같이 표현할 수 있습니다.

파이토치에서 텐서를 표현하기 위해서는 다음 코드와 같이 torch.tensor()를 사용합니다.

import torch
torch.tensor([[1., -1.], [1., -1.]])

생성된 텐서의 형태는 다음과 같이 표현됩니다.

tensor([[ 1., -1.],
        [ 1., -1.]])

벡터, 행렬 등 자세한 내용은 선형대수학 도서를 참고하세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.