文章目录

  • 3 解析几何(Analytic Geometry)(下)
    • 3.8 正交投影
      • 3.8.1 一维子空间(线)上的投影
      • 3.8.2 一般子空间上的投影
      • 3.8.3 Gram-Schmidt正交化
      • 3.8.4 仿射子空间上的投影
    • 3.9 旋转
      • 3.9.1 R2\mathbb{R}^{2}R2中的旋转
      • 3.9.2 R3中\mathbb{R}^{3}中R3中的旋转
      • 3.9.3 Rn\mathbb{R}^{n}Rn中的旋转
      • 3.9.4 旋转的性质

3 解析几何(Analytic Geometry)(下)

3.8 正交投影

投影是一类重要的线性变换(还有旋转和反射),在图形学、编码理论、统计学和机器学习中都起着重要的作用。在机器学习中,我们经常处理高维的数据,而高维数据通常是难以分析或想象的。而且,高维数据往往具有这样的特性:少数维度包含了大部分信息,而大多数其他维度并不是描述数据关键属性所必需的。

当我们压缩或可视化高维数据时,我们会丢失信息。为了最大限度地减少这种压缩损失,我们最好在数据中找到信息量最大的维度。

正如第一章中所讨论的,数据可以表示为向量,在解析几何中,我们将讨论数据压缩的一些基本工具。更具体地说,我们可以将原始的高维数据投影到一个低维特征空间中,并在这个低维空间中进一步分析数据集并提取相关模式( pattern)。

例如,Pearson(1901)和Hotelling(1933)提出的主成分分析(PCA)和深度神经网络(例如:深度自编码器deep auto encoders(Deng et al.,2010))等机器学习算法就充分地利用了降维思想。

下面,我们将重点讨论正交投影,我们将在第十章降维中使用正交投影进行线性降维,在第十二章分类中使用正交投影进行分类。还有第九章回归中也可以用正交投影来解释。对于给定的低维子空间,高维数据的正交投影能保留原始数据尽可能多的信息并使原始数据和相应投影之间的差异/误差最小化。下面给出正交投影的图示。

图3.9二维数据集(蓝点)到一维子空间(直线)的正交投影(橙色点)。

在我们详细说明如何获得这些投影之前,让我们看看投影是怎么定义的。

定义 3.10 投影

令VVV为一个向量空间,U⊆VU \subseteq VU⊆V为VVV的一个子空间。如果π2=π∘π=π\pi^{2}=\pi \circ \pi=\piπ2=π∘π=π,则线性映射π:V→U\pi: V \rightarrow Uπ:V→U称为投影(projection)。

线性映射可以用变换矩阵来表示,所以上述定义同样适用于一类特殊的变换矩阵,即投影矩阵(projection matrices)Pπ\boldsymbol{P}_{\pi}Pπ​,它具有Pπ2=Pπ\boldsymbol{P}_{\pi}^{2}=\boldsymbol{P}_{\pi}Pπ2​=Pπ​的属性。

下面,我们将得到内积空间(Rn,⟨⋅,⋅⟩)\left(\mathbb{R}^{n},\langle\cdot, \cdot\rangle\right)(Rn,⟨⋅,⋅⟩)到子空间的向量正交投影。我们将从一维子空间(也叫做线)开始。如果没有另外提及,我们默认以⟨x,y⟩=x⊤y\langle\boldsymbol{x}, \boldsymbol{y}\rangle=\boldsymbol{x}^{\top} \boldsymbol{y}⟨x,y⟩=x⊤y为内积。

3.8.1 一维子空间(线)上的投影

假设我们被给定一条线(一维子空间),它通过原点且基向量为b∈Rn\boldsymbol{b} \in \mathbb{R}^{n}b∈Rn。该线为由b\boldsymbol{b}b张成的一维子空间U⊆RnU \subseteq \mathbb{R}^{n}U⊆Rn。当我们将x∈Rn\boldsymbol{x} \in \mathbb{R}^{n}x∈Rn投影到UUU时,我们目的是寻找最接近x\boldsymbol{x}x的向量πU(x)∈U\pi_{U}(\boldsymbol{x}) \in UπU​(x)∈U。利用几何参数,我们来描述投影πU(x)\pi_{U}(\boldsymbol{x})πU​(x)的一些性质(图3.10(a)给出了图解):
图 3.10 一维子空间投影的例子。

  • 投影πU(x)\pi_{U}(\boldsymbol{\boldsymbol{x}})πU​(x)最接近x\boldsymbol{x}x,其中“最接近”表示它们的距离∥x−πU(x)∥\left\|\boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right\|∥x−πU​(x)∥最小。这对应了从πU(x)\pi_{U}(\boldsymbol{x})πU​(x)到x\boldsymbol{x}x最短的那一段πU(x)−x\pi_{U}(\boldsymbol{x})-\boldsymbol{x}πU​(x)−x,它与UUU正交,也即与UUU的基向量b\boldsymbol{b}b正交。因为向量之间的角度是通过内积定义的,这意味着正交使得⟨πU(x)−x,b⟩=0\left\langle\pi_{U}(\boldsymbol{x})-\boldsymbol{x}, \boldsymbol{b}\right\rangle=0⟨πU​(x)−x,b⟩=0。
  • x\boldsymbol{x}x在UUU上的投影πU(x)\pi_{U}(\boldsymbol{x})πU​(x)必须是UUU的元素,因此是张成UUU的基向量b\boldsymbol{b}b的倍数。因此,对于某些λ∈R\lambda \in \mathbb{R}λ∈R,πU(x)=λb\pi_{U}(\boldsymbol{x})=\lambda \boldsymbol{b}πU​(x)=λb。λ\lambdaλ是πU(x)\pi_{U}(\boldsymbol{x})πU​(x)相对于b\boldsymbol{b}b的坐标。

通过以下三个步骤中,我们可以确定坐标λ\lambdaλ、投影πU(x)∈U\pi_{U}(\boldsymbol{x}) \in UπU​(x)∈U以及将任意x∈Rnx \in \mathbb{R}^{n}x∈Rn映射到UUU上的投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​:

