送你一份"不正经"的深度学习简述(附论文)

简介: 作为人工智能领域里最热门的概念,深度学习会在未来对我们的生活产生显著的影响,或许现在已经是了,从 AlphaGo 到 iPhone X 上的人脸识别(FaceID),背后都有它的身影。关于深度学习,我们能够看到很多优秀的介绍、课程和博客,本文将列举其中的精华部分,而且,你会发现这是一篇"不一样"的文章。

作为人工智能领域里最热门的概念,深度学习会在未来对我们的生活产生显著的影响,或许现在已经是了,从 AlphaGo 到 iPhone X 上的人脸识别(FaceID),背后都有它的身影。关于深度学习,我们能够看到很多优秀的介绍、课程和博客,本文将列举其中的精华部分,而且,你会发现这是一篇"不一样"的文章。

6afc6475ed2c20bd2d09d2ba0c17891d28673552

不一样在哪儿呢?可能是本文没有按照"正常"的深度学习博客结构:从数学讲起,然后介绍论文、实现,最后讲应用。我希望用讲故事的方式来介绍深度学习,这可能要比只介绍信息和公式要更加平易近人一些。

我为什么要写这篇深度学习简介?

390341f8eef92e7ed3cad477166c6af46ed965b9

有时候,把自己的思考过程记录下来非常重要。

目前,深度学习(Deep Learning)是数据科学、AI、技术和人类生活中重要的一部分,它值得我们去关注。你不能简单地说:“深度学习就是往神经网络中添加一个层,哇,神奇!”。不,不是这样。我希望读完本文后,大家会对深度学习有不一样的认识。

深度学习时间线

31a2f811b198de5cb839b91c7255707a0056f00d

我根据多篇论文和其他文章的内容绘制了这份时间线,旨在使大家看到深度学习不只是神经网络。在它的发展过程中出现了真正的理论进步、软件和硬件进展。

深度学习有何"奇怪"之处?

7a615c9e3c9227114df41063123db6f2e87025e8

深度学习已经出现很久了,那么为什么它直到最近 5-7 年才闻名于世,并迅速发展起来呢?

如前所述,直到 21 世纪初,我们仍然缺乏训练非常深层神经网络的可靠途径。现在,随着多个简单却重要的理论、算法进步,硬件发展(大部分是 GPU,现在是 TPU)和数据的指数级增长和积累,深度学习快速发展,并改变我们做机器学习的方式。

深度学习也是非常活跃的研究领域,今天,众多研究者们仍在寻找最好的模型、网络拓扑、最好的超参数优化方法等等。要想像其他活跃的科学领域一样紧跟研究成果很难,但是并非不可能。

Hofer 等人在论文《Deep Learning with Topological Signatures》如此介绍拓扑和机器学习:

近期代数拓扑方法仅在机器学习社区出现,最显著的是,它出现在术语"拓扑数据分析"(topological data analysis,TDA)下面。TDA 帮助我们从数据中推断出相关拓扑和几何信息,因此它提供了一种看待多种机器学习问题的新型、有益的视角。

对我们来说很幸运的是,有很多人在帮助我们理解和消化此类信息,比如吴恩达的课程、一些相关博客等等。

这对我来说有些奇怪或者不寻常,因为正常情况下你必须花费一段时间(甚至好多年)才能消化论文或期刊中那么多艰深、前沿的信息。当然,现在大部分科学领域从论文到一篇博客解读的时间越来越快,虽然我认为深度学习还有一些不一样的感觉。

深度学习和表征学习的突破性成果

696aaf43a088ca21e85d4be2e3fbfabd738baa1d

机器学习领域中的大多数人都认为,几十年来深度学习论文中的每个最新思想(具体来说是指神经网络或算法的新型拓扑结构和配置)都是机器学习中的最棒思想(要知道深度学习是机器学习的子领域)。

我在本文中用了很多次"学习"(learning)这个词,那么"学习"究竟是什么意思呢?

在机器学习中,"学习"是指为你正在分析和研究的数据自动搜索更好的数据表征的过程(记得,这并不是让机器来学习)。

"表征"(representation)一词在这个领域中特别重要,那什么是"表征"呢?"表征"就是观察数据的方式。

举个例子,如下图所示,假设问题是画出一条直线将图中的蓝色圆和绿色三角形分开:

