선형대수학 빠르게 몰아보기

2022. 4. 21. 09:38자연과학

들어가기 전에

(혹시나 해서 적는데, '선형대수학 빠르게'는 드라마나 애니메이션 이름을 이르는 게 아닙니다.)

이 글은 David C. Lay, Steven R. Lay, Judi Mcdonald의 <Linear Algebra and Its Applications> 글로벌 5판을 기반으로 작성되지만, 너무 그대로 따라가면 문제가 있을 수 있고 달리 할 게 많기 때문에 최대한 간결하게 작성되고 일부 내용은 제외될 수 있습니다. 그래서 최소한 처음 배우는데 제대로 된 학습을 원한다거나 대학에서 배웠는데 헷갈린다면 이 글은 아닙니다. (특히 왜 배우는지에 대한 내용이 없다면 그것은 교육 자료라고 할 수 없음) 대충 선형대수학에서는 처음에 뭘 배우게 되는가 정도라면 괜찮아 보입니다. 극단적으로 비유하자면 세계지도를 보고 내가 원하는 나라의 좋은 관광 코스를 알 수는 없으니까요.

원래는 어떤 활용법이 있는지 등이 있는 게 교육 목적으론 필수불가결하지만 일단은 [많이 까먹어서 이걸 보고, 모르는 단어가 나오면 다시 그 부분을 검색해서 알아보게끔] 일부러 글 하나에 짧게 쓴 거라서, 나중으로 미루거나 안 할 수도 있습니다.

한국 09 교육과정 기준 기하와 벡터가 선수과목입니다.

 

목차

1. 1차 방정식과 선형대수 

  1.1. 선형계 

  1.2. 벡터방정식

  1.3. 일차독립

  1.4. 일차변환

2. 행렬 대수

  2.1. 정의된 기본 연산 

  2.2. 역행렬

  2.3. 파티션

  2.4. LU 분해

3. 행렬식

  3.1. 행렬식 기본 

  3.2. 크래머 법칙

4. 벡터 공간

  4.1. 벡터의 정의 

  4.2. 역행렬

  4.3. 파티션

  4.4. LU 분해

5. 고윳값과 고유 벡터

  5.1. 고윳값과 고유 벡터 

  5.2. 유사 행렬

  5.3. 복소 고유값

6. 직교성과 최소자승

  6.1. 내적 

  6.2. 직교

  6.3. 최소자승

  6.4. 내적 공간

7. 대칭 행렬과 2차형

  7.1. 대칭 행렬 

  7.2. 2차형

  7.3. 특잇값 분해(SVD)

 

1. 1차 방정식과 선형대수

기초를 까먹은 경우만큼은 바로 알 수 있도록 1장만 조금 깁니다. 중학교 수학, 기하와 벡터, 그리고 여기를 이해했다면 1장 이후의 내용에 모르는 단어는 안 나올 겁니다.

1.1. 선형계

변수 x₁, ..., x_n에 대하여 1차방정식은 다음과 같은 형태를 가집니다.

이러한 방정식이 n개 있으면 일반적으로 해를 구할 수 있습니다. 하나 이상의 1차방정식 묶음을 선형계(linear system)라고 합니다. 선형계의 해는 0개, 1개, 그리고 무한히 많이 존재할 수도 있습니다. 그 외의 개수는 있을 수 없습니다. 선형방정식의 가능한 해는 직선 영역으로 표현되며 하나 이상의 직선이 모두 만나는 교점은 없거나 1개거나 무한히 많기 때문입니다.

 

선형계는 행렬의 형태로 나타내기도 합니다. 예를 들어 아래와 같은 선형계가 있을 때, 계수(와 상수항)을 그대로 써서 행렬로 나타낸 것을 계수 행렬(증강 행렬)이라고 부릅니다.

ax+by=c

dx+ey=f


계수 행렬

증강 행렬

이 형태 상에서 방정식을 풀 때는 같은 의미의 선형계로 고치는 과정을 반복합니다. 같은 의미의 선형계를 유지하는 연산은 간단히 한 행의 성분들에서 다른 행의 대응하는 성분의 실수배를 더하는 것(자기 자신의 1배를 빼면 안 됨)입니다. 일반적으로 다른 행의 n배를 더하기, 행끼리 바꾸기, 행 전체에 0이 아닌 실수만큼 곱하기의 3개를 기초 행 연산으로 설명하는데, 같은 뜻입니다. 유한 번의 이 연산으로 만들 수 있는 선형계끼리는 행 동등(row equivalent)하다고 하며, 행 동등한 경우 해 집합은 같습니다.

cf) 행의 성분에 행의 실수배(자기 자신의 -1배만 제외)를 더하는 것으로 행을 교환할 수 있습니다.

a에 -b를 더하기 -> b에 a를 더하기 -> a에 -2a를 더하기 -> a에 b를 더하기

예를 들어 이 행렬은 다음 행렬과 행 동등합니다.
(2행에 1행 x -6을 더함)
2열 변수의 값은 2가 되겠군요.

이러한 과정을 거쳐 역사다리꼴((row)echelon form, 줄여서 ref) 행렬이나 간소화된 ((row)reduced echelon form, 줄여서 rref) 역사다리꼴 행렬을 만들어 문제를 풀 수 있습니다. REF 행렬은 다음 조건을 만족합니다.

  • 각 행을 왼쪽으로부터 읽을 때 가장 먼저 나오는 0이 아닌 성분(이하 선두)은 항상 아래 행의 선두보다 왼쪽에 있습니다. 선두가 없는 경우 가장 아래에 위치해야 합니다.

RREF는 추가로 다음 조건도 만족합니다.

  • 모든 선두 성분의 값은 1입니다.
  • 모든 선두 성분에 대하여 그것이 속한 열의 다른 성분은 모두 0이어야 합니다.

