Lecture 32. 중간 정리 — 행렬을 진단하는 법
A Diagnostic Procedure for Matrices — 서술
지금까지 많은 도구를 배웠다. 행렬식, 고윳값, 대각화, 스펙트럼 정리, 양정치 판정,
조르당 형, 특이값 분해. 그런데 실제로 행렬 하나를 마주쳤을 때 무엇부터 봐야 하는가?
개념을 아는 것과 언제 어느 개념을 꺼내야 하는지 아는 것은 다른 능력이다.
뒤엣것은 따로 배우지 않으면 좀처럼 생기지 않는다. 특히 고윳값과 특이값, 대각화와 SVD,
유사와 합동처럼 서로 인접한 개념들은 나란히 놓고 보지 않으면 평생 헷갈린다.
이번 강의에서는 새로운 내용을 배우지 않는다. 대신 지금까지의 도구를 하나의 판단
절차로 묶고, 헷갈리는 것들을 마주 세우고, 후반부 열네 강의에서 만난 함정들을 한자리에
모은다. 앞으로 계속 쓸 수 있는 진단표를 하나 만들어 두자.
1. 진단 흐름도¶
물어야 할 순서가 있다. 뒤엣것이 앞엣것에 기대기 때문이다.

Figure 1:왼쪽으로 갈수록 좋은 소식이고 오른쪽으로 갈수록 나쁜 소식이다. 다만 오른쪽 끝에는
언제나 SVD가 기다리고 있다.
① 정방인가¶
정방이 아니면 고윳값이라는 것 자체가 정의되지 않는다. Ax=λx 는
들어간 것과 나온 것이 같은 공간에 있어야 쓸 수 있는 식인데, m×n 행렬은
Rn 에서 Rm 으로 보낸다. m=n 이면 같을 수가 없다.
이때는 고민할 것 없이 SVD로 간다. L29에서 본 그대로다.
② 대칭인가¶
정방이면 다음은 대칭이다. A=AT 이면 L25의 스펙트럼 정리가
무조건 적용된다.
S=QΛQT,Q−1=QT (1)의 분해는 고윳값이 전부 실수이고 고유벡터를 직교로 고를 수 있음을
보장한다. 대칭이라는 것을 확인한 순간 나머지는 다 따라온다.
그러면 남는 질문은 고윳값의 부호뿐이다.
전부 λ>0 ⇒ 양의 정부호,전부 λ≥0 ⇒ 양의 준정부호,섞임 ⇒ 부정부호 (2)의 판정은 L27에서 다섯 가지 동치 조건으로 다뤘다.
고윳값, 피벗, 선행 주소행렬식, 에너지 xTSx, S=ATA.
어느 것으로 재도 답이 같다.
③ 고유벡터가 n 개인가¶
대칭이 아니면 여기서 갈린다. 독립인 고유벡터가 n 개 있으면 대각화가 되고,
모자라면 결함 행렬이다(L28).
세는 방법은 랭크다. 고윳값 λ 에 대해
(λ 의 기하적 중복도)=n−rank(A−λI) 이고, (3)의 값을 모든 고윳값에 대해 더한 것이 n 이면 대각화된다.
모자라면 조르당 형이 최선인데, L28에서 보았듯 조르당 형은 수치적으로 존재하지
않는다. 실제로는 그냥 SVD를 쓰는 편이 낫다.
무슨 일이 있어도 묻는 두 가지¶
흐름도 어디로 가든 반드시 재야 하는 것이 둘 있다.
랭크. 네 부분공간의 차원이 전부 랭크 하나에서 나온다(L10).
dimC(A)=r,dimN(A)=n−r,dimC(AT)=r,dimN(AT)=m−r (4)의 네 값을 알면 Ax=b 에 해가 있는지(r=m 인가),
있다면 유일한지(r=n 인가)가 곧바로 정해진다. 랭크가 모자라면 어떤 분해를 쓰든
잃는 것이 생긴다.
조건수. 이것이 없으면 답이 몇 자리까지 믿을 만한지 알 수 없다.
그런데 조건수가 정확히 무엇을 재는 수인지 적어 둔 적이 없다. 여기서 짚고 가자.
Ax=b 를 풀었는데 오른쪽에 δb 만큼 오차가 있었다고 하자.
답에 생기는 오차 δx 는 Aδx=δb 를 만족하므로
∥δx∥=∥A−1δb∥≤∥A−1∥∥δb∥ 이다. 한편 b=Ax 이므로 다음이 성립한다.
∥b∥≤∥A∥∥x∥⟺∥x∥1≤∥b∥∥A∥ (5)의 부등식과 (6)의 부등식을 곱하면
∥x∥∥δx∥≤κ(A)∥A∥∥A−1∥⋅∥b∥∥δb∥ 가 된다. (7)의 부등식이 조건수의 뜻 전부다.
입력의 상대오차가 답에서 최대 몇 배까지 커지는가.
그리고 L29에서 ∥A∥2=σ1 이었고, A−1 의 특이값은
A 의 특이값의 역수이므로 ∥A−1∥2=1/σn 이다. 따라서
κ(A)=∥A∥2∥A−1∥2=σnσ1 이다. κ=108 이면 여덟 자리를 잃을 각오를 하라는 뜻이고, 배정밀도가
열여섯 자리쯤 되니 남는 것은 여덟 자리다.
(8)의 값은 행렬식과 아무 상관이 없다. 이것이 가장 널리 퍼진 오해다.
det(1040010−4)=1,κ=108 det(100I5)=1010,κ=1 (9)의 행렬은 행렬식이 딱 1인데 위험하고,
(10)의 행렬은 행렬식이 백억인데 완벽하게 안전하다.
행렬식은 안전성에 대해 거의 아무것도 말해 주지 않는다.
조건수도 하나가 아니다¶
한 걸음 더 나가야 한다. "이 행렬은 상태가 좋은가"는 사실 하나의 질문이 아니다.
무엇을 물어보려는지에 따라 답이 달라진다.
Aϵ=(3ϵ13) (11)의 행렬은 L28에서 본 그 족이다. ϵ 을 아무리 작게 해도
κ(Aϵ) 은 1.39 근처에서 꿈쩍도 하지 않는다. Ax=b 를
푸는 데는 아무 문제가 없다는 뜻이다.
그런데 고유벡터를 열에 세운 S 의 조건수는 다르다.
κ(S)∼ϵ1 (12)의 값은 ϵ=10−12 에서 106 이다. 재 보면 자릿수까지
정확히 맞는다.

