머신러닝

[선형 대수] 기저 (basis), 랭크 (rank)

MINAIR 2025. 1. 18. 21:58

선형 독립과 선형 종속


같은 수의 성분을 가진 n개의 벡터 a_1, a_2...a_n에 대해 이들의 선형 결합인 c_1a_1 + c_2a_2 + ... c_nan_n = 0을 만족시키는 상수 c_1, c_2...c_n이 모두 0이면 벡터 a_1, a_2...a_n은 서로 선형 독립이다. 만약 c_1, c_2...c_n이 모두 0이 아니어도 위의 식을 만족한다면 그 벡터들은 서로 선형 종속이다. 

 

기저 


기저 (basis)란 어떤 벡터 공간에서 그 벡터 공간을 선형생성하는 선형독립인 벡터들의 집합이다. 즉, 어떤 벡터 공간의 임의의 벡터에게 선형결합을 통해 유일한 표현을 부여하는 벡터들의 집합이다. 

 

예를 들어 2차원의 좌표평면이 있다고 하자. 그 좌표평면은 무수히 많은 벡터들로 이루어져 있는 하나의 벡터 공간이다. 기저란 어떤 벡터 공간의 1) 모든 벡터들을 표현할 수 있는 2) 선형독립인 3) 최소한의 벡터들의 집합을 의미한다. 예를 들어 {(x, 0), (0, y)}로 좌표평면의 모든 벡터들을 표현할 수 있다. v = a(x, 0) + b(0, y) = ax + by로서 말이다. 

 

여러 경우를 살펴보며 기저에 대한 이해를 심화시켜 보자. 

 

case 1) {(1, 0), (0, 1), (1, 2), (2, 3)}이라는 벡터 집합이 2차원 좌표평면의 기저일까? 기저의 정의에 따르면, 이 벡터 집합은 서로 선형 독립도 아닐 뿐더러 (벡터 (2, 3)은 벡터 (1, 0)과 벡터 (0, 1)의 조합으로 만들어질 수 있으므로 선형 종속이다.) 벡터 (1, 0)과 벡터 (0, 1)만으로도 충분히 벡터 공간의 모든 벡터들을 나타낼 수 있으므로 최소한의 벡터들의 집합이라는 조건도 만족하지 못한다. 따라서 {(1, 0), (0, 1), (1, 2), (2, 3)}은 기저가 아니다. 

 

case 2) {(1, 0, 0), (0, 1, 0), (2, 1, 0)}이라는 벡터 집합이 3차원 벡터 공간의 기저일까? 기저의 정의에 따르면 이 벡터 집합은 서로 선형 독립이 아닐 뿐더러 (벡터 (2, 1, 0)은 벡터 (1, 0, 0)와 벡터 (0, 1, 0)의 조합으로 만들어질 수 있으므로 선형 종속이다.) 벡터 (1, 3, 2)과 같이 3차원이 0이 아닌 벡터를 표현할 수 없다. 즉, 모든 벡터를 표현할 수 있는 벡터들의 집합이 기저의 정의이므로 {(1, 0, 0), (0, 1, 0), (2, 1, 0)}은 기저가 아니다. 

 

case 3) {(1, 0, 0), {0, 1, 0)}이라는 벡터 집합이 3차원 벡터 공간의 기저일까? 물론 두 벡터는 서로 선형 독립이지만 (두 벡터의 선형 결합으로 0을 생성하려면 둘 다 0인 경우밖에 존재하지 않기 때문이다.) 3차원 벡터 공간의 모든 벡터를 2개의 벡터만으로 표현하기에는 부족하기 때문에 마찬가지로 {(1, 0, 0), {0, 1, 0)}는 기저가 아니다. 

 

case 4) {(1, 0, 0), (0, 1, 0), (0, 0, 1)}이라는 벡터 집합은 3차원 벡터 공간의 기저일까? 맞다. 세 벡터는 모두 선형 독립이고 (세 벡터의 선형 결합으로 0을 표현하려면 셋 다 0인 경우밖에 존재하지 않기 때문이다.) 3차원 벡터 공간의 모든 벡터를 표현할 수 있는 최소한의 벡터 집합이기 때문에 {(1, 0, 0), (0, 1, 0), (0, 0, 1)}는 기저다. 

 

랭크 (rank)


임의의 행렬 A가 있을 때, 이 행렬의 rank는 이 행렬의 열들로 생성될 수 있는 벡터 공간의 차원이다. 

