1 人工智能

现今每天都有很多人工智能的文章发表,并且在最近两年愈演愈烈。网络上关于人工智能的定义有几种说法,我最喜欢的一个是,通常由人完成的智能任务的自动化。

1.1 人工智能发展史

1956年,约翰·麦肯锡(John McCarthy)主持召开了第一次人工智能的学术会议,并创造了人工智能这个术语。然而早在此之前,关于机器是否会思考的讨论就已经开始。人工智能发展初期,机器已经可以解决对于人类比较困难的问题。

例如,德国制造了在第二次世界大战后期用于军事通信的恩尼格玛密码机(Enigma machine)。阿兰·图灵(Alan Turing)则构建了一个用于破解恩尼格玛密码机的人工智能系统。人类破译恩尼格玛密码是一个非常有挑战性的任务,并往往会花费分析员数周的时间。而人工智能机器几个小时就可以完成破译。

计算机解决一些对人类很直接的问题,却一度非常艰难。如区分猫和狗,朋友对你参加聚会迟到是否生气(情绪),区分汽车和卡车,为研讨会写纪要(语音识别),或为你的外国朋友将笔记转换成对方的语言(例如,从法语转成英语)。这些任务中的大多数对于我们都很直接,但过去我们却无法通过给计算机硬编码一个程序来解决这类问题。早期计算机人工智能的实现都是硬编码的,如可以下棋的计算机程序。

人工智能发展初期,许多研究人员相信,人工智能可以通过对规则硬编码来实现。这类人工智能称为符号人工智能(symbolic AI),它适于解决明确的逻辑性问题,然而对于那些复杂的问题,如图像识别、对象检测、语言翻译和自然语言的理解等任务,它却几乎无能为力。人工智能的新方法,如机器学习和深度学习,正是用于解决这类问题的。

为更好理解人工智能、机器学习和深度学习的关系,我们画几个同心的圆圈,人工智能位于最外层,人工智能最早出现,范畴最大,然后向内是机器学习,最后是驱动今天人工智能迅速发展的深度学习,它位于另两个圆圈内部,如图1.1所示。

人工智能、机器学习和深度学习有哪些区别?_深度学习

2 机器学习

机器学习是人工智能的一个子领域,它在过去10年变得非常流行,这两个词有时会交换使用。除机器学习外,人工智能还包括很多其他的子领域。与通过对规则进行硬编码的符号人工智能不同,机器学习系统通过展示大量实例来构造。从更高层面上说,机器学习系统通过检视大量数据得出可以预测未见数据结果的规则,如图1.2所示。

人工智能、机器学习和深度学习有哪些区别?_机器学习_02

图1.2 机器学习对比传统编程

大多数机器学习算法在结构化数据上运行良好,如销售预测、推荐系统和个性化营销等。所有机器学习算法中都涉及的一个重要方面是特征工程,数据科学家花费大量时间来获取机器学习算法运行的正确特征。在某些领域,如计算机视觉(Computer Vision)和自然语言处理(Natural Language Processing,NLP),因为具有较高维度,特征工程非常具有挑战性。

直到现在,由于诸如特征工程和高维度方面的原因,对于使用经典机器学习技术(如线性回归、随机森林等)来解决这类问题的机构都非常具有挑战性。考虑一张大小为224×224×3(高×宽×通道)的图片,其中3表示彩色图片中红、绿、蓝色彩通道的个数。为了在计算机内存中存储这张图片,对应的矩阵要包含150,528个维度。假设要基于1000张224×224×3大小的图片构建分类器,维度就会变成1000个150,528大小。机器学习中一个被称为深度学习的特别分支,让我们得以借助现代技术和硬件解决这些问题。

2.1 机器学习实例

下面是使用机器学习技术实现的出色应用。

  • 例1:Google Photos使用了机器学习中的一类深度学习照片分组(deep learning for grouping photos)技术。
  • 例2:推荐系统,这是一类可用于推荐电影、音乐和产品的机器学习算法,很多大公司,如Netflix、Amazon和iTunes都在使用。

3 深度学习

传统机器学习算法使用手写的特征提取代码来训练算法,而深度学习算法使用现代技术自动提取这些特征。