1、求坐标λ\lambdaλ。在正交条件下有:
⟨x−πU(x),b⟩=0⟺πU(x)=λb⟨x−λ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 ⟨x−πU​(x),b⟩=0⟺πU​(x)=λb​⟨x−λb,b⟩=0
我们现在可以利用内积的双线性,得到
⟨x,b⟩−λ⟨b,b⟩=0⟺λ=⟨x,b⟩⟨b,b⟩=⟨b,x⟩∥b∥2(3.40)\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}}\qquad (3.40) ⟨x,b⟩−λ⟨b,b⟩=0⟺λ=⟨b,b⟩⟨x,b⟩​=∥b∥2⟨b,x⟩​(3.40)

在最后一步中,我们利用了内积是对称的这一事实。如果我们选择点积作为⟨⋅,⋅⟩\langle\cdot, \cdot\rangle⟨⋅,⋅⟩,我们得到
λ=b⊤xb⊤b=b⊤x∥b∥2\lambda=\frac{\boldsymbol{b}^{\top} \boldsymbol{x}}{\boldsymbol{b}^{\top} \boldsymbol{b}}=\frac{\boldsymbol{b}^{\top} \boldsymbol{x}}{\|\boldsymbol{b}\|^{2}} λ=b⊤bb⊤x​=∥b∥2b⊤x​
如果∥b∥=1\|\boldsymbol{b}\|=1∥b∥=1,我们可以看到投影的坐标λ\lambdaλ由b⊤x\boldsymbol{b}^{\top} \boldsymbol{x}b⊤x决定。

2、求投影点πU(x)∈U\pi_{U}(\boldsymbol{x}) \in UπU​(x)∈U。由于πU(x)=λb\pi_{U}(\boldsymbol{x})=\lambda \boldsymbol{b}πU​(x)=λb,我们立即由(3.40)的结果得到
πU(x)=λb=⟨x,b⟩∥b∥2b=b⊤x∥b∥2b(3.42)\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}\qquad (3.42) πU​(x)=λb=∥b∥2⟨x,b⟩​b=∥b∥2b⊤x​b(3.42)
其中最后一个等式只适用于点积。

我们也可以用定义3.1计算πU(x)\pi_{U}(\boldsymbol{x})πU​(x)的长度
∥πU(x)∥=∥λb∥=∣λ∣∥b∥\left\|\pi_{U}(\boldsymbol{x})\right\|=\|\lambda \boldsymbol{b}\|=|\lambda|\|\boldsymbol{b}\| ∥πU​(x)∥=∥λb∥=∣λ∣∥b∥

因此,我们的投影长度是∣λ∣|\lambda|∣λ∣乘以b\boldsymbol{b}b的长度。这也直观地展示了λ\lambdaλ是πU(x)\pi_{U}(\boldsymbol{x})πU​(x)相对于张成UUU的基向量b\boldsymbol{b}b的坐标。

如果我们使用点积作为内积,由cos⁡ω=⟨x,y⟩∥x∥∥y∥\cos \omega=\frac{\langle\boldsymbol{x}, \boldsymbol{y}\rangle}{\|\boldsymbol{x}\|\|\boldsymbol{y}\|}cosω=∥x∥∥y∥⟨x,y⟩​(3.25),我们得到
∥πU(x)∥=(3.42)∣b⊤x∣∥b∥2∥b∥=(3.25)∣cos⁡ω∣∥x∥∥b∥∥b∥∥b∥2=∣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}\| ∥πU​(x)∥=(3.42)∥b∥2∣∣∣​b⊤x∣∣∣​​∥b∥=(3.25)∣cosω∣∥x∥∥b∥∥b∥2∥b∥​=∣cosω∣∥x∥
这里,ωωω是x\boldsymbol{x}x和b\boldsymbol{b}b之间的夹角。这个方程应该是我们在三角定理中熟悉的:如果∥x∥=1\|\boldsymbol{x}\|=1∥x∥=1,那么x\boldsymbol{x}x位于单位圆上。此时b\boldsymbol{b}b在横轴上的投影正好是cos⁡ω\cos \omegacosω,对应向量πU(x)=∣cos⁡ω∣\pi_{U}(\boldsymbol{x})=|\cos \omega|πU​(x)=∣cosω∣。如图3.10(b)。

3、求投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​。我们知道投影是线性映射(定义3.10)。因此,存在一个投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​,使得πU(x)=Pπx\pi_{U}(\boldsymbol{x})=\boldsymbol{P}_{\pi} \boldsymbol{x}πU​(x)=Pπ​x。以点积为内积,由
πU(x)=λb=bλ=bb⊤x∥b∥2=bb⊤∥b∥2x(3.46)\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}\quad (3.46) πU​(x)=λb=bλ=b∥b∥2b⊤x​=∥b∥2bb⊤​x(3.46)

我们可以得到:
Pπ=bb⊤∥b∥2\boldsymbol{P}_{\pi}=\frac{\boldsymbol{b b}^{\top}}{\|\boldsymbol{b}\|^{2}} Pπ​=∥b∥2bb⊤​

注意,∥b∥2=⟨b,b⟩\|\boldsymbol{b}\|^{2}=\langle \boldsymbol{b}, \boldsymbol{b}\rangle∥b∥2=⟨b,b⟩是一个标量,bb⊤\boldsymbol{b}\boldsymbol{b}^{\top}bb⊤(秩为1)以及投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​都是一个对称矩阵。

投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​将任意向量x∈Rn\boldsymbol{x} \in \mathbb{R}^{n}x∈Rn投影到通过原点的直线上,方向为b\boldsymbol{b}b(相当于b\boldsymbol{b}b所张成的子空间UUU)。

备注
投影πU(x)∈Rn\pi_{U}(\boldsymbol{x}) \in \mathbb{R}^{n}πU​(x)∈Rn仍然是nnn维向量而不是标量。我们可以用张成子空间UUU的基向量b\boldsymbol{b}b来表示投影,这样我们就只需要一个坐标λ\lambdaλ来表示投影,而不再需要nnn个坐标。

例 3.10 投影到直线上

