단위 벡터(Unit Vactors) = 단위 길이 (1)를 갖는 모든 벡터
= v
|||| = 1
벡터의 길이를 놂값으로 나눈 것이 단위벡터.
단위 벡터는 다양하지만 특히 단위 벡터의 element 중 하나만 1이고 나머지가 0인 것들을 차원의 단위벡터라고도 한다.
단위벡터
이 있다면
|||| = = 3
= [1, 2,2]= [, ,]
|||| = 1
차원의 단위벡터
아래는 1차원(), 2차원(), 3차원()의 단위 벡터이다.
= v =
unit vector:
unit vectors: ,
unit vectors: , ,
🔆 모든 벡터 혹은 매트릭스는 단위 벡터의 선형 조합(단위벡터에 스칼라를 곱한 조합)으로 표기된다.
예) v = [5, 3]
= [1, 0] * 5 + [0, 1] * 3
=* 5 +* 3
벡터 공간 V의 basis는 V라는 공간을 채울 수 있는, 선형 관계에 있지 않은 벡터들의 모음이다. 즉, 서로 독립인 벡터들을 의미한다.
기저벡터의 특이한 종류
Span: 주어진 두 벡터의 조합(합, 차...)으로 만들 수 있는 모든 가능한 벡터의 집합
주어진 벡터들의 선형조합을 통해 만들 수 있는 공간의 모음
❓ 주어진 벡터들을 통해 만들 수 있는 차원의 최고차원과 값이 같은 것?
❓ 어떠한 매트릭스에서 각 벡터가 선형결합하여 만들 수 있는 공간의 차원?
span = 주어진 벡터들을 통해 만들어 낼 수 있는 공간.
basis = 주어진 공간을 통해 만들어낼 수 있는 벡터들의 조합.
Rank: 매트릭스의 rank란 매트릭스의 열을 이루고 있는 벡터들로 만들 수 있는 공간(span)의 차원
span: 하나 이상의 벡터들로 만들 수 있는 공간의 집합(n차원의 공간)
rank: span의 차원의 수(n차원의 공간에서의 n)
벡터의 기저의 정의를 봐도, 서로 독립인 벡터들이 기저가 되고, 이것에 의해서 벡터 공간이 정의된다. (중략)
행렬의 랭크는 행렬이 나타낼 수 있는 벡터 공간에서 기저의 개수를 의미하고, 이 기저는 서로 독립인 행 또는 열의 벡터의 개수에 의해서 결정된다. 열과 행의 랭크는 서로 같은 값을 가지므로, 행렬의 랭크를 구할 때에는 한쪽의 랭크만 계산하면 되고, 서로 선형 독립인 벡터가 몇 개가 되는지만 확인하면 된다.
출처
가우시안 소거법이란 주어진 매트릭스를 "Row-Echelon form"으로 바꾸는 계산과정이다. "Row-Echelon form"은 각 행에 대해서 왼쪽에 1, 그 이후 부분은 0으로 이뤄진 형태를 의미한다.
연립방정식을 푸는 과정을 생각해보자. 여러 미지수로 이루어진 방정식을 풀 때 구하고자 하는 미지수 외의 미지수에 대한 스칼라값을 맞춰서 소거한 뒤 구하고자 하는 미지수를 구하곤 했다.
이것을 한 행렬에 대해 한다고 생각해보자. 한 행에 대해 실수배를 한 뒤 다른 행에서 그것을 빼서 없앨 수 있다.
가우시안 소거법으로 한 행이 [0, 0, 0]이 된다면 3개의 행이 선형 관계가 있다는 의미이다. 즉, 다른 행들의 스칼라 곱과 합으로 표현된다는 의미이다.
[1,2], [2,4],[3,1] 벡터가 세 개가 주어졌지만 랭크를 계산하면 2가 나올 것이다. 왜냐하면 [1,2]와 [2,4]는 선형관계가 있기 때문이다.
이는 두 데이터가 갖고 있는 의미가 같고 측정하는 단위 혹은 스케일만 다르다는 뜻이므로 데이터의 퀄리티가 좋지 않다는 뜻이다.
3x3매트릭스이지만 하나는 나머지 두 개의 조합으로 나타낼 수 있기 때문에 랭크가 2가 된다. = 하나는 의미가 없는 데이터이다.
데이터를 모아서 분석을 하려고 했을 때 데이터의 feature 하나가 의미가 없다면 분석 방법을 수정하거나 데이터를 재수집하는 등의 프로세스를 거쳐야한다.
두 벡터가 같은 선상에 있는 경우, 이 벡터들은 선형 관계에 있다고 한다.
즉, 이 두 벡터들의 조합을 통해서는 자신들이 갖고 있는 선형 관계 외의, 외부의 새로운 벡터를 생성할 수 없다.
같은 선상에 있지 않은 벡터들은 선형적으로 독립되어 있다고 표현한다.
선형 독립이란, 임의의 다른 Scala값(C값)을 각 벡터 V1~Vn앞에 곱해준 값들의 벡터들을 모두 더했을 때 0이 되는 것이다. Scala를 곱해준 값들의 벡터를 모두 더했을 때 0이 되기 위해서는 반드시 Scala값들이 모두 0이어야 한다. 이 때 우리는 벡터들이 서로 '선형 독립'이라고 하게 된다.
가우스 소거법을 이용하고 난 후 만약 모든 행렬의 모든 행까지 Upper Triangle형태로 나오게 된다면 모든 Column Vector들이 서로 선형독립이다.
선형독립의 개념과 행렬의 rank도 연결되어 있다.
Linear Combination을 이루는 벡터들이 서로 수직관계라면 선형결합에 붙는 Scala값을 쉽게 구할 수 있고 이는 결국 Rectangular 연립방정식의 최종적인 해집합을 구할 수 있다.
선형 독립이란, 임의의 다른 Scala값(C값)을 각 벡터 V1~Vn앞에 곱해준 값들의 벡터들을 모두 더했을 때 0이 되는 것이다. 이 때 0값이 되기 위해서는 반드시 Scala값들이 모두 0이어야 한다. 이 때 우리는 벡터들이 서로 '선형 독립'이라고 하게 된다.
선형결합이 unique한지 판단할 때 기저벡터로 확인할 수 있다.
기저벡터란, 특정한 Vector Space를 Span(구성)해주는 선형 결합 벡터들의 최소 개수이다. 기저벡터는 특정 벡터공간을 만들 때 벡터들의 선형 결합이 Unique하다고 할 수 있고 보편적인 벡터 공간을 구성할 때에는 unique하지 않다.
여기에서는 2차원 공간에서의 linear projection을 전제하고 정리하였다.
=
위에 벡터를 투영시킨다.
주어진 벡터 (W)를 그림자로 내리는 방식처럼 다른 임의의 벡터 (V)에 투영시킨다.(c는 상수(스칼라)같다.)
임의의 벡터 𝑣 가 선(1차원) 위에 있는 경우, 𝑣 는 아무리 스케일을 변화시켜도 결국 선 위에 있다.
직교성이 투영을 할 때 쓰인다. 직교성은 error(e, 위의 그림에서는 y)가 되고 이는 내가 얼마나 틀렸는지를 나타내준다. 여기에서 y는 W'에 수직으로 perpendicular한 것이된다. y는 W가 W'상에서 수직으로 만나는 best point와의 차이가 된다. (y = W - W')
best point는 V의 상수배 즉, c를 곱한 값과 같다.( W' = c * V)
best point는 V의 x배수가 될 것이다. 그래서 내가 구하고자 하는 것은 그 x배수를 찾는 것이 된다. 그리고 y는 v에 대해서 수직이다. 이를 활용해서 선형투영을 하는 것이다.
선형투영 참고자료 1
선형투영 참고자료 2 : 이건 다시보기.
2차원에 있는 초록색 벡터를 표시하기 위해서는 x와 y라는 두 개의 feature가 필요하다고 하다. 이 때, 초록색 벡터를 x축에 투영한다면 초록색 벡터가 가지고 있는 의미를 표현하기 위해서 x만큼의 feature만 쓰면 된다. y가 가지고 있던 데이터가 사라지는 대신 feature가 한 개 줄어들기 때문에 메모리나 알고리즘의 cost가 낮아진다.
궁극적으로는 데이터 분석을 하기 위해 몇 백개의 feature를 사용할 때 의미가 없거나 크거나 작은 것들을 구분해서 없거나 작은 것은 제거하면서 원래 데이터가 제공하고자 하는 인사이트는 충분히 살릴 수 있는 차원 축소의 근본이 되는 기술이라고 할 수 있다.
빅데이터가 여러 개 있다면 이를 활용하기 위한 물리적 메모리, 딥러닝을 적용하기 위한 컴퓨터 파워 등이 절약이 된다는 장점이 있고 데이터 loss가 있음에도 불구하고 충분히 유의미한 결론을 도출할 수 있다는 데에 의의가 있다.