胶囊网络(Capsule Networks)的动态路由机制与向量输出原理
字数 2106 2025-11-09 05:59:24

胶囊网络(Capsule Networks)的动态路由机制与向量输出原理

一、问题描述
胶囊网络是一种旨在解决传统卷积神经网络(CNN)局限性(如空间信息丢失、对旋转和变形敏感)的新型架构。其核心创新在于:

  1. 胶囊(Capsule):一组神经元共同表示一个实体(如物体部分)的多种属性(如位置、大小、方向),输出为一个向量(而非标量)。
  2. 动态路由(Dynamic Routing):通过迭代协议确定低级胶囊的输出应传递到哪个高级胶囊,以建模部分-整体关系。
    本节将详细解释胶囊的向量化表示与动态路由的数学原理。

二、胶囊的向量化表示与路由动机

  1. 传统CNN的局限
    • 卷积层输出标量激活值,无法同时编码物体的多种属性(如姿态)。
    • 池化操作会丢失空间层次信息,导致对输入变化的脆弱性。
  2. 胶囊的改进
    • 每个胶囊输出一个向量,其模长表示实体存在的概率,方向编码实例化参数(如姿态)。
    • 例如,检测“猫脸”的胶囊输出向量方向可区分不同角度的猫脸。

三、动态路由的步骤分解
动态路由的目标是让低级胶囊(如“眼睛”“鼻子”)的输出被正确路由到高级胶囊(如“猫脸”)。以下是具体流程:

