|YOLO-v4目标检测实时手机实现,全自动实时移动端AI框架( 二 )


本文插图

图 1. ImageNet 数据集上 VGG-16 第三卷积层中随机选择的卷积核的热力图 。 每个内核中的权重值都经过归一化处理 , 深色表示该处为较高的绝对值 。
基于上述两个发现 , 该研究提出了一个新的稀疏性维度——模式化稀疏度 , 并且提出了基于模式化稀疏度的深度神经网络权重模式化剪枝的概念 。
如图 2 所示 , 模式化剪枝中包含了两种卷积核层面的模型稀疏化方法 , 即卷积核(convolution kernel)模式化剪枝(pattern pruning)与连通性剪枝(connectivity pruning) 。
|YOLO-v4目标检测实时手机实现,全自动实时移动端AI框架
本文插图

图 2. 模式化剪枝示意图 。
为了实现卷积核模式化剪枝 , 该研究在每个卷积内核中删除固定数量的权重 , 其余权重形成具有特定形状的「模式化内核」 。 通过进一步挖掘 , 研究人员发现一些精心设计的卷积核模式(kernel pattern)具有特殊的视觉特性 , 可以潜在地提高图像质量 , 从而增强深度神经网络的特征提取能力 。 但是 , 什么样的卷积核模式能够更好地提升模型性能 , 同时保证硬件执行效率呢?这依然是个重要的问题 。
同时 , 即使存在理论最优的卷积核模式 , 它能否在实际情况中得到深度神经网络的「青睐」?这又给该稀疏化方法的应用增加了不确定性 。 本文将从理论层面、算法实现层面、移动端硬件与编译器优化层面详细论述以上问题 , 并用实验数据展示模式化剪枝在高精度、实时性推理方面的强大作用 。
理论层面
在理论层面 , 该研究从一个全新且独特的角度审视了剪枝的概念 。 不同于将剪枝定义为模型参数的移除 , 这篇论文将剪枝转化成对神经网络模型权重加入一层二进制掩膜 。 研究人员将不同形状的二进制掩膜的集合称为「模式集」(pattern library) , 并将加入掩膜看作一种对神经网络的插值操作 。 通过不同模式的掩膜插值 , 得到一些功能性图像滤波器特征 , 能够实现图像的锐化与降噪 , 提高图像质量 。 值得一提的是 , 插值操作的过程仅需要少量种类的卷积核模式(或者说一个小尺寸的模式集) 。
这样做所带来的好处是:(i)在算法层面 , 相对较少的卷积核模式可确保合适的搜索空间 , 以实现在深度神经网络上得到较好的训练效果;(ii)从编译器角度来看 , 更少的模式意味着更少的计算范式 , 从而能够潜在地降低线程分支 。
图 3 展示了该研究设计的八种卷积核模式 , 通过 n 次插值 , 图 3(上)能够得到高斯滤波器 , 图 3(下)能够得到增强型拉普拉斯高斯滤波器 。 其中 n 代表神经根网络层数 , 系数 p 为任意位置 1 出现的概率 , 在正则化运算后没有实际意义 。
|YOLO-v4目标检测实时手机实现,全自动实时移动端AI框架
本文插图

|YOLO-v4目标检测实时手机实现,全自动实时移动端AI框架
本文插图
图3.卷积核模式设计 。
算法实现层面
通过上述理论推导 , 我们得到了八种卷积核模式作为模式集 。 但是 , 一些至关重要的问题仍未得到解决 。 例如 , 这些从理论层面得出的最优模式集在算法实现层面上也是最理想的吗?即便以上问题的答案是肯定的 , 那么如何为每个卷积核选择合适的卷积核模式并训练非零权重?
为了回答上述问题 , 研究者在算法实现层面 , 设计了模式化稀疏度感知训练框架(pattern-aware network pruning framework) , 能够同时实现卷积核模式集的自动提取 , 模式化稀疏度的自动选择与模型训练 。
在卷积核模式集的自动提取中 , 研究人员首先构建一个模式集全集 , 包含了所有可能种类的卷积核模式 。 在训练过程中 , 他们将这个模式集作为稀疏化目标 , 通过 ADMM(alternating direction method of multipliers)将原始剪枝问题解耦为 Primal-Proximal 问题 , 迭代式地通过传统梯度下降法求解 Primal 问题 , 并引入一个二次项迭代求解 Proximal 问题 。 通过每次 Primal-Proximal 迭代更新 , 使卷积核动态地从模式集中选择当前最优的卷积核模式 , 并同时通过梯度下降法训练该模式非零位置的权重 。 当卷积核对稀疏模式的选择趋于稳定的时候(一般仅需要迭代 3-5 次) , 就可以删除掉那些被选择次数非常少的卷积核模式 , 从而将模式集的大小降低 , 并用更新后的模式集进行下一轮迭代 , 最终实现模式集的自动提取 。


推荐阅读