一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于三元组多样范例集和梯度正则化的增量学习方法、计算机及存储介质与流程

2021-11-06 06:00:00 来源:中国专利 TAG:


1.本发明涉及一种增量学习方法,尤其涉及一种基于三元组多样范例集和梯度正则化的增量学习方法、计算机及存储介质,属于人工智能领域。


背景技术:

2.增量学习是人工智能领域中的一个重要学习训练方法,该方法的目标是能够在序列化输入训练数据的情况下,增量式地训练更新模型参数而不是从零开始训练,并且使得模型在学习新的知识的同时不会遗忘已学过的旧知识。
3.现有的基于重演的增量学习方法所采用的范例选择策略大部分类似于最近邻的思想,选取与类特征中心距离最近的样本,保证了每次选取的样本的代表性。但是这样的范例集的分布就不能很好的覆盖原训练样本的数据分布,所以在之后的重演训练中并不能很好地描述旧任务的优化空间分布。同时,现有的基于重演的增量学习方法大多将范例数据放入蒸馏损失函数中进行优化,使用的手段比较简单,并不能高效地利用范例数据来约束优化的方向与大小。


技术实现要素:

4.在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
5.本发明提供了一种基于三元组多样范例集和梯度正则化的增量学习方法,包括以下步骤:
6.s1.将第一个任务的批次训练数据输入模型进行前向传播得到预测样本特征,将得到的预测样本特征和真实标签输入损失函数进行反向传播更新模型参数;
7.s2.完成第一个任务的批次数据的训练后,再次将第一个任务的批次训练数据输入模型,计算批次数据的原型表示;
8.s3.计算每个类别应保存的正例样本的数量和反例样本的数量;若当前处于第一个任务的训练阶段,执行步骤s5,若当前处于增量状态任务的训练阶段,执行步骤s4,若当前所有类别的准确度都计算完成,程序结束;
9.s4.更新已有类别的范例集应存储的范例的数量;
10.s5.将训练数据预测样本特征划分为正例集和反例集,对两个集合中的样本进行打分,根据样本的分数和每个类别应保存的正例样本的数量和反例样本的数量构建当前类别范例集;
11.s6.开始增量状态任务训练工作,对所有已知类别的范例集进行随机取样获得重演样本集,然后对重演样本集和批次数据中的样本进行前向传播;
12.s7.将批次数据输入损失函数计算损失函数值,得到三种损失函数的梯度;
13.s8.对三种不同梯度进行正则化,得到最终的梯度值进行反向传播更新,反向传播更新完成后,跳转到步骤s3。
14.优选的,步骤s1所述将第一个任务的批次训练数据输入模型进行前向传播得到特征,将得到的特征和真实标签输入损失函数进行反向传播更新模型参数的具体方法:
15.s11.随机初始化模型参数,开始第一个任务的训练,从数据集中随机选取一个批次的训练数据,一个批次包含10张图片,将每张图片转换为1
×
3072维度的张量后输入到特征提取器中,得到对应的1
×
100维度的特征,如以下公式所示:
16.v={φ(x
i
;θ)},i∈1,2,...,|b|
17.其中,v是包含了一个批次的图片对应的特征的集合,φ是特征提取器,x
i
是一个批次中的第i个样本的样本值,θ是特征提取器的参数,b代表了一个批次的数据,即10张图片,|b|代表了一个批次里的样本数量,| |代表了求第一范数的操作;
18.s12.完成特征提取工作之后,将步骤s11得到的特征集合v输入到分类器中,使用第一个任务的分类损失函数和随机梯度下降来优化模型,如以下公式所示:
[0019][0020]
其中,l0表示第一个任务的分类损失函数,y表示真实标签,v表示样本特征,y
i
表示第i个样本的真实标签,v
i
表示第i个样本的样本特征,是分类器,log()代表了求对数的操作;所述模型包括特征提取器和分类器;
[0021]
步骤s2所述完成第一个任务的批次数据的训练后,再次将第一个任务的批次训练数据输入模型,计算批次数据的原型表示的具体方法是:
[0022]
s21.完成当前批次数据b的训练之后,再次将训练样本输入特征提取器中得到对应的样本特征,对当前批次数据b中所有属于c类别的样本特征求和并除以对应的样本特征的数量|b
c
|,得到c类别的原型表示,原型表示代表了对应类别在特征空间的中心向量,每个类别都有一个原型表示,如以下公式所示:
[0023][0024]
其中,代表了通过当前批次计算得到的原型表示的集合,b
c
代表了当前批次数据b中所有属于c类别的样本,|b
c
|代表了当前批次数据b中所有属于c类别的样本的数量,φ是特征提取器,代表了当前批次数据b中属于c类别的第i个样本的样本值,n代表了当前批次数据b所包含的类别的数量;
[0025]
s22.在步骤s21得到的原型表示的集合之后,更新对应类别c的原型表示,如以下公式所示:
[0026][0027]
其中,代表了在步骤s21得到的原型表示的集合,代表了集合中属于c类别
的原型表示,代表了缓存中存储的原型表示的集合,代表了集合中属于c类别的原型表示,μ代表了一个平衡用的超参数,n代表了当前批次数据b所包含的类别的数量。
[0028]
优选的,步骤s3所述计算每个类别应保存的正例样本的数量和反例样本的数量的具体方法是:
[0029]
s31.计算每个类别的准确度;具体是:
[0030]
将c类别的测试数据依次输入到模型中进行预测,将测试样本的预测值和测试样本的真实标签进行比对,两者一致则为分类正确,否则分类错误,累加分类正确的测试样本的数量,将其除以测试样本的数量,得到c类别的准确度acc
c
,如以下公式所示:
[0031][0032]
其中,acc
c
代表了c类别的准确度,t
c
代表了第c类别的测试数据集,|t
c
|代表了集合t
c
所包含的测试样本的数量,φ是特征提取器,是分类器,代表了第c类的第i个测试样本的样本值,代表了第c类的第i个测试样本的真实标签,

