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). 벡터 공간 V에서의 norm은 다음과 같은 함수이다.
∥⋅∥:Vx→R↦∥x∥
이 함수는 각 벡터 x에 그 길이 ∥x∥∈R를 할당하며, 모든 λ∈R 및 x,y∈V에 대해 다음이 성립한다:
절대 동차성 (Absolutely homogeneous): ∥λx∥=∣λ∣∥x∥
삼각 부등식 (Triangle inequality): ∥x+y∥⩽∥x∥+∥y∥
양의 정부호성 (Positive definite): ∥x∥⩾0 이고 ∥x∥=0⟺x=0
기하학적으로 삼각 부등식은 어떤 삼각형에서든 두 변의 길이의 합이 나머지 한 변의 길이보다 크거나 같아야 함을 나타낸다. 그림 3.2에서 이를 확인할 수 있다. 정의 3.1은 일반적인 벡터 공간 V (섹션 2.4)에 대한 것이지만, 이 책에서는 유한 차원 벡터 공간 Rn만 고려할 것이다. 벡터 x∈Rn의 원소는 아래 첨자를 사용하여 나타내며, 즉 xi는 벡터 x의 i번째 원소이다.
Example 3.1 (Manhattan Norm)
Rn 상의 Manhattan norm은 x∈Rn에 대해 다음과 같이 정의된다.
∥x∥1:=i=1∑n∣xi∣
여기서 ∣⋅∣는 절댓값이다. Figure 3.3의 왼쪽 패널은 ∥x∥1=1인 R2의 모든 벡터 x를 보여준다. Manhattan norm은 ℓ1 norm이라고도 불린다.
Figure 3.2 Triangle inequality.
Manhattan norm
ℓ1 norm
norm.
Example 3.2 (Euclidean Norm)
x∈Rn의 **유클리드 노름(Euclidean norm)**은 다음과 같이 정의된다.
∥x∥2:=i=1∑nxi2=x⊤x
이는 원점으로부터 x까지의 유클리드 거리를 계산한다. Figure 3.3의 오른쪽 패널은 ∥x∥2=1인 모든 벡터 x∈R2를 보여준다. 유클리드 노름은 ℓ2 norm이라고도 불린다.
참고. 이 책 전체에서 별도로 명시되지 않는 한, 기본적으로 유클리드 노름(3.4)을 사용할 것이다.
3.2 Inner Products
내적은 벡터의 길이, 두 벡터 사이의 각도 또는 거리와 같은 직관적인 기하학적 개념을 도입할 수 있게 한다. 내적의 주요 목적은 벡터들이 서로 직교하는지 여부를 결정하는 것이다.
3.2.1 Dot Product
우리는 이미 Rn 공간에서의 특정 내적 유형인 스칼라 곱(scalar product) 또는 **점곱(dot product)**에 익숙할 수 있으며, 이는 다음과 같이 주어진다:
x⊤y=i=1∑nxiyi.
이 책에서는 이 특정 내적을 **점곱(dot product)**이라고 부를 것이다. 그러나 내적은 특정 속성을 가진 더 일반적인 개념이며, 이제 이를 소개할 것이다.
3.2.2 General Inner Products
2.7절의 선형 매핑을 상기해 보면, 덧셈과 스칼라 곱셈에 대해 매핑을 재배열할 수 있다. Bilinear mappingΩ는 두 개의 인수를 가지며 각 인수에 대해 선형이다. 즉, 벡터 공간 V를 고려할 때 모든 x,y,z∈V,λ,ψ∈R에 대해 다음이 성립한다.
정의 3.2. V를 벡터 공간이라 하고, Ω:V×V→R를 두 벡터를 받아 실수로 매핑하는 bilinear mapping이라고 하자. 이때
Ω는 모든 x,y∈V에 대해 Ω(x,y)=Ω(y,x)가 성립할 때 **대칭(symmetric)**이라고 한다. 즉, 인수의 순서가 중요하지 않다.
Ω는 다음이 성립할 때 **양의 정부호(positive definite)**라고 한다.
∀x∈V\{0}:Ω(x,x)>0,Ω(0,0)=0.
정의 3.3. V를 벡터 공간이라 하고, Ω:V×V→R를 두 벡터를 받아 실수로 매핑하는 bilinear mapping이라고 하자. 이때
양의 정부호(positive definite)이고 대칭(symmetric)인 bilinear mapping Ω:V×V→R을 V상의 **내적(inner product)**이라고 한다. 일반적으로 Ω(x,y) 대신 ⟨x,y⟩로 표기한다.
쌍 (V,⟨⋅,⋅⟩)을 내적 공간(inner product space) 또는 (실수) 내적 벡터 공간(real vector space with inner product)이라고 한다. (3.5)에 정의된 dot product를 사용하는 경우, (V,⟨⋅,⋅⟩)를 **유클리드 벡터 공간(Euclidean vector space)**이라고 한다.
이 책에서는 이러한 공간을 내적 공간이라고 부를 것이다.
Example 3.3 (Inner Product That Is Not the Dot Product)
V=R2라고 가정하자. 만약 우리가 다음과 같이 정의한다면
⟨x,y⟩:=x1y1−(x1y2+x2y1)+2x2y2
⟨⋅,⋅⟩는 **내적(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×V→R (정의 3.3 참조)을 갖는 n차원 벡터 공간 V와 V의 정렬 기저(ordered basis) B=(b1,…,bn)를 고려해보자. 2.6.1절에서 언급했듯이, 임의의 벡터 x,y∈V는 기저 벡터의 선형 결합으로 x=∑i=1nψibi∈V 및 y=∑j=1nλjbj∈V와 같이 쓸 수 있다(적절한 ψi,λj∈R에 대해). 내적의 쌍선형성(bilinearity)으로 인해 모든 x,y∈V에 대해 다음이 성립한다.
여기서 Aij:=⟨bi,bj⟩이고 x^,y^는 기저 B에 대한 x와 y의 좌표이다. 이는 내적 ⟨⋅,⋅⟩이 A를 통해 고유하게 결정됨을 의미한다. 내적의 대칭성(symmetry)은 A가 대칭임을 의미한다. 또한, 내적의 양의 정부호성(positive definiteness)은 다음을 의미한다.
∀x∈V\{0}:x⊤Ax>0.
정의 3.4 (대칭, 양의 정부호 행렬). (3.11)을 만족하는 대칭 행렬 A∈Rn×n을 대칭, 양의 정부호(symmetric, positive definite) 또는 단순히 **양의 정부호(positive definite)**라고 한다. 만약 (3.11)에서 ⩾만 성립한다면, A를 **대칭, 양의 준정부호(symmetric, positive semidefinite)**라고 한다.
Example 3.4 (Symmetric, Positive Definite Matrices)
이므로 **양의 정부호(positive definite)**이다. 반대로 A2는 대칭 행렬이지만 양의 정부호가 아니다. 예를 들어 x=[2,−3]⊤일 때 x⊤A2x=9x12+12x1x2+3x22=(3x1+2x2)2−x22는 0보다 작을 수 있기 때문이다.
A∈Rn×n가 대칭이고 양의 정부호이면,
⟨x,y⟩=x^⊤Ay^
는 정렬 기저(ordered basis) B에 대한 **내적(inner product)**을 정의한다. 여기서 x^와 y^는 B에 대한 x,y∈V의 좌표 표현(coordinate representations)이다.
정리 3.5. 실수 값을 가지는 유한 차원 벡터 공간 V와 V의 정렬 기저 B에 대해, ⟨⋅,⋅⟩:V×V→R가 내적일 필요충분조건은 다음을 만족하는 대칭 양의 정부호 행렬 A∈Rn×n가 존재하는 것이다.
⟨x,y⟩=x^⊤Ay^
A∈Rn×n가 대칭이고 양의 정부호이면 다음 속성들이 성립한다:
x=0인 모든 x에 대해 x⊤Ax>0이므로, A의 **영공간(null space, kernel)**은 0만으로 구성된다. 이는 x=0이면 Ax=0임을 의미한다.
A의 대각 원소 aii는 양수이다. 왜냐하면 aii=ei⊤Aei>0이기 때문이다. 여기서 ei는 Rn의 표준 기저(standard basis)의 i번째 벡터이다.
3.3 Lengths and Distances
섹션 3.1에서 우리는 벡터의 길이를 계산하는 데 사용할 수 있는 norm에 대해 이미 논의했다. **내적(inner product)**과 norm은 모든 내적이 자연스러운 방식으로 norm을 유도한다는 점에서 밀접하게 관련되어 있다.
∥x∥:=⟨x,x⟩
이러한 방식으로 내적을 사용하여 벡터의 길이를 계산할 수 있다. 그러나 모든 norm이 내적에 의해 유도되는 것은 아니다. 맨해튼 norm (3.3)은 해당 내적이 없는 norm의 예시이다. 다음에서는 내적에 의해 유도되는 norm에 초점을 맞추고 길이, 거리, 각도와 같은 기하학적 개념을 소개할 것이다.
비고 (코시-슈바르츠 부등식). 내적 벡터 공간 ( V,⟨⋅,⋅⟩ )에 대해 유도된 norm ∥⋅∥은 **코시-슈바르츠 부등식(Cauchy-Schwarz inequality)**을 만족한다.
∣⟨x,y⟩∣⩽∥x∥∥y∥.
Example 3.5 (Lengths of Vectors Using Inner Products)
기하학에서 우리는 종종 벡터의 길이에 관심을 갖는다. 이제 내적을 사용하여 (3.16)을 통해 길이를 계산할 수 있다. x=[1,1]⊤∈R2라고 가정하자. 내적으로 dot product를 사용하면 (3.16)에 따라 x의 길이는 다음과 같이 얻어진다.
positive definite, symmetric, triangle inequality를 만족하는 함수 d를 metric이라고 한다.
Remark. 벡터의 길이와 유사하게, 벡터 간의 거리는 내적을 필요로 하지 않으며, norm만으로도 충분하다. 내적에 의해 유도된 norm이 있는 경우, 거리는 내적의 선택에 따라 달라질 수 있다.
metric d는 다음을 만족한다:
d는 positive definite이다. 즉, 모든 x,y∈V에 대해 d(x,y)⩾0이고, d(x,y)=0⟺x=y이다.
d는 symmetric이다. 즉, 모든 x,y∈V에 대해 d(x,y)=d(y,x)이다.
Triangle inequality: 모든 x,y,z∈V에 대해 d(x,z)⩽d(x,y)+d(y,z)이다.
Remark. 언뜻 보기에 내적과 metric의 속성 목록은 매우 유사해 보인다. 그러나 Definition 3.3과 Definition 3.6을 비교해보면 ⟨x,y⟩와 d(x,y)가 반대 방향으로 작동한다는 것을 알 수 있다. 매우 유사한 x와 y는 내적에 대해서는 큰 값을, metric에 대해서는 작은 값을 초래할 것이다.
3.4 Angles and Orthogonality
Figure 3.4 [0,π]로 제한될 때 f(ω)=cos(ω)는 구간 [−1,1]에서 고유한 숫자를 반환한다.
각도 (angle)
**내적(inner product)**은 벡터의 길이를 정의하고 두 벡터 사이의 거리를 정의하는 것 외에도, 두 벡터 사이의 각도 ω를 정의함으로써 벡터 공간의 기하학적 구조를 포착한다. 우리는 코시-슈바르츠 부등식(Cauchy-Schwarz inequality) (3.17)을 사용하여 내적 공간에서 두 벡터 x,y 사이의 각도 ω를 정의하며, 이 개념은 R2 및 R3에서의 직관과 일치한다. x=0,y=0이라고 가정하자. 그러면
−1⩽∥x∥∥y∥⟨x,y⟩⩽1.
따라서 Figure 3.4에 나타낸 바와 같이 다음을 만족하는 고유한 ω∈[0,π]가 존재한다.
cosω=∥x∥∥y∥⟨x,y⟩.
숫자 ω는 벡터 x와 y 사이의 각도이다. 직관적으로, 두 벡터 사이의 각도는 그들의 방향이 얼마나 유사한지를 알려준다. 예를 들어, **점곱(dot product)**을 사용하면 x와 y=4x (즉, y가 x의 스케일링된 버전) 사이의 각도는 0이다. 이는 그들의 방향이 같다는 것을 의미한다.
Example 3.6 (Angle between Vectors)
x=[1,1]⊤∈R2와 y=[1,2]⊤∈R2 사이의 각도를 계산해 보자. Figure 3.5에서 내적으로 dot product를 사용한다. 그러면 다음을 얻는다.
cosω=⟨x,x⟩⟨y,y⟩⟨x,y⟩=x⊤xy⊤yx⊤y=103,
두 벡터 사이의 각도는 arccos(103)≈0.32 rad이며, 이는 약 18∘에 해당한다.
내적의 주요 특징은 직교하는 벡터를 특성화할 수 있다는 점이다.
정의 3.7 (Orthogonality). 두 벡터 x와 y는 ⟨x,y⟩=0인 경우에만 직교하며, 이를 x⊥y로 표기한다. 만약 추가적으로 ∥x∥=1=∥y∥를 만족한다면, 즉 벡터들이 unit vector라면, x와 y는 orthonormal이다.
이 정의의 함의는 0-vector가 벡터 공간의 모든 벡터에 직교한다는 것이다.
비고. Orthogonality는 dot product일 필요가 없는 bilinear form에 대한 수직(perpendicularity) 개념의 일반화이다. 우리의 맥락에서 기하학적으로, 직교 벡터는 특정 내적에 대해 직각을 이룬다고 생각할 수 있다.
Example 3.7 (Orthogonal Vectors)
그림 3.6 두 벡터 x,y 사이의 각도 ω는 내적에 따라 달라질 수 있다.
두 벡터 x=[1,1]⊤,y=[−1,1]⊤∈R2를 고려해 보자(그림 3.6 참조). 우리는 두 가지 다른 내적을 사용하여 이들 사이의 각도 ω를 결정하는 데 관심이 있다. dot product를 내적으로 사용하면 x와 y 사이의 각도 ω는 90∘가 되어 x⊥y가 된다. 그러나 다음과 같은 내적을 선택하면
⟨x,y⟩=x⊤[2001]y,
그림 3.5 두 벡터 x,y 사이의 각도 ω는 내적을 사용하여 계산된다.
orthogonal
orthonormal
orthogonal matrix
이러한 행렬을 "orthogonal"이라고 부르는 것이 관례이지만, 더 정확한 설명은 "orthonormal"일 것이다. orthogonal matrix를 사용한 변환은 거리와 각도를 보존한다.
x와 y 사이의 각도 ω는 다음과 같이 주어진다.
cosω=∥x∥∥y∥⟨x,y⟩=−31⟹ω≈1.91rad≈109.5∘,
이 경우 x와 y는 orthogonal하지 않다. 따라서 한 내적에 대해 orthogonal한 벡터가 다른 내적에 대해서는 orthogonal하지 않을 수 있다.
정의 3.8 (Orthogonal Matrix). 정방 행렬 A∈Rn×n는 그 열들이 orthonormal일 때만 orthogonal matrix이다. 즉,
AA⊤=I=A⊤A,
이는 다음을 의미한다.
A−1=A⊤,
즉, 역행렬은 단순히 행렬을 전치함으로써 얻어진다.orthogonal matrix에 의한 변환은 특별하다. 왜냐하면 orthogonal matrixA를 사용하여 벡터 x를 변환할 때 벡터의 길이가 변하지 않기 때문이다. dot product의 경우, 우리는 다음을 얻는다.
∥Ax∥2=(Ax)⊤(Ax)=x⊤A⊤Ax=x⊤Ix=x⊤x=∥x∥2.
더욱이, 두 벡터 x,y 사이의 각도(내적으로 측정됨) 또한 orthogonal matrixA를 사용하여 둘 다 변환할 때 변하지 않는다. dot product를 내적으로 가정하면, 이미지 Ax와 Ay의 각도는 다음과 같이 주어진다.
이는 x와 y 사이의 각도와 정확히 일치한다. 이는 A⊤=A−1인 orthogonal matrixA가 각도와 거리를 모두 보존한다는 것을 의미한다. orthogonal matrix는 회전(뒤집힘의 가능성 포함)인 변환을 정의하는 것으로 밝혀졌다. 섹션 3.9에서 회전에 대한 더 자세한 내용을 논의할 것이다.
3.5 Orthonormal Basis
섹션 2.6.1에서 우리는 **기저 벡터(basis vector)**의 속성을 특징화하고, n-차원 벡터 공간에서는 n개의 기저 벡터, 즉 **선형 독립(linearly independent)**인 n개의 벡터가 필요하다는 것을 확인했다. 섹션 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 (정규 직교 기저). n-차원 벡터 공간 V와 V의 기저 {b1,…,bn}를 고려하자. 만약
⟨bi,bj⟩=0 for i=j⟨bi,bi⟩=1
모든 i,j=1,…,n에 대해 위 식이 성립하면 이 기저를 **정규 직교 기저(orthonormal basis, ONB)**라고 한다. 만약 (3.33)만 만족하면 이 기저를 **직교 기저(orthogonal basis)**라고 한다. (3.34)는 모든 기저 벡터의 길이/노름이 1임을 의미한다.
섹션 2.6.1에서 벡터 집합에 의해 span되는 벡터 공간의 기저를 찾기 위해 **가우스 소거법(Gaussian elimination)**을 사용할 수 있다는 것을 상기하자. 비직교(non-orthogonal) 및 비정규화(unnormalized)된 기저 벡터 집합 {b~1,…,b~n}이 주어졌다고 가정하자. 이들을 행렬 B~=[b~1,…,b~n]로 연결하고, 증강 행렬(augmented matrix, 섹션 2.3.2) [B~B~⊤∣B~]에 가우스 소거법을 적용하여 정규 직교 기저를 얻을 수 있다. 정규 직교 기저 {b1,…,bn}를 반복적으로 구성하는 이 **건설적인 방법(constructive way)**을 **그램-슈미트 과정(Gram-Schmidt process)**이라고 한다 (Strang, 2003).
Example 3.8 (Orthonormal Basis)
유클리드 벡터 공간 Rn의 canonical/standard basis는 내적이 벡터의 dot product인 orthonormal basis이다.
R2에서 벡터
b1=21[11],b2=21[1−1]
는 b1⊤b2=0이고 ∥b1∥=1=∥b2∥이므로 orthonormal basis를 형성한다.
우리는 Chapter 12와 Chapter 10에서 support vector machine과 principal component analysis를 논의할 때 orthonormal basis의 개념을 활용할 것이다.
3.6 Orthogonal Complement
직교성을 정의했으므로 이제 서로 직교하는 벡터 공간에 대해 살펴보겠다. 이는 10장에서 기하학적 관점에서 선형 차원 축소(linear dimensionality reduction)를 논의할 때 중요한 역할을 할 것이다.
D차원 벡터 공간 V와 M차원 부분 공간 U⊆V를 고려해보자. 이때 U의 직교 여공간(orthogonal complement)U⊥는 V의 (D−M)차원 부분 공간이며, U의 모든 벡터에 직교하는 V 내의 모든 벡터를 포함한다. 또한, U∩U⊥={0}이므로 V의 모든 벡터 x∈V는 다음과 같이 고유하게 분해될 수 있다.
x=m=1∑Mλmbm+j=1∑D−Mψjbj⊥,λm,ψj∈R,
여기서 (b1,…,bM)은 U의 기저이고 (b1⊥,…,bD−M⊥)은 U⊥의 기저이다.
그림 3.7 3차원 벡터 공간의 평면 U는 직교 여공간 U⊥를 생성하는 법선 벡터(normal vector)로 설명될 수 있다.
따라서 직교 여공간은 3차원 벡터 공간에서 평면 U(2차원 부분 공간)를 설명하는 데 사용될 수도 있다. 더 구체적으로, 평면 U에 직교하는 ∥w∥=1인 벡터 w는 U⊥의 기저 벡터이다. 그림 3.7은 이러한 설정을 보여준다. w에 직교하는 모든 벡터는 (구성상) 평면 U에 놓여야 한다. 벡터 w는 U의 **법선 벡터(normal vector)**라고 불린다.
일반적으로 직교 여공간은 n차원 벡터 공간 및 아핀 공간(affine spaces)에서 **초평면(hyperplanes)**을 설명하는 데 사용될 수 있다.
3.7 Inner Product of Functions
지금까지 우리는 길이, 각도, 거리를 계산하기 위한 **내적(inner product)**의 속성을 살펴보았다. 우리는 유한 차원 벡터의 내적에 초점을 맞추었다. 다음에서는 다른 유형의 벡터, 즉 함수의 내적에 대한 예시를 살펴볼 것이다.
지금까지 논의한 내적은 유한한 수의 항목을 가진 벡터에 대해 정의되었다. 우리는 벡터 x∈Rn를 n개의 함수 값을 가진 함수로 생각할 수 있다. 내적의 개념은 무한한 수의 항목(가산 무한)을 가진 벡터와 연속 값 함수(비가산 무한)로 일반화될 수 있다. 그러면 벡터의 개별 구성 요소에 대한 합(예: 식 (3.5) 참조)은 **적분(integral)**으로 바뀐다.
두 함수 u:R→R와 v:R→R의 내적은 다음과 같은 **정적분(definite integral)**으로 정의될 수 있다.
⟨u,v⟩:=∫abu(x)v(x)dx
여기서 하한 및 상한은 각각 a,b<∞이다. 일반적인 내적과 마찬가지로, 내적을 통해 **노름(norm)**과 **직교성(orthogonality)**을 정의할 수 있다. 만약 (3.37)이 0으로 평가되면, 함수 u와 v는 직교한다. 앞서 언급한 내적을 수학적으로 정확하게 만들기 위해서는 **측도(measure)**와 **적분(integral)**의 정의를 다루어야 하며, 이는 **힐베르트 공간(Hilbert space)**의 정의로 이어진다. 또한, 유한 차원 벡터의 내적과 달리, 함수의 내적은 발산할 수 있다(무한한 값을 가질 수 있다). 이 모든 것은 **실해석학(real analysis)**과 **함수해석학(functional analysis)**의 더 복잡한 세부 사항을 다루어야 하지만, 이 책에서는 다루지 않는다.
Example 3.9 (Inner Product of Functions)
만약 u=sin(x)와 v=cos(x)를 선택하면, (3.37)의 적분 대상 함수 f(x)=u(x)v(x)는 그림 3.8에 나타나 있다. 이 함수가 기함수(odd function), 즉 f(−x)=−f(x)임을 알 수 있다. 따라서 a=−π,b=π 범위에서 이 곱의 적분 값은 0이 된다. 그러므로 sin과 cos은 **직교 함수(orthogonal functions)**이다.
참고. 다음 함수들의 집합도 성립한다.
{1,cos(x),cos(2x),cos(3x),…}
이 함수들은 −π부터 π까지 적분할 경우 **직교(orthogonal)**한다. 즉, 어떤 두 함수를 선택하더라도 서로 직교한다. (3.38)의 함수 집합은 [−π,π)에서 **짝수(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).
"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). V를 벡터 공간이라 하고 U⊆V를 V의 subspace라 하자. 선형 매핑 π:V→U가 π2=π∘π=π이면 projection이라고 한다.
선형 매핑은 변환 행렬로 표현될 수 있으므로 (2.7절 참조), 앞선 정의는 특수한 종류의 변환 행렬인 projection matrixPπ에도 동일하게 적용되며, 이는 Pπ2=Pπ 속성을 나타낸다.
다음에서는 inner product space (Rn,⟨⋅,⋅⟩)에서 subspace로의 벡터의 orthogonal projection을 유도할 것이다. 1차원 subspace부터 시작할 것이며, 이는 line이라고도 불린다. 별도로 언급하지 않는 한, 우리는 dot product⟨x,y⟩=x⊤y를 inner product로 가정한다.
원점을 지나는 기저 벡터 b∈Rn를 갖는 선(1차원 부분 공간)이 주어졌다고 가정해 보자. 이 선은 b에 의해 span되는 1차원 부분 공간 U⊆Rn이다. x∈Rn를 U에 project할 때, 우리는 x에 가장 가까운 벡터 πU(x)∈U를 찾는다. 기하학적 논증을 사용하여, projectionπU(x)의 몇 가지 속성을 특징화해 보자 (그림 3.10(a)는 설명을 위한 예시이다):
3.8 Orthogonal Projections
(a) 기저 벡터 b를 갖는 부분 공간 U에 대한 x∈R2의 projection.
(b) ∥x∥=1인 2차원 벡터 x를 b에 의해 span되는 1차원 부분 공간에 project한 것.
Figure 3.10
1차원 부분 공간에 대한 projection의 예시.
ProjectionπU(x)는 x에 가장 가깝다. 여기서 "가장 가깝다"는 거리 ∥x−πU(x)∥가 최소임을 의미한다. 따라서 πU(x)에서 x까지의 선분 πU(x)−x는 U에 orthogonal하며, 결과적으로 U의 기저 벡터 b에도 orthogonal하다. Orthogonality condition은 벡터 간의 각도가 inner product를 통해 정의되므로 ⟨πU(x)−x,b⟩=0을 만족한다.
x의 U에 대한 projectionπU(x)는 U의 원소여야 하며, 따라서 U를 span하는 기저 벡터 b의 배수여야 한다. 그러므로 πU(x)=λb이다 (여기서 λ∈R).
다음 세 단계에서 우리는 좌표 λ, U에 속하는 projectionπU(x), 그리고 임의의 x∈Rn를 U에 mapping하는 projection matrixPπ를 결정한다:
좌표 λ 찾기. Orthogonality condition은 다음을 만족한다:
⟨x−πU(x),b⟩=0⟺πU(x)=λb⟨x−λb,b⟩=0.
이제 inner product의 bilinearity를 활용하여 다음을 얻을 수 있다:
⟨x,b⟩−λ⟨b,b⟩=0⟺λ=⟨b,b⟩⟨x,b⟩=∥b∥2⟨b,x⟩.
마지막 단계에서는 inner product가 symmetric하다는 사실을 활용했다. 만약 ⟨⋅,⋅⟩를 dot product로 선택하면 다음을 얻는다:
λ=b⊤bb⊤x=∥b∥2b⊤x.
만약 ∥b∥=1이면, projection의 좌표 λ는 b⊤x로 주어진다.
λ는 b에 대한 πU(x)의 좌표이다.
일반적인 inner product를 사용하면 ∥b∥=1일 때 λ=⟨x,b⟩를 얻는다.
Projection point πU(x)∈U 찾기. πU(x)=λb이므로, (3.40)을 통해 즉시 다음을 얻는다:
πU(x)=λb=∥b∥2⟨x,b⟩b=∥b∥2b⊤xb,
여기서 마지막 등식은 dot product에만 해당한다. 또한 정의 3.1을 통해 πU(x)의 길이를 다음과 같이 계산할 수 있다:
∥πU(x)∥=∥λb∥=∣λ∣∥b∥.
따라서 우리의 projection은 b 길이의 ∣λ∣배 길이를 갖는다. 이는 λ가 1차원 부분 공간 U를 span하는 기저 벡터 b에 대한 πU(x)의 좌표라는 직관을 더해준다.
여기서 ω는 x와 b 사이의 각도이다. 이 방정식은 삼각법에서 익숙할 것이다: 만약 ∥x∥=1이면, x는 unit circle 위에 있다. 따라서 b에 의해 span되는 수평축에 대한 projection은 정확히 cosω이며, 해당 벡터 πU(x)의 길이는 ∣cosω∣이다. 그림 3.10(b)에 예시가 나와 있다.
Projection matrix Pπ 찾기. 우리는 projection이 linear mapping이라는 것을 알고 있다 (정의 3.10 참조). 따라서 πU(x)=Pπx를 만족하는 projection matrixPπ가 존재한다. Inner product로 dot product를 사용하고 다음을 통해:
πU(x)=λb=bλ=b∥b∥2b⊤x=∥b∥2bb⊤x
우리는 즉시 다음을 알 수 있다:
Pπ=∥b∥2bb⊤
Projection matrix는 항상 symmetric하다.
수평축은 1차원 부분 공간이다.
bb⊤ (그리고 결과적으로 Pπ)는 symmetric matrix (rank 1)이고, ∥b∥2=⟨b,b⟩는 scalar이다.
Projection matrixPπ는 임의의 벡터 x∈Rn를 b 방향을 갖는 원점을 지나는 선 (동등하게, b에 의해 span되는 부분 공간 U)에 project한다.
Remark. ProjectionπU(x)∈Rn는 여전히 n차원 벡터이며 scalar가 아니다. 그러나 projection을 부분 공간 U를 span하는 기저 벡터 b에 대해 표현하려면 더 이상 n개의 좌표가 필요하지 않고 단 하나의 좌표 λ만 필요하다.
Figure 3.11
기저 b1,b2를 갖는 2차원 부분 공간 U에 대한 projection. x∈R3의 U에 대한 projectionπU(x)는 b1,b2의 linear combination으로 표현될 수 있으며, displacement vectorx−πU(x)는 b1과 b2 모두에 orthogonal하다.
Example 3.10 (Projection onto a Line)
원점을 지나며 b=[122]⊤에 의해 생성되는 선에 대한 projection matrixPπ를 찾아보자. b는 1차원 부분 공간(원점을 지나는 선)의 방향이자 기저이다.
(3.46)에 따라 다음을 얻는다.
Pπ=b⊤bbb⊤=91122[122]=91122244244.
이제 특정 x를 선택하고 그것이 b에 의해 생성되는 부분 공간에 놓이는지 확인해 보자. x=[111]⊤일 때, projection은 다음과 같다.
마지막 표현은 **정규 방정식(normal equation)**이라고 불린다. b1,…,bm은 U의 기저이므로 선형 독립이며, 따라서 B⊤B∈Rm×m은 정칙(regular)이고 역행렬을 가질 수 있다. 이를 통해 계수/좌표를 풀 수 있다.
λ=(B⊤B)−1B⊤x.
행렬 (B⊤B)−1B⊤는 B의 **유사 역행렬(pseudo-inverse)**이라고도 불리며, 정사각 행렬이 아닌 B에 대해서도 계산할 수 있다. 이는 B⊤B가 양의 정부호(positive definite)이기만 하면 되며, 이는 B가 full rank일 때 해당된다. 실제 응용(예: 선형 회귀)에서는 수치적 안정성과 양의 정부호성을 높이기 위해 B⊤B에 "jitter term" ϵI를 추가하는 경우가 많다. 이러한 "ridge"는 베이즈 추론을 사용하여 엄격하게 도출될 수 있다. 자세한 내용은 9장을 참조하라.
2. 투영 πU(x)∈U를 찾는다. 우리는 이미 πU(x)=Bλ임을 확인했다. 따라서 (3.57)에 따라
πU(x)=B(B⊤B)−1B⊤x
투영 행렬 Pπ를 찾는다. (3.58)에서 Pπx=πU(x)를 만족하는 투영 행렬은 다음과 같음을 즉시 알 수 있다.
Pπ=B(B⊤B)−1B⊤
참고. 일반적인 부분 공간에 대한 투영 해법은 1D 경우를 특수한 경우로 포함한다: 만약 dim(U)=1이면, B⊤B∈R은 스칼라이고, (3.59)의 투영 행렬 Pπ=B(B⊤B)−1B⊤를 Pπ=B⊤BBB⊤로 다시 쓸 수 있으며, 이는 (3.46)의 투영 행렬과 정확히 일치한다.
Example 3.11 (Projection onto a Two-dimensional Subspace)
부분 공간 U=span111,012⊆R3와 x=600∈R3에 대해, 부분 공간 U에 대한 x의 좌표 λ, 투영점πU(x), 그리고 투영 행렬Pπ를 찾아보자.
넷째, x의 U 위로의 투영, 즉 B의 열 공간으로의 투영 πU(x)는 다음을 통해 직접 계산할 수 있다.
πU(x)=Bλ=52−1
투영 오차
투영 오차는 **재구성 오차(reconstruction error)**라고도 불린다.
투영을 사용하여 풀 수 없는 선형 방정식 시스템의 근사 해를 찾을 수 있다.
최소 제곱 해(least-squares solution)
해당 투영 오차는 원본 벡터와 U 위로의 투영 사이의 차이 벡터의 노름(norm)이다. 즉,
∥x−πU(x)∥=[1−21]⊤=6
다섯째, 투영 행렬(모든 x∈R3에 대해)은 다음과 같이 주어진다.
Pπ=B(B⊤B)−1B⊤=6152−1222−125
결과를 확인하기 위해, (a) 변위 벡터 πU(x)−x가 U의 모든 기저 벡터에 직교하는지 확인하고, (b) Pπ=Pπ2인지 확인할 수 있다 (정의 3.10 참조).
참고. 투영 πU(x)는 m차원 부분 공간 U⊆Rn에 놓여 있지만 여전히 Rn의 벡터이다. 그러나 투영된 벡터를 나타내기 위해서는 U의 기저 벡터 b1,…,bm에 대한 m개의 좌표 λ1,…,λm만 필요하다.
참고. 일반적인 내적을 갖는 벡터 공간에서는 내적을 통해 정의되는 각도와 거리를 계산할 때 주의해야 한다.
투영을 통해 해가 없는 선형 시스템 Ax=b를 살펴볼 수 있다. 이는 b가 A의 span에 속하지 않는다는 것을 의미한다. 즉, 벡터 b가 A의 열들이 생성하는 부분 공간에 속하지 않는다는 것이다. 선형 방정식을 정확하게 풀 수 없으므로, 근사 해를 찾을 수 있다. 아이디어는 A의 열들이 생성하는 부분 공간에서 b에 가장 가까운 벡터를 찾는 것이다. 즉, b를 A의 열들이 생성하는 부분 공간에 직교 투영하는 것이다. 이 문제는 실제에서 자주 발생하며, 그 해를 최소 제곱 해(내적을 점곱으로 가정)라고 부른다. 이는 **과결정 시스템(overdetermined system)**에서 발생한다. 이에 대해서는 섹션 9.4에서 더 자세히 논의한다. 재구성 오차(3.63)를 사용하는 것은 주성분 분석(섹션 10.3)을 도출하는 한 가지 가능한 접근 방식이다.
참고. 우리는 기저 벡터 {b1,…,bk}를 갖는 부분 공간 U에 대한 벡터 x의 투영을 살펴보았다. 이 기저가 ONB(Orthonormal Basis), 즉 (3.33) 및 (3.34)를 만족하는 경우, 투영 방정식 (3.58)은 다음과 같이 크게 단순화된다.
πU(x)=BB⊤x
이는 B⊤B=I이고 좌표는 다음과 같기 때문이다.
λ=B⊤x.
이는 (3.58)에서 역행렬을 더 이상 계산할 필요가 없으므로 계산 시간을 절약할 수 있음을 의미한다.
3.8.3 Gram-Schmidt Orthogonalization
Projection은 Gram-Schmidt 방법의 핵심이며, 이를 통해 n차원 벡터 공간 V의 임의의 기저(b1,…,bn)를 V의 직교/정규직교 기저(u1,…,un)로 구성적으로 변환할 수 있다. 이러한 기저는 항상 존재하며(Liesen and Mehrmann, 2015), span[b1,…,bn]=span[u1,…,un]이다. Gram-Schmidt 직교화 방법은 V의 임의의 기저(b1,…,bn)로부터 직교 기저(u1,…,un)를 다음과 같이 반복적으로 구성한다:
(3.68)에서 k번째 기저 벡터 bk는 처음 k−1개의 구성된 직교 벡터 u1,…,uk−1에 의해 span되는 부분 공간에 project된다(Section 3.8.2 참조). 이 projection은 bk에서 빼지고, 그 결과 u1,…,uk−1에 의해 span되는 (k−1)차원 부분 공간에 직교하는 벡터 uk를 생성한다. 모든 n개의 기저 벡터 b1,…,bn에 대해 이 절차를 반복하면 V의 직교 기저(u1,…,un)가 생성된다. 만약 uk를 정규화하면, k=1,…,n에 대해 ∥uk∥=1인 ONB를 얻는다.
Example 3.12 (Gram-Schmidt Orthogonalization)
(a) 원래의 비직교 기저 벡터 b1,b2. (b) 첫 번째 새로운 기저 벡터 u1=b1과 b2를 u1이 생성하는 부분 공간에 투영한 것. (c) 직교 기저 벡터 u1과 u2=b2−πspan [u1](b2).
R2의 기저 (b1,b2)를 고려해 보자. 여기서
b1=[20],b2=[11];
그림 3.12(a)를 참조하라. Gram-Schmidt 방법을 사용하여 R2의 직교 기저 (u1,u2)를 다음과 같이 구성한다 (내적을 dot product로 가정):
그림 3.12
Gram-Schmidt 직교화.
(a) R2의 비직교 기저 (b1,b2);
(b) 첫 번째로 구성된 기저 벡터 u1과 b2를 span [u1]에 직교 투영한 것;
(c) R2의 직교 기저 (u1,u2).
그림 3.13
아핀 공간으로의 투영.
(a) 원래 설정; (b) x0만큼 이동된 설정으로, x−x0를 방향 공간 U에 투영할 수 있음; (c) 투영이 x0+πU(x−x0)로 다시 변환되어 최종 직교 투영 πL(x)를 얻음.
(a) 설정.
(b) 문제를 벡터 부분 공간으로의 투영 πU로 축소.
해석 기하학
(c) 아핀 투영 πL을 얻기 위해 지지점을 다시 추가.
이러한 단계는 그림 3.12(b)와 (c)에 설명되어 있다. 우리는 u1과 u2가 직교, 즉 u1⊤u2=0임을 즉시 알 수 있다.
3.8.4 Projection onto Affine Subspaces
지금까지 벡터를 더 낮은 차원의 부분 공간 U에 투영하는 방법을 논의했다. 다음에서는 벡터를 **아핀 부분 공간(affine subspace)**에 투영하는 해법을 제시한다.
그림 3.13(a)의 설정을 고려해 보자. 아핀 공간 L=x0+U가 주어졌으며, 여기서 b1,b2는 U의 기저 벡터이다. x의 L에 대한 직교 투영 πL(x)를 결정하기 위해, 우리는 이 문제를 우리가 해결할 수 있는 문제, 즉 벡터 부분 공간(vector subspace)에 대한 투영 문제로 변환한다. 이를 위해 x와 L에서 지지점(support point) x0를 빼면 L−x0=U는 정확히 벡터 부분 공간 U가 된다. 이제 섹션 3.8.2에서 논의한 부분 공간에 대한 직교 투영을 사용하여 투영 πU(x−x0)를 얻을 수 있으며, 이는 그림 3.13(b)에 설명되어 있다. 이 투영은 이제 x0를 더함으로써 L로 다시 변환될 수 있으며, 이를 통해 아핀 공간 L에 대한 직교 투영을 다음과 같이 얻는다.
πL(x)=x0+πU(x−x0),
여기서 πU(⋅)는 부분 공간 U, 즉 L의 방향 공간(direction space)에 대한 직교 투영이다. 그림 3.13(c)를 참조하라.
그림 3.13에서 x와 아핀 공간 L 사이의 거리는 x−x0와 U 사이의 거리와 동일하다는 것도 분명하다. 즉,
우리는 섹션 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)**은 원점을 중심으로 평면을 각도 θ만큼 회전시키는 linear mapping (더 구체적으로는 유클리드 벡터 공간의 automorphism of rotation)이다. 즉, 원점은 fixed point이다. 양의 각도 θ>0의 경우, 일반적인 관례에 따라 반시계 방향으로 회전한다. 예시는 그림 3.14에 나와 있으며, 변환 행렬은 다음과 같다.
R=[−0.380.92−0.92−0.38]
회전의 중요한 응용 분야에는 컴퓨터 그래픽스와 로봇 공학이 포함된다. 예를 들어, 로봇 공학에서는 물체를 집거나 놓기 위해 로봇 팔의 관절을 어떻게 회전시켜야 하는지 아는 것이 종종 중요하다(그림 3.15 참조).
그림 3.16 R2에서 표준 기저를 각도 θ만큼 회전.
3.9.1 Rotations in R2
R2의 표준 좌표계를 정의하는 R2의 표준 기저 {e1=[10],e2=[01]}를 고려해 보자. 우리는 그림 3.16에 나타난 것처럼 이 좌표계를 각도 θ만큼 회전시키는 것을 목표로 한다. 회전된 벡터들은 여전히 선형 독립이므로 R2의 기저가 된다는 점에 주목하자. 이는 회전이 **기저 변환(basis change)**을 수행한다는 것을 의미한다.
회전 Φ는 선형 매핑이므로, 우리는 이를 회전 행렬(rotation matrix)R(θ)로 표현할 수 있다. 삼각법(그림 3.16 참조)을 통해 R2의 표준 기저에 대한 회전된 축( Φ의 이미지)의 좌표를 결정할 수 있다. 우리는 다음을 얻는다.
Φ(e1)=[cosθsinθ],Φ(e2)=[−sinθcosθ].
따라서 회전된 좌표로의 기저 변환을 수행하는 회전 행렬 R(θ)는 다음과 같이 주어진다.
R(θ)=[Φ(e1)Φ(e2)]=[cosθsinθ−sinθcosθ].
3.9.2 Rotations in R3
R2의 경우와 달리, R3에서는 임의의 2차원 평면을 1차원 축을 중심으로 회전시킬 수 있다. 일반적인 회전 행렬을 지정하는 가장 쉬운 방법은 표준 기저 e1,e2,e3의 이미지가 어떻게 회전되어야 하는지 지정하고, 이 이미지들 Re1,Re2,Re3이 서로 정규직교(orthonormal)하도록 하는 것이다. 그런 다음 표준 기저의 이미지들을 결합하여 일반적인 회전 행렬 R을 얻을 수 있다.
의미 있는 회전 각도를 가지려면, 2차원 이상에서 작동할 때 "반시계 방향"이 무엇을 의미하는지 정의해야 한다. 우리는 축을 "정면에서, 끝에서 원점 방향으로" 볼 때 축을 중심으로 하는 "반시계 방향" (평면) 회전이라는 관례를 사용한다. R3에서는 세 가지 표준 기저 벡터를 중심으로 하는 세 가지 (평면) 회전이 있다 (그림 3.17 참조):
그림 3.17
e3-축을 중심으로 각도 θ만큼 R3에서 벡터(회색)를 회전시킨 모습. 회전된 벡터는 파란색으로 표시된다.
e2 축을 중심으로 e1e3 평면을 회전시키려면, e2 축을 "끝"에서 원점 방향으로 보아야 한다.
e3-축을 중심으로 한 회전
R3(θ)=cosθsinθ0−sinθcosθ0001.
그림 3.17이 이를 보여준다.
3.9.3 Rotations in n Dimensions
2D 및 3D에서 n-차원 유클리드 벡터 공간으로의 회전 일반화는 n−2개의 차원을 고정하고 회전을 n-차원 공간 내의 2차원 평면으로 제한하는 것으로 직관적으로 설명할 수 있다. 3차원 경우와 마찬가지로, 우리는 모든 평면(Rn의 2차원 부분 공간)을 회전시킬 수 있다.
정의 3.11 (Givens Rotation). V를 n-차원 유클리드 벡터 공간이라 하고, Φ:V→V를 변환 행렬을 갖는 automorphism이라고 하자.
1⩽i<j⩽n 및 θ∈R에 대해 Rij(θ)를 Givens rotation이라고 한다. 본질적으로 Rij(θ)는 다음을 갖는 항등 행렬 In이다.
rii=cosθ,rij=−sinθ,rji=sinθ,rjj=cosθ
2차원(즉, n=2)에서는 (3.76)을 특수한 경우로 얻는다.
3.9.4 Properties of Rotations
회전은 직교 행렬(정의 3.8)로 간주함으로써 도출할 수 있는 여러 유용한 속성을 나타낸다:
회전은 거리를 보존한다. 즉, ∥x−y∥=∥Rθ(x)−Rθ(y)∥이다. 다시 말해, 회전은 변환 후 두 점 사이의 거리를 변경하지 않는다.
회전은 각도를 보존한다. 즉, Rθx와 Rθy 사이의 각도는 x와 y 사이의 각도와 같다.
3차원(또는 그 이상)에서의 회전은 일반적으로 교환 법칙이 성립하지 않는다(not commutative). 따라서 회전이 적용되는 순서는 중요하다. 이는 동일한 점을 중심으로 회전하는 경우에도 마찬가지이다. 2차원에서만 벡터 회전은 교환 법칙이 성립하며, 모든 ϕ,θ∈[0,2π)에 대해 R(ϕ)R(θ)=R(θ)R(ϕ)이다. 회전이 동일한 점(예: 원점)을 중심으로 이루어지는 경우에만 (곱셈에 대해) **아벨 군(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 및 y=[y1,y2]⊤∈R2에 대해 다음과 같이 정의된 ⟨⋅,⋅⟩가
⟨x,y⟩:=x1y1−(x1y2+x2y1)+2(x2y2)
**내적(inner product)**임을 보여라.
3.2 R2에서 모든 x와 y에 대해 다음과 같이 정의된 ⟨⋅,⋅⟩를 고려하라.
⟨x,y⟩:=x⊤=:A[2102]y.
⟨⋅,⋅⟩는 **내적(inner product)**인가?
3.3 다음 벡터들 사이의 거리를 계산하라.
x=123,y=−1−10
a. ⟨x,y⟩:=x⊤y를 사용하여
b. ⟨x,y⟩:=x⊤Ay,A:=21013−10−12를 사용하여
3.4 다음 벡터들 사이의 각도를 계산하라.
x=[12],y=[−1−1]
a. ⟨x,y⟩:=x⊤y를 사용하여
b. ⟨x,y⟩:=x⊤By,B:=[2113]를 사용하여
3.5 **내적(dot product)**을 갖는 유클리드 벡터 공간 R5를 고려하라. 부분 공간 U⊆R5와 x∈R5는 다음과 같이 주어진다.
a. x의 U에 대한 직교 투영(orthogonal projection)πU(x)를 결정하라.
b. 거리 d(x,U)를 결정하라.
3.6 R3에서 다음 내적을 고려하라.
⟨x,y⟩:=x⊤21012−10−12y.
또한, e1,e2,e3를 R3의 **표준/정규 기저(standard/canonical basis)**로 정의한다.
a. 다음 U에 대한 e2의 직교 투영(orthogonal projection)πU(e2)를 결정하라.
U=span[e1,e3]
힌트: **직교성(Orthogonality)**은 **내적(inner product)**을 통해 정의된다.
b. 거리 d(e2,U)를 계산하라.
c. 시나리오를 그려라: **표준 기저 벡터(standard basis vectors)**와 πU(e2).
3.7 V를 벡터 공간(vector space)이라 하고 π를 V의 **자기 준동형 사상(endomorphism)**이라 하자.
a. π가 **투영(projection)**일 필요충분조건은 idV−π가 **투영(projection)**임을 증명하라. 여기서 idV는 V의 **항등 자기 준동형 사상(identity endomorphism)**이다.
b. 이제 π가 **투영(projection)**이라고 가정하자. Im(π)와 ker(π)의 함수로 Im(idV−π)와 ker(idV−π)를 계산하라.
3.8 그램-슈미트(Gram-Schmidt) 방법을 사용하여, R3의 2차원 부분 공간 U⊆R3의 기저 B=(b1,b2)를 U의 정규 직교 기저(ONB)C=(c1,c2)로 변환하라. 여기서
b1:=111,b2:=−120.
3.9 n∈N이고 x1,…,xn>0이 x1+…+xn=1을 만족하는 n개의 양의 실수라고 하자. **코시-슈바르츠 부등식(Cauchy-Schwarz inequality)**을 사용하여 다음을 보여라.
a. ∑i=1nxi2⩾n1
b. ∑i=1nxi1⩾n2
힌트: Rn의 **내적(dot product)**에 대해 생각해 보라. 그런 다음, 특정 벡터 x,y∈Rn를 선택하고 **코시-슈바르츠 부등식(Cauchy-Schwarz inequality)**을 적용하라.