본문 바로가기
기본소양/선형대수학

[선형대수학] 벡터의 차원

by EXUPERY 2021. 1. 13.
반응형

 

 

 

 

벡터의 차원

지난번 보단깊게, 그러나 너무 깊지 않게

 

 


지난포스트에서 다뤘던 SPAN, BASIS, RANK에 대해서 좀 더 자세히 다뤄보고자 합니다. 지난포스트를 기반으로한 포스트입니다.

 

 

 

Real coordinate space (R2)

실수공간에 대하여 다시 살펴보겠습니다. R^2에서 두 벡터가 선형 독립일 때, 두 벡터의 합으로 모든 부분을 표현할 수 있습니다. 벡터의 모든 끝점의 집합이 두 벡터의 Span입니다. 다시말해 2차원공간, 면이됩니다.

 

Linearly Dependent 선형종속

벡터의 방향이 같다면 둘이 아무리 더해도 span으로 표현되지 않습니다

 

Linearly Independent 선형독립

벡터의 방향이 다를 때 둘이 더하면 span이 됩니다

 

다시말해 R^2에서 두벡터를 이용하여 벡터상 점(선형)을 제외한 다른 곳에 점을 찍을 수 있으면,

선형에 종속되어 있지 않습니다. 두 벡터가 방향이 같으면 사실 상 한 벡터는 다른 벡터의 상수배 해준 것과 다름이 없고 이는 선형에서 벗어날 수 없습니다. 이를 선형에 종속되어 있다고 합니다.

이를 바꿔말하면 선형 독립이면 새로운 span으로 확장 할 수 있습니다.

 

Span

Span이란 독립인 선형의 조합이 공간을 이루는 것을 말합니다. 즉 각 벡터들을 공간으로 표현한 것입니다.

 

Real coordinate space (R3)

R^3에서는 세 벡터가 선형 독립일 때, 세 벡터의 합으로 모든 부분을 표현할 수 있습니다. 벡터의 모든 끝점의 집합이 세 벡터의 Span입니다. 다시말해 3차원공간이 됩니다.

 

Linearly Dependent 선형종속

두 벡터가 이루는 Span안에 다른 나머지 하나의 벡터가 포함됩니다. 두 벡터가 만드는 R^2, 2차원, 면 위에 위치한 것입니다. 다른 말로 표현하면, 2차원을 이루는데 나머지 하나는 필요가 없다는 것입니다.

 

Linearly Independent 선형독립

두 벡터가 이루는 Span와 다른 나머지 하나의 벡터가 독립적입니다. 두 벡터가 만드는 R^2, 2차원, 면 위에 위치하지 않고, 튀어 나온 것 입니다. 다른 말로 표현하면, 3차원을 이루는데 세 개의 벡터가 모두 필요하다는 말 입니다.

 

각각의 선이 각 벡터가 이루는 선이라고 할 때, 빨간색과 초록색이 이루는 span에 파란색이 독립적이다. 

 

 

 

 

 

기저 Basis

 

 

기저는 SPAN을 이루는 독립적인 벡터의 집합입니다. 공간의 기저란 그 공간을 이루는 근간입니다. 영어로도 Basis입니다. 공간의 기저(basis)는 선형독립적인 벡터들의 집합으로 스팬하면 그 공간이 됩니다. 위의 그림은 그냥 가장 쉽게 생각할 수 있는 Basis입니다.

 

Google Translate

 

Orthogonal Basis

Orthogonal Basis란  위 단어 뜻 그대로 직교하는 Basis라는 말 입니다. 다시말해 서로 직교하는, 수직인 기저벡트를 이르는 말입니다. 독립일 뿐만 아니라, 직교라는 뜻이 추가되죠!

 

Orthonormal Basis

Ortho + normal, 직교하는 표준입니다. 뜻 그대로 정규, 표준 이런 의미가 추가됩니다. 여기서 normal은 길이가 1이라는 것을 의미합니다. 단위벡터(unit)처럼. 

 

Granm-Schmidt Process

By Lucas V. Barbosa [Public domain],  from Wikimedia Commons

