CN110222817A - 基于学习自动机的卷积神经网络压缩方法、系统及介质 - Google Patents
基于学习自动机的卷积神经网络压缩方法、系统及介质 Download PDFInfo
- Publication number
- CN110222817A CN110222817A CN201910390336.6A CN201910390336A CN110222817A CN 110222817 A CN110222817 A CN 110222817A CN 201910390336 A CN201910390336 A CN 201910390336A CN 110222817 A CN110222817 A CN 110222817A
- Authority
- CN
- China
- Prior art keywords
- learning automaton
- convolution kernel
- neural networks
- convolutional neural
- learning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种基于学习自动机的卷积神经网络压缩方法、系统及介质,包括:参数初始化步骤:初始化学习自动机参数;状态值选择步骤:根据获得的初始化后的学习自动机参数,每个学习自动机依据预设的行为选择概率选择自己的状态值,获得每个学习自动机的状态值;网络结构更新步骤:根据获得的每个学习自动机的状态值更新网络结构,获得更新后网络结构。本发明创新的将学习自动机思想用于筛选卷积神经网络中的最优卷积核集合,使得卷积神经网络可以在损失较少分类精度情况下最大程度地完成网络压缩任务。
Description
技术领域
本发明涉及深度学习和人工智能领域,具体地,涉及一种基于学习自动机的卷积神经网络压缩方法、系统及介质。尤其地,涉及一种基于学习自动机(Learning Automata,LA)的卷积神经网络压缩方法。
背景技术
卷积神经网络是一种可以模拟复杂函数的数学模型,隶属于深度学习中的前馈神经网络,该模型通过多层网络将输入数据的初始特征逐渐转化为高级特征,然后结合后续相关操作可以完成复杂的分类学习任务。
卷积神经网络目前主要应用于图像处理领域,它通过多层卷积与池化来模仿人类视觉处理过程,卷积层利用了局部感受视野的原理,而池化层在一定程度上有降维和尺度变换的效果,通过卷积层与池化层的紧密配合形成多个卷积组,然后逐层提取特征,最后由若干个全连接层配合完成分类。在前向传播过程中,卷积层负责特征提取,一般卷积层的输入输出被称为特征图,在每一个特征图上不同区域的像素分享共同的权值,这样的好处是在降低了神经元之间的连接数目的同时减少过拟合,此外考虑到人类认知图片的过程是由局部到整体,多层次卷积一定程度也模拟了该过程,卷积层数学表达式为xl=f(cl),其中xl代表输出特征图的一个神经元,代表输入特征图的局部区域,W代表卷积核参数,b代表着偏置,f(.)是激励函数。池化层位置常位于卷积层之后,其本质是对输入进行下采样,常用的池化方式有最大值池化和均匀池化两种方式。
目前在各种应用场景下已经出现了多种不同的网络结构,其中最经典的网络依然当属1998年Yann LeCun所提出的手写数字识别卷积神经网络AlexNet,在网络中利用卷积操作实现特征提取,通过池化操作和权重共享来降低网络结构的复杂性和权重的数量。之后人们为了提高算法的精度开始不断地改进网络,但在分类精度不断提升的同时,卷积神经网络也暴露了一个显著的问题就是,卷积网络的体积在不断地扩大,参数量数以万计,比如由牛津大学提出的著名VggNet网络就有19层,其中参数将近550M,这不仅给计算资源带来了巨大的挑战,而且让计算机内存也面临很大的压力,虽然目前一些分布式计算减小了部分压力,但是巨大的网络在某些终端设备还是无法应用,除此之外,虽然通常情况下体积和参数不断扩大可以提升分类器的精度,但是当达到一定程度时参数规模扩大所带来的收益微乎其微,而且还会导致在训练过程中出现过拟合问题,考虑到以上问题,需要在确保精度满足使用要求的前提下尽可能的压缩网络规模。
目前卷积神经网络压缩手段主要采用编码压缩和架构压缩两种手段。编码压缩是对已训练完成网络的参数进行编码,进而降低参数的内存资源占用量;而架构压缩则是从网络的结构来优化参数量,通常是根据经验重新设计网络模型或者根据权重进行剪枝。二者在实际应用中都存在不同的问题,其中编码压缩的参数压缩效果较小,而依据权重剪枝由于未考虑连接之间的相关性,一定程度上对精度的损失较大。因此如何高效的压缩卷积神经网络依然是一个巨大的挑战。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于学习自动机的卷积神经网络压缩方法、系统及介质。
根据本发明提供的一种基于学习自动机的卷积神经网络压缩方法,包括:
参数初始化步骤:初始化学习自动机参数;
状态值选择步骤:根据获得的初始化后的学习自动机参数,每个学习自动机依据预设的行为选择概率选择自己的状态值,获得每个学习自动机的状态值;
网络结构更新步骤:根据获得的每个学习自动机的状态值更新网络结构,获得更新后网络结构;
分类精度获取步骤:根据获得的获得更新后网络结构,获取更新后网络结构的分类精度Acc;
状态概率更新步骤:根据获得的分类精度Acc,对每个学习自动机的行为选择概率进行更新;
状态收敛步骤:判断所有学习自动机是否都处于收敛状态:若是,则压缩成功,结束流程;否则,返回状态值选择步骤继续执行。
优选地,所述参数初始化步骤:
卷积神经网络模型构建步骤:设置网络模型结构中的卷积层数和卷积核数量总数,获得卷积神经网络;
参数设置步骤:将卷积神经网络中的每个卷积核赋予一个包含两个行为α1和α2的学习自动机,设置学习自动机分辨率为λ,设置学习步长为Δ,设置分类精度阈值为Ta,学习自动机的行为选择概率均初始化为预设;
所述行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留。
优选地,所述状态值选择步骤:
在时间t,每一个学习自动机根据其预设的行为选择概率P选择自己的状态值Ai,行为选择概率P={TK,Tr},TK表示保留的概率值,而Tr表示移除的概率值;
更新集合A={A1,A2,…An},Ai为第i个学习自动机的行为,i=1,2,...,n,其中Ai等于1或者0,1代表保留,0代表移除。
优选地,所述网络结构更新步骤:
根据集合A对整个网络结构进行更新,获得更新后的网络结构,包括:
网络结构更新后卷积层的计算方式为:
其中,
YD表示网络结构更新后卷积层的输出;
XL表示卷积层的输入矩阵
表示第i个卷积核的权重矩阵,h、w分别表示卷积核的长和宽bi表示第i个卷积核的偏置值;
网络结构更新后整个网络模型的计算方式为:
F((Wt,Bt,fw))=F(((Wt,Bt,fw))·AT,fw)
其中,
W表示卷积神经网络中卷积核的集合;
B表示卷积神经网络卷积核偏置的集合;
fw表示卷积网络中全连接层的参数;
上标T表示转置
上标t表示时刻t
F()代表卷积神经网络的整个模型函数;
B表示卷积核偏置集合,B={b1,b2,…bn},其中一个卷积核的偏置为bi。
优选地,所述分类精度获取步骤:
根据更新后的网络结构计算网络的分类精度,将原始的训练样本输入到新网络,获取分类精度Acc,表达式为Acc←F(dataset),其中dataset代表训练样本,F()指的是卷积神经网络的整个模型函数;
计算其中n为均分器的一个参数。
优选地,所述状态概率更新步骤:
每个学习自动机状态概率更新规则为:
判定分类精度Acc是否大于阈值T:若是,则做如下操作:对集合A进行遍历,如果Ai=keep,更新每个卷积核的行为选择概率向量更新规则为 Tr(t)=1-Tk(t-1);如果Ai=remove,则Tk(t)=min{Tk(t-1)-Δ,0},Tr(t)=1-Tk(t-1);
否则,则返回状态值选择步骤继续执行;
其中,
Tk(t),Tr(t)分别表示当前时刻t卷积核被保留和移除的概率值;
Tk(t-1),Tr(t-1)分别表示上一时刻t-1卷积核被保留和移除的概率值;
行为选择概率向量表示随时间不断更新的行为选择概率,P代表固定时刻的行为选择概率;
所述状态收敛步骤:
所述判断所有学习自动机是否都处于收敛状态:
若在时刻t,学习自动机i的行为选择概率向量满足则判定学习自动机处于收敛状态,θ为人为设定的收敛阈值;否则,则判定学习自动机不处于收敛状态。
根据本发明提供的一种基于学习自动机的卷积神经网络压缩系统,包括:
参数初始化模块:初始化学习自动机参数;
状态值选择模块:根据获得的初始化后的学习自动机参数,每个学习自动机依据预设的行为选择概率选择自己的状态值,获得每个学习自动机的状态值;
网络结构更新模块:根据获得的每个学习自动机的状态值更新网络结构,获得更新后网络结构;
分类精度获取模块:根据获得的获得更新后网络结构,获取更新后网络结构的分类精度Acc;
状态概率更新模块:根据获得的分类精度Acc,对每个学习自动机的行为选择概率进行更新;
状态收敛模块:判断所有学习自动机是否都处于收敛状态:若是,则压缩成功,结束流程;否则,返回状态值选择模块继续执行。
优选地,所述参数初始化模块:
卷积神经网络模型构建模块:设置网络模型结构中的卷积层数和卷积核数量总数,获得卷积神经网络;
参数设置模块:将卷积神经网络中的每个卷积核赋予一个包含两个行为α1和α2的学习自动机,设置学习自动机分辨率为λ,设置学习步长为Δ,设置分类精度阈值为Ta,学习自动机的行为选择概率均初始化为预设;
所述行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留;
所述状态值选择模块:
在时间t,每一个学习自动机根据其预设的行为选择概率P选择自己的状态值Ai,行为选择概率P={TK,Tr},TK表示保留的概率值,而Tr表示移除的概率值;
更新集合A={A1,A2,…An},Ai为第i个学习自动机的行为,i=1,2,...,n,其中Ai等于1或者0,1代表保留,0代表移除;
所述网络结构更新模块:
根据集合A对整个网络结构进行更新,获得更新后的网络结构,包括:
网络结构更新后卷积层的计算方式为:
其中,
YD表示网络结构更新后卷积层的输出;
XL表示卷积层的输入矩阵
表示第i个卷积核的权重矩阵,h、w分别表示卷积核的长和宽bi表示第i个卷积核的偏置值;
网络结构更新后整个网络模型的计算方式为:
F((Wt,Bt,fw))=F(((Wt,Bt,fw))·AT,fw)
其中,
W表示卷积神经网络中卷积核的集合;
B表示卷积神经网络卷积核偏置的集合;
fw表示卷积网络中全连接层的参数;
上标T表示转置
上标t表示时刻t
F()代表卷积神经网络的整个模型函数;
B表示卷积核偏置集合,B={b1,b2,…bn},其中一个卷积核的偏置为bi。
优选地,所述分类精度获取模块:
根据更新后的网络结构计算网络的分类精度,将原始的训练样本输入到新网络,获取分类精度Acc,表达式为Acc←F(dataset),其中dataset代表训练样本,F()指的是卷积神经网络的整个模型函数;
计算其中n为均分器的一个参数;
所述状态概率更新模块:
每个学习自动机状态概率更新规则为:
判定分类精度Acc是否大于阈值T:若是,则做如下操作:对集合A进行遍历,如果Ai=keep,更新每个卷积核的行为选择概率向量更新规则为 Tr(t)=1-Tk(t-1);如果Ai=remove,则Tk(t)=min{Tk(t-1)-Δ,0},Tr(t)=1-Tk(t-1);
否则,则调用状态值选择模块;
其中,
Tk(t),Tr(t)分别表示当前时刻t卷积核被保留和移除的概率值;
Tk(t-1),Tr(t-1)分别表示上一时刻t-1卷积核被保留和移除的概率值;
行为选择概率向量表示随时间不断更新的行为选择概率,P代表固定时刻的行为选择概率;
所述状态收敛模块:
所述判断所有学习自动机是否都处于收敛状态:
若在时刻t,学习自动机i的行为选择概率向量满足则判定学习自动机处于收敛状态,θ为人为设定的收敛阈值;否则,则判定学习自动机不处于收敛状态。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的基于学习自动机的卷积神经网络压缩方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明创新的将学习自动机思想用于筛选卷积神经网络中的最优卷积核集合,使得卷积神经网络可以在损失较少分类精度情况下最大程度地完成网络压缩任务;
2、本发明还可以根据实际情况自定义精度损失值来调整网络规模压缩程度,相对于传统的压缩方案而言更具灵活性,实用性更强。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的优选例提供的整体结构示意图。
图2为本发明的优选例提供的基于学习自动机的卷积神经网络压缩方法流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于学习自动机的卷积神经网络压缩方法,包括:
参数初始化步骤:初始化学习自动机参数;
状态值选择步骤:根据获得的初始化后的学习自动机参数,每个学习自动机依据预设的行为选择概率选择自己的状态值,获得每个学习自动机的状态值;
网络结构更新步骤:根据获得的每个学习自动机的状态值更新网络结构,获得更新后网络结构;
分类精度获取步骤:根据获得的获得更新后网络结构,获取更新后网络结构的分类精度Acc;
状态概率更新步骤:根据获得的分类精度Acc,对每个学习自动机的行为选择概率进行更新;
状态收敛步骤:判断所有学习自动机是否都处于收敛状态:若是,则压缩成功,结束流程;否则,返回状态值选择步骤继续执行。
具体地,所述参数初始化步骤:
卷积神经网络模型构建步骤:设置网络模型结构中的卷积层数和卷积核数量总数,获得卷积神经网络;
参数设置步骤:将卷积神经网络中的每个卷积核赋予一个包含两个行为α1和α2的学习自动机,设置学习自动机分辨率为λ,设置学习步长为Δ,设置分类精度阈值为Ta,学习自动机的行为选择概率均初始化为预设;
所述行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留。
具体地,所述状态值选择步骤:
在时间t,每一个学习自动机根据其预设的行为选择概率P选择自己的状态值Ai,行为选择概率P={TK,Tr},TK表示保留的概率值,而Tr表示移除的概率值;
更新集合A={A1,A2,…An},Ai为第i个学习自动机的行为,i=1,2,...,n,其中Ai等于1或者0,1代表保留,0代表移除。
具体地,所述网络结构更新步骤:
根据集合A对整个网络结构进行更新,获得更新后的网络结构,包括:
网络结构更新后卷积层的计算方式为:
其中,
YD表示网络结构更新后卷积层的输出;
XL表示卷积层的输入矩阵
表示第i个卷积核的权重矩阵,h、w分别表示卷积核的长和宽bi表示第i个卷积核的偏置值;
进一步地,所述卷积层是卷积神经网络结构的一部分,获得分类精度需要卷积层的计算,本发明改变了卷积层的计算方式,因此此处介绍网络结构更新后卷积层的计算方式。
网络结构更新后整个网络模型的计算方式为:
F((Wt,Bt,fw))=F(((Wt,Bt,fw))·AT,fw)
其中,
W表示卷积神经网络中卷积核的集合;
B表示卷积神经网络卷积核偏置的集合;
fw表示卷积网络中全连接层的参数;
上标T表示转置
上标t表示时刻t
F()代表卷积神经网络的整个模型函数;
B表示卷积核偏置集合,B={b1,b2,…bn},其中一个卷积核的偏置为bi。
具体地,所述分类精度获取步骤:
根据更新后的网络结构计算网络的分类精度,将原始的训练样本输入到新网络,获取分类精度Acc,表达式为Acc←F(dataset),其中dataset代表训练样本,F()指的是卷积神经网络的整个模型函数;
计算其中n为均分器的一个参数。
具体地,所述状态概率更新步骤:
每个学习自动机状态概率更新规则为:
判定分类精度Acc是否大于阈值T:若是,则做如下操作:对集合A进行遍历,如果Ai=keep,更新每个卷积核的行为选择概率向量更新规则为 Tr(t)=1-Tk(t-1);如果Ai=remove,则Tk(t)=min{Tk(t-1)-Δ,0},Tr(t)=1-Tk(t-1);
否则,则返回状态值选择步骤继续执行;
其中,
Tk(t),Tr(t)分别表示当前时刻t卷积核被保留和移除的概率值;
Tk(t-1),Tr(t-1)分别表示上一时刻t-1卷积核被保留和移除的概率值;
行为选择概率向量表示随时间不断更新的行为选择概率,P代表固定时刻的行为选择概率;
所述状态收敛步骤:
所述判断所有学习自动机是否都处于收敛状态:
若在时刻t,学习自动机i的行为选择概率向量满足则判定学习自动机处于收敛状态,θ为人为设定的收敛阈值;否则,则判定学习自动机不处于收敛状态。
本发明提供的基于学习自动机的卷积神经网络压缩系统,可以通过本发明给的基于学习自动机的卷积神经网络压缩方法的步骤流程实现。本领域技术人员可以将所述基于学习自动机的卷积神经网络压缩方法,理解为所述基于学习自动机的卷积神经网络压缩系统的一个优选例。
根据本发明提供的一种基于学习自动机的卷积神经网络压缩系统,包括:
参数初始化模块:初始化学习自动机参数;
状态值选择模块:根据获得的初始化后的学习自动机参数,每个学习自动机依据预设的行为选择概率选择自己的状态值,获得每个学习自动机的状态值;
网络结构更新模块:根据获得的每个学习自动机的状态值更新网络结构,获得更新后网络结构;
分类精度获取模块:根据获得的获得更新后网络结构,获取更新后网络结构的分类精度Acc;
状态概率更新模块:根据获得的分类精度Acc,对每个学习自动机的行为选择概率进行更新;
状态收敛模块:判断所有学习自动机是否都处于收敛状态:若是,则压缩成功,结束流程;否则,返回状态值选择模块继续执行。
具体地,所述参数初始化模块:
卷积神经网络模型构建模块:设置网络模型结构中的卷积层数和卷积核数量总数,获得卷积神经网络;
参数设置模块:将卷积神经网络中的每个卷积核赋予一个包含两个行为α1和α2的学习自动机,设置学习自动机分辨率为λ,设置学习步长为Δ,设置分类精度阈值为Ta,学习自动机的行为选择概率均初始化为预设;
所述行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留;
所述状态值选择模块:
在时间t,每一个学习自动机根据其预设的行为选择概率P选择自己的状态值Ai,行为选择概率P={TK,Tr},TK表示保留的概率值,而Tr表示移除的概率值;
更新集合A={A1,A2,…An},Ai为第i个学习自动机的行为,i=1,2,...,n,其中Ai等于1或者0,1代表保留,0代表移除;
所述网络结构更新模块:
根据集合A对整个网络结构进行更新,获得更新后的网络结构,包括:
网络结构更新后卷积层的计算方式为:
其中,
YD表示网络结构更新后卷积层的输出;
XL表示卷积层的输入矩阵
表示第i个卷积核的权重矩阵,h、w分别表示卷积核的长和宽bi表示第i个卷积核的偏置值;
网络结构更新后整个网络模型的计算方式为:
F((Wt,Bt,fw))=F(((Wt,Bt,fw))·AT,fw)
其中,
W表示卷积神经网络中卷积核的集合;
B表示卷积神经网络卷积核偏置的集合;
fw表示卷积网络中全连接层的参数;
上标T表示转置
上标t表示时刻t
F()代表卷积神经网络的整个模型函数;
B表示卷积核偏置集合,B={b1,b2,…bn},其中一个卷积核的偏置为bi。
具体地,所述分类精度获取模块:
根据更新后的网络结构计算网络的分类精度,将原始的训练样本输入到新网络,获取分类精度Acc,表达式为Acc←F(dataset),其中dataset代表训练样本,F()指的是卷积神经网络的整个模型函数;
计算其中n为均分器的一个参数;
所述状态概率更新模块:
每个学习自动机状态概率更新规则为:
判定分类精度Acc是否大于阈值T:若是,则做如下操作:对集合A进行遍历,如果Ai=keep,更新每个卷积核的行为选择概率向量更新规则为 Tr(t)=1-Tk(t-1);如果Ai=remove,则Tk(t)=min{Tk(t-1)-Δ,0},Tr(t)=1-Tk(t-1);
否则,则调用状态值选择模块;
其中,
Tk(t),Tr(t)分别表示当前时刻t卷积核被保留和移除的概率值;
Tk(t-1),Tr(t-1)分别表示上一时刻t-1卷积核被保留和移除的概率值;
行为选择概率向量表示随时间不断更新的行为选择概率,P代表固定时刻的行为选择概率;
所述状态收敛模块:
所述判断所有学习自动机是否都处于收敛状态:
若在时刻t,学习自动机i的行为选择概率向量满足则判定学习自动机处于收敛状态,θ为人为设定的收敛阈值;否则,则判定学习自动机不处于收敛状态。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的基于学习自动机的卷积神经网络压缩方法的步骤。
下面通过优选例,对本发明进行更为具体地说明。
优选例1:
本发明是通过以下技术方案实现的:
本发明涉及一种基于学习自动机的卷积神经网络压缩方法,对于已经训练好的卷积神经网络,在实际运用中当需要对网络规模进行压缩时我们可以结合训练好的网络模型和对应的参数进行二次训练,在训练过程中每个卷积核等效于一个学习自动机,最终通过学习自动机并行处理使得每个卷积核收敛,而后依据收敛状态决定是否对该卷积核进行删除进而完成网络压缩。
所述的学习自动机是一种强化学习算法,它可以在拥有很少先验知识的情况下,通过不断地和环境交互调整自身状态,从而学习到最优的行为策略。
所述的基于学习自动机的卷积神经网络压缩方法,其特点在于:每个卷积核等效于一个学习自动机,卷积神经网络等效于随机环境。每个卷积核都有“保留”和“移除”两种状态,我们为每一个卷积核初始化一个保留概率值,具体的学习自动机模型采用包含两个行为α1和α2的VSSA模型,行为α1代表当前卷积核被保留,行为α2代表当前的卷积核被移除;每个行为分别对应一个选择概率p1、p2,且满足p1+p2=1。
所述的参数包括但不限于准确率阈值、行为概率、学习自动机步长,收敛阈值等。其中:准确率阈值是指人为设定的卷积神经网络分类准确度,当实际分类精度高于该阈值时候,学习自动机选中的行为会被环境所奖励;行为概率是指每个学习自动机被保留和移除的概率;学习自动机步长决定学习自动机的行为概率每次变化的步长;收敛阈值是指当某个行为概率高于此阈值的时候就认为该学习自动机收敛到该行为。
所述的在原始样本集上进行的二次训练,其目的在于使得压缩后的网络依然适用于原来的数据集,具体包括以下步骤:
第一步、根据行为概率对每一个卷积核进行选择,将处于移除状态的卷积核从卷积神经网络模型中暂时去除,导入原始训练集测试新模型的分类精度,根据反馈结果来执行行为概率更新策略。
第二步、当分类精度高于阈值时,对每个卷积核所选择的行为进行奖励。依次重复上述过程,直到所有的卷积核处于收敛状态。
第三步、当所有的卷积核状态都收敛到某个状态的时候,将状态为移除的卷积核从卷积网络中删除,从而完成网络压缩任务。
所述的并行学习自动机是指n个相同的学习自动机组成并行式模型在环境中工作,这里n指卷积神经网络中的所有卷积核个数。
本文所提出的方法是通过训练来使得在损失少量分类精度的情况下最大化的压缩已经训练好的卷积网络(即第一次),利用同一训练集完成压缩训练(即第二次),使得压缩后的网络依然适用于原来的数据集。
优选例2:
本实施例针对卷积神经网络模型在MNIST上的分类问题,对所提出的基于学习自动机的卷积神经网络压缩方法进行详细说明。MNIST数据集中包含十个类别的图片样本,分别为0-9的手写体阿拉伯数字,图片大小为28×28的灰度图。训练集中每类都有约600张图片(数量不完全相同),共计60000个训练样本,测试集中有10000个样本。
如图1所示,本实施例中每一个候选卷积核等效于一个学习自动机,其中每一个学习自动机包含有两个行为:keep和remove,每个学习自动机的行为集合可以表示为α={keep,remove},而随机环境则为整个卷积网络,在每次的交互中,卷积网络会给每个学习自动机一个反馈,根据实际情况可知随机环境为P模型,即反馈集合为β={0,1},其中1代表奖励,0代表惩罚。学习自动机使用的具体方法是DLRP算法,图中的均分器将每次奖励进行均分使卷积核集合往数量较少的方向进行收敛,通过学习自动机不断与环境即卷积神经网络进行交互,使得所有卷积核收敛到keep或remove状态,最后根据状态值实现对卷积神经网络的剪枝压缩。
如图2所示,的具体训练过程如下:
步骤1:初始化学习自动机参数;
步骤2:每个学习自动机依据其状态概率选择自己的状态值;
步骤3:根据每个学习自动机的状态值更新网络结构;
步骤4:获取更新后网络结构的分类精度Acc;
步骤5:根据得到的分类精度Acc对每个学习自动机状态概率进行更新。
步骤6:以上步骤2到步骤5不断进行迭代直到所有学习自动机都处于收敛状态。
所述步骤1包括如下步骤:
步骤1.1:构建卷积神经网络模型,本实施例构建包含5个卷积神经网络模型,其中网络模型结构中的卷积层数设置与LeNet-5相同,卷积核数量总数被分别设置为n1,n2,n3,n4,n5;
步骤1.2:学习自动机中分辨率分别为λ1=λ2=λ3=λ4=λ5,学习步长设置为Δ,分类精度阈值设置Ta。为每一个卷积核赋予一个包含两个行为α1和α2的学习自动机模型,行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留,学习自动机的行为选择概率均初始化为0.5。
所述步骤2包括以下步骤:
步骤2.1:在时间t,每一个学习自动机(卷积核)根据其自身状态P(行为概率)选择行为Ai,状态P={TK,Tr},TK表示保留的概率值,而Tr表示移除的概率值;
步骤2.2:更新集合A={A1,A2,…An},Ai为第i个学习自动机的行为,其中Ai等于1或者0,1代表保留,0代表移除。
所述步骤3包括以下步骤:
步骤3.1:根据集合A对整个网络结构进行调整,对应的卷积网络中卷积层的输出整个卷积网络的结构为F((Wt,Bt,fw))=F(((Wt,Bt,fw))·AT,fw),其中W代表卷积核,F代表卷积神经网络的整个模型函数,fw卷积网络中全连接层的参数,B表示卷积核偏置集合,B={b1,b2,…bn},其中一个卷积核的偏置为bi。
所述步骤4包括以下步骤:
步骤4.1:根据更新后的网络结构计算网络的分类精度,将原始的训练样本输入到新网络,获取分类精度,表达式为Acc←F(dataset),其中dataset代表训练样本;
步骤4.2:计算其中n为均分器的一个参数。
所述步骤5包括以下步骤:
步骤5.1:每个学习自动机状态概率更新规则为:若分类精度Acc大于阈值T,则做如下操作:对集合A进行遍历,如果Ai=keep,更新每个卷积核的行为概率向量更新规则为Tr(t)=1-Tk(t-1),如果Ai=remove,则Tk(t)=min{Tk(t-1)-Δ,0},Tr(t)=1-Tk(t-1)。否则返回步骤2。
实验结果表明,本实施例在对卷积核数量为n1,n2,n3,n4,n5的五个卷积神经网络进行压缩时,在分类精度统一设定为降低1%的情况下,五个网络卷积核所压缩的比例分别25%、50%、61.4%、51.9%、66.1%,而采用传统依据卷积核稀疏度方法对五个网络进行同样比例的压缩时,五个网络对应的分类准确度分别降低了5.57%、9.32%、15.64%、8.92%、16.58%,精度损失值都远高于本方法的1%。
优选例3:
一种基于学习自动机的卷积神经网络压缩方法,其特征在于:在损失少量的分类精度情况下对已训练好的卷积神经网络进行压缩。该方法具体步骤为:
步骤1:将卷积网络中的每个卷积核等效为一个学习自动机,并为每个学习自动机赋予“移除”和“保留”两种状态;
步骤2:训练集导入到卷积网络中,将得到的分类精度和预先设定阈值的比较结果作为学习自动机交互的环境。
步骤3:环境每次会给每个学习自动机奖励或者惩罚两种反馈,通过不断与环境交互来更新卷积核状态,进而更新卷积网络;
步骤4:重复步骤2,3,当所有卷积核状态都处于收敛状态时停止,完成卷积网络压缩。
本方法将每个卷积核等效于一个学习自动机,每个学习自动机赋予“移除”和“保留”两种状态,然后与环境不断交互使得卷积核数量往个数较少的方向收敛,最后在预先设定的阈值(分类精度)下完成卷积网络压缩。
具体的学习自动机模型采用包含两个行为的VSSA模型,行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留;每个行为分别对应一个选择概率p1、p2,且满足p1+p2=1。
在于环境交互的过程中,在每一个时刻有n个学习自动机同时与环境(卷积神经网络)进行交互,奖惩值通过均分器使得固定步长为动态步长所取代,而固定步长与每次卷积核所保留的个数成反比,这使得卷积核数量不断得往数量少的集合收敛。
所述的阈值为实际应用中所需的分类精度,根据目标值来最大化压缩已经训练好的卷积神经网络,可以避免一般方法在压缩卷积网络后精度无法满足实际需要的困境。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于学习自动机的卷积神经网络压缩方法,其特征在于,包括:
参数初始化步骤:初始化学习自动机参数;
状态值选择步骤:根据获得的初始化后的学习自动机参数,每个学习自动机依据预设的行为选择概率选择自己的状态值,获得每个学习自动机的状态值;
网络结构更新步骤:根据获得的每个学习自动机的状态值更新网络结构,获得更新后网络结构;
分类精度获取步骤:根据获得的获得更新后网络结构,获取更新后网络结构的分类精度Acc;
状态概率更新步骤:根据获得的分类精度Acc,对每个学习自动机的行为选择概率进行更新;
状态收敛步骤:判断所有学习自动机是否都处于收敛状态:若是,则压缩成功,结束流程;否则,返回状态值选择步骤继续执行。
2.根据权利要求1所述的基于学习自动机的卷积神经网络压缩方法,其特征在于,所述参数初始化步骤:
卷积神经网络模型构建步骤:设置网络模型结构中的卷积层数和卷积核数量总数,获得卷积神经网络;
参数设置步骤:将卷积神经网络中的每个卷积核赋予一个包含两个行为α1和α2的学习自动机,设置学习自动机分辨率为λ,设置学习步长为Δ,设置分类精度阈值为Ta,学习自动机的行为选择概率均初始化为预设;
所述行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留。
3.根据权利要求2所述的基于学习自动机的卷积神经网络压缩方法,其特征在于,所述状态值选择步骤:
在时间t,每一个学习自动机根据其预设的行为选择概率P选择自己的状态值Ai,行为选择概率P={TK,Tr},TK表示保留的概率值,而Tr表示移除的概率值;
更新集合A={A1,A2,…An},Ai为第i个学习自动机的行为,i=1,2,...,n,其中Ai等于1或者0,1代表保留,0代表移除。
4.根据权利要求3所述的基于学习自动机的卷积神经网络压缩方法,其特征在于,所述网络结构更新步骤:
根据集合A对整个网络结构进行更新,获得更新后的网络结构,包括:
网络结构更新后卷积层的计算方式为:
其中,
YD表示网络结构更新后卷积层的输出;
XL表示卷积层的输入矩阵
表示第i个卷积核的权重矩阵,h、w分别表示卷积核的长和宽bi表示第i个卷积核的偏置值;
网络结构更新后整个网络模型的计算方式为:
F((Wt,Bt,fw))=F(((Wt,Bt,fw))·AT,fw)
其中,
W表示卷积神经网络中卷积核的集合;
B表示卷积神经网络卷积核偏置的集合;
fw表示卷积网络中全连接层的参数;
上标T表示转置
上标t表示时刻t
F()代表卷积神经网络的整个模型函数;
B表示卷积核偏置集合,B={b1,b2,…bn},其中一个卷积核的偏置为bi。
5.根据权利要求4所述的基于学习自动机的卷积神经网络压缩方法,其特征在于,所述分类精度获取步骤:
根据更新后的网络结构计算网络的分类精度,将原始的训练样本输入到新网络,获取分类精度Acc,表达式为Acc←F(dataset),其中dataset代表训练样本,F()指的是卷积神经网络的整个模型函数;
计算其中n为均分器的一个参数。
6.根据权利要求5所述的基于学习自动机的卷积神经网络压缩方法,其特征在于,所述状态概率更新步骤:
每个学习自动机状态概率更新规则为:
判定分类精度Acc是否大于阈值T:若是,则做如下操作:对集合A进行遍历,如果Ai=keep,更新每个卷积核的行为选择概率向量更新规则为 Tr(t)=1-Tk(t-1);如果Ai=remove,则Tk(t)=min{Tk(t-1)-Δ,0},Tr(t)=1-Tk(t-1);
否则,则返回状态值选择步骤继续执行;
其中,
Tk(t),Tr(t)分别表示当前时刻t卷积核被保留和移除的概率值;
Tk(t-1),Tr(t-1)分别表示上一时刻t-1卷积核被保留和移除的概率值;
行为选择概率向量表示随时间不断更新的行为选择概率,P代表固定时刻的行为选择概率;
所述状态收敛步骤:
所述判断所有学习自动机是否都处于收敛状态:
若在时刻t,学习自动机i的行为选择概率向量满足则判定学习自动机处于收敛状态,θ为人为设定的收敛阈值;否则,则判定学习自动机不处于收敛状态。
7.一种基于学习自动机的卷积神经网络压缩系统,其特征在于,包括:
参数初始化模块:初始化学习自动机参数;
状态值选择模块:根据获得的初始化后的学习自动机参数,每个学习自动机依据预设的行为选择概率选择自己的状态值,获得每个学习自动机的状态值;
网络结构更新模块:根据获得的每个学习自动机的状态值更新网络结构,获得更新后网络结构;
分类精度获取模块:根据获得的获得更新后网络结构,获取更新后网络结构的分类精度Acc;
状态概率更新模块:根据获得的分类精度Acc,对每个学习自动机的行为选择概率进行更新;
状态收敛模块:判断所有学习自动机是否都处于收敛状态:若是,则压缩成功,结束流程;否则,返回状态值选择模块继续执行。
8.根据权利要求7所述的基于学习自动机的卷积神经网络压缩系统,其特征在于,所述参数初始化模块:
卷积神经网络模型构建模块:设置网络模型结构中的卷积层数和卷积核数量总数,获得卷积神经网络;
参数设置模块:将卷积神经网络中的每个卷积核赋予一个包含两个行为α1和α2的学习自动机,设置学习自动机分辨率为λ,设置学习步长为Δ,设置分类精度阈值为Ta,学习自动机的行为选择概率均初始化为预设;
所述行为α1代表当前卷积核被移除,行为α2代表当前卷积核被保留;
所述状态值选择模块:
在时间t,每一个学习自动机根据其预设的行为选择概率P选择自己的状态值Ai,行为选择概率P={TK,Tr},TK表示保留的概率值,而Tr表示移除的概率值;
更新集合A={A1,A2,…An},Ai为第i个学习自动机的行为,i=1,2,...,n,其中Ai等于1或者0,1代表保留,0代表移除;
所述网络结构更新模块:
根据集合A对整个网络结构进行更新,获得更新后的网络结构,包括:
网络结构更新后卷积层的计算方式为:
其中,
YD表示网络结构更新后卷积层的输出;
XL表示卷积层的输入矩阵
表示第i个卷积核的权重矩阵,h、w分别表示卷积核的长和宽bi表示第i个卷积核的偏置值;
网络结构更新后整个网络模型的计算方式为:
F((Wt,Bt,fw))=F(((Wt,Bt,fw))·AT,fw)
其中,
W表示卷积神经网络中卷积核的集合;
B表示卷积神经网络卷积核偏置的集合;
fw表示卷积网络中全连接层的参数;
上标T表示转置
上标t表示时刻t
F()代表卷积神经网络的整个模型函数;
B表示卷积核偏置集合,B={b1,b2,…bn},其中一个卷积核的偏置为bi。
9.根据权利要求8所述的基于学习自动机的卷积神经网络压缩系统,其特征在于,所述分类精度获取模块:
根据更新后的网络结构计算网络的分类精度,将原始的训练样本输入到新网络,获取分类精度Acc,表达式为Acc←F(dataset),其中dataset代表训练样本,F()指的是卷积神经网络的整个模型函数;
计算其中n为均分器的一个参数;
所述状态概率更新模块:
每个学习自动机状态概率更新规则为:
判定分类精度Acc是否大于阈值T:若是,则做如下操作:对集合A进行遍历,如果Ai=keep,更新每个卷积核的行为选择概率向量更新规则为 Tr(t)=1-Tk(t-1);如果Ai=remove,则Tk(t)=min{Tk(t-1)-Δ,0},Tr(t)=1-Tk(t-1);
否则,则调用状态值选择模块;
其中,
Tk(t),Tr(t)分别表示当前时刻t卷积核被保留和移除的概率值;
Tk(t-1),Tr(t-1)分别表示上一时刻t-1卷积核被保留和移除的概率值;
行为选择概率向量表示随时间不断更新的行为选择概率,P代表固定时刻的行为选择概率;
所述状态收敛模块:
所述判断所有学习自动机是否都处于收敛状态:
若在时刻t,学习自动机i的行为选择概率向量满足则判定学习自动机处于收敛状态,θ为人为设定的收敛阈值;否则,则判定学习自动机不处于收敛状态。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的基于学习自动机的卷积神经网络压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910390336.6A CN110222817A (zh) | 2019-05-10 | 2019-05-10 | 基于学习自动机的卷积神经网络压缩方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910390336.6A CN110222817A (zh) | 2019-05-10 | 2019-05-10 | 基于学习自动机的卷积神经网络压缩方法、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110222817A true CN110222817A (zh) | 2019-09-10 |
Family
ID=67820872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910390336.6A Pending CN110222817A (zh) | 2019-05-10 | 2019-05-10 | 基于学习自动机的卷积神经网络压缩方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110222817A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111626328A (zh) * | 2020-04-16 | 2020-09-04 | 湘潭大学 | 一种基于轻量化深度神经网络的图像识别方法及装置 |
CN113011567A (zh) * | 2021-03-31 | 2021-06-22 | 深圳精智达技术股份有限公司 | 一种卷积神经网络模型的训练方法及装置 |
CN113139577A (zh) * | 2021-03-22 | 2021-07-20 | 广东省科学院智能制造研究所 | 一种基于可变形卷积网络的深度学习图像分类方法及系统 |
-
2019
- 2019-05-10 CN CN201910390336.6A patent/CN110222817A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111626328A (zh) * | 2020-04-16 | 2020-09-04 | 湘潭大学 | 一种基于轻量化深度神经网络的图像识别方法及装置 |
CN111626328B (zh) * | 2020-04-16 | 2023-12-15 | 湘潭大学 | 一种基于轻量化深度神经网络的图像识别方法及装置 |
CN113139577A (zh) * | 2021-03-22 | 2021-07-20 | 广东省科学院智能制造研究所 | 一种基于可变形卷积网络的深度学习图像分类方法及系统 |
CN113139577B (zh) * | 2021-03-22 | 2024-02-23 | 广东省科学院智能制造研究所 | 一种基于可变形卷积网络的深度学习图像分类方法及系统 |
CN113011567A (zh) * | 2021-03-31 | 2021-06-22 | 深圳精智达技术股份有限公司 | 一种卷积神经网络模型的训练方法及装置 |
CN113011567B (zh) * | 2021-03-31 | 2023-01-31 | 深圳精智达技术股份有限公司 | 一种卷积神经网络模型的训练方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jaafra et al. | Reinforcement learning for neural architecture search: A review | |
Li et al. | Emergent world representations: Exploring a sequence model trained on a synthetic task | |
EP3686848A1 (en) | Semantic image synthesis for generating substantially photorealistic images using neural networks | |
Pathak et al. | Context encoders: Feature learning by inpainting | |
CN109992779B (zh) | 一种基于cnn的情感分析方法、装置、设备及存储介质 | |
CN108304826A (zh) | 基于卷积神经网络的人脸表情识别方法 | |
US11354792B2 (en) | System and methods for modeling creation workflows | |
CN107229904A (zh) | 一种基于深度学习的目标检测与识别方法 | |
US20200242736A1 (en) | Method for few-shot unsupervised image-to-image translation | |
CN111582397B (zh) | 一种基于注意力机制的cnn-rnn图像情感分析方法 | |
US11538178B2 (en) | Machine learning-based 2D structured image generation | |
CN110222817A (zh) | 基于学习自动机的卷积神经网络压缩方法、系统及介质 | |
CN113994341A (zh) | 面部行为分析 | |
CN110929610A (zh) | 基于cnn模型和迁移学习的植物病害识别方法及系统 | |
CN109063719A (zh) | 一种联合结构相似性和类信息的图像分类方法 | |
CN112508190A (zh) | 结构化稀疏参数的处理方法、装置、设备及存储介质 | |
CN112101364A (zh) | 基于参数重要性增量学习的语义分割方法 | |
Sang et al. | Discriminative deep feature learning for facial emotion recognition | |
DE102021124769A1 (de) | Latente-variable generatives modell mit einem rauschkontrastgebenden prior | |
Zhang et al. | Skip-attention encoder–decoder framework for human motion prediction | |
WO2021038793A1 (ja) | 学習システム、学習方法、及びプログラム | |
CN114882278A (zh) | 一种基于注意力机制和迁移学习的轮胎花纹分类方法和装置 | |
US11816185B1 (en) | Multi-view image analysis using neural networks | |
WO2022127603A1 (zh) | 一种模型处理方法及相关装置 | |
Velandia et al. | Applications of deep neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190910 |
|
RJ01 | Rejection of invention patent application after publication |