一文看懂深度学习发展史和常见26个模型
参加 2019 Python开发者日,请扫码咨询 ↑↑↑
来源 | AI部落联盟(ID:AI_Tribe)
作者简介:沧笙踏歌,硕士毕业于北京大学,目前计算机科学与技术博士在读,主要研究自然语言处理和对话系统,擅长使用深度学习和强化学习解决自然语言处理问题。读博前在公司带过NLP算法团队。
本文首先从4个方面(张量、生成模型、序列学习、深度强化学习)追踪深度学习几十年的发展史,然后再介绍主流的26个深度学习模型。
1.深度学习发展史
深度学习的发展史主要是我几个月前看的唐杰老师的学生整理的一个博文,现在找不到博文了。凭借记录加上我的理解,简单写一写吧。如果还有人知道这个博文,欢迎告知,我把链接放上来,供大家更好的学习。(编者注:https://weibo.com/2126427211/GavUQjfLa?type=comment#_rnd1543405779148)
主要按最早研究出现的时间,从4个方面来追踪深度学习的发展史。
1.1 张量
1958年Frank提出感知机,但后来被一些学者发现因算力的不足,制约了较大神经网络的计算,导致很长时间发展缓慢。
Fukushima在1979年左右提出Neocognitron,感觉这是卷积和池化的雏形。
Hinton在1986年提出反向传播的思想和多层感知机(BPNN/MLP),有非常大的意义,对未来几十年(可以说直到现在)影响深远。
接下来比较重要的发展是,LeCun在1998年提出LeNet-5,7层的CNN做数字识别。
然后AlexNet在12年在ImageNet夺冠,主要是CNN+Dropout+Relu,又是Hinton极大的带动了DL的发展,大佬的地位毋庸置疑。另外相似的还有15年的GoogLeNet。
总算有华人大佬作出大贡献了,16年何恺明(CV领域应该无人不知)提出Resnet,还拿了best paper,影响较大,当然效果也很好。另外相似的还有17年的DenseNet。
17年Capsule Network登场了,又是Hinton。我比较看好胶囊网络在NLP领域的发展,虽然现在还没太明显的效果。因为用胶囊网络来做文本的特征表示的话,可以极大的丰富特征,更适合处理文本这种比较灵活的数据。
1.2 生成模型
上世纪80年代提出RBM,06年叠加成Deep Belief Network(DBN),这算是重新叠加网络的一个比较重要的开始吧。
上世纪80年代Hinton提出Auto-Encode,过了较长时间Bengio在08年提出Denoise Auto-Encode。Welling在13年提出Variational Auto-Encode。
接下来,在14年Goodfellow和Bengio等提出GAN,从此生成网络不仅是AE以及其变种(Denoise Auto-Encode、Variational Auto-Encode等)了,可以这么说:GAN的出现极大的提高了生成模型的地位和热点,GAN也是席卷NLP、CV、AI等领域的各大顶会,甚至是一些best paper。另外,陆续出现很多很多GAN的变种,比如DCGAN、CGAN、PGGAN、LAPGAN、InfoGAN、WGAN、F-GAN、SeqGAN、LeakGAN等。
1.3 序列学习
1982年提出hopfield network,1997年 Schmidhuber提出LSTM。Hinton组在13年把RNN用在语音识别上取得巨大突破,RNN立马爆火。
03年提出LM(语言模型),13年提出w2v,佩服Bengio,这也是我为啥千里迢迢跑去找Benign合影的原因之一。w2v带来的影响不言而喻,目前NLP领域基本上所有Paper都会用到词向量,包括也影响了后面出现的Glove、FastText、ELMo(18年2月)、Transformer(18年6月)、Bert(18年10月提出,Jacob一战封神,我感觉至少是18年NLP领域最大的发展,甚至可以说是近几年最大的发展)等。Bert的出现,很可能改变所有主流NLP任务的打法和Baseline。
还有一个分支,14年出现Seq2Seq,这个重要性也无需赘述了,NLP领域的都知道。然后15年出现Charater CNN,17年出现self-attention。
1.4 深度强化学习
提到强化学习就不得不提这Deep Mind、AlphaGo以及其变种、Silver。13年提出Deep Q-learning,15年提出Double DQN,16年提出Dueling Net。 15年的DDPG和16年的A3C都是NN+Policy Gradient,也应用在不少领域。16年的AlphaGo(除了AI领域,很多不懂AI的人都知道,甚至可以说是AI爆火的最大助力),17年出现更疯狂的Alpha Zero。
2.深度学习模型
翻译自neural-network-zoo,原文略烦琐而不利于入门学习,我做了简化,方便大家阅读。如果有感兴趣的,可以通过此链接深入学习。
2.1 Feed forward neural networks (FF or FFNN) and perceptrons (P)
前馈神经网络和感知机,信息从前(输入)往后(输出)流动,一般用反向传播(BP)来训练。算是一种监督学习。对应的paper。
2.2 Radial basis function (RBF)
径向基函数网络,是一种径向基函数作为激活函数的FFNNs(前馈神经网络)。对应的paper。
2.3 Hopfield network (HN)
Hopfield网络,是一种每个神经元都跟其它神经元相连接的神经网络。对应的paper。
2.4 Markov chains (MC or discrete time Markov Chain, DTMC)
马尔可夫链 或离散时间马尔可夫链,算是BMs和HNs的雏形。对应的paper。
2.5 Boltzmann machines (BM)
玻尔兹曼机,和Hopfield网络很类似,但是:一些神经元作为输入神经元,剩余的是隐藏层。对应的paper。
2.6 Restricted Boltzmann machines (RBM)
受限玻尔兹曼机,和玻尔兹曼机 以及 Hopfield网络 都比较类似。对应的paper。
2.7 Autoencoders (AE)
自动编码,和FFNN有些类似,它更像是FFNN的另一种用法,而不是本质上完全不同的另一种架构。对应的paper。
2.8 Sparse autoencoders (SAE)
稀疏自动编码,跟自动编码在某种程度比较相反。对应的paper。
2.9 Variational autoencoders (VAE)
变分自动编码,和AE架构相似,不同的是:输入样本的一个近似概率分布。这使得它跟BM、RBM更相近。对应的paper。
2.10 Denoising autoencoders (DAE)
去噪自动编码,也是一种自编码机,它不仅需要训练数据,还需要带噪音的训练数据。对应的paper。
2.11 Deep belief networks (DBN)
深度信念网络,由多个受限玻尔兹曼机或变分自动编码堆砌而成。对应的paper。
2.12 Convolutional neural networks (CNN or deep convolutional neural networks, DCNN)
卷积神经网络,这个不解释也都知道。对应的paper。
2.13 Deconvolutional networks (DN)
去卷积网络,又叫逆图形网络,是一种逆向的卷积神经网络。对应的paper。
2.14 Deep convolutional inverse graphics networks (DCIGN)
深度卷积逆向图网络,实际上是VAE,且分别用CNN、DNN来作编码和解码。对应的paper。
2.15 Generative adversarial networks (GAN)
生成对抗网络,Goodfellow的封神之作,这个模型不用解释也都知道。对应的paper。
2.16 Recurrent neural networks (RNN)
循环神经网络,这个更不用解释,做语音、NLP的没有人不知道,甚至非AI相关人员也知道。对应的paper。
2.17 Long / short term memory (LSTM)
长短期记忆网络, RNN的变种,解决梯度消失/爆炸的问题,也不用解释,这几年刷爆各大顶会。对应的paper。
2.18 Gated recurrent units (GRU)
门循环单元,类似LSTM的定位,算是LSTM的简化版。对应的paper。
2.19 Neural Turing machines (NTM)
神经图灵机,LSTM的抽象,以窥探LSTM的内部细节。具有读取、写入、修改状态的能力。对应的paper。
2.20 Bidirectional recurrent neural networks, bidirectional long / short term memory networks and bidirectional gated recurrent units (BiRNN, BiLSTM and BiGRU respectively)
双向循环神经网络、双向长短期记忆网络和双向门控循环单元,把RNN、双向的LSTM、GRU双向,不再只是从左到右,而是既有从左到右又有从右到左。对应的paper。
2.21 Deep residual networks (DRN)
深度残差网络,是非常深的FFNN,它可以把信息从某一层传至后面几层(通常2-5层)。对应的paper。
2.22 Echo state networks (ESN)
回声状态网络,是另一种不同类型的(循环)网络。对应的paper。
2.23 Extreme learning machines (ELM)
极限学习机,本质上是随机连接的FFNN。对应的paper。
2.24 Liquid state machines (LSM)
液态机,跟ESN类似,区别是用阈值激活函数取代了sigmoid激活函数。对应的paper。
2.25 Support vector machines (SVM)
支持向量机,入门机器学习的人都知道,不解释。对应的paper。
2.26 Kohonen networks (KN, also self organising (feature) map, SOM, SOFM)
Kohonen 网络,也称之为自组织(特征)映射。对应的paper。
总结一下吧,深度学习发展很快,新的模型层出不穷,所以要想全部列举是不可能的。另外,很多模型都是这里提出很长很长时间了,所以也不是说“老”模型就没用,大家学习的话,还是要全面而深入的学习。
(本文为 AI科技大本营转载文章,转载请联系原作者)
◆
征稿
◆
推荐阅读:
上海交大CV博导微信群辱骂学生,已停止教学
Google BBR拥塞控制算法背后的数学解释 | 深度
苹果春季发布会:库克绝不玩别人玩剩下的!
中国区块链职业发展现状: 30岁前不做开发; 平均薪资仅38.4万; 跳槽薪资涨三成 (附完整报告下载资源)
在线公开课 | 从理论走向实践,多角度详解Cloud Native
库克谈“唱衰苹果”:一派胡言!
13个Python最佳编程技巧,越早知道越好 | 码书
现实!程序员只有跳槽才能涨薪吗?
❤点击“阅读原文”,查看历史精彩文章。
相关文章:

JBL无所不能与IPhone4、IPad2的完美盛宴
期待以久JBL白版终于到货了,由于水货的供电参数是110V~200V,行货是110~220V,所以本人选择了行货,因为水货的供电和国内的输入电压不符,时间用久了会影响小J寿命。经过测试后本人发现,用JBL无所不能连接IPho…

【Go】Go基础(二):学习网址汇总
Go语言中文网站 https://studygolang.com/ Go语言标准库文档 https://studygolang.com/pkgdoc 《The Way to Go》中文名《Go 入门指南》 https://github.com/Unknwon/the-way-to-go_ZH_CN https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md…

堆和栈的主要区别由以下几点:
1、管理方式不同;2、空间大小不同;3、能否产生碎片不同;4、生长方向不同;5、分配方式不同;6、分配效率不同;管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制&a…

参与2011年7月13日举行的Azure国际猜拳锦标赛,赢取5,000美元大奖
你想要编写自己的“bot”角色并测试你的技能,在线同来自美国,加拿大,中国,德国,新西兰,瑞典和英国的Windows Azure开发者一教高下,并赢取5,000美元大奖吗?请先注册Azure国际猜拳锦标…

【Go】Go基础(三):基本结构和基本数据类型
1、Go程序源码结构 我们将一个Go程序的源码暂时称为一个项目 : 每个项目由若干个包组成; 每个包由同一个目录中的若干个go文件组成; 每个go文件中由若干函数、变量、常量等组成; 每个函数由流程控制语句、变量、常量、运算符和函…

2019如何学Python?这里有你需要的答案
点击上方↑↑↑蓝字关注我们~参加 2019 Python开发者日,请扫码咨询 ↑↑↑编辑 | Jane出品 | Python大本营(公众号id:pythonnews)根据 2018 年 Python 开发者大调查,Python 3 的渗透率已经快速增长至 84%,越…

Cisco HSRP热备份路由器协议配置
HSRP热备份路由器协议: HSRP是 Hot Standby Routing Protocol(热备份路由协议)的缩写,它的作用是当核心路由器不能正常工作时, 备用路由器能够实现自动平滑的替换,以保证网络正常使用。该协议中含有多台路由…

FTP与TFTP的区别
文件传输协议(FTP)实际上就是传输文件的协议,它可以应用在任意两台主机之间,但是FTP不仅仅是一个协议,它同时也是一个程序。作为协议,FTP是被应用程序所使用的;而作为程序,用户需要通过手动方式来使用FTP并完成文件的传送。FTP允许执行对目录和文件的访问,并且可以完…

写给NLP研究者的编程指南
点击上方↑↑↑蓝字关注我们~参加 2019 Python开发者日,请扫码咨询 ↑↑↑作者 | 赤乐君,日本某大手研发部门的NLP工程师。关注关系抽取与知识图谱的相关研究。来源 | 赤乐君的知乎专栏最近AllenNLP在EMNLP2018上做了一个主题分享,名为“写给…

【数据库】sqlite3常用命令及SQL语句
【数据库】sqlite3数据库备份、导出方法汇总 一、准备工作 0、安装SQLite3 1)ubuntu命令安装(不是最新版本) sudo apt install sqlite32)源码安装(可以安装最新版本) 下载: https://www.sq…

