02 AI를 읽는 수학·통계·9 min read

AI는 숫자를 어떻게 묶어서 다룰까? - 스칼라·벡터·행렬·텐서의 차이

AI는 숫자 하나뿐 아니라 여러 숫자를 묶고 쌓아서 계산합니다. 스칼라·벡터·행렬·텐서를 학생 점수와 이미지 예시로 비교하고, Shape와 축의 의미를 쉽게 설명합니다.

어두운 서재 책상 위에 하나의 빛나는 값, 숫자 열을 상징하는 점들, 평면 격자, 겹친 격자를 유리와 황동 장치로 표현한 편집형 이미지
AI는 값을 하나씩만 다루지 않습니다. 여러 값을 축에 따라 묶어 입력과 계산 결과를 표현합니다. · DECHIVE

안녕하세요, DECHIVE입니다.

AI를 설명하는 글에는 낯선 이름이 자주 등장합니다. 스칼라, 벡터, 행렬, 텐서라는 말도 그렇습니다.

이름만 보면 서로 완전히 다른 기술 같지만, 처음에는 한 가지 질문에서 출발하면 됩니다.

“숫자를 하나로 볼까, 한 줄로 묶을까, 표로 만들까, 표를 더 쌓을까?”

학생 한 명의 점수를 떠올리면 이해하기 쉽습니다. 수학 점수 하나, 세 과목 점수, 여러 학생의 점수표, 여러 학급의 점수표 묶음은 구조가 다릅니다. AI도 이런 구조를 구분해서 계산합니다.

한 문장으로 먼저 정리하면

AI 계산에서 스칼라는 값 하나, 벡터는 순서가 있는 값들의 묶음, 행렬은 행과 열로 배열한 값들로 이해할 수 있습니다. 딥러닝에서 텐서는 이런 값들을 여러 축의 배열로 표현하는 자료구조이며, 스칼라·벡터·행렬도 포함합니다.

이 글은 AI·딥러닝 구현에서 데이터의 모양을 읽는 관점으로 설명합니다. 수학에서 텐서는 좌표 변환과 관련된 성질까지 다루는 개념이므로, 엄밀한 수학적 정의를 단순히 ‘숫자 배열’로 대체하는 것은 아닙니다.

처음에는 숫자의 종류보다 어떤 축에 어떤 값들이 들어 있는지에 집중하면 충분합니다.

스칼라: 값 하나를 다룹니다

한 학생의 수학 점수가 80점이라고 하겠습니다.

80

이처럼 값 하나를 스칼라라고 부릅니다. 온도 23.5도, 가격 5,000원, 모델의 손실값 하나도 스칼라로 다룰 수 있습니다.

스칼라라는 말이 ‘작은 숫자’를 뜻하는 것은 아닙니다. 80도, 80만도, 소수도 하나의 값이면 스칼라로 표현할 수 있습니다.

딥러닝 라이브러리에서는 이런 값을 축이 없는 0축 텐서로 표현할 수 있습니다. 보통 Shape는 ()로 표시합니다.[1]

여기서 ()는 숫자가 없다는 뜻이 아닙니다. 값은 하나 있지만, 배열을 따라 이동할 축이 없다는 뜻입니다.

벡터: 여러 값을 순서대로 묶습니다

이번에는 한 학생의 국어·수학·영어 점수를 함께 보겠습니다.

[80, 90, 70]

각 자리의 의미를 정하면 다음처럼 읽을 수 있습니다.

  • 첫 번째: 국어 점수 · 80
  • 두 번째: 수학 점수 · 90
  • 세 번째: 영어 점수 · 70

이런 숫자 묶음을 벡터로 다룰 수 있습니다. 이 예시는 원소가 3개인 벡터이며, 배열의 Shape는 (3,)입니다. 쉼표는 프로그래밍에서 길이가 하나인 튜플을 표시하는 표기입니다.