求出投影到b=[122]⊤\boldsymbol{b}=\left[\begin{array}{lll}1 & 2 & 2\end{array}\right]^{\top}b=[1​2​2​]⊤所张成的过原点的直线上的投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​。b\boldsymbol{b}b是一维子空间(通过原点的直线)的方向和基。
由(3.46),我们可以得到:
Pπ=bb⊤b⊤b=19[122][122]=19[122244244]\boldsymbol{P}_{\pi}=\frac{\boldsymbol{b 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] Pπ​=b⊤bbb⊤​=91​⎣⎡​122​⎦⎤​[1​2​2​]=91​⎣⎡​122​244​244​⎦⎤​

现在让我们选择一个特定的x\boldsymbol{x}x,看看它是否位于b\boldsymbol{b}b所张成的子空间中。对于x=[111]⊤\boldsymbol{x}=\left[\begin{array}{lll}1 & 1 & 1\end{array}\right]^{\top}x=[1​1​1​]⊤,投影是
π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] πU​(x)=Pπ​x=91​⎣⎡​122​244​244​⎦⎤​⎣⎡​111​⎦⎤​=91​⎣⎡​51010​⎦⎤​∈span⎣⎡​⎣⎡​122​⎦⎤​⎦⎤​
注意,Pπ\boldsymbol{P}_{\pi}Pπ​应用到πU(x)\pi_{U}(\boldsymbol{x})πU​(x)不会改变任何东西,即PππU(x)=πU(x)\boldsymbol{P}_{\pi} \pi_{U}(\boldsymbol{x})=\pi_{U}(\boldsymbol{x})Pπ​πU​(x)=πU​(x)。这是意料之中的,因为根据定义3.10,我们知道对于任何x\boldsymbol{x}x,投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​满足Pπ2x=Pπx\boldsymbol{P}_{\pi}^{2} \boldsymbol{x}=\boldsymbol{P}_{\pi} \boldsymbol{x}Pπ2​x=Pπ​x。

备注
在第四章矩阵分解中,我们将展示πU(x)\pi_{U}(\boldsymbol{x})πU​(x)是Pπ\boldsymbol{P}_{\pi}Pπ​的特征向量,对应的特征值为1。

3.8.2 一般子空间上的投影


图 3.11 x∈R3\boldsymbol{x} \in \mathbb{R}^{3}x∈R3在UUU上的投影πU(x)\pi_{U}(\boldsymbol{x})πU​(x)可以表示为b1,b2\boldsymbol{b}_{1}, \boldsymbol{b}_{2}b1​,b2​的线性组合,位移向量x−πU(x)\boldsymbol{x}-\pi_{U}(\boldsymbol{x})x−πU​(x)与b1\boldsymbol{b}_{1}b1​和b2\boldsymbol{b}_{2}b2​正交。

在下面,我们研究向量x∈Rnx \in \mathbb{R}^{n}x∈Rn到低维子空间U⊆RnU \subseteq \mathbb{R}^{n}U⊆Rn的正交投影,其中dim⁡(U)=m⩾1\operatorname{dim}(U)=m \geqslant 1dim(U)=m⩾1。图3.11给出了示意图。

假设(b1,…,bm)\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}\right)(b1​,…,bm​)是UUU的有序基。UUU上的任何投影πU(x)\pi_{U}(\boldsymbol{x})πU​(x)必然是UUU的元素。因此,它们可以表示为UUU的基向量(b1,…,bm)\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}\right)(b1​,…,bm​)的线性组合:πU(x)=∑i=1mλibi\pi_{U}(\boldsymbol{x})=\sum_{i=1}^{m} \lambda_{i} \boldsymbol{b}_{i}πU​(x)=∑i=1m​λi​bi​。

与一维的情形一样,我们要用三步来求投影πU(x)\pi_{U}(\boldsymbol{x})πU​(x)和投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​:
1、求投影的坐标λ1,…,λm\lambda_{1}, \ldots, \lambda_{m}λ1​,…,λm​(相对于UUU的基)。使线性组合
πU(x)=∑i=1mλibi=Bλ\pi_{U}(\boldsymbol{x})=\sum_{i=1}^{m} \lambda_{i} \boldsymbol{b}_{i}=\boldsymbol{B} \boldsymbol{\lambda} πU​(x)=i=1∑m​λi​bi​=Bλ
B=[b1,…,bm]∈Rn×m,λ=[λ1,…,λm]⊤∈Rm\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} B=[b1​,…,bm​]∈Rn×m,λ=[λ1​,…,λm​]⊤∈Rm

离x\boldsymbol{x}x最近。与一维情形一样,“最近”表示“最小距离”,这意味着连接πU(x)∈U\pi_{U}(\boldsymbol{x}) \in UπU​(x)∈U和x∈Rn\boldsymbol{x} \in \mathbb{R}^{n}x∈Rn的向量必须与UUU的所有基向量正交。因此,我们得到mmm个条件(假设内积为点积)
⟨b1,x−πU(x)⟩=b1⊤(x−πU(x))=0⋮⟨bm,x−πU(x)⟩=bm⊤(x−πU(x))=0\begin{array}{c}\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{array} ⟨b1​,x−πU​(x)⟩=b1⊤​(x−πU​(x))=0⋮⟨bm​,x−πU​(x)⟩=bm⊤​(x−πU​(x))=0​

再由πU(x)=Bλ\pi_{U}(\boldsymbol{x})=\boldsymbol{B} \boldsymbol{\lambda}πU​(x)=Bλ,得到:
b1⊤(x−Bλ)=0: bm⊤(x−Bλ)=0\begin{aligned}&\boldsymbol{b}_{1}^{\top}(\boldsymbol{x}-\boldsymbol{B} \boldsymbol{\lambda})=0\\&\text { : }\\&\boldsymbol{b}_{m}^{\top}(\boldsymbol{x}-\boldsymbol{B} \boldsymbol{\lambda})=0\end{aligned} ​b1⊤​(x−Bλ)=0 : bm⊤​(x−Bλ)=0​

从而得到一个齐次线性方程组:

[b1⊤⋮bm⊤][x−Bλ]=0⟺B⊤(x−Bλ)=0\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} ⎣⎢⎡​b1⊤​⋮bm⊤​​⎦⎥⎤​[x−Bλ]=0⟺B⊤(x−Bλ)=0
⟺B⊤Bλ=B⊤x\Longleftrightarrow \boldsymbol{B}^{\top} \boldsymbol{B} \boldsymbol{\lambda}=\boldsymbol{B}^{\top} \boldsymbol{x} ⟺B⊤Bλ=B⊤x

