前言

为什么要写这本书

近10年,以深度学习为代表的机器学习技术在图像处理、语音识别、自然语言处理等领域取得了非常多的突破,这离不开深度学习模型结构设计,尤其是深度卷积神经网络结构的发展。

早期,以AlexNet和VGGNet为代表的模型结构设计往往在提升深度和宽度上做努力,这提升了模型在图像分类等基础任务上的性能,但一味地加深加宽网络并不能持续提高模型的性能,甚至会面临因优化困难而导致模型性能下降的问题。随后,以跳层连接为核心思想的残差网络模型在工业界和学术界取得了成功,成了更好的基础模型,被广泛应用于各类任务。

移动端对于模型的体积和运行速度非常敏感,以MobileNet为代表的分组卷积模型和以1×1卷积为核心的维度变换技术在模型压缩应用中占据了非常重要的位置。为了节约计算,研究者还提出了对不同难度的输入样本动态调整结构的新奇设计思想。

为了提高对不同尺度目标的检测能力,多尺度设计和非正常卷积被广泛研究,每个从事相关研究的技术人员都需要掌握这些知识。

这几年,生成对抗网络从学术界走向了工业界,不仅带来了很多新的研究领域和应用,还被用于许多基础任务辅助提升相关模型的性能。

另外,多输入网络、三维卷积、时序网络等在各自的领域都发挥着重要作用。

如何系统性地了解深度学习模型的发展,同时紧随理论进行全面的实践,这是笔者一直研究的问题,也是本书要解决的问题。

关于本书作者

本书作者龙鹏,笔名言有三,毕业于中国科学院,有超过5年的深度学习领域从业经验,以及超过6年的计算机视觉从业经验,创办了微信公众号“有三AI”和知识星球“有三AI”等知识生态,目前已经全职做内容输出,于2019年花费大半年时间总结多年的知识积累和深度学习项目经验并撰写了这本书。

本书聚焦于深度学习模型设计问题,在本书出版之前,笔者在所维护的微信公众号、知乎、阿里天池、知识星球等平台做出了很多的分享,本书可以作为对这些分享的一个更加系统的总结。读者也可以持续关注笔者的以上平台,获取更新的知识。

因受笔者水平和成书时间所限,本书难免存有疏漏和错误之处,敬请大家关注我们的内容生态,并沟通指正。

本书特色

1.循序渐进,内容系统

本书首先从计算机视觉、图像处理的背景和基础理论开始介绍,然后过渡到深度学习基础。在介绍深度学习模型设计的内容时,笔者首先针对深度学习模型的深度、宽度等基础维度分章节进行了深刻的原理分析和实践。随后对于性能优良的残差网络、移动端高效的分组网络、各类任务中常见的多尺度和非规则卷积技术进行了介绍,并对多输入网络、时序网络、三维卷积、动态变化的网络、生成对抗网络等各类模型进行了原理介绍和实践,覆盖了大量应用场景。本书内容由浅入深,适合系统性进阶学习。

2.内容全面与前沿

本书共14章,其中第4~14章针对深度学习模型中的各类设计思想进行了详细的介绍,时间跨度长达数十年,覆盖了从卷积神经网络的诞生到学术界和工业界的最新发展等内容。当然由于篇幅有限,本书还未包含自动化模型设计及图神经网络等内容,这些将在本书的后续版本及模型优化进阶书籍中进行介绍。

3.理论与实践紧密结合

本书完整剖析了深度学习模型设计技术,对应章节不停留于理论的阐述和简单的结果展示,而是从夯实理论到完成实战一气呵成。相信跟随本书进行学习,通过笔者对深度学习模型的介绍和设计,读者一定会受益匪浅。

本书内容及体系结构

第1章神经网络和计算机视觉基础:对计算机视觉基础、神经网络的核心概念进行了简单介绍,这是全书的基础。

第2章深度学习的基础:简单介绍了全连接神经网络的局限性和深度学习带来的突破,重点介绍了深度学习中的优化方法,包括激活函数、正则化方法、归一化方法、优化方法等,旨在让读者掌握深度卷积神经网络中的优化基础内容。