순서도 중요합니다. [80, 90, 70]과 [90, 80, 70]은 숫자의 종류가 같아도 국어와 수학 점수가 바뀐 다른 입력입니다.

수학이나 물리에서 벡터를 방향과 크기가 있는 화살표로 배우기도 합니다. AI에서는 특징값이나 임베딩을 순서 있는 숫자 좌표로 표현하는 설명을 자주 만납니다.

다만 숫자를 아무렇게나 나열했다고 의미가 자동으로 생기는 것은 아닙니다. 각 자리가 무엇을 표현하고 어떤 과정으로 만든 값인지 알아야 해석할 수 있습니다.

행렬: 값을 행과 열로 배열합니다

두 학생의 세 과목 점수를 함께 묶어보겠습니다.

  • A: 80 · 90 · 70
  • B: 75 · 85 · 95

이 표의 숫자 부분은 2행 3열 행렬로 표현할 수 있습니다.

  • 행 방향은 학생을 구분합니다.
  • 열 방향은 과목을 구분합니다.
  • Shape는 (2, 3)입니다.
  • 전체 원소는 2 × 3 = 6개입니다.

이 예시의 학생 이름과 과목 이름은 설명을 위한 표시입니다. 숫자 배열 자체에 이 이름들이 저절로 들어 있는 것은 아닙니다. 프로그램과 데이터 설명에서 축의 의미를 정해야 합니다.

엑셀 표를 떠올리면 편하지만, 모든 표가 그대로 수학적 행렬은 아닙니다. 여기서는 같은 종류의 숫자를 행과 열로 정리한 부분에 집중합니다.

숫자 하나에서 여러 축으로 확장해 봅시다

이번에는 두 학급이 있고, 각 학급에 학생이 두 명씩 있다고 하겠습니다. 각 학생의 과목 점수는 세 개입니다.

이 자료를 다음 축 순서로 묶을 수 있습니다.

학급 × 학생 × 과목

그러면 Shape는 (2, 2, 3)이고, 전체 점수는 2 × 2 × 3 = 12개입니다. 학급별 2행 3열 점수표 두 개를 쌓았다고 생각하면 됩니다.

  • 스칼라: 점수 하나 · 0 · ()
  • 벡터: 한 학생의 세 과목 점수 · 1 · (3,)
  • 행렬: 두 학생의 세 과목 점수 · 2 · (2, 3)
  • 3축 텐서: 두 학급의 점수표 묶음 · 3 · (2, 2, 3)

텐서는 꼭 입체적인 상자만을 뜻하지 않습니다. 축이 네 개나 다섯 개인 배열도 표현할 수 있고, 딥러닝 라이브러리에서는 축이 없는 스칼라까지 텐서로 다룹니다.[1]

‘텐서 = 행렬을 쌓은 것’은 3축 예시를 이해하는 비유이지, 텐서 전체의 정의는 아닙니다.

점수 하나의 스칼라, 세 과목 점수의 벡터, 두 학생 점수의 행렬, 두 학급 점수를 쌓은 3축 텐서를 Shape와 축 수로 비교하는 도식
같은 점수도 과목·학생·학급이라는 축에 따라 다르게 묶입니다. 스칼라와 벡터, 행렬도 딥러닝 라이브러리에서는 텐서로 표현할 수 있습니다. · DECHIVE

Shape와 축의 수는 무엇이 다를까요?

Shape는 각 축의 길이, 즉 각 방향에 값이 몇 개 있는지 알려줍니다. 축의 수는 배열을 몇 개의 방향으로 구분하는지 알려줍니다.[2]

Shape가 (2, 3)이면 축은 두 개입니다. 첫 축의 길이는 2이고, 두 번째 축의 길이는 3입니다.

Shape가 (2, 2, 3)이면 축은 세 개입니다. 전체 원소 개수는 각 축의 길이를 곱해 구합니다.

