Skip to content

Latest commit

 

History

History
528 lines (265 loc) · 13.4 KB

README.md

File metadata and controls

528 lines (265 loc) · 13.4 KB

京东商城100多家书店有现货。

深度学习500问——AI工程师面试宝典(博文视点出品),谈继勇 主编,郭子钊,李剑,佃松宜 副主编 著

内容简介

本书系统地描述了深度学习的基本理论算法及应用。全书共14章,第1-3章论述了数学基础、机器学习基础和深度学习基础;第4-7章介绍了一些经典网络及计算机视觉领域中常用的CNN、RNN、GAN等网络结构技术;第8-9章介绍了深度学习在计算机视觉领域的目标检测及图像分割两大应用;第10-14章介绍了计算机视觉领域主要的优化方法及思路等,包括迁移学习、网络架构及训练、网络优化技巧、超参数调整及模型的压缩和加速等。本书凝聚了众多一线科研人员及工程师的经验,旨在培养读者发现问题、解决问题、扩展问题的能力。

本书内容取材于编者在日常学习过程中总结的知识点及各大公司常见的笔试、面试题。本书可为高等院校计算机科学、信息科学、人工智能、控制科学与工程、电子科学与技术等领域的研究及教学人员提供参考,也可为相关专业本科生及研究生提供思考方向,还可为深度学习及计算机视觉领域的初、中级研究人员和工程技术人员提供参考,尤其适合需要查漏补缺的应聘者及提供相关岗位的面试官阅读。

作者简介

谈继勇 主编

南方科技大学和哈尔滨工业大学联合培养博士(在读),现任瀚维智能医疗技术总监,深圳工信局专家库专家,兼任南方科技大学、四川大学研究生企业导师,南方科技大学和瀚维智能医疗联合实验室副主任,北京探工所特聘技术专家,曾先后在中科院信工所、香港中文大学(深圳)、FOXCONN机器人与人工智能实验室、顺丰科技等单位任职。主要专注于智能感知与控制、实时智能与计算机视觉方向的研究,主持/主研国家自然科学基金、省重点研发计划、深圳战略性新兴产业计划等项目20余项,发表SCI/EI论文20余篇,申请发明专利40余项,获全国发明金奖。

郭子钊 副主编

四川大学计算机科学专业博士,硕士毕业于四川大学自动化系,主要从事AI芯片、深度学习、行为检测识别、人脸检测识别等相关研究工作。

李剑 副主编

同济大学计算机科学专业博士,浙江农林大学副教授、硕士生导师,主要从事推荐系统、排序学习、凸优化等机器学习领域的科研和教学工作,发表SCI论文10余篇,曾获浙江省科技进步二等奖等多项省部级奖项。

佃松宜 副主编

日本东北大学博士,四川大学电气工程学院教授、自动化系系主任,四川省信息与自动化技术重点实验室主任。主要专注于先进控制理论与人工智能算法研究、嵌入式计算与实时智能系统的研究与开发、机器人与智能装备的智能感知与控制技术的研究、工业测控与智能物联的研究。近5年来主持包括国家重点研发计划、基金、国网总部项目等各类科研项目近30项,累计总经费近2200万元;发表论文100多篇,其中SCI/EI检索近40篇,ESI高引论文1篇。参与编撰专著3部(其中英文专著1部),参编国家九五规划教材1部。

王晋东 特邀编委

中科院计算所博士,微软亚洲研究院机器学习研究员,主要从事迁移学习和机器学习方向的研究工作,在IJCAI、CVPR、ICDM、UbiComp、ACMMM、PERCOM、IJCNN、PRICAI、IEEE TNNLS、NEUNET、PRL、PMCJ、IMWUT、IJMLC、ICME、ACM TIST等国际权威期刊和会议上发表论文20余篇,多次获得“最佳论文”奖。作品有《迁移学习简明手册》等。

王超锋

上海大学硕士,百度计算机视觉算法工程师,主研图像处理,深度学习等方向。曾多次在国内外各类知名计算机视觉挑战赛中获得优异成绩。

