Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

机器人具身智能本质上是在高维向量空间中做决策:相机图像被编码成向量,语言指令被编码成向量,机器人状态也是向量,而控制策略、神经网络权重本质上都是矩阵运算。本节的目标,是让读者掌握这些“向量–矩阵世界”的基本语法,并能把它们自然联想到后面关于深度学习、强化学习和机器人控制的内容。


1.1.1 向量与矩阵运算(内积、范数、矩阵分块)

1.1.1.1 内积(点积)的定义与几何意义(投影、正交)

在实数空间 \(\mathbb{R}^n\) 中,两个列向量

\[ \mathbf{x} = \begin{bmatrix} x_1\ \vdots\ x_n \end{bmatrix},\quad \mathbf{y} = \begin{bmatrix} y_1\ \vdots\ y_n \end{bmatrix} \]

内积(点积) 定义为:

\[ \mathbf{x}^\top \mathbf{y} = \sum_{i=1}^n x_i y_i. \]

这是一个非常简单的代数运算,但它有关键的几何意义:

  • 记 \(|\mathbf{x}|\) 和 \(|\mathbf{y}|\) 为向量的长度(\(L_2\) 范数,见下一小节),\(\theta\) 为两向量的夹角,则有

    \[ \mathbf{x}^\top \mathbf{y} = |\mathbf{x}||\mathbf{y}| \cos\theta. \]

    也就是说,内积同时编码了长度方向相似度

    • 若 \(\mathbf{x}^\top \mathbf{y} > 0\):夹角小于 \(90^\circ\),大致“同向”;
    • 若 \(\mathbf{x}^\top \mathbf{y} < 0\):夹角大于 \(90^\circ\),大致“反向”;
    • 若 \(\mathbf{x}^\top \mathbf{y} = 0\):夹角为 \(90^\circ\),称为正交(orthogonal)。
  • 投影:向量 \(\mathbf{y}\) 在方向 \(\mathbf{x}\) 上的投影为

    \[ \operatorname{proj}_{\mathbf{x}}(\mathbf{y}) = \frac{\mathbf{x}^\top \mathbf{y}}{|\mathbf{x}|^2}\mathbf{x}. \]

    系数 \(\dfrac{\mathbf{x}^\top \mathbf{y}}{|\mathbf{x}|^2}\) 表示 \(\mathbf{y}\) 在 \(\mathbf{x}\) 方向上“有多少”。

【图 1-1 占位:二维平面中两个向量 \(\mathbf{x}\)、\(\mathbf{y}\),示意 \(\mathbf{y}\) 在 \(\mathbf{x}\) 方向上的投影,并标出夹角 \(\theta\)。】

在机器人具身智能中,内积有许多直接应用:

  • 视觉–语言模型 中,图像与文本被编码为向量,常用它们的 归一化内积(余弦相似度) 衡量句子是否描述了这张图。
  • 机器人控制 中,速度向量在某个轴上的分量,就是速度向量与该轴的单位向量的内积;比如沿机械臂某个关节轴的线速度,正是速度在该方向上的投影。

1.1.1.2 向量范数的定义、常见类型及物理含义