最后一个表达式叫做正规方程(normal equation)。因为b1,…,bm\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}b1​,…,bm​是UUU的基,它们是线性独立的。因此,B⊤B∈Rm×m\boldsymbol{B}^{\top} \boldsymbol{B} \in \mathbb{R}^{m \times m}B⊤B∈Rm×m是正则的,是可逆的。这使我们能够求解得到系数/坐标:
λ=(B⊤B)−1B⊤x(3.57)\boldsymbol{\lambda}=\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top} \boldsymbol{x}\qquad (3.57) λ=(B⊤B)−1B⊤x(3.57)

矩阵(B⊤B)−1B⊤\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top}(B⊤B)−1B⊤称为B\boldsymbol{B}B的伪逆(pseudo-inverse),适用于非方阵的B\boldsymbol{B}B。仅需B⊤B\boldsymbol{B}^{\top} \boldsymbol{B}B⊤B是正定的,也就是说B\boldsymbol{B}B是满秩的。在实际应用中(如线性回归),我们经常在B⊤B\boldsymbol{B}^{\top} \boldsymbol{B}B⊤B中加入一个“抖动项”ϵI\epsilon \boldsymbol{I}ϵI,以保证数值稳定性和正定性增加。

2、求投影πU(x)∈U\pi_{U}(\boldsymbol{x}) \in UπU​(x)∈U,我们已经推断出πU(x)=Bλ\pi_{U}(\boldsymbol{x})=\boldsymbol{B} \boldsymbol{\lambda}πU​(x)=Bλ,则由(3.57)的结果,得到:
πU(x)=B(B⊤B)−1B⊤x(3.58)\pi_{U}(\boldsymbol{x})=\boldsymbol{B}\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top} \boldsymbol{x}\qquad (3.58) πU​(x)=B(B⊤B)−1B⊤x(3.58)
3、 求投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​。根据(3.58),我们可以立即看到,求解Pπx=πU(x)\boldsymbol{P}_{\pi} \boldsymbol{x}=\pi_{U}(\boldsymbol{x})Pπ​x=πU​(x)的投影矩阵是
Pπ=B(B⊤B)−1B⊤\boldsymbol{P}_{\pi}=\boldsymbol{B}\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top} Pπ​=B(B⊤B)−1B⊤

备注

投影到一般子空间有一维这一特例:如果dim⁡(U)=1\operatorname{dim}(U)=1dim(U)=1,则B⊤B∈R\boldsymbol{B}^{\top} \boldsymbol{B} \in \mathbb{R}B⊤B∈R是标量,我们可以将一般子空间的投影矩阵Pπ=B(B⊤B)−1B⊤\boldsymbol{P}_{\pi}=\boldsymbol{B}\left(\boldsymbol{B}^{\top} \boldsymbol{B}\right)^{-1} \boldsymbol{B}^{\top}Pπ​=B(B⊤B)−1B⊤重写为Pπ=BB⊤B⊤B\boldsymbol{P}_{\pi}=\frac{B B^{\top}}{B^{\top} B}Pπ​=B⊤BBB⊤​,这正是一维子空间的投影矩阵。

例 3.11 二维子空间上的投影

对于子空间U=span⁡[[111],[012]]⊆R3U=\operatorname{span}[\left[\begin{array}{l}1 \\1 \\1\end{array}\right],\left[\begin{array}{l}0 \\1 \\2\end{array}\right]] \subseteq \mathbb{R}^{3}U=span[⎣⎡​111​⎦⎤​,⎣⎡​012​⎦⎤​]⊆R3和x=[600]∈R3\boldsymbol{x}=\left[\begin{array}{l}6 \\0 \\0\end{array}\right] \in \mathbb{R}^{3}x=⎣⎡​600​⎦⎤​∈R3,求x\boldsymbol{x}x相对于子空间UUU的坐标λλλ、投影点πU(x)\pi_{U}(\boldsymbol{x})πU​(x)和投影矩阵Pπ\boldsymbol{P}_{\pi}Pπ​。
首先,我们看到UUU的生成集是一个基(线性无关),将UUU的基向量写入矩阵可以得到:
B=[101112]\boldsymbol{B}=\left[\begin{array}{ll}1 & 0 \\1 & 1 \\1 & 2\end{array}\right] B=⎣⎡​111​012​⎦⎤​

第二,我们计算矩阵B⊤B\boldsymbol{B}^{\top} \boldsymbol{B}B⊤B和B⊤x\boldsymbol{B}^{\top}\boldsymbol{x}B⊤x:
B⊤B=[111012][101112]=[3335],B⊤x=[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\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] B⊤B=[10​11​12​]⎣⎡​111​012​⎦⎤​=[33​35​],B⊤x=[10​11​12​]⎣⎡​600​⎦⎤​=[60​]

第三,我们通过正规方程B⊤Bλ=B⊤x\boldsymbol{B}^{\top} \boldsymbol{B} \boldsymbol{\lambda}=\boldsymbol{B}^{\top} \boldsymbol{x}B⊤Bλ=B⊤x求解λ\lambdaλ
[3335][λ1λ2]=[60]⟺λ=[5−3]\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] [33​35​][λ1​λ2​​]=[60​]⟺λ=[5−3​]

第四,x\boldsymbol{x}x向UUU的投影πU(x)\pi_{U}(\boldsymbol{x})πU​(x),即到B\boldsymbol{B}B的列空间的投影,可以通过直接计算得到:
πU(x)=Bλ=[52−1]\pi_{U}(\boldsymbol{x})=\boldsymbol{B} \boldsymbol{\lambda}=\left[\begin{array}{c}5 \\2 \\-1\end{array}\right] πU​(x)=Bλ=⎣⎡​52−1​⎦⎤​

相应的投影误差(projection error,也称为reconstruction error)是原始向量与其在UUU上的投影之差的范数,即:

