Reddit 讨论:Hinton的Capsule网络真的比CNN效果更好吗?-阿里云开发者社区

开发者社区> 技术小能手> 正文

Reddit 讨论:Hinton的Capsule网络真的比CNN效果更好吗?

简介: Hinton 提出用 Capsule 这个概念代替反向传播,引起广泛关注。本文来自Reddit上“Capsule networks为何与众不同,它真的比CNN效果更好吗?”的讨论,作者分析了capsule network与CNN不同的三个方面。
+关注继续查看

首先,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”微信公众号

原文链接:Reddit 讨论:Hinton的Capsule网络真的比CNN效果更好吗?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《中国人工智能学会通讯》——3.7 跨网络链接预测问题定义
本节书摘来自CCAI《中国人工智能学会通讯》一书中的第3章,第3.7节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。
788 0
Flink运行时之网络通信NetworkEnvironment分析
网络环境(NetworkEnvironment)是TaskManager进行网络通信的主对象,主要用于跟踪中间结果并负责所有的数据交换。每个TaskManager的实例都包含一个网络环境对象,在TaskManager启动时创建。
1099 0
高性能网络I/O框架-netmap源码分析(5)
高性能网络I/O框架-netmap源码分析(5) 作者:gfree.wind@gmail.com 博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 微博:weibo.com/glinuxer QQ技术群:4367710 今天继续前面的netmap_ioctl netmap_ioctl 上次分析完了NIOCGINFO和NIOCREGIF两个,剩下的比较简单了。
675 0
Tensorflow入门1-CNN网络及MNIST例子讲解
## 1. 前言 人工智能自从阿尔法狗大败李世石后就异常火爆,最近工作中需要探索AI在移动端的应用,趁着这个计划入门下深度学习吧。 深度学习的入门曲线还是很陡峭的,看了很多资料,询问了从事相关工作的朋友后终于有点感觉了,这篇文章就讲一下我在这个过程中的所见所得吧,肯定是不专业的,如果所说有什么错误,也希望大家帮忙指出,共同进步。 这个入门的文章准备分以下几个部分来说: - CN
6305 0
阿里云通用网络增强型sn2ne云服务器配置性能评测
阿里云通用网络增强型sn2ne云服务器是企业级高性能云服务器规格,sn2ne是100%独占资源的云服务器,码笔记分享通用网络增强型sn2ne实例的配置、性能评测及优惠信息: 一:通用网络增强型sn2ne实例特点 阿里云通用网络增强型sn2ne云服务器属于企业级高性能云服务器,个人用户和企业用户均可以购买。
2334 0
【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
网上看到关于微信官方的跨平台跨业务的终端基础组件Mars的介绍文章,转载这这里。源代码: https://github.com/Tencent/mars作者:男人链接:https://zhuanlan.zhihu.com/p/24614843来源:知乎著作权归作者所有。
2734 0
+关注
技术小能手
云栖运营小编~
5965
文章
9
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载