2012年至今,细数深度学习领域这些年取得的经典成果
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
点击上方“小白学视觉”,选择加"星标"或“置顶”
本文转自:计算机视觉联盟
AI博士笔记系列推荐
周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接
2006年,Hinton 发表了一篇论文《A Fast Learning Algorithm for Deep Belief Nets》,提出了降维和逐层预训练方法,该方法可成功运用于训练多层神经网络,使深度网络的实用化成为可能。该论文也被视作深度学习领域的经典之作。
从原理来看,深度学习与神经网络紧密相关:神经网络由一层一层的神经元构成,层数越多,神经网络越深,而所谓“深度学习”就是模拟人类大脑,运用深层神经网络对输入进行“思考”、“分析”并获得目标输出的过程。
那么, 自2006年Hinton发表经典论文以来,深度学习领域又取得了哪些突破性成果呢?
Google Brain前员工Denny Britz 在本文中进行了回顾整理,按时间顺序介绍了从2012年到2020年深度学习领域的数项关键性科研成就,包括运用AlexNet和Dropout处理ImageNet(2012年)、使用深度强化学习玩Atari游戏(2013年)、应用注意力机制的编码器-解码器网络(2014年)、生成对抗网络(2014-2015年)、ResNet(2015年)、Transformer模型(2017年)、BERT与微调自然语言处理模型(2018年),以及2019-2020年及之后的BIG语言模型与自监督学习等。这些技术大部分应用于视觉、自然语言、语音与强化学习等领域。
这些研究均已经过时间的考验,并得到广泛认可。本文不仅列举了2012年以来的部分出色成果,还涉及到大量有利于了解当今深度学习研究现状的基础技术与知识。深度学习基础技术的概念、方法和代码等具有相似性,研究人员可以触类旁通。比方说,一个终生研究计算机视觉(computer vision, CV)的学者很快也能适应自然语言处理(Natural Language Processing, NLP),在NLP方向获得成就。如果你是深度学习领域的入门者,以下阅读将帮助你了解现有先进技术的来历与最初发明用途,方便你更好地开展自己的研究工作。
2012年:应用AlexNet和Dropout 方法处理ImageNet
相关论文:
ImageNet Classification with Deep Convolutional Neural Networks (2012),https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks
Improving neural networks by preventing co-adaptation of feature detectors (2012)?,https://arxiv.org/abs/1207.0580
One weird trick for parallelizing convolutional neural networks (2014)?,https://arxiv.org/abs/1404.5997
具体实现:
用PyTorch搭建AlexNet,https://pytorch.org/hub/pytorch_vision_alexnet/
用TensorFlow搭建AlexNet,https://github.com/tensorflow/models/blob/master/research/slim/nets/alexnet.py? ? ?
图源:https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks
AlexNet算法被认为是深度学习和人工智能研究蓬勃发展的主要原因。它是一种以Yann LeCun提出的早期LeNet网络为基础的深度卷积神经网络(Deep Convolutional Neural Networ)。AlexNet结合芯片GPU的功能和算法优势,大大超越了以前其他对ImageNet数据集中的图像进行分类的方法。它的出现再一次证明了神经网络的强大。此外,AlexNet是最早运用Dropout的算法之一,之后也成为了提高各类深度学习模型泛化能力的一项关键技术。
AlexNet 所使用的架构,包含一系列卷积层、ReLU非线性(ReLU nonlinearity)和最大池化算法(max-pooling),被广泛视为后来CV架构创建和扩展的标准。如今,诸如PyTorch之类的软件库具有十分强大的功能,加上与目前最新的神经网络架构相比,AlexNet的构成十分简单,仅需几行代码即可通过 PyTorch 等软件库实现。有一点要注意的是:上述所介绍到的AlexNet的实现使用了论文《One weird trick for parallelizing convolutional neural networks》里所提到的网络变量。
2013年:使用深度强化学习玩转 Atari 游戏
相关论文:
Playing Atari with Deep Reinforcement Learning (2013),https://arxiv.org/abs/1312.5602
具体实现:
用PyTorch搭建深度强化学习模型(DQN),https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html
用TensorFlow搭建DQN,https://www.tensorflow.org/agents/tutorials/1_dqn_tutorial
图源:https://deepmind.com/research/publications/human-level-control-through-deep-reinforcement-learning
DeepMind团队,基于近年来在图像识别和GPU方面取得的一系列突破,成功训练了一个能通过原始像素输入来玩Atari游戏的网络。不仅如此,同一个神经网络架构还在没有被告知详细游戏规则的前提下,学会了玩7款不同的游戏,从而证明了该方法的普适性。
强化学习与监督学习(比如图像分类)的不同之处在于:在强化学习里,智能体必须在多个时间步(time step)内学会如何获得最多奖励。具体来说,就是它必须赢得比赛,而不是仅仅预测某个标签。由于智能体与环境直接互动,且每个动作都会影响下一个动作,所以训练数据不是独立且分布均匀的,这就使得许多机器学习模型的训练十分不稳定。这个现象可以使用经验回放(experience replay)等技术来解决。
尽管这项研究没有实现明显的算法创新,但却巧妙地结合了现有技术、基于GPU训练的卷积神经网络、经验回放以及一些额外的数据处理技术,并获得了大多数人始料未及的出色结果。这也提升了研究人员扩展深度强化学习技术的信心,有望借鉴这个成果来解决包括围棋、Dota 2、Starcraft 2等等更复杂的任务。
Atari游戏在之后也成为了强化学习研究的标准基准。早期的深度强化学习方法仅超过人类基本水平、学会7款游戏,但在后来几年时间里,基于这些思路所取得的进步,开始在更多游戏里打败人类。其中有一款游戏叫《蒙特祖玛的复仇》,以需要长期规划而闻名,被认为是难度最大的游戏之一。直到最近,AI 已经在57款游戏中超越了人类玩家的基准线。
2014年:采用“注意力”的编码器-解码器网络
相关论文:
Sequence to Sequence Learning with Neural Networks,https://arxiv.org/abs/1409.3215
Neural Machine Translation by Jointly Learning to Align and Translate,https://arxiv.org/abs/1409.0473
具体实现:
用Pytorch搭建采用注意力的Seq2Seq,https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html#
用TensorFlow搭建采用注意力的Seq2Seq,https://www.tensorflow.org/addons/tutorials/networks_seq2seq_nmt?
图源:https://ai.googleblog.com/2017/04/introducing-tf-seq2seq-open-source.html
深度学习最卓越的成就大多体现在与视觉相关的任务中,并且由卷积神经网络驱动。虽然NLP研究已使用LSTM网络和编码器-解码器架构在语言建模和翻译方面取得了一定成功,但该领域也是直到注意力机制的出现才开始取得令人瞩目的成就。
在处理语言时,每个 token 都会被输入循环网络(如LSTM)中,并对先前处理过的输入保持了记忆。token可能是字符,可能是单词,也可能是介于字符和单词之间的某物。换句话说,每个token都是一个时间步,一个句子就像一个时间序列。这些循环模型通常不擅长处理间隔长时间的依赖关系。在处理序列时,他们很容易“忘记”较早之前的输入,因为它们的梯度需要通过大量时间步进行传播。通过梯度下降方法优化这些模型非常困难。
新的注意力机制则有助于缓冲这一阻碍。它引入快捷连接(shortcut connections),给网络提供了一个能够在早期的时间步上适应性地“回头看”的选择。这些连接可以帮助网络决定生成特定输出时哪些输入是重要的。一个典型的例子就是机器翻译:在生成输出词时,它通常会映射一个甚至多个特定的输入词。
2014年:Adam优化器?
相关论文:
Adam: A Method for Stochastic Optimization,https://arxiv.org/abs/1412.6980
具体实现:
用PyTorch搭建实现Adam优化器,https://d2l.ai/chapter_optimization/adam.html
PyTorch Adam实现,https://pytorch.org/docs/master/_modules/torch/optim/adam.html
TensorFlow Adam实现,https://github.com/tensorflow/tensorflow/blob/v2.2.0/tensorflow/python/keras/optimizer_v2/adam.py#L32-L281? ? ? ?
图源:http://arxiv.org/abs/1910.11758
神经网络通过运用优化器将损失函数(如平均分类误差)最小化进行训练。优化器负责调整网络参数来使网络学习目标。大多数优化器都是基于随机梯度下降(Stochastic Gradient Descent, SGD)的变量。但是,也有很多此类优化器包含了可调节的参数,比如优化器本身的学习率。针对特定问题寻找正确设置不仅能减少训练时间,还能通过找到局部最小损失函数来获取更好的结果。
大型研究实验室往往会运行成本高昂的、使用了复杂学习速率调度器(learning rate schedules)的超参数检索来获取简单但对超参数敏感的优化器(比如SGD)中最好的那一个。有时候,他们的效果虽然超越了现有基准,但是往往是花费了大笔资金调节优化器的结果。科研论文里往往不会提到研究成本这些细节。也就是说,研究人员如果没有足够的资金预算来优化他们的优化器,就只能深陷“效果不佳”的泥潭。
Adam优化器主张使用梯度的一阶矩和二阶矩来自动调整学习率。研究也表明,运用Adam优化器所获取的结果非常“鲁棒”,且对超参数的调整不敏感。换句话说,Adam在大部分情况下无需太多调整就可以正常运行。就研究结果而言,目前一个被调整得很好的SGD表现更好,但Adam能帮助研究人员以较少成本进行研究。这是因为,如果实现的效果不好,研究者起码知道并不是由于某个调整得不佳的优化器所造成的。
2014/2015年 2018,仍是AI领域激动人心的一年。 这一年成为NLP研究的分水岭,各种突破接连不断;CV领域同样精彩纷呈,与四年前相比GAN生成的假脸逼真到让人不敢相信;新工具、新框架的出现,也让这个领域的明天特别让人期待…… 近日,Analytics Vidhya发布了一份2018人工智能技术总结与2019趋势预测报告,原文作者PRANAV DAR。量子位在保留这个报告架构的基础上,对内容进行了重新编辑和补充。 这份报告总结和梳理了全年主要AI技术领域的重大进展,同时也给出了相关的资源地址,以便大家更好的查询。 报告共涉及了五个主要部分: 自然语言处理(NLP) 计算机视觉 工具和库 强化学习 AI道德 下面,我们就逐一来盘点和展望,嘿喂狗~ 2018年在NLP历史上的特殊地位,已经毋庸置疑。 这份报告认为,这一年正是NLP的分水岭。2018年里,NLP领域的突破接连不断:ULMFiT、ELMo、最近大热的BERT…… 迁移学习成了NLP进展的重要推动力。从一个预训练模型开始,不断去适应新的数据,带来了无尽的潜力,甚至有“NLP领域的ImageNet时代已经到来”一说。 这个缩写,代表“通用语言模型的微调”,出自ACL 2018论文:Universal Language Model Fine-tuning for Text Classification。 正是这篇论文,打响了今年NLP迁移学习狂欢的第一枪。 论文两名作者一是Fast.ai创始人Jeremy Howard,在迁移学习上经验丰富;一是自然语言处理方向的博士生Sebastian Ruder,他的NLP博客几乎所有同行都在读。 两个人的专长综合起来,就有了ULMFiT。想要搞定一项NLP任务,不再需要从0开始训练模型,拿来ULMFiT,用少量数据微调一下,它就可以在新任务上实现更好的性能。 他们的方法,在六项文本分类任务上超越了之前最先进的模型。 详细的说明可以读他们的论文: https://arxiv.org/abs/1801.06146 Fast.ai网站上放出了训练脚本、模型等: http://nlp.fast.ai/category/classification.html 这个名字,当然不是指《芝麻街》里那个角色,而是“语言模型的词嵌入”,出自艾伦人工智能研究院和华盛顿大学的论文Deep contextualized word representations,NLP顶会NAACL HLT 2018的优秀论文之一。 ELMo用语言模型(language model)来获取词嵌入,同时也把词语所处句、段的语境考虑进来。 nlp相关技术及发展 nlp与知识图谱的现状与讨论nlp实用技巧,nlp的基本术语,nlp技术的应用及思考,nlp关键技术 关注上方“深度学习技术前沿”,选择“星标公众号”, 资源干货,第一时间送达! 转载自机器之心 2019 年对自然语言处理(NLP)来说是令人印象深刻的一年。本文将着重讲述一些 2019 年在机器学习和自然语言处理领域有所见闻的重要事件。重点主要放在自然语言处理上,但也会涉及若干人工智能领域的趣闻。主要内容包括研究论文、博客、工具和数据集、社区讨论、教程资源等。 长文预警,建议先点收藏。 目录 研究论文 机器学习/自然语言处理的创造力和社群 工具和数据集 博文文章 教程资源 人工智能伦理学 研究论文 2019 年,谷歌人工智能团队带来了?ALBERT,它是用于情境化语言表征的自监督学习模型?BERT的精简版。主要的改进在于减少了冗余,更加有效地分配了模型的性能。此方法在 12 个自然语言处理任务上达到了当前最佳性能(SOTA)。 2018 年底,英伟达的研究者们发表了一份热门论文 (A Style-Based Generator Architecture for Generative Adversarial Networks)(取名为 StyleGAN),提出了对抗生成网络的另一种生成器架构,灵感来自于风格迁移问题。2019 年,这份工作有了更新?(Analyzing and Improving the Image Quality of StyleGAN),着重研究了诸如重新设计生成器正则化的过程等方面。 上面一行为目标图像,下面一行为合成图像。图源:https://arxiv.org/abs/1912.04958 2019 年,我最喜欢的论文之一是 code2seq (https://code2seq.org/),这是一种从结构化表征的代码中生成自然语言序列的方法。这样的研究可以对自动代码摘要和文档化的应用起到助益。 你可曾想过,有没有可能为生物医学文本挖掘训练一个生物医学的语言模型?答案就是 BioBERT (BioBERT: a pre-trained biomedical language representation model for biomedical text mining),这是一个可以从生物医学文献中提取重要信息的语境化模型。 在 BERT 发表后,Facebook 的研究者们发布了 RoBERTa (RoBERTa: A Robustly Optimized BERT Pretraining Approach),引入新的优化方法来改进 BERT,也在多项自然语言处理的基准测试中达到了当前最优效果。 最近,Facebook 人工智能部门的研究者们还发表了一种基于全注意力层来改进 Transformer 语言模型效率的方法 (https://ai.facebook.com/blog/making-transformer-networks-simpler-and-more-efficient/)。这个研究组的其它工作 (https://ai.facebook.com/blog/-teaching-ai-to-plan-using-language-in-a-new-open-source-strategy-game/) 还包括了如何教人工智能系统通过制定计划来使用自然语言。 全注意力层。图来:https://arxiv.org/pdf/1907.01470.pdf 可解释性仍然是机器学习和自然语言处理领域的重要议题。这篇论文 (Explainable Artificial Intelligence (XAI): Concepts, Taxonomies, Opportunities and Challenges toward Responsible AI) 对于可解释性、分类法以及未来研究的机遇提供了一份全面的综述。 Sebastian Ruder 的博士论文也值得一看,题为:Neural Transfer Learning for Natural Language Processing。 新加坡国立大学等机构的研究者开发了一种方法 (Emotion Recognition in Conversations with Transfer Learning from Generative Conversation Modeling),能够在对话的情境下实现情绪识别,这将为情感化的对话生成铺平道路。 另一项相关工作则是用一种叫做 DialogueGCN (DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation) 的图神经网络方法,来探测对话中的情绪。作者还提供了代码实现:https://github.com/SenticNet/conv-emotion/tree/master/DialogueGCN。 谷歌量子人工智能团队在 Nature 发表了一篇论文,声称开发了一台量子计算机,速度比世界上最大的超级计算机更快。 之前提到过,可解释性是神经网络架构里需要大幅改进的一个领域。这篇论文 (Attention is not not Explanation) 讨论了在语言模型的情境下,注意力机制作为可解释性的一种可靠方法所具有的局限性。 神经逻辑机 (Neural Logic Machines) 是一种神经符号网络架构,在归纳学习和逻辑推理上效果都不错。这个模型尤为擅长数组排序和寻找最短路径之类的任务。 神经逻辑机架构。图源:https://arxiv.org/pdf/1904.11694.pdf 这里还有一篇论文 (On Extractive and Abstractive Neural Document Summarization with Transformer Language Models),把 Transformer 语言模型应用到了抽取式和摘要式 Neural document summarization。 研究者们开发出了一种方法,着重于利用比较来打造和训练机器学习模型。这种方法 (https://blog.ml.cmu.edu/2019/03/29/building-machine-learning-models-via-comparisons/) 不需要大量的特征-标签对,它将图像与之前见过的图像相比较,以判定这张图像是否应该属于某个标签。 Nelson Liu 等发表的论文 (Linguistic Knowledge and Transferability of Contextual Representations) 讨论了 BERT 和 ELMo 等预训练的语境模型所捕捉到的语言学知识类型。 XLNet?是一种自然语言处理的预训练方法,在 20 个任务上比 BERT 更胜一筹。我在这里(https://medium.com/dair-ai/xlnet-outperforms-bert-on-several-nlp-tasks-9ec867bb563b) 写过一篇关于这项重要研究的总结。 这份 DeepMind 的研究 (Learning and Evaluating General Linguistic Intelligence) 展示了一项涉及面广泛的实证调查结果,其目的为评估用于各种任务的语言理解模型。这项分析对于更好地理解语言模型捕获的内容、提高模型效率尤为重要。 VisualBERT (VisualBERT: A Simple and Performant Baseline for Vision and Language) 是一个小而强大的框架,用于为图像-语言类任务建模,相关任务包括 VQA 、Flickr30K 等。这个方法运用了堆叠的 Transformer 层和自注意力机制,来对齐一段文本和一块图像区域之中的元素。 这份研究 (To Tune or Not to Tune? Adapting Pretrained Representations to Diverse Tasks) 提供了一份比较自然语言处理迁移学习方法的详尽分析,以及为自然语言处理工作者们准备的指南。 Alex Wang 和 Kyunghyun 提出了 BERT 的一种实现方法 (BERT has a Mouth, and It Must Speak: BERT as a Markov Random Field Language Model),可以生成高质量且流畅的结果。你可以使用这份 Colab 笔记本来试试:https://colab.research.google.com/drive/1MxKZGtQ9SSBjTK5ArsZ5LKhkztzg52RV Facebook 的研究者们发布了 XLM 的 PyTorch 版代码 (https://github.com/facebookresearch/XLM),这是一个跨语言的预训练模型。 这份研究 (https://www.cl.uni-heidelberg.de/statnlpgroup/blog/rl4nmt/) 对神经机器翻译领域强化学习算法的应用做了综合分析。 这篇在 JAIR 上发表的论文 (A Survey of Cross-lingual Word Embedding Models) 对跨语言词嵌入模型的训练、评估和使用做了全面综述。 The Gradient 上发表了一篇极佳的文章 (https://thegradient.pub/the-promise-of-hierarchical-reinforcement-learning/),详述了当前强化学习的局限性,并提供了利用分层强化学习的潜在发展方向。很快就有人发布了一系列优秀的教程 (https://github.com/araffin/rl-tutorial-jnrr19/blob/master/1_getting_started.ipynb),你可以通过这组教程来开始接触强化学习。 这篇论文 (Contextual Word Representations: A Contextual Introduction) 是情境化词表征的精简版入门读物。 机器学习/自然语言处理的创造力和社群 机器学习被用于解决真实世界的各种问题,同时它也被用在了一些有趣且有创造力的地方。机器学习的创造力和人工智能的任何其他研究领域同样重要,因为最终,我们希望造出能够帮助我们塑造文化和社会的人工智能系统。 到了年末之际,Gary Marcus 和 Yoshua Bengio 在深度学习、符号人工智能和混合型人工智能系统的想法等议题上进行了辩论。 2019 斯坦福年度AI报告于年底面世,报告中对于人工智能现状全面的分析可以帮助我们更好地理解人工智能的整体进程。 常识推理仍旧是一个重要的研究领域,因为我们想要建造的人工智能系统,不仅应该能基于数据做预测,还应该理解这些决定并对它们进行推理。这类技术可以用于对话式人工智能,其目的是使得智能代理能够自然地和人们进行对话。看看 Nasrin Mostafazadeh 的这份采访 (https://www.forbes.com/sites/ayurellahornmuller/2018/12/31/the-art-of-ai-storytelling-how-one-30-under-30-scientist-is-teaching-devices-to-make-assumptions/#12824a1e2a4f)。 他在采访中讨论了常识推理以及讲故事、语言理解等应用。你也可以看看这篇关于如何在常识推理中运用语言模型的新论文 (Explain Yourself! Leveraging Language Models for Commonsense Reasoning)。 激活图谱是谷歌和 Open AI 的研究者们开发的一项技术,用于更好地理解和可视化神经网络中神经元之间发生的交互。 InceptionV1 的图像分类网络的激活图谱展示了很多完全实现的特征,如电子产品、建筑物、食物、动物的耳朵、植物和多水的背景。图来:博文 https://openai.com/blog/introducing-activation-atlases/? 看一下 Geoffrey Hinton 和 Yann LeCun 出品的这份图灵课程 (https://fcrc.acm.org/turing-lecture-at-fcrc-2019),今年他俩和 Yoshua Bengio 一起获得了图灵奖。 这篇论文 (Tackling Climate Change with Machine 2019人工智能科技进展 2018年人工智能进展
2019人工智能科技进展情况,人工智能科技发展,人工智能科技进步,人工智能技术进展
作者:安妮 夏乙