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

来源:机器之心

本文共3798字,建议阅读8分钟。 本文一反常态用讲故事的方式进行介绍,让你对深度学习产生新的认识。

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

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

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

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

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

深度学习时间线

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. 反向传播

参考阅读:

  • A theoretical framework for Back-Propagation——Yann Lecun: http://yann.lecun.com/exdb/publis/pdf/lecun-88.pdf

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

参考阅读:

  • “深度学习的权重初始化”——Coursera: https://www.coursera.org/learn/deep-neural-network/lecture/RwqYe/weight-initialization-for-deep-networks
  • How to train your Deep Neural Network: http://rishy.github.io/ml/2017/01/05/how-to-train-your-dnn/
  • 斯坦福大学 CS231n Convolutional Neural Networks for Visual Recognition: http://cs231n.github.io/neural-networks-2/#init

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

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

  • Learning 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
  • Geoffrey 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)

参考阅读:

  • Yann LeCun 等人的"Gradient-Based Learning Applied to Document Recognition": http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

6. 残差网络(ResNet)

参考阅读:

  • 孙剑等人的论文"Deep Residual Learning for Image Recognition": https://arxiv.org/abs/1512.03385v1
  • 论文"Residual Networks of Residual Networks: Multilevel Residual Networks": https://arxiv.org/abs/1608.02908

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

参考阅读:

  • 论文"Rich feature hierarchies for accurate object detection and semantic segmentation": https://arxiv.org/abs/1311.2524v5

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

9. 生成对抗网络(GAN)

参考阅读:

  • Ian Goodfellow 等人的 GAN 论文: https://arxiv.org/abs/1406.2661v1

10. Geoffrey Hinton 近期提出的 Capsule

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

如何入门深度学习?

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

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

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

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

François Chollet 的两本书:

  • Deep Learning with Python
  • Deep Learning with R

分布式深度学习

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

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

参考阅读:

  • 分布式 Keras(Keras+Spark): https://github.com/cerndb/dist-keras
  • 在谷歌云上运行 TensorFlow 和 Spark: https://cloud.google.com/blog/big-data/2017/11/using-apache-spark-with-tensorflow-on-google-cloud-platform

使用深度学习完成任务

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

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

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

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

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

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

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

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

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

参考阅读:

  • 30 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 功能(几乎可以一键完成),可以为你的自定义数据集设计深度学习模型。

该平台还是免费的~

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

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

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

  • http://skejul.com/
  • https://www.microsoft.com/en-us/seeing-ai/
  • https://dialogflow.com/

原文链接:

https://towardsdatascience.com/a-weird-introduction-to-deep-learning-7828803693b0

原文发布于微信公众号 - 数据派THU(DatapiTHU)

原文发表时间:2018-03-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

想了解机器学习?你需要知道的十个基础算法

关于机器学习,你需要知道的十个基础算法 毫无疑问,作为人工智能的子领域—机器学习在过去的几年中越来越受欢迎。由于大数据是目前科技行业最热门的趋势,基于大量的数据...

3186
来自专栏专知

瑟瑟发抖……神经网络可能在欺骗你!

【导读】你对神经网络的信任度有多高?它总能学习到你想让他学习的东西吗?你真的敢坐在一辆自动驾驶的汽车上吗?我曾经也对神经网络充满了“崇拜”和信任,直到我亲眼看见...

1133
来自专栏数据派THU

深度学习并非万能,你用对了吗?

来源:机器人圈 作者:Pablo Cordero 本文文章长度为4700字,建议阅读8分钟。 本文为你全面揭示深度学习的应用场合和作用。 [ 导读 ]深度学习随...

1888
来自专栏上善若水

0x01机器学习简史

about 全面介绍机器学习的发展史,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、Deep Learning。

1066
来自专栏老秦求学

Deep Learning综述[下]

1284
来自专栏机器之心

演讲 | 技术讲解概率机器学习——深度学习革命之后AI道路

Zoubin Ghahramani 是英国皇家学会会士,剑桥大学信息工程系教授,Uber 首席科学家,英国国家数据科学研究所图灵研究所剑桥主任。Zoubin G...

704
来自专栏祝威廉

深度学习思考

大部分机器学习算法(包括深度学习),其实是在一个理想空间里(接下来我们会以三维空间为例子)寻找一个最大/最小值。三维空间是无限大的,在某个实际场景,假设我们有了...

713
来自专栏前沿技墅

迁移学习:让Deep Learning快速落地

2939
来自专栏CreateAMind

究竟深度学习在干什么?

概要: 深度学习取得了巨大的成功,这是无容置疑的。对此,我们不必再多说什么。但是,其理论基础仍然有很大的空白。

703
来自专栏新智元

【一文读懂】机器学习最新主战场迁移学习,从原理、方法到应用

【新智元导读】吴恩达在他的 NIPS 2016 tutorial 中曾说,迁移学习将是监督学习之后的,在ML 的商业应用中得到成功的下一波动力。现实世界是混乱的...

2735

扫码关注云+社区