∥x−πU(x)∥=∥[1−21]⊤∥=6(3.63)\left\|\boldsymbol{x}-\pi_{U}(\boldsymbol{x})\right\|=\left\|\left[\begin{array}{lll}1 & -2 & 1\end{array}\right]^{\top}\right\|=\sqrt{6}\qquad (3.63) ∥x−πU​(x)∥=∥∥∥​[1​−2​1​]⊤∥∥∥​=6​(3.63)

第五,对于任意x∈R3\boldsymbol{x} \in \mathbb{R}^{3}x∈R3,投影矩阵为:
Pπ=B(B⊤B)−1B⊤=16[52−1222−125]\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] Pπ​=B(B⊤B)−1B⊤=61​⎣⎡​52−1​222​−125​⎦⎤​

为了验证结果,我们可以
(a)检查位移向量πU(x)−x\pi_{U}(\boldsymbol{x})-\boldsymbol{x}πU​(x)−x是否与UUU的所有基向量正交,
(b)验证Pπ=Pπ2\boldsymbol{P}_{\pi}=\boldsymbol{P}_{\pi}^{2}Pπ​=Pπ2​(见定义3.10)。

备注

投影πU(x)\pi_{U}(\boldsymbol{x})πU​(x)虽然位于mmm维子空间U⊆RnU \subseteq \mathbb{R}^{n}U⊆Rn中,但仍然是Rn\mathbb{R}^{n}Rn中的向量。然而,为了表示投影向量,我们只需要关于UUU的基向量b1,…,bm\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{m}b1​,…,bm​的mmm坐标λ1,…,λm\lambda_{1}, \ldots, \lambda_{m}λ1​,…,λm​。

备注

在具有一般内积的向量空间中,计算用内积定义的角和距离在计算时必须注意内积的类型。

通过投影,我们可以近似求解无解的线性方程组Ax=b\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}Ax=b。线性方程组无解,意味着b\boldsymbol{b}b不在A\boldsymbol{A}A的张成空间中,也就是说,向量b\boldsymbol{b}b不在A\boldsymbol{A}A的列所张成的子空间内。如果线性方程不能精确求解,那么我们可以尝试找到一个近似解(approximate solution)。其思想是在A\boldsymbol{A}A的列所张成的子空间中找到最接近b\boldsymbol{b}b的向量,即计算b\boldsymbol{b}b在A\boldsymbol{A}A的列所张成的子空间上的正交投影。这类问题在实践中经常出现,这个解叫做超定系统的最小二乘解(least-squares solution)(假设点积为内积)。这将在9.4节线性回归中进一步讨论。使用重建误差(3.63)是一种推导主成分分析(降维10.3节)的可行的方法。

备注

我们已经得到了向量x\boldsymbol{x}x在基向量{b1,…,bk}\left\{\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{k}\right\}{b1​,…,bk​}的投影。如果这个基是标准正交基(orthonormal basis ONB),即有B⊤B=I\boldsymbol{B}^{\top} \boldsymbol{B}=\boldsymbol{I}B⊤B=I,那么坐标可以简化为λ=B⊤x\boldsymbol{\lambda}=\boldsymbol{B}^{\top} \boldsymbol{x}λ=B⊤x,投影方程也简化为
πU(x)=BB⊤x\pi_{U}(\boldsymbol{x})=\boldsymbol{B} \boldsymbol{B}^{\top} \boldsymbol{x} πU​(x)=BB⊤x

这意味着我们不需要计算逆,这节省了计算时间。

3.8.3 Gram-Schmidt正交化

投影是Gram-Schmidt方法的核心,它允许我们将nnn维向量空间VVV的任何基(b1,…,bn)\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right)(b1​,…,bn​)转换为VVV的正交/正交基(u1,…,un)\left(\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{n}\right)(u1​,…,un​)。这个基总是存在的(Liesen和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]span[b1​,…,bn​]=span[u1​,…,un​]。Gram-Schmidt正交化方法能从任意基(b1,…,bn)\left(\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}\right)(b1​,…,bn​)迭代构造正交基(u1,…,un)\left(\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{n}\right)(u1​,…,un​):
u1:=b1\boldsymbol{u}_{1}:=\boldsymbol{b}_{1} u1​:=b1​
uk:=bk−πspan⁡[u1,…,uk−1](bk),k=2,…,n\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 uk​:=bk​−πspan[u1​,…,uk−1​]​(bk​),k=2,…,n
在第二个公式中,第kkk个基向量bk\boldsymbol{b}_kbk​被投影到由前k−1k−1k−1个构造的正交向量u1,…,uk−1\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{k-1}u1​,…,uk−1​(见8.2)张成的子空间。然后用bk\boldsymbol{b}_kbk​减去该投影,从而产生一个向量uk\boldsymbol{u}_{k}uk​,该向量与由u1,…,uk−1\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{k-1}u1​,…,uk−1​张成的k−1k-1k−1维子空间正交。对所有nnn个基向量b1,…,bn\boldsymbol{b}_{1}, \ldots, \boldsymbol{b}_{n}b1​,…,bn​重复此过程,从而产生正交基(u1,…,un)\left(\boldsymbol{u}_{1}, \ldots, \boldsymbol{u}_{n}\right)(u1​,…,un​)。如果我们再将uk\boldsymbol{u}_{k}uk​标准化,我们得到一个标准正交基(ONB),其中∥uk∥=1\left\|\boldsymbol{u}_{k}\right\|=1∥uk​∥=1,k=1,…,nk=1, \ldots, nk=1,…,n。

图 3.12Gram-Schmidt正交化。(a) R2\mathbb{R}^2R2的非正交基(b1,b2)(\boldsymbol{b}_1,\boldsymbol{b}_2)(b1​,b2​);(b)首先构造基向量u1\boldsymbol{u}_1u1​和b2\boldsymbol{b}_2b2​在span[u1]\text{span}[\boldsymbol{u}_1]span[u1​]上的正交投影;(c)R2\mathbb{R}^2R2的正交基(u1,u2)(\boldsymbol{u}_1,\boldsymbol{u}_2)(u1​,u2​)

例 3.12 Gram-Schmidt 正交化

考虑R2\mathbb{R}^{2}R2的一个基(b1,b2)\left(\boldsymbol{b}_{1}, \boldsymbol{b}_{2}\right)(b1​,b2​)(见图3.12(a)):
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] b1​=[20​],b2​=[11​]

