Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Lecture 30. 선형변환과 그 행렬

Linear Transformations and Their Matrices — 서술

스물아홉 편에 걸쳐 행렬을 다뤘다. 그런데 사실 우리는 순서를 거꾸로 배워 왔다.

행렬이 있어서 변환이 있는 것이 아니다. 변환이 먼저 있고, 기저를 정하는 순간 행렬이 태어난다. 회전이라는 동작은 좌표계가 있든 없든 존재한다. 그것을 숫자로 적으려면 기저를 골라야 하고, 어떤 기저를 고르느냐에 따라 같은 회전이 다른 숫자들로 적힌다.

지난 강의에서 SVD를 "들어가는 쪽과 나오는 쪽에 각각 좋은 기저를 고른 것"이라고 했다. 그 말이 정확히 무슨 뜻인지 알려면 기저와 행렬의 관계를 근본에서 다시 봐야 한다. 이번 강의는 새로운 것을 배우는 시간이 아니라 지금까지의 전부를 한 층 위에서 다시 보는 시간이다.

같은 투영을 두 좌표계에서 적은 것이다. 왼쪽은 표준기저이고 오른쪽은 직선에 맞춘
기저다. 숫자는 전혀 다르지만 투영 자체는 한 번도 변하지 않았다.
어느 쪽이 “진짜” 행렬인가. 그런 것은 없다.

Figure 1:같은 투영을 두 좌표계에서 적은 것이다. 왼쪽은 표준기저이고 오른쪽은 직선에 맞춘 기저다. 숫자는 전혀 다르지만 투영 자체는 한 번도 변하지 않았다. 어느 쪽이 “진짜” 행렬인가. 그런 것은 없다.


1. 좌표가 하나도 없는 정의

먼저 숫자를 완전히 지우고 시작하자. 변환 TT선형이라는 것은 딱 두 줄이다.

T(v+w)=T(v)+T(w),T(cv)=cT(v)T(\vv{v} + \vv{w}) = T(\vv{v}) + T(\vv{w}), \qquad T(c\,\vv{v}) = c\,T(\vv{v})

(1)의 정의에는 행렬도, 좌표도, 성분도 없다. 벡터를 더하는 일과 스칼라를 곱하는 일만 쓰였다. 그러니 이 정의는 Rn\R^n 뿐 아니라 벡터를 더하고 상수배할 수 있는 어떤 공간에서도 그대로 통한다. L11에서 다항식과 함수도 벡터라고 했던 것이 여기서 쓰인다.

두 줄을 한 줄로 합칠 수도 있다.

T(cv+dw)=cT(v)+dT(w)T(c\,\vv{v} + d\,\vv{w}) = c\,T(\vv{v}) + d\,T(\vv{w})

선형인 것들

선형이 아닌 것들 — 여기가 더 중요하다

평행이동. 모든 벡터에 고정된 a\vv{a} 를 더하는 T(v)=v+aT(\vv{v}) = \vv{v} + \vv{a} 는 선형이 아니다. 두 가지 방법으로 걸린다.

첫째, c=0c = 0(1)의 오른쪽 식에 넣어 보자. 선형이라면 T(0)=T(00)=0T(0)=0T(\vv{0}) = T(0 \cdot \vv{0}) = 0 \cdot T(\vv{0}) = \vv{0} 이어야 한다. 그런데 평행이동은 T(0)=a0T(\vv{0}) = \vv{a} \neq \vv{0} 이다.

선형변환은 반드시 0 을 0 으로 보낸다\text{선형변환은 반드시 } \vv{0} \text{ 을 } \vv{0} \text{ 으로 보낸다}

(3)의 사실은 L5의 "부분공간은 원점을 지나야 한다"와 같은 이야기다. 원점을 지키지 않는 것은 선형대수의 세계에 들어올 수 없다.

둘째, 덧셈으로 직접 확인해 보자. a=(1,2)\vv{a} = (1,2) 로 두면

T(v+w)=v+w+a,T(v)+T(w)=v+w+2aT(\vv{v} + \vv{w}) = \vv{v} + \vv{w} + \vv{a}, \qquad T(\vv{v}) + T(\vv{w}) = \vv{v} + \vv{w} + 2\vv{a}

(4)의 두 결과는 a\vv{a} 하나만큼 어긋난다. 더하는 횟수가 늘어나면 어긋나는 양도 늘어난다.

