AI와 머신러닝, 특히 벡터 데이터베이스(Vector Database)를 이야기할 때 가장 많이 등장하는 용어 중 하나가 바로 **벡터(Vector)**다. 흔히 "숫자의 나열", "좌표", "고차원 데이터" 정도로 막연히 이해하고 넘어가는 경우도 많지만, 벡터는 그 자체로 수학적으로 탄탄한 개념적 기반을 갖고 있다. 이 글에서는 벡터의 수학적 의미와 구조에 대해 명확하게 짚어보고자 한다.
고등학교 물리 시간에 처음 만나는 벡터의 정의는 보통 다음과 같다.
벡터는 **크기(magnitude)**와 **방향(direction)**을 모두 가진 물리량이다.
예: 속도, 힘, 가속도 등
이 정의는 물리적인 벡터의 특성을 잘 설명해주지만, 수학적으로는 조금 더 일반화된 개념이 필요하다. 수학에서 벡터는 다음과 같이 정의된다.
수학에서 벡터는 단순히 방향과 크기만이 아니라, 공간 내의 점 또는 위치를 나타내는 수의 나열로 정의된다.
예를 들어,
v = [3, 4]
는 2차원 공간에서의 한 벡터다. 이 벡터는 원점 (0, 0)에서 시작해 (3, 4) 위치로 향하는 화살표라고 생각할 수 있다. 벡터는 좌표로도 표현되지만, 동시에 방향성과 크기를 내포하고 있다.
이 벡터의 크기는 피타고라스 정리를 이용해 계산할 수 있다.
||v|| = √(3² + 4²) = √(9 + 16) = √25 = 5
즉, 벡터는 길이와 방향을 갖는 점들의 위치 관계를 숫자로 표현한 것이다.
수학에서 벡터가 유용한 이유 중 하나는 연산이 가능하다는 점이다.
벡터 덧셈:
두 벡터를 더하면 새로운 벡터가 만들어진다.
u = [1, 2], v = [3, 4]
u + v = [1+3, 2+4] = [4, 6]
스칼라 곱:
하나의 숫자(스칼라)를 곱하면 벡터의 방향은 유지되면서 크기만 변화한다.
2 * v = 2 * [3, 4] = [6, 8]
내적(Dot Product):
두 벡터 간의 유사도를 구할 때 사용하는 연산이다.
u · v = (1)(3) + (2)(4) = 3 + 8 = 11
이 내적은 두 벡터 사이의 각도와 길이를 곱한 결과이기도 하다. 즉, 방향이 비슷할수록 내적 값이 커진다. 이 개념은 벡터 DB에서 코사인 유사도를 이해할 때 매우 중요하다.
벡터는 단순한 리스트 이상의 의미를 갖는다. 수학에서는 벡터가 정의된 공간, 즉 **벡터 공간(Vector Space)**이라는 구조 안에서 다뤄진다. 이 공간은 다음 성질을 만족하는 집합이다.
이러한 추상적인 틀은 고차원 데이터를 다룰 때, 그리고 다양한 벡터 연산이 필요한 머신러닝 모델에서 핵심 개념이 된다.
현대 AI 분야에서는 대부분의 데이터가 벡터로 표현된다. 예를 들어:
이러한 벡터는 대부분 수백~수천 차원을 가지며, 각 차원은 특정한 의미를 가지거나, 데이터를 분류하기 위한 정보의 압축 표현이다.
즉, 벡터는 단순한 좌표의 나열을 넘어서 의미 있는 수치적 표현이며, 이로 인해 거리 계산, 유사도 측정 등에서 벡터 연산이 활발히 쓰인다.
항목 | 설명 |
---|---|
벡터란? | 방향과 크기를 가진 수학적 객체 |
수학적 표현 | 숫자의 리스트, n차원 점 |
가능한 연산 | 덧셈, 스칼라 곱, 내적 등 |
활용 맥락 | AI 임베딩, 추천, 검색, 분류 등 |
의미 | 고차원 공간에서의 데이터 표현 및 비교 수단 |
벡터는 단순한 수열이 아니다. 그것은 고차원 공간 속에서 데이터 간의 의미, 관계, 구조를 표현하고 계산할 수 있게 해주는 기초적인 수학적 언어다. 이 개념을 명확히 이해하면, 벡터 데이터베이스나 머신러닝에서의 임베딩, 검색 등의 구조도 더욱 분명하게 보일 것이다.