Figure 2:왼쪽은 무작위 행렬 1200개의 행렬식과 조건수다. 아무 관계도 없다.
오른쪽은 같은 행렬에 대한 두 조건수다. 하나는 평평하고 하나는 터진다.
2. 헷갈리는 여섯 쌍¶
고윳값 vs 특이값¶
가장 자주 섞이는 둘이다. 정의부터 다르다.
Ax=λxvsAv=σu (13)의 왼쪽은 방향이 보존되기를 요구하고, 오른쪽은 길이가 얼마나
늘어나는지만 묻는다. 요구가 약한 쪽이 언제나 존재하는 것은 당연한 일이다.
특이값이 어디서 오는지도 다시 적어 두자. L29의 유도에서
ATA=V(ΣTΣ)VT⟹σi2=λi(ATA) 였다. (14)의 오른쪽이 σ 가 언제나 실수이고 음이 아닌 이유다.
ATA 는 무슨 일이 있어도 대칭이고 준정부호이기 때문이다.
둘이 일치하는 조건은 L30에서 확인했다. 정규행렬일 때, 곧 AAT=ATA 일 때다. 대칭행렬은 그중 한 종류일 뿐이고 직교행렬도 정규행렬이다.

Figure 3:빨간 점선이 고유벡터 방향이다. 왼쪽(대칭)에서는 타원의 축 위에 정확히 놓이고
오른쪽(비대칭)에서는 어긋난다. 타원의 축은 언제나 특이벡터의 것이다.
| 고윳값 | 특이값 |
|---|
| 존재 조건 | 정방 | 없음 |
| 실수인가 | 복소수일 수 있다 | 언제나 실수, ≥0 |
| 기하적 뜻 | 방향이 보존되는 배율 | 타원의 반지름 |
| A 와 AT | 같다 | 같다 |
| 둘이 일치하는 때 | 정규행렬 | 정규행렬 |
대각화 vs SVD¶
L30의 6절에서 이미 한 줄로 세웠다. 다시 적으면 이렇다.
AS=SΛvsAV=UΣ (15)의 두 식은 모양이 같다. 다른 것은 오른쪽에 서는 기저행렬이
왼쪽 것과 같아야 하느냐뿐이다. 같기를 고집하면 존재를 잃고, 놓아 주면 존재를 얻는다.
유사 M−1AM vs 합동 MTAM¶
이 둘은 생김새가 비슷해서 가장 위험하다. 보존하는 것이 다르다.
유사:λ 를 전부 보존,합동:λ 의 부호만 보존 왼쪽은 세 줄로 끝난다. Ax=λx 이고 B=M−1AM 이면
B(M−1x)=M−1AMM−1x=M−1Ax=λ(M−1x) 이다. (17)에서 고윳값은 그대로이고 고유벡터만 M−1 로 옮겨
간다(L28).
오른쪽은 그렇게 간단하지 않다.
무작위 M 을 200개 뽑아 확인해 보면 유사는 200번 다 고윳값을 그대로 두고,
합동은 200번 다 부호 개수를 그대로 둔다. 값 자체는 마구 바뀐다.
λ(S)=(−1,3)⟶λ(MTSM)=(−1.79,5.98) (18)에서 값은 달라졌지만 부호는 (−,+) 그대로다.
기하적으로 읽으면 더 분명하다. xTSx=1 이라는 이차곡선을 생각하면,
합동은 그 곡선을 M−1 로 찌그러뜨리는 일이다. 찌그러뜨려도 타원은 타원이고
쌍곡선은 쌍곡선이다. 부호가 보존된다는 말이 정확히 그 뜻이다.