第3章数据集、评测指标与优化目标:对本书中频繁使用的数据集和评测指标进行了集中介绍,它使本书更加精简、结构清晰。

第4章加深网络,提升模型性能:回顾了经典的浅层卷积神经网络Neocognitron、TDNN及LeNet系列,介绍了AlexNet和以VGGNet为代表的网络在提升模型深度后带来的模型性能提升,探索了需要更深的网络结构的原因,从理论和实践分析了网络的深度对模型性能的影响。

第5章1×1卷积,通道维度升降的利器:讨论了特征通道的信息融合方式,详细介绍了以1×1卷积为核心的维度变换技术在模型压缩中的应用,实践分析了1×1卷积在瓶颈结构设计和提升模型表达能力中的应用。

第6章加宽网络,提升模型性能:介绍了需要更宽的网络结构的原因,总结了经典模型的宽度设计思想,从理论和实践分析了网络宽度对模型性能的影响。

第7章残差连接,深层网络收敛的关键:介绍了残差连接的基本结构和历史由来,探索了残差网络有效性的原理,总结了残差网络的主要结构演变,实践分析了它在图像分割任务中的作用。

第8章分组卷积与卷积拆分,移动端高效率经典模型:介绍了通道分组与卷积拆分的思想,总结了分组网络的各类结构演变,实践了分组卷积在高效模型设计中的应用。

第9章多尺度网络与非正常卷积,更丰富的感受野与不变性:介绍了目标的常见变换及获取不变性的方法,总结了常见的多尺度设计和带孔卷积、可变形卷积等非规则的卷积设计思想,实践分析了空间变换网络对各种变换的学习能力。

第10章多输入网络,图像检索和排序的基准模型:分析了多输入网络的应用场景,介绍了其中常见的多输入结构,实践了多输入模型在目标跟踪中的应用。

第11章时序神经网络,有记忆的网络更聪明:介绍了常见的时序模型,包括单向和双向的RNN模型、LSTM模型,对其在视频分类中的应用进行了实践。

第12章卷积从二维变成三维,实现升维打击:介绍了三维卷积的基本原理及其在视频分类和三维医学图像中的应用,使用三维卷积完成了一个视频分类任务。

第13章动态推理模型与注意力机制,网络因样本而异:介绍了在训练和推理过程中拓扑结构会动态变化的网络结构,介绍了注意力机制网络,实践分析了动态推理网络BranchyNet在节省模型计算量任务中的表现。

第14章生成对抗网络:生成对抗网络是近几年深度学习领域的重要新进展,本章介绍了生成对抗网络的基本原理,阐述了生成对抗网络的优化目标、模型结构发展,并对图像生成任务进行了简单实践。

本书读者对象

本书是一本专门介绍深度学习模型,尤其是深度卷积神经网络在计算机视觉领域应用的书籍,因此对读者的基础有一定的要求。

首先,读者必须要具备基本的数学知识,包括概率论、最优化理论等。

其次,读者需要具备基本的传统数字图像处理知识和计算机视觉理论知识。

最后,读者需要具备Python等编程能力,掌握Caffe、TensorFlow、PyTorch等主流的深度学习框架。

本书适合以下读者:

学习深度学习相关技术的学生;

讲授深度学习理论和实践课程的老师、培训讲师;

从事或即将从事深度学习相关工作的研究人员和工程师;

对深度学习模型的整个发展脉络和核心设计思想感兴趣,想系统性了解和学习的各行业人员。

致谢

虽然笔者独立完成了本书的写作,但在这个过程中也得到了一些帮助。

感谢电子工业出版社的米俊萍编辑的信任,联系我写作本书,并在后续的编辑校稿过程中做了大量工作。

感谢“有三AI”公众号和“有三AI”知识星球的忠实读者,是你们的阅读和付费支持让我有了继续前行的力量。

感谢本书中GitHub开源项目的贡献者,是你们无私的技术分享,让更多人因此受益,这是这个技术时代最伟大的事情。感谢前赴后继提出书中各种方法的研究人员,因为你们的辛苦付出才有了本书的内容。

感谢我的家人的宽容,因为事业,给你们的时间很少,希望以后会做得更好。

于北京

2019年12月31日