성장通

Rank, Basis, Span (+ Gram-Schmidt Process) 본문

ML&DL/머신러닝을 위한 수학

Rank, Basis, Span (+ Gram-Schmidt Process)

백악기작은펭귄 2024. 3. 16. 16:09

Rank, Basis, Span

Rank, Basis 그리고 Span은 선형 대수학에서의 핵심 개념 중 하나이다. 이는 행렬 기반으로 연산이 수행되는 대부분의 머신러닝 개념의 근간이 되므로 잘 알아두는 것이 좋다.


Rank

Rank(랭크)는 행렬에서 선형 독립(일차 독립)인 행 또는 열의 최대 개수를 의미한다. 이는 또한 행렬이나 벡터 공간의 벡터로 만들 수 있는 부분 벡터 공간의 차원이다. 행렬의 실제 행 또는 열의 개수가 랭크보다 크다면 일부 벡터가 서로 선형 종속(일차 종속) 관계임을 알 수 있다.

 

*일차 독립, 일차 종속이란?

 

일차결합, 일차종속, 일차독립

일차결합, 일차종속, 일차독립 일차결합 일차결합(Linear Combination)의 정의는 다음과 같다. 벡터공간 $V$의 공집합이 아닌 부분공간 $S$에 속하는 유한 개의 벡터 $u_1, ... , u_k$와 유한 개의 스칼라 $a_

kevin-rain.tistory.com

 

랭크는 선형 시스템에서 해를 찾거나 행렬의 선형 변환에서 변환된 공간의 차원(dimension)을 결정하는 데에 사용된다. 차원은 해당 벡터 공간이 가진 구조적 정보를 나타낸다.

 

* 선형 변환: 선형 결합을 보존하는, 두 벡터 공간 사이의 함수. 이를 통해 서로 다른 벡터 공간으로 벡터 성분을 이동시킬 수 있다.

 

Span

위 랭크의 정의에서, '부분 벡터 공간'이라는 개념이 등장하는데, 이것이 바로 Span이다. Span은 벡터들의 일차 결합으로 만들 수 있는 모든 벡터들의 집합을 의미한다. 즉, 벡터 공간 $V$ 내 특정 벡터들의 조합으로 만들어질 수 있는 공간 $S$를 Span이라고 한다.

 

어떤 벡터 집합의 Span은 그 집합에 의해 생성된 최소의 벡터 공간으로, 그 집합으로부터 생성될 수 있는 모든 벡터를 포함한다. 즉 Span은 벡터 덧셈스칼라 곱셈에 대해 닫혀있다.

 

그렇다면 Span을 이루는 특정 벡터를 무엇이라고 부를까? 그것은 다음 개념을 보도록 하자.

 

Basis

Basis(기저)공간을 이룰 수 있는 선형 독립 상태인 벡터들의 집합으로, Span의 역개념이다. 즉, 특정 벡터로 생성할 수 있는 부분 공간이 Span이라면, 그 Span을 생성하는 특정 벡터들을 해당 Span의 Basis라고 한다. Span을 생성하는 서로 수직인 벡터, 즉 선형 독립이면서 직교하는 벡터Orthogonal basis라고 하며, 이들을 정규화하여 길이를 1로 만든 것Orthonormal Basis라고 한다.

 

벡터 공간의 모든 벡터는 해당 공간의 기저 벡터의 일차결합으로 유일하게 표현할 수 있다. 이로써 기저 벡터는 벡터 공간에서 기준이 되는 좌표 시스템을 제공할 수 있다. 기저를 구성하는 벡터의 수는 해당 벡터 공간의 차원, 즉 랭크의 개수가 되며 이는 해당 공간에서의 독립적인 방향의 수를 나타낸다.

 

+) Gram-Schmidt Process

그람-슈미츠 과정(Gram-Schmidt Process)은 주어진 벡터들에 대한 orthogonal basis 혹은 orthonormal basis를 구하는 과정이다. 주어진 벡터 $v_1, v_2, ..., v_k$에 대해 다음과 같이 구할 수 있다. $proj_u(v)$는 벡터 $v$를 벡터 $u$에 정사영한 것을 의미한다.

 

 $u_1 = v_1$

$u_2 = v_2 - proj_{u_1}(v_2)$

$u_3 = v_3 - proj_{u_1}(v_3) - proj_{u_2}(v_3)$

$...$

$u_k = v_k - \sum^{k-1}_{i=1} proj_{u_i}(v_k)$

 

주어진 벡터에 대해 위 과정을 따라가던 중 영벡터가 나온다면 이를 무시하고 다음 입력 벡터로 넘어간다. 차원의 개수(=rank의 수)만큼 수직 벡터가 얻어졌다면 해당 직교화 과정을 종료한다.

 

이러한 과정을 통해서 우리는 주어진 벡터를 생성할 수 있는 orthogonal basis를 알 수 있게 된다. 즉, 주어진 벡터들이 모두 포함된 벡터 공간의 구조를 알려주고, 이 구조를 재구성하는 데 필요한 직교 벡터 집합을 제공하는 것이다.