Sunwoo Kim's Computer Vision, Machine & Deep Learning Blog search

Linear Algebra - 25,27 Symmetric matrix(diagonalization, projection), spectral theorem, definite matrix

|

대칭행렬(Symmetric matrix)

예전에 대칭행렬에 대해서 배운 적이 있었다. 대칭행렬이란 무엇인가? 다음과 같은 조건을 만족하는 행렬을 대칭행렬 이라고 한다.

조건

  1. $A=A^T$
  2. 정방행렬

Lecture 22에서 배웠던 대각화를 생각해보자. 대각화는 고유벡터로 이루어진 행렬과, 고유값의 대각행렬로 하나의 행렬을 분해하는 과정이었다. 이때, 대칭행렬은 특별한 성질을 가지고 있기 때문에, 대칭행렬을 대각화할 때도 이러한 성질이 돋보인다.

대칭행렬의 성질

  1. 대칭행렬의 모든 고유값은 실수이다.
  2. 대칭행렬의 서로다른 고유벡터는 서로 직교한다.

위와 같은 성질때문에, 대칭행렬을 대각화 할 때, 다르게 쓸 수 있다.

$A=Q\Lambda Q^{-1}$

$=Q\Lambda Q^T$

왜냐하면, 고유벡터는 서로 직교하기 때문에, 고유벡터로 이루어진 행렬 Q는 직교행렬이기 때문이다. 직교행렬의 성질을 다시 기억해보면, $QQ^T=QQ^{-1}=I$라는 성질이 기억날 것이다.

스펙트럼 정리(Spectral theorem)

이제는 스펙트럼 정리에 대해서 배워볼 것이다. 스펙트럼 정리를 배우기 앞서 왜 대칭행렬을 이야기했을까? 그 이유는 대칭행렬과 스펙트럼 정리가 연관이되어있기 때문이다. 대칭행렬의 대각화는 스펙트럼 정리의 특수케이스 라고 볼 수 있다.

스펙트럼 정리(Spectral Theorem) 이란 nxn크기의 정방행렬인 에르미트 행렬(Hermitian matrix)를 고유값으로 이루어진 대각행렬과 유니터리 행렬(Unitary matrix)로 대각화 할 수 있다는 것이다.

$A=U\Lambda U^{H}$

에르미트 행렬(Hermitian Matrix)

그렇다면 위에서 설명한, 에르미트 행렬(Hermitian matrix)란 무엇인가?

위와 같은 성질을 만족하는 행렬을 에르미트 행렬이라고 한다. 말로 풀어쓰면,

대각 원소는 모두 실수(Real value) 이면서, 자기자신과 켤레전치행렬이 같은 행렬 을 의미한다.

유니터리 행렬(Unitary Matrix)

유니터리 행렬(Unitary matrix)은 다양한 방법으로 표기된다.

$U^{H}=U^{*}=U^{†}$

즉, 위첨자로 표시된 부분이 해당 행렬을 켤레전치행렬로 만든다는 표시이다.

유니터리 행렬은 다음과 같은 성질을 지닌다.

즉, 유니터리 행렬은 직교행렬 이라는 뜻이다.

대칭행렬의 대각화가 스펙트럼 정리의 특수한 케이스라고 설명한 이유는, 대칭행렬은 에르미트 행렬의 허수부가 0인 경우이기 때문이다.

대칭행렬 & 대각화 & 투영행렬(Symmetric matrix & Diagonalization & Projection matrix)

A라는 대칭행렬이 있을때, A를 대각화 시키면, 다음과 같은 표현으로 쓸 수 있다.

여기서 식10.3을 주목하자! 식10.3은 $\lambda$라는 상수와, $qq^T$의 곱의 합으로 이루어진 모습을 볼 수 있는데, $qq^T$는 우리가 Lecture15에서 배웠듯이 투영행렬이라는 것을 알 수 있다.

즉, nxn 대칭행렬 A는 n개의 투영행렬과 그 고유값의 조합으로 표현이 가능하다는 것이다!!!!

그리고, $q_1, q_2, …, q_n$은 서로 직교하는 벡터이므로, 최종적으로 정리하면,

nxn크기의 대칭행렬 A는 상호수직인 투영행렬들의 그 고유값의 조합으로 표현이 가능하다 라고 볼 수 있다.

만약에, $A\vec{v}$라는, 벡터v를 대칭행렬A로 선형변환 시키는 식이 있을때, 그 결과는, 다음과 같다.

