본문 바로가기

전체 글324

행렬의 조건수 (Condition Number) 어떤 함수 \(y=f(x)\)의 조건수(condition number)는 함수의 입력인 \(x\)의 작은 변화울에 대해 함수의 출력인 \(y\)의 변화율이 얼마인지를 나타내는 수로서, 함수의 민감도를 측정하는 지표이다. 행렬의 조건수도 일반 함수의 조건수 정의를 이용하여 유도할 수 있다. 다음과 같이 행렬 \(A \in \mathbb{R}^{n \times n}\)와 어떤 벡터 \( \mathbf{b} \in \mathbb{R}^n\)에 관한 방정식이 있다고 하자. \[ A \mathbf{x}= \mathbf{b} \] 여기서 벡터 \(\mathbf{b}\)가 어떤 작은 오차로 인하여 \(\mathbf{b}+\Delta \mathbf{b}\)로 변화했다면 이 방정식의 해 \(\mathbf{x}\)도 \(.. 2021. 3. 2.
기본 궤도 미분 방정식 - 궤적 방정식 이체문제 가정하에서 다음과 같이 기본 궤도 미분 방정식을 유도한 바 있다. \[ \frac{^i d^2 \vec{r}}{ dt^2} + \frac{\mu}{r^3} \vec{r} =0 \] 여기서 \(\mu=GM\)은 중력 파라미터, \(\vec{r}\)은 관성 좌표계 \(\{i\}\)의 원점에서 질점 \(m\)까지의 위치 벡터, \(r\)은 위치 벡터의 크기, 즉 거리다. 위 식으로 알 수 있는 것에는 또 무엇이 있을까. 궤도의 모양을 알 수 있다. 궤도 미분 방정식에 의하면 궤도의 모양은 4가지밖에 없다. 원궤도, 타원궤도, 포물선궤도, 쌍곡선궤도가 그것이다. 어떻게 궤도의 모양을 알 수 있는지 살펴보도록 하자. 사실 궤도 미분 방정식을 풀면 질점 \(m\)의 운동 궤도 모양을 알 수 있다. 위 식은.. 2021. 3. 1.
[POD-4] Gappy POD 매트랩 예제 Gappy POD 방법을 이용하여 손상된 얼굴 사진을 복구해 보자. 코드는 매트랩으로 작성했다. (1) Extended Yale Face Database B에서 36명의 정면 얼굴 사진을 추출하여 스냅샷 행렬을 만든다. 데이터셋의 샘플 평균을 계산한다. X = yaleFace(:, 1:36); % 32,256 by 36 mu = mean(X,2); (2) 모든 데이터셋을 다음과 같이 치환한다. \[ \mathbf{y}^{(i)} = \mathbf{x}^{(i) } - \mathbf{\mu} \] (3) 데이터셋의 스냅샷 행렬을 만든다. \[ Y = [ \mathbf{y}^{(1) } \ \mathbf{y}^{(2) } \ \cdots \ \mathbf{y}^{(m) } ] \ \in \mathbb{R}^.. 2021. 3. 1.
[POD-3] 개피 적합직교분해 (gappy POD) 적합직교분해(POD) 또는 주성분 분석(PCA)은 \(n\)차원 공간상에서 \(d\)개의 POD 모드(mode) \(\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_d\)로 구성된 부분 공간에 데이터 벡터 \(\mathbf{y}(t)\)를 투사(projection)할 때 투사 오차가 최소가 되도록 POD 모드를 결정하는 알고리즘이다. \[ \begin{align} \mathbf{y}^{(i)} & \approx \sum_{j=1}^d a_{ij} \mathbf{w}_j \\ \\ &= \begin{bmatrix} \mathbf{w}_1 & \mathbf{w}_2 & \cdots & \mathbf{w}_d \end{bmatrix} \begin{bmatrix} a_{i1} \\.. 2021. 3. 1.
[POD-2] 스냅샷 적합직교분해 (snapshot POD) 고전 적합직교분해(classical POD)는 공간은 이산화시켰지만 시간은 연속적이다. 하지만 실제 유체역학이나 구조해석 문제의 경우 벡터 필드는 일정한 시간 간격의 싯점에서 수치해석으로 계산된 데이터나 또는 측정된 데이터로 주어진다. 고전 POD의 또 다른 문제점은 차원이 \(n=10^8 \sim 10^{10}\)에 달하는 매우 고차원 행렬의 고유값과 고유벡터를 계산해야 하는데 있다. 이 정도 규모의 차원에서 이를 계산하는 것은 거의 불가능하다. 이러한 고전 POD의 단점을 극복하기 위한 방안으로 스냅샷(snapshot) POD가 개발되었다. 스냅샷 POD는 벡터 필드의 공간 뿐만 아니라 시간도 이산화시켰다는 데 특징이 있다. 스냅샷이란 일정한 싯점에서 수집한 데이터의 집합을 뜻한다. 먼저 벡터 필드 .. 2021. 3. 1.
[POD-1] 고전 적합직교분해 (classical POD) 적합직교분해(POD, proper orthogonal decomposition)은 본래 난류 유동(turbulent flow)에서 가장 에너지가 높은 모드를 추출하기 위해서 도입된 수학적인 기법이다. \(\mathbf{q}(\mathbf{p},t)\)를 위치벡터 \(\mathbf{p}\)와 시간 \(t\)를 독립변수로 하는 벡터 필드 (예를 들면 유동장에서의 속도 벡터)라고 하자. 이 벡터의 시간 평균을 \(\bar{\mathbf{q}}(\mathbf{p})\)라고 하면 벡터 필드가 평균을 기준으로 변동하는 성분(unsteady component)은 다음과 같이 기저함수(basis function)의 선형 조합으로 나타낼 수 있다. \[ \mathbf{q}(\mathbf{p},t)-\bar{\mathbf.. 2021. 2. 28.
기본 궤도 미분 방정식 - 궤도 에너지 보존 이체문제 가정하에서 다음과 같이 기본 궤도 미분 방정식을 유도한 바 있다. \[ \frac{^i d^2 \vec{r}}{ dt^2} + \frac{\mu}{r^3} \vec{r} =0 \] 여기서 \(\mu=GM\)은 중력 파라미터, \(\vec{r}\)은 관성 좌표계 \(\{i\}\)의 원점에서 질점 \(m\)까지의 위치 벡터, \(r\)은 위치 벡터의 크기, 즉 거리다. 위 식으로 어떤 것을 알 수 있을까. 만유인력은 보존력(conservative force)이므로 만유인력 이외의 다른 힘이 존재하지 않는다는 가정 하에서 질점 \(m\)의 기계적인 에너지(mechanical energy)는 보존될 것으로 예상할 수 있다. 궤도 미분 방정식을 이용하여 질점 \(m\)의 운동 궤도상에서 실제로 기계적인 .. 2021. 2. 25.
기본 궤도 미분 방정식 - 각운동량 보존과 궤도면 이체문제 가정하에서 다음과 같이 기본 궤도 미분 방정식을 유도한 바 있다. \[ \frac{^i d^2\vec{r}}{dt^2} + \frac{\mu}{r^3} \vec{r} = 0 \] 여기서 \(\mu=GM\)은 중력 파라미터, \(\vec{r}\)은 관성 좌표계 \(\{i\}\)의 원점에서 질점 \(m\)까지의 위치 벡터, \(r\)은 위치 벡터의 크기, 즉 거리다. 위 식으로 어떤 것을 알 수 있을까. 먼저 3차원 공간상에 있는 질점 \(m\)은 특정 평면내에서만 운동한다는 것을 알 수 있다. 이 평면을 궤도면(orbital plane)이라고 한다. 질점 \(M\)을 태양, 질점 \(m\)을 지구로 본다면 지구의 공전면을 황도면이라고 하는데, 지구는 태양 주위를 돌지만 황도면을 벗어나지는 못한다... 2021. 2. 24.
[PCA–4] PCA 예제: Eigenfaces Extended Yale Face Database B 라는 얼굴 사진을 잔뜩 모아 놓은 사이트가 있다. http://vision.ucsd.edu/~iskwak/ExtYaleDatabase/ExtYaleB.html 38명의 사람 얼굴을 9개의 자세 및 64개의 서로 다른 조명 조건에서 촬영한 사진으로 구성 되어있는데 Cropped Images에 있는 사진들은 높이가 192 픽셀 너비가 168픽셀로 된 흑백 사진이다. 이 얼굴 사진들은 연구 목적으로 자유롭게 사용할 수 있다. PCA 알고리즘을 얼굴 사진 라이브러리에 적용하여 이른바 eigenfaces라는 축소 차원 좌표축을 구하고 사진 데이터를 eigenfaces로 표현하고 또 복원해 보도록 하자. 먼저 36명의 정면 얼굴 사진만을 추출하여 스냅샷 행렬을 .. 2021. 2. 24.
[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.
[PCA–1] 주성분 분석 (PCA) 다음과 같이 2차원 공간(평면)상에 표현된 데이터 \(\mathbf{x}^{(i)}, \ i=1,...,m\) 이 있다. 데이터를 연결해 보니 데이터가 모두 직선상에 있다는 것을 알게 됐다고 하자. 이 직선으로 표현된 축(성분)을 \(z_1\)으로 한다면 애초에 \(x_1\)과 \(x_2\)의 두 축(성분)으로 이루어진 2차원 공간상의 데이터를 \(z_1\)축으로 이루어진 1차원 공간상에 표현할 수 있었을 것이다. 이와 같이 고차원 데이터를 저차원 데이터로 표현하는 것을 차원 축소(dimensionality reduction)라고 한다. 만약 데이터가 일직선 상에 있지 않고 약간 어긋나 있다면 어떨까. 그렇다고 하더라도 데이터가 나타내는 정보의 일부분을 잃는 것을 감수할 수 있다면 원래의 데이터 \(\m.. 2021. 2. 18.
[KKT 조건 - 3] 프라이멀 문제와 듀얼 문제 최적화 문제는 두 가지 관점에서 문제를 표현할 수 있는데 프라이멀 문제(primal problem)와 듀얼 문제(dual problem)가 그것이다. 어떤 문제에서는 프라이멀 문제보다도 듀얼 문제로 바꾸어 푸는 것이 더욱 효과적일 수 있다. 먼저 프라이멀 문제는 등식과 부등식 제약조건이 있는 본래의 최적화 문제를 말한다. \[ \begin{align} & p^\star = \min_{\mathbf{x}} f(\mathbf{x}) \\ \\ \mbox{subject to: } \ \ & g_i (\mathbf{x}) \le 0, \ \ \ i=1,...,m \\ \\ & h_j (\mathbf{x}) = 0, \ \ \ j=1,...,k \end{align} \] 이 문제에 대한 라그랑지안을 다음과 같이 .. 2021. 2. 17.
텐서와 변수 - 3 Tensorflow의 변수와 텐서와의 결정적인 차이는 가변성(mutability)이다. 변수는 값을 업데이트할 수 있지만, 텐서는 값을 변경할 수 없으며 새로운 텐서를 생성할 수 있을 뿐이다. 가변성이 무엇을 말하는지 구체적으로 알아보자. 다음 코드를 보자. a0 = tf.constant(2) a1 = a0 print(a0) print(a1) 이렇게 하면 a0라는 이름은 2라는 텐서 객체가 저장된 메모리의 위치를 가리킨다. a1도 a0와 동일한 메모리의 위치를 가리킨다. Output: tf.Tensor(2, shape=(), dtype=int32) tf.Tensor(2, shape=(), dtype=int32) 그런데 a1에 덧셈 연산을 하면 a1은 연산 결과인 3을 저장한 다른 메모리 위치를 가리킨다... 2021. 2. 11.