基于CPU的深度学习框架加速优化文献综述

 2022-10-22 17:19:19
  1. 文献综述(或调研报告):

深度神经网络压缩与加速综述

前言

近年来,随着大数据时代的来临,深度神经网络(deep neural networks,DNNs)已席卷人工智能各个领域[1],包括了语音识别[2]、图像理解[3-4]等在内的广泛领 域.不仅如此,这些深度神经网络在复杂的系统中也得到了广泛使用,如自动驾驶、癌症检测等.深度神经网络在很多识别任务中已大大超越了人类识别的准确率,同时突破了传统的技术方法带来了巨大的性能提升.这些性能的提升是因为深度神经网络拥有对大数据高层(high-level)特征提取的能力,从而获得对输入空间或数据的有效表示.

伴随着深度神经网络模型的性能增加,神经网络的深度越来越深,接踵而来的是深度网络模型的高存储高功耗的弊端,严重制约着深度神经网络在资源有限的应用环境和实时在线处理的应用,例如, AlexNet Caffe模型超过 200 MB, VGG-16 Caffe模型超过500MB(BVLC)。这使得在移动系统上部署深层神经网络变得困难。

首先, 对于许多移动优先的公司, 如百度和Facebook, 各种应用程序通过不同的应用商店更新, 他们对二进制文件的大小非常敏感。例如, App Store 有 '100 MB 以上的应用在连接到 Wi-Fi 之前不会下载' 的限制。因此, 将二进制大小增加100MB 的功能将比增加10MB 的功能受到更多的审查。尽管在移动设备上运行深层神经网络具有许多强大的功能, 如更好的隐私、更少的网络带宽和实时处理, 但较大的存储开销会阻止深度神经网络被集成到移动应用中。

第二个问题是能源消耗。运行大型神经网络需要大量的内存带宽来获取权重, 并且需要大量的计算来完成点产品, 这反过来又会消耗相当大的能量。移动设备受到电池限制, 使得深度神经网络等耗电的应用程序难以部署。

能耗以内存访问为主。在 45nm CMOS 技术下, 32位浮点添加消耗 0.9 pJ, 32位 SRAM 缓存访问需要 5pJ, 而 32位 DRAM 内存访问需要 640pJ, 这是一个添加操作的3个数量级。大型网络不适合片上存储, 因此需要更昂贵的 DRAM 访问。例如, 以20fps 运行10亿个连接神经网络需要 (20Hz)(1G)(640pJ) = 12.8W, 仅用于 DRAM 访问----远远超出了典型移动设备的功率范围。

一方面,拥有百万级以上的深度神经网络模型内部存储大量冗余信息,因此并不是所有的参数和结构都对产生深度神经网络高判别性起作用;另一方面,用浅层或简单的深度神经网络无法在性能上逼近百万级的深度神经网络.因此,通过压缩和加速原始深度网络模型,使之直接应用于移动嵌入式设备端,将成为一种有效的解决方案.一般情况下,压缩和加速深度神经网络是2个不同的任务,两者之间存在区别,但又紧密联系.例如卷积神经网络 (CNNs)2种类型的计算层,即卷积层和全连接层.1)卷积层,它是计算耗时最大的层,也是卷积神经网络能够获得高层语义信息重要层.在卷积层内,可以通过权值共享,减少了对权值的大量存储.2)全连接层,不同于卷积层的局部感知,在全连接层中,每一个输出单元都与所有输入单元相关,通过密集的权值进行连接,因此需要大量的参数.因为卷积层与全连接层内在的本质区别,通常把卷积层的计算加速和全连接层的内存压缩认为是2种不同的任务.这2类计算层之间又是紧密联系的,卷积层为全连接层提供分层的高层特征,全连接层通过分类指导卷积层的高判别力特征提取.在本文中,我们总结与回顾近几年来压缩和加速深度神经网络方面的相关工作,相关算法与解决方案涉及多门学科,包括机器学习、参数优化、计算架构、数据压缩、索引等。

主流的压缩与加速神经网络的方法可以分成5种:1)参数剪枝(parameter pruning);2)参数共享(parameter sharing);3)低秩分解(low-rank decompositon);.参数剪枝主要通过设计判断参数重要与否的准则,移除冗余的参数.参数共享主要探索模型参数的冗余性,利用Hash或量化等技术 对权值进行压缩.低秩分解利用矩阵或张量分解技术估计并分解深度模型中的原始卷积核.

本文先介绍神经网络的基础概念,再详细介绍上述压缩与加速方法、相应的特性及缺点,进而分析深度模型压缩与加速的评测标准、相应数据集及性能表现,最后总结并讨论不同压缩与加速方法的选择问题,并分析了未来发展趋势.

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。