胶囊网络(Capsule Networks)的动态路由机制与向量输出原理
字数 1917 2025-11-11 06:31:55
胶囊网络(Capsule Networks)的动态路由机制与向量输出原理
胶囊网络(Capsule Networks)是一种旨在解决传统卷积神经网络(CNN)局限性(如对空间层次关系建模不足)的新型架构。其核心创新在于用向量形式的“胶囊”替代标量神经元,并通过动态路由(Dynamic Routing)机制实现胶囊间的信息传递,从而更有效地表征物体的姿态(如位置、方向、比例等)。以下将逐步详解其原理与实现过程。
1. 胶囊与向量输出的意义
- 传统神经元的局限:CNN中的神经元输出标量值(激活值),仅表示某种特征是否存在,无法同时表达实例化参数(如物体的姿态、纹理等)。
- 胶囊的改进:每个胶囊输出一个向量,其模长(长度)表示某个实体(如物体部分)存在的概率,方向编码该实体的姿态信息。例如,胶囊输出向量
v满足||v|| ∈ [0,1],方向与物体姿态相关。
2. 胶囊间的信息传递:动态路由机制
动态路由的目标是让低层胶囊(如“边缘”胶囊)的输出能正确传递给高层胶囊(如“物体”胶囊),并保证高层胶囊仅聚合语义一致的底层信息。其步骤如下:
步骤1:胶囊输入与预测向量
- 设低层胶囊
i的输出向量为u_i,高层胶囊j的输入为低层胶囊的加权求和:
\[ s_j = \sum_i c_{ij} \hat{u}_{j|i} \]
其中:
\hat{u}_{j|i} = W_{ij} u_i是预测向量,通过可学习的权重矩阵W_{ij}将低层胶囊i的输出变换到高层胶囊j的视角空间(即坐标对齐)。c_{ij}是耦合系数(Coupling Coefficients),表示胶囊i与胶囊j的关联强度,通过动态路由迭代更新(而非直接学习)。
步骤2:动态路由迭代更新耦合系数
- 初始化对数先验概率:
对所有低层-高层胶囊对(i, j),初始化b_{ij} = 0(后续通过迭代更新)。 - 迭代更新(通常进行3-5次):
- 计算耦合系数:对每个低层胶囊
i,应用 Softmax 到其对所有高层胶囊的对数先验:
- 计算耦合系数:对每个低层胶囊
\[ c_{ij} = \frac{\exp(b_{ij})}{\sum_k \exp(b_{ik})} \]
此时 `c_{ij}` 满足 `∑_j c_{ij} = 1`,表示胶囊 `i` 的输出分配给高层胶囊的权重。
- 计算高层胶囊输入:加权求和得到
s_j = ∑_i c_{ij} \hat{u}_{j|i}。 - 激活高层胶囊:通过压缩函数(Squashing Function) 将
s_j转换为输出向量v_j,同时保持方向不变且模长压缩到 [0,1]:
\[ v_j = \frac{||s_j||^2}{1 + ||s_j||^2} \cdot \frac{s_j}{||s_j||} \]
- 更新对数先验:通过一致性协议(Agreement) 调整
b_{ij}。若低层预测\hat{u}_{j|i}与高层输出v_j方向一致(点积大),则增加关联强度:
\[ b_{ij} \leftarrow b_{ij} + \hat{u}_{j|i} \cdot v_j \]
- 终止条件:迭代结束后,
v_j即为高层胶囊的最终输出,其模长||v_j||表示对应实体存在的概率。
3. 动态路由的本质与优势
- 本质:一种自下而上的注意力机制,通过迭代调整耦合系数,使高层胶囊仅聚合与其语义一致的底层预测,避免类似最大池化的信息丢失。
- 优势:
- 显式建模部分-整体关系(如“车轮”胶囊应更倾向于激活“汽车”胶囊而非“人脸”胶囊)。
- 对仿射变换(如旋转、平移)具有等变性(Equivariance),即输入变换会导致胶囊输出方向相应变化。
4. 实例说明
假设低层胶囊检测到“矩形”和“圆形”两种特征,高层胶囊需判断它们是“汽车”还是“钟表”:
- 若“矩形”和“圆形”的空间关系符合汽车结构(如矩形在下、圆形在上),则动态路由会使它们的预测向量与“汽车”胶囊输出方向一致,从而分配高权重
c_{ij}。 - 若空间关系符合钟表(如圆形包围矩形),则权重会偏向“钟表”胶囊。
5. 局限性
- 计算开销大(迭代路由不适合极深网络)。
- 对复杂背景或重叠物体敏感。
- 后续研究(如EM路由)尝试用期望最大化算法替代动态路由以提升效率。
通过以上步骤,胶囊网络实现了对物体层次化结构的鲁棒表征,为核心计算机视觉问题提供了新思路。