手机实时人工智能之「三维动作识别」:每帧只需9ms

来自美国东北大学(NortheasternUniversity)的王言治研究组、威廉与玛丽学院(William&Mary)的任彬研究组以及北卡罗来纳州立大学(NorthCarolinaStateUniversity)的慎熙鹏研究组提出了一种用于三维卷积神经网络(3DCNN)的模型压缩和移动加速框架RT3D。

现在大量移动设备配备了强大的高端移动CPU和GPU,因此成为深度学习任务的重要载体。如图1所示,最新的骁龙690SoC芯片配备了一个AdrenoGPU,一个HexagonDSP,以及Kryo多核CPU。然而,目前的模型加速技术多应用于2DCNN上,很难使3DCNN在移动设备上实时运行且保持较高精度,因为现存的商用移动设备的计算和存储能力不能承载高度复杂的模型结构和较高的模型维度。

图1骁龙690移动SoC架构

神经网络的权重剪枝技术在软件层面上已被普遍应用。然而,直接将2DCNN权重剪枝方法泛化到3DCNN并不足以使移动设备上的计算同时保持高并行度和高准确度。因此,我们提出了RT3D,通过结合软件上的权重剪枝技术和硬件上的编译器代码优化技术在移动设备上实现3DCNN加速。其中权重剪枝又需要解决稀疏模式和剪枝算法两个问题。

我们研究了两种结构化稀疏模式,即对移动端加速友好的朴素结构化(Vanilla)稀疏和核组结构化(KernelGroupStructured,KGS)稀疏。Vanilla稀疏移除整组核,而KGS稀疏是一种更加细粒度的结构化稀疏,充分利用了设备上的并行性,同时享有更高的灵活性。在剪枝算法方面,RT3D引入了一种重新加权的正则化剪枝算法来实现所提出的稀疏模式,并和现存的启发式及固定正则化的剪枝算法进行了比较。此外,在硬件方面,RT3D采用了一个编译器辅助的代码生成框架,以将剪枝所带来的计算量的减少转换为移动设备上计算性能的增益。

图2实时3D行为识别

稀疏模式

为了有效减少3DCNN模型的整体计算量,我们将剪枝技术主要应用于计算量较大的卷积层。图3给出了两种结构化稀疏模式,其中(a)为朴素结构化(Vanilla)稀疏,(b)为核组结构化(KGS)稀疏。每个3D卷积层共包含五个维度,其权重张量沿着输入通道和输出通道两个维度被分成多个卷积核组。图中以每个核组包含2×2个核为例,被移除的权重用灰色表示。Vanilla稀疏保留或移除整个核组,KGS稀疏法则在同一核组的每个核中移除相同位置的权重。Vanilla稀疏将2DCNN的结构化稀疏模式泛化到3DCNN中,它可以借助编译器优化技术在设备上获得直观的运行加速,但同时会因整组核被移除导致模型准确率降低较多。而KGS稀疏有更高的细粒度以及灵活性,可以保证更高的准确率。

实际上,Vanilla稀疏是KGS稀疏的一个特例,在相同压缩比率下,只要借助有效的剪枝算法,KGS稀疏法就能获得比Vanilla稀疏法更高的模型准确率。此外,KGS稀疏在设计上能与编译器技术匹配以达到手机上的模型加速。卷积核组与输入特征图一起被转化二维矩阵以进行矩阵乘法计算,如图3(b)所示。KGS稀疏法相当于在核组内部进行列剪枝,计算开销很小并可借助编译器进一步减小。对于两种稀疏模式而言,被保留的权重组成的矩阵仍然能够充分利用现有手机设备上有限的并行度,所以手机加速性能(FLOPs/秒、帧/秒)能够得到同等程度的提升。在实际操作中,卷积核组的大小需要根据手机上的单指令流多数据流(SIMD)并行度以及计算开销来提前决定。

图3两种结构化稀疏模式

模型压缩的算法实现

近年来较为常见的剪枝算法大致可以分为两大类,一类是启发式剪枝算法,另一类是基于固定正则化的剪枝算法。前者往往会为神经网络中各部分权重分配“重要性评分”,然后根据评分来对模型进行剪枝。贪心算法是这一类型算法中的一个代表。这类算法往往存在一个通病,它们会在压缩的早期阶段就削减掉模型中的大量权重,这会对神经网络准确度带来较大的冲击,使得压缩比率有限。

第二类剪枝算法基于固定正则化,这种算法一般会在神经网络的损失函数中添加一个固定的正则化项,通过神经网络的反向传播来实现权重矩阵的稀疏化,进而完成模型的裁剪。但基于固定正则化的剪枝算法存在局限性,在压缩训练的收敛过程中,所有权重会受到同等的惩罚,这会带来潜在的模型精度损失。