Figure 4:왼쪽 둘이 곡선의 종류가 보존되는 모습이고, 오른쪽이 고윳값 막대다.
초록(유사)은 파랑과 높이가 같고, 주황(합동)은 높이는 다르지만 부호가 같다.
직교 vs 정규직교¶
말이 헷갈릴 뿐 내용은 간단하다. 직교는 각도만, 정규직교는 각도와 길이 둘 다.
qiTqj=0 (i=j)직교,qiTqj=δij정규직교 두 경우에 QTQ 가 무엇이 되는지 적어 보면 차이가 분명하다.
QTQ=diag(∥q1∥2,…,∥qn∥2)직교,QTQ=I정규직교 (20)의 오른쪽이라야 Q−1=QT 라는 공짜 역행렬을 얻는다(L17).
직교이기만 하면 대각행렬이 나올 뿐이고, 역행렬을 구하려면 그 대각행렬로 한 번 더
나눠야 한다.
그리고 "직교행렬"이라는 말은 관례적으로 정규직교인 것을 가리킨다. 이름이 잘못
붙었지만 바꿀 수 없으니 외워 두는 수밖에 없다.
대칭 vs 에르미트¶
실수와 복소수의 차이다(L26).
S=ST대칭,H=HH=HT에르미트 (21)의 오른쪽은 켤레까지 취한다. 실수 행렬이면 켤레가 자기 자신이므로
둘이 같은 말이 된다.
에르미트 행렬은 대각 성분이 반드시 실수다. hii=hii 여야 하기
때문이다. 그리고 대칭행렬과 똑같이 고윳값이 실수이고 고유벡터를 직교로 고를 수 있다.
영공간 vs 좌영공간¶
N(A)={x:Ax=0}⊂Rn,N(AT)={y:ATy=0}⊂Rm (22)의 왼쪽은 들어가는 쪽에서 죽는 방향이고, 오른쪽은 나오는 쪽에서
닿을 수 없는 방향이다. 사는 공간부터 다르다.
크기도 다르다. dimN(A)=n−r 이고 dimN(AT)=m−r 이다.
정방이 아니면 두 값이 다를 수밖에 없다.
3. 분해 다섯 개를 한 장에¶

