벡터란? AI의 숫자 묶음에서 방향·크기·거리까지 이해하기

기초 시리즈에서는 임베딩을 “단어나 문장을 나타내는 숫자 묶음”이라고 설명했습니다. 이 표현은 시작점으로 충분하지만, AI의 계산을 더 깊이 이해하려면 숫자들이 왜 묶여 있고, 그 묶음의 방향과 길이, 서로의 거리가 무엇을 의미하는지 살펴봐야 합니다.

중급 시리즈의 첫 주제는 벡터(Vector)입니다. 벡터는 임베딩뿐 아니라 신경망의 입력과 출력, 가중치 계산, Attention, 유사도 검색까지 이어지는 공통 언어입니다. 이번 글에서는 벡터를 단순한 숫자 목록에서 공간의 방향과 관계를 표현하는 대상으로 확장해 보겠습니다.


벡터란 무엇인가?

벡터는 순서가 있는 숫자들의 모음입니다. 예를 들어 [3, 4][4, 3]은 같은 숫자를 포함하지만 순서가 다르므로 서로 다른 벡터입니다. 각 숫자를 벡터의 성분(Component)이라고 부릅니다.

벡터를 이해하는 대표적인 두 관점이 있습니다.

  • 목록 관점: 여러 특징이나 측정값을 순서대로 담은 숫자 배열입니다.
  • 기하학 관점: 공간에서 특정 방향과 크기를 가진 화살표 또는 한 점의 위치입니다.

두 관점은 서로 다른 개념이 아닙니다. [3, 4]는 첫 번째 축으로 3, 두 번째 축으로 4만큼 이동한다는 뜻으로 그릴 수 있습니다. 같은 숫자 묶음이 계산에서는 배열이고, 좌표 공간에서는 이동과 위치가 되는 것입니다.

스칼라와 벡터는 어떻게 다를까?

스칼라(Scalar)는 하나의 숫자입니다. 온도 20도, 학습률 0.001처럼 크기 하나만 나타냅니다. 반면 벡터는 여러 성분을 함께 가지므로 하나의 대상을 여러 측면에서 표현할 수 있습니다.

예를 들어 학생 한 명을 [수학 점수, 영어 점수, 과학 점수] 순서로 표현하면 [80, 90, 70]은 3차원 벡터가 됩니다. 여기서는 각 차원의 의미를 사람이 정했습니다. 임베딩에서는 각 차원의 의미가 이렇게 깔끔하게 이름 붙는 경우가 드물고, 학습 과정에서 여러 특징이 많은 차원에 분산됩니다.

벡터의 성분, 방향, 크기


벡터 v = [3, 4]를 2차원 좌표에 그리면 원점에서 (3, 4)를 향하는 화살표가 됩니다. x축 방향 이동량 3과 y축 방향 이동량 4가 벡터의 두 성분입니다.

방향

방향은 화살표가 어느 쪽을 가리키는지를 나타냅니다. 두 벡터가 비슷한 방향을 향한다면 성분 사이의 비율이 비슷하다고 볼 수 있습니다. 이후 내적과 코사인 유사도에서 두 벡터의 방향이 얼마나 비슷한지를 숫자로 계산하게 됩니다.

크기

벡터의 크기 또는 노름(Norm)은 화살표의 길이입니다. 2차원 벡터 v = [x, y]의 유클리드 노름은 피타고라스 정리를 이용해 다음과 같이 구합니다.

||v|| = √(x² + y²)

따라서 [3, 4]의 크기는 √(3² + 4²) = 5입니다. 차원이 늘어나도 각 성분의 제곱을 모두 더한 뒤 제곱근을 구하는 원리는 같습니다.

차원이란 무엇인가?

벡터의 차원(Dimension)은 성분의 개수입니다. [3, 4]는 성분이 두 개이므로 2차원, [2, -1, 5]는 세 개이므로 3차원입니다. 수학에서는 수백 개, 수천 개의 성분을 가진 벡터도 같은 방식으로 다룹니다.

우리는 3차원까지는 공간으로 상상할 수 있지만 고차원 벡터를 눈으로 직접 그리기는 어렵습니다. 그렇다고 계산 원리가 사라지는 것은 아닙니다. 성분별 덧셈, 크기, 거리, 내적 같은 연산은 차원의 수와 관계없이 정의할 수 있습니다.

AI에서 차원은 표현할 수 있는 특징의 여유와 관련되지만, 차원이 많다고 무조건 더 좋은 것은 아닙니다. 더 많은 값은 더 풍부한 관계를 담을 가능성을 주는 동시에 메모리와 계산량을 늘리고, 충분한 데이터와 적절한 학습도 요구합니다.

벡터를 더하고 숫자를 곱하면?

벡터 덧셈

같은 차원의 두 벡터는 같은 위치의 성분끼리 더합니다.

[1, 2] + [3, 4] = [4, 6]

기하학적으로는 첫 번째 화살표 끝에서 두 번째 화살표만큼 다시 이동한 결과와 같습니다. 신경망에서는 입력에 위치 정보를 더하거나, 여러 계산 경로의 결과를 합치는 과정 등에서 벡터 덧셈이 사용됩니다.

스칼라 곱

벡터에 하나의 숫자를 곱하면 모든 성분에 그 숫자를 곱합니다.

2 × [1, 3] = [2, 6]

양수를 곱하면 방향을 유지한 채 길이가 바뀝니다. 0을 곱하면 모든 성분이 0인 영벡터가 되고, 음수를 곱하면 방향이 반대로 바뀝니다. Attention 가중치처럼 어떤 정보의 반영 비율을 조절할 때도 벡터에 스칼라를 곱하는 형태가 나타납니다.

