Search
Duplicate

선형대수/ 벡터 공간, 벡터, 행렬, 텐서의 정의

벡터의 개념은 수학과 물리학, 머신러닝에서 조금씩 다른데, 수학의 벡터가 더 일반화된 개념이므로 수학의 백터 개념으로 다른 것을 이해하는 것이 편리하다.
선형 대수에서 중심에 있는 개념은 벡터(vector)와 벡터 공간(vector space)이라고도 불리는 벡터 집합이고 이것에 대한 선형 변환(linear transformation) —행렬—, 다중 선형 변황(multi linear transformation) —텐서—을 다루는 것이 선형 대수라 할 수 있다.
벡터(와 행렬, 텐서)는 연립 방정식에 대한 표현으로도 생각할 수 있는데, 벡터에 대한 선형 변환은 결국 연립 방정식의 해를 구하는 것으로 생각할 수 있다.
x+y=1x + y = 1를 만족하는 해는 무수히 많고, xy=1x - y = 1을 만족하는 해도 무수히 많지만, 그 둘이 연립되었을 때 이것을 동시에 만족하는 해는 유일하다. 벡터는 이렇게 방정식이 연립 되었을 때 그 해를 구하기 위한 접근 방법이라고 볼 수 있다.
벡터의 연산 —투영(projection), 내적(inner proudct), 노름(norm) 등— 은 바로 이 연립 방정식을 풀기 위한 —혹은 근사(approximation)을 구하기 위한— 방법들인 것이다.
이 문서를 포함하여 이하 선형대수 페이지에서 스칼라는 소문자, 벡터는 소문자 굵은 글자, 행렬은 대문자 굵은 글자 표기를 따른다.

벡터 공간(vector space)

FF에서 벡터공간(vector space) 또는 선형공간(linear space) VV는 다음의 8가지 조건을 만족하는 두 연산, 합과 스칼라 곱을 가지는 집합이다.—순서적으로 벡터 공간이 먼저 정의되고, 벡터는 그 벡터 공간의 원소로 정의된다.
합(sum)은 VV의 두 원소 x,y\bold{x, y}에 대하여 유일한 원소 x+yV\bold{x + y} \in V를 대응하는 연산이다.
스칼라 곱(scalar multiplication)은 체 FF의 원소 aa와 벡터공간 VV의 원소 x\bold{x}마다 유일한 원소 axVa\bold{x} \in V를 대응하는 연산이다.
1.
모든 x,yV\bold{x, y} \in V에 대하여 x+y=y+x\bold{x + y = y + x}이다. (덧셈의 교환법칙)
2.
모든 x,y,zV\bold{x, y, z} \in V에 대하여 (x+y)+z=x+(y+z)\bold{(x + y) + z = x + (y + z)}이다. (덧셈의 결합법칙)
3.
모든 xV\bold{x} \in V에 대하여 x+0=x\bold{x + 0 = x}0V\bold{0} \in V이 존재한다.
4.
xV\bold{x} \in V마다 x+y=0\bold{x + y = 0}yV\bold{y} \in V가 존재한다.
5.
xV\bold{x} \in V에 대하여 1x=x1\bold{x} = \bold{x}이다.
6.
모든 a,bFa, b \in F와 모든 xV\bold{x} \in V에 대하여 (ab)x=a(bx)(ab)\bold{x} = a(b\bold{x})이다.
7.
모든 aFa \in F와 모든 x,yV\bold{x, y} \in V에 대하여 a(x+y)=ax+aya(\bold{x + y}) = a\bold{x} + a\bold{y}이다.
8.
모든 a,bFa, b \in F와 모든 xV\bold{x} \in V에 대하여 (a+b)x=ax+bx(a + b) \bold{x} = a\bold{x} + b\bold{x}이다.
이 연산을 보면 벡터의 합과 스칼라 곱에 대해서만 정의가 되는데, —벡터 간의 곱은 부분 공간에 존재함— 이것 때문에 행렬과 텐서도 결국 벡터 공간의 원소가 된다.
벡터공간은 정확하게 ‘FF-벡터공간 VV’라 표기해야 하지만, 혼란의 여지가 없으면 체 FF를 생략하고 ‘벡터공간 VV’라 적는다.
F=RF = \mathbb{R}이면 실수 벡터공간, F=CF = \mathbb{C}이면 복소수 벡터공간이 된다.
모든 벡터공간 VV에 대해 다음의 성립한다.
1.
모든 x\bold{x}에 대해 0x=00\bold{x} = \bold{0}
2.
모든 스칼라 aa와 모든 벡터 x\bold{x}에 대해 (a)x=(ax)=a(x)(-a)\bold{x} = -(a\bold{x}) = a(-\bold{x})
3.
모든 스칼라 aa에 대해 a0=0a\bold{0} = \bold{0}
사실 공간(space)는 기하학적인 관점이 들어간 개념이고, 그냥 벡터 집합(vector set)이라고 생각하는 것이 더 간편할 수 있다. 집합이라는 개념으로 생각하면 선형 변환(linear transformation)도 집합을 다른 집합으로 바꾸는 함수라고 더 간편하게 생각할 수 있다.

