猜你喜欢
深度学习与计算机视觉:算法原理、框架应用与代码实现

深度学习与计算机视觉:算法原理、框架应用与代码实现

书籍作者:叶韵 ISBN:9787111573678
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1615
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
全书共13章,分为2篇。第1篇基础知识,介绍了人工智能发展里程、计算机视觉概要、深度学习和计算机视觉中的基础数学知识、神经网络及其相关的机器学习基础、卷积神经网络及其一些常见结构,后对前沿的趋势进行了简单探讨。第2篇实例精讲,介绍了Python基础、OpneCV基础、简单的分类神经网络、图像识别、利用Caffe做回归、迁移学习和模型微调、目标检测、度量学习和图像风格迁移等常见的计算机视觉应用场景。从第5章开始包含了很多有趣和实用的代码示例。从第7章开始的所有实例都基于当前流行的深度学习框架中的Caffe和MXNet。
作者简介
叶韵博士,现在京东从事深度学习和计算机视觉算法研发。加入京东之前,曾在ProPlus Design Solutions硅谷和北京研发中心任职研发经理,负责统计建模算法研发,后加入Siemens Corporate Technology担任Research Scientist,专注计算影像和计算机视觉的研究。叶博士于2007年7月获得北京大学微电子学士学位,2011年4月获得Arizona State University的Electrical Engineering博士学位。
前言
为什么要写这本书当本书编辑找到我时,我才意识到,这两年火爆程度堪比一线城市房价的深度学习,在国内竟没有几本专门的中文书籍。目前市场上为数不多的有关深度学习的中文书,有大而全的名家之作,但其中关于深度学习的内容只有很少的一部分;有针对框架的工具书,但其偏重框架本身,缺少基础知识和理论,就好像介绍了一把剑,却没教剑法;有科普型的书,主要作用是提振读者自信,其实读者并不能从中学到任何动手能力。最重要的是,作为深度学习被应用最多,也是最有趣的领域——计算机视觉,却没有专门的书,这是笔者编写这本书的初衷。
我并非计算机科班出身,在转向深度学习的过程中遇到了很多问题,总结了许多经验。从写书的角度来讲,这没准是个优势。希望我在业界实际项目中的经验,加上自学时总结的教训,可以有效地帮助尚未进入深度学习和计算机视觉领域的读者。
本书面向有志于进入深度学习和计算机视觉领域的学生和技术研发人员,通过介绍深度学习及计算机视觉中最基础的知识,并结合最常见的应用场景和大量实例,带领读者进入丰富多彩的计算机视觉领域。作为一本“原理+实践”教程,本书用最基本的公式推导加上大量的配图和实例代码,给读者生动的内容,而不是枯燥的原理堆砌。
本书特色?注重原理和上手实战。力求读者在阅读本书后,不仅能了解常见算法背后的思想,还能具备独立开发常见的基于深度学习的计算机视觉算法的能力。
?原理讲解通俗易懂。本书能通过文字定性讲解的就不用计算和公式,能用图表述的就不用文字。公式虽然不可避免,但尽量做到公式是讲解和图示的辅助,而不是需要细致理解的部分。
?大量原创代码和图示。本书结合作者在实际工作中的经验,将入门实战的例子和其他示例力求做到实用性和趣味性并存,并将代码分享到本书的github页面上供读者下载。本书的github页面地址为https://frombeijingwithlove.github.io/dlcv_for_beginners/。
本书内容本书共13章,分为2篇。
第1篇 基础知识第1章从历史讲起,介绍了深度学习和计算机视觉的基础概念和常见应用。
第2章介绍了最基础的数学知识,包括线性代数、概率、高维空间、卷积和数学优化。
第3章以神经网络为重点,讲解了机器学习和数据的基础知识。
第4章在第3章的基础上,介绍了卷积神经网络的概念、原理和一些常见结构。
第2篇 实例精讲第5章介绍Python基础,并通过小例子介绍了NumPy和matplotlib的基本使用。
第6章介绍了基于Python的OpenCV使用,并动手实现了数据增加小工具和物体框标注小工具。
第7章分别通过MXNet和Caffe实现了最简单的神经网络,以及结果的可视化。
第8章从头开始一步步基于MNIST数据集,分别实现了基于MXNet和Caffe的卷积神经网络模型用于手写数字识别,并介绍了如何测试和评估模型。
第9章实现了一个基于Caffe的用卷积神经网络做回归的例子,并介绍了如何制作HDF5格式数据,如何用GPU批量对数据进行运算,以及如何实现可视化训练的模型。
第10章首先实现了一个图片爬虫用于搜集图片数据,并以美食图片分类为例子一步步讲解如何基于Caffe实现迁移学习。然后在此基础上进一步讲解了如何对数据进行预处理,如何使用混淆矩阵、P-R和ROC曲线,最后介绍了如何实现可视化卷积神经网络对输入图片的响应。
第11章针对R-CNN系和YOLO/SSD系这两类算法,简要介绍了基于深度学习的目标检测算法的发展史,并给出了基于MXNet的SSD检测算法实例,以及分析了结果的可视化。
第12章介绍了度量学习的基本概念,并从图片开始,一步步实现了基于Caffe的Siamese网络,还实现了基于τ-SNE的结果可视化。
第13章讲解了最基本的图像风格迁移算法,并给出了基于MXNet的图像风格迁移例子,读者可以用自己喜欢的图片做出算法生成的艺术作品。
适合阅读本书的读者本书适合以下读者阅读:
?对人工智能、机器学习感兴趣的读者;?对深度学习和计算机视觉感兴趣的读者;?希望用深度学习完成设计的计算机或电子信息专业的学生;?讲授机器学习和深度学习实践课的老师;?希望进一步提升编程水平的开发者;?机器学习与机器视觉研发人员和算法工程师;?人工智能产品经理。
阅读本书的读者最好具备以下要求:
?至少具备高中以上的数学基础,本科以上最佳;?具备基本的编程能力;?了解Linux的基本使用;?拥有一台NVIDIA显卡的计算机,最好是2GB以上的显存。
本书虽然定位为入门书,但并不能保证21天或者3个月包会。学习是一件没有捷径可走的事情,希望本书能帮助读者少走弯路,也希望每一位读者翻开书前,都是带着好奇和兴趣。
纠错由于是第一次写书,且时间仓促,错误之处估计难以避免,敬请读者朋友们发现错误后到本书的github页面指出,我会尽快更新在勘误表里,不胜感激!
本书作者本书由叶韵主笔编写。其他参与编写的人员有张昆、张友、赵桂芹、晁楠、高彩琴、郭现杰、刘琳、王凯迪、王晓燕、吴金艳、尹继平、张宏霞、张晶晶、陈冠军、魏春、张燕、范陈琼、孟春燕、王晓玲、顼宇峰、肖磊鑫
目录
序言
前言
第1篇 基础知识
第1章 引言2
1.1 人工智能的新焦点——深度学习2
1.1.1 人工智能——神话传说到影视漫画2
1.1.2 人工智能的诞生3
1.1.3 神经科学的研究4
1.1.4 人工神经网络的兴起5
1.1.5 神经网络的第一次寒冬6
1.1.6 神经网络的第一次复兴8
1.1.7 神经网络的第二次寒冬9
1.1.8 2006年——深度学习的起点10
1.1.9 生活中的深度学习11
1.1.10 常见深度学习框架简介12
1.2 给计算机一双眼睛——计算机视觉14
1.2.1 计算机视觉简史14
1.2.2 2012年——计算机视觉的新起点16
1.2.3 计算机视觉的应用17
1.2.4 常见计算机视觉工具包19
1.3 基于深度学习的计算机视觉19
1.3.1 从ImageNet竞赛到AlphaGo战胜李世石——计算机视觉超越人类19
1.3.2 GPU和并行技术——深度学习和计算视觉发展的加速器21
1.3.3 基于卷积神经网络的计算机视觉应用22
第2章 深度学习和计算机视觉中的基础数学知识27
2.1 线性变换和非线性变换27
2.1.1 线性变换的定义27
2.1.2 高中教科书中的小例子28
2.1.3 点积和投影28
2.1.4 矩阵乘法的几何意义(1)30
2.1.5 本征向量和本征值34
2.1.6 矩阵乘法的几何意义(2)37
2.1.7 奇异值分解38
2.1.8 线性可分性和维度39
2.1.9 非线性变换42
2.2 概率论及相关基础知识43
2.2.1 条件概率和独立43
2.2.2 期望值、方差和协方差44
2.2.3 熵45
2.2.4 最大似然估计(Maximum Likelihood Estimation,MLE)47
2.2.5 KL散度(Kullback–Leibler divergence)49
2.2.6 KL散度和MLE的联系49
2.3 维度的诅咒50
2.3.1 采样和维度50
2.3.2 高维空间中的体积51
2.3.3 高维空间中的距离53
2.3.4 中心极限定理和高维样本距离分布的近似54
2.3.5 数据实际的维度56
2.3.6 局部泛化58
2.3.7 函数对实际维度的影响59
2.3.8 PCA——什么是主成分60
2.3.9 PCA——通过本征向量和本征值求主成分60
2.3.10 PCA——通过主成分分析降维61
2.3.11 PCA——归一化和相关性系数63
2.3.12 PCA——什么样的数据适合PCA64
2.3.13 其他降维手段65
2.4 卷积66
2.4.1 点积和卷积66
2.4.2 一维卷积67
2.4.3 卷积和互相关68
2.4.4 二维卷积和图像响应69
2.4.5 卷积的计算70
2.5 数学优化基础71
2.5.1 最小值和梯度下降72
2.5.2 冲量(Momentum)73
2.5.3 牛顿法75
2.5.4 学习率和自适应步长77
2.5.5 学习率衰减(Learning Rate Decay)78
2.5.6 AdaGrad:每个变量有自己的节奏78
2.5.7 AdaDelta的进一步改进79
2.5.8 其他自适应算法80
2.5.9 损失函数81
2.5.10 分类问题和负对数似然82
2.5.11 逻辑回归83
2.5.12 Softmax:将输出转换为概率84
2.5.13 链式求导法则84
第3章 神经网络和机器学习基础87
3.1 感知机87
3.1.1 基本概念87
3.1.2 感知机和线性二分类87
3.1.3 激活函数88
3.2 神经网络基础89
3.2.1 从感知机到神经网络89
3.2.2 最简单的神经网络二分类例子90
3.2.3 隐层神经元数量的作用93
3.2.4 更加复杂的样本和更复杂的神经网络94
3.3 后向传播算法95
3.3.1 求神经网络参数的梯度95
3.3.2 计算图(Computational Graph)95
3.3.3 利用后向传播算法计算一个神经网络参数的梯度97
3.3.4 梯度消失99
3.3.5 修正线性单元(ReLU)100
3.3.6 梯度爆炸101
3.3.7 梯度检查(gradient check)102
3.3.8 从信息传播的角度看后向传播算法103
3.4 随机梯度下降和批量梯度下降104
3.4.1 全量数据(full-batch)梯度下降104
3.4.2 随机梯度下降(SGD)和小批量数据(mini-batch)104
3.4.3 数据均衡和数据增加(data augmentation)106
3.5 数据、训练策略和规范化108
3.5.1 欠拟合和过拟合108
3.5.2 训练误差和测试误差109
3.5.3 奥卡姆剃刀没有免费午餐111
3.5.4 数据集划分和提前停止112
3.5.5 病态问题和约束113
3.5.6 L2规范化(L2 Regularization)113
3.5.7 L1规范化(L1 Regularization)114
3.5.8 集成(Ensemble)和随机失活(Dropout)115
3.6 监督学习、非监督学习、半监督学习和强化学习117
3.6.1 监督学习、非监督学习和半监督学习117
3.6.2 强化学习(reinforcement learning)118
第4章 深度卷积神经网络120
4.1 卷积神经网络120
4.1.1 基本概念120
4.1.2 卷积层和特征响应图121
4.1.3 参数共享123
4.1.4 稀疏连接124
4.1.5 多通道卷积125
4.1.6 激活函数125
4.1.7 池化、不变性和感受野126
4.1.8 分布式表征(Distributed Representation)128
4.1.9 分布式表征和局部泛化130
4.1.10 分层表达131
4.1.11 卷积神经网络结构131
4.2 LeNet——第一个卷积神经网络132
4.3 新起点——AlexNet133
4.3.1 网络结构133
4.3.2 局部响应归一化(Local Response Normalization,LRN)136
4.4 更深的网络——GoogLeNet136
4.4.1 1×1卷积和Network In Network136
4.4.2 Inception结构138
4.4.3 网络结构138
4.4.4 批规一化(Batch No