선형대수학 소개
이 시리즈에서는, 기초 선형대수학을 심도 깊게 다룹니다.
선형대수학의 강력함은, 다양한 학문 분야에서 그대로 사용이 가능하다는 것입니다. 그리고 선형대수학 공부의 핵심은, 선형 변환의 추상화입니다.
선형대수학에서는 어떤 특정 선형변환 또는 벡터가 특수한 성질을 가진다는 등의 내용은 다루지 않습니다. (가령 미적분학은 꼭 알아야하는 ex, sinx 같은 특수한 함수들이 있는데, 선형대수학에서는 그런게 없다는 것 입니다.) 게다가, 어떤 벡터가 어떤 의미를 가진다는 의미부여도 하지 않습니다. (단, 기초 선형대수학을 공부할 적에는 예외적으로 유클리드 공간을 통해서 매우 단순한 기하학적 의미를 부여합니다.) 이것은, 선형대수학을 다른 학문에 응용할 수 있는 강력한 이유입니다. 예를들어서,
- 물리적 벡터
- population vectors (생물학)
- portfolio vectors (금융)
- probability vectors (확률론)
- 해석학에서 다루는 함수들
은, 모두 벡터입니다. 그러니깐, 객체지향프로그래밍의 관점으로 보면, 선형대수학을 공부하는 것은, 우리의 마음 속에 벡터라는 추상적 class를 구현하는 것입니다. 그리고 그렇게 선형대수학을 공부하고나면, 다른 분야를 공부할때 추상화된 개념을 통해서 그 공부에 필요한 어려운 이론들을 빠르게 흡수할 수 있습니다.
공부주제
사실, 선형대수학을 공부하는 이유에 따라서 다를겁니다. 그러나, 어떤 이유에서 선형대수학을 공부하든간에 적어도 선형대수학을 공부한 사람이 정복하고 넘어가야하는 개념들이 있습니다.
선형 변환 그리고 벡터
예를들어서, 뉴턴 제2법칙 F=ma라는 수식은 선형 변환의 예시입니다. 이 수식의 의미는, 질량인 m인 물체에 힘 F가 적용되면, 그 물체는 가속도 a를 가진다는 것입니다. 제가 하고 싶은 말은, 이겁니다.
여러분은, F 그리고 a를 벡터 그리고 m을 스칼라로 인지해야 하고 뉴턴 제 2법칙의 내용에서 a를 입력으로 받아서 F를 반환하는 (또는 그 반대로 F를 입력으로 받아서 a를 반환하는) 선형 변환을 발견 할 수 있어야 합니다.
행렬은 선형 변환의 표현이다.
예를들어서, 우리는 뉴턴 제 2법칙을 좌표를 이용해서 표현 할 수 있습니다. 만약, 우리가 3차원 공간에서의 뉴턴 제 2법칙을 F=(Fx,Fy,Fz) 그리고 a=(ax,ay,az)를 통해서 표현한다면 그 법칙은 다음과 같은 수식으로 나타낼 수 있습니다.
Fx=max+0ay+0az
Fy=0ax+may+0az
Fz=0ax+0ay+maz
그리고 이 선형변환의 행렬 표현은 다음과 같습니다.
⎝⎜⎛m000m000m⎠⎟⎞.
구체적인 주제
기초 선형대수학 공부는 행렬(선형변환)을 더욱 간단한 행렬로 변환하는 과정들의 연속입니다. 그리고 그러한 학습의 과정은 크게 두가지로 보여집니다.
- 선형 대수의 언어로 간단한 행렬로 변환하는 과정의 의미를 이해하기.
- 그 과정을 실제로, 수행하는 것을 연습하기.
왜 행렬계산이 기초 선형대수학에서 매우 중요하게 여겨지는 것일까요?
선형대수학의 개념이 선형시스템 (또는 선형변환의 언어로 적힌 문제)를 효율적으로 해결하는 데 기여한 다는 것을 전달하기 위해서 입니다.
요약하자면, 기초선형대수학 학습의 목표는 크게 두가지로 보여집니다.
- 선형시스템을 효율적으로 해결하는 것과 관련 있습니다.
- 선형변환을 이해하고 표현하는 것과 관련있습니다.
기초 선형대수학 공부에서 하는 구체적인 계산들은 다음과 같습니다.
-
기본적인 계산에 익숙해지기: 행렬은 가장 기본적이고 중요한 객체입니다. 기본적인 행렬 연산을 잘 다루는 것은 선형 대수학을 이해하고 응용하는 데 필수적입니다. 행렬의 덧셈, 뺄셈, 곱셈, 전치 등의 기본 연산들을 연습하면 행렬의 특성과 구조를 더 잘 이해할 수 있습니다.
-
선형 시스템 해 구하기: 행렬은 선형 시스템의 계수 행렬과 상수항 벡터를 나타내는 데 사용됩니다. 행렬 계산을 통해 선형 시스템의 해를 구하는 기술은 다양한 분야에서 중요한 응용을 가지고 있습니다. 예를 들어, 물리학, 공학, 경제학 등 다양한 과학과 학문에서 선형 시스템을 다루며 문제를 해결하는 데 사용됩니다.
-
고유값과 고유벡터 계산: 행렬의 고유값과 고유벡터는 다양한 문제에서 중요한 역할을 합니다. 고유값과 고유벡터를 계산하여, 행렬의 특성을 파악하고 선형 변환의 특성을 이해하는 데 도움이 됩니다. 이는 물리학적인 시스템의 안정성 분석, 데이터 분석에서의 주성분 분석 등에 사용됩니다.
-
대각화: 행렬을 대각화하거나 간단한 형태로 변환하는 것은 행렬의 특성을 더 잘 파악하기 위한 중요한 역할을 합니다. 그리고 행렬의 거듭제곱을 간단하게 만들어줍니다.
기저 그리고 좌표변환
벡터 그리고 선형변환
벡터는 크기와 방향을 가지는 양을 나타내는 개념입니다. 특히, 물리적인 양을 표현하는 데에 사용됩니다. 그러나 수학에서는 추상적인 개념으로 다루어지며, 이러한 추상성은 선형대수학을 다른 분야에 응용할 수 있는 힘을 부여합니다.
벡터는 벡터공간의 원소로 정의되며, 벡터공간은 선형변환의 대상으로 다루어집니다.
선형 변환
선형변환은 벡터를 다른 벡터로 매핑하는 함수로, 벡터에 대한 연산을 나타냅니다. 선형변환은 벡터의 덧셈과 스칼라배에 대해 선형성을 유지하며, 구조를 보존합니다.
기저(Basis)의 중요성
선형대수학이란 단순히, 선형변환을 다루는 학문이고 선형 변환은 벡터공간을 대상으로 하는 연산자에 지나지 않습니다. 그리고 벡터공간과 선형변환을 이해하기 위해서는 반드시 기저를 알아야합니다.
왜냐하면, 벡터공간과 그 것을 대상으로 하는 선형변환을 머리속에 그려내기 위해서는 기저가 필요하기 때문입니다.
선형대수학을 처음 배운 사람에게 가장 필요한 경험은, 기저를 통해서 선형변환을 머리속에 그려내는 것입니다. 이 관점에서 만들어진 훌륭한 교육 자료의 예시로는 3blue1brown 채널의 Essence of linear algebra가 있습니다.
벡터공간, 선형결합
수학적으로 벡터공간이 정의가 되기 위해서는 다음 3가지가 필요합니다.
- 스칼라들의 집합 K : 예를들어서 실수의 집합 R과 복소수 집합 C가 있습니다.
- 벡터들의 집합과 벡터 합(V,+)
- 스칼라와 벡터와의 곱 : 스칼라곱이라고 부릅니다.
이렇게 3가지가 정의되고 나면, 우리는 임의의 벡터vi들과 스칼라ai 들에 대해서 다음이 명확하게 됩니다. 이를 선형결합이라 부릅니다.
a1⋅v1+a2⋅v2+…+an⋅vn
다음 개념을 이해하고 나야, 기저를 이해할 수 있습니다.
기저
선형 대수학의 본질은 '벡터'를 어떻게 표현하느냐에 달려있습니다. 그 중에서도 '선형 독립'과 '기저'는 이 표현의 핵심을 담당하고 있죠.
선형 독립
선형 독립이라는 개념은 간단히 말하자면, 주어진 벡터들을 다른 벡터들의 조합으로 표현할 수 없는 상태를 의미합니다. 예를 들어, 2차원 평면에서 두 벡터가 선형 독립이라면, 한 벡터를 다른 벡터의 조합으로 표현할 수 없습니다. 이는 그 두 벡터가 서로 다른 방향을 가리킨다는 것을 의미합니다.
기저
기저는 어떤 벡터 공간을 구성하는 '최소한'의 벡터 집합을 의미합니다. 이 기저의 벡터들을 조합하면 그 벡터 공간의 모든 벡터를 표현할 수 있습니다. 그리고 기저가 되려면 그 집합의 벡터들은 선형 독립이어야 합니다.
핵심 통찰
이제 가장 중요한 통찰에 대해 알아보겠습니다. 벡터의 집합이 작으면, 그 집합은 선형 독립이기 쉽습니다. 왜냐하면 작은 수의 벡터로 다른 벡터를 표현하는 것은 어렵기 때문입니다. 반대로, 벡터의 집합이 크면, 그 벡터 공간 전체를 표현하기 쉽습니다. 하지만, 너무 많은 벡터가 들어가면 그 중 일부 벡터는 다른 벡터들의 조합으로 표현될 가능성이 높아, 선형 독립이 아닐 가능성이 높아집니다.
그래서, 선형 독립을 유지하면서 벡터 공간 전체를 표현할 수 있는 '적당한 크기'의 벡터 집합을 찾는 것이 중요합니다. 이러한 집합을 찾는 것이 바로 '기저'를 찾는 것입니다.
간단히 말해, 기저는 선형 독립을 유지하면서도 벡터 공간 전체를 표현할 수 있는 '최적의' 벡터 집합입니다.
요약
선형 대수학의 중심은 벡터들을 어떻게 표현하느냐에 있습니다. 선형 독립은 벡터들이 서로 독립적임을 의미하고, 기저는 벡터 공간 전체를 표현할 수 있는 최소한의 독립적인 벡터 집합을 의미합니다. 중요한 것은 선형 독립을 유지하면서도 벡터 공간을 최대한 표현할 수 있는 벡터 집합, 즉 기저를 찾는 것입니다.
기저 (Basis)의 정의
기저는 linearly independent한 집합이므로 중복되는 정보가 없습니다. 또한, spanning set이기 때문에 벡터공간의 모든 원소를 표현하는 데 충분한 정보를 가지고 있습니다. 따라서, 기저는 벡터공간을 정의하는 중요한 개념입니다.
기저는 linearly independent spanning set, minimal spanning set, maximal linearly independent set의 세 가지 정의 중 하나로 선택할 수 있습니다. 이 정의들은 기저의 핵심적인 속성을 나타내며, 모든 정의에서 기저의 의미는 동일합니다.
A linearly independent spanning set.
A minimal spanning set.
A maximal linearly independent set.
Minimal spanning set은 더 작은 집합으로 벡터공간을 생성할 수 없음을 의미하며, maximal linearly independent set은 더 큰 집합은 선형 독립일 수 없음을 의미합니다.
자세히 말해서, 기저 S에 속하는 벡터들 중 어느 하나라도 (v를) 제거하면, 그 집합 S∖v는 그 벡터공간을 생성할 수 없습니다. 그리고 S에 속하지 않은 벡터 하나를 (w를) S에 추가하면, 그 집합 S∪{w}은 더이상 선형 독립일 수 없습니다.
차원의 정의
차원이란, 단순히 기저의 크기 (원소의 개수)를 의미합니다. 이 정의에 담겨있는 함의는 매우 놀랍습니다.
모든 벡터 공간은 하나 이상의 기저를 가지며, 모든 기저들은 항상 같은 크기를 갖는다.
따라서, 하나의 기저만 알고 있어도 차원을 알 수 있습니다.
유클리드 공간과 차원
고등학교 수학을 공부할 때 다음과 같은 그림을 보았을 것입니다. 이 그림이 나타내는 것을 우리는 R2라고 부릅니다. 여기서, 2는 다루는 차원을 의미하고 R은 실수(real number)의 집합을 표기하는 기호입니다.