例如,一个用于预测图像是否包含人脸的深度学习算法将在第一层检查边缘,第二层检测鼻子和眼睛等形状,最后一层检测面部形状或者更复杂的结构(见图1.3)。每一层都基于前一层的数据表示进行训练。如果大家觉得上面的解释理解起来有些困难,请不要担心,本书的后续章节会更直观地构造和详细解释这样的网络。

人工智能、机器学习和深度学习有哪些区别?_人工智能_03

图1.3 中间层的可视化输出

得益于GPU、大数据、云提供商如 Amazon Web Services(AWS)和Google Cloud,以及Torch、TensorFlow、Caffe和PyTorch这些框架的出现,深度学习的应用在过去几年出现了巨大的增长。除此之外,一些大型公司还分享了已在庞大的数据集上训练好的算法,因而使得后来者可以经过很少的改动就能够以几种用例为基础构建最先进的系统。

1.3.1 深度学习的应用

深度学习一些流行的应用如下:

  • 接近人类水平的图像分类;
  • 接近人类水平的语音识别;
  • 机器翻译;
  • 自动驾驶汽车;
  • Siri、Google语音和Alexa在最近几年更加准确;
  • 日本农民的黄瓜智能分拣;
  • 肺癌检测;
  • 准确度高于人类的语言翻译。

图1.4所示为一个用于总结段落大意的简例,计算机读入一大段文本,并用几行总结出中心语义。

人工智能、机器学习和深度学习有哪些区别?_机器学习_04

图1.4 计算机生成的本文摘要

接下来,我们把图1.5作为普通的图片输入给计算机,并不告知计算机图像中展示的是什么。借助对象检测技术和词典的帮助,我们得到的图像描述是:两个小女孩正在玩乐高玩具。计算机太聪明了,不是吗?

人工智能、机器学习和深度学习有哪些区别?_深度学习_05

图1.5 对象检测和图像标注

学习书单推荐

人工智能书《人工智能》(第2版)

人工智能、机器学习和深度学习有哪些区别?_深度学习_06

本书可以称得上是经典教材,内容翔实,逻辑清晰,引经据典,纵横捭阖,是一本不可多得的人工智能教科书。人工智能包罗万象,包括自然语言处理、知识表示、智能搜索、规划、机器学习、人工神经网络复杂系统、数据挖掘、遗传算法、模糊控制等。面对人工智能的迅猛发展和海量知识,计算机科学和工程相关专业的读者,与其临渊羡鱼,不如退而结网,扎扎实实打好基础。

本书包括引言、基础知识、基于知识的系统、高级专题以及现在和未来五部分内容。第一部分从人工智能的定义讲起,就人工智能的早期历史、思维和智能的内涵、图灵测试、启发法、新千年人工智能的发展进行了简要论述。第二部分详细讲述了人工智能中的盲目搜索、知情搜索、博弈中的搜索、人工智能中的逻辑、知识表示和产生式系统等基础知识。第三部分介绍并探究了人工智能领域的成功案例,如DENDRAL、MYCIN、EMYCIN等经典的专家系统,振动故障诊断、自动牙科识别等新的专家系统,以及受到自然启发的搜索等。第四部分介绍了自然语言处理和自动规划等高级专题。第五部分对人工智能的历史和现状进行了梳理,回顾了几十年来人工智能所取得的诸多成就,并对其未来进行了展望。

本书系统、全面地涵盖了人工智能的相关知识,既简明扼要地介绍了这一学科的基础知识,也对自然语言处理、自动规划、神经网络等内容进行了拓展,更辅以实例,可以帮助读者扎扎实实打好基础。本书特色鲜明,内容易读易学,适合人工智能相关领域和对该领域感兴趣的读者阅读,也适合高校计算机专业的教师和学生参考。

机器学习书推荐《机器学习公式详解》,人工智能领域中文的开山之作、周志华“西瓜书”《机器学习》伴侣书,Datawhale开源协作学习笔记“南瓜书”,机器学习初学小白提升数学基础能力的练习书!

人工智能、机器学习和深度学习有哪些区别?_机器学习_07