즉, 위의 행렬 [1 2 3] [0 -7 -14]는 REF형을 만족하고, 이를 RREF형으로 만들려면 아래 행에 -1/7을 곱한 뒤 위 행에서 그 2배를 빼면 되고, 그 결과는 아래와 같습니다. 혹시 문제를 풀어 답을 확인하고자 한다면 여기를 참고해 주세요. 행렬과 행 동등한 RREF형 행렬은 1가지뿐입니다.

위와 같은 경우 선형계의 해는 x_1=-1, x_2=2로 드러나게 됩니다. (행렬의 개념을 도입한 것을 제외하면 중학생때 한 수준을 아직 넘어가지 않았습니다.) 정해지지 않은 해를 가지는 방정식을 추가해서 예를 더 들어보겠습니다.

-> RREF ->
-> 해석 ->  x_1=1-x_3/8
x_2=2-x_3*13/8

물론 x₁을 움직이면서 그와 x₂와 x₃의 관계를 설명하는 것도 가능합니다. (행렬 위에서 설명하자면, 열끼리 바꾼 것) 하지만 일반적으로 선두에 해당하는 변수(basic variable)를 선두가 아닌 변수(free variable)들로 설명합니다.

근이 없는 경우는 행 동등한 행렬 중에서 0 0 0 ... 0 1 과 같이 맨 오른쪽만 0이 아닌 것이 나옵니다.

1.2. 벡터방정식

사실 벡터, 행렬, 텐서의 엄밀한 정의는 개념이 조금 어렵습니다. 그건 아래 4에서 보도록 하고, 일단 다음이 있다는 것만 다시 떠올려 봅시다.

  • 벡터끼리 더함(더하면 평행사변형, 빼면 삼각형의 형태가 떠오를 겁니다.), 교환/결합법칙이 성립, 항등원 영벡터와 역원이 존재
  • 벡터에 실수를 곱함, 교환/결합법칙이 성립. 1을 곱하면 원래 벡터 그대로

이 연산들을 통해 나오는 결과를 일차결합(linear combination)이라고 합니다.

선형대수의 맥락에서 벡터는 n x 1 행렬로 표현(보통 열벡터라고 불림)됩니다. 벡터방정식은 (벡터들과 실수 변수 x₁, x₂, ...라는 가중치의 일차 결합 = 어떤 벡터)라는 형태를 가집니다. n차원 실수 벡터는 ℝⁿ에 포함되었다고 말하며, 이러한 벡터 {v₁, v₂, ...}들의 일차결합으로 표현될 수 있는 모든 벡터의 집합은 ℝⁿ에서 {v₁, v₂, ...}에 의해 생성되는 부분집합(span)이라고 합니다. (어디 가서 한국어로 span은 부분집합이라더라.. 이러면 안 됩니다. 적당히 적어 둔 겁니다. 원문은 subset of ℝⁿ spanned이며 표기법이 span {v1, v2, ...}) 영벡터가 아닌 벡터 하나의 span은 직선, 2개의 span은 직선이나 평면, 3개의 span은 직선이나 평면이나 공간을 나타낼 수 있습니다.

이런 일차결합=v를 행렬의 곱 형태로 나타낸 Ax=v (A: 열벡터를 이어붙임, x: 일차결합 가중치(미지수), v: 일반적으로 벡터 상수)를 행렬 방정식이라고 합니다. 이는 기하와 벡터에서 본 적이 있는데 같은 얘기가 맞습니다. 이것의 해가 있다는 말은 span(A의 열들)에 v가 포함된다는 말과 같으며, 이때 Av=x가 consistent하다고 합니다.

Ax=0이라는 상수항이 없는 선형계를 동차(homogeneous) 선형계라고 합니다. 이는 x가 영벡터면 반드시 만족하기 때문에 반드시 1개 이상의 해가 있습니다. 이를 자명한(trivial) 해라고 합니다. 그 외의 해가 있으려면 free 변수가 있어야 합니다. 예를 들어 한 가지 풀어 보겠습니다.

이 행렬로 표현되는 선형계는 해가 x₁=x₃, x₂=-2x₃입니다. x=[x₁ x₂ x₃]=x₃[1, -2, 1]으로 표현할 수 있고, 직선 영역 전체가 해입니다.

비동차 선형계는 상수항이 있는데, Ax=b에 근 p가 있다면 Ax=b의 근 집합은 p+v (v는 Ax=0의 근)로 나타내어질 수 있습니다.

1.3. 일차독립

벡터 집합에 대하여 어느 하나도 집합의 다른 벡터의 일차결합으로 나타내어질 수 없는 경우, 이들은 일차독립(linearly independent) 하다고 합니다. 예를 들어 [1 2 3] [2 4 6]은 일차독립이 아닙니다. 자연스럽게 영벡터는 다른 벡터와 일차독립일 수 없습니다. 일차독립인 벡터의 일차결합에 의한 동차 선형 방정식은 해가 자명해 하나입니다. 그 역도 성립합니다. (역행렬의 존재 조건 내지 영인자 조건을 떠올려 봅시다.)

벡터의 차원수보다 많은 벡터를 포함하는 집합은 일차독립이 될 수 없습니다. 증명하지는 않아도 직관적으로 당연한 말입니다. 일차독립인 n차원 벡터 n개가 있으면 ℝⁿ의 모든 벡터를 표현할 수 있습니다. (1개는 선, 2개는 면, 3개는 공간, ...) 실수 n개 성분의 벡터를 아무리 써도 이 범위는 벗어날 수 없습니다.

1.4. 일차변환

