Orthogonal matrix(직교 행렬)
직교 행렬은 행벡터와 열벡터가 유클리드 공간의 정규 직교 기저를 이루는 실수 행렬이다.
행들이 서로 서로 정규직교이고 열들도 서로 정규직교인 정방행렬이다.
이는 다음을 함의한다.
직교 행렬은 역행렬을 계산하기가 아주 쉽다. 이 점이 직교 행렬에 관심을 두는 주된 이유다.
정규직교벡터(Orthonormal vector)
직교 벡터는 벡터 사이의 각도가 90도, 즉 직각(perpendicular)를 이루는 벡터를 말한다.
벡터 a와 b가 직각을 이룰 때, a와 b를 직교 벡터라고 한다.
정규직교벡터란 : 직교 벡터(orthogonal vector)이면서 단위 벡터(unit vector)인 벡터를 발한다.
즉, 두 벡터가 90도의 각도를 이루고 각 벡터의 길이는 1인 방향 성분만을 나타내는 벡터이다.
이러한 정규 직교 벡터들을 행렬의 행 vector에 삽입하면 직교행렬(orthogonal matrix)가 된다.
즉, Q를 직교 행렬(orthogonal matrix)이라고 했을 때 정규직교벡터들이 Q의 정규직교기저가 되는 것이다.
직교 행렬(Orthogonal matrix)
직교행렬은 행렬의 열과 행 벡터들이 자기 자신을 제외한 나머지 모든 열, 행 벡터들과 직교이면서 동시에 단위 벡터인 행렬을 의미.
즉, 정규직교행렬을 행렬 Q에 집어 넣은 것
Transposed Q_1과 Q_1의 곲은 자기 자신과의 곱셈이기 때문에 대각 성분은 1이 된다.
반면 나머지 벡터끼리의 곱은 직교(orthogonal)하기 때문에 0이 되어 결과적으로 Q와 Q의 transpose 행렬 곱은 단위 행렬과 같다.
특이값 분해(singular value decomposition)
모든 실수 행렬에는 특이값 분해가 존재하지만, 항상 고윳값 분해가 존재하는 것은 아니다.
예를 들어 행렬이 정방행렬이 아니면 고윳값 분해가 정의되지 않는다.
따라서 반드시 특잇값 분해를 사용해야 한다.
특이값 분해는 아래와 같이 A가 세 행렬의 곱으로 표현된다.
A = UDV^T
A = m x n 행렬이면
U = m x m
D = m x n
V = n x n
행렬이다.
이 행렬들은 특별한 구조를 가진다.
행렬 U와 V 는 둘 다 직교 행렬(Orthogonal Matrix)로 정의된다.
행렬 D는 대각 행렬로 정의된다.
이때, D의 주대각 성분을 행렬 A의 특이값(singular value) 라고 부른다.
U : 좌특이벡터(left-singular vector)
V : 우특이벡터(right-singular vector)
특이값 분해가 말하는 것 : 직교하는 벡터 집합에 대하여, 선형 변환 후에 그 크기는 변하지만 여전히 직교할 수 있게 되는 그 직교 집합은 무엇인가? 그리고 선형 변환 후의 결과는 무엇인가?
특이값 분해를 이용해 A의 임의의 행렬을 여러개의 행렬로 분해하면 분해된 각 행렬의 원소의 값의 크기는 D의 값의 크기에 의해 결정된다.
즉, A를 정보량에 따라 여러 단위로 쪼개서 생각할 수 있게 한다.
참고
imlab.postech.ac.kr/dkim/class/csed514_2019s/DeepLearningBook.pdf
ko.wikipedia.org/wiki/%EC%A7%81%EA%B5%90%ED%96%89%EB%A0%AC
angeloyeo.github.io/2019/08/01/SVD.html
'딥러닝관련 > 기초 이론' 카테고리의 다른 글
기계 학습에서 확률의 필요성 (0) | 2021.04.14 |
---|---|
행렬식(determinant) (0) | 2021.03.10 |
고유값 분해 (eigen decomposition) (0) | 2021.03.10 |
Orthogonal (직교) vector (0) | 2021.02.07 |
Norm (0) | 2021.02.06 |