Mathematics for Machine Learning-Chapter3

Mathematics for machine learning Chapter3

Deisenroth, Marc Peter, A. Aldo Faisal, and Cheng Soon Ong. Mathematics for machine learning. Cambridge University Press, 2020.

Analytic Geometry

2장에서는 벡터, 벡터 공간, 선형 매핑을 일반적이지만 추상적인 수준에서 살펴보았다. 이 장에서는 이러한 모든 개념에 기하학적 해석과 직관을 더할 것이다. 특히, 기하학적 벡터를 살펴보고 두 벡터 사이의 길이, 거리 또는 각도를 계산할 것이다. 이를 위해 벡터 공간에 **내적(inner product)**을 부여하여 벡터 공간의 기하학을 유도한다. 내적과 그에 상응하는 노름(norm) 및 **거리(metric)**는 유사성과 거리라는 직관적인 개념을 포착하며, 이는 12장에서 **서포트 벡터 머신(support vector machine)**을 개발하는 데 사용된다. 그런 다음 벡터 사이의 길이와 각도 개념을 사용하여 **직교 투영(orthogonal projection)**을 논의할 것이다. 직교 투영은 10장에서 **주성분 분석(principal component analysis)**을 논의하고 9장에서 최대 우도 추정(maximum likelihood estimation)을 통한 회귀를 논의할 때 핵심적인 역할을 할 것이다. 그림 3.1은 이 장의 개념들이 어떻게 관련되어 있고 책의 다른 장들과 어떻게 연결되는지에 대한 개요를 제공한다.

Figure 3.1 이 장에서 소개된 개념들의 마인드맵과 책의 다른 부분에서 사용되는 시점.

Figure 3.3 서로 다른 노름에 대해 빨간색 선은 노름이 1인 벡터의 집합을 나타낸다. 왼쪽: Manhattan norm; 오른쪽: Euclidean distance.

Figure 3.3 서로 다른 노름에 대해 빨간색 선은 노름이 1인 벡터의 집합을 나타낸다. 왼쪽: Manhattan norm; 오른쪽: Euclidean distance.

3.1 Norms

기하학적 벡터, 즉 원점에서 시작하는 방향성 선분을 생각할 때, 직관적으로 벡터의 길이는 이 방향성 선분의 "끝"이 원점에서 떨어진 거리이다. 다음에서는 norm의 개념을 사용하여 벡터의 길이에 대한 개념을 논의할 것이다.

정의 3.1 (Norm). 벡터 공간 VV에서의 norm은 다음과 같은 함수이다.

:VRxx\begin{aligned} \|\cdot\|: V & \rightarrow \mathbb{R} \\ x & \mapsto\|\boldsymbol{x}\| \end{aligned}

이 함수는 각 벡터 x\boldsymbol{x}에 그 길이 xR\|\boldsymbol{x}\| \in \mathbb{R}를 할당하며, 모든 λR\lambda \in \mathbb{R}x,yV\boldsymbol{x}, \boldsymbol{y} \in V에 대해 다음이 성립한다:

  • 절대 동차성 (Absolutely homogeneous): λx=λx\|\lambda \boldsymbol{x}\|=|\lambda|\|\boldsymbol{x}\|
  • 삼각 부등식 (Triangle inequality): x+yx+y\|\boldsymbol{x}+\boldsymbol{y}\| \leqslant\|\boldsymbol{x}\|+\|\boldsymbol{y}\|
  • 양의 정부호성 (Positive definite): x0\|\boldsymbol{x}\| \geqslant 0 이고 x=0x=0\|\boldsymbol{x}\|=0 \Longleftrightarrow \boldsymbol{x}=\mathbf{0}

기하학적으로 삼각 부등식은 어떤 삼각형에서든 두 변의 길이의 합이 나머지 한 변의 길이보다 크거나 같아야 함을 나타낸다. 그림 3.2에서 이를 확인할 수 있다. 정의 3.1은 일반적인 벡터 공간 VV (섹션 2.4)에 대한 것이지만, 이 책에서는 유한 차원 벡터 공간 Rn\mathbb{R}^{n}만 고려할 것이다. 벡터 xRn\boldsymbol{x} \in \mathbb{R}^{n}의 원소는 아래 첨자를 사용하여 나타내며, 즉 xix_{i}는 벡터 x\boldsymbol{x}ii번째 원소이다.

Example 3.1 (Manhattan Norm)

Rn\mathbb{R}^{n} 상의 Manhattan normxRn\boldsymbol{x} \in \mathbb{R}^{n}에 대해 다음과 같이 정의된다.

x1:=i=1nxi\|\boldsymbol{x}\|_{1}:=\sum_{i=1}^{n}\left|x_{i}\right|

여기서 |\cdot|는 절댓값이다. Figure 3.3의 왼쪽 패널은 x1=1\|\boldsymbol{x}\|_{1}=1R2\mathbb{R}^{2}의 모든 벡터 x\boldsymbol{x}를 보여준다. Manhattan norm1\ell_{1} norm이라고도 불린다.

Figure 3.2 Triangle inequality.

Manhattan norm 1\ell_{1} norm norm.

Example 3.2 (Euclidean Norm)

xRn\boldsymbol{x} \in \mathbb{R}^{n}의 **유클리드 노름(Euclidean norm)**은 다음과 같이 정의된다.

x2:=i=1nxi2=xx\|\boldsymbol{x}\|_{2}:=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}=\sqrt{\boldsymbol{x}^{\top} \boldsymbol{x}}

이는 원점으로부터 x\boldsymbol{x}까지의 유클리드 거리를 계산한다. Figure 3.3의 오른쪽 패널은 x2=1\|\boldsymbol{x}\|_{2}=1인 모든 벡터 xR2\boldsymbol{x} \in \mathbb{R}^{2}를 보여준다. 유클리드 노름은 2\ell_{2} norm이라고도 불린다.

참고. 이 책 전체에서 별도로 명시되지 않는 한, 기본적으로 유클리드 노름(3.4)을 사용할 것이다.

3.2 Inner Products

내적은 벡터의 길이, 두 벡터 사이의 각도 또는 거리와 같은 직관적인 기하학적 개념을 도입할 수 있게 한다. 내적의 주요 목적은 벡터들이 서로 직교하는지 여부를 결정하는 것이다.

3.2.1 Dot Product

우리는 이미 Rn\mathbb{R}^{n} 공간에서의 특정 내적 유형인 스칼라 곱(scalar product) 또는 **점곱(dot product)**에 익숙할 수 있으며, 이는 다음과 같이 주어진다:

xy=i=1nxiyi.\boldsymbol{x}^{\top} \boldsymbol{y}=\sum_{i=1}^{n} x_{i} y_{i} .

이 책에서는 이 특정 내적을 **점곱(dot product)**이라고 부를 것이다. 그러나 내적은 특정 속성을 가진 더 일반적인 개념이며, 이제 이를 소개할 것이다.

3.2.2 General Inner Products

2.7절의 선형 매핑을 상기해 보면, 덧셈과 스칼라 곱셈에 대해 매핑을 재배열할 수 있다. Bilinear mapping Ω\Omega는 두 개의 인수를 가지며 각 인수에 대해 선형이다. 즉, 벡터 공간 VV를 고려할 때 모든 x,y,zV,λ,ψR\boldsymbol{x}, \boldsymbol{y}, \boldsymbol{z} \in V, \lambda, \psi \in \mathbb{R}에 대해 다음이 성립한다.

Ω(λx+ψy,z)=λΩ(x,z)+ψΩ(y,z)Ω(x,λy+ψz)=λΩ(x,y)+ψΩ(x,z).\begin{aligned} & \Omega(\lambda \boldsymbol{x}+\psi \boldsymbol{y}, \boldsymbol{z})=\lambda \Omega(\boldsymbol{x}, \boldsymbol{z})+\psi \Omega(\boldsymbol{y}, \boldsymbol{z}) \\ & \Omega(\boldsymbol{x}, \lambda \boldsymbol{y}+\psi \boldsymbol{z})=\lambda \Omega(\boldsymbol{x}, \boldsymbol{y})+\psi \Omega(\boldsymbol{x}, \boldsymbol{z}) . \end{aligned}

여기서 (3.6)은 Ω\Omega가 첫 번째 인수에 대해 선형임을 나타내고, (3.7)은 Ω\Omega가 두 번째 인수에 대해 선형임을 나타낸다 (2.87 참조).

"Mathematics for Machine Learning" 초안 (2021-07-29). 피드백: https://mml-book.com.

정의 3.2. VV를 벡터 공간이라 하고, Ω:V×VR\Omega: V \times V \rightarrow \mathbb{R}를 두 벡터를 받아 실수로 매핑하는 bilinear mapping이라고 하자. 이때

  • Ω\Omega는 모든 x,yV\boldsymbol{x}, \boldsymbol{y} \in V에 대해 Ω(x,y)=Ω(y,x)\Omega(\boldsymbol{x}, \boldsymbol{y})=\Omega(\boldsymbol{y}, \boldsymbol{x})가 성립할 때 **대칭(symmetric)**이라고 한다. 즉, 인수의 순서가 중요하지 않다.
  • Ω\Omega는 다음이 성립할 때 **양의 정부호(positive definite)**라고 한다.
xV\{0}:Ω(x,x)>0,Ω(0,0)=0.\forall \boldsymbol{x} \in V \backslash\{\mathbf{0}\}: \Omega(\boldsymbol{x}, \boldsymbol{x})>0, \quad \Omega(\mathbf{0}, \mathbf{0})=0 .

정의 3.3. VV를 벡터 공간이라 하고, Ω:V×VR\Omega: V \times V \rightarrow \mathbb{R}를 두 벡터를 받아 실수로 매핑하는 bilinear mapping이라고 하자. 이때

  • 양의 정부호(positive definite)이고 대칭(symmetric)인 bilinear mapping Ω:V×VR\Omega: V \times V \rightarrow \mathbb{R}VV상의 **내적(inner product)**이라고 한다. 일반적으로 Ω(x,y)\Omega(\boldsymbol{x}, \boldsymbol{y}) 대신 x,y\langle\boldsymbol{x}, \boldsymbol{y}\rangle로 표기한다.
  • (V,,)(V,\langle\cdot, \cdot\rangle)내적 공간(inner product space) 또는 (실수) 내적 벡터 공간(real vector space with inner product)이라고 한다. (3.5)에 정의된 dot product를 사용하는 경우, (V,,)(V,\langle\cdot, \cdot\rangle)를 **유클리드 벡터 공간(Euclidean vector space)**이라고 한다.

이 책에서는 이러한 공간을 내적 공간이라고 부를 것이다.

Example 3.3 (Inner Product That Is Not the Dot Product)

V=R2V=\mathbb{R}^{2}라고 가정하자. 만약 우리가 다음과 같이 정의한다면

x,y:=x1y1(x1y2+x2y1)+2x2y2\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=x_{1} y_{1}-\left(x_{1} y_{2}+x_{2} y_{1}\right)+2 x_{2} y_{2}

,\langle\cdot, \cdot\rangle는 **내적(inner product)**이지만 **점곱(dot product)**과는 다르다. 증명은 연습 문제로 남겨둔다.

3.2.3 Symmetric, Positive Definite Matrices

대칭, 양의 정부호 행렬(symmetric, positive definite matrices)은 머신러닝에서 중요한 역할을 하며, 내적(inner product)을 통해 정의된다. 4.3절에서는 행렬 분해(matrix decompositions)의 맥락에서 대칭, 양의 정부호 행렬에 대해 다시 다룰 것이다. 대칭, 양의 준정부호 행렬(symmetric positive semidefinite matrices)의 개념은 커널(kernels)의 정의(12.4절)에서 핵심적이다.

내적 ,:V×VR\langle\cdot, \cdot\rangle : V \times V \rightarrow \mathbb{R} (정의 3.3 참조)을 갖는 nn차원 벡터 공간 VVVV의 정렬 기저(ordered basis) B=(b1,,bn)B=\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right)를 고려해보자. 2.6.1절에서 언급했듯이, 임의의 벡터 x,yV\boldsymbol{x}, \boldsymbol{y} \in V는 기저 벡터의 선형 결합으로 x=i=1nψibiV\boldsymbol{x}=\sum_{i=1}^{n} \psi_{i} \boldsymbol{b}_{i} \in Vy=j=1nλjbjV\boldsymbol{y}=\sum_{j=1}^{n} \lambda_{j} \boldsymbol{b}_{j} \in V와 같이 쓸 수 있다(적절한 ψi,λjR\psi_{i}, \lambda_{j} \in \mathbb{R}에 대해). 내적의 쌍선형성(bilinearity)으로 인해 모든 x,yV\boldsymbol{x}, \boldsymbol{y} \in V에 대해 다음이 성립한다.

x,y=i=1nψibi,j=1nλjbj=i=1nj=1nψibi,bjλj=x^Ay^,\langle\boldsymbol{x}, \boldsymbol{y}\rangle=\left\langle\sum_{i=1}^{n} \psi_{i} \boldsymbol{b}_{i}, \sum_{j=1}^{n} \lambda_{j} \boldsymbol{b}_{j}\right\rangle=\sum_{i=1}^{n} \sum_{j=1}^{n} \psi_{i}\left\langle\boldsymbol{b}_{i}, \boldsymbol{b}_{j}\right\rangle \lambda_{j}=\hat{\boldsymbol{x}}^{\top} \boldsymbol{A} \hat{\boldsymbol{y}},

