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效果更好吗?

相关文章
|
21天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第7天】本文将深入探讨卷积神经网络(CNN)的基本原理,以及它如何在图像识别领域中大放异彩。我们将从CNN的核心组件出发,逐步解析其工作原理,并通过一个实际的代码示例,展示如何利用Python和深度学习框架实现一个简单的图像分类模型。文章旨在为初学者提供一个清晰的入门路径,同时为有经验的开发者提供一些深入理解的视角。
|
19天前
|
机器学习/深度学习 Web App开发 人工智能
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。
28 2
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
|
6天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
7天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
13天前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
42 1
|
16天前
|
机器学习/深度学习 SQL 数据采集
基于tensorflow、CNN网络识别花卉的种类(图像识别)
基于tensorflow、CNN网络识别花卉的种类(图像识别)
16 1
|
1天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
9天前
|
机器学习/深度学习 人工智能 自动驾驶
深入理解深度学习中的卷积神经网络(CNN)
【10月更文挑战第18天】深入理解深度学习中的卷积神经网络(CNN)
20 0
|
12天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
14天前
|
机器学习/深度学习 编解码 算法
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
21 0