[套装书]Python深度学习:基于PyTorch+AI安全之对抗样本入门(2册)

作者
吴茂贵 郁明敏 杨本法 李涛 张粤磊兜哥
丛书名
智能系统与技术丛书
出版社
机械工业出版社
ISBN
9781911041724
简要
简介
这是一本基于最新的Python和PyTorch版本的深度学习著作,旨在帮助读者低门槛进入深度学习领域,轻松速掌握深度学习的理论知识和实践方法,快速实现从入门到进阶的转变。 本书是多位人工智能技术专家和大数据技术专家多年工作经验的结晶,从工具使用、技术原理、算法设计、案例实现等多个维度对深度学习进行了系统的讲解。内容选择上,广泛涉猎、重点突出、注重实战;内容安排上,实例切入、由浅入深、循序渐进;表达形式上,深度抽象、化繁为简、用图说话。 本书共16章,分为三部分: 第一部分(第1~4章) PyTorch基础 首先讲解了机器学习和数据科学中必然会用到的工具Numpy的使用,然后从多个角度讲解了Pytorch的必备基础知识,最后详细讲解了Pytorch的神经网络工具箱和数据处理工具箱。 第二部分(第5~8章) 深度学习基础 这部分从技术原理、算法设计、实践技巧等维度讲解了机器学习和深度学习的经典理理论、算法以及提升深度学习模型性能的多种技巧,涵盖视觉处理、NLP和生成式深度学习等主题。 第三部分(第9~16章) 深度学习实践 这部分从工程实践的角度讲解了深度学习的工程方法和在一些热门领域的实践方案,具体包括人脸识别、图像修复、图像增强、风格迁移、中英文互译、生成式对抗网络、对抗攻击、强化学习、深度强化学习等内容。 ---------------------------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深度学习:基于PyTorch---------------------------


