0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CapsNet再升级!堆栈式胶囊自编码器面世

深度学习自然语言处理 来源:YXQ 2019-06-24 15:43 次阅读

2017 年,Geoffrey Hinton 在论文《Dynamic Routing Between Capsules》中提出 CapsNet 引起了极大的关注,同时也提供了一个全新的研究的方向。今日,CapsNet 的作者 Sara Sabour、Hinton 老爷子联合牛津大学的研究者提出了胶囊网络的改进版本——堆栈式胶囊自编码器。这种胶囊自编码器可以无监督地学习图像中的特征,并在无监督分类任务取得最佳或接近最佳的表现。这也是胶囊网络第一次在无监督领域取得新的突破。

综述

一个目标可以被看做是一组相互关联的部件按照几何学形式组合的结果。利用这种几何关系去重建目标的系统应当对视点的变化具有鲁棒性,因为其本质的几何关系不应随着观察视角的变化而发生改变。

本文中,研究人员描述了一种无监督的胶囊网络。其中,观察组成目标所有部件的神经编码器被用来推断目标胶囊的存在和姿态。编码器通过解码器的反向传播方法训练。

训练中,解码器使用姿态预测来预测每个已发现部件的姿态。这些部件是直接从图像中被发现的,同样也是使用神经编码器,该编码器推断这些部件及它们的仿射变换。

而对应的解码器将每个图像像素建模为由仿射变换部件做出的预测混合。研究人员从目标和目标部件的胶囊中学习无标签数据,然后将这些目标胶囊的存在向量进行聚类。

得知这些聚类的名称时,研究人员在 SVHN 和 MNIST 数据集上获得了当前最佳的无监督分类结果,准确率分别为 55% 和 98.5%。

本文提出了堆栈式胶囊自编码器(SCAE),该编码器包含两个阶段。在第一阶段,部件胶囊自编码器(PCAE)将图像分割为组成部分,推断其姿态,并将每个图像像素重建为变换组件模板的像素混合。

在第二阶段,目标胶囊自编码器(OCAE)尝试将发现的部件及其姿态安排在一个更小的目标集合中。这个目标集合对每个部件进行预测,从而解释每个部件的姿态。通过将它们的姿态——目标-观察者关系(OV)和相关的目标-部件关系(OP)相乘,每个目标胶囊都会贡献这些混合的一部分。

堆栈式胶囊自编码器的工作原理

堆栈式胶囊自编码器在使用未标注数据训练时捕捉所有目标和它们部件之间的空间关系。目标胶囊存在概率的向量倾向于组成紧密的聚类。

当给每个聚类一个分类时,其可以在无监督分类任务上达到当前最佳效果,如 SVHN 数据集上的 55% 和 MNIST 数据集上的 98.5%。以上结果还可以分别提升到 67% 和 99%,而且只需学习不到 300 个参数

模型架构

堆栈式胶囊自编码器的结构

堆栈式胶囊自编码器的两个组成部分为:部件胶囊自编码器(PCAE)和目标胶囊自编码器(OCAE)。在下文中,论文首先介绍了集群自编码器(CCAE),通过一系列数学公式说明自编码器如何分解图像中的部件的过程,然后由此引出堆栈式胶囊自编码器的两个组成部分。

集群自编码器

图 2:使用集群自编码器对不同形状的点进行聚类的示意图。

论文首先介绍了集群自编码器,通过这种结构的数学原理,引出堆栈式胶囊自编码器的结构。令 {x_m | m = 1, . . . , M } 为一组二维的输入点,每个点属于一个集群(见图2)。首先使用Set Transformer将所有的输入点(相当于部件胶囊)编码进k个目标胶囊中,Set Transformer是一种基于注意力机制的、有置换不变性的编码器h^cap (Lee et al., 2019) 。

一个目标胶囊 k 包括一个胶囊特征向量 c_k(其存在概率 a_k ∈ [0, 1])和一个 3 × 3 的目标-观察者(OV)关系矩阵。关系矩阵代表着目标(集群)和观察者之间关系的仿射变换。

需要注意的是,每个目标胶囊每次只能代表一个目标。每个目标胶囊都使用一个独立的多层感知机 h_k^part 从胶囊特征向量 c_k 中预测 N ≤ M 个候选部件。

每个候选由条件概率 a_k,n ∈ [0, 1] (当其存在),一个关联标量的标准差λ_k,n,以及一个 3 × 3 的目标-部件(OP)关系矩阵组成。这些代表着目标胶囊和候选部件的仿射变换。

候选预测 μ_k,n 根据目标胶囊 OV 和候选 OP 矩阵相乘得来。然后,研究人员将每个输入部件建模为高斯混合模型,其中μ_k,n 和 λ_k,n 是各向同性组件的中心和标准差。其标准公式如下:

集群胶囊编码器的公式。论文通过举出集群胶囊编码器的例子,用于说明目标胶囊编码器和它的区别。