f695582c87258bf17c5c504378c2c60a4e2d4dac

Ian Goodfellow et al. (《深度学习》, 2016)

在《深度学习》这本书中,作者解释道:我们使用笛卡尔坐标系来表征数据,这时该问题不可解。

难道就没办法了吗?当然不是。如果我们采用不同的方式来表征数据,使得可以用直线分离不同的数据类型。这种方法在数学中已经出现了好几百年。在这个例子中我们需要的仅仅是一次坐标变换。通过坐标变换,我们得到了问题的解:

99bb5eeffc78fb42c568812cecdeb1ee64f23065

Ian Goodfellow et al. (《深度学习》, 2016)

现在我们就可以画出一条直线来分离数据:

5d2cce39c7eaac868892e72c4f9b49cda1ca5ba4

因此在这个例子中,我们通过手动探索并选择了能获得更好的表征方式的变换。但是,假如我们能开发一个系统或程序来自动搜索不同的表征(在这个例子中是坐标变换),然后确定新方法的分类准确率的计算方式,这时候就变成了机器学习。

这一点很重要,深度学习是使用不同类型神经网络的表征学习,通过优化网络的超参数来获得对数据的更好表征。

而没有深度学习中的突破性研究,这一切也将不可能出现,这里我列出几个经典案例:

1. 反向传播

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edfA theoretical framework for Back-Propagation——Yann Lecun:

http://yann.lecun.com/exdb/publis/pdf/lecun-88.pdf

2. 更好的初始化网络参数。需要记住的是:初始化策略需要根据所使用的激活函数来选择。

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edf“深度学习的权重初始化”——Coursera:

https://www.coursera.org/learn/deep-neural-network/lecture/RwqYe/weight-initialization-for-deep-networks

8481c8f592b7f349aa84a1de5c171db681516edfHow to train your Deep Neural Network:

http://rishy.github.io/ml/2017/01/05/how-to-train-your-dnn/

8481c8f592b7f349aa84a1de5c171db681516edf斯坦福大学 CS231n Convolutional Neural Networks for Visual Recognition:

http://cs231n.github.io/neural-networks-2/#init

3. 更好的激活函数。这意味着,可以更快地逼近函数,从而实现更快的训练。

4. Dropout:防止过拟合等问题。

8481c8f592b7f349aa84a1de5c171db681516edfLearning Less to Learn Better—Dropout in (Deep) Machine learning:

https://medium.com/@amarbudhiraja/https-medium-com-amarbudhiraja-learning-less-to-learn-better-dropout-in-deep-machine-learning-74334da4bfc5

8481c8f592b7f349aa84a1de5c171db681516edfGeoffrey Hinton 等人的"Dropout: A Simple Way to Prevent Neural Networks from Overfitting":

http://www.jmlr.org/papers/volume15/srivastava14a/srivastava14a.pdfutm_content=buffer79b43&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

5. 卷积神经网络(CNN)

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edfYann LeCun 等人的"Gradient-Based Learning Applied to Document Recognition":

http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

6. 残差网络(ResNet)

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edf孙剑等人的论文"Deep Residual Learning for Image Recognition":

https://arxiv.org/abs/1512.03385v1

8481c8f592b7f349aa84a1de5c171db681516edf论文"Residual Networks of Residual Networks: Multilevel Residual Networks":

https://arxiv.org/abs/1608.0290

7. 基于区域的 CNN,可用于目标检测等。

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edf论文"Rich feature hierarchies for accurate object detection and semantic segmentation":

https://arxiv.org/abs/1311.2524v5

8. 循环神经网络(RNN)与 LSTM

9. 生成对抗网络(GAN)

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edfIan Goodfellow 等人的 GAN 论文:

https://arxiv.org/abs/1406.2661v1

10. Geoffrey Hinton 近期提出的 Capsule

当然,还有很多其它的重要成果。我认为正是以上所列举的研究给我们带来了重要的理论和算法上的突破,并改变了世界,推动了深度学习的革命。

如何入门深度学习?

eb1a34f701dccf6e0d482958e402607745576edb

深度学习的入门并不容易,但我会尽我所能指导你完成这一阶段。参考以下学习资源,但记住,你需要的不仅仅是观看视频和阅读论文,还需要不断地理解、编程、写代码、经历失败,然后成功。

-1. 请先学习 Python 和 R 语言:)