为了克服先前算法的弊病,我们提出了一种新的算法:重加权正则化剪枝算法(ReweightedRegularizationPruningAlgorithm)。不同于固定正则化剪枝为所有权重带来相同的惩罚,重加权正则剪枝算法可以实现动态调节。特别是,对于那些较大且更加重要的权重,我们会减少对其的惩罚,对于那些较小且不重要的权重,我们会小幅度地增大对其的惩罚。而且这种算法以系统且渐进的方式执行,这样可以避免贪心算法在早期阶段削减大量的权重对模型造成的破坏。除此之外,我们的算法不需要手动设置模型中每层的剪枝率,各部分的压缩比率可以在训练过程中自动调节。

性能加速结果

我们在三种3DCNN模型(C3D,R(2+1)D和S3D)上测试了建议的两种结构化稀疏模式(即Vanilla和KGS稀疏模式)以及三种剪枝算法。除了提出的两种稀疏模式之外,还实现了过滤器稀疏模式来进行对比,即以过滤器作为一个整体来进行裁剪,这是对2DCNN过滤器剪枝的直接实现。所有模型都在Kinetics数据集上进行了预训练,并作为预训练模型进行迁移学习,转移到了UCF101和HMDB51数据集上。

表1在UCF101数据集上3DCNN压缩结果比较

表1提供了在UCF101数据集上使用各种剪枝算法和稀疏模式对C3D,R(2+1)D模型的修剪结果。对于每种剪枝算法,在相同剪枝率下比较了三种稀疏模式(FLOPs减少是基于模型整体而言的),并比较了两种剪枝配置下的KGS压缩结果。从表中可以看出,KGS稀疏模式始终优于Vanilla稀疏模式,这两个方案的性能均优于过滤器剪枝。重加权的正则化算法始终优于其他两个剪枝算法。如果使用加权加权正则化和KGS稀疏性方案,则在2.6倍剪枝倍率下,C3D和R(2+1)D只有1%1.5%的精度损失。

RT3D在移动CPU和移动GPU上都支持稠密的(尚未压缩的)和稀疏的3DCNN,PyTorch仅在CPU上支持稠密模型,而MNN仅在CPU上支持稠密C3D模型。对于稀疏模型,RT3D使用带有KGS稀疏性的重加权正则化剪枝算法修剪模型,修剪率分别为C3D3.6倍,R(2+1)D3.2倍,S3D2.1倍(这里的剪枝率是对于模型的整体FLOPs),准确度为80.2%,92.0%和90.2%。在表中,将RT3D的提速与PyTorch进行了比较。在所有情况下,RT3D在移动CPU上均优于MNN和PyTorch。而在移动GPU上RT3D的效果更为出色。例如,对于C3D,完全优化的RT3D(稀疏)在CPU上分别达到了PyTorch和MNN性能的7.1倍和2.7倍,在GPU上分别达到了17.9倍和6.7倍。值得注意的是,在移动GPU上,经过全面优化的RT3D在C3D,R(2+1)D和S3D上可以分别在142ms,141ms和293ms内完成16帧计算,从而实现3DCNN在移动设备上的实时运行。

表3Vanilla和KGS稀疏模式之间的比较(基于UCF101数据集)

更广泛的影响

RT3D是第一个在移动设备上实时运行3DCNN且没有明显准确率损失的神经网络加速方案,在此之前只能通过移动设备上特定(而且更加昂贵)的硬件来实现。对于以往通过云计算的方式实现的行为检测的机器学习应用,RT3D将会在移动设备上以边缘计算的方式实现。这项技术不仅可以使数据隐私性得到了显着增强,还可以极大地拓宽机器学习在其他领域的应用。

百万级文献分析,十万字深入解读

2020-2021全球AI技术发展趋势报告

报告内容涵盖人工智能顶会趋势分析、整体技术趋势发展结论、六大细分领域(自然语言处理、计算机视觉、机器人与自动化技术、机器学习、智能基础设施、数据智能技术、前沿智能技术)技术发展趋势数据与问卷结论详解,最后附有六大技术领域5年突破事件、SyncedIndicator完整数据。

