Page 143 - 《软件学报》2021年第11期
P. 143

宋冰冰  等:自动化张量分解加速卷积神经网络                                                          3469


                 slightly reduced  by 0.35%  compared to  the original network,  and  the running  time  of the  model is greatly  reduced by 4.1  times, the
                 accuracy rate on the CIFAR-10 dataset dropped slightly by 5.13%, and the running time of the model was greatly decreased by 0.8 times.
                 Key words:    tensor decomposition;  convolutional neural network;  automatic  machine learning; neural network  compression;  neural
                          network acceleration


                    人工智能领域近年来成为全世界的研究和应用热点.作为人工智能的一个重要研究分支,自 LeCun 等人                                  [1]
                 在 1980 年提出完备的卷积神经网络(convolutional neural network,简称 CNN)以来,CNN 获得了迅速的发展,并在
                          [2]
                                                                                            [3]
                 计算机视觉 、自然语言处理、语音识别和医疗影像处理等领域取得了一系列显著的研究成果 .
                    卷积结构是 CNN 的核心部件,通过这种巧妙的设计,卷积结构可以显著降低原始神经网络的计算复杂度,
                 并减少训练必须的参数量.然而即便如此,现在常用的 CNN 网络中动辄几十万、上百万的参数量仍然十分庞大.
                 随着任务的复杂程度越高,参数量还会进一步增加.这就造成 CNN 对计算量和计算速度的需求也随之日益增
                 长,传统的 CPU 以及一些低端的 GPU 计算能力很难满足 CNN 对计算资源的需求.另一方面,近些年,随着智能
                 终端的急速增长,CNN 部署在小型设备(例如个人笔记本、手机等设备)备受关注,然而 CNN 庞大的计算量需要
                 消耗大量的计算资源,尤其在资源相对紧张的小型设备中,完成训练和预测任务尤为受限.因此,如何优化 CNN、
                                                   [4]
                 提高资源利用率,成为迫切需要解决的问题 .
                                                                                [5]
                    针对这个难题,研究人员相继提出了参数修剪和共享、张量分解、知识蒸馏 等 CNN 优化方法.研究表明,
                                         [6]
                 CNN 模型参数存在很大的冗余 .在张量分解加速与压缩加速 CNN 中,张量分解的秩选择对神经网络的压缩至
                 关重要.近年来,随着 AutoML 方法的研究逐渐成熟,为张量分解中秩的选择提供了有效的参考方案.
                    本文从 AutoML 角度出发,提出了两种自动化张量分解加速 CNN 的算法,两种算法分别是基于参数估计的
                 自动化加速卷积神经网络和基于遗传算法的自动化加速卷积神经网络,并能够在给定的精度损失范围内求出
                 最优的 CNN 加速模型,解决了人工选择秩导致的繁杂工程量以及无法选取最优方案的问题.

                 1    相关工作

                    •   张量分解的应用领域
                    张量分解在计算机应用领域扮演着重要的角色,已经被运用在谱分析、非线性建模、通信与雷达处理、图
                                                                              [7]
                 像处理、网络检索、对数据进行降维、去噪或数据去重等领域.Welling 等人 提出一种定点算法,将非负矩阵
                                                                      [8]
                 分解扩展到任意阶的张量分解,对图像数据进行分解降维;Kim 等人 基于 Tucker 分解提出一种非负的 Tucker
                                               [9]
                 分解,并应用到计算机视觉;Hazan 等人 在人脸识别中提出一种对局部特征分解的三阶张量分解算法.另外,在
                 信号处理研究领域,Nion 等人       [10] 将 PARAFAC 分解应用在 MIMO 雷达中的多维谐波参数估计问题;Benetos 等
                 人 [11] 使用非负矩阵分解方法设计了一个自动分类算法,对乐器声音进行分类.在推荐系统领域,Chen 等人                             [12] 首
                 次将张量分解(Tucker)应用于网页搜索,并提出了 CubeSVD 算法,大幅提升了网页搜索的性能;Rendle 等人                       [13] 针
                 对标签推荐提出一种新的数据解释方案,并利用张量分解(Tucker)来优化对级排序学习模型,降低了运行时间的
                 同时,提升了标签推荐的质量;Xiong 等人          [14] 将张量用于建模时序销售数据,并提出了贝叶斯概率张量分解(CP),
                 将贝叶斯概率模型引入张量分解,通过马尔可夫链蒙特卡洛方法进行求解.在基于上下文感知的推荐中,
                 Karatzoglou 等人 [15] 将张量分解(Tucker)应用于显示反馈的推荐数据,在多个数据集上取得了较低的 MAE 值.
                 Shi 等人 [16] 则将张量分解(CP)应用于隐式反馈的推荐数据上,采用优化 MAP 的方式训练列表级排序学习模型.
                    •   神经网络加速的研究
                    最优化脑损失(optimal brain  damage)算法  [17] 和最优化脑手术(optimal brain  surgeon) [18] 剪枝策略的提出,开
                 创了参数剪枝加速神经网络的研究领域.在之后的研究中,Srinivas 等人                    [19] 直接构建并排序权重的显著性矩阵
                 来删除不显著的权值节点;Han 等人          [20,21] 提出一种基于低值连接的删除策略;Lebedev 等人          [22] 在损失函数中加
                 入结构化的稀疏项,利用结构化稀疏的函数删除小于设定阈值的滤波器.NVIDIA 公司的 Molchanov 等人                            [23] 提
                 出一种全局搜索显著性滤波的策略.在 2014 年,Gong 等人              [24] 使用向量量化技术对参数空间内对神经网络的权
                 值进行量化.Gupta 等人    [25] 将权值量化到 16bit 大小.而后又出现了三元网络量化             [26] 和二值量化 [27] .在 2016 年,
   138   139   140   141   142   143   144   145   146   147   148