阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings

关于:

  • 首次发表日期:2024-07-23
  • Mathematics for Machine Learning官方链接: https://mml-book.com
  • ChatGPT和KIMI机翻,人工润色
  • 非数学专业,如有错误,请不吝指出

2.7 线性映射

在接下来的内容中,我们将研究保持向量空间结构的映射,这将使我们能够定义坐标的概念。在本章的开头,我们提到向量是可以相加和乘以标量的对象,且结果仍然是向量。当应用映射时,我们希望保持这一性质:考虑两个实向量空间 \(V, W\)。如果映射 \(\Phi: V \rightarrow W\) 满足以下条件,则它保持向量空间的结构:

\[\begin{align*}
\Phi(\boldsymbol{x}+\boldsymbol{y}) & =\Phi(\boldsymbol{x})+\Phi(\boldsymbol{y}) \tag{2.85} \\
\Phi(\lambda \boldsymbol{x}) & =\lambda \Phi(\boldsymbol{x}) \tag{2.86}
\end{align*}
\]

对于所有 \(\boldsymbol{x}, \boldsymbol{y} \in V\) 和 \(\lambda \in \mathbb{R}\) 成立。我们可以用以下定义来总结这一点:

定义 2.15(线性映射)。对于向量空间 \(V, W\),一个映射 \(\Phi: V \rightarrow W\) 被称为线性映射(或向量空间同态/线性变换),如果

\[\forall \boldsymbol{x}, \boldsymbol{y} \in V \ \forall \lambda, \psi \in \mathbb{R}: \Phi(\lambda \boldsymbol{x}+\psi \boldsymbol{y})=\lambda \Phi(\boldsymbol{x})+\psi \Phi(\boldsymbol{y})
\tag{2.87}
\]

结果表明,我们可以将线性映射表示为矩阵(见第 2.7.1 节)。回想一下,我们也可以将一组向量作为矩阵的列。在使用矩阵时,我们必须记住矩阵代表的是什么:是线性映射还是向量的集合。我们将在第 4 章中详细讨论线性映射。在继续之前,我们将简要介绍一些特殊的映射。

定义 2.16(单射、满射、双射)。考虑一个映射 \(\Phi\) : \(\mathcal{V} \rightarrow \mathcal{W}\),其中 \(\mathcal{V}\) 和 \(\mathcal{W}\) 可以是任意集合。那么 \(\Phi\) 被称为:

  • 单射(Injective),如果 \(\forall \boldsymbol{x}, \boldsymbol{y} \in \mathcal{V}\),有 \(\Phi(\boldsymbol{x})=\Phi(\boldsymbol{y}) \Longrightarrow \boldsymbol{x}=\boldsymbol{y}\)。
  • 满射(Surjective),如果 \(\Phi(\mathcal{V})=\mathcal{W}\)。
  • 双射(Bijective),如果它既是单射又是满射。

如果 \(\Phi\) 是满射,那么 \(\mathcal{W}\) 中的每个元素都可以通过 \(\Phi\) 从 \(\mathcal{V}\) 中“到达”。双射 \(\Phi\) 可以“被逆”,即存在一个映射 \(\Psi\) : \(\mathcal{W} \rightarrow \mathcal{V}\) 使得 \(\Psi \circ \Phi(\boldsymbol{x})=\boldsymbol{x}\)。这个映射 \(\Psi\) 被称为 \(\Phi\) 的逆映射,通常记作 \(\Phi^{-1}\)。

有了这些定义,我们介绍以下向量空间 \(V\) 和 \(W\) 之间的线性映射的特例:

  • 同构(Isomorphism):\(\Phi: V \rightarrow W\) 线性且双射
  • 自同态(Endomorphism):\(\Phi: V \rightarrow V\) 线性
  • 自同构(Automorphism):\(\Phi: V \rightarrow V\) 线性且双射
  • 我们定义 \(\operatorname{id}_V: V \rightarrow V, \boldsymbol{x} \mapsto \boldsymbol{x}\) 为 \(V\) 中的恒等映射或恒等自同构。

**例 2.19(同态(Homomorphism))**

映射 \(\Phi: \mathbb{R}^2 \rightarrow \mathbb{C}, \Phi(\boldsymbol{x})=x_1+i x_2\) 是一个同态:

\[\begin{aligned}
\Phi\left(\left[\begin{array}{l}
x_1 \\
x_2
\end{array}\right]+\left[\begin{array}{l}
y_1 \\
y_2
\end{array}\right]\right) & =\left(x_1+y_1\right)+i\left(x_2+y_2\right)=x_1+i x_2+y_1+i y_2 \\
& =\Phi\left(\left[\begin{array}{l}
x_1 \\
x_2
\end{array}\right]\right)+\Phi\left(\left[\begin{array}{l}
y_1 \\
y_2
\end{array}\right]\right) \\
\Phi\left(\lambda\left[\begin{array}{l}
x_1 \\
x_2
\end{array}\right]\right) & =\lambda x_1+\lambda i x_2=\lambda\left(x_1+i x_2\right)=\lambda \Phi\left(\left[\begin{array}{l}
x_1 \\
x_2
\end{array}\right]\right) .
\end{aligned}
\tag{2.88}
\]

这也说明了为什么复数可以表示为 \(\mathbb{R}^2\) 中的元组:存在一个双射线性映射,可以将 \(\mathbb{R}^2\) 中元组的逐元素加法转换为对应加法的复数集合。请注意,我们这里只展示了线性性,而不是双射性。


定理 2.17(Axler (2015) 的定理 3.59)。有限维向量空间 \(V\) 和 \(W\) 是同构的,当且仅当 \(\operatorname{dim}(V)=\operatorname{dim}(W)\)。

定理 2.17 表明,存在一个线性、双射的映射在两个相同维度的向量空间之间。直观上,这意味着相同维度的向量空间在某种程度上是相同的,因为它们可以互相转换而不会遭受任何损失。

