Page 45 - 《软件学报》2020年第9期
P. 45

2666                                 Journal of Software  软件学报 Vol.31, No.9,  September 2020

             实现轻量化网络的技术方法主要包括:利用卷积核分解方法使用 1×N 网络和 N×1 网络代替 N×N 卷积核;
         使用深度压缩(deep compression)方法,包括网络剪枝、量化、哈弗曼编码、奇异值分解、硬件加速器等方法.
         因此,以 SqueezeNet 为例,其设计使用以下 3 个策略来减少参数:
             (a)  使用 1×1 卷积代替 3×3 卷积,该设计使得计算参数减少为原来的 1/9;
             (b)  减少输入通道数量,该部分使用 squeeze 层来实现;
             (c)  在网络中,将欠采样(downsample)操作延后,可以给卷积层提供更大的激活图(activation maps).因为更
         大的激活图保留了更多的信息,可以提供更高的分类准确率.
             其中,策略(a)和策略(b)可以显著减少参数数量,策略(c)可以在参数数量受限的情况下提高准确率.轻量化
         网络与传统 DNN 网络相比具有诸多优点             [65] ,网络模型的精简也有助于整个系统的优化.比如:在分布式训练中,
         轻量化网络与服务器通讯需求较小,由于网络模型的参数少,从云端下载模型也更快.
             当然,在使用轻量化技术缩短网络推理时间,提升系统性能的同时,人们还必须保证网络的预测精度足够
         高.优秀的代表性网络包括 SqueezeNet 和 SqueezeNext 等.SqueezeNet 模型和 Alexnet 模型在 ImageNet 数据集
         上的推理精度相当,但是前者比后者的参数数量减少了 50 个,并且 SqueezeNet 模型的尺寸小于 0.5MB.随
         后,Gholami 等学者总结了已有轻量化网络的结构优点,并根据神经网络加速器上的仿真结果作为指导,提出新
         的神经网络体系结构 SqueezeNext      [81] .它采用滤波器降秩(low rank filters)的方法进一步减少权值参数,并且采用
         瓶颈模块(bottleneck module)减少全连接层参数.有别于上述的单从软件层对网络模型进行优化,SqueezeNext
         是从网络设计和硬件实现两个角度综合优化网络,其思想很值得借鉴.与 MobileNet 相比,SqueezeNext 在获得相
         似的 top-5 的分类精度下,其参数减少了 1.3 倍.
             (3)  自动机器学习
             为嵌入式系统设计深度学习网络,是一项具有挑战性的工作,因为嵌入式平台要求网络模型不仅体积小、
         运行速度快,还要确保网络预测的准确率.尽管研究者已经做了许多轻量化模型的设计和改进工作,例如上述
         SqueezeNet,MobileNet 系列,但是手动设计高效模型仍然是一项挑战,因为网络设计要考虑的因素太多.AutoML
         (automated machine learning) [82] 和神经架构搜索(neural architecture search,简称 NAS) [83] 的发展,促进了深度学习
         模型的自动化设计.AutoML 是模型选择、特征抽取和超参数调优等一系列自动化方法,可以实现自动训练有价
         值的模型.机器学习最耗费人力的部分主要是数据清洗和模型调参,而这部分过程如果采用自动化方式实现,将
         会加快网络模型的开发过程.NAS 实现了用神经网络设计神经网络,代表了机器学习发展的未来方向.NAS 是
         AutoML 的子领域,在超参数优化和元学习(meta learning)等领域高度重叠.与以往自动化搜索方法不同,
         MnasNet [84] 的设计综合权衡了网络输出精度和实时性的多目标优化问题.它是 Google 提出探索使用架构搜索
         和强化学习设计模型的一种方法,并且在模型准确率和运算速率上均有突破.MnasNet 模型的运行速度比
         MobileNet V2 [79] 快 1.5 倍、比 NASNet [83] 快 2.4 倍,同时达到同样的 ImageNet top-1 的准确率.

         3.3   实时神经网络
             对于包含了人工智能应用的实时嵌入式系统,实时系统的设计除了考虑网络推理任务的时间可预测性以
         及硬实时性,还要考虑网络模型的输出精度.如果能够对深度学习网络的性能进行建模,就能分析出推理网络的
         执行时间,得出任务执行时间的上界,最终设计出调度策略来保证实时任务在截止期之前正确执行完.深度学习
         网络的输出结果本质上是基于一定概率的输出,因此,如何权衡网络的预测精度与网络的执行时间,即在牺牲可
         接受的网络精度来换取网络推理过程的实时性,引起了实时领域研究者的关注.Bateni 等学者                             [19] 提出近似意识
         的实时神经网络 ApNet,对 AlexNet 模型以 layer 为单位应用降秩(low rank)近似方法,实验数据显示,以损失 5%
         的精度,换取网络层任务执行时间减少 50%~80%.时间可预测运行时系统 ApNet 通过逐层设计有效的近似压缩,
         确保了 DNN 任务的硬截止期.ApNet 是建立在多层 DNN 端到端理论分析的调度框架,基于每一层基础上有效
         近似技术来满足层任务的子截止期.基于权衡网络计算精度和运行时间的理论分析,在 NVIDIA Jetson  TX2 平
         台上,设计并实现了一个运行时系统,提高了运行时多任务性能.
                                                                   3
                                                                          3
             Zhou 等学者针对 GPU 加速的实时 DNN 任务提出监督流调度方案 S DNN.S DNN 综合考虑 DNN 任务的
   40   41   42   43   44   45   46   47   48   49   50