大规模 CNN(卷积神经网络)是许多最先进的计算机视觉算法中最基本的部分,可在各种任务中实现高精度。这种网络的架构往往非常深,因为它们具有大量参数。所有的参数,数以百万计,数以亿计,权重冗余度高,使用巨大的计算资源。由于其对计算和硬件的高要求,在内存和计算资源有限的嵌入式和移动设备上部署此类模型变得非常困难。为了解决这个问题,已经进行了研究,以使用各种技术(如修剪、神经架构搜索、量化和知识蒸馏)来减小模型的大小。Learning to Prune Filters in CNNs论文并使用混合精度量化论文中的量化来减少模型大小和计算量。

大规模 CNN(卷积神经网络)是许多最先进的计算机视觉算法中最基本的部分,可在各种任务中实现高精度。这种网络的架构往往非常深,因为它们具有大量参数。所有的参数,数以百万计,数以亿计,权重冗余度高,使用巨大的计算资源。由于其对计算和硬件的高要求,在内存和计算资源有限的嵌入式和移动设备上部署此类模型变得非常困难。为了解决这个问题,已经进行了研究,以使用各种技术(如修剪、神经架构搜索、量化和知识蒸馏)来减小模型的大小。Learning to Prune Filters in CNNs论文并使用混合精度量化论文中的量化来减少模型大小和计算量。

1、学习在 CNN 中修剪过滤器

修剪过滤器的单个权重会导致 CNN 的稀疏性增加,这需要专门设计的软件或硬件来处理它。本文介绍了一种数据驱动的方法来修剪过滤器,基于其对模型整体准确性的贡献。他们将这种方法制定为“尝试和学习”任务,其中每个修剪代理(由神经网络建模)将过滤器权重作为输入,并输出关于保留过滤器的二元决策(是/否)。

Eq 1. 奖励函数(基于选择的二元动作和验证集)

每个剪枝代理都使用新的奖励函数 (Eq 1) 进行训练,该函数是准确度项和效率项的乘积。这种奖励功能可以轻松控制网络性能和规模之间的权衡。奖励函数的准确度项(等式 3)由一个下限参数“b”组成,它确保修剪过滤器后的准确度下降不超过阈值,并且还提高了更高的准确度。效率项是模型中过滤器总数与修剪代理保留的过滤器数量之比的对数(如公式 2 所示);这有利于更高的修剪。由于奖励函数相对于剪枝代理的参数不可微,因此在训练时使用策略梯度更新来修改参数。

Eq 2. 效率项,这里 N 表示第 l(th) 层中的过滤器数量,C(.) 是保留过滤器的数量

Eq 3. Accuracy Term,这里 p* 和 p^ 是基线和修剪模型的性能,b 是下降界限。M 是使用的度量(识别中的分类准确度和分割任务中的全局准确度)

该论文的作者评估了他们的模型在图像分割和视觉识别这两个任务中的性能。对于视觉识别任务,他们以两种方式进行了实验。首先,他们单独训练每一层的剪枝代理,然后一起训练所有卷积层的代理。图 1 显示了在 CIFAR-10 数据集上训练的 VGG-16 网络上的单个层剪枝结果,其精度下降边界 b = 2。从图中,我们可以观察到我们可以修剪高达 99.4% 的层精度下降非常小(0.5%)(第 10 层和第 11 层)。

为了单独修剪过滤器,它们从已经在数据集上训练的基线模型 (f) 开始,然后根据神经修剪代理为每个权重选择的动作对其进行修剪。层中权重的动作是随机初始化的,并在我们评估动作的奖励函数和基于策略梯度方法的精度下降时通过迭代学习。在对基线网络进行手术后,网络再次在数据集上进行微调,以适应剪枝动作。对网络的每一层重复此过程。在所有层一起修剪的情况下,我们从“L”层网络的 L 修剪代理开始,一个用于网络中的每个卷积层和一个基线网络。在这种情况下,他们遵循跨层的单层修剪方法。随着我们在网络中深入,基线网络不会重新初始化,并且来自早期层的修剪网络被带到更深层以进一步修剪。在每一层修剪之后,模型在训练数据集上进行微调以补偿性能下降。下面的图 2 显示了 VGG-16 在 CIFAR-10 数据集上的这个过程的结果,下降边界为 2。我们可以在此处观察到,每一层的修剪比其单层修剪对应物少一点,但仍然具有攻击性.