여기서 Aij:=bi,bjA_{i j}:=\left\langle\boldsymbol{b}_{i}, \boldsymbol{b}_{j}\right\rangle이고 x^,y^\hat{\boldsymbol{x}}, \hat{\boldsymbol{y}}는 기저 BB에 대한 x\boldsymbol{x}y\boldsymbol{y}의 좌표이다. 이는 내적 ,\langle\cdot, \cdot\rangleA\boldsymbol{A}를 통해 고유하게 결정됨을 의미한다. 내적의 대칭성(symmetry)은 A\boldsymbol{A}가 대칭임을 의미한다. 또한, 내적의 양의 정부호성(positive definiteness)은 다음을 의미한다.

xV\{0}:xAx>0.\forall \boldsymbol{x} \in V \backslash\{\mathbf{0}\}: \boldsymbol{x}^{\top} \boldsymbol{A} \boldsymbol{x}>0 .

정의 3.4 (대칭, 양의 정부호 행렬). (3.11)을 만족하는 대칭 행렬 ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}대칭, 양의 정부호(symmetric, positive definite) 또는 단순히 **양의 정부호(positive definite)**라고 한다. 만약 (3.11)에서 \geqslant만 성립한다면, A\boldsymbol{A}를 **대칭, 양의 준정부호(symmetric, positive semidefinite)**라고 한다.

Example 3.4 (Symmetric, Positive Definite Matrices)

다음 행렬을 고려해 보자.

A1=[9665],A2=[9663].\boldsymbol{A}_{1}=\left[\begin{array}{ll} 9 & 6 \\ 6 & 5 \end{array}\right], \quad \boldsymbol{A}_{2}=\left[\begin{array}{ll} 9 & 6 \\ 6 & 3 \end{array}\right] .

A1\boldsymbol{A}_{1}은 대칭 행렬이고, 모든 xV\{0}\boldsymbol{x} \in V \backslash\{\mathbf{0}\}에 대해

xA1x=[x1x2][9665][x1x2]=9x12+12x1x2+5x22=(3x1+2x2)2+x22>0\begin{aligned} \boldsymbol{x}^{\top} \boldsymbol{A}_{1} \boldsymbol{x} & =\left[\begin{array}{ll} x_{1} & x_{2} \end{array}\right]\left[\begin{array}{ll} 9 & 6 \\ 6 & 5 \end{array}\right]\left[\begin{array}{l} x_{1} \\ x_{2} \end{array}\right] \\ & =9 x_{1}^{2}+12 x_{1} x_{2}+5 x_{2}^{2}=\left(3 x_{1}+2 x_{2}\right)^{2}+x_{2}^{2}>0 \end{aligned}

이므로 **양의 정부호(positive definite)**이다. 반대로 A2\boldsymbol{A}_{2}는 대칭 행렬이지만 양의 정부호가 아니다. 예를 들어 x=[2,3]\boldsymbol{x}=[2,-3]^{\top}일 때 xA2x=9x12+12x1x2+3x22=(3x1+2x2)2x22\boldsymbol{x}^{\top} \boldsymbol{A}_{2} \boldsymbol{x}=9 x_{1}^{2}+12 x_{1} x_{2}+3 x_{2}^{2}=\left(3 x_{1}+2 x_{2}\right)^{2}-x_{2}^{2}는 0보다 작을 수 있기 때문이다.

ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}가 대칭이고 양의 정부호이면,

x,y=x^Ay^\langle\boldsymbol{x}, \boldsymbol{y}\rangle=\hat{\boldsymbol{x}}^{\top} \boldsymbol{A} \hat{\boldsymbol{y}}

는 정렬 기저(ordered basis) BB에 대한 **내적(inner product)**을 정의한다. 여기서 x^\hat{\boldsymbol{x}}y^\hat{\boldsymbol{y}}BB에 대한 x,yV\boldsymbol{x}, \boldsymbol{y} \in V의 좌표 표현(coordinate representations)이다.

정리 3.5. 실수 값을 가지는 유한 차원 벡터 공간 VVVV의 정렬 기저 BB에 대해, ,:V×VR\langle\cdot, \cdot\rangle: V \times V \rightarrow \mathbb{R}가 내적일 필요충분조건은 다음을 만족하는 대칭 양의 정부호 행렬 ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}가 존재하는 것이다.

x,y=x^Ay^\langle\boldsymbol{x}, \boldsymbol{y}\rangle=\hat{\boldsymbol{x}}^{\top} \boldsymbol{A} \hat{\boldsymbol{y}}

ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}가 대칭이고 양의 정부호이면 다음 속성들이 성립한다:

  • x0\boldsymbol{x} \neq \mathbf{0}인 모든 x\boldsymbol{x}에 대해 xAx>0\boldsymbol{x}^{\top} \boldsymbol{A} \boldsymbol{x}>0이므로, A\boldsymbol{A}의 **영공간(null space, kernel)**은 0\mathbf{0}만으로 구성된다. 이는 x0\boldsymbol{x} \neq \mathbf{0}이면 Ax0\boldsymbol{A} \boldsymbol{x} \neq \mathbf{0}임을 의미한다.
  • A\boldsymbol{A}의 대각 원소 aiia_{i i}는 양수이다. 왜냐하면 aii=eiAei>0a_{i i}=\boldsymbol{e}_{i}^{\top} \boldsymbol{A} \boldsymbol{e}_{i}>0이기 때문이다. 여기서 ei\boldsymbol{e}_{i}Rn\mathbb{R}^{n}의 표준 기저(standard basis)의 ii번째 벡터이다.

3.3 Lengths and Distances

섹션 3.1에서 우리는 벡터의 길이를 계산하는 데 사용할 수 있는 norm에 대해 이미 논의했다. **내적(inner product)**과 norm은 모든 내적이 자연스러운 방식으로 norm을 유도한다는 점에서 밀접하게 관련되어 있다.

x:=x,x\|\boldsymbol{x}\|:=\sqrt{\langle\boldsymbol{x}, \boldsymbol{x}\rangle}

이러한 방식으로 내적을 사용하여 벡터의 길이를 계산할 수 있다. 그러나 모든 norm이 내적에 의해 유도되는 것은 아니다. 맨해튼 norm (3.3)은 해당 내적이 없는 norm의 예시이다. 다음에서는 내적에 의해 유도되는 norm에 초점을 맞추고 길이, 거리, 각도와 같은 기하학적 개념을 소개할 것이다. 비고 (코시-슈바르츠 부등식). 내적 벡터 공간 ( V,,V,\langle\cdot, \cdot\rangle )에 대해 유도된 norm \|\cdot\|은 **코시-슈바르츠 부등식(Cauchy-Schwarz inequality)**을 만족한다.

x,yxy.|\langle\boldsymbol{x}, \boldsymbol{y}\rangle| \leqslant\|\boldsymbol{x}\|\|\boldsymbol{y}\| .

Example 3.5 (Lengths of Vectors Using Inner Products)

기하학에서 우리는 종종 벡터의 길이에 관심을 갖는다. 이제 내적을 사용하여 (3.16)을 통해 길이를 계산할 수 있다. x=[1,1]R2\boldsymbol{x}=[1,1]^{\top} \in \mathbb{R}^{2}라고 가정하자. 내적으로 dot product를 사용하면 (3.16)에 따라 x\boldsymbol{x}의 길이는 다음과 같이 얻어진다.

x=xx=12+12=2\|\boldsymbol{x}\|=\sqrt{\boldsymbol{x}^{\top} \boldsymbol{x}}=\sqrt{1^{2}+1^{2}}=\sqrt{2}

이제 다른 내적을 선택해 보자.

x,y:=x[112121]y=x1y112(x1y2+x2y1)+x2y2.\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=\boldsymbol{x}^{\top}\left[\begin{array}{cc} 1 & -\frac{1}{2} \\ -\frac{1}{2} & 1 \end{array}\right] \boldsymbol{y}=x_{1} y_{1}-\frac{1}{2}\left(x_{1} y_{2}+x_{2} y_{1}\right)+x_{2} y_{2} .

벡터의 norm을 계산할 때, 이 내적은 x1x_{1}x2x_{2}가 같은 부호(그리고 x1x2>x_{1} x_{2}> 0)를 가질 경우 dot product보다 작은 값을 반환한다. 그렇지 않은 경우에는 dot product보다 큰 값을 반환한다. 이 내적을 사용하면 다음과 같이 얻어진다.

x,x=x12x1x2+x22=11+1=1x=1=1,\langle\boldsymbol{x}, \boldsymbol{x}\rangle=x_{1}^{2}-x_{1} x_{2}+x_{2}^{2}=1-1+1=1 \Longrightarrow\|\boldsymbol{x}\|=\sqrt{1}=1,

따라서 x\boldsymbol{x}는 dot product를 사용할 때보다 이 내적을 사용할 때 "더 짧다".

정의 3.6 (거리와 Metric). 내적 공간 (V,,)(V,\langle\cdot, \cdot\rangle)을 고려하자. 이때

d(x,y):=xy=xy,xyd(\boldsymbol{x}, \boldsymbol{y}):=\|\boldsymbol{x}-\boldsymbol{y}\|=\sqrt{\langle\boldsymbol{x}-\boldsymbol{y}, \boldsymbol{x}-\boldsymbol{y}\rangle}

x,yV\boldsymbol{x}, \boldsymbol{y} \in V에 대한 x\boldsymbol{x}y\boldsymbol{y} 사이의 **거리(distance)**라고 불린다. 내적으로 dot product를 사용하면 이 거리를 **유클리드 거리(Euclidean distance)**라고 한다.

내적은 norm을 유도한다.

코시-슈바르츠 부등식(Cauchy-Schwarz inequality) 거리(distance) 유클리드 거리(Euclidean distance)

매핑

d:V×VR(x,y)d(x,y)\begin{aligned} d: V \times V & \rightarrow \mathbb{R} \\ (\boldsymbol{x}, \boldsymbol{y}) & \mapsto d(\boldsymbol{x}, \boldsymbol{y}) \end{aligned}

metric

positive definite, symmetric, triangle inequality를 만족하는 함수 ddmetric이라고 한다.

Remark. 벡터의 길이와 유사하게, 벡터 간의 거리는 내적을 필요로 하지 않으며, norm만으로도 충분하다. 내적에 의해 유도된 norm이 있는 경우, 거리는 내적의 선택에 따라 달라질 수 있다.

metric dd는 다음을 만족한다:

  1. ddpositive definite이다. 즉, 모든 x,yV\boldsymbol{x}, \boldsymbol{y} \in V에 대해 d(x,y)0d(\boldsymbol{x}, \boldsymbol{y}) \geqslant 0이고, d(x,y)=0x=yd(\boldsymbol{x}, \boldsymbol{y})= 0 \Longleftrightarrow \boldsymbol{x}=\boldsymbol{y}이다.
  2. ddsymmetric이다. 즉, 모든 x,yV\boldsymbol{x}, \boldsymbol{y} \in V에 대해 d(x,y)=d(y,x)d(\boldsymbol{x}, \boldsymbol{y})=d(\boldsymbol{y}, \boldsymbol{x})이다.
  3. Triangle inequality: 모든 x,y,zV\boldsymbol{x}, \boldsymbol{y}, \boldsymbol{z} \in V에 대해 d(x,z)d(x,y)+d(y,z)d(\boldsymbol{x}, \boldsymbol{z}) \leqslant d(\boldsymbol{x}, \boldsymbol{y})+d(\boldsymbol{y}, \boldsymbol{z})이다.

Remark. 언뜻 보기에 내적과 metric의 속성 목록은 매우 유사해 보인다. 그러나 Definition 3.3과 Definition 3.6을 비교해보면 x,y\langle\boldsymbol{x}, \boldsymbol{y}\rangled(x,y)d(\boldsymbol{x}, \boldsymbol{y})가 반대 방향으로 작동한다는 것을 알 수 있다. 매우 유사한 x\boldsymbol{x}y\boldsymbol{y}는 내적에 대해서는 큰 값을, metric에 대해서는 작은 값을 초래할 것이다.

3.4 Angles and Orthogonality

Figure 3.4 [0,π][0, \pi]로 제한될 때 f(ω)=cos(ω)f(\omega)=\cos (\omega)는 구간 [1,1][-1,1]에서 고유한 숫자를 반환한다.

각도 (angle)

**내적(inner product)**은 벡터의 길이를 정의하고 두 벡터 사이의 거리를 정의하는 것 외에도, 두 벡터 사이의 각도 ω\omega를 정의함으로써 벡터 공간의 기하학적 구조를 포착한다. 우리는 코시-슈바르츠 부등식(Cauchy-Schwarz inequality) (3.17)을 사용하여 내적 공간에서 두 벡터 x,y\boldsymbol{x}, \boldsymbol{y} 사이의 각도 ω\omega를 정의하며, 이 개념은 R2\mathbb{R}^{2}R3\mathbb{R}^{3}에서의 직관과 일치한다. x0,y0\boldsymbol{x} \neq \mathbf{0}, \boldsymbol{y} \neq \mathbf{0}이라고 가정하자. 그러면

1x,yxy1.-1 \leqslant \frac{\langle\boldsymbol{x}, \boldsymbol{y}\rangle}{\|\boldsymbol{x}\|\|\boldsymbol{y}\|} \leqslant 1 .

따라서 Figure 3.4에 나타낸 바와 같이 다음을 만족하는 고유한 ω[0,π]\omega \in[0, \pi]가 존재한다.

cosω=x,yxy.\cos \omega=\frac{\langle\boldsymbol{x}, \boldsymbol{y}\rangle}{\|\boldsymbol{x}\|\|\boldsymbol{y}\|} .

