模型压缩方法以及模型压缩系统与流程

文档序号:27133619发布日期:2021-10-29 22:28阅读:183来源:国知局
模型压缩方法以及模型压缩系统与流程

1.本发明有关于模型压缩,尤指一种通过以相似度作为奖励的强化学习机制来调整模型剪枝操作的模型压缩方法与模型压缩系统。


背景技术:

2.在模型压缩当中有个技术是通过现有的模型(教师模型)去训练一个更小的模型(学生模型),教师模型通常参数量较大且不易于部署在现有设备上,所以通过这种方式来训练一个能力相似的小模型并部署到移动设备上,然而这种方式多半还是必须手动设计学生模型的参数,因此亟需一种能够自动找寻合适的学生模型(亦即压缩后模型)的方式。


技术实现要素:

3.因此,本发明的目的之一在于提出一种通过以相似度作为奖励的强化学习机制来进行模型剪枝操作的模型压缩方法与模型压缩系统。
4.在本发明的一实施例中,揭露一种模型压缩方法。该模型压缩方法包含:针对具有一深度神经网络架构的一原始模型来进行一模型剪枝操作,以产生一压缩后模型;将同一测试数据分别输入至该原始模型以及该压缩后模型;计算该原始模型处理该测试数据所得到的一第一输出数据以及该压缩后模型处理该测试数据所得到的一第二输出数据之间的相似度;以及以该相似度作为奖励,通过强化学习来判断如何进一步调整该模型剪枝操作。
5.在本发明的另一实施例中,揭露一种模型压缩系统。该模型压缩系统包含一储存装置以及一处理器。该储存装置用以储存一程序码。该处理器用以载入并执行该程序码,以执行以下操作:针对具有一深度神经网络架构的一原始模型来进行一模型剪枝操作,以产生一压缩后模型;将同一测试数据分别输入至该原始模型以及该压缩后模型;计算该原始模型处理该测试数据所得到的一第一输出数据以及该压缩后模型处理该测试数据所得到的一第二输出数据之间的相似度;以及以该相似度作为奖励,通过强化学习来判断如何进一步调整该模型剪枝操作。
6.本发明模型压缩方法采用相似度来作为模型剪枝(模型压缩)的依据,因此使用者无需提供标记过的数据来作为测试数据,可减少数据标记的成本与时间,另外,使用者无需提供测试原始程序码,可直接输入模型来进行压缩,故能有效推广模型压缩的应用,再者,压缩后留下的泛化特征也不易产生过拟合。
附图说明
7.图1为根据本发明一实施例的模型压缩系统的示意图。
8.图2为本发明一实施例的模型压缩方法的流程图。
9.图3为图2所示的模型压缩方法的操作示意图。
10.图4为图3所示的原始模型与压缩后模型所具备的卷积神经网络架构的示意图。
11.其中,附图中符号的简单说明如下:
12.100:模型压缩系统;102:处理器;104:储存装置;202、204、206、208:步骤;302:原始模型;304:压缩后模型;306:主体;308:测试数据;400:卷积神经网络架构;402:输入层;404_1、404_n:卷积层;406_1、406_n:池化层;408_1、408_m:全连接层;410:输出层;code_mc:程序码;d1、d2:输出数据。
具体实施方式
13.图1为根据本发明一实施例的模型压缩系统的示意图。如图1所示,模型压缩系统100包含一处理器102以及一储存装置104。储存装置104用以储存一程序码code_mc,例如储存装置104可以是传统硬盘、固态硬盘、存储器等等,但本发明并不以此为限。处理器102可载入并执行程序码code_mc,以执行图2所示的模型压缩方法中的各个步骤。
14.请一并参阅图2与图3。图2为本发明一实施例的模型压缩方法的流程图。图3为图2所示的模型压缩方法的操作示意图。请注意,假若可以得到相同结果,则模型压缩方法不一定要完全遵照图2所示的步骤来依序执行,此外,根据设计需求及/或应用需求,模型压缩方法亦可修改来新增其它步骤。于步骤202,针对具有一深度神经网络(deep neural network)架构的一原始模型302来进行一模型剪枝(model pruning)操作,以产生一压缩后模型(compression model)304。举例来说,原始模型302可以是基于卷积神经网络(convolution neural network,cnn)架构进行训练所得到的模型,而模型剪枝的目标是只需保留重要的权重而删除影响较小的权重,换言之,相较于原始模型302,压缩后模型304会具有较少的参数数量,故可以降低计算成本与储存空间,如此一来,便可将压缩后模型304部署至运算能力有限的产品端,像是手机、边缘装置(edge device)等等。此外,本发明的模型剪枝操作也希望能让压缩后模型304的输出能尽量趋近原始模型302的输出,进一步内容将于后详述。
15.于步骤204,将同一测试数据308分别输入至原始模型302以及压缩后模型304来进行处理,换言之,基于同一测试数据308,原始模型302的输出以及压缩后模型304的输出便可用来评估压缩后模型304是否与原始模型302相似。
16.于步骤206,计算原始模型302处理测试数据308所得到的输出数据d1以及压缩后模型304处理测试数据308所得到的输出数据d2之间的相似度(similarity),因此,该相似度的数值可代表修剪后的模型的输出特征是否与修剪前的模型的输出特征相似。
17.于步骤208,以步骤206所计算得到的相似度作为奖励(reward),通过强化学习(reinforcement learning)来判断如何进一步调整模型剪枝操作。举例来说,强化学习的主体(agent)可采用深度确定性策略梯度(deep deterministic policy gradient,ddpg)演算法来决定所要采取的动作(action),其中该动作用以选择压缩的部位,进而达到调整模型剪枝操作的目的。在其他实施例中,亦可使用其他演算法(例如截止自然策略梯度(truncated natural policy gradient,tnpg)演算法、交叉熵(cross entropy method,cem)演算法等)来决定所要采取的动作。
18.举例来说,假设使用者所输入的原始模型302是一个由3个卷积层(convolution layer)所组成的结构,且所具有的通道尺寸(channel size)分别为[32,64,128]。一开始初始化的主体306根据原始模型302的模型信息(例如包括输入尺寸、各层卷积核尺寸、各层浮点运算次数等等)给出3层各自的初始压缩率为[60%,40%,70%],因此,本发明模型压缩
方法使用强化学习的方式来对原始模型302进行压缩,使得压缩后模型304所具有的通道尺寸分别为[12,38,38],并得到相似度为0.3,接着,相似度为0.3的结果会反馈给主体306,由主体306判断接下来的压缩方向(例如调整压缩的部位),基于该相似度以及该模型信息调整所期望的各层压缩率,后续模型压缩操作通过调整后的模型剪枝操作来对原始模型302进行压缩,使得压缩后模型304所具有的通道尺寸分别为[14,32,64],并得到相似度为0.4;上述模型压缩操作会迭代执行,以通过强化学习的方式来得到具有较高相似度的压缩后模型304。
[0019]
于本发明的一实施方式中,模型压缩方法可参照基于自动化机器学习的模型压缩(automl for model compression,amc)的已知架构来实际操作模型剪枝,但并不以此为限,本领域技术人员可以知道其他多种模型压缩方法,于此不再赘述。已知模型压缩架构是将压缩后模型的输出作为奖励,以让强化学习来判断如何进一步对原始模型进行压缩,进一步来说,已知架构采用准确率(accuracy)来作为强化学习的主体的奖励,为了准确率的计算,需要使用者提供标记过的数据(labeled data)来作为反馈至压缩后模型的测试数据,以便通过标记所提供的信息来得知压缩后模型的输出的准确率,然而,对使用者而言,数据的标记相当费时费工,此外,计算准确率时,一般会取压缩后模型的输出中的最大值来跟标记进行比较,因此,准确率的计算根本不在意压缩后模型的输出中除了最大值以外的其它数值,假若输入数据较难判断时,压缩后模型的输出中的数值会彼此十分接近,单用准确率来作为强化学习的主体的奖励,可能造成模型过度自信并且损失部分特征的判断能力,因此造成类似过拟合(overfitting)的结果或者是与原始模型不相同的输出,再者,为了得知要采用哪种准确率的算法,已知架构亦需要使用者提供测试原始程序码(source code)。
[0020]
相较于已知架构采用准确率来作为强化学习的主体的奖励,本发明模型压缩方法改用相似度来作为强化学习的主体的奖励,并通过强化学习(例如ddpg演算法)进行模型剪枝的调整。模型剪枝(模型压缩)的最主要目的是使压缩后模型304能跟使用者所提供的原始模型302相似,因此,本发明模型压缩方法可将原始模型302的输出数据d1与压缩后模型304的输出数据d2进行相似性的比较,以作为模型剪枝(模型压缩)的依据。
[0021]
于本发明的一实施例中,相似度可通过计算原始模型x的输出与压缩后模型y的输出的皮尔森相关系数(pearson’s correlation coefficient)来得到,例如:
[0022]
output matrix of x=[1.0,2.0,3.0]
[0023]
output matrix of y=[2.0,20.0,38.0]
[0024][0025]
于本发明的另一实施例中,相似度可通过计算原始模型x的输出与压缩后模型y的输出的余弦相似度(cosine similarity)来得到,例如:
[0026]
output matrix of x=[1.0,2.0,3.0]
[0027]
output matrix of y=[2.0,20.0,38.0]
[0028]
[0029]
然而,上述仅作为范例说明之用,并非用来作为本发明的限制条件,实际上,本发明模型压缩方法亦可根据设计需求及/或应用需求来采用其它适合的相似度算法,这些设计上的变化亦落入本发明的范畴。
[0030]
如上所述,相似度的计算是基于原始模型302与压缩后模型304各自的输出数据d1、d2,于本实施例中,假若原始模型302是基于卷积神经网络架构进行训练所得到的模型,则模型剪枝操作(所要进行压缩的部位是由强化学习的主体306所采取的动作来选取)仅会施加于卷积层,因此输出数据d1、d2可以是卷积神经网络架构中位于卷积层后面的任一层的输出。图4为图3所示的原始模型302与压缩后模型304所具备的卷积神经网络架构的示意图。如图4所示,卷积神经网络架构400包含有输入层(input layer)、卷积层404_1~404_n(n≧1)、池化层(pooling layer)406_1~406_n(n≧1),全连接层(filly

connected layer)408_1~408_m(m≧1)以及输出层(output layer)410。于本发明的一实施例中,输出数据d1可以是原始模型302的一全连接层(例如408_i,1≦i≦m)的输出,以及输出数据d2可以是压缩后模型304的同一全连接层(例如408_i,1≦i≦m)的输出。于本发明的另一实施例中,输出层410为最后一层,并且会执行softmax函数以使得全连接层408_m的所有节点输出的机率分布总和为1,此外,输出数据d1可以是原始模型302的最后一层的softmax函数输出,以及输出数据d2可以是压缩后模型304的最后一层的softmax函数输出。请注意,图4所示的卷积神经网络架构400仅作为范例说明之用,并非作为本发明的限制条件,实际操作上,本发明模型压缩方法亦可适用于其它神经网络架构,这些设计上的变化亦落入本发明的范畴。
[0031]
综上所述,相似度的计算是基于原始模型与压缩后模型各自的输出数据,故无需将压缩后模型的输出数据跟测试数据的标记进行比较,换言之,相较于已知架构采用准确率来作为强化学习的主体的奖励而需要使用者提供标记过的数据来作为测试数据,本发明模型压缩方法采用相似度来作为强化学习的主体的奖励而可以不使用标记过的数据来作为测试数据(亦即,测试数据308是未标记过的数据(non

labeled data)),由于测试数据308不用包含标记,故能减少数据标记的成本与时间。此外,本发明模型压缩方法采用相似度的计算,故使用者无需提供测试原始程序码,可以直接输入模型来进行压缩,因此能有效推广模型压缩的应用。再者,本发明模型压缩方法改用相似度来作为强化学习的主体的奖励,故压缩后留下的泛化特征也不易产生过拟合。
[0032]
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本技术的权利要求书所界定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1