华信教育资源网
深度学习之模型优化:核心算法与案例实践
丛   书   名: 循序渐进学AI系列丛书
作   译   者:言有三 出 版 日 期:2024-07-01
出   版   社:电子工业出版社 维   护   人:何润熙 
书   代   号:TP481520 I S B N:9787121481529

图书简介:

本书由浅入深、系统性地介绍了深度学习模型压缩与优化的核心技术。本书共9 章,主要内容有:深度学习模型性能评估、模型可视化、轻量级模型设计、模型剪枝、模型量化、迁移学习与知识蒸馏、自动化模型设计、模型优化与部署工具。本书理论知识体系完备,同时提供了大量实例,供读者实战演练。
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书由浅入深、系统性地介绍了深度学习模型压缩与优化的核心技术。本书共9 章,主要内容有:深度学习模型性能评估、模型可视化、轻量级模型设计、模型剪枝、模型量化、迁移学习与知识蒸馏、自动化模型设计、模型优化与部署工具。本书理论知识体系完备,同时提供了大量实例,供读者实战演练。

    图书详情

    ISBN:9787121481529
    开 本:16(185*260)
    页 数:244
    字 数:351

    本书目录

    第1章  引言	1
    1.1  人工智能时代背景	1
    1.2  数据处理	2
    1.2.1  大数据时代背景	2
    1.2.2  数据获取	3
    1.2.3  数据清洗与整理	5
    1.3  算法基础	7
    1.3.1  卷积的概念	7
    1.3.2  CNN基本概念	8
    1.4  计算芯片	12
    1.4.1  GPU	12
    1.4.2  ARM	15
    1.5  深度学习框架	16
    1.5.1  Caffe	16
    1.5.2  TensorFlow	17
    1.5.3  PyTorch	17
    第2章  模型性能评估	19
    2.1  性能指标	19
    2.1.1  基准模型	19
    2.1.2  参数量	20
    2.1.3  计算量与内存访问代价	21
    2.1.4  计算速度	22
    2.1.5  并行化程度	23
    2.1.6  能耗	24
    2.2  学术与产业竞赛	24
    第3章  模型可视化	26
    3.1  模型可视化基础	26
    3.1.1  为什么要研究模型可视化	26
    3.1.2  模型可视化的研究方向	27
    3.2  模型结构可视化	27
    3.2.1  Netscope可视化方法	27
    3.2.2  TensorBoard模型结构可视化	33
    3.2.3  Graphiz可视化工具	35
    3.2.4  Netron可视化工具	38
    3.3  模型参数与特征可视化	44
    3.3.1  参数可视化	44
    3.3.2  激活值可视化	46
    3.3.3  工具	46
    3.4  输入区域重要性可视化	48
    3.4.1  基本原理	48
    3.4.2  基于反向传播的输入可视化	49
    3.4.3  类激活映射可视化	50
    3.5  输入激活模式可视化	52
    3.5.1  概述	53
    3.5.2  梯度计算法	53
    3.5.3  反卷积法	56
    3.5.4  网络反转法	58
    3.5.5  小结	58
    3.6  模型可视化分析实践	59
    3.6.1  基于梯度计算法的可视化	59
    3.6.2  反卷积可视化	62
    3.6.3  CAM可视化	68
    3.6.4  小结	71
    第4章  轻量级模型设计	72
    4.1  卷积核的使用和设计	72
    4.1.1  全连接层的压缩	72
    4.1.2  小卷积核的应用	73
    4.2  卷积拆分与分组	77
    4.2.1  卷积拆分操作	78
    4.2.2  分组卷积Xception与MobileNet	79
    4.2.3  ShuffleNet	80
    4.2.4  级连通道分组网络	81
    4.2.5  多分辨率卷积核通道分组网络	82
    4.2.6  多尺度通道分组网络	83
    4.2.7  多精度分组网络	84
    4.3  特征与参数重用设计	85
    4.3.1  特征重用	85
    4.3.2  参数重用	86
    4.4  动态自适应模型设计	87
    4.4.1  什么是动态模型	87
    4.4.2  基于提前终止与模块丢弃原理的动态模型	89
    4.4.3  基于注意力感知的动态模型	93
    4.5  卷积乘法操作优化和设计	94
    4.5.1  移位网络	94
    4.5.2  加法网络	98
    4.5.3  移位网络与加法网络结合	99
    4.6  重参数化技巧	99
    4.6.1  网络层合并	100
    4.6.2  分支合并	101
    4.7  新颖算子设计	102
    4.8  低秩稀疏化设计	104
    第5章  模型剪枝	105
    5.1  模型剪枝基础	105
    5.1.1  什么是模型剪枝	105
    5.1.2  模型剪枝的粒度	106
    5.2  模型稀疏学习	107
    5.2.1  权重正则化约束	107
    5.2.2  基于网络结构的设计	109
    5.3  非结构化剪枝技术	110
    5.3.1  基于优化目标的方法	110
    5.3.2  基于权重幅度的方法	112
    5.3.3  向量剪枝技术	113
    5.4  结构化剪枝技术	114
    5.4.1  基于重要性因子的剪枝算法	114
    5.4.2  基于输出重建误差的通道剪枝算法	116
    5.4.3  基于优化目标敏感性的剪枝算法	117
    5.4.4  卷积核剪枝和通道剪枝的差异	119
    5.5  模型剪枝的一些问题	119
    5.5.1  剪枝的必要性	119
    5.5.2  训练策略	119
    5.5.3  整个网络同时剪枝	120
    5.5.4  运行时剪枝	121
    5.6  图像分类模型结构化剪枝实战	122
    5.6.1  模型定义与数据集	122
    5.6.2  模型训练	124
    5.6.3  模型剪枝	127
    5.6.4  残差网络	130
    5.6.5  小结	134
    第6章  模型量化	135
    6.1  模型量化基础	135
    6.1.1  什么是模型量化	135
    6.1.2  量化的优势	135
    6.2  二值量化算法	137
    6.2.1  基于阈值映射函数的方法	137
    6.2.2  基于重建误差的方法	138
    6.2.3  从二值量化模型到三值量化模型	140
    6.2.4  二值量化的主要问题	140
    6.3  8bit量化	141
    6.3.1  基于变换函数的非对称量化	142
    6.3.2  基于信息损失的对称量化	143
    6.4  混合精度量化算法	145
    6.4.1  一般混合精度量化算法	145
    6.4.2  自动位宽学习	146
    6.5  半精度浮点数训练算法	147
    6.6  模型量化的一些其他问题	148
    6.6.1  非均匀量化	148
    6.6.2  更稳定地训练量化模型	149
    6.6.3  量化训练与离线量化的比较	151
    6.7  基于TensorRT框架的模型量化推理实践	152
    6.7.1  项目简介	152
    6.7.2  量化算法实现	153
    6.7.3  TensorRT模型量化与推理	158
    第7章  迁移学习与知识蒸馏	167
    7.1  迁移学习与知识蒸馏基础	167
    7.1.1  迁移学习的基本概念	167
    7.1.2  知识蒸馏的基本概念	168
    7.2  基于优化目标驱动的知识蒸馏	168
    7.2.1  预训练大模型框架	169
    7.2.2  大模型与小模型共同学习框架	171
    7.2.3  小结	172
    7.3  基于特征匹配的知识蒸馏	172
    7.3.1  基本框架	172
    7.3.2  注意力机制的使用	173
    7.4  自蒸馏框架	174
    7.4.1  深度协同学习	174
    7.4.2  自监督学习	174
    7.4.3  自进化学习	175
    7.5  知识蒸馏的一些问题	176
    7.5.1  教师模型是否越强越好	176
    7.5.2  学生模型与教师模型的相互学习	176
    7.6  基于经典知识蒸馏的图像分类实战	177
    7.6.1  基准模型定义	177
    7.6.2  基准模型训练	179
    7.6.3  知识蒸馏学习	180
    7.6.4  小结	183
    第8章  自动化模型设计	184
    8.1  自动化机器学习基础	184
    8.1.1  什么是AutoML	184
    8.1.2  AutoML在数据工程中的应用	185
    8.1.3  AutoML在超参数优化中的典型应用	186
    8.1.4  现有的AutoML系统	187
    8.2  神经网络结构搜索基础	188
    8.2.1  什么是NAS	189
    8.2.2  NAS的搜索空间	190
    8.2.3  NAS的搜索策略	192
    8.2.4  NAS的评估	192
    8.3  基于栅格搜索的NAS	193
    8.3.1  网络基础参数搜索	193
    8.3.2  网络拓扑结构搜索	194
    8.4  基于强化学习的NAS	194
    8.4.1  强化学习基础	195
    8.4.2  基本方法	197
    8.4.3  NASNet	199
    8.4.4  MNASNet	201
    8.5  基于进化算法的NAS	203
    8.5.1  进化算法简介	203
    8.5.2  Genetic CNN算法	204
    8.5.3  与NASNet的结合	206
    8.6  可微分NAS	207
    8.7  NAS与其他模型压缩方法结合	209
    8.7.1  自动化模型剪枝	209
    8.7.2  自动化模型量化	210
    8.7.3  自动化模型蒸馏	211
    8.8  当前NAS的一些问题	212
    第9章  模型优化与部署工具	213
    9.1  模型优化工具	213
    9.1.1  TensorFlow和PocketFlow框架	213
    9.1.2  PaddlePaddle框架	214
    9.1.3  PyTorch和Distiller框架	215
    9.1.4  NNI框架	216
    9.1.5  小结	216
    9.2  模型部署工具	216
    9.2.1  模型部署基础	217
    9.2.2  ONNX标准	217
    9.2.3  NVIDIA GPU推理框架TensorRT	218
    9.2.4  特定框架专用模型推理框架	220
    9.2.5  通用移动端模型推理框架	221
    9.2.6  小结	221
    9.3  基于NCNN的模型优化部署实战	222
    9.3.1  软硬件平台介绍	222
    9.3.2  模型格式转换	223
    9.3.3  模型部署测试	224
    9.3.4  小结	230
    
    展开

    前     言

    为什么要写这本书
    近十年来,以深度学习为代表的机器学习技术在图像处理、语音识别、自然语言处理等领域取得了非常多的突破,其背后的核心技术离不开模型的结构设计,尤其是深度卷积神经网络与Transformer等模型的发展。
    一般来说,随着模型参数量的增加,其表达能力也会增强,经典的CNN模型VGGNet有 130MB以上的参数量,而大语言模型如GPT3更是有1750亿个的参数。尽管我们需要大型模型去完成复杂的任务,但也需要更小的模型去完成计算资源、存储资源非常有限,但对时效性要求非常高的任务,比如在各类嵌入式设备上进行实时视频目标检测与抠图,就需要模型能在手机GPU甚至CPU上以超过30fps的速度来运行,并且要满足场景的精度要求。因此,我们需要对模型进行压缩和优化,使其拥有更小的参数量和更快的运行速度。
    笔者在2020年出版了《深度学习之模型设计:核心算法与案例实践》一书,通过理论与实践结合,首次介绍了数十年来主流卷积神经网络模型的设计思想,得到了业界的广泛关注。在当时,笔者其实已经规划好了深度学习模型使用方向的系列图书,包含三本循序渐进的图书,它们对应在深度学习项目中使用模型的基本流程,具体如下。
    第一步,我们需要针对目标任务选定一个合适的模型架构,然后训练出满足精度的模型,这就是模型设计;第二步,我们需要基于第一步训练好的模型,在不显著降低其精度的前提下,对模型的冗余参数进行精简,对高精度计算进行低精度近似,这就是模型压缩;第三步,将模型运用于实际的生产环境,即实现面向用户的产品,这就是模型部署。
    本书是该系列图书的第二本,专门介绍针对模型进行精简的技术,包括紧凑模型设计、模型剪枝、模型量化、模型蒸馏、自动化模型设计等内容,这是模型能够在各类嵌入式平台使用的关键技术。
    本书作者
    本书的作者龙鹏,笔名言有三,毕业于中国科学院大学,先后就职于奇虎360人工智能研究院与陌陌科技深度学习实验室,拥有超过八年的深度学习领域从业经验、超过五年的一线企业与高校培训经验,创办了微信公众号“有三AI”和知识星球“有三AI”等知识生态,著有六本人工智能与深度学习领域的书籍。
    本书聚焦于深度学习模型压缩与优化问题,在本书出版之前,笔者在所维护的微信公众号、知乎、知识星球账号,以及有三AI课程平台做了很多分享,本书可以作为这些分享的一个更加系统的总结。读者也可以持续关注笔者以上平台,获取更新的知识。
    因受笔者水平和成书时间所限,本书难免存有疏漏和错误之处,敬请大家关注我的内容生态,欢迎沟通并指正。
    本书特色
    1.循序渐进
    本书是深度学习模型使用方向系列图书中的第二本,内容承前启后。本书在该系列图书第一本书《深度学习之模型设计:核心算法与案例实践》的基础上介绍更深入的模型设计与压缩方法。本书的第4章介绍了轻量级模型设计方法,第8章介绍了自动化模型设计方法,它们都可以看作对《深度学习之模型设计:核心算法与案例实践》内容的补充。而模型剪枝、模型量化、模型蒸馏,则是模型压缩与优化最核心的技术。除此之外,本书还补充了模型可视化的内容,以便读者增加对模型的理解。本书第9章简单介绍了一些常用的开源模型优化和部署工具,这也是为下一本书,即模型部署相关的书籍提前做铺垫。
    2.理论与实践紧密结合
    本书完整剖析了深度学习模型压缩与优化的核心技术,对应章节不停留于理论的阐述,而是增加了经典的实战案例,让读者从夯实理论到完成实战一气呵成。跟随本书进行学习,读者可以快速掌握卷积神经网络的模型压缩与优化技术,并进一步推广到其他模型。
    3.内容全面
    本书共9章,其中,第2章和第3章介绍了模型性能评估和理解相关的内容,是本书的前置基础知识;第4~8章,分主题介绍了当前工业界在实际项目落地中使用的模型压缩与优化技术,本书已经囊括了该技术相关的大部分知识;第9章介绍了一些常用的开源模型优化和部署工具,使读者可以快速掌握模型部署的流程。虽然本书的主题是深度学习模型压缩与优化,但实际上囊括了从设计到优化,再到部署的内容,这也使本书内容更加系统与全面。
    本书内容及体系结构
    第1章  引言
    本章对人工智能技术发展的要素,即数据、模型、框架、硬件进行了介绍。充足的数据配合优秀的模型才能学习到复杂的知识,框架和硬件则是完成模型学习不可或缺的软硬件设施。希望读者能够在阅读本章内容后,充分认识到人工智能本质上是一门综合性的工程技术。
    第2章  模型性能评估
    本章介绍了常用的模型性能评估指标,包括参数量、计算量、内存访问代价、计算速度等,最后介绍了工业界的一个与模型压缩相关的竞赛。
    第3章  模型可视化
    本章系统性地介绍了模型可视化的内容,包括模型结构可视化、模型参数与特征可视化、输入区域重要性可视化及输入激活模式可视化,通过掌握相关原理和三个典型的实践案例,我们可以更深入地理解模型的性能表现及参数细节,从而为设计和改进模型结构提供指导思想。
    第4章  轻量级模型设计
    本章系统地介绍了当下轻量级模型设计的方法,包括卷积核的使用和设计、卷积拆分与分组、特征与参数重用设计、动态自适应模型设计、卷积乘法操作优化和设计、重参数化技巧、新颖算子设计、低秩稀疏化设计。在一开始就使用轻量级的基础模型架构,可以大大减少后续对其进一步进行模型压缩与优化的工作量,因此这也是本书中非常核心的内容。
    第5章  模型剪枝
    本章介绍了模型剪枝的主要算法理论与实践,主要包括模型稀疏学习、非结构化剪枝与结构化剪枝等算法,最后通过案例实践让读者掌握模型结构化剪枝中原始模型的训练与训练后的稀疏裁剪方法。
    第6章  模型量化
    本章介绍了模型量化的主要算法理论与实践,主要包括二值量化、对称与非对称的8bit量化、混合精度量化等,最后通过案例实践让读者掌握对称的8bit量化算法代码实现及基于NCNN框架的8bit模型量化流程。
    第7章  迁移学习与知识蒸馏
    本章介绍了模型蒸馏的主要算法理论与实践,主要包括基于优化目标驱动与特征匹配的知识蒸馏算法,最后通过案例实践让读者掌握经典的知识蒸馏框架的模型训练方法,并比较学生模型在蒸馏前后的性能变化。
    第8章  自动化模型设计
    本章介绍了自动化模型设计中的神经网络结构搜索技术,主要包括基于栅格搜索的神经网络结构搜索方法、基于强化学习的神经网络结构搜索方法、基于进化算法的神经网络结构搜索方法、可微分神经网络结构搜索方法。自动化模型设计是难度较高的工程技术,也是模型设计与压缩的最终发展形态。
    第9章  模型优化与部署工具
    本章介绍了当下工业界常用的开源模型优化和部署工具,主要包括TensorFlow、PaddlePaddle、PyTorch生态相关的模型优化工具,各类通用的移动端模型推理框架,以及ONNX标准与NVIDIA GPU推理框架TensorRT,并基于NCNN框架在嵌入式硬件上进行了部署实战。熟练掌握模型优化与部署工具,是深度学习算法工程师的必修课。本章内容可供读者作为入门参考,更加系统的模型部署的相关内容,将在本系列图书的下一本书中介绍。
    本书读者对象
    本书是一本专门介绍深度学习模型压缩与优化技术,尤其是针对深度卷积神经网络的图书,本书内容属于深度学习领域的高级内容,对读者的基础有一定的要求:
    首先,必须熟悉深度学习理论知识,包括但不限于神经网络、卷积神经网络、计算机视觉基础等;
    其次,要有深度学习模型设计基础,了解主流的卷积神经网络设计思想,最好掌握了本系列书籍的第一本《深度学习之模型设计》的内容;
    最后,熟练运用Python等编程语言,掌握PyTorch等主流的深度学习框架。
    本书适合以下读者:
    ?	学习深度学习相关技术的学生。
    ?	讲授深度学习模型设计、压缩与优化相关课程的教师、培训机构。
    ?	从事或即将从事深度学习相关工作的研究人员和工程师。
    ?	对深度学习模型的优化思想感兴趣,想系统了解和学习的各行业人员。
    致谢
    虽然笔者独立完成了本书的写作,但是在这个过程中也得到了一些帮助。
    感谢电子工业出版社的米俊萍编辑的信任,联系我写作了本书,并在后续的编辑校稿中完成了巨大的工作量。
    感谢“有三AI”公众号和“有三AI”知识星球的忠实读者们,是你们的阅读和付费支持让我有了继续前行的力量。
    感谢本书中GitHub开源项目的贡献者,是你们无私的技术分享,让更多人因此受益匪浅,这是这个技术时代里最伟大的事情。感谢前赴后继提出了书中所列方法的研究人员,得益于你们的辛苦原创,才有了本书的内容。
    感谢我的家人的宽容,因为事业,给你们的时间很少,希望以后会做得更好。
    
    言有三    
    于长沙    
    2024年4月  
    
    
    展开

    作者简介

    龙鹏,笔名言有三,先后就读于华中科技大学(2008-2012),中国科学院半导体研究所神经网络实验室(2012-2015),先后就职于奇虎360人工智能研究院(2015.7-2017.5),陌陌科技深度学习实验室(2017.5-2019.3),深度学习算法专家,阿里云MVP,华为云MVP,超过7年的深度学习领域从业经验,拥有丰富的传统图像算法和深度学习计算机视觉项目经验,运营技术公众号《有三AI》,著有书籍《深度学习之图像识别:核心技术与案例实战》(机械工业出版社2019.4),《深度学习之模型设计:核心算法与案例实践》(电子工业出版社2020.6),《深度学习之人脸图像处理:核心算法与案例实战》(机械工业出版社2020.7),《深度学习之摄影图像处理:核心算法与案例精粹》(人民邮电出版社2021.4),拥有10余项发明技术专利与学术论文,担任2022年HDIS Chair等职位。
  • 样 章 试 读
    本书暂无样章试读!
  • 图 书 评 价 我要评论
华信教育资源网