단위벡터, 기저벡터, span, rank, linear projections

yuns_u·2021년 7월 25일
0

⭐️ 단위 벡터 (Unit Vactors)

단위 벡터(Unit Vactors) = 단위 길이 (1)를 갖는 모든 벡터
v^\hat{v} = v/v/||v||
||v^\hat{v}|| = 1

벡터의 길이를 놂값으로 나눈 것이 단위벡터.

단위 벡터는 다양하지만 특히 단위 벡터의 element 중 하나만 1이고 나머지가 0인 것들을 차원의 단위벡터라고도 한다.

  • 단위벡터
    v=[1,2,2]v = [1, 2,2]이 있다면
    ||vv|| = 12+22+22\sqrt{1^2+2^2+2^2} = 3
    v/vv/||v||= 131 \over 3\cdot[1, 2,2]= [131 \over 3, 232 \over 3,232 \over 3]
    ||v^\hat{v}|| = 1

  • 차원의 단위벡터
    아래는 1차원(R\mathbb{R}), 2차원(R2\mathbb{R}^2), 3차원(R3\mathbb{R}^3)의 단위 벡터이다.
    v^\hat{v} = v/v/||v|| = 1/31/3

R\mathbb{R} unit vector: i^=[1]\hat{i} = \begin{bmatrix} 1 \end{bmatrix}

R2\mathbb{R}^2 unit vectors: i^=[10]\hat{i} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, j^=[01]\hat{j} = \begin{bmatrix} 0 \\ 1 \end{bmatrix}

R3\mathbb{R}^3 unit vectors: i^=[100]\hat{i} = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}, j^=[010]\hat{j} = \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}, k^=[001]\hat{k} = \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}

🔆 모든 벡터 혹은 매트릭스는 단위 벡터의 선형 조합(단위벡터에 스칼라를 곱한 조합)으로 표기된다.
예) v = [5, 3]
= [1, 0] * 5 + [0, 1] * 3
=i^\hat{i}* 5 +j^\hat{j}* 3

⭐️ 기저 벡터 (Basis Vactors)

벡터 공간 V의 basis는 V라는 공간을 채울 수 있는, 선형 관계에 있지 않은 벡터들의 모음이다. 즉, 서로 독립인 벡터들을 의미한다.

  • span의 역개념
  • 차원 안에 나타날 수 있는 모든 벡터들의 집합
  • 좌표의 축 역할을 해주는 벡터들을 모아놓은 집합(단위벡터보다 큰 의미)
    : 임의로 새로운 축을 만들었을 때, 기저 벡터를 설정할 수 있다.

기저벡터의 특이한 종류

  • Orthogonal Basis: 주어진 공간을 체울 수 있는 서로 수직인 벡터들.
  • Orthonormal Basis: Normalized된 Orthogonal Basis. 길이가 서로 1이면서 서로 수직인 벡터들.
    (주어진 벡터들을 Orthonormal하게 수정하는 과정을 Gram-Schmidt 프로세스라고 한다.)

⭐️ Span (생성공간)

Span: 주어진 두 벡터의 조합(합, 차...)으로 만들 수 있는 모든 가능한 벡터의 집합
주어진 벡터들의 선형조합을 통해 만들 수 있는 공간의 모음

❓ 주어진 벡터들을 통해 만들 수 있는 차원의 최고차원과 값이 같은 것?
❓ 어떠한 매트릭스에서 각 벡터가 선형결합하여 만들 수 있는 공간의 차원?

❗️Basis vs Span

span = 주어진 벡터들을 통해 만들어 낼 수 있는 공간.
basis = 주어진 공간을 통해 만들어낼 수 있는 벡터들의 조합.

⭐️ Rank (계수)

Rank: 매트릭스의 rank란 매트릭스의 열을 이루고 있는 벡터들로 만들 수 있는 공간(span)의 차원

  • span의 차원
  • 매트릭스의 백터들 가운데 서로 선형 관계가 있을 수 있기 때문에 매트릭스의 차원과는 다를 수 있다.