숫자 ω\omega는 벡터 x\boldsymbol{x}y\boldsymbol{y} 사이의 각도이다. 직관적으로, 두 벡터 사이의 각도는 그들의 방향이 얼마나 유사한지를 알려준다. 예를 들어, **점곱(dot product)**을 사용하면 x\boldsymbol{x}y=4x\boldsymbol{y}=4 \boldsymbol{x} (즉, y\boldsymbol{y}x\boldsymbol{x}의 스케일링된 버전) 사이의 각도는 0이다. 이는 그들의 방향이 같다는 것을 의미한다.

Example 3.6 (Angle between Vectors)

x=[1,1]R2\boldsymbol{x}=[1,1]^{\top} \in \mathbb{R}^{2}y=[1,2]R2\boldsymbol{y}=[1,2]^{\top} \in \mathbb{R}^{2} 사이의 각도를 계산해 보자. Figure 3.5에서 내적으로 dot product를 사용한다. 그러면 다음을 얻는다.

cosω=x,yx,xy,y=xyxxyy=310,\cos \omega=\frac{\langle\boldsymbol{x}, \boldsymbol{y}\rangle}{\sqrt{\langle\boldsymbol{x}, \boldsymbol{x}\rangle\langle\boldsymbol{y}, \boldsymbol{y}\rangle}}=\frac{\boldsymbol{x}^{\top} \boldsymbol{y}}{\sqrt{\boldsymbol{x}^{\top} \boldsymbol{x} \boldsymbol{y}^{\top} \boldsymbol{y}}}=\frac{3}{\sqrt{10}},

두 벡터 사이의 각도는 arccos(310)0.32\arccos \left(\frac{3}{\sqrt{10}}\right) \approx 0.32 rad이며, 이는 약 1818^{\circ}에 해당한다.

내적의 주요 특징은 직교하는 벡터를 특성화할 수 있다는 점이다.

정의 3.7 (Orthogonality). 두 벡터 x\boldsymbol{x}y\boldsymbol{y}x,y=0\langle\boldsymbol{x}, \boldsymbol{y}\rangle=0인 경우에만 직교하며, 이를 xy\boldsymbol{x} \perp \boldsymbol{y}로 표기한다. 만약 추가적으로 x=1=y\|\boldsymbol{x}\|=1=\|\boldsymbol{y}\|를 만족한다면, 즉 벡터들이 unit vector라면, x\boldsymbol{x}y\boldsymbol{y}orthonormal이다.

이 정의의 함의는 0\mathbf{0}-vector가 벡터 공간의 모든 벡터에 직교한다는 것이다. 비고. Orthogonality는 dot product일 필요가 없는 bilinear form에 대한 수직(perpendicularity) 개념의 일반화이다. 우리의 맥락에서 기하학적으로, 직교 벡터는 특정 내적에 대해 직각을 이룬다고 생각할 수 있다.

Example 3.7 (Orthogonal Vectors)

그림 3.6 두 벡터 x,y\boldsymbol{x}, \boldsymbol{y} 사이의 각도 ω\omega는 내적에 따라 달라질 수 있다.

두 벡터 x=[1,1],y=[1,1]R2\boldsymbol{x}=[1,1]^{\top}, \boldsymbol{y}=[-1,1]^{\top} \in \mathbb{R}^{2}를 고려해 보자(그림 3.6 참조). 우리는 두 가지 다른 내적을 사용하여 이들 사이의 각도 ω\omega를 결정하는 데 관심이 있다. dot product를 내적으로 사용하면 x\boldsymbol{x}y\boldsymbol{y} 사이의 각도 ω\omega9090^{\circ}가 되어 xy\boldsymbol{x} \perp \boldsymbol{y}가 된다. 그러나 다음과 같은 내적을 선택하면

x,y=x[2001]y,\langle\boldsymbol{x}, \boldsymbol{y}\rangle=\boldsymbol{x}^{\top}\left[\begin{array}{ll} 2 & 0 \\ 0 & 1 \end{array}\right] \boldsymbol{y},

그림 3.5 두 벡터 x,y\boldsymbol{x}, \boldsymbol{y} 사이의 각도 ω\omega는 내적을 사용하여 계산된다. orthogonal orthonormal orthogonal matrix

이러한 행렬을 "orthogonal"이라고 부르는 것이 관례이지만, 더 정확한 설명은 "orthonormal"일 것이다. orthogonal matrix를 사용한 변환은 거리와 각도를 보존한다. x\boldsymbol{x}y\boldsymbol{y} 사이의 각도 ω\omega는 다음과 같이 주어진다.

cosω=x,yxy=13ω1.91rad109.5,\cos \omega=\frac{\langle\boldsymbol{x}, \boldsymbol{y}\rangle}{\|\boldsymbol{x}\|\|\boldsymbol{y}\|}=-\frac{1}{3} \Longrightarrow \omega \approx 1.91 \mathrm{rad} \approx 109.5^{\circ},

이 경우 x\boldsymbol{x}y\boldsymbol{y}orthogonal하지 않다. 따라서 한 내적에 대해 orthogonal한 벡터가 다른 내적에 대해서는 orthogonal하지 않을 수 있다.

정의 3.8 (Orthogonal Matrix). 정방 행렬 ARn×n\boldsymbol{A} \in \mathbb{R}^{n \times n}는 그 열들이 orthonormal일 때만 orthogonal matrix이다. 즉,

AA=I=AA,\boldsymbol{A} \boldsymbol{A}^{\top}=\boldsymbol{I}=\boldsymbol{A}^{\top} \boldsymbol{A},

이는 다음을 의미한다.

A1=A,\boldsymbol{A}^{-1}=\boldsymbol{A}^{\top},

즉, 역행렬은 단순히 행렬을 전치함으로써 얻어진다. orthogonal matrix에 의한 변환은 특별하다. 왜냐하면 orthogonal matrix A\boldsymbol{A}를 사용하여 벡터 x\boldsymbol{x}를 변환할 때 벡터의 길이가 변하지 않기 때문이다. dot product의 경우, 우리는 다음을 얻는다.

Ax2=(Ax)(Ax)=xAAx=xIx=xx=x2.\|\boldsymbol{A} \boldsymbol{x}\|^{2}=(\boldsymbol{A} \boldsymbol{x})^{\top}(\boldsymbol{A} \boldsymbol{x})=\boldsymbol{x}^{\top} \boldsymbol{A}^{\top} \boldsymbol{A} \boldsymbol{x}=\boldsymbol{x}^{\top} \boldsymbol{I} \boldsymbol{x}=\boldsymbol{x}^{\top} \boldsymbol{x}=\|\boldsymbol{x}\|^{2} .

더욱이, 두 벡터 x,y\boldsymbol{x}, \boldsymbol{y} 사이의 각도(내적으로 측정됨) 또한 orthogonal matrix A\boldsymbol{A}를 사용하여 둘 다 변환할 때 변하지 않는다. dot product를 내적으로 가정하면, 이미지 Ax\boldsymbol{A} \boldsymbol{x}Ay\boldsymbol{A} \boldsymbol{y}의 각도는 다음과 같이 주어진다.

cosω=(Ax)(Ay)AxAy=xAAyxAAxyAAy=xyxy,\cos \omega=\frac{(\boldsymbol{A} \boldsymbol{x})^{\top}(\boldsymbol{A} \boldsymbol{y})}{\|\boldsymbol{A} \boldsymbol{x}\|\|\boldsymbol{A} \boldsymbol{y}\|}=\frac{\boldsymbol{x}^{\top} \boldsymbol{A}^{\top} \boldsymbol{A} \boldsymbol{y}}{\sqrt{\boldsymbol{x}^{\top} \boldsymbol{A}^{\top} \boldsymbol{A} \boldsymbol{x} \boldsymbol{y}^{\top} \boldsymbol{A}^{\top} \boldsymbol{A} \boldsymbol{y}}}=\frac{\boldsymbol{x}^{\top} \boldsymbol{y}}{\|\boldsymbol{x}\|\|\boldsymbol{y}\|},

이는 x\boldsymbol{x}y\boldsymbol{y} 사이의 각도와 정확히 일치한다. 이는 A=A1\boldsymbol{A}^{\top}=\boldsymbol{A}^{-1}orthogonal matrix A\boldsymbol{A}가 각도와 거리를 모두 보존한다는 것을 의미한다. orthogonal matrix는 회전(뒤집힘의 가능성 포함)인 변환을 정의하는 것으로 밝혀졌다. 섹션 3.9에서 회전에 대한 더 자세한 내용을 논의할 것이다.

3.5 Orthonormal Basis

섹션 2.6.1에서 우리는 **기저 벡터(basis vector)**의 속성을 특징화하고, nn-차원 벡터 공간에서는 nn개의 기저 벡터, 즉 **선형 독립(linearly independent)**인 nn개의 벡터가 필요하다는 것을 확인했다. 섹션 3.3과 3.4에서는 **내적(inner product)**을 사용하여 벡터의 길이와 벡터 사이의 각도를 계산했다. 다음에서는 기저 벡터들이 서로 **직교(orthogonal)**하고 각 기저 벡터의 길이가 1인 특수한 경우를 논의할 것이다. 이러한 기저를 **정규 직교 기저(orthonormal basis)**라고 부를 것이다.

Draft (2021-07-29) of "Mathematics for Machine Learning". Feedback: https://mml-book.com.

이를 좀 더 형식적으로 소개하자. 정의 3.9 (정규 직교 기저). nn-차원 벡터 공간 VVVV의 기저 {b1,,bn}\left\{\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right\}를 고려하자. 만약

bi,bj=0 for ijbi,bi=1\begin{aligned} & \left\langle\boldsymbol{b}_{i}, \boldsymbol{b}_{j}\right\rangle=0 \quad \text { for } i \neq j \\ & \left\langle\boldsymbol{b}_{i}, \boldsymbol{b}_{i}\right\rangle=1 \end{aligned}

모든 i,j=1,,ni, j=1, \ldots, n에 대해 위 식이 성립하면 이 기저를 **정규 직교 기저(orthonormal basis, ONB)**라고 한다. 만약 (3.33)만 만족하면 이 기저를 **직교 기저(orthogonal basis)**라고 한다. (3.34)는 모든 기저 벡터의 길이/노름이 1임을 의미한다.

섹션 2.6.1에서 벡터 집합에 의해 span되는 벡터 공간의 기저를 찾기 위해 **가우스 소거법(Gaussian elimination)**을 사용할 수 있다는 것을 상기하자. 비직교(non-orthogonal) 및 비정규화(unnormalized)된 기저 벡터 집합 {b~1,,b~n}\left\{\tilde{\boldsymbol{b}}_{1}, \ldots, \tilde{\boldsymbol{b}}_{n}\right\}이 주어졌다고 가정하자. 이들을 행렬 B~=[b~1,,b~n]\tilde{\boldsymbol{B}}=\left[\tilde{\boldsymbol{b}}_{1}, \ldots, \tilde{\boldsymbol{b}}_{n}\right]로 연결하고, 증강 행렬(augmented matrix, 섹션 2.3.2) [B~B~B~]\left[\tilde{\boldsymbol{B}} \tilde{\boldsymbol{B}}^{\top} \mid \tilde{\boldsymbol{B}}\right]에 가우스 소거법을 적용하여 정규 직교 기저를 얻을 수 있다. 정규 직교 기저 {b1,,bn}\left\{\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right\}를 반복적으로 구성하는 이 **건설적인 방법(constructive way)**을 **그램-슈미트 과정(Gram-Schmidt process)**이라고 한다 (Strang, 2003).

Example 3.8 (Orthonormal Basis)

유클리드 벡터 공간 Rn\mathbb{R}^{n}canonical/standard basis는 내적이 벡터의 dot product인 orthonormal basis이다.

R2\mathbb{R}^{2}에서 벡터

b1=12[11],b2=12[11]\boldsymbol{b}_{1}=\frac{1}{\sqrt{2}}\left[\begin{array}{l} 1 \\ 1 \end{array}\right], \quad \boldsymbol{b}_{2}=\frac{1}{\sqrt{2}}\left[\begin{array}{c} 1 \\ -1 \end{array}\right]

b1b2=0\boldsymbol{b}_{1}^{\top} \boldsymbol{b}_{2}=0이고 b1=1=b2\left\|\boldsymbol{b}_{1}\right\|=1=\left\|\boldsymbol{b}_{2}\right\|이므로 orthonormal basis를 형성한다.

우리는 Chapter 12와 Chapter 10에서 support vector machineprincipal component analysis를 논의할 때 orthonormal basis의 개념을 활용할 것이다.

3.6 Orthogonal Complement

직교성을 정의했으므로 이제 서로 직교하는 벡터 공간에 대해 살펴보겠다. 이는 10장에서 기하학적 관점에서 선형 차원 축소(linear dimensionality reduction)를 논의할 때 중요한 역할을 할 것이다.

DD차원 벡터 공간 VVMM차원 부분 공간 UVU \subseteq V를 고려해보자. 이때 UU직교 여공간(orthogonal complement) UU^{\perp}VV(DM)(D-M)차원 부분 공간이며, UU의 모든 벡터에 직교하는 VV 내의 모든 벡터를 포함한다. 또한, UU={0}U \cap U^{\perp}=\{\mathbf{0}\}이므로 VV의 모든 벡터 xV\boldsymbol{x} \in V는 다음과 같이 고유하게 분해될 수 있다.

x=m=1Mλmbm+j=1DMψjbj,λm,ψjR,\boldsymbol{x}=\sum_{m=1}^{M} \lambda_{m} \boldsymbol{b}_{m}+\sum_{j=1}^{D-M} \psi_{j} \boldsymbol{b}_{j}^{\perp}, \quad \lambda_{m}, \psi_{j} \in \mathbb{R},

여기서 (b1,,bM)(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{M})UU의 기저이고 (b1,,bDM)(\boldsymbol{b}_{1}^{\perp}, \ldots, \boldsymbol{b}_{D-M}^{\perp})UU^{\perp}의 기저이다.

