内容简介
第1章对深度神经网络的科学原理和实现这种网络的不同框架以及框架背后的数学机制提供一个快速回顾。
第2章向读者介绍卷积神经网络,并展示如何利用深度学习从图像中提取信息。
第3章从零开始针对图像分类问题构建一个简单的CNN,并阐明如何调整参数、优化训练时间以及CNN的性能,以分别提高效率和准确率。
第4章介绍几种经典的(在竞赛中胜出的)CNN架构的优势和运作机制,以及它们之间的差异和如何使用这些架构。
第5章讲授如何使用预先训练好的网络,并使其适用于新的且不同的数据集。在实际应用中也有一种自定义分类问题,它使用的技术称为转移学习。
第6章介绍一种称为自编码器的无监督学习技术,同时介绍了CNN自编码器的不同应用,比如图像压缩。
第7章讲授目标检测、实例分割和图像分类的区别。然后介绍多种使用CNN进行目标检测和实例分割的技术。
第8章探究生成式CNN网络,然后将其与我们学习得到的有识别力的CNN网络相结合,用CNN/GAN创造新的图像。
第9章讲授深度学习中注意力背后的思想,并学习如何使用基于注意力的模型来实现一些高级解决方案(图像捕捉和RAM)。我们还将了解不同类型的注意力以及强化学习在硬注意力机制中的作用。
作者简介
MohitSewak是IBM的高级认知数据科学家,也是比尔拉技术与科学学院的人工智能和计算机科学博士。他在人工智能、深度学习和机器学习方面拥有多项专利和著作。他曾是一些非常成功的人工智能/机器学习软件和行业解决方案的首席数据科学家,并在早期就参与了沃森认知商业产品线的解决方案研究。他在TensorFlow、Torch、Caffe、Theano、Keras、Watson等架构的设计和解决方案方面有14年的丰富经验。
Md.RezaulKarim是德国FraunhoferFIT的研究科学家。他也是德国亚琛工业大学的博士研究生。在加入FIT之前,他曾在爱尔兰的Insight数据分析中心担任研究员。他也曾是韩国三星电子的首席工程师。
他在C++、Java、R、Scala和Python方面有9年的研发经验,也在生物信息学、大数据和深度学习方面发表过研究论文。此外在Spark、Zeppelin、Hadoop、Keras、Scikit-Learn、TensorFlow、Deeplearning4j、MXNet、H2O等方面都有实际的工作经验。
PradeepPujari是沃尔玛实验室的机器学习工程师,也是ACM的杰出成员。他的核心专业领域是信息检索、机器学习和自然语言处理。在空闲的时候,他喜欢研究人工智能技术、阅读和辅导。
目录
前言
关于作者
关于审阅者
第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 dropout31
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 训练CNN53
3.3.1 初始化权重和偏置53
3.3.2 正则化54
3.3.3 激活函数54
3.4 创建、训练和评估第一个CNN56
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 综合所有操作创建第二个CNN80
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 LeNet92
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 FastR-CNN:基于区域快速识别的CNN130
7.5 FasterR-CNN:基于快速区域生成网络的CNN132
7.6 MaskR-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 CycleGAN144
8.1.2 训练GAN模型145
8.2 GAN的代码示例146
8.2.1 计算损失149
8.2.2 半监督学习和GAN151
8.3 特征匹配152
8.3.1 基于半监督分类的GAN示例152
8.3.2 深度卷积GAN158
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正在革新几个应用领域,如视觉识别系统、自动驾驶汽车、医学发现、创新电子商务等。《实用卷积神经网络:运用Python实现高级深度学习模型》从构建CNN块开始,基于最佳实践来指导你实现真实的CNN模型并提供解决方案。你将学习创建图像和视频的创新解决方案,以解决复杂的机器学习和计算机视觉问题。
《实用卷积神经网络:运用Python实现高级深度学习模型》从深度神经网络概述开始,通过一个图像分类的例子带你构建第一个CNN模型。你将学习一些概念,如转移学习、CNN自编码器等,这些概念将帮助你构建非常强大的模型,即使只有有限的监督学习(有标签图像)训练集。
随后,我们基于这些学习来实现高级视觉相关算法和解决方案,用于目标检测、实例分割、生成式(对抗)网络、图像捕捉、注意力机制以及循环视觉注意模型。除了让你动手实践最有趣的视觉模型和架构外,《实用卷积神经网络:运用Python实现高级深度学习模型》还探索了CNN和计算机视觉领域最前沿的研究。这使得用户能够预见这个领域的未来,并运用高级CNN解决方案快速开始他们的创新之旅。
在《实用卷积神经网络:运用Python实现高级深度学习模型》的结尾,你应该可以在你的专业项目或个人方案中利用复杂的图像和视频数据集来实现先进、有效和高效的CNN模型。