联系我们
- 地 址:北京市海淀区北四环西路9号 ,主 营:人脸识别,活体检测,身份证识别,银行卡识别,名片识别,车牌识别,OCR识别等及智能识别技术。
- 电 话:13146317170 廖经理
- 传 真:
- 邮 箱:398017534@qq.com
深度学习中的深度神经网络压缩与加速
深度学习中的深度神经网络压缩与加速
1.缘由
关于深度神经网络而言,其无论参数、计算量、数据存储或者说是网络深度与宽度等等都会限制深度神经网络在嵌入式、便携式工具上的拓展应用
2.加速、紧缩任务
2.1 卷积层:计算耗时长,能够经过权值共享战略停止网络存储紧缩,触及到的是网络的计算加速
2.2 全衔接层:由于是神经元之间的全衔接,所以其网络参数特别的多,因而触及到的是网络模型的内存紧缩
而这两项任务设计到很多学类门课:机器学习、参数优化、计算架构、数据紧缩、索引、硬件加速。
3.主流办法
深度神经网络的紧缩与加速的主要办法有:参数剪枝、参数共享、低秩合成、紧性卷积核设计、学问蒸馏
参数剪枝:主要经过设计判别参数重要与否的原则,移除冗余的参数.可用于卷积层和全衔接层,需求逐层逐渐停止网络紧缩。
参数共享:主要探究模型参数的冗余性,应用Hash或量化等技术对权值停止紧缩.可用于卷积层和全衔接层,需求逐层逐渐停止网络紧缩。既能顺应模型重锻炼,也可以经过预锻炼网路产生作用。
低秩合成:应用矩阵或张量合成技术估量并合成深度模型中的原始卷积核.可用于卷积层和全衔接层,可以在CPU/GPU的条件下,完成端对端的锻炼。既能顺应模型重锻炼,也可以经过预锻炼网路产生作用。
紧性卷积核:紧性卷积核的设计主要经过设计特殊的构造化卷积核或紧性卷积计算单元,减少模型的存储与计算复杂度.并且该种办法只可以用于卷积核之外。可以在CPU/GPU的条件下,完成端对端的锻炼。只支持重锻炼。
学问蒸馏:主要应用大型网络的学问,并将其学问迁移到紧性蒸馏的模型中.可用于卷积层和全衔接层,只支持重锻炼。
4.深度神经网络的紧缩与加速算法
4.1 参数剪枝
4.1.1 构造化办法
网络/参数剪枝是经过对已有的锻炼好的深度网络模型移除冗余的、信息量少的权值,从而减少网络模型的参数,进而加速模型的计算和紧缩模型的存储空间.不只如此,经过剪枝网络,能避免模型过拟合.以能否一次性删除整个节点或滤波为根据,参数剪枝工作可细分红非构造化剪枝和构造化剪枝.非构造化剪枝思索每个滤波的每个元素,删除滤波中元素为0的参数,而构造化剪枝直接思索删除整个滤波构造化信息.
LeCun:最优化脑损失(optimal brain damage):这种学习方式模拟了哺乳动物的生物学习过程,经过寻觅最小激活的突触链接,然后在突触删减(synaptic pruning)过程中大大减少衔接个数.
Hassibi和Stork提出了最优化脑手术(optimal brain surgeon)剪枝战略,应用反向传播计算权值的二阶偏导信息(hessian矩阵),同时应用此矩阵构建每个权值的显著性得分,从而删除低显著性的权值.
Srinivas等人提出了不依赖于锻炼数据(data-free pruning)和反向传播,直接构建并排序权重的显著性矩阵,删除不显著冗余的节点.由于不依赖于锻炼数据及后向传播计算梯度信息,因而该网络剪枝过程较为快速.
韩松等人提出了一种基于低值衔接的删除战略(low-weight con-nection pruning),该剪枝办法包括3个阶段,即锻炼衔接、删除衔接、重锻炼权值.第1阶段经过正常锻炼,学习重要的衔接;第2阶段经过计算权值矩阵的范数,删除节点权重的范数值小于指定的阑值的衔接,将原始的密集网络(dense network)变成稠密网络;第3阶段经过重新锻炼稠密网络,恢复网络的辨认精度.
以上剪枝办法通常引入非构造化的稠密衔接,在计算过程中会惹起不规则的内存获取,相反会影响网络的计算效率.
4.1.2 非构造化办法
近几年,基于构造化剪枝的深度网络的紧缩办法陆续被提出,克制了非构造化稠密衔接招致的无法加速问题,其中心思想依托滤波显著性原则(即审定最不重要的滤波的原则),从而直接删除显著性滤波,加速网络的计算.
2016年,Lebedev等人提出在传统的深度模型的损失函数中参加构造化的稠密项,应用随机梯度降落法学习构造化稠密的损失函数,并将小于给定阈值的滤波赋值为0,从而测试阶段直接删除值为0的整个卷积滤波.
温伟等人经过对深度神经网络的滤波、通道、滤波外形、网络层数(filters, channels, filter shapes,layer depth)的正则化限制参加到损失函数中,应用构造化稠密学习的方式,学习构造化的卷积滤波.
Zhou等人将构造化稠密的限制参加目的函数中,并应用前向后项团结(forward-backward splitting)办法处理构造稠密化限制的优化问题,并在锻炼过程中直接决议网络节点的个数与冗余的节点.
另外,近年来,直接丈量滤波的范数值直接判别滤波的显著性也相继被提出,例如:直接删除给定当前层最小L1范数的滤波,即移除相应的特征图(feature map),然后下一层的卷积滤波的通道数也相应地减少,最后经过重锻炼的方式进步删减后模型的辨认精度.由于大量的ReLU非线性激活函数存在于主流的深度网络中,使得输出特征图高度稠密化。
Hu等人应用此特性,计算每个滤波所对应输出特征图的非零比例,作为判别滤波重要与否的规范.NVDIA公司Molchanov等人提出一种基于全局搜索显著性滤波的战略,对需求删除的滤波用0值替代,并对目的函数停止泰勒公式展开(taylor expansion),判别使目的函数变换最小的滤波为显著滤波.经过卷积计算方式,能够树立当前层的滤波与下一层的卷积滤波的输入通道存在逐个对应关系,应用此特性
Luo等人探究下一层卷积核的输入通道重要性,替代直接思索当前层滤波,并树立一个有效的通道选择优化函数,从而删除冗余的通道以及相应的当前层的滤波.以上基于构造化剪枝的深度网络的紧缩办法,经过删除卷积层的整个滤波,没有引入其他额外的数据类型存储,从而直接紧缩网络的同时加速整个网络的计算.
参数剪枝的缺陷在于,简单应用非构造化剪枝,无法加速稠密化矩阵计算.固然近年来,相关软件与硬件口已被应用停止加速计算,但依托软硬件的非构造化剪枝计划还无法在一切深度学习框架下运用,另外硬件的依赖性会使得模型的运用本钱进步.构造化剪枝不依赖软硬件的支持,且能很好地嵌入目前主流的深度学习框架,但逐层固定的剪枝方式(layer一by一layer fixed manner)招致了网络紧缩的低自顺应才能、效率和效果.此外,上述的剪枝战略需求手动判别每层的敏理性,因而需求大量的精神剖析及逐层微调(fine-tuning).
4.2 参数共享
参数共享是经过设计一种映射将多个参数共享同一个数据,近年来,量化作为参数共享的最直接表现方式,得到普遍的应用.此外,Hash函数和构造化线性映射也可作为参数共享的表现方式.下面这个表格将会不定时更新。
参数共享算法
提出者算法算法思想
本文作者从大量的文献中总结了参数共享理念的开展进程和存在的缺乏,文中皆有所表现,详看原文,此处省略。
4.3 低秩合成
其中心是应用矩阵或者向量合成技术估量并合成深度模型中的原始卷积核,本文作者从大量的文献中总结了参数共享理念的开展进程和存在的缺乏,文中皆有所表现,详看原文,此处省略。
4.4 紧性卷积核
将深度神经网络的卷积核运用紧性的滤波器替代,有效紧缩深度网络。
4.5 学问蒸馏
经过软Softmax变换学习教员输出的类别散布,并将大型教员模型的学问精炼成较小的模型。
4.6 其他办法
全局平均池化替代传统的3层全衔接层
基于卷积的快速傅里叶变换
运用Winograd算法
随机空间采样池化