j-devlog
EN
~/nav

// categories

// tags

[MML]

MML로 배우는 선형대수 1: 벡터 공간과 부분공간

·12분 읽기·

선형대수를 처음 배울 때는 벡터를 "화살표", 행렬을 "숫자 표" 정도로 이해하고 넘어갑니다. 하지만 머신러닝에서 데이터·가중치·임베딩을 다루다 보면, 이 대상들이 왜 하나의 공간 안에서 자유롭게 더하고 곱해도 되는지에 대한 근본적인 약속이 필요해집니다. 그 약속이 바로 벡터 공간(Vector Space) 입니다.

이 글은 머신러닝 수학의 표준 교재인 Mathematics for Machine Learning (Deisenroth, Faisal, Ong) 2장 Linear Algebra, 2.4 Vector Spaces를 기반으로 정리했습니다.

이번 글에서 배우는 것#

  • 군(Group) — 집합과 연산이 만족해야 할 최소 규칙
  • 벡터 공간의 정의 — 두 연산과 8가지 공리
  • 벡터가 화살표만이 아닌 이유 — 다항식·행렬·함수도 벡터
  • 부분공간(Vector Subspace) — 공간 안의 공간, 그리고 왜 항상 원점을 포함하는가
  • 선형 결합(Linear Combination)생성(Span)

왜 "벡터 공간"이라는 추상화가 필요한가#

R2\mathbb{R}^2 의 화살표든, 3차 다항식이든, 28×2828 \times 28 이미지든, 우리는 이들을 더하고(덧셈), 상수배 하는(스칼라 곱) 연산을 똑같은 방식으로 사용합니다.

수학은 이 공통점을 뽑아내 "이런 두 연산이 이런 규칙을 만족하는 집합"을 벡터 공간이라고 이름 붙입니다. 한 번 규칙을 정해두면, 화살표에서 증명한 정리가 다항식·행렬·함수에도 그대로 적용됩니다. 추상화의 이점이 바로 이것입니다.


군 (Group) — 벡터 공간의 뼈대#

벡터 공간을 정의하려면 먼저 을 알아야 합니다. 집합 G\mathcal{G} 와 연산 :G×GG\otimes: \mathcal{G} \times \mathcal{G} \rightarrow \mathcal{G} 가 다음 네 가지를 만족하면 군 (G,)(\mathcal{G}, \otimes) 이라고 부릅니다.

공리내용
닫힘성(Closure)x,yG:xyG\forall x, y \in \mathcal{G}: x \otimes y \in \mathcal{G}
결합법칙(Associativity)(xy)z=x(yz)(x \otimes y) \otimes z = x \otimes (y \otimes z)
항등원(Identity)e: xe=ex=x\exists e:\ x \otimes e = e \otimes x = x
역원(Inverse)x, y: xy=e\forall x,\ \exists y:\ x \otimes y = e

여기에 교환법칙 xy=yxx \otimes y = y \otimes x 까지 성립하면 아벨 군(Abelian Group) 이라고 합니다.

핵심: 정수 덧셈 (Z,+)(\mathbb{Z}, +) 은 아벨 군이지만, 정수 곱셈 (Z,)(\mathbb{Z}, \cdot) 은 역원이 없어(예: 2의 역원 12\frac{1}{2} 이 정수가 아님) 군이 아닙니다.


벡터 공간의 정의#

벡터 공간 VV두 개의 연산을 가진 집합입니다.

  • 벡터 덧셈 +:V×VV+: V \times V \rightarrow V
  • 스칼라 곱 :R×VV\cdot: \mathbb{R} \times V \rightarrow V

그리고 (V,+)(V, +)아벨 군이면서, 스칼라 곱에 대해 다음 규칙들을 만족해야 합니다. 정리하면 총 8가지 공리입니다.

구분공리
덧셈 (아벨 군)닫힘성, 결합법칙, 항등원(영벡터 0\mathbf{0}), 역원(x-x), 교환법칙
분배법칙 1λ(x+y)=λx+λy\lambda \cdot (x + y) = \lambda \cdot x + \lambda \cdot y
분배법칙 2(λ+ψ)x=λx+ψx(\lambda + \psi) \cdot x = \lambda \cdot x + \psi \cdot x
스칼라 결합λ(ψx)=(λψ)x\lambda \cdot (\psi \cdot x) = (\lambda \psi) \cdot x
스칼라 항등원1x=x1 \cdot x = x

이 공리들을 만족하는 원소 xVx \in V벡터라고 부릅니다.


