← 返回题目列表

CNN 为什么具有平移等变性?

高频 中等 第 12 / 25 题 更新于 2026/09/19
CNN卷积神经网络计算机视觉ResNet

简化版

理想卷积满足平移等变:输入平移多少,输出特征也相应平移,而不是保持不变。权值共享是根源;stride、边界 padding、池化和离散采样会破坏严格等变,分类中的近似平移不变通常由空间聚合获得。

详细版

  • 等变表示 f(Tx)=T f(x),不变表示 f(Tx)=f(x),两者不能混用。

  • 步幅为 1、无限或周期边界下,离散卷积与整数像素平移严格交换。

  • 零填充引入特殊边界,物体移到边缘时上下文改变,严格等变失效。

  • stride>1 的下采样只对步幅整数倍平移较稳定,一像素位移可能改变采样相位。

  • GAP 等聚合把随位置移动的响应汇总,才形成分类所需的近似不变性。

完整版教学

一、共享卷积核让检测器随目标移动

同一个卷积核在每个位置执行相同运算,因此边缘从左移到右时,边缘响应也会跟着移动。

网络不必为每个坐标分别学习一个检测器,这是卷积的数据效率来源。

但数字图像有边界和采样网格,实际 CNN 还包含步幅与池化,所以工程模型只有近似等变。

回答“CNN 天然平移不变”会混淆特征提取与最终分类。

二、底层机制与关键公式

令平移算子 T_delta x[u]=x[u-delta]

对 stride=1 卷积,把变量索引平移后可得到 Conv(Tx)=T Conv(x);关键是卷积核不依赖绝对位置。

若 stride=2,只保留偶数网格。

输入移动 1 像素会把采样点从偶相位切到奇相位,输出不再只是平移;抗混叠滤波能减轻但不能无条件恢复严格性质。

equivariance: f(T_delta x) = T_delta f(x)
invariance:   f(T_delta x) = f(x)

stride=1 convolution: K * (T_delta x) = T_delta (K * x)

三、带数字的推演

长度 6 的信号经过 stride=2 采样,原来取索引 [0,2,4];右移 1 后同一采样器取到原信号的 [-1,1,3]

它并非把原输出简单右移一格,这就是采样相位导致的破坏。

四、方案对比与选择

方案/场景机制或优势主要代价
stride=1 卷积整数平移近似等变边界仍会破坏
stride/pooling降低分辨率对小位移敏感
GAP空间响应求平均获得近似不变但丢位置

五、实际执行流程

目标平移 -> 卷积特征峰值随之平移(等变)
-> 下采样可能改变相位 -> 深层响应近似移动
-> GAP/池化汇总位置 -> 分类分数近似不变

六、边界条件与工程代价

padding 类型会改变边缘行为:zero、reflect、circular 对边界外内容的假设不同。

只有周期边界等特定条件能给出整幅有限图像上的严格证明。

数据增强仍有价值,因为真实网络的下采样、裁剪和边界破坏了理想性质;同时增强还能覆盖尺度、光照等卷积本身不提供的变化。

记忆钩子:牢记“卷积响应跟着走”是等变,“分类结果不变”才是不变。

七、常见误区与追问

  • 误区:CNN 天生平移不变。 卷积层首先是平移等变,聚合后才可能近似不变。

  • 追问:权值共享为何产生等变? 同一局部模式无论位于哪里都经过相同核处理。

  • 误区:任何 padding 都保持严格等变。 有限边界引入位置相关上下文,尤其是零填充。

  • 追问:stride 为什么破坏一像素等变? 下采样固定采样相位,小位移会换一组采样点。

  • 追问:如何改善 shift consistency? 可用抗混叠下采样、更多平移增强或避免过早大步幅。

八、加强记忆

牢记“卷积响应跟着走”是等变,“分类结果不变”才是不变。

证明靠权值共享,破坏点看边界和采样,最终不变性来自池化或 GAP,而不是卷积本身。