❗️Span vs Rank

span: 하나 이상의 벡터들로 만들 수 있는 공간의 집합(n차원의 공간)
rank: span의 차원의 수(n차원의 공간에서의 n)

  • rank는 행렬의 연산으로 나온 수치이다. rank를 통해서 가역행렬인지 판단할 수 있고, 연립방정식 형태일 때 해가 몇 개가 있는지 판단할 수 있는 등 하나의 수단으로 사용되는 수치라고 할 수 있다.
  • rank의 여러 성질 중 하나가 어떤 행렬의 rank의 값은 그 행렬의 span의 같은 것이다.
  • 결과적으론 rank 값과 span 값은 같지만, span은 어떠한 매트릭스에서 각 벡터가 선형결합하여 만들수 있는 공간의 차원을 나타내게 되고, rank는 행렬의 특정한 연산 중 하나라는 점에서 차이점이 있다.

벡터의 기저의 정의를 봐도, 서로 독립인 벡터들이 기저가 되고, 이것에 의해서 벡터 공간이 정의된다. (중략)
행렬의 랭크는 행렬이 나타낼 수 있는 벡터 공간에서 기저의 개수를 의미하고, 이 기저는 서로 독립인 행 또는 열의 벡터의 개수에 의해서 결정된다. 열과 행의 랭크는 서로 같은 값을 가지므로, 행렬의 랭크를 구할 때에는 한쪽의 랭크만 계산하면 되고, 서로 선형 독립인 벡터가 몇 개가 되는지만 확인하면 된다.
출처

Gaussian Elimination(가우시안 소거법)

가우시안 소거법이란 주어진 매트릭스를 "Row-Echelon form"으로 바꾸는 계산과정이다. "Row-Echelon form"은 각 행에 대해서 왼쪽에 1, 그 이후 부분은 0으로 이뤄진 형태를 의미한다.

연립방정식을 푸는 과정을 생각해보자. 여러 미지수로 이루어진 방정식을 풀 때 구하고자 하는 미지수 외의 미지수에 대한 스칼라값을 맞춰서 소거한 뒤 구하고자 하는 미지수를 구하곤 했다.

이것을 한 행렬에 대해 한다고 생각해보자. 한 행에 대해 실수배를 한 뒤 다른 행에서 그것을 빼서 없앨 수 있다.

가우시안 소거법으로 한 행이 [0, 0, 0]이 된다면 3개의 행이 선형 관계가 있다는 의미이다. 즉, 다른 행들의 스칼라 곱과 합으로 표현된다는 의미이다.

💎 data science에서 갖는 의미를 생각해보기.

[1,2], [2,4],[3,1] 벡터가 세 개가 주어졌지만 랭크를 계산하면 2가 나올 것이다. 왜냐하면 [1,2]와 [2,4]는 선형관계가 있기 때문이다.

이는 두 데이터가 갖고 있는 의미가 같고 측정하는 단위 혹은 스케일만 다르다는 뜻이므로 데이터의 퀄리티가 좋지 않다는 뜻이다.

3x3매트릭스이지만 하나는 나머지 두 개의 조합으로 나타낼 수 있기 때문에 랭크가 2가 된다. = 하나는 의미가 없는 데이터이다.

데이터를 모아서 분석을 하려고 했을 때 데이터의 feature 하나가 의미가 없다면 분석 방법을 수정하거나 데이터를 재수집하는 등의 프로세스를 거쳐야한다.

🖤 선형 관계의 벡터(Linearly Dependent Vector)

두 벡터가 같은 선상에 있는 경우, 이 벡터들은 선형 관계에 있다고 한다.
즉, 이 두 벡터들의 조합을 통해서는 자신들이 갖고 있는 선형 관계 외의, 외부의 새로운 벡터를 생성할 수 없다.

🖤 선형 관계가 없는 벡터 (Linearly Independent Vector)

같은 선상에 있지 않은 벡터들은 선형적으로 독립되어 있다고 표현한다.