더 나아가서, R3은 무엇일까요? R3는 3차원 실수좌표공간입니다.

더 나아가서, 차원을 확장해나가면 어떻게 될까요? R4, R5, R6, 그리고 R100 이런식으로 공간을 확장해나갈 수 있습니다. 이 공간들은 시각화하는 것이 불가능하겠지만, 수학적으로 표현하고 다루는 것은 가능합니다. 일반적으로 Rn (n은 양의 정수)은 다음과 같이 정의됩니다.
- 스칼라들의 집합은 단순히, 실수의 집합 R입니다.
- Rn의 원소는 실수의 n-tuple로 표현됩니다.
- 두 튜플의 합은 다음과 같이 정의 됩니다.
(a1,…,an)+(b1,…,bn)=(a1+b1,…,an+bn)
- 스칼라k와 튜플(a1,…,an)에 대해서 스칼라 곱은 다음과 같이 정의 됩니다.
k⋅(a1,…,an)=(ka1,…,kan)
다시말해서,
Rn은 벡터 공간입니다.
유클리드 공간과 표준 기저 벡터
Rn의 차원은 n입니다.
왜, Rn의 차원이 n일까요? 이 이유를 정확하게 아는 것이 매우 중요 합니다. 사람들이 많이 하는 오해는 단순히 n-tuple로 집합의 원소를 표기하기 때문에, Rn의 차원을 n이라고 이해하는 것입니다. 그러나, (결론은 맞지만) 이는 틀린 설명입니다.
예를들어서, 복소수(Complex number)들의 순서쌍 집합 C2를 실수를 스칼라로 하는 벡터공간으로 바라보면 4차원 공간 입니다. 그리고 C를 복소수를 스칼라로 하는 벡터공간으로 바라보면 2차원 공간입니다. 두 경우의 차원이 다른 이유는 각 경우에 대해서 선형 결합의 의미가 다르기 때문에 기저의 크기가 달라지기 때문입니다.
예를들어 (1+i,0+i)를 선형결합으로 표현해봅시다.
(1+i,0+i)=(1+i)⋅(1,0)+i⋅(0,1)
은 복소수를 스칼라로 보는 관점에서만 선형결합이 되고, 실수만 스칼라로 보는 관점에서는 이것은 선형결합이 아닙니다. 왜냐하면 그 경우에서는 1+i, i가 스칼라가 아니기 때문입니다. 실수를 스칼라로 할 때는 2개의 벡터로는 모든 벡터를 선형결합으로 나타낼 수 없고 (같은 말로, 생성 할 수 없고) 아래와 같이 크기가 4인 집합이 C2를 생성 할 수 있고 이 중 하나라도 빠지면 C2를 생성할 수 없습니다.
(1,0),(i,0),(0,1),(0,i)
Rn의 차원이 n인 이유는 다음과 같습니다.
차원은 벡터 공간의 기저 벡터의 개수를 나타냅니다. 따라서, Rn의 차원은 표준 기저 벡터의 개수인 n과 일치합니다.
표준 기저 벡터들은 한 개의 성분(component)만 1이고 나머지 성분은 0인 tuple들입니다. 예를 들어, R3의 표준 기저 벡터는 다음과 같습니다:
e1=(1,0,0)
e2=(0,1,0)
e3=(0,0,1)
표준 기저 벡터들의 집합이 기저임을 이해하는 것이 중요합니다. 다시말해서, 모든 벡터가 기저벡터의 선형결합으로 표현이 가능하다는 것과, 표준 기저 벡터들의 집합이 minimal하다는 것을 이해해야 합니다.
예를 들어, R3의 벡터 v=(5,1,6)는 다음과 같이 표현할 수 있습니다:
v=5⋅e1+1⋅e2+6⋅e3
여기서 5, 1, 6은 스칼라이므로, 이는 표준기저벡터의 선형결합입니다. 그리고 표준 기저 벡터 e3를 제거하여 얻은 집합 {e1,e2}는 R3를 생성 할 수 없습니다. 마찬가지로, e1 또는 e2도 제거하면, 그 집합은 R3를 생성 할 수 없습니다. 아래의 그림에서 보듯이 그 집합들은 전체 공간이 아닌, 부분 공간을 생성합니다. 그러므로 e1,e2,e3은 기저이고, 기저를 구성하는 벡터의 개수가 3개이므로 R3 차원은 3입니다.