郭晓锋

中国科学院硕士,爱奇艺算法工程师,主要从事图像处理、深度学习等方向的研究,曾获“2017华为软件精英挑战赛”复赛第6名。

黄伟

华南理工大学硕士,顺丰科技机器人算法工程师,主要从事计算机视觉和自然语言处理方向的研究。曾在相关领域国际期刊、会议上发表论文,并在相关竞赛中获得优异成绩。

陈方杰(Amusi)

上海大学硕士,CVer(计算机视觉知识分享和学习交流平台)创始人。

李元伟

国防科技大学硕士,深圳瀚维智能医疗科技公司高级算法工程师,南方科技大学和瀚维智能医疗联合实验室委员,主要从事机器视觉、图像处理及深度学习方向的研究工作,参编普通高等教育十三五规划教材《图像通信基础》,在IEEE TCSVT、COGN COMPUT等发表学术论文多篇,曾获湖南省/全军优秀硕士论文。

陈琳

北京航空航天大学博士(在读),研究方向为无人机智能控制与决策、仿生智能计算。

目录

第1章 数学基础 1

1.1 向量和矩阵 1

1.1.1 标量、向量、矩阵和张量 1

1.1.2 张量与矩阵的区别 2

1.1.3 矩阵和向量相乘的结果 2

1.1.4 向量和矩阵的范数归纳 2

1.1.5 判断一个矩阵是否为正定矩阵 4

1.2 导数和偏导数 5

1.2.1 导数偏导计算 5

1.2.2 导数和偏导数的区别 6

1.3 特征值和特征向量 6

1.3.1 特征值分解 6

1.3.2 奇异值和特征值的关系 6

1.4 概率分布与随机变量 7

1.4.1 机器学习为什么要使用概率 7

1.4.2 变量与随机变量的区别 7

1.4.3 随机变量与概率分布的联系 8

1.4.4 离散型随机变量和概率质量函数 8

1.4.5 连续型随机变量和概率密度函数 8

1.4.6 举例理解条件概率 9

1.4.7 联合概率与边缘概率的区别和联系 9

1.4.8 条件概率的链式法则 10

1.4.9 独立性和条件独立性 10

1.5 常见概率分布 11

1.5.1 伯努利分布 11

1.5.2 高斯分布 11

1.5.3 何时采用正态分布 12

1.5.4 指数分布 12

1.5.5 Laplace分布 13

1.5.6 Dirac分布和经验分布 13

1.6 期望、方差、协方差、相关系数 13

1.6.1 期望 13

1.6.2 方差 14

1.6.3 协方差 14

1.6.4 相关系数 15

第2章 机器学习基础 16

2.1 基本概念 16

2.1.1 大话机器学习本质 16

2.1.2 什么是神经网络 16

2.1.3 各种常见算法图示 17

2.1.4 计算图的导数计算 17

2.1.5 理解局部最优与全局最优 18

2.1.6 大数据与深度学习之间的关系 19

2.2 机器学习的学习方式 20

2.2.1 监督学习 20

2.2.2 非监督学习 20

2.2.3 半监督学习 20

2.2.4 弱监督学习 20

2.2.5 监督学习模型的搭建步骤 21

2.3 分类算法 22

2.3.1 常用分类算法的优缺点 22

2.3.2 分类算法的评估方法 23

2.3.3 正确率能否很好地评估分类算法 25

2.3.4 什么样的分类器是最好的 26

2.4 逻辑回归 26

2.4.1 回归的种类 26

2.4.2 逻辑回归适用性 27

2.4.3 逻辑回归与朴素贝叶斯的区别 27

2.4.4 线性回归与逻辑回归的区别 27

2.5 代价函数 28

2.5.1 为什么需要代价函数 28

2.5.2 代价函数作用原理 28

2.5.3 常见代价函数 30

2.5.4 为什么代价函数要非负 31