그림 3.7 3차원 벡터 공간의 평면 UU는 직교 여공간 UU^{\perp}를 생성하는 법선 벡터(normal vector)로 설명될 수 있다.

따라서 직교 여공간은 3차원 벡터 공간에서 평면 UU(2차원 부분 공간)를 설명하는 데 사용될 수도 있다. 더 구체적으로, 평면 UU에 직교하는 w=1\|\boldsymbol{w}\|=1인 벡터 w\boldsymbol{w}UU^{\perp}의 기저 벡터이다. 그림 3.7은 이러한 설정을 보여준다. w\boldsymbol{w}에 직교하는 모든 벡터는 (구성상) 평면 UU에 놓여야 한다. 벡터 w\boldsymbol{w}UU의 **법선 벡터(normal vector)**라고 불린다.

일반적으로 직교 여공간은 nn차원 벡터 공간 및 아핀 공간(affine spaces)에서 **초평면(hyperplanes)**을 설명하는 데 사용될 수 있다.

3.7 Inner Product of Functions

지금까지 우리는 길이, 각도, 거리를 계산하기 위한 **내적(inner product)**의 속성을 살펴보았다. 우리는 유한 차원 벡터의 내적에 초점을 맞추었다. 다음에서는 다른 유형의 벡터, 즉 함수의 내적에 대한 예시를 살펴볼 것이다.

지금까지 논의한 내적은 유한한 수의 항목을 가진 벡터에 대해 정의되었다. 우리는 벡터 xRn\boldsymbol{x} \in \mathbb{R}^{n}nn개의 함수 값을 가진 함수로 생각할 수 있다. 내적의 개념은 무한한 수의 항목(가산 무한)을 가진 벡터와 연속 값 함수(비가산 무한)로 일반화될 수 있다. 그러면 벡터의 개별 구성 요소에 대한 합(예: 식 (3.5) 참조)은 **적분(integral)**으로 바뀐다.

두 함수 u:RRu: \mathbb{R} \rightarrow \mathbb{R}v:RRv: \mathbb{R} \rightarrow \mathbb{R}의 내적은 다음과 같은 **정적분(definite integral)**으로 정의될 수 있다.

u,v:=abu(x)v(x)dx\langle u, v\rangle:=\int_{a}^{b} u(x) v(x) d x

여기서 하한 및 상한은 각각 a,b<a, b<\infty이다. 일반적인 내적과 마찬가지로, 내적을 통해 **노름(norm)**과 **직교성(orthogonality)**을 정의할 수 있다. 만약 (3.37)이 0으로 평가되면, 함수 uuvv는 직교한다. 앞서 언급한 내적을 수학적으로 정확하게 만들기 위해서는 **측도(measure)**와 **적분(integral)**의 정의를 다루어야 하며, 이는 **힐베르트 공간(Hilbert space)**의 정의로 이어진다. 또한, 유한 차원 벡터의 내적과 달리, 함수의 내적은 발산할 수 있다(무한한 값을 가질 수 있다). 이 모든 것은 **실해석학(real analysis)**과 **함수해석학(functional analysis)**의 더 복잡한 세부 사항을 다루어야 하지만, 이 책에서는 다루지 않는다.

Example 3.9 (Inner Product of Functions)

만약 u=sin(x)u=\sin (x)v=cos(x)v=\cos (x)를 선택하면, (3.37)의 적분 대상 함수 f(x)=u(x)v(x)f(x)=u(x) v(x)는 그림 3.8에 나타나 있다. 이 함수가 기함수(odd function), 즉 f(x)=f(x)f(-x)=-f(x)임을 알 수 있다. 따라서 a=π,b=πa=-\pi, b=\pi 범위에서 이 곱의 적분 값은 0이 된다. 그러므로 sin\sincos\cos은 **직교 함수(orthogonal functions)**이다.

참고. 다음 함수들의 집합도 성립한다.

{1,cos(x),cos(2x),cos(3x),}\{1, \cos (x), \cos (2 x), \cos (3 x), \ldots\}

이 함수들은 π-\pi부터 π\pi까지 적분할 경우 **직교(orthogonal)**한다. 즉, 어떤 두 함수를 선택하더라도 서로 직교한다. (3.38)의 함수 집합은 [π,π)[-\pi, \pi)에서 **짝수(even)**이고 **주기적(periodic)**인 함수들의 큰 부분 공간을 형성하며, 함수를 이 부분 공간에 **투영(projecting)**하는 것이 **푸리에 급수(Fourier series)**의 근본적인 아이디어이다.

섹션 6.4.6에서는 두 번째 유형의 비전통적인 내적, 즉 **확률 변수의 내적(inner product of random variables)**에 대해 살펴볼 것이다.

3.8 Orthogonal Projections

Projection은 (회전 및 반사와 더불어) 선형 변환의 중요한 한 종류이며, 그래픽스, 코딩 이론, 통계 및 머신러닝에서 중요한 역할을 한다. 머신러닝에서 우리는 종종 고차원 데이터를 다룬다. 고차원 데이터는 분석하거나 시각화하기 어려운 경우가 많다. 그러나 고차원 데이터는 종종 소수의 차원만이 대부분의 정보를 포함하고, 다른 대부분의 차원은 데이터의 핵심 속성을 설명하는 데 필수적이지 않은 특성을 갖는다. 고차원 데이터를 압축하거나 시각화할 때 정보 손실이 발생한다. 이러한 압축 손실을 최소화하기 위해 우리는 데이터에서 가장 유익한 차원을 이상적으로 찾아낸다. 1장에서 논의했듯이, 데이터는 벡터로 표현될 수 있으며, 이 장에서는 데이터 압축을 위한 몇 가지 기본적인 도구를 논의할 것이다. 더 구체적으로, 우리는

그림 3.8 f(x)=sin(x)cos(x)f(x)= \sin (x) \cos (x).

"Feature"는 데이터 표현에 대한 일반적인 표현이다. feature space에서 작업하고 이 저차원 공간에서 데이터셋에 대해 더 많이 학습하고 관련 패턴을 추출한다. 예를 들어, principal component analysis (PCA) (Pearson (1901) 및 Hotelling (1933))와 deep neural networks (예: deep auto-encoders (Deng et al., 2010))와 같은 머신러닝 알고리즘은 dimensionality reduction의 아이디어를 적극적으로 활용한다. 다음에서는 orthogonal projection에 초점을 맞출 것이며, 이는 10장에서 선형 dimensionality reduction에, 12장에서 분류에 사용될 것이다. 9장에서 논의할 선형 회귀조차도 orthogonal projection을 사용하여 해석될 수 있다. 주어진 저차원 subspace에 대해 고차원 데이터의 orthogonal projection은 가능한 한 많은 정보를 유지하고 원본 데이터와 해당 projection 간의 차이/오차를 최소화한다. 이러한 orthogonal projection의 예시는 그림 3.9에 나와 있다. 이러한 projection을 얻는 방법을 자세히 설명하기 전에, projection이 실제로 무엇인지 정의해 보자.

그림 3.9 2차원 데이터셋(파란색 점)을 1차원 subspace(직선)에 orthogonal projection(주황색 점)한 모습.

정의 3.10 (Projection). VV를 벡터 공간이라 하고 UVU \subseteq VVVsubspace라 하자. 선형 매핑 π:VU\pi: V \rightarrow Uπ2=ππ=π\pi^{2}=\pi \circ \pi=\pi이면 projection이라고 한다.

선형 매핑은 변환 행렬로 표현될 수 있으므로 (2.7절 참조), 앞선 정의는 특수한 종류의 변환 행렬인 projection matrix Pπ\boldsymbol{P}_{\pi}에도 동일하게 적용되며, 이는 Pπ2=Pπ\boldsymbol{P}_{\pi}^{2}=\boldsymbol{P}_{\pi} 속성을 나타낸다.

다음에서는 inner product space (Rn,,\mathbb{R}^{n},\langle\cdot, \cdot\rangle)에서 subspace로의 벡터의 orthogonal projection을 유도할 것이다. 1차원 subspace부터 시작할 것이며, 이는 line이라고도 불린다. 별도로 언급하지 않는 한, 우리는 dot product x,y=xy\langle\boldsymbol{x}, \boldsymbol{y}\rangle=\boldsymbol{x}^{\top} \boldsymbol{y}inner product로 가정한다.

3.8.1 Projection onto One-Dimensional Subspaces (Lines)

원점을 지나는 기저 벡터 bRn\boldsymbol{b} \in \mathbb{R}^{n}를 갖는 선(1차원 부분 공간)이 주어졌다고 가정해 보자. 이 선은 b\boldsymbol{b}에 의해 span되는 1차원 부분 공간 URnU \subseteq \mathbb{R}^{n}이다. xRn\boldsymbol{x} \in \mathbb{R}^{n}UUproject할 때, 우리는 x\boldsymbol{x}에 가장 가까운 벡터 πU(x)U\pi_{U}(\boldsymbol{x}) \in U를 찾는다. 기하학적 논증을 사용하여, projection πU(x)\pi_{U}(\boldsymbol{x})의 몇 가지 속성을 특징화해 보자 (그림 3.10(a)는 설명을 위한 예시이다):

3.8 Orthogonal Projections

(a) 기저 벡터 b\boldsymbol{b}를 갖는 부분 공간 UU에 대한 xR2\boldsymbol{x} \in \mathbb{R}^{2}projection.

(b) x=1\|\boldsymbol{x}\|=1인 2차원 벡터 x\boldsymbol{x}b\boldsymbol{b}에 의해 span되는 1차원 부분 공간에 project한 것.

Figure 3.10 1차원 부분 공간에 대한 projection의 예시.

  • Projection πU(x)\pi_{U}(\boldsymbol{x})x\boldsymbol{x}에 가장 가깝다. 여기서 "가장 가깝다"는 거리 xπU(x)\left\|\boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right\|가 최소임을 의미한다. 따라서 πU(x)\pi_{U}(\boldsymbol{x})에서 x\boldsymbol{x}까지의 선분 πU(x)x\pi_{U}(\boldsymbol{x})-\boldsymbol{x}UUorthogonal하며, 결과적으로 UU의 기저 벡터 b\boldsymbol{b}에도 orthogonal하다. Orthogonality condition은 벡터 간의 각도가 inner product를 통해 정의되므로 πU(x)x,b=0\left\langle\pi_{U}(\boldsymbol{x})-\boldsymbol{x}, \boldsymbol{b}\right\rangle=0을 만족한다.
  • x\boldsymbol{x}UU에 대한 projection πU(x)\pi_{U}(\boldsymbol{x})UU의 원소여야 하며, 따라서 UU를 span하는 기저 벡터 b\boldsymbol{b}의 배수여야 한다. 그러므로 πU(x)=λb\pi_{U}(\boldsymbol{x})=\lambda \boldsymbol{b}이다 (여기서 λR\lambda \in \mathbb{R}).

