首页> 中国专利> 一种卷积神经网络通用压缩架构的自动剪枝方法及平台

一种卷积神经网络通用压缩架构的自动剪枝方法及平台

摘要

本发明公开了一种卷积神经网络通用压缩架构的自动剪枝方法及平台。该方法首先随机对输入模型的卷积模块进行通道宽度采样,生成通道剪枝编码向量;然后设计剪枝细胞网络,将通道剪枝编码向量输入该细胞网络,输出用于构建剪枝网络模型的权重矩阵,并生成对应的剪枝结构模型,联合训练剪枝细胞网络和生成的剪枝网络模型,更新该剪枝细胞网络;最后利用训练过的剪枝网络生成的权重搜索性能最优的剪枝网络,而且搜索时不需要任何微调。用户通过训练目标网络的单个剪枝网络,可以在几乎不需要人工参与的情况下搜索不同约束条件下的各种剪枝网络,加快搜索高性能神经网络结构的速度。

著录项

  • 公开/公告号CN112396181A

    专利类型发明专利

  • 公开/公告日2021-02-23

    原文格式PDF

  • 申请/专利权人 之江实验室;

    申请/专利号CN202011633174.3

  • 发明设计人 王宏升;管淑祎;

    申请日2020-12-31

  • 分类号G06N3/08(20060101);G06N3/04(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人邱启旺

  • 地址 310023 浙江省杭州市余杭区文一西路1818号人工智能小镇10号楼

  • 入库时间 2023-06-19 10:00:31

说明书

技术领域

本发明属于神经网络模型压缩领域,尤其涉及一种卷积神经网络通用压缩架构的自动剪枝方法及平台。

背景技术

大规模深度卷积神经网络模型在图像识别、目标检测等任务上都取得了优异的性能,然而,将具有海量参数的预训练模型部署到内存有限的设备中仍然面临巨大挑战。在模型压缩领域,已有的神经网络量化压缩方法将浮点型权重量化为低比特权重(例如,8位或1位)来减小模型大小。但是由于量化误差的引入,使得神经网络的训练非常困难。相比之下,通道剪枝方法通过直接移除冗余通道来减小模型大小并加速推理,使得快速推理几乎不需要额外的工作。而且通道剪枝之后,量化起来也更加容易,模型会更加紧凑。

已有的通道剪枝方法主要是数据驱动的稀疏约束或人工设计的剪枝策略;考虑到通常一个卷积神经网络具有非常多的卷积单元模块,每个模块的通道宽度通常随着网络的加深逐层增大,所以,卷积通道可能的裁剪方式有上亿种情况,由于受计算资源等限制,人工设计所有可能的剪枝结构并且寻找最优结构几乎不可能。

发明内容

本发明的目的在于针对现有技术的不足,提供一种卷积神经网络通用压缩架构的自动剪枝方法及平台。

本发明的目的是通过以下技术方案实现的:一种卷积神经网络通用压缩架构的自动剪枝方法,包括以下步骤:

步骤1:构建通道剪枝编码向量:采用随机结构抽样方法对用户输入的卷积神经网络模型的所有卷积网络模块进行通道宽度采样,生成通道剪枝编码向量;

步骤2:训练元学习的通道剪枝网络:设计剪枝细胞网络,将步骤1生成的通道剪枝编码向量输入剪枝细胞网络,剪枝细胞网络的输出用于构建剪枝网络模型的权重矩阵,并生成对应的剪枝网络模型;利用训练数据联合训练剪枝细胞网络和对应的剪枝网络模型,同时更新剪枝细胞网络;

步骤3:基于进化算法的搜索最优剪枝网络模型:将多个满足特定约束的通道剪枝编码向量输入步骤2更新后的剪枝细胞网络,输出权重矩阵,生成多个对应的剪枝网络模型;评估每个剪枝网络模型的精度;采用进化算法搜索其中满足特定约束且精度最高的剪枝网络模型,得到卷积神经网络的通用压缩架构。

进一步地,所述通道剪枝编码向量具体为:通道剪枝编码向量中每个元素对应一个卷积网络模块的通道宽度,对每个卷积网络模块的通道宽度进行随机采样,生成通道剪枝编码向量,通过通道剪枝编码向量将用户输入的卷积神经网络模型和剪枝模型建立一对一的映射关系,通道剪枝编码向量用于生成对应的剪枝网络模型。

进一步地,在训练阶段,通过在每次迭代中随机选择每层通道的通道宽度来生成通道剪枝编码向量;通过输入不同的通道剪枝编码向量,生成对应的权值矩阵,并构造不同的剪枝网络模型;通过随机生成不同的编码向量,剪枝细胞网络学习预测不同剪枝网络模型的权值。

进一步地,所述剪枝细胞网络具体为:剪枝细胞网络由两个全连接层组成,输入为通道剪枝编码向量,输出为用于生成剪枝网络模型的权重矩阵。

进一步地,所述步骤2中,包括以下子步骤:

步骤(2.1):将通道剪枝编码向量输入剪枝细胞网络并输出权重矩阵;

步骤(2.2):基于剪枝细胞网络输出的权重矩阵构建剪枝网络模型;

步骤(2.3):联合训练剪枝细胞网络和剪枝网络模型:将训练数据输入步骤(2.2)生成的剪枝网络模型进行模型训练,同时更新剪枝细胞网络。

进一步地,所述步骤(2.3)具体为:前向传播阶段,将通道剪枝编码向量输入剪枝细胞网络,生成权值矩阵;与此同时,利用剪枝细胞网络生成的权值矩阵构建与当前输入的通道剪枝编码向量对应的剪枝网络模型;调整剪枝细胞网络输出的权重矩阵的形状,使其与通道剪枝编码向量对应的剪枝网络模型的输入的形状一致。

进一步地,所述步骤(2.3)具体为:反向传播阶段,不是更新剪枝网络模型的权重矩阵,而是计算剪枝细胞网络中权重的梯度;由于剪枝细胞网络的输出和剪枝网络模型的输出之间的reshape操作和卷积运算都是可微的,因此采用链式法则计算剪枝网络模型中权重的梯度,从而端到端训练剪枝细胞网络。

进一步地,所述步骤3包括以下子步骤:

步骤(3.1):将通道剪枝编码向量定义为剪枝网络模型的基因,随机选取满足特定约束的一系列基因作为初始种群;

步骤(3.2):评估现有种群中各个基因对应的剪枝网络模型的精度,选取精度较高的前k个基因;

步骤(3.3):利用步骤(3.2)选取的精度较高的前k个基因进行基因重组和基因变异生成新的基因,将新基因加入现有种群中;

步骤(3.4):重复迭代的步骤(3.2)~(3.3),选择现有种群中前k个精度较高的基因并生成新基因,迭代次数达到设定轮次后,最终获得满足特定约束并且精度最高的剪枝网络模型。

进一步地,所述步骤(3.3)中,基因变异是指通过随机改变基因里一部分元素值;基因重组是指随机地将两个父辈的基因的元素进行重组;剔除不满足特定约束的新基因。

一种基于上述卷积神经网络通用压缩架构的自动剪枝方法的平台,包括以下组件:

数据加载组件:用于获取卷积神经网络的训练数据,所述训练数据是满足监督学习任务的有标签的样本;

自动压缩组件:用于将卷积神经网络模型自动压缩,包括剪枝向量编码模块、剪枝网络生成模块、剪枝细胞网络和剪枝网络联合训练模块、剪枝网络搜索模块和特定任务微调模块;

剪枝向量编码模块是采用随机结构抽样方法对用户输入的神经网络模型的所有卷积网络模块进行通道宽度采样,生成通道剪枝编码向量;前向传播过程中,将通道剪枝编码向量输入剪枝细胞网络,生成对应结构的剪枝网络和剪枝细胞网络的权重矩阵;

剪枝网络生成模块是基于剪枝细胞网络构建与当前输入的通道剪枝编码向量对应的剪枝网络,调整剪枝细胞网络输出的权重矩阵的形状,使其与通道剪枝编码向量对应的剪枝结构的输入输出的编码器单元数目一致;

剪枝细胞网络和剪枝网络联合训练模块是端到端地训练剪枝细胞网络,具体地,将简单随机采样的通道剪枝编码向量和一个小批次的训练数据输入剪枝网络;更新剪枝结构的权重和剪枝细胞网络的权重矩阵;

剪枝网络搜索模块是为了搜索出满足特定约束条件的最高精度的剪枝网络,提出采用进化算法搜索满足特定约束条件的最高精度的剪枝网络;将通道剪枝编码向量输入训练好的剪枝细胞网络,生成对应剪枝网络的权重,在验证集上对剪枝网络进行评估,获得对应剪枝网络的精度;在元学习剪枝网络中采用的进化搜索算法中,每个剪枝网络的结构是由简单随机采样的通道剪枝编码向量生成的,所以将通道剪枝编码向量定义为剪枝网络的基因;在满足特定约束条件下,首先选取一系列通道剪枝编码向量作为剪枝网络的基因,通过在验证集上评估获得对应剪枝网络的精度;然后,选取精度较高的前k个基因,采用基因重组和变异生成新的基因;通过进一步重复前k个最优基因选择的过程和新基因生成的过程进行迭代,获得满足约束条件并且精度最高的基因;

特定任务微调模块是在所述自动压缩组件生成的剪枝网络上针对特定任务进行微调网络,利用剪枝网络的特征层和输出层对特定任务场景进行微调,输出最终微调好的压缩模型,即登陆用户需求的卷积神经网络模型的压缩模型;将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型性能对比信息;

推理组件:登陆用户从所述平台获取卷积神经网络的压缩模型,用户利用所述自动压缩组件输出的压缩模型在实际场景的数据集上对登陆用户上传的特定任务的新数据进行推理;并在所述平台的压缩模型推理页面呈现压缩前后推理模型性能对比信息。

本发明的有益效果是:首先,本发明研究基于元学习的通道剪枝生成多种卷积神经网络的通用压缩架构;其次,在已训练好的元学习网络基础上,通过进化算法搜索最优压缩结构,由此得到与任务无关的预训练卷积神经网络模型的最优通用压缩架构。利用本发明所述的面向多任务的预训练卷积神经网络模型自动压缩平台,可以压缩生成面向多任务的预训练卷积神经网络模型的通用架构,充分利用已压缩好的模型架构提高特定任务的压缩效率,并且可将大规模图像处理模型部署在内存小、资源受限等端侧设备,推动了通用深度卷积神经网络模型在工业界的落地进程。

附图说明

图1是本发明压缩方法结合特定任务的整体架构图;

图2是元学习的剪枝网络的训练流程图;

图3是剪枝细胞网络和剪枝网络联合训练过程图;

图4是基于进化算法的剪枝网络搜索架构图。

具体实施方式

受神经网络架构搜索的启发,尤其是在少样本的情况下,自动机器学习能够基于一个反馈回路以迭代方式进行自动模型压缩。本发明研究基于元学习的通道剪枝生成多种预训练卷积神经网络模型的通用压缩架构。具体地,本发明首先构建一种基于简单随机采样生成的通道剪枝编码向量,在不同卷积通道上剪枝大模型的网络结构。设计一种剪枝细胞网络的元网络,利用该剪枝细胞网络生成与当前输入的编码向量对应的剪枝网络模型。每轮迭代时,利用简单随机采样产生各层卷积模块的通道宽度,组成对应的编码向量。通过改变输入剪枝细胞网络的编码向量和小批次的训练数据,联合训练剪枝细胞网络和对应的剪枝结构,可以学得能够为不同剪枝结构生成权重的剪枝细胞网络。同时,在已训练好的元学习网络基础上,通过进化算法搜索最优压缩结构,由此得到与任务无关的预训练卷积神经网络模型的最优通用压缩架构。本发明解决少样本数据下卷积神经网络模型压缩过程中过拟合学习和压缩模型泛化能力低的问题,深入地探索大规模深度神经网络模型在少样本条件下的图像处理的可行性和关键技术,提高压缩模型面向多种特定任务使用过程中的灵活性和有效性。与已有的剪枝方法相比,元学习的通道剪枝能够把人力彻底从繁琐的超参数调优中解放出来,同时允许利用多种目标度量方法直接优化压缩模型。与其它自动机器学习方法相比,元学习的通道剪枝能够很容易地在搜索所需压缩结构时实施条件约束,无需像强化学习一样需要手动调整网络的超参数。本发明压缩方法的应用技术路线如图1所示,基于图像处理的数据集,研究基于元学习的通道剪枝以及基于进化算法的剪枝网络自动搜索,通过元学习的通道剪枝将面向多任务的大规模预训练卷积神经网络模型自动压缩生成满足不同硬约束条件(如浮点数运算次数)且与任务无关的通用架构;使用该通用架构时,在元学习的剪枝网络的基础上微调特定任务网络,输入特定任务的数据集,仅微调特定任务,节省计算成本,提高效率。

本发明一种卷积神经网络通用压缩架构的自动剪枝方法,整个过程分为三个步骤:第一步是构建基于简单随机采样的通道剪枝编码向量;第二步是训练元学习的剪枝网络;第三步是基于进化算法搜索最优压缩结构;具体为:

第一步:构建基于简单随机采样的通道剪枝编码向量。采用简单随机采样方法对卷积神经网络模型的所有卷积网络的单元模块进行通道采样,生成一个通道采样向量,即通道剪枝编码向量。

具体地,通道剪枝编码向量中每个元素对应一个卷积网络模块的通道宽度,对每个卷积网络模块的通道进行随机采样,生成通道剪枝编码向量,通过通道剪枝编码向量将用户输入的卷积神经网络模型和剪枝模型建立一对一的映射关系,根据通道剪枝编码向量生成对应的剪枝网络结构。

在训练阶段,通过在每次迭代中随机选择每层通道的通道宽度来生成通道剪枝编码向量。通过输入不同的网络编码向量,构造不同的剪枝网络结构,并生成对应的权值。通过随机生成不同的编码向量,剪枝细胞网络学习预测不同剪枝网络的权值。

第二步:训练元学习的剪枝网络,如图2所示。定义剪枝细胞网络,将通道剪枝编码向量作为输入,输出用于构建剪枝网络的权重矩阵,并生成对应的剪枝网络模型;采用批数据集训练生成的剪枝结构并更新剪枝结构从而更新细胞网络;最终输出迭代更新后剪枝细胞网络输出的权重。

定义剪枝细胞网络:剪枝细胞网络是一个元网络,由两个全连接层组成;输入为第一阶段构建的通道剪枝编码向量,输出为用于生成剪枝网络模型的权重矩阵。

训练剪枝细胞网络:包括以下子步骤:

步骤一:前向传播过程中,将通道剪枝编码向量输入剪枝细胞网络并输出权重矩阵。

步骤二:如图3所示,基于剪枝细胞网络构建剪枝网络模型的过程为:

根据第一阶段构建的通道剪枝编码向量,其中每一个元素

步骤三:如图3所示,联合训练剪枝细胞网络和剪枝网络模型的过程为:

将一个小批次的训练数据输入步骤二生成的剪枝网络模型进行模型训练,剪枝网络模型更新参数(权重矩阵)后,细胞网络根据剪枝网络更新后的参数也进行参数更新;即反向传播的过程中,剪枝网络模型和细胞网络一起更新;细胞网络输出的权重可以使用链式法则计算,因此,可以端到端的训练细胞网络。

利用简单随机采样方法对各层卷积单元模块进行通道采样,构建不同的通道剪枝编码向量,用同一个训练数据集进行多次迭代训练,每轮迭代时基于一个通道剪枝编码向量同时训练细胞网络和剪枝网络模型,通过改变输入的通道剪枝编码向量,学得能够为不同剪枝网络模型生成权重矩阵的细胞网络。

而且需要调整细胞网络输出的权重矩阵的形状,使其与通道剪枝编码向量对应的剪枝网络的输入输出的编码器单元数目一致。通过通道采样的编码向量保持一致的,具体地,根据编码向量中元素

第三步:如图4所示为基于进化算法的剪枝网络搜索的过程:

在第二步训练好的元学习的剪枝网络基础上,将多个满足特定约束条件的通道剪枝编码向量输入剪枝细胞网络,生成对应的权重矩阵,得到多个剪枝网络模型;在验证集上对每个剪枝网络模型进行评估,获得对应的精度;采用进化算法搜索其中满足特定约束条件(如浮点数运算次数)的精度最高的剪枝网络模型,由此得到与任务无关的预训练卷积神经网络模型的通用压缩架构,如图4中方框标记的Network2所示。进化搜索算法的具体步骤如下:

步骤一、每个剪枝网络模型是由简单随机采样各层卷积单元模块的卷积通道所得的剪枝编码向量生成的,所以将通道剪枝编码向量定义为剪枝网络模型的基因G,随机选取满足约束条件C的一系列基因作为初始种群。

步骤二、评估现有种群中各个基因

步骤三、利用步骤二选取的精度最高的前k个基因进行基因重组和基因变异生成新的基因,将新基因加入现有种群中。基因变异是指通过随机改变基因里一部分元素值来进行变异;基因重组是指随机地将两个父辈的基因进行重组产生后代;而且可以很容易地通过消除不合格的基因来加强约束C。

步骤四、重复迭代N轮步骤二和步骤三,选择现有种群中前k个精度最高的基因并生成新基因,直到获得满足约束条件C并且精度最高的基因。

本发明一种基于上述卷积神经网络通用压缩架构的自动剪枝方法的平台,包括以下组件:

数据加载组件:用于获取卷积神经网络的训练样本,所述训练样本是满足监督学习任务的有标签的样本。

自动压缩组件:用于将卷积神经网络模型自动压缩,包括剪枝向量编码模块、剪枝网络生成模块、剪枝细胞网络和剪枝网络联合训练模块、剪枝网络搜索模块和特定任务微调模块。

剪枝向量编码模块是采用随机结构抽样方法对用户输入的神经网络模型的所有卷积网络模块进行通道宽度采样,生成通道剪枝编码向量;前向传播过程中,将通道剪枝编码向量输入剪枝细胞网络,生成对应结构的剪枝网络和剪枝细胞网络的权重矩阵。

剪枝网络生成模块是基于剪枝细胞网络构建与当前输入的通道剪枝编码向量对应的剪枝网络,调整剪枝细胞网络输出的权重矩阵的形状,使其与通道剪枝编码向量对应的剪枝结构的输入输出的编码器单元数目一致。

剪枝细胞网络和剪枝网络联合训练模块是端到端地训练剪枝细胞网络,具体地,将简单随机采样的通道剪枝编码向量和一个小批次的训练数据输入剪枝网络;更新剪枝结构的权重和剪枝细胞网络的权重矩阵。

剪枝网络搜索模块是为了搜索出满足特定约束条件的最高精度的剪枝网络,提出采用进化算法搜索满足特定约束条件的最高精度的剪枝网络;将通道剪枝编码向量输入训练好的剪枝细胞网络,生成对应剪枝网络的权重,在验证集上对剪枝网络进行评估,获得对应剪枝网络的精度;在元学习剪枝网络中采用的进化搜索算法中,每个剪枝网络的结构是由简单随机采样的通道剪枝编码向量生成的,所以将通道剪枝编码向量定义为剪枝网络的基因;在满足特定约束条件下,首先选取一系列通道剪枝编码向量作为剪枝网络的基因,通过在验证集上评估获得对应剪枝网络的精度;然后,选取精度较高的前k个基因,采用基因重组和变异生成新的基因;通过进一步重复前k个最优基因选择的过程和新基因生成的过程进行迭代,获得满足约束条件并且精度最高的基因。

特定任务微调模块是在所述自动压缩组件生成的剪枝网络上针对特定任务进行微调网络,利用剪枝网络的特征层和输出层对特定任务场景进行微调,输出最终微调好的压缩模型,即登陆用户需求的卷积神经网络模型的压缩模型;将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型模型性能对比信息。

推理组件:登陆用户从所述平台获取卷积神经网络的压缩模型,用户利用所述自动压缩组件输出的压缩模型在实际场景的数据集上对登陆用户上传的特定任务的新数据进行推理;并在所述平台的压缩模型推理页面呈现压缩前后推理模型性能对比信息。

下面将在ImageNet2012分类数据集上进行卷积神经网络模型的自动压缩实验。根据该图像分类任务对本发明的技术方案做进一步的详细描述。

通过所述平台的数据加载组件获取登陆用户上传的ImageNet2012分类数据集,在训练时,将原始训练图像分割成子验证数据集,子验证数据集包含50000张图像,是从1000个类的每个类中随机选取50张训练图像,其他剩余样本构成子训练数据集。本发明在子训练数据集上训练细胞网络,搜索阶段在子验证数据集上评估剪枝网络的性能。

通过所述平台的自动压缩组件,生成预训练卷积神经网络压缩模型。

通过所述平台加载自动压缩组件生成的预训练压缩模型,在所述生成的预训练模型上微调该分类任务的模型。

基于所述自动压缩组件的特定任务微调模块所得的压缩模型进行微调,利用自动压缩组件生成的预训练模型的特征层和输出层对图像分类任务场景进行微调,最终,平台输出登陆用户需求的图像分类任务的卷积神经网络模型的压缩模型。

将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型性能对比信息,表格1比较了原MobileNet V2网络模型与元学习通道剪枝网络在top-1上的精度。原MobileNet V2网络模型运行313M浮点数运算所得top-1的精度为72.0%,而元学习通道剪枝网络仅运行219M浮点数运算就达到72.7%的top-1精度。

表1:图像分类任务MobileNet V2模型压缩前后对比信息

通过所述平台的推理组件,利用所述平台输出的压缩模型对登陆用户上传的ImageNet2012测试集数据进行推理,在8张Nvidia 1080Ti GPU显卡上推理压缩模型并在所述平台的压缩模型推理页面呈现压缩前后的性能信息。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号