资本主义社会是不存在人道的
对叙利亚人民感到无助而写点文章,虽然没有什么大的作用,也谈谈自己对于战争与和平的理解,战争与和平就相当于爱与恨一样,爱的热切,恨之入骨,虽然形容不当,人性的双面总是要拿来剖析一二的。 人类…

再谈javascript图片预加载经典技术
图片预加载技术的典型应用: 如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展示出来,所以lightb…

【Go】Go基础(四):流程控制(控制结构)
1、if-else结构 格式: if condition1 {// do something } else if condition2 {// do something else } else {// default }和C的不同,条件语句没有大括号; 新增的语法: if initialization; condition {// do something }例…

让世界零距离 小鱼易连的大梦想
“他是高材生,也是技术大拿。十年北美,十年中国,他在高科技领域善于创新、精于管理,五项中美专利加身。他在北电网络领导团队不断创新,成就亚太顶尖;他曾任宝利通全球高管,带领团队从初创一路起飞ÿ…

程序员再也不能埋头敲代码了
上周,阿里巴巴重磅发布了机器学习平台 PAI 3.0 版本,据悉,这个 PAL 平台封装了 200 多种经典算法,可以轻松搭建机器学习实验。作为码农一枚,使我不得不抬起原本一直低着敲代码的头,看看这个为 AI 狂欢的世界…

函数的重载 - C++快速入门06
函数的重载 让编程改变世界 Change the world by program 函数的重载 C 里的函数重载(overloading)机制比我们此前见到的东西都高深,这种语言的灵活性和强大功能在它身上体现得淋漓尽致。 所谓函数重载的实质就是用同样的名字再定义一个有…

【Go】Go基础(五):函数
1、简述 Go 里面有三种类型的函数: * 普通的带有名字的函数 * 匿名函数或者lambda函数 * 方法(Methods)两个特殊函数:main()和init(),它们没有参数和返回值; Go语言里面没有函数重载; 2、函数…

搬箱轮滑再炫技!一个被波士顿动力耽误的机器人
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)据 TheVerge 等多家外媒报道,波士顿动力公司 (Boston Dynamics) 又推出了一款新的机器人&…