일차변환은 T(u+v)=T(u)+T(v), 그리고 cT(u)=T(cu)를 만족하는 함수로 볼 수 있습니다. 일차변환은 행렬을 곱하는 것과 대응될 수 있습니다. n2 x n 행렬은 정의역(domain) ℝⁿ에서 공역(codomain) ℝⁿ²로 벡터를 대응시킵니다. 변환 후의 값의 범위를 치역(range)이라고 합니다. (중학생 때 배운 것에서 영어가 추가되고 차원만 늘었습니다.)
이때 공역과 치역이 같으면 이 변환은 ℝⁿ²로의 전사 변환(onto ℝⁿ²)이라고 합니다. 함수에서 배운 일대일 대응이라는 개념도 여기서 정의됩니다. 변환 행렬 T과 정의역 x에 대하여 Tx=0의 해가 자명해뿐일 때 일대일이며, 역도 성립합니다. 역행렬의 개념과 연관지어 생각하면 나름대로 직관적일 수 있지만, 정의역을 ℝⁿ 말고 다르게 정의하면 역행렬이 없는, 정사각이 아닌 행렬이라도 역변환은 정의될 수 있겠으니 주의해야 합니다.

2. 행렬 대수

2.1. 정의된 기본 연산

고등학교 수준에서 크게 벗어나지 않으므로 간단하게 짚고 넘어갑니다.

  • 자연수 i에 대하여 행렬의 i행 i열 성분을 대각 성분(digaonal entry)이라고 하고 대각 외의 성분이 모두 0인 것을 대각 행렬(diagonal matrix)이라고 합니다.
  • 행렬도 벡터와 같이 같은 차원 간 합과 실수배가 있고, 교환 법칙과 덧셈 항등원 등이 정의됩니다.
  • 행렬끼리의 곱도 정의되는데, 곱에도 항등원(대각 성분이 1, 나머지는 0인 단위행렬, identity matrix)과 역원(역행렬, inverse matrix)이 있습니다. 곱은 교환법칙이 성립하지 않지만 결합/분배법칙이 성립합니다. 곱을 거듭제곱(지수) 형태로 축약해 표현할 수 있습니다.
  • 이외에도 행과 열을 뒤집은 전치(transpose)의 존재도 짚고 넘어갑니다.

2.2. 역행렬

행렬 곱에 대한 역원인 역행렬은 정사각 행렬에 대하여 정의되는데 역행렬이 없는 행렬(행/열 일차종속)을 특이(singular) 행렬이라고도 합니다.

기초 행렬(elementary matrix)은 단위행렬에서 1회의 기초 행 연산(행 간 교체 포함)을 가하여 만들어질 수 있는 행렬입니다. 기초 행렬 M, 그 오른쪽에 곱할 수 있는 행렬 A에 대하여 곱 MA는 M이 I로부터 변해진 연산을 A에 똑같이 가한 것과 동일합니다. 행렬 곱은 결합법칙이 성립하므로, 이 기초 행렬 간의 곱(=변환)을 지속하여 A를 오른쪽에 곱한 것이 단위행렬이 되게 할 수 있다면 이 기초 행렬 간의 곱은 A의 역행렬입니다. 즉, 정사각 행렬 A에 대하여 행 연산을 통해 RREF로 변환한 것과 같은 연산을 단위행렬에 적용한다면 이는 A의 역행렬이 됩니다. 예를 들면 이렇습니다.

가역 행렬 A는 다음의 의미로도 해석될 수 있습니다. 모두 기하와 벡터까지 이수했다면 금방 이해될 내용입니다.

  • n차 단위행렬과 행 동등
  • Ax=0의 해가 자명해뿐
  • 열벡터 간 일차독립
  • 일대일 대응 변환
  • 열벡터 일차결합에 의해 ℝⁿ 영역 커버
  • A의 전치 행렬도 가역

2.3. 파티션

행렬의 성분을 덩어리로 나누어 표기하기도 합니다.

특징은 행렬 합, 곱 등을 이 덩어리로 계산해도 된다는 것입니다. 역행렬 계산에 있어 이를 이용하여 연산을 줄일 수 있는데, 다음에서 각 파티션의 행렬들이 모두 정사각일 때, 역행렬은 다음과 같습니다. (각각이 역행렬이 없다면 A의 역행렬도 없음)

파티션 형태의 행렬은 이곳저곳에서 아주 많이 나옵니다.

2.4. LU 분해

LU 분해는 좌측 하단 삼각 행렬(주대각 성분 위쪽이 모두 0)과 우측 상단 삼각 행렬(주대각 성분 아래쪽이 모두 0)의 곱으로 행렬을 나타내는 것을 말합니다. m x n 행렬 A에 대하여 좌측 하단 삼각 행렬 L은 m x m, 우측 상단 삼각 행렬 U는 m x n입니다. 이 분해의 의미라면 Ax=b 방정식을 LUx=b 형태로 하여, Ux=y, Ly=LUx=b와 같이 하는 겁니다. 이 형태의 경우 각 성분의 근을 하나씩 구할 수 있습니다. 그냥 행연산으로 푸는 것보다 분해하는 게 쉽나요? 결론부터 말하면 0 성분이 많으면 단순히 역행렬 구하는 것보다 선형계를 푸는 속도가 빠르다고 합니다.

ctrl+F를 누르고 기초 행렬을 검색하면 생각해 볼 수 있을 LU 분해 알고리즘은 다음과 같습니다.

1. A를 REF 형태로 (U), 행 교환을 하는 경우 L이 좌측 하단 삼각이 아니게 되므로 주의하세요.

2. 1에서 한 행연산의 역을 단위행렬에 적용(L)

적용해 봅시다.


1열 정리

2열 정리