길이 재기. T(v)=vT(\vv{v}) = \lVert\vv{v}\rVert 도 선형이 아니다. 삼각부등식 v+wv+w\lVert\vv{v}+\vv{w}\rVert \le \lVert\vv{v}\rVert + \lVert\vv{w}\rVert 은 등호가 아니고, v=+v\lVert -\vv{v}\rVert = +\lVert\vv{v}\rVert 인데 v-\lVert\vv{v}\rVert 여야 하니 두 번째 조건도 깨진다.


2. 기저를 정하면 행렬이 태어난다

이제 핵심으로 간다. 선형이라는 두 줄로부터 아주 강한 사실이 따라 나온다.

들어가는 공간 VV 의 기저를 v1,,vn\vv{v}_1, \dots, \vv{v}_n 이라 하자. 임의의 xV\vv{x} \in V 는 기저의 조합으로 딱 한 가지 방법으로 적힌다(L9).

x=c1v1+c2v2++cnvn\vv{x} = c_1\vv{v}_1 + c_2\vv{v}_2 + \dots + c_n\vv{v}_n

여기에 TT 를 씌우고 (2)의 규칙을 nn 번 쓰면 이렇게 된다.

T(x)=c1T(v1)+c2T(v2)++cnT(vn)T(\vv{x}) = c_1 T(\vv{v}_1) + c_2 T(\vv{v}_2) + \dots + c_n T(\vv{v}_n)

nn 개를 어떻게 적어 두는가

T(vj)T(\vv{v}_j) 는 나오는 공간 WW 의 벡터다. WW 의 기저를 w1,,wm\vv{w}_1, \dots, \vv{w}_m 이라 두면 T(vj)T(\vv{v}_j) 도 그 기저로 전개된다.

T(vj)=a1jw1+a2jw2++amjwmT(\vv{v}_j) = a_{1j}\vv{w}_1 + a_{2j}\vv{w}_2 + \dots + a_{mj}\vv{w}_m

(8)에 나온 mm 개의 계수 a1j,,amja_{1j}, \dots, a_{mj}세로로 한 줄 세운다. jj1 부터 nn 까지 돌리면 세로줄이 nn 개 생기고, 그것을 나란히 놓은 것이 m×nm \times n 행렬 AA 다.

행렬의 jj 번째 열은 jj 번째 기저벡터가 어디로 가는지를 적은 것이다. 이 한 문장이 이번 강의의 전부라고 해도 좋다. 그리고 이것은 L1의 첫 그림 — AxA\vv{x} 를 열들의 조합으로 보던 그 그림 — 을 서른 강 만에 회수한 것이다.

e_1 은 (2,1) 로 가고 e_2 는 (-1,1) 로 간다. 그 답을 그대로 세로로 적어
나란히 놓으면 행렬이다. 행렬에는 그 이상 아무것도 들어 있지 않다.

Figure 2:e1e_1(2,1)(2,1) 로 가고 e2e_2(1,1)(-1,1) 로 간다. 그 답을 그대로 세로로 적어 나란히 놓으면 행렬이다. 행렬에는 그 이상 아무것도 들어 있지 않다.

좌표는 정말 AcA\vv{c} 로 움직이는가

아직 확인할 것이 남았다. 우리는 AA 를 그냥 "적어 둔 표"로 정의했다. 이 표에 좌표벡터 c=(c1,,cn)\vv{c} = (c_1,\dots,c_n) 을 곱하면 정말 T(x)T(\vv{x}) 의 좌표가 나오는가.

(7)의 식에 (8)의 식을 대입한다.

T(x)=j=1ncjT(vj)=j=1ncji=1maijwiT(\vv{x}) = \sum_{j=1}^{n} c_j\, T(\vv{v}_j) = \sum_{j=1}^{n} c_j \sum_{i=1}^{m} a_{ij}\vv{w}_i

합의 순서를 바꾸어 wi\vv{w}_i 로 묶는다.

T(x)=i=1m(j=1naijcj)wiT(\vv{x}) = \sum_{i=1}^{m} \left( \sum_{j=1}^{n} a_{ij} c_j \right) \vv{w}_i

(10)의 괄호 안이 곧 T(x)T(\vv{x})ii 번째 좌표다. 그런데 그 괄호 안은 jaijcj\sum_j a_{ij}c_j 이고, 이것은 정확히 (Ac)i(A\vv{c})_i 의 정의다.

