데이터사이언스 공부를 하기 위해서 선형대수는 필수기 때문에 울며 겨자먹기로 공부 중이다. (수학 못하고 싫어해서...)
선형대수를 처음 공부하고 수학을 못하는 나를 기준으로 이해한 점을 작성해본다.
행렬, 매트릭스 등의 기본 개념은 안다고 가정한다.
수학적 설명을 위한 글이 아닌 속성 이해를 위한 글이므로, 정확한 개념은 다른 글을 참고해주시길 바랍니다.
표기 (예쁘게 표기할 자신이 없어서 아래처럼 씁니다.)
- Col: Column
- [1 2 3 / 4 5 6]: 각 row를 의미, 즉 row1은 [123] row2는 [456]이라는 뜻
- 대문자 알파벳은 행렬, 소문자 알파벳은 스칼라, v는 벡터를 의미합니다.
- ==는 같다는 의미입니다. 변수++는 변수에 1을 더한다는 의미입니다.
# Rank란
Column space의 dimension을 말한다.
즉 Column vector가 span하는 벡터 공간의 차원을 의미한다. (이하 Column == Col 로 표기)
짧게 말하면 basis의 개수다. (== independent한 행의 개수)
- Column vector?
# Column vector?
- 행렬의 col을 벡터로 표현한 것이다.
- 벡터가 모이면 행렬이 된다.
- [1 2 3 / 4 5 6]의 col vector는 [1 2 3]과 [4 5 6]이다. 그냥 행렬에서 세로들을 띄어서 보면 됨.
- Span?
# Span?
- vector들이 표현하는 공간
- 각 벡터에 스칼라배를 해서 표현할 수 있는 공간을 말한다.
- (ex 1) [1 1], [-1 1] 두 벡터의 span은 2차원 공간 전체다. (두 벡터에 여러 스칼라를 계속 곱하다 보면 대충 보임)
- (ex 2) [1 1] [2 2] 두 벡터의 span은 하나의 선(1차원)이다. (아무리 스칼라배를 해도 y=x 형태의 선 위에 있음)
- 이때, 2차원 vector space에서 2개의 vector가 이루는 공간(span)은 1차원이다 라고 말할 수 있음
- n차원에서 n개의 vector가 있어야 n차원을 span할 수 있다.
- 3차원 공간에서 vector가 두 개만 있으면 2차원만 span 가능 (당연한 말이다)
- Basis?
# Basis
- 우선 Linearly Independent의 의미에 대해서 배워보자.
- 위 span에 대한 설명에서 ex1과 ex2를 보면 두 벡터의 관계는 확연히 구분된다.
- ex1 같은 관계를 Linearly Independent 하다고 한다.
- 그럼 ex2 같은 관계는 Linearly Dependent 하다고 할 수 있겠죠.
- a1v1 + a2v2 같이 벡터를 스칼라배 해서 더하는 걸 Linear Combination이라고 한다.
- 일차결합 한다고 생각하면 된다.
- 이렇게 Linear Combination 했을 때 null-vector(0이라고 생각하면 됨)가 되기 위한 0이 아닌 Scalar가 존재하면 dependent, 0밖에 없으면 independent 하다.
- [1 1] [2 2]: a1v1 + a2v2 = 0 식을 세워보면 a1=2, a2=1이면 둘이 더했을 때 성립한다 (null vector를 만들 수 있다)
- 그럼 두 벡터는 dependent
- [1 0] [0 1]: a1v1 + a2v2 = 0을 만족시키는 0이 아닌 a1 a2는 없다. 둘 다 0이어야만 성립한다.
- 그럼 두 벡터는 independent
- 이때 이 Linearly Independent vector들을 basis라고 한다.
- 왜 basis라고 하냐면, 이 vector들이 공간을 이루는 필수 구성 요소이기 때문이다.
- [1 0] [0 1]만 있으면 2차원 전체를 나타낼 수 있으므로
기하학적인 의미로 생각해보자
- A의 col vector들이 나타내는 공간은? 2차원 => rank(A) = 2
- B의 col vector들이 나타내는 공간은? 1차원 => rank(B) = 1
(참고로 col vector들이 나타내는 공간을 column space라고 한다.)
- 비슷하게 생각해보면 [1 0 1 / 0 1 1]의 col space는 2차원이 되기 때문에 rank도 2가 된다.
또, 항상 independent col의 개수 == independent row 이다.
그래서 col과 row의 Rank는 같다. 즉 row space의 dimension이라 볼 수 있다.
-> rank(A) == rank(A의 전치행렬, AT)
그래서 2x3 행렬의 rank는 무조건 2보다 작거나 같다!
# Rank 구하는 법
Independeent Col(또는 Row)의 개수가 rank이므로, 이 개수를 구해도 된다.
하지만 나는 자신이 없으므로 공식을 쓴다.
- 1열에 0이 아닌 값이 존재하면 -> basis++
- 2열이 1열의 스칼라배가 아니라면 -> basis++
- 3열이 1열과 2열의 일차결합이 아니라면(dependent하다면) -> basis++
- 위 과정 반복 후 basis 개수가 Rank 값
예시로 풀어보자
- [1 1 1 1 / 1 2 -1 1]
1. [1 1]: 1열에 0이 아닌 값이 존재하므로 -> basis = 1
2. [1 2]: 2열이 1열의 스칼라배가 아니므로 -> basis = 2
3. [1 -1]: a[1 1] + b[1 2] = [1 -1]을 만족시키는 a=3, b=-2가 존재 -> basis에 포함하지 않음
4. [1 1]: 1열의 스칼라배이므로 -> basis에 포함하지 않음
즉, rank = 2
- [1 3 8 / 1 2 6 / 0 1 2]
1. [1 1 0]: 1열에 0이 아닌 값이 존재하므로 -> basis = 1
2.[3 2 1]:1열의 스칼라배가 아니므로 -> basis = 2
3. [8 6 2]: a[1 1 0] + b[3 2 1] = [8 6 2]를 만족시키는 a=2, b=2가 존재하므로 -> basis 아님
즉, rank = 2
# 기하학적인 의미
이런식으로 이해한 후, 엄청난 영상을 발견했다.
https://youtu.be/bvB5uQXX7WY?si=I_CjOaOK5upgqJOo
선형대수학의 기하학적인 의미를 직관적으로 설명해주는 영상이다.
2, 3, 6, 7장을 꼭 시청해보길 바란다.
핵심적인 내용을 정리해보자면,
Ax = v
는 하나의 선형변환으로 볼 수 있다.
즉, [1 0; 0 1] -> [3 2; 0 2]로 변환하듯이 [1 0]과 [0 1]만 있으면 모든 2차원을 나타낼 수 있다.
그래서 이 벡터 둘을 Basis(기저벡터)라고 하는 것이다.
(이런 식으로 연산을 선형변환으로 이해하다보면, 왜 Column Space니 뭐니 하면서 column을 중요하게 다루는지 느껴진다)
이때 [1 0; 2 0]으로의 변환을 봐보자.
이 두 벡터(행렬의 Column들을 벡터로 보세요)는 하나의 직선만 표현할 수 있다.
즉, 2차원이 1차원으로 변형된 것이다. (차원이 축소, 찌그러졌다)
[1 0]과 [0 1] 두 기저벡터가 그리는 사각형의 넓이는? 1이다.
그럼 [1 0] [2 0]가 그리는 사각형의 넓이는? 0이다 (직선)
이때 이 기저벡터가 그리는 사각형의 넓이 변화를 Determinant라고 한다.
det(A) = 0이면 2차원이 1차원(선), 0차원(점)으로 찌그러졌다는 것을 의미한다.
그리고 이 형 변환 후 차원을 Rank라고 한다.
2차원이 1차원이 됐으면 rank(A) = 1, 10차원이 7차원이 됐으면 rank(A) = 7
(그래서 당연히 mxm 행렬의 rank는 m을 초과할 수 없다. 2차원 행렬을 아무리 선형변환 해본들 3차원을 만들 순 없으니까...)
추가로 이때 공간 변형이 없으면, 즉 m == rank면 full rank라고 한다.
위에서 basis 설명처럼, 각 column은 기저벡터의 위치를 나타낸다.
결국 이 변형된 기저벡트의 생성이 이 행렬의 모든 출력을 의미하게 된다.
그리고 이 모든 출력을 Column Space라고 하는 것이다.
그럼, 2차원 행렬 A가 1차원으로 찌그러졌다고 하자.
이때 Ax=v 의 식이 해를 가지려면을 생각해봅시다.
쉽게 위의 예를 가지고 오자. [1 0] [2 0]으로 찌그려졌을 때, 해가 있으려면 어떻게 해야 할까?
v가 위 직선(좌표편면으로 보면 y=0) 위에 있으면 된다.
그래서 column space가 나타낼 수 있는 차원과 rank가 같으면(선형변환으로 발생할 수 있는 차원이 같으면)
결국 v를 표현할 수 있다는 말이고(차원이 같으니까) 그래서 해가 있을 수 있다는 뜻이다.
그럼 반대로 rank가 더 작으면? 내가 표현할 수 없는 차원 안에(아래에) 있으므로 해가 무한개로 있을 수 있다.
(3차원 안에 직선이 있다면, 해당 직선을 품고 있는 평면은 무수히 많은 것과 같은 원리)
이 해의 개수에 대한 이야기는 다음 포스트에서 더 자세히 다루었다.
이 포스트는 해당 영상을 보기 전에 작성한 글이라 이런 내용을 빠져있다.
이 내용을 상상하면서 보면 더 좋을 것 같다.
https://kongjino.tistory.com/34
[선형대수] Rank에 따른 Ax=b의 해의 개수 구하기
이론적인 내용(가우스 소거법, RREF니 다 무시)은 제외하고 개념적인 내용만 이해해보려고 한다.수학 문제를 풀기 위한 이해가 아니라, 논리적으로 개념을 이해하기 위한 글. rank에 대한 자세한
kongjino.tistory.com
난 속성으로 이해해야 해서 더 이상의 이해는 우선 접어두었다.
좀 더 진도가 나가면 더 잘 이해할 수 있지 않을까?
참고
https://ok-lab.tistory.com/176
[Linear Algebra] 선형대수학에서의 랭크(Rank)
선형대수학을 다루다보면 랭크(Rank)라는 말을 많이 들어봤을 것이다. 랭크는 열공간(Column Space)의 차원을 의미한다. 일단 이를 이해하기 위해서는 일차독립에 대해서 먼저 알고 있어야 한다. 우
ok-lab.tistory.com
https://youtu.be/HMST0Yc7EXE?si=uKZQEmWs5xOyoQZ9
'수학' 카테고리의 다른 글
[선형대수] Rank에 따른 Ax=b의 해의 개수 구하기 (0) | 2024.10.19 |
---|