문제는 L인데, 기초 행렬의 반대 변환은 구하기 쉽지만 순서를 반대로 해야 합니다. 순서를 거꾸로 해도 영향이 없는 부분끼리만 해결하면 쉽게 구할 수 있습니다. 위 그림에서 1번째에서 2번째로 가는 연산과 2번째에서 3번째로 가는 연산을 보면 L을 구할 때 후자가 먼저 일어나야 하기 때문에 서로 영향이 없고(a), 1번째에서 2번째로 가는 행연산 2개는 순서를 섞어도 결과가 같습니다(b). a와 b 모두 단위행렬에 연산을 적용해 보면 왜 그런지 간단히 알 수 있습니다. 그래서 L은 다음과 같이 1열 정리의 역, 2열 정리의 역을 따로 적용한 것과 같습니다. 보면 Ly=b에 대하여 y의 첫 번째 성분이 바로 나오는데, 이를 이용하여 바로 2번째를 구할 수 있고.. 하는 식입니다. Ux=y는 아래쪽부터 하나씩 구하게 됩니다.

곱해 보면 원래의 형태로 돌아옵니다.

cf) 행 a에 행 b의 x배를 더하는 연산의 역은 행 a에 행 b의 -x배를 더하는 연산과 같습니다.

3. 행렬식

3.1. 행렬식 기본

정사각행렬 A에 대하여 행렬식(determinant) |A| (det A)는 다음과 같습니다.

A_ij: A에서 i행 j열을 제외한 행렬

1차의 경우 행렬식은 유일한 성분 그 자체입니다. 사실 위 식에서 -1보다 오른쪽에 있는 1은 n 이하의 어떤 자연수로도 대체 가능하고, 행과 열이 뒤바뀌어도 됩니다. 다음의 특성을 기억해 두세요.

  • 행 연산 중 한 행의 k배(k는 실수) 다른 행을 더하는 연산을 한 결과 행렬식은 동일합니다.
  • 행 연산 중 두 행의 위치를 바꾸는 연산을 한 결과 행렬식은 부호만 변합니다.
  • 행 연산 중 한 행을 k배(k는 실수)로 하는 경우 행렬식은 k배가 됩니다.
  • 행렬식이 0이 아니라는 것은 가역 행렬이라는 뜻입니다. (필요충분)
  • 전치 행렬의 행렬식은 원래 행렬식과 같습니다.
  • 행렬 곱의 행렬식은 행렬식의 곱과 같습니다.