使用Gram-Schmidt 正交化,我们构造R2\mathbb{R}^{2}R2的一个正交基:(u1,u2)\left(\boldsymbol{u}_{1}, \boldsymbol{u}_{2}\right)(u1​,u2​)如下(假设内积为点积):
u1:=b1=[20]\boldsymbol{u}_{1}:=\boldsymbol{b}_{1}=\left[\begin{array}{l}2 \\0\end{array}\right] u1​:=b1​=[20​]
u2:=b2−πspan[u1](b2)=b2−u1u1⊤∥u1∥2b2=[11]−[1000][11]=[01]\boldsymbol{u}_{2}:=\boldsymbol{b}_{2}-\pi_{\mathrm{span}\left[\boldsymbol{u}_{1}\right]}\left(\boldsymbol{b}_{2}\right) {=} \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] u2​:=b2​−πspan[u1​]​(b2​)=b2​−∥u1​∥2u1​u1⊤​​b2​=[11​]−[10​00​][11​]=[01​]

这些步骤如图3.12(b)和(c )所示,我们可以看到u1,u2\boldsymbol{u}_{1},\boldsymbol{u}_{2}u1​,u2​是正交的,即u1⊤u2=0\boldsymbol{u}_{1}^{\top} \boldsymbol{u}_{2}=0u1⊤​u2​=0


图 3.13仿射空间上的投影。(a) 原始设定;(b)将设定的各个对象移动−x0−\boldsymbol{x}_0−x0​,以便x−x0\boldsymbol{x}−\boldsymbol{x}_0x−x0​可以投影到方向空间UUU上;(c)复原投影x0+πU(x−x0)\boldsymbol{x}_{0}+\pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right)x0​+πU​(x−x0​),从而得到最终正交投影πL(x)\pi_{L}(\boldsymbol{x})πL​(x)。

3.8.4 仿射子空间上的投影

到目前为止,我们讨论了如何将向量投影到低维子空间UUU上。下面,我们将提供了一个将向量投影到仿射子空间的解决方案。

考虑图3.13(a)中的设定。现给出仿射空间L=x0+UL=\boldsymbol{x}_{0}+UL=x0​+U,其中b1,b2\boldsymbol{b}_{1},\boldsymbol{b}_{2}b1​,b2​是UUU的基向量。为了确定x\boldsymbol{x}x在LLL上的正交投影πL(x)\pi_{L}(\boldsymbol{x})πL​(x),我们把这个问题转化为一个我们知道如何解决的问题:在向量子空间上的投影。为了达到这个目的,我们将x\boldsymbol{x}x和LLL减去支撑点x0\boldsymbol{x}_0x0​,这样L−x0=UL-\boldsymbol{x}_0=UL−x0​=U就变成向量子空间UUU了。然后使用第3.8.2节中讨论的子空间上的正交投影,得到投影πU(x−x0)\pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right)πU​(x−x0​),如图3.13(b)所示。

这个投影现在可以通过加x0\boldsymbol{x}_0x0​转换回LLL,这样我们就得到了仿射空间LLL上的正交投影
πL(x)=x0+πU(x−x0)\pi_{L}(\boldsymbol{x})=\boldsymbol{x}_{0}+\pi_{U}\left(\boldsymbol{x}-\boldsymbol{x}_{0}\right) πL​(x)=x0​+πU​(x−x0​)
其中πU(⋅)π_U(·)πU​(⋅)是在子空间UUU上的正交投影,即LLL的方向空间;见图3.13 (c )。

从图3.13还可以明显看出,x\boldsymbol{x}x到仿射空间LLL的距离与x−x0\boldsymbol{x}-\boldsymbol{x}_{0}x−x0​到UUU的距离相同,即:
d(x,L)=∥x−πL(x)∥=∥x−(x0+πU(x−x0))∥=d(x−x0,πU(x−x0))=d(x−x0,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} d(x,L)​=∥x−πL​(x)∥=∥x−(x0​+πU​(x−x0​))∥=d(x−x0​,πU​(x−x0​))=d(x−x0​,U)​

在12.1节分类中,我们将使用仿射子空间上的投影引出分离超平面的概念。


图 3.14 旋转使物体绕平面内的一个原点旋转。如果旋转角度是正的,我们就逆时针旋转

图 3.15机械臂需要旋转关节来拾取或正确放置物体。图片来源于(Deisenroth等人,2015)。

3.9 旋转

3.4节所讨论的长度和角度保持不变,是正交变换矩阵的线性映射的两个特征。在下面,我们将仔细研究描述旋转的特定的正交变换矩阵。

旋转(rotation)是一种线性映射(更具体地说,是欧氏向量空间的自同构),它将平面绕原点旋转θθθ角,即原点是一个不动点。对于θ>0θ>0θ>0,按照惯例,我们采取逆时针旋转。图3.14对应的转换矩阵是:
R=[−0.38−0.920.92−0.38]\boldsymbol{R}=\left[\begin{array}{cc}-0.38 & -0.92 \\0.92 & -0.38\end{array}\right] R=[−0.380.92​−0.92−0.38​]

旋转的重要应用领域包括计算机图形学和机器人学。例如,在机器人学中,需要知道如何旋转机械臂的关节以拾取或放置物体,如图3.15。


图 3.16 R2\mathbb{R}^2R2中的标准基旋转θ\thetaθ

3.9.1 R2\mathbb{R}^{2}R2中的旋转

考虑R2\mathbb{R}^{2}R2的标准基{e1=[10],e2=[01]}\left\{e_{1}=\left[\begin{array}{l}1 \\0\end{array}\right], \boldsymbol{e}_{2}=\left[\begin{array}{l}0 \\1\end{array}\right]\right\}{e1​=[10​],e2​=[01​]},它定义了R2\mathbb{R}^{2}R2的标准坐标系。我们的目标是将这个坐标系旋转θθθ角,如图3.16所示。注意,旋转后向量仍然是线性独立的,因此是R2\mathbb{R}^{2}R2的基。 这意味着旋转将执行基变换。