[T(x)]w=A[x]v\bigl[\,T(\vv{x})\,\bigr]_{\vv{w}} = A\,\bigl[\,\vv{x}\,\bigr]_{\vv{v}}

합성이 왜 곱인가

같은 계산을 한 번 더 하면 행렬 곱의 두 번째 얼굴이 나온다. U:VWU : V \to W 의 행렬이 BB 이고 T:WZT : W \to Z 의 행렬이 AA 라 하자. 곧 U(vj)=kbkjwkU(\vv{v}_j) = \sum_k b_{kj}\vv{w}_k 이고 T(wk)=iaikziT(\vv{w}_k) = \sum_i a_{ik}\vv{z}_i 다.

합성 TUT \circ Uvj\vv{v}_j 를 어디로 보내는지 물어보자.

(TU)(vj)=T ⁣(kbkjwk)=kbkjT(wk)=kbkjiaikzi(T \circ U)(\vv{v}_j) = T\!\left( \sum_{k} b_{kj}\vv{w}_k \right) = \sum_{k} b_{kj}\, T(\vv{w}_k) = \sum_{k} b_{kj} \sum_{i} a_{ik}\vv{z}_i

두 번째 등호에서 (2)의 선형성을 썼다. 이제 zi\vv{z}_i 로 묶는다.

(TU)(vj)=i(kaikbkj)zi(T \circ U)(\vv{v}_j) = \sum_{i} \left( \sum_{k} a_{ik} b_{kj} \right) \vv{z}_i

(13)의 괄호 안이 합성의 행렬의 (i,j)(i,j) 성분이다. 그런데 그것은 kaikbkj\sum_k a_{ik}b_{kj}, 곧 (AB)ij(AB)_{ij} 다.

합성의 행렬=AB\text{합성의 행렬} = AB

L3에서 "ABABjj 번째 열은 AA 곱하기 BBjj 번째 열"이라고 했던 것도 같은 말이다. BBej\vv{e}_j 를 어디로 보내는지 보고, 그 결과를 다시 AA 로 보내면 된다.


3. 예제 1 — 미분은 행렬이다

이제 숫자가 하나도 안 나오는 공간에서 행렬을 만들어 보자.

3차 이하 다항식들의 공간 P3P_3 을 생각한다. 기저는 1,x,x2,x31, x, x^2, x^3 네 개이므로 dimP3=4\dim P_3 = 4 다. 여기서 미분하면 2차 이하가 되므로 도착지는 P2P_2 이고 기저는 1,x,x21, x, x^2 세 개다.

T=d/dxT = d/dx 가 기저벡터를 어디로 보내는지 하나씩 물어본다.

ddx1=0,ddxx=1,ddxx2=2x,ddxx3=3x2\frac{d}{dx}1 = 0, \qquad \frac{d}{dx}x = 1, \qquad \frac{d}{dx}x^2 = 2x, \qquad \frac{d}{dx}x^3 = 3x^2
왼쪽은 의 네 답을 그림으로 옮긴 것이다. 오른쪽은 그 답을
그대로 열에 세운 행렬이다. 첫 열이 전부 0인 것은 1 이 죽기 때문이다.

Figure 3:왼쪽은 (15)의 네 답을 그림으로 옮긴 것이다. 오른쪽은 그 답을 그대로 열에 세운 행렬이다. 첫 열이 전부 0인 것은 1 이 죽기 때문이다.

(15)의 답을 Definition 2의 정의대로 열에 세운다. 0(0,0,0)(0,0,0), 1(1,0,0)(1,0,0), 2x2x(0,2,0)(0,2,0), 3x23x^2(0,0,3)(0,0,3) 이므로