代表了同或操作,两者一致则为1否则为0;
[0033]
s32.按照步骤s31中的方法,依次计算所有已知类别的准确度,得到所有已知类别的准确度的集合acc,如以下公式所示:
[0034]
acc={acc
i
},i∈1,2,...,n
[0035]
其中,acc代表了所有已知的类别的准确度集合,acc
i
代表了第i个类别的准确度,n代表了目前已知的类别的数量,目前已知的类别是指到当前时间节点,所有在模型上完成训练的类别,随着训练的进行,数量n是逐渐上升的;
[0036]
s33.计算每个类别的范例集应存储范例的数量;具体是:
[0037]
由于范例集m是一个固定值,随着训练的进行,已知类别的数量k在逐渐上升,则可分配到已知类别的范例集的额定范例数量m会动态的变化,如以下公式所示:
[0038][0039]
其中,m代表了所有类别的范例集应存储范例的数量,是个固定不变的数值,m代表了已知类别的范例集的额定范例数量,k代表了已知类别的数量,是个动态变化并且逐渐增大的数值;
[0040]
s34.将准确度集合acc与额定范例数量m相乘,得到c类别的范例集中应保存的正例数量和反例的数量对于分类正确的样本称其为正例,对于分类错误的样本称其为反例,如以下公式所示:
[0041][0042]
[0043]
其中,代表了第i个类别的范例集中应保存的正例的数量,r是正例的标记,代表了第i个类别的范例集中应保存的反例的数量,w是反例的标记,acc
i
代表了集合acc中第i个类别的准确度,代表了取上界的操作,代表了取下界的操作。
[0044]
优选的,步骤s4所述更新已有类别的范例集应存储的范例的数量的具体方法是:
[0045]
s41.减小已有类别的范例集所存储的样本的数量,范例集是一个有优先级的集合,排名高的样本距离中心向量最近,拥有最高的优先级,所以直接保留范例集中的前若干个范例即可,超出范围的直接舍弃,具体的计算方法如下:
[0046]
ec={ei},i∈1,2,...,m
[0047]
其中,e
c
代表了第c个已知类别的范例集,e
i
代表了第c个已知类别的范例集中的第i个范例。
[0048]
优选的,步骤s5所述将训练数据预测样本特征划分为正例集和反例集,对两个集合中的样本进行打分,根据样本的分数和每个类别应保存的正例样本的数量和反例样本的数量构建当前类别范例集;的具体方法是:
[0049]
s51.划分正例集和反例集;具体是:
[0050]
将当前任务训练数据输入模型中得到预测结果,将每个类别的预测结果数据集分为不相交的两部分,正例集和反例集,保留正例的样本值、真实标签和特征,并将三者以三元组的形式放入正例集,保留反例的样本值和真实标签,并将二者以二元组的形式放入反例集,如以下公式所示:
[0051][0052][0053]
其中,代表了第i个类别的正例集,代表了第i个类别的反例集,代表分类正例样本的样本值,代表分类正例样本的真实标签,代表分类正例样本的特征,代表分类反例样本的样本值,代表分类反例样本的真实标签,a代表了训练数据的样本数量;
[0054]
s52.对集合中的样本进行打分;具体是:
[0055]
对第i个类别的正例集和反例集中的样本进行打分,确定需要存储的样本,将范例集中的所有样本输入特征提取器得到样本特征,将其求和;将正例集中的样本输入特征提取器得到样本特征,将其与之前求得的和值进行加和,再将结果除以样本数量k,得到一个伪中心向量,计算伪中心向量和类中心向量的距离值,这个距离值就是样本的得分;计算正例集中所有样本的得分,具体公式如下:
[0056]
[0057][0058]
其中,e
c
代表了第c个类别的范例集,代表了第c个类别的正例集,代表了第c个类别的反例集,argmin代表了使函数值最小时的自变量取值,|| ||代表了求第二范数的操作,用来计算两个向量之间的距离,γ
c
代表了第c个类别的原型表示,k表示选取的范例的次序,即现在正在进行范例集中第k个范例的选取工作,代表了第c个类别的正例集中的第i个正例,代表了第c个类别的反例集中的第i个反例,e
j
表示了第c个类别的范例集中第j个范例,φ是特征提取器;
[0059]
s53.构建当前类别范例集;具体是:
[0060]
选取得分最高的样本的三元组放入范例集e,以同样的方式对反例集中的样本进行得分的计算,最终选取得分最高的样本的二元组放入范例集e。
[0061]
优选的,步骤s6所述对所有已知类别的范例集进行随机取样获得重演样本集的具体方法是:
[0062]
s61.在训练处于增量状态的任务时,即第一个任务训练结束后,对已知类别的范例集进行随机取样,得到重演样本集,重演样本集所包含的样本的数量|e
s
|与批次数据包含的样本的数量|b|相同,如以下公式所示:
[0063]
e
s
=randomsample(e)
[0064]
其中,e代表了所有已知类别的范例集,e
s
代表了从范例集e中随机取样得到的重演样本集,s代表了重演样本集的标记,randomsample()代表了随机取样的操作;
[0065]
s62.从数据集中随机选取一个批次的训练数据b,从步骤s61中得到重演样本集e
s
,这两个集合各自包含|b|和|e
s
|张图片,将每张图片转换为1
×
3072维度的张量后输入到特征提取器中,得到对应的1
×
100维度的特征
[0066][0067][0068]
其中,b代表了从数据集中随机选取的批次训练数据,e
s
代表了从范例集中取样得到的重演样本集,v
e
包含了来自重演样本集e
s
的图片对应的特征的集合,v
b
包含了来自批次数据b的图片对应的特征的集合,φ是特征提取器,是来自重演样本集e
s
的第i个样本的样本值,e代表了从重演样本集取样得到的标记,b代表了从批次数据b取样得到的标记,是来自批次数据b的第j个样本的样本值,θ是特征提取器的参数,|e
s
|代表了重演样本集e
s
所包含的样本的数量。
[0069]
优选的,步骤s7所述将批次数据输入损失函数计算损失函数值,得到三种损失函数的梯度的具体方法是:
[0070]
s71.将步骤s62得到的包含批次数据b的图片对应的特征的集合v
b
和对应的真实标签输入分类损失函数,如以下公式所示:
[0071][0072]
其中,l
t
代表了分类损失函数,y代表了真实标签,v代表了特征集合v
b
中的一个样本特征,y
i
代表了特征集合v
b
中的第i个样本的真实标签,v
i
代表了特征集合v
b
中的第i个样本的样本特征,代表了分类器;
[0073]
s72.将步骤s62得到的包含重演样本集e
s
的图片对应的特征的集合v
e
和对应的真实标签输入分类损失函数,如以下公式所示:
[0074][0075]
其中,l
ce
表示分类损失函数,y表示真实标签,v代表了特征集合v
e
中的一个样本特征,y
h
表示特征集合v
e
中的第h个样本的真实标签,v
h
表示特征集合v
e
中的第h个样本的样本特征,是分类器;
[0076]
s73.将步骤s62得到的包含重演样本集e
s
的图片对应的特征的集合v
e
和重演样本集e
s
中保存的对应样本特征输入分类损失函数,如以下公式所示:
[0077][0078]
其中,l
kd
表示蒸馏损失函数,表示来自重演样本集e
s
的样本特征,v表示来自特征集合v
e
的样本特征,表示了重演样本集e
s
中的第h个样本的样本特征,v
h
表示特征集合v
e
中的第h个样本的样本特征是分类器;
[0079]
s74.对步骤s71、步骤s72和步骤s73得到的三种损失函数进行求导,得到三种不同的梯度值,公式如下:
[0080][0081][0082][0083]
其中,l
t
代表了步骤s71得到的分类损失函数,l
ce
代表了步骤s72得到的分类损失函数,l
kd
代表了步骤s73得到的蒸馏损失函数,g
t
代表了对分类损失函数l
t
求导得到的梯度,g
ce
代表了对分类损失函数l
ce
求导得到的梯度,g
kd
代表了对蒸馏损失函数l
kd
求导得到的梯度,代表了求导操作,θ代表了模型的参数;
[0084]
步骤s8所述对三种不同梯度进行正则化,得到最终的梯度值进行反向传播更新的具体方法是:
[0085]
s81.利用步骤s74得到的三种不同梯度进行正则化,首先,对梯度g
ce
进行归一化,即除以模||g
ce
||;其次,将结果乘以梯度g
kd
的模||g
kd
||;最后,将结果与梯度g
t
加和,得到了最终的梯度g;如以下公式所示:
[0086][0087]
其中,|| ||代表了求第二范数的操作,即用来计算梯度的模;
[0088]
s82.最后利用步骤s81得到的梯度g进行反向传播更新,如以下公式所示:
[0089]
θ