3.2. 크래머 법칙(Crammer's rule)

방정식 Ax=b의 근 x가 하나일 경우, x의 i번 성분은 다음과 같이 구할 수 있습니다.

A_i (b)는 A의 i열을 b로 대체한 것을 이름

이에 따라 역행렬을 구하는 다른 방식을 생각할 수 있는데, 수반(adjugate) 행렬 / A 행렬식입니다.

수반 행렬은 다음과 같이 구합니다.

다음도 알아 두고 넘어갑니다.

  • 2차원 평면에서 벡터 2개에 의해 정의될 수 있는 평행사변형의 넓이는 그것을 열벡터로 하는 행렬의 행렬식과 같고 3차원 공간에서 벡터 3개에 의해 정의될 수 있는 평행육면체의 넓이는 그것을 열벡터로 하는 행렬의 행렬식과 같습니다.
    • 정사각행렬을 이용한 선형변환 결과의 넓이나 부피는 그 행렬식만큼 곱한 것과 같습니다.

4. 벡터 공간

4.1. 벡터의 정의

사실 여기서 벡터의 정의를 빡빡하게 다룰 의향은 없습니다. 관심이 있다면 여기서 확인해 주세요. 여기서는 엄밀함에서 조금 떨어져 더 쉽게만 갑니다. "여기 내용으로 [1,2,3]과 같은 벡터 정의가 되나?"라는 의문이 든다 해도 할 말이 없습니다.

벡터는 다음 공리(axiom)를 따르는, 합과 스칼라배 연산 상에 정의된 비어 있지 않은 집합(벡터 공간)의 원소입니다. 아래의 기호 중 V는 벡터 집합, u, v, w는 원소(벡터), c,d는 스칼라(주로 실수와 복소수를 이름)를 의미합니다.

  • 합 u+v가 존재
  • u+v = v+u
  • (u+v)+w=u+(v+w)
  • u+0=u, 즉 덧셈 항등원 벡터(영벡터)가 존재
  • u+(-u)=0인 덧셈 역원 벡터가 존재
  • 스칼라배의 결과 cu가 존재
  • c(u+v)=cu+cv
  • (c+d)u=cu+du
  • c(du)=(cd)u
  • 1u=u

이 공간의 부분집합인 부분공간(subspace)을 정의할 수도 있는데, 다음을 만족해야 합니다.

  • 영벡터를 포함
  • 벡터 합에 닫혀 있음
  • 스칼라배를 해도 닫혀 있음

부분공간 역시 위 10개를 만족하여 벡터공간에 해당합니다. 일반적으로 부분공간은 벡터공간의 (일차독립인) 원소들의 일차결합으로 표현됩니다. 이 원소들을 열로 하는 행렬 B를 생각하면, 이 부분공간은 B의 열 공간(column space)이라고 합니다. 주로 Col B라고 표기합니다. (B가 m x n일 때 col B는 ℝ^m의 부분공간. n개 중 일차독립인 벡터가 m개 이상인 경우 이 부분공간은 ℝ^m과 같아짐) m x n 행렬 A에 대하여 집합 {x|Ax=0} 을 A의 영공간(Null space, kernel)이라고 합니다. 주로 Nul A라고 표기합니다. (Nul A는 ℝⁿ의 부분공간)

4.2. 기저

벡터공간 V의 부분공간 H에 대하여, V의 원소의 부분집합 S가 다음을 만족하면 S를 H의 기저(basis)라고 합니다.

  • S의 원소들 간 모두 일차독립
  • S의 원소들의 일차결합 공간이 부분공간 H와 일치

가장 쉬운 예를 먼저 보면, 3차원 공간에서 다음 벡터 집합은 ℝ³의 기저가 됩니다(독립 변수 3개가 3차원 공간 전체를 표현). 이는 표준 기저라고 합니다. (n차 다항식에서 {1, x, x², ..., xⁿ}이 표준 기저라고 하는 것도 알아 둡시다.)

열공간의 기저는 피벗(pivot)이 있는 열들입니다. 앞에서 이에 대한 설명을 안 하고 넘어왔는데, 피벗은 REF를 만들 때 나온 선두의 위치와 같습니다. 영공간은 free 변수가 가중치인 일차결합으로 표현되므로 그 표현에 나온 벡터들이 기저가 되겠습니다.

4.3. 좌표계

일차독립인 n개 벡터는 n차원을 표현할 수 있습니다(기하와 벡터 시간에 들었을 것). 이를 기저로 좌표를 표현할 수 있습니다. 평소에 우리는 표준 기저를 사용합니다. 하지만 간혹 다른 시점으로 바라보아야 할 때가 있습니다. 대표적으로 CG의 카메라 모형이나 선분 교점 알고리즘이 있는데, 이는 지금 다룰 일은 아닙니다. 평면 좌표 A(2,2), 그리고 새로운 기저 벡터 B1(1,2)와 B2(2,1)이 있습니다. 이때 이 기저를 가지고 A를 표현하면 B1x+B2y=(2,2)을 만족하는 (x,y)가 됩니다. 어렵지 않게 B1과 B2를 열벡터로 가진 행렬의 역변환을 가하면 매핑이 됨을 알 수 있습니다. 반대 방향의 매핑은 B1과 B2를 열벡터로 가진 행렬로 변환을 가합니다. 기저 B={B1, B2} 위에서 표준 기저 상의 A(2,2)를 표현한 건 이렇게 씁니다.

정의역을 한정해도 정사각 행렬이 아니라면 역행렬은 없습니다. 이에 책에서는 방정식을 풀어서 매핑하게 되어 있습니다. 이와 관련이 있는 내용은 7에서 확인할 수 있습니다.

벡터 공간에서 다른 벡터 공간으로의 일대일 대응 변환은 동형 변환(isomorphism)이라고도 합니다.

4.4. 차수

  • 벡터 공간의 기저가 유한 집합인 경우 V는 유한 차원, 아닌 경우 무한 차원이라고 합니다.
  • n개의 일차독립인 벡터의 집합에서 생성되는 span은 n차원을 가집니다.
  • 행렬에 대하여 행 벡터의 span에 의한 행 공간이란 것도 있는데, 주로 Row A와 같이 표현됩니다. 행 동등한 경우 행 공간은 일치합니다.
  • 행렬 A에 대하여 A의 차수(rank)는 column space의 차원수를 말합니다. n열의 행렬에 대하여 차수와 영공간의 차원수의 합은 n입니다.

차원수가 같은 두 기저 B, C에 대하여 B에서 C로 매핑하는 변환(차원수 x 차원수 행렬)이 반드시 1개만 존재하며, 아래와 같이 표기합니다.

 

5. 고윳값과 고유 벡터

5.1. 고윳값과 고유 벡터란

정사각행렬 A에 대하여 Ax=λx (x는 영벡터가 아닌 벡터, λ는 스칼라)를 만족하는 벡터 x를 A의 고유 벡터(eigenvector), λ를 A의 고윳값(eigenvalue)라고 합니다. (A-λI)x=0의 비자명한 해가 있도록 하는 λ들이 고윳값이 됩니다. 그러려면 |A-λI|=0을 만족시켜야 하고(특성 방정식), 이때 행렬식 |A-λI|는 특성 다항식이라고 부릅니다. A-λI의 영공간 기저(A의 λ에 대한 고유 공간이라고도 함)를 구성하는 벡터들이 A의 고유 벡터가 됩니다.

다른 고윳값 λ에 대응하는 고유 벡터끼리는 모두 일차 독립입니다. 특성 방정식에서 어떤 근 λ가 a중근(multiplicity a)인 경우, 그로부터 나온 고유벡터들은 일차독립일 수도 있고 아닐 수도 있습니다. 즉 그 λ에 대한 고유벡터의 공간은 a차원 이하입니다.

예를 들어 행렬 [[2,0],[2,2]]는 특성방정식 λ²-4λ+4=0을 가져 고윳값은 2(2중근)인데, A-λI=[[0,0],[2,0]]의 영공간 기저의 벡터는 [0,1] 하나뿐입니다.

5.2. 유사 행렬

정사각행렬 A, B에 대하여 다음을 만족하는 행렬 P가 있을 때, A와 B는 유사하다고 합니다. 유사한 행렬들은 같은 고윳값을 가집니다. (고윳값의 n중근 여부도 동일합니다.) 하지만 같은 고윳값을 가진다고 해서 유사한 행렬이지는 않습니다.

nxn 행렬 A에 대하여 일차독립인 A의 고유 벡터(고유 벡터 기저)가 n개라면 대각 행렬(주대각 성분 외의 성분이 0)과 유사한데,  이를 찾는 것을 대각화(diagonalization)라고 합니다. 대각 행렬에는 주대각성분에 각 고윳값을, 그리고 P의 각 열에는 그에 대응하는 고유 벡터가 들어갑니다. 고유 벡터는 A에 의해 스칼라배 되니, 이 대각 행렬은 고유 벡터 기저에서의 A에 의한 변환을 나타냅니다. 대각 행렬의 거듭제곱은 구하기 쉽기 때문에 이를 활용하여 연산을 줄일 수도 있습니다.

5.3. 복소 고윳값

실수 행렬도 복소 고윳값, 고유벡터를 가질 수 있습니다. 이 단계에서는 그저 2x2 행렬 A에 대하여, 고윳값이 켤레(공액)복소수 a±bi일 때, 고윳값 a-bi에 대한 고유 벡터 v(공간 ℂ²에 있을)에 대하여 다음이 성립하는 것만 보고 넘어갑니다.

Re v: v 중 실수부분. Im v: v 중 허수부분

A는 복소 평면에서 벡터 v의 크기/회전 변환이 됩니다. 

6.  직교성과 최소자승

6.1. 내적

  • 열벡터 u, v에 대하여 (u^T)v의 결과는 1x1 행렬(스칼라)인데 이 연산을 내적(inner/dot product)이라고 합니다. 즉 내적 결과는 벡터의 각 대응 성분별로 곱한 것의 합입니다. 교환/분배 법칙이 성립하며, 스칼라배를 한 후 내적하는 것은 내적 후 스칼라배 하는 것과 결과가 같습니다.
  • 벡터 v의 길이(length, norm) ||v||는 자기 자신에 대한 내적의 양의 제곱근으로 정의됩니다. √(v•v)
  • 길이가 1인 벡터를 단위(unit) 벡터라고 하며, 한 벡터의 스칼라배를 해도 방향은 변하지 않습니다. 같은 방향의 단위벡터를 얻는 것을 정규화(normalization)라고 합니다.
  • 벡터 간 거리는 ||u-v||와 같이 정의됩니다.
  • u•v=||u||||v||cos(t)입니다. (t=u와 v가 이루는 각도) 이 값이 0인 경우 u와 v는 서로 수직(orthogonal)입니다. ||u+v||²=||u||²+2u•v+||v||²입니다.

6.2. 직교

벡터 공간 W에 대하여 그 안의 모든 벡터와 수직을 이루는 벡터의 집합을 W의 직교 여공간(orthogonal complement)이라고 합니다. 이는 보통 W^⊥ (우측 상단에 작게)라고 표기됩니다. 이것의 기저는 W의 모든 기저 벡터와 수직이면 됩니다. 예를 들어 ℝ³의 부분 공간인 Span {e1, e2}의 직교 여공간은 Span {e3}입니다. 그리고 (Row A)^⊥=Nul A입니다.

서로 직교하는 벡터로 구성된 집합을 직교 집합(orthogonal set)이라고 합니다. 모두 서로 직교하므로 평행이 아니니, 일차독립입니다. 기저가 직교 집합인 경우 해당 부분공간의 벡터 y는 다음과 같이 나타내어집니다. 이는 y에서 각 기저로 내린 수선의 발과 시작점을 이은 정사영(orthogonal projection)의 합이라고도 할 수 있습니다.

서로 직교하는 단위벡터로 구성된 집합을 정규직교 집합(orthonormal set)이라고 합니다. 정규직교하는 열벡터로 구성된 행렬 U는 (U^T)U=I를 만족하며(필요충분), 곱해지는 벡터의 길이가 변하지 않고, 상호 각도 관계가 변하지 않습니다. ((Ux)•(Uy)=x•y)

ℝⁿ의 부분공간 W에 대하여 ℝⁿ 상의 벡터 y는 오직 1가지로 다음과 같이 나타내어질 수 있습니다(orthogonal decomposition theorem).

이때 y는 W의 직교 기저를 향한 정사영이어야 합니다. 위의 {e1, e2}와 같이 W를 공간 상의 한 평면으로 생각하면 W^⊥는 그 법선 방향의 공간이 되니, 무슨 의미인지 떠올리기 어렵지 않습니다.

ℝⁿ의 부분 공간 W와 상의 ℝⁿ의 벡터 y에 대하여, y의 W로의 정사영이 W상의 벡터 v 중 가장 y와의 거리가 짧은 것이라는 최상 근사 정리(best approximate theorem)가 있습니다.

ℝⁿ의 부분 공간 W의 정규 직교 기저를 열벡터로 하는 행렬 U에 대하여 UU^T는 ℝⁿ의 벡터 y의 왼쪽에 곱한 결과가 y의 W로의 정사영이 됩니다.

어떤 기저를 가지고 동일한 공간을 나타내는 (정규)직교 기저를 얻어내는 그람-슈미트(Gram-Schmidt) 과정이 있습니다. 이는 단순히 어느 한 공간 S를 기준으로 나머지 벡터 v가 정사영을 내리고 거기서 v-(정사영)을 한 결과 벡터는 S에 수직합니다(orthogonal decomposition theorem). 이를 수식으로 정리하여 보겠습니다.

잘 보면 위에 이미지로 들어 있는 2개 식의 조합입니다.

  • 한 가지 주의할 점이 있다면, 정사영이라는 개념은 차원 확장이 얼마든지 가능하나 우리 머리는 높아 봤자 3차원 공간 상 벡터를 다른 평면으로 투영하는 것 정도나 상상할 수 있다는 겁니다. (사실 벡터의 나머지 개념도 마찬가지) 웬만하면 괜히 4차원 이상에 대하여 모양을 상상하려 들지 말고(e.g. 직육면체의 모든 면에 수직인 직선) 그냥 "그런 게 존재 가능하다"라고만 알고 계세요.

QR 분해라는 것도 있는데, 모든 열이 일차독립인 mxn 행렬 A에 대하여 Q는 Col A의 정규직교 기저 mxn 행렬, R는 대각 성분이 양수인 우측 상단 가역 nxn 행렬인 QR 형태로 나타낼 수 있다는 것입니다. Col A의 정규직교 기저는 위의 그람-슈미트 과정을 통해 알 수 있고, A의 왼쪽에 Q^T를 곱하여 구할 수 있습니다.

 

6.3. 최소자승(최소제곱)

행렬 방정식 Ax=b는 근이 없을 수도 있습니다. 그러나 Ax가 최대한 b에 가깝도록 하는 x를 찾고 싶을 때, ||b-Ax||를 최소화하는 방법을 사용하는 경우가 많이 있습니다. 이를 최소자승(최소제곱, least-squares)해라고 합니다(||b-Ax||를 자승 오차(squared error)라고 합니다). 최소자승해 y에 대하여 Ay 값은 b의 Col A로의 정사영이 되는데(최상 근사 정리), 이때 b-Ay는 Col A에 수직합니다. 이는 A의 각 열과 내적하면 모두 영벡터라는 뜻이고 A^T와 행렬곱을 한 결과가 영행렬입니다. 정리하면 최소자승해 y는 A^TAy=A^Tb를 만족하며, 이 방정식을 정규 방정식(normal equation)이라고 합니다. 특히 A의 모든 열이 일차독립인 경우 A^TA는 역행렬이 있어 최소자승해는 유일하게 나옵니다. 같은 조건으로 QR 분해를 할 수 있으며, (R^-1Q^T)b로 구해질 수 있습니다.

회귀에 활용하는 예가 있습니다. y=ax+b를 주어진 점 (x1,y1), ..., (xn,yn) 가지고 추정할 때 다음의 정규 방정식을 풀 수 있습니다.

y=ax²+bx+c도 이와 같이 할 수 있습니다. (각 행을 1, 주어진 x값, 주어진 x값의 제곱으로)ㅇ

6.4. 내적 공간

벡터 공간 V에 대하여 내적 공간(inner product space)은 다음과 같이 정의됩니다.

  • V의 가능한 모든 벡터 쌍 (u,v)와 어떤 스칼라 <u,v>을 대응시키는 함수로 주어짐. <u,v>는 다음 공리 하의 연산
    • <u,v> = <v,u>
    • <u+v, w> = <u,w> + <v,w>
    • <cu,v> = c<u,v>
    • <u,u> ≥ 0, u가 영벡터일 때만 <u,u>=0, 역도 성립

예를 들어, ℝ²에서 <u,v>=4u₁v₁+5u₂v₂라는 식으로 내적 공간이 정의될 수 있습니다(저것과 크게 다른 형태를 만들어 보려고 해도 공리가 선형성을 강제해서 안 될 겁니다.). 이 공간에서는 지금까지 정의한 내적이 해당 연산으로 대체되어 적용됩니다. 길이 √<u,u>, 거리 ||u-v||, <u,v>가 0이면 수직, 그리고 단위 벡터는 여기서의 길이가 1인 벡터입니다. ℝⁿ과 마찬가지로, 최상 근사와 직교 분해 정리가 적용될 수 있습니다.

아마 저와 같은 세대라면 고등학교 1학년에 듣고 3학년에도 들었을 코시-슈바르츠 부등식이 내적 공간에서 절대로 참입니다. 즉, |<u,v>| ≤ ||u|| ||v||입니다. 삼각 부등식 ||u+v|| ≤ ||u|| + ||v||도 참입니다.

[이 부분의 경우 나중에라도 응용 영역에 대해 다룰 것 같습니다.]

7. 대칭 행렬과 2차형

7.1. 대칭 행렬

대칭(symmetric) 행렬은 열 순서로 읽어도 행 순서로 읽어도 같은 행렬, 즉 A^T=A를 만족하는 행렬을 말합니다.

대칭 행렬은 다음 속성을 가지며, 이를 스펙트럼 정리(Spectral theorem)이라고 합니다(어떤 행렬의 고윳값 집합을 스펙트럼(spectrum)이라고도 합니다).

  • 대칭 행렬 A에 대하여 다른 고유 공간에 속한 고유 벡터는 반드시 서로 수직입니다.
  • 어떤 고윳값이 n중근인 경우 해당 고유 공간은 n차원입니다(고유 벡터가 모두 일차독립)
  • 각 고유 공간 간은 상호 수직합니다.
  • n차 정사각행렬 A에 대하여 A=PDP^-1로 대각화를 했을 때 P의 열 간에 모두 직교할 수 있다면 A는 직교대각화할 수 있다고 하는데, 이런 행렬은 대칭 행렬뿐이며 역도 성립합니다.

대칭 행렬 A를 대각화했을 때 아래와 같이 고유 벡터 열-행과 고윳값의 곱으로 A가 표현될 수 있습니다. 이를 스펙트럴(고윳값) 분해라고 합니다. P의 열 공간이 정규직교인데, 그래서 각 행렬곱 부분은 u_i(차수 1: 선 공간)에 대한 정사영 변환이 됩니다.

7.2. 2차형(Quadratic form)

nxn 대칭 행렬 A, n차원 변수 벡터 x에 대하여 곱 x^TAx는 스칼라 2차식의 결과가 나오는데 이를 2차형이라고 하고 A를 이 2차형의 행렬이라고 합니다.

n차원 실수 공간의 변수 x가 있는데, 이에 종속된(어떤 관계를 가지는) 변수 y를 x=Py(P는 가역 행렬)로 정의하여 변수 변경(Change of variable)을 할 수 있습니다. 변경 후의 2차형은 다음과 같습니다.

새로운 2차형의 행렬은 P^TAP가 되는데, A가 대칭 행렬이므로 P^TAP가 대각 행렬이 되게 하는 직교 행렬 P가 존재할 수 있습니다. 대각 행렬이므로 이때 변수 변화 결과의 식에서는 다른 차원의 변수와 섞이지 않은 2차항만 남습니다(no cross-product term). 예를 하나만 들어 보면 아래와 같습니다.

x1=1, x2=2라면 y=P^Tx=[3,1]/√2입니다. 1^2+6(1*2)+2^2 = 17 = 4(3^2)/2-2(1^2)/2

이렇게 A가 대칭 행렬이면 그것이 들어간 2차형은 다른 차원의 변수와 섞인 항이 없는 2차형으로의 변환이 반드시 존재합니다. 이를 주축 정리(principal axes theorem)라고 하고, 이때 P의 직교 축들을 주축이라고 합니다.

편하게 3차원 공간에서 생각해 보면, z=F(x) (2차형)은 보통 어떤 곡면(ellipsoid, eliptic parabolid, hyperbolic paraboloid, parabolic hyperboloid 등)인데 이를 다음과 같이 구분합니다.

  • 0이 아닌 x에 대하여 항상 z좌표>0인 경우 양의 정부호(positive definite)
  • 항상 <0인 경우 negative definite
  • 둘 다 아닌 경우 indefinite
  • 부등호 아래에 등호가 추가되면 semi가 붙습니다.

행렬 2차형으로 나타내어진 경우 이를 판별할 수 있는데, 모든 고윳값이 양수라면 positive definite, 음수라면 negative ..., 둘 다 아니면 indefinite입니다. 0을 포함하는 경우 마찬가지로 semi가 붙으며, 이는 필요충분조건입니다.

7.3. 특잇값 분해(SVD)

어떤 행렬도 대각 행렬을 포함한 분해를 적용할 수 있는데, 그것이 특잇값 분해(singular value decomposition, SVD)입니다. 행렬 A의 특잇값(singular value)은 대칭 행렬 A^TA의 고윳값(A^TA의 정규직교 기저 벡터 v_i에 대히여 ||Av_i||^2과 동일)들의 양의 제곱근(||Av_i||)들입니다. 이때 순서는 내림차순으로 배열합니다. 0이 아닌 특잇값에 대응하는 Av_i들은 모두 서로 수직입니다. 즉 Av_i들은 A에 대한 직교 기저 벡터입니다.

이 특잇값 분해는 A=UΣV^T의 형태인데, Σ는 정렬된 특잇값을 대각 성분에 놓고 나머지 성분은 0인 A와 동일 차원인 대각 행렬 이고 U와 V는 직교 기저(각각 좌/우측 특이 벡터)를 가집니다. A가 mxn 행렬이면 U는 m차, V는 n차 정사각 행렬입니다.

다음을 참고하세요.

 


고윳값 6,1,0

고유 벡터 [5,2,1],
[0,-1,2], [-1,2,1]



U의 열은 AV의 각 열을 정규화하여 얻음

A=UΣV^T가 맞게 나옵니다.

고윳값 0에 대하여 U는 그 영벡터를 그대로 사용할 수는 없습니다. U의 열 수만큼 영이 아닌 직교 기저 벡터가 나오지 않은 경우 이미 구해진 공간(이미 구해진 공간이 없다는 말은 시그마가 영행렬이라는 뜻이라 뭘 해도 무관)을 대상으로 직교 공간을 구하고, 그람-슈미트 과정으로 선택합니다.

0 특잇값과 그에 대한 특이 벡터를 제외하는 간소(Reduced) SVD라는 분해도 있습니다. 위의 예시에서는 V의 3열이 0으로 없어지는 계산이니, 이렇게 곱하겠다는 겁니다.

이때 U와 V는 정규 직교 열벡터를 가져 전치를 곱하면 어떤 차수의 단위행렬이 되고, D는 정사각 대각 행렬이니 역행렬이 있습니다. A=U₂DV₂^T라고 표현하면 좌측 혹은 우측 중 하나(A가 세로로 길면 좌측, 가로로 길면 우측)에 V₂D^-1U₂^T를 곱하면 단위행렬이 됨을 알 수 있는데, 이를 유사역행렬(pseudoinverse, Moore-Penrose inverse)이라 하며 보통 A^+와 같이 표시합니다. 위의 경우에 그대로 적용하면 A의 유사역행렬은 [[1,2],[-2,2],[5,-2]]/6이며 오른쪽에 곱하면 2차 단위행렬을 얻을 수 있습니다. 왼쪽에 곱하면 안 되는 이유는 V에서 열을 없앤 V₂가 세로로 길어지는 순간 그 전치는 일차독립도 아니라서 정규직교가 아니게 되기 때문이겠죠. 역으로 A가 세로로 길면 V는 정사각이고 U에서 그런 일이 일어날 겁니다.

cf) A가 정사각 행렬이라면 유사역행렬은 원래 역행렬과 같을 텐데, A에 역행렬이 없다면 0인 특잇값이 있을 테니 결과가 나와도 역행렬과는 거리가 먼, 자기 전치의 실수배 정도가 나올 겁니다.

끝내기 전에

혹시 선형대수학을 아직 제대로 배우지 않은 상황인데 이 글을 보고 알겠다는 생각이 든다면 위험하니(오개념을 가졌을 확률이 90% 이상이라고 봅니다), (영어)단어의 존재를 제외한 모든 걸 빨리 잊어버리고 책 등 다른 자료를 찾아 보시기를 권합니다. 선형대수는 한국어 자료도 괜찮은 게 많아 보이거든요. 대충 훑어 보니 여기는 좋은 것 같습니다. 여기뿐 아니라 어딜 찾든지 교차 검증은 꼭 필요한 과정이지만, 그 정도는 이미 알고 있겠죠.

그럼 뭐가 괜찮은 건가? 하면 맨 앞에 나온 대로 "처음 배울 때 이 글은 아니다"를 무시하고 본 경우라면 "선형대수를 처음 배울 때는 이 정도 범위를 배우겠구나"하면 그나마 낫습니다.

'자연과학' 카테고리의 다른 글

선형대수학  (0) 2022.04.21