D=(010000200003)D = \begin{pmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 3 \end{pmatrix}

정말 되는지 확인해 보자. p(x)=5+3x+2x3p(x) = 5 + 3x + 2x^3 의 좌표는 (5,3,0,2)(5,3,0,2) 이고

D(5302)=(306)3+0x+6x2D\begin{pmatrix} 5 \\ 3 \\ 0 \\ 2 \end{pmatrix} = \begin{pmatrix} 3 \\ 0 \\ 6 \end{pmatrix} \quad\Longrightarrow\quad 3 + 0\cdot x + 6x^2

p(x)=3+6x2p'(x) = 3 + 6x^2 이 맞다. 미분이 행렬 곱셈이 되었다.

이 행렬이 알려 주는 세 가지

첫째, 정방행렬이 아니다. DD3×43 \times 4 다. 미분하면 차수가 하나 줄어드니 당연하다. 정방이 아니면 역행렬이 있을 수 없다.

둘째, 영공간이 상수함수다. DD 의 첫 열이 통째로 0 이므로 Dc=0D\vv{c} = \vv{0} 의 해는 c=(c1,0,0,0)\vv{c} = (c_1, 0,0,0), 곧 상수다. L6~L7에서 영공간을 "Ax=0A\vv{x}=\vv{0} 을 만족하는 x\vv{x} 들"이라고 했던 것이 여기서는 미분해서 0이 되는 함수들이 된다. 미적분에서 "적분상수를 잊지 마라"고 했던 그 잔소리의 정체가 영공간이다.

셋째, 차원을 아무리 올려도 영공간은 늘 1차원이다. P5P_5 에서는 5×65 \times 6, P7P_7 에서는 7×87 \times 8 행렬이 되지만 죽는 것은 언제나 상수 하나뿐이다. 그래서 미분 행렬은 어느 차원에서도 정방이 될 수 없다.

적분을 만들어 곱해 보자

이번에는 반대 방향, P2P3P_2 \to P_3 의 적분을 행렬로 만든다. 적분상수는 붙이지 않는 것으로 정하자.

1dx=x,xdx=12x2,x2dx=13x3\int 1\,dx = x, \qquad \int x\,dx = \tfrac{1}{2}x^2, \qquad \int x^2\,dx = \tfrac{1}{3}x^3

(18)의 답을 열에 세우면 4×34 \times 3 행렬이 나온다.

S=(00010001200013)S = \begin{pmatrix} 0 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & \tfrac{1}{2} & 0 \\ 0 & 0 & \tfrac{1}{3} \end{pmatrix}

이제 두 행렬을 곱해 본다. 순서가 두 가지다.

DS=I3,SD=(0000010000100001)I4DS = I_3, \qquad SD = \begin{pmatrix} 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} \neq I_4
한쪽 순서로는 단위행렬이 되고 반대 순서로는 안 된다. SD 는 왼쪽 위 한 칸만
1 대신 0 이다. 그 한 칸이 상수항이다.

Figure 4:한쪽 순서로는 단위행렬이 되고 반대 순서로는 안 된다. SDSD 는 왼쪽 위 한 칸만 1 대신 0 이다. 그 한 칸이 상수항이다.

적분한 뒤 미분하면 원래대로 돌아온다. 이것이 DS=I3DS = I_3 이다.

미분한 뒤 적분하면 상수를 잃는다. 앞에서 쓴 p=5+3x+2x3p = 5 + 3x + 2x^3 으로 따라가 보자. 미분하면 3+6x23 + 6x^2 이고, 그것을 (상수 없이) 적분하면 3x+2x33x + 2x^3 이다.

(5,3,0,2)  D  (3,0,6)  S  (0,3,0,2)(5,\,3,\,0,\,2) \ \xrightarrow{\ D\ }\ (3,\,0,\,6) \ \xrightarrow{\ S\ }\ (0,\,3,\,0,\,2)

(21)의 처음과 끝을 견주면 첫 칸의 50 이 되었다. 그것이 (20)SDSD 왼쪽 위에 있는 0 이다.

SDSD 를 자세히 보면 대각선에 0,1,1,10,1,1,1 이 놓인 행렬이다. 제곱해도 자기 자신이고 ((SD)2=SD(SD)^2 = SD) 대칭이다. 투영행렬이다(L15). 무엇으로의 투영인가. 상수항이 없는 다항식들의 공간으로의 투영이다.


4. 예제 2 — 투영의 고윳값이 왜 0과 1이었는가

L15에서 투영행렬을 만들었다. R3\R^3 에서 평면 x+y+z=0x + y + z = 0 으로 투영하는 행렬은 법선 n=(1,1,1)\vv{n} = (1,1,1) 을 써서 이렇게 적힌다.

P=InnTnTn=13(211121112)P = I - \frac{\vv{n}\vv{n}^{\mathsf T}}{\vv{n}^{\mathsf T}\vv{n}} = \frac{1}{3}\begin{pmatrix} 2 & -1 & -1 \\ -1 & 2 & -1 \\ -1 & -1 & 2 \end{pmatrix}

