好书快翻--《Python深度学习第二版》第一章 什么是深度学习

博主有话说:首先感谢您阅读这篇博客!博主做大数据技术,平时喜欢阅读英文原版大数据技术书籍,并翻译成中文,分享出来。如要及时看到翻译的章节,请关注博主微信公众号 登峰大数据,微信号  bigdata_work 

本章包括:

  • 基本概念的高级定义

  • 机器学习发展的时间轴

  • 深度学习日益流行和未来潜力背后的关键因素


在过去几年里,人工智能(AI)一直是媒体大肆炒作的话题。机器学习、深度学习和人工智能出现在无数的文章中,通常是在科技出版物之外。我们被许诺一个智能聊天机器人、自动驾驶汽车和虚拟助手的未来——这个未来有时被描绘成黯淡的前景,有时则是乌托邦式的,在那里,人类的工作岗位将会稀缺,大部分经济活动将由机器人或人工智能代理来处理。

对于未来或当前的机器学习实践者来说,能够识别噪音中的有用信号是很重要的,这样你就能从过度炒作的新闻稿中分辨出改变世界的切入点。我们的未来危在旦夕,在这个未来中,你可以扮演一个积极的角色:读完这本书后,你将成为人工智能代理人的开发者之一。那么,让我们来解决这些问题:深度学习迄今为止取得了什么成果?它有多重要?接下来我们要去哪里?你应该相信炒作吗?

本章提供了有关人工智能、机器学习和深度学习的基本内容。

1.1人工智能、机器学习和深度学习

首先,当我们提到人工智能时,我们需要明确定义我们所谈论的内容。什么是人工智能、机器学习和深度学习?它们是如何相互联系的?

好书快翻--《Python深度学习第二版》第一章 什么是深度学习

 

 

1.1.1人工智能

人工智能诞生于20世纪50年代,当时,计算机科学这一新兴领域的少数先驱者开始提出这样一个问题:计算机是否可以“思考”——这个问题的分支我们今天仍在探索中。

虽然许多潜在的想法在几年甚至几十年前就已经酝酿出来了,“人工智能”最终在1956年成为一个研究领域,当时达特茅斯学院(Dartmouth College)年轻的数学助理教授约翰麦卡锡(John McCarthy)根据以下提议组织了一个研讨峰会:

这项研究是在这样一种推测的基础上进行的,即学习的各个方面或智力的任何其他特征原则上都可以精确地加以描述,以至于可以制造出一台机器来模拟它。人们将尝试发现如何让机器使用语言,形成抽象和概念,解决目前人类面临的各种问题,并改进自己。我们认为,如果一组经过精心挑选的科学家在峰会共同研究这些问题,就可以在其中一个或多个问题上取得重大进展。

峰会结束时,这个研讨会还没有完全解开它着手调查的谜题就结束了。尽管如此,它还是吸引了许多后来成为这一领域先驱的人参加,并引发了一场至今仍在进行的知识革命。

简而言之,人工智能可以被描述为将通常由人类完成的智力任务自动化的努力。因此,人工智能是一个包括机器学习和深度学习的通用领域,但它也包括许多可能不涉及任何"学习"的方法。想想看,直到20世纪80年代,大多数人工智能教科书都根本没有提到“学习”!例如,早期的国际象棋程序只涉及程序员编写的硬编码规则,不具备机器学习的资格。事实上,在相当长的一段时间里,大多数专家都认为,人类级别的人工智能可以通过让程序员手工编写一组足够大的显式规则来操作存储在显式数据库中的知识来实现。这种方法被称为符号人工智能。从20世纪50年代到80年代末,它是人工智能的主导范式。在20世纪80年代专家系统蓬勃发展期间,它达到了最受欢迎的程度。

尽管事实证明,符号人工智能适合解决定义明确的逻辑问题,如下棋,但它却难以找出明确的规则来解决更复杂、更模糊的问题,如图像分类、语音识别或自然语言翻译。一种新的方法取代了象征性人工智能:机器学习。

1.1.2机器学习

 

在维多利亚时代的英国,艾达·拉芙莱斯女士是查尔斯·巴贝奇的朋友和合作者。虽然分析引擎具有先见之明,但在19世纪30年代和40年代被设计出来的时候,它并不是一台通用计算机,因为通用计算的概念还没有被发明出来。它仅仅意味着一种使用机械操作来自动化数学分析领域的某些计算的方法——因此被称为分析引擎。因此,它是早期尝试将数学运算以齿轮形式编码的智力产物,如帕斯卡利纳,或莱布尼茨的步数计算者,帕斯卡利纳的改进版。由Blaise Pascal在1642年设计(当时他才19岁!),Pascaline是世界上第一台机械计算器——它可以加、减、乘甚至除数字。