=θ

αg
[0090]
其中,θ

代表了更新后的模型参数,θ代表了更新前的模型参数,α是学习率;
[0091]
s83.步骤s82完成后,即完成了增量状态任务的训练工作,需要跳转到步骤s3,继续进行测试工作。
[0092]
基于一种使用三元组多样范例集和梯度正则化解决在线类增量学习的方法实现的一种基于增量学习模型解决图片分类问题的方法,将要预测的图片输入模型中输出图片的预测类别。
[0093]
一种计算机,包括存储器和处理器,存储器存储有计算机程序,所述的处理器执行所述计算机程序时实现一种基于三元组多样范例集和梯度正则化的增量学习方法的步骤。
[0094]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现一种基于三元组多样范例集和梯度正则化的增量学习方法。
[0095]
本发明的有益效果如下:本发明首先在范例选择时考虑保留分类正确和分类错误的样本,在此基础上,计算样本与类特征中心向量的距离,选取距离最近的若干个样本。其次,由于范例集的构成发生了变化,则需要一个动态变化参数来决定两者的比例,在每个类的学习训练情况不同的情况下,该比例由该类的测试准确度来决定。最后,利用范例数据的蒸馏损失函数和范例数据的分类损失函数的梯度来对训练数据的分类损失函数的梯度进行正则化,达到约束优化大小与优化方向。本发明建立了多样性更加丰富的范例集,能够更好地覆盖训练数据的分布并对梯度进行正则化,更好地解决灾难性遗忘问题。本发明在图片分类中所取得的效果相比于传统方法更好。
附图说明
[0096]
此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
[0097]
图1为本发明实施例所述的方法流程示意图;
[0098]
图2为本发明实施例所述的方法原理示意图;
[0099]
图3为本发明实施例中步骤s5所述的方法原理示意图。
具体实施方式
[0100]
为了使本技术实施例中的技术方案及优点更加清楚明白,以下结合附图对本技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本技术的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
[0101]
实施例一、参照图1至图3说明本实施例,本实施例的一种基于三元组多样范例集和梯度正则化的增量学习方法,其特征在于,包括以下步骤:
[0102]
s1.将第一个任务的批次训练数据输入模型进行前向传播得到预测样本特征,将
得到的预测样本特征和真实标签输入损失函数进行反向传播更新模型参数;
[0103]
具体方法是:
[0104]
s11.首先,随机初始化模型参数,开始第一个任务的训练,从数据集中随机选取一个批次的训练数据,一个批次包含10张图片,将每张图片转换为1
×
3072维度的张量后输入到特征提取器中,得到对应的1
×
100维度的特征,如以下公式所示:
[0105]
v={φ(x
i
;θ)},i∈1,2,...,|b|
[0106]
其中,v是包含了一个批次的图片对应的特征的集合,φ是特征提取器,x
i
是一个批次中的第i个样本的样本值,θ是特征提取器的参数,b代表了一个批次的数据,即10张图片,|b|代表了一个批次里的样本数量,||代表了求第一范数的运算操作;
[0107]
s12.完成特征提取工作之后,将步骤s11得到的包含一个批次的图片对应的特征集合v输入到分类器中,使用第一个任务的分类损失函数和随机梯度下降来优化模型,如以下公式所示:
[0108][0109]
其中,l0表示第一个任务的分类损失函数,y表示真实标签,v表示样本特征,y
i
表示第i个样本的真实标签,v
i
表示第i个样本的样本特征,是分类器,log()代表了求对数的操作;
[0110]
具体的,所述模型包括特征提取器和分类器;
[0111]
s2.完成第一个任务的批次数据的训练后,再次将第一个任务的批次数据输入模型,计算批次数据的原型表示;
[0112]
具体方法是:
[0113]
s21.完成当前批次数据b的训练之后,再次将训练样本输入特征提取器中得到对应的样本特征,对当前批次数据b中所有属于c类别的样本特征求和并除以对应的样本特征的数量|b
c
|,得到c类别的原型表示,原型表示代表了对应类别在特征空间的中心向量,每个类别都有一个原型表示,如以下公式所示:
[0114][0115]
其中,代表了通过当前批次计算得到的原型表示的集合,b
c
代表了当前批次数据b中所有属于c类别的样本,|b
c
|代表了当前批次数据b中所有属于c类别的样本的数量,φ是特征提取器,代表了当前批次数据b中属于c类别的第i个样本的样本值,n代表了当前批次数据b所包含的类别的数量。
[0116]
s22.在步骤s21得到的原型表示的集合之后,更新对应类别c的原型表示,如以下公式所示:
[0117]
[0118]
其中,代表了在步骤s21得到的原型表示的集合,代表了集合中属于c类别的原型表示,代表了缓存中存储的原型表示的集合,代表了集合中属于c类别的原型表示,μ代表了一个平衡用的超参数,n代表了当前批次数据b所包含的类别的数量。
[0119]
s3.将测试数据输入到模型中,计算每个类别的准确度,利用每个类别的准确度和得到的样本,计算每个类别应保存的正例样本的数量和反例样本的数量;若当前处于第一个任务的训练阶段,跳过步骤s4执行步骤s5及其之后的步骤,若当前处于增量状态任务的训练阶段,执行步骤s4及其之后的步骤,若当前所有类别的准确度都计算完成,程序结束;
[0120]
具体方法是:
[0121]
s31.计算每个类别的准确度;具体方法是:
[0122]
将c类别的测试数据依次输入到模型中进行预测,将测试样本的预测值和测试样本的真实标签进行比对,两者一致则为分类正确,否则分类错误。累加分类正确的测试样本的数量,将其除以测试样本的数量,得到c类别的准确度acc
c
。如以下公式所示:
[0123][0124]
其中,acc
c
代表了c类别的准确度,t
c
代表了第c类别的测试数据集,|t
c
|代表了集合t
c
所包含的测试样本的数量,φ是特征提取器,是分类器,代表了第c类的第i个测试样本的样本值,代表了第c类的第i个测试样本的真实标签,

