知乎 | 有哪些当时很有潜力但是最终没有流行的深度学习算法?

2024-04-13 19:38

本文主要是介绍知乎 | 有哪些当时很有潜力但是最终没有流行的深度学习算法?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ab09131f76de674c9808bbec402da238.png

来源:机器学习实验室
本文约2500字,建议阅读5分钟
本文带你了解有潜力但是没流行的深度学习方法。

每天的新工作新paper层出不穷,而能够在深度学习圈子里脱颖而出的工作屈指可数,还有很多有潜力的工作因为种种原因被埋没了。在你的科研/工程阅读中遇见过哪些看起来很有潜力的深度学习模型,对他们没有流行起来你有什么见解?

原问题:最近读了一些201x年的论文感觉有一些十分新颖但是也不知道为什么后续没有被重视。在你的科研/工程阅读中遇见过哪些看起来很有潜力的深度学习模型,对他们没有流行起来你有什么见解?

问题链接:

https://www.zhihu.com/question/490517834

# 回答一

作者:霍华德

来源链接:

https://www.zhihu.com/question/490517834/answer/2169566194

提名Memory Networks

d82e83a5d67b97b272571679878ef18b.png

原文链接:

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

来源链接:

https://www.zhihu.com/question/490517834/answer/2171472030

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

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

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

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

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

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


b382bc5f85f71e21b080c785947be8da.png

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

a1cc95f88e13199ec7640fc249ae832f.png

脉冲神经网络

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

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

  2. 目前的神经形态硬件没有流行。目前主流的计算硬件都是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)

ed0a5d3f4c5b78c2927a4c05344137f0.png

原文链接:

https://arxiv.org/pdf/1710.09829.pdf

5d5ece88a88d37d331e18d4fb6cea7fd.png

原文链接:

https://openreview.net/pdf?id=HJWLfGWRb

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

112d0a36c445d0c3c041bced447e0099.png 9814bdf16353995ad54f66a95573735e.png

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的输入和输出均为一个向量。

98fd67c2d55fbca2aabd1d4159a43e5d.png

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

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

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

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

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

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

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

关于Capsule Network的来龙去脉可以看这篇介绍:

https://zhuanlan.zhihu.com/p/29435406

关于CNN平移不变性的讨论,可以看以下回答:

https://www.zhihu.com/question/301522740

编辑:于腾凯

校对:林亦霖bde2d74a3e3929e89283c33f4c78ef96.png

这篇关于知乎 | 有哪些当时很有潜力但是最终没有流行的深度学习算法?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/901043

相关文章

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第