본문 바로가기

SVD7

[POD-2] 스냅샷 적합직교분해 (snapshot POD) 고전 적합직교분해(classical POD)는 공간은 이산화시켰지만 시간은 연속적이다. 하지만 실제 유체역학이나 구조해석 문제의 경우 벡터 필드는 일정한 시간 간격의 싯점에서 수치해석으로 계산된 데이터나 또는 측정된 데이터로 주어진다. 고전 POD의 또 다른 문제점은 차원이 \(n=10^8 \sim 10^{10}\)에 달하는 매우 고차원 행렬의 고유값과 고유벡터를 계산해야 하는데 있다. 이 정도 규모의 차원에서 이를 계산하는 것은 거의 불가능하다. 이러한 고전 POD의 단점을 극복하기 위한 방안으로 스냅샷(snapshot) POD가 개발되었다. 스냅샷 POD는 벡터 필드의 공간 뿐만 아니라 시간도 이산화시켰다는 데 특징이 있다. 스냅샷이란 일정한 싯점에서 수집한 데이터의 집합을 뜻한다. 먼저 벡터 필드 .. 2021. 3. 1.
[PCA–3] 주성분 분석 (PCA) 특징 n차원 공간 상의 m개 데이터 \(\mathbf{x}^{(1)}, \mathbf{x}^{(2)}, ..., \mathbf{x}^{(m)} \in \mathbb{R}^n\) 에 대한 주성분 분석(PCA) 알고리즘을 정리하면 다음과 같다. (1) 데이터셋의 샘플 평균을 계산한다. \[ \mathbf{\mu} = \frac{1}{m} \sum_{i=1}^m \mathbf{x}^{(i)} \] (2) 모든 데이터셋을 다음과 같이 치환한다. \[ \mathbf{y}^{(i)}= \mathbf{x}^{(i)} - \mathbf{\mu} \] (3) 데이터셋의 스냅샷(snapshot) 행렬을 만든다. \[ Y = \begin{bmatrix} \mathbf{y}^{(1)} & \mathbf{y}^{(2) } & \cd.. 2021. 2. 20.
[PCA–2] 주성분 분석 (PCA) 알고리즘 유도 \(m\)개의 n차원 데이터 \(\mathbf{x}^{(1)}, \mathbf{x}^{(2)}, ..., \mathbf{x}^{(m)} \in \mathbb{R}^n\) 이 주어졌다고 하자. 이 데이터를 d차원 공간에 투사해서 차원(dimension)을 축소하는 것이 목적이다. 그렇다면 n차원의 부분 공간인 d차원 (\(d \lt n\))에서 직교 좌표축의 방향을 어떻게 결정해야 데이터의 정보 손실을 최소화할 수 있을까. 다음 그림은 2차원 데이터의 예를 도시한 것이다. 우선 새로운 좌표축의 원점을 \(m\)개 데이터의 평균점 \(\mathbf{\mu}\)에 위치시키도록 하자. \[ \mathbf{\mu} = \frac{1}{m} \sum_{i=1}^m \mathbf{x}^{(i)} \] 그리고 모든 데.. 2021. 2. 19.
유사 역행렬 (Pseudo Inverse Matrix) 역행렬은 full rank인 \( n \times n \) 정방 행렬(square matrix)에서만 정의된다. 정방 행렬이 아닌 다른 모양의 행렬에서는 역행렬 대신에 유사 역행렬(pseudo inverse matrix)을 정의할 수 있다. 어떤 \( m \times n \) 실수 행렬 \( A \)에 대해서 다음과 같이 4가지 조건을 만족하는 행렬 \( A^+ \)를 무어-펜로즈(Moore-Penrose) 유사 역행렬이라고 한다. 1. \( A A^+ A = A \) 2. \( A^+ A A^+ = A^+ \) 3. \( (A A^+)^T = A A^+ \) 4. \( (A^+ A)^T = A^+ A \) 특이값 분해(svd)를 이용하면 무어-펜로즈 유사 역행렬을 쉽게 계산할 수 있다. 특이값 분해란 .. 2020. 10. 19.
특이값 분해(SVD)의 응용: 이미지 압축 특이값 분해는 다음과 같이 어떤 \( m \times n \) 실수 행렬(real matrix) \( A \)를 3개의 행렬의 곱으로 분해한 것이다. \[ A = U \Sigma V^T \tag{1} \] 이 식을 풀어 쓰면 다음과 같다. \[ A = \sigma _1 \mathbf{u}_1 \mathbf{v}_1^T + \sigma _2 \mathbf{u}_2 \mathbf{v}_2^T + \cdots + \sigma _r \mathbf{u}_r \mathbf{v}_r^T \tag{2} \] 여기서 \( \sigma _i \)는 특이값으로서 그 숫자는 행렬 \( A \)의 랭크(rank)와 같다. 특이값은 큰 값에서 작은 값의 순서로 정렬시킨 것이다. \[ \sigma _1 \ge \sigma _2 \.. 2020. 7. 25.
특이값 분해(SVD)의 증명 어떤 \( m \times n \) 실수 행렬(real matrix) \( A \)와 그 전치 행렬 \( A^T \)의 행렬곱 \( AA^T \)와 \( A^T A \)는 대칭행렬이며 준정정 행렬(positive semi-definite matrix)이다. 먼저 대칭행렬인지 확인해 보자. 행렬곱을 전치한 다음에 원래 행렬과 같은 지 확인하면 된다. \[ (AA^T )^T=AA^T, \ \ \ (A^T A)^T=A^T A \] 그렇다면 \( AA^T \)이 준정정 행렬인지 확인해 보자. 어떤 벡터 \( \mathbf{x} \)에 대해서 다음 부등식을 만족하는지 확인하면 된다. \[ \begin{align} \mathbf{x} ^T (AA^T ) \mathbf{x} &= (A^T \mathbf{x} )^T .. 2020. 7. 23.
특이값 분해(singular value decomposition) 행렬을 다른 여러 개의 행렬의 곱으로 쪼개는 것을 분해(decomposition)라고 한다. 행렬의 분해로는 고유값 분해(eigen decomposition), 촐레스키 분해(Cholesky decomposition), LU 분해(lower-upper decomposition), 특이값 분해(singular value decomposition) 등 여러가지가 있지만 그 중에서도 가장 중요한 것이 SVD라고 불리는 특이값 분해가 아닐까 싶다. 특이값 분해는 이미지 압축, 모델의 차원 축소, 근사해 계산, 웹서치, 제어분야에서 액추에이터와 센서의 최적 위치를 선정하는 문제, 제어력 할당 문제 등 매우 폭넓게 응용되고 있기 때문이다. 고유값이 행과 열의 갯수가 같은 정방 행렬(square matrix)에서만 .. 2020. 7. 23.