- 벡터의 개념은 수학과 물리학, 머신러닝에서 조금씩 다른데, 수학의 벡터가 더 일반화된 개념이므로 수학의 백터 개념으로 다른 것을 이해하는 것이 편리하다.
- 선형 대수에서 중심에 있는 개념은 벡터(vector)와 벡터 공간(vector space)이라고도 불리는 벡터 집합이고 이것에 대한 선형 변환(linear transformation) —행렬—, 다중 선형 변황(multi linear transformation) —텐서—을 다루는 것이 선형 대수라 할 수 있다.
- 벡터(와 행렬, 텐서)는 연립 방정식에 대한 표현으로도 생각할 수 있는데, 벡터에 대한 선형 변환은 결국 연립 방정식의 해를 구하는 것으로 생각할 수 있다.
- $x + y = 1$를 만족하는 해는 무수히 많고, $x - y = 1$을 만족하는 해도 무수히 많지만, 그 둘이 연립되었을 때 이것을 동시에 만족하는 해는 유일하다. 벡터는 이렇게 방정식이 연립 되었을 때 그 해를 구하기 위한 접근 방법이라고 볼 수 있다.
- 벡터의 연산 —투영(projection), 내적(inner proudct), 노름(norm) 등— 은 바로 이 연립 방정식을 풀기 위한 —혹은 근사(approximation)을 구하기 위한— 방법들인 것이다.
- 이 문서를 포함하여 이하 선형대수 페이지에서 스칼라는 소문자, 벡터는 소문자 굵은 글자, 행렬은 대문자 굵은 글자 표기를 따른다.
벡터 공간(vector space)
- 체 $F$에서 벡터공간(vector space) 또는 선형공간(linear space) $V$는 다음의 8가지 조건을 만족하는 두 연산, 합과 스칼라 곱을 가지는 집합이다.—순서적으로 벡터 공간이 먼저 정의되고, 벡터는 그 벡터 공간의 원소로 정의된다.
- 합(sum)은 $V$의 두 원소 $\bold{x, y}$에 대하여 유일한 원소 $\bold{x + y} \in V$를 대응하는 연산이다.
- 스칼라 곱(scalar multiplication)은 체 $F$의 원소 $a$와 벡터공간 $V$의 원소 $\bold{x}$마다 유일한 원소 $a\bold{x} \in V$를 대응하는 연산이다.
- 모든 $\bold{x, y} \in V$에 대하여 $\bold{x + y = y + x}$이다. (덧셈의 교환법칙)
- 모든 $\bold{x, y, z} \in V$에 대하여 $\bold{(x + y) + z = x + (y + z)}$이다. (덧셈의 결합법칙)
- 모든 $\bold{x} \in V$에 대하여 $\bold{x + 0 = x}$인 $\bold{0} \in V$이 존재한다.
- 각 $\bold{x} \in V$마다 $\bold{x + y = 0}$인 $\bold{y} \in V$가 존재한다.
- 각 $\bold{x} \in V$에 대하여 $1\bold{x} = \bold{x}$이다.
- 모든 $a, b \in F$와 모든 $\bold{x} \in V$에 대하여 $(ab)\bold{x} = a(b\bold{x})$이다.
- 모든 $a \in F$와 모든 $\bold{x, y} \in V$에 대하여 $a(\bold{x + y}) = a\bold{x} + a\bold{y}$이다.
- 모든 $a, b \in F$와 모든 $\bold{x} \in V$에 대하여 $(a + b) \bold{x} = a\bold{x} + b\bold{x}$이다.
- 이 연산을 보면 벡터의 합과 스칼라 곱에 대해서만 정의가 되는데, —벡터 간의 곱은 부분 공간에 존재함— 이것 때문에 행렬과 텐서도 결국 벡터 공간의 원소가 된다.
- 벡터공간은 정확하게 ‘$F$-벡터공간 $V$’라 표기해야 하지만, 혼란의 여지가 없으면 체 $F$를 생략하고 ‘벡터공간 $V$’라 적는다.
- $F = \mathbb{R}$이면 실수 벡터공간, $F = \mathbb{C}$이면 복소수 벡터공간이 된다.
- 모든 벡터공간 $V$에 대해 다음의 성립한다.
- 모든 $\bold{x}$에 대해 $0\bold{x} = \bold{0}$
- 모든 스칼라 $a$와 모든 벡터 $\bold{x}$에 대해 $(-a)\bold{x} = -(a\bold{x}) = a(-\bold{x})$
- 모든 스칼라 $a$에 대해 $a\bold{0} = \bold{0}$
- 사실 공간(space)는 기하학적인 관점이 들어간 개념이고, 그냥 벡터 집합(vector set)이라고 생각하는 것이 더 간편할 수 있다. 집합이라는 개념으로 생각하면 선형 변환(linear transformation)도 집합을 다른 집합으로 바꾸는 함수라고 더 간편하게 생각할 수 있다.
벡터(vector)
- 수학적으로 벡터는 벡터 공간의 한 원소이다. 이를 벡터 공간 상의 한 점(point)으로 보아도 무방하다.
- 이 개념을 받아들이면 행렬(matrix)는 벡터의 선형 변환이라는 개념을 보다 자연스럽게 받아들일 수 있다.
- 선형대수에서 다루는 행렬이나 고차원 텐서 연산은 결국 벡터를 다루는 연산으로 분해가능하다.
- 벡터에 대한 좀 더 간편한 정의는 스칼라의 배열이다.
- 벡터는 여러 표기로 작성할 수 있지만, 머신러닝에서는 스칼라의 배열(array 또는 list)로 표현되므로, 벡터의 항목을 세로로 나열하는 열벡터를 기본으로 사용하고, 행벡터를 쓸 때는 열벡터를 전치하여 사용한다.
$$
\bold{x} = \left[ \begin{matrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{matrix} \right], \bold{x}^\top = \left[ \begin{matrix} x_1 & x_2 & ... & x_n \end{matrix} \right]
$$
행렬(Matrix)
- 수학적으로 행렬은 벡터 공간의 기저에 대한 선형 변환(linear transformation) —선형 사상(linear map)이라고도 한다— 으로 정의된다.
- 이 정의를 이해하면 행렬의 고유값이나 고유벡터가 선형변환으로부터 유지되는 값들이라는 것을 자연스럽게 이해할 수 있다.
- 행렬에 대한 좀 더 간편한 정의는 행렬을 벡터의 배열 —열 벡터를 수평으로 쌓거나, 행 벡터를 수직으로 쌓은—로 보는 것이다
- 벡터 공간의 조건을 만족하기 때문에 행렬 또한 벡터 공간의 원소이다.