| 作者 |
| 翁贝托·米凯卢奇 高敬鹏 |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782007271619 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------深度学习进阶:卷积神经网络和对象检测--------------------------- 本书介绍卷积神经网络的核心——错综复杂的细节和算法的微妙之处。主要包括卷积神经网络的高级主题和使用Keras和TensorFlow的对象检测。 ---------------------------深度学习:卷积神经网络技术与实践--------------------------- 本书共11章,主要内容包括深度学习简介、Python基础、神经网络基础、卷积神经网络、经典卷积网络结构、迁移学习、循环神经网络、强化学习、深度强化学习、基于策略的算法更新与趋势等,通过具体案例,将Python语言、深度学习思想、强化学习思想和实际工程完美地结合起来。本书由浅入深,从易到难,各章节既相对独立又前后关联,其最大的特点就是打破了传统书籍的讲解方法,在介绍各部分理论基础的同时,搭配具体实例,通过对相关程序的详细讲解进一步加深对理论基础的理解。 |
| 目录 |
---------------------------深度学习进阶:卷积神经网络和对象检测--------------------------- 前言 致谢 第1章 简介和设置开发环境 1 1.1 GitHub存储库和配套网站 2 1.2 必备的数学知识 3 1.3 Python开发环境 3 1.3.1 Google Colab 4 1.3.2 Anaconda 6 1.3.3 Docker映像 14 1.3.4 你选择哪个选项 18 第2章 TensorFlow:高级主题 20 2.1 Eager Execution简介 21 2.1.1 启用Eager Execution 21 2.1.2 Eager Execution多项式拟合 22 2.1.3 应用Eager Execution 的MNIST数据分类 26 2.2 TensorFlow和Numpy兼容性 30 2.3 硬件加速 30 2.3.1 检测GPU的可用性 30 2.3.2 设备名称 31 2.3.3 显式设备使用 32 2.3.4 GPU加速器演示:矩阵乘法 33 2.3.5 MNIST示例上的GPU加速效果 34 2.4 仅特定层训练 36 2.4.1 仅特定层训练示例 37 2.4.2 层移除 40 2.5 Keras回调函数 42 2.5.1 自定义回调类 42 2.5.2 自定义回调类示例 44 2.6 模型存储与加载 47 2.6.1 手动保存权重 52 2.6.2 保存整个模型 53 2.7 数据集抽象类 53 2.7.1 遍历数据集 55 2.7.2 简单批处理 56 2.7.3 使用MNIST数据集进行简单批处理 57 2.7.4 在Eager Execution模式下使用tf.data.Dataset 60 2.8 本章小结 60 第3章 卷积神经网络的基础 61 3.1 核和过滤器 61 3.2 卷积 62 3.3 卷积示例 71 3.4 池化 77 3.5 CNN的构建基块 81 3.5.1 卷积层 82 3.5.2 池化层 83 3.5.3 叠加层 84 3.6 CNN的权重数量 84 3.6.1 卷积层 84 3.6.2 池化层 85 3.6.3 稠密层 85 3.7 CNN的示例:MNIST数据集 85 3.8 CNN学习的可视化 89 3.8.1 keras.backend.function()简介 89 3.8.2 核的作用效果 91 3.8.3 最大池化的作用效果 93 第4章 高级CNN与迁移学习 95 4.1 多通道卷积 95 4.2 初始网络的历史和基础 98 4.2.1 初始模块:初始版本 99 4.2.2 初始模块中的参数数量 100 4.2.3 具有降维功能的初始模块 100 4.3 多种成本函数:GoogLeNet 102 4.4 Keras中的初始模块示例 103 4.5 偏离:Keras中的自定义损失 106 4.6 如何使用预先训练过的网络 108 4.7 迁移学习简介 111 4.8 猫狗问题 114 4.8.1 迁移学习的经典方法 114 4.8.2 迁移学习实验 120 第5章 成本函数与风格转换 123 5.1 神经网络模型的构成 123 5.1.1 训练被视为优化问题 124 5.1.2 具体示例:线性回归 125 5.2 成本函数 126 5.2.1 数学符号 126 5.2.2 典型成本函数 127 5.3 神经风格转换 134 5.3.1 神经风格转换背后的数学原理 135 5.3.2 Keras中的图像风格转换示例 139 5.3.3 使用神经风格转换生成剪影 145 5.3.4 masking 146 第6章 对象分类简介 148 6.1 什么是对象定位 148 6.1.1 重要的可用数据集 150 6.1.2 交并比 152 6.2 一种简单的对象定位方法:滑动窗口法 153 6.3 分类和定位 159 6.4 基于区域的卷积神经网络 161 6.5 快速R-CNN 164 6.6 更快的R-CNN 165 第7章 对象定位:基于Python的实现 167 7.1 YOLO方法 167 7.1.1 YOLO工作机制 168 7.1.2 YOLOv2 170 7.1.3 YOLOv3 171 7.1.4 非极大值抑制 171 7.1.5 损失函数 172 7.2 YOLO在Python和OpenCV中的实现 173 7.2.1 YOLO的Darknet实现 173 7.2.2 应用Darknet测试对象检测 175 7.3 为特定图像训练YOLO模型 180 7.4 本章小结 181 第8章 组织学组织分类 183 8.1 数据分析和准备 184 8.2 建立模型 192 8.3 数据增强 201 8.3.1 水平和垂直移动 202 8.3.2 垂直翻转图像 203 8.3.3 随机旋转图像 204 8.3.4 图像缩放 205 8.3.5 综合操作 206 8.4 带有数据增强的VGG16 206 8.4.1 fit()函数 207 8.4.2 fit_generator()函数 207 8.4.3 train_on_batch()函数 208 8.4.4 训练网络 208 8.5 现在好好享受 209 ---------------------------深度学习:卷积神经网络技术与实践--------------------------- 前言 第1章 深度学习简介1 1.1 机器学习与深度学习1 1.2 TensorFlow概述2 1.3 环境搭建3 1.3.1 在Windows系统下安装Anaconda3 1.3.2 在Anaconda下安装TensorFlow与Keras6 1.3.3 Spyder编辑器8 第2章 Python基础11 2.1 数据类型11 2.1.1 数值类型11 2.1.2 字符串类型13 2.1.3 布尔类型13 2.2 变量与常量14 2.3 运算符14 2.3.1 运算符概述14 2.3.2 运算符优先级15 2.4 选择与循环15 2.4.1 if语句15 2.4.2 while循环18 2.4.3 for循环20 2.4.4 break和continue21 2.5 列表与元组23 2.5.1 创建23 2.5.2 查询24 2.5.3 修改24 2.5.4 删除26 2.6 字典26 2.6.1 字典的创建27 2.6.2 字典的常规操作27 2.6.3 字典的遍历29 2.7 函数29 2.7.1 函数的定义与调用30 2.7.2 参数传递31 2.8 面向对象编程33 2.8.1 类与对象33 2.8.2 继承与多态34 2.9 思考与练习37 第3章 神经网络基础38 3.1 单层神经网络38 3.2 多层神经网络39 3.2.1 隐藏层39 3.2.2 输入层与输出层41 3.3 激活函数42 3.3.1 Sigmoid函数42 3.3.2 Tanh函数43 3.3.3 Relu函数44 3.3.4 Softmax函数45 3.4 神经网络工作过程45 3.5 损失函数47 3.5.1 均方差函数47 3.5.2 交叉熵函数47 3.6 优化算法48 3.7 反向传播49 3.8 泛化能力52 3.9 多层感知器53 3.10 MNIST数据集54 3.10.1 下载MNIST数据集54 3.10.2 数据预处理56 3.11 Keras实现感知器的手写体识别58 3.11.1 单层感知器手写体识别58 3.11.2 多层感知器手写体识别61 3.12 思考与练习67 第4章 卷积神经网络68 4.1 卷积神经网络结构及原理68 4.1.1 卷积神经网络特点69 4.1.2 卷积层70 4.1.3 池化层72 4.1.4 全连接层73 4.2 卷积神经网络工作过程74 4.3 简单卷积神经网络实现MNIST分类76 4.3.1 MNIST数据集预处理76 4.3.2 简单卷积神经网络搭建77 4.4 CIFAR-10数据集84 4.4.1 下载CIFAR-10数据集85 4.4.2 CIFAR-10数据集预处理87 4.5 简单卷积神经网络实现CIFAR-10分类88 4.6 思考与练习93 第5章 经典卷积网络结构94 5.1 LeNet概述94 5.2 LeNet实现MNIST分类95 5.2.1 MNIST数据预处理95 5.2.2 基于Keras搭建LeNet网络结构95 5.2.3 对LeNet网络模型进行编译、训练、评估与预测98 5.3 AlexNet概述101 5.4 AlexNet实现MNIST分类103 5.4.1 基于Keras搭建AlexNet网络结构103 5.4.2 对AlexNet网络模型进行编译、训练、评估与预测107 5.5 VGG16概述110 5.6 VGG16实现MNIST分类111 5.6.1 基于Keras搭建VGG16网络结构112 5.6.2 对VGG16网络模型进行评估与预测115 5.7 思考与练习117 第6章 经典卷积网络结构进阶118 6.1 GoogLeNet概述118 6.2 GoogLeNet实现MNIST分类119 6.2.1 基于Keras搭建GoogLeNet网络结构119 6.2.2 对GoogLeNet进行训练、评估与预测125 6.3 ResNet概述129 6.4 ResNet50实现MNIST分类131 6.4.1 基于Keras搭建ResNet50网络结构131 6.4.2 对ResNet50网络模型进行训练、评估与预测138 6.5 思考与练习142 第7章 迁移学习143 7.1 基于卷积网络实现迁移学习143 7.2 InceptionV3实现迁移学习144 7.3 Xception实现迁移学习150 7.4 MobileNet实现迁移学习155 7.5 简单卷积网络实现迁移学习164 7.6 思考与练习172 第8章 循环神经网络173 8.1 循环神经网络概述173 8.2 长短期记忆网络174 8.2.1 LSTM前向传播175 8.2.2 LSTM反向传播176 8.3 Reuters数据集176 8.3.1 Reuters数据集概述176 8.3.2 文本信息预处理177 8.4 简单RNN实现Reuters分类180 8.5 LSTM实现Reuters分类185 8.6 思考与练习190 第9章 强化学习191 9.1 初识强化学习191 9.1.1 什么是强化学习192 9.1.2 强化学习能解决什么类型的问题193 9.1.3 强化学习如何解决问题194 9.2 强化学习理论基础194 9.2.1 基本组成元素194 9.2.2 基本模型196 9.2.3 价值函数198 9.3 求解强化学习—有模型199 9.3.1 动态规划与贝尔曼方程199 9.3.2 策略迭代200 9.3.3 值迭代202 9.3.4 值迭代算法实现格子世界202 9.4 求解强化学习—无模型208 9.4.1 蒙特卡罗算法208 9.4.2 时间差分法209 9.4.3 Q-learning算法210 9.4.4 Q-learning实现格子世界211 9.5 思考与练习213 第10章 深度强化学习214 10.1 深度强化学习框架214 10.2 TensorFlow编程216 10.2.1 TensorFlow的计算模型—计算图216 10.2.2 TensorFlow的数据模型—张量219 10.2.3 TensorFlow的运行模型—会话220 10.2.4 TensorFlow变量222 10.2.5 TensorFlow共享变量225 10.3 Gym的安装及使用226 10.3.1 Gym的安装226 10.3.2 Gym的使用227 10.4 基于值的算法更新229 10.4.1 Q-learning实现229 10.4.2 DQN算法原理233 10.4.3 DQN算法实现236 10.4.4 DDQN算法原理241 10.4.5 DDQN算法实现243 10.5 思考与练习248 第11章 基于策略的算法更新与趋势250 11.1 策略梯度法250 11.1.1 策略目标函数251 11.1.2 策略梯度定理252 11.1.3 策略梯度算法实现254 11.2 演员–评论家算法258 11.2.1 演员–评论家算法原理258 11.2.2 演员–评论家算法实现259 11.3 优势演员–评论家算法263 11.3.1 优势演员–评论家算法原理264 11.3.2 优势演员–评论家算法实现265 11.4 异步优势演员–评论家算法269 11.4.1 异步优势演员–评论家算法原理270 11.4.2 异步优势演员–评论家算法实现272 11.5 深度强化学习的发展趋势278 11.6 思考与练习279 |