代表了同或操作,两者一致则为1否则为0;
[0125]
s32.按照步骤s31中的方法,依次计算所有已知类别的准确度,得到所有已知类别的准确度的集合acc,如以下公式所示:
[0126]
acc={acc
i
},i∈1,2,...,n
[0127]
其中,acc代表了所有已知的类别的准确度集合,acc
i
代表了第i个类别的准确度,n代表了目前已知的类别的数量,目前已知的类别是指到当前时间节点,所有在模型上完成训练的类别。随着训练的进行,数量n是逐渐上升的;
[0128]
s33.计算每个类别的范例集应存储的范例的数量;具体方法是:
[0129]
由于范例集m是一个固定值,随着训练的进行,已知类别的数量k在逐渐上升,则可分配到已知类别的范例集的额定范例数量m会动态的变化,如以下公式所示:
[0130][0131]
其中,m代表了所有类别的范例集应存储范例的数量,是个固定不变的数值,m代表了已知类别的范例集的额定范例数量,k代表了已知类别的数量,是个动态变化并且逐渐增大的数值;
[0132]
s34.将步骤s32得到的准确度集合acc与每个类别的额定数量m相乘,得到c类别的范例集中应保存的正例数量和反例的数量对于分类正确的样本称其为正例,对于分类错误的样本称其为反例。如以下公式所示:
[0133][0134][0135]
其中,代表了第i个类别的范例集中应保存的正例的数量,r是正例的标记,代表了第i个类别的范例集中应保存的反例的数量,w是反例的标记,acc代表了s32.步骤得到的准确度集合,acc
i
代表了集合acc中第i个类别的准确度,m代表了每个类别可保存的样本的上限,即额定数量,代表了取上界的操作,代表了取下界的操作。
[0136]
具体的,范例集是范例的集合,每个类都有一个范例集。范例以三元组或者二元组的形式存在,三元组包含了样本值、真实标签和样本特征,二元组包含了样本值和真实标签。每个类的范例集中的范例是在步骤s5构建的,步骤s3主要计算范例集中应保存范例的数量。
[0137]
s4.更新已有类别的范例集应存储的范例的数量;具体方法是:
[0138]
已知类别的范例集可存储的样本的上限m是逐渐减小的,所以需要减小已有类别的范例集所存储的样本的数量,因为范例集是一个有优先级的集合,排名高的样本距离中心向量最近,拥有最高的优先级,所以直接保留范例集中的前若干个范例即可,超出范围的直接舍弃,具体的计算方法如下:
[0139]
ec={ei},i∈1,2,...,m
[0140]
其中,e
c
代表了第c个已知类别的范例集,e
i
代表了第c个已知类别的范例集中的第i个范例。
[0141]
s5.将训练数据预测样本特征划分为正例集和反例集,对两个集合中的样本进行打分,根据样本的分数和每个类别应保存的正例样本的数量和反例样本的数量构建当前类别范例集;的具体方法是:
[0142]
s51.划分正例集和反例集;具体是:
[0143]
将第当前任务训练数据输入模型中得到预测结果,即每个训练样本预测的正确与否。因此,可以将每个类别的训练数据集分为不相交的两部分,正例集和反例集。保留正例的样本值、真实标签和特征,并将三者以三元组的形式放入正例集,保留反例的样本值和真实标签,并将二者以二元组的形式放入反例集,如以下公式所示:
[0144][0145][0146]
其中,代表了第i个类别的正例集,代表了第i个类别的反例集。代表分类正例样本的样本值,代表分类正例样本的真实标签,代表分类正例样本的特征,代表分类反例样本的样本值,代表分类反例样本的真实标签,a代表了训练数据的样本数量。
[0147]
s52.对集合中的样本进行打分;具体是:
[0148]
在步骤s51中得到了第i个类别的正例集p
ir
和反例集p
iw
,在步骤s33中得到了第i
个类别的范例集中应保存的正例数量和反例的数量则需要对第i个类别的正例集和反例集中的样本进行打分,确定需要存储的样本。将范例集中的所有样本输入特征提取器得到样本特征,并将其求和。将正例集中的样本输入特征提取器得到样本特征,将其与之前求得的和值进行加和,再将结果除以样本数量k,得到一个伪中心向量。计算伪中心向量和类中心向量的距离值,这个距离值就是样本的得分。计算正例集中所有样本的得分;计算正例集中所有样本的得分,具体公式如下:
[0149][0150][0151]
其中,e
c
代表了第c个类别的范例集,代表了第c个类别的正例集,代表了第c个类别的反例集,argmin代表了使函数值最小时的自变量取值,|| ||代表了求第二范数的操作,用来计算两个向量之间的距离,γ
c
代表了第c个类别的原型表示,k表示选取的范例的次序,即现在正在进行范例集中第k个范例的选取工作,代表了第c个类别的正例集中的第i个正例,代表了第c个类别的反例集中的第i个反例,e
j
表示了第c个类别的范例集中第j个范例,φ是特征提取器。
[0152]
s53.构建当前类别范例集;具体是:
[0153]
选取得分最高的样本的三元组放入范例集e,以同样的方式对反例集中的样本进行得分的计算,最终选取得分最高的样本的二元组放入范例集e。
[0154]
s6.开始增量状态任务训练工作,对所有已知类别的范例集进行随机取样获得重演样本集,然后对重演样本集和批次数据中的样本进行前向传播;具体方法是:
[0155]
s61.在训练处于增量状态的任务时,即第一个任务训练结束后。对已知类别的范例集进行随机取样,得到重演样本集,重演样本集所包含的样本的数量|e
s
|与批次数据包含的样本的数量|b|相同,如以下公式所示:
[0156]
e
s
=randomsample(e)
[0157]
其中,e代表了所有已知类别的范例集,e
s
代表了从范例集e中随机取样得到的重演样本集,s代表了重演样本集的标记,randomsample()代表了随机取样的操作。
[0158]
s62.从数据集中随机选取一个批次的训练数据b,从步骤s61中得到重演样本集e
s
,这两个集合各自包含|b|和|e
s
|张图片,将每张图片转换为1
×
3072维度的张量后输入到特征提取器中,得到对应的1
×
100维度的特征
[0159][0160][0161]
其中,b代表了从数据集中随机选取的批次训练数据,e
s
代表了从范例集中取样得
到的重演样本集,v
e
包含了来自重演样本集e
s
的图片对应的特征的集合,v
b
包含了来自批次数据b的图片对应的特征的集合,φ是特征提取器,是来自重演样本集e
s
的第i个样本的样本值,e代表了从重演样本集取样得到的标记,b代表了从批次数据b取样得到的标记,是来自批次数据b的第j个样本的样本值,θ是特征提取器的参数,|e
s
|代表了重演样本集e
s
所包含的样本的数量。
[0162]
s7.将批次数据输入损失函数计算损失函数值,得到三种损失函数的梯度;具体方法是:
[0163]
s71.将步骤s62得到的包含批次数据b的图片对应的特征的集合v
b
和对应的真实标签输入分类损失函数,如以下公式所示:
[0164][0165]
其中,l
t
代表了分类损失函数,y代表了真实标签,v代表了特征集合v
b
中的一个样本特征,y
i
代表了特征集合v
b
中的第i个样本的真实标签,v
i
代表了特征集合v
b
中的第i个样本的样本特征,代表了分类器;
[0166]
s72.将步骤s62得到的包含重演样本集e
s
的图片对应的特征的集合v
e
和对应的真实标签输入分类损失函数,如以下公式所示:
[0167][0168]
其中,l
ce
表示分类损失函数,y表示真实标签,v代表了特征集合v
e
中的一个样本特征,y
h
表示特征集合v
e
中的第h个样本的真实标签,v
h
表示特征集合v
e
中的第h个样本的样本特征,是分类器;
[0169]
s73.将步骤s62得到的包含重演样本集e
s
的图片对应的特征的集合v
e
和重演样本集e
s
中保存的对应样本特征输入分类损失函数,如以下公式所示:
[0170][0171]
其中,l
kd
表示蒸馏损失函数,表示来自重演样本集e
s
的样本特征,v表示来自特征集合v
e
的样本特征,表示了重演样本集e
s
中的第h个样本的样本特征,v
h
表示特征集合v
e
中的第h个样本的样本特征是分类器;
[0172]
s74.对步骤s71、步骤s72和步骤s73得到的三种损失函数进行求导,得到三种不同的梯度值,公式如下:
[0173][0174][0175]
[0176]
其中,l
t
代表了步骤s71得到的分类损失函数,l
ce
代表了步骤s72得到的分类损失函数,l
kd
代表了步骤s73得到的蒸馏损失函数,g
t
代表了对分类损失函数l
t
求导得到的梯度,g
ce
代表了对分类损失函数l
ce
求导得到的梯度,g
kd
代表了对蒸馏损失函数l
kd
求导得到的梯度,代表了求导操作,θ代表了模型的参数。
[0177]
s8.对三种不同梯度进行正则化,得到最终的梯度值进行反向传播更新,反向传播更新完成后,跳转到步骤s3。
[0178]
具体方法是:
[0179]
s81.利用步骤s74得到的三种不同梯度进行正则化,首先,对梯度g
ce
进行归一化,即除以模||g
ce
||;其次,将结果乘以梯度g
kd
的模||g
kd
||;最后,将结果与梯度g
t
加和,得到了最终的梯度g;如以下公式所示:
[0180][0181]
其中,|| ||代表了求第二范数的操作,即用来计算梯度的模;
[0182]
s82.最后利用步骤s81得到的梯度g进行反向传播更新,如以下公式所示:
[0183]
θ