1843年,Ada Lovelace对分析机的发明发表了评论:

分析机从不自命能产生任何东西。它可以做我们知道的任何事情,并以此来命令它执行……它的职责是帮助我们提供我们已经知道的东西。

即使以177年后的历史眼光来看,Ada Lovelace的言论仍然引人注目。一台通用的计算机能够“创造”任何东西吗?或者它总是会笨拙地执行我们人类完全理解的过程吗?它能有什么独到的见解吗?它能从经验中学习吗?它能显示创造力吗?

她的言论后来被人工智能先驱艾伦·图灵引用为“Lady Lovelace’s objection”,在他1950年发表的具有里程碑意义的论文《计算机器与智能》中,引入了图灵测试,以及后来形成人工智能的关键概念。图灵的观点在当时引起了极大的争议,他认为,原则上可以让计算机模仿人类智能的各个方面。

好书快翻--《Python深度学习第二版》第一章 什么是深度学习

机器学习系统是经过训练的,而不是显式编程的。它提供了许多与任务相关的示例,并在这些示例中发现统计结构,这些统计结构最终允许系统提出自动化任务的规则。例如,如果您希望自动化标记您的假期图片的任务,您可以提供一个机器学习系统,其中包含许多已经由人物标记的图片示例,并且该系统将学习将特定图片与特定标记关联起来的统计规则。

尽管机器学习在20世纪90年代才开始蓬勃发展,但它很快就成为人工智能最受欢迎和最成功的子领域,这一趋势是由更快的硬件和更大的数据集的可用性驱动的。机器学习与数理统计紧密相关,但它在几个重要方面与统计不同。与统计学不同,机器学习倾向于处理大型、复杂的数据集(如数百万张图像的数据集,每个数据集由数万个像素组成),对于这些数据集,经典的统计分析(如贝叶斯分析)是不切实际的。因此,机器学习,尤其是深度学习,表现出相对较少的数学理论——可能太少了——而且基本上是一门工程学科。与理论物理或数学不同,机器学习是一个由经验发现驱动的实践性很强的领域,并且深深依赖于软件和硬件的进步。

1.1.3从数据中学习规则和表示

为了定义深度学习并理解深度学习和其他机器学习方法之间的区别,首先我们需要了解机器学习算法的作用。我们刚刚提到了机器学习发现执行数据处理任务的规则,并给出了预期的示例。所以,要做机器学习,我们需要三件事:

  • 输入数据——例如,如果任务是语音识别,这些数据点可能是人们说话的声音文件。如果任务是图像标记,它们可以是图片。

  • 预期输出的示例——在语音识别任务中,这些可能是人类生成的声音文件的文本。在图像任务中,预期的输出可以是“dog”、“cat”等标记。

  • 一种方法来衡量算法是否做得很好——这是必要的,以确定算法的当前输出和它的预期输出之间的距离。测量值作为反馈信号来调整算法的工作方式。这个调整步骤就是我们所说的学习。

机器学习模型把它的输入数据转换成有意义的输出,这个过程是从已知的输入和输出的例子中“学习”出来的。因此,机器学习和深度学习的核心问题是有意义地转换数据:换句话说,学习手边输入数据的有用表示——这些表示使我们更接近预期的输出。


在我们进一步讨论之前:什么是表示?本质上,它是一种看待数据的不同方式——表示或编码数据。例如,可以将彩色图像编码为RGB格式(红绿蓝)或HSV格式(颜色-饱和度-值):这是相同数据的两种不同表示形式。有些任务在一种表现形式下可能很难,但在另一种表现形式下可能变得容易。例如,在RGB格式中“选择图像中所有的红色像素”任务更简单,而在HSV格式中“使图像不饱和”任务更简单。机器学习模型都是关于为它们的输入数据寻找合适的表示——数据的转换使它更适合手头的任务。
让我们把它具体化。考虑一个x轴,一个y轴,以及在(x, y)系统中由它们的坐标表示的一些点,如图1.3所示。

好书快翻--《Python深度学习第二版》第一章 什么是深度学习

如你所见,我们有一些白点和一些黑点。假设我们要开发一个算法,它可以取一个点的坐标(x, y)并输出这个点是黑还是白。在这种情况下,

  • 输入是点的坐标。

  • 期望的输出是点的颜色。

  • 一种衡量我们的算法是否做得很好的方法可能是被正确分类的点数的百分比。