定理 2.17 还为我们提供了将 \(\mathbb{R}^{m \times n}\)(\(m \times n\) 矩阵的向量空间)和 \(\mathbb{R}^{mn}\)(长度为 \(mn\) 的向量的向量空间)视为相同的理由,因为它们的维度都是 \(mn\),并且存在一个线性、双射的映射将一个转换为另一个。

备注。考虑向量空间 \(V, W, X\)。那么:

  • 对于线性映射 \(\Phi: V \rightarrow W\) 和 \(\Psi: W \rightarrow X\),映射 \(\Psi \circ \Phi: V \rightarrow X\) 也是线性的。
  • 如果 \(\Phi: V \rightarrow W\) 是同构(isomorphism),那么 \(\Phi^{-1}: W \rightarrow V\) 也是同构。
  • 如果 \(\Phi: V \rightarrow W, \Psi: V \rightarrow W\) 是线性的,那么 \(\Phi+\Psi\) 和 \(\lambda \Phi, \lambda \in \mathbb{R}\),也是线性的。

2.7.1 线性映射的矩阵表示

任何 \(n\) 维向量空间都与 \(\mathbb{R}^n\) 同构(定理 2.17)。我们考虑一个 \(n\) 维向量空间 \(V\) 的基 \(\left\{\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right\}\)。在接下来的内容中,基向量的顺序很重要。因此,我们写作

\[B=\left(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right)
\tag{2.89}
\]

并称这个 \(n\) 元组为 \(V\) 的有序基。

备注(符号)。我们现在使用的符号有点复杂,因此我们在这里总结一些部分。\(B=\left(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right)\) 是一个有序基,\(\mathcal{B}=\left\{\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right\}\) 是一个(无序)基,\(\boldsymbol{B}=\left[\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right]\) 是一个矩阵,其列是向量 \(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\)。

定义 2.18(坐标)。考虑一个向量空间 \(V\) 和其有序基 \(B=\left(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right)\)。对于任何 \(\boldsymbol{x} \in V\),我们可以得到一个唯一的表示(线性组合)

\[\boldsymbol{x}=\alpha_1 \boldsymbol{b}_1+\ldots+\alpha_n \boldsymbol{b}_n
\]

其中 \(\alpha_1, \ldots, \alpha_n\) 是 \(\boldsymbol{x}\) 相对于 \(B\) 的坐标,并且向量

\[\boldsymbol{\alpha}=\left[\begin{array}{c}
\alpha_1 \\
\vdots \\
\alpha_n
\end{array}\right] \in \mathbb{R}^n
\]

是 \(\boldsymbol{x}\) 相对于有序基 \(B\) 的坐标向量/坐标表示

一个基实际上定义了一个坐标系。我们熟悉的二维笛卡尔坐标系是由标准基向量 \(\boldsymbol{e}_1, \boldsymbol{e}_2\) 张成的。在这个坐标系中,向量 \(\boldsymbol{x} \in \mathbb{R}^2\) 有一个表示,它告诉我们如何线性组合 \(\boldsymbol{e}_1\) 和 \(\boldsymbol{e}_2\) 来得到 \(\boldsymbol{x}\)。然而,\(\mathbb{R}^2\) 的任何基都定义了一个有效的坐标系,并且相同的向量 \(\boldsymbol{x}\) 在基 \(\left(\boldsymbol{b}_1, \boldsymbol{b}_2\right)\) 中可能有不同的坐标表示。在图 2.8 中,向量 \(\boldsymbol{x}\) 相对于标准基 \(\left(\boldsymbol{e}_1, \boldsymbol{e}_2\right)\) 的坐标是 \([2,2]^{\top}\)。然而,相对于基 \(\left(\boldsymbol{b}_1, \boldsymbol{b}_2\right)\),相同的向量 \(\boldsymbol{x}\) 表示为 \([1.09,0.72]^{\top}\),即 \(\boldsymbol{x}=1.09 \boldsymbol{b}_1+0.72 \boldsymbol{b}_2\)。在接下来的部分中,我们将探讨如何获得这种表示。




**例 2.20**

我们来看一个几何向量 \(\boldsymbol{x} \in \mathbb{R}^2\),其相对于 \(\mathbb{R}^2\) 的标准基 \(\left(\boldsymbol{e}_1, \boldsymbol{e}_2\right)\) 的坐标为 \([2,3]^{\top}\)。这意味着,我们可以写作 \(\boldsymbol{x}=2 \boldsymbol{e}_1+3 \boldsymbol{e}_2\)。然而,我们不必选择标准基来表示这个向量。如果我们使用基向量 \(\boldsymbol{b}_1=[1,-1]^{\top}\) 和 \(\boldsymbol{b}_2=[1,1]^{\top}\),我们将得到坐标 \(\frac{1}{2}[-1,5]^{\top}\) 来表示相对于 \(\left(\boldsymbol{b}_1, \boldsymbol{b}_2\right)\) 的相同向量(见图 2.9)。


备注。对于一个 \(n\) 维向量空间 \(V\) 和 \(V\) 的一个有序基 \(B\),映射 \(\Phi: \mathbb{R}^n \rightarrow V, \Phi\left(\boldsymbol{e}_i\right)=\boldsymbol{b}_i, i=1, \ldots, n\) 是线性的(根据定理 2.17,是一个同构),其中 \(\left(\boldsymbol{e}_1, \ldots, \boldsymbol{e}_n\right)\) 是 \(\mathbb{R}^n\) 的标准基。

现在我们已经准备好明确地建立矩阵与有限维向量空间之间的线性映射之间的联系。

定义 2.19(变换矩阵)。考虑向量空间 \(V\) 和 \(W\),它们分别有对应的(有序)基 \(B=\left(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right)\) 和 \(C=\left(\boldsymbol{c}_1, \ldots, \boldsymbol{c}_m\right)\)。此外,我们考虑一个线性映射 \(\Phi: V \rightarrow W\)。对于 \(j \in\{1, \ldots, n\}\),

\[\Phi\left(\boldsymbol{b}_j\right)=\alpha_{1 j} \boldsymbol{c}_1+\cdots+\alpha_{m j} \boldsymbol{c}_m=\sum_{i=1}^m \alpha_{i j} \boldsymbol{c}_i
\tag{2.92}
\]