선형 독립이란, 임의의 다른 Scala값(C값)을 각 벡터 V1~Vn앞에 곱해준 값들의 벡터들을 모두 더했을 때 0이 되는 것이다. Scala를 곱해준 값들의 벡터를 모두 더했을 때 0이 되기 위해서는 반드시 Scala값들이 모두 0이어야 한다. 이 때 우리는 벡터들이 서로 '선형 독립'이라고 하게 된다.

가우스 소거법을 이용하고 난 후 만약 모든 행렬의 모든 행까지 Upper Triangle형태로 나오게 된다면 모든 Column Vector들이 서로 선형독립이다.

선형 독립과 rank

선형독립의 개념과 행렬의 rank도 연결되어 있다.

  • 선형독립인 Column 벡터들의 개수
  • 선형독립인 Row 벡터들의 개수
  • 가우스 소거법을 취했을 때 Pivot들의 개수
  • 벡터 공간의 차원(Dimension)

🍏 선형 독립과 기저벡터

Linear Combination을 이루는 벡터들이 서로 수직관계라면 선형결합에 붙는 Scala값을 쉽게 구할 수 있고 이는 결국 Rectangular 연립방정식의 최종적인 해집합을 구할 수 있다.

선형 독립과 기저벡터에 대한 출처

선형 독립이란, 임의의 다른 Scala값(C값)을 각 벡터 V1~Vn앞에 곱해준 값들의 벡터들을 모두 더했을 때 0이 되는 것이다. 이 때 0값이 되기 위해서는 반드시 Scala값들이 모두 0이어야 한다. 이 때 우리는 벡터들이 서로 '선형 독립'이라고 하게 된다.

선형결합이 unique한지 판단할 때 기저벡터로 확인할 수 있다.

기저벡터란, 특정한 Vector Space를 Span(구성)해주는 선형 결합 벡터들의 최소 개수이다. 기저벡터는 특정 벡터공간을 만들 때 벡터들의 선형 결합이 Unique하다고 할 수 있고 보편적인 벡터 공간을 구성할 때에는 unique하지 않다.

  • 특정 벡터공간을 구성(span)하는 선형독립 벡터들의 최소 개수인 Basis은 여러 개이다.(not unique)
  • 하지만 특정한 Basis안에서의 벡터들의 Linear Combination의 Scala값은 Unique하다!(즉, 선형결합이 Unique하다.)

⭐️ Linear Projection(선형투영)

여기에서는 2차원 공간에서의 linear projection을 전제하고 정리하였다.

projLproj_{L}(w)(\vec{w}) = wvvvv\frac{w \cdot v}{v \cdot v}v
LL위에 벡터w\vec{w}를 투영시킨다.


주어진 벡터 (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 : 이건 다시보기.

💎 data science에서 갖는 의미를 생각해보기

  • 두 벡터의 유사한 정도를 파악할 수 있다.

2차원에 있는 초록색 벡터를 표시하기 위해서는 x와 y라는 두 개의 feature가 필요하다고 하다. 이 때, 초록색 벡터를 x축에 투영한다면 초록색 벡터가 가지고 있는 의미를 표현하기 위해서 x만큼의 feature만 쓰면 된다. y가 가지고 있던 데이터가 사라지는 대신 feature가 한 개 줄어들기 때문에 메모리나 알고리즘의 cost가 낮아진다.

궁극적으로는 데이터 분석을 하기 위해 몇 백개의 feature를 사용할 때 의미가 없거나 크거나 작은 것들을 구분해서 없거나 작은 것은 제거하면서 원래 데이터가 제공하고자 하는 인사이트는 충분히 살릴 수 있는 차원 축소의 근본이 되는 기술이라고 할 수 있다.

빅데이터가 여러 개 있다면 이를 활용하기 위한 물리적 메모리, 딥러닝을 적용하기 위한 컴퓨터 파워 등이 절약이 된다는 장점이 있고 데이터 loss가 있음에도 불구하고 충분히 유의미한 결론을 도출할 수 있다는 데에 의의가 있다.

profile
💛 공부 블로그 💛

0개의 댓글