Press "Enter" to skip to content

你遇见过什幺当时很有潜力但是最终没有流行的深度学习算法?

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

作者 丨霍华德、edisonlee、陀飞轮

 

来源丨知乎问答

 

问题链接:https://www.zhihu.com/question/490517834

 

#  回答一

 

作者:霍华德

 

来源链接:https://www.zhihu.com/question/490517834/answer/2169566194

 

提名 Memory Networks 原文链接: https://arxiv.org/pdf/1410.3916.pdf

 

准确说Memory Networks并不只是一个模型,而是一套思路,使用外部的一个memory来存储 长期记忆 信息,因为当时RNN系列模型使用final state 存储的信息,序列过长就会遗忘到早期信息。

 

甚至,我觉得Memory Networks的思想后面启发了self-attention和transformer。最重要的就是提出了query – key – value思想,当时的该模型聚焦的任务主要是question answering,先用输入的问题query检索key-value memories,找到和问题相似的memory的key,计算相关性分数,然后对value embedding进行加权求和,得到一个输出向量。这后面就衍生出了self-attention里的Q,K,V表示,在self-attention里的Q=K=V,但早期的Memory Networks中可以看出,QKV其实是三个向量。

 

如今,Memory Networks已少有人提及,但它的思想已经被transformer继承,而transformer已经横扫NLP和CV等多个领域。突然有了一种“功成不必在我,而功成必定有我”的感慨。又联想到谭嗣同变法虽然失败了,但他又一个学生叫杨昌济,杨昌济又有一个学生叫毛泽东…

 

#  回答二

 

作者:edisonlee

 

来源链接:

 

我也提一个: 脉冲神经网络(Spiking Neural Networks, SNN) ,最早由Maass教授[1]于1997年提出的模型。SNN不能说完全消失,每年顶会都有那幺几篇,但是总感觉不温不火的。

 

SNN是基于大脑运行机制的新一代人工神经网络,是目前最接近类脑计算水平的一类生物启发模型,具有可以处理生物激励信号以及解释大脑复杂智能行为的优势,被誉为第三代神经网络(第一代感知机,第二代以CNN为代表的的神经网络)。SNN在本质上与目前广泛使用的人工神经网络(ANN)存在巨大差异,主要体现在如下几点:

 

 

SNN使用离散的脉冲序列(0和1)进行消息传递,而ANN使用实值;因此ANN具有更高的运算效率。

 

SNN分为时间驱动和事件驱动两种。前者利用时间步长仿真信号,后者根据只有在接收或发射脉冲信号时才处于活跃状态;而大部分的ANN架构无法获取时间维度信息(除了RNN类的模型),并且每个神经元永远处于激活状态,因此SNN具有更少的能量消耗。

 

SNN使用脉冲序列进行通讯,与人脑的消息传播机制更像,因此SNN比ANN更像神经网络。

 

SNN可以运行在专用的神经形态硬件上,例如Intel Loihi[2],Brainchip Akida[3]等;而ANN主要应用在GPU上进行加速。已有文献证明,基于SNN 架构的芯片能量效率比基于Field Programmable Gate Array(FPGA)实现的卷积神经网络的能量效率高出两个数量级。

 

第一代与第二代人工神经网络

脉冲神经网络

导致SNN难以流行的原因主要是:

 

 

SNN使用离散脉冲序列,其中脉冲发射函数Heaviside step函数具有不可微的性质,因此难以像目前的ANN一样使用梯度下降算法优化。虽然目前有一些替代梯度的方法,但是在效果上还是和ANN有点差距。

 

目前的神经形态硬件没有流行。目前主流的计算硬件都是GPU,在GPU上,0-1的脉冲序列都被当成实值进行矩阵运算,无法看出SNN与ANN的差距。

 

 

参考文献:

 

[1] Maass W. Networks of spiking neurons: the third generation of neural network models[J]. Neural networks, 1997, 10(9):1659-1671.

 

[2] Mike Davies, Narayan Srinivasa, Tsung-Han Lin, Gautham Chinya, YongqiangCao, Sri Harsha Choday, Georgios Dimou, Prasad Joshi, Nabil Imam, Shweta Jain,et al. 2018. Loihi: A neuromorphic manycore processor with on-chip learning.Ieee Micro38, 1 (2018), 82–99.

 

