当前位置:首页 期刊杂志

基于融合多级注意力迁移的神经网络压缩方法

时间:2024-05-04

李俊杰 彭书华 郭俊伦

(北京信息科技大学自动化学院 北京 100101)

0 引 言

随着卷积神经网络(Convolutional Neural Network,CNN)技术的不断发展,在图像处理方面,相较于传统算法,卷积神经网络表现得更加能够适应任务的需求,且其优异性是传统算法所不能及的。卷积神经网络的能力之所以能够如此优越,很大一部分原因是其网络深度的不断增加,能够从图像数据中提取出更高层更抽象的特征。但是随着网络深度的增加,其结构也越来越复杂,网络模型所需要的存储空间和浮点计算次数也成倍地增加,这些拥有百万级网络参数和上亿次浮点运算的网络模型非常消耗存储空间和计算能力。

得益于图形处理器(Graphics Processing Unit,GPU)强大的计算能力,缩短神经网络模型的训练周期,加速了神经网络的计算,卷积神经网络不断地被应用于计算机视觉领域,并且取得了突破性的成效,如图像分类、语义分割和目标检测等都使用了卷积神经网络技术。但是在实际应用中,往往使用的是一些内存小、计算能力弱的嵌入式设备,而精度高但是结构复杂的网络模型很难在这些资源受限的设备上存储和运行,神经网络压缩与加速技术便应运而生,目的就是在尽量保证网络模型性能的情况下,降低网络模型的计算量和减少存储空间。目前主流的网络压缩与加速方法[1]主要有以下六种:网络剪枝、参数共享、权值量化、低秩分解、紧凑型网络设计和网络精馏。

网络精馏相较于其他的方法有着优秀的压缩效果,它是利用学生网络学习教师网络所学习到的知识来提升学生网络的准确度,从而达到网络压缩的目的,其中学生网络拥有较少的网络参数。Hinton等[2]提出了知识蒸馏的方法,使用双网络结构将教师网络学习到的知识,即数据标签的软分布传递给学生网络。Romero等[3]突出了Fitnets模型,引导学生网络学习教师网络中间的输出。Zagoruyko等[4]将注意力机制引入了网络精馏的方法中,将教师网络学习到的注意力作为“知识”传递给了学生网络。Zhou等[5]提出了新的网络精馏结构,使教师网络与学生网络共享基层网络,同时提升教师和学生网络的精度,但是牺牲了学生网络的灵活度。Mirzadeh等[6]提出了多级网络精馏,使用一个中等规模的网络作为“教师助理”,将大规模教师网络和小规模学生网络相联系,能够有效提升学生网络的性能。此外,网络精馏在其他的任务上也有很好的应用效果。高钦泉等[7]将此方法改进之后运用在了高分辨率的图片的处理中。Li等[8]和Chen等[9]将网络精馏的方法引入到目标检测。

网络精馏的主要问题是教师网络与学生网络之间所要传递的“知识”,因此,本文提出一种新颖的方法,使用多级注意力机制融合的方法,将融合成的新的注意力图作为“知识”由教师网络传递给学生网络,提升学生网络的准确度,实现模型压缩的目的。

1 相关知识

1.1 注意力机制

注意力机制最早在自然语言处理等领域中提出并使用,取得了相当不错的效果,后被引入了计算机视觉领域。其基本思想是:网络中每层输出特征的重要性是不同的,这种差异可以体现在通道(Channel Domain)上,也可以体现在空间域(Spatial Domain)上,之后的网络层更应该注重其中重要的信息,而抑制不重要的信息。在卷积神经网络的应用中,Jaderberg等[10]提出的STNet网络模型是空间域上的注意力机制的体现,它所关注的是空间上的位置信息,而Hu等[11]提出的SENet网络模型改变了不同通道的权重,是通道域上注意力机制的体现,Woo等[12]将通道注意力和空间注意相融合,利用空间域和通道域的注意力机制并联或者串联,提出了CBAM网络模型。而SKNet的提出者Li等[13]着重于卷积核的重要性,利用不同尺度的卷积核来筛选网络层输出的特征图,进而形成带有注意力机制特征图。