部件胶囊自编码器

如果要将图像分解为组成部件的集合关系,就需要首先推断图像是由哪些部件组成的,同时也需要了解观察者和这些部件之间的关系(称之为他们的姿态)。

在本研究中,每个部件胶囊都有六个维度的自由姿态,一个存在变量,和一个独特的特征。研究人员把部件发现问题视为自编码:编码器学习去推断不同部件胶囊的姿态和存在,而解码器学习每个部件的图像模板。

模板对应的部件是使用其姿态的仿射变换,而这些变换过的模板的像素点被用来为每个图像像素创建单独的混合模型。在部件胶囊自编码器后是目标胶囊自编码器。

令 y ∈ [0, 1]^h×w×c 为图像。研究人员将部件胶囊的数量限定在 M 之内。对于每个部件胶囊,他们使用一个编码器去推断姿态 x_m ∈ R^6,存在概率 d_m ∈ [0, 1],以及特殊特征 z_m ∈ R^c_z。

虽然后者不会直接参与图像重建,但是会将对应部件的特殊信息提供给目标胶囊自编码器。他们会通过目标胶囊自编码器使用反向传播微分的方式训练。

当前条件下,不允许图像中同一种类型的部件多次出现,从而导致部件胶囊不会在空间中被复制(尽管它们可能会)。然而,确实需要分辨出所有出现在图像中的部件,因此编码器会采用带有从下到上(bottom-up)注意力机制的卷积神经网络

对于每个胶囊 k,其预测一个特征矩阵 e^k,特征矩阵是 6(姿态)+1(存在)+c_z(特殊特征)的胶囊参数,其空间维度是 h_e × w_e,以及一个单通道注意力层 a_k。

最终,该胶囊的参数计算公式是。softmax 是对空间维度上的计算。这种计算有点类似于全局平均池化,但是允许一些空间点比其他点对最终结果的权重影响更大。研究人员将其称为注意力池化(attention-based pooling)。

图像的像素点被建模为独立的高斯混合模型。对于每个像素点,研究人员采用其对应的变换模板,并将其视为有着恒定方差的各向同性高斯组件的中心点。其混合概率对部件胶囊的存在概率和在该位置的色值函数(c 指的是图像的通道数)都是成比例的。

部件胶囊自编码器的公式推导过程

目标胶囊自编码器(OCAE)

下一步是从已经发现的部件中寻找目标。因此,需要使用相连的姿态 x_m,特殊特征 z_m,以及平滑化的模板 T_m(通过将部件胶囊的特征进行转化)。这些将会成为目标胶囊自编码器的输入,这里和集群自编码器有一些不同。

首先,研究人员将部件胶囊的存在概率 d_m 输入目标胶囊自编码器——由于平衡注意力机制,避免将缺失点考虑在内。

其次,d_m 同时用于衡量部件胶囊的对数似然 cf。另外,除了特殊特征外,不对其他目标胶囊自编码器的输入计算梯度,以便提升训练的稳定性,并避免隐变量崩溃。

最后,通过部件胶囊自编码器发现的部件有着独立的特征(模板和特殊特征)。因此,每个部件姿态都可以被解释为是目标胶囊预测的独立混合——即每个目标胶囊都做出 M 个候选预测 V_k,1:M,或者对每个部件做出一个候选预测。

最终,部件胶囊的似然公式是:

图 3:从MNIST(左)和SVHN(中)和CIFAR 10(右)学习到的模板。

图 4:展示了胶囊自编码器对MNIST数据集的重建过程。a)MNIST图像;b)红色的部件胶囊和绿色的目标胶囊在重建中的组合;c)实际参与重建的被激活胶囊;d)根据图像捕捉到的信息;e)部件的仿射变换,用于展示其重建图像的过程。

模型性能评估

堆栈式胶囊自编码器使用仿射变换,这样可以使编码器的输入由一组较小的变换目标或部件解释。

无监督分类评价

研究人员在 MNIST、SVHN 和 CIFAR 10 数据集上进行了测试,并将目标胶囊的存在打上类别标签。他们使用了多种评价方法。

在部件胶囊编码器上,研究人员在 MNIST 数据集上使用了 24 个单通道,11 × 11 的模板,在 SVHN 和 CIFAR 10 上则分别使用了 32 个 3 通道,14 × 14 的模板。

对于后两个数据集的图像,研究人员进行了 Sobel 过滤,作为重建的目标。对于目标胶囊编码器,研究则分别使用了 24、32 和 64 个目标胶囊。

表 1:运行五次后取平均的无监督分类结果和标准差。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3360

    浏览量

    131481
  • 无监督学习
    +关注

    关注

    1

    文章

    16

    浏览量

    2732