网络性能和规模之间的权衡由下拉参数“b”提供。不同b值的实验如图 3 所示,结果如图 4 所示。从中可以看出,较大的 drop bound 给出了更高的剪枝率,更多节省的 FLOP(浮点运算),更高的 GPU和 CPU 加速,以及测试集上更大的准确度下降。此外,我们可以看到,对于数据驱动的剪枝,在与基于幅度的剪枝相同的剪枝率下,VGG-16 网络上的精度下降较低。

在 ResNet-18 网络上使用 CIFAR-10 数据集进行了类似的实验,该数据集比 VGG-16 更大、更复杂。据观察,修剪率比 VGG-16 中的更小(仍然显着),这是因为 ResNet-18 是一种更有效的网络架构。结果表明,在残差块中,第一个 Conv 层比第二个更容易修剪;这也可以在图 5 中看到(7th/9th/12th/14th — 第一层,8th/10th/13th/15th — 第二层)。

对于语义分割任务,在具有 Pascal VOC 数据集的 FCN-32s 网络和 CamVid 数据集上的 SegNet 网络上进行了实验。为分割任务定义的网络基于像素级标记过程,这需要更多的权重和表示能力,因此更难以修剪。用于评估模型的指标是全局像素精度,下降边界b设置为 2。从图 6 中,我们可以看到,对于 SegNet 网络,有一个负的精度下降,这意味着精度的提高,这有利于奖励函数中的准确度项。这是由于修剪导致网络的过度拟合减少。

从下图可以看到一个有趣的结果,它显示了 SegNet 在 CamVid 数据集上的修剪结果,即使网络是对称的,网络的较深一半也有更多的冗余过滤器需要修剪。据观察,下半年去除了 49.2% 的过滤器,而上半年去除了 26.9%。

2、通过可微神经架构搜索实现混合精度量化

量化是另一种压缩模型大小的技术,它使用较小的位以较低的精度(< 32 位)将滤波器权重存储在卷积层中。之前考虑了 CNN 每一层中所有激活和权重的相同精度。本文首先介绍了对不同层具有不同精度(位宽)的想法。从N层和每层M候选精度的 CNN 开始,我们希望找到最佳精度分配,以减少模型大小、内存占用和计算次数,同时保持精度下降最小。这将花费 O(M^N) 时间来搜索指数;因此,他们引入了一种新方法来有效地解决这个问题。

在这个方法中介绍了可微神经架构搜索 (DNAS) 框架,该框架将架构搜索空间表示为一个随机“超网”,它是一个 DAG(有向无环图),其节点代表 CNN 的中间数据张量(特征图)和边表示网络的运算符(卷积层),如图 1 所示。因此,任何候选架构都可以是该超级网络的子图。图的任何边都是随机执行的,执行概率由一些架构参数参数化因此,我们需要找到提供最有希望的准确性的最佳架构参数,然后可以从找到的最佳参数中对网络进行采样。通过使用 SGD(随机梯度下降)在网络权重和架构参数方面训练超级网络来找到最佳架构参数。由于边缘执行由一组离散值控制,作者使用 Gumbel Softmax 函数来“软控制”边缘,这有助于计算架构参数的梯度估计,并在偏差和方差之间进行可控权衡。

Eq 1. 超网 vⱼ 中的一个节点被写为所有传入边 vᵢ's 与掩码变量 mᶦʲ 的总和。

