•
벡터의 개념은 수학과 물리학, 머신러닝에서 조금씩 다른데, 수학의 벡터가 더 일반화된 개념이므로 수학의 백터 개념으로 다른 것을 이해하는 것이 편리하다.
•
선형 대수에서 중심에 있는 개념은 벡터(vector)와 벡터 공간(vector space)이라고도 불리는 벡터 집합이고 이것에 대한 선형 변환(linear transformation) —행렬—, 다중 선형 변황(multi linear transformation) —텐서—을 다루는 것이 선형 대수라 할 수 있다.
•
벡터(와 행렬, 텐서)는 연립 방정식에 대한 표현으로도 생각할 수 있는데, 벡터에 대한 선형 변환은 결국 연립 방정식의 해를 구하는 것으로 생각할 수 있다.
◦
를 만족하는 해는 무수히 많고, 을 만족하는 해도 무수히 많지만, 그 둘이 연립되었을 때 이것을 동시에 만족하는 해는 유일하다. 벡터는 이렇게 방정식이 연립 되었을 때 그 해를 구하기 위한 접근 방법이라고 볼 수 있다.
◦
벡터의 연산 —투영(projection), 내적(inner proudct), 노름(norm) 등— 은 바로 이 연립 방정식을 풀기 위한 —혹은 근사(approximation)을 구하기 위한— 방법들인 것이다.
•
이 문서를 포함하여 이하 선형대수 페이지에서 스칼라는 소문자, 벡터는 소문자 굵은 글자, 행렬은 대문자 굵은 글자 표기를 따른다.
벡터 공간(vector space)
•
체 에서 벡터공간(vector space) 또는 선형공간(linear space) 는 다음의 8가지 조건을 만족하는 두 연산, 합과 스칼라 곱을 가지는 집합이다.—순서적으로 벡터 공간이 먼저 정의되고, 벡터는 그 벡터 공간의 원소로 정의된다.
◦
합(sum)은 의 두 원소 에 대하여 유일한 원소 를 대응하는 연산이다.
◦
스칼라 곱(scalar multiplication)은 체 의 원소 와 벡터공간 의 원소 마다 유일한 원소 를 대응하는 연산이다.
1.
모든 에 대하여 이다. (덧셈의 교환법칙)
2.
모든 에 대하여 이다. (덧셈의 결합법칙)
3.
모든 에 대하여 인 이 존재한다.
4.
각 마다 인 가 존재한다.
5.
각 에 대하여 이다.
6.
모든 와 모든 에 대하여 이다.
7.
모든 와 모든 에 대하여 이다.
8.
모든 와 모든 에 대하여 이다.
•
이 연산을 보면 벡터의 합과 스칼라 곱에 대해서만 정의가 되는데, —벡터 간의 곱은 부분 공간에 존재함— 이것 때문에 행렬과 텐서도 결국 벡터 공간의 원소가 된다.
•
벡터공간은 정확하게 ‘-벡터공간 ’라 표기해야 하지만, 혼란의 여지가 없으면 체 를 생략하고 ‘벡터공간 ’라 적는다.
◦
이면 실수 벡터공간, 이면 복소수 벡터공간이 된다.
•
모든 벡터공간 에 대해 다음의 성립한다.
1.
모든 에 대해
2.
모든 스칼라 와 모든 벡터 에 대해
3.
모든 스칼라 에 대해
•
사실 공간(space)는 기하학적인 관점이 들어간 개념이고, 그냥 벡터 집합(vector set)이라고 생각하는 것이 더 간편할 수 있다. 집합이라는 개념으로 생각하면 선형 변환(linear transformation)도 집합을 다른 집합으로 바꾸는 함수라고 더 간편하게 생각할 수 있다.
벡터(vector)
•
수학적으로 벡터는 벡터 공간의 한 원소이다. 이를 벡터 공간 상의 한 점(point)으로 보아도 무방하다.
◦
이 개념을 받아들이면 행렬(matrix)는 벡터의 선형 변환이라는 개념을 보다 자연스럽게 받아들일 수 있다.
◦
선형대수에서 다루는 행렬이나 고차원 텐서 연산은 결국 벡터를 다루는 연산으로 분해가능하다.
•
벡터에 대한 좀 더 간편한 정의는 스칼라의 배열이다.
•
벡터는 여러 표기로 작성할 수 있지만, 머신러닝에서는 스칼라의 배열(array 또는 list)로 표현되므로, 벡터의 항목을 세로로 나열하는 열벡터를 기본으로 사용하고, 행벡터를 쓸 때는 열벡터를 전치하여 사용한다.
행렬(Matrix)
•
수학적으로 행렬은 벡터 공간의 기저에 대한 선형 변환(linear transformation) —선형 사상(linear map)이라고도 한다— 으로 정의된다.
◦
이 정의를 이해하면 행렬의 고유값이나 고유벡터가 선형변환으로부터 유지되는 값들이라는 것을 자연스럽게 이해할 수 있다.
•
행렬에 대한 좀 더 간편한 정의는 행렬을 벡터의 배열 —열 벡터를 수평으로 쌓거나, 행 벡터를 수직으로 쌓은—로 보는 것이다
•
벡터 공간의 조건을 만족하기 때문에 행렬 또한 벡터 공간의 원소이다.
•
행과 열의 행렬 는 숫자들의 2차원이고 다음처럼 표기한다.
•
만일 행과 열의 수가 같은 경우 (인 경우) 를 정사각 행렬이라고 한다.
•
행렬의 행과 열을 뒤집은 것을 전치(transpose)라고 하며 행렬 를 전치하면 로 표기한다.
•
만일 정사각 행렬이 를 만족하는 경우 대칭(symmetric) 행렬이라고 한다.
텐서(Tensor)
•
행렬이 벡터 공간의 기저에 대한 선형 변환으로 정의되는 것처럼 텐서도 다중 선형 변환(multi-linear transformation) —다중 선형 사상(multi-linear map)이라고도 한다— 으로 정의할 수 있다.
•
텐서에 대한 보다 간편한 정의는 데이터 구조를 일반화한 것으로 보는 것이다.
◦
벡터를 스칼라를 1차원으로 나열한 것이라고 생각 할 수 있고, 행렬은 스칼라를 2차원 —혹은 벡터를 1차원으로— 나열한 것이라 생각할 수 있는데, 그러면 자연스럽게 3차원이나 그 이상으로 나열한 것도 생각해 볼 수 있는데, 바로 이러한 데이터의 배열 구조를 일반화한 것이 텐서가 된다.
◦
이러한 정의에 따르면 0차 텐서는 스칼라, 1차 텐서는 벡터, 2차 텐서는 행렬이 되며, 3차 이상의 텐서도 확장할 수 있다.
참조
•