행렬 A의 열들 중에서 선형 독립인 열들의 최대 개수를 rank라고 한다. 행의 관점에서 본 rank와 열의 관점에서 본 rank는 똑같다. 

 

즉, rank는 어떤 행렬 A의 선형 독립인 열들로 만들어질 수 있는 벡터 공간의 차원이므로 rank를 구하기 위해선 먼저 선형 독립인 열들을 구하면 된다. 구체적인 예시를 통해 이해해보자.

 

case 1) 아래 행렬의 rank는 몇일까? 우선, 열들이 서로 선형 독립인지를 알아야 한다. 첫 번째 열과 두 번째 열은 선형 독립이다. (첫 번째 열과 두 번째 열로 0을 만드려면 둘 다 0인 수밖에 없다) 첫 번째 열과 세 번째 열도 선형 독립이고, 두 번째 열과 세 번째 열도 선형 독립이다. 그러나 세 개의 열은 선형 종속이다. (상수가 -1, 1, 1이면 0을 만들 수 있다.) 정의에 따르면 rank는 열들이 기저가 되어 만들 수 있는 벡터 공간의 최대 차원이다. 기저의 정의는 1) 어떤 벡터 공간의 모든 벡터들을 표현할 수 있는 2) 선형독립인 3) 최소한의 벡터들의 집합이다. 선형독립인 열은 2개이므로 (조합은 1-2, 2-3, 1-3이 가능하다. 어떤 조합이든 어쨌든 최대 2차원의 벡터 공간을 만들 수 있다.) 아래 행렬의 rank = 2이다. 

 

case 2) 아래 행렬의 rank는 몇일까? 우선, 열들이 서로 선형 독립인지 알아야 한다. 첫 번째 열과 두 번째 열은 선형 종속이다. 첫 번째 열과 세 번째 열은 선형 종속이다. 첫 번째 열과 네 번째 열은 선형 종속이다. 마찬가지로 두, 세, 네 번째 열은 나머지 모든 열들과 선형 종속이다. 따라서 일단 rank가 2는 아니다. 세 개씩 묶어도 마찬가지로 선형 종속이고, 네 개씩 묶어도 선형 종속이다. (즉, 2, 3, 4개의 벡터들의 조합으로 0을 만들 수 있는 경우가 많다는 의미이다.) 따라서 2, 3, 4개의 열들은 어떤 조합이든 어떤 벡터 공간의 기저가 될 수 없다. (선형 독립이란 조건을 만족하지 않는다) 따라서 열들이 기저가 되어 만들 수 있는 벡터 공간의 최대 차원은 1이다. (어떤 열이든 어쨌든 최대 1차원의 벡터 공간을 만들 수 있다.) 즉, 아래 행렬의 rank = 1이다. 

위에서 행렬의 행의 관점에서 보든 열의 관점에서 보든 rank는 똑같다고 했는데, 그 의미를 예를 통해 알아보자. 위 행렬의 rank = 1이었다. 아래 행렬은 위 행렬의 전치 행렬이다. 두 개의 열은 선형 종속이다. (상수가 1, 1이면 0을 만들 수 있다.) 따라서 2개의 열은 어떤 벡터 공간의 기저가 될 수 없다. 따라서 rank = 1이다. (어떤 열이든 어쨌든 최대 1차원의 벡터 공간을 만드는 기저이다.) 

정리


위의 개념을 한 번씩 정리하고 포스팅을 마친다. 

선형 독립과 선형 종속

  • 선형 독립: 같은 차원을 갖는 n개의 벡터가 있을 때, 벡터들의 선형 결합으로 0을 만들 때 계수 c1, c2...cn이 모두 0이어야 한다면 벡터들은 서로 선형 독립이다.
  • 선형 종속: 같은 차원을 갖는 n개의 벡터가 있을 때, 벡터들의 선형 결합으로 0을 만들 때 계수 c1, c2...cn이 모두 0이 아니어도 된다면 벡터들은 서로 선형 종속이다. 

기저 (basis)

기저란 1) 어떤 벡터 공간의 모든 벡터를 만들 수 있는 2) 선형독립인 3) 최소한의 벡터들의 집합이다.

랭크 (rank)

랭크란 어떤 행렬의 열들이 어떤 벡터 공간의 기저를 이룰 때, 그 벡터 공간의 최대 차원을 의미한다. 즉, 열들은 기저가 되어야 하므로 서로 선형독립이어야 한다. 열의 rank와 행의 rank는 같다.