71강 문제 4에서 두 벡터로 평면 하나를 만들었습니다. 그런데 이런 일이 생깁니다.
벡터가 셋인데 둘째가 첫째의 배입니다. 둘째를 빼도 생성되는 집합이 그대로입니다. 셋이 만드는 것과 둘이 만드는 것이 같으니, 하나는 군더더기입니다.
반대 방향의 문제도 있습니다. 벡터가 너무 적으면 전체를 만들지 못합니다.
그러면 이렇게 묻게 됩니다.
군더더기 없이, 그러면서 빠짐없이 만드는 집합은 무엇인가.
이 강의가 그 집합을 정의합니다. 군더더기가 없는 상태가 일차독립이고, 그러면서 전체를 생성하면 기저입니다. 그리고 기저를 잡으면 모든 벡터가 유일한 좌표를 갖게 됩니다.
이것이 73강의 차원으로 이어지고, 75강에서 좌표계를 바꾸는 이야기가 되며, 84강에서 "좋은 좌표계를 고르는 것"이 고유값 문제의 정체임이 드러납니다.
문제. , , 을 봅니다.
(1) 셋 중 하나가 나머지로 만들어집니까?
(2) 그 사실을 ""의 형태로 쓰세요.
(3) 이런 관계를 찾는 일반적인 방법을 세우세요.
생각의 실마리. (2)에서 "하나가 나머지로 만들어진다"를 등식 한쪽으로 몰면 오른쪽이 영벡터인 식이 됩니다. 그러면 어느 것이 만들어지는지 미리 정하지 않아도 되어 대칭적입니다.
풀이. (1) 입니다.
(2) 옮겨 적습니다.
계수가 모두 은 아닌 관계식입니다. 검산에서 을 곱하면 영벡터가 나옵니다.
(3) 벡터들을 열로 놓아 행렬 를 만들면, 그런 관계는 정확히
의 비자명해입니다. 68강의 동차계이며 소거로 찾습니다.
검산에서 기약행사다리꼴이
이고 피벗 열이 입니다. 둘째 열에 피벗이 없으므로 자유변수가 있고 비자명해가 존재합니다.
이 문제에서 배우는 것: 일차독립.
일차독립과 종속. 벡터 에 대해
의 해가 뿐이면 일차독립이고, 그렇지 않으면 일차종속입니다.
왜 이렇게 정의하는가. "하나가 나머지로 만들어진다"를 그대로 쓰면 어느 것인지 지정해야 하고, 계수가 인 경우를 따로 다뤄야 합니다. 위의 형태는 모든 벡터를 대칭적으로 다루며 판정이 동차계 풀이로 환원됩니다.
두 정의가 같음을 확인합니다. 종속이면 어떤 이 있고
이므로 가 나머지로 만들어집니다. 역도 자명합니다.
에서의 판정법을 정리합니다.
판정법. 벡터들을 열로 놓아 를 만들면
조건 결론 일차독립 (벡터 개수) 일차독립 모든 열이 피벗 열 일차독립
69강의 가역 동치 조건과 같은 목록입니다. 정사각인 경우 "일차독립"과 "가역"이 같은 뜻이었습니다.
주의할 것이 둘 있습니다.
첫째, 영벡터가 있으면 무조건 종속입니다. 이므로 계수 하나만 이 아니어도 됩니다.
둘째, 벡터가 하나뿐이면 가 독립인 것과 이 같습니다. 71강 심화 1의 (마)에서 이면 이거나 임을 보였는데, 그것이 여기서 쓰입니다.
바로 확인 1.
확인 1-1. 일차독립의 정의를 쓰세요.
답. 일차결합이 영벡터가 되는 경우가 모든 계수가 일 때뿐입니다.
확인 1-2. 가 독립입니까?
답. 아닙니다. 둘째가 첫째의 배입니다.
확인 1-3. 영벡터가 포함된 집합이 언제나 종속인 이유를 쓰세요.
답. 영벡터의 계수만 로 두어도 일차결합이 영벡터가 되기 때문입니다.
문제. , , 을 봅니다.
(1) 일차독립인지 판정하세요.
(2) 를 이 셋의 일차결합으로 쓰세요.
(3) 그런 표현이 여럿 있습니까?
생각의 실마리. (3)이 이 문제의 핵심입니다. 표현이 둘 있다고 가정하고 빼 보면 무엇이 나오는지 확인합니다.
풀이. (1) 열로 놓고 소거하면 기약행사다리꼴이 단위행렬이고 피벗이 세 개입니다. 이므로 독립입니다.
(2) 를 풀면
입니다. 검산에서 확인됩니다.
(3) 없습니다. 두 표현이 있다고 하면
인데 독립이므로 모든 입니다. 표현이 유일합니다.
이 문제에서 배우는 것: 독립은 유일성입니다.
핵심. 일차독립이면 그 벡터들로 만들 수 있는 벡터의 표현 방법이 유일합니다.
증명이 짧습니다. 두 표현의 차가 영벡터의 표현이 되고, 독립이면 그것은 계수가 모두 인 것뿐이기 때문입니다.
68강의 구조가 여기서 반복됩니다.
| 68강 | 지금 |
|---|---|
| 두 해의 차가 동차해 | 두 표현의 차가 영벡터의 관계식 |
| 이면 해가 유일 | 독립이면 표현이 유일 |
같은 논리입니다. 실제로 표현의 계수를 구하는 것은 를 푸는 일이고, 독립이란 이니 유일성이 68강의 정리에서 곧바로 나옵니다.
독립과 종속의 차이를 정리합니다.
| 독립 | 종속 | |
|---|---|---|
| 의 표현 | 계수가 모두 인 것뿐 | 다른 것도 있습니다 |
| 일반 벡터의 표현 | 유일합니다 | 무수히 많습니다 |
| 하나를 빼면 | 생성이 줄어듭니다 | 그대로일 수 있습니다 |
| 좌표 | 정의됩니다 | 정의되지 않습니다 |
넷째 줄이 이 강의의 목적지입니다. 좌표를 매기려면 표현이 유일해야 하고, 그러려면 독립이어야 합니다. 문제 4에서 이 이야기를 마칩니다.
바로 확인 2.
확인 2-1. 독립이면 표현이 유일한 이유를 쓰세요.
답. 두 표현의 차가 영벡터의 관계식이 되고 독립이면 계수가 모두 이기 때문입니다.
확인 2-2. 종속인 집합으로 표현하면 표현이 몇 개입니까?
답. 만들 수 있는 벡터라면 무수히 많습니다.
확인 2-3. 좌표를 매기려면 왜 독립이 필요합니까?
답. 표현이 유일해야 좌표가 잘 정의되기 때문입니다.
문제. 에서 벡터를 개 아무렇게나 고릅니다.
(1) 독립일 수 있습니까?
(2) 이유를 68강의 결과로 설명하세요.
(3) 일반화하세요.
생각의 실마리. 독립 판정이 의 해를 묻는 것이었습니다. 의 크기를 보면 68강의 어떤 정리가 적용되는지 보입니다.
풀이. (1) 없습니다.
(2) 네 벡터를 열로 놓으면 는 입니다. 그러면
이므로 자유변수가 최소 하나 있고 비자명해가 존재합니다. 68강 문제 5에서 미지수가 방정식보다 많은 동차계는 반드시 비자명해를 가진다고 했습니다.
(3) 검산에서 세 경우를 확인합니다.
| 개수 | 계수 | 종속인가 | |
|---|---|---|---|
| 예 | |||
| 예 | |||
| 예 |
무작위로 골라도 예외 없이 종속입니다.
이 문제에서 배우는 것: 개수의 한계.
정리. 에서 벡터 개가 일차독립이면 입니다.
대우로 읽으면 더 유용합니다. 이면 반드시 종속입니다.
이 정리가 왜 중요한지 봅니다. 독립인 집합의 크기에 상한이 생겼습니다. 그러면 "가장 큰 독립 집합"을 생각할 수 있고, 그것이 73강의 차원입니다.
일반 벡터공간에서도 같은 정리가 성립합니다.
교체 정리. 가 으로 생성되면, 의 어떤 독립인 집합도 원소가 개를 넘지 못합니다.
증명의 착상은 이렇습니다. 독립인 가 있다고 하고 이라 가정합니다. 각 는 들의 일차결합이므로 계수를 모으면 행렬 가 되고
입니다. 이므로 에 비자명해가 있고, 그러면
이 되어 들이 종속입니다. 모순입니다.
이 증명은 을 쓰지 않았습니다. 계수만 다뤘으므로 다항식 공간이든 함수 공간이든 그대로 성립합니다.
반대 방향도 있습니다.
생성하려면 충분히 많아야 합니다. 을 생성하려면 벡터가 개 이상이어야 합니다.
이면 가 이고 열공간의 차원이 이하이므로 전체가 될 수 없습니다.
두 방향을 합치면 다음 문제의 정의가 준비됩니다.
| 개수 | 독립 | 생성 |
|---|---|---|
| 가능합니다 | 불가능합니다 | |
| 둘 다 가능하며, 하나가 성립하면 다른 하나도 성립합니다 | ||
| 불가능합니다 | 가능합니다 |
둘째 줄이 특별합니다. 일 때는 독립인지 생성하는지 둘 중 하나만 확인하면 됩니다. 73강에서 증명합니다.
바로 확인 3.
확인 3-1. 에서 벡터 개는 어떻습니까?
답. 반드시 일차종속입니다.
확인 3-2. 그 이유를 동차계로 설명하세요.
답. 미지수가 개, 방정식이 개이므로 비자명해가 존재합니다.
확인 3-3. 를 벡터 개로 생성할 수 있습니까?
답. 없습니다. 생성하려면 개 이상이 필요합니다.
문제. 문제 2의 을 다시 봅니다.
(1) 이 셋이 을 생성합니까?
(2) 임의의 에 수 세 개를 대응시킬 수 있습니까?
(3) 그 대응이 잘 정의되려면 무엇이 필요합니까?
생각의 실마리. (1)은 문제 2에서 이미 확인한 계수로 판정됩니다. (3)에서는 존재와 유일성 두 가지가 다 필요함을 확인합니다.
풀이. (1) 생성합니다. 이므로 열공간이 전체입니다. 69강의 가역 동치 조건에서 "모든 에 대해 해가 존재"와 같습니다.
(2) 됩니다. 에 를 대응시킵니다.
(3) 두 가지가 필요합니다.
| 필요 | 보장하는 것 |
|---|---|
| 생성 | 대응할 수가 존재합니다 |
| 독립 | 그 수가 유일합니다 |
둘 다 있어야 함수가 됩니다.
이 문제에서 배우는 것: 기저와 좌표.
기저. 벡터공간 의 부분집합 이
- 일차독립이고
- 를 생성하면
를 의 기저라 합니다.
좌표. 기저 에 대해 인 계수는 유일하며, 이것을 의 에 대한 좌표라 하고 으로 씁니다.
기저를 잡는 것은 좌표계를 놓는 일입니다. 그러면 추상적인 벡터가 수의 나열이 되어 계산할 수 있습니다.
가장 익숙한 기저는 표준기저입니다.
에서 이므로 성분이 곧 좌표입니다. 그래서 평소에는 좌표와 벡터를 구별하지 않습니다.
그런데 기저는 여럿입니다. 문제 2의 도 기저이며, 같은 벡터 가 표준기저에서는 이고 기저에서는 입니다.
같은 벡터, 다른 좌표입니다. 75강에서 좌표 변환을 다룹니다.
기저가 여럿이면 자연스러운 질문이 나옵니다.
기저마다 원소 개수가 다를 수 있습니까?
없습니다. 문제 3의 교체 정리에서 따라오며, 그 공통 개수가 차원입니다. 73강의 주제입니다.
기저를 고르는 이유도 미리 적어 둡니다. 문제에 맞는 기저를 고르면 계산이 쉬워집니다.
| 기저 | 유리한 곳 |
|---|---|
| 표준기저 | 성분 계산 |
| 정규직교기저 | 좌표가 내적으로 나옵니다 (80강) |
| 고유벡터 기저 | 행렬이 대각이 됩니다 (85강) |
| 푸리에 기저 | 미분이 곱셈이 됩니다 (60강) |
넷째 줄이 59강과 60강에서 한 일입니다. 미분방정식이 어려운 이유가 미분 연산 때문인데, 푸리에 기저에서는 미분이 를 곱하는 일이 되어 대수 문제가 됩니다. 좌표계를 잘 고른 결과입니다.
바로 확인 4.
확인 4-1. 기저의 두 조건을 쓰세요.
답. 일차독립이고 전체를 생성합니다.
확인 4-2. 두 조건이 각각 무엇을 보장합니까?
답. 생성은 좌표의 존재를, 독립은 유일성을 보장합니다.
확인 4-3. 의 표준기저에서 의 좌표를 쓰세요.
답. 그대로입니다.
문제. 차수 이하 다항식 공간 를 봅니다.
(1) 이 기저입니까?
(2) 은 어떻습니까?
(3) 는 어떻습니까?
생각의 실마리. 71강 문제 1에서 다항식을 계수 벡터로 옮겼습니다. 그러면 의 문제가 되어 소거로 판정할 수 있습니다.
풀이. (1) 기저입니다. 계수 벡터가 이므로 독립이고, 임의의 을 만듭니다. 이것을 의 표준기저라 합니다.
(2) 기저입니다. 계수 벡터를 열로 놓으면
이고 위삼각이며 대각에 이 없으므로 계수가 입니다. 검산에서 확인됩니다.
을 이 기저로 쓰면 좌표가 입니다.
(3) 기저가 아닙니다. 이므로 종속입니다. 검산에서 계수가 입니다.
이 문제에서 배우는 것: 계수 벡터로 옮깁니다.
방법. 유한차원 벡터공간에서 기저를 하나 잡으면, 모든 문제가 의 문제가 됩니다.
에서 세 다항식의 독립을 판정하는 일이 에서 세 벡터의 독립을 판정하는 일과 완전히 같습니다. 71강 문제 1의 동형 대응이 그것을 보장합니다.
여러 공간의 표준기저를 정리합니다.
| 공간 | 표준기저 | 개수 |
|---|---|---|
| \mathbb{R}^ | \mathbf{e}_{1},\dots,\mathbf{e}_ | |
| P_ | 1,x,\dots,x^ | |
| M_ | (만 ) | |
| 대칭 | \begin{pmatrix}1&0\\ 0&0\end{pmatrix},\begin{pmatrix}0&1\\ 1&0\end{pmatrix},\begin{pmatrix}0&0\\ 0&1\end |
**둘째 줄에서 개수가 **인 것을 놓치기 쉽습니다. 상수항까지 세어야 합니다.
함수 공간은 사정이 다릅니다. 는 무한차원이므로 유한 기저가 없고, 71강 심화 4에서 본 대로 극한을 다뤄야 합니다. 그래서 함수 공간에서는 "기저"라는 말을 조심해서 씁니다. 유한 일차결합만 허용하는 대수적 기저와, 수렴하는 무한합을 허용하는 직교기저가 다릅니다. 59강의 푸리에 기저는 후자입니다.
바로 확인 5.
확인 5-1. 의 차원을 예상해 쓰세요.
답. 표준기저가 이므로 입니다.
확인 5-2. 가 기저가 아닌 이유를 쓰세요.
답. 셋째가 앞의 둘의 일차결합이라 종속입니다.
확인 5-3. 다항식의 독립을 어떻게 판정합니까?
답. 계수 벡터로 옮겨 소거합니다.
| 개념 | 내용 |
|---|---|
| 일차독립 | 의 해가 뿐 |
| 일차종속 | 비자명한 관계식이 있습니다 |
| 기저 | 독립 + 생성 |
| 좌표 | 기저에 대한 유일한 계수 |
| 표준기저 | 의 , 의 x^ |
| 판정 () | 방법 |
|---|---|
| 독립 | 열로 놓고 개수 |
| 종속의 관계식 | 의 비자명해 |
| 생성 | |
| 기저 | 정사각이고 가역 |
| 개수와 결론 | |
|---|---|
| 반드시 종속입니다 | |
| 생성하지 못합니다 | |
| 독립과 생성이 서로를 함의합니다 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 종속을 "하나가 "으로 오해합니다 | 비자명한 관계식이 있다는 뜻입니다 |
| 영벡터를 포함하고 독립이라 합니다 | 언제나 종속입니다 |
| 의 차원을 이라 합니다 | 입니다 |
| 생성만 확인하고 기저라 합니다 | 독립도 필요합니다 |
문제 6. 일차독립의 정의를 쓰세요.
답. 일차결합이 영벡터가 되는 경우가 계수 전부 일 때뿐입니다.
문제 7. 이 독립인지 판정하세요.
답. 종속입니다. 둘째가 첫째의 배입니다.
문제 8. 은 어떻습니까?
답. 독립입니다. 행렬식이 입니다.
문제 9. 에서 벡터 개의 독립 여부를 단언하세요.
답. 반드시 종속입니다.
문제 10. 영벡터를 포함한 집합의 독립 여부를 쓰세요.
답. 언제나 종속입니다.
문제 11. 기저의 두 조건과 각각이 보장하는 것을 쓰세요.
답. 독립은 좌표의 유일성을, 생성은 존재를 보장합니다.
문제 12. 에서 에 대한 의 좌표를 구하세요.
답. 이므로 입니다.
문제 13. 의 표준기저와 그 개수를 쓰세요.
답. 이며 개입니다.
문제 14. 의 표준기저 개수를 쓰세요.
답. 개입니다.
문제 15. 독립이면 표현이 유일한 이유를 쓰세요.
답. 두 표현의 차가 영벡터의 관계식이 되기 때문입니다.
문제 16. 종속인 벡터 하나를 빼면 생성이 어떻게 됩니까?
답. 나머지로 만들어지는 벡터를 빼면 생성이 변하지 않습니다.
문제 17. 를 생성하려면 벡터가 최소 몇 개 필요합니까?
답. 개입니다.
문제 18. 다항식의 독립을 판정하는 방법을 쓰세요.
답. 계수 벡터로 옮겨 행렬의 계수를 확인합니다.
심화 1. 열공간의 기저를 원래 열에서 고르는 방법을 밝히고 그 근거를 쓰세요.
풀이. 의 열공간에 대한 기저가 필요할 때, 기약행사다리꼴의 피벗 열에 해당하는 원래 열들을 고르면 됩니다.
검산의 예를 봅니다.
피벗 열이 이므로 의 첫째와 셋째 열을 고릅니다.
계수가 로 확인되어 독립이고, 이므로 열공간 전체를 생성합니다.
근거가 68강 심화 1에 있습니다. 행 연산은 열들 사이의 일차 관계를 보존합니다. 그러니 RREF에서 어떤 열이 앞선 열들의 일차결합인지가 원래 행렬에서도 똑같습니다.
RREF에서 피벗 열들은 단위벡터라 독립이고, 피벗 아닌 열들은 앞선 피벗 열들의 일차결합입니다. 관계가 보존되므로 원래 행렬에서도 그대로입니다.
중요한 주의 하나. RREF의 열 자체를 기저로 쓰면 안 됩니다.
행 연산은 열공간을 바꿉니다. RREF의 열공간은 원래와 다른 공간이며, 보존되는 것은 열들 사이의 관계이지 열 자체가 아닙니다.
검산에서 이것이 확인됩니다. RREF 넷째 열이 인데, 이것은 원래 행렬에서도 넷째 열이 첫째의 배에서 셋째의 배를 뺀 것이라는 뜻입니다.
맞습니다. 관계식의 계수를 RREF에서 그대로 읽을 수 있습니다.
| 무엇 | 보존되는가 |
|---|---|
| 열들 사이의 일차 관계 | 예 |
| 열공간 자체 | 아닙니다 |
| 행공간 | 예 (74강) |
| 영공간 | 예 |
심화 2. 함수의 일차독립을 판정하는 방법을 논하세요.
풀이. 함수 공간에서 가 독립인지 묻는 것은
의 해가 자명해뿐인지 묻는 것입니다. **"모든 에 대해"**가 중요합니다. 특정 에서만 인 것으로는 부족합니다.
방법 1: 점을 골라 평가합니다.
값을 개 이상 고르면 의 연립방정식이 됩니다. 그 계수행렬의 계수가 이면 독립이 증명됩니다.
검산에서 을 에서 평가한 행렬의 계수가 입니다. 따라서 독립입니다.
주의: 이 방법은 한쪽만 결론짓습니다. 계수가 보다 작다고 종속인 것은 아닙니다. 고른 점들에서만 우연히 관계가 생겼을 수 있습니다.
| 결과 | 결론 |
|---|---|
| 계수 | 독립입니다 (확정) |
| 계수 | 알 수 없습니다 (다른 점을 시도합니다) |
방법 2: 특별한 구조를 씁니다.
다항식이면 서로 다른 점 개에서 평가한 행렬이 반데르몬드 행렬이고, 그 행렬식이
입니다. 검산에서 점이 일 때 행렬식이 로 이 아니고, 점이 처럼 겹치면 입니다. 점이 모두 다르면 언제나 독립입니다.
방법 3: 종속을 보이려면 관계식을 제시합니다.
검산의 마지막에서 의 계수가 이고 최소 특이값이 입니다. 실제로 덧셈정리에서
이므로 종속임이 항등식으로 증명됩니다. 수치는 그것을 확인해 줄 뿐입니다.
방법 4: 미분을 씁니다.
개의 함수가 번 미분 가능하면 론스키 행렬식을 봅니다.
어떤 에서 이면 독립입니다. 역은 일반적으로 성립하지 않습니다. 미분방정식에서 해의 독립을 확인할 때 쓰이며 100강대에서 다시 봅니다.
심화 3. 독립인 집합을 기저로 확장하는 방법과 생성하는 집합에서 기저를 뽑는 방법을 논하세요.
풀이. 두 방향이 있습니다.
확장: 독립 → 기저.
가 유한차원이고 가 독립이면, 에 벡터를 더해 기저를 만들 수 있습니다.
절차는 이렇습니다. 이면 밖의 벡터 을 고릅니다. 그러면 이 여전히 독립입니다.
왜 독립인가. 관계식 에서 이면
가 되어 고른 방식에 모순입니다. 따라서 이고, 그러면 의 독립성에서 나머지도 입니다.
문제 3의 정리에 의해 이 과정은 유한 번에 끝납니다. 독립인 집합의 크기에 상한이 있기 때문입니다.
축소: 생성 → 기저.
가 를 생성하지만 종속이면, 벡터를 빼서 기저를 만들 수 있습니다.
종속이므로 어떤 가 나머지의 일차결합입니다. 그것을 빼도 생성이 변하지 않습니다. 가 쓰인 자리마다 나머지로 바꿔 쓰면 되기 때문입니다.
독립이 될 때까지 반복하면 기저가 됩니다.
두 방향을 정리합니다.
| 출발 | 조작 | 도착 |
|---|---|---|
| 독립 | 밖에서 더합니다 | 기저 |
| 생성 | 종속인 것을 뺍니다 | 기저 |
따라오는 결과가 중요합니다.
모든 유한차원 벡터공간에 기저가 존재합니다.
가 유한 개로 생성되면 축소해서 기저를 얻습니다. 그리고 의 경우 기저는 공집합이며 차원이 입니다.
축소 방향의 실용적 구현이 심화 1입니다. 소거해서 피벗 열을 고르는 것이 종속인 열을 버리는 절차입니다.
심화 4. 수치적으로 독립을 판정할 때의 어려움을 논하세요.
풀이. 이론에서는 독립과 종속이 분명히 갈립니다. 부동소수점에서는 그렇지 않습니다.
두 벡터를 봅니다.
수학적으로 독립입니다. 입니다. 그런데 배정밀도에서 은 에 대한 상대오차 수준이므로, 측정이나 계산에서 나온 값이라면 그 차이가 잡음일 수 있습니다.
그래서 실무에서는 **"독립인가"가 아니라 "얼마나 독립인가"**를 묻습니다.
| 지표 | 뜻 |
|---|---|
| 최소 특이값 | 에 가까울수록 종속에 가깝습니다 |
| 조건수 | 최대/최소 특이값의 비 |
| 수치 계수 | 문턱보다 큰 특이값의 개수 |
np.linalg.matrix_rank가 하는 일이 셋째 줄입니다. 특이값을 계산해 기계 정밀도 기준 문턱보다 큰 것을 셉니다. 소거로 피벗을 세는 것보다 안정적이기 때문입니다.
검산의 마지막에서 의 최소 특이값이 으로 출력되었습니다. 이 경우는 정확히 종속이므로 이론과 수치가 일치합니다. 그러나 계수를 대신 미세하게 어긋난 값으로 두면 특이값이 아주 작지만 이 아니게 되고, 그때 "독립"이라고 판정하는 것이 의미가 있는지가 문제입니다.
이 문제가 실제로 중요한 곳이 있습니다.
| 상황 | 나타나는 방식 |
|---|---|
| 회귀의 다중공선성 | 설명변수가 거의 종속 |
| 특징 선택 | 중복된 특징 제거 |
| 저계수 근사 | 어디서 자를지 결정 |
| 조건수 진단 | 문제가 얼마나 민감한가 |
첫째 줄이 대표적입니다. 두 설명변수가 거의 같은 정보를 담으면 회귀계수가 크게 흔들립니다. 67강 심화 6에서 본 조건이 나쁜 문제이며, 82강에서 능형회귀로 대응합니다.
교훈은 이렇습니다. 독립과 종속은 이론에서 이분법이지만, 데이터에서는 연속적인 정도의 문제입니다. 그 정도를 재는 도구가 88강의 특이값이며, 91강의 조건수와 이어집니다.
심화 5. 기저가 여럿일 때 어느 것을 고를지의 기준을 논하세요.
풀이. 문제 4에서 기저가 여럿임을 보았습니다. 무엇을 기준으로 고릅니까.
기준 1: 계산이 쉬운가.
정규직교기저이면 좌표가 내적으로 즉시 나옵니다.
일반 기저에서는 연립방정식을 풀어야 합니다. 검산의 기저에서 를 얻으려면 계를 풀었습니다. 정규직교이면 내적 세 번이면 끝납니다. 80강에서 그람슈미트로 만드는 법을 배웁니다.
기준 2: 문제의 구조를 드러내는가.
행렬 의 고유벡터로 기저를 잡으면 가 대각행렬이 되어 거듭제곱과 미분방정식이 쉬워집니다. 66강 심화 4의 피보나치가 그 예이며, 85강에서 다룹니다.
기준 3: 수치적으로 안정한가.
심화 4에서 본 대로, 기저 벡터들이 서로 거의 평행하면 좌표 계산이 불안정합니다. 정규직교기저가 조건수 로 가장 안전합니다.
기준 4: 의미가 있는가.
주성분분석은 데이터의 분산이 큰 방향으로 기저를 잡습니다. 좌표가 "이 데이터에서 무엇이 주로 변하는가"를 뜻하게 되어 해석이 가능해집니다. 89강의 주제입니다.
네 기준을 정리합니다.
| 기준 | 대표 기저 | 강의 |
|---|---|---|
| 계산 편의 | 정규직교 | 80 |
| 구조 노출 | 고유벡터 | 85 |
| 수치 안정 | 정규직교 | 91 |
| 해석 가능 | 주성분 | 89 |
앞으로 이 과목의 상당 부분이 "좋은 기저 찾기"입니다. 80강의 QR, 85강의 대각화, 88강의 특이값 분해가 모두 그 작업이며, 각 분해는 "어떤 기저에서 보면 이 행렬이 단순해지는가"에 대한 답입니다.
심화 6. 일차독립이 확률·기하·부호이론에서 어떻게 나타나는지 정리하세요.
풀이. 같은 개념이 여러 분야에서 다른 이름으로 나타납니다.
확률: 다중공선성입니다.
설명변수 벡터들이 종속이면 가 특이해 회귀계수가 유일하지 않습니다. 68강의 언어로 자유변수가 남는 것이며, 어떤 조합이 데이터를 설명하는지 결정할 수 없습니다.
82강에서 이 조건이 최소제곱 해의 유일성 조건으로 다시 나옵니다.
기하: 축퇴입니다.
세 점이 한 직선 위에 있으면 삼각형이 되지 않고, 네 점이 한 평면 위에 있으면 사면체가 되지 않습니다. 65강의 삼중곱이 이 되는 경우이며, 위치벡터의 차가 종속이라는 뜻입니다.
79강에서 행렬식과 부피의 관계로 정식화됩니다.
부호이론: 오류정정 능력입니다.
71강 심화 6에서 위의 선형대수를 언급했습니다. 검사행렬 의 열들이 어떤 개를 골라도 독립이면, 그 부호는 개까지의 오류를 검출합니다.
독립성의 정도가 곧 오류정정 능력입니다.
보간: 유일성입니다.
서로 다른 개의 점에서 값을 주면 차수 이하의 다항식이 유일하게 결정됩니다. 심화 2의 반데르몬드 행렬이 가역이기 때문이며, 점이 겹치면 무너집니다.
네 분야를 한 표로 봅니다.
| 분야 | 독립일 때 | 종속일 때 |
|---|---|---|
| 회귀 | 계수가 유일합니다 | 결정되지 않습니다 |
| 기하 | 부피가 양수입니다 | 축퇴합니다 |
| 부호 | 오류를 잡습니다 | 못 잡습니다 |
| 보간 | 유일한 다항식 | 없거나 무수히 많습니다 |
**공통 구조는 "유일성"**입니다. 문제 2에서 독립이 표현의 유일성을 준다고 했는데, 네 분야가 모두 그 유일성의 다른 얼굴입니다.
이 강의에서는 numpy만 씁니다. 68강의 rref로 독립을 판정하고, 종속인 경우 관계식까지 읽으며, 다항식과 함수에서도 확인합니다. 종속의 증명은 관계식 하나면 끝나므로 코드가 완결된 증거를 줍니다.
import numpy as np
def rref(M):
R = M.astype(float).copy(); m, n = R.shape; r = 0; piv = []
for c in range(n):
k = None
for i in range(r, m):
if abs(R[i, c]) > 1e-12: k = i; break
if k is None: continue
if k != r: R[[r, k]] = R[[k, r]]
R[r] = R[r] / R[r, c]
for i in range(m):
if i != r and abs(R[i, c]) > 1e-12: R[i] -= R[i, c] * R[r]
piv.append(c); r += 1
if r == m: break
return np.round(R, 10) + 0.0, piv
# --- 문제 1: 종속과 그 관계식 --------------------------------------------
V = np.column_stack([[1.,2.,3.],[2.,4.,6.],[1.,0.,1.]])
R, p = rref(V); print(R.tolist(), p, int(np.linalg.matrix_rank(V)))
# [[1.0, 2.0, 0.0], [0.0, 0.0, 1.0], [0.0, 0.0, 0.0]] [0, 2] 2
c = np.array([-2.,1.,0.]); print(np.round(V@c, 12).tolist()) # [0.0, 0.0, 0.0]
# --- 문제 2: 독립 --------------------------------------------------------
W = np.column_stack([[1.,1.,0.],[0.,1.,1.],[1.,0.,1.]])
Rw, pw = rref(W); print(Rw.tolist(), pw, int(np.linalg.matrix_rank(W)))
# [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]] [0, 1, 2] 3
# --- 문제 3: 개수가 차원을 넘으면 예외 없이 종속 -------------------------
rng = np.random.default_rng(1)
for (n, k) in [(3,4), (2,3), (5,7)]:
X = rng.standard_normal((n, k))
print(n, k, int(np.linalg.matrix_rank(X)), k > int(np.linalg.matrix_rank(X)))
# 3 4 3 True
# 2 3 2 True
# 5 7 5 True
# --- 문제 4: 기저에 대한 좌표 --------------------------------------------
B = np.column_stack([[1.,1.,0.],[0.,1.,1.],[1.,0.,1.]])
v = np.array([2.,3.,4.])
co = np.linalg.solve(B, v); print(np.round(co, 10).tolist()) # [0.5, 2.5, 1.5]
print(np.round(B@co, 10).tolist()) # [2.0, 3.0, 4.0]
print(int(np.linalg.matrix_rank(B)), bool(np.allclose(np.linalg.det(B), 2.0)))
# 3 True
# --- 문제 5: 다항식 공간 -------------------------------------------------
B2 = np.array([[1.,1.,1.],[0.,1.,1.],[0.,0.,1.]]) # 1, 1+x, 1+x+x^2
print(int(np.linalg.matrix_rank(B2))) # 3
target = np.array([2.,-1.,3.]) # 2 - x + 3x^2
print(np.round(np.linalg.solve(B2, target), 10).tolist()) # [3.0, -4.0, 3.0]
B3 = np.column_stack([[1.,0.,0.],[0.,1.,0.],[2.,3.,0.]]) # 1, x, 2+3x
print(int(np.linalg.matrix_rank(B3))) # 2 (종속)
# --- 심화 1: 열공간 기저는 원래 열에서 고릅니다 --------------------------
A = np.column_stack([[1.,2.,3.],[2.,4.,6.],[1.,0.,1.],[0.,1.,1.]])
Ra, pa = rref(A); print(Ra.tolist(), pa)
# [[1.0, 2.0, 0.0, 0.5], [0.0, 0.0, 1.0, -0.5], [0.0, 0.0, 0.0, 0.0]] [0, 2]
basis = A[:, pa]; print(basis.tolist(), int(np.linalg.matrix_rank(basis)))
# [[1.0, 1.0], [2.0, 0.0], [3.0, 1.0]] 2
print(int(np.linalg.matrix_rank(A))) # 2
# --- 심화 2: 반데르몬드는 점이 서로 다를 때 독립 -------------------------
for pts in [np.array([0.,1.,2.]), np.array([0.,1.,1.])]:
Vm = np.vander(pts, 3, increasing=True)
print(pts.tolist(), int(np.linalg.matrix_rank(Vm)),
"%.6f" % float(np.linalg.det(Vm)))
# [0.0, 1.0, 2.0] 3 2.000000
# [0.0, 1.0, 1.0] 2 0.000000
# --- 심화 2: 함수의 독립을 점 평가로 ------------------------------------
t = np.array([0., 1., 2., 3.])
print(int(np.linalg.matrix_rank(np.column_stack([np.ones(4), t, t**2])))) # 3
G = np.column_stack([np.sin(t), np.cos(t), np.sin(t+0.7)])
print(int(np.linalg.matrix_rank(G)),
"%.10f" % float(np.linalg.svd(G, compute_uv=False)[-1]))
# 2 0.0000000000 (덧셈정리로 셋째가 앞의 둘의 결합입니다)
실행하면 주석과 같은 값이 나옵니다. 다섯 곳을 짚어 둡니다.
첫째, 종속인 경우 관계식을 RREF에서 읽을 수 있습니다. 첫 행이 이므로 둘째 열이 첫째의 배라는 뜻이고, 실제로 을 곱하면 영벡터가 나옵니다.
둘째, 독립인 경우 RREF가 단위행렬이 되고 모든 열이 피벗 열입니다.
셋째, 무작위로 골라도 개수가 차원을 넘으면 예외 없이 종속입니다. 세 경우 모두 계수가 에서 멈춥니다. 문제 3의 정리는 우연이 아니라 크기에서 오는 필연입니다.
넷째, 기저에 대한 좌표가 유일하게 나옵니다. 가 기저에서 이고 되돌리면 원래 벡터입니다. 같은 벡터인데 좌표가 다릅니다.
다섯째, 심화 1의 주의가 확인됩니다. 열공간 기저는 의 첫째와 셋째 열인 과 이지, RREF의 열이 아닙니다. 그리고 RREF의 넷째 열 은 원래 행렬에서 넷째 열이 첫째의 배 빼기 셋째의 배라는 관계를 그대로 알려 줍니다.
코드로 할 수 없는 일도 분명히 해 둡니다. 함수의 독립을 점 평가로 확인하는 것은 한쪽만 결론짓습니다. 계수가 면 독립이 확정되지만, 작다고 종속인 것은 아닙니다. 마지막 예에서 계수가 로 나온 것은 우연이 아니라 덧셈정리 때문이며, 그 항등식이 진짜 증명입니다. 또 특이값이 정확히 으로 출력되었지만 부동소수점에서 이것을 문턱 없이 믿으면 안 되며, 그 이야기가 심화 4입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 일차독립 | linearly independent | 자명한 관계식뿐입니다 |
| 일차종속 | linearly dependent | 비자명한 관계식이 있습니다 |
| 기저 | basis | 독립이면서 생성합니다 |
| [\mathbf{v}]_ | 에 대한 좌표 | 유일한 계수입니다 |
| \mathbf{e}_ | 표준기저 | 번째만 입니다 |
| 반데르몬드 | Vandermonde | 점 평가 행렬입니다 |
| 론스키 | Wronskian | 미분으로 만든 행렬식입니다 |
| 다중공선성 | multicollinearity | 설명변수가 거의 종속입니다 |
다음 73강에서는 기저의 크기가 기저를 어떻게 잡든 같다는 사실을 증명합니다. 그 공통 크기가 차원이며, 68강에서 정의한 계수와 정확히 맞물립니다. 그러면 "행으로 센 계수와 열로 센 계수가 같다"는 놀라운 사실도 증명할 수 있게 됩니다.