近年来机器学习取得了长足的进步。深度学习系统使得一些以往不可能实现的智能应用成为现实,推动了图像识别和自然语言处理的巨大变革,也成功识别出了数据中的复杂模式。Keras深度学习库为使用R语言的数据科学家和开发者提供了处理深度学习任务的工具集。
《R语言深度学习》基于强大的Keras库及其R语言接口介绍了深度学习。本书源于Keras之父、Google人工智能研究员Fran.ois Chollet基于Python编写的《Python深度学习》一书,由RStudio创始人J.J.Allaire修改为R语言版本,并采用直观的解释和实际的例子帮助读者构建对深度学习的理解。读者可以针对计算机视觉、自然语言处理和生成式模型领域的R语言应用加以实践。
《R语言深度学习》包含如下内容:深度学习原理入门;深度学习环境设置;图像分类与生成;基于文本和序列的深度学习。
阅读本书需要具备R语言编程能力,不需要有机器学习或深度学习的经验。
适读人群 :具有 R语言经验并希望学习机器学习和深度学习的读者,数据科学家,深度学习专家,高等院校人工智能、数据科学等专业学生
1.Keras之父、Google人工智能研究员Fran?ois Chollet和RStudio的创始人、首席执行官J.J.Allaire联袂奉献,深度学习经典著作。
2.从零开始,浅显易懂,30多个代码示例轻松助力从入门到实战。
3.阅读本书只需要具备高中水平的数学知识,不需要机器学习或深度学习的经验。
4.多为业内知名专家推荐;提供可免费下载的源代码。
你在拿起本书时可能就会意识到,近几年深度学习在人工智能领域所代表的非凡进步。在短短的5年时间里,图像识别和语音转录已经从几乎无法使用发展到超越人类的水平。
这种突如其来的进步所带来的影响几乎波及每一个行业。但是为了将深度学习技术应用于它能解决的每一个问题,我们需要让尽可能多的人可以使用它,包括非专家——那些不是研究人员或研究生的人。为了使深度学习充分发挥其潜力,我们需要从根本上使其大众化。
当我(Francois Chollet)在2015年3月发布 Keras深度学习框架的第一个版本时,人工智能的大众化并不是我想要的。我在机器学习方面做了好几年的研究,并且建立了Keras来帮助我进行自己的实验。但在2015年和2016年,成千上万的新人进入了深度学习领域;他们中的许多人选择了Keras,因为那时它是最容易起步的框架(现在仍然如此)。当我看到许多新人以意想不到的、强大的方式使用 Keras时,我开始深深地关注人工智能的可访问性和大众化。我意识到,我们越是推广这些技术,它们就越有用、越有价值。可访问性很快成为Keras开发中的一个明确目标,在短短的几年里,Keras开发人员社区在这方面取得了惊人的进步。我们把深度学习交给了成千上万的人,他们反过来用深度学习解决了一些我们甚至直到最近才知道其存在的重要问题。
你手中的《R语言深度学习》这本书能帮助尽可能多的人进一步进行深度学习。Keras总是需要一门配套课程来同时涵盖深度学习的基础知识、Keras使用模式和深度学习最佳实践。《R语言深度学习》是我制作这样一门课程的最大努力。我写作的重点是使深度学习背后的概念及其实现尽可能易于接受。这样做并不需要减少任何内容—我坚信在深度学习中没有什么难以理解的思想。我希望你能觉得《R语言深度学习》很有价值,并能基于它开始构建智能应用并解决你所关注的问题。
Francois Chollet
Fran?ois Chollet在Google加州山景城从事深度学习相关的工作。他是Keras深度学习库的创建者,也是TensorFlow机器学习框架的贡献者。他还从事深度学习研究工作,侧重于计算机视觉和形式推理的机器学习应用。他的论文已在该领域的重要会议上发表,包括计算机视觉与模式识别会议(CVPR)、神经信息处理系统(NIPS)会议及分论坛、国际学习表征会议(ICLR)等。
J.J.Allaire是RStudio的创始人和RStudio集成开发环境的创建者,也是TensorFlow和Keras的R接口的作者。
目 录
原书前言
致谢
关于本书
第一部分 深度学习基础
第 1章 什么是深度学习
1.1 人工智能、机器学习和深度学习
1.1.1 人工智能
1.1.2 机器学习
1.1.3 从数据中学习表述
1.1.4 深度学习的“深”
1.1.5 通过三张图理解深度学习的原理
1.1.6 深度学习目前能做什么
1.1.7 不要相信短期炒作
1.1.8 人工智能的潜力
1.2 在深度学习之前:机器学习简史
1.2.1 概率建模
1.2.2 早期的神经网络
1.2.3 核方法
1.2.4 决策树、随机森林、梯度提升机
1.2.5 回到神经网络
1.2.6 是什么让深度学习与众不同
1.2.7 现代机器学习发展
1.3 为什么会有深度学习?为什么是现在
1.3.1 硬件
1.3.2 数据
1.3.3 算法
1.3.4 新一轮投资潮
1.3.5 深度学习走向大众
1.3.6 它会持续下去吗
第 2章 在我们开始前:构建神经网络的数学模块
2.1 有关神经网络的第一印象
2.2 神经网络的数据表示
2.2.1 标量(零维张量)
2.2.2 向量(一维张量)
2.2.3 矩阵(二维张量)
2.2.4 三维张量和高维张量
2.2.5 关键属性
2.2.6 在 R中使用张量
2.2.7 数据批次的概念
2.2.8 数据张量的真实示例
2.2.9 向量数据
2.2.10 时间序列数据或序列数据
2.2.11 图像数据
2.2.12 视频数据
2.3 神经网络的齿轮:张量运算
2.3.1 逐元素运算
2.3.2 包含不同维度张量的运算
2.3.3 张量点积
2.3.4 张量重塑
2.3.5 张量运算的几何解释
2.3.6 深度学习的几何解释
2.4 神经网络的引擎:基于梯度的优化
2.4.1 什么是导数
2.4.2 张量运算的导数:梯度
2.4.3 随机梯度下降
2.4.4 链式导数:后向传播算法
2.5 回顾我们的第一个例子
2.6 本章小结
第 3章 神经网络入门
3.1 神经网络的剖析
3.1.1 层:深度学习的基石
3.1.2 模型:层网络
3.1.3 损失函数和优化器:配置学习过程的关键
3.2 Keras简介
3.2.1 Keras、TensorFlow、Theano和 CNTK
3.2.2 安装 Keras 46 3.2.3 使用 Keras进行开发:快速概述
3.3 建立深度学习工作站
3.3.1 让 Keras运行:两个选项
3.3.2 在云中运行深度学习任务:优点和缺点
3.3.3 什么是深度学习的最佳GPU
3.4 电影评论分类:二元分类示例
3.4.1 IMDB数据集
3.4.2 准备数据
3.4.3 构建网络
3.4.4 方法验证
3.4.5 使用经过训练的网络生成对新数据的预测
3.4.6 进一步的实验
3.4.7 小结
3.5 新闻专线分类:多类分类示例
3.5.1 Reuters数据集
3.5.2 准备数据
3.5.3 构建网络
3.5.4 方法验证
3.5.5 生成对新数据的预测
3.5.6 处理标签和损失的不同方式
3.5.7 具有足够大的中间层的重要性
3.5.8 进一步的实验
3.5.9 小结
3.6 预测房价:一个回归的例子
3.6.1 波士顿住房价格数据集
3.6.2 准备数据
3.6.3 构建网络
3.6.4 使用 K折验证
3.6.5 小结
3.7 本章小结
第 4章 机器学习基础
4.1 机器学习的四个分支
4.1.1 监督学习
4.1.2 无监督学习
4.1.3 自监督学习
4.1.4 强化学习
4.2 评估机器学习模型
4.2.1 训练、验证和测试集
4.2.2 要记住的事情
4.3 数据预处理、特征工程和特征学习
4.3.1 神经网络的数据预处理
4.3.2 特征工程
4.4 过拟合和欠拟合
4.4.1 缩小网络规模
4.4.2 添加权重正则化
4.4.3 添加 dropout
4.5 机器学习的通用工作流程
4.5.1 定义问题并整合数据集
4.5.2 选择衡量成功的标准
4.5.3 确定评估方案
4.5.4 准备数据
4.5.5 开发一个比基线更好的模型
4.5.6 扩展:开发一个过拟合的模型
4.5.7 正则化模型并调整超参数
4.6 本章小结
第二部分 深度学习实战
第 5章 计算机视觉中的深度学习
5.1 卷积网络概述
5.1.1 卷积操作
5.1.2 最大池化操作
5.2 在小型数据集上从头开始训练一个卷积网络
5.2.1 深度学习与小数据问题的相关性
5.2.2 下载数据
5.2.3 构建网络
5.2.4 数据预处理
5.2.5 使用数据扩充
5.3 使用预训练的卷积网络
5.3.1 特征提取
5.3.2 微调
5.3.3 小结
5.4 可视化卷积网络学习过程
5.4.1 可视化中间激活
5.4.2 可视化卷积网络过滤器
5.4.3 可视化类激活的热图
5.5 本章小结
第 6章 用于文本和序列数据的深度学习
6.1 使用文本数据
6.1.1 词和字符的独热编码
6.1.2 使用单词嵌入
6.1.3 将其全部放在一起:从原始文本到单词嵌入
6.1.4 小结
6.2 了解循环神经网络
6.2.1 Keras中的循环层
6.2.2 理解 LSTM 和 GRU 层
6.2.3 Keras中的一个具体的 LSTM例子
6.2.4 小结
6