一种基于网络增长和逼近论的图像分类方法

文档序号:30267147发布日期:2022-06-02 04:50阅读:116来源:国知局
一种基于网络增长和逼近论的图像分类方法

1.本发明属于人工智能领域,更具体来说深度学习方向的一种基于网络增长和逼近论的图像分类方法。


背景技术:

2.深度学习,作为机器学习领域中的一个研究方向,主要目的是模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,使得计算机能够获得和生物大脑相似的学习能力。在图像领域,我们所做的工作主要是图像分类和目标检测,目标是尽可能地提高分类和识别的准确率。但目前的图像分类,大多是使用固定的网络结构,会出现分类时间过长、模型应用不灵活、陷入局部最优导致图像分类准确率低等问题。
3.训练固定的网络结构进行图像分类,那么网络结构往往都需要根据经验人工设定,但由于人工设计的网络结构并不能够完整地学习图像所有特征,因此常常陷入局部最优,造成图像分类正确率低的问题;网络的参数也需要大量的时间训练,参数收敛速度较慢时会导致分类时间过长的问题;另外,当数据集产生变化时,比如加入新的图像或减少一部分原有图像,那么网络参数则需要重新训练,这就导致资源和时间的浪费,灵活性很低。由于这些问题的存在,自动化网络架构搜索技术应运而生,使用该技术可以根据图像数据集自动得到合适的网络结构,不再需要人工设计,增加了网络对图像数据集特征的学习能力,并在搜索的同时进行参数训练,提高了神经网络对图像分类的正确率。
4.目前架构搜索主要分为三类:全局搜索结构、基于单元(cell-based)搜索结构和层次搜索结构。全局搜索结构搜索一个完整的网络结构,具有很高的自由度;基于单元搜索结构所搜索的网络是通过在模板定义的、预先指定好的排列中重复cell结构来构建的;层次搜索结构则是将前一步骤生成的单元结构作为下一步单元结构的基本组成部件,通过迭代的思想得到最终的网络结构。
5.此外动态增长神经网络也被认为是一种很好的方法,能够逐步增长神经网络结构的高效技术可以让我们共同优化网络参数和结构,以实现更高的精度和计算效率,尤其是在动态变化的图像数据集中更加适用。目前主要的增长网络方法主要包括对于同一层中节点的增长、某一节点的分裂增长方式和神经网络不同层之间的增长方式。
6.针对当前图像分类方法存在的问题,本发明将网络增长,逼近论和架构搜索方法结合起来,采用迭代的方法动态增长网络结构,以每一轮迭代的分类误差为指导,不断提高网络对图像数据集的学习能力,这种迭代逼近的方法可以跳出局部最优的困扰,提高网络图像分类的正确率。同时增长神经网络的方法更加灵活,当加入新的图像进行训练时,已完成训练的网络和参数无需变化,仅需增加网络结构和训练新的参数即可,大大提高了图像分类的灵活性,缩短了网络训练和图像分类所花费的时间。


技术实现要素:

7.有鉴于此,本发明提供一种基于网络增长和逼近论的图像分类方法,本发明通过使用不断增长的神经网络进行图像分类,增长方式为迭代的方式,每一次迭代都生成一个cell堆叠的自适应神经网络对数据集内的图像特征进行学习,再将自适应网络增加到已有的神经网络中,以此来不断增加网络对输入图像数据集的学习能力。使用此增长网络对图像进行分类,既能够使每次迭代生成的自适应网络对已有神经网络效果进行调整,减少由于学习能力不足产生的分类误差;还能够使神经网络对于变化的图像数据集适应能力更强,输入图像数据集变化时无需重新训练参数,仅仅增加自适应网络进行调整即可;同时能够可以跳出局部最优的困扰,通过迭代的方式增长网络,逐轮训练逼近正确分类结果。进而达到减少分类时间、增加图像分类灵活性、提高分类正确率的目的。
8.本发明主要分为三个部分:
9.(1)对于数据集样本空间的划分,将输入图像数据集中的每一个图像数据降维成1
×
n的向量形式,对这些向量形成的样本空间进行空间划分得到多个超立方体,根据落在超立方体内向量对应的类别标签给超立方体打上类别标签,保存样本空间的划分信息。
10.(2)输入图像降维后的向量数据集和已经保存的样本空间划分信息,根据向量数据集和样本空间划分信息按照设计的算法使用多个结构相同参数不同的基本神经元单元(cell)堆叠来进行自适应神经网络搭建,使用此自适应神经网络完成一轮的图像分类。
11.(3)迭代增长完整神经网络完成图像分类,采用动态增长网络的方式,最终得到多个cell堆叠的自适应神经网络构成完整网络,共同完成图像分类。每轮训练得到一个(2)中的自适应增长网络,图像分类结果为当前所有自适应网络输出之和,每轮记录所有分类错误的图像对应向量以及它对应的真实类别标签与错误预测标签之差(误差),下一轮训练得到的网络用来对于此误差进行补偿,直到分类正确率小于设定阈值,停止训练和网络增长,得到最终完整网络,完成图像分类任务。
12.本发明的流程图如图1所示,包括五个步骤:
13.1.图像数据集处理。图像数据集s是由输入的m个图像形成的,每张图像为灰度图像或者rgb三通道图像,图像数据为特征向量、单通道像素矩阵或三通道像素矩阵,对应图像真实分类标签为y1,y2,