是 \(\Phi\left(\boldsymbol{b}_j\right)\) 相对于 \(C\) 的唯一表示。然后,我们称 \(m \times n\) 矩阵 \(\boldsymbol{A}_{\Phi}\),其元素由下式给出

\[A_{\Phi}(i, j)=\alpha_{i j},
\tag{2.93}
\]

为 \(\Phi\) 的变换矩阵(相对于 \(V\) 的有序基 \(B\) 和 \(W\) 的有序基 \(C\))。

\(\Phi\left(\boldsymbol{b}_j\right)\) 相对于 \(W\) 的有序基 \(C\) 的坐标是 \(\boldsymbol{A}_{\Phi}\) 的第 \(j\) 列。考虑(有限维)向量空间 \(V, W\) 具有有序基 \(B, C\) 和线性映射 \(\Phi: V \rightarrow W\) 及其变换矩阵 \(\boldsymbol{A}_{\Phi}\)。如果 \(\hat{\boldsymbol{x}}\) 是 \(\boldsymbol{x} \in V\) 相对于 \(B\) 的坐标向量,\(\hat{\boldsymbol{y}}\) 是 \(\boldsymbol{y}=\Phi(\boldsymbol{x}) \in W\) 相对于 \(C\) 的坐标向量,那么

\[\hat{\boldsymbol{y}}=\boldsymbol{A}_{\Phi} \hat{\boldsymbol{x}} .
\tag{2.94}
\]

这意味着变换矩阵可以用来将相对于 \(V\) 中有序基的坐标映射为相对于 \(W\) 中有序基的坐标。


**例 2.21(变换矩阵)**

考虑一个同态 \(\Phi: V \rightarrow W\) 以及 \(V\) 的有序基 \(B=\left(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_3\right)\) 和 \(W\) 的有序基 \(C=\left(\boldsymbol{c}_1, \ldots, \boldsymbol{c}_4\right)\)。给定

\[\begin{aligned}
& \Phi\left(b_1\right)=c_1-c_2+3 c_3-c_4, \\
& \Phi\left(b_2\right)=2 c_1+c_2+7 c_3+2 c_4, \\
& \Phi\left(b_3\right)=3 c_2+c_3+4 c_4,
\end{aligned}
\tag{2.95}
\]

相对于 \(B\) 和 \(C\) 的变换矩阵 \(\boldsymbol{A}_{\Phi}\) 满足 \(\Phi\left(\boldsymbol{b}_k\right)=\sum_{i=1}^4 \alpha_{i k} \boldsymbol{c}_i, k=1, \ldots, 3\),其表示为

\[\boldsymbol{A}_{\Phi}=\left[\boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \boldsymbol{\alpha}_3\right]=\left[\begin{array}{ccc}
1 & 2 & 0 \\
-1 & 1 & 3 \\
3 & 7 & 1 \\
-1 & 2 & 4
\end{array}\right],
\tag{2.96}
\]

其中 \(\boldsymbol{\alpha}_j, j=1,2,3\),是 \(\Phi\left(\boldsymbol{b}_j\right)\) 相对于 \(C\) 的坐标向量。


图 2.10 给出了一组向量的三个线性变换示例。图 2.10(a) 展示了 \(\mathbb{R}^2\) 中的 400 个向量,每个向量由相应的 \((x_1, x_2)\) 坐标处的一个点表示。这些向量被排列在一个正方形中。当我们使用矩阵 \(\boldsymbol{A}_1\)(在公式 2.97 中)对这些向量的每一个进行线性变换时,我们得到了图 2.10(b) 中的旋转正方形。如果我们应用由 \(\boldsymbol{A}_2\) 表示的线性映射,我们将得到图 2.10(c) 中的矩形,其中每个 \(x_1\) 坐标被拉伸了 2 倍。图 2.10(d) 展示了使用 \(\boldsymbol{A}_3\) 进行线性变换后的原始正方形,它结合了反射、旋转和拉伸的效果。

2.7.2 基变换

在接下来的内容中,我们将更仔细地研究线性映射 \(\Phi: V \rightarrow W\) 的变换矩阵在我们改变 \(V\) 和 \(W\) 中的基时是如何变化的。考虑 \(V\) 的两个有序基

\[B=\left(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right), \quad \tilde{B}=\left(\tilde{\boldsymbol{b}}_1, \ldots, \tilde{\boldsymbol{b}}_n\right)
\tag{2.98}
\]

和 \(W\) 的两个有序基

\[C=\left(\boldsymbol{c}_1, \ldots, \boldsymbol{c}_m\right), \quad \tilde{C}=\left(\tilde{\boldsymbol{c}}_1, \ldots, \tilde{\boldsymbol{c}}_m\right)
\tag{2.99}
\]

此外,\(A_{\Phi} \in \mathbb{R}^{m \times n}\) 是相对于基 \(B\) 和 \(C\) 的线性映射 \(\Phi: V \rightarrow W\) 的变换矩阵,而 \(\tilde{\boldsymbol{A}}_{\Phi} \in \mathbb{R}^{m \times n}\) 是相对于 \(\tilde{B}\) 和 \(\tilde{C}\) 的相应变换矩阵。接下来,我们将研究 \(\boldsymbol{A}\) 和 \(\tilde{\boldsymbol{A}}\) 是如何关联的,即如果我们选择从 \(B, C\) 改变基到 \(\tilde{B}, \tilde{C}\),我们是否可以/如何将 \(\boldsymbol{A}_{\Phi}\) 转换为 \(\tilde{A}_{\Phi}\)。

备注。我们实际上得到了恒等映射 \(\mathrm{id}_V\) 的不同坐标表示。在图 2.9 的上下文中,这意味着在不改变向量 \(\boldsymbol{x}\) 的情况下,将相对于 \(\left(\boldsymbol{e}_1, \boldsymbol{e}_2\right)\) 的坐标映射到相对于 \(\left(b_1, b_2\right)\) 的坐标。通过改变基和相应地改变向量的表示,相对于这个新基的变换矩阵可以有一个特别简单的形式,这允许进行直接的计算。