V=Rn,x=[x1xn]V = \mathbb{R}^n,\quad x = \begin{bmatrix} x_1 \\ \vdots \\ x_n \end{bmatrix}


가장 익숙한 벡터 공간은 nn 차원 실수 공간 Rn\mathbb{R}^n 이고, 여기서 벡터는 우리가 아는 열 벡터입니다.

주의: 두 벡터의 덧셈스칼라 곱은 결과가 반드시 다시 VV 안에 있어야 합니다(닫힘성). 하지만 벡터끼리의 "곱셈"(xyx \cdot y)은 벡터 공간의 정의에 포함되지 않습니다.


벡터는 화살표만이 아니다#

벡터 공간의 공리만 만족하면 무엇이든 "벡터"입니다. 화살표는 그중 한 예시일 뿐입니다.

집합벡터의 정체영벡터 0\mathbf{0}
Rn\mathbb{R}^n좌표 nn 개짜리 열 벡터(0,,0)(0, \dots, 0)
차수 n\le n 다항식p(x)=a0+a1x++anxnp(x) = a_0 + a_1 x + \cdots + a_n x^n상수함수 00
Rm×n\mathbb{R}^{m \times n} 행렬m×nm \times n 행렬 전체영행렬
실함수 f:RRf: \mathbb{R} \rightarrow \mathbb{R}함수 자체f(x)=0f(x) = 0

예를 들어 두 다항식을 더하거나 상수배 해도 여전히 다항식이고, 8가지 공리를 모두 만족합니다.


(a0+a1x)+(b0+b1x)=(a0+b0)+(a1+b1)x(a_0 + a_1 x) + (b_0 + b_1 x) = (a_0 + b_0) + (a_1 + b_1)x


그래서 다항식의 집합도 어엿한 벡터 공간입니다.

실무에서는? 딥러닝에서 이미지 한 장은 28×2828 \times 28 행렬이자 784차원 벡터입니다.
이렇게 데이터를 벡터 공간의 원소로 보기 때문에, 행렬 연산 하나로 수천 장의 이미지를 동시에 변환할 수 있습니다.


부분공간 (Vector Subspace)#

벡터 공간 VV 의 부분집합 UVU \subseteq V그 자체로 다시 벡터 공간이 되면, UUVV부분공간이라고 합니다.

부분집합 UU 가 부분공간인지 확인하려면 세 가지만 보면 됩니다.

  • UU \neq \emptyset, 특히 영벡터 0U\mathbf{0} \in U
  • 덧셈에 닫혀 있음: x,yUx+yUx, y \in U \Rightarrow x + y \in U
  • 스칼라 곱에 닫혀 있음: xU, λRλxUx \in U,\ \lambda \in \mathbb{R} \Rightarrow \lambda x \in U

핵심은 부분공간은 반드시 원점을 지난다는 점입니다. λ=0\lambda = 0 을 대입하면 0x=0U0 \cdot x = \mathbf{0} \in U 이기 때문입니다.


U={[x1x2]R2 | x2=2x1}U = \left\{ \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \in \mathbb{R}^2 \ \middle|\ x_2 = 2x_1 \right\}


원점을 지나는 직선은 R2\mathbb{R}^2 의 부분공간입니다. 반면 원점을 지나지 않는 직선(예: x2=2x1+1x_2 = 2x_1 + 1)은 0\mathbf{0} 을 포함하지 않으므로 부분공간이 아닙니다.

핵심: "원점을 지나는가?"가 부분공간을 가르는 첫 번째 관문입니다. 이 조건을 완화해 원점을 벗어난 평면·직선까지 다루는 것이 다음에 이어질 아핀 공간(Affine Space) 입니다.


선형 결합과 생성 (Linear Combination & Span)#

벡터 x1,,xkVx_1, \dots, x_k \in V 와 스칼라 λ1,,λkR\lambda_1, \dots, \lambda_k \in \mathbb{R} 에 대해, 다음 형태의 벡터를 선형 결합이라고 합니다.


v=λ1x1+λ2x2++λkxk=i=1kλixiv = \lambda_1 x_1 + \lambda_2 x_2 + \cdots + \lambda_k x_k = \sum_{i=1}^{k} \lambda_i x_i


어떤 벡터 집합 A={x1,,xk}A = \{x_1, \dots, x_k\} 로 만들 수 있는 모든 선형 결합의 집합을 그 집합의 생성(Span) 이라고 하며, span[A]\text{span}[A] 로 씁니다.


