1.一种以错因强化方式动态优化损失函数的物品识别方法,该物品识别方法包括以下步骤:步骤S1、初步训练并获取各类别的相关性;采用交叉熵损失的损失函数对模型进行初步训练,初步训练后的模型用于测试各类别的相关项以及各类别之间的相关性;
步骤S2、根据识别结果动态加入惩罚项,监控每张图片的识别结果,对于相关项的输出,模型以概率分数的形式作为惩罚项的一部分加入损失函数的计算中;
步骤S3、构建新的损失函数,取名为ER-Loss;
步骤S4:设定溢出机制;在训练过程中使用溢出机制保护损失函数继续计算,一旦溢出则使用原来的交叉熵损失函数;
步骤S5:采用ER-Loss训练;通过原来的交叉熵损失函数训练出初步模型后,测试所有类别的相关项,所有类别的相关项即分类错因,在正式训练时把这些分类错因引入到损失函数的计算中;
其特征在于:优化后的损失函数ER-Loss是在原来的交叉熵损失函数的基础上加入惩罚项实现,惩罚项包含以下四个模块:惩罚程度的放大因子A,用于放大相关类别对模型精度的影响,当A=0时,惩罚项为0,对模型精度无影响,此时ER-Loss即为交叉熵损失函数,在模型训练时可根据相关性的实际情况设置A值;
惩罚程度调节系数Aprob,用于在训练过程中根据实际情况调节放大因子A对数据集各类别之间的相关性和相关类别的实际输出概率的影响,让放大因子A能够自动适应训练的不同阶段;
在各网络下,数据集各类别之间的相关性组合X;通过初步模型测试所有物品类别的输出,并使用信息熵公式计算后获得相关性Xijd,随后根据实际情况设定权重矩阵λ对各网络相关性进行线性组合得到X;
相关类别的概率即在训练过程中将目标物品识别为与之相关的物品类别的概率,非定值,根据模型的每一次训练情况动态调整;
优化后的损失函数ER-Loss的具体公式如下:
其中,i是指正确分类的物品类别,j是指与i相关的物品类别,d是指相关物品类别的个数,n代表该数据集的分类总数;A为放大因子,用于放大相关类别对模型精度的影响;惩罚程度调节系数Aprob,用于在训练过程中根据实际情况调节放大因子A对数据集各类别之间的相关性和相关类别的实际输出概率的影响,让A能够自动适应训练的不同阶段;X为各网络模型下的错因值组合,即各网络下相近物品类别之间的相关性组合,用信息熵来表示,信息熵越大说明相关性越大,模型识别错误的几率越高;为训练过程中相关类别的输出概率;
其中,Aprob的具体公式如下:
其中,d是指相关物品类别的个数,D是指在当次训练中,输出概率大于概率阈值T的类别个数。
2.根据权利要求1所述的一种以错因强化方式动态优化损失函数的物品识别方法,其特征在于单个网络获得的相关性Xijd的具体公式如下:
其中Bij为类别i的相关类别j在类别i的图片中得到的输出平均值,将每个类别的图片输出值按位置相加,然后求平均值以保证输出是正常水平;
模型训练时根据实际情况设置d值,当d=0时,其他物品类别不会对目标物品的类别识别产生影响,此时ER-Loss即为交叉熵损失函数。
3.根据权利要求2所述的一种以错因强化方式动态优化损失函数的物品识别方法,其特征在于步骤S3中,放大因子A的初始设定值:A是放大因子,用于放大类别间的相关性组合X以及模型实际犯错的概率对损失函数的影响,其初始值根据以下公式进行设定:
其中,C是一个根据实际情况设定的定值,aver_X是通过预训练网络获得的相关性的均值,通过均值的手段获取整个数据集的相关性,均值是算术平均值、几何平均值、调和平均值、加权平均值、均方根平均值、指数平均值和中位数其中的一种。
4.根据权利要求3所述的一种以错因强化方式动态优化损失函数的物品识别方法,其特征在于步骤S3中,最后计算采用的相关性X=∑m(λmXijdm)的具体组合方式:Xijdm是同一类别在不同网络下获得的相关性,通过初步模型测试获得,最后计算时通过将其线性组合获得最终的相关性公式,具体如下:X=∑m(λmXijdm)=λ1Xijd1+λ2Xijd2+…+λmXijdm,其中,m是获取类别间相关性的网络个数,λm是各相关性的系数,为一个常数,同一类别在不同网络下的相关性的权重系数,在训练中根据实际情况设定权重λm的值,灵活的应用各网络的相关性。
5.根据权利要求4所述的一种以错因强化方式动态优化损失函数的物品识别方法,其特征在于步骤S4的具体步骤如下:当 时,则使用优化后的损失函数ER-Loss,一旦溢出则使用原来的交叉熵损失函数计算。
6.根据权利要求5所述的一种以错因强化方式动态优化损失函数的物品识别方法,其特征在于步骤S5包括以下训练方式:A、第一种训练方式如下:共进行两次训练,第一次训练为初步训练,先使用原来的交叉熵损失函数训练初步模型,再使用初步模型测出数据集各类别之间的相关性,整理成相关性表格再进行正式训练,第二次训练则使用ER-Loss进行正式训练,在正式训练时以索引的方式把每个物品类别的相关项加入到ER-Loss中计算,针对初步模型对每个图片的识别情况,从相关性表格中搜索到对应的惩罚项加入到ER-Loss中计算;
B、第二种训练方式如下:只进行一次训练,共N个epoch,训练包括两个阶段,第一个阶段取epoch=int[kN]时的模型作为初步模型,其中0<k<1,用初步模型测出数据集各类别之间的相关性,整理成相关性表格,第二个阶段则使用ER-Loss从epoch=int[kN]+1处开始断点续训,其中0<k<1,在断点续训过程中,针对模型对每个图片的识别情况,从相关性表格中搜索到对应的惩罚项加入到损失函数中计算;
C、第三种训练方式如下:共进行两个阶段,并且多次训练,第一阶段为预训练,首先使用不同网络分别对数据集进行预训练,接着使用各初步模型分别测出各类别在不同网络下的相关项以及它们之间的相关性,整理成相关性表格,并根据实际情况设定相关性组合公式中的相关性权重矩阵λ,将各网络相关性和相关性权重矩阵λ相乘得到最终相关性X=∑m(λmXijdm),通过均值的手段计算放大因子A的初始值;第二阶段为正式训练,调用相关性表格及权重矩阵λ重构损失函数,并形成新的损失函数ER-Loss,使用ER-Loss进行正式训练,在正式训练时以索引的方式把每个物品类别的相关项及它们之间的相关性和模型实际犯错的概率加入到ER-Loss中计算,针对初步模型对每个图片的识别情况,从相关性表格中搜索到对应的惩罚项加入到ER-Loss中计算。