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:运行五次后取平均的无监督分类结果和标准差。

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

    关注

    45

    文章

    3639

    浏览量

    134429
  • 无监督学习
    +关注

    关注

    1

    文章

    16

    浏览量

    2754

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

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

收藏 人收藏

    评论

    相关推荐

    如何提高编码器的工作效率与作用

    编码器类型 编码器有多种类型,包括增量编码器、绝对编码器、模拟
    的头像 发表于 11-24 10:12 170次阅读

    增量编码器单圈和多圈怎么知道,如何分辩?

    增量编码器单圈和多圈怎么知道,如何分辩? 单圈编码器特点:   单圈编码器只能测量一圈内的旋转角度或位移。一旦旋转超过一圈,数据就会重新开始计算。   主要特点包括测量范围相对较
    的头像 发表于 10-21 09:42 398次阅读
    增量<b class='flag-5'>式</b><b class='flag-5'>编码器</b>单圈和多圈怎么知道,如何分辩?

    磁电编码器好还是光电编码器

    磁电编码器和光电编码器各有其独特的优点和适用场景,无法一概而论哪种更好,而是需要根据具体的应用需求来选择。 光电
    的头像 发表于 10-12 10:01 490次阅读

    磁电编码器磁铁怎么固定的

    磁电编码器是一种将机械位置或角度转换为电信号的传感,广泛应用于工业自动化、机器人技术、航空航天等领域。磁铁作为编码器中的关键部件,其固定方式对
    的头像 发表于 10-12 09:59 431次阅读

    磁电编码器和光电编码器的区别

    磁电编码器和光电编码器是两种不同类型的编码器,它们在原理、结构、性能和应用领域上都有所不同。 磁电编码器和光电编码器的区别 1. 引言
    的头像 发表于 10-12 09:54 1057次阅读

    模块编码器原理 精度与分辨率

    模块编码器原理 精度与分辨率:编码器是一种将旋转位移或直线位移转换成电信号的装置。它通过测量机械部件的运动,并将其转化为数字脉冲或模拟信号输出,从而实现对位置、速度和方向等参数的精确监测
    的头像 发表于 08-12 11:13 325次阅读
    模块<b class='flag-5'>式</b><b class='flag-5'>编码器</b>原理 精度与分辨率

    自编码器的原理和类型

    自编码器(Autoencoder, AE)是一种无监督学习的神经网络模型,它通过编码器和解码的组合,实现了对输入数据的压缩和重构。自编码器由两部分组成:
    的头像 发表于 07-09 11:25 1156次阅读

    伺服电机编码器的型号怎么看

    伺服电机编码器是伺服电机的重要组成部分,它能够将电机的旋转角度、速度等信息转换为电信号,为控制系统提供精确的位置和速度反馈。 一、伺服电机编码器的分类 1.1 增量编码器 增量
    的头像 发表于 06-17 11:07 1890次阅读

    增量编码器结构应用与工作原理

    增量编码器的工作原理:增量编码器的核心部分是码盘,它通过旋转来产生脉冲信号。码盘上有一系列的条纹,这些条纹会依据旋转的方向,根据光电传感
    的头像 发表于 06-04 10:15 1776次阅读
    增量<b class='flag-5'>式</b><b class='flag-5'>编码器</b>结构应用与工作原理

    光纤绝对和光纤增量编码器的区别

    绝对编码器和增量编码器二者有什么区别呢?分别有什么特征,适合什么样的应用呢?欢迎阅读文章了解~
    的头像 发表于 05-15 10:43 426次阅读
    光纤绝对<b class='flag-5'>式</b>和光纤增量<b class='flag-5'>式</b><b class='flag-5'>编码器</b>的区别

    绝对编码器的工作原理

    绝对编码器的工作原理:绝对编码器是一种能够输出特定编码来表示机械位置的传感。它通过检测旋转
    的头像 发表于 04-01 15:10 1234次阅读
    绝对<b class='flag-5'>式</b><b class='flag-5'>编码器</b>的工作原理

    编码器工作原理图

    按照工作原理编码器可分为增量和绝对两类 增量编码器 1、增量
    发表于 03-19 11:25 1251次阅读
    <b class='flag-5'>编码器</b>工作原理图

    编码器分辨率是什么意思 编码器分辨率和脉冲数的关系

    按照编码器支持的分辨率可以把编码器分成标清编码器、高清编码器、全高清编码器,分辨率越高帧率越高视频就越清楚。 1.
    的头像 发表于 02-21 18:07 4174次阅读
    <b class='flag-5'>编码器</b>分辨率是什么意思 <b class='flag-5'>编码器</b>分辨率和脉冲数的关系

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

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

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

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