Vector x 와 Matrix A가 주어졌을 때,
x⊤A⊤Ax의 minimum (or lower bound)를 구하는 방법에 대해
Singular Value Decomposition(SVD)와 Eigenvalue Decomposition(EVD)을 이용하는 방법.
argmin xx⊤A⊤Ax는
Total Least Squares 등에서 많이 애용되는 형태의 최소화 문제임.
SVD를 이용한 lower bound 계산 방법
SVD는 matrix을 세 개의 행렬로 분해하는 방법임.
행렬 A의 SVD는 다음과 같이 표현됨:
A=UΣV⊤
여기서
- U는 m×m orthogonal matrix,
- Σ 는 m×n diagonal matrix로 대각 성분은 A의 singular values,
- V 는 n×n orthogonal matrix임.
행렬 A 에 대해 A⊤A를 계산하면:
A⊤A=(UΣV⊤)⊤(UΣV⊤)=VΣ⊤U⊤UΣV⊤=VΣ⊤ΣV⊤
여기서 ΣA=Σ⊤Σ 라고 정의함:
A⊤A=VΣAV⊤
이제 x⊤A⊤Ax를 고려함:
x⊤A⊤Ax=x⊤VΣAV⊤x
여기서 y=V⊤x라고 정의하면,
- V 는 orthogonal matrix이므로
- ||y||=||x||가 성립함.
2022.11.17 - [.../Math] - [LA] Orthogonal matrix (직교행렬)
[LA] Orthogonal matrix (직교행렬)
Orthogonal MatrixMatrix의 row vector (and column vector)들이자기자신을 제외한 나머지 row vector (and column vector)들과 orthonormal인 square matrix.$$A^{-1}=A^\top \\ A^\top A = I \\ \mathbf{a}_i^\top \mathbf{a}_j = \mathbf{a}_i \cdot \mat
dsaint31.tistory.com
[LA] Diagonalization, Orthogonal Diagonalization, and Symmetric Matrix
Diagonalizable (대각화)sqaure matrix가 n개의 eigenvalue를 가지고, 이들 각각의 eigenvalue들이 각자의 multiplicity에 해당하는 dimension을 가지는 eigne space를 가지고 있는 경우에 해당.각기 다른 eigenvalue의 eigen
dsaint31.tistory.com
2024.02.15 - [.../Math] - [LA] Singular Value (특이값)
[LA] Singular Value (특이값)
Singular Value DecompositionRank가 n인 matrix S∈Rm×n where m≥n 에서orthonormal vector set{v1,…,vn},{u1,…un} 와positive scalr set $\{\sigma_1, \dots, \sigma_n
dsaint31.tistory.com
따라서:
x⊤A⊤Ax=y⊤ΣAy
ΣA 는 A의 singular values의 제곱을 대각선으로 갖는 diagonal matrix임.
따라서:
y⊤ΣAy=n∑i=1σ2iy2i
이제 lower bound를 구하기 위해 A의 최소 singular value σmin 을 고려함.
이 경우 최소값은 y가 최소 singular value에 해당하는 고유벡터와 정렬될 때 발생함.
따라서:
x⊤A⊤Ax≥σ2min||x||2
최소값을 갖는 벡터 x 는
- x=Vy에서
- y 가 최소 singular value에 해당하는 ΣA의 eigenvector(고유벡터)일 때 얻어짐.
즉, y 가 emin (최소 singular value에 해당하는 eigenvector)일 때
x=Vemin임.
EVD를 이용한 lower bound 계산 방법
EVD는 대칭 행렬을 orthogonal matrix와 diagonal matrix로 분해하는 방법임.
A⊤A는 대칭 행렬이므로, EVD를 통해 다음과 같이 표현됨:
A⊤A=VΛV⊤
여기서
- V 는 A⊤A 의 eigenvectors들로 이루어진 n×n orthogonal matrix,
- Λ 는 A⊤A 의 eigenvalues들을 대각선으로 갖는 n×n diagonal matrix임.
이제 x⊤A⊤Ax를 고려함:
x⊤A⊤Ax=x⊤(VΛV⊤)x
여기서 y=V⊤x라고 정의하면,
V 는 orthogonal matrix이므로 |y|=|x|가 성립함.
따라서:
x⊤A⊤Ax=y⊤Λy
Λ 는 A⊤A의 eigenvalues들을 대각선으로 갖는 diagonal matrix임.
따라서:
y⊤Λy=n∑i=1λiy2i
이제 lower bound를 구하기 위해 A⊤A의 최소 eigenvalue λmin을 고려함.
이 경우 최소값은 y 가 최소 eigenvalue에 해당하는 고유벡터와 정렬될 때 발생함.
따라서:
x⊤A⊤Ax≥λmin|x|2
최소값을 갖는 벡터 x 는
- x=Vy에서
- y가 최소 eigenvalue에 해당하는 Λ 의 고유벡터일 때 얻어짐.
즉, y 가 emin (최소 eigenvalue에 해당하는 표준 기저 벡터)일 때 x=Vemin임.
결론
벡터 x와 행렬 A 가 주어졌을 때,
x⊤A⊤Ax 의 lower bound는 두 가지 방법으로 구할 수 있음.
SVD를 이용하면
- x⊤A⊤Ax≥σ2min||x||2이 성립하고,
- 여기서 σmin 은 A 의 최소 singular value임.
- 최소값을 갖는 벡터 x 는 Vemin임.
EVD를 이용하면
- x⊤A⊤Ax≥λmin||x||2이 성립하고,
- 여기서 λmin은 A⊤A 의 최소 eigenvalue임.
- 최소값을 갖는 벡터 x 는 Vemin임.
따라서, x⊤A⊤Ax 의 lower bound를 구할 때 SVD와 EVD 모두 유용한 도구임.
다만, EVD는 수치적으로 불안정할 수 있으므로 주의가 필요함.
Python 예제 코드
다음은 Python의 numpy 라이브러리를 사용하여 x⊤A⊤Ax의 lower bound를 SVD와 EVD를 통해 구하는 예제 코드임.
import numpy as np # 임의의 행렬 A와 벡터 x A = np.array([[1, 2], [3, 4], [5, 6]]) x = np.array([1, 0]) # SVD를 이용한 lower bound 계산 U, Sigma, VT = np.linalg.svd(A) sigma_min = np.min(Sigma) lower_bound_svd = sigma_min**2 * np.linalg.norm(x)**2 print(f"SVD를 이용한 lower bound: {lower_bound_svd}") # 최소값을 갖는 벡터 x 계산 e_min_svd = np.zeros_like(x) e_min_svd[np.argmin(Sigma)] = 1 x_min_svd = VT.T @ e_min_svd print(f"최소값을 갖는 벡터 x (SVD): {x_min_svd}") # EVD를 이용한 lower bound 계산 ATA = np.dot(A.T, A) eigenvalues, V = np.linalg.eigh(ATA) lambda_min = np.min(eigenvalues) lower_bound_evd = lambda_min * np.linalg.norm(x)**2 print(f"EVD를 이용한 lower bound: {lower_bound_evd}") # 최소값을 갖는 벡터 x 계산 e_min_evd = np.zeros_like(x) e_min_evd[np.argmin(eigenvalues)] = 1 x_min_evd = V @ e_min_evd print(f"최소값을 갖는 벡터 x (EVD): {x_min_evd}")
위 코드에서는
- numpy의
svd
함수와eigh
함수를 사용하여 각각 SVD와 EVD를 수행하고, - 이를 통해 x⊤A⊤Ax 의 lower bound를 계산함.
SVD를 이용한 lower bound는 최소 singular value를 사용하고,
EVD를 이용한 lower bound는 최소 eigenvalue를 사용함.
또한, 최소값을 갖는 벡터 x를 각각의 방법을 통해 구함.
같이 읽어보면 좋은 자료들
2024.06.22 - [Programming/ML] - [Fitting] Total Least Square Regression
[Fitting] Total Least Square Regression
Total Least Squares (TLS) RegressionTotal Least Squares (TLS) 회귀는 데이터의 모든 방향에서의 오차를 최소화하는 회귀 방법임.이는 특히 독립 변수와 종속 변수 모두에 오차가 포함되어 있는 경우에 유용함.
dsaint31.tistory.com
'... > Linear Algebra' 카테고리의 다른 글
[LA] Rank: Matrix의 속성 (0) | 2024.07.08 |
---|---|
[LA] Matrix Multiplication for Cross Product (0) | 2024.06.28 |
[LA] Span (생성) (0) | 2024.05.29 |
[LA] Matrix-Vector Multiplication (0) | 2024.05.29 |
[LA] Linear Transformation (1) | 2024.04.03 |