[3] Anup Vanarse, Adam Osseiran, Alexander Rassau, and Peter van der Made. 2019.A hardware-deployable neuromorphic solution for encoding and classificationof electronic nose data.Sensors19, 22 (2019), 4831.

 

[4] Cao Y, Chen Y, Khosla D. Spiking deep convolutional neural networks for energy-efficient object recognition[J]. International Journal of Computer Vision, 2015, 113(1):54-66.

 

#  回答三

 

作者:陀飞轮

 

来源链接:https://www.zhihu.com/question/490517834/answer/2169518353

 

Hinton的胶囊网络(Capsule Network)

 

原文链接: https://arxiv.org/pdf/1710.09829.pdf

 

原文链接: https://openreview.net/pdf?id=HJWLfGWRb

 

Hinton认为人的视觉系统会建立“坐标框架”,并且坐标框架的不同会极大地改变人的认知。而在CNN上却很难看到类似“坐标框架”的东西。Hinton的看法是,我们需要 Equivariance 而不是 Invariance。Invariance,是指表示不随变换变化,比如分类结果等等;而 equivariance 不会丢失这些信息,它只是对内容的一种变换。

Invariance 主要是通过 Pooling 等下采样过程得到的。CNN同样强调对空间的 invariance,也就是对物体的平移之类的不敏感(物体不同的位置不影响它的识别)。对平移和旋转的 invariance(CNN的设计希望有invariance,虽然CNN不是完全的invariance),其实是丢弃了“坐标框架”,Hinton认为这是CNN不能反映“坐标框架”的重要原因。CNN 前面非 Pooling 的部分是 equivariance 的。

 

于是Hinton 提出了一个猜想:

 

物体和观察者之间的关系(比如物体的姿态),应该由一整套激活的神经元表示,而不是由单个神经元,或者一组粗编码(coarse-coded,这里意思是指类似一层中,并没有经过精细组织)的神经元表示。只有这样的表示,才能有效表达关于“坐标框架”的先验知识。而这一整套神经元,Hinton认为就是Capsule。

 

capsule network最大的特点就是“vector in vector out”,而之前的scaler neuron则是“scaler in scaler out”,所以 本质上来讲capsule是一种vector neuron 。capsule network中的每一层由若干个capsule组成,capsule的输入和输出均为一个向量。

图2:神经元与胶囊的对比

图2对neuron和capsule进行对比。神经网络的输入是一系列的标量,通过对这些标量进行加权求和并经过激活函数,得到一个标量,也就是神经元的最终输出。capsule的输入则是一系列的向量,这些向量首先经过一个编码整体与部分关系的矩阵映射,然后这些向量根据和整体特征的相似度加权平均,得到表示整体的特征向量,最后通过一个squash函数得到capsule的输出。高层特征由低层特征加权得到,而权重又由高层特征和低层特征的相似程度计算得到,这两个问题相互依赖,于是capsule network提出一种动态路由算法(Dynamic Rounting)。

 

Capsule Network在刚发表的时候,引起了深度学习领域的广泛关注,一度认为可能会替代CNN成为新一代的通用网络架构,谁知道之后被Transformer一统江湖了。

 

Capsule Network之所以没有流行起来可能有三点原因:

 

 

理解capsule本身就有难度,而且使用了机器学习的一些算法,深度学习当道的年代,机器学习算法就算是高门槛了。

 

capsule本身有很多细节没想清楚,比如原始的capsule是引入聚类的思想来对特征进行抽象,那有没有其他更合适的方法呢,capsule还存在许多没有解决的问题。

 

Transformer中的self-attention能够建模pixel之间的相对关系,跟capsule的某些理念不谋而合,而且Transformer整体框架上要比capsule简洁易懂。

 

 

关于Capsule Network的来龙去脉可以看这篇介绍: https://zhuanlan.zhihu.com/p/29435406

 

关于CNN平移不变性的讨论,可以看以下回答: https://www.zhihu.com/question/301522740

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注