글을 시작하기에 앞서 해당 글은 Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong의 저서인 mathematics for machine learning을 바탕으로 요약 및 정리한 글임을 알려드립니다.
벡터 공간 (Vector Spaces)
이전 글에서도 봤듯이, 선형 방정식은 매트릭스-벡터 형태로도 표현될 수 있다. 이번 글에서는 벡터들이 존재하는 벡터 공간에 대해서 알아볼 것이다.
시작하기에 앞서 벡터의 특징을 간단하게 정리해보자. 벡터는 서로 더할 수 있으며, 스칼라를 곱할 수 있다. 또한 사칙연산 이후 결과도 벡터로 도출된다. 이런 벡터들의 연산이 가능한 공간을 벡터 공간이라고 한다. 기본 지식은 이 정도면 충분하다. 지금부터는 요소들(elements)의 집합인 군(group)의 개념과 요소들의 구조를 저장하는 작업에 대해서 살펴볼 것이다.
군 (Groups)
군(group)은 컴퓨터 과학에서 중요한 역할을 한다. 집합 작업에 대한 프레임 워크를 제공할 뿐만 아니라 암호기법, 코딩 이론, 그래픽에서도 많이 사용된다.
집합 $\mathcal G$와 연산자 $\otimes$를 사용하여 생각해보자. $\mathcal G \times \mathcal G \rightarrow \mathcal G$의 수식은 $\mathcal G$로 정의된다. 이와 같이 아래의 조건들을 모두 만족한다면 $G := (\mathcal G, \otimes)$를 군(group)이라고 정의한다.
집합 $\mathcal G$는 연산자 $\otimes$에 닫혀 있다.
: $\forall x, y \in \mathcal G : x \otimes y \in \mathcal G$결합 법칙 : $\forall x,y,z \in \mathcal G: (x\otimes y)\otimes z = x\otimes (y\otimes z)$
항등원(neutral element): $\forall x \in \mathcal G \exists e \in \mathcal G: x \otimes e = x \ and \ e \otimes x = x$
역원(inverse element): $\forall x \in \mathcal G \exists y \in \mathcal G: x \otimes y = e \ and \ y \otimes x = e$
Note
역원은 연산자 곱($\otimes$)에 대해서만 정의되었기에 $\frac{1}{x}$가 필요하지는 않다. 또한 만약 ‘교환 법칙(commutative)’인 $\forall x,y \in \mathcal G : x \otimes y = y \otimes x$를 추가적으로 포함한다면, $G := (\mathcal G, \otimes)$은 ‘아벨군(isanAbelian group)’이라고 한다.
지금까지 군의 정의에 대해서 살펴보았다. 이제 아래의 예시들이 그룹인지 아닌지 구분해보자.
$\mathbb{Z}$ : 정수, $\mathbb{N}$ : 자연수, $\mathbb{R}$ : 실수
$(\mathbb{Z}, +)$는 그룹이다. $\rightarrow$ 모든 정수의 합은 정수이다.
$(\mathbb{N}_0, +)$은 그룹이 아니다. $\rightarrow$ 항등원 0은 포함하지만 역원이 포함되지 않았다.
$(\mathbb{Z},\cdot)$은 그룹이 아니다. $\rightarrow$ 항등원 1은 포함하지만 결과값 1을 반환하는 역원이 포함되지 않았다.
$(\mathbb{R},\cdot)$은 그룹이 아니다. $\rightarrow$ 실수 중 하나인 0은 역원을 포함하지 않는다.
$(\mathbb{R}$ \ {0}, $\cdot)$은 아벨군이다. $\rightarrow$ 0을 제외한 실수는 아벨군의 모든 요건을 충족한다.
$(\mathbb{R}^n, +),(\mathbb{Z}^n, +),n \in \mathbb{N}$은 $+$가 성분별로 정의된 경우에 아벨군이다.
$(\mathbb{R}^{m \times n},+)$, $m \times n$ 행렬은 성분별로 더했을 때 아벨군이다.
$(\mathbb{R}^{n\times n}, \cdot)$인 경우를 예시를 통해 확인하자.
$n \times n$ 행렬의 곱은 다음 식으로 정의된다.위 식에 따르면, $n \times n$ 행렬의 곱은 $n \times n$ 행렬의 형태이기에 곱셈에 닫혀 있고 결합 법칙도 성립한다. 또한 항등 행렬인 $I_n$ 또한 곱셈 결과가 $n \times n$ 행렬을 만족하기에 성립한다. 마지막으로 해당 행렬이 가역행렬이라서 역행렬이 존재한다면, 그 역행렬 또한 $n \times n$ 행렬형태이다. 위 조건을 모두 만족하기에 $(\mathbb{R}^{n\times n}, \cdot)$는 군이라고 할 수 있으며, 이를 ‘일반선형군(general linear group)’이라고 부른다.
일반선형군(general linear group)은 가역행렬 A가 $\mathbb{R}^{n \times n}$에 포함될 때, 행렬곱셈에 대한 군을 의미하며, 기호는 $GL(n,\mathbb{R})$을 사용한다. 행렬곱은 교환법칙이 성립하지 않기 때문에 일반선형군은 아벨군이 아니라는 점을 기억하자.
벡터 공간 (Vector spaces)
이전까지는 집합 $\mathcal G$와 $\mathcal G$ 요소끼리의 내부 연산에 대해서 알아보았다. 지금부터는 집합 ‘내부 연산자(inner operation)’와 집합끼리의 ‘외부 연산자(outer operation)’ 모두 살펴볼 것이다.
먼저 벡터 $x \in \mathcal G$가 내부 연산자로 $+$이 사용하고, 외부 연산자로 $\cdot$을 사용하여 $\lambda \in \mathbb{R}$과 곱한다고 가정하자. 이때 우리는 내부 연산을 덧셈의 형태로, 또 외부 연산을 스케일링(스칼라 곱)으로 생각할 수 있다. 각 연산들은 서로의 결과에 어떠한 영향도 주지않는다는 점을 기억하자.
실제 값의 벡터 공간 $V = (V,+,\cdot)$은 집합 $V$와 두 연산자를 의미한다.
- $(V,+)$은 아벨군이다. (교환 법칙 성립)
- 분배 법칙:
$\forall \lambda \in \mathbb{R}, x,y \in V: \lambda\cdot(x+y) = \lambda\cdot x + \lambda\cdot y$
$\forall\lambda,\psi \in \mathbb{R}, x \in V (\lambda + \psi)\cdot x = \lambda\cdot x + \psi\cdot x$ - 결합 법칙 (외부 연산자): $\forall\lambda \in \mathbb{R}, x \in V: \lambda\cdot(\psi\cdot x) = (\lambda\psi)\cdot x$
- 외부연산자에 대해서는 항등원이 존재한다: $\forall x \in V: 1 \cdot x = x$
집합 $V$에 속하는 요소인 $x$는 벡터이다. 따라서 $(V,+)$의 항등원 또한 영벡터 $[0,\dots,0^T ]$이다.