CNN现存的问题就是池化提供了局部不变性,但是丢失了位置等信息。
1和4无法检测出来。

胶囊网络nlp 胶囊网络模型_胶囊网络nlp


使用胶囊作为网络的基本单元

计算结果封装到一个特征向量中。用来表示可视实体,包括姿态、方位、大小等。

动态路由算法代替池化操作,以保留相关的方位信息。

特征向量表示可视实体:
实体的存在概率具有局部不变性:胶囊覆盖的有限视觉域内的实体变换姿态时,是不变的。
实体的实例化参数具有等变性,由于实例化参数表示实体的姿态坐标,因此随着实体额姿态变化,实例化参数会相应改变。

特征向量的长度表示实体存在的概率;特征向量各维特征表示实体姿态。

**胶囊输出的实例化参数提供了一种 由部分到整体 的简单识别方法,由 单个有限视觉域 逐层向上 预测,最终形成对目标图像的解析树。
**
连接到下一层时,可以做出一个简单的选择:实体是否能够由多个激活的具有正确的空间关系的胶囊表示,并且激活更高级别的胶囊

胶囊网络nlp 胶囊网络模型_胶囊网络nlp_02

使用非线性压缩(squashing)函数将向量长度限制在0-1,使得特征向量的长度能够表示实体存在的概率。

胶囊网络nlp 胶囊网络模型_胶囊网络nlp_03


动态路由机制确保每一层的胶囊的输出的特征向量被正确地发送到下一层中对应的胶囊。耦合系数cij由softmax计算,前一层的胶囊i和下一层中所有胶囊之间的耦合系数的总和为1.

胶囊网络nlp 胶囊网络模型_目标对象_04


中,𝑏ij为胶囊i应该耦合到胶囊j 的对数先验概率,取决于 两个胶囊的类型和位置,与当前的输入图像无关.

简单的表明一致性关系的函数就是标量积.

整个路由过程不仅仅是存在于胶囊网络的训练过 程中,也存在于验证和测试过程,而且需要迭代多次。

过程就是仿射变换——加权求和——非线性激活

胶囊网络nlp 胶囊网络模型_特征向量_05


胶囊网络nlp 胶囊网络模型_胶囊网络nlp_06

胶囊网络nlp 胶囊网络模型_实例化_07

胶囊网络nlp 胶囊网络模型_特征向量_08

训练 耗时,但是对一些位置的图像的效果比较好,还是比较复杂。
实现低级特征到胶囊多维实体(低级特征 向量)的转换。

胶囊网络nlp 胶囊网络模型_实例化_09


边际损失:

为了对多个对象的识别,每类目标对象的胶囊应分别使用边际损失得到类损失Lk,总的边际损失是所有类损失之和。

胶囊网络nlp 胶囊网络模型_实例化_10


𝑇是表示k类目标对象是否存在,0/1

𝑚+是上界,惩罚假阳性,即预测k类存在但真实不存在,一般取 0.9; 𝑚-是下界,惩罚假阴性,即预测k类不存在但真实存在,一般取 0.1; λ为不存在的对象类别的损失的下调权重,避免开始从不存在 分类对应的胶囊输出的特征向量中学习,一般取0.5。