zoukankan      html  css  js  c++  java
  • 笔记-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 算子的作用有待讨论

    参考


    --- 她说, 她是仙,她不是神
  • 相关阅读:
    D
    C
    如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?
    二维数组中的查找
    简单对称算法
    冒泡排序(数组排序)
    二分查找
    斐波那契数列
    顺序查找(数组里查找某个元素)
    二维数组排序算法函数
  • 原文地址:https://www.cnblogs.com/bregman/p/14566500.html
Copyright © 2011-2022 走看看