步骤1:低级胶囊的输入与输出

  • 设低级胶囊 \(i\) 的输出向量为 \(\mathbf{u}_i \in \mathbb{R}^d\)(模长经压缩后表示存在概率)。
  • 对每个高级胶囊 \(j\),定义变换矩阵 \(\mathbf{W}_{ij} \in \mathbb{R}^{d \times d'}\),将 \(\mathbf{u}_i\) 映射到高级胶囊的视角:

\[ \hat{\mathbf{u}}_{j|i} = \mathbf{W}_{ij} \mathbf{u}_i \]

此步骤预测高级胶囊 \(j\) 的输入(基于低级胶囊 \(i\) 的观察)。

步骤2:加权求和与耦合系数

  • 高级胶囊 \(j\) 的输入 \(\mathbf{s}_j\) 是所有低级胶囊预测的加权和:

\[ \mathbf{s}_j = \sum_i c_{ij} \hat{\mathbf{u}}_{j|i} \]

其中 \(c_{ij}\) 是耦合系数(满足 \(\sum_j c_{ij} = 1\)),表示低级胶囊 \(i\) 与高级胶囊 \(j\) 的关联强度。

  • 初始时,\(c_{ij}\) 未知,通过动态路由迭代更新。

步骤3:动态路由迭代算法

  1. 初始化
    • 设置迭代次数 \(r\)(如3次),初始耦合系数 \(b_{ij} = 0\)(未归一化)。
  2. 迭代更新
    • 步骤3.1:通过Softmax计算 \(c_{ij}\)

\[ c_{ij} = \frac{\exp(b_{ij})}{\sum_k \exp(b_{ik})} \]

  • 步骤3.2:计算高级胶囊的输入 \(\mathbf{s}_j\),并应用压缩函数(Squashing) 得到输出 \(\mathbf{v}_j\)

\[ \mathbf{v}_j = \frac{\|\mathbf{s}_j\|^2}{1 + \|\mathbf{s}_j\|^2} \cdot \frac{\mathbf{s}_j}{\|\mathbf{s}_j\|} \]

 此函数确保输出模长在 [0,1) 区间,同时保留方向。  
  • 步骤3.3:更新耦合系数 \(b_{ij}\)(核心步骤):

\[ b_{ij} \leftarrow b_{ij} + \mathbf{v}_j \cdot \hat{\mathbf{u}}_{j|i} \]

 此处点积衡量 $ \mathbf{v}_j $ 与预测 $ \hat{\mathbf{u}}_{j|i} $ 的一致性。若两者方向一致,点积增大,强化路由。  

四、动态路由的直观解释

  • 路由逻辑
    • 若低级胶囊的预测 \(\hat{\mathbf{u}}_{j|i}\) 与高级胶囊的实际输出 \(\mathbf{v}_j\) 高度一致,则增加 \(b_{ij}\),提升下次迭代中 \(c_{ij}\) 的权重。
    • 不一致的预测会被逐渐弱化,实现“共识筛选”。
  • 示例
    • 假设低级胶囊检测到“眼睛”和“车轮”,高级胶囊为“猫脸”和“汽车”。
    • 通过多次迭代,“眼睛”的预测与“猫脸”输出更一致,最终 \(c_{ij}\) 集中到“猫脸”胶囊。

五、胶囊网络的优势与挑战

  1. 优势
    • 显式建模部分-整体关系,对视角变化鲁棒。
    • 向量输出保留丰富空间信息,避免池化信息损失。
  2. 挑战
    • 动态路由计算成本高,难以扩展至大型网络。
    • 目前性能在简单数据集(如MNIST)上突出,但复杂任务(如ImageNet)仍需改进。

六、总结
胶囊网络通过动态路由机制,实现了部分-整体关系的自适应建模,其向量化输出增强了表示能力。核心在于迭代更新耦合系数,使路由过程具备可解释性,为计算机视觉提供了新思路。

胶囊网络(Capsule Networks)的动态路由机制与向量输出原理 一、问题描述 胶囊网络是一种旨在解决传统卷积神经网络(CNN)局限性(如空间信息丢失、对旋转和变形敏感)的新型架构。其核心创新在于: 胶囊(Capsule) :一组神经元共同表示一个实体(如物体部分)的多种属性(如位置、大小、方向),输出为一个向量(而非标量)。 动态路由(Dynamic Routing) :通过迭代协议确定低级胶囊的输出应传递到哪个高级胶囊,以建模部分-整体关系。 本节将详细解释胶囊的向量化表示与动态路由的数学原理。 二、胶囊的向量化表示与路由动机 传统CNN的局限 : 卷积层输出标量激活值,无法同时编码物体的多种属性(如姿态)。 池化操作会丢失空间层次信息,导致对输入变化的脆弱性。 胶囊的改进 : 每个胶囊输出一个向量,其模长表示实体存在的概率,方向编码实例化参数(如姿态)。 例如,检测“猫脸”的胶囊输出向量方向可区分不同角度的猫脸。 三、动态路由的步骤分解 动态路由的目标是让低级胶囊(如“眼睛”“鼻子”)的输出被正确路由到高级胶囊(如“猫脸”)。以下是具体流程: 步骤1:低级胶囊的输入与输出 设低级胶囊 \( i \) 的输出向量为 \( \mathbf{u}_ i \in \mathbb{R}^d \)(模长经压缩后表示存在概率)。 对每个高级胶囊 \( j \),定义变换矩阵 \( \mathbf{W} {ij} \in \mathbb{R}^{d \times d'} \),将 \( \mathbf{u} i \) 映射到高级胶囊的视角: \[ \hat{\mathbf{u}} {j|i} = \mathbf{W} {ij} \mathbf{u}_ i \] 此步骤预测高级胶囊 \( j \) 的输入(基于低级胶囊 \( i \) 的观察)。 步骤2:加权求和与耦合系数 高级胶囊 \( j \) 的输入 \( \mathbf{s} j \) 是所有低级胶囊预测的加权和: \[ \mathbf{s} j = \sum_ i c {ij} \hat{\mathbf{u}} {j|i} \] 其中 \( c_ {ij} \) 是耦合系数(满足 \( \sum_ j c_ {ij} = 1 \)),表示低级胶囊 \( i \) 与高级胶囊 \( j \) 的关联强度。 初始时,\( c_ {ij} \) 未知,通过动态路由迭代更新。 步骤3:动态路由迭代算法 初始化 : 设置迭代次数 \( r \)(如3次),初始耦合系数 \( b_ {ij} = 0 \)(未归一化)。 迭代更新 : 步骤3.1 :通过Softmax计算 \( c_ {ij} \): \[ c_ {ij} = \frac{\exp(b_ {ij})}{\sum_ k \exp(b_ {ik})} \] 步骤3.2 :计算高级胶囊的输入 \( \mathbf{s}_ j \),并应用 压缩函数(Squashing) 得到输出 \( \mathbf{v}_ j \): \[ \mathbf{v}_ j = \frac{\|\mathbf{s}_ j\|^2}{1 + \|\mathbf{s}_ j\|^2} \cdot \frac{\mathbf{s}_ j}{\|\mathbf{s}_ j\|} \] 此函数确保输出模长在 [ 0,1) 区间,同时保留方向。 步骤3.3 :更新耦合系数 \( b_ {ij} \)(核心步骤): \[ b_ {ij} \leftarrow b_ {ij} + \mathbf{v} j \cdot \hat{\mathbf{u}} {j|i} \] 此处点积衡量 \( \mathbf{v} j \) 与预测 \( \hat{\mathbf{u}} {j|i} \) 的一致性。若两者方向一致,点积增大,强化路由。 四、动态路由的直观解释 路由逻辑 : 若低级胶囊的预测 \( \hat{\mathbf{u}} {j|i} \) 与高级胶囊的实际输出 \( \mathbf{v} j \) 高度一致,则增加 \( b {ij} \),提升下次迭代中 \( c {ij} \) 的权重。 不一致的预测会被逐渐弱化,实现“共识筛选”。 示例 : 假设低级胶囊检测到“眼睛”和“车轮”,高级胶囊为“猫脸”和“汽车”。 通过多次迭代,“眼睛”的预测与“猫脸”输出更一致,最终 \( c_ {ij} \) 集中到“猫脸”胶囊。 五、胶囊网络的优势与挑战 优势 : 显式建模部分-整体关系,对视角变化鲁棒。 向量输出保留丰富空间信息,避免池化信息损失。 挑战 : 动态路由计算成本高,难以扩展至大型网络。 目前性能在简单数据集(如MNIST)上突出,但复杂任务(如ImageNet)仍需改进。 六、总结 胶囊网络通过动态路由机制,实现了部分-整体关系的自适应建模,其向量化输出增强了表示能力。核心在于迭代更新耦合系数,使路由过程具备可解释性,为计算机视觉提供了新思路。