,ym。
14.图像数据集处理具体为:若输入图像数据集为特征向量数据集,则无需进行降维。否则,将数据集中的每个图像从单通道或者三通道像素矩阵降维成n维向量,n的取值由降维方法确定,如图2所示。将降维后的向量形成的数据集t作为之后的输入数据集,分类标签不变,来进行后续的网络搭建和增长。
15.2.样本空间划分。对降维后的m个n维向量数据集t形成的样本空间a进行划分,划分目的是将类别标签相同的向量尽可能的划分到同一超立方体中,之后神经网络即可从学习图像特征转移到学习样本空间区域特征。划分后的每一块超立方体xc都需设定一个类别标签yc,设定标准是将超立方体中所有向量的类别标签中出现次数最多的类别标签设定为超立方体的类别标签yc。保存样本空间划分方法和超立方体类别标签作为样本空间划分信息。
16.3.确定基础神经元单元cell。基础神经元单元cell采用单隐层的resnet网络,具体结构为三层神经网络,依次包括输入层、隐藏层以及输出层,隐藏层激活函数为relu函
数,在输入层和输出层之间存在一个skip-connect。输入层和隐藏层以及隐藏层和输出层之间的连接均采用线性连接,即隐藏层元素=权值
×
输入层元素+偏置,输出层元素=权值
×
隐藏层元素+偏置。
17.4.使用cell堆叠的自适应神经网络学习图像特征。自适应增长网络由步骤3中cell从下往上堆叠而成,不同cell结构相同,权重和偏置不同,其中,自适应网络中cell堆叠的数目根据步骤2中样本空间的划分决定,决定方法为在样本空间划分的每个超立方体,若其中含有训练集样本,使用三个cell完成特征的学习,样本空间划分的超立方体数目越多,cell堆叠的数目也会越多;不同cell的权重和偏置根据输入图像降维后向量的维数、样本空间划分数目和向量类别标签决定,决定方法为输入向量的维数决定权重和偏置的维数,样本空间划分数目和向量类别标签决定权重和偏置的大小,同时,样本空间划分数目决定权重和偏置的数目。不同cell的权重和偏置均可使用本方法计算得到。
18.5.增长网络完成图像分类。增长网络的方法为迭代过程,其中第i轮迭代的过程为:把降维后的向量数据集t的所有向量xk(k=1,2,

,m)输入到第i-1轮迭代得到的神经网络n
i-1
中,得到n
i-1
对xk的预测标签计算和xk的真实类别标签yk之间的分类误差之间的分类误差之后构造第i轮迭代的训练集,训练集向量和t中向量xk相同,训练集中xk对应的标签即第i轮迭代的训练集为按照步骤2对训练集ti所在样本空间ai进行划分,并保存划分信息;输入训练集ti和样本空间ai的划分信息,按照步骤4得到的自适应网络作为neti,来对第i-1轮的分类误差进行学习和补偿,具体的,将neti增加到n
i-1
上得到第i轮迭代的神经网络ni,增加方式为将neti作为一个旁路连在n
i-1
的输入和输出之间,此时ni的输出为n
i-1
的输出和neti的输出之和;最后将t中所有向量xk输入ni进行分类,计算ni的分类正确率;若正确率小于预先设定的阈值,则继续进行第i+1轮迭代;若正确率大于预先设定的阈值,则说明对图像分类效果良好,完成图像分类任务。
19.有益效果
20.本发明提出一种基于网络增长和逼近论的图像分类方法,此方法可以根据输入图像的维数、通道数和图像类别自动确定网络规模,结合逼近论和集成学习的思想,自下而上的逼近最优图像分类效果,可以大大减少图像分类所耗费的时间,增加对于变化的图像数据集分类的灵活性,并且可以跳出局部最优,提高图像分类的正确率。
附图说明
21.图1、本发明方法流程图;
22.图2、单通道或三通道像素矩阵降维示意图;
23.图3、单层resnet网络示意图;
24.图4、自适应增长的神经网络所构建的空间梯形体函数示意图;
25.图5、基本单元堆叠构建的自适应增长网络单维度结构示意图;
26.图6、增长得到的整体神经网络结构示意图;
具体实施方式:
27.本发明提出一种基于网络增长和逼近论的图像分类方法,使用到的实验环境资源
如下所述,运行在windows 10系统下,利用python 3.7和pytorch 1.8.1+cu102框架实现自搭建结构,利用型号为gtx 1080ti的gpu为样本空间划分和网络增长过程加速。
28.具体实验步骤思路和细节如下:
29.步骤1,数据集的准备:
30.实验目的为使用iris鸢尾花数据集和mnist手写数字数据集分别进行训练、增长,得到神经网络,并使用得到的神经网络对测试集图像进行分类。
31.输入图像数据集s即为iris鸢尾花数据集或mnist手写数字数据集。鸢尾花数据集共包含了三种不同类型的鸢尾花图像,对应类别标签0、1、2,共有150个图像数据,其中100个图像构成训练集,剩余50个图像构成测试集,每个图像数据保存为4维向量形式,分别对应鸢尾花的4种特征属性;mnist手写数字数据集则按照图片内容中的数字0到9分为10个类别,对应类别标签0到9,其中训练集有60000个数据,测试集有10000个数据,每个图像为28
×
28的灰度图像,保存为28
×
28的灰度像素矩阵形式。由于鸢尾花数据集调用sklearn包导入,数据为4维向量形式,因此无需降维,直接使用导入的数据集作为训练集即可。而mnist数据集导入后为灰度像素矩阵形式,因此需要进行降维,把28
×
28的单通道像素矩阵降维成784维向量,标签使用降维前图像的分类标签,得到向量数据集t。
32.步骤2,样本空间划分:
33.此步骤是为构建自适应增长网络而准备,目的是为了使步骤3中自适应网络的学习对象从对图像特征的学习改变为对样本空间区域特征的学习。
34.样本空间划分的思路为:在第i轮搜索训练开始之前,对输入的向量数据集ti形成的样本空间ai进行划分。由于同类图像之间的相似度要大于异类图像之间的相似度,因此我们希望,对于样本空间划分得出的超立方体,同一超立方体中向量标签相同,不同超立方体间向量标签不同,并将超立方体中出现次数最多的向量标签作为超立方体标签,此时认为:超立方体内部的所有向量,类别标签都和超立方体标签相同。
35.具体实验为:本方法实验中划分样本空间方法使用cart决策树进行划分,以鸢尾花数据集举例,由于鸢尾花数据集导入后为4维向量形式,因此无需降维,处理后训练集t中数据同样为4维向量,共100个数据,使用决策树对100个数据进行划分,使用cart算法建立决策树,决策树的每一个节点为对t构成的样本空间a的划分。分别统计决策树节点中属于第1维、第2维、第3维、第4维的分量,记录每一维的划分方法。若第1维、第2维、第3维、第4维分量被划分为t1、t2、t3、t4个部分,那么t构成的样本空间被划分为t1×
t2×
t3×
t4个部分,最后根据决策树得出的分类标签确定样本超立方体的标签。完成样本空间划分并记录划分信息。划分样本空间的方法属于现有技术,本实施例只介绍了一种,还可以采用聚类等方法。
36.对于mnist数据集或者其他数据集操作和鸢尾花数据集相同。
37.步骤3,搭建基础神经元单元(cell):
38.因为欲使用空间梯形函数来进行样本空间区域特征的学习,所以我们选择的cell也是必须可以完成梯形函数的构建,对于梯形函数的斜边,我们可以使用relu激活函数完成,而其它部分则可以使用max或者min操作来完成,空间梯形函数的结构如图4所示。单隐层resnet网络可实现的操作有:
39.1)按常量移位:r
+
=r+c
40.2)带有常量的min或max:r
+
=min{r,c}or r
+
=max{r,c}
41.3)使用线性变换的min或max:
42.r
+
=min(r,αr+β}orr
+
=max{r,αr+β}
43.min{r,αr+β}=r-relu((1-α)r-β)
44.max(r,αr+β}=r+relu((α-1)r+β)
45.其中r为输入,r
+
为输出,根据这一系列的推导,可以在向量每一维分量上进行梯形函数的搭建,每一维梯形函数完成后将所有维度的函数高度累加即可得到空间梯形函数。因此,使用单隐层的resnet网络作为基础神经元单元来进行下一步的自适应网络搭建。
46.步骤4,使用cell堆叠的自适应神经网络学习特征:
47.cell堆叠构造网络是指将一个个的神经单元从下至上逐个连接,即将下方cell的输出作为上方cell的输入,串联得到神经网络。
48.cell堆叠构造自适应神经网络的原理为:图像数据集降维后得到向量数据集,对向量数据集对应的n维样本空间划分后(n为降维后向量维数),每个划分得到的超立方体均有一个类别标签,并认为超立方体内所有向量的标签均和超立方体样本标签相同,那么在整个样本空间a中,任意向量x对应的标签大小可表示成一个指示函数h(x):
[0049][0050]
其中m为划分后超立方体的个数,h
l
表示第l个超立方体对应的类别标签,i
l
表示空间中第l个超立方体。若n=1,h(x)退化成分段常函数,对于分段常函数,常使用连续梯形函数r(x)进行逼近,当梯形斜边斜率足够大时,h(x)和r(x)之间的误差趋近于0。同样的,对于n》1,在n个维度均构造梯形函数来逼近最终将所有维度的梯形函数相加,得到的空间梯形体函数(如图4所示),即可用来逼近指示函数h(x)。空间梯形体函数中梯形体的个数和超立方体个数相同。
[0051]
因此,使用cell堆叠生成神经网络,仅需使用cell在向量的每一维上完成连续梯形函数的效果,最终将每一维的输出求和再进行高度调整即可。
[0052]
cell选取为resnet网络,当输入为x时,cell的输出为x+w2relu(w1x+b1)+b2,下方均使用此格式描述cell的结构和参数。
[0053]
在样本空间的第j维度cell堆叠的步骤为:假设样本空间第j维的划分为在样本空间的第j维度cell堆叠的步骤为:假设样本空间第j维的划分为定义域外的均不存在样本。
[0054]
首先使用cell将左侧区间输出均调整为0,此时cell的输入为输入向量x的第j维分量xj,输出为cell的结构与参数为:
[0055][0056]
之后使用一个cell为构造梯形做预处理,此时cell的输入为输出为r
j0
,cell的结构与参数为:
[0057][0058]
此时开始构造第j维的第l个梯形,l=1,2,