즉, 벡터v를 대칭행렬A의 고유벡터에 투영시킨 벡터와 그 고유벡터에 대응하는 고유값을 곱한 항들의 합이 벡터v를 대칭행렬A로 선형변환 시킨 결과이다.

정치행렬(정부호행렬, Definite matrix)

이어서, 마지막으로 정치행렬(Definite matrix)에 대해서 살펴보자.

정치행렬은 에르미트 행렬(Hermitian matrix)의 일종(에리미트 행렬의 일종이므로, 대치행렬이다.)으로, 양정치행렬(Psotive definite matrix) 과 음정치행렬(Negative definite matrix)가 존재한다.

양정치 행렬은 $x^TAx$라는 식이 있을 때, $x^TAx > 0$을 만족시키는 행렬A 를 양정치행렬 이라고 한다.

반대로 음정치 행렬은 $x^TAx$라는 식이 있을 때, $x^TAx < 0$을 만족시키는 행렬A 를 양정치행렬 이라고 한다.

그런데 만약에, $x^TAx = 0$ 이라면, n차방정식($x^TAx$)에 대해서 안장점(saddle point)을 갖는다.

양정치행렬의 조건

음정치 행렬은 양정치행렬의 조건과 부호만 반대가 되기 때문에, 양정치 행렬만 알아보겠다.

  1. 0이 아닌 모든 실수인 벡터x에 대해서 $x^TAx > 0$을 만족한다.

  2. 행렬 A의 모든 고유값은 0 보다 크다

  3. 행렬 A의 모든 sub-matrices는 행렬식(determinant)가 0보다 크다.

  4. 행렬 A의 모든 pivots은 0보다 크다.

  5. $ac-b^2 > 0$ (양정치(a>0), 음정치(a<0) 해당조건 동일, $ac-b^2<0$이면 안장점.)

다음 조건 중 하나라도 만족한다면, 행렬A는 양정치 행렬이다.

Graph of $x^TAx = ax^2 + 2bxy + cy^2$

그렇다면, $f(x,y) = ax^2 + 2bxy + cy^2$의 그래프는 어떻게 생겼을까?

$a=2, b=6, c=20$이라고 했을때, 그래프는 다음과 같이 생겼다.

**위에서 본 모습**
**옆에서 본 모습**

즉 그래프는 0보다 크며, 아래로 볼록한 모습을 볼 수 있다.

마치 우리가 2차원 공간에서 모든 함수값이 0 이상인 이차함수를 3차원으로 늘려놓은것 같이 생겼다.

이차 함수 : $f(x)=ax^2+b$가 있었을때, 우리가 이 함수가 아래로 볼록인 함수인지 확인을 하려고 했었으면, 어떤 지점에서 1차 미분값=0이 있는지점이 있는지를 확인하고, 이계도함수가 >0 인지 확인을 했었다.

선형대수에서는 이와 같은 방식을, 단순 2x2 matrix 개념에서 nxn matrix까지 확장 시킬수 있다. (뭐 단순히 식을 간단히 쓰는 거라고 생각할 수도 있다.)

조건은 다음과 같다.

그리고 또 한가지 흥미로운 사실이 존재한다.

위에서 주어진 그래프 $f(x,y) = 2x^2 + 12xy + 20y^2$를 Completing the Square 과정을 거친 후의 식을 보자.

Completing the square 과정을 거치면 식은 다음과 같다.

그런데 우리는 이 식을 더 쉽게 이끌어 낼 수 있다. 바로 Elimination을통한 과정이다. 과정은 다음과 같다.

출처 : https://twlab.tistory.com/54?category=668741

Comment  Read more

Linear Algebra - 24. Marcov matrix

|

마코브 행렬(Marcov Matrix)

마코브 행렬(Marcov Matrix)는 전이확률행렬(Transition probability matrix)라고도 할 수 있다. 이름에서 알 수 있듯이, 어떤 객체가 현재 상태에서 시간이 지나면서 어떤 상태로 변할지에 대한 것을 확률적으로 모델링 한 것을 의미한다. 이렇게 말로만 하면 어려우니 예제를 살펴보자.

위 그림은 i-phone사용자가 i-phone을 계속 사용할 확률, galaxy로 바꿀 확률과 Galaxy사용자가 Galaxy를 계속 사용할 확률, i-phone으로 바꿀 확률을 나타낸 그림이다.

위 상태를 행렬로 나타내면 다음과 같다.