다음 세 단계에서 우리는 좌표 λ\lambda, UU에 속하는 projection πU(x)\pi_{U}(\boldsymbol{x}), 그리고 임의의 xRn\boldsymbol{x} \in \mathbb{R}^{n}UUmapping하는 projection matrix Pπ\boldsymbol{P}_{\pi}를 결정한다:

  1. 좌표 λ\lambda 찾기. Orthogonality condition은 다음을 만족한다:

    xπU(x),b=0πU(x)=λbxλb,b=0.\left\langle\boldsymbol{x}-\pi_{U}(\boldsymbol{x}), \boldsymbol{b}\right\rangle=0 \stackrel{\pi_{U}(\boldsymbol{x})=\lambda \boldsymbol{b}}{\Longleftrightarrow}\langle\boldsymbol{x}-\lambda \boldsymbol{b}, \boldsymbol{b}\rangle=0 .

    이제 inner productbilinearity를 활용하여 다음을 얻을 수 있다:

    x,bλb,b=0λ=x,bb,b=b,xb2.\langle\boldsymbol{x}, \boldsymbol{b}\rangle-\lambda\langle\boldsymbol{b}, \boldsymbol{b}\rangle=0 \Longleftrightarrow \lambda=\frac{\langle\boldsymbol{x}, \boldsymbol{b}\rangle}{\langle\boldsymbol{b}, \boldsymbol{b}\rangle}=\frac{\langle\boldsymbol{b}, \boldsymbol{x}\rangle}{\|\boldsymbol{b}\|^{2}} .

    마지막 단계에서는 inner productsymmetric하다는 사실을 활용했다. 만약 ,\langle\cdot, \cdot\rangledot product로 선택하면 다음을 얻는다:

    λ=bxbb=bxb2.\lambda=\frac{\boldsymbol{b}^{\top} \boldsymbol{x}}{\boldsymbol{b}^{\top} \boldsymbol{b}}=\frac{\boldsymbol{b}^{\top} \boldsymbol{x}}{\|\boldsymbol{b}\|^{2}} .

    만약 b=1\|\boldsymbol{b}\|=1이면, projection의 좌표 λ\lambdabx\boldsymbol{b}^{\top} \boldsymbol{x}로 주어진다.

    λ\lambdab\boldsymbol{b}에 대한 πU(x)\pi_{U}(\boldsymbol{x})의 좌표이다.

    일반적인 inner product를 사용하면 b=1\|\boldsymbol{b}\|=1일 때 λ=x,b\lambda=\langle\boldsymbol{x}, \boldsymbol{b}\rangle를 얻는다.

  2. Projection point πU(x)U\pi_{U}(\boldsymbol{x}) \in U 찾기. πU(x)=λb\pi_{U}(\boldsymbol{x})=\lambda \boldsymbol{b}이므로, (3.40)을 통해 즉시 다음을 얻는다:

    πU(x)=λb=x,bb2b=bxb2b,\pi_{U}(\boldsymbol{x})=\lambda \boldsymbol{b}=\frac{\langle\boldsymbol{x}, \boldsymbol{b}\rangle}{\|\boldsymbol{b}\|^{2}} \boldsymbol{b}=\frac{\boldsymbol{b}^{\top} \boldsymbol{x}}{\|\boldsymbol{b}\|^{2}} \boldsymbol{b},

    여기서 마지막 등식은 dot product에만 해당한다. 또한 정의 3.1을 통해 πU(x)\pi_{U}(\boldsymbol{x})의 길이를 다음과 같이 계산할 수 있다:

    πU(x)=λb=λb.\left\|\pi_{U}(\boldsymbol{x})\right\|=\|\lambda \boldsymbol{b}\|=|\lambda|\|\boldsymbol{b}\| .

    따라서 우리의 projectionb\boldsymbol{b} 길이의 λ|\lambda|배 길이를 갖는다. 이는 λ\lambda가 1차원 부분 공간 UU를 span하는 기저 벡터 b\boldsymbol{b}에 대한 πU(x)\pi_{U}(\boldsymbol{x})의 좌표라는 직관을 더해준다.

    Inner productdot product를 사용하면 다음을 얻는다:

    πU(x)=(3.42)bxb2b=(3.25)cosωxbbb2=cosωx.\left\|\pi_{U}(\boldsymbol{x})\right\| \stackrel{(3.42)}{=} \frac{\left|\boldsymbol{b}^{\top} \boldsymbol{x}\right|}{\|\boldsymbol{b}\|^{2}}\|\boldsymbol{b}\| \stackrel{(3.25)}{=}|\cos \omega|\|\boldsymbol{x}\|\|\boldsymbol{b}\| \frac{\|\boldsymbol{b}\|}{\|\boldsymbol{b}\|^{2}}=|\cos \omega|\|\boldsymbol{x}\| .

    여기서 ω\omegax\boldsymbol{x}b\boldsymbol{b} 사이의 각도이다. 이 방정식은 삼각법에서 익숙할 것이다: 만약 x=1\|\boldsymbol{x}\|=1이면, x\boldsymbol{x}unit circle 위에 있다. 따라서 b\boldsymbol{b}에 의해 span되는 수평축에 대한 projection은 정확히 cosω\cos \omega이며, 해당 벡터 πU(x)\pi_{U}(\boldsymbol{x})의 길이는 cosω|\cos \omega|이다. 그림 3.10(b)에 예시가 나와 있다.

  3. Projection matrix Pπ\boldsymbol{P}_{\pi} 찾기. 우리는 projectionlinear mapping이라는 것을 알고 있다 (정의 3.10 참조). 따라서 πU(x)=Pπx\pi_{U}(\boldsymbol{x})=\boldsymbol{P}_{\pi} \boldsymbol{x}를 만족하는 projection matrix Pπ\boldsymbol{P}_{\pi}가 존재한다. Inner productdot product를 사용하고 다음을 통해:

    πU(x)=λb=bλ=bbxb2=bbb2x\pi_{U}(\boldsymbol{x})=\lambda \boldsymbol{b}=\boldsymbol{b} \lambda=\boldsymbol{b} \frac{\boldsymbol{b}^{\top} \boldsymbol{x}}{\|\boldsymbol{b}\|^{2}}=\frac{\boldsymbol{b} \boldsymbol{b}^{\top}}{\|\boldsymbol{b}\|^{2}} \boldsymbol{x}

    우리는 즉시 다음을 알 수 있다:

    Pπ=bbb2\boldsymbol{P}_{\pi}=\frac{\boldsymbol{b} \boldsymbol{b}^{\top}}{\|\boldsymbol{b}\|^{2}}

    Projection matrix는 항상 symmetric하다.

    수평축은 1차원 부분 공간이다.

    bb\boldsymbol{b} \boldsymbol{b}^{\top} (그리고 결과적으로 Pπ\boldsymbol{P}_{\pi})는 symmetric matrix (rank 1)이고, b2=b,b\|\boldsymbol{b}\|^{2}=\langle\boldsymbol{b}, \boldsymbol{b}\ranglescalar이다.

    Projection matrix Pπ\boldsymbol{P}_{\pi}는 임의의 벡터 xRn\boldsymbol{x} \in \mathbb{R}^{n}b\boldsymbol{b} 방향을 갖는 원점을 지나는 선 (동등하게, b\boldsymbol{b}에 의해 span되는 부분 공간 UU)에 project한다. Remark. Projection πU(x)Rn\pi_{U}(\boldsymbol{x}) \in \mathbb{R}^{n}는 여전히 nn차원 벡터이며 scalar가 아니다. 그러나 projection을 부분 공간 UU를 span하는 기저 벡터 b\boldsymbol{b}에 대해 표현하려면 더 이상 nn개의 좌표가 필요하지 않고 단 하나의 좌표 λ\lambda만 필요하다.

Figure 3.11 기저 b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}를 갖는 2차원 부분 공간 UU에 대한 projection. xR3\boldsymbol{x} \in \mathbb{R}^{3}UU에 대한 projection πU(x)\pi_{U}(\boldsymbol{x})b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}linear combination으로 표현될 수 있으며, displacement vector xπU(x)\boldsymbol{x}-\pi_{U}(\boldsymbol{x})b1\boldsymbol{b}_{1}b2\boldsymbol{b}_{2} 모두에 orthogonal하다.

Example 3.10 (Projection onto a Line)

원점을 지나며 b=[122]\boldsymbol{b}=\left[\begin{array}{lll}1 & 2 & 2\end{array}\right]^{\top}에 의해 생성되는 선에 대한 projection matrix Pπ\boldsymbol{P}_{\pi}를 찾아보자. b\boldsymbol{b}는 1차원 부분 공간(원점을 지나는 선)의 방향이자 기저이다.

(3.46)에 따라 다음을 얻는다.

Pπ=bbbb=19[122][122]=19[122244244].\boldsymbol{P}_{\pi}=\frac{\boldsymbol{b} \boldsymbol{b}^{\top}}{\boldsymbol{b}^{\top} \boldsymbol{b}}=\frac{1}{9}\left[\begin{array}{l} 1 \\ 2 \\ 2 \end{array}\right]\left[\begin{array}{lll} 1 & 2 & 2 \end{array}\right]=\frac{1}{9}\left[\begin{array}{lll} 1 & 2 & 2 \\ 2 & 4 & 4 \\ 2 & 4 & 4 \end{array}\right] .

이제 특정 x\boldsymbol{x}를 선택하고 그것이 b\boldsymbol{b}에 의해 생성되는 부분 공간에 놓이는지 확인해 보자. x=[111]\boldsymbol{x}=\left[\begin{array}{lll}1 & 1 & 1\end{array}\right]^{\top}일 때, projection은 다음과 같다.

πU(x)=Pπx=19[122244244][111]=19[51010]span[[122]].\pi_{U}(\boldsymbol{x})=\boldsymbol{P}_{\pi} \boldsymbol{x}=\frac{1}{9}\left[\begin{array}{lll} 1 & 2 & 2 \\ 2 & 4 & 4 \\ 2 & 4 & 4 \end{array}\right]\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right]=\frac{1}{9}\left[\begin{array}{c} 5 \\ 10 \\ 10 \end{array}\right] \in \operatorname{span}\left[\left[\begin{array}{l} 1 \\ 2 \\ 2 \end{array}\right]\right] .

Pπ\boldsymbol{P}_{\pi}πU(x)\pi_{U}(\boldsymbol{x})에 적용해도 아무것도 변하지 않는다는 점에 주목하자. 즉, PππU(x)=πU(x)\boldsymbol{P}_{\pi} \pi_{U}(\boldsymbol{x})=\pi_{U}(\boldsymbol{x})이다. 이는 정의 3.10에 따라 projection matrix Pπ\boldsymbol{P}_{\pi}가 모든 x\boldsymbol{x}에 대해 Pπ2x=Pπx\boldsymbol{P}_{\pi}^{2} \boldsymbol{x}=\boldsymbol{P}_{\pi} \boldsymbol{x}를 만족한다는 것을 알고 있기 때문에 예상된 결과이다.

비고. 4장의 결과를 통해 πU(x)\pi_{U}(\boldsymbol{x})Pπ\boldsymbol{P}_{\pi}eigenvector이고, 해당 eigenvalue는 1임을 보일 수 있다.

3.8.2 Projection onto General Subspaces

다음으로, dim(U)=m1\operatorname{dim}(U)=m \geqslant 1Rn\mathbb{R}^{n}의 저차원 부분 공간 URnU \subseteq \mathbb{R}^{n}에 대한 벡터 xRn\boldsymbol{x} \in \mathbb{R}^{n}의 **직교 투영(orthogonal projections)**에 대해 살펴본다. 그림 3.11에 설명이 나와 있다.

(b1,,bm)\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}\right)UU의 정렬된 기저(ordered basis)라고 가정한다. UU에 대한 모든 투영 πU(x)\pi_{U}(\boldsymbol{x})은 반드시 UU의 원소이다. 따라서 다음과 같이 표현될 수 있다.

UU가 기저가 아닌 스패닝 벡터(spanning vectors) 집합으로 주어지는 경우, 진행하기 전에 기저 b1,,bm\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}를 반드시 결정해야 한다.

기저 벡터는 BRn×m\boldsymbol{B} \in \mathbb{R}^{n \times m}의 열을 형성하며, 여기서 B=[b1,,bm]\boldsymbol{B}=\left[\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}\right]이다. normal equation pseudo-inverse UU의 기저 벡터 b1,,bm\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}의 선형 결합으로 πU(x)=i=1mλibi\pi_{U}(\boldsymbol{x})=\sum_{i=1}^{m} \lambda_{i} \boldsymbol{b}_{i}와 같이 표현될 수 있다.

1D 경우와 마찬가지로, 투영 πU(x)\pi_{U}(\boldsymbol{x})과 투영 행렬 Pπ\boldsymbol{P}_{\pi}를 찾기 위해 세 단계 절차를 따른다:

  1. 투영의 좌표 λ1,,λm\lambda_{1}, \ldots, \lambda_{m} ( UU의 기저에 대한)를 찾는다. 이때 선형 결합은 다음과 같다.
πU(x)=i=1mλibi=Bλ,B=[b1,,bm]Rn×m,λ=[λ1,,λm]Rm,\begin{aligned} & \pi_{U}(\boldsymbol{x})=\sum_{i=1}^{m} \lambda_{i} \boldsymbol{b}_{i}=\boldsymbol{B} \boldsymbol{\lambda}, \\ & \boldsymbol{B}=\left[\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}\right] \in \mathbb{R}^{n \times m}, \quad \boldsymbol{\lambda}=\left[\lambda_{1}, \ldots, \lambda_{m}\right]^{\top} \in \mathbb{R}^{m}, \end{aligned}

이는 xRn\boldsymbol{x} \in \mathbb{R}^{n}에 가장 가깝다. 1D 경우와 마찬가지로, "가장 가깝다"는 "최소 거리"를 의미하며, 이는 πU(x)U\pi_{U}(\boldsymbol{x}) \in UxRn\boldsymbol{x} \in \mathbb{R}^{n}를 연결하는 벡터가 UU의 모든 기저 벡터에 직교해야 함을 의미한다. 따라서 (내적을 점곱으로 가정하면) mm개의 동시 조건을 얻는다.

b1,xπU(x)=b1(xπU(x))=0bm,xπU(x)=bm(xπU(x))=0\begin{gathered} \left\langle\boldsymbol{b}_{1}, \boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right\rangle=\boldsymbol{b}_{1}^{\top}\left(\boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right)=0 \\ \vdots \\ \left\langle\boldsymbol{b}_{m}, \boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right\rangle=\boldsymbol{b}_{m}^{\top}\left(\boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right)=0 \end{gathered}

이는 πU(x)=Bλ\pi_{U}(\boldsymbol{x})=\boldsymbol{B} \boldsymbol{\lambda}를 사용하여 다음과 같이 쓸 수 있다.

b1(xBλ)=0bm(xBλ)=0\begin{gathered} \boldsymbol{b}_{1}^{\top}(\boldsymbol{x}-\boldsymbol{B} \boldsymbol{\lambda})=0 \\ \vdots \\ \boldsymbol{b}_{m}^{\top}(\boldsymbol{x}-\boldsymbol{B} \boldsymbol{\lambda})=0 \end{gathered}

따라서 동차 선형 방정식 시스템을 얻는다.

[b1bm][xBλ]=0B(xBλ)=0BBλ=Bx.\begin{aligned} {\left[\begin{array}{c} \boldsymbol{b}_{1}^{\top} \\ \vdots \\ \boldsymbol{b}_{m}^{\top} \end{array}\right][\boldsymbol{x}-\boldsymbol{B} \boldsymbol{\lambda}]=\mathbf{0} } & \Longleftrightarrow \boldsymbol{B}^{\top}(\boldsymbol{x}-\boldsymbol{B} \boldsymbol{\lambda})=\mathbf{0} \\ & \Longleftrightarrow \boldsymbol{B}^{\top} \boldsymbol{B} \boldsymbol{\lambda}=\boldsymbol{B}^{\top} \boldsymbol{x} . \end{aligned}

마지막 표현은 **정규 방정식(normal equation)**이라고 불린다. b1,,bm\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}UU의 기저이므로 선형 독립이며, 따라서 BBRm×m\boldsymbol{B}^{\top} \boldsymbol{B} \in \mathbb{R}^{m \times m}은 정칙(regular)이고 역행렬을 가질 수 있다. 이를 통해 계수/좌표를 풀 수 있다.