(22)의 행렬을 처음 봤을 때 우리는 이것이 무엇을 하는지 숫자만 봐서는 알 수 없었다. 13\tfrac{1}{3}-1 들이 왜 저기 있는지도 알 수 없었다.

이제 Definition 2의 정의를 써서 다시 만들어 보자. 다만 기저를 잘 고른다. 평면 안에 두 개, 평면에 수직으로 하나 고른다.

b1=(1,1,0),b2=12(1,1,2),n=(1,1,1)\vv{b}_1 = (1,-1,0), \qquad \vv{b}_2 = \tfrac{1}{2}(1,1,-2), \qquad \vv{n} = (1,1,1)

(23)의 셋은 서로 직교한다(b1b2=0\vv{b}_1 \cdot \vv{b}_2 = 0, b1n=0\vv{b}_1 \cdot \vv{n} = 0, b2n=0\vv{b}_2 \cdot \vv{n} = 0). 이제 각각이 어디로 가는지 계산하지 않고 그냥 안다.

Pb1=b1,Pb2=b2,Pn=0P\vv{b}_1 = \vv{b}_1, \qquad P\vv{b}_2 = \vv{b}_2, \qquad P\vv{n} = \vv{0}

(22)의 정의로 직접 확인해 보자. 법선을 넣으면

Pn=nn(nTn)nTn=nn=0P\vv{n} = \vv{n} - \frac{\vv{n}(\vv{n}^{\mathsf T}\vv{n})}{\vv{n}^{\mathsf T}\vv{n}} = \vv{n} - \vv{n} = \vv{0}

이고, 평면 안의 벡터는 nTb=0\vv{n}^{\mathsf T}\vv{b} = 0 이므로

Pb=bn(nTb)nTn=b0=bP\vv{b} = \vv{b} - \frac{\vv{n}\,(\vv{n}^{\mathsf T}\vv{b})}{\vv{n}^{\mathsf T}\vv{n}} = \vv{b} - \vv{0} = \vv{b}

가 된다. 평면 안에 있는 것은 투영해도 그대로고, 평면에 수직인 것은 그림자가 없다. (24)의 답을 열에 세우면 끝이다.

P좋은 기저=(100010000)P_{\text{좋은 기저}} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix}
같은 투영인데 왼쪽 행렬과 오른쪽 행렬이 이렇게 다르다. 다른 것은 기저뿐이다.

Figure 5:같은 투영인데 왼쪽 행렬과 오른쪽 행렬이 이렇게 다르다. 다른 것은 기저뿐이다.


5. 기저를 바꾸면 — M1AMM^{-1}AM 의 정체

이제 L28의 유사 행렬로 돌아간다. 거기서 B=M1AMB = M^{-1}AM 을 두고 "같은 변환의 다른 얼굴"이라고 했지만 MM 이 무엇인지는 말하지 않았다. MM 은 기저 변환 행렬이다.

새 기저 b1,,bn\vv{b}_1, \dots, \vv{b}_n 을 열에 세운 행렬을 MM 이라 하자. 어떤 벡터의 새 좌표c\vv{c} 라는 것은 그 벡터가 c1b1++cnbnc_1\vv{b}_1 + \dots + c_n\vv{b}_n 이라는 뜻이고, 이것은 열들의 조합이므로

(표준 좌표)=M(새 좌표)(\text{표준 좌표}) = M\,(\text{새 좌표})

(28)의 식을 뒤집으면 (새 좌표)=M1(표준 좌표)(\text{새 좌표}) = M^{-1}(\text{표준 좌표}) 다.

이제 새 좌표계에 사는 사람의 입장에서 TT 를 한 번 적용해 보자. 세 단계를 거친다.

c  M  Mc  A  AMc  M1  M1AMc\vv{c} \ \xrightarrow{\ M\ }\ M\vv{c} \ \xrightarrow{\ A\ }\ AM\vv{c} \ \xrightarrow{\ M^{-1}\ }\ M^{-1}AM\vv{c}

첫 단계는 “새 좌표를 표준 좌표로 번역”, 둘째는 “표준 좌표계에서 변환 실행”, 셋째는 "결과를 다시 새 좌표로 번역"이다. 셋을 합친 것이 새 기저에서 본 TT 의 행렬이다.

