이번 포스팅에서는 크게 세 가지 주제를 다룰 것이다. 매우 중요한 개념들이니 잘 숙지하도록 하자.
먼저 선형 독립(Linear independence)에 대하여 이야기하고, Span과 기저(Basis), 그리고 차원(Dimension)에 대하여 다루도록 하겠다. 이 용어들의 정확한 의미를 파악해 보도록 하자.
1. 선형 독립(Linear independence)
- background:
선형 독립을 설명하기 위해서 먼저 지난 Lecture 7에서 배웠던 내용을 잠깐 복습해보자.
어떤 행렬 A의 크기가 m by n이라고 가정하자. 이때 column의 수 n이 row의 수 m보다 더 크다고 가정해보자. 즉 m < n이다. 이는 다시 말하면 미지수(unknown)의 개수가 방정식(equation)의 개수보다 더 많다는 이야기이다.
이 경우 행렬 A에 대해서 Ax=0에 대한 0이 아닌 해가 존재한다. 즉 Null space가 존재한다는 것이다. 어째서 해가 존재할까?
우리는 이를 알아낼 수 있는 확실한 알고리즘을 이미 공부했다. 소거(elimination)를 통해 행렬을 echelon form으로 만드는 과정에서 pivot이 존재하게 되는데, pivot은 row의 개수보다 많을 수 없다. 여기서의 행렬 A는 column의 수 n이 row의 수 m보다 많기 때문에 반드시 pivot이 없는 column이 존재하게 되는데, 이 column이 바로 free column이고 free column에 대응되는 미지수가 바로 free variable이다.
결국 행렬 A가 m < n인 경우, 반드시 1개 이상의 free variable이 존재하기 때문에 Ax=0에 대한 0이 아닌 해, Null space가 존재하게 된다. 정확히는 n-r(rank)개의 free variable이 존재하게 된다. 우리는 이 free variable에 0이 아닌 어떤 임의의 값을 설정한 뒤 pivot variable에 대해서 방정식을 풀게 되면 그 해가 Ax=0을 만족하는 0이 아닌 값들이 되어 Null space를 형성한다.
(※자세한 사항은 lecture 7 참조)
- linear independence:
지금까지 위에서 설명한 내용은 선형 독립을 설명하기 위한 배경 지식이다. 이제 선형 독립(Linear independence)에 대해 알아보도록 하자.
벡터가 독립(Independence)이라는 것은 어떤 의미일까? 함축된 정의를 내리기전에 직접적인 의미를 생각해보자.
독립(Independence)의 의미: 벡터 x1, x2, ... xn이 있을 때, 만약 모든 계수(coefficient)가 0인 경우를 제외하고 어떠한 선형 조합(Linear combination)으로도 0을 만들 수 없다면 이 벡터들은 독립(Independent)이다. 즉 |
위의 말을 다시 풀어서 써보자면 어떤 벡터 x1, x2가 있다고 했을 때, 이들의 선형 조합을 c1x1 + c2x2 라고 하자. 이때 c1=0, c2=0인 경우를 제외하고 c1, c2에 어떠한 임의의 값을 넣어서 선형 조합 연산을 했을 때 그 어떠한 값을 넣어도 결과 값이 0이 나오지 않는다면 x1과 x2는 독립이다.
반대로 임의의 c1, c2값으로 선형 독립 연산을 했을 때 결과 값이 0인 경우가 발생한다면 x1과 x2는 종속(dependent)관계이다.
말로만 설명하면 이해가 잘 가지 않을 수 있으니 그림을 예로 들어 이해해보자. 아래 그림의 2차원 평면상의 두 벡터를 보자.
위 그림에서 두 개의 벡터 v1, v2가 있다. v2는 v1의 두 배에 달하는 길이를 가지고 있고 방향도 같다. 이들은 독립(Independent)일까 종속(dependent)일까? 당연히 종속(dependent)이다. 위의 정의에 따르면 v1의 두배에서 v2를 빼면 0이 되기 때문이다. 즉
위의 정의에 의해 c1=2, c2=1일때의 선형 조합을 통해 0이 만들어지기 때문에 v1과 v2는 종속관계이다.
이번엔 직관적인 관점으로 보자. v1과 v2는 2차원 평면상에 존재하지만, 방향이 같다. 이는 같은 직선 상에 위치한 것을 의미하며 2차원 평면상에 존재하지만 이 두 벡터로는 1차원밖에 정의할 수 없다는 의미다. 이 말을 위의 독립에 대한 정의와 연결지어 생각해보자.
여기에서의 선형 조합(linear combination)이라는 것(일반적인 경우는 아님)은 사실 벡터는 변함없이 그대로이고 상수값 c만 바뀌게 된다. 이것이 의미하는 것은 벡터의 방향은 변함이 없고 크기만 바뀌게 되는데, 선형 조합에 이용되는 벡터들의 크기만을 조절하여 0을 만들기 위해선(모든 c가 0인 경우는 제외함) 반드시 벡터들의 방향이 같아야만 한다.
결국 모든 계수가 0인 경우를 제외하고 선형 조합을 통해 결과가 0이 된다는 것은 두 벡터의 방향이 같아야만 성립되기 때문에 그림으로 판단하는 독립에 대한 우리의 직관과 위의 조건이 일치하는 것을 알 수 있다.
이번엔 약간 특이한 경우를 살펴보자.
위 그림처럼 v1벡터가 있고, v2가 0인 경우에 이들은 독립일까? 이들 역시 종속(dependent)이다. 계수 c가 모두 0인 경우를 제외한다고 해보자. v1에 0을 곱하고 v2에 어떠한 수를 곱해도 결과는 0이 될 수밖에 없다.
결국 n개의 벡터 중 하나라도 0벡터일 경우엔 종속(dependent)이다.
이번엔 독립(Independence)인 경우를 살펴보자. 2차원 평면에서 두 개의 벡터가 아래와 같이 있으면 독립이다.
위 그림에서 두 벡터 v1과 v2를 이용하여 어떠한 선형 조합을 한다해도 0을 만들 수는 없다(c1, c2가 모두 0인 경우는 제외). 이를 직관적으로 봤을 때도 v1과 v2를 이용하여 2차원 공간상의 어떤 벡터도 만들어낼 수 있기 때문에 이 둘은 독립이다.
그렇다면 아래 그림과 같이 여기에 v3가 추가되면 어떨까? 이 경우에도 이들은 독립일까?
이들은 독립일까 종속일까? 이들은 종속(dependent)이다. 이를 어떻게 알 수 있을까? 우리가 이번 포스팅의 맨 처음에서 공부했던 background를 통해서 알 수 있다. 즉 background에서 공부했던 m<n인 경우에 관한 내용을 통해 2차원 평면에 3개의 벡터가 있을 경우, 종속임을 확인할 수 있다. 3개의 벡터의 Dependence와 background의 내용을 어떻게 연결지을 수 있을까? 다음을 보자.
3개의 벡터를 아래와 같이 행렬 A의 column으로 표현해보자.
column picture로 생각해봤을 때 이들은 2차원 공간상에 존재하며 3개의 벡터를 가지고 있다. 따라서 row의 수 m은 2, column의 수 n은 3이다. 이 경우 행렬 A는 2x3의 행렬로써 2개의 방정식(equation)과 3개의 미지수(unknown)을 가지고 있으며 맨 처음 background에서 봤던 m<n의 경우이다. 따라서 free variable이 존재하는 경우이다.
선형 결합을 보이기 위해 x대신 c를 넣어서 Ac=0를 만들어보면 아래와 같다.
위 식(4)에서 c벡터가 Null space에 존재할 때, 즉 어떤 c1, c2, c3값을 통해 선형 결합(Linear combination)을 수행한 결과 값이 영벡터가 될 경우 A의 column은 종속(dependent)이다. 같은 말을 다르게 써보자.
|
좀 더 쉽게 설명하자면 식 (4)가 만족하기 위해선 c1=0, c2=0, c3=0이면 당연히 결과도 0이 되므로 식이 만족할 것이다. 그런데 이렇게 모든 c값이 0인 경우를 제외하고 c벡터가 어떤 값을 가졌을 때 그에 대한 선형 결합 결과값이 0이 만들어진다면, 그 행렬 A의 column은 종속(dependent)관계가 된다는 것이다.
식 (4)의 경우엔 c1=-0.7428, c2=0.5571, c3=0.3714일 경우 그에 대한 선형 결합 결과 값이 0이 되기 때문에 종속이 된다. 아래 그림은 식 (4)를 MATLAB을 통해 검증을 해본 결과이다. 위의 c값을 통해 세 개의 column vector를 더한 결과가 0이 되는 것을 그래프로 확인할 수 있었다.
정리해보면...
어떤 벡터 v1, v2, ... vn이 있을 때, 이 벡터들이 독립(Independence)인지, 혹은 종속(Dependence)인지 판별하기 위한 기준은 다음과 같다.
- 독립(Independence)일때
- 종속(Dependence)일때
아래는 MATLAB 코드
2. Span
이번에 알아볼 개념은 Span이다. Span의 사전적 의미는 동사로써 "(많은, 넓은 것을)포괄하다, 걸치다, 가로지르다" 등이 있다. 선형대수에서 span은 어떤 의미일까?
선형대수(Linear algebra)에서 span은 보통 "span a space"라고 표현하곤 한다. 이를 굳이 해석해보면 "어떤 공간을 포괄하다"정도로 해석할 수 있겠다. 한글로 표현하기 약간 난해한 감이 없지 않아 있으나 대충 어떤 의미인지는 감이 올 것이다.
이렇게 한 번 생각해보자. 예를 들어 두 개의 벡터 v1=[2, 3], v2=[3, 2]가 있다고 가정해보자. 이 두 벡터 v1, v2가 어떤 공간을 "span(포괄하다)한다" 라고 했을 때, 이것이 의미하는 것이 무엇일까? 벌써 감이 오는 사람도 있겠지만 정답을 이야기 하자면 span이라는 것은 이 벡터들로 형성할 수 있는 공간이다. 즉 v1과 v2의 선형 조합(Linear combination)을 통해 만들어지는 공간을 의미한다.
사실 이 span에 대해서 우리는 이미 공부한적이 있다. 어떤 행렬 A의 column vector들을 가지고 가능한 모든 선형 조합을 하고 이를 통해 column space를 얻을(형성할) 수 있다. 다시말하면 column vector들이 column space를 "span"한 것이다.
결국 "span a space"의 의미는 다음과 같이 정리할 수 있다.
벡터 v1, v2, ... vn이 어떤 공간(space)을 span한다의 의미:
|
**우리는 이전 강의에서 실제로 MATLAB을 이용해 행렬의 column vector들의 선형 결합으로 부분 공간(subspace)를 만들어 본 적이 있다. 지난 강의 Lecture 5 - (2) 벡터 공간(Vector Spaces), 부분 공간(Sub Spaces)편에서 3. 행렬의 부분 공간편을 보면 "span a space"에 관한 구현 부분이 나온다. 여기서 3차원 공간의 부분 공간인 어떤 평면을 "span"을 통해 구현하였다.
3. 기저(basis)
어떤 행렬 A의 column space를 생각해보자. column vector들을 선형 조합하여 column space를 얻는다. column vector들이 column space를 "span"한 것이다. 이때의 column vector들은 독립(Independent)인가? 아니면 종속(Dependent)인가? 아마 독립일 수도, 종속일 수도 있을 것이다. 이는 column vector에 달려있다.
이번에 우리가 관심을 가져야하는 벡터들은 바로 어떤 공간을 "span"하면서 그들이 독립(Independent)인 벡터들이다. 이것을 우리는 기저(basis)라 한다.
기저(basis)는 다음의 두 가지 속성을 가지고 있다.
|
기저(basis)는 굉장히 중요한 개념이다. 기저에 대한 설명을 하기 위해 지금까지 독립과 span에 대해 설명했다고 해도 과언이 아니다. 전체 공간과 그 안에 있는 부분 공간(subspace)을 설명할 때에도 기저를 이해하는 것이 중요하다.
기저(basis)에 대한 예를 들어 보자.
3차원 공간(space) $R^3$를 생각해보자. R3에 대한 기저는 무엇일까? 독립이면서 3차원 공간 R3를 "span"하는 벡터가 무엇일까? 가장 먼저 떠올릴 수 있는 기저벡터는 아래 식 (5)와 같다.
이들 벡터는 독립(Independent)이다. v1, v2, v3에 어떤 상수들(c1, c2, c3)을 곱해서 더해도 영벡터를 만들 수 없다(c1=0, c2=0, c3=0인 경우는 제외). 식 (5)를 잘 보면 우리에게 익숙한 행렬이 보인다. 바로 단위 행렬(Identity)인데, v1, v2, v3를 합쳐 행렬로 만들면 바로 단위행렬이 된다. 이 단위 행렬의 Null space는 무엇일까? 오직 [0, 0, 0]T 인 zero vector이다.
또한 세 벡터 v1, v2, v3를 이용해 3차원 공간 전체를 "span"할 수 있다. 즉 세 벡터의 선형조합을 통해 3차원 공간상의 어떠한 벡터도 만들어낼 수 있다.
따라서 위의 두 가지 사실로부터 식 (5)의 v1, v2, v3는 기저(basis)이다. 이는 실제로 x축, y축, z축을 나타낸다. 특히 이러한 형태를 표준 기저(standard basis)라 한다.
여기서 한 가지 중요한 사실은 식 (5)의 벡터가 3차원 공간의 유일한 기저(basis)가 아니라는 것이다. 사실 3차원 공간의 기저는 무수히 많다. 한 가지 예를 더 들어보자.
우리는 3차원 공간 R3의 또 다른 기저를 찾고 있다. 각 사례를 살펴보도록 하자.
만약 식(6)에서 멈췄다고 가정해보자. 식(6)은 독립인가? 두 벡터를 이용해 영벡터를 만드는 상수는 오직 zero vector뿐이므로 독립이다. 그렇다면 식(6)의 벡터가 3차원 공간 전체를 "span"하는가? 그렇지 않다. 이 두 벡터만 가지고는 3차원 공간에서 어떤 평면(plane) 만을 "span"할 수 있다. 따라서 식 (6)은 R3의 기저가 아니다.
식 (7)의 경우엔 어떨까? 세 번째 벡터가 첫 번째, 두 번째 벡터의 합이다. 따라서 독립이 아니다. 독립이 아니라는 것은 식(7)의 세 번째 벡터 [3 3 7]T는 첫 번째 벡터와 두 번째 벡터가 이루는 평면 상에 존재하는 것이다. 따라서 3차원 공간 전체를 "span"하지도 않는다. 따라서 식 (7)도 R3의 기저가 아니다.
마지막 식 (8)을 보자. 식 (8)은 세 개의 3차원 column vector로 이루어져 있고, 서로 독립이다. 이는 3차원 공간 전체를 "span"한다. 따라서 식 (8)은 R3의 기저이다.
이해를 돕기 위해 위의 식 중 (7)을 시각화 해보겠다. 아래 그림은 식 (7)이 3차원 공간에서 표현할 수 있는 영역을 표현한 것이다.
노란색 부분이 식(7)의 column space를 표현한 것이다. 보다 시피 평면이고 세 번째 벡터가 첫 번째와 두 번째 벡터가 이루는 평면위에 놓여있음을 알 수 있다. 따라서 식 (7)은 종속(dependent)임을 알 수 있다.
아래는 MATLAB 코드
그렇다면 이렇게 우리가 어떤 벡터들을 가지고 있을 때, 이들이 N차원의 기저인지 아닌지를 어떻게 판별할 수 있을까?
먼저 벡터들을 어떤 행렬의 column vector로 만들어서 하나의 행렬을 만든 다음 가우스 소거(Gauss Elimination)를 통해 echelon form 행렬을 만든다. 그런 뒤 이 행렬이 free variable을 갖는지, 혹은 모든 각 column vector가 pivot을 가지고 있는지를 확인하면 된다. 즉 행렬의 Rank를 가지고 판별하는 것이다.
우리가 만약 N차원의 공간 $R^N$에 대해 n개의 벡터를 가지고 있을 때, 이들이 기저 벡터(basis vector)이기 위해서는 n x n 행렬이 역행렬이 존재(invertible)해야 한다. 즉 3차원 공간 R3의 기저는 3개의 3차원 크기의 벡터가 존재해야 하며, 결국 3x3 크기의 행렬의 역행렬이 존재해야하는 것이다. 식 (8)과 같이 말이다.
결국 식(8)과 같이 3차원 벡터 세 개로 구성되면서 서로 독립인 어떠한 벡터도 3차원 공간 R3의 기저(basis)가 될 수 있다.
4. 차원(dimension)
앞에서 언급했듯이 기저(basis)는 유일하지 않다. N차원의 공간(space)에 대해 무수히 많은 기저가 존재한다. 그렇다면 여기서 차원(Dimension)이라는 것은 무엇을 의미할까?
일반적으로는 선(Line)을 1차원, 면(Plane)을 2차원, 입방체(cubic)를 3차원으로 알고 있을것이다. 하지만 여기에선 N차원에 대해 정의할 수 있도록 선형대수의 관점으로 차원을 보도록하자.
기저를 설명할 때 사용했던 식(6), (7), (8)을 다시 보자.
식(6)은 기저가 아니다. 하지만 정확히는 R3에 대한 기저가 아니다. 이렇게 얘기할 수 있는 것은 식(6)은 기저에 대한 조건 자체는 충족하기 때문이다. 식 (6)의 벡터는 독립이며, 이 벡터들의 선형 결합을 통해 형성할 수 있는 공간을 "span"하기 때문이다. 즉 3차원 공간의 부분 공간(subspace)인 2차원 평면(plane)에 대한 기저이다.
그러나 어떤 차원의 공간, 즉 3차원 공간에 대한 기저를 이야기 할 때 식(6)은 기저라고 할 수 없다. 왜냐하면 이들은 3차원 공간을 표현하기엔 벡터가 부족하기 때문이다.
식(7)의 경우엔 벡터의 수는 맞지만 독립이 아니기 때문에 기저가 아니다.
반면 식(8)의 경우엔 독립이면서 벡터의 수가 차원의 수(N=3)와 같기 때문에 기저이다. 2차원의 기저가 되려면 두 개의 벡터가, 4차원의 기저가 되려면 네 개의 벡터가, N차원의 기저가 되려면 N개의 벡터가 있어야한다. column space든, Null space든 어떤 공간이던간에 마찬가지로 다음의 정의가 성립한다.
차원(Dimension): 주어진 공간(space)들에 대한 모든 기저(basis)들은 같은 수의 벡터를 가진다. 여기서 벡터의 수가 바로 그 공간의 차원(Dimension)을 의미한다. |
차원은 그 공간이 얼마나 큰지를 나타내는 지표이다. 차원은 기저가 반드시 가져야 할 벡터의 수를 나타낸다. 4차원 공간의 기저가 되기 위해선 반드시 4개의 벡터가 필요하다. 3개는 적고, 5개가 있어도 많기 때문에 기저가 아니다. 반드시 4개가 필요하다.
차원에 대한 예를 들어보자.
- Column space의 차원:
식(9)의 행렬 A의 column space C(A)를 생각해보자. A의 column vector들은 column space C(A)를 "span"하는가?
답은 YES이다. 당연히 column vector들이 column space를 "span"할 수 있다.
그렇다면 A의 column vector들은 독립(Independent)인가?
답은 No다. col4가 col1과 같고 col3은 col1+col2이기 때문에 종속(Dependent)이다.
따라서 A의 column vector들은 A의 column space C(A)의 기저(basis)가 아니다.
그렇다면 A의 column space C(A)의 기저(basis)는 무엇일까? 바로 pivot column인 col1과 col2이다. col1과 col2만 놓고 봤을 때 이들은 독립이면서 column space를 "span"한다. 나머지 col3, col4는 col1과 col2가 이루는 평면에 존재하기 때문에 새로운 차원을 정의하는데 전혀 도움을 주지 못한다.
결과적으로 행렬 A의 column space의 기저는 pivot column인 col1과 col2 두 개의 column vector이고, pivot column의 개수는 곧 A의 Rank이다. 따라서 A의 rank(=2)는 column space C(A)의 차원(Dimension)과 같다.
어떤 행렬 A의 Rank는 행렬 A의 column space C(A)의 차원(Dimension)이다.
(※ N차원이 아닌 행렬 A의 Column space의 차원임을 유의)
참고로 A의 column space의 기저(basis)는 pivot column을 어떻게 잡느냐에 따라 다양하게 설정할 수 있다. 예를 들면 [col1, col3], [col2, col3], [col3, col4], 혹은 그들의 선형 조합(Linear combination)형태가 될 수 있다. 단 이때의 pivot column들은 독립이어야 한다. ([col1, col4]와 같은 조합은 안됨)
- Null space의 차원:
이번엔 Null space의 차원에 대해 알아보자. A의 Null space의 차원은 어떻게 될까?
A의 Null space(Ax=0)를 보자. free columns에 대응되는 free variable 두 개를 1과 0으로 번갈아 설정하여 두 개의 special solution을 계산하면 아래와 같다. (Lecture 7의 Null space계산법 참고)
계산해보면 각각 -col1-col2+col3+0=0, -col1+0+0+col4=0이 된다.
위의 두 개의 special solution은 Null space의 기저(basis)일까? Null space가 이 두 개의 벡터의 선형 조합으로 만들어질 수 있을까?
답은 YES이다. 위의 두 벡터는 Null space에 존재하는 두 개의 해이고, 독립이다. 또한 Null space의 차원은 free variable의 개수와 같은데, 행렬 A의 free variable은 두 개이고 서로 독립인 두 개의 Null space vector가 존재하므로 식 (10)의 두 벡터는 Null space의 기저이다. 이를 정리하면....
행렬 A의 column space C(A)의 차원(dim)은 rank의 수 r이고,
행렬 A의 Null space N(A)의 차원(dim)은 free variable의 개수이다. 이는 전체 column의 수 n에서 pivot variable의 수인 r을 뺀 것과 같다. 따라서 n-r=4-2=2가 A의 Null space의 차원이 된다.
5. 마치며
이번 포스팅에선 선형 대수에서 중요한 개념들인 선형 독립(Linear independence), Span, 기저(basis) 그리고 차원(dimension)에 대해 배웠습니다. 이들 각각은 서로 연관된 개념들이기 때문에 선형 독립부터 차원까지 차례로 하나의 글에 담게 되었네요. 그러다보니 글이 조금 길어졌지만 깊이있는 이해를 위해선 길더라도 처음부터 차례로 보는 것을 추천드립니다.
'Fundamentals > Linear Algebra' 카테고리의 다른 글
[Linear Algebra] Lecture 11-(1) 행렬 공간(Matrix Spaces) (14) | 2017.02.13 |
---|---|
[Linear Algebra] Lecture 10 네 개의 주요 부분 공간(Fundamental subspaces) (18) | 2017.02.06 |
[Linear Algebra] Lecture 8 선형방정식 Ax=b의 완전해(complete solution)와 Rank (21) | 2017.01.11 |
[Linear Algebra] Lecture 7 Null Space계산 알고리즘. Ax=0과 Pivot variable 그리고 Free variable (41) | 2017.01.03 |
[Linear Algebra] Lecture 6 Column Space와 영공간(Null Space) (27) | 2016.12.27 |