코드에서는 축의 수를 ndim으로 표시하거나, 텐서의 rank라고 부르기도 합니다. 여기서 말하는 텐서의 rank는 축의 수입니다. 선형대수에서 행렬의 rank가 뜻하는 독립적인 행·열의 수와는 다른 용법이므로 문맥을 구분해야 합니다.

또 하나 헷갈리는 표현이 있습니다.

[80, 90, 70]을 3차원 벡터라고 부를 수 있습니다. 좌표가 세 개 있다는 뜻입니다. 하지만 이 벡터를 저장한 배열은 Shape가 (3,)인 1축 배열입니다.

따라서 ‘3차원’이라는 말을 만났다면, 벡터의 좌표 개수를 말하는지 배열의 축 수를 말하는지 확인해야 합니다.

같은 원소 개수라도 같은 입력은 아닙니다

원소가 6개인 데이터도 여러 모양으로 만들 수 있습니다.

  • (6,): 값 여섯 개의 한 줄 · 여섯 개 특징값
  • (2, 3): 2행 3열 · 두 학생 × 세 과목
  • (3, 2): 3행 2열 · 세 학생 × 두 과목

숫자 개수가 같아도 구조와 의미는 다릅니다. 두 학생의 세 과목 점수를 세 학생의 두 과목 점수처럼 읽으면 잘못된 입력이 됩니다.

배열을 다시 묶는 작업을 reshape라고 합니다. 보통 전체 원소 개수는 유지하면서 모양을 바꿉니다.[2] 하지만 모양을 바꿨다는 사실만으로 원하는 의미가 유지되는 것은 아닙니다.

행과 열의 역할을 맞바꾸려면 전치처럼 축을 바꾸는 연산을 구분해서 사용해야 합니다. 모양이 맞는지와 데이터가 올바르게 해석되는지는 각각 확인해야 합니다.

사진 한 장은 어떤 모양으로 표현할까요?

가장 단순하게, 흑백 이미지의 각 픽셀을 밝기 숫자 하나로 표현한다고 생각해 보겠습니다. 높이 4, 너비 5인 이미지는 (4, 5) 배열로 나타낼 수 있습니다.

색을 빨강·초록·파랑 세 채널로 표현하는 RGB 이미지라면 다음처럼 묶을 수 있습니다.

높이 × 너비 × 채널 = (4, 5, 3)

이 예시에는 4 × 5 × 3 = 60개의 값이 들어갑니다. 실제 이미지 처리에서는 정규화나 모델에 맞춘 추가 변환이 있을 수 있지만, 여기서는 모양만 살펴보겠습니다.

이런 이미지 두 장을 함께 묶으면 첫 축에 이미지 개수를 추가할 수 있습니다.

이미지 수 × 높이 × 너비 × 채널 = (2, 4, 5, 3)

이때 이미지들을 함께 처리하는 묶음을 배치라고 부릅니다.

다만 이 순서가 유일한 규칙은 아닙니다. 어떤 구현은 이미지 수 × 채널 × 높이 × 너비 순서를 사용합니다. Shape의 숫자만 봐서는 각 축의 의미를 완전히 알 수 없습니다. 모델이 기대하는 입력 형식까지 확인해야 합니다.

AI는 왜 이런 구조를 사용할까요?

모델은 한 번에 여러 특징과 여러 사례를 계산해야 합니다. 숫자들을 축에 따라 정리하면 어떤 값끼리 대응하고, 어떤 방향으로 연산할지 표현하기 쉽습니다.

예를 들어 여러 학생의 특징값을 행렬로 모으고, 모델의 가중치와 연산해 여러 예측을 만들 수 있습니다. 사진에서는 위치와 채널을 구분해서 계산합니다.

PyTorch의 공식 튜토리얼도 텐서를 모델의 입력·출력과 매개변수를 표현하는 자료구조로 설명합니다.[3]

하지만 숫자의 모양이 맞다고 모델이 정확한 답을 내는 것은 아닙니다. 과목 순서가 바뀌었거나, 단위가 다르거나, 모델이 기대한 전처리가 빠졌다면 입력 구조가 같아도 결과가 잘못될 수 있습니다.

