描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111621966
内容简介
本书主要用Python语言构建CNN,主要关注如何以*佳的方式利用各种Python和深度学习库(如Keras,TensorFlow和Caffe)来构建真实世界的应用程序。从构建CNN块开始,基于*佳实践来指导你实现真实的CNN模型及解决方案。你将学习创建图像和视频的创新解决方案,以解决复杂的机器学习和计算机视觉问题。
目 录
前言
关于作者
关于审阅者
第1章 深度神经网络概述 1
1.1 创建神经网络块 1
1.2 TensorFlow介绍 3
1.3 MNIST数据集介绍 10
1.4 Keras深度学习库概述 14
1.5 基于Keras和MNIST的手写数字识别 15
1.5.1 训练和测试数据的检索 17
1.5.2 训练数据的可视化 18
1.5.3 创建神经网络 18
1.5.4 训练神经网络 19
1.5.5 测试 19
1.6 理解反向传播 20
1.7 本章小结 23
第2章 卷积神经网络介绍 25
2.1 CNN历史 25
2.2 卷积神经网络 27
2.2.1 计算机如何解释图像 28
2.2.2 编码实现图像可视化 29
2.2.3 dropout 31
2.2.4 输入层 31
2.2.5 卷积层 32
2.2.6 池化层 34
2.3 实践示例:图像分类 35
2.4 本章小结 39
第3章 构建CNN并进行性能优化 41
3.1 CNN架构和DNN的缺点 41
3.1.1 卷积操作 44
3.1.2 池化、步长和填充操作 46
3.2 TensorFlow中的卷积和池化操作 48
3.2.1 在TensorFlow中应用池化操作 49
3.2.2 TensorFlow中的卷积操作 51
3.3 训练CNN 53
3.3.1 初始化权重和偏置 53
3.3.2 正则化 54
3.3.3 激活函数 54
3.4 创建、训练和评估第一个CNN 56
3.5 模型性能优化 73
3.5.1 隐含层数量 73
3.5.2 每个隐含层的神经元个数 74
3.5.3 批标准化 74
3.5.4 高级正则化及过拟合的避免 76
3.5.5 运用哪个优化器 79
3.5.6 内存调优 79
3.5.7 层的位置调优 80
3.5.8 综合所有操作创建第二个CNN 80
3.5.9 数据集描述和预处理 80
3.5.10 创建CNN模型 85
3.5.11 训练和评估网络 87
3.6 本章小结 90
第4章 经典的CNN模型架构 91
4.1 ImageNet介绍 91
4.2 LeNet 92
4.3 AlexNet架构 93
4.4 VGGNet架构 95
4.5 GoogLeNet架构 97
4.5.1 架构洞察 98
4.5.2 inception模块 99
4.6 ResNet架构 99
4.7 本章小结 101
第5章 转移学习 103
5.1 特征提取方法 103
5.1.1 目标数据集较小且与原始训练集相似 104
5.1.2 目标数据集较小且与原始训练集不同 105
5.1.3 目标数据集很大且与原始训练集相似 107
5.1.4 目标数据集很大且与原始训练集不同 107
5.2 转移学习示例 108
5.3 多任务学习 111
5.4 本章小结 111
第6章 CNN自编码器 113
6.1 自编码器介绍 113
6.2 卷积自编码器 114
6.3 应用 115
6.4 本章小结 116
第7章 CNN目标检测与实例分割 119
7.1 目标检测与图像分类的区别 120
7.2 传统的、非CNN的目标检测方法 124
7.3 R-CNN:CNN特征区 128
7.4 Fast R-CNN:基于区域快速识别的CNN 130
7.5 Faster R-CNN:基于快速区域生成网络的CNN 132
7.6 Mask R-CNN:CNN实例分割 135
7.7 实例分割的代码实现 137
7.7.1 创建环境 138
7.7.2 准备COCO数据集文件夹结构 139
7.7.3 在COCO数据集上运行预训练模型 139
7.8 参考文献 139
7.9 本章小结 141
第8章 GAN:使用CNN生成新图像 143
8.1 Pix2pix:基于GAN的图像翻译 144
8.1.1 CycleGAN 144
8.1.2 训练GAN模型 145
8.2 GAN的代码示例 146
8.2.1 计算损失 149
8.2.2 半监督学习和GAN 151
8.3 特征匹配 152
8.3.1 基于半监督分类的GAN示例 152
8.3.2 深度卷积GAN 158
8.4 本章小结 159
第9章 CNN和视觉模型的注意力机制 161
9.1 图像描述中的注意力机制 164
9.2 注意力类型 168
9.2.1 硬注意力 168
9.2.2 软注意力 169
9.3 运用注意力改善视觉模型 170
9.3.1 视觉CNN模型次优性能的原因 171
9.3.2 循环视觉注意力模型 174
9.4 参考文献 180
9.5 本章小结 181
关于作者
关于审阅者
第1章 深度神经网络概述 1
1.1 创建神经网络块 1
1.2 TensorFlow介绍 3
1.3 MNIST数据集介绍 10
1.4 Keras深度学习库概述 14
1.5 基于Keras和MNIST的手写数字识别 15
1.5.1 训练和测试数据的检索 17
1.5.2 训练数据的可视化 18
1.5.3 创建神经网络 18
1.5.4 训练神经网络 19
1.5.5 测试 19
1.6 理解反向传播 20
1.7 本章小结 23
第2章 卷积神经网络介绍 25
2.1 CNN历史 25
2.2 卷积神经网络 27
2.2.1 计算机如何解释图像 28
2.2.2 编码实现图像可视化 29
2.2.3 dropout 31
2.2.4 输入层 31
2.2.5 卷积层 32
2.2.6 池化层 34
2.3 实践示例:图像分类 35
2.4 本章小结 39
第3章 构建CNN并进行性能优化 41
3.1 CNN架构和DNN的缺点 41
3.1.1 卷积操作 44
3.1.2 池化、步长和填充操作 46
3.2 TensorFlow中的卷积和池化操作 48
3.2.1 在TensorFlow中应用池化操作 49
3.2.2 TensorFlow中的卷积操作 51
3.3 训练CNN 53
3.3.1 初始化权重和偏置 53
3.3.2 正则化 54
3.3.3 激活函数 54
3.4 创建、训练和评估第一个CNN 56
3.5 模型性能优化 73
3.5.1 隐含层数量 73
3.5.2 每个隐含层的神经元个数 74
3.5.3 批标准化 74
3.5.4 高级正则化及过拟合的避免 76
3.5.5 运用哪个优化器 79
3.5.6 内存调优 79
3.5.7 层的位置调优 80
3.5.8 综合所有操作创建第二个CNN 80
3.5.9 数据集描述和预处理 80
3.5.10 创建CNN模型 85
3.5.11 训练和评估网络 87
3.6 本章小结 90
第4章 经典的CNN模型架构 91
4.1 ImageNet介绍 91
4.2 LeNet 92
4.3 AlexNet架构 93
4.4 VGGNet架构 95
4.5 GoogLeNet架构 97
4.5.1 架构洞察 98
4.5.2 inception模块 99
4.6 ResNet架构 99
4.7 本章小结 101
第5章 转移学习 103
5.1 特征提取方法 103
5.1.1 目标数据集较小且与原始训练集相似 104
5.1.2 目标数据集较小且与原始训练集不同 105
5.1.3 目标数据集很大且与原始训练集相似 107
5.1.4 目标数据集很大且与原始训练集不同 107
5.2 转移学习示例 108
5.3 多任务学习 111
5.4 本章小结 111
第6章 CNN自编码器 113
6.1 自编码器介绍 113
6.2 卷积自编码器 114
6.3 应用 115
6.4 本章小结 116
第7章 CNN目标检测与实例分割 119
7.1 目标检测与图像分类的区别 120
7.2 传统的、非CNN的目标检测方法 124
7.3 R-CNN:CNN特征区 128
7.4 Fast R-CNN:基于区域快速识别的CNN 130
7.5 Faster R-CNN:基于快速区域生成网络的CNN 132
7.6 Mask R-CNN:CNN实例分割 135
7.7 实例分割的代码实现 137
7.7.1 创建环境 138
7.7.2 准备COCO数据集文件夹结构 139
7.7.3 在COCO数据集上运行预训练模型 139
7.8 参考文献 139
7.9 本章小结 141
第8章 GAN:使用CNN生成新图像 143
8.1 Pix2pix:基于GAN的图像翻译 144
8.1.1 CycleGAN 144
8.1.2 训练GAN模型 145
8.2 GAN的代码示例 146
8.2.1 计算损失 149
8.2.2 半监督学习和GAN 151
8.3 特征匹配 152
8.3.1 基于半监督分类的GAN示例 152
8.3.2 深度卷积GAN 158
8.4 本章小结 159
第9章 CNN和视觉模型的注意力机制 161
9.1 图像描述中的注意力机制 164
9.2 注意力类型 168
9.2.1 硬注意力 168
9.2.2 软注意力 169
9.3 运用注意力改善视觉模型 170
9.3.1 视觉CNN模型次优性能的原因 171
9.3.2 循环视觉注意力模型 174
9.4 参考文献 180
9.5 本章小结 181
前 言
CNN正在革新几个应用领域,如视觉识别系统、自动驾驶汽车、医学发现、创新电子商务等。本书从构建CNN块开始,基于最佳实践来指导你实现真实的CNN模型并提供解决方案。你将学习创建图像和视频的创新解决方案,以解决复杂的机器学习和计算机视觉问题。
本书从深度神经网络概述开始,通过一个图像分类的例子带你构建第一个CNN模型。你将学习一些概念,如转移学习、CNN自编码器等,这些概念将帮助你构建非常强大的模型,即使只有有限的监督学习(有标签图像)训练集。
随后,我们基于这些学习来实现高级视觉相关算法和解决方案,用于目标检测、实例分割、生成式(对抗)网络、图像捕捉、注意力机制以及循环视觉注意模型。除了让你动手实践最有趣的视觉模型和架构外,本书还探索了CNN和计算机视觉领域最前沿的研究。这使得用户能够预见这个领域的未来,并运用高级CNN解决方案快速开始他们的创新之旅。
在本书的结尾,你应该可以在你的专业项目或个人方案中利用复杂的图像和视频数据集来实现先进、有效和高效的CNN模型。
本 书 受 众
本书适合数据科学家、机器学习和深度学习实践者以及想要进一步构建CNN的人工智能爱好者。获取使用极大数据集和不同CNN架构的实践经验,从而构建高效、智能的卷积网络模型。本书读者最好对深度学习基本概念和Python编程语言基础知识已经有所了解。
各 章 概 览
第1章对深度神经网络的科学原理和实现这种网络的不同框架以及框架背后的数学机制提供一个快速回顾。
第2章向读者介绍卷积神经网络,并展示如何利用深度学习从图像中提取信息。
第3章从零开始针对图像分类问题构建一个简单的CNN,并阐明如何调整参数、优化训练时间以及CNN的性能,以分别提高效率和准确率。
第4章介绍几种经典的(在竞赛中胜出的)CNN架构的优势和运作机制,以及它们之间的差异和如何使用这些架构。
第5章讲授如何使用预先训练好的网络,并使其适用于新的且不同的数据集。在实际应用中也有一种自定义分类问题,它使用的技术称为转移学习。
第6章介绍一种称为自编码器的无监督学习技术,同时介绍了CNN自编码器的不同应用,比如图像压缩。
第7章讲授目标检测、实例分割和图像分类的区别。然后介绍多种使用CNN进行目标检测和实例分割的技术。
第8章探究生成式CNN网络,然后将其与我们学习得到的有识别力的CNN网络相结合,用CNN/GAN创造新的图像。
第9章讲授深度学习中注意力背后的思想,并学习如何使用基于注意力的模型来实现一些高级解决方案(图像捕捉和RAM)。我们还将了解不同类型的注意力以及强化学习在硬注意力机制中的作用。
充分利用本书
本书主要用Python语言构建CNN。我们使用Python 2.7(2x)来构建各种应用程序,并且基于Python、Spyder、Anaconda、PyCharm构建开源的企业级专业软件。许多示例也能兼容Python 3x。作为一种好的实践,我们鼓励用户使用Python虚拟环境来实现这些代码。
本书主要关注如何以最佳的方式利用各种Python库和深度学习库(如Keras、TensorFlow和Caffe)来构建真实世界的应用程序。本着这种精神,我们尽量保持所有代码的友好性和可读性,以便使读者能够更容易地理解代码,并能在不同的场景中复用这些代码。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
排 版 约 定
代码块设置如下:
本书从深度神经网络概述开始,通过一个图像分类的例子带你构建第一个CNN模型。你将学习一些概念,如转移学习、CNN自编码器等,这些概念将帮助你构建非常强大的模型,即使只有有限的监督学习(有标签图像)训练集。
随后,我们基于这些学习来实现高级视觉相关算法和解决方案,用于目标检测、实例分割、生成式(对抗)网络、图像捕捉、注意力机制以及循环视觉注意模型。除了让你动手实践最有趣的视觉模型和架构外,本书还探索了CNN和计算机视觉领域最前沿的研究。这使得用户能够预见这个领域的未来,并运用高级CNN解决方案快速开始他们的创新之旅。
在本书的结尾,你应该可以在你的专业项目或个人方案中利用复杂的图像和视频数据集来实现先进、有效和高效的CNN模型。
本 书 受 众
本书适合数据科学家、机器学习和深度学习实践者以及想要进一步构建CNN的人工智能爱好者。获取使用极大数据集和不同CNN架构的实践经验,从而构建高效、智能的卷积网络模型。本书读者最好对深度学习基本概念和Python编程语言基础知识已经有所了解。
各 章 概 览
第1章对深度神经网络的科学原理和实现这种网络的不同框架以及框架背后的数学机制提供一个快速回顾。
第2章向读者介绍卷积神经网络,并展示如何利用深度学习从图像中提取信息。
第3章从零开始针对图像分类问题构建一个简单的CNN,并阐明如何调整参数、优化训练时间以及CNN的性能,以分别提高效率和准确率。
第4章介绍几种经典的(在竞赛中胜出的)CNN架构的优势和运作机制,以及它们之间的差异和如何使用这些架构。
第5章讲授如何使用预先训练好的网络,并使其适用于新的且不同的数据集。在实际应用中也有一种自定义分类问题,它使用的技术称为转移学习。
第6章介绍一种称为自编码器的无监督学习技术,同时介绍了CNN自编码器的不同应用,比如图像压缩。
第7章讲授目标检测、实例分割和图像分类的区别。然后介绍多种使用CNN进行目标检测和实例分割的技术。
第8章探究生成式CNN网络,然后将其与我们学习得到的有识别力的CNN网络相结合,用CNN/GAN创造新的图像。
第9章讲授深度学习中注意力背后的思想,并学习如何使用基于注意力的模型来实现一些高级解决方案(图像捕捉和RAM)。我们还将了解不同类型的注意力以及强化学习在硬注意力机制中的作用。
充分利用本书
本书主要用Python语言构建CNN。我们使用Python 2.7(2x)来构建各种应用程序,并且基于Python、Spyder、Anaconda、PyCharm构建开源的企业级专业软件。许多示例也能兼容Python 3x。作为一种好的实践,我们鼓励用户使用Python虚拟环境来实现这些代码。
本书主要关注如何以最佳的方式利用各种Python库和深度学习库(如Keras、TensorFlow和Caffe)来构建真实世界的应用程序。本着这种精神,我们尽量保持所有代码的友好性和可读性,以便使读者能够更容易地理解代码,并能在不同的场景中复用这些代码。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
排 版 约 定
代码块设置如下:
当要强调代码块的特定部分时,相关代码行或者单词会设置为粗体:
警告或重要提示的标记。
提示或技巧的标记。
评论
还没有评论。