1.2 注意力迁移

Zagoruyko等[4]将注意力机制引入到网络精馏中,利用教师网络学习到的注意力机制来提升学生网络的性能,提出了注意力迁移(Attention Transfer)的方法。该方法利用网络中间卷积层输出的特征图(Feature Map)生成注意力图(Attention Map)的方式,并且以相同的生成注意力图的策略使用在教师和学生网络中,在教师-学生网络联合训练中,保持教师网络参数不变,不断缩小二者生成的注意力图的距离损失(Attention Transfer Loss),达到注意力迁移的目的,同时配合真实数据标签的损失,训练学生网络的参数,以提升学生网络的准确度。其结构如图1所示。

图1 注意力机制迁移网络结构

2 本文方法

2.1 融合多级注意力迁移网络结构

Zagoruyko等[4]所提出的注意力机制迁移的方法中,相邻的卷积块所生成的注意力图是相互独立的,没有充分利用相邻卷积块所生成的注意力图之间的联系,为此,本文提出一种基于教师-学生网络结构的融合多级注意力的迁移方法,融合多级注意力迁移方法将教师网络相邻的卷积块所生成的注意力图相融合,打破了各级注意力图之间互相独立的关系。新的注意力图不仅仅拥有教师网络该位置卷积块所学习到的注意力机制,同样也会继承其相邻上一级卷积块所学习到的注意力信息,有助于学生网络不仅仅学习教师网络中相对应位置的注意力信息,还会学习上一级的注意力图中的注意力信息。同时,融合多级注意力迁移的方法有助于缓解学生网络中由于网络本身结构中如卷积层和池化层所导致的信息丢失,从而增强学生网络的特征提取能力,提升网络模型的性能,其网络结构如图2所示。

图2 融合多级注意力网络结构

设S、T、WS、WT分别表示学生网络和教师网络以及它们所对应的权重,L(W,x)表示标准交叉熵,I表示所有要迁移的注意力图的索引。可以定义以下损失函数:

(1)

2.2 生成注意力图的方式

注意力图是由教师网络中间层输出特征图映射而成的。定义一个卷积层的输出的特征图是A∈R(C×H×W),其中:C表示输出特成图的通道数;H和W表示输出特征图的空间维度。函数F表示将3D特征图映射成为2D空间注意力图,如图3所示。

图3 生成注意力

函数F可表示为:

F:RC×H×W→RH×W

(2)

Zagoruyko等[4]提出了基于通道维度信息上的三种方法,分别为通道绝对值求和、绝对值指数求和、指数最大值。其定义公式如下:

(3)

(4)

(5)

式中:Ai,H,W表示通道域上的元素级别的运算。

本文提出将空间域上的信息与通道域上的信息相融合的方式,定义一个卷积层的输出的特征图是A∈RC×H×W,其中:C表示输出特成图的通道数;H和W表示输出特征图的空间维度。首先通过函数H将3D特征图A∈RC×H×W映射成为1D张量B∈RC×1×1,再将A∈RC×H×W与B∈RC×1×1进行通道域上的运算,得到3D张量C∈RC×H×W,最后函数F映射成为2D注意力图。其中函数H的定义公式如下:

(6)

其结构示意图如图4所示。

图4 生成融合注意力

3 实 验

3.1 实验数据集及设置

本文使用公开的基准数据集CIFAR进行训练和测试,CIFAR- 10数据集由10类32×32的彩色图片组成,总共包含60 000幅图片,其中训练集为50 000幅图片,而测试集有10 000幅图片。而在CIFAR- 100数据集中,将类别扩展到了100类。

