一种卷积神经网络中的启发式滤波器剪枝方法和系统与流程

    专利2022-07-08  125


    本发明属于计算机技术领域,更具体地,涉及一种卷积神经网络中的启发式滤波器剪枝方法和系统。



    背景技术:

    卷积神经网络在计算机视觉领域应用非常广泛,但因巨大的计算成本和存储开销,导致其无法在资源受限的设备(如移动设备)上部署。有鉴于此,剪枝方法目前被广泛使用,用于降低卷积神经网络的网络复杂度,并达到压缩网络的目的。

    如今,对卷积神经网络中滤波器的剪枝过程通常采用启发式算法,即通过判断每个卷积层中各个滤波器的重要性,去除卷积神经网络中不重要的滤波器,这会带来许多优点:(1)剪枝后的网络模型在网络结构上没有差异,因此可以被任何现有的深度学习库很好地支持;(2)内存占用将显著减少,包括来自模型参数本身,和中间层的激活;(3)由于剪枝后的卷积神经网络结构没有被破坏,因此可以通过其他压缩方法对其进行进一步的压缩和加速,如参数量化方法和编码技术等;(4)剪枝后的卷积神经网络可以大大加速更多的视觉任务,如目标检测或是语义分割。

    然而,现有的启发式剪枝方法仍然存在一定的缺陷:其仅仅是根据卷积神经网络模型的静态状态来判断滤波器的重要性,并剪枝掉重要性较低的滤波器,却并未考虑滤波器在卷积神经网络训练过程中距离和方向的动态变化,即没有考虑滤波器信息熵大小,因此无法准确评估每个卷积层的滤波器的重要性,会造成剪枝后的卷积神经网络精度损失严重。



    技术实现要素:

    针对现有技术的以上缺陷或改进需求,本发明提供了一种卷积神经网络中的启发式滤波器剪枝方法和系统,其目的在于解决未考虑滤波器在卷积神经网络训练过程中距离和方向的动态变化而造成剪枝后的卷积神经网络精度损失严重的技术问题。

    为实现上述目的,按照本发明的一个方面,提供了一种卷积神经网络中的启发式滤波器剪枝方法,其特征在于,具体包括如下步骤:

    (1)获取卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度其中i为卷积神经网络中卷积层的序号,且有i∈[1荨卷积神经网络中卷积层的总数],k为卷积层中滤波器的序号,且有k∈[1荨卷积层中滤波器的总数],j>off,off是预设阈值;

    (2)针对卷积神经网络的第一个卷积层而言,基于步骤(1)得到的该卷积层中所有滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行软剪枝;

    (3)对于卷积神经网络的剩余卷积层而言,重复上述步骤(2),直至所有卷积层都被软剪枝完毕为止,从而得到软剪枝更新后的卷积神经网络;

    (4)对软剪枝更新后的卷积神经网络进行off 1个时期的重建,以得到重建后的卷积神经网络;

    (5)设置j=j off 1,重复上述步骤(1)至步骤(4),并判断重建后的卷积神经网络的网络精度是否趋于稳定,如果是,则表示已经得到软剪枝稳定后的卷积神经网络,然后进入步骤(6),否则继续重复本步骤;

    (6)获取软剪枝稳定后的卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度

    (7)针对软剪枝稳定后的卷积神经网络的第一个卷积层而言,基于步骤(6)得到的该卷积层中所有滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行硬剪枝;

    (8)对于软剪枝稳定后的卷积神经网络的剩余卷积层而言,重复上述步骤(7),直至所有卷积层都被硬剪枝完毕为止,从而得到硬剪枝更新后的卷积神经网络;

    (9)对硬剪枝更新后的卷积神经网络进行微调,直至微调后的卷积神经网络的网络精度达到稳定值,从而得到剪枝后的卷积神经网络。

    优选地,每个卷积层的每个滤波器在该卷积神经网络第j个时期和第j-off个时期之间的调整余弦相似度是按照如下子步骤计算的:

    (1-1)分别获取卷积神经网络每个卷积层的每个滤波器在第j个时期后的张量参数(以下称为第一张量参数)以及每个卷积层的每个滤波器在第j-off个时期后的张量参数(以下称为第二张量参数)并根据每个卷积层的所有滤波器在两个时期后的张量参数获得该卷积层的平均张量参数mi

    (1-2)使用步骤(1-1)得到的每个卷积层的平均张量参数mi分别对第一张量参数和第二张量参数进行修正,以得到对应于该卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数

    (1-3)根据对应于每个卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数获取该卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度

    优选地,每个卷积层的平均张量参数mi为:

    其中,oi是第i个卷积层的滤波器的总数,k∈[1荨oi]。

    优选地,每个卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数为:

    优选地,每个卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度为:

    其中||||表示计算l2范数。

    优选地,软剪枝操作是对滤波器的权值参数进行置零;硬剪枝操作是将滤波器删除。

    优选地,重建是对软剪枝更新后的卷积神经网络进行训练off 1个时期;微调是对硬剪枝更新后的卷积神经网络进行额外训练10~20个时期。

    按照本发明的另一方面,提供了一种卷积神经网络中的启发式滤波器剪枝系统,包括如下模块:

    第一模块,用于获取卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度其中i为卷积神经网络中卷积层的序号,且有i∈[1荨卷积神经网络中卷积层的总数],k为卷积层中滤波器的序号,且有k∈[1荨卷积层中滤波器的总数],jtoff,off是预设阈值;

    第二模块,用于针对卷积神经网络的第一个卷积层而言,基于第一模块得到的该卷积层中所有滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行软剪枝;

    第三模块,用于对于卷积神经网络的剩余卷积层而言,重复第二模块,直至所有卷积层都被软剪枝完毕为止,从而得到软剪枝更新后的卷积神经网络;

    第四模块,用于对软剪枝更新后的卷积神经网络进行off 1个时期的重建,以得到重建后的卷积神经网络;

    第五模块,用于设置j=j off 1,重复第一模块至第四模块,并判断重建后的卷积神经网络的网络精度是否趋于稳定,如果是,则表示已经得到软剪枝稳定后的卷积神经网络,然后进入第六模块,否则继续执行本模块;

    第六模块,用于获取软剪枝稳定后的卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度

    第七模块,用于针对软剪枝稳定后的卷积神经网络的第一个卷积层而言,基于第六模块得到的该卷积层中所有滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行硬剪枝;

    第八模块,用于对于软剪枝稳定后的卷积神经网络的剩余卷积层而言,重复第七模块,直至所有卷积层都被硬剪枝完毕为止,从而得到硬剪枝更新后的卷积神经网络;

    第九模块,用于对硬剪枝更新后的卷积神经网络进行微调,直至微调后的卷积神经网络的网络精度达到稳定值,从而得到剪枝后的卷积神经网络。

    总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

    (1)本发明采用步骤(1)中的调整余弦相似度,表征了滤波器在卷积神经网络训练更新过程中方向和距离的变化,能更准确的评估滤波器的重要性;再根据调整余弦相似度进行软剪枝和硬剪枝,将信息熵较小的滤波器进行剪枝,留下信息熵较大的滤波器,剪枝后的卷积神经网络精度更高;

    (2)本发明采用在训练过程中不断进行软剪枝的方法,能更准确的找到真正重要性较小的滤波器,从而进行更精确的剪枝;

    (3)本发明采用软剪枝和硬剪枝结合的方法,经过多个时期反复尝试,达到在相同的模型压缩率和加速率下,剪枝后的卷积神经网络的网络精度更高;在相同的网络精度下,剪枝后的卷积神经网络的模型压缩率和加速率更高。

    附图说明

    图1是本发明的方法过程示意图。

    具体实施方式

    为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

    以下首先就本发明中出现的技术术语进行解释和说明:

    时期(epoch):当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一次epoch;换而言之,1个epoch等于使用训练集中的全部样本对神经网络训练一次。

    如图1所示,一种卷积神经网络中的启发式滤波器剪枝方法,具体包括如下步骤:

    (1)获取卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j个时期(即第j个epoch)和第j-off个时期之间的调整余弦相似度其中i为卷积神经网络中卷积层的序号,且有i∈[1荨卷积神经网络中卷积层的总数],k为卷积层中滤波器的序号,且有k∈[1荨卷积层中滤波器的总数],j>off,off是预设阈值;

    具体而言,每个卷积层的每个滤波器在该卷积神经网络第j个时期和第j-off个时期之间的调整余弦相似度是按照如下子步骤计算的:

    (1-1)分别获取卷积神经网络每个卷积层的每个滤波器在第j个时期后的张量参数(以下称为第一张量参数)以及每个卷积层的每个滤波器在第j-off个时期后的张量参数(以下称为第二张量参数)并根据每个卷积层的所有滤波器在两个时期后的张量参数获得该卷积层的平均张量参数mi

    其中,oi是第i个卷积层的滤波器的总数,k∈[1荨oi];off的大小对卷积神经网络剪枝后的网络精度有显著影响,off设置得太小时,由于训练的期间隔太小,无法精确对比出滤波器的变化趋势和程度,设置得较大时,训练的期间滤波器的张量方向多次变化而无法被细致捕捉到,造成剪枝后的网络精度损失严重,off的取值范围是[1,10],优选为2;

    (1-2)使用步骤(1-1)得到的每个卷积层的平均张量参数mi分别对第一张量参数和第二张量参数进行修正,以得到对应于该卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数具体为:

    (1-3)根据对应于每个卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数获取该卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度具体为:

    其中||||表示计算l2范数;

    本步骤优点在于,调整余弦相似度结合了欧式距离和余弦相似度的度量特征,表征了滤波器张量在卷积神经网络训练更新过程中方向和距离的变化,更能准确评估滤波器的重要性。

    (2)针对卷积神经网络的第一个卷积层而言,基于步骤(1)得到的该卷积层中所有滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行软剪枝;

    具体而言,软剪枝操作是对滤波器的权值参数进行置零;

    (3)对于卷积神经网络的剩余卷积层而言,重复上述步骤(2),直至所有卷积层都被软剪枝完毕为止,从而得到软剪枝更新后的卷积神经网络;

    上述步骤(1)至步骤(3)的优点在于,由于在每个卷积层中,每个通道的滤波器的输入相同,调整余弦相似度越小表明滤波器在卷积神经网络训练过程中更新的幅度小或者不更新,说明该滤波器对相同输入数据的输出信息较小,即该滤波器的信息熵较小;调整余弦相似度越大表明该滤波器相对于其他滤波器在两个时期之间的距离和方向的变化差异越大,信息熵越大,因此对调整余弦相似度较小的滤波器进行软剪枝,留下来的滤波器信息熵总和越大。而现有的启发式算法利用l1范数或特征图的稀疏度来评估滤波器的重要性,均无法体现滤波器的动态变化。

    (4)对软剪枝更新后的卷积神经网络进行off 1个时期的重建,以得到重建后的卷积神经网络;

    具体而言,步骤(3)中软剪枝更新后的卷积神经网络中已有部分滤波器的权值参数被置零,再次经过off 1个时期,已经软剪枝的滤波器的权值参数会被更新为非零值,从而实现了卷积神经网络的重建,为下一次软剪枝作铺垫。

    (5)设置j=j off 1,重复上述步骤(1)至步骤(4),并判断重建后的卷积神经网络的网络精度是否趋于稳定,如果是,则表示已经得到软剪枝稳定后的卷积神经网络,然后进入步骤(6),否则继续重复本步骤;

    上述步骤(4)和步骤(5)的优点在于,在卷积神经网络不断训练至精度稳定的过程中进行软剪枝,而不是真正的删除滤波器,这样可以保持卷积神经网络的容量和表征能力,在循序渐进过程中找到不重要的滤波器,对卷积神经网络更准确的剪枝。

    (6)获取软剪枝稳定后的卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度

    (7)针对软剪枝稳定后的卷积神经网络的第一个卷积层而言,基于步骤(6)得到的该卷积层中所有滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行硬剪枝;

    具体而言,硬剪枝操作是将滤波器删除;

    (8)对于软剪枝稳定后的卷积神经网络的剩余卷积层而言,重复上述步骤(7),直至所有卷积层都被硬剪枝完毕为止,从而得到硬剪枝更新后的卷积神经网络;

    (9)对硬剪枝更新后的卷积神经网络进行微调,直至微调后的卷积神经网络的网络精度达到稳定值,从而得到剪枝后的卷积神经网络;

    具体而言,微调(finetune)是对硬剪枝更新后的卷积神经网络进行额外训练10~20个时期。

    本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。


    技术特征:

    1.一种卷积神经网络中的启发式滤波器剪枝方法,其特征在于,具体包括如下步骤:

    (1)获取卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度其中i为卷积神经网络中卷积层的序号,且有i∈[1,卷积神经网络中卷积层的总数],k为卷积层中滤波器的序号,且有k∈[1,卷积层中滤波器的总数],j>off,off是预设阈值;

    (2)针对卷积神经网络的第一个卷积层而言,基于步骤(1)得到的该卷积层中所有滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行软剪枝;

    (3)对于卷积神经网络的剩余卷积层而言,重复上述步骤(2),直至所有卷积层都被软剪枝完毕为止,从而得到软剪枝更新后的卷积神经网络;

    (4)对软剪枝更新后的卷积神经网络进行off 1个时期的重建,以得到重建后的卷积神经网络;

    (5)设置j=j off 1,重复上述步骤(1)至步骤(4),并判断重建后的卷积神经网络的网络精度是否趋于稳定,如果是,则表示已经得到软剪枝稳定后的卷积神经网络,然后进入步骤(6),否则继续重复本步骤;

    (6)获取软剪枝稳定后的卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度

    (7)针对软剪枝稳定后的卷积神经网络的第一个卷积层而言,基于步骤(6)得到的该卷积层中所有滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行硬剪枝;

    (8)对于软剪枝稳定后的卷积神经网络的剩余卷积层而言,重复上述步骤(7),直至所有卷积层都被硬剪枝完毕为止,从而得到硬剪枝更新后的卷积神经网络;

    (9)对硬剪枝更新后的卷积神经网络进行微调,直至微调后的卷积神经网络的网络精度达到稳定值,从而得到剪枝后的卷积神经网络。

    2.如权利要求1所述的卷积神经网络中的启发式滤波器剪枝方法,其特征在于,每个卷积层的每个滤波器在该卷积神经网络第j个时期和第j-off个时期之间的调整余弦相似度是按照如下子步骤计算的:

    (1-1)分别获取卷积神经网络每个卷积层的每个滤波器在第j个时期后的张量参数(以下称为第一张量参数)以及每个卷积层的每个滤波器在第j-off个时期后的张量参数(以下称为第二张量参数)并根据每个卷积层的所有滤波器在两个时期后的张量参数获得该卷积层的平均张量参数mi

    (1-2)使用步骤(1-1)得到的每个卷积层的平均张量参数mi分别对第一张量参数和第二张量参数进行修正,以得到对应于该卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数

    (1-3)根据对应于每个卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数获取该卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度

    3.如权利要求2所述的卷积神经网络中的启发式滤波器剪枝方法,其特征在于,每个卷积层的平均张量参数mi为:

    其中,oi是第i个卷积层的滤波器的总数,k∈[1,oi]。

    4.如权利要求2所述的卷积神经网络中的启发式滤波器剪枝方法,其特征在于,每个卷积层的每个滤波器的、修正后的第一张量参数和第二张量参数为:

    5.如权利要求2所述的卷积神经网络中的启发式滤波器剪枝方法,其特征在于,每个卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度为:

    其中||||表示计算l2范数。

    6.如权利要求1所述的卷积神经网络中的启发式滤波器剪枝方法,其特征在于,软剪枝操作是对滤波器的权值参数进行置零;硬剪枝操作是将滤波器删除。

    7.如权利要求1所述的卷积神经网络中的启发式滤波器剪枝方法,其特征在于,重建是对软剪枝更新后的卷积神经网络进行训练off 1个时期;微调是对硬剪枝更新后的卷积神经网络进行额外训练10~20个时期。

    8.一种卷积神经网络中的启发式滤波器剪枝系统,其特征在于,包括如下模块:

    第一模块,用于获取卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度其中i为卷积神经网络中卷积层的序号,且有i∈[1,卷积神经网络中卷积层的总数],k为卷积层中滤波器的序号,且有k∈[1,卷积层中滤波器的总数],j>off,off是预设阈值;

    第二模块,用于针对卷积神经网络的第一个卷积层而言,基于第一模块得到的该卷积层中所有滤波器在该卷积神经网络的第j个时期和第j-off个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行软剪枝;

    第三模块,用于对于卷积神经网络的剩余卷积层而言,重复第二模块,直至所有卷积层都被软剪枝完毕为止,从而得到软剪枝更新后的卷积神经网络;

    第四模块,用于对软剪枝更新后的卷积神经网络进行off 1个时期的重建,以得到重建后的卷积神经网络;

    第五模块,用于设置j=j off 1,重复第一模块至第四模块,并判断重建后的卷积神经网络的网络精度是否趋于稳定,如果是,则表示已经得到软剪枝稳定后的卷积神经网络,然后进入第六模块,否则继续执行本模块;

    第六模块,用于获取软剪枝稳定后的卷积神经网络的每个卷积层的每个滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度

    第七模块,用于针对软剪枝稳定后的卷积神经网络的第一个卷积层而言,基于第六模块得到的该卷积层中所有滤波器在该卷积神经网络的第j off 1个时期和第j 1个时期之间的调整余弦相似度并依照调整余弦相似度从小到大的顺序对所有滤波器进行排列,并按照预设的剪枝率对排序后的滤波器进行硬剪枝;

    第八模块,用于对于软剪枝稳定后的卷积神经网络的剩余卷积层而言,重复第七模块,直至所有卷积层都被硬剪枝完毕为止,从而得到硬剪枝更新后的卷积神经网络;

    第九模块,用于对硬剪枝更新后的卷积神经网络进行微调,直至微调后的卷积神经网络的网络精度达到稳定值,从而得到剪枝后的卷积神经网络。

    技术总结
    本发明公开了一种卷积神经网络中的启发式滤波器剪枝方法和系统,包括:获取每个卷积层的每个滤波器在两个时期之间的调整余弦相似度,依照调整余弦相似度对滤波器进行软剪枝;对软剪枝更新后的卷积神经网络进行重建;重复软剪枝和重建的过程直至得到精度稳定后的卷积神经网络;获取精度稳定后的卷积神经网络的每个卷积层的每个滤波器在两个时期之间的调整余弦相似度,依照调整余弦相似度对滤波器进行硬剪枝;对硬剪枝更新后的卷积神经网络进行微调,直至卷积神经网络的网络精度达到稳定值。本发明能解决未考虑滤波器在卷积神经网络训练过程中距离和方向的动态变化而造成剪枝后的卷积神经网络精度损失严重的技术问题。

    技术研发人员:刘楚波;陈再龙;李肯立;周旭;肖国庆;阳王东;唐卓;李克勤
    受保护的技术使用者:湖南大学
    技术研发日:2020.12.21
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-18640.html

    最新回复(0)