笔记-capsule网络

title: Dynamic Routing Between Capsules, NIPS 2017
author: Geoffrey E. Hinton
url: https://arxiv.org/abs/1710.09829

符号说明

  • capsule节点 (j) 的输入向量 (s_j), 输出向量 (v_j).

    [v_j = { m squash}(s_j) := frac{|s_j|^2}{1+|s_j|^2} frac{s_j}{|s_j|} ]

    这里希望 (|v_j|)表示capsule节点(j)表示的实体存在的概率值。

    容易推导 (|v_j| leq 0.5 |s_j|), 因此 squash是压缩算子, 且 (|v_j| < 1).

  • 除网络第一层外, (s_j) 的计算公式,如下:

    [s_j = sum_i c_{ij} hat u_{j|i}, quad hat u_{j|i} = W_{ij} u_i ]

    这里 (C)是coupling系数矩阵,是参数。 (W_{ij}) 是权重矩阵。(hat u_{j|i}) 是capsule节点 (i)(j)的预测。

  • coupling系数的计算公式,如下:

    [c_{ij} ={ m softmax}(b_{i}) = frac{exp(b_{ij})} { sum_k exp(b_{ik})} ]

    这里(b_{ij})也是参数, (b_{i})是B矩阵的i行, logits (b_{ij}) 理解为capsule节点(i)关联(j)的一个先验概率。

  • 参数更新, 目标是希望 capsule节点 (j)的输出(v_j) 与 capsule节点 (i)(j)的预测 (hat u_{j|i}) 有一致性。做法是

    [b_{ij} leftarrow b_{ij} + v_j^T hat u_{j|i} ]

  • 根据上面的公式, 得到Routing algorithm 算法,处理了参数(C,B)。 剩下 (W),以及后面卷积核参数,通过定义损失函数,在tensorflow更新(BP优化)

  • Routing 算法 类似聚类算法的迭代过程.

  • 这里squash 算子的作用有待讨论

参考


--- 她说, 她是仙,她不是神
原文地址:https://www.cnblogs.com/bregman/p/14566500.html