本文方法在CIFAR数据集上,使用标准的随机梯度下降法(Stochastic Gradient Descent,SGD)训练模型,设置批次大小(Batch Size)为128,基础学习率(Learning Rate)为0.1,衰减率为0.2,权重衰减(Weight Decay)为0.000 5,每次训练300轮,其中学习率分别在第60、120、160、200、250、270轮时进行衰减。

实验中用到的主干网络是残差网络(ResNet),由于CIFAR数据集中的图像数据拥有较小的分辨率,且在神经网络中会对图片进行向下采样,从而顶层得到的特征图的分辨率会更低,所以在每层卷积的输出都会使用零填充(Zero Padding)进行处理。此外,对数据集使用水平翻转(Horizontal flips)和随机裁剪(Random crops)进行数据增强,并且所有网络都具有批量归一化功能。本文所有实验均在PyTorch框架下进行,使用NVIDIA GPU。

3.2 融合多级注意力迁移实验结果及分析

在本实验中,分别测试了具有相同网络深度但输出特征图数量不同的教师-学生网络(NET- 162/NET- 161)和不同网络深度但输出特征图数量相同的教师-学生网络(NET-401/NET- 161、NET- 402/NET- 162)以及不同网络深度且输出特征图数量不同的教师-学生网络(NET- 402/NET- 161)。在教师-学生网络的联合训练中,保持教师网络参数不变,对学生网络的参数进行计算。实验结果如表1所示,实验数据集使用CIFAR- 10数据集,实验所采用的注意力图映射函数为Fsum(A)。

表1 各个算法的错误率(%)

由表1可知,使用了融合多级注意力迁移方法的学生网络(MAT),相较于不使用任何方法的学生网络(Stu)准确率提升了1.0百分点到1.5百分点,相较于传统的知识蒸馏[2](KD)准确率提升了0.2百分点至0.5百分点,相较于注意力迁移[4](AT)在网络结构(NET- 401/NET- 161、NET- 402/NET- 161)中准确率提升了0.30百分点至0.45百分点。

其中,NET- 402、NET- 401、NET- 162和NET- 161的参数量分别为2.2 MB、0.6 MB、0.7 MB和0.2 MB。由此可见,将学生网络参数量缩小为教师网络三分之一,甚至更低的情况下,本文方法进一步提升了学生网络的准确度。

3.3 注意力图映射函数实验结果与分析

表2 不同映射函数的错误率(%)

3.4 在CIFAR- 100数据集上的实验结果

为了进一步验证融合多级注意力迁移方法,选择了类别更多的CIFAR- 100进行实验,使用注意力图映射函数Fsum(A)。其结果如表3所示。

表3 在CIFAR- 100数据集上的错误率(%)

从表3中数据可知,在类别更多的数据集中,使用了融合多级注意力迁移的学生网络(MAT)相比较于原始学生网络(Stu),准确率提升了1.5百分点到3.0百分点,而相比于注意力迁移(AT),准确率也有所提升,其中NET- 401/NET- 161提升比较大,有2.0百分点的提升。这进一步验证了融合多级注意力迁移方法在网络精馏的框架中能够有效提升学生网络准确率的作用。

4 结 语

本文所提出的基于教师-学生网络的融合多级注意力迁移的方法,进一步验证了注意力机制在网络精馏方法中所具有的独特作用。融合多级注意力方法打破了教师网络模型中各个卷积块生成注意力图的独立关系,使相邻的注意力图相融合,形成了更加紧密的联系,同时也缓解了数据信息的丢失。相比于教师网络,在学生网络的参数量减少为教师网络的参数量的三分之一甚至更多的情况下,准确率的损失仅有1.5百分点至2.5百分点,而相比于其他方法,融合多级注意力迁移的方法进一步提升了学生网络的准确率。

基于教师-学生网络结构的网络精馏,由于其学生网络要学习教师网络的“知识”,所以在结构方面很大程度受限于教师网络本身的结构,没有足够的灵活性,在之后的工作中,将进一步研究更加有效的注意力迁移策略。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!