Figure 5:배운 순서대로 늘어놓은 것이다. 오른쪽 끝 칸이 "언제 실패하는가"인데,
마지막 줄만 답이 "실패하지 않는다"이다.
4. 후반부에서 만난 함정 열넷¶
L18부터 L31까지 열네 강의에서 경고했던 것들을 한자리에 모은다.
각 항목 옆의 강의 번호로 돌아가면 자세한 이야기가 있다.
| 함정 | 사실 |
|---|
| L18 | 행렬식이 선형이다 | 한 행씩만 선형이다. det(A+B)=detA+detB |
| L19 | 대각선 긋기는 늘 통한다 | 3×3 까지만이다. 4×4 부터는 항이 24개다 |
| L20 | 크래머 공식으로 푼다 | 아름답지만 n! 이라 아무도 안 쓴다 |
| L21 | 소거해도 고윳값은 그대로다 | 아니다. 행렬식만 보존된다 |
| L22 | 성분이 작으면 Ak→0 | 성분이 아니라 고윳값이 정한다 |
| L23 | eAt 는 성분마다 eaijt | 아니다. 급수를 계산해야 한다 |
| L24 | 정상상태는 (1,1,…,1) | 그것은 AT 의 고유벡터다 |
| L25 | 피벗을 아무렇게나 구해도 된다 | 행 교환을 하면 안 된다. 부호가 어긋난다 |
| L26 | 복소 행렬에 A.T | 켤레를 안 취한다. A.conj().T 여야 한다 |
| L27 | 무작위로 찔러 보면 양정치를 안다 | 표본이 최솟값 방향을 비껴간다 |
| L28 | 조르당 형을 계산할 수 있다 | 수치적으로 존재하지 않는다 |
| L29 | U 를 AAT 에서 따로 구한다 | 무작위 500개 중 465개가 깨진다 |
| L30 | 평행이동은 선형변환이다 | T(0)=0 이라 탈락이다 |
| L31 | 작은 계수부터 버리면 최선이다 | 정규직교 기저에서만 그렇다 |
5. 판단을 묻는 문제 열 개¶
계산이 아니라 판단을 묻는다. 답을 보기 전에 스스로 근거를 대 보자.
1. A=(2052) 는 대각화 가능한가?
아니다. 고윳값이 2 하나뿐(대수적 중복도 2)인데
rank(A−2I)=1 이라 (3)의 값이 2−1=1 이다.
고유벡터가 하나뿐이다.
2. A 가 5×3 이고 랭크가 3이면 ATA 는 어떤 행렬인가?
3×3 대칭 양의 정부호다.
에너지가 xTATAx=∥Ax∥2 이라
음수가 될 수 없고, 랭크가 꽉 차서 Ax=0 으로 만드는 영 아닌 x 도
없기 때문이다(L27).
3. 계산하지 않고 특이값을 말할 수 있는 행렬이 있는가?
있다. 직교행렬은 전부 1이고(길이를 보존하니까), 대각행렬은 대각 성분의
절댓값이다. 후자에서 절댓값이라는 점이 중요하다. diag(3,−7,2) 의
특이값은 7,3,2 다.
4. detA=10−12 이다. 이 행렬은 위험한가?
알 수 없다. 10−4I3 가 바로 그 행렬식인데 조건수는 1이다.
물어야 할 것은 σ1/σn 이다.
5. MTAM 의 고윳값은 A 와 같은가?
아니다. 부호의 개수만 같다. 고윳값까지 같으려면 M−1AM 이어야 한다.
둘이 겹치는 것은 M 이 직교행렬일 때뿐이다.
6. A 와 AT 는 고윳값이 같은가? 특이값은?
둘 다 같다. 고윳값은 det(A−λI)=det(AT−λI) 에서
나오고(L18의 detAT=detA), 특이값은 ATA 와
AAT 의 0이 아닌 고윳값이 같기 때문이다.
7. 마코브 행렬의 가장 큰 고윳값은 무엇인가?
1이다. 열의 합이 1이므로 1TA=1T 이고,
나머지는 ∣λ∣≤1 이다(L24).
8. 실수 대칭행렬이 복소 고윳값을 가질 수 있는가?
없다. L25에서 켤레와 전치를 함께 써서 증명했다. 그리고 이것은 대칭행렬을 만나면
곧바로 얻는 공짜 정보다.
9. rank(AB)≤min(rankA,rankB)
인가?
그렇다. AB 의 열은 A 의 열의 조합이므로 A 의 열공간 안에 있고, AB 의 행은
B 의 행의 조합이므로 B 의 행공간 안에 있다.
10. ∥A∥2 를 고윳값으로 구할 수 있는가?
대칭일 때만 max∣λ∣ 와 같다. 노름의 정의가
>∥A∥2=x=0max>∥x∥∥Ax∥=σ1> 이기 때문이다. (23)의 값은 방향이 보존되든 말든 가장 크게 늘어나는 배율을
묻는다. (3405) 에서
max∣λ∣=5 인데 ∥A∥2=6.708 이다.
6. 심은 것과 회수한 것¶
이 시리즈는 앞 강의에서 복선을 심고 뒤에서 회수하는 방식으로 짜여 있다.
후반부의 장부를 정리하면 이렇다.
| 심은 곳 | 심은 것 | 회수한 곳 |
|---|
| L1 | 열 그림 — Ax 는 열들의 조합 | L30 — 열은 기저벡터의 행선지였다 |
| L6~L7 | 영공간 | L30 — 미분 행렬의 영공간이 상수함수 |
| L11 | 함수도 벡터다 | L30 — d/dx 의 행렬을 만들었다 |
| L15 | 투영 P=A(ATA)−1AT | L30 — 좋은 기저에서 diag(1,1,0) |
| L17 | 직교행렬은 길이를 보존한다 | L31 — 파세발, 버린 계수가 곧 오차 |
| L18 | detAT=detA | L24 — 마코브의 고윳값 1 |
| L20 | 부피와 행렬식 | L29 — ∏σi=∣detA∣ |
| L21 | 투영의 고윳값은 0과 1 | L30 — 살렸다, 살렸다, 죽였다 |
| L22 | 대각화는 좋은 기저를 고르는 일 | L30 — 좌표계 선택 문제였다 |
| L25 | 스펙트럼 정리 | L29 — ATA 에 그대로 적용 |
| L26 | 푸리에 행렬 | L31 — DCT는 거울 확장의 DFT |
| L28 | ϵ 법칙 | L29 — ATA 를 거치면 정밀도가 반 |
| L28 | 유사 행렬은 같은 변환 | L30 — M 은 기저 변환 행렬 |
| L29 | 에카르트-영 | L31 — 알맹이당으로는 SVD가 이긴다 |
| L30 | 미분과 적분의 한쪽 역행렬 | L33 — 의사역행렬 |
| L31 | 특이값의 급감 = 압축 가능성 | 보강편 — PCA의 설명분산 |
아직 회수하지 않은 것이 딱 하나 남았다. 표의 아래에서 두 번째 줄이다.
마치며...¶
이번 강의에서는 새로운 내용 대신 지금까지의 도구를 하나의 판단 절차로 정리하였다.
행렬을 받으면 정방인가 → 대칭인가 → 고유벡터가 충분한가를 순서대로 묻는다.
어느 길로 가든 랭크와 조건수는 반드시 잰다.
그리고 조건수는 하나가 아니다. 무엇을 물어볼 것인지에 따라 봐야 할 조건수가 다르다.
헷갈리는 여섯 쌍 중 가장 위험한 것은 유사와 합동이다. 하나는 고윳값을,
다른 하나는 부호만 보존한다. 겹치는 것은 M 이 직교일 때뿐이고,
스펙트럼 정리가 특별한 이유가 바로 그것이다.
후반부의 함정 열넷을 관통하는 교훈은 하나다.
성립하는 것과 손에 쥘 수 있는 것은 다르다.
이제 미뤄 두었던 마지막 질문에 답할 차례다.
역행렬이 없는 행렬을 어떻게 되돌릴 것인가?
놀랍게도 그 답은 전반부에서 이미 만난 적이 있다.
최소제곱법이 사실은 무엇이었는지, 다음 강의에서 밝혀진다.
이번 강의의 내용을 파이썬으로 확인해 보려면 L32 실습 노트북으로
넘어가면 된다. L13의 행렬해부 를 후반부 내용까지 담은 행렬진단 으로 확장하고,
행렬 동물원을 통째로 통과시켜 흐름도가 제대로 작동하는지 보고, 여섯 쌍의 차이를
반례로 직접 확인할 수 있다.