**例 2.23(基变换)**

考虑一个相对于 \(\mathbb{R}^2\) 中的标准基的变换矩阵

\[\boldsymbol{A}=\left[\begin{array}{ll}
2 & 1 \\
1 & 2
\end{array}\right]
\tag{2.100}
\]

如果我们定义一个新的基

\[B=\left(\left[\begin{array}{l}
1 \\
1
\end{array}\right],\left[\begin{array}{c}
1 \\
-1
\end{array}\right]\right)
\tag{2.101}
\]

我们将获得一个对角变换矩阵

\[\tilde{\boldsymbol{A}}=\left[\begin{array}{ll}
3 & 0 \\
0 & 1
\end{array}\right]
\tag{2.102}
\]

相对于基 \(B\),其比 \(\boldsymbol{A}\) 更容易处理。


接下来,我们将研究将一个基下的坐标向量变换为另一个基下的坐标向量的映射。我们将首先陈述主要结果,然后提供解释。

定理 2.20(基变换)。对于线性映射 \(\Phi: V \rightarrow W\),\(V\) 的有序基

\[B=\left(\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\right), \quad \tilde{B}=\left(\tilde{\boldsymbol{b}}_1, \ldots, \tilde{\boldsymbol{b}}_n\right)
\tag{2.103}
\]

和 \(W\) 的有序基

\[C=\left(\boldsymbol{c}_1, \ldots, \boldsymbol{c}_m\right), \quad \tilde{C}=\left(\tilde{\boldsymbol{c}}_1, \ldots, \tilde{\boldsymbol{c}}_m\right)
\tag{2.104}
\]

以及相对于基 \(B\) 和 \(C\) 的 \(\Phi\) 的变换矩阵 \(\boldsymbol{A}_{\Phi}\),相对于基 \(\tilde{B}\) 和 \(\tilde{C}\) 的相应变换矩阵 \(\tilde{A}_{\Phi}\) 由下式给出:

\[\tilde{A}_{\Phi}=\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} S
\tag{2.105}
\]

这里,\(S \in \mathbb{R}^{n \times n}\) 是将相对于 \(\tilde{B}\) 的坐标映射到相对于 \(B\) 的坐标的 \(\mathrm{id}_V\) 的变换矩阵,而 \(\boldsymbol{T} \in \mathbb{R}^{m \times m}\) 是将相对于 \(\tilde{C}\) 的坐标映射到相对于 \(C\) 的坐标的 \(\mathrm{id}_W\) 的变换矩阵。

证明 遵循 Drumm 和 Weil (2001) 的方法,我们可以将 \(V\) 的新基 \(\tilde{B}\) 的向量表示为基 \(B\) 的基向量的线性组合,使得

\[\tilde{\boldsymbol{b}}_j=s_{1 j} \boldsymbol{b}_1+\cdots+s_{n j} \boldsymbol{b}_n=\sum_{i=1}^n s_{i j} \boldsymbol{b}_i, \quad j=1, \ldots, n .
\tag{2.106}
\]

同样,我们将 \(W\) 的新基向量 \(\tilde{C}\) 表示为基 \(C\) 的基向量的线性组合,得到

\[\tilde{\boldsymbol{c}}_k=t_{1 k} \boldsymbol{c}_1+\cdots+t_{m k} \boldsymbol{c}_m=\sum_{l=1}^m t_{l k} \boldsymbol{c}_l, \quad k=1, \ldots, m .
\tag{2.107}
\]

我们定义 \(\boldsymbol{S} = (s_{ij}) \in \mathbb{R}^{n \times n}\) 为变换矩阵,它将相对于 \(\tilde{B}\) 的坐标映射到相对于 \(B\) 的坐标,定义 \(\boldsymbol{T} = (t_{lk}) \in \mathbb{R}^{m \times m}\) 为变换矩阵,它将相对于 \(\tilde{C}\) 的坐标映射到相对于 \(C\) 的坐标。特别地,\(\boldsymbol{S}\) 的第 \(j\) 列是 \(\tilde{\boldsymbol{b}}_j\) 相对于 \(B\) 的坐标表示,\(\boldsymbol{T}\) 的第 \(k\) 列是 \(\tilde{\boldsymbol{c}}_k\) 相对于 \(C\) 的坐标表示。注意,\(\boldsymbol{S}\) 和 \(\boldsymbol{T}\) 都是正则矩阵。

我们将从两个角度来观察 \(\Phi(\tilde{\boldsymbol{b}}_j)\)。首先,应用映射 \(\Phi\),我们得到对于所有的 \(j=1, \ldots, n\):

其中我们首先将新的基向量 \(\tilde{\boldsymbol{c}}_k \in W\) 表示为基向量 \(\boldsymbol{c}_l \in W\) 的线性组合,然后交换求和的顺序。

或者,当我们将 \(\tilde{\boldsymbol{b}}_j \in V\) 表示为 \(\boldsymbol{b}_j \in V\) 的线性组合时,我们得到

在这里,我们利用了 \(\Phi\) 的线性特性。比较公式 (2.108) 和 (2.109b),可以得出对于所有的 \(j=1, \ldots, n\) 和 \(l=1, \ldots, m\) 有

\[\sum_{k=1}^m t_{l k} \tilde{a}_{k j}=\sum_{i=1}^n a_{l i} s_{i j}
\tag{2.110}
\]

因此,

\[\boldsymbol{T} \tilde{\boldsymbol{A}}_{\Phi}=\boldsymbol{A}_{\Phi} \boldsymbol{S} \in \mathbb{R}^{m \times n},
\tag{2.111}
\]

这样就有

\[\tilde{A}_{\Phi}=T^{-1} A_{\Phi} S,
\tag{2.112}
\]

这证明了定理 2.20。