2.5.5 为什么用交叉熵代替二次代价函数 31

2.6 损失函数 32

2.6.1 什么是损失函数 32

2.6.2 常见的损失函数 32

2.6.3 逻辑回归为什么使用对数损失函数 34

2.6.4 对数损失函数如何度量损失 34

2.7 梯度下降法 35

2.7.1 梯度下降法的作用 36

2.7.2 梯度下降法的直观理解 36

2.7.3 梯度下降法算法描述 37

2.7.4 梯度下降法的缺点 38

2.7.5 如何对梯度下降法进行调优 38

2.7.6 随机梯度下降和批量梯度下降的区别 38

2.7.7 各种梯度下降法性能比较 40

2.8 线性判别分析 40

2.8.1 LDA思想总结 40

2.8.2 图解LDA核心思想 41

2.8.3 二类LDA算法原理 41

2.8.4 LDA算法流程总结 42

2.8.5 LDA和PCA的异同 43

2.8.6 LDA的优缺点 43

2.9 主成分分析 43

2.9.1 图解PCA核心思想 43

2.9.2 PCA算法推理 44

2.9.3 PCA算法流程总结 45

2.9.4 PCA思想总结 46

2.9.5 PCA算法的优缺点 46

2.9.6 降维的必要性及目的 46

2.9.7 KPCA与PCA的区别 47

2.10 模型评估 47

2.10.1 模型评估常用方法 48

2.10.2 误差、偏差和方差的区别和联系 48

2.10.3 为什么使用标准差 49

2.10.4 经验误差与泛化误差 50

2.10.5 图解欠拟合与过拟合 50

2.10.6 如何解决欠拟合与过拟合 52

2.10.7 交叉验证的主要作用 52

2.10.8 理解K折交叉验证 53

2.10.9 理解混淆矩阵 53

2.10.10 理解查准率与查全率 53

2.10.11 理解ROC与AUC 54

2.10.12 如何绘制ROC曲线 55

2.10.13 如何计算TPR和FPR 56

2.10.14 如何计算AUC 58

2.10.15 直观理解AUC 58

2.10.16 ROC评估分类器 60

2.10.17 代价敏感错误率与代价曲线 60

2.10.18 比较检验方法 61

2.11 决策树 61

2.11.1 决策树的基本原理 62

2.11.2 决策树的生成过程 62

2.11.3 决策树学习基本算法步骤 62

2.11.4 决策树算法的优缺点 63

2.11.5 决策树和熵的联系 63

2.11.6 熵的概念及定义 63

2.11.7 理解信息增益 64

2.11.8 决策树中熵、条件熵和信息增益的联系 64

2.11.9 决策树算法中剪枝的作用及策略 65

2.12 支持向量机(SVM) 65

2.12.1 什么是SVM 65

2.12.2 SVM能解决的问题 66

2.12.3 核函数特点及其作用 67

2.12.4 SVM为什么引入对偶问题 67

2.12.5 如何理解SVM中的对偶问题 67

2.12.6 常见的核函数 69

2.12.7 SVM的主要特点 69

2.12.8 SVM的主要缺点 70

2.12.9 逻辑回归与SVM的异同 70

2.13 贝叶斯分类器 72

2.13.1 贝叶斯分类器的基本原理 72

2.13.2 朴素贝叶斯分类器 72

2.13.3 举例理解朴素贝叶斯分类器 73

2.13.4 半朴素贝叶斯分类器 75

2.13.5 极大似然估计和贝叶斯估计的联系与区别 75

2.13.6 极大似然估计原理 76

2.13.7 图解极大似然估计 76

2.14 EM算法 77

2.14.1 EM算法的基本思想 77

2.14.2 EM算法推导 77

2.14.3 图解EM算法 78

2.14.4 EM算法流程 79

2.15 降维和聚类 79

2.15.1 图解为什么会产生维数灾难 79

2.15.2 怎样避免维数灾难 83

2.15.3 聚类和降维 83

