较窄的中间表示可以服务于两种目标:限制重建模型所使用的编码,或降低某个高成本运算的开销。后续扩张恢复任务或周围网络层所需的输出形状;它能否同时恢复原数值,取决于前面的缩减保留了什么。
先压缩再扩张在不同架构中承担不同作用。缩小空间网格、减少通道与降低向量维数分别引入不同约束。分析这一结构,需要明确被缩减的表示、任务要求保留的内容,以及后续扩张仍可访问哪些信息。
1. 编码与重建
编码器将 x∈Rd 映射为 z=Eθ(x)∈Rm,解码器产生 x^=Dϕ(z)。当 m<d 时,编码构成向量维度瓶颈。对于 n 个样本,平方重建目标为:
J(θ,ϕ)=n1i=1∑n∥Dϕ(Eθ(xi))−xi∥22
这一目标鼓励编码保留解码器完成重建所需的内容。哪些区别能够保留,取决于编码容量、模型族与数据分布。[1]
2. 线性瓶颈的不可逆性
例如,A=(1/2,1/2) 将 (0,2)⊤ 和 (1,1)⊤ 都映射为一。采用 D(z)=(z,z)⊤ 解码时,两者都返回 (1,1)⊤,对应平方误差分别为二和零。
对于线性编码器 E(x)=Ax,若 A∈Rm×d 且 m<d,由秩与零空间维数关系可得:
dimkerA=d−rank(A)≥d−m>0
因此存在非零向量 v 满足 Av=0,从而 A(x+v)=Ax。输入空间中的不同向量可能具有相同编码,仅接收该编码的解码器无法区分所有这些输入。若解码器也是线性的,B∈Rd×m,则 rank(BA)≤m<d,进一步排除了 BA=Id 的可能。
该证明针对整个输入空间上的线性编码。受限数据集合可能位于足够小的子空间中,从而允许精确重建;正交投影提供了一个明确例子。 [1]
3. 正交投影与重建误差
设 U∈Rd×m 的列向量正交归一,即 U⊤U=Im。用 U⊤ 编码、用 U 解码,得到:
x^=UU⊤x,e=x−x^,U⊤e=0
由于 x^⊤e=0,展开平方范数可得:
∥x∥22=∥x^∥22+∥e∥22
残差是所选子空间之外的分量。位于该子空间内的输入可以精确重建,被舍弃分量的平方范数则给出重建误差。
4. 空间下采样与上采样
降低空间分辨率可以减少后续空间运算的成本,并增大其输入依赖位置之间的间隔;同时也可能丢失精细的位置信息。这些变化发生在空间轴上,不等同于减少每个位置的通道宽度。
上采样通过复制、插值或可学习映射增大空间分辨率。只有与前一步复合后能够还原指定定义域中的每个输入,才能称为逆操作。取平均的例子说明,扩大输出尺寸并不能消除压缩阶段已经引入的歧义。
编码器到解码器的跳跃连接提供绕过瓶颈的表示。拼接增加通道,相加则组合形状匹配的对应元素;这些路径让解码器能够访问较早层的空间细节。[2]
5. 通道瓶颈与计算成本
比较输入输出均为 64 通道的 3×3 卷积,与三层结构:1×1:64→16、3×3:16→16、1×1:16→64。保持空间尺寸不变、不计偏置时,参数量分别为:
Pdirect=9⋅642=36864
Pbottleneck=64⋅16+9⋅162+16⋅64=4352
在这些条件下,相同数值也对应每个输出位置的 MAC 数。瓶颈先缩小成本较高的空间运算所使用的宽度,再恢复对外通道数。完整模块的分析还需结合非线性与残差分支。[3]
因此,重建约束、空间分辨率与通道运算成本分别给出先压缩再扩张的不同理由,但都不能推出网络必须采用这一模式的通用规则。
参考文献