=θ

αg
[0184]
其中,θ

代表了更新后的模型参数,θ代表了更新前的模型参数,α是学习率;
[0185]
s83.步骤s82完成后,即完成了增量状态任务的训练工作,需要跳转到步骤s3,继续进行测试工作。
[0186]
实施例二、基于一种使用三元组多样范例集和梯度正则化解决在线类增量学习的方法实现的一种基于增量学习模型解决图片分类问题的方法,具体包括,将要预测的图片输入至一种使用三元组多样范例集和梯度正则化解决在线类增量学习的方法训练的模型中输出图片的预测类别。
[0187]
对本发明提出的方法进行实验分析:
[0188]
在图像分类数据集cifar

100上对trocl模型进行实验分析。cifar

100数据集有100个类,每个类有600张大小为32
×
32的彩色图像。每类各有500个训练图像和100个测试图像。cifar

100中的100个类被分成20个超类,每个超类均包含5个子类。每个图像都带有一个“精细”标签(它所属的类)和一个“粗糙”标签(它所属的超类)。
[0189]
cifar

100所包含的类别并没有很强的继承性,细分类别之间的具有一定的相似性,但是超类之间的相似性几乎为零,比如,鱼、花卉、食品容器和家用电器。
[0190]
本发明将采用在线类增量的方式来组织训练。将100个类划分为10个任务,每个任务包含10个类,即2个超类。在不考虑重演数据的情况下,每张图片只会输入模型一次进行训练。基于上述训练组织形式,每个任务包含5000张训练图片和1000张测试图片。对于训练图片,每个任务划分为500个训练批次,每个批次包含10张模型从未见过的新类图片。采用单头机制,模型由一个特征提取器和一个分类器组成,所用类之间共享特征提取器和分类器
[0191]
使用resnet