,mj。每一个梯形需要三个cell完成构造,三个cell的输入输出和参数依次为:
[0059]
1)cell输入为r
jl-1
,输出为,输出为
[0060]
2)cell输入为输出为输出为
[0061]
3)cell输入为输出为r
jl

[0062]
使用cell完成mj个梯形构造后,需要使用一个cell将输出均调整为0,cell的输入为输出为cell的结构与参数为:
[0063][0064]
此时完成第j维度cell的堆叠。
[0065]
按照上述方法完成第1,2,

,n维的cell堆叠搭建单维度的神经网络后,将n维网络输出的结果相加,得到空间梯形体函数。但此时非定义域的超立方体区域仍不全为0,需在n个网络输出的结果相加得到后,再在之后堆叠cell完成调整,此时cell的输入为n个网络输出之和r
+
(x),输出为r
*
(x),cell的结构和参数为:
[0066]r*
=r
+
+relu(-r
+
+(m
2:n
+n)||h||

)-(m
2:n
+n)||h||

[0067]
其中,输入经过此cell后,空间梯形体函数在定义域外的高度均下降为0。
[0068]
最后使用cell对输出进行调整,此时cell输入为r
*
,输出为r:
[0069][0070]
其中,h
input
为输入x所处超立方体的类别标签,r
input
为r
*
得到的输入x所处超立方体的空间梯形体高度,r
input-1
为所有梯形体高度排序后小于r
input
的高度值,输出r即为网络对于输入向量x的分类标签。
[0071]
至此完成cell堆叠,得到自适应神经网络。
[0072]
步骤5,增长网络完成图像分类:
[0073]
增长网络结构完成图像分类,以鸢尾花数据集为例,含有100个图像的鸢尾花训练集s使用sklearn包导入即为4维向量数据集t,每个向量xk的真实标签即为对应图像的类别标签yk,k=1,2,

