본문 바로가기
  • 기술을 이야기하지만 사람을 생각합니다.
20. Deep Learning

[인공지능을 위한 선형대수] 대각화

by WE DONE IT 2019. 10. 20.

주재걸 교수님의 <인공지능을 위한 선형대수 - 대각화> 수업의 내용과 다른 교재들을 참고하여 정리한 글입니다.

 

[LECTURE] 대각화 : edwith

학습목표   이번 강의에서는 고유값 분해와 밀접한 관련을 가지는 대각화의 개념에 대해 배워보겠습니다.  이는 나중에 배울 특이값 분해(SVD: Singular Value Decom... - 커넥트재단

www.edwith.org


Diagonalization (대각화)

코딩더매트릭스 책에서 설명하는 대각행렬의 정의는 다음과 같다. 

 

위 세 가지 행렬 중 정사각행렬인 왼쪽만 대각행렬의 정의를 충족한다. 

정의역 D에 대해, D X D 행렬 M은 r  c 인 모든 쌍  r,c ∈ D에 대해 M[r,c] = 0 이면 대각행렬이다. 

대각화는 주어진 행렬을 대각행렬로 만드는 것이다. 𝐴 행렬의 양쪽에 𝑉 역행렬과 𝑉 를 곱하여, 𝐴 행렬을 𝐷 라는 새로운 행렬을 만드는 과정을 설명하고자 한다.

대각화가 가능한 조건

대각행렬(diagonal matrix)* 을 이루는 𝐴 행렬은 정사각행렬(square matrix)이여야 한다. 𝑉 또한 정사각행렬이여야 하며, 역행렬이 존재(invertible matrix) 해야한다.

(* 대각행렬은 대각선을 제외한 스칼라 값이 모두 '0'이 되어야 한다.) 

 

위 조건을 만족할 수 있는 𝑉를 찾을 수 있으면 𝐴의 대각화가 가능(diagonalizable)하며, 𝐷 가 대각행렬이 됐을 때 이를 '대각화(diagonalization)'이라고 한다.

 

 대각화(diagonalization)의 정의

Finding 𝑉 and 𝐷

𝐷 = 𝑉^(−1)𝐴𝑉 𝑉𝐷 = 𝐴𝑉 

 

 : 왼쪽의 식이 존재한다면 오른쪽 식 ( 𝑉𝐷 = 𝐴𝑉 )이 존재할 수 있다.

그러나, 오른쪽에서 왼쪽으로 변환하기 위해서는 𝑉 행렬이 역행렬이 존재한다는 조건이 필요하다. 

 

위 식이 있이 존재하는 경우, 식에 대한 의미를 살펴보자. 𝑉 는 v 컬럼이 n개 있는 행렬이며, 𝐷 는 대각 행렬이다.

 

𝑉𝐷 = 𝐴𝑉 결과가 얻어지는 과정

  • 𝐴𝑉는 𝐴 행렬을 재료벡터로 활용하여 𝐯1, 𝐯2, ... 𝐯n  컬럼을 linear combination coefficent 를 하면 [𝐴𝐯1, 𝐴𝐯2, .. 𝐴𝐯n] 식이 된다.
  • 𝑉𝐷는 주어진 컬럼벡터 [𝐯1, 𝐯2, ... , 𝐯n]와 대각행렬은 곱한 값이다. 먼저, 컬럼벡터 𝐯1과 linear combinatino coefficent 하면 되지만, 대각화행렬이기 때문에 𝜆1을 제외한 값은 모두 '0'이다. 따라서, 총 n개의 벡터가 있지만 첫번째 벡터의 𝜆1 값만 사용하면 된다. 결과적으로 [𝜆1𝐯2, 𝜆1𝐯2, ... , 𝜆n𝐯n,] 식이 된다.
  • 𝑉𝐷 = 𝐴𝑉 두 행렬이 같다는 것은 요소(elements)와 각각의 컬럼도 같다는 뜻이다. 따라서, 아래와 같은 총 n개의 등식이 만들어진다. 

𝑉𝐷 = 𝐴𝑉 를 통해서 얻어지는 식

𝐯1, 𝐯2, ... , 𝐯n은 고유벡터(eigenvector)가 되며, 𝜆1, 𝜆2, ..., 𝜆n은 고유값(eigenvalue)이 된다. 따라서 대각화(digonalization)은 고유벡터, 고유값과 연결이 된다. 

 

결과적으로 우리가 구하고자 하는 값은 𝐷 (대각행렬)이다. 𝐷 를 구할 수 있는지 살펴보자.

 

𝑉𝐷 = 𝐴𝑉 𝐷 = 𝑉^(-1)𝐴𝑉

 

𝑉는 역행렬이 존재해야 한다. 그러나 정사각행렬이 아닌 경우에는 역행렬이 존재할 수 없다. 𝑉 행렬은 각각의 컬럼들이 고유벡터가 되어야 하며, 고유벡터를 정사각 행렬로 만들어야 한다. 정사각 행렬이 역행렬이 존재하려면 각각의 컬럼들이 선형독립이어야 한다. 

즉 3차원의 벡터를 뽑았지만  3 x 3 행렬이 되어야 하므로 세 번째 벡터를 찾아야 역행렬이 존재한다.

Diagonalizable Matrix (대각화가 가능한 행렬)

3 x 3 행렬인 경우, 'Diagonalizable 하냐'라는 질문은 '3개의 선형독립하는 고유벡터를 찾을 수 있느냐'라는 질문과 동일하게 된다.

즉, 대각화를 하기 위해 가장 중요한 조건은 n x n 행렬의 𝐴가 n개의 독립적인 고유값과 고유벡터를 가지고 있어야한다. 

 

대각화가 가능한(diagonalizable) 행렬 조건

𝑉𝐷 = 𝐴𝑉 

For 
𝑉 to be invertible,
𝑉 should be a square matrix in R 𝑛×𝑛, and
𝑉 
should have 𝑛 linearly independent columns.

Recall columns of 𝑉 are eigenvectors.

Hence, 𝐴 should have 𝑛 linearly independent eigenvectors.

It is not always the case, but if it is, 𝐴 is diagonalizable.

-> 어떤 행렬 𝐴의 고유값 행렬 𝑉 는 역행렬이 존재하며 (=n x n 정사각 행렬이며, n개의 독립적인 컬럼이 존재함), 𝐴는 반드시 n개의 선형 독립의 고유값이 존재한 경우, 𝐴는 대각화가 가능하다.

det (𝐴-𝜆I) = 에서 A의 차원이 3 x 3 인 경우, 3개의 고유벡터를 찾을 수 있으면 diagonalizable 한 상태이다. 그러나, 항상 선형독립의 고유벡터를 찾을 수 있진 않다. 어떤 행렬은 선형독립하는 고유벡터가 차원의 수보다 모자랄 수 있다. 이 경우에는 대각화할 수 없게 된다. 

 

댓글0