배열 구조는 계산을 위한 조건이고, 데이터의 의미와 모델의 정확성을 보증하는 장치는 아닙니다.

Shape만 알면 충분할까요?

실제로는 다음 항목도 함께 봅니다.

  • 축의 의미: 각 축이 학생, 과목, 이미지, 채널 중 무엇인가
  • 자료형(dtype): 값이 정수인지 부동소수점 수인지
  • 단위와 값 범위: 점수인지 가격인지, 0~255인지 0~1인지
  • 배치 여부: 한 사례인지 여러 사례를 묶은 것인지
  • 저장 장치(device): CPU나 GPU 등 어디에 놓여 있는지

자료형과 장치는 메모리 사용과 연산에도 영향을 줄 수 있습니다. PyTorch는 텐서의 주요 속성으로 Shape, 자료형, 저장 장치를 함께 소개합니다.[3]

모든 사용자가 이 항목을 직접 설정해야 하는 것은 아닙니다. 다만 코드나 오류 메시지에 이런 이름이 나타나면, 각각 데이터의 어떤 조건을 말하는지 알아두면 도움이 됩니다.

흔한 오해

“텐서는 반드시 3차원이다.” 딥러닝 라이브러리의 텐서는 여러 축을 표현하며, 스칼라·벡터·행렬도 포함합니다.

“값이 하나면 Shape도 항상 같다.” 스칼라 (), 길이 1 벡터 (1,), 1행 1열 행렬 (1, 1)은 모두 원소가 하나지만 축의 수가 다릅니다.

“3차원 벡터와 3축 텐서는 같은 말이다.” 전자는 좌표 세 개를 가진 벡터를, 후자는 배열의 축이 세 개임을 뜻할 수 있습니다. 문맥을 확인해야 합니다.

“Shape가 같으면 같은 데이터다.” 축의 순서와 의미, 단위, 전처리가 다를 수 있습니다.

“숫자를 벡터로 만들면 AI가 의미를 이해한다.” 숫자 배열은 표현 형식입니다. 모델과 학습 방식, 값이 만들어진 과정이 함께 필요합니다.

그래서 무엇을 기억해야 할까요?

스칼라, 벡터, 행렬, 텐서는 AI가 값을 어떻게 표현하고 계산하는지 이해하는 출발점입니다.

점수 하나를 보고 있다면 스칼라, 한 학생의 특징값을 묶었다면 벡터, 여러 학생을 행과 열로 정리했다면 행렬로 이해할 수 있습니다. 여기에 학급이나 이미지 개수 같은 축이 더해지면 더 많은 축의 텐서로 표현할 수 있습니다.

숫자가 몇 개 있는지만 보지 말고, 어떤 축에 어떤 의미로 묶여 있는지 확인하세요.

이름을 외우는 것보다 중요한 것은 입력의 구조를 읽는 일입니다. Shape와 축의 의미를 함께 보면, AI가 무엇을 받아 계산하고 어디에서 입력이 어긋났는지 조금 더 구체적으로 살펴볼 수 있습니다.

확인한 자료

  1. TensorFlow — Introduction to Tensors: 스칼라·벡터·행렬과 텐서의 관계, 축의 수와 Shape, 축 변경과 reshape 구분 확인.
  2. NumPy — The absolute basics for beginners: 배열의 ndim·shape·size·dtype 및 reshape 설명 확인.
  3. PyTorch — Tensors tutorial: 모델 입력·출력·매개변수의 텐서 표현, Shape·자료형·장치 속성 확인.

학생 점수와 작은 이미지 크기는 모두 DECHIVE의 설명용 예시이며 실제 모델을 측정한 자료가 아닙니다.

KEYWORDS

  • 스칼라
  • 벡터
  • 행렬
  • 텐서
  • Shape
  • Rank
  • 차원
  • AI 데이터
← Knowledge 목록