현재 상태(휴대폰 사용자의 분포도)는 Current state와 같은데, $u_1=Mu_0$연산을 통해서 다음 상태 즉, 현재 휴대폰 사용자들이 휴대폰을 한 번 바꾸고 난 후, 휴대폰 사용자의 분포도를 예상할 수 있다.

만약에 모든 사람들이 휴대폰을 1년에 한 번씩 바꾼다고 가정하면,

$u_1=Mu_0$, $u_2=Mu_1$

$u_2=M^2u_0$, …

$u_k=M^ku_0$

의 연산을 통하여 k년후의 휴대폰 사용자 분포도를 예측할 수 있을 것이다. 이것이 바로 마코브 행렬이 하는 역할이다.

마코브 행렬의 성질

마코브 행렬의 성질에는 어떤게 있을까?

첫 번째로, 모든 각 열의 합은 1이라는 것이다. 이 사실은 간단하다. 왜냐하면, 마코브 행렬은 전이확률을 나타내는 행렬이므로, 각 열의 모든 원소의 확률을 합한다는 것은, 현재 그 상태에서 다른 상태로 갈 수 있는 확률을 모두 합한 것이기 때문이다.

두 번째로, 모든 원소 >= 0이라는 것이다. 첫 번째와 똑같은 맥락으로, 확률을 나타내기 때문에, 확률에는 음수가 존재할 수 없으므로, 모든 원소는 0이상이라는 것이다.

마코브 행렬의 고유값과 정상상태

먼저, 마코브 행렬의 고유값부터 살펴보자.

다음의 마코브 행렬을 정의하자.

이때 다음으로 넘어가기 전에 한 가지 짚고 넘어갈게 있다. 전에 고유값과 고유벡터에 대해서 배울때, 고유값이 존재할 조건이 무엇이었는지 기억해볼 필요가 있다. 그 조건은 특성방정식의 해가 존재해야 한다는 것이었다. 식으로 표현하면 다음과 같다.

$det(A-\lambda I)=0$ 을 만족하면 되는것이다. 이는 곧 $A-\lambda I$라는 행렬이 특이 행렬이라는 것이다.

이때 마코브 행렬의 고유값 중 1이 있다고 가정해보자. 그때 $A-\lambda I$는 다음과 같다.

그리고 위 행렬의 랭크를 구해보면 Rank = 2인 것을 알 수 있다. 즉, 특이행렬이라는 것이다. 이는, 마코브 행렬의 각 열의 원소끼리의 합이 1이기 때문에 있는 성질이다. 어쨋든, 그렇다면 특성방정식의 해는 존재할 것이고, 그때의 고유값은 1이 되는 것이다.

그런데 왜 하필 고유값으로 1일 언급했을까? 그 이유는 전에 배웠던 계차방정식과 관련이 있다.

앞에서 애플과 삼성의 예제를 다룰때, k년후의 미래를 예측하기 원했고, 그리기 위해서, M이라는 행렬을 계속해서 곱해나갔다. 그렇다면 그것이 대각화와 계차방정식과 연관이 잇다는 것을 알 수 있을것이다.

즉, 일반해가 다음과 같이 표현된다는 것이다.

이 때, 위 일반해가 존재하려면, $|\lambda| > 1$인 $\lambda$가 존재하면, 해당 일반해는 발산하게 되므로, 해가 존재하지 않게 된다. 그렇다면 특정해가 존재하는 상태(정상상태(steady state))가 되게하려면, $\lambda$는 어떤 조건을 만족해야 할까?

$|\lambda|<=1$

위와 같은 조건을 만족하면, 해당 일반해가 존재하게 된다.

Comment  Read more

Linear Algebra - 22. Diagonalization, Difference equation

|

대각화(Diagonalization)

대각화는 다음과 같은 과정으로 이루어진다.

$A=S\Lambda S^{-1}$의 형태로 대각화가 이루어 질 수 있다.

이때 이렇게 행렬A를 대각화 하면 유용한 성질이 하나 발견된다.

$A=S\Lambda S^{-1}$

$A^2=S\Lambda S^{-1}S\Lambda S^{-1}$

$A^2=S\Lambda^2S^{-1}$

의 형태로 나타낼 수 있다.

전 강의에서 배웠듯이, 행렬A를 제곱하면, 고유값도 제곱이되고, 고유벡터는 변하지 않는다는 것을 위 식을 통해서 알 수 있다.

위 식을 더 일반화 시키면 다음과 같을 것이다. $A^k=S\Lambda^kS^{-1}$

