新闻  |   论坛  |   博客  |   在线研讨会
CVPR 2023 ,BP网络剪枝了就不好使?(1)
计算机视觉工坊 | 2023-08-20 18:47:01    阅读:1667   发布文章

1 背景

最近,深度神经网络(DNN)在计算机视觉和自然语言处理任务的广泛实际应用中取得了令人印象深刻的突破。这种最先进的性能主要归功于 DNN 巨大的表示能力 。根据柯尔莫哥洛夫叠加定理]和万能逼近定理,DNN能够一致地逼近任何具有适当权重的连续多元函数。为了获得更好的性能,大量的参数和计算被分配给 DNN ,这严重限制了其在内存和计算受限设备上的应用。因此,人们提出了许多方法来压缩和加速神经网络,包括修剪、量化和神经架构搜索。DNN 在处理具有挑战性的自然信号(例如图像或音频信号)转换方面特别成功。由于此类模拟信号不可避免地被离散化,因此神经网络通常执行离散表示和变换,例如矩阵乘法和离散卷积。然而,对于此类表示,一旦训练过程完成,就无法调整神经网络的大小,而不会在推理阶段遭受严重的性能下降。尽管已经提出了几种网络剪枝方法来从训练模型中提取关键通道并生成有效的模型,但它们要么会遭受显着的精度下降,要么需要在整个训练数据库上微调模型。随着硬件的发展,出现了各种具有不同存储和计算能力的边缘设备,从普通处理器到专用神经网络加速器,不同设备的模型大小差异很大。此外,许多任务(例如自动驾驶)根据不同的场景或条件(例如行驶速度和天气条件)在同一硬件上需要不同的响应速度。处理此类问题的传统方法是针对所有可能的场景设计多个模型架构并将它们存储在一起。然而,这种策略的缺点是需要大量的资源用于训练和存储空间。因此,设计在推理过程中具有自调整大小能力的神经网络,同时保持相同水平的性能至关重要。

2 BP神经网络回顾