旋转ΦΦΦ是线性映射,因此我们可以用旋转矩阵(rotation matrix)R(θ)\boldsymbol{R}(\theta)R(θ)来表示它们。三角关系(见3.16)允许我们确定被旋转的坐标轴(ΦΦΦ的像)相对于R2\mathbb{R}^{2}R2中标准基的坐标。我们获得
Φ(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] Φ(e1​)=[cosθsinθ​],Φ(e2​)=[−sinθcosθ​]
因此,将基变换为旋转坐标的旋转矩阵R(θ)\boldsymbol{R}(\theta)R(θ)为:
R(θ)=[Φ(e1)Φ(e2)]=[cos⁡θ−sin⁡θsin⁡θcos⁡θ]\boldsymbol{R}(\theta)=\left[\begin{array}{ll}\Phi\left(\boldsymbol{e}_{1}\right) & \left.\Phi\left(\boldsymbol{e}_{2}\right)\right]\end{array}=\left[\begin{array}{cc}\cos \theta & -\sin \theta \\\sin \theta & \cos \theta\end{array}\right]\right. R(θ)=[Φ(e1​)​Φ(e2​)]​=[cosθsinθ​−sinθcosθ​]

3.9.2 R3中\mathbb{R}^{3}中R3中的旋转

与R2\mathbb{R}^{2}R2不同的是,在R3\mathbb{R}^{3}R3中,我们可以围绕其中一维的轴旋转任何二维平面。确定通用旋转矩阵的最简单方法是确定标准基e1,e2,e3e_{1}, e_{2}, e_{3}e1​,e2​,e3​旋转得到的像,并确保这些像Re1,Re2,Re3\boldsymbol{R e}_{1}, \boldsymbol{R e}_{2}, \boldsymbol{R} \boldsymbol{e}_{3}Re1​,Re2​,Re3​彼此正交。然后,我们可以通过组合标准基的像得到一个通用的旋转矩阵R\boldsymbol{R}R。

为了得到一个有意义的旋转角度,我们必须定义在两个以上的维度上操作时“逆时针”的含义。按照惯例,绕轴的“逆时针”(平面)旋转的情形是旋转轴“头朝上“,我们从它的尖端看向原点。在R3\mathbb{R}^{3}R3中,围绕三个标准基向量有三个(平面)旋转,如图3.17。

图 3.17R3\mathbb{R}^3R3中的向量(灰色)绕e3e_3e3​轴旋转一个角θθθ。旋转后的向量用蓝色表示。

  • 绕e1e_1e1​轴旋转:
    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] R1​(θ)=[Φ(e1​)​Φ(e2​)​Φ(e3​)​]=⎣⎡​100​0cosθsinθ​0−sinθcosθ​⎦⎤​
    这里,e1\boldsymbol{e}_{1}e1​坐标是固定的,然后对e2e3\boldsymbol{e}_{2}\boldsymbol{e}_{3}e2​e3​平面中执行逆时针旋转。

  • 绕e2e_2e2​轴旋转:
    R2(θ)=[cos⁡θ0sin⁡θ010−sin⁡θ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] R2​(θ)=⎣⎡​cosθ0−sinθ​010​sinθ0cosθ​⎦⎤​
    如果我们围绕e2e_2e2​轴旋转e1e3e_1e_3e1​e3​平面,我们需要从e2e_2e2​轴的“尖端”看向原点。

  • 绕e3e_3e3​轴旋转:
    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] R3​(θ)=⎣⎡​cosθsinθ0​−sinθcosθ0​001​⎦⎤​
    如图

3.9.3 Rn\mathbb{R}^{n}Rn中的旋转

从二维和三维推广到nnn维的欧氏向量空间的旋转可以直观地描述为固定其n−2n-2n−2维,旋转nnn维空间中的二维平面。就像在三维情况下,我们可以旋转任意平面(Rn\mathbb{R}^{n}Rn的二维子空间)。

定义 3.11 Givens旋转(Givens Rotation)

设VVV是nnn维欧氏向量空间,对于1⩽i<j⩽nand θ∈R1 \leqslant i\lt j \leqslant n \text { and } \theta \in \mathbb{R}1⩽i<j⩽n and θ∈R,自同构Φ:V→V\Phi: V \rightarrow VΦ:V→V具有变换矩阵:
Rij(θ):=[Ii−10⋯⋯00cos⁡θ0−sin⁡θ000Ij−i−1000sin⁡θ0cos⁡θ00⋯⋯0In−j]∈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} Rij​(θ):=⎣⎢⎢⎢⎢⎡​Ii−1​0000​0cosθ0sinθ⋯​⋯0Ij−i−1​0⋯​⋯−sinθ0cosθ0​0000In−j​​⎦⎥⎥⎥⎥⎤​∈Rn×n
Rij(θ)\boldsymbol{R}_{i j}(\theta)Rij​(θ)称为Givens旋转(Givens Rotation)。可以看到,Rij(θ)\boldsymbol{R}_{i j}(\theta)Rij​(θ)是由一个单位矩阵In\boldsymbol{I}_{n}In​作以下改变:
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 rii​=cosθ,rij​=−sinθ,rji​=sinθ,rjj​=cosθ

对于二维(即n=2n=2n=2),我们可以得到:
R(θ)=[Φ(e1)Φ(e2)]=[cos⁡θ−sin⁡θsin⁡θcos⁡θ]\boldsymbol{R}(\theta)=\left[\Phi\left(\boldsymbol{e}_{1}\right) \quad \Phi\left(\boldsymbol{e}_{2}\right)\right]=\left[\begin{array}{cc}\cos \theta & -\sin \theta \\\sin \theta & \cos \theta\end{array}\right] R(θ)=[Φ(e1​)Φ(e2​)]=[cosθsinθ​−sinθcosθ​]
这一特例。

3.9.4 旋转的性质