위와 같은 직교하는 기저벡터를 찾아가는 과정입니다.  임의의 u1과 v2를 project하고, project와 직교하게 새로운 벡터를 만들고, 또 project하고, 새로 만들고, 또, 또, ... 이렇게 n번을 하는 방식입니다.  그리고 norm 값만큼 나눠주어 길이가 1이고 직교하는 set을 만듭니다! 아래 이해를 돕는 그림이 있어 첨부합니다

 

 

 

 

 

RANK

 

 

Span이 가질 수 있는 최대의 차원이라고 이해하면 쉽습니다. R^2에서의 Rank는 2가되고 R^3에서의 Rank는 3이 됩니다. 정확히 표현하자면 랭크는 벡터공간에서 기저의 개수를 의미합니다. 위 그림은 선형 독립적인 3개의 벡터를 그려놓은 것입니다. 저 세개의 벡터는 R^3을 Span하고, RANK는 3이됩니다.

즉, Basis를 이용해서 공간을 만들 수 있고, 그 공간을 Span이라고 합니다. Span된 공간의 차원이 Rank가 됩니다.

 

 

 

Gaussian Elimination

어떠한 행렬이 선형 독립인지 아닌지를 파악하기위해, 이 식을 사용합니다. 쉽게 말하면 행렬의 행을 더하고 빼서 앞에는 각 행에 1이 오도록 만들어 주는 것 입니다. 글로 설명하는 것 보다 실제로 해보는게 이해가 더 빠르리라 생각됩니다.

 

Gaussian elimination calculator

Gaussian elimination calculator. This step-by-step online calculator will help you understand how to solve systems of linear equations using Gauss-Jordan Elimination

onlinemschool.com

먼저 행렬을 집어 넣습니다. 저는 ([3,2,1],[6,4,2],[3,6,9])를 집어 넣었습니다.

 

 

 

solve the system을 클릭해주면

 

 

 

이렇게 잘 계산되어 보여줍니다.

하나하나 따라가보면, 첫행의 첫번째 요소를 1로 만들기 위해 3으로 나누어줍니다.

이제 서로 더하고 빼고해서 첫행의 첫번째는 1(or0), 둘째행의 두번째도 1(or0), 셋째행의 세번째도 1(or0)으로 만듭니다.

1 전에 오는 숫자는 모두 0입니다.

마지막 행을 보면, (0,0,0)임을 볼 수 있습니다. 이 말은 즉,0x+ 0y + 0z = 0 이라는 소리고 다시말해 해가 무수히 많습니다.

기하적으로 생각해봅시다.

두개의 벡터가 이루는 면 안에 나머지 하나의 벡터가 포함되어있었다고 했습니다. 즉 이 벡터의 xyz값이 무엇이던 간에, 저 다른 두 벡터의 면과 무조건 겹친다는 소리입니다.

다시말해 저 3x3행렬은 RANK가 2라는 말이 됩니다!

 

 

 

차원을 낮추는 Linear Project

 

 

Project는 투영하다라는 말이 있습니다. 빔 프로젝터를 생각하면 쉽습니다. 빔프로 젝터는 빛을 쏴서 스크린에 투영시킴으로 화면을 나타내죠. 벡터에서도 마찬가지입니다. 투영시키는 것은 투영하는 대상에 직교하도록 하는 것을 말합니다. 위 그림은 v라는 벡터를 x=y에 투영시킨 것 입니다. 점선이 투영된 벡터입니다. 

def get_project_of_w_on_v(w,v):
  w = np.array(w)
  v = np.array(v)
  v_norm = np.sqrt(sum(v**2))     
  project_of_w = (np.dot(w, v)/v_norm**2)*v
  return project_of_w

제가 만든 코드입니다. (위 그림과 다릅니다.). w를 v에 project하는 함수입니다. 먼저 v의 i hat과 j hat을 제곱하고 루트씌워서 Norm을 구했습니다. 그 뒤에 w와 v를 내적하고 v norm을 제곱한뒤나누고 v를 곱합니다.  수식으로 표현하면 다음과 같습니다.

 

수식은 LATEX로 적을 수 있습니다. 라텍스 너무 귀찮다!

 

Project는 다음에 더 자세하게 다루도록 하겠습니다.

 

 

분포의 연관성을 알려주는 공분산 Covariance

그리고 Pearson과 Spearman 상관계수에 대해,

시간이 허락 된다면 고유값과 고유벡터, PCA까지 포스팅하겠습니다.

 

 

반응형

댓글