原文标题:Hinton老爷子CapsNet再升级,结合无监督,接近当前最佳效果

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    编码器零点位置怎么看 | 编码器零位怎样确定

    编码器零点位置怎么看 要确定编码器的零点位置,可以通过以下几种方式进行观察: 1. 物理标记点:一些编码器在其旋转轴上具有专门的物理标记点,例如凹槽或凸起。通过观察轴上的标记点,可以确定零点位置
    的头像 发表于 02-18 18:28 954次阅读
    <b class='flag-5'>编码器</b>零点位置怎么看 | <b class='flag-5'>编码器</b>零位怎样确定

    编码器好坏怎么判断,编码器原理

    编码器(Encoder)是将输入数据转化为特定编码表示的一种技术。对于不同类型的编码器,评判其好坏可以从多个方面进行考量,包括编码质量、速度、模型结构等。
    的头像 发表于 01-23 10:58 627次阅读

    磁性编码器和光电编码器的比较

    伺服电机编码器是一种关键的反馈装置,用于测量和控制电机的转速和位置。在选择伺服电机编码器时,常常面临一个选择:使用磁电编码器还是光电编码器。接下来将从几个关键方面比较这两种类型的
    的头像 发表于 01-18 10:29 698次阅读

    伺服电机编码器拆下来后,装上是否需要调整编码器的波形?

    西门子伺服电机(型号为:1FK7060-5AF71-1EJ0)编码器拆下来后,装上是否需要调整编码器的波形(或者叫编码器的相位调整)? 如果需要调整,请高手指点如果进行调整? 谢谢,
    发表于 12-25 07:16

    编码器与PLC的接线方法

    编码器分为旋转编码器和线性编码器两种。旋转编码器用于检测旋转位置和速度,而线性编码器用于检测直线位置和速度。
    发表于 12-22 09:20 458次阅读
    <b class='flag-5'>编码器</b>与PLC的接线方法

    宏集产品 | 增量光纤编码器开箱介绍 #编码器 #增量编码器 #光纤编码器 #工业控制

    编码器光纤
    虹科工业物联网技术
    发布于 :2023年12月04日 14:13:50

    profinet信号编码器和profibus信号编码器哪个更好

    profinet信号编码器和profibus信号编码器哪个更好
    的头像 发表于 11-08 13:37 514次阅读

    伺服电机编码器原理及编码器分类

    伺服电机编码器原理 伺服编码器这个基本的功能与普通编码器是一样的,比如增量型的有A,A反,B,B反,Z,Z反等信号,除此之外,伺服编码器还有着跟普通
    的头像 发表于 09-25 14:07 1072次阅读

    编码器多圈和单圈的区别

    编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。按照读出方式编码器可以分为
    的头像 发表于 09-22 08:08 1428次阅读
    <b class='flag-5'>编码器</b>多圈和单圈的区别

    伺服电机编码器分类

    伺服电机编码器是安装在伺服电机上用来测量磁极位置和伺服电机转角及转速的一种传感器,从物理介质的不同来分,伺服电机编码器可以分为光电编码器和磁电编码器,另外旋转变压器也算一种特殊的伺服
    的头像 发表于 08-25 08:09 1856次阅读
    伺服电机<b class='flag-5'>编码器</b>分类

    增量式编码器和绝对值编码器有哪些区别?

    增量式编码器和绝对值编码器有哪些区别?增量式编码器通过对变化量进行计数来测量位置变化,而绝对值编码器可提供实际位置值。因此,增量式编码器对于
    的头像 发表于 07-05 13:34 2581次阅读
    增量式<b class='flag-5'>编码器</b>和绝对值<b class='flag-5'>编码器</b>有哪些区别?

    伺服电机编码器

    伺服电机编码器 伺服电机编码器是安装在伺服电机上用来测量磁极位置和伺服电机转角及转速的一种传感器,从物理介质的不同来分,伺服电机编码器可以分为光电编码器和磁电
    发表于 06-26 14:01 986次阅读

    编码器种类及型号

    编码器种类及型号:最常见的编码器类型是旋转编码器和线性编码器。旋转编码器通常用于测量机器人的关节位置,以及测量车辆和船只的转向角度。线性
    的头像 发表于 05-18 11:15 3776次阅读
    <b class='flag-5'>编码器</b>种类及型号

    编码器是什么?编码器有哪些分类及应用

    编码器是什么?编码器有哪些分类及应用;编码器是什么?在数字信号处理和通信系统中,编码器是一种重要的设备,用于将原始数据转换为字符序列或二进制码序列。
    的头像 发表于 05-18 11:08 3527次阅读
    <b class='flag-5'>编码器</b>是什么?<b class='flag-5'>编码器</b>有哪些分类及应用

    增量型编码器与绝对值编码器

    增量型编码器与绝对值型编码器怎么选择?在进行编码器选择时,增量型编码器和绝对值型编码器是两种常见的选择。增量型
    的头像 发表于 05-08 11:28 1490次阅读
    增量型<b class='flag-5'>编码器</b>与绝对值<b class='flag-5'>编码器</b>