18提取图片特征。在输入模型前,每张图片的为1
×
3072的张量。经过特征提取步骤后,每张图片的特征维度为1
×
100。
[0192]
为了较为客观的评价模型在增量状态下的学习能力,按照上述实施例的实验步骤,在cifar

100数据集上测试模型的性能,所得的实验结果如表1所示。
[0193]
表1本发明在cifar

100上的实验结果
[0194][0195]
本发明工作原理:
[0196]
本方法将利用resnet

18网络进行图片的特征提取,最近邻方法作为分类器。整个模型采用单头机制,即特征提取器和分类器为所有类共享。在不考虑范例重演的情况下,每张图片只会输入模型一次进行训练。在每个任务的训练结束后,进行这个类的范例集构建工作,将训练数据输入模型,得到分离正确和分类错误的样本,在此基础上,计算样本与原型表示的距离,选取距离最近的若干个样本进行保留。在增量训练的过程中,会将训练样本及标签,重演样本及标签和重演样本特征及新模型计算的样本特征依次输入分类损失函数和蒸损失函数,并计算出对应的三个梯度。利用范例数据的蒸馏损失函数和范例数据的分类损失函数的梯度来对训练数据的分类损失函数的梯度进行正则化。
[0197]
本发明的计算机装置可以是包括有处理器以及存储器等装置,例如包含中央处理器的单片机等。并且,处理器用于执行存储器中存储的计算机程序时实现上述的基于creo软件的可修改由关系驱动的推荐数据的推荐方法的步骤。
[0198]
所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0199]
所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0200]
计算机可读存储介质实施例
[0201]
本发明的计算机可读存储介质可以是被计算机装置的处理器所读取的任何形式的存储介质,包括但不限于非易失性存储器、易失性存储器、铁电存储器等,计算机可读存储介质上存储有计算机程序,当计算机装置的处理器读取并执行存储器中所存储的计算机程序时,可以实现上述的基于creo软件的可修改由关系驱动的建模数据的建模方法的步骤。
[0202]
所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内
容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0203]
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献