이 강의의 목표는 공식을 빨리 외우는 것이 아닙니다. 목표는 아래 식을 스스로 설명할 수 있게 되는 것입니다.
Av=λv
이 식은 말로 풀면 다음 뜻입니다.
행렬 A를 벡터 v에 곱해도, v의 방향은 그대로이고 길이만 λ배가 된다.
이 문장이 어려운 이유는 한 줄 안에 여러 개념이 한꺼번에 들어 있기 때문입니다.
- A는 무엇인가? (8강 행렬 참고)
- v는 무엇인가? (7강 벡터 참고)
- λ는 무엇인가?
- "방향이 그대로"라는 게 무슨 뜻인가?
- 행렬을 곱하는 게 왜 "변환"인가?
- 이런 특별한 v를 어떻게 찾는가?
이 강의는 이 질문을 하나씩, 아주 작은 단계로 나누어 설명합니다.
이번 강에서 새로 등장하는 어휘만 모았습니다. 벡터·스칼라·선형결합(7강), 행렬·행렬곱·단위행렬·역행렬(8강)은 앞서 본 그대로 씁니다.
| 말 |
뜻 |
| 변환 |
한 벡터를 다른 벡터로 보내는 규칙 |
| 선형변환 |
벡터 덧셈과 스칼라배 구조를 보존하는 변환 |
| 행렬변환 |
행렬을 곱해서 벡터를 다른 벡터로 보내는 변환 |
| 불변방향 |
변환 뒤에도 같은 직선 위에 남는 방향 |
| 고유벡터 |
변환 뒤에도 방향이 바뀌지 않는 영벡터가 아닌 벡터 |
| 고유값 |
고유벡터가 몇 배가 되는지를 나타내는 수 (λ) |
| 특성방정식 |
고유값을 찾기 위해 세우는 방정식 |
| 행렬식 |
정사각 행렬에 붙는 한 수. 변환이 공간을 얼마나 늘리거나 뒤집는지를 잰다 (detA) |
| 대각화 |
행렬을 고유벡터를 기준으로 다시 써서 단순한 형태로 만드는 일 |
| PDP^ |
대각화 결과를 쓰는 표준 식 |
여기서 가장 중요한 식은 이것입니다.
Av=λv
이 한 줄이 9강의 출발점이자 도착점입니다.
8강에서 행렬-벡터 곱 Ax를 봤습니다. 그때는 "열벡터들의 가중합"이라는 관점이었습니다. 같은 식을 다른 각도에서 봅시다.
y=Ax
는 이렇게 읽을 수 있습니다.
입력 벡터 x를 행렬 A라는 기계에 넣었더니, 출력 벡터 y가 나왔다.
즉 행렬 A는 한 벡터를 다른 벡터로 보내는 규칙입니다. 이런 규칙을 변환이라고 부릅니다. 9강은 행렬을 "숫자 표"가 아니라 "변환 기계"로 보는 강의입니다.
세상에는 여러 변환이 있지만, 그중에서도 "선형변환"은 특별합니다. 어떤 변환 T가 다음 두 성질을 모두 만족하면 선형변환입니다.
더하기 보존
T(u+v)=T(u)+T(v)
스칼라배 보존
T(cv)=cT(v)
말로 풀면 이렇습니다.
먼저 더하고 변환해도, 먼저 변환하고 더해도 결과가 같다. 먼저 몇 배 하고 변환해도, 먼저 변환하고 몇 배 해도 결과가 같다.
핵심: 행렬을 곱하는 변환 T(x)=Ax는 항상 선형변환입니다. 행렬곱의 분배법칙
A(u+v)=Au+Av,A(cv)=cAv
가 곧 위 두 성질이기 때문입니다.
따라서 "선형변환"은 "어떤 행렬 A로 곱하는 일"과 같은 말로 봐도 됩니다(유한 차원에서).
같은 "선형변환"이라는 이름 아래에도 행렬에 따라 모양이 아주 다릅니다. 대표적인 네 가지를 봅시다. 모두 2차원 평면을 2차원 평면으로 보내는 변환입니다.
A=[2003]
는 x축 방향 2배, y축 방향 3배 늘리는 변환입니다. 벡터 (x,y)가 (2x,3y)가 됩니다.
대각 성분이 1보다 작으면 줄이기, 음수면 축을 뒤집고 늘리기가 됩니다.
Rθ=[cosθsinθ−sinθcosθ]
는 평면을 θ만큼 반시계로 돌리는 변환입니다. 예를 들어 θ=90°이면
R90°=[01−10]
입니다. 벡터 (1,0)을 이 행렬에 곱하면
R90°[10]=[01]
으로, 오른쪽 화살표가 위쪽 화살표가 됩니다. 길이는 그대로입니다.
F=[100−1]
는 x축을 기준으로 뒤집는 변환입니다. 벡터 (x,y)가 (x,−y)가 됩니다. 위에 있던 점은 아래로, 아래에 있던 점은 위로 갑니다.
S=[1011]
는 위쪽 성분에 따라 가로로 밀어 주는 변환입니다. 벡터 (x,y)가 (x+y,y)가 됩니다. 직사각형이 평행사변형이 됩니다.
이 네 가지(늘리기, 회전, 반사, 전단)와 그 조합으로 거의 모든 2D 변환을 만들 수 있습니다.
위 4.1의
A=[2003]
를 다시 봅시다.
이 행렬을 가로 단위벡터에 곱하면
A[10]=[20]=2[10]
입니다. 방향은 그대로(x축 방향), 길이만 2배가 됐습니다.
세로 단위벡터에 곱하면
A[01]=[03]=3[01]
입니다. 이번에도 방향은 그대로, 길이만 3배입니다.
반면 대각선 방향 벡터 (1,1)에 곱하면
A[11]=[23]
인데 이건 (1,1)의 몇 배가 아닙니다. 즉 방향이 바뀐 것입니다.
관찰: 어떤 행렬에는 "방향이 바뀌지 않고 길이만 변하는" 특별한 벡터들이 있습니다. 이런 벡터를 찾는 일이 9강의 핵심입니다.
행렬 A를 곱했는데 방향이 바뀌지 않는 벡터가 있을 수 있습니다.
그런 벡터를 고유벡터라고 합니다.
고유벡터는 영벡터가 아니어야 합니다.
고유벡터가 몇 배가 되었는지를 나타내는 수를 고유값이라고 합니다.
이 관계를 식으로 쓰면
Av=λv
입니다.
여기서 v는 고유벡터이고, λ는 고유값입니다.
이 식은 이렇게 읽습니다.
A가 v를 변환했더니, 방향은 그대로이고 크기만 λ배가 되었다.
영벡터
[00]
는 어떤 행렬을 곱해도 보통 영벡터로 갑니다.
하지만 영벡터는 방향이 없습니다.
고유벡터는 방향이 변하지 않는 벡터를 찾는 개념입니다.
방향이 없는 영벡터를 고유벡터로 허용하면 모든 것이 의미 없어집니다.
그래서 고유벡터는 반드시 영벡터가 아니어야 합니다.
행렬
A=[4002]
를 봅시다.
벡터
v=[10]
에 곱하면
Av=[40]=4[10]=4v
입니다.
따라서 v는 고유벡터이고, 고유값은 4입니다.
벡터
w=[01]
에 곱하면
Aw=[02]=2w
입니다.
따라서 w도 고유벡터이고, 고유값은 2입니다.
같은 행렬
A=[4002]
에 벡터
u=[11]
를 곱해 봅시다.
Au=[42]
입니다.
이 결과는
[11]
의 몇 배가 아닙니다.
u의 방향은 대각선 방향인데, Au는 다른 방향입니다.
따라서 u는 고유벡터가 아닙니다.
대각행렬은 고유값이 눈으로 보입니다(대각 성분). 그런데 대각이 아닌 일반 행렬은 어떻게 고유값을 찾을까요? 그 방법이 특성방정식입니다.
출발은 정의식입니다.
Av=λv
오른쪽을 왼쪽으로 옮기면
Av−λv=0
입니다. λv는 λIv와 같으므로 (I는 단위행렬)
Av−λIv=0
이고, v로 묶으면
(A−λI)v=0
가 됩니다. 즉 "행렬 A−λI를 어떤 영벡터가 아닌 v에 곱했더니 영벡터가 나오는 상황"을 찾는 것입니다.
8강에서 본 역행렬을 떠올려 봅시다. 만약 A−λI가 역행렬을 가진다면, (A−λI)v=0의 양변에 (A−λI)−1을 곱해서
v=(A−λI)−1⋅0=0
이 됩니다. 즉 v=0만 나옵니다. 하지만 고유벡터는 영벡터가 아니어야 하므로(7절), 이 경우는 우리가 원하는 답이 아닙니다.
따라서 영벡터가 아닌 v가 존재하려면 다음 조건이 필요합니다.
A−λI는 역행렬을 가지지 않아야 한다.
"역행렬을 가지지 않는다"는 조건은 행렬식이 0이다라는 조건과 같습니다. 행렬식(det)은 정사각 행렬에 붙는 한 숫자로, 다음 성질을 가집니다.
- detA=0 → A는 역행렬을 가진다 (가역).
- detA=0 → A는 역행렬을 가지지 않는다 (특이행렬).
직관적으로 행렬식은 "이 행렬이 공간을 얼마나 늘리거나 뒤집는지"를 잰 부피 배율입니다. 그 배율이 0이면 행렬이 공간을 더 낮은 차원으로 짜부라뜨리는 것이어서 되돌릴 수 없습니다.
2×2 행렬
M=[acbd]
의 행렬식은
detM=ad−bc
입니다. 이 한 식만 외워두면 9강의 계산은 모두 됩니다.
이 둘을 합치면 다음 식이 나옵니다.
det(A−λI)=0
이것이 특성방정식입니다. 풀어 쓰면
λ에 대한 방정식이고, 이 방정식의 해 λ가 곧 고유값이다.
n×n 행렬이면 λ에 대한 n차 방정식이 됩니다. 그래서 일반적으로 고유값은 최대 n개입니다.
10절에서 만든 특성방정식을 가장 단순한 행렬에 적용해 봅시다.
A=[4002]⇒A−λI=[4−λ002−λ]
행렬식은 (4−λ)(2−λ)−0⋅0=(4−λ)(2−λ)이므로 특성방정식은
(4−λ)(2−λ)=0
이고 해는 λ=4,2입니다.
일반적으로 대각행렬의 고유값은 그냥 대각 성분 그 자체입니다. 대각행렬에서는 8절에서 본 단위벡터들이 그대로 고유벡터입니다.
이제 비대각 행렬을 봅시다.
A=[3012]
먼저
A−λI=[3−λ012−λ]
행렬식은
det(A−λI)=(3−λ)(2−λ)−1⋅0=(3−λ)(2−λ)
따라서 특성방정식은
(3−λ)(2−λ)=0
이고 고유값은 λ=3,2입니다.
이번에는 더 비대각인 예시.
A=[2112]
A−λI=[2−λ112−λ],det(A−λI)=(2−λ)2−1
특성방정식은
(2−λ)2=1
즉 2−λ=±1이므로 λ=1,3입니다.
비대각 행렬이라도 절차는 같습니다. (1) A−λI를 적고, (2) 행렬식을 λ의 다항식으로 펼치고, (3) 그 다항식을 0으로 두고 푼다.
고유값을 찾았으면 이제 그에 대응하는 고유벡터를 찾아야 합니다.
고유값 λ를 하나 골라서, (A−λI)v=0을 만족하는 영벡터 아닌 v를 찾는다.
이것은 8강에서 본 선형시스템 풀기와 같은 작업입니다. 다만 우변이 영벡터이고, v는 영벡터가 아닌 해를 찾아야 합니다.
12절에서 이 행렬의 고유값을 λ=1,3으로 구했습니다. 각각에 대응하는 고유벡터를 찾아봅시다.
λ=3인 경우.
A−3I=[−111−1]
(A−3I)v=0은
[−111−1][v1v2]=0
즉 −v1+v2=0, 다시 말해 v1=v2입니다. 따라서 고유벡터는
v=[11]
(또는 그의 스칼라배). 검증: Av=[2+11+2]=[33]=3v. ✓
λ=1인 경우.
A−1⋅I=[1111]
(A−I)v=0은 v1+v2=0, 즉 v2=−v1입니다. 따라서
v=[1−1]
검증: Av=[2−11−2]=[1−1]=1⋅v. ✓
위 풀이에서 v1=v2를 만족하는 벡터는 (1,1),(2,2),(−1,−1),… 모두 가능합니다. 하나의 고유값에 대응하는 고유벡터는 방향만 정해지고, 길이는 자유입니다. 보통은 가장 간단한 정수 형태를 골라 적습니다.
이제 고유값과 고유벡터를 한 식으로 묶어 봅시다. 이 절은 9강의 정점입니다.
13절의 예시에서 두 고유쌍을 얻었습니다.
- λ1=3, v1=(1,1)T
- λ2=1, v2=(1,−1)T
이 둘을 모아서 두 행렬을 만듭니다.
P=⎣⎢⎡∣v1∣∣v2∣⎦⎥⎤=[111−1],D=[λ100λ2]=[3001]
P는 고유벡터들을 열로 쌓은 행렬, D는 고유값들을 대각으로 둔 대각행렬입니다.
이 두 행렬과 원래 A 사이에는 다음 식이 성립합니다.
A=PDP−1
이것이 대각화 식입니다. 왜 이 식이 성립할까요?
A가 각 고유벡터에 하는 일은 Avi=λivi입니다. 이를 행렬로 한꺼번에 쓰면
A⎣⎢⎡∣v1∣∣v2∣⎦⎥⎤=⎣⎢⎡∣λ1v1∣∣λ2v2∣⎦⎥⎤=⎣⎢⎡∣v1∣∣v2∣⎦⎥⎤[λ100λ2]
즉 AP=PD입니다. P가 역행렬을 가진다면 양변에 P−1을 오른쪽에 곱해
A=PDP−1
가 됩니다.
이 식의 의미는 강력합니다.
- P−1이 입력 벡터를 고유벡터 기준 좌표로 바꿉니다.
- D가 그 좌표에서 각 성분을 λi배 합니다 (방향끼리 섞지 않고).
- P가 결과를 원래 좌표로 다시 옮깁니다.
즉 일반 행렬 A도 "올바른 좌표축에서 보면" 단순한 대각행렬(=축별 늘리기)일 뿐입니다. 좌표를 바꾸기만 하면 복잡해 보이던 변환이 단순해진다는 점이 핵심입니다.
대각화의 가장 실용적인 효용은 거듭제곱 계산입니다.
Ak=(PDP−1)(PDP−1)⋯(PDP−1)=PDkP−1
D는 대각이므로 Dk는 대각 성분을 k제곱한 행렬, 즉 계산이 쉽습니다. 반복 곱셈이 필요한 동역학 시뮬레이션, 마르코프 체인 등에서 매우 유용합니다.
"A=PDP−1"는 항상 가능할까요? 그렇지 않습니다.
P를 만들려면 고유벡터들이 선형독립이어야 합니다(7강 9절에서 본 독립). 즉 n×n 행렬이 대각화되려면 서로 독립인 고유벡터 n개가 있어야 합니다.
- 고유값들이 모두 서로 다르면 → 항상 대각화 가능
- 고유값에 중복이 있어도 충분한 독립 고유벡터가 나오면 → 대각화 가능
- 중복 고유값에서 독립 고유벡터가 부족하면 → 대각화 불가능
A=[1011]
특성방정식은 (1−λ)2=0이라서 λ=1 중복. (A−I)v=0을 풀면 [0010]v=0에서 v2=0만 나옵니다. 즉 독립 고유벡터가 (1,0)T 단 하나뿐이라 P를 만들 수 없습니다.
이런 행렬은 대각화는 안 되지만 11강에서 배울 SVD는 됩니다. SVD는 모든 행렬(정사각이 아닌 행렬 포함)에 적용되는 더 일반적인 도구입니다.
행렬은 데이터를 바꾸는 규칙으로 자주 등장합니다. 고유값은 그 규칙이 어떤 방향을 얼마나 키우거나 줄이는지 알려 줍니다. 몇 가지 대표 응용을 봅시다.
데이터 행렬에서 만든 공분산행렬 C의 고유벡터는 데이터가 가장 많이 퍼져 있는 방향들입니다. 그 방향에 대응하는 고유값이 클수록 그 방향으로의 분산이 큽니다. PCA는 큰 고유값에 해당하는 방향만 남기는 차원 축소 방법입니다.
반복 시스템 xk+1=Axk에서 미래 상태는 xk=Akx0이고, 14.5절처럼 Ak=PDkP−1입니다. Dk의 대각 성분은 λik이므로
- 모든 ∣λi∣<1이면 → 시스템이 0으로 수렴 (안정)
- 어떤 ∣λi∣>1이면 → 그 방향으로 폭발
즉 고유값의 절댓값이 시스템 안정성을 결정합니다.
웹 페이지 간 링크 행렬의 고유값 1에 해당하는 고유벡터가 페이지의 중요도 점수가 됩니다. 마르코프 체인의 정상분포도 같은 원리입니다.
신경망의 가중치 행렬을 고유값으로 분석하면 학습이 어떤 방향에서 빠르게 일어나고 어떤 방향에서 더디게 일어나는지 알 수 있습니다. 큰 고유값 방향은 빠른 학습, 작은 고유값 방향은 느린 학습에 해당합니다.
문제: 다음 행렬과 벡터에 대해 v가 고유벡터인지 확인하시오.
A=[3005],v=[10]
풀이:
Av=[30]=3[10]=3v
따라서 v는 고유벡터이고 고유값은 3입니다.
문제: 다음 행렬과 벡터에 대해 u가 고유벡터인지 확인하시오.
A=[3005],u=[11]
풀이:
Au=[35]
입니다.
이 벡터는
[11]
의 몇 배가 아닙니다.
따라서 u는 고유벡터가 아닙니다.
문제: 다음 행렬의 고유값을 찾으시오.
A=[600−1]
풀이: 대각행렬에서는 대각선 위의 값이 곧 고유값입니다(11절). 따라서
λ=6,−1
입니다.
문제: 다음 행렬의 고유값과 각각에 대응하는 고유벡터를 구하시오.
A=[4123]
풀이:
1단계: 특성방정식.
A−λI=[4−λ123−λ]
det(A−λI)=(4−λ)(3−λ)−2⋅1=λ2−7λ+10
특성방정식 λ2−7λ+10=0을 풀면
λ=5,2
2단계: λ=5에 대응하는 고유벡터.
A−5I=[−112−2]
(A−5I)v=0은 −v1+2v2=0, 즉 v1=2v2. 따라서
v=[21]
검증: Av=[8+22+3]=[105]=5v. ✓
3단계: λ=2에 대응하는 고유벡터.
A−2I=[2121]
(A−2I)v=0은 v1+v2=0, 즉 v2=−v1. 따라서
v=[1−1]
검증: Av=[4−21−3]=[2−2]=2v. ✓
문제: 위 20절의 행렬 A=[4123]을 A=PDP−1 형태로 대각화하시오.
풀이:
20절에서 두 고유쌍을 얻었습니다.
- λ1=5,v1=(2,1)T
- λ2=2,v2=(1,−1)T
14절에 따라 P와 D를 구성합니다.
P=[211−1],D=[5002]
P의 역행렬을 구합니다. detP=2⋅(−1)−1⋅1=−3이므로
P−1=−31[−1−1−12]=[1/31/31/3−2/3]
따라서
A=PDP−1=[211−1][5002][1/31/31/3−2/3]
이 형태로 두면 14.5절에서 본 대로 A100 같은 거듭제곱도 P⋅D100⋅P−1로 손쉽게 계산할 수 있습니다.
- 행렬은 한 벡터를 다른 벡터로 보내는 변환이다.
- 행렬을 곱하는 변환은 더하기와 스칼라배를 보존하는 선형변환이다.
- 대표적 선형변환: 늘리기, 회전, 반사, 전단.
- 고유벡터는 변환 뒤에도 방향이 바뀌지 않는 영벡터 아닌 벡터다.
- 고유값은 고유벡터가 몇 배 늘어나는지 나타내는 수다.
- 정의식 Av=λv는 (A−λI)v=0으로 옮길 수 있다.
- 영벡터 아닌 v가 존재하려면 A−λI가 가역이 아니어야 한다, 즉 det(A−λI)=0.
- 이 방정식이 특성방정식이고, 그 해가 고유값이다.
- 2×2 행렬식은 det[acbd]=ad−bc.
- 고유벡터는 (A−λI)v=0의 영벡터 아닌 해다.
- 독립인 고유벡터로 P를, 고유값으로 대각행렬 D를 만들면 A=PDP−1로 대각화된다.
- 대각화하면 Ak=PDkP−1로 거듭제곱이 쉬워진다.
- 대각화는 항상 되는 것은 아니다. 독립 고유벡터가 부족하면 안 된다.
- 고유값은 PCA, 안정성 분석, PageRank, 신경망 분석 등에 쓰인다.
- 행렬을 "숫자 표"가 아니라 "변환 기계"로 설명할 수 있는가?
- 회전·반사·전단 행렬을 각각 한 줄로 설명할 수 있는가?
- Av=λv를 말로 풀어 설명할 수 있는가?
- 고유벡터가 왜 영벡터가 아니어야 하는지 설명할 수 있는가?
- 특성방정식 det(A−λI)=0이 왜 이런 모양인지 단계별로 유도할 수 있는가?
- 다음 행렬의 고유값을 구할 수 있는가?
[5142]
- 한 고유값을 골라 그에 대응하는 고유벡터를 구할 수 있는가?
- 대각화 식 A=PDP−1에서 P와 D가 각각 무엇인지 설명할 수 있는가?
- 대각화가 거듭제곱 계산에 어떻게 도움이 되는지 설명할 수 있는가?
- 모든 행렬이 대각화되지는 않는다는 점, 그리고 그 이유를 한 줄로 말할 수 있는가?