前言 近年来,随着生成对抗网络(GAN)、变分自动编码器和深度强化学习等技术的发展,深度学习取得了巨大进展。本书是读者采用R语言实现深度学习技术的操作手册。 本书引导读者通过R语言编程实现各种深度学习技术。本书提供的一套实例将帮助读者解决回归、二项分类和多项分类问题,并详细探索超参数优化等问题。读者将通过实战案例实现卷积神经网络(CNN)、循环神经网络(RNN)、长短时记忆网络(LSTM)、序列到序列模型、生成对抗网络(GAN)和强化学习。读者学习使用GPU进行大型数据集的高性能计算,以及R语言中的并行计算编程,还将熟悉诸如MXNet这样的并行编程库,这些库是专为高效利用图形处理器(GPU)计算和实现最先进的深度学习算法而设计的。读者将学习如何解决NLP中常见和不那么常见的问题,如目标检测和动作识别,还将在深度学习应用程序中利用预先训练好的模型进行迁移学习。 阅读完本书,读者将对深度学习算法和不同的深度学习编程库有一个深刻的理解,并将能够为要解决的问题构建最合适的解决方案。 读者对象 本书为数据科学家、机器学习实践者、深度学习研究人员和AI爱好者提供了学习深度学习领域关键算法的实战案例。读者可能会在研究工作或项目中面临实现深度学习技术和算法的问题。要更好地阅读本书,必须具备机器学习基础知识和R语言的编程知识。 内容结构 第1章 理解人工神经网络和深度神经网络,将向读者展示如何建立一个深度学习环境来训练模型。然后向读者介绍人工神经网络,从人工神经网络如何工作、什么是隐藏层、什么是误差反向传播、什么是激活函数等概念开始讲解。本章使用Keras库来演示实战案例。 第2章 卷积神经网络实战,将向读者展示卷积神经网络(CNN)模型,并讲解如何训练CNN模型,以进行图像识别和完成自然语言处理的任务。本章还介绍了CNN中使用的各种超参数和优化器。 第3章 循环神经网络实战,将向读者展示循环神经网络(RNN)的理论知识与案例实现。本章还将介绍长短时记忆网络(LSTM)和门控循环单元(GRU)等RNN的改进模型,并对LSTM的超参数进行详细的探讨。除此之外,读者将学习如何使用Keras建立一个双向RNN模型。 第4章 使用Keras实现自动编码器,将介绍使用Keras库实现各种类型的自动编码器。读者还将了解自动编码器的各种应用,如降维和图像着色。 第5章 深度生成模型,将向读者展示深度神经网络的另一种架构——生成对抗网络(GAN)模型。本章将演示如何训练一个由两个独立网络(生成器和鉴别器)组成的GAN模型。本章还将讨论变分自动编码器的实现,并将其与GAN进行比较。 第6章 使用大规模深度学习处理大数据,包含了利用GPU处理大数据集的高性能计算案例研究。读者还将了解为高效利用GPU进行并行计算和实现最先进的深度学习而设计的R语言并行编程库(如MXNet)。 第7章 自然语言处理,涉及序列数据相关主题的案例研究,包括文本数据的自然语言处理(NLP)和语音识别。读者将使用各种深度学习库实现端到端深度学习算法。 第8章 深度学习之计算机视觉实战,将讲解用于目标检测和人脸识别的端到端模型实例。 第9章 实现强化学习,将向读者介绍强化学习的概念。读者将学习与强化学习相关的各种方法,如马尔可夫决策过程,QLearning和经验回放,并在R中使用实例展示这些方法。读者还将使用诸如MDPtoolbox和ReinforcementLearning等R语言包实现端到端强化学习实例。 阅读本书的预备知识 阅读本书前,读者需要具备一定的机器学习基础知识和R语言编程知识。 下载示例代码文件 读者可以在登录www.packt.com网站后下载本书的实例代码文件,也可以访问www.packtpub.com/support,并注册账号后下载实例代码文件。 读者可按以下步骤下载实例代码文件: 登录www.packt.com,并完成注册; 选择Support菜单项; 单击Code Downloads菜单项; 在搜索框中输入图书的名称,然后按照网页上的说明操作。 下载文件后,请确保使用新版本的压缩软件:  Windows操作系统要安装WinRAR/7Zip软件;  Mac操作系统要安装Zipeg/iZip/UnRarX软件;  Linux操作系统要安装7Zip/PeaZip软件。 本书的代码包也可以从GitHub上获取,网址是 https://github.com/PacktPublishing/DeepLearningwithRCookbook 如果代码有更新,也将在现有的GitHub存储库上同步更新。Packt出版社在https://github.com/PacktPublishing/网站上提供出版书籍的代码程序和视频。 下载彩色图片 本书还提供了一个PDF文件,其中有本书中使用的插图/图表的彩色图片,访问链接是http://www.packtpub.com/sites/default/files/downloads/9781789805673_ColorImages.pdf。 注意: 为方便读者下载,请扫描下方二维码下载原书中的程序代码和彩色图片。 程序代码和彩色图片 本书内容约定 本书使用了许多文本格式约定。 CodeInText(代码字体): 该字体用于文本中的代码块、数据库表名、目录名、文件名、文件扩展名、路径名、URL、用户输入和Twitter句柄。 例如,在步骤(1)中,使用 dataset_fashion_mnist() 函数导入了MNIST数据集,并查看其训练集和验证集的维度,代码段格式如下: fashion - dataset_fashion_mnist() x_train - fashion$train$x y_train - fashion$train$y x_test - fashion$test$x y_test - fashion$test$y 粗体: 表示术语、重要单词或在屏幕上看到的单词。例如,菜单或对话框中的单词会以粗体格式出现在文本中(比如,从“开始”菜单中选择Anaconda Navigator)。 图标表示警告或重要说明内容。 图标表示提示和技巧内容。 小节标题 在本书中,读者会发现几个经常出现的小节标题(准备工作、操作步骤、原理解析、内容拓展和参考阅读)。通过下述各小节的内容组织,清楚地讲解实战案例的实现过程。  准备工作: 本节告诉读者实例要实现的内容,并描述如何设置软件或实例所需的准备工作。  操作步骤: 本节包含实例的具体操作步骤。  原理解析: 本节包含对操作步骤小节内容的原理讲解。  内容拓展: 本节包含实例有关的拓展内容,以使读者更了解该实例。  参考阅读: 本节提供了与实例有关的资源链接。 关于作者 斯沃纳·古普塔(Swarna Gupta): 计算机科学学士学位,在数据科学领域拥有6年的工作经验。她目前在劳斯莱斯公司担任数据科学家,主要工作是利用深度学习和机器学习为企业创造价值。她在汽车远程信息处理和太阳能光伏制造行业广泛开展基于物联网应用的项目。她在劳斯莱斯公司工作以来,开发了应用于航空航天领域的基于深度学习技术的先进的数据分析系统。斯沃纳还会从繁忙的工作中抽出时间,定期为一些社会组织提供无偿技术服务,借助数据科学和机器学习技术帮助他们解决具体的商业问题。 雷汉·阿里·安萨里(Rehan Ali Ansari): 电子电气工程学士学位,在数据科学领域拥有5年工作经验。 他目前在A.P.穆勒马士基集团(AP Moller Maersk Group)担任数据科学家,负责数据挖掘研究工作。他在时尚/零售、物联网、可再生能源、贸易融资和供应链管理等多个领域拥有多元化的工作背景。他坚信采用敏捷方法来开发AI产品和解决方案。他对数据科学领域的最新技术有着深刻的理解。在繁忙的工作之外,他还开展机器人和人工智能的交叉领域研究。 迪帕扬·萨卡尔(Dipayan Sarkar): 经济学硕士学位,并拥有超过17年的工作经验。 他曾经在预测建模领域的国际竞赛中获奖,他的研究兴趣是机器学习技术背后的数学理论。 他曾在美国和欧洲的财富500强公司担任高级数据科学家,目前在多家公司和教育机构担任数据科学和机器学习领域的技术顾问和专业导师。他目前还在大湖管理学院(Great Lakes Institute of Management)担任客座教授(讲授数据分析课程),在BML Munjal大学担任兼职教授(讲授数据分析和机器学习课程)。他还出版了技术书——《集成学习与Python实践》(Ensemble Machine Learning with Python)。 关于审稿人 斯雷·阿加瓦尔(Sray Agarwal): 在数据科学领域有12年的工作经验,并在金融服务与保险、电子商务、零售、电信、酒店、旅游、教育、房地产和娱乐等众多领域有数据分析工作经验。他目前在伦敦的Publicis Sapient公司担任数据科学家。他的技术专长是预报建模、预测算法和高级机器学习。他对计算机算法和高级统计学有着深刻的理解。他拥有管理学和经济学背景,并获得了数据科学与数据分析专业的硕士学位。他还是SAS认证的预测建模师。他目前的研究领域是公平(偏差缓解)和可解释的机器学习。