Truncated SVD
•
의 특잇값 분해(SVD)를 라 놓고, 라 하자. 여기서 와 의 첫 개 컬럼을 사용한다. 이것은 을 최소화한다는 점에서 최적의 rank 근사로 표시될 수 있다.
•
만일 라면 이 분해로 인해 발생하는 오류가 없다. 그러나 이면 약간의 에러가 발생하는데 이것을 Truncated SVD라고 부른다.
•
만일 특잇값들이 자연 데이터에서 빠르게 죽으면 에러는 작아진다.
◦
rank 근사를 사용하여 행렬을 표현하는데 필요한 총 파라미터의 숫자는 다음과 같다.
•
이 rank- 근사에서 오류는 다음과 같이 주어진다.
◦
여기서 는 의 번째 특이값이다.
LU factorization
•
어떤 정사각 행렬 을 하삼각행렬 과 상삼각행렬 의 곱으로 분해할 수 있다. 예를 들어 다음과 같다.
•
과 는 가우스-조던 소거법을 하는 과정에서 구할 수 있다.
◦
를 구하기 위해 수행하는 소거를 lower triangle 행렬로 표현할 수 있는데, 를 얻는 동안 반복적으로 곱해진 모든 lower trinagle matrix를 곱하면 또 lower triangle 행렬이 되기 때문에 이것을 로 합치면 최종적으로 로 만들수 있는데 이게 바로 LU decomposition이 된다.
•
일반적으로 이 분해를 생성하기 전에 행렬의 요소들을 순열해야 할 필요가 있다. 이것을 위해 일 가정한다.
◦
이기 때문에 나 둘 중 하나는 0이어야 한다는 것을 의미하지만 이는 이나 이 특이라는 것을 암시한다.
◦
이것을 피하기 위해 이 알고리즘의 첫 번째 단계는 행을 첫 번째 요소가 0이 아니도록 간단하게 재정렬할 수 있다. 이것을 차후 단계에서도 반복한다. 이 절차를 다음처럼 나타낼 수 있다.
◦
1행의 맨 앞이 0이면 맨 앞이 0이 아닌 다른 행이랑 바꾸면 되는데, 이 교체 연산을 아예 행렬로 만들어서 와 곱하게 한다. 그 행렬을 permutation matrix라고 한다.
•
여기서 는 순열 행렬(permutation matrix)이다. 예컨대 만일 행 가 행 로 순열되면 인 정사각 이진 행렬이다. 이것을 partial pivoting이라고 한다.
◦
는 orthogonal 하기 때문에 가 성립한다.
•
를 이용해서 decomposition 하는것을 decomposition이라고 한다.
•
decomposition의 결과에 대해 과 의 대각 요소가 1이 아닌 경우 그것을 1로 만들어주는 행렬 를 만들어 줄 수 있는데, 이것을 decomposition이라고 한다.
◦
여기서 는 대각 요소만 존재하는 대각 행렬이고, 놀랍게도 과 의 대각 성분을 동시에 1로 만들어준다.
Gram-Schmidt Orthogonalization
•
선형 독립이지만 orthogonal 하지 않은 벡터가 존재할 때, 그것들 orthogonal 하게 만드는 절차를 Gram-Schmit Orthogonalization 라고 한다.
•
아이디어는 벡터 하나를 normalize 한 후에 나머지 벡터들을 차례로 이전 모든 벡터와 직교하게 만드는 것으로 절차는 다음과 같다.
1.
먼저 벡터 하나를 normalize 해서 orthonormal한 벡터를 만들고,
•
2.
normalize된 벡터를 이용해서 다음 벡터에서 처음 벡터와 평행한 성분을 제거해서 처음 벡터와 수직인 벡터를 만들고
•
◦
을 내적하면 를 에 투영하는 벡터의 크기(스칼라)가 나온다.
◦
그렇게 구한 크기에 다시 을 곱하면 에 대해 방금 구한 크기만큼 scale한 벡터가 만들어지고, 이게 바로 를 에 투영한 벡터가 된다.
◦
를 에 투영한 벡터를 다시 에서 빼주면 결국 에서 와 수직인 성분만 남는다. 이것을 화살표로 그려보면 이해가 쉽다.
3.
2에서 만든 벡터를 normalize해서 다음 orthonormal 벡터를 만들고
•
4.
그 다음 벡터를 선택해서 이전의 모든 orthogonal 벡터에 대해 투영하고 원래 벡터에서 빼는 2-3의 과정을 반복한다. 모든 벡터가 orthonormal 벡터가 될 때까지.
Gram-Schmidt Orthogonalization 예시
•
만일 선형 독립이지만 직교하지는 않은 3개의 벡터 에 대해 Gram-Schmidit Orthogonalization 을 수행하면 각각의 벡터는 다음과 같이 변환된다.
1.
일단 가장 앞의 는 정규화만 해서 직교 정규 벡터 로 만든다.
•
2.
다음으로 2번째 벡터 는 먼저 만들어진 과 직교해야 하므로 에 투영하고 에서 빼서 를 만든다.
•
3.
2번에서 만든 벡터 를 normalize 해서 직교 정규 벡터 를 만든다.
•
4.
3번째 벡터 는 먼저 만들어진 와 모두 직교해야 하므로 에 각각 투영하고 에서 뺴서 를 만든다.
•
5.
4번에서 만든 벡터 를 normalize 해서 직교 정규 벡터 를 만든다.
•
6.
이렇게 만들어진 는 모두 서로에 대해 직교하는 정규 벡터이다.
QR decomposition
•
선형 독립 기저 벡터들의 집합으로 표현되는 (따라서 ) 을 가정하자. 그리고 등의 연속적인 부분공간에 걸쳐 있는 일련의 직교정규 벡터 를 찾기 원한다고 하자. 다음과 같은 벡터 와 계수 를 찾기를 윈한다고 하자.
•
이것을 다음처럼 쓸 수 있다.
•
이것은 Gram-Schmidt Orthogonalization과 같은 형식이다.
◦
모든 를 직교정규하도록 로 변환 시키면, —우선 를 로 잡고, 그 이후 는 과 직교하도록 로 변환하는 절차— 각 는 자신보다 인덱스가 작은 까지의 선형 결합으로 표현할 수 있다.
◦
그렇게 표현된 와 선형 결합 계수 을 각각 행렬 표현하면 위와 같이 표현할 수 있음. 앞의 벡터는 더 적은 수의 선형 결합만으로 표현 가능하지만, 뒤로 갈 수록 앞의 벡터와 직교해야 하기 때문에 더 많은 선형 결합이 필요하기 때문에 상삼각행렬로 표현이 됨.
•
따라서 이 의 공간을 span 하고 과 가 의 공간을 span 하고 등을 볼 수 있다.행렬 표기로 다음과 같다.
•
여기서 는 직교 정규 열이고 는 상삼각이다. 이것은 축소된 QR 또는 의 경제적 크기의 QR 인수분해(factorization)이라고 한다.
•
전체 QR 인수분해는 추가적인 직교정규 열을 에 추가한다. 따라서 이것은 를 만족하는 직교정규 행렬 로 정사각이 된다.
◦
또한 0으로 만들어진 행을 에 추가하여 이것은 이라고 불리는 상삼각행렬이 된다. 의 0으로 만들어진 요소들은 의 새로운 열을 없애므로 결과는 와 같다.
•
QR 분해는 일반적으로 선형 방정식의 시스템을 해결할 때 사용된다.
Cholesky decomposition
•
어떤 대칭인 양의 정부호(symmetric positive definite) 행렬은 로 분해될 수 있다(실수라면 ). 여기서 은 상삼각이고 대각에는 양의 실수인 대각 성분을 갖고 있다. 이것을 Cholesky 인수분해(factorization) 또는 행렬 제곱근(matrix square root)이라고 한다.
◦
로도 쓰일 수 있는데(실수라면 ), 여기서 은 하삼각이고 마찬가지로 대각성분은 양의 실수가 된다.
•
양의 정부호인 대칭 행렬 이 아래와 같은 형태로 분해 될 수 있다는 이야기
•
만일 가 음의 정부호라면 음수를 붙이면 양의 정부호가 되므로 로 놓고 풀 수 있다.
•
composition에서 과 의 대각 행렬을 모두 1로 만들어주는 대각 행렬 를 추가해서 로 분해할 수 있었는데, Cholesky도 마찬가지로 , 로 분해 가능하다.
•
공분산 행렬(covariance matrix)는 항상 대칭인 양의 정부호 행렬이므로 Cholesky decomposition이 가능하다)