B=M1AMB = M^{-1}AM

L28에서 유사 행렬끼리 고윳값·대각합·행렬식·랭크가 같았던 이유가 이제 분명하다. 그것들은 변환의 성질이지 좌표계의 성질이 아니기 때문이다. 반면 대칭성은 유사 변환으로 깨졌는데, 대칭이란 “기저가 직교라는 가정 아래에서의” 성질이라 좌표계를 비스듬히 기울이면 사라진다.

대각화의 최종 해석

그렇다면 대각화란 무엇인가. S1AS=ΛS^{-1}AS = \Lambda 에서 SS 의 열은 고유벡터였다. Theorem 1에 비추어 읽으면 이렇게 된다.

고유벡터를 기저로 고르면 행렬이 대각이 된다.

당연하다. Definition 2의 정의대로 jj 번째 열을 구하려면 T(xj)T(\vv{x}_j)같은 고유벡터 기저로 전개해야 한다. 그런데 전개할 것도 없다.

T(xj)=λjxj=0x1++λjxj++0xnT(\vv{x}_j) = \lambda_j \vv{x}_j = 0\cdot\vv{x}_1 + \dots + \lambda_j\cdot\vv{x}_j + \dots + 0\cdot\vv{x}_n

(31)의 계수를 세로로 세우면 jj 번째 자리에만 λj\lambda_j 가 있고 나머지는 전부 0 인 열이다.

[T(xj)]x=λjej\bigl[\,T(\vv{x}_j)\,\bigr]_{\vv{x}} = \lambda_j \vv{e}_j

그런 열이 nn 개 모이면 대각행렬 Λ\Lambda 다. 대각화는 계산이 아니라 정의였다.

다만, 좋은 기저가 늘 있는 것은 아니다

여기서 한 걸음 더 나가면 이런 말이 하고 싶어진다. “어려운 행렬이란 없다. 나쁜 기저가 있을 뿐이다.” 절반은 맞고 절반은 틀리다.

9090^\circ 회전을 보자. 어떤 실수 기저를 골라도 이 변환의 행렬은 대각이 되지 않는다. 대각이 되려면 T(x)=λxT(\vv{x}) = \lambda\vv{x} 인 실수 방향이 있어야 하는데, 9090^\circ 회전은 모든 벡터를 자기 자신과 수직인 곳으로 보낸다. 자기 방향을 지키는 벡터가 하나도 없다.

L28의 결함 행렬도 마찬가지다. 고유벡터가 nn 개 없으면 어떤 기저로도 대각이 안 되고 조르당 형이 한계다.


6. 세 가지 분해가 사실은 하나의 질문이었다

이 관점을 손에 쥐고 지난 강의들을 돌아보면, 흩어져 있던 이야기들이 한 줄에 꿰인다. 모두 어떤 좌표계를 쓸 것인가라는 하나의 질문이었다.

들어가는 쪽 기저나오는 쪽 기저얻는 모양대가
대각화 (L22)고유벡터같은 고유벡터Λ\Lambda직교를 포기, 없을 수도
스펙트럼 정리 (L25)고유벡터(직교)같은Λ\Lambda대칭행렬에만
유사 변환 (L28)아무 기저같은뭐든얻는 것도 없음
SVD (L29)v\vv{v} (직교)u\vv{u} (직교)Σ\Sigma기저 두 벌
A = \begin{pmatrix}3 & 1 \\ 0 & 2\end{pmatrix} 하나를 두 방식으로 본 것이다.
왼쪽은 고유기저 — 기저가 한 벌이라 편하지만 두 방향이 45^\circ 로 기울어 있다.
오른쪽은 SVD 기저 — 들어가는 쪽도 나오는 쪽도 직각이지만 기저가 두 벌이다.

Figure 6:A=(3102)A = \begin{pmatrix}3 & 1 \\ 0 & 2\end{pmatrix} 하나를 두 방식으로 본 것이다. 왼쪽은 고유기저 — 기저가 한 벌이라 편하지만 두 방향이 4545^\circ 로 기울어 있다. 오른쪽은 SVD 기저 — 들어가는 쪽도 나오는 쪽도 직각이지만 기저가 두 벌이다.

이 표를 세로로 읽으면 L29에서 남겨 둔 물음의 답이 나온다. 왜 SVD에만 조건이 없었는가.

두 요구를 나란히 적어 보면 차이가 한눈에 들어온다.