THE END
1.模拟试题第六套及答案解析新浪教育23.北京农业大学的教授在河北省推广柿树剪枝技术时,为了说服当地的群众,教授把一块柿树园一劈为二,除自然条件相同外,其他的条件包括施肥、灭虫、浇水、除草等也都相同,其中的一块柿树剪枝,而另一块不剪枝。到收获季节,剪枝的一块柿子的产量比不剪枝的多三成以上。这下农民信服了,先进的剪枝技术很快地推广开来。 https://edu.sina.com.cn/exam/2006-10-08/140856290.html
2.(六)从零开始学人工智能搜索:对抗搜索在这里,我们借用剪枝技术消除搜索树的很大一部分,应用到一棵标准的极小极大值树上,它剪裁掉那些不可能影响最后决策的分支,仍然可以返回和极小极大值算法同样的结果。 我们先来理解一下,怎么样的搜索是没有必要的,假设我们限定了搜索深度为3,我们从头开始搜索,如下: ...https://www.jianshu.com/p/f48e0191c2ee
3.说法错误的是:()A.αα-β剪枝使用到了宽度优先算法 B. Alpha Go问世,将深度学习、价值网络、蒙特卡洛树搜索技术融合,战胜人类顶尖棋手 C. α-β剪枝在很长一段时间里都是棋类算法的代表,取得一系列成就 D. 蒙特卡洛树搜索”方式,以“信心上限决策”打分,使计算机围棋能力得到质的提升。为后续方法奠定基础 点击查看答案进入小程序搜...https://m.ppkao.com/wangke/daan/97f2a2f807b043468e1bcd845afd67aa
1.深度学习中的剪枝算法以及具体应用嘲稀疏剪枝深度学习中的剪枝(Pruning)算法是一种通过减少神经网络中不重要或冗余部分来提升计算效率和减少模型尺寸的技术。剪枝不仅可以提高模型的推理速度,还能降低内存占用,特别是在资源受限的环境中,如移动设备或嵌入式设备。剪枝的核心思想是“去除”对模型输出影响较小的参数(如权重、神经元等),从而优化网络结构。 https://blog.csdn.net/m0_45276337/article/details/143588383
2.剪枝java是啥意思什么是剪枝算法小鱼儿的技术博客剪枝优化 剪枝算法概述 基本概念: 在搜索算法中优化中,剪枝,就是通过某种判断,避免一些不必要的遍历过程,形象的说,就是剪去了搜索树中的某些“枝条”,故称剪枝。应用剪枝优化的核心问题是设计剪枝判断方法,即确定哪些枝条应当舍弃,哪些枝条应当保留的方法。 https://blog.51cto.com/u_12205/11088448
3.一年两茬茄子是怎么种出来的?2018~2020年种什么品种好?掌握这些...剪枝再生技术夏季高温季节,正值露地茄子大量上市,大棚越冬茄子开始出现生长不良、产量降低、品质不佳,市场价格快速下跌。按照“预防为主,综合防治”的植保方针,坚持以“农业防 茄子是餐桌上比较常见的一种蔬菜,因营养价值高且价格便宜而被广泛食用,目前大部分地区都有种植,而在种植的区域中,大部分地区都是一年一茬,...https://nync.guiyang.gov.cn/xwdt/kjzc/202002/t20200220_50327638.html
4.葡萄树冬季怎么整形修剪?葡萄冬季修剪技术要点介绍葡萄冬季修剪技术要点介绍 导读:到了冬天,种植葡萄的果农们就要开始准备为自家的葡萄整形修剪以及葡萄冬季的合理施肥。葡萄树的冬季管理是葡萄生产的一个重要环节,此间应重点做好整形修剪,清园杀菌,深翻、施肥与冬灌和防寒等项工作。 到了冬天,种植葡萄的果农们就要开始准备为自家的葡萄整形修剪以及葡萄冬季的合理施肥...https://m.cnhnb.com/xt/article-43441.html
5.GPT4大模型硬核解读,看完成半个专家第二种模型压缩方法是剪枝(pruning),即删除GPT-4的网络元素,包括从单个权重(非结构化剪枝)到更高粒度的组件如权重矩阵的通道。这种方法在视觉和较小规模的语言模型中有效,也是很多框架(Framework)上自带的功能。 第三种模型压缩方法是稀疏化。例如奥地利科学技术研究所(ISTA)提出的SparseGPT可以将GPT系列模型单次剪枝...https://m.36kr.com/p/2196628560234373
6.人工智能经典习题集及各章总结(期末考试必备)江阴雨辰互联第二阶段(50年代中~60年代中) 通用方法时代 第三阶段(60年代中~80年代初) 知识工程时代 第四阶段(80年代中~90年代初) 新的神经元网络时代 第五阶段(90年代初~现在) 海量信息处理与网络时代 2.人工智能研究的基本内容是什么? 解:基本内容是:搜索技术、知识表示、规划方法、机器学习、认知科学、自然语言理解...https://www.yc00.com/xiaochengxu/1690506190a360936.html
7.目标检测究竟发展到了什么程度?CVHub带你聊一聊目标检测发展的...目标检测的发展脉络可以划分为两个周期:传统目标检测算法时期(1998年-2014年)和基于深度学习的目标检测算法时期(2014年-至今)。而基于深度学习的目标检测算法又发展成了两条技术路线:Anchor based方法(一阶段,二阶段)和Anchor free方法。下图2-1展示了从2001年至2021年目标检测领域中,目标检测发展路线图。 https://cloud.tencent.com/developer/article/1842152
8.关于植树节植树的作文(通用63篇)爸爸对我说:“首先必须掌握剪枝技术。”“那,什么是剪枝技术?”“剪枝技术就是树苗在栽培之前,要先根据树苗的大小,枝丫的多少进行修剪。把多余的细枝都剪去,这样就能减少树苗对营养的需求,便于生根发芽。来,把这几根剪了,就可以了。”“哦,我知道啦。”我拿起剪刀,按照爸爸指示剪下了几根没有用处的枝丫。就...https://www.ruiwen.com/zuowen/zhishujie/4363043.html