2.3.1 卷积神经网络(CNN)基本结构与感受野
卷积神经网络是现代视觉感知的“工作马”,几乎所有机器人视觉系统——从桌面机械臂抓取、移动机器人导航,到自动驾驶感知——都在某种形式上依赖 CNN。与前面介绍的全连接网络相比,CNN 利用了图像的“局部性”和“平移不变性”,大幅减少参数并提升泛化能力。
2.3.1.1 卷积运算
从直觉上看,卷积就是拿一个小窗口(卷积核,kernel),在图像上滑动,在每个位置做“加权求和”,得到该位置的特征响应。每种卷积核都在寻找一种特定的局部模式:水平边缘、垂直边缘、角点、某种纹理等。
设输入为三通道图像 \(x \in \mathbb{R}^{H \times W \times C}\),卷积核大小为 \(K_h \times K_w\),通道数与输入相同,为 \(\displaystyle C\),则输出特征图某个通道在位置 \(\displaystyle (i,j)\) 的值可写成:
\[ y_{i,j} = \sum_{c=1}^{C} \sum_{m=0}^{K_h-1} \sum_{n=0}^{K_w-1} w_{c,m,n} , x_{c,i+m,j+n} + b, \]
其中 \(\displaystyle w\) 是卷积核参数,\(\displaystyle b\) 是偏置。通过在空间上滑动卷积核,可以得到一整张输出特征图。步幅(stride)控制滑动步长,填充(padding)决定是否在边界补零以控制输出大小。(cs231n.github.io)
与全连接层相比,卷积有两个核心特点:
- 局部连接:每个输出神经元只与输入的一个局部区域相连,而不是与整张图像相连。
- 参数共享:同一个卷积核在不同位置复用,检测“同一种模式在不同位置是否存在”。
这样的设计使 CNN 特别适合图像和深度图等“具有空间结构”的输入:对于机器人而言,无论物体出现在图像左上角还是右下角,只要模式相同,卷积核都能给出相似的响应。
【图 2-XX:2D 卷积运算示意图——3×3 卷积核在灰度图像上滑动,标出一个位置处的卷积计算过程(图片占位)】
2.3.1.2 CNN 层级结构
单层卷积只能看到很局部的模式;而深度 CNN 通过多层堆叠,逐步从“像素”上升到“语义”。
典型 CNN 的主干结构可以抽象为反复堆叠的模块:
卷积层(Conv) → 非线性激活(如 ReLU)→(可选)池化或下采样
底层卷积核通常会学到非常简单的局部特征,例如水平或垂直边缘、角点等;中层逐渐聚合这些低级特征,形成纹理、局部形状(如圆弧、孔洞);高层则组合出更抽象的概念,如物体部件(车轮、桌面边缘)乃至整个物体类别的典型轮廓。(cs231n.github.io)
对于具身智能中的机器人,这种层级表示非常关键:
- 底层特征帮忙分辨边缘、空隙等几何信息,有利于抓取点或障碍物边界的估计;
- 高层特征则更多编码“这是杯子”“这是抽屉把手”这样的语义信息,方便上层决策模块根据人类指令(如“拿起杯子”)去关联对应视觉区域。
【图 2-XX:CNN 层级特征示意图——从输入图像开始,展示浅层特征图(突出边缘)、中层特征图(纹理/轮廓)、深层特征图(物体部件)(图片占位)】
2.3.1.3 感受野
感受野(receptive field) 指的是,网络中某一层的一个神经元在原始输入上“能看到”的区域大小——即输入图像中有哪一块区域会影响到这个神经元的输出。(AI Summer)
需要特别区分:
- 卷积核大小:某一层卷积操作本身的窗口大小,例如 3×3、5×5。
- 感受野大小:考虑到前面所有层(卷积、池化、下采样)的组合效果后,高层单元在原始输入上的覆盖范围。
一个简单例子:连续堆叠两层 3×3、stride=1 的卷积(假设无池化),看起来每层都只看 3×3 的局部,但第二层的每个神经元实际上已经“间接看到了”输入的 5×5 区域——第一层每个单元看 3×3,第二层再在这些单元上卷积 3×3,两者叠加扩张了实际感受野。随着层数增加,感受野会越来越大。(ultralytics.com)
更严格地,若第 \(\displaystyle l\) 层卷积核大小为 \((k_l)\),步幅为 \((s_l)\),则可以递推该层感受野大小 \((r_l)\) 和“步距” \((j_l)\):
\[ \begin{aligned} r_l &= r_{l-1} + (k_l - 1), j_{l-1}, j_l &= j_{l-1} \cdot s_l, \end{aligned} \]
其中第 0 层(输入)有 \((r_0 = 1, j_0 = 1)\)。我们不必在实践中手算所有层的感受野,但要形成直觉:
- 堆叠小卷积核(例如多层 3×3)可以渐进扩大感受野;
- 下采样(stride 或池化)会让每个高层单元对应更大的输入区域。
更进一步的研究指出,有效感受野(effective receptive field) 往往比理论计算的小——中心区域对输出影响最大,边缘区域的权重逐渐减弱,大致近似高斯分布。(NeurIPS Proceedings)
对机器人来说,感受野大小直接影响行为安全性与全局规划能力:
- 如果用于抓取的视觉特征感受野太小,模型可能只看到目标物体的一角,而忽略桌边、障碍物等关键信息;
- 在导航任务中,如果高层特征感受野不足,机器人难以从单帧图像中理解整个通道或房间布局,会造成局部最优、反复“来回试探”。
后续 2.3.2 中的池化与特征金字塔,以及 3 章中的视觉主干选择,本质上都在围绕“如何在不同尺度与足够大的感受野之间做平衡”。
【图 2-XX:感受野随网络深度扩大的示意图——三层 3×3 卷积叠加后,高层单元对应输入上较大的方块区域(图片占位)】
2.3.2 池化、下采样与特征金字塔
卷积层负责发现局部模式,而池化和下采样 则在空间尺度上“压缩信息”,构建多尺度表示。对于机器人来说,这关系到:
- 模型是否能在有限算力下实时运行;
- 是否能同时识别远处的大物体和近处的小物体;
- 是否对相机轻微抖动、物体位置的小变化保持鲁棒。
2.3.2.1 池化层
池化(Pooling) 是在局部窗口内对特征进行聚合的操作,其输入是一张特征图,输出为尺寸更小的特征图。常见形式包括最大池化(Max Pooling)和平均池化(Average Pooling)。(geeksforgeeks.org)
设输入特征图为 \(x \in \mathbb{R}^{H \times W \times C}\),池化窗口大小为 \(f \times f\),步幅为 \(\displaystyle s\),则最大池化可写成:
\[ y_{i,j,c} = \max_{0 \le m, n < f} x_{is+m,, js+n,, c}, \]
平均池化则是取窗口内所有值的平均。
从效果上看:
- 最大池化:保留局部区域内最强的激活,适合回答“这里是否存在某种特征”;
- 平均池化:平均化局部响应,更关注整体强度,起到一定平滑和去噪作用;
- 全局平均池化(Global Average Pooling):对整张特征图在空间维度上取平均,将每个通道压缩为一个数,常用来替代最后的全连接层。(Towards AI)
池化的主要作用包括:(Milvus)
- 降低空间维度:缩小特征图尺寸,减少后续层的参数和计算量;
- 抑制过拟合:通过聚合邻域信息,减少模型对单个像素噪声的敏感度;
- 提升平移不变性:微小位置偏移在池化后往往不会改变聚合结果,使模型对物体位置变化更鲁棒。
在机器人视觉中,池化有助于应对:相机轻微抖动、机器人自身微小位姿变化导致的图像差异,使感知对高层任务而言更加“稳定”。
【图 2-XX:池化层示意图——左侧为输入特征图,局部 2×2 区域通过最大池化或平均池化被压缩成单个值,右侧为下采样后的特征图(图片占位)】
2.3.2.2 下采样的作用
下采样(Downsampling) 并不局限于显式的池化层,使用卷积层时将步幅设为大于 1(如 stride=2)同样可以实现下采样效果。(cs231n.github.io)
从信号处理的视角看,下采样会丢失部分高频细节,但带来几个重要好处:
- 扩大有效感受野 每向下采样一次,后续卷积层的每一个单元对应的输入区域就成倍扩大。几层卷积 + 下采样之后,高层特征能“看到”更大的场景,用较小的特征图表达更大范围的信息,这对理解全局布局至关重要。
- 降低计算成本 特征图尺寸每缩小一半,后续卷积的计算量大致缩小为原来的四分之一。对于需要高帧率感知的机器人系统,下采样是控制推理时间的关键手段。
- 提高尺度与平移鲁棒性 多次下采样后的特征更关注粗尺度的语义结构,对物体位置、大小的小幅变化不敏感。这使机器人在不同距离观察同一物体时仍能做出相似判断。(Milvus)
当然,下采样也带来一个明显问题:小物体信息容易在多次压缩后消失 。例如桌面上的螺丝、插头,或者远处的路标、行人,如果在感知链路中过早、过多地下采样,最终用于决策的高层特征中可能再也看不到这些小目标。这正是后面特征金字塔与 FPN 要解决的问题。
【图 2-XX:下采样级联示意——一张输入图像经过若干层卷积+下采样,特征图从 256×256 逐步缩小到 128×128、64×64、32×32 等(图片占位)】
2.3.2.3 特征金字塔应用
特征金字塔(Feature Pyramid) 的思想源自传统计算机视觉中的图像金字塔:通过对输入图像做多次下采样,在不同尺度上进行处理,从而同时兼顾大物体和小物体。深度学习时代的特征金字塔进一步利用了 CNN 各层天然具有不同分辨率的特征图。(CVF开放获取)
Feature Pyramid Network(FPN) 是这一思想的代表性结构,其核心设计包括:(CVF开放获取)
- 自下而上的路径(Bottom-up) 主干 CNN(如 ResNet)逐层下采样,得到一系列从高分辨率到低分辨率的特征图。浅层特征分辨率高但语义弱,深层特征分辨率低但语义强。
- 自上而下的路径(Top-down) 将最深层、语义最强的特征图通过上采样(如最近邻或双线性插值)逐层放大,再与对应的浅层特征通过横向连接(lateral connections)相加或拼接,让每一层既保留高分辨率,又拥有足够的语义信息。
- 多尺度检测头 在构成的金字塔每一层上分别布置检测头:高分辨率层负责小物体,中等分辨率层负责中等物体,低分辨率层负责大物体。实践表明,FPN 极大提升了小物体检测性能,已成为现代目标检测框架(如 Faster R-CNN、RetinaNet)的标准组件。(arXiv)
在机器人具身智能领域,多尺度特征的价值同样显著:
- 桌面操作中,机器人既要看清“桌子整体布局”(大尺度),又要准确识别“插头孔位、螺丝孔、瓶盖刻度”(小尺度);
- 移动机器人或自动驾驶,需要同时感知远处道路结构和近处行人脚步、小物体障碍物;
- 在复杂场景中,小目标(开关、按钮)往往决定任务是否成功,FPN 等结构因此常被用于机器人视觉感知前端。
【图 2-XX:FPN 结构示意图——底部为 CNN backbone 的多层特征图,自上而下路径通过上采样和横向连接构成多尺度特征金字塔,每一层连接到相应检测头(图片占位)】
CNN、池化、下采样和特征金字塔共同构成了现代机器人视觉中的“基础设施”。在此基础上,我们还需要处理另一类核心数据:时间序列,这正是下一小节 RNN/LSTM/GRU 所要解决的问题。
2.3.3 RNN / LSTM / GRU 的基本结构与局限性
具身智能不仅要看“这一帧是什么样子”,还要理解“之前发生了什么”、“接下来会发生什么”。机器人每一步的决策都依赖历史观测、动作和隐含的环境状态,这天然是一个时间序列问题。循环神经网络(Recurrent Neural Networks, RNN)及其门控变体 LSTM、GRU 是在 Transformer 出现之前,处理序列数据的主力模型。
2.3.3.1 RNN
循环神经网络(RNN) 的核心思想是:在每个时间步 \(\displaystyle t\),不仅处理当前输入 \((x_t)\),还维护一个隐藏状态 \((h_t)\),用于“记住”此前的信息。更新可以写成:(Amazon Web Services, Inc.)
\[ \begin{aligned} h_t &= \phi(W_x x_t + W_h h_{t-1} + b), y_t &= W_y h_t + c, \end{aligned} \]
其中 \(\phi\) 通常是非线性函数(如 \(\tanh\))。如果把 RNN 沿时间轴展开,可以看到它是一条链式结构:同一个单元在每个时间步重复使用,参数在时间维度共享。
直观理解:
- \((h_t)\) 相当于到目前为止序列的“压缩记忆”;
- 给定整个输入序列 \(x_1, x_2, \dots, x_T\),RNN 依次递推,得到隐藏状态序列 \(h_1, \dots, h_T\) 和输出序列 \(y_1, \dots, y_T\)。
在机器人场景中,RNN 可以用来:
- 处理关节角度、速度、力矩等时间序列,预测未来状态或控制信号;
- 对连续的视觉特征序列进行建模,例如从视频序列中推断物体动态;
- 建模传感器序列(IMU、力传感器)以检测异常模式。
然而,基础 RNN 存在明显缺陷:反向传播过程中的梯度在时间维很容易出现 ** 消失或爆炸**,使得网络难以学习长时间跨度的依赖关系。这正是 LSTM 和 GRU 被提出的背景。(ResearchGate)
【图 2-XX:RNN 展开结构示意——单个 RNN 单元在多个时间步重复,显示输入 x_t、隐藏状态 h_t 的递推关系(图片占位)】
2.3.3.2 LSTM
长短期记忆网络(Long Short-Term Memory, LSTM) 通过引入显式的“记忆单元”和门控机制,缓解了普通 RNN 的长期依赖问题。(arXiv)
LSTM 的核心是两条状态:
- 单元状态 \((c_t)\):用于长期存储信息,相对“直通”,可跨越多个时间步几乎不变;
- 隐藏状态 \((h_t)\):对外暴露的状态,用于当前预测。
以及三个门:
- 遗忘门 \((f_t)\):决定保留多少旧记忆;
- 输入门 \((i_t)\):决定写入多少新信息;
- 输出门 \((o_t)\):决定暴露多少记忆给当前输出。
一组典型的更新公式是:
\[ \begin{aligned} f_t &= \sigma(W_f [x_t, h_{t-1}] + b_f), i_t &= \sigma(W_i [x_t, h_{t-1}] + b_i), g_t &= \tanh(W_g [x_t, h_{t-1}] + b_g), c_t &= f_t \odot c_{t-1} + i_t \odot g_t, o_t &= \sigma(W_o [x_t, h_{t-1}] + b_o), h_t &= o_t \odot \tanh(c_t), \end{aligned} \]
其中 \(\sigma\) 是 sigmoid,\(\odot\) 为逐元素乘。
直觉上:
- 如果遗忘门 \((f_t)\) 接近 1,输入门 \((i_t)\) 接近 0,则 \(c_t \approx c_{t-1}\),网络就会“几乎原样地”把记忆传下去;
- 如果遗忘门接近 0,输入门接近 1,则 LSTM 会丢弃旧记忆并写入新内容。
这一机制使得 LSTM 在许多序列任务(语言建模、语音识别、时间序列预测等)上远优于普通 RNN,也更擅长处理长距离依赖。(arXiv)
在机器人具身智能中,可以用 LSTM 来建模:
- 长时间的操作序列,例如“开门→进入→关门→走向桌子→抓取杯子→放进柜子”,帮助机器人记住所处阶段;
- 复杂环境动态,例如预测移动障碍物的轨迹。
但 LSTM 的代价也很明显:结构复杂、参数较多,计算量大,训练时间长。这在算力受限、需要实时响应的机器人平台上,有时会成为瓶颈。(Medium)
【图 2-XX:LSTM 单元结构示意——展示 c_t 的水平流动、f/i/o 三个门与候选更新 g_t 的乘加路径(图片占位)】
2.3.3.3 GRU
门控循环单元(Gated Recurrent Unit, GRU) 是 LSTM 的一种简化变体,试图在保持长期依赖建模能力的同时减少参数数量与计算复杂度。(ResearchGate)
GRU 只有一个状态 \((h_t)\),不再区分 \((c_t)\) 和 \((h_t)\),并使用两个门:
- 更新门 \((z_t)\):在“保留旧记忆”和“写入新记忆”之间做权衡;
- 重置门 \((r_t)\):决定在计算当前候选状态时,参考过去记忆的程度。
典型更新公式为:
\[ \begin{aligned} z_t &= \sigma(W_z [x_t, h_{t-1}] + b_z), r_t &= \sigma(W_r [x_t, h_{t-1}] + b_r), \tilde{h}_t &= \tanh(W_h [x_t, r_t \odot h_{t-1}] + b_h), h_t &= (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t. \end{aligned} \]
直觉上:
- 若 \((z_t)\) 很小,\((h_t)\) 接近旧状态 \((h_{t-1})\);
- 若 \((z_t)\) 很大,则更多采用新候选状态 \(\tilde{h}_t\)。
GRU 相比 LSTM 有更少的门、更少的矩阵乘法,在许多任务上能获得相近甚至更好的性能,同时训练和推理速度更快;这对实时性要求高的机器人场景尤其有吸引力。(Medium)
【图 2-XX:GRU 单元结构示意——显示更新门、重置门以及新旧状态的加权合成路径(图片占位)】
2.3.3.4 序列建模局限
尽管 RNN / LSTM / GRU 在一段时间内是序列建模的主角,至今仍在很多工业系统中发挥作用,但在机器人具身智能这一更复杂的场景下,它们也暴露出一些核心局限,为后续 Transformer 类架构的出现埋下伏笔。(arXiv)
- 对极长序列依然吃力 LSTM 和 GRU 相比基本 RNN 大幅改善了梯度消失问题,但在需要建模数百甚至上千步依赖的场景中(例如几十分钟的多阶段任务),训练仍然困难,模型往往倾向于只利用较近的历史。对于希望“记住用户最开头指令细节”的家庭服务机器人,这是明显瓶颈。
- 时间维度无法并行 RNN 家族在时间维度上具有天然的顺序依赖:\((h_t)\) 必须先计算 \((h_{t-1})\)。这导致训练和推理都难以在时间轴上做大规模并行。相比之下,卷积和自注意力可以同时处理整个序列,大幅提升训练效率。对于需要处理高帧率传感数据或长时间视频的机器人系统,这种串行计算会严重限制模型规模和性能。(geeksforgeeks.org)
- 优化敏感、调参成本高 RNN 的训练对学习率、梯度裁剪阈值、序列截断长度等超参数都较为敏感,很容易出现梯度爆炸(loss 突然变成 NaN)或收敛到次优。对于实际机器人系统,工程团队往往无法像离线 NLP 训练那样反复尝试多套配置,这限制了其大规模应用。(alinlab.kaist.ac.kr)
- 难以直接建模“任意远”的交互 在 RNN 框架下,所有历史信息被“压缩”进一个向量序列 \(\displaystyle (h_t)\),模型难以显式知道“当前决策依赖于哪几个关键时间点”。而基于自注意力的模型可以通过注意力权重直接连接任意两个时间步,更容易表达“当前动作需要参考 20 步之前那次观察”的模式,也更易于可视化和解释。(geeksforgeeks.org)
- 多模态长序列融合能力有限 在具身智能任务中,我们常常需要同时处理:视觉特征序列、语言指令 token 序列、机器人状态轨迹等多种模态。如果全部塞进一个 RNN,其隐藏状态必须非常高维才能容纳这些信息,训练难度和参数规模都迅速膨胀;而多头自注意力则更自然地支持在不同模态、不同时间步之间建立稀疏而有结构的相关性。
综合来看,RNN / LSTM / GRU 在处理短到中等长度的序列、传统时间序列预测任务时依然有用,也在早期机器人控制与预测中发挥了重要作用。但随着数据规模增大、序列变长、模态变多、并行计算硬件发展,自注意力与 Transformer 架构逐渐成为主流选择。下一节将从自注意力机制切入,系统介绍 Transformer 如何在时间与空间上统一建模,为后文的视觉-语言-动作(VLA)模型打下基础。