本书(俗称“南瓜书”)基于Datawhale 成员自学“西瓜书”时记下的笔记编著而成,旨在对“西瓜书”中重难点公式加以解析,以及对部分公式补充具体的推导细节。

全书共16 章,与“西瓜书”章节、公式对应,每个公式的推导和解析都以本科数学基础的视角进行讲解,希望能够帮助读者达到“理工科数学基础扎实点的大二下学期学生”水平。每章都附有相关阅读材料,以便有兴趣的读者进一步钻研探索。

本书思路清晰,视角独特,结构合理,可作为高等院校计算机及相关专业的本科生或研究生教材,也可供对机器学习感兴趣的研究人员和工程技术人员阅读参考。

深度学习书推荐

《动手学深度学习》,人工智能机器学习深度学习领域重磅教程图书,Amazon机器学习研究人员作品,交互式实战环境下动手学深度学习的模式,原理与实战紧密结合。

人工智能、机器学习和深度学习有哪些区别?_机器学习_08

本书旨在向读者交付有关深度学习的交互式学习体验。书中不仅阐述深度学习的算法原理,还演示它们的实现和运行。与传统图书不同,本书的每一节都是一个可以下载并运行的 Jupyter记事本,它将文字、公式、图像、代码和运行结果结合在了一起。此外,读者还可以访问并参与书中内容的讨论。

全书的内容分为3个部分:第一部分介绍深度学习的背景,提供预备知识,并包括深度学习基础的概念和技术;第二部分描述深度学习计算的重要组成部分,还解释近年来令深度学习在多个领域大获成功的卷积神经网络和循环神经网络;第三部分评价优化算法,检验影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。

《深度学习》[deep learning],深度学习领域奠基性经典畅销书,数据科学家和机器学习从业者必读,长期位居美亚AI和机器学习类图书榜首,图灵奖获奖作品。

人工智能、机器学习和深度学习有哪些区别?_深度学习_09

本书囊括了数学及相关概念的背景知识,包括​​线性代数​​、概率论、信息论、数值优化以及机器学习中的相关内容。同时,它还介绍了工业界中实践者用到的深度学习技术,包括深度前馈网络、正则化、优化算法、卷积网络、序列建模和实践方法等,并且调研了诸如自然语言处理、语音识别、计算机视觉、在线推荐系统、生物信息学以及视频游戏方面的应用。最后,本书还提供了一些研究方向,涵盖的理论主题包括线性因子模型、自编码器、表示学习、结构化概率模型、蒙特卡罗方法、配分函数、近似推断以及深度生成模型。

《PyTorch深度学习实战》,PyTorch核心开发者教你用PyTorch创建神经网络和深度学习系统的实践指南,基于Python3.6,提供源代码下载,PyTorch联合创作者作序推荐。

人工智能、机器学习和深度学习有哪些区别?_机器学习_10

虽然很多深度学习工具都使用Python,但PyTorch 库是真正具备Python 风格的。对于任何了解NumPy 和scikit-learn 等工具的人来说,上手PyTorch 轻而易举。PyTorch 在不牺牲高级特性的情况下简化了深度学习,它非常适合构建快速模型,并且可以平稳地从个人应用扩展到企业级应用。由于像苹果、Facebook和摩根大通这样的公司都使用PyTorch,所以当你掌握了PyTorth,就会拥有更多的职业选择。

本书是教你使用 PyTorch 创建神经网络和深度学习系统的实用指南。它帮助读者快速从零开始构建一个真实示例:肿瘤图像分类器。在此过程中,它涵盖了整个深度学习管道的关键实践,包括 PyTorch张量 API、用 Python 加载数据、监控训练以及将结果进行可视化展示。

本书主要内容:

(1)训练深层神经网络;

(2)实现模块和损失函数;

(3)使用 PyTorch Hub 预先训练的模型;

(4)探索在 Jupyter Notebooks 中编写示例代码。

本书适用于对深度学习感兴趣的 Python 程序员。了解深度学习的基础知识对阅读本书有一定的帮助,但读者无须具有使用 PyTorch 或其他深度学习框架的经验。