用于(i)加快深度神经网络(DNN)的推理速度和(ii)将DNN产生的矢量表示从各种输入数据(诸如,图像、音频、视频,以及文本)中压缩出来的系统、方法,以及计算机可读介质。方法实施例将神经网络架构和与任务相关的损失函数作为输入,测量神经网络在训练数据集上的性能,并输出具有稀疏神经元激活的深度神经网络。本技术的流程利用正则化项增强了DNN现有训练目标函数,促进神经元的稀疏激活,并通过利用各种算法来解决优化问题来对DNN进行压缩。本公开还示出了如何在DNN推断过程中利用激活的稀疏化,从而可以使算术运算的次数成比例地减少,以及如何使用由DNN产生的稀疏表示来构建高效的搜索引擎。
背景技术
深度神经网络(DNN)已成为人工智能(AI)领域中用于从较低级别的数据(例如,图像、视频、音频和文本)中提取高级信息的使用最广泛的方法。但是,DNN昂贵的计算成本阻碍了其在能耗、存储空间或时延容忍性方面预算更紧的应用中的使用,尤其是在诸如移动电话和监控摄像头之类的边缘设备(edge device)上的使用。
DNN的计算成本来自多种来源。首先,DNN模型参数通常约为数百万或数千万,导致巨大的存储成本,并阻碍模型参数置于存储器层级(memory hierarchy)中更小但速度更快的存储设备上。其次,DNN的计算图(computation graph)中神经元的数量会占用大量存储器空间,并且在运行时通常需要进行数十亿次算术运算。第三,基于由神经网络生成的矢量表示的搜索引擎(例如,面部比较引擎)通常比传统的基于文本的搜索引擎运算成本高得多,这一部分是由于DNN产生的高维密集矢量表示(嵌入)所导致的。
近年来,正在进行的研究工作集中在降低DNN推理的计算成本上。但是,其中一些常规方法致力于修整DNN模型,包括(i)减少DNN滤波器中非零参数(神经元之间的连接)的数量,(ii)修整网络的一些部分,例如,神经元的通道或滤波器的列/行,以及(iii)将参数和神经元的值范围量化,以减少用于表示这些值的位数。
因此,期望有方法和系统能够提供一种降低高计算强度的更有效的DNN模型。
实现思路