| 作者 |
| [印度] 桑塔努·帕塔纳亚克(Santanu Pattanayak)兜哥 |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781911191544 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------Python人工智能项目实战--------------------------- 通过结合深度学习和强化学习,帮助你构建智能而且实用的人工智能系统。本书涉及的项目涵盖众多领域,例如医疗健康、电子商务、专家系统、智能安防、移动应用和自动驾驶,使用的技术包括卷积神经网络、深度强化学习、基于LSTM的RNN、受限玻尔兹曼机、生成对抗网络、机器翻译和迁移学习。本书有关构建智能应用的理论知识将帮助读者使用有趣的方法来拓展项目,令其快速创建有影响力的AI应用。读完本书之后,你将有足够的能力建立自己的智能模型,轻松地解决来自任何领域的问题。 ---------------------------AI安全之对抗样本入门--------------------------- 第1章介绍了深度学习的基础知识,重点介绍了与对抗样本相关的梯度、优化器、反向传递等知识点。 第2章介绍了如何搭建学习对抗样本的软硬件环境,虽然GPU不是必需的,但是使用GPU可以更加快速地验证你的想法。 第3章概括介绍了常见的深度学习框架,从TensorFlow、Keras、PyTorch到MXNet。 第4章介绍了图像处理领域的基础知识,这部分知识对于理解对抗样本领域的一些常见图像处理技巧非常有帮助。 第5章介绍了常见的白盒攻击算法,从基础的FGSM、DeepFool到经典的JSMA和CW。 第6章介绍了常见的黑盒攻击算法。 第7章介绍了对抗样本在目标识别领域的应用。 第8章介绍了对抗样本的常见抵御算法,与对抗样本一样,抵御对抗样本的技术也非常有趣。 . 第9章介绍了常见的对抗样本工具以及如何搭建NIPS 2017对抗防御环境和轻量级攻防对抗环境robust-ml,通过这章读者可以了解如何站在巨人的肩膀上,快速生成自己的对抗样本,进行攻防对抗。 |
| 目录 |
---------------------------Python人工智能项目实战--------------------------- 译者序 前言 作者简介 审校者简介 第1章 人工智能系统基础知识 1 1.1 神经网络 2 1.2 神经激活单元 5 1.2.1 线性激活单元 5 1.2.2 sigmoid激活单元 6 1.2.3 双曲正切激活函数 6 1.2.4 修正线性单元 7 1.2.5 softmax激活单元 9 1.3 用反向传播算法训练神经网络 9 1.4 卷积神经网络 12 1.5 循环神经网络 13 1.6 生成对抗网络 16 1.7 强化学习 18 1.7.1 Q学习 19 1.7.2 深度Q学习 20 1.8 迁移学习 21 1.9 受限玻尔兹曼机 22 1.10 自编码器 23 1.11 总结 24 第2章 迁移学习 26 2.1 技术要求 26 2.2 迁移学习简介 27 2.3 迁移学习和糖尿病视网膜病变检测 28 2.4 糖尿病视网膜病变数据集 29 2.5 定义损失函数 30 2.6 考虑类别不平衡问题 31 2.7 预处理图像 32 2.8 使用仿射变换生成额外数据 33 2.8.1 旋转 34 2.8.2 平移 34 2.8.3 缩放 35 2.8.4 反射 35 2.8.5 通过仿射变换生成额外的图像 36 2.9 网络架构 36 2.9.1 VGG16迁移学习网络 38 2.9.2 InceptionV3迁移学习网络 39 2.9.3 ResNet50迁移学习网络 39 2.10 优化器和初始学习率 40 2.11 交叉验证 40 2.12 基于验证对数损失的模型检查点 40 2.13 训练过程的Python实现 41 2.14 类别分类结果 50 2.15 在测试期间进行推断 50 2.16 使用回归而非类别分类 52 2.17 使用keras sequential工具类生成器 53 2.18 总结 57 第3章 神经机器翻译 58 3.1 技术要求 59 3.2 基于规则的机器翻译 59 3.2.1 分析阶段 59 3.2.2 词汇转换阶段 60 3.2.3 生成阶段 60 3.3 统计机器学习系统 60 3.3.1 语言模型 61 3.3.2 翻译模型 63 3.4 神经机器翻译 65 3.4.1 编码器–解码器模型 65 3.4.2 使用编码器–解码器模型进行推断 66 3.5 实现序列到序列的神经机器翻译 67 3.5.1 处理输入数据 67 3.5.2 定义神经翻译机器的模型 71 3.5.3 神经翻译机器的损失函数 73 3.5.4 训练模型 73 3.5.5 构建推断模型 74 3.5.6 单词向量嵌入 78 3.5.7 嵌入层 79 3.5.8 实现基于嵌入的NMT 79 3.6 总结 84 第4章 基于GAN的时尚风格迁移 85 4.1 技术要求 85 4.2 DiscoGAN 86 4.3 CycleGAN 88 4.4 学习从手绘轮廓生成自然手提包 89 4.5 预处理图像 89 4.6 DiscoGAN的生成器 91 4.7 DiscoGAN的判别器 93 4.8 构建网络和定义损失函数 94 4.9 构建训练过程 97 4.10 GAN训练中的重要参数值 99 4.11 启动训练 100 4.12 监督生成器和判别器的损失 101 4.13 DiscoGAN生成的样例图像 103 4.14 总结 104 第5章 视频字幕应用 105 5.1 技术要求 105 5.2 视频字幕中的CNN和LSTM 106 5.3 基于序列到序列的视频字幕系统 107 5.4 视频字幕系统数据集 109 5.5 处理视频图像以创建CNN特征 110 5.6 处理视频的带标签字幕 113 5.7 构建训练集和测试集 114 5.8 构建模型 115 5.8.1 定义模型的变量 116 5.8.2 编码阶段 117 5.8.3 解码阶段 117 5.8.4 计算小批量损失 118 5.9 为字幕创建单词词汇表 118 5.10 训练模型 119 5.11 训练结果 123 5.12 对未见过的视频进行推断 124 5.12.1 推断函数 126 5.12.2 评估结果 127 5.13 总结 128 第6章 智能推荐系统 129 6.1 技术要求 129 6.2 什么是推荐系统 129 6.3 基于潜在因子分解的推荐系统 131 6.4 深度学习与潜在因子协同过滤 132 6.5 SVD++ 136 6.6 基于受限玻尔兹曼机的推荐系统 138 6.7 对比分歧 139 6.8 使用RBM进行协同过滤 140 6.9 使用RBM实现协同过滤 142 6.9.1 预处理输入 143 6.9.2 构建RBM网络进行协作过滤 144 6.9.3 训练RBM 147 6.10 使用训练好的RBM进行推断 149 6.11 总结 150 第7章 用于电影评论情感分析的移动应用程序 151 7.1 技术要求 152 7.2 使用TensorFlow mobile构建Android移动应用程序 152 7.3 Android应用中的电影评论评分 153 7.4 预处理电影评论文本 154 7.5 构建模型 156 7.6 训练模型 157 7.7 将模型冻结为protobuf格式 159 7.8 为推断创建单词到表征的字典 161 7.9 应用程序交互界面设计 162 7.10 Android应用程序的核心逻辑 164 7.11 测试移动应用 168 7.12 总结 170 第8章 提供客户服务的AI聊天机器人 171 8.1 技术要求 172 8.2 聊天机器人的架构 172 8.3 基于LSTM的序列到序列模型 173 8.4 建立序列到序列模型 174 8.5 Twitter平台上的聊天机器人 174 8.5.1 构造聊天机器人的训练数据 175 8.5.2 将文本数据转换为单词索引 175 8.5.3 替换匿名用户名 176 8.5.4 定义模型 176 8.5.5 用于训练模型的损失函数 178 8.5.6 训练模型 179 8.5.7 从模型生成输出响应 180 8.5.8 所有代码连起来 180 8.5.9 开始训练 181 8.5.10 对一些输入推特的推断结果 181 8.6 总结 182 第9章 基于增强学习的无人驾驶 183 9.1 技术要求 183 9.2 马尔科夫决策过程 184 9.3 学习Q值函数 185 9.4 深度Q学习 186 9.5 形式化损失函数 186 9.6 深度双Q学习 187 9.7 实现一个无人驾驶车的代码 189 9.8 深度Q学习中的动作离散化 189 9.9 实现深度双Q值网络 190 9.10 设计智能体 191 9.11 自动驾驶车的环境 194 9.12 将所有代码连起来 197 9.13 训练结果 202 9.14 总结 203 第10章 从深度学习的角度看CAPTCHA 204 10.1 技术要求 205 10.2 通过深度学习破解CAPTCHA 205 10.2.1 生成基本的CAPTCHA 205 10.2.2 生成用于训练CAPTCHA破解器的数据 206 10.2.3 CAPTCHA破解器的CNN架构 208 10.2.4 预处理CAPTCHA图像 208 10.2.5 将CAPTCHA字符转换为类别 209 10.2.6 数据生成器 210 10.2.7 训练CAPTCHA破解器 211 10.2.8 测试数据集的准确性 212 10.3 通过对抗学习生成CAPTCHA 214 10.3.1 优化GAN损失 215 10.3.2 生成器网络 215 10.3.3 判别器网络 216 10.3.4 训练GAN 219 10.3.5 噪声分布 220 10.3.6 数据预处理 220 10.3.7 调用训练 221 10.3.8 训练期间CAPTCHA的质量 222 10.3.9 使用训练后的生成器创建CAPTCHA 224 10.4 总结 225 ---------------------------AI安全之对抗样本入门--------------------------- 对本书的赞誉 序一 序二 自序 前言 第1章 深度学习基础知识 1 1.1 深度学习的基本过程及相关概念 1 1.1.1 数据预处理 1 1.1.2 定义网络结构 2 1.1.3 定义损失函数 6 1.1.4 反向传递与优化器 7 1.1.5 范数 12 1.2 传统的图像分类算法 13 1.3 基于CNN的图像分类 14 1.3.1 局部连接 14 1.3.2 参数共享 15 1.3.3 池化 17 1.3.4 典型的CNN结构 18 1.3.5 AlexNet的结构 19 1.3.6 VGG的结构 19 1.3.7 ResNet50 20 1.3.8 InceptionV3 20 1.3.9 可视化CNN 20 1.4 常见性能衡量指标 30 1.4.1 测试数据 30 1.4.2 混淆矩阵 31 1.4.3 准确率与召回率 31 1.4.4 准确度与F1-Score 32 1.4.5 ROC与AUC 33 1.5 集成学习 34 1.5.1 Boosting算法 35 1.5.2 Bagging算法 37 1.6 本章小结 39 第2章 打造对抗样本工具箱 40 2.1 Anaconda 41 2.2 APT更新源 45 2.3 Python更新源 45 2.4 Jupyter notebook 45 2.5 TensorFlow 49 2.6 Keras 50 2.7 PyTorch 51 2.8 PaddlePaddle 52 2.9 AdvBox 52 2.10 GPU服务器 52 2.11 本章小结 55 第3章 常见深度学习平台简介 56 3.1 张量与计算图 56 3.2 TensorFlow 58 3.3 Keras 62 3.4 PyTorch 64 3.5 MXNet 67 3.6 使用预训练模型 70 3.7 本章小结 76 第4章 图像处理基础知识 77 4.1 图像格式 77 4.1.1 通道数与像素深度 77 4.1.2 BMP格式 80 4.1.3 JPEG格式 81 4.1.4 GIF格式 81 4.1.5 PNG格式 81 4.2 图像转换 81 4.2.1 仿射变换 81 4.2.2 图像缩放 83 4.2.3 图像旋转 85 4.2.4 图像平移 85 4.2.5 图像剪切 86 4.2.6 图像翻转 87 4.2.7 亮度与对比度 88 4.3 图像去噪 89 4.3.1 高斯噪声和椒盐噪声 90 4.3.2 中值滤波 91 4.3.3 均值滤波 93 4.3.4 高斯滤波 93 4.3.5 高斯双边滤波 94 4.4 本章小结 96 第5章 白盒攻击算法 97 5.1 对抗样本的基本原理 97 5.2 基于优化的对抗样本生成算法 100 5.2.1 使用PyTorch生成对抗样本 102 5.2.5 使用TensorFlow生成对抗样本 106 5.3 基于梯度的对抗样本生成算法 109 5.4 FGM/FGSM算法 110 5.4.1 FGM/FGSM基本原理 110 5.4.2 使用PyTorch实现FGM 111 5.4.3 使用TensorFlow实现FGM 112 5.5 DeepFool算法 115 5.5.1 DeepFool基本原理 115 5.5.2 使用PyTorch实现DeepFool 117 5.5.3 使用TensorFlow实现DeepFool 122 5.6 JSMA算法 124 5.6.1 JSMA基本原理 124 5.6.2 使用PyTorch实现JSMA 126 5.6.3 使用TensorFlow实现JSMA 129 5.7 CW算法 132 5.7.1 CW基本原理 132 5.7.2 使用TensorFlow实现CW 135 5.7.3 使用PyTorch实现CW 140 5.8 本章小结 142 第6章 黑盒攻击算法 143 6.1 单像素攻击算法 143 6.2 单像素攻击MNIST识别模型 146 6.3 本地搜索攻击算法 148 6.4 本地搜索攻击ResNet模型 151 6.5 迁移学习攻击算法 153 6.6 通用对抗样本 157 6.7 针对MNIST生成通用对抗样本 160 6.8 本章小结 163 第7章 对抗样本在目标检测领域的应用 164 7.1 目标检测的概念 164 7.2 目标检测在智能驾驶领域的应用 166 7.2.1 车道偏离预警 166 7.2.2 前向防碰撞预警 167 7.2.3 交通标志识别 167 7.2.4 行人防碰撞预警系统 167 7.2.5 驾驶员疲劳监测预警 168 7.2.6 自动泊车 169 7.3 目标检测在智能安防领域的应用 169 7.3.1 人脸检索 169 7.3.2 行为识别 170 7.4 边缘检测算法 171 7.4.1 Soble边缘检测 171 7.4.2 拉普拉斯边缘检测 174 7.4.3 Canny边缘检测 175 7.5 直线检测算法 176 7.6 圆形检测算法 181 7.7 RCNN系列算法 183 7.7.1 RCNN 183 7.7.2 Fast RCNN 185 7.7.3 Faster RCNN 185 7.7.4 TensorFlow目标检测库 187 7.7.5 Faster RCNN使用示例 191 7.8 YOLO算法 196 7.8.1 YOLO概述 196 7.8.2 YOLO使用示例 199 7.9 SSD算法 201 7.9.1 SSD概述 201 7.9.2 SSD使用示例 201 7.10 白盒攻击Faster RCNN 203 7.11 物理攻击YOLO概述 210 7.12 本章小结 213 第8章 对抗样本常见防御算法 214 8.1 对抗样本的鲁棒性 214 8.1.1 图像旋转对鲁棒性的影响 214 8.1.2 滤波器对鲁棒性的影响 220 8.1.3 对比度和亮度对鲁棒性的影响 225 8.1.4 噪声对鲁棒性的影响 230 8.2 抵御对抗样本攻击的常见方法 237 8.2.1 图像预处理 237 8.2.2 对抗训练 238 8.2.3 高斯数据增强 238 8.2.4 自编码器去噪 240 8.2.5 ICLR 2018提出的对抗样本抵御方法 245 8.3 本章小结 247 第9章 常见对抗样本工具箱简介 248 9.1 对抗样本常见衡量指标 248 9.1.1 l0范数 248 9.1.2 l2范数 249 9.1.3 linf范数 250 9.2 AdvBox 250 9.2.1 AdvBox简介 250 9.2.2 在AdvBox中使用FGSM算法 250 9.2.3 在AdvBox中使用DeepFool算法 252 9.2.4 在AdvBox中使用黑盒攻击算法 255 9.3 ART 257 9.3.1 ART简介 257 9.3.2 在ART中使用FGSM算法 258 9.3.3 ART下使用CW算法 260 9.4 FoolBox 262 9.4.1 FoolBox简介 262 9.4.2 在FoolBox中使用JSMA算法 263 9.4.3 在FoolBox中使用CW算法 264 9.5 Cleverhans 266 9.5.1 Cleverhans简介 266 9.5.2 在Cleverhans中使用FGSM算法 267 9.5.3 在Cleverhans中进行对抗训练 269 9.6 NIPS对抗攻击防御环境搭建 270 9.6.1 NIPS对抗攻击防御赛简介 270 9.6.2 环境搭建方法 270 9.6.3 运行测试代码 271 9.7 轻量级攻防对抗环境robust-ml 275 9.7.1 robust-ml简介 275 9.7.2 运行测试代码 276 9.8 本章小结 279 |