胶囊网络(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:动态路由迭代更新耦合系数

  1. 初始化对数先验概率
    对所有低层-高层胶囊对 (i, j),初始化 b_{ij} = 0(后续通过迭代更新)。
  2. 迭代更新(通常进行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 \]

  1. 终止条件:迭代结束后,v_j 即为高层胶囊的最终输出,其模长 ||v_j|| 表示对应实体存在的概率。

3. 动态路由的本质与优势

  • 本质:一种自下而上的注意力机制,通过迭代调整耦合系数,使高层胶囊仅聚合与其语义一致的底层预测,避免类似最大池化的信息丢失。
  • 优势
    • 显式建模部分-整体关系(如“车轮”胶囊应更倾向于激活“汽车”胶囊而非“人脸”胶囊)。
    • 对仿射变换(如旋转、平移)具有等变性(Equivariance),即输入变换会导致胶囊输出方向相应变化。

4. 实例说明

假设低层胶囊检测到“矩形”和“圆形”两种特征,高层胶囊需判断它们是“汽车”还是“钟表”:

  • 若“矩形”和“圆形”的空间关系符合汽车结构(如矩形在下、圆形在上),则动态路由会使它们的预测向量与“汽车”胶囊输出方向一致,从而分配高权重 c_{ij}
  • 若空间关系符合钟表(如圆形包围矩形),则权重会偏向“钟表”胶囊。

5. 局限性

  • 计算开销大(迭代路由不适合极深网络)。
  • 对复杂背景或重叠物体敏感。
  • 后续研究(如EM路由)尝试用期望最大化算法替代动态路由以提升效率。

通过以上步骤,胶囊网络实现了对物体层次化结构的鲁棒表征,为核心计算机视觉问题提供了新思路。

胶囊网络(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路由)尝试用期望最大化算法替代动态路由以提升效率。 通过以上步骤,胶囊网络实现了对物体层次化结构的鲁棒表征,为核心计算机视觉问题提供了新思路。