定理 2.20 告诉我们,当 \(V\) 中的基(\(B\) 被 \(\tilde{B}\) 取代)和 \(W\) 中的基(\(C\) 被 \(\tilde{C}\) 取代)发生变化时,线性映射 \(\Phi: V \rightarrow W\) 的变换矩阵 \(\boldsymbol{A}_{\Phi}\) 被替换为等效矩阵 \(\tilde{\boldsymbol{A}}_{\Phi}\),其关系为:

\[\tilde{A}_{\Phi}=T^{-1} A_{\Phi} S .
\tag{2.113}
\]

图 2.11 说明了这种关系:考虑一个同态映射 \(\Phi: V \rightarrow W\) 及 \(V\) 的有序基 \(B, \tilde{B}\) 和 \(W\) 的有序基 \(C, \tilde{C}\)。映射 \(\Phi_{C B}\) 是 \(\Phi\) 的一个实例,将 \(B\) 的基向量映射到 \(C\) 的基向量的线性组合。假设我们知道 \(\Phi_{C B}\) 的变换矩阵 \(\boldsymbol{A}_{\Phi}\),对应于有序基 \(B, C\)。当我们在 \(V\) 中从 \(B\) 到 \(\tilde{B}\) 和在 \(W\) 中从 \(C\) 到 \(\tilde{C}\) 进行基变换时,我们可以确定相应的变换矩阵 \(\tilde{\boldsymbol{A}}_{\Phi}\) 如下

  • 首先,我们找到线性映射 \(\Psi_{B \tilde{B}}: V \rightarrow V\) 的矩阵表示,该映射将相对于新基 \(\tilde{B}\) 的坐标映射到(唯一的)相对于“旧”基 \(B\) 的坐标(在 \(V\) 中)。
  • 然后,我们使用 \(\Phi_{C B}: V \rightarrow W\) 的变换矩阵 \(\boldsymbol{A}_{\Phi}\) 将这些坐标映射到 \(W\) 中相对于 \(C\) 的坐标。
  • 最后,我们使用线性映射 \(\Xi_{\tilde{C} C}: W \rightarrow W\) 将相对于 \(C\) 的坐标映射到相对于 \(\tilde{C}\) 的坐标。因此,我们可以将线性映射 \(\Phi_{\tilde{C} \tilde{B}}\) 表示为涉及“旧”基的线性映射的组合:
\[\Phi_{\tilde{C} \tilde{B}}=\Xi_{\tilde{C} C} \circ \Phi_{C B} \circ \Psi_{B \tilde{B}}=\Xi_{C \tilde{C}}^{-1} \circ \Phi_{C B} \circ \Psi_{B \tilde{B}} .
\tag{2.114}
\]

具体来说,我们使用 \(\Psi_{B \tilde{B}}=\operatorname{id}_V\) 和 \(\Xi_{C \tilde{C}}=\mathrm{id}_W\),即将向量映射到其自身的恒等映射,但相对于不同的基。

图 2.11 对于同态映射 \(\Phi: V \rightarrow W\) 以及 \(V\) 的有序基 \(B, \tilde{B}\) 和 \(W\) 的有序基 \(C, \tilde{C}\)(用蓝色标记),我们可以将相对于基 \(\tilde{B}, \tilde{C}\) 的映射 \(\Phi_{\tilde{C} \tilde{B}}\) 等效地表示为同态映射 \(\Phi_{\tilde{C} \tilde{B}}=\) \(\Xi_{\tilde{C} C} \circ \Phi_{C B} \circ \Psi_{B \tilde{B}}\) 的组合,其下标表示了相应的基。相应的变换矩阵用红色标出。

定义 2.21(等价)。如果存在正则矩阵 \(S \in \mathbb{R}^{n \times n}\) 和 \(\boldsymbol{T} \in \mathbb{R}^{m \times m}\),使得 \(\tilde{A} = T^{-1} A S\),那么两个矩阵 \(\boldsymbol{A}, \tilde{A} \in \mathbb{R}^{m \times n}\) 是等价的

定义 2.22(相似)。如果存在正则矩阵 \(S \in \mathbb{R}^{n \times n}\) 使得 \(\tilde{A} = \boldsymbol{S}^{-1} \boldsymbol{A} \boldsymbol{S}\),那么两个矩阵 \(\boldsymbol{A}, \tilde{A} \in \mathbb{R}^{n \times n}\) 是相似的

备注。相似矩阵总是等价的。然而,等价矩阵不一定是相似的。

备注。考虑向量空间 \(V, W, X\)。从定理 2.17 后的备注中我们已经知道,对于线性映射 \(\Phi: V \rightarrow W\) 和 \(\Psi: W \rightarrow X\),映射 \(\Psi \circ \Phi: V \rightarrow X\) 也是线性的。对于相应映射的变换矩阵 \(\boldsymbol{A}_{\Phi}\) 和 \(\boldsymbol{A}_{\Psi}\),整体变换矩阵为 \(\boldsymbol{A}_{\Psi \circ \Phi} = \boldsymbol{A}_{\Psi} \boldsymbol{A}_{\Phi}\)。

根据这一说明,我们可以从组合线性映射的角度来看待基变换:

  • \(\boldsymbol{A}_{\Phi}\) 是相对于基 \(B, C\) 的线性映射 \(\Phi_{C B}: V \rightarrow W\) 的变换矩阵。
  • \(\tilde{A}_{\Phi}\) 是相对于基 \(\tilde{B}, \tilde{C}\) 的线性映射 \(\Phi_{\tilde{C} \tilde{B}}: V \rightarrow W\) 的变换矩阵。
  • \(S\) 是相对于基 \(B, \tilde{B}\) 的线性映射 \(\Psi_{B \tilde{B}}: V \rightarrow V\)(自同构)的变换矩阵,它用 \(B\) 来表示 \(\tilde{B}\)。通常,\(\Psi=\mathrm{id}_V\) 是 \(V\) 中的恒等映射。
  • \(\boldsymbol{T}\) 是相对于基 \(C, \tilde{C}\) 的线性映射 \(\Xi_{C \tilde{C}}: W \rightarrow W\)(自同构)的变换矩阵,它用 \(C\) 来表示 \(\tilde{C}\)。通常,\(\Xi=\mathrm{id}_W\) 是 \(W\) 中的恒等映射。