,100。
[0074]
开始网络的增长过程,此过程为迭代的训练和搜索,每一轮训练和搜索我们都会对图像降维后的输入向量数据集的标签yk进行调整,调整方式将xk的类别标签改为图像真实分类标签yk和当前得到的神经网络的预测标签之差。
[0075]
在第1轮训练中,由于当前没有搜索出的神经网络,因此我们认为第0轮的预测标签k=1,2,

,100。这样第1轮调整后的xk的类别标签之后对数据集按照步骤2使用决策树进行样本空间划分,之后根据样本空间划分信息和t1按照步骤4将cell堆叠进行第一个自适应增长的神经网络net1的搭建,目的是使用net1对当前分类的误差进行补偿。如果net1的分类正确率大于事先设定好的阈值,则停止增长,net1即为搜索得到的网络结构。否则继续下一轮的搜索训练过程。
[0076]
在第i轮训练中,先使用前i-1轮得到的所有自适应增长网络net1,net2,

,net
i-1
对所有向量xk进行预测分类,得出分类结果output
1k
,output
2k
,

,output
(i-1)k
,则第i-1轮的预测标签调整第i轮训练集标签调整第i轮训练集标签k=1,2,

,100。得到第i轮训练集按照步骤2使用决策树对ti进行样本空间划分,再根据步骤4进行第i个网络neti的增长,对前i-1轮的分类误差进行补偿。最后根据当前已有网络net1,net2,