이렇게 표현이 된다면 $A^k$을 행렬A를 k번 곱하는것이 아니고, 행렬연산을 단순히 3번만 해서도 구할수 있게 된다.

대각화 가능

그러면, 대각화가 가능하려면 어떤 조건을 지녀야할까?

대각화가 가능하려면 행렬A가 nxn형태 일 때, n개의 독립인 고유벡터가 존재해야한다.

만약에 특성방정식에 중근이 존재하여, 동일한 고유값이 생긴다면, 해당 고유값에 해당하는 고유벡터는 독립일 수도, 종속일 수도 있다.

Difference Equation(차분방정식)

위의 그림을 보면, 부르는 이름만 조금 생소할뿐, 식의 모습은 우리가 봐오던 모습이다.

우리는 선형대수학적인 관점에서, 이 계차방정식을 해결하고자 한다.

처음 시작이 $u_0$이고, 어떤 연산(A)을 $u_k$에 가하면 $u_{k+1}$이 된다고 할 때 우리는 이것을

$u_{k+1}=Au_k , initial value = $u_0$라고 쓸 수 있다.

그리고 다음과 같이 일반화 될 수 있다.

그렇다면 우리는 이 계차방정식을 어떻게 풀어야할까?

먼저 $u_0$를 다음과 같이 정의하자.

다음 꼴을 보면, $u_0$가 A의 고유벡터의 선형결합으로 표현 된다는 것을 알 수 있다.

A의 고유벡터의 선형결합으로 표시한 이유는, 대각화를 이용하여, k step이후의 상태를 알기 위해서이다.

다만, $\vec{u_0}$가 A의 고유벡터의 선형결합으로 정의되기 위해서는, A가 nxn행렬이고 n개의 독립인 고유벡터가 존재해야한다.

(즉, 고유벡터의 조합으로 n차원의 모든 공간을 표현할 수 있다는 뜻.)

그리고 다음과 같은 행렬의 꼴을 잘 봐두자.

위의 꼴이 이해가 됬다면, $u_0$에 행렬 A를 곱한 식이 다음과 같이 된다는 것을 쉽게 이해할 수 있을 것이다.

위 연산을 계속해서 반복해 나간다면 다음과같이 일반화 될 수 있을 것이다.

피보나치 수열(Fibonacci number)

피보나치 수열은 다음과 같은 점화식으로 표현되는 것을 모두 알고 있을 것이다.

$F_{k+2}=F_{k+1}+F{k}$

그렇다면 위 점화식을 다음과 같은 벡터로 나타내보자.

다음에는 위 관계식을 선형방정식으로 표현해보자.

위 방정식에 대해서, 행렬A의 고유값을 구하면 다음과 같다.

그리고 고유벡터를 다음과 같이 구할 수 있다.

우리는 위에서, 계차방정식이 어떻게 표현되는지 배웟엇다. 이 경우에는 다음과 같이 표현될 것이다.

그런데 위에서 고유벡터를 구했으므로, $c_1,c_2$만 모두 구하면, 이 선형방정식을 표현할 수 있게된다.

다음 과정을 통해서 최종적으로 $c_1,c_2$를 구하자.

이제 해당 방정식을 표현하기 위한 항들을 모두 알게 되었다.

출처 : https://twlab.tistory.com/49?category=668741

Comment  Read more

Linear Algebra - 21. Eigenvalue and Eigenvector

|

Eigenvalue and Eigenvector (고유값과 고유벡터)

$A\vec{x}=\lambda\vec{x}$라는 식이 성립할때, $\lambda : 고유값, \vec{x} : 고유벡터$라 한다.

위 식을 다음과 같이 해석할 수 있다. A라는 행렬로 $\vec{x}$를 변환했을 때, $\lambda$배 만큼 크기는 변하지만, 방향은 변하지 않는 벡터$\vec{x}$가 존재하고 그 벡터를 고유벡터라 한다.

그리고 위 식을 봤을때 알 수 있듯이, 고유벡터($\vec{x}$)는 A 의 column space상에 존재한다.

예전 강의에서 , Ax=b의 식이 있을 때, b는 A의 column vector의 선형결합으로 표현된다고 배웠엇고, 이는 곧 b가 A의 column space상에 있다는 것을 의미했다.

고유값과 고유벡터를 계산하는 과정은 다음과 같다.

위 그림에서 빨간색으로 박스가 되있는 부분의 식을 행렬 A의 특성방정식(Characteristic function)이라 한다.