在 DNAS 框架中,数据张量(节点 vⱼ)是通过将来自先前节点(vᵢ's)的所有传入边与掩码变量相加来计算的,这已在上面的等式 1 中显示。掩码变量m是一个“边缘掩码”,用于决定将在候选网络中执行的边缘。本文开始时将边缘掩码设为离散值 {0,1},并且特定节点的所有掩码总和为 1,这确保仅执行 1 个边缘。超级网络通过使用等式 2 中给出的概率分布随机执行边缘来实现随机化。这将架构搜索的问题归结为找到最佳架构分布参数 θ 以最小化预期损失函数。使用架构参数 θ,我们可以通过从 P_θ 中采样得到候选架构。

Eq 2. 为每条边分配一个参数 θ ij k 以便从 P_θ 中采样执行边 eᵢⱼ 的概率

方程 3. 梯度的蒙特卡罗估计,其中 aᵢ 是从分布 P_θ 采样的架构,B 是批量大小。

当我们尝试求解最优架构参数 θ 时,我们尝试使用 Monte Carlo 方法(在方程 3 中给出)估计损失函数的梯度,我们发现存在高方差,因为架构空间大小是数量级大于任何可行的 Batch 大小B。梯度的高方差使得 SGD 难以收敛。这个问题是通过使用 Gumbel Softmax 来控制边缘选择来解决的,而不是应用“硬采样”,我们使用“软采样”来选择两个节点之间执行的边缘。这使得掩码向量变量是连续的并且可以直接对 θ 微分,并且没有梯度通过 gᶦʲ 传播(等式 4)。

Eq 4. 使用 gumbel softmax 计算掩码,这里 τ 是温度系数。

温度系数 τ 呈指数衰减。这很有帮助,因为在训练开始时,我们需要具有低方差的梯度,这受到高 τ 值的青睐,从而使m的分布均匀。随着训练的进行,τ 减小,这使得m的分布越来越离散。在训练快结束时,通过离散选择边缘来实现更高的方差是有利的。这有助于温度系数的退火。该管道在开始时用作DARTS(一起训练整个网络),最后用作ENAS(要独立训练的样本子网络)。这里有 2 个参数需要训练w和θ它们是交替和分开训练的。w优化所有候选边,而θ优化选择性能更好的边缘并抑制性能较差的边缘的概率。因此w被训练了几个额外的时期(N_warmup),以便在训练θ 之前得到充分的训练。

针对混合精度量化的问题,DNAS 框架创建了一个具有相同宏观结构(层数和每层滤波器数)的随机超网。使用的损失函数在下面的等式 5 中给出,其中 Cost(a) 表示候选架构的成本(基于选择的权重和激活精度),C(.) 用于平衡交叉熵项和成本(它可以根据选择的超参数偏爱一个)。

Eq 5. 混合精度量化的损失函数

在具有不同网络架构的两个数据集(CIFAR-10 和 ImageNet)上进行了实验。ResNet{20,56,110} 仅在权重上进行量化,并为激活保持全精度,并且在块级别进行搜索,块中的所有层都获得相同的精度。这个实验是在 CIFAR-10 数据集上完成的,按照惯例,第一层和最后一层没有被量化。精度是从 {0, 1, 2, 3, 4, 8, 32} 中选择的,其中 0 表示忽略该块,输入与输出相同,32 表示该块使用全精度。该实验的结果如下图2所示。

CIFAR10 数据集上 ResNet 的混合精度量化。我们在 ResNet{20, 56, 110} 上报告结果。在表中,精度为“Acc”,压缩率为“Comp”。

从上面的结果中,我们可以观察到 DNAS 框架有助于更有效地搜索解决方案,因为总体精度结果更好。此外,所有 Most Accuracy 模型在将模型压缩 11.6x — 12.5x 的同时具有更高的 0.37% 精度,最有效的模型可以实现 16.6x–20.3x 模型大小压缩,精度下降小于 0.39%。从图 3 中我们可以看到,对于最高效的网络,第三个块(在第 1 组中)的精度为 0,这意味着它被跳过了。

ResNet20 最准确与最高效架构的分层位宽

ResNet{18,34} 使用 imagenet 数据集进行量化。他们进行了 2 种不同类型的实验,一种是压缩模型大小,他们只量化权重,另一种是压缩计算成本,他们量化权重和激活。模型压缩的结果如图 4 所示,计算压缩的结果如图 5 所示。DNAS 非常高效,使用 8 个 V100 GPU 在 ResNet 18 上完成对 ImageNet 的搜索不到 5 小时。

ImageNet 上 ResNet 的混合精度量化,用于模型大小压缩。

ImageNet 上 ResNet 的混合精度量化,用于计算成本压缩。“arch-{1, 2, 3}”是按准确度排名的三个搜索架构。

从上图 中可以观察到与图 2 非常相似的情况,DNAS 框架优于全精度对应物,并且最准确模型具有比具有 2 (TTQ) 和 3 (ADMM) 位固定精度的计数器更高的精度。从图 5 中我们可以看到,最准确的架构(arch-1)与压缩率为 40 倍的全精度模型具有非常相似的准确度。arch-2 的压缩率与 PACT、DoReFa、QIP 相似,但精度更高。Arch-3 比 GroupNet 具有更高的压缩率和更高的准确度。

小结

随着对任何 ConvNet 的深入研究,过滤器会不断从数据中学习冗余信息,并且可以将更深的层修剪 90% 以上,而不会损失手头任务的太多准确性,但搜索需要很多时间.

为每一层存储全精度的权重和激活是一种过度杀伤,实验表明,单独的 DNAS(全精度)提高了模型的精度,量化导致了更好的精度他们最准确的模型,并且在他们最有效的模型中下降很少。

模型压缩、模型修剪、量化、神经架构搜索和知识蒸馏等有很多不同的方法,这是一项非常实验性的任务。

DNAS 是一种通用架构搜索框架,不限于混合精度量化问题,可用于不同的应用。

数据驱动的剪枝比基于权重大小或 L1 范数的剪枝效果更好。

“尝试学习”算法本身并不是很有效。我们需要一种方法将整个网络的修剪制定为更高自动化的学习任务,目前它是一项长期运行的顺序任务。

参考

学习在卷积神经网络中修剪过滤器[2018]

通过可微神经架构搜索对卷积网络进行混合精度量化[2018]

 
责编:Challey
阅读全文,请先
您可能感兴趣
2022年卡塔尔世界杯揭开序幕。这一届的世界杯带来更多“科技感”,大到球场,小到足球,方方面面体现了体育与科技的融合。在比赛第一天中,就诞生了世界杯历史上首个被VAR(视频助理裁判)吹掉的进球......
清华大学集成电路学院任天令教授团队根据语音的生成机制开发了一种基于石墨烯的融合肌电电极和力学传感器的双生物通道传感器(DGEMS)用于采集佩戴者说话时下颌部和喉部的肌电信号和力学信号,其中肌电电极和力学传感器均通过激光直写聚酰亚胺薄膜制备,石墨烯肌电电极比商业肌电电极具有更高的信噪比和更低的电极-皮肤阻抗,石墨烯力学传感器具有极高的稳定性,在千万次疲劳测试后依旧可以感知力学变化。
台积电在为数不多的政策补贴下新建工厂必然要失去成本竞争优势,加上很多中后端产品加工主要聚集在亚洲部分地区,必然进一步推升产品最终成本。这也是苹果公司等美国本土企业即使在政府力推产业链回迁的号召下也无动于衷的重要原因。
人工智能研究如今遍地开花,但基本都基于计算机视觉、摄影测量和深度学习。本文提出一种全新概念:“自然智能”。通过对蜜蜂大脑进行反向工程,在机器人算法中实现对大脑工作方式的模拟,从而使机器人能够像自然生物那样感知与行动。目前已在机器人和无人机中实现了稳定的视觉、防撞及导航功能。
随着人工智能、边缘计算、数据中心等数据密集型应用的蓬勃发展,以及电子系统中广泛采用超多处理器内核,对内存带宽、容量与速率的需求与日俱增。各种存储技术不断涌现,但以智能化DRAM为代表的存储技术,将会改变内存市场格局和竞争力。但无论哪种存储技术,在面对存内计算时,其实都还存在一定的挑战。
“元宇宙是全新的,未来有长期想象空间和发展机会的、新的技术能力和体验容器,发展过程一定是上下起伏的,但只要我们认真去探索,不断去积累技术,撬动需求,时间一定会给努力的创业者以丰富的回报。”
德州仪器首席执行官Rich Templeton当选SIA副主席
由于采用性能相对强大的M1处理器和mini-LED屏幕以及更多的创新,新款iPad Pro 2021已经成为消费者心目中最受欢迎。然而,iPad 2却已经在全球范围内被列入“复古和过时”的名单中。
VOA300单端输出可直接连接放大器或模数转换器,汽车级器件,采用单端输出,数据传输速率达1.4 MHz,确保人员和车辆安全。
经过7个月的激烈角逐,2022玄铁杯RISC-V应用创新大赛揭晓获奖名单。基于阿里平头哥玄铁C906的开发板,一批RISC-V创意项目涌现,落地碳中和、智能家居、智慧工厂等场景,最终冠军由华东师范大学“萌新队”获得。
━━ ━━半个世纪前,摩托罗拉展示了第一款手持移动电话。它有一块砖头那么大,但重量是砖的一半。10年后,这个原型孵化出了第一款商用手机。这款手机看起来也很笨拙,但能在用它接打电话时四处走动,这在当时是
2022年11月23日,荣耀正式发布折叠旗舰荣耀Magic Vs系列和荣耀80系列,这是首批搭载全新荣耀MagicOS 7.0操作系统的手机产品。荣耀Magic Vs荣耀Magic Vs系列致力将轻薄
文|Dedee这是“1978-1988那十年”的第8篇,来看看这个满是文化热、留学热,同时又被全球化和商品经济盘得欲仙欲死,满是矛盾的1985年。1985年的开头,从一场特别的讲习班开启。刚成立没多久
最近几年,FPGA这个概念越来越多地出现。例如,比特币挖矿,就有使用基于FPGA的矿机。还有,之前微软表示,将在数据中心里,使用FPGA“代替”CPU,等等。其实,对于专业人士来说,FPGA并不陌生,
EETOP版图就业&提升班正式开班报名!据台媒qooah报道,在今年年中的时候,三星官方就已经公示对3nm 处理器进行投产,但第一个敢于尝试使用的人居然只是一家矿机厂商。不过,三星一方面在寻找外援提高
芯片供应商骗局近期频频爆雷,假货、跑路、维权无门,两眼一抹黑怎么办?【超人投票】告诉你答案,火眼识别靠谱供应商。【超人投票】是芯片超人在2017年推出的,帮助市场上的朋友找到靠谱供应商的决策工具。5年
今天我讲一下我个人对C语言的认识以及自己的理解,若有错误,还望指出,不甚感激。首先是C语言整体的脉络,C语言包括哪些东西?哪些部分需要着重理解?这是我经常问自己的两个问题。01基础性知识最基本的一些数
  文 | 金融街老李尽管资本市场低迷,但低谷时期总有企业能给予惊喜,岚图汽车就是其中一个。上周,岚图有两个动作。一个是在11月14日,岚图召开了2022科技日,发布了全新的ESSA原生智能电动架构以
创芯人才网(https://www.icjob.top)--EETOP旗下半导体微电子领域专业招聘平台,欢迎大家发布职位、传简历!(免费)以下为是一些公司近期发布的数字IC相关职位:扫描二维码,申请以
广告分割线以色列印刷电路板上市大企PCB Technologies Ltd.(股票代码:PCBT)宣布,公司已收购Galil Microwaves&Microelectronics Ltd.的技术和业