머신러닝에서 벡터 공간이란? (수학과 직관 포함)
Source: Dev.to
위에 제공된 소스 링크 아래에 번역하고 싶은 텍스트를 붙여 주세요. 그러면 해당 내용을 한국어로 번역해 드리겠습니다. (코드 블록, URL, 마크다운 형식 등은 그대로 유지됩니다.)
머신러닝과 벡터 공간
머신러닝에서는 데이터가 종종 벡터 공간에 표현되어 덧셈(조합) 및 스칼라 곱(스케일링)과 같은 수학적 연산이 가능하도록 합니다.
1. 필드란 무엇인가?
필드는 두 연산, 덧셈 ((+))과 곱셈 ((\cdot))이 정의된 집합으로, 다음을 만족합니다:
| 성질 | 설명 |
|---|---|
| 폐쇄성 | 집합의 원소들에 연산을 적용하면 그 결과도 여전히 집합 안의 원소가 됩니다. |
| 공리 | 교환법칙, 결합법칙, 분배법칙, 덧셈 및 곱셈 항등원의 존재, 모든 원소에 대한 덧셈 역원 및 모든 0이 아닌 원소에 대한 곱셈 역원의 존재. |
| 나눗셈 | 0이 아닌 모든 원소에 대해 나눗셈이 허용됩니다(즉, 모든 0이 아닌 원소는 곱셈 역원을 가집니다). |
직관: 필드는 마치 숫자로 “요리”할 때 필요한 모든 기본 도구가 들어 있는 주방과 같습니다—단, 0으로는 나눌 수 없습니다.
필드의 일반적인 예시:
- 실수 (\mathbb{R})
- 유리수 (\mathbb{Q})
- 복소수 (\mathbb{C})
정수 (\mathbb{Z})는 필드가 아닙니다. 왜냐하면 나눗셈이 집합 안에 머물지 않기 때문입니다(예: (2 \div 3)은 정수가 아닙니다). (\mathbb{Z})는 환을 이루며, 이는 덧셈, 뺄셈, 곱셈은 보장하지만 나눗셈은 보장하지 않습니다.
형식적으로, 필드 (F)는 다음을 만족합니다
[ (F,+) \text{ is an abelian group},\qquad (F\setminus{0},\cdot) \text{ is an abelian group}, ] [ \forall a,b,c\in F,; a\cdot(b+c)=a\cdot b + a\cdot c. ]
2. 공간이란 무엇인가?
A space는 특정 structure와 함께하는 집합으로, 요소에 허용되는 연산과 그 연산이 만족해야 하는 속성을 규정하는 규칙들의 모음이다. 서로 다른 구조는 서로 다른 종류의 공간을 만든다.
3. Vector Spaces
벡터 공간은 (보통 (\mathbb{R}) 또는 (\mathbb{C})) 필드 위에 구축된 구조입니다. 이것은 집합 (V)와 두 연산으로 구성됩니다:
- 벡터 덧셈 (+: V \times V \to V)
- 스칼라 곱 (\cdot : F \times V \to V)
두 연산 모두 (V) 안에서 닫혀 있어야 하며, 일반적인 벡터 공간 공리(결합법칙, 덧셈의 교환법칙, 분배법칙, 영벡터의 존재 등)를 만족해야 합니다.
형식적으로, 모든 (u,v,w \in V)와 (\alpha,\beta \in F)에 대해:
[ \begin{aligned} &u+v \in V,\qquad \alpha v \in V,\ &u+0 = u,\qquad \alpha(u+v)=\alpha u+\alpha v,\ &(\alpha+\beta)v = \alpha v + \beta v,\qquad (\alpha\beta)v = \alpha(\beta v),\ &1_F v = v. \end{aligned} ]
비유: 벡터 공간을 주방의 향신료 랙에 비유해 보세요. 랙(공간)은 향신료(벡터)를 보관하고, 규칙(구조)은 향신료를 섞는 방법(벡터 덧셈)과 레시피를 확대·축소하는 방법(스칼라 곱)을 알려줍니다.
What Is a Vector?
벡터는 단순히 벡터 공간의 원소입니다. 많은 익숙한 경우(예: (\mathbb{R}^n))에 벡터는 필드 원소들의 순서 있는 리스트로 표현될 수 있습니다:
[ v = (v_1, v_2, \dots, v_n) \in \mathbb{R}^n. ]
벡터의 해석:
- 물리학: 방향과 크기.
- 수학: 좌표.
- 머신러닝: 데이터 포인트 또는 특징 표현.
비유: 벡터는 향신료 랙에 있는 재료(벡터)로 만든 특정 레시피이며, 주방의 섞는 규칙을 따릅니다.
4. 어떤 것이 벡터 공간이 아닌 경우
모든 객체의 집합이 벡터 공간으로 만들 수 있는 것은 아닙니다. 아래는 벡터 공간 공리(특히 덧셈 및 스칼라 곱에 대한 닫힘)를 위반하는 일반적인 예시들입니다.
| Example | Why It Fails |
|---|---|
| 범주형 값 (e.g., “red”, “blue”, “green”) | 범주를 더하거나 스칼라로 곱하는 것은 의미 있는 해석이 없으며, 사용하기 전에 인코딩(예: 원‑핫)되어야 합니다. |
| 확률 분포 ([0.2, 0.5, 0.3]) | 두 확률 벡터를 더하면 합이 1이 되지 않을 수 있으며, 음수 스칼라로 곱하면 음의 “확률”이 됩니다. |
| 집합 (e.g., ({ \text{black}, \text{white}, \text{blue} })) | 합집합이나 교집합과 같은 집합 연산은 벡터 덧셈이나 스칼라 곱과 동일하지 않습니다. |
5. 지금까지 다룬 내용
- Fields는 산술적 기초(덧셈, 뺄셈, 곱셈, 나눗셈)를 제공합니다.
- Spaces는 어떤 연산이 허용되는지를 알려주는 구조와 집합을 제공합니다.
- Vector spaces는 벡터를 덧셈하고 필드 원소로 스케일링할 수 있는 특정한 종류의 공간이며, 구별되는 영벡터를 가집니다.
- Vectors는 벡터 공간 안에 존재하는 개별 요소(레시피)입니다.
현재 우리는 덧셈과 스칼라 곱셈만 소개했습니다. 벡터 길이, 거리, 혹은 각도와 같은 개념은 추가적인 구조(예: 노름, 내적)가 필요하며, 이는 이후에 논의될 것입니다.
6. 요약 (주방 비유)
| Concept | Kitchen Analogy |
|---|---|
| Field | 주방의 기본 도구(칼, 숟가락 등)로, 더하기·빼기·곱하기·나누기(단, 0으로는 나누지 않음)를 할 수 있게 해줍니다. |
| Space | 주방의 조직과 규칙(도구를 가지고 할 수 있는 일들)입니다. |
| Vector Space | 주방 안에서 재료를 섞고(벡터 덧셈) 레시피를 확대(스칼라 곱)할 수 있는 특정 주방 설정입니다. |
| Vector | 그 주방의 재료와 규칙을 사용해 만든 구체적인 레시피입니다. |
| Machine‑Learning Data | 학습 알고리즘이 의미를 가질 수 있도록 잘 정의된 주방(벡터 공간) 안에 들어갈 수 있도록 처리(인코딩, 정규화 등)해야 하는 원시 재료입니다. |
다음 단계는 벡터 공간에 추가적인 구조(노름, 내적)를 부여하여 길이, 거리, 각도 등을 논의할 수 있게 하는 것입니다—이는 많은 머신러닝 알고리즘에 필수적인 개념입니다.
향후 게시물에서 소개될 예정입니다.
읽어 주셔서 감사합니다. 벡터 공간은 머신러닝의 기본이며, 직관을 갖는 것이 이해에 큰 도움이 됩니다.