0. 学习吴恩达的深度学习课程

Siraj Raval 的视频:Siraj Raval 非常 amazing,他可以用风趣易懂的方式来解释复杂的概念。你可以在 YouTube 上关注他的个人频道,其中这两个视频非常棒:

François Chollet 的两本书:

8481c8f592b7f349aa84a1de5c171db681516edf Deep Learning with Python
8481c8f592b7f349aa84a1de5c171db681516edf Deep Learning with R

分布式深度学习

5beaf2a423da4f42715664dbcb8760cb06cbb045

深度学习是数据科学家应该学习的最重要的工具和理论之一。我们很幸运,有那么多深度学习方向的研究、软件、工具和硬件被开发出来。

深度学习的计算成本很昂贵,即使在理论、软件和硬件有所进展的情况下,我们也需要大数据和分布式机器学习的发展来提升深度学习的性能和效率。为此,人们开发出了分布式框架(Spark)和深度学习库(TensorFlow、PyTorch 和 Keras)。

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edf分布式 Keras(Keras+Spark)

https://github.com/cerndb/dist-keras

8481c8f592b7f349aa84a1de5c171db681516edf在谷歌云上运行 TensorFlow 和 Spark:

https://cloud.google.com/blog/big-data/2017/11/using-apache-spark-with-tensorflow-on-google-cloud-platform

使用深度学习完成任务

9c66c9ebbeca8bf269199fc827cb9f9d91defa44

正如之前所说的,深度学习领域最重要的里程碑之一就是 TensorFlow 的创建与开源。

TensorFlow 是一个使用数据流图进行数学计算的开源软件库,图中的节点表示数学运算,而图的边表示在节点之间通信的多维数据阵列(张量)。

c502b6463f1e0b93c2cef3f1851f8df1ccf651e7

上图是广义相对论黎曼张量中的张量运算。

张量,从数学定义上看,就是简单的数或函数的阵列,根据坐标变换的特定规则进行变换。

但是在机器学习和深度学习领域中,张量是向量和矩阵在更高维度上的泛化形式。TensorFlow 将张量表示为基础数据类型的 n 维数组。

我们在深度学习中广泛使用张量,但是你不必成为这方面的专家,只需要稍微了解就足够了。

现在你已经了解了我之前提到的突破和编程框架(如 TensorFlow 或 Keras),那么你应该明白自己需要了解和使用深度学习的哪些方面了。

但是目前我们使用深度学习取得了什么成就?下面我列举了一些(来自 François Chollet 的书):

8481c8f592b7f349aa84a1de5c171db681516edf 接近人类水平的图像识别能力;
8481c8f592b7f349aa84a1de5c171db681516edf 接近人类水平的语音识别能力;
8481c8f592b7f349aa84a1de5c171db681516edf 接近人类水平的手写体转录能力;
8481c8f592b7f349aa84a1de5c171db681516edf 机器翻译水平提高;
8481c8f592b7f349aa84a1de5c171db681516edf 文本转语音水平提高;
8481c8f592b7f349aa84a1de5c171db681516edf 数字助手,如 Google Now 或 Amazon Alexa;
8481c8f592b7f349aa84a1de5c171db681516edf 接近人类水平的自动驾驶能力;
8481c8f592b7f349aa84a1de5c171db681516edf 广告定向投放水平提高;
8481c8f592b7f349aa84a1de5c171db681516edf 网页搜索结果优化;
8481c8f592b7f349aa84a1de5c171db681516edf 自然语言问答能力提高;
8481c8f592b7f349aa84a1de5c171db681516edf 超越人类的围棋水平。

参考阅读:

8481c8f592b7f349aa84a1de5c171db681516edf30 AMAZING APPLICATIONS OF DEEP LEARNING:

http://www.yaronhadad.com/deep-learning-most-amazing-applications/

关于深度学习的未来,我认为 GUI 和 AutoML 是深度学习不久后能够达到的。不要误会,我喜欢写代码,但是我也认为以后我们写的代码数量会减少。我们不能重复浪费那么多时间一遍一遍写同样的东西,因此我认为这两个功能(GUI 和 AutoML)将帮助数据科学家提高生产力,解决更多问题。

在简单的 GUI 中完成这些任务的最好免费平台之一是 Deep Cognition。其简单的拖放界面可以帮助你轻松设计深度学习模型。Deep Learning Studio 具备先进的 AutoML 功能(几乎可以一键完成),可以为你的自定义数据集设计深度学习模型。