λ=(BB)1Bx.\boldsymbol{\lambda}=\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top} \boldsymbol{x} .

행렬 (BB)1B\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top}B\boldsymbol{B}의 **유사 역행렬(pseudo-inverse)**이라고도 불리며, 정사각 행렬이 아닌 B\boldsymbol{B}에 대해서도 계산할 수 있다. 이는 BB\boldsymbol{B}^{\top} \boldsymbol{B}가 양의 정부호(positive definite)이기만 하면 되며, 이는 B\boldsymbol{B}가 full rank일 때 해당된다. 실제 응용(예: 선형 회귀)에서는 수치적 안정성과 양의 정부호성을 높이기 위해 BB\boldsymbol{B}^{\top} \boldsymbol{B}에 "jitter term" ϵI\epsilon \boldsymbol{I}를 추가하는 경우가 많다. 이러한 "ridge"는 베이즈 추론을 사용하여 엄격하게 도출될 수 있다. 자세한 내용은 9장을 참조하라. 2. 투영 πU(x)U\pi_{U}(\boldsymbol{x}) \in U를 찾는다. 우리는 이미 πU(x)=Bλ\pi_{U}(\boldsymbol{x})= \boldsymbol{B} \boldsymbol{\lambda}임을 확인했다. 따라서 (3.57)에 따라

πU(x)=B(BB)1Bx\pi_{U}(\boldsymbol{x})=\boldsymbol{B}\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top} \boldsymbol{x}
  1. 투영 행렬 Pπ\boldsymbol{P}_{\pi}를 찾는다. (3.58)에서 Pπx=πU(x)\boldsymbol{P}_{\pi} \boldsymbol{x}=\pi_{U}(\boldsymbol{x})를 만족하는 투영 행렬은 다음과 같음을 즉시 알 수 있다.
Pπ=B(BB)1B\boldsymbol{P}_{\pi}=\boldsymbol{B}\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top}

참고. 일반적인 부분 공간에 대한 투영 해법은 1D 경우를 특수한 경우로 포함한다: 만약 dim(U)=1\operatorname{dim}(U)=1이면, BBR\boldsymbol{B}^{\top} \boldsymbol{B} \in \mathbb{R}은 스칼라이고, (3.59)의 투영 행렬 Pπ=B(BB)1B\boldsymbol{P}_{\pi}=\boldsymbol{B}\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top}Pπ=BBBB\boldsymbol{P}_{\pi}=\frac{\boldsymbol{B} \boldsymbol{B}^{\top}}{\boldsymbol{B}^{\top} \boldsymbol{B}}로 다시 쓸 수 있으며, 이는 (3.46)의 투영 행렬과 정확히 일치한다.

Example 3.11 (Projection onto a Two-dimensional Subspace)

부분 공간 U=span[[111],[012]]R3U=\operatorname{span}\left[\left[\begin{array}{l}1 \\ 1 \\ 1\end{array}\right],\left[\begin{array}{l}0 \\ 1 \\ 2\end{array}\right]\right] \subseteq \mathbb{R}^{3}x=[600]R3\boldsymbol{x}=\left[\begin{array}{l}6 \\ 0 \\ 0\end{array}\right] \in \mathbb{R}^{3}에 대해, 부분 공간 UU에 대한 x\boldsymbol{x}의 좌표 λ\boldsymbol{\lambda}, 투영점 πU(x)\pi_{U}(\boldsymbol{x}), 그리고 투영 행렬 Pπ\boldsymbol{P}_{\pi}를 찾아보자.

먼저, UU의 생성 집합이 기저(선형 독립)임을 확인하고, UU의 기저 벡터를 행렬 B=[101112]\boldsymbol{B}=\left[\begin{array}{ll}1 & 0 \\ 1 & 1 \\ 1 & 2\end{array}\right]로 작성한다.

둘째, 행렬 BB\boldsymbol{B}^{\top} \boldsymbol{B}와 벡터 Bx\boldsymbol{B}^{\top} \boldsymbol{x}를 다음과 같이 계산한다.

BB=[111012][101112]=[3335H],Bx=[111012][600]=[60]\boldsymbol{B}^{\top} \boldsymbol{B}=\left[\begin{array}{lll} 1 & 1 & 1 \\ 0 & 1 & 2 \end{array}\right]\left[\begin{array}{ll} 1 & 0 \\ 1 & 1 \\ 1 & 2 \end{array}\right]=\left[\begin{array}{ll} 3 & 3 \\ 3 & 5 H\end{array}\right], \quad \boldsymbol{B}^{\top} \boldsymbol{x}=\left[\begin{array}{lll} 1 & 1 & 1 \\ 0 & 1 & 2 \end{array}\right]\left[\begin{array}{l} 6 \\ 0 \\ 0 \end{array}\right]=\left[\begin{array}{l} 6 \\ 0 \end{array}\right]

셋째, 정규 방정식 BBλ=Bx\boldsymbol{B}^{\top} \boldsymbol{B} \boldsymbol{\lambda}=\boldsymbol{B}^{\top} \boldsymbol{x}를 풀어 λ\boldsymbol{\lambda}를 찾는다.

[3335][λ1λ2]=[60]λ=[53].\left[\begin{array}{ll} 3 & 3 \\ 3 & 5 \end{array}\right]\left[\begin{array}{l} \lambda_{1} \\ \lambda_{2} \end{array}\right]=\left[\begin{array}{l} 6 \\ 0 \end{array}\right] \Longleftrightarrow \boldsymbol{\lambda}=\left[\begin{array}{c} 5 \\ -3 \end{array}\right] .

넷째, x\boldsymbol{x}UU 위로의 투영, 즉 B\boldsymbol{B}의 열 공간으로의 투영 πU(x)\pi_{U}(\boldsymbol{x})는 다음을 통해 직접 계산할 수 있다.

πU(x)=Bλ=[521]\pi_{U}(\boldsymbol{x})=\boldsymbol{B} \boldsymbol{\lambda}=\left[\begin{array}{c} 5 \\ 2 \\ -1 \end{array}\right]

투영 오차 투영 오차는 **재구성 오차(reconstruction error)**라고도 불린다.

투영을 사용하여 풀 수 없는 선형 방정식 시스템의 근사 해를 찾을 수 있다. 최소 제곱 해(least-squares solution)

해당 투영 오차는 원본 벡터와 UU 위로의 투영 사이의 차이 벡터의 노름(norm)이다. 즉,

xπU(x)=[121]=6\left\|\boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right\|=\left\|\left[\begin{array}{lll} 1 & -2 & 1 \end{array}\right]^{\top}\right\|=\sqrt{6}

다섯째, 투영 행렬(모든 xR3\boldsymbol{x} \in \mathbb{R}^{3}에 대해)은 다음과 같이 주어진다.

Pπ=B(BB)1B=16[521222125]\boldsymbol{P}_{\pi}=\boldsymbol{B}\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top}=\frac{1}{6}\left[\begin{array}{ccc} 5 & 2 & -1 \\ 2 & 2 & 2 \\ -1 & 2 & 5 \end{array}\right]

결과를 확인하기 위해, (a) 변위 벡터 πU(x)x\pi_{U}(\boldsymbol{x})-\boldsymbol{x}UU의 모든 기저 벡터에 직교하는지 확인하고, (b) Pπ=Pπ2\boldsymbol{P}_{\pi}=\boldsymbol{P}_{\pi}^{2}인지 확인할 수 있다 (정의 3.10 참조).

참고. 투영 πU(x)\pi_{U}(\boldsymbol{x})mm차원 부분 공간 URnU \subseteq \mathbb{R}^{n}에 놓여 있지만 여전히 Rn\mathbb{R}^{n}의 벡터이다. 그러나 투영된 벡터를 나타내기 위해서는 UU의 기저 벡터 b1,,bm\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}에 대한 mm개의 좌표 λ1,,λm\lambda_{1}, \ldots, \lambda_{m}만 필요하다. 참고. 일반적인 내적을 갖는 벡터 공간에서는 내적을 통해 정의되는 각도와 거리를 계산할 때 주의해야 한다.

투영을 통해 해가 없는 선형 시스템 Ax=b\boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}를 살펴볼 수 있다. 이는 b\boldsymbol{b}A\boldsymbol{A}의 span에 속하지 않는다는 것을 의미한다. 즉, 벡터 b\boldsymbol{b}A\boldsymbol{A}의 열들이 생성하는 부분 공간에 속하지 않는다는 것이다. 선형 방정식을 정확하게 풀 수 없으므로, 근사 해를 찾을 수 있다. 아이디어는 A\boldsymbol{A}의 열들이 생성하는 부분 공간에서 b\boldsymbol{b}에 가장 가까운 벡터를 찾는 것이다. 즉, b\boldsymbol{b}A\boldsymbol{A}의 열들이 생성하는 부분 공간에 직교 투영하는 것이다. 이 문제는 실제에서 자주 발생하며, 그 해를 최소 제곱 해(내적을 점곱으로 가정)라고 부른다. 이는 **과결정 시스템(overdetermined system)**에서 발생한다. 이에 대해서는 섹션 9.4에서 더 자세히 논의한다. 재구성 오차(3.63)를 사용하는 것은 주성분 분석(섹션 10.3)을 도출하는 한 가지 가능한 접근 방식이다. 참고. 우리는 기저 벡터 {b1,,bk}\left\{\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{k}\right\}를 갖는 부분 공간 UU에 대한 벡터 x\boldsymbol{x}의 투영을 살펴보았다. 이 기저가 ONB(Orthonormal Basis), 즉 (3.33) 및 (3.34)를 만족하는 경우, 투영 방정식 (3.58)은 다음과 같이 크게 단순화된다.

πU(x)=BBx\pi_{U}(\boldsymbol{x})=\boldsymbol{B} \boldsymbol{B}^{\top} \boldsymbol{x}

이는 BB=I\boldsymbol{B}^{\top} \boldsymbol{B}=\boldsymbol{I}이고 좌표는 다음과 같기 때문이다.

λ=Bx.\boldsymbol{\lambda}=\boldsymbol{B}^{\top} \boldsymbol{x} .

이는 (3.58)에서 역행렬을 더 이상 계산할 필요가 없으므로 계산 시간을 절약할 수 있음을 의미한다.

3.8.3 Gram-Schmidt Orthogonalization

Projection은 Gram-Schmidt 방법의 핵심이며, 이를 통해 nn차원 벡터 공간 VV의 임의의 기저(b1,,bn\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n})를 VV의 직교/정규직교 기저(u1,,un\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{n})로 구성적으로 변환할 수 있다. 이러한 기저는 항상 존재하며(Liesen and Mehrmann, 2015), span[b1,,bn]=span[u1,,un]\operatorname{span}\left[\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right]= \operatorname{span}\left[\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{n}\right]이다. Gram-Schmidt 직교화 방법은 VV의 임의의 기저(b1,,bn\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n})로부터 직교 기저(u1,,un\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{n})를 다음과 같이 반복적으로 구성한다:

u1:=b1uk:=bkπspan[u1,,uk1](bk),k=2,,n.\begin{aligned} & \boldsymbol{u}_{1}:=\boldsymbol{b}_{1} \\ & \boldsymbol{u}_{k}:=\boldsymbol{b}_{k}-\pi_{\operatorname{span}\left[\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{k-1}\right]}\left(\boldsymbol{b}_{k}\right), \quad k=2, \ldots, n . \end{aligned}

(3.68)에서 kk번째 기저 벡터 bk\boldsymbol{b}_{k}는 처음 k1k-1개의 구성된 직교 벡터 u1,,uk1\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{k-1}에 의해 span되는 부분 공간에 project된다(Section 3.8.2 참조). 이 projectionbk\boldsymbol{b}_{k}에서 빼지고, 그 결과 u1,,uk1\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{k-1}에 의해 span되는 (k1k-1)차원 부분 공간에 직교하는 벡터 uk\boldsymbol{u}_{k}를 생성한다. 모든 nn개의 기저 벡터 b1,,bn\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}에 대해 이 절차를 반복하면 VV의 직교 기저(u1,,un\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{n})가 생성된다. 만약 uk\boldsymbol{u}_{k}를 정규화하면, k=1,,nk=1, \ldots, n에 대해 uk=1\left\|\boldsymbol{u}_{k}\right\|=1ONB를 얻는다.

Example 3.12 (Gram-Schmidt Orthogonalization)

(a) 원래의 비직교 기저 벡터 b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}. (b) 첫 번째 새로운 기저 벡터 u1=b1\boldsymbol{u}_{1}=\boldsymbol{b}_{1}b2\boldsymbol{b}_{2}u1\boldsymbol{u}_{1}이 생성하는 부분 공간에 투영한 것. (c) 직교 기저 벡터 u1\boldsymbol{u}_{1}u2=b2πspan [u1](b2)\boldsymbol{u}_{2}=\boldsymbol{b}_{2}-\pi_{\text {span }\left[\boldsymbol{u}_{1}\right]}\left(\boldsymbol{b}_{2}\right).

R2\mathbb{R}^{2}의 기저 (b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2})를 고려해 보자. 여기서

b1=[20],b2=[11];\boldsymbol{b}_{1}=\left[\begin{array}{l} 2 \\ 0 \end{array}\right], \quad \boldsymbol{b}_{2}=\left[\begin{array}{l} 1 \\ 1 \end{array}\right] ;

그림 3.12(a)를 참조하라. Gram-Schmidt 방법을 사용하여 R2\mathbb{R}^{2}의 직교 기저 (u1,u2\boldsymbol{u}_{1}, \boldsymbol{u}_{2})를 다음과 같이 구성한다 (내적을 dot product로 가정):