此节为笔者方便理解本论文而加的,论文中无此部分内容,若读者对传统神经网络模型非常熟练则可跳过本节。图片BP神经网络工作流程:1.将输入样本提供给输入层神经元
2.逐层将信号前传至隐层、输出层,产生输出层的结果
3.计算输出层误差
4.将误差反向传播至隐藏层神经元 (链式法则
5.根据隐层神经元对连接权重进行调整(梯度下降法)
6.上述过程循环进行,直至达到某些停止条件为止
在BP神经网络中权值是离散变化的,权值变化的方向是误差对权值的偏导数(微分)的负方向,主要涉及微分运算。

3 主要贡献

1.提出了一种新型的神经网络:受到输入信号固有连续性的启发,作者通过探索沿卷积核和通道维度的连续表示来挑战神经网络的离散表示,催生了一类新的网络——积分神经网络(INN), INN 采用高维超立方体将一层的权重表示为连续表面。2.定义了类似于神经网络中传统离散算子的积分算子:INN 可以通过前向传递的数值积分求积转换为传统的张量表示。在推理阶段,可以方便地将此类网络离散化为任意大小,并具有各种积分核的离散化区间。由于表示是由积分算子组成的,因此离散化连续网络可以被视为数值求积近似过程。当间隔足够小时,各种离散化间隔的估计值都接近于积分值。因此,当用不同的间隔离散化 INN 来生成不同规模的网络时,它能够在一定程度上保留原始性能,而不需要额外的微调。这种神经网络的表示可以在处理不同条件和硬件设置下有效网络部署的重要问题中发挥至关重要的作用。

前三节的总结:传统的神经网络模型使用离散权重张量表示网络层的权重,而本文提出的INN模型使用连续函数表示权重,并通过连续积分操作替换输入层的离散变换。

4 神经网络与积分算子

作者提出的想法背后的直觉是基于完全连接和卷积层可以被视为特定积分的数值积分的观察。为了说明这一点,可以考虑下面的例子。设W(x), S(x)为单变量函数,则有:图片其中,是积分求积的权重,是满足以下不等式的段分区: 0 = x0 < x1 <…< xn−1 < xn = 1 这一对被称为数值积分法。一般的数值积分方法是使用输入函数的不同近似来构建的(我们参考图2所示的示例)。图片

4.1 DNN 层作为积分算子

常用的线性网络层可以表示为具有特定积分核的积分算子, 虽然这些层充当实线性空间 R k 上的线性算子,但积分算子充当可积函数 L 2 的线性空间上的线性算子。因此,并非所有输入数据都可以有意义地被视为连续可积函数。然而,数字图像和音频信号是模拟信号的离散化,因此它们可以自然地用于积分网络中。

1.卷积或互相关层

卷积层定义了一个多通道信号到另一个多通道信号的变换。对于积分算子,这一层的权重由一个可积函数表示,其中x s是表示维度的标量或向量,对其进行卷积,λ是可训练参数的向量。输入输出图像用可积函数表示,通过权函数连接如下:

2.全连接层

一个全连通层通过矩阵乘法定义一个向量到另一个向量的变换,该层的权值由可积函数FW (λ, xout, xin)表示。与卷积算子类似,λ定义了积分核的可训练参数向量,输入输出函数分别用可积函数FI (x in)、FO(x out)表示,通过权函数连接如下:

3.池化与激活函数

池化层在积分或信号离散化方面也表现出有意义的解释, 平均池化可以解释为沿空间维度与分段常数函数的卷积。MaxPooling 可以解释为信号离散化的一种方式, 积分网络中的激活函数通过以下等式自然地与传统网络中的激活函数联系起来:用D表示在给定分区Px上计算标量函数的离散化操作。这个方程表明,对离散信号应用激活函数相当于对连续信号应用激活函数的输出进行离散化。图片图3 积分层评估的可视化。连续权重沿着变量 x in 、xout 进行离散化,并通过积分求积 Q 的元素乘积进行调整。

4.通过积分进行评估和反向传播

为了快速积分评估,积分核经过离散化过程,然后传递到传统层进行数值积分。事实证明,任何复合求积都可以通过这种传统的层评估来表示。对于通过积分的反向传播,使用链式法则来评估可训练参数 λ 的梯度,就像在离散网络中一样。所描述过程的有效性由以下引理保证,其证明可以在附录 A(论文补充里) 中找到。

4.2连续参数表示

更丰富和更通用的连续参数表示允许在任何给定分辨率的推理时间对离散权重进行采样。作者将连续权重紧凑地参数化为插值核的线性组合,插值节点在线段 [0, 1] 上均匀分布:FW (λ, x) = m i=0 λiu(xm − i),其中 m 和 λi 分别是插值节点的数量及其值。出于效率目的,作者利用可用的硬件和现有的深度学习 (DL) 框架,并依赖如图 4 所示的三次卷积插值,该插值用于在 GPU 上进行高效的图像插值。尽管与三次样条插值略有偏差,但这种方法速度明显更快,并且比线性插值更好地保留了细节。在多维度的情况下,我们建议使用可分离的内核在立方体 [0, 1]n 上定义插值,这与现有的深度学习框架完全兼容。连续表示被离散化为标准权重张量 W,由前向传播中的相应层使用。图 4 描绘了连续参数表示和离散化的可视化示意图。图片图 4 连续参数表示和沿一维采样的可视化。连续表示(c)是三次卷积核(a)与插值节点(b)线性组合的结果。在正向阶段,它被离散化 (d) 并与积分求积相结合。笔者认为图4是理解本论文的关键,它描述了积分神经网络中的权值是怎么求得的,首先是由可训练的插值节点对一个三次卷积核函数进行插值得到权值函数,再对权值函数进行离散得到权值,注意权值函数的离散步长和区间也是可以调整的。

1.全连接层和卷积层的权重表示

全连接层由二维权重张量定义,因此,用正方形 [0, 1]2 内的均匀二维网格上的二维核的线性组合来表示它们:图片全连接层的离散权重张量 Wq 是通过对分区 P out 和 P in 上的连续表示进行采样并根据式(1)的积分求积对结果进行加权来获得的:图片

2.可训练的分区

到目前为止,只考虑具有固定采样步骤的均匀分区。然而,非均匀采样可以在不增加分区大小的情况下提高数值积分,固定采样点的放松引入了新的自由度并导致可训练的分区。通过训练可分离分区,可以平滑有效地获得任意矩形分区, 这种技术为新的结构化修剪方法提供了机会。结合第下一节的转换策略,这可以减少预训练离散 DNN 的大小,而无需调整其余参数。我们不使用直接分区参数化 P,而是采用向量 δ = (0, δ1, ..., δn) 的潜在表示,以便满足以下条件:δnorm = δ 2 sum(δ 2) , P = cumsum(δnorm ),这种参数化保证结果是在整个段 [0, 1] 上延伸的正确定义(排序)的分区 P。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客