如果我们(非正式地)只根据基来写下这些变换,那么 \(\boldsymbol{A}_{\Phi}: B \rightarrow C, \tilde{\boldsymbol{A}}_{\Phi}: \tilde{B} \rightarrow \tilde{C}, \boldsymbol{S}: \tilde{B} \rightarrow B, \boldsymbol{T}: \tilde{C} \rightarrow C\) 和 \(\boldsymbol{T}^{-1}: C \rightarrow \tilde{C}\),并且

\[\begin{align*}
\tilde{B} \rightarrow \tilde{C} & =\tilde{B} \rightarrow B \rightarrow C \rightarrow \tilde{C} \tag{2.115} \\
\tilde{\boldsymbol{A}}_{\Phi} & =\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} \boldsymbol{S} .\tag{2.116}
\end{align*}
\]

注意,公式 (2.116) 中的执行顺序是从右到左的,因为向量是在右侧进行相乘的,所以 \(\boldsymbol{x} \mapsto \boldsymbol{S} \boldsymbol{x} \mapsto \boldsymbol{A}_{\Phi}(\boldsymbol{S} \boldsymbol{x}) \mapsto T^{-1}\left(A_{\Phi}(S x)\right)=\tilde{\boldsymbol{A}}_{\Phi} x\)。


**示例 2.24(基变换)**

考虑一个线性映射 \(\Phi: \mathbb{R}^3 \rightarrow \mathbb{R}^4\),其变换矩阵为

\[\boldsymbol{A}_{\Phi}=\left[\begin{array}{ccc}
1 & 2 & 0 \\
-1 & 1 & 3 \\
3 & 7 & 1 \\
-1 & 2 & 4
\end{array}\right]
\tag{2.117}
\]

相对于标准基

\[B=\left(\left[\begin{array}{l}
1 \\
0 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
1 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
0 \\
1
\end{array}\right]\right), \quad C=\left(\left[\begin{array}{l}
1 \\
0 \\
0 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
1 \\
0 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
0 \\
1 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
0 \\
0 \\
1
\end{array}\right]\right) .
\tag{2.118}
\]

我们要找出相对于新基

\[\tilde{B}=\left(\left[\begin{array}{l}
1 \\
1 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
1 \\
1
\end{array}\right],\left[\begin{array}{l}
1 \\
0 \\
1
\end{array}\right]\right) \in \mathbb{R}^3, \quad \tilde{C}=\left(\left[\begin{array}{l}
1 \\
1 \\
0 \\
0
\end{array}\right],\left[\begin{array}{l}
1 \\
0 \\
1 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
1 \\
1 \\
0
\end{array}\right],\left[\begin{array}{l}
1 \\
0 \\
0 \\
1
\end{array}\right]\right) .
\tag{2.119}
\]

下的变换矩阵 \(\tilde{\boldsymbol{A}}_{\Phi}\)。

\[\boldsymbol{S}=\left[\begin{array}{lll}
1 & 0 & 1 \\
1 & 1 & 0 \\
0 & 1 & 1
\end{array}\right], \quad \boldsymbol{T}=\left[\begin{array}{llll}
1 & 1 & 0 & 1 \\
1 & 0 & 1 & 0 \\
0 & 1 & 1 & 0 \\
0 & 0 & 0 & 1
\end{array}\right]
\tag{2.120}
\]

其中 \(S\) 的第 \(i\) 列是 \(\tilde{\boldsymbol{b}}_i\) 相对于基 \(B\) 的坐标表示。由于 \(B\) 是标准基,坐标表示很容易找到。对于一般基 \(B\),我们需要解线性方程组以找到 \(\lambda_i\) 使得 \(\sum_{i=1}^3 \lambda_i \boldsymbol{b}_i=\tilde{\boldsymbol{b}}_j, j=1, \ldots, 3\)。类似地,\(T\) 的第 \(j\) 列是 \(\tilde{c}_j\) 相对于基 \(C\) 的坐标表示。

因此,我们得到

\[\begin{align*}
\tilde{\boldsymbol{A}}_{\Phi} & =\boldsymbol{T}^{-1} \boldsymbol{A}_{\Phi} \boldsymbol{S}=\frac{1}{2}\left[\begin{array}{cccc}
1 & 1 & -1 & -1 \\
1 & -1 & 1 & -1 \\
-1 & 1 & 1 & 1 \\
0 & 0 & 0 & 2
\end{array}\right]\left[\begin{array}{ccc}
3 & 2 & 1 \\
0 & 4 & 2 \\
10 & 8 & 4 \\
1 & 6 & 3
\end{array}\right] \tag{2.121a} \\
& =\left[\begin{array}{ccc}
-4 & -4 & -2 \\
6 & 0 & 0 \\
4 & 8 & 4 \\
1 & 6 & 3
\end{array}\right] . \tag{2.121b}
\end{align*}
\]

在第4章中,我们将能够利用基变换的概念找到一个基,使得自同态的变换矩阵具有特别简单的(对角)形式。在第10章中,我们将研究一个数据压缩问题,并找到一个方便的基,我们可以将数据投影到这个基上,同时最小化压缩损失。

3.7.3 像和核

线性映射的像和核是具有某些重要性质的向量子空间。接下来,我们将更仔细地描述它们。

定义 2.23(像和核)。

对于 \(\Phi: V \rightarrow W\),我们定义 核/零空间

\[\operatorname{ker}(\Phi):=\Phi^{-1}\left(\mathbf{0}_W\right)=\left\{\boldsymbol{v} \in V: \Phi(\boldsymbol{v})=\mathbf{0}_W\right\}
\]

像/值域

\[\operatorname{Im}(\Phi):=\Phi(V)=\{\boldsymbol{w} \in W \mid \exists \boldsymbol{v} \in V: \Phi(\boldsymbol{v})=\boldsymbol{w}\}
\]

我们也分别称 \(V\) 和 \(W\) 为 \(\Phi\) 的定义域和值域。

