47. 深度学习综述和示例#

47.1. 介绍#

深度学习是一种以人工神经网络为架构,对数据进行表征学习的算法,本次实验将了解深度学习的概念和特点,以及深度学习与机器学习之间的区别与练习。

47.2. 知识点#

  • 机器学习介绍

  • 深度学习介绍

  • 深度学习发展

47.3. 机器学习介绍#

在正式了解深度学习之前,必须先介绍其所属大类:机器学习。

机器学习 Machine Learning 是人工智能的一个分支,其核心构成为机器学习算法,并通过从数据中获取经验来改善自身的性能。机器学习的诞生时间很早,但随着近些年计算机技术及相关领域的迅速发展,机器学习再一次变得热闹起来。

想要了解什么是机器学习?我们从机器学习的定义开始。其中,一个十分经典的定义来自于计算机科学家 TOM M.Mitchell 于 1997 年出版的《机器学习》专著,这句话的原文如下:

https://cdn.huhuhang.com/hands-on-ai/images/uid214893-20190726-1564121474177.png

Note

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.

对于某类任务 T 和性能度量 P ,如果一个计算机程序在 T 上以 P 衡量的性能随着经验 E 而自我完善,那么我们称这个计算机程序在从经验 E 学习。

你可能会觉得上面这句定义太学术,甚至读了多遍都没有理解到其中要准确表达的意思。简单来讲,这句话强调的是「学习」,而核心意义就是:计算机程序通过累计经验来获得性能的提升。

其中,计算机程序的核心就是我们所说的「机器学习算法」,而机器学习算法则来源于基础数学理论和方法。有了可以自主学习的算法,程序就可以从训练数据中自动分析获得规律,并利用规律对未知数据进行预测。

47.4. 机器学习 & 深度学习 & 人工智能#

我们经常会从媒体报道及学术资料中看到机器学习、深度学习、人工智能三个不同的名词,但往往又捉摸不透几者之间的关系。它们之间是包含,交叉,还是完全独立呢?

这里,我们引用资深科技记者 Michael Copeland 文章中的部分观点进行解释。三者中,最先出现的概念是人工智能,它是于 1956 年由 John McCarthy 提出。当时,人们渴望设计出一种「能够执行人类智能特征任务的机器」。

之后,研究人员构思出机器学习的概念,而机器学习的核心是寻求实现人工智能的方法。于是就出现了朴素贝叶斯、决策树学习、人工神经网络等众多机器学习方法。其中,人工神经网络(ANN)是模拟大脑生物结构的一种算法。

再到后来,就出现了深度学习。深度学习的关键在于建立具有更多神经元、更多层级的深度神经网络。我们发现,这种深度神经网络的学习效果在图像辨识等方面甚至超越了人类。

所以,关于上述 3 个概念,可以总结出如下所示的关系图。其中,机器学习是实现人工智能的手段,而深度学习只是机器学习中的一种特定方法。

如果你去 Google Trends 搜索 Deep Learning,你会看到深度学习和机器学习热度的变化。尤其是近 5 年内,二者都呈现出爆发式的增长,热度提升了数十倍。

https://cdn.huhuhang.com/hands-on-ai/images/document-uid214893labid6102timestamp1532051458711.png

相信很多人知道深度学习都是从 AlphaGo 开始。的确,AlphaGo 激发了大众对于这项技术的认知,并同时促进了深度学习的快速发展。事实上,深度学习并不是蹦出来的概念,我们回顾一下它的历史。

47.5. 深度学习发展史#

深度学习发展史其实也就是人工神经网络发展史。下图呈现了从 1940 年到 2000 年之间人工神经网络发展大事年表。

image

深度学习主要是使用到深度神经网络,回顾最早的神经网络,可以追溯到 1943 年。这一年,著名神经科学家沃伦·麦卡洛克(Warren S. McCulloch)以及瓦尔特·皮茨(Walter Pitts)试图在图灵机中 模拟神经元信号

下一个重要节点就是 1957 年心理学家弗兰克·罗斯布拉特(Frank Rosenblatt)发明了感知机算法。当时,弗兰克·罗斯布拉特就职于康奈尔航空实验室,他尝试构造一种前馈人工神经网络结构,来完成二元线性分类任务,这也是第一次将神经网络用于分类任务。

1969 年,马文·明斯基(M. Minsky)和西摩·帕尔特(S. Papert)的一项研究表明,感知机无法处理异或问题,且计算机没有足够的能力来处理大型神经网络所需要的很长的计算时间。于是,神经网络的研究进展停滞不前。

幸运地是,1975 年出现了反向传播算法,该算法有效地解决了异或的问题,更重要的是如何训练多层神经网络的问题。1986 年,D. Rumelhart 等对该算法进行了全面的论述。反向传播算法的出现是神经网络发展的重要节点,以至于目前的深度神经网络都在使用。

再到后来,支持向量机等其他更简单的方法出现,转移了大家的注意力。2000 年后,深度神经网络的出现再一次激发了大家对人工神经网络的热情。

当然,上面的发展史只能说是主线。除此之外,像 1979 年出现的 Neocognitron 可谓是卷积神经网络的鼻祖。1986 年出现的 LeNet 成为了第一个完整的卷积神经网络。AlexNet 在 2012 年度 ImageNet 大规模图片分类比赛上夺冠惊动了世界,后面陆续出现了 VGG,以及目前深度够深、规模够大的 ResNet。当然,前面谈到的都是卷积神经网络。

循环神经网络、生成对抗神经网络都在迅猛发展。可以说,当今所处的时代是人工神经网络的春天,我们拥有足够的计算能力去完成较大规模深度神经网络的训练,有足够的理论支撑不断前行。

接下来的课程内容中,我们将从线性回归开始,了解感知机和人工神经网络的作用机理,然后再学习如何构建更加复制的深度神经网络。

深度学习框架大幅度降低了实现深度神经网络的成本和时间。目前,市面上主流的深度学习框架也有不少,我们选择了 Google 主导开发的 TensorFlow 和 Facebook 主导开发的 PyTorch 进行深入学习。

学习完相关框架的基础使用之后,实验将对卷积神经网络 CNN,循环神经网络 RNN,以及生成对抗网络 GAN 进行深入讲解。在这个过程中,你不仅会了解到相关网络结构的理论知识,还能继续熟悉开源框架中所运用到的模块的使用。课程的最后会介绍更多的深度学习工程实践技术,包括自动化深度学习,深度学习模型的训练、部署等。

47.6. 总结#

本次实验对深度学习进行了简单介绍,以及梳理了深度学习的发展史。深度学习是机器学习的子集,如果你已经有机器学习相关的知识储备,将会对完成本课程有很大的帮助。

相关链接