旋转表现出许多有用的性质,这些性质可以通过将它们视为正交矩阵来说明(定义3.8):

  • 旋转保持距离,即∥x−y∥=∥Rθ(x)−Rθ(y)∥\|\boldsymbol{x}-\boldsymbol{y}\|=\left\|\boldsymbol{R}_{\theta}(\boldsymbol{x})-\boldsymbol{R}_{\theta}(\boldsymbol{y})\right\|∥x−y∥=∥Rθ​(x)−Rθ​(y)∥。换句话说,任意两点旋转变换之后,它们之间的距离保持不变。
  • 旋转保持角度,即Rθx\boldsymbol{R}_{\theta}\boldsymbol{x}Rθ​x和Rθy\boldsymbol{R}_{\theta}\boldsymbol{y}Rθ​y之间的角度与x\boldsymbol{x}x和y\boldsymbol{y}y之间的相同。
  • 三维(或更多)的旋转通常是不可交换顺序的。因此,应用旋转的顺序是很重要的,即使它们围绕同一点旋转。在二维空间中,向量旋转是可交换的,即对于所有ϕ,θ∈[0,2π)\phi, \theta \in[0,2 \pi)ϕ,θ∈[0,2π),R(ϕ)R(θ)=R(θ)R(ϕ)\boldsymbol{R}(\phi) \boldsymbol{R}(\theta)=\boldsymbol{R}(\theta) \boldsymbol{R}(\phi)R(ϕ)R(θ)=R(θ)R(ϕ)。只有当它们围绕同一点(例如原点)旋转时,它们才会形成一个阿贝尔群(关于乘法的)。

翻译自:
《MATHEMATICS FOR MACHINE LEARNING》作者是 Marc Peter Deisenroth,A Aldo Faisal 和 Cheng Soon Ong

公众号后台回复【m4ml】即可获取这本书。

另外,机器学习的数学基础.pdf

【机器学习的数学基础】(五)解析几何(Analytic Geometry)(下)相关推荐

  1. 【机器学习的数学基础】(四)解析几何(Analytic Geometry)(上)

    文章目录 3 解析几何(Analytic Geometry)(上) 3.1 范数 3.2 内积 3.2.1 点积 3.2.2 一般内积 3.2.3 对称正定矩阵 3.3 长度和距离 3.4 角度和正交 ...

  2. 【解析几何】解析几何(Analytic geometry)

    In classical mathematics, analytic geometry, also known as coordinate geometry or Cartesian geometry ...

  3. 【机器学习的数学基础】(六)矩阵分解(Matrix Decomposition)(上)

    文章目录 4 矩阵分解(Matrix Decompositions)(上) 4.1 行列式与迹 4.2 特征值和特征向量 4 矩阵分解(Matrix Decompositions)(上) 在第2章和第 ...

  4. 矩阵迹的性质_机器学习的数学基础 之 矩阵范数 — 我的长度我做主?

    热点追踪 / 数学基础 / 编程基础 / 实战技术 字数: 3925 作者: 小组成员机器学习与数学 出品 0x01.矩阵的诞生 在数学史上,矩阵的概念提出得比较晚,但可以朔源到两千多年前就提出的线性 ...

  5. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(26):线性变换的矩阵表达式

    目录 前言 往期文章 6.5 线性变换的矩阵表达式 定义6 定理2 定义7 举例 例11 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ...

  6. 【机器学习的数学基础】(九)向量微积分(Vector Calculus)(上)

    文章目录 5 向量微积分(Vector Calculus) 5.1 单变量函数的微分 5.1.1 泰勒级数 5.1.2 微分法则 5.2 偏微分与梯度 5.2.1 偏微分的基本法则 5.2.2 链式法 ...

  7. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(8):矩阵的初等变换

    文章目录 前言 往期文章 3.1 矩阵的初等变换 定义 等价具有的性质 矩阵类型 性质 性质1 性质2 定理1 推论 补充 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的 ...

  8. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(23):维数、基与坐标

    目录 前言 往期文章 6.2 维数.基与坐标 定义2 定义3 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 ...

  9. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(25):线性变换

    目录 前言 往期文章 6.4 线性变换 定义4 定义5:线性变换 举例 例10 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ଘ(੭ˊᵕ ...

最新文章

  1. linux echo命令的-n、-e两个参数
  2. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-哈希表
  3. 【视频课】一课彻底掌握深度学习人脸图像算法,长期更新
  4. mysql 怎么实现组内排名_MySQL 实现排名(分组排名)
  5. rust游戏解封了吗_柚子君宾馆爬墙听隔壁声,潇天傲解封不罢休!继续专场嘲讽散打哥...
  6. 专科学计算机没有吗,我是专科生,学计算机信息管理专业的,我没有拿到..._考研_帮考网...
  7. 阿里明确中国数字商业板块组织架构 全面聚焦客户体验
  8. mysql数据表的字段操作
  9. Julia : 在编程中的Unicode 字符
  10. 小程序容器对政务服务平台建设的帮助
  11. Excel数据的筛选
  12. jsp错误之The end tag lt;/s:form is unbalanced
  13. 变形金刚2影院版完整字幕
  14. 微信H5页面分享案例模版
  15. 基于JAVA项目任务跟踪系统计算机毕业设计源码+数据库+lw文档+系统+部署
  16. java ice c_Java的Ice包接收中文乱码
  17. 【华为机试真题Java】从入门到入职-真题列表导读
  18. 试毒水(阿里巴巴腾讯搜狐笔试智力题)
  19. QT5.7+opencv3.0做的简易视频播放器
  20. 学ui设计可以从事什么工作

热门文章

  1. nextcloud安装日历插件使用并设置导入导出和云端同步(安卓手机和ios手机)
  2. BZOJ [Ahoi2008]Meet 紧急集合
  3. 电脑风扇声音大怎么办?具体原因以及解决措施,快速解决
  4. [转载]煮酒论英雄nbsp;-nbsp;漫谈Java数据库存取技术
  5. npm ERR! code ENOENTnpm ERR! syscall open
  6. fatal: unable to auto-detect email address (got ‘tim@newton.(none)‘)
  7. 一行代码搞定Dubbo接口调用
  8. python爬取歌词_Python如何爬取qq音乐歌词到本地
  9. star ccm 报java错误_在 Linux VM 上运行 STAR-CCM+ 与 HPC Pack - Azure Virtual Machines | Microsoft Docs...
  10. 淘宝开发平台店铺商品上传接口,店铺订单交易接口,店铺订单解密接口,店铺上下架接口,店铺订单推送接口(整理好的完整店铺上货订单操作接口)