博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Reddit 讨论:Hinton的Capsule网络真的比CNN效果更好吗?
阅读量:6609 次
发布时间:2019-06-24

本文共 1471 字,大约阅读时间需要 4 分钟。

首先,capsule 的概念与卷积的概念大部分是独立的。例如,你可以有一个完全连接的capsule网络。但是,它们确实使用了卷积,而且也被与CNN进行比较。但是,我将在接下来解释中抽象出卷积,因为这会分散我们的核心思想。

因为capsule网络与传统的神经网络相比是如此的不同,以至于很难理解它们之间的差异。在这里我将详细介绍capsule网络的细节,然后总结一下不同之处。

简单描述capsule网络

首先,我们可以看看capsule的动机(从Hinton的谈话中摘出来的)。CNN的过滤器所做的就是检测源图像中是否存在特定的模式/特性。 我们通常希望并行地在源图像的同一个patch上堆叠多个过滤器,这样就可以在同一个patch检测多个特征。

但是,请注意,由于堆叠的过滤器数量的线性因子,这个维度会增加很多。为了减少网络的维度,同时允许使用更多的过滤器,我们可以应用max-pooling,这样就可以得到一个神经元,它在语义上的意思是“这个区域某处有一个特征X。”但是,请注意,这个特征的精确位置已经被丢弃。在许多层重复这个操作,我们实际上丢失了许多关于特征精确位置的信息。

另一个稍微切向的动机是:如果一个人被展示一个鼻子,它就可以对眼睛、嘴、耳朵等部位的大约位置进行反向工程,从而预测整个脸部的位置和方向。如果我们看到一个鼻子,并预测了脸部的位置;但是假如看到一个嘴巴,基于它预测的脸部位置就会稍微不同,看起来会很奇怪。如果我们仅仅使用1/0来检测特征(鼻子,嘴巴)的存在,我们可能会被引导去相信这两者在正确位置的组合就可以预测出一张脸。但实际不是这样,我们也需要知道它们的方向。

想法:在检测特性的基础上,我们可以输出额外的2个值,对应该特性被检测到的X和Y位置。但是方向呢?我们需要一种更通用的方式来封装这些信息。一个更好的想法是:我们可以让神经网络学习一种方法来表示这个位置/方向信息本身!这就是capsule网络的由来。

差异

1)标量vs向量的输入和输出

神经元从上一层接收一堆标量,并输出一个标量。一个capsule是从上一层获取一堆向量,并输出一个向量。

如果你仔细阅读了,你可能已经注意到(1)实际上并没有完全改变网络。假设我被允许任意地将前一层的神经元组合在一起,将来自当前层的神经元组合在一起,将它们称为向量,并没有什么区别。这里,我们将输入设为向量,对它应用一个矩阵(matrix),然后做一个加权和。这与简单地将输入激活作为一个巨大的向量,然后再应用一个更大的矩阵相比,没有什么不同。

2)挤压函数

引入挤压函数(squash function)是真正的区别。但现在,仍然是一个任意非线性。你可以想象一个奇怪的网络,它在两个层之间变换,一个变换向量,另一个对这些向量做加权和(这实际上是另一个线性变换!),然后挤压。结合(1)和(2),这意味着我们的网络使用的是不同于一般类型的非线性。

3)capsule之间的routing

这就是capsule网络如此与众不同的原因。与普通的层相比,capsule层是完全不同的。首先,我们转换输入向量来得到预测向量。然后我们将children capsule分配给parent capsule,它的总预测向量与它自己的预测向量有很大的一致,从而可以对预测向量进行加权和。然后把它拿出来,进行挤压(squash)。

原文发布时间为:2017-11-11

本文作者:GraceFu

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:

转载地址:http://fesso.baihongyu.com/

你可能感兴趣的文章
Ubuntu+Apache+PHP+Mysql环境搭建(完整版)
查看>>
Atitit.计算机图形图像图片处理原理与概论attilax总结
查看>>
于ssh端口转发的深入实例[转 - 当当 - 51CTO技术博客
查看>>
从Python安装到语法基础,这才是初学者都能懂的爬虫教程 ...
查看>>
超级AD远程管理软件
查看>>
Oracle数据库安全加固记录
查看>>
安全运维之:Linux系统账户和登录安全
查看>>
【cocos2d-x从c++到js】17:使用FireFox进行JS远程调试
查看>>
Kafka Offset Storage
查看>>
深度学习笔记之CNN(卷积神经网络)基础
查看>>
JAVA设计模式之【原型模式】
查看>>
Hadoop 添加删除数据节点(datanode)
查看>>
33.8. slb configuration
查看>>
ext的window如何隐藏水平滚动条
查看>>
71.8. Run level shell script to start Oracle 10g services on RedHat Enterprise Linux (RHAS 4)
查看>>
SAP QM Transfer of Inspection Stock
查看>>
全新视觉| 数治省市:SAP大数据构想一切可能
查看>>
ORACLE expdp备份与ORA-31693、ORA-02354、ORA-02149
查看>>
SAP S/4 HANA新变化-信用管理
查看>>
doc-remote-debugging.html
查看>>