直观上,核是 \(\Phi\) 映射到 \(W\) 中的中性元素 \(\mathbf{0}_W \in W\) 的向量集 \(\boldsymbol{v} \in V\)。像是可以通过 \(\Phi\) 从 \(V\) 中任何向量“到达”的向量 \(\boldsymbol{w} \in W\) 的集合。图 2.12 中给出了一个示意图。

备注。考虑一个线性映射 \(\Phi: V \rightarrow W\),其中 \(V, W\) 是向量空间。

  • \(\Phi\left(\mathbf{0}_V\right)=\mathbf{0}_W\) 总是成立,因此 \(\mathbf{0}_V \in \operatorname{ker}(\Phi)\)。特别是,零空间永远不会为空。
  • \(\operatorname{Im}(\Phi) \subseteq W\) 是 \(W\) 的一个子空间,而 \(\operatorname{ker}(\Phi) \subseteq V\) 是 \(V\) 的一个子空间。
  • 当且仅当 \(\operatorname{ker}(\Phi)=\{\mathbf{0}\}\) 时,\(\Phi\) 是单射(injective)(一一对应)。

注释(零空间和列空间)。我们考虑 \(\boldsymbol{A} \in \mathbb{R}^{m \times n}\) 和一个线性映射 \(\Phi: \mathbb{R}^n \rightarrow \mathbb{R}^m, \boldsymbol{x} \mapsto \boldsymbol{A x}\)。

  • 对于 \(\boldsymbol{A}=\left[\boldsymbol{a}_1, \ldots, \boldsymbol{a}_n\right]\),其中 \(\boldsymbol{a}_i\) 是 \(\boldsymbol{A}\) 的列,我们得到
\[\begin{align*}
\operatorname{Im}(\Phi) & =\left\{\boldsymbol{A} \boldsymbol{x}: \boldsymbol{x} \in \mathbb{R}^n\right\}=\left\{\sum_{i=1}^n x_i \boldsymbol{a}_i: x_1, \ldots, x_n \in \mathbb{R}\right\} \tag{2.124a} \\
& =\operatorname{span}\left[\boldsymbol{a}_1, \ldots, \boldsymbol{a}_n\right] \subseteq \mathbb{R}^m \tag{2.124b}
\end{align*}
\]

即,像是 \(\boldsymbol{A}\) 列的张成空间,也称为 列空间。因此,列空间(像)是 \(\mathbb{R}^m\) 的一个子空间,其中 \(m\) 是矩阵的“高度”。

  • \(\operatorname{rk}(\boldsymbol{A})=\operatorname{dim}(\operatorname{Im}(\Phi))\)。
  • 核/零空间 \(\operatorname{ker}(\Phi)\) 是齐次线性方程组(homogeneous system of linear equations) \(\boldsymbol{A x}=\mathbf{0}\) 的通解,并且包含了所有可能的 \(\mathbb{R}^n\) 中的元素的线性组合,它们产生 \(\mathbf{0} \in \mathbb{R}^m\)。
  • 核是 \(\mathbb{R}^n\) 的一个子空间,其中 \(n\) 是矩阵的“宽度”。
  • 核关注列之间的关系,我们可以用它来确定是否/如何将一列表示为其他列的线性组合。

**示例 2.25(线性映射的像和核)**

映射

\[\begin{align*}
\Phi: \mathbb{R}^4 \rightarrow \mathbb{R}^2, \quad\left[\begin{array}{l}
x_1 \\
x_2 \\
x_3 \\
x_4
\end{array}\right] & \mapsto\left[\begin{array}{cccc}
1 & 2 & -1 & 0 \\
1 & 0 & 0 & 1
\end{array}\right]\left[\begin{array}{l}
x_1 \\
x_2 \\
x_3 \\
x_4
\end{array}\right]=\left[\begin{array}{c}
x_1+2 x_2-x_3 \\
x_1+x_4
\end{array}\right] \tag{2.125a} \\
& =x_1\left[\begin{array}{l}
1 \\
1
\end{array}\right]+x_2\left[\begin{array}{l}
2 \\
0
\end{array}\right]+x_3\left[\begin{array}{c}
-1 \\
0
\end{array}\right]+x_4\left[\begin{array}{l}
0 \\
1
\end{array}\right] \tag{2.125b}
\end{align*}
\]

是线性的。为了确定 \(\operatorname{Im}(\Phi)\),我们可以取变换矩阵列的张成空间,得到

\[\operatorname{Im}(\Phi)=\operatorname{span}\left[\left[\begin{array}{l}
1 \\
1
\end{array}\right],\left[\begin{array}{l}
2 \\
0
\end{array}\right],\left[\begin{array}{c}
-1 \\
0
\end{array}\right],\left[\begin{array}{l}
0 \\
1
\end{array}\right]\right]
\tag{2.126}
\]

为了计算 \(\Phi\) 的核(零空间),我们需要解 \(\boldsymbol{A} \boldsymbol{x}=\mathbf{0}\),即需要解一个齐次方程组。为此,我们使用高斯消元法将 \(\boldsymbol{A}\) 转换为简化行最简形式:

\[\left[\begin{array}{cccc}
1 & 2 & -1 & 0 \\
1 & 0 & 0 & 1
\end{array}\right] \rightsquigarrow \cdots \rightsquigarrow\left[\begin{array}{cccc}
1 & 0 & 0 & 1 \\
0 & 1 & -\frac{1}{2} & -\frac{1}{2}
\end{array}\right] .
\tag{2.127}
\]

这个矩阵是简化行最简形式,我们可以使用 Minus 1 Trick 计算核的一个基(参见第 2.3.3 节)。或者,我们可以将非主元列(第 3 列和第 4 列)表示为主元列(第 1 列和第 2 列)的线性组合。第三列 \(\boldsymbol{a}_3\) 等于 \(-\frac{1}{2}\) 倍的第二列 \(\boldsymbol{a}_2\)。因此,\(\mathbf{0}=\boldsymbol{a}_3+\frac{1}{2} \boldsymbol{a}_2\)。同样地,我们看到 \(\boldsymbol{a}_4=\boldsymbol{a}_1-\frac{1}{2} \boldsymbol{a}_2\),因此 \(\mathbf{0}=\boldsymbol{a}_1-\frac{1}{2} \boldsymbol{a}_2-\boldsymbol{a}_4\)。总的来说,这给出了核(零空间)为