span[A]={i=1kλixi | λiR}\text{span}[A] = \left\{ \sum_{i=1}^{k} \lambda_i x_i \ \middle|\ \lambda_i \in \mathbb{R} \right\}


생성은 그 자체로 항상 VV부분공간이 됩니다. 예를 들어 R3\mathbb{R}^3 에서 서로 다른 두 벡터의 생성은 원점을 지나는 평면입니다.

실무에서는? "이 특성들의 조합으로 표현 가능한 데이터의 범위"가 바로 생성입니다.
생성이 원래 공간 전체를 덮지 못하면, 아무리 학습해도 표현할 수 없는 방향이 남는다는 뜻이 됩니다.


머신러닝에서의 벡터 공간#

지금까지의 추상적 정의가 실제 ML에서 어떻게 쓰이는지 정리하면 이렇습니다.

개념머신러닝에서의 등장
벡터 공간 Rn\mathbb{R}^n특성 공간(feature space) — 데이터 1개 = 벡터 1개
벡터 덧셈·스칼라 곱임베딩 벡터 연산 (예: king - man + woman ≈ queen)
부분공간PCA에서 데이터를 사영(projection)하는 저차원 공간
생성(Span)모델이 표현할 수 있는 출력의 범위

즉, 머신러닝 모델이 다루는 데이터와 파라미터는 전부 어떤 벡터 공간의 원소이고, 학습이란 이 공간 안에서 좋은 벡터(가중치)를 찾는 과정입니다.


핵심 정리#

개념설명
군(Group)닫힘성·결합법칙·항등원·역원을 만족하는 집합+연산
아벨 군교환법칙까지 만족하는 군
벡터 공간(V,+)(V,+) 가 아벨 군 + 스칼라 곱 공리 (총 8가지)
벡터벡터 공간의 원소 (화살표뿐 아니라 다항식·행렬·함수)
부분공간그 자체로 벡터 공간인 부분집합, 반드시 0\mathbf{0} 포함
선형 결합λixi\sum \lambda_i x_i 형태의 벡터
생성(Span)만들 수 있는 모든 선형 결합의 집합 (항상 부분공간)

퀴즈#

Q1. (N,+)(\mathbb{N}, +) (자연수와 덧셈)은 군일까요? 아니라면 어떤 공리가 깨지나요?

정답 보기

군이 아닙니다. 닫힘성·결합법칙·항등원(00, 자연수에 0을 포함하는 정의라면)은 만족하지만, 역원이 없습니다. 예를 들어 33 의 덧셈 역원은 3-3 인데 이는 자연수가 아니므로 역원 공리가 깨집니다.


Q2. R2\mathbb{R}^2 에서 집합 U={(x1,x2)x2=2x1+1}U = \{ (x_1, x_2) \mid x_2 = 2x_1 + 1 \} 은 부분공간일까요?

정답 보기

부분공간이 아닙니다. x1=0x_1 = 0 일 때 x2=1x_2 = 1 이므로 이 직선은 원점 (0,0)(0, 0) 을 지나지 않습니다. 영벡터를 포함하지 않으므로 부분공간이 될 수 없습니다. (원점을 지나는 직선 x2=2x1x_2 = 2x_1 이었다면 부분공간입니다.)


Q3. 벡터 x1=(1,0)x_1 = (1, 0), x2=(0,1)x_2 = (0, 1) 의 생성 span[{x1,x2}]\text{span}[\{x_1, x_2\}] 은 무엇인가요?

정답 보기

λ1(1,0)+λ2(0,1)=(λ1,λ2)\lambda_1 (1, 0) + \lambda_2 (0, 1) = (\lambda_1, \lambda_2)


λ1,λ2\lambda_1, \lambda_2 가 모든 실수를 취할 수 있으므로, 생성은 R2\mathbb{R}^2 전체입니다.


Q4. 차수 2\le 2 인 다항식의 집합이 벡터 공간일 때, 이 공간의 영벡터는 무엇인가요?

정답 보기

모든 계수가 00 인 다항식, 즉 상수함수 p(x)=0p(x) = 0 입니다. 어떤 다항식 q(x)q(x) 에 더해도 q(x)+0=q(x)q(x) + 0 = q(x) 이므로 덧셈 항등원 역할을 합니다.


다음 글에서는 벡터 공간을 이루는 벡터들이 서로 얼마나 겹치는지를 다룹니다. 선형 독립(Linear Independence), 기저(Basis), 차원(Dimension), 그리고 랭크(Rank) 로 이어질 예정입니다.