2.15.4 聚类算法优劣的衡量标准 84

2.15.5 聚类和分类 85

2.15.6 聚类算法的性能比较 85

2.15.7 4种常用聚类方法比较 85

第3章 深度学习基础 89

3.1 基本概念 89

3.1.1 神经网络的类型 89

3.1.2 神经网络的常用模型结构 92

3.1.3 深度学习和机器学习的区别与联系 93

3.1.4 为什么使用深层表示 93

3.1.5 深度学习架构分类 94

3.1.6 如何选择深度学习开发平台 94

3.2 神经网络计算 95

3.2.1 前向传播和反向传播 95

3.2.2 如何计算神经网络的输出 96

3.2.3 如何计算卷积神经网络输出值 97

3.2.4 如何计算池化层输出值 100

3.2.5 反向传播实例 101

3.2.6 神经网络更“深”的意义 104

3.3 激活函数 104

3.3.1 为什么需要激活函数 104

3.3.2 为什么激活函数需要非线性函数 105

3.3.3 常见的激活函数及其图像 105

3.3.4 常见激活函数的导数计算 107

3.3.5 激活函数有哪些性质 108

3.3.6 如何选择激活函数 108

3.3.7 为什么tanh收敛速度比sigmoid快 109

3.3.8 Relu激活函数的优点 109

3.3.9 理解Relu激活函数的稀疏激活性 109

3.3.10 什么时候可以用线性激活函数 109

3.3.11 softmax函数的定义及作用 110

3.3.12 softmax函数如何应用于多分类 110

3.4 BATCH SIZE 112

3.4.1 为什么需要Batch Size 112

3.4.2 如何选择Batch Size值 112

3.4.3 调节Batch Size对训练效果的影响 113

3.4.4 在合理范围内增大Batch Size的好处 113

3.4.5 盲目增大Batch Size的坏处 114

3.5 归一化 114

3.5.1 理解归一化含义 114

3.5.2 归一化和标准化的联系与区别 114

3.5.3 为什么要归一化或标准化 115

3.5.4 图解为什么要归一化 115

3.5.5 为什么归一化能提高求最优解速度 115

3.5.6 归一化有哪些类型 116

3.5.7 局部响应归一化作用 116

3.5.8 局部响应归一化原理 117

3.5.9 什么是批归一化 118

3.5.10 批归一化的优点 118

3.5.11 批归一化算法流程 118

3.5.12 批归一化和组归一化比较 119

3.5.13 权重归一化和批归一化比较 119

3.5.14 批归一化适用范围 120

3.5.15 BN、LN、IN和GN的对比 120

3.6 参数初始化 121

3.6.1 参数初始化应满足的条件 121

3.6.2 常用的几种初始化方式 121

3.6.3 全0初始化带来的问题 121

3.6.4 全都初始化为同样的值 122

3.6.5 初始化为小的随机数 123

3.6.6 用 校准方差 123

3.7 预训练与微调 123

3.7.1 什么是预训练和微调 123

3.7.2 预训练和微调的作用 124

3.7.3 预训练模型的复用 124

3.7.4 预训练和迁移学习 125

3.7.5 微调时网络参数是否更新 125

3.7.6 微调模型的三种状态 125

3.7.7 为什么深层神经网络难以训练 125

3.8 超参数 127

3.8.1 超参数有哪些 127

3.8.2 参数和模型的关系 127

3.8.3 参数和超参数的区别 127

3.8.4 如何寻找超参数的最优值 128

3.8.5 超参数搜索的一般过程 128

3.9 学习率 129

3.9.1 学习率的作用 129

3.9.2 学习率衰减的常用参数 129

3.9.3 常用的学习率衰减方法 129

3.10 正则化 133

3.10.1 为什么要正则化 133

3.10.2 常见正则化方法 133

3.10.3 图解L1和L2正则化 134

3.10.4 Dropout具体工作流程 135

3.10.5 为什么Dropout可以解决过拟合问题 137

3.10.6 Dropout的缺点