선형변환
변환이란, 단순히 입력과 출력이 정의된 연산입니다. 그리고 선형 변환이란, 입력의 증폭이 그에 상응하는 출력의 증폭을 일으키고, 입력할 대상을 합하여 변환에 입력하면, 각 대상에 대응하는 출력들의 합이 출력되는 변환입니다.
수학적으로 표기하면, 다음과 같습니다. V,W가 벡터공간 K가 (두 벡터공간을 정의할 때 명시하는) 스칼라들의 집합이라 하면,
변환 T:V→W가 존재해서 모든 스칼라 a,b∈K와 벡터 v,w∈V에 대해서
T(av+bw)=a⋅T(v)+b⋅T(w)
가 성립하면, T를 선형변환이라고 부릅니다.
선형 변환의 합성 변환과 역변환
먼저, 두 개의 선형 변환 T1과 T2가 있을 때, 이 두 변환을 합성하는 것을 고려해봅시다. 합성 변환은 먼저 T1을 적용하고, 그 결과에 T2를 적용하는 것을 의미합니다. 수식으로는 다음과 같이 표현됩니다:
(T2∘T1)(v)=T2(T1(v))
또한, 선형 변환에는 역변환(inverse transformation)이 존재할 수도 있습니다. 만약 선형 변환 T:V→V에 대해, 다른 선형 변환 S:V→V가 존재하여 다음이 성립한다면,
S∘T=Identity Transformation
그리고
T∘S=Identity Transformation
즉, S를 T의 역변환(inverse transformation)이라고 합니다. 이러한 역변환은 원래의 선형 변환을 되돌리는 역할을 합니다.
선형변환의 합과 스칼라곱
정의역(Domain)과 공역(Codomain)이 동일한 선형변환들의 집합은 벡터공간입니다. 다시말해서, 선형변환의 합과 스칼라곱이 정의됩니다.
-
선형 변환의 합:
두 개의 선형 변환 T1:V→W와 T2:V→W가 주어졌을 때, 이 두 선형 변환을 합하여 새로운 선형 변환을 만들 수 있습니다. 이때, 새로운 선형 변환은 두 선형 변환의 합이라고 합니다. 수식으로는 다음과 같이 표현됩니다:
(T1+T2)(v)=T1(v)+T2(v)
여기서 v는 입력 벡터이고, T1(v)과 T2(v)는 각각 T1과 T2가 v에 적용된 결과를 의미합니다.
-
선형 변환과 스칼라의 곱:
선형 변환 T:V→W와 스칼라 c∈K (여기서 K는 스칼라들의 집합)가 주어졌을 때, T에 스칼라 c를 곱한 새로운 선형 변환을 구할 수 있습니다. 이때, 스칼라 c를 T의 상수배라고 합니다. 수식으로는 다음과 같이 표현됩니다:
(cT)(v)=c⋅T(v)
여기서 v는 입력 벡터이고, T(v)는 T가 v에 적용된 결과를 의미합니다.
행렬
행렬은 수나 기호들을 사각형 모양의 배열로 표현한 것으로, 선형 대수학에서 매우 중요한 개념입니다. 주로 숫자들의 집합을 격자 형태로 배열하여 나타내며, 여러 가지 수학적 연산에 사용됩니다.
행렬은 크기에 따라 다양한 종류가 있습니다. 일반적으로 m×n 형태로 나타내며, m은 행의 개수를, n은 열의 개수를 의미합니다. 행렬의 각 원소는 행과 열의 위치에 따라 숫자로 표현되며, 주로 알파벳 대문자로 표기됩니다.
예를 들어, 2행 3열 크기의 행렬 A는 다음과 같이 나타낼 수 있습니다:
[a11a21a12a22a13a23]
이때, aij는 A의 i행 j열에 위치한 원소를 나타내고, aij를 A의 i,j성분이라고 부릅니다.
벡터와 선형 변환의 행렬 표현
벡터와 선형 변환은 행렬로 표현할 수 있습니다. 가장 먼저, 짚고 넘어가야할 것은 다음과 같습니다.
행렬 표현은 기저에 의존합니다.
표준기저를 통한 좌표 표현
2차원 유클리드 공간에서의 벡터와 선형 변환을 예로 들어 설명하겠습니다.
-
표준기저를 통한 벡터의 좌표 표현:
2차원 유클리드 공간에서의 벡터v=(v1,v2)는 아래와 같이 표현됩니다.
행벡터: 행벡터는 1×n 크기의 행렬로 표현됩니다.
[v1v2]
열벡터: 열벡터는 n×1 크기의 행렬로 표현됩니다.
[v1v2]
대부분의 경우에, 행렬곱과 선형변환의 관계를 고려해서, 벡터를 열벡터로 나타냅니다.
일반적인 기저를 통한 벡터의 좌표 표현
다음과 같은 표준이 아닌 기저β={b1,b2}를 생각해봅시다.
b1=(1,1)andb2=(0,1)
이때, 벡터v=v1b1+v2b2의 β를 통한 열벡터 표현은 [v1v2]으로 정의됩니다. 열벡터 표현의 의미는 다음과 같습니다.
v를 β를 기저로 하는 선형 결합으로 나타내면, v=v1b1+v2b2입니다.
틀린 표현: 벡터 v=[v1v2].
왜냐하면, 이 표현은 다음과 같은 오해를 일으키기 때문입니다.
틀린 문장 : 벡터 v=(v1,v2)를 β를 기저로 하는 선형 결합으로 나타내면, v=v1b1+v2b2와 같이 표현할 수 있다.
따라서, 다음과 같이 적어야 합니다.
올바른 표현 : 열벡터 [v1v2]는, v=v1b1+v2b2의 β를 통해서 얻은 표현입니다.
결국, v=[v1v2]라 적은 것이 문제입니다. 이것을 해결하기 위해서, 열벡터 표현과 벡터를 등호로 연결할 때는, 다음과 같이 표현하고, 이것을 벡터 v의 좌표 표현이라 부릅니다.
[v]β=[v1v2].
- 즉, [v]β=[v1v2]는, v=v1⋅b1+v2⋅b2가 성립한다는 뜻입니다.
유클리드 공간 벡터v를 열벡터로 간주하는 이유
열벡터[v1v2]가 표준 기저를 통해서 얻어진 경우는, v=(v1,v2)=v1e1+v2e2가 맞는 표현이므로, 다음과 같이 기저를 표기하지 않고 생략하여 적어도, 오해를 일으키지 않습니다. v=[v1v2]
-
그리고 위의 표기는 다음과 같이 적는 것을 가능하게 한다는 장점이 있습니다. (기저 표현이 생략 되었으므로, 좌변과 우변 모두 표준기저를 통해서 얻은 열벡터입니다.)
- 선형 변환을 행렬로 표현: T(v)=Av
- 합성 변환을 행렬로 표현: T∘S(v)=ABv
-
애초에, v=[v1v2]이 참이 되도록 하기 위해서, 처음부터 행렬 및 행렬 연산을 정의한 뒤,
Rn은 실수 성분이 n개인 열벡터의 집합으로 정의됩니다.
라고 정의를 세우고 내용들을 전개하는 방법도 유용합니다.
- 게다가 처음부터 유클리드공간을 열벡터들의 집합으로 보는 관점은, 행벡터표현과 열벡터 표현의 역할을 명확히 구별시키고 그 구별은 복잡한 계산을 단순하게 표현하는데 기여합니다. (단, 거듭제곱과 index가 혼동된다는 단점이 있습니다.)
- 다만, 열벡터와 벡터를 동일시하는 것은 좌표와 성분의 개념을 혼동시킨 다는 단점이 있습니다.
장점이 단점보다 크기 때문에, 우리도 Rn을 열벡터들의 집합으로 바라보도록 합시다.
표준기저를 통한 선형 변환의 행렬 표현:
선형 변환 T:R2→R2이 주어졌을 때, 이 선형 변환은 2×2 크기의 행렬 A로 표현됩니다. 이때, 행렬 A의 각 열은 선형 변환에 의해 기저 벡터가 변환된 결과를 나타냅니다.
예를 들어, 선형 변환 T가 기저 벡터 e1과 e2에 대해서,
T(e1)=[A11A21] 그리고 T(e2)=[A12A22]를 만족한다면
A=[A11A21A12A22]=[T(e1)T(e2)]
으로 표현됩니다.
행렬 곱과 선형변환의 관계
다음을 공부하기 전에 행렬 곱에 대해서 알고 있어야 합니다.
모든 선형 변환은 행렬로 표현가능하고, 행렬 곱은 선형변환 또는 선현변환의 합성을 의미합니다. 이해를 쉽게 하기 위해서, 아래의 설명 1., 2.의 수식에서 나온 행렬 및 열벡터는 표준기저를 통해서 표현합시다. (다시 말해서, 벡터의 성분과 열벡터의 좌표가 동일)
-
행렬과 열벡터의 곱과 벡터의 선형 변환의 동일성: 어떤 선형 변환 T:Rn→Rm은 m×n 크기의 행렬 A로 표준기저를 통해서 표현한 경우, 선형 변환 T에 벡터 ⎣⎢⎢⎢⎢⎡v1v2⋮vn⎦⎥⎥⎥⎥⎤를 적용하는 것은 행렬 A와 행렬 ⎣⎢⎢⎢⎢⎡v1v2⋮vn⎦⎥⎥⎥⎥⎤의 곱으로 표현됩니다.
-
행렬 곱과 선형 변환 합성의 동일성: 두 선형 변환 S:Rm→Rl와 T:Rn→Rm가 주어졌을 때, 이 두 선형 변환을 연속해서 적용하는 것 S∘T의 행렬표현은 각각을 행렬 A, B로 표현한 뒤 그 행렬들을 곱하여 얻어진 행렬AB과 일치합니다.
항등행렬 역행렬
-
항등행렬(identity matrix)과 항등변환(identity transformation):
항등행렬은 n×n 정사각행렬로, 주 대각선 원소는 모두 1이고 나머지 원소는 모두 0입니다. 항등행렬은 항등변환을 나타냅니다. 항등변환은 어떤 벡터를 그대로 유지하는 선형 변환으로, 주어진 기저에 대해 아무런 변화를 주지 않습니다. 예를 들어, 2차원 공간에서의 항등변환은 다음과 같이 표현됩니다.
항등행렬: [1001]
항등변환: 모든 벡터 v=[v1v2]에 대해, T(v)=[v1v2]
-
역행렬(inverse matrix)과 역변환(inverse transformation): 역행렬(inverse matrix)은 주어진 행렬과 곱했을 때 항등행렬(identity matrix)을 얻을 수 있는 특별한 행렬입니다. 어떤 행렬 A에 대해 행렬B가 존재하여, 다음이 성립한다면
A⋅B=B⋅A=I
B를 A의 역행렬이라 부르고, A−1이라고 적습니다. A가 선형변환 T를 나타내는 경우, A의 역행렬 A−1은 T의 역변환의 (A를 얻을때 사용한 기저와 동일한 것을 통해서 얻은) 행렬표현 입니다.
행렬 곱과 선형변환의 합성에는 결합 법칙이 성립합니다.
수식으로 간략하게 표현하면 다음과 같습니다: T1, T2, T3가 합성T1∘T2∘T3 이 가능하고 각각 행렬 A1, A2 그리고 A3로 표현된다고 합시다. 그러면,
T1∘(T2∘T3)=(T1∘T2)∘T3 그리고 (A1A2)A3=A1(A2A3)가 성립합니다.
닮은 행렬
처음 선형대수학을 접하는 입장에서는, 매우 까다로운 개념입니다. 그러나, 대부분의 선형대수에서 다루는 내용의 진정한 의미를 알기 위해서는 꼭 이해해야 하는 개념입니다. 선형대수를 공부하고 나서, 다음 문장들에 대한 이해들을 얻어가야 합니다.
- 선형대수학에서, 다음과 같은 가역 행렬 P가 존재할 경우 두 행렬 A와 B가 닮았다고 정의합니다.
B=P−1AP.
- 행렬 A,B가 두 기저에서 얻어진 동일한 선형 변환의 표현인 경우, B=P−1AP를 만족합니다. 여기서 P는 기저변환 행렬입니다.
- 반대로 두 행렬이 서로 닮은 경우 그들은 같은 선형변환의 다른 기저에 대한 행렬표현입니다.
일반적인 기저를 사용하여 선형 변환을 행렬로 표현하는 것은 유용하며, 기저 선택에 따라 다양한 성질을 파악할 수 있습니다. 이러한 유용성은 선형 대수학과 다양한 응용 분야에서 깊이 있는 이해와 분석을 가능케 합니다.
행렬표현의 정의는 표준기저를 사용할때와 같은 방식입니다.
선형 변환 T가 기저 벡터 b1과 b2에 대해서 다음과 같은 관계를 만족한다고 가정해봅시다:
T(b1)=A11b1+A21b2
T(b2)=A12b1+A22b2
이때, Aij는 행렬 A의 원소입니다.
이러한 경우, T의 행렬 표현은 다음과 같습니다:
[T]β=A=[A11A21A12A22]
각 열이 곧, T(bi)의 기저 β의 열벡터 표현입니다.
따라서, 같은 식을 다음과 같이 표현할 수 있습니다.
[T]β=[A11A21A12A22]=[[T(b1)]β[T(b2)]β]
기저에 따라서, 달라지는 행렬표현
실수를 입력받아서 실수를 반환하는 T(x)=2x라는 함수의 행렬표현은 어떤 기저를 선택하더라도, 항상 2입니다. 실수에서 실수로가는 1차함수의 행렬표현은 기저와 상관없이 항상 동일합니다. 그러나, 2 이상의 차원에서는 이야기가 달라집니다.
기저에 따라서 달라지는 행렬 표현의 개념을 이해하기 위해 닮은 행렬 [0010]와 [001/k0]에 대해 살펴보겠습니다.
T가 다음을 만족시키는 선형 변환이라고 합시다.
T([10])=[00],T([01])=[10].
이때, 기저 βk={[k0],[01]}를 사용하여 선형 변환 T를 행렬로 표현한 결과는 다음과 같습니다.
[T]βk=[001/k0]
이는 기저에 따라서 (k값에 따라 행렬이 달라지므로) 선형 변환의 행렬 표현이 달라지는 것을 의미합니다.
이것이 일반적인 기저를 통한 행렬 표현에서 발생하는 현상으로, 서로 다른 기저를 사용하여 동일한 선형 변환을 행렬로 표현한 경우, 그 행렬을 서로 다를 수 있음을 의미합니다.
기저 변환
기저 변환은 선형변환의 표현에 사용되는 기저를 바꾸는 것을 의미합니다. 정확히 말해서, 정의역(domain)과 공역(codomain)의 기저βold,γold를 각각 βnew,γnew로 변경함을 의미합니다.
기저를 변환한다는 것은 곧, 좌표 표현을 바꾼다는 것을 의미합니다. 그런 점에서 좌표변환이라고 불리기도 합니다.
벡터 공간 V가 두 가지 서로 다른 기저 βold와 βnew를 가질 때, 벡터 v∈V에 대하여 다음과 같이 두 가지 방법으로 표현할 수 있습니다:
[v]old는 기저 βold에 대한 좌표 표현입니다.
[v]new는 기저 βnew에 대한 좌표 표현입니다.
기저변환행렬 Pβold→βnew은 [v]old를 [v]new로 변환하는 행렬입니다.
Pβold→βnew[v]old=[v]new
기저 변환 행렬 Pβnew→βold는 [v]new를 [v]old로 변환하는 행렬입니다.
Pβnew→βold[v]new=[v]old
기저 변환행렬을 이용하면 같은 선형 변환을 나타내는 서로 다른 행렬 표현 사이에 관계를 나타낼 수 있으며, 이는 행렬 계산과 선형 변환의 연산에 유용하게 사용됩니다.
기저 변환 행렬Pβnew→ϵ
두 행렬Pϵ→βnew와 Pβnew→ϵ은 서로가 서로의 역행렬입니다. (간단히 이유를 말하자면, Pϵ→βnewPβnew→ϵ 그리고 Pβnew→ϵPϵ→βnew모두 좌표표현을 바꾸었다가 되돌리는 연산의 표현이니깐요)
Pβnew→ϵ를 간단히 P라 표기한다면, P−1는 Pϵ→βnew을 의미하게 됩니다.
결론을 요약하면 다음과 같습니다
Pβnew→ϵ와 Pϵ→βnew 둘 중 전자가 훨씬 단순한 형태입니다. 후자를 계산하려면 선형시스템을 풀거나, 전자의 역행렬을 구해야하지만, 전자는 단순히 βnew을 이루는 열벡터(표준기저기준)를 이어서 만든 형태이기 때문입니다.
Convention
단순히 convention에 불과합니다만, 후술할 내용을 읽는데 도움이 되는 규칙입니다. Pβnew→ϵ를 간단히 P라표기합니다. 그리고 Pϵ→βnew은 P의 역행렬이므로, Pϵ→βnew 대신에 P−1이라 적겠습니다.
자세히 관찰해 봅시다.
[v]βnew=Pβold→βnew[v]βold가 모든 v에 대해서 성립한다는 것으로 부터, 다음을 유도합니다. 먼저, biold들이 예전 기저들이라고 합시다. 그러면, 예전의 좌표표현 방법에 의해서,
[biold]βold은 i번째 성분이 1이고 나머지가 0인 열벡터ei가 됩니다. 왜냐하면, biold는 단순히
biold=0⋅b1old+0⋅b2old+…+0⋅bi−1old+1⋅biold+0⋅bi+1old+…+0⋅bnold이니깐요.
따라서,
[b1old]βnew=Pβold→βnew[b1old]βold=Pβold→βnewe1
[b2old]βnew=Pβold→βnew[b2old]βold=Pβold→βnewe2
⋮ =⋮
[bnold]βnew=Pβold→βnew[bnold]βold=Pβold→βnewen
입니다.
Pβold→βnewei의 계산 결과는 단순히 Pβold→βnew의 i번째 열입니다.
따라서,Pβold→βnew=[[b1old]βnew⋯[bnold]βnew]입니다.
구체적으로 말해서, 새로운 기저들의 선형결합으로 예전 기저biold를 표현할때, 그 표현에 쓰이는 스칼라들이 곧 기저 변환행렬의 요소가 됩니다.
다시말해서, 새로운 기저 {b1new,…,bnnew}에 대해서, 다음이 성립합니다.
biold=(P−1)1i⋅b1new+(P−1)i2⋅b2new+…+(P−1)in⋅bnnew
여기서, (P−1)ij는 P−1=Pβold→βnew의 i,j성분을 의미합니다.
그리고, 마찬가지 원리로 Pβnew→βold는 다음과 같습니다.
Pβnew→βold=[[b1new]βold⋯[bnnew]βold]
다시말해서, 다음이 성립합니다.
binew=P1i⋅b1old+Pi2⋅b2old+…+Pin⋅bnold
여기서, Pij는 P=Pβnew→βold의 i,j성분을 뜻하는 기호입니다.
예를들어서, 표준이 아닐수 도 있는 기저
βk={[k0],[01]}={b1,b2}과
표준 기저ϵ={[10],[01]}={e1,e2}을 생각합시다.
이때, 행렬 P−1=Pϵ→βk를 구해봅시다.
1. ϵ을 이루는 기저벡터에 대해서, 다음과 같은 연립방정식을 세웁니다.
e1=P11−1b1+P12−1b2
e2=P21−1b2+P22−1b2
2. 위의 연립방정식을 표준기저를 통한 좌표 표현(열벡터 형태)로 적습니다.
[10]=(P−1)11[k0]+(P−1)12[01]
[01]=(P−1)21[k0]+(P−1)22[01]
3. 연립방정식의 해를 구하고, 행렬형태로 다시 적습니다.
P−1=[1/k001].
그리고, 행렬 P=Pβk→ϵ을 마찬가지 방법으로 구해봅시다.
1. 연립방정식 세우기
b1=P11e1+P12e2
b2=P21e2+P22e2
2. 열벡터 형태로 식 바꾸기.
[k0]=P11[10]+P12[01]
[01]=P21[k0]+P22[01]
3. 행렬로 표현.
P=[k001].
행렬 P의 모양을 잘 관찰해봅시다. βk={[k0],[01]}={b1,b2}의 기저 벡터를 이어서 적은 형태이고, 이것을 일반적인 상황에서의 공식으로 적으면, 다음과 같습니다.
P:=Pβnew→ϵ=[b1b2⋯bn] 그리고 Pϵ→βnew=P−1
기저변환과 선형 변환 표현
주어진 선형 변환 T:W→V는 차원이 n인 벡터 공간 W에서 차원이 m인 벡터 공간 V로의 선형 변환이라고 가정합니다. 이 선형 변환 T은 "예전"의 기저βold, γold 를 가지고 있는 V와 W에서 m×n 행렬 M으로 표현됩니다. 그리고 기저 변환은 "새로운" 기저 βnew, γnew를 통해 정의됩니다.
표현의 편리함을 위해서, 새로운 좌표 표현을 옛 좌표표현으로 변환하는 행렬을 언제나 대문자 P,Q로 나타내고, 옛 좌표 표현을 새 좌표 표현으로 변환하는 행렬을 −1을 사용해서, 언제나 다음과 같이 P−1,Q−1로 나타냅시다. 자세히 말해서: V와 W에서 정의되는 (새로운 좌표에서 예전 좌표로 변환하는) 좌표변환 행렬을 각각 P,Q라 합시다. 그러면, 새로운 행렬 표현은 P−1MQ입니다.
-
입력벡터 w의 새로운 기저에 대한 좌표 표현[w]new을 입력으로 받아서, T(w)의 새로운 기저에 대한 좌표 표현 [T(w)]new를 반환하는 행렬을 구하는 것이 목적입니다. 이 목적을 이루기 위해서는, 이전 기저에 대한 선형변환의 행렬 표현 M을 이용해야 합니다.
-
W의 "새로운" 기저에 대한 좌표 표현인 [w]new를 예전" 기저에 대한 좌표 표현인 [w]old로 바꿉니다. 이는 변환 행렬 Q를 사용하여 Q[w]new=[w]old로 나타낼 수 있습니다.
-
[w]old에 "예전" 기저에 대한 선형변환의 표현인 M을 적용하면, T(w)의 "예전" 기저에 대한 좌표표현 [T(w)]old을 얻을 수 있습니다.
-
변환행렬 P−1을 [T(w)]old를 [T(w)]new로 바꾸기 위해서, [T(w)]old=M[w]old=MQ[w]new에 적용합니다. 그러면 다음을 얻습니다.
P−1MQ[w]new=[T(w)]new
위 식은 모든 w에 대해서 성립하므로, 새로운 행렬 표현은 P−1MQ입니다.
변환된 행렬 표현을 계산하는 방법
T가 다음을 만족시키는 선형 변환이라고 합시다.
T([10])=[00],T([01])=[10].
그리고 기저가 표준기저에서 βk={[k0],[01]}로 변환되었다고 합시다.
T의 표준 행렬표현은 다음과 같습니다.
M=[0010]
T의 새로운 기저 βk에 대한 행렬 표현을 구하는 것은, ϵ→βk기저변환을 수행하는 것입니다. 기저 변환 공식을 그대로 적용해봅시다.
βold=γold={[k0],[01]} 그리고 βold=γold={[10],[01]}
새로운 기저에 대한 좌표를 예전 기저(표준기저)에 대한 좌표로 변환하는 행렬은 [k001]이고, 따라서
[T]βk=[k001]−1[0010][k001].
위의 식을 계산하면 [001/k0]이 나오는지 검산해봅시다.
기저 변환의 유용성
기초선형대수학에서, 기저 변환은 표준기저가 아닌, 다른 기저를 사용해서 선형 변환을 행렬로 나타내는 도구로서 다루어집니다.
그렇다면, 왜 표준기저가 아닌, 다른 기저를 사용해서 선형 변환을 행렬로 나타내려고 하는 걸까요?
첫째로, 기저를 잘 선택해서 선형변환을 다시 표현하면 계산이 더욱 간편해집니다. 즉, 효율적인 계산과 다양한 응용을 위한 기반을 마련할 수 있습니다. 예를 들어, 고유 벡터로 이루어진 기저를 사용하여 선형 변환의 행렬 표현을 대각행렬로 표현할 수 있습니다. 이렇게 되면 행렬 거듭제곱(선형 변환의 합성을 반복하는 것)이 매우 간단하게 계산됩니다.
둘째로, 선형 변환의 중요한 특성을 행렬의 언어로 기술하는 근거가 됩니다. 예를들어서, 닮은 행렬 A와 B의 대각 성분의 합은 동일하며, 이는 행렬의 대각합이 사실은 선형변환의 특성을 나타냄을 의미합니다.
셋째로, (기저를 잘 선택해서 어떤 가정을 만족하는 모든) 선형변환을 단순하게 표현할 수 있다는 사실 자체가 선형대수학의 중요한 내용입니다. 다시 말해, 선형변환을 잘 표현해 주는 기저의 존재성이 수학의 수많은 내용들을 증명하고 이해하는데 핵심이 됩니다.
스펙트럴 정리

