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