直观上,范数(norm 就是向量“有多大”的度量。形式上,范数是从向量空间到非负实数的函数 \(|\cdot|\),并满足三个性质:非负性、齐次性和三角不等式。(维基百科)

常见的向量范数包括:

  • L2 范数(欧几里得范数)

    \[ |\mathbf{x}|_2 = \sqrt{\sum_{i=1}^n x_i^2}. \]

    这是我们最熟悉的“直线距离”,在几何上就是从原点到点 \(\mathbf{x}\) 的直线长度(ApX Machine Learning)。 物理上可以理解为位移长度速度大小力的大小 等。

  • L1 范数(曼哈顿范数)

    \[ |\mathbf{x}|_1 = \sum_{i=1}^n |x_i|. \]

    可以理解为沿坐标轴走到该点时所需要走的“总路程”,类似在棋盘或城市街区中只能沿南北东西方向走路的距离。

  • \(L_\infty\) 范数(最大范数)

    \[ |\mathbf{x}|_\infty = \max_i |x_i|. \]

    表示所有坐标分量中绝对值最大的那一个,常用来度量最坏方向上的误差

在机器学习和机器人领域:

  • L2 范数常用于定义损失函数中的距离,如均方误差(MSE),或在正则项中约束参数大小;
  • L1 范数常用于稀疏性正则(Lasso),鼓励模型把某些参数压到 0;
  • 在移动机器人导航中,如果机器人只能在网格上上下左右移动,路径长度往往更接近 L1 范数而非 L2 范数。

1.1.1.3 矩阵的基本运算与分块方法

矩阵 可以看作是数字的二维数组,也可以看作从一个向量空间到另一个向量空间的线性变换的表示。

  • 若 \(A\in\mathbb{R}^{m\times n}\),\(B\in\mathbb{R}^{m\times n}\),则

    • 矩阵加法:\((A+B)_{ij} = A_{ij}+B_{ij}\);
    • 标量乘法:\((\alpha A)_{ij} = \alpha A_{ij}\)。
  • 若 \(A\in\mathbb{R}^{m\times n}\),\(B\in\mathbb{R}^{n\times p}\),则矩阵乘法 \(C=AB\in\mathbb{R}^{m\times p}\) 定义为

    \[ C_{ij} = \sum_{k=1}^n A_{ik} B_{kj}. \]

    这对应于先做变换 \(B\),再做变换 \(A\):对向量 \(\mathbf{x}\),有 \(AB\mathbf{x} = A(B\mathbf{x})\)。

在机器人中,一个矩阵可以表示坐标变换刚体运动线性化后的雅可比矩阵 等,多个矩阵相乘就是连续施加多个变换。

矩阵分块(block matrix)是处理大矩阵的常用技巧。 例如,将一个 \(m\times n\) 矩阵按行列分成四块:

\[ A= \begin{bmatrix} A_{11} & A_{12}\ A_{21} & A_{22} \end{bmatrix}, \]

其中 \((A_{11})\) 是上左角的小矩阵,\((A_{12}, A_{21}, A_{22})\) 类似。对分块矩阵的相加、相乘遵循“块”层面的同样规则(尺寸匹配时)。

【图 1-2 占位:示意一个大矩阵被分成 2×2 的四个子矩阵块,每块用不同颜色标记。】

在实际工程中,分块可以自然地把系统拆成“状态–控制”“位置–速度”等部分,有助于推导和实现复杂控制算法。


1.1.2 线性变换与基变换、子空间概念

1.1.2.1 线性变换的定义及矩阵表示

设 \(T:\mathbb{R}^n\to\mathbb{R}^m\),如果对任意向量 \(\mathbf{x},\mathbf{y}\) 和任意标量 \(\alpha\) 都有

\[ T(\mathbf{x} + \mathbf{y}) = T(\mathbf{x}) + T(\mathbf{y}),\quad T(\alpha \mathbf{x}) = \alpha T(\mathbf{x}), \]

则称 \(\displaystyle T\) 为一个线性变换

在给定的一组基(如标准基)下,每个线性变换都可以用一个矩阵 \(A\in \mathbb{R}^{m\times n}\) 来表示,使得

\[ T(\mathbf{x}) = A\mathbf{x}. \]

常见的几类线性变换及其矩阵表示:

  • 缩放(沿坐标轴伸缩)

    \[ A = \begin{bmatrix} s_x & 0\ 0 & s_y \end{bmatrix} \Rightarrow \begin{bmatrix} x’\ y’ \end{bmatrix} =\begin{bmatrix} s_x x\ s_y y \end{bmatrix}. \]

  • 二维旋转(绕原点旋转角度 \(\theta\))

    \[ R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta\ \sin\theta & \cos\theta \end{bmatrix}. \]

【图 1-3 占位:二维平面上展示一个向量经过旋转矩阵作用前后的关系,标注旋转角度 \(\theta\)。】

在机器人学中,我们会大量使用“旋转矩阵 + 平移向量”来描述姿态与坐标变换,都是线性代数在三维空间的具体体现(详见第 6 章)。

1.1.2.2 基变换(坐标系转换)

基(basis) 是一组线性无关的向量,它们的线性组合可以表示空间中的任意向量。 在 \(\mathbb{R}^2\) 中,标准基是

\[ \mathbf{e}_1= \begin{bmatrix} 1\ 0 \end{bmatrix},\quad \mathbf{e}_2= \begin{bmatrix} 0\ 1 \end{bmatrix}. \]

但我们也可以选用别的基,例如 \(\mathbf{b}_1 = \begin{bmatrix}1\1\end{bmatrix},\ \mathbf{b}_2=\begin{bmatrix}-1\1\end{bmatrix}\),它们同样线性无关,也能生成整个平面。

同一个几何向量,在不同基下的坐标不同。 如果 \({\mathbf{e}_i}\) 与 \({\mathbf{b}_i}\) 是两组基,令

\[ P = [\mathbf{b}_1\ \mathbf{b}_2\ \cdots\ \mathbf{b}_n] \]

即把新基向量按列排成矩阵,则对任意向量 \(\mathbf{v}\),它在标准基下的坐标 \([\mathbf{v}]_{\text{std}}\) 与在新基下的坐标 \([\mathbf{v}]_{\text{new}}\) 关系是:

\[ [\mathbf{v}]_{\text{std}} = P,[\mathbf{v}]_{\text{new}},\quad [\mathbf{v}]_{\text{new}} = P^{-1},[\mathbf{v}]_{\text{std}}. \]

【图 1-4 占位:二维平面中,原来的 x–y 坐标系与旋转后的新坐标系 \(\mathbf{b}_1,\mathbf{b}_2\),同一个点在两套坐标系中的表示。】

在机器人中:

  • 不同关节、末端执行器、摄像头都有自己的坐标系;
  • “手眼标定”就是精确计算这些坐标系之间的变换(后面第 6 章、3 章会反复出现);
  • 基变换的本质,就是把向量在不同“观察视角”下重新表达。

1.1.2.3 向量子空间与维度

一个非空子集 \(U\subseteq \mathbb{R}^n\),若对任意 \(\mathbf{x},\mathbf{y}\in U\) 和任意标量 \(\alpha,\beta\),有

\[ \alpha \mathbf{x} + \beta \mathbf{y} \in U, \]

则称 \(\displaystyle U\) 为一个向量子空间

简单例子:

  • 通过原点的一条直线(如所有 \(\displaystyle (t,2t)\) 的集合)是 \(\mathbb{R}^2\) 的一维子空间;
  • 通过原点的一张平面是 \(\mathbb{R}^3\) 的二维子空间。

维度(dimension) 是指一组基中向量的个数,也就是子空间中“互相独立方向”的数目。维度可以理解为这个子空间所需的自由度 个数。

与矩阵相关的典型子空间包括:

  • 列空间(column space):所有列向量的线性组合,表示线性变换输出可能落在的子空间;
  • 零空间 / 核(null space):所有满足 \(A\mathbf{x}=0\) 的向量集合,表示“被变换压缩成 0 的方向”。

线性代数中的一个重要结果(秩–零化度定理)表明: 对 \(A:\mathbb{R}^n\to\mathbb{R}^m\),有

\[ \dim(\text{Im}(A)) + \dim(\text{Ker}(A)) = n, \]

即“输出空间维度 + 被压扁成 0 的方向数 = 原空间维度”。这在理解“冗余自由度”“约束”等概念时非常有用。


1.1.3 特征值、特征向量与对角化

1.1.3.1 特征值与特征向量的定义和求解

给定一个 \(n\times n\) 矩阵 \(\displaystyle A\),非零向量 \(\mathbf{v}\in\mathbb{R}^n\) 若满足

\[ A\mathbf{v} = \lambda \mathbf{v} \]

其中标量 \(\lambda\) 为实数(或复数),则称 \(\mathbf{v}\) 是 \(\displaystyle A\) 的一个特征向量(eigenvector),\(\lambda\) 是对应的** 特征值(eigenvalue)**。

几何含义:在变换 \(\displaystyle A\) 下,大多数向量的方向都会改变,但特征向量的方向保持不变,仅被拉伸或压缩了一个倍数 \(\lambda\) 。这使得特征向量成为“最容易理解的方向”。

求解方法(简要):

  1. 将方程改写为 \((A - \lambda I)\mathbf{v} = 0\)。
  2. 要有非零解,需要 \(\det(A - \lambda I) = 0\)。 这得到关于 \(\lambda\) 的多项式,称为特征多项式
  3. 解出所有特征值 \(\lambda_i\),再对每个 \(\lambda_i\) 解线性方程组 \((A-\lambda_i I)\mathbf{v}=0\),得到对应的特征向量。

特征值分解(eigendecomposition)正是围绕这些特征值、特征向量对矩阵进行因式分解,是后续对角化和 SVD、PCA 的基础。(维基百科)

在动态系统中,\(|\lambda|>1\) 的特征值通常对应不稳定方向,\(|\lambda|<1\) 对应收缩方向,这在分析机器人控制系统的稳定性时非常重要。

1.1.3.2 矩阵对角化

若一个 \(n\times n\) 矩阵 \(\displaystyle A\) 有 \(\displaystyle n\) 个线性无关的特征向量 \(\mathbf{v}_1,\dots,\mathbf{v}_n\),将它们按列组成矩阵

\[ P = [\mathbf{v}_1,\mathbf{v}_2,\cdots,\mathbf{v}_n], \]

再将对应特征值排成对角矩阵

\[ \Lambda = \operatorname{diag}(\lambda_1,\dots,\lambda_n), \]

则有

\[ A = P\Lambda P^{-1}. \]

这称为矩阵的对角化,也称为特征分解的一种形式。(维基百科)

  • 若 \(\displaystyle A\) 是实对称矩阵(\(A=A^\top\)),则由谱定理可知:
    • 所有特征值均为实数;
    • 可选择一组正交特征向量,此时 \(\displaystyle P\) 是正交矩阵(\(P^{-1}=P^\top\)), 对角化形式为 \(A = P\Lambda P^\top\)。(维基百科)

【图 1-5 占位:示意矩阵 \(\displaystyle A\) 通过对角化表示为“先在特征向量基下坐标变换 \((P^{-1})\) ,再沿坐标轴缩放 \(\Lambda\),再变回原基 \(\displaystyle P\)”的几何图。】

不是所有矩阵都能对角化;如果特征向量数量不够(例如出现“缺陷矩阵”),就不能写成上述形式。

1.1.3.3 对角化在计算中的作用

对角化最大的好处,是把复杂的矩阵运算变成了逐元素的标量运算 。例如:

  • 计算矩阵高次幂 若 \(A=P\Lambda P^{-1}\),则

    \[ A^k = P\Lambda^k P^{-1}, \]

    而 \(\Lambda^k\) 仅需把对角线元素 \(\lambda_i\) 各自做 \(\displaystyle k\) 次方即可。

  • 计算函数 \(f(A)\)(如指数矩阵 \((e^A)\)、多项式 \((A^2 + A + I)\) 等)也可以通过

    \[ f(A) = P f(\Lambda) P^{-1} \]

    实现,其中 \(f(\Lambda)\) 对角线上为 \(f(\lambda_i)\)。

在机器学习和机器人中,对角化及其推广(如谱分解、SVD)经常用于:

  • 分析协方差矩阵,得到主成分(即 PCA);
  • 对系统的线性近似进行模态分解,识别系统的主振动模式或主变化方向;
  • 简化数值计算,提高算法稳定性。

1.1.4 奇异值分解(SVD)与主成分分析(PCA)

1.1.4.1 奇异值分解的形式及各部分含义

对任意实矩阵 \(A\in \mathbb{R}^{m\times n}\),总可以写成

\[ A = U\Sigma V^\top, \]

其中:

  • \(U\in\mathbb{R}^{m\times m}\):列向量为左奇异向量,构成一个正交基(\(U^\top U = I_m\));
  • \(V\in\mathbb{R}^{n\times n}\):列向量为右奇异向量,也构成正交基(\(V^\top V = I_n\));
  • \(\Sigma\in\mathbb{R}^{m\times n}\):对角矩阵(主对角线非负,其他为 0),对角线元素 \(\sigma_1\ge \sigma_2\ge \dots\ge 0\) 称为奇异值(singular values) 。(维基百科)

几何上,SVD 可以理解为:

  1. \(V^\top\):在输入空间中做一次旋转(或反射),把坐标轴对齐到“最重要方向”上;
  2. \(\Sigma\):沿这些坐标轴进行不同程度的缩放(奇异值大小);
  3. \(\displaystyle U\):在输出空间中再做一次旋转(或反射)。

【图 1-6 占位:二维椭圆通过 SVD 分解为“旋转–拉伸–再旋转”的示意,标出左右奇异向量及奇异值。】

重要性质:\(A^\top A\) 与 \(AA^\top\) 的特征分解与 SVD 紧密相关,\(\sigma_i^2\) 是 \(A^\top A\) 的特征值,这一性质直接连接到 PCA。

1.1.4.2 主成分分析利用 SVD 降维

主成分分析(PCA) 是经典的线性降维方法。给定数据矩阵 \(X \in \mathbb{R}^{N\times d}\)(N 条样本,每条 d 维特征),经过中心化(每列减去均值)后,其协方差矩阵为

\[ C = \frac{1}{N} X^\top X. \]

PCA 的目标是寻找一组正交方向,使得数据在这些方向上的方差最大 。可以证明,这些方向正是协方差矩阵 \(\displaystyle C\) 的特征向量,而对应特征值大小反映在该方向上的方差大小。(维基百科)

另一方面,对中心化后的 \(\displaystyle X\) 做 SVD:

\[ X = U\Sigma V^\top, \]

则:

  • \(\displaystyle V\) 的列向量就是 PCA 的主成分方向
  • \(\Sigma\) 的对角线元素与各主成分上的方差成正比。

因此,PCA 实际上可以通过 SVD 来高效实现:取前 \(\displaystyle k\) 个最大的奇异值及对应的右奇异向量,就能将数据从 \(\displaystyle d\) 维降到 \(\displaystyle k\) 维,且在均方误差意义下是最优的低秩近似(Eckart–Young 定理) 。(arXiv)

1.1.4.3 SVD/PCA 在图像和数据降维中的应用示例

  1. 图像压缩 将一张灰度图像表示成矩阵 \(\displaystyle A\)(行列为像素坐标,元素为灰度值),做 SVD:

    \[ A \approx U_k \Sigma_k V_k^\top \]

    只保留前 \(\displaystyle k\) 个奇异值和对应列向量,就得到一个秩为 \(\displaystyle k\) 的近似。这时:

【图 1-7 占位:左图原始图像,中间为 rank-5 近似,右图为 rank-20 近似,对比可视化 SVD 压缩效果。】

  • 存储量从原来的 \(mn\) 降到大约 \(k(m+n)\);
  • 若选择合适的 \(\displaystyle k\),肉眼几乎感觉不到图像质量下降。
  1. 数据去噪与可视化 在高维数据中,噪声通常分布在方差较小的方向上。PCA 只保留方差较大的前几个主成分,可以自动抑制噪声,同时把数据降到 2D/3D 以利于可视化。
  2. 机器人与具身智能中的应用
    • 将高维视觉特征、关节状态组合成的状态向量压缩到低维“任务子空间”,从而提高强化学习、控制算法的效率;
    • 在多机器人的大规模示教数据中,用 PCA/SVD 发现最主要的运动模式。

1.1.5 在线性代数视角下理解深度学习(表示空间、低秩近似)

1.1.5.1 向量表示空间

深度学习中,“向量表示(embedding)”几乎无处不在:

  • 自然语言中的词、句子通过嵌入层映射到 \(\mathbb{R}^d\);
  • 图像经过卷积网络或视觉 Transformer 编码后变成特征向量;
  • 机器人状态(关节角、速度、力、接触信息等)也常被进一步映射到一个“潜在空间”。

在这些表示空间中:

  • 内积/余弦相似度衡量两个对象在语义上的接近程度;
  • 线性组合 \(\alpha \mathbf{v}_1 + \beta \mathbf{v}_2\) 可以看作是“在语义上介于两者之间”的某种插值;
  • 子空间可以表示某类特定属性(例如“抓取相关特征子空间”“语言指令中的空间关系子空间”)。

从线性代数角度看,大模型的许多“奇妙能力”,例如插值生成、线性属性操作(如词向量中的“king - man + woman ≈ queen”现象),都依赖于向量空间结构良好的几何性质。

1.1.5.2 低秩近似

秩(rank) 反映了矩阵中“真正独立的方向”的个数。许多深度模型的权重矩阵在训练后实际上是“接近低秩”的:虽然形状可能是 \(d\times d\),但有效信息主要集中在少数几个方向上。

对权重矩阵 \(W \in \mathbb{R}^{m\times n}\) 做 SVD:

\[ W = U\Sigma V^\top, \]

只保留前 \(\displaystyle k\) 个奇异值和向量,得到 \((W_k)\):

\[ W_k = U_k\Sigma_k V_k^\top, \]

它是 \(\displaystyle W\) 在 Frobenius 范数意义下的最优秩 \(\displaystyle k\) 近似 。(arXiv)

工程上常用的做法是直接把矩阵分解为两个较小的矩阵:

\[ W \approx AB^\top,\quad A\in\mathbb{R}^{m\times k},\ B\in\mathbb{R}^{n\times k}, \]

这样原本 \(mn\) 个参数变成 \(k(m+n)\) 个,当 \(k\ll \min(m,n)\) 时会大幅降低参数量和计算量。这类思想在:

  • 模型压缩与加速(如卷积核低秩近似、Transformer 的低秩注意力);
  • 参数高效微调(如 LoRA、Adapter 等将在第 2 章详细介绍)

中被广泛使用。

【图 1-8 占位:示意一个大的权重矩阵被分解为两个瘦长矩阵相乘,说明参数数量减少。】

1.1.5.3 利用特征向量理解神经网络权重矩阵的模式

线性代数还可以帮助我们理解深度网络“学到了什么”。

  • 对一个层的权重矩阵 \(\displaystyle W\) 做 SVD,右奇异向量(或特征向量)对应输入空间的“主要变化方向”,左奇异向量对应输出空间的“主要响应模式”;奇异值大小则表明该方向的重要性。(维基百科)
  • 在卷积层中,将卷积核视作矩阵后做 SVD,可以发现网络偏好检测的纹理、边缘、方向等模式。
  • 在机器人控制中,对线性化后的动力学模型矩阵(如雅可比矩阵、惯量矩阵)进行特征分解,可以识别出“容易运动的方向”和“难以运动的方向”,有利于设计更高效的控制策略。

这些分析方法为后续章节中的“可解释性”“模型诊断”“控制稳定性分析”提供了理论工具。


本节从向量与矩阵的基本运算出发,逐步引入了线性变换、子空间、特征值与特征向量、SVD 与 PCA,并点到为止地联系了深度学习和机器人具身智能中的典型应用。在后续章节中,我们会在模型结构、优化算法、视觉–语言–动作表示等具体场景中反复使用这些概念;熟练掌握本节内容,就掌握了进入 VLA 与机器人学习世界所需的“线性代数通行证”。