벡터 사이의 거리는 무엇일까?

두 점을 나타내는 벡터 ab 사이의 유클리드 거리는 두 벡터를 뺀 결과의 크기입니다.

거리(a, b) = ||a - b||

예를 들어 a = [1, 2], b = [4, 6]이면 차이는 [3, 4]이고 거리는 5입니다. 각 성분에서 얼마나 차이가 나는지를 하나의 거리 값으로 합친 것입니다.

다만 모든 AI 문제에서 유클리드 거리만 사용하는 것은 아닙니다. 방향을 비교하는 코사인 유사도나 길이와 방향을 함께 반영하는 내적도 사용합니다. Google의 추천 시스템 후보 생성 안내도 임베딩 벡터를 비교하는 방법으로 코사인, 내적, 유클리드 거리를 설명합니다.

AI에서 벡터는 무엇을 담을까?

벡터의 각 성분에는 입력값, 학습된 특징, 중간 계산 결과 또는 출력 점수가 담길 수 있습니다.

  • 입력 벡터: 이미지 픽셀, 센서 값, 사용자 특징처럼 모델에 들어가는 값입니다.
  • 가중치 벡터: 입력의 각 특징을 얼마나 반영할지 학습한 값입니다.
  • 임베딩 벡터: 토큰, 문장, 이미지나 상품을 조밀한 숫자 공간에 표현합니다.
  • 은닉 상태: 신경망 내부 층이 문맥과 특징을 가공한 중간 표현입니다.
  • 출력 벡터: 분류 점수나 다음 토큰 후보의 로짓처럼 결과 계산에 쓰이는 값입니다.

중요한 점은 벡터 자체가 사람처럼 의미를 느끼는 것이 아니라는 사실입니다. 학습 목표를 잘 수행하도록 숫자들이 조정되고, 그 결과 특정 거리와 방향의 구조가 유용한 관계를 나타내게 됩니다.

의미 공간에서 방향과 거리 보기


단어 임베딩을 같은 공간의 벡터로 표현하면 “고양이”와 “강아지”처럼 비슷한 맥락에서 사용된 단어가 가까운 방향이나 위치에 놓일 수 있습니다. “자동차”처럼 사용 맥락이 다른 단어는 상대적으로 멀리 나타날 수 있습니다.

Google의 임베딩 공간 설명은 항목 사이의 거리를 수학적으로 계산하고 상대적 유사성의 척도로 해석할 수 있다고 안내합니다. 그러나 가까움은 학습 데이터와 모델이 만든 관계입니다. 두 단어가 완전히 같은 뜻이거나 관련 문장이 사실이라는 보장은 아닙니다.

그림 역시 고차원 공간을 이해하기 쉽게 2차원으로 단순화한 예시입니다. 실제 임베딩을 평면으로 줄이면 원래 거리와 군집 구조가 일부 왜곡될 수 있습니다.

행벡터와 열벡터

벡터를 가로로 쓰면 행벡터, 세로로 쓰면 열벡터라고 부릅니다.

행벡터: [1, 2, 3]

열벡터: [1
         2
         3]

담긴 성분은 같아 보여도 행렬 계산에서는 모양이 중요합니다. 어떤 구현은 한 데이터 샘플을 행으로 쌓고, 다른 수학 표기는 벡터를 열로 다룹니다. 계산식을 읽을 때는 숫자뿐 아니라 차원과 배열의 모양을 함께 확인해야 합니다.

벡터를 볼 때 자주 생기는 오해

  • 벡터는 항상 공간의 화살표다: 화살표는 이해를 돕는 표현이며 실제 계산에서는 순서 있는 숫자 배열로 저장됩니다.
  • 각 차원에는 사람이 읽을 수 있는 의미가 하나씩 있다: 학습된 표현에서는 특징이 여러 차원에 분산될 수 있습니다.
  • 차원이 많으면 항상 성능이 좋아진다: 계산 비용, 데이터, 학습 목표와 모델 구조를 함께 봐야 합니다.
  • 가까운 벡터는 같은 뜻이다: 선택한 거리 척도와 학습 데이터에서 상대적으로 비슷하다는 뜻입니다.
  • 서로 다른 모델의 벡터도 바로 비교할 수 있다: 모델마다 좌표 공간과 차원, 학습 기준이 달라 직접 비교가 성립하지 않을 수 있습니다.

한눈에 정리하기

  • 벡터는 순서가 있는 숫자들의 모음이며 각 숫자를 성분이라고 합니다.
  • 벡터는 숫자 배열이면서 공간의 방향, 크기와 위치로 해석할 수 있습니다.
  • 성분 개수가 차원이고, 고차원에서도 덧셈·크기·거리 계산이 가능합니다.
  • 벡터의 크기는 노름으로 나타내며 두 벡터의 차이로 거리를 구할 수 있습니다.
  • AI에서는 입력, 가중치, 임베딩, 은닉 상태와 출력이 모두 벡터가 될 수 있습니다.
  • 벡터의 가까움은 학습된 관계의 척도이며 사실이나 동일한 뜻을 보장하지 않습니다.

벡터가 하나의 대상을 숫자 공간에 표현한다면, 여러 벡터를 한꺼번에 모아 변환하는 데는 무엇이 필요할까요? 다음 글에서는 신경망 계산에 반복해서 등장하는 행렬(Matrix)이 벡터를 어떻게 묶고 새로운 벡터로 바꾸는지 알아보겠습니다.

댓글

이 블로그의 인기 게시물

AI의 학습 과정

AI란 무엇일까?

머신러닝 - AI는 어떻게 스스로 규칙을 찾을까?