u1:=b1=[20]u2:=b2πspan [u1](b2)=(3.45)b2u1u1u12b2=[11][1000][11]=[01].\begin{aligned} & \boldsymbol{u}_{1}:=\boldsymbol{b}_{1}=\left[\begin{array}{l} 2 \\ 0 \end{array}\right] \\ & \boldsymbol{u}_{2}:=\boldsymbol{b}_{2}-\pi_{\text {span }\left[\boldsymbol{u}_{1}\right]}\left(\boldsymbol{b}_{2}\right) \stackrel{(3.45)}{=} \boldsymbol{b}_{2}-\frac{\boldsymbol{u}_{1} \boldsymbol{u}_{1}^{\top}}{\left\|\boldsymbol{u}_{1}\right\|^{2}} \boldsymbol{b}_{2}=\left[\begin{array}{l} 1 \\ 1 \end{array}\right]-\left[\begin{array}{ll} 1 & 0 \\ 0 & 0 \end{array}\right]\left[\begin{array}{l} 1 \\ 1 \end{array}\right]=\left[\begin{array}{l} 0 \\ 1 \end{array}\right] . \end{aligned}

Gram-Schmidt 직교화

그림 3.12 Gram-Schmidt 직교화. (a) R2\mathbb{R}^{2}의 비직교 기저 (b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}); (b) 첫 번째로 구성된 기저 벡터 u1\boldsymbol{u}_{1}b2\boldsymbol{b}_{2}를 span [u1]\left[\boldsymbol{u}_{1}\right]에 직교 투영한 것; (c) R2\mathbb{R}^{2}의 직교 기저 (u1,u2\boldsymbol{u}_{1}, \boldsymbol{u}_{2}).

그림 3.13 아핀 공간으로의 투영. (a) 원래 설정; (b) x0\boldsymbol{x}_{0}만큼 이동된 설정으로, xx0\boldsymbol{x}-\boldsymbol{x}_{0}를 방향 공간 UU에 투영할 수 있음; (c) 투영이 x0+πU(xx0)\boldsymbol{x}_{0}+\pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right)로 다시 변환되어 최종 직교 투영 πL(x)\pi_{L}(\boldsymbol{x})를 얻음.

(a) 설정.

(b) 문제를 벡터 부분 공간으로의 투영 πU\pi_{U}로 축소.

해석 기하학

(c) 아핀 투영 πL\pi_{L}을 얻기 위해 지지점을 다시 추가.

이러한 단계는 그림 3.12(b)와 (c)에 설명되어 있다. 우리는 u1\boldsymbol{u}_{1}u2\boldsymbol{u}_{2}가 직교, 즉 u1u2=0\boldsymbol{u}_{1}^{\top} \boldsymbol{u}_{2}=0임을 즉시 알 수 있다.

3.8.4 Projection onto Affine Subspaces

지금까지 벡터를 더 낮은 차원의 부분 공간 UU에 투영하는 방법을 논의했다. 다음에서는 벡터를 **아핀 부분 공간(affine subspace)**에 투영하는 해법을 제시한다.

그림 3.13(a)의 설정을 고려해 보자. 아핀 공간 L=x0+UL= \boldsymbol{x}_{0}+U가 주어졌으며, 여기서 b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}UU의 기저 벡터이다. x\boldsymbol{x}LL에 대한 직교 투영 πL(x)\pi_{L}(\boldsymbol{x})를 결정하기 위해, 우리는 이 문제를 우리가 해결할 수 있는 문제, 즉 벡터 부분 공간(vector subspace)에 대한 투영 문제로 변환한다. 이를 위해 x\boldsymbol{x}LL에서 지지점(support point) x0\boldsymbol{x}_{0}를 빼면 Lx0=UL-\boldsymbol{x}_{0}=U는 정확히 벡터 부분 공간 UU가 된다. 이제 섹션 3.8.2에서 논의한 부분 공간에 대한 직교 투영을 사용하여 투영 πU(xx0)\pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right)를 얻을 수 있으며, 이는 그림 3.13(b)에 설명되어 있다. 이 투영은 이제 x0\boldsymbol{x}_{0}를 더함으로써 LL로 다시 변환될 수 있으며, 이를 통해 아핀 공간 LL에 대한 직교 투영을 다음과 같이 얻는다.

πL(x)=x0+πU(xx0),\pi_{L}(\boldsymbol{x})=\boldsymbol{x}_{0}+\pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right),

여기서 πU()\pi_{U}(\cdot)는 부분 공간 UU, 즉 LL의 방향 공간(direction space)에 대한 직교 투영이다. 그림 3.13(c)를 참조하라.

그림 3.13에서 x\boldsymbol{x}와 아핀 공간 LL 사이의 거리는 xx0\boldsymbol{x}-\boldsymbol{x}_{0}UU 사이의 거리와 동일하다는 것도 분명하다. 즉,

d(x,L)=xπL(x)=x(x0+πU(xx0))=d(xx0,πU(xx0))=d(xx0,U)\begin{aligned} d(\boldsymbol{x}, L) & =\left\|\boldsymbol{x}-\pi_{L}(\boldsymbol{x})\right\|=\left\|\boldsymbol{x}-\left(\boldsymbol{x}_{0}+\pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right)\right)\right\| \\ & =d\left(\boldsymbol{x}-\boldsymbol{x}_{0}, \pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right)\right)=d\left(\boldsymbol{x}-\boldsymbol{x}_{0}, U\right) \end{aligned}

우리는 섹션 12.1에서 **분리 초평면(separating hyperplane)**의 개념을 도출하기 위해 아핀 부분 공간에 대한 투영을 사용할 것이다.

그림 3.14 회전은 평면 내의 객체를 원점을 중심으로 회전시킨다. 회전 각도가 양수이면 반시계 방향으로 회전한다.

그림 3.15 로봇 팔은 물체를 집거나 올바르게 배치하기 위해 관절을 회전시켜야 한다. (Deisenroth et al., 2015)에서 가져온 그림.

3.9 Rotations

섹션 3.4에서 논의된 바와 같이, 길이 및 각도 보존은 orthogonal transformation matrix를 갖는 linear mapping의 두 가지 특징이다. 다음에서는 회전을 설명하는 특정 orthogonal transformation matrix에 대해 자세히 살펴볼 것이다.

**회전(rotation)**은 원점을 중심으로 평면을 각도 θ\theta만큼 회전시키는 linear mapping (더 구체적으로는 유클리드 벡터 공간의 automorphism of rotation)이다. 즉, 원점은 fixed point이다. 양의 각도 θ>0\theta>0의 경우, 일반적인 관례에 따라 반시계 방향으로 회전한다. 예시는 그림 3.14에 나와 있으며, 변환 행렬은 다음과 같다.

R=[0.380.920.920.38]\boldsymbol{R}=\left[\begin{array}{cc} -0.38 & -0.92 \\ 0.92 & -0.38 \end{array}\right]

회전의 중요한 응용 분야에는 컴퓨터 그래픽스와 로봇 공학이 포함된다. 예를 들어, 로봇 공학에서는 물체를 집거나 놓기 위해 로봇 팔의 관절을 어떻게 회전시켜야 하는지 아는 것이 종종 중요하다(그림 3.15 참조).

그림 3.16 R2\mathbb{R}^{2}에서 표준 기저를 각도 θ\theta만큼 회전.

3.9.1 Rotations in R2\mathbb{R}^{2}

R2\mathbb{R}^{2}의 표준 좌표계를 정의하는 R2\mathbb{R}^{2}의 표준 기저 {e1=[10],e2=[01]}\left\{\boldsymbol{e}_{1}=\left[\begin{array}{l}1 \\ 0\end{array}\right], \boldsymbol{e}_{2}=\left[\begin{array}{l}0 \\ 1\end{array}\right]\right\}를 고려해 보자. 우리는 그림 3.16에 나타난 것처럼 이 좌표계를 각도 θ\theta만큼 회전시키는 것을 목표로 한다. 회전된 벡터들은 여전히 선형 독립이므로 R2\mathbb{R}^{2}의 기저가 된다는 점에 주목하자. 이는 회전이 **기저 변환(basis change)**을 수행한다는 것을 의미한다.

회전 Φ\Phi는 선형 매핑이므로, 우리는 이를 회전 행렬(rotation matrix) R(θ)\boldsymbol{R}(\theta)로 표현할 수 있다. 삼각법(그림 3.16 참조)을 통해 R2\mathbb{R}^{2}의 표준 기저에 대한 회전된 축( Φ\Phi의 이미지)의 좌표를 결정할 수 있다. 우리는 다음을 얻는다.

Φ(e1)=[cosθsinθ],Φ(e2)=[sinθcosθ].\Phi\left(\boldsymbol{e}_{1}\right)=\left[\begin{array}{c} \cos \theta \\ \sin \theta \end{array}\right], \quad \Phi\left(\boldsymbol{e}_{2}\right)=\left[\begin{array}{c} -\sin \theta \\ \cos \theta \end{array}\right] .

따라서 회전된 좌표로의 기저 변환을 수행하는 회전 행렬 R(θ)\boldsymbol{R}(\theta)는 다음과 같이 주어진다.

R(θ)=[Φ(e1)Φ(e2)]=[cosθsinθsinθcosθ].\boldsymbol{R}(\theta)=\left[\begin{array}{ll} \Phi\left(\boldsymbol{e}_{1}\right) & \Phi\left(\boldsymbol{e}_{2}\right) \end{array}\right]=\left[\begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{array}\right] .

3.9.2 Rotations in R3\mathbb{R}^{3}

R2\mathbb{R}^{2}의 경우와 달리, R3\mathbb{R}^{3}에서는 임의의 2차원 평면을 1차원 축을 중심으로 회전시킬 수 있다. 일반적인 회전 행렬을 지정하는 가장 쉬운 방법은 표준 기저 e1,e2,e3\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \boldsymbol{e}_{3}의 이미지가 어떻게 회전되어야 하는지 지정하고, 이 이미지들 Re1,Re2,Re3\boldsymbol{R} \boldsymbol{e}_{1}, \boldsymbol{R} \boldsymbol{e}_{2}, \boldsymbol{R} \boldsymbol{e}_{3}이 서로 정규직교(orthonormal)하도록 하는 것이다. 그런 다음 표준 기저의 이미지들을 결합하여 일반적인 회전 행렬 R\boldsymbol{R}을 얻을 수 있다.

의미 있는 회전 각도를 가지려면, 2차원 이상에서 작동할 때 "반시계 방향"이 무엇을 의미하는지 정의해야 한다. 우리는 축을 "정면에서, 끝에서 원점 방향으로" 볼 때 축을 중심으로 하는 "반시계 방향" (평면) 회전이라는 관례를 사용한다. R3\mathbb{R}^{3}에서는 세 가지 표준 기저 벡터를 중심으로 하는 세 가지 (평면) 회전이 있다 (그림 3.17 참조):

그림 3.17 e3\boldsymbol{e}_{3}-축을 중심으로 각도 θ\theta만큼 R3\mathbb{R}^{3}에서 벡터(회색)를 회전시킨 모습. 회전된 벡터는 파란색으로 표시된다.

  • e1\boldsymbol{e}_{1}-축을 중심으로 한 회전
R1(θ)=[Φ(e1)Φ(e2)Φ(e3)]=[1000cosθsinθ0sinθcosθ].\boldsymbol{R}_{1}(\theta)=\left[\begin{array}{lll} \Phi\left(\boldsymbol{e}_{1}\right) & \Phi\left(\boldsymbol{e}_{2}\right) & \Phi\left(\boldsymbol{e}_{3}\right) \end{array}\right]=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta \end{array}\right] .

여기서 e1\boldsymbol{e}_{1} 좌표는 고정되고, 반시계 방향 회전은 e2e3\boldsymbol{e}_{2} \boldsymbol{e}_{3} 평면에서 수행된다.

  • e2\boldsymbol{e}_{2}-축을 중심으로 한 회전
R2(θ)=[cosθ0sinθ010sinθ0cosθ].\boldsymbol{R}_{2}(\theta)=\left[\begin{array}{ccc} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ -\sin \theta & 0 & \cos \theta \end{array}\right] .

e2\boldsymbol{e}_{2} 축을 중심으로 e1e3\boldsymbol{e}_{1} \boldsymbol{e}_{3} 평면을 회전시키려면, e2\boldsymbol{e}_{2} 축을 "끝"에서 원점 방향으로 보아야 한다.

  • e3\boldsymbol{e}_{3}-축을 중심으로 한 회전
R3(θ)=[cosθsinθ0sinθcosθ0001].\boldsymbol{R}_{3}(\theta)=\left[\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right] .

그림 3.17이 이를 보여준다.

3.9.3 Rotations in nn Dimensions

2D 및 3D에서 nn-차원 유클리드 벡터 공간으로의 회전 일반화는 n2n-2개의 차원을 고정하고 회전을 nn-차원 공간 내의 2차원 평면으로 제한하는 것으로 직관적으로 설명할 수 있다. 3차원 경우와 마찬가지로, 우리는 모든 평면(Rn\mathbb{R}^{n}의 2차원 부분 공간)을 회전시킬 수 있다.

정의 3.11 (Givens Rotation). VVnn-차원 유클리드 벡터 공간이라 하고, Φ:VV\Phi: V \rightarrow V를 변환 행렬을 갖는 automorphism이라고 하자.