벡터(vector)

수학적으로 벡터는 벡터 공간의 한 원소이다. 이를 벡터 공간 상의 한 점(point)으로 보아도 무방하다.
이 개념을 받아들이면 행렬(matrix)는 벡터의 선형 변환이라는 개념을 보다 자연스럽게 받아들일 수 있다.
선형대수에서 다루는 행렬이나 고차원 텐서 연산은 결국 벡터를 다루는 연산으로 분해가능하다.
벡터에 대한 좀 더 간편한 정의는 스칼라의 배열이다.
벡터는 여러 표기로 작성할 수 있지만, 머신러닝에서는 스칼라의 배열(array 또는 list)로 표현되므로, 벡터의 항목을 세로로 나열하는 열벡터를 기본으로 사용하고, 행벡터를 쓸 때는 열벡터를 전치하여 사용한다.
x=[x1x2xn],x=[x1x2...xn]\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)이라고도 한다— 으로 정의된다.
이 정의를 이해하면 행렬의 고유값이나 고유벡터가 선형변환으로부터 유지되는 값들이라는 것을 자연스럽게 이해할 수 있다.
행렬에 대한 좀 더 간편한 정의는 행렬을 벡터의 배열 —열 벡터를 수평으로 쌓거나, 행 벡터를 수직으로 쌓은—로 보는 것이다
벡터 공간의 조건을 만족하기 때문에 행렬 또한 벡터 공간의 원소이다.
mm 행과 nn 열의 행렬 ARm×n\bold{A} \in \mathbb{R}^{m \times n}는 숫자들의 2차원이고 다음처럼 표기한다.
A=[a11a12a1na21a22a2nam1am2amn]\bold{A} = \left[ \begin{matrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \dots & a_{mn} \end{matrix} \right]
만일 행과 열의 수가 같은 경우 (m=nm = n인 경우) A\bold{A}를 정사각 행렬이라고 한다.
행렬의 행과 열을 뒤집은 것을 전치(transpose)라고 하며 행렬 ARm×n\bold{A} \in \mathbb{R}^{m \times n}를 전치하면 ARn×m\bold{A}^\top \in \mathbb{R}^{n \times m}로 표기한다.
만일 정사각 행렬이 A=A\bold{A} = \bold{A}^\top를 만족하는 경우 대칭(symmetric) 행렬이라고 한다.

텐서(Tensor)

행렬이 벡터 공간의 기저에 대한 선형 변환으로 정의되는 것처럼 텐서도 다중 선형 변환(multi-linear transformation) —다중 선형 사상(multi-linear map)이라고도 한다— 으로 정의할 수 있다.
텐서에 대한 보다 간편한 정의는 데이터 구조를 일반화한 것으로 보는 것이다.
벡터를 스칼라를 1차원으로 나열한 것이라고 생각 할 수 있고, 행렬은 스칼라를 2차원 —혹은 벡터를 1차원으로— 나열한 것이라 생각할 수 있는데, 그러면 자연스럽게 3차원이나 그 이상으로 나열한 것도 생각해 볼 수 있는데, 바로 이러한 데이터의 배열 구조를 일반화한 것이 텐서가 된다.
이러한 정의에 따르면 0차 텐서는 스칼라, 1차 텐서는 벡터, 2차 텐서는 행렬이 되며, 3차 이상의 텐서도 확장할 수 있다.

참조