,neti进行分类,如果分类正确率小于设定阈值,则继续i+1轮的搜索训练。如果分类正确率大于设定阈值,则停止增长,使用得到的网络完成测试集的图像分类任务。
[0077]
所得完整网络结构如图6所示。
[0078]
实验过程和结果评价:
[0079]
本发明实验由两个实验构成,分别使用了鸢尾花数据集和mnist数据集两个数据集来完成网络增长,进行图像分类。
[0080]
由于鸢尾花数据本身即为一维向量形式,则不再进行降维操作,直接使用决策树划分样本空间,划分为6个区域,保存划分信息,之后计算划分的6个超立方体中空间梯形体的高度,将标签、数据、所有梯形高度和划分信息输入,根据算法得到自适应网络,该网络对于训练集数据的分类正确率为98%,因此增长第二个自适应增长网络,由于错误数据均为2类且均被预测为3类,则空间不再进行划分,将错误数据标签改为-1类(2类-3类),得到第二个网络,此时训练集分类正确率为100%,停止训练。对测试集进行分类,正确率为100%,具体实验结果如下:
[0081] 空间划分数训练集正确率测试集正确率第1个网络698%98%第2个网络1100%100%
[0082]
结果显示,此方法是实际上是可行的,并且搜索得到的网络在小数据上的效果非常良好。
[0083]
第二个实验我们使用mnist数据集,首先加载mnist数据集的训练集和测试集,由于mnist数据集的输入图片为灰度图像,大小为28
×
28,因此我们首先要将他转化为784维的向量形式,而样本的标签原本为0到9十个数字类别,我们将其按照大小顺序编号转为1到10十个数字类别,记录最大分类标签号和输入向量维数。之后依然是使用决策树划分向量所在的样本空间,搭建自适应增长网络。
[0084]
开始训练,将输入维数、样本空间划分信息、最大标签号输入网络训练,按照我们
设定的算法自适应确定cell块的数量、cell块中参数的维数和大小,并将cell块不改变单元结构进行堆叠,保存网络结构。
[0085]
之后使用第1个网络对训练集数据进行分类,得到分类正确率为97.595%,因此存在错分的情况,我们修改错误分类的样本,并将其标签改为真实类别号-错分类别号,将其作为下一个网络的训练数据以完成对于误差区域的补偿。
[0086]
之后按照上述方法得到第2个自适应增长网络,将原训练集数据输入第1个+第2个网络形成的大网络中,分类结果为第1个+第2个网络输出之和,得到分类正确率99.46166666666667%,依旧存在错分数据,此时修改错分数据标签后再次增长网络。
[0087]
最后当生长到第7个网络时,训练集正确率为100%,完成搜索训练,得到完整的网络架构。具体实验结果见下表:
[0088][0089][0090]
基于网络增长和逼近论的图像分类方法,可以针对图像数据集进行不断增长神经网络结构,学习图像数据集直到100%的程度,并且使用逼近论和补偿误差的方法,不会使训练效果陷入局部最优的情况,对图像数据集的分类效果良好。但网络结构的泛化性比较依赖初始时的样本空间分类。
[0091]
通过上述两个实验说明,基于网络增长和逼近论的图像分类方法,可以通过迭代的方式,逐步学习图像的类别特征,并且可以在不同规模的图像数据集上都能够有着良好的分类效果,具有较高的灵活性,同时保证分类正确率随着迭代次数和网络个数增加而增加,不会出现正确率下降的情况,提高了使用神经网络进行图像分类的速度。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1