Eigensapce(고유공간)

고유공간(Eigensapce)란 무엇일까? 바로, 고유벡터가 이루는 공간을 고유공간이라 한다. 위에서 말했듯이, 고유벡터는 행렬A의 column space안에 존재하기 때문에, 고유공간은 column space의 부분공간(subspace)라고도 할 수 있다.

여기서 잠깐, 다음식을 살펴보자.

1번과 2번 표현중, 두 개의 표현이 모두 맞을지, 아니면 한 개의 포현만 맞을지 생각해보자.

정답은 2번 패턴이 정확한 답이다. 왜냐하면, 고유벡터는 무수히 많지만, 고유값을 유일해야하기 때문이다.

eigenvalues & eigenvectors in nullspace

만약에 고유값중에 0값이 존재한다는 것을 어떤것을 의미할까? $\lambda=0$이라는 것은, $A\vec{x}=0$이라는 것을 의미한다.

여러가지 의미로 해석해볼 수 있다.

첫번째, $\vec{x}$가 행렬A에 의해서 $\vec{0}$로 변환이 되었다.

두번째, 행렬A 는 특이행렬(Singular matrix)이다. 왜냐하면 0벡터 이외의 해가 존재하기 때문.

세번째, $\lambda=0$에 대응되는 고유벡터는 A의 null space에 존재한다.

Properties of eigenvalues & eigenvectors

property1

property2

행렬A의 고유값과, 행렬$A^T$의 고유값은 같다.

property3

행렬 A의 고유치가 $\lambda_1$,$\lambda_2$,…,$\lambda_n$라 할 때,

$A^k$의 고유치는 ${\lambda_1}^k$,${\lambda_2}^k$,…,${\lambda_n}^k$,

$cA$의 고유치는 $c\lambda_1$,$c\lambda_2$,…,$c\lambda_n$,

$A^{-1}$의 고유치는 ${\lambda_1}^{-1}$,${\lambda_2}^{-1}$,…,${\lambda_n}^{-1}$,

$A+cI$의 고유치는 $\lambda_1+c$,$\lambda_2+c$,…,$\lambda_n+c$,

$A^n + A^m$의 고유치는 ${\lambda_1}^n+{\lambda_1}^m$,${\lambda_2}^n+{\lambda_2}^m$,…,${\lambda_n}^n++{\lambda_n}^m$

–> 이때, 고유벡터는 변하지 않는다. 너무 중요!

property4

대칭행렬의 고유치는 항상 실수이다.

property5

대칭행렬의 서로다른 고유값에 대한 고유벡터는 서로 직교한다.

property6

교대행렬의 고유치는 순허수 또는 0 이다

property7

직교행렬의 고유치는 1 또는 -1 이거나 켤레복소수이다. (그리고, 고유값의 절대값은 항상 1이다.)

property8

대칭행렬에 가까울 수록 고유값은 실수의 형태로 계산되고, 비대칭행렬에 가까울수록 복소수의 형태로 고유값이 계산된다. 즉, 고유값이 실수인지 허수인지 여부에 따라, 행렬이 대칭인지 비대칭인지를 판단할 수 있다.

property9

상삼각행렬 또는 하삼각행렬의 고유값은 대각원소이다.

Comment  Read more

Linear Algebra - 20. Inverse matrix, Cramer's Rule

|

Inverse matrix

Lecture 19에서 여인수(cofactor)에 대해서 배웠다면 역행렬을 구하는 방법을 아는 것은 매우 간단하다.

먼저 2x2행렬의 예제에서 살펴보고, 3x3행렬의 예제를 보자.

그림을 보면 알 수 있듯이, 여인수 행렬의 전치행렬(수반행렬)에다가 A의 행렬식의 역수를 곱해준 꼴임을 알 수 있다.

이러한 방법을 적용하여 3x3행렬의 행렬식을 살펴보면 다음과 같다.

그런데 그렇다면, 이 역행렬을 구하는 공식은 어디서부터 나온 것일까?

다음 식을 살펴보자.

위의 두 공식이 성립하고, 위 두 공식으로 부터, A의 역행렬 공식이 도출되었음을 알 수 있다.

Cramer’s Rule (크레머 공식)

크레머 공식은 Ax=b 라는 식이 있을때, 해당 식의 해를 행렬식을 이용하여 표현하는 방법이다.

다음 그림을 보면서 과정을 이해해보자

출처 : https://twlab.tistory.com/43?category=668741

Comment  Read more