我是如何在天猫、蚂蚁金服、百度等大厂面试中被拒的 | 掘金技术征文
本人16年毕业于普通二本院校网络相关专业,工作经验两年半,目前就职业于一家普通民营企业。 由于非985、211学历硬伤,校招进大厂的门槛远高于同届985、211的毕业生。于是乎,从毕业到现在经历了三家创业公司,创业公司的痛…

solaris上的pkg管理
原文写于2010-05-18 19:43:40 网易博客,已删. 在solaris上安装程序,很多时候多离不开package管理.上的编译好的软件都是已package的形式压缩好然后提供给大家下载的. 关键是3个命令:pkgadd/pkginfo/pkgrm pkgadd -d pkgname用来添加安装包 pkginfo 用来打印系统…

【Go】Go基础(六):数组、切片slice、映射map
1、数组 1.1 数组定义 数组:数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列。 数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。数组长度最大为 …

语义表征的无监督对比学习:一个新理论框架
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑译者 | Linstancy责编 | 琥珀出品 | AI科技大本营(ID:rgznai100)诸如图像、文本、视频等复杂数据类型的语义表征 (也称为语义嵌入) 已成为机器学习的核心…

YEX黄建:脱离比特币谈区块链,要么真傻,要么装疯卖傻丨区块链十人谈
如果说2017年是属于虚拟货币的一年,那么2018年的区块链将是生态和应用的一年,随之而来的也将是新的玩法、新的赚钱姿势。为此,雷锋网推出“区块链十人谈”(十人者,取是知众人博所长之意,非实指)…