AS=SΛ(대각화),AV=UΣ(SVD)AS = S\Lambda \qquad\text{(대각화)}, \qquad\qquad AV = U\Sigma \qquad\text{(SVD)}

(33)의 두 식은 모양이 똑같다. AA 곱하기 기저행렬 = 기저행렬 곱하기 대각행렬”. 다른 것은 오른쪽에 서 있는 기저행렬이 왼쪽 것과 같아야 하느냐뿐이다.

대각화는 그 둘이 같기를 요구한다. 그래서 Ax=λxA\vv{x} = \lambda\vv{x} 를 만족하는 x\vv{x}nn 개 있어야 하고, 없으면 실패한다. mnm \neq n 이면 ASASSΛS\Lambda 의 크기부터 안 맞아 시도조차 못 한다.

SVD는 그 제약을 풀었다. 기저를 두 벌 쓸 자유를 얻는 대신 요구를 낮춘 것이다. 그러자 직사각이든 랭크가 모자라든 전부 통과했다.


7. 자주 하는 오해

① 행렬과 선형변환은 같은 것이다. 아니다. 기저를 정해야 비로소 대응이 생긴다. 기저가 다르면 같은 변환이 다른 행렬로 적히고, 기저를 안 정하면 행렬 자체가 없다. Figure 1의 그림이 그 이야기다.

거꾸로도 성립한다. 행렬 하나를 놓고 "이 변환은 무엇인가"라고 물으면 어떤 기저에서냐고 되물어야 한다.

② 평행이동은 선형변환이다. 아니다. T(0)0T(\vv{0}) \neq \vv{0} 이라 (3)의 조건에서 바로 걸린다. 평행이동까지 포함하는 것은 아핀변환이라는 별도의 이름을 가진다. 그래픽스가 동차좌표로 차원을 하나 올리는 것은 아핀변환을 한 차원 위의 선형변환으로 바꿔 치기 위해서다.

③ 행렬의 ii 번째 행이 기저벡터가 가는 곳이다. 아니다. 이다. 이 시리즈는 L1부터 일관되게 열 기준이다. 벡터를 세로로 세우고 AxA\vv{x} 를 열들의 조합으로 읽는다. 행 기준으로 쓰는 책도 있는데 그 경우 모든 행렬이 전치되어 나타나므로 섞어 읽으면 반드시 틀린다.

④ 함수를 벡터라고 부르는 것은 비유다. 아니다. 문자 그대로다. 벡터공간의 조건은 "더할 수 있고 상수배할 수 있고 영원소가 있다"뿐이고 다항식과 함수는 전부 만족한다(L11). 이번 강의에서 d/dxd/dx 의 행렬을 만들 수 있었던 것이 그 증거다. 행렬은 화살표에만 붙는 것이 아니다.

⑤ 좋은 기저를 고르면 어떤 행렬이든 대각이 된다. 아니다. 9090^\circ 회전은 어떤 실수 기저에서도 대각이 되지 않고, 결함 행렬도 그렇다. 좌표계를 바꾸어 감출 수 있는 것과 없는 것이 있다.


마치며...

이번 강의에서는 한 층 위로 올라가 행렬을 다시 보았다.

그리고 지금까지의 여러 이야기가 하나로 묶였다. 대각화는 고유벡터를 기저로 고른 것이고, 유사 행렬은 같은 변환을 다른 기저에서 본 것이며, 특이값 분해는 들어가는 쪽과 나오는 쪽에 각각 좋은 기저를 고른 것이다. 전부 하나의 질문이었다.

그렇다면 자연스럽게 이런 물음이 따라온다. 기저를 잘 고르면 무슨 이득이 있는가? 계산이 쉬워지는 것 말고 또 무엇이 있을까.

다음 강의에서 뜻밖의 답을 본다. 압축이다. 여러분이 찍은 사진이 저장될 때 실제로 벌어지는 일은, 다름 아닌 기저 변환이다.

이번 강의의 내용을 파이썬으로 확인해 보려면 L30 실습 노트북으로 넘어가면 된다. 미분과 적분을 행렬로 만들어 한쪽으로만 역이 되는 것을 확인하고, 같은 변환을 여러 기저에서 적어 보며, 투영이 정말 diag(1,1,0)\mathrm{diag}(1,1,0) 이 되는지 직접 만들어 볼 수 있다.