前言
第一部分 PyTorch基础
第1章 Numpy基础2
1.1 生成Numpy数组3
1.1.1 从已有数据中创建数组3
1.1.2 利用random模块生成数组4
1.1.3 创建特定形状的多维数组5
1.1.4 利用arange、linspace函数生成数组6
1.2 获取元素7
1.3 Numpy的算术运算9
1.3.1 对应元素相乘9
1.3.2 点积运算10
1.4 数组变形11
1.4.1 更改数组的形状11
1.4.2 合并数组14
1.5 批量处理16
1.6 通用函数17
1.7 广播机制19
1.8 小结20
第2章 PyTorch基础21
2.1 为何选择PyTorch?21
2.2 安装配置22
2.2.1 安装CPU版PyTorch22
2.2.2 安装GPU版PyTorch24
2.3 Jupyter Notebook环境配置26
2.4 Numpy与Tensor28
2.4.1 Tensor概述28
2.4.2 创建Tensor28
2.4.3 修改Tensor形状30
2.4.4 索引操作31
2.4.5 广播机制32
2.4.6 逐元素操作32
2.4.7 归并操作33
2.4.8 比较操作34
2.4.9 矩阵操作35
2.4.10 PyTorch与Numpy比较35
2.5 Tensor与Autograd36
2.5.1 自动求导要点36
2.5.2 计算图37
2.5.3 标量反向传播38
2.5.4 非标量反向传播39
2.6 使用Numpy实现机器学习41
2.7 使用Tensor及Antograd实现机器学习44
2.8 使用TensorFlow架构46
2.9 小结48
第3章 PyTorch神经网络工具箱49
3.1 神经网络核心组件49
3.2 实现神经网络实例50
3.2.1 背景说明51
3.2.2 准备数据52
3.2.3 可视化源数据53
3.2.4 构建模型53
3.2.5 训练模型54
3.3 如何构建神经网络?56
3.3.1 构建网络层56
3.3.2 前向传播57
3.3.3 反向传播57
3.3.4 训练模型58
3.4 神经网络工具箱nn58
3.4.1 nn.Module58
3.4.2 nn.functional58
3.5 优化器59
3.6 动态修改学习率参数60
3.7 优化器比较60
3.8 小结62
第4章 PyTorch数据处理工具箱63
4.1 数据处理工具箱概述63
4.2 utils.data简介64
4.3 torchvision简介66
4.3.1 transforms67
4.3.2 ImageFolder67
4.4 可视化工具69
4.4.1 tensorboardX简介69
4.4.2 用tensorboardX可视化神经网络71
4.4.3 用tensorboardX可视化损失值72
4.4.4 用tensorboardX可视化特征图73
4.5 本章小结74
第二部分 深度学习基础
第5章 机器学习基础76
5.1 机器学习的基本任务76
5.1.1 监督学习77
5.1.2 无监督学习77
5.1.3 半监督学习78
5.1.4 强化学习78
5.2 机器学习一般流程78
5.2.1 明确目标79
5.2.2 收集数据79
5.2.3 数据探索与预处理79
5.2.4 选择模型及损失函数80
5.2.5 评估及优化模型81
5.3 过拟合与欠拟合81
5.3.1 权重正则化82
5.3.2 Dropout正则化83
5.3.3 批量正则化86
5.3.4 权重初始化88
5.4 选择合适激活函数89
5.5 选择合适的损失函数90
5.6 选择合适优化器92
5.6.1 传统梯度优化的不足93
5.6.2 动量算法94
5.6.3 AdaGrad算法96
5.6.4 RMSProp算法97
5.6.5 Adam算法98
5.7 GPU加速99
5.7.1 单GPU加速100
5.7.2 多GPU加速101
5.7.3 使用GPU注意事项104
5.8 本章小结104
第6章 视觉处理基础105
6.1 卷积神经网络简介105
6.2 卷积层107
6.2.1 卷积核108
6.2.2 步幅109
6.2.3 填充111
6.2.4 多通道上的卷积111
6.2.5 激活函数113
6.2.6 卷积函数113
6.2.7 转置卷积114
6.3 池化层115
6.3.1 局部池化116
6.3.2 全局池化117
6.4 现代经典网络119
6.4.1 LeNet-5模型119
6.4.2 AlexNet模型120
6.4.3 VGG模型121
6.4.4 GoogleNet模型122
6.4.5 ResNet模型123
6.4.6 胶囊网络简介124
6.5 PyTorch实现CIFAR-10多分类125
6.5.1 数据集说明125
6.5.2 加载数据125
6.5.3 构建网络127
6.5.4 训练模型128
6.5.5 测试模型129
6.5.6 采用全局平均池化130
6.5.7 像Keras一样显示各层参数131
6.6 模型集成提升性能133
6.6.1 使用模型134
6.6.2 集成方法134
6.6.3 集成效果135
6.7 使用现代经典模型提升性能136
6.8 本章小结137
第7章 自然语言处理基础138
7.1 循环神经网络基本结构138
7.2 前向传播与随时间反向传播140
7.3 循环神经网络变种143
7.3.1 LSTM144
7.3.2 GRU145
7.3.3 Bi-RNN146
7.4 循环神经网络的PyTorch实现146
7.4.1 RNN实现147
7.4.2 LSTM实现149
7.4.3 GRU实现151
7.5 文本数据处理152
7.6 词嵌入153
7.6.1 Word2Vec原理154
7.6.2 CBOW模型155
7.6.3 Skip-Gram模型155
7.7 PyTorch实现词性判别156
7.7.1 词性判别主要步骤156
7.7.2 数据预处理157
7.7.3 构建网络157
7.7.4 训练网络158
7.7.5 测试模型160
7.8 用LSTM预测股票行情160
7.8.1  导入数据160
7.8.2 数据概览161
7.8.3 预处理数据162
7.8.4 定义模型163
7.8.5 训练模型163
7.8.6 测试模型164
7.9 循环神经网络应用场景165
7.10 小结166
第8章 生成式深度学习167
8.1 用变分自编码器生成图像167
8.1.1 自编码器168
8.1.2 变分自编码器168
8.1.3 用变分自编码器生成图像169
8.2 GAN简介173
8.2.1 GAN架构173
8.2.2 GAN的损失函数174
8.3 用GAN生成图像175
8.3.1 判别器175
8.3.2 生成器175
8.3.3 训练模型175
8.3.4 可视化结果177
8.4 VAE与GAN的优缺点178
8.5 ConditionGAN179
8.5.1 CGAN的架构179
8.5.2 CGAN生成器180
8.5.3 CGAN判别器180
8.5.4 CGAN损失函数181
8.5.5 CGAN可视化181
8.5.6 查看指定标签的数据182
8.5.7 可视化损失值182
8.6 DCGAN183
8.7 提升GAN训练效果的一些技巧184
8.8 小结185
第三部分 深度学习实践
第9章 人脸检测与识别188
9.1 人脸识别一般流程188
9.2 人脸检测189
9.2.1 目标检测189
9.2.2 人脸定位191
9.2.3 人脸对齐191
9.2.4 MTCNN算法192
9.3 特征提取193
9.4 人脸识别198
9.4.1 人脸识别主要原理198
9.4.2 人脸识别发展198
9.5 PyTorch实现人脸检测与识别199
9.5.1 验证检测代码199
9.5.2 检测图像200
9.5.3 检测后进行预处理200
9.5.4 查看经检测后的图像201
9.5.5 人脸识别202
9.6 小结202
第10章 迁移学习实例203
10.1 迁移学习简介203
10.2 特征提取204
10.2.1 PyTorch提供的预处理模块205
10.2.2 特征提取实例206
10.3 数据增强209
10.3.1 按比例缩放209
10.3.2 裁剪210
10.3.3 翻转210
10.3.4 改变颜色211
10.3.5 组合多种增强方法211
10.4 微调实例212
10.4.1 数据预处理212
10.4.2 加载预训练模型213
10.4.3 修改分类器213
10.4.4 选择损失函数及优化器213
10.4.5 训练及验证模型214
10.5 清除图像中的雾霾214
10.6 小结217
第11章 神经网络机器翻译实例218
11.1 Encoder-Decoder模型原理218
11.2 注意力框架220
11.3 PyTorch实现注意力Decoder224
11.3.1 构建Encoder224
11.3.2 构建简单Decoder225
11.3.3 构建注意力Decoder226
11.4 用注意力机制实现中英文互译227
11.4.1 导入需要的模块228
11.4.2 数据预处理228
11.4.3 构建模型231
11.4.4 训练模型234
11.4.5 随机采样,对模型进行测试235
11.4.6 可视化注意力236
11.5 小结237
第12章 实战生成式模型238
12.1 DeepDream模型238
12.1.1 Deep Dream原理238
12.1.2 DeepDream算法流程239
12.1.3 用PyTorch实现Deep Dream240
12.2 风格迁移243
12.2.1 内容损失244
12.2.2 风格损失245
12.2.3 用PyTorch实现神经网络风格迁移247
12.3 PyTorch实现图像修复252
12.3.1 网络结构252
12.3.2 损失函数252
12.3.3 图像修复实例253
12.4 PyTorch实现DiscoGAN255
12.4.1 DiscoGAN架构256
12.4.2 损失函数258
12.4.3 DiscoGAN实现258
12.4.4 用PyTorch实现从边框生成鞋子260
12.5 小结262
第13章 Caffe2模型迁移实例263
13.1 Caffe2简介263
13.2 Caffe如何升级到Caffe2264
13.3 PyTorch如何迁移到Caffe2265
13.4 小结268
第14章 AI新方向:对抗攻击269
14.1 对抗攻击简介269
14.1.1 白盒攻击与黑盒攻击270
14.1.2 无目标攻击与有目标攻击270
14.2 常见对抗样本生成方式271
14.2.1 快速梯度符号法271
14.2.2 快速梯度算法271
14.3 PyTorch实现对抗攻击272
14.3.1 实现无目标攻击272
14.3.2 实现有目标攻击274
14.4 对抗攻击和防御措施276
14.4.1 对抗攻击276
14.4.2 常见防御方法分类276
14.5 总结277
第15章 强化学习278
15.1 强化学习简介278
15.2 Q-Learning原理281
15.2.1 Q-Learning主要流程281
15.2.2 Q函数282
15.2.3 贪婪策略283
15.3 用PyTorch实现Q-Learning283
15.3.1 定义Q-Learing主函数283
15.3.2 执行Q-Learing284
15.4 SARSA算法285
15.4.1 SARSA算法主要步骤285
15.4.2 用PyTorch实现SARSA算法286
15.5 小结287
第16章 深度强化学习288
16.1 DQN算法原理288
16.1.1 Q-Learning方法的局限性289
16.1.2 用DL处理RL需要解决的问题289
16.1.3 用DQN解决方法289
16.1.4 定义损失函数290
16.1.5 DQN的经验回放机制290
16.1.6 目标网络290
16.1.7 网络模型291
16.1.8 DQN算法291
16.2 用PyTorch实现DQN算法292
16.3 小结295
附录A PyTorch0.4版本变更296
附录B AI在各行业的最新应用301



---------------------------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




有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4