Rij(θ):=[Ii1000cosθ0sinθ000Iji1000sinθ0cosθ000Inj]Rn×n,\boldsymbol{R}_{i j}(\theta):=\left[\begin{array}{ccccc} \boldsymbol{I}_{i-1} & \mathbf{0} & \cdots & \cdots & \mathbf{0} \\ \mathbf{0} & \cos \theta & \mathbf{0} & -\sin \theta & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \boldsymbol{I}_{j-i-1} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \sin \theta & \mathbf{0} & \cos \theta & \mathbf{0} \\ \mathbf{0} & \cdots & \cdots & \mathbf{0} & \boldsymbol{I}_{n-j} \end{array}\right] \in \mathbb{R}^{n \times n},

1i<jn1 \leqslant i<j \leqslant nθR\theta \in \mathbb{R}에 대해 Rij(θ)\boldsymbol{R}_{i j}(\theta)Givens rotation이라고 한다. 본질적으로 Rij(θ)\boldsymbol{R}_{i j}(\theta)는 다음을 갖는 항등 행렬 In\boldsymbol{I}_{n}이다.

rii=cosθ,rij=sinθ,rji=sinθ,rjj=cosθr_{i i}=\cos \theta, \quad r_{i j}=-\sin \theta, \quad r_{j i}=\sin \theta, \quad r_{j j}=\cos \theta

2차원(즉, n=2n=2)에서는 (3.76)을 특수한 경우로 얻는다.

3.9.4 Properties of Rotations

회전은 직교 행렬(정의 3.8)로 간주함으로써 도출할 수 있는 여러 유용한 속성을 나타낸다:

  • 회전은 거리를 보존한다. 즉, xy=Rθ(x)Rθ(y)\|\boldsymbol{x}-\boldsymbol{y}\|=\left\|\boldsymbol{R}_{\theta}(\boldsymbol{x})-\boldsymbol{R}_{\theta}(\boldsymbol{y})\right\|이다. 다시 말해, 회전은 변환 후 두 점 사이의 거리를 변경하지 않는다.
  • 회전은 각도를 보존한다. 즉, Rθx\boldsymbol{R}_{\theta} \boldsymbol{x}Rθy\boldsymbol{R}_{\theta} \boldsymbol{y} 사이의 각도는 x\boldsymbol{x}y\boldsymbol{y} 사이의 각도와 같다.
  • 3차원(또는 그 이상)에서의 회전은 일반적으로 교환 법칙이 성립하지 않는다(not commutative). 따라서 회전이 적용되는 순서는 중요하다. 이는 동일한 점을 중심으로 회전하는 경우에도 마찬가지이다. 2차원에서만 벡터 회전은 교환 법칙이 성립하며, 모든 ϕ,θ[0,2π)\phi, \theta \in[0,2 \pi)에 대해 R(ϕ)R(θ)=R(θ)R(ϕ)\boldsymbol{R}(\phi) \boldsymbol{R}(\theta)=\boldsymbol{R}(\theta) \boldsymbol{R}(\phi)이다. 회전이 동일한 점(예: 원점)을 중심으로 이루어지는 경우에만 (곱셈에 대해) **아벨 군(Abelian group)**을 형성한다.

3.10 Further Reading

이 장에서는 이 책의 뒷부분에서 사용될 해석 기하학의 몇 가지 중요한 개념에 대해 간략하게 살펴보았다. 제시된 개념 중 일부에 대한 더 넓고 심층적인 개요는 다음 훌륭한 서적들을 참조한다: Axler (2015) 및 Boyd and Vandenberghe (2018).

**내적(inner products)**을 통해 우리는 Gram-Schmidt 방법을 사용하여 각 벡터가 다른 모든 벡터에 직교하는(직교 기저) 벡터 (부분)공간의 특정 기저를 결정할 수 있다. 이러한 기저는 선형 방정식 시스템을 푸는 최적화 및 수치 알고리즘에서 중요하다. 예를 들어, 켤레 기울기(conjugate gradients) 또는 **일반화 최소 잔차법(GMRES)**과 같은 Krylov subspace methods는 서로 직교하는 잔차 오차를 최소화한다 (Stoer and Burlirsch, 2002).

머신러닝에서 내적은 **커널 방법(kernel methods)**의 맥락에서 중요하다 (Schölkopf and Smola, 2002). 커널 방법은 많은 선형 알고리즘이 순전히 내적 계산으로 표현될 수 있다는 사실을 활용한다. 그런 다음 **"커널 트릭(kernel trick)"**을 통해 (잠재적으로 무한 차원의) **특징 공간(feature space)**에서 이 특징 공간을 명시적으로 알지 못하더라도 이러한 내적을 암묵적으로 계산할 수 있다. 이를 통해 차원 축소를 위한 kernel-PCA (Schölkopf et al., 1997)와 같이 머신러닝에서 사용되는 많은 알고리즘의 "비선형화"가 가능해졌다. 가우시안 프로세스(Gaussian processes) (Rasmussen and Williams, 2006) 또한 커널 방법의 범주에 속하며, 확률적 회귀(데이터 포인트에 곡선 맞추기)에서 현재 state of the art이다. 커널의 아이디어는 12장에서 더 자세히 탐구된다.

**투영(projections)**은 컴퓨터 그래픽에서 그림자를 생성하는 등 자주 사용된다. 최적화에서는 **직교 투영(orthogonal projections)**이 잔차 오차를 (반복적으로) 최소화하는 데 자주 사용된다. 이는 머신러닝에서도 응용된다. 예를 들어, **선형 회귀(linear regression)**에서는 잔차 오차, 즉 데이터의 선형 함수에 대한 직교 투영의 길이를 최소화하는 (선형) 함수를 찾고자 한다 (Bishop, 2006). 이에 대해서는 9장에서 더 자세히 조사할 것이다. PCA (Pearson, 1901; Hotelling, 1933) 또한 투영을 사용하여 고차원 데이터의 차원을 축소한다. 이에 대해서는 10장에서 더 자세히 논의할 것이다.

Exercises

3.1 모든 x=[x1,x2]R2\boldsymbol{x}=\left[x_{1}, x_{2}\right]^{\top} \in \mathbb{R}^{2}y=[y1,y2]R2\boldsymbol{y}=\left[y_{1}, y_{2}\right]^{\top} \in \mathbb{R}^{2}에 대해 다음과 같이 정의된 ,\langle\cdot, \cdot\rangle

x,y:=x1y1(x1y2+x2y1)+2(x2y2)\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=x_{1} y_{1}-\left(x_{1} y_{2}+x_{2} y_{1}\right)+2\left(x_{2} y_{2}\right)

**내적(inner product)**임을 보여라.

3.2 R2\mathbb{R}^{2}에서 모든 x\boldsymbol{x}y\boldsymbol{y}에 대해 다음과 같이 정의된 ,\langle\cdot, \cdot\rangle를 고려하라.

x,y:=x[2012]=:Ay.\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=\boldsymbol{x}^{\top} \underbrace{\left[\begin{array}{ll} 2 & 0 \\ 1 & 2 \end{array}\right]}_{=: \boldsymbol{A}} \boldsymbol{y} .

,\langle\cdot, \cdot\rangle는 **내적(inner product)**인가?

3.3 다음 벡터들 사이의 거리를 계산하라.

x=[123],y=[110]\boldsymbol{x}=\left[\begin{array}{l} 1 \\ 2 \\ 3 \end{array}\right], \quad \boldsymbol{y}=\left[\begin{array}{c} -1 \\ -1 \\ 0 \end{array}\right]

a. x,y:=xy\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=\boldsymbol{x}^{\top} \boldsymbol{y}를 사용하여 b. x,y:=xAy,A:=[210131012]\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=\boldsymbol{x}^{\top} \boldsymbol{A} \boldsymbol{y}, \quad \boldsymbol{A}:=\left[\begin{array}{ccc}2 & 1 & 0 \\ 1 & 3 & -1 \\ 0 & -1 & 2\end{array}\right]를 사용하여

3.4 다음 벡터들 사이의 각도를 계산하라.

x=[12],y=[11]\boldsymbol{x}=\left[\begin{array}{l} 1 \\ 2 \end{array}\right], \quad \boldsymbol{y}=\left[\begin{array}{l} -1 \\ -1 \end{array}\right]

a. x,y:=xy\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=\boldsymbol{x}^{\top} \boldsymbol{y}를 사용하여 b. x,y:=xBy,B:=[2113]\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=\boldsymbol{x}^{\top} \boldsymbol{B} \boldsymbol{y}, \quad \boldsymbol{B}:=\left[\begin{array}{ll}2 & 1 \\ 1 & 3\end{array}\right]를 사용하여

3.5 **내적(dot product)**을 갖는 유클리드 벡터 공간 R5\mathbb{R}^{5}를 고려하라. 부분 공간 UR5U \subseteq \mathbb{R}^{5}xR5\boldsymbol{x} \in \mathbb{R}^{5}는 다음과 같이 주어진다.

U=span[[01202],[13112],[34121],[13507]],x=[19141]U=\operatorname{span}\left[\left[\begin{array}{c} 0 \\ -1 \\ 2 \\ 0 \\ 2 \end{array}\right],\left[\begin{array}{c} 1 \\ -3 \\ 1 \\ -1 \\ 2 \end{array}\right],\left[\begin{array}{c} -3 \\ 4 \\ 1 \\ 2 \\ 1 \end{array}\right],\left[\begin{array}{c} -1 \\ -3 \\ 5 \\ 0 \\ 7 \end{array}\right]\right], \quad \boldsymbol{x}=\left[\begin{array}{c} -1 \\ -9 \\ -1 \\ 4 \\ 1 \end{array}\right]

a. x\boldsymbol{x}UU에 대한 직교 투영(orthogonal projection) πU(x)\pi_{U}(\boldsymbol{x})를 결정하라. b. 거리 d(x,U)d(\boldsymbol{x}, U)를 결정하라.

3.6 R3\mathbb{R}^{3}에서 다음 내적을 고려하라.

x,y:=x[210121012]y.\langle\boldsymbol{x}, \boldsymbol{y}\rangle:=\boldsymbol{x}^{\top}\left[\begin{array}{ccc} 2 & 1 & 0 \\ 1 & 2 & -1 \\ 0 & -1 & 2 \end{array}\right] \boldsymbol{y} .

또한, e1,e2,e3\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \boldsymbol{e}_{3}R3\mathbb{R}^{3}의 **표준/정규 기저(standard/canonical basis)**로 정의한다. a. 다음 UU에 대한 e2\boldsymbol{e}_{2}직교 투영(orthogonal projection) πU(e2)\pi_{U}\left(\boldsymbol{e}_{2}\right)를 결정하라.

U=span[e1,e3]U=\operatorname{span}\left[\boldsymbol{e}_{1}, \boldsymbol{e}_{3}\right]

힌트: **직교성(Orthogonality)**은 **내적(inner product)**을 통해 정의된다. b. 거리 d(e2,U)d\left(e_{2}, U\right)를 계산하라. c. 시나리오를 그려라: **표준 기저 벡터(standard basis vectors)**와 πU(e2)\pi_{U}\left(\boldsymbol{e}_{2}\right).

3.7 VV를 벡터 공간(vector space)이라 하고 π\piVV의 **자기 준동형 사상(endomorphism)**이라 하자. a. π\pi가 **투영(projection)**일 필요충분조건은 idVπ\operatorname{id}_{V}-\pi가 **투영(projection)**임을 증명하라. 여기서 idV\mathrm{id}_{V}VV의 **항등 자기 준동형 사상(identity endomorphism)**이다. b. 이제 π\pi가 **투영(projection)**이라고 가정하자. Im(π)\operatorname{Im}(\pi)ker(π)\operatorname{ker}(\pi)의 함수로 Im(idVπ)\operatorname{Im}\left(\operatorname{id}_{V}-\pi\right)ker(idVπ)\operatorname{ker}\left(\operatorname{id}_{V}-\pi\right)를 계산하라.

3.8 그램-슈미트(Gram-Schmidt) 방법을 사용하여, R3\mathbb{R}^{3}의 2차원 부분 공간 UR3U \subseteq \mathbb{R}^{3}의 기저 B=(b1,b2)B=\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right)UU정규 직교 기저(ONB) C=(c1,c2)C=\left(\boldsymbol{c}_{1}, \boldsymbol{c}_{2}\right)로 변환하라. 여기서

b1:=[111],b2:=[120].\boldsymbol{b}_{1}:=\left[\begin{array}{l} 1 \\ 1 \\ 1 \end{array}\right], \quad \boldsymbol{b}_{2}:=\left[\begin{array}{c} -1 \\ 2 \\ 0 \end{array}\right] .

3.9 nNn \in \mathbb{N}이고 x1,,xn>0x_{1}, \ldots, x_{n}>0x1++xn=1x_{1}+ \ldots+x_{n}=1을 만족하는 nn개의 양의 실수라고 하자. **코시-슈바르츠 부등식(Cauchy-Schwarz inequality)**을 사용하여 다음을 보여라. a. i=1nxi21n\sum_{i=1}^{n} x_{i}^{2} \geqslant \frac{1}{n} b. i=1n1xin2\sum_{i=1}^{n} \frac{1}{x_{i}} \geqslant n^{2}

힌트: Rn\mathbb{R}^{n}의 **내적(dot product)**에 대해 생각해 보라. 그런 다음, 특정 벡터 x,yRn\boldsymbol{x}, \boldsymbol{y} \in \mathbb{R}^{n}를 선택하고 **코시-슈바르츠 부등식(Cauchy-Schwarz inequality)**을 적용하라.

3.10 다음 벡터들을 3030^{\circ} 회전시켜라.

x1:=[23],x2:=[01]\boldsymbol{x}_{1}:=\left[\begin{array}{l} 2 \\ 3 \end{array}\right], \quad \boldsymbol{x}_{2}:=\left[\begin{array}{c} 0 \\ -1 \end{array}\right]