该平台还是免费的~

e395fd2c28759ab7aea40316d1fedb182606877f

我的意思是,这个领域的发展实在太迅速,现在我们已经可以使用简单的 GUI 来学习本文中涉及的所有复杂和有趣的概念。

我喜欢这个平台的原因是,你不需要安装任何东西就可以写代码,用命令行或 Notebook 来使用 TensorFlow、Keras、Caffe、MXNet 等。

其它有趣的深度学习应用:

8481c8f592b7f349aa84a1de5c171db681516edfhttp://skejul.com/
8481c8f592b7f349aa84a1de5c171db681516edfhttps://www.microsoft.com/en-us/seeing-ai/
8481c8f592b7f349aa84a1de5c171db681516edfhttps://dialogflow.com/



原文发布时间为:2018-03-29

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

相关文章
|
3月前
|
机器学习/深度学习 自然语言处理 数据挖掘
【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述
【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
2024年3月最新的深度学习论文推荐
现在已经是3月中旬了,我们这次推荐一些2月和3月发布的论文。
52 0
|
2月前
|
机器学习/深度学习 编解码 人工智能
2024年2月深度学习的论文推荐
我们这篇文章将推荐2月份发布的10篇深度学习的论文
58 1
|
8月前
|
机器学习/深度学习 自然语言处理 算法
【论文精读】TNNLS 2022 - 基于深度学习的事件抽取研究综述
事件抽取是从海量文本数据中快速获取事件信息的一项重要研究任务。随着深度学习的快速发展,基于深度学习技术的事件抽取已成为研究热点。文献中提出了许多方法、数据集和评估指标,这增加全面更新调研的需求。
383 0
|
11月前
|
机器学习/深度学习 算法 数据可视化
深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
 过去几年,在经典数据集PASCAL上,物体检测的效果已经达到 一个稳定水平。效果最好的方法是融合了多种低维图像特征和高维上 下文环境的复杂集成系统。在这篇论文里,我们提出了一种简单并且 可扩展的检测算法,可以在VOC2012最好结果的基础上将mAP值提 高30%以上——达到了53.3%。
122 0
深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
|
11月前
|
机器学习/深度学习 自然语言处理
十年来论文量激增,深度学习如何慢慢推开数学推理的门(2)
十年来论文量激增,深度学习如何慢慢推开数学推理的门
|
11月前
|
机器学习/深度学习 消息中间件 人工智能
十年来论文量激增,深度学习如何慢慢推开数学推理的门(1)
十年来论文量激增,深度学习如何慢慢推开数学推理的门
106 0
|
11月前
|
机器学习/深度学习 自然语言处理 算法
深度学习,经典论文盘点!
深度学习,经典论文盘点!
|
11月前
|
机器学习/深度学习 编解码 并行计算
深度学习论文阅读目标检测篇(七)中文版:YOLOv4《Optimal Speed and Accuracy of Object Detection》
大多数基于 CNN 的目标检测器基本上都仅适用于推荐系统。例 如:通过城市摄像头寻找免费停车位,它由精确的慢速模型完成,而 汽车碰撞警报需要由快速、低精度模型完成。改善实时目标检测器的 精度,使其能够不仅可以用于提示生成推荐系统,也可以用于独立的 流程管理和减少人力投入。传统 GPU 使得目标检测可以以实惠的价 格运行。最准确的现代神经网络不是实时运行的,需要大量的训练的 GPU 与大的 mini bacth size。我们通过创建一个 CNN 来解决这样的 问题,在传统的 GPU 上进行实时操作,而对于这些训练只需要一个 传统的 GPU。
191 0
|
11月前
|
机器学习/深度学习 编解码 并行计算
深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4《Optimal Speed and Accuracy of Object Detection》
 有大量的技巧可以提高卷积神经网络(CNN)的精度。需要在大 数据集下对这种技巧的组合进行实际测试,并需要对结果进行理论论 证。某些技巧仅在某些模型上使用和专门针对某些问题,或只针对小 规模的数据集;而一些技巧,如批处理归一化、残差连接等,适用于 大多数的模型、任务和数据集。我们假设这种通用的技巧包括加权残 差连接(Weighted-Residual-Connection,WRC)
222 0