프리즘을 통해서 빛의 스펙트럼을 관찰할 수 있듯이, 우리는 기저를 통해서 선형변환의 스펙트럼을 얻을 수 있습니다.
스펙트럴 정리(Spectral Theorem)는 함수해석학 및 선형대수학에서 중요한 정리 중 하나로, 특정 선형 변환은 그 특성을 잘 드러나게 하는 좋은 기저를 가진다는 내용입니다.
[특정 선형 변환이 뭘 말하는 건데?] 사실 제 생각에는 윗 문장에서 말하는 self adjoint는 실수 성분 대칭행렬에서 말하는 대칭의 의미를 (기저 및 행렬 표현 없이 대수적방식으로) 선형변환에 대해서도 정의하기 위해서 나온 개념으로 느껴집니다. 그 느낌이 뭔 느낌이냐하면 실수 대칭 행렬의 스펙트럴 정리와 같은 것을 얻기 위한 수학적으로 잘 세팅한 느낌이 든다는 것이죠. 그렇다고 그런 개념이 의미가 없다는 말을 하고 싶은건 아닙니다. 제 감상은, 벡터공간에서 무엇을 직교 기저라 할지 정의하는 것이 (그 공간에 내적을 주는 행위이고 내적은 무엇이 self adjoint인지를 결정하므로) 결국 어떤 선형연산자를 대칭이라 볼지 결정하는 행위라는 것입니다. 그래서 이 개념을 볼 때 이건 대칭행렬이지 이건 (켤레)전치행렬이지 이런 마음가짐으로 생각합니다. 근데 그렇다고 제 맘대로 문장에서 특정 선형변환 대신 대칭 선형변환이란 표현으로 바꾸어 써서는 안되는거긴 하거든요. 왜냐하면 대칭선형연산자라는 말이 실제로 특정 의미로 약속되어 있고, 그게 self adjoint란 용어랑 완전히 일치하진 않아요. 그렇다고 self adjoint 뜻을 여기에 기술할 필요는 없어 보여서 일단 이렇게 뭉뜽그려 표현해봅니다.
기저가 좋은 성질을 가진다고 함은, 벡터 공간의 구조를 잘 드러낸다는 의미입니다. 예를 들어, 좌표 평면에서 (1,0)과 (0,1)은 좌표 평면의 구조를 잘 나타냅니다.
선형 변환의 표현이 그 특성을 잘 드러낸다고 말한 것은, 선형 변환의 표현이 선형변환의 특성을 나타내는 정보(고유값)로 기술된다는 것과 더 나아서 그 표현이 대각화된 형태라는 것을, 그래서 그 표현과 관련된 연산이 매우 단순해 진다는 것을 의미합니다.
스펙트럴 정리는 다양한 분야에서 중요한 응용을 가지고 있습니다. 몇 가지 예시를 들면:
-
순수 수학: 표현론, 미분 기하학, 대수 기하학, 그리고 조화 해석학 등 다양한 분야에서 스펙트럴 정리를 활용합니다. 이를 통해 다양한 선형 변환과 기저의 구조를 이해하고 설명할 수 있습니다.
-
물리학: 스펙트럴 정리는 양자역학에서 힐베르트 공간의 개념과 관련이 있습니다. 양자역학에서의 관측 가능한 값들은 에르미트 연산자에 관련되며, 스펙트럴 정리는 이러한 연산자의 고유값이 실수임을 보장합니다.
-
데이터 분석: 데이터 분석에서 차원 축소, 패턴 인식, 그룹화 등 다양한 작업에 활용될 수 있습니다.
제가 가장 먼저 접한 스펙트럴 정리의 응용은 SVD였습니다. 특히, 공분산행렬을 자주 다루는 통계(회귀분석)공부에서 많이 다루었습니다.
누군가는, 스펙트럴정리를 당연하게 생각할지도 모르겠습니다. (엄청나게 자주 보니깐요) 그러나, 이 시리즈가 이 정리를 다시 (낯설게) 보는 기회가 되었으면 좋겠습니다.
스펙트럴정리에는 여러가지 버전이 존재합니다. 예를들어서, 다음의 정리 역시 스펙트럴 정리라고 불리며
실수 성분의 대칭 행렬은 항상 직교 대각화(orthogonal diagonalization)가 가능하다.
우리는 이 정리만을 이번 시리즈에서 증명해보고자 합니다.