这里我们需要的是一个新的数据表示,它清楚地将白点和黑点分开。在许多其他可能性中,我们可以使用的一个转换是坐标更改,如图1.4所示。

好书快翻--《Python深度学习第二版》第一章 什么是深度学习

在这个新的坐标系中,点的坐标可以说是数据的一种新的表示。这是一个好故事!有了这种表示,黑/白分类问题可以用一个简单的规则来表示:“黑点是x > 0”,或者“白点是x < 0”。这种新的表现形式,加上这个简单的规则,巧妙地解决了分类问题。
在本例中,我们手动定义坐标更改:我们使用我们的人类智能提出我们自己适当的数据表示。对于这样一个极其简单的问题,这是可以的,但是如果任务是对手写数字的图像进行分类,您可以做同样的事情吗?你能写出明确的,计算机可执行的图像转换来阐明通过各种不同手写的6和8之间的区别,1和7之间的区别?

这在一定程度上是可能的。基于数字表示的规则,如“闭合循环的数量”,或垂直和水平像素直方图(另一种表示方式),可以很好地区分手写数字。但是,手工找到这些有用的表示是一项艰巨的工作,并且您可以想象得到,由此产生的基于规则的系统将是脆弱的——维护起来是一个噩梦。每当您遇到一个新的手写示例,它将打破您精心设计的规则,您将不得不添加新的数据转换和新规则,同时考虑它们与之前的每个规则的交互。


你可能在想,如果这个过程如此痛苦,我们能把它自动化吗?如果我们尝试系统地搜索数据和基于它们的规则的不同的自动生成的表示集,并使用一些开发数据集中正确分类的数字百分比作为反馈来识别好的表示集,结果会怎样呢?然后我们就可以进行机器学习了。在机器学习的上下文中,学习描述了一种自动搜索过程,用于生成一些数据的有用表示,由一些反馈信号引导——这些表示服从于解决手头任务的更简单的规则。
这些转换可以协调变化(如在我们的2 d坐标分类示例),或像素的直方图,计算循环(像在我们的数字分类示例),但它们也可以是线性预测,翻译,非线性操作(如“选择所有点x > 0”),等等。机器学习算法通常不会创造性地找到这些转换;他们只是在搜索一组预先定义好的操作,即假设空间。例如,在二维坐标分类的例子中,所有可能的坐标变化的空间就是我们的假设空间。


简而言之,这就是机器学习:在预先设定的可能性范围内,利用反馈信号的指引,在某些输入数据上搜索有用的表示形式和规则。这个简单的想法可以解决非常广泛的智力任务,从语音识别到自动驾驶。


既然你已经理解了我们所说的学习,让我们来看看是什么让深度学习如此特别。

1.1.4深度学习中的“深度”


深度学习是机器学习的一个特定子领域:一种从数据中学习表示的新方法,强调学习连续层的越来越有意义的表示。深度学习不是指通过这种方法获得的任何一种更深层次的理解;更确切地说,它代表了一种连续的表现层的思想。数据模型中有多少层被称为模型的深度。该领域的其他适当名称可以是分层表示学习。现代深度学习通常涉及数十甚至数百个连续的表示层——它们都是通过接触训练数据而自动学习的。与此同时,其他的机器学习方法倾向于只学习数据的一层或两层表示法(比如,获取一个像素直方图,然后应用一个分类规则);因此,它们有时被称为浅层学习。
在深度学习中,这些分层的表现形式(几乎总是)是通过一种叫做神经网络的模型来学习的,这种模型的结构是一层一层地堆叠在一起。“神经网络”一词指的是神经生物学,但尽管深度学习中的一些核心概念部分是通过从我们对大脑(尤其是视觉皮层)的理解中获得灵感而发展起来的,但深度学习模型并不是大脑的模型。没有证据表明大脑执行任何类似于现代深度学习模型中使用的学习机制。你可能会遇到一些流行科学文章宣称深度学习像大脑一样工作,或者是模仿大脑,但事实并非如此。对于这个领域的新手来说,如果认为深度学习与神经生物学有任何联系,那将是令人困惑和适得其反的;你不需要那种“就像我们的大脑一样”的神秘面纱,你也可能会忘记你可能读过的关于深度学习和生物学之间假想联系的任何东西。我们认为,深度学习是一个从数据中学习表示的数学框架。
通过深度学习算法学习的表示法是什么样的?让我们来看看一个多层的网络(参见图1.5)如何对数字图像进行转换以识别它是什么数字。