70佳精美的PSD素材免费下载(上篇)
设计师经常会去网上搜罗各种各样的素材,这些免费素材不仅能帮助他们节省大量的时间,而且能有很好的效果。今天,本文与大家分享70佳精美的PSD素材,非常感谢那些很有才华的设计师分享它们的劳动成果,让更多的人可以使用他…

漫画讲述人工智能简史
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑作者 | 武博士、宋知达、袁雪瑶、聂文韬来源 | 大鱼AI(id:DayuAI-Founder)本文我们会以生动有趣的漫画来介绍关于人工智能(AI)相…

【Go】Go基础(七):包
一、标准库概述 1、官方手册 内置包在 Go 语言中有 150 个以上,它们被称为标准库,完整列表可以在Go Walker中查看 https://gowalker.org/search?qgorepos 2、常用包简介 unsafe: 包含了一些打破 Go 语言“类型安全”的命令,一般的程序中不会…

Mysql是时候学习一个存储过程了
create procedure 存储过程名() DECLARE uid INT; #注意声明的变量名不能跟表的字段名一致,否则会报错。如user的主键是id,那么这里声明用来存id值的变量名就不能为id,可以改为uid等 DECLARE done INT DEFAULT 0; #repeat结束标识 DECLARE us…

ASP.NET的Cookie跨域问题
将Cookie的有效范围限制到域。 默认情况下,Cookie 与特定的域相关联。例如,如果您的站点是 www.contoso.com,那么当用户向该站点请求页面时,您编写的Cookie就被发送到服务器。(有特定路径值的Cookie除外)…

详解物联网的中间件:为何说它是不可或缺的?
互联网的大规模普及,拉近了人与人之间的交流,而不同国家人与人之间的交往也变得密切起来。由于彼此使用的语言不通,为了能够互相交流,我们需要将不同种的交流语言转换成对方可识别的信息,这就是翻译存在的理由了。同样…

Decoders对于语义分割的重要性 | CVPR 2019
点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑作者 | Lin-Zhuo Chen转载自博客链接:https://linzhuo.xyz/posts/DUpsample/今天为大家推荐一篇 CVPR2019 关于语义分割的文章 Decoders Matter for Semantic Segme…