\[\operatorname{ker}(\Phi)=\operatorname{span}[\left[\begin{array}{l}
0 \\
\frac{1}{2} \\
1 \\
0
\end{array}\right],\left[\begin{array}{c}
-1 \\
\frac{1}{2} \\
0 \\
1
\end{array}\right]]
\tag{2.128}
\]

定理 2.24(秩-零化度定理)。对于 向量空间 \(V\) 和 \(W\) 以及 线性映射 \(\Phi: V \rightarrow W\),有

\[\operatorname{dim}(\operatorname{ker}(\Phi))+\operatorname{dim}(\operatorname{Im}(\Phi))=\operatorname{dim}(V) .
\tag{2.129}
\]

秩-零化度定理也被称为线性映射的基本定理(Axler, 2015, 定理 3.22)。以下是定理 2.24 的直接推论:

  • 如果 \(\operatorname{dim}(\operatorname{Im}(\Phi)) < \operatorname{dim}(V)\),则 \(\operatorname{ker}(\Phi)\) 是非平凡的,即核包含除了 \(\mathbf{0}_V\) 之外的元素,且 \(\operatorname{dim}(\operatorname{ker}(\Phi)) \geqslant 1\)。
  • 如果 \(\boldsymbol{A}_{\Phi}\) 是相对于某个有序基的 \(\Phi\) 的变换矩阵,并且 \(\operatorname{dim}(\operatorname{Im}(\Phi)) < \operatorname{dim}(V)\),则线性方程组 \(\boldsymbol{A}_{\Phi} \boldsymbol{x} = \mathbf{0}\) 有无穷多解。
  • 如果 \(\operatorname{dim}(V) = \operatorname{dim}(W)\),则以下三者等价:
\[\Phi \text{ 是单射 } \Longleftrightarrow \Phi \text{ 是满射 } \Longleftrightarrow \Phi \text{ 是双射 }
\]

因为 \(\operatorname{Im}(\Phi) \subseteq W\)。

阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings的更多相关文章

  1. How do I learn mathematics for machine learning?

    https://www.quora.com/How-do-I-learn-mathematics-for-machine-learning   How do I learn mathematics f ...

  2. machine learning(14) --Regularization:Regularized linear regression

    machine learning(13) --Regularization:Regularized linear regression Gradient descent without regular ...

  3. Note for video Machine Learning and Data Mining——Linear Model

    Here is the note for lecture three. the linear model Linear model is a basic and important model in ...

  4. Machine Learning - week 2 - Multivariate Linear Regression

    Multiple Features 上一章中,hθ(x) = θ0 + θ1x,表示只有一个 feature.现在,有多个 features,所以 hθ(x) = θ0 + θ1x1 + θ2x2 + ...

  5. Andrew Ng 的 Machine Learning 课程学习 (week2) Linear Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  6. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(1):二阶与三阶行列式、全排列及其逆序数

    @ 目录 前言 二阶与三阶行列式 二阶行列式 三阶行列式 全排列及其逆序数 全排列 逆序数 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ...

  7. Machine Learning 学习笔记2 - linear regression with one variable(单变量线性回归)

    一.Model representation(模型表示) 1.1 训练集 由训练样例(training example)组成的集合就是训练集(training set), 如下图所示, 其中(x,y) ...

  8. [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率

    单变量线性回归(Linear Regression with One Variable) 什么是线性回归?线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方 ...

  9. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  10. 机器学习(Machine Learning)&深度学习(Deep Learning)资料

    <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...

随机推荐

  1. HTML——标签元素的两大类

    块级标签(block) – 独占一行 内联标签(inline) – 按文本内容占位 div标签和span标签 <div>只是一个块级元素,并无实际的意义.主要通过CSS样式为其赋予不同的表 ...

  2. jQuery实现简单的模态框

    <!-- jquery模态框 --> <!DOCTYPE html> <html lang="en"> <head> <met ...

  3. 工作流Activiti 迁移 Camunda

    后端操作 意思就是: ①更改maven②改包名.类名③改bpmn model中语法④检查迁移后有哪些功能缺失了 1.更改maven 改为 2.换包名.类名 意思就是将  org.activiti.*  ...

  4. Android 13 - Media框架(29)- MediaCodec(四)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 上一节我们了解了如何通过 onInputBufferAvailable 和 getInputBuffer 获取到 input buffer inde ...

  5. docker创建容器数据持久化资源限制基础命令

    1. docker简介和核心概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使 ...

  6. MySQL学习笔记-存储引擎

    存储引擎 一. MySQL体系结构 MySQL Server 连接层:连接的处理.认证授权.安全方案.检查是否超过最大连接数等. 服务层:SQL接口.解析器.查询优化器.缓存 引擎层:引擎是数据存储和 ...

  7. 安装图形化界面时候报错 Transaction check error: file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x86_64 conflicts with file from package grub2-common-1:2.02-0.65.el7.centos.2.noarch

    报错 Transaction check error:file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x8 ...

  8. 利用nodejs的require.context来实现不用写impor导入组件

    先给你们看下目录结构 stuendt和teacharts还有util是同级 主要是componentRegister.js文件 function changStr(str) { return str. ...

  9. “Newtonsoft.Json”已拥有为“Microsoft.CSharp”定义的依赖项。

    安装较低版本的Newtonsoft.Json: Newtonsoft.Json官网:https://www.nuget.org/packages/Newtonsoft.Json/ Install-Pa ...

  10. npm ERR! code EPERM npm ERR! syscall open npm ERR! path C:\Program Files\nodejs\node_cache\_cacache\

    报错信息 让人摸不着头脑的报错 解决方式 简单粗暴 直接删文件 方法1:需要删除npmrc文件. 强调:不是nodejs安装目录npm模块下的那个npmrc文件 而是在C:\Users{账户}\下的. ...