新書推薦:
《
甘于平凡的勇气
》
售價:HK$
49.5
《
存在与结构:精神分析的法国转向——以拉康与萨特为中心
》
售價:HK$
52.8
《
生成式人工智能:AIGC与多模态技术应用实践指南
》
售價:HK$
108.9
《
石油帝国的兴衰:英国的工业化与去工业化
》
售價:HK$
97.9
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:HK$
437.8
《
根源、制度和秩序:从老子到黄老学(王中江著作系列)
》
售價:HK$
121.0
《
索恩丛书·北宋政治与保守主义:司马光的从政与思想(1019~1086)
》
售價:HK$
75.9
《
掌故家的心事
》
售價:HK$
85.8
|
編輯推薦: |
我曾经试图找到一本既有理论深度、知识广度,又有技术细节、数学原理的关于深度学习的书籍,供自己学习,也推荐给我的学生学习。虽浏览文献无数,但一直没有心仪的目标。两周前,刘升容女士将她的译作《深度学习计算机视觉》初稿呈现给我,目的是要我从专业的角度对译文的严谨性把关。粗读一遍后,顿觉豁然开朗,油然生出得来全不费功夫之感。这大概就是我心心念念苦寻的那本书:该书对人工智能、机器学习、计算机视觉、机器视觉、神经网络、深度学习等基本概念及其相互关系阐述透彻,解决了初学者对一些相关概念的边界认识不清的问题;从各种神经网络架构到网络的训练、评估和调参,各种技术细节深入浅出,为读者运用深度学习方法解决不同领域的实际问题奠定了基础;对各种网络模型背后的数学原理的介绍直观而细致,使得读者可以不停留在抱着神经网络“黑匣子”调参的阶段,而是深入了解其背后的原理,进而有可能研发自己的架构;书中呈现的若干学习项目更是为读者通过实战提升技能创造了条件。
节选自上海大学通信与信息工程学院信息系刘学锋教授为《深度学习计算机视觉》作的推荐序
|
內容簡介: |
计算机视觉有多先进?开一开特斯拉就知道了。深度学习技术已在人脸识别、交互式仿真和医学成像方面取得令人兴奋的突破,但最让人心潮澎湃的当属自动驾驶技术。如今,自动驾驶的汽车已经能在高速路上畅意驰骋并对各种复杂路况做出灵活反应了。 计算机如何“理解”它所“看到”的东西?本书试图将深度学习应用于计算机视觉以回答该问题。本书仅用高中代数知识阐明视觉直觉背后的概念。你将了解如何使用深度学习架构来构建视觉系统应用程序,以实现图像生成和人脸识别功能。 主要内容 ●图像分类和目标检测 ●先进的深度学习架构 ●迁移学习与生成对抗网络 ●DeepDream和神经风格迁移 ●视觉嵌入和图像搜索
|
關於作者: |
Mohamed Elgendy,现任Rakuten(乐天)公司的工程副总裁,掌管该公司的AI平台和产品的开发。此前,他曾担任Synapse Technology公司的工程主管,负责开发专用于世界范围内安全威胁检测的计算机视觉应用程序;后在亚马逊建立并管理了一支中央AI团队。该团队充当AWS和Amazon Go等亚马逊工程团队的深度学习智囊团。他还在亚马逊机器学习大学(Amazon‘s Machine University)开发了计算机视觉的深度学习课程。时至今日,Mohamed还经常在亚马逊开发者大会、O’Reilly人工智能峰会和谷歌I/O大会上发表演讲。
|
目錄:
|
第Ⅰ部分 深度学习基础
1 章 概述3
1.1 计算机视觉 4
1.1.1 视觉感知的定义 4
1.1.2 视觉系统 4
1.1.3 感知设备 6
1.1.4 解译设备 7
1.2 CV 应用 8
1.2.1 图像分类 9
1.2.2 目标检测与定位10
1.2.3 生成艺术(风格迁移) 11
1.2.4 图像生成11
1.2.5 人脸识别12
1.2.6 图片推荐系统13
1.3 计算机视觉管道概览 14
1.4 图像输入 15
1.4.1 图像的函数表达16
1.4.2 计算机读取图像17
1.4.3 彩色图像17
1.5 图像处理 19
1.6 特征提取 21
1.6.1 计算机视觉中特征的
定义22
1.6.2 有用特征的定义23
1.6.3 手动与自动的特征
提取25
1.7 分类器学习算法 27
1.8 本章小结 28
第2 章 深度学习和神经网络 29
2.1 理解感知机 30
2.1.1 感知机的定义31
2.1.2 感知机的学习机制34
2.1.3 单层感知机的
局限性35
2.2 多层感知机 36
2.2.1 多层感知机架构37
2.2.2 关于隐藏层38
2.2.3 隐藏层的设计38
2.2.4 本节内容拓展40
2.3 激活函数 41
2.3.1 线性转移函数42
2.3.2 Heaviside 阶跃函数
(二元分类器) 43
2.3.3 Sigmoid/logistic
函数43
2.3.4 Softmax 函数46
2.3.5 双_3恄黖衉J曲正切函数
2.5.1 误差函数的定义55
2.5.2 误差函数的意义55
2.5.3 误差为正的必要性55
2.5.4 均方误差损失函数56
2.5.5 交叉熵损失函数57
2.5.6 关于误差和权重的补充
说明58
2.6 优化算法 59
2.6.1 优化的定义59
2.6.2 批梯度下降62
2.6.3 随机梯度下降67
2.6.4 小批梯度下降68
2.6.5 梯度下降总结68
2.7 反向传播 69
2.7.1 反向传播的定义70
2.7.2 反向传播总结72
2.8 本章总结 73
第3 章 卷积神经网络75
3.1 使用MLP 进行图像
分类 76
3.1.1 输入层76
3.1.2 隐藏层78
3.1.3 输出层78
3.1.4 组合78
3.1.5 MLP 处理图像的
缺点80
3.2 CNN 架构 82
3.2.1 概述83
3.2.2 特征提取详解84
3.2.3 分类详解85
3.3 CNN 的基本组件 85
3.3.1 卷积层86
3.3.2 池化层或下采样92
3.3.3 全连接层96
3.4 使用CNN 进行图像
分类 98
3.4.1 构建模型体系架构98
3.4.2 参数(权重)的数量100
3.5 添加dropout 层以避免
过拟合 101
3.5.1 过拟合定义101
3.5.2 dropout 层定义102
3.5.3 dropout 层的重要
意义102
3.5.4 dropout 层在CNN
架构中的位置103
3.6 彩色(3D)图像的卷积 104
3.6.1 彩色图像的卷积105
3.6.2 计算复杂度的变化107
3.7 练习项目:彩色图像
分类 109
3.8 本章总结 118
第4 章 构造DL 项目以及超参数
调优119
4.1 定义性能指标 120
4.1.1 选择评价模型的最佳
指标120
4.1.2 混淆矩阵120
4.1.3 精确度和召回率121
4.1.4 F1 得分122
4.2 设计基准模型 122
4.3 为训练准备数据 124
4.3.1 划分数据集124
4.3.2 数据处理125
4.4 评估模型并解释其
性能 127
4.4.1 诊断过拟合和
欠拟合127
4.4.2 绘制学习曲线129
4.4.3 练习项目:构建、
训练和评估网络129
4.5 网络改进和超参数
调优 132
4.5.1 收集更多数据与超
参数调优132
4.5.2 参数与超参数133
4.5.3 神经网络超参数133
4.5.4 网络架构134
4.6 学习和优化 135
4.6.1 学习率及其衰减
策略135
4.6.2 找到最佳学习率的
系统性方法138
4.6.3 学习率衰减和自适应
学习138
4.6.4 小批大小139
4.7 优化算法 141
4.7.1 动量梯度下降142
4.7.2 Adam 142
4.7.3 训练轮数和早停
标准143
4.7.4 Early stopping144
4.8 正则化技术 144
4.8.1 L2 正则化145
4.8.2 Dropout 层146
4.8.3 数据增强146
4.9 批归一化 147
4.9.1 协变量偏移问题148
4.9.2 神经网络中的协变量
偏移148
4.9.3 批归一化的工作
原理149
4.9.4 批归一化在keras 中的
实现150
4.9.5 批归一化回顾151
4.10 练习项目:实现高准确度
的图像分类 151
4.11 本章小结 157
第Ⅱ部分 图像分类和检测
第5 章 先进的CNN 架构 161
5.1 CNN 设计模式 162
5.2 LeNet-5 164
5.2.1 LeNet 架构164
5.2.2 LeNet-5 在Keras 中的
实现165
5.2.3 设置学习超参数167
5.2.4 LeNet 在MNIST 数据
集上的性能168
5.3 AlexNet 168
5.3.1 AlexNet 网络架构169
5.3.2 AlexNet 的新特性169
5.3.3 Keras 中的AlexNet
实现171
5.3.4 设置学习超参数174
5.3.5 AlexNet 的性能174
5.4 VGGNet 175
5.4.1 VGGNet 新特性175
5.4.2 VGGNet 配置176
5.4.3 学习超参数179
5.4.4 VGGNet 性能179
5.5 Inception 和
GoogLeNet 179
5.5.1 Inception 新特性180
5.5.2 Inception 模块:
Naive 版181
5.5.3 Inception 模块与维数
约减182
5.5.4 Inception 体系架构184
5.5.5 GoogLeNet 的Keras
实现185
5.5.6 学习参数190
5.5.7 Inception 在CIFAR
数据集上的性能190
5.6 ResNet 191
5.6.1 ResNet 新特性191
5.6.2 残差块193
5.6.3 keras 中的ResNet
实现195
5.6.4 学习超参数197
5.6.5 ResNet 在CIFAR
数据集上的性能197
5.7 本章小结 198
第6 章 迁移学习199
6.1 迁移学习的必要性 200
6.2 迁移学习的定义 201
6.3 迁移学习的工作原理 207
6.3.1 神经网络如何学习
特征208
6.3.2 网络后期提取的特征
的可迁移性210
6.4 迁移学习方法 210
6.4.1 使用预训练网络作为
分类器210
6.4.2 使用预训练网络作为
特征提取器212
6.4.3 微调213
6.5 选择合适的迁移学习
方法 215
6.5.1 场景1:目标数据集
较小且与源数据集
相似215
6.5.2 场景2:目标数据集
较大且与源数据集
相似216
6.5.3 场景3:目标数据集
较小且与源数据集
不同216
6.5.4 场景4:目标数据集
较大且与源数据集
不同216
6.5.5 迁移学习场景总结216
6.6 开源数据集 217
6.6.1 MNIST 217
6.6.2 Fashion-MNIST 218
6.6.3 CIFAR 218
6.6.4 ImageNet 219
6.6.5 MS COCO 221
6.6.6 Google Open
Images222
6.6.7 Kaggle222
6.7 项目1:预训练网络作为
特征提取器 222
6.8 项目2:微调 228
6.9 本章小结 235
第7 章 使用R-CNN、SSD 和YOLO
进行目标检测 237
7.1 目标检测的通用框架 238
7.1.1 候选区域239
7.1.2 网络预测240
7.1.3 非极大值抑制
(NMS) 241
7.1.4 目标检测器的评价
指标241
7.2 R-CNN 244
7.2.1 R-CNN 244
7.2.2 Fast R-CNN 248
7.2.3 Faster R-CNN 250
7.2.4 R-CNN 家族总结256
7.3 SSD(Single-shot
detector) 259
7.3.1 SSD 架构总览259
7.3.2 基础网络261
7.3.3 多尺度特征层263
7.3.4 NMS266
7.4 YOLO(you only look
once)(320) 267
7.4.1 YOLO v3 的工作
机制268
7.4.2 YOLOv3 架构270
7.5 项目:在自动驾驶中
应用SSD 网络 272
7.5.1 步骤1:构建模型274
7.5.2 步骤2:模型配置275
7.5.3 步骤3:创建模型276
7.5.4 步骤3:加载数据276
7.5.5 步骤5:训练模型278
7.5.6 步骤6:可视化
损失279
7.5.7 步骤7:预测280
7.6 本章小结 281
第Ⅲ部分 生成模型与视觉嵌入
第8 章 生成对抗网络285
8.1 GAN 架构 286
8.1.1 Deep convolutional
GANs(DCGANs) 288
8.1.2 鉴别器模型288
8.1.3 生成器模型290
8.1.4 训练GAN 293
8.1.5 GAN 极小极大值
函数296
8.2 评估GAN 模型 297
8.2.1 Inception score298
8.2.2 Fréchet inception distance
(FID)298
8.2.3 评估方案选择299
8.3 GAN 的主流应用 299
8.3.1 文本生成图像(Text-tophoto
synthesis)299
8.3.2 图像翻译(Pix2Pix
GAN) 300
8.3.3 图像超分辨率
GAN(SRGAN)301
8.3.4 准备好动手了吗302
8.4 练习项目:构建自己的
GAN 302
8.5 本章小结 311
第9 章 DeepDream 和神经风格
迁移 313
9.1 打开CNN 的黑盒 314
9.1.1 CNN 工作原理
回顾314
9.1.2 CNN 特征可视化315
9.1.3 特征可视化工具的
实现318
9.2 DeepDream 321
9.2.1 DeepDream 算法的工作
原理322
9.2.2 DeepDream 的Keras
实现324
9.3 神经风格迁移 327
9.3.1 内容损失329
9.3.2 风格损失(style
loss) 330
9.3.3 总变分损失(total variance
loss)332
9.3.4 网络训练332
9.4 本章小结 333
第10 章 视觉嵌入335
10.1 视觉嵌入的应用 336
10.1.1 人脸识别337
10.1.2 图片推荐系统337
10.1.3 目标重识别系统339
10.2 学习嵌入 340
10.3 损失函数 341
10.3.1 问题建立和
形式化342
10.3.2 交差熵损失342
10.3.3 对比损失343
10.3.4 三元组损失344
10.3.5 损失的简单实现和
运行分析345
10.4 挖掘信息数据 347
10.4.1 数据加载器347
10.4.2 信息型数据挖掘:寻找
有用的三元组349
10.4.3 Batch All(BA)350
10.4.4 Batch Hard(BH) 351
10.4.5 batch weighted
(BW)353
10.4.6 Batch Sample
(BS)354
10.5 练习项目:训练嵌入
网络 355
10.5.1 时尚圈:查找相似的
衣服356
10.5.2 车辆重识别356
10.5.3 实现357
10.5.4 测试训练的模型358
10.6 突破准确度的限制 362
10.7 本章小结 363
参考文献 365
附录A 369
A.1 下载代码库 369
A.2 安装Anaconda 369
A.3 设置DL 环境 370
A.3.1 手动设置你的开发
环境370
A.3.2 使用本书的repo 中的
conda 环境371
A.3.3 保存和加载环境372
A.4 设置AWS EC2 环境 372
A.4.1 创建AWS 账号372
A.4.2 远程连接到此
实例373
A.4.3 运行Jupyter
Notebook374
|
內容試閱:
|
两年前,我决定写一本书,以一种直观的方式来讲述深度学习与计算机视觉。我的目标是
开发一个全面的资源,让学习者不仅知道机器学习的基础知识,而且能构建先进的深度学习算
法来解决复杂的计算机视觉问题。
简而言之,到目前为止,还没有一本书以我想要的方式讲授计算机视觉。早些时候,作为
一名机器学习初学者,我希望找到一本能带我“从入门到进阶”的书。我打算专攻计算机视觉
应用程序的构建,因此希望有一个一站式的资源,教会我下面两件事:使用神经网络构建一个
端到端的计算机视觉应用程序;轻松阅读并复现论文,以跟上最新行业的进展。
我奔波在各种在线课程、博客、论文和YouTube 视频之间并试图创建一个全面的课程。深
入理解事物背后原理的过程颇具挑战性,我说的深入理解不是了解基本概念,而是掌握概念和
理论背后的数学原理。我找不到这样一个可用而全面的资源:横向上涵盖复杂的计算机视觉应
用所需要学习的所有重要主题,同时纵向上能够讲清楚其中的数学逻辑。
作为一个初学者,我努力寻找但最终一无所获,因此决定亲自执笔。我的目标是写一本综
合、全面的书籍,兼顾横向的内容广度和纵向的内容深度,不仅能授你以“鱼”,更能授你以
“渔”。
横向上,本书解释了一名计算机视觉工程师所需要了解的绝大部分主题:从神经网络的概
念、不同类型的神经网络架构到网络的训练、评估和调参等。
纵向上,本书并没有停留在代码上,而是直观且细致地解释了数学原理,使你可以轻松阅
读和复现论文,甚至发明自己的架构。
截至目前,这是唯——本以这种方式讲授计算机视觉与深度学习的书。无论你是想找一份
计算机视觉工程师的工作,还是想深入理解先进的神经网络算法,抑或打算构建自己的产品或
成立创业公司,你都适合阅读本书。
希望本书能让你乐在其中。
|
|