图像分类、模型训练方法、设备、存储介质及计算机程序与流程

文档序号:32744335发布日期:2022-12-30 21:16阅读:52来源:国知局
图像分类、模型训练方法、设备、存储介质及计算机程序与流程

1.本技术实施例涉及图像处理领域,特别涉及一种图像分类、模型训练方法、设备、存储介质及计算机程序。


背景技术:

2.近年来,深度学习在图像分类领域被广泛应用,神经网络作为深度学习的一个重要分支,因其超强的拟合能力,使得图像分类任务在应用神经网络之后,分类结果的准确率大幅提升。
3.相关技术提出了一种图像分类方法,在该方法中,可以事先训练多个神经网络模型。在图像分类时,通过该多个神经网络模型中的每个神经网络模型确定一个分类结果,以得到多个分类结果。之后,将该多个分类结果综合起来进行处理,以得到最终的分类结果。
4.然而,上次方法需要获取每个神经网络模型的分类结果,使得计算量成倍增加,极大地降低了图像分类效率。


技术实现要素:

5.本技术实施例提供了一种图像分类、模型训练方法、设备、存储介质及计算机程序,可以解决相关技术的图像分类效率较低的问题。所述技术方案如下:
6.第一方面,提供了一种图像分类方法,在该方法中,通过当前神经网络模型对待分类的目标图像进行处理,以得到当前神经网络模型输出的当前分类结果;其中,当前分类结果包括目标图像属于多个类别中各个类别的概率,当前神经网络模型为神经网络模型a输出的选择结果中最大概率对应的神经网络模型i,神经网络模型a输出的选择结果包括已训练的m个神经网络模型中p个神经网络模型对应的概率,p个神经网络模型为在神经网络模型a之后允许用来处理目标图像的神经网络模型,该p个神经网络模型包括神经网络模型i,m个神经网络模型包括神经网络模型a,m为大于1的整数,p为大于或等于1的整数,且p小于m;基于当前分类结果确定当前整合结果,当前整合结果包括目标图像属于该多个类别中各个类别的整合后的概率;基于当前整合结果确定目标图像的类别。
7.其中,在本技术实施例中,已训练的m个神经网络模型中在神经网络模型a之后允许用来处理目标图像的神经网络模型可以包括一个或多个,且该一个或多个神经网络模型为在神经网络模型a之后用来处理目标图像的其他神经网络模型。也即是,p为大于或等于1的整数,且p小于m。
8.由于神经网络模型a输出的选择结果包括已训练的m个神经网络模型中在神经网络模型a之后允许用来处理目标图像的神经网络模型对应的概率,当前神经网络模型为神经网络模型a输出的选择结果中最大概率对应的神经网络模型i,所以,可以确定神经网络模型a输出的分类结果不满足条件,所以将神经网络模型a输出的选择结果中最大概率对应的神经网络模型i确定为当前神经网络模型,然后通过当前神经网络模型对目标图像进行处理。
9.也即是,本技术实施例是按照循环迭代的方式对目标图像进行处理,而且在前一次循环得到的分类结果不满足条件时,可以通过前一次循环得到的选择结果确定下一次用于处理目标图像的神经网络模型。由于下一次用于处理目标图像的神经网络模型的分类精度高于前一次用于处理目标图像的神经网络模型的分类精度,所以,按照这样的方式进行循环迭代处理之后,能够提高图像分类的精度。也就是说,本技术实施例基于目标图像的性质,能够从该m个神经网络模型中动态地选择部分神经网络模型进行图像分类,无需通过每个神经网络模型都进行图像分类,减少了运算量。而且,由于只选择了部分神经网络模型,所以,只需要将部分神经网络模型的参数读入内存,不需要将所有神经网络模型的参数都读入内存,避免了内存读取耗时的问题。
10.在一些实施例中,当前神经网络模型还可以输出当前选择结果,当前选择结果包括m个神经网络模型中d个神经网络模型对应的概率,d个神经网络模型为在神经网络模型i之后允许用来处理目标图像的神经网络模型,d为大于或等于1的整数,d小于m。也即是,本技术实施例可以按照两种实现方式,通过当前神经网络模型对目标图像进行处理。接下来对这两种实现方式进行介绍。
11.第一种实现方式,将目标图像输入当前神经网络模型中,以得到当前神经网络模型输出的当前分类结果和当前选择结果。
12.也即是,在第一种实现方式中,将该m个神经网络网络中的任意一个神经网络模型作为当前神经网络模型,将目标图像输入当前神经网络模型之后,当前神经网络模型不仅能够输出关于目标图像的当前分类结果,而且还能够确定在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率,即当前选择结果。
13.其中,在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率越大,这个神经网络模型对目标图像的分类精度就越高,而且通常情况下,神经网络模型i对目标图像的分类精度高于神经网络模型a对目标图像的分类精度。
14.第二种实现方式,将目标图像和当前迭代次数输入当前神经网络模型,通过当前神经网络模型对目标图像进行处理。
15.关于第二种实现方式存在两种情况,接下来对这两种情况分别进行介绍。
16.第一种情况,将目标图像和当前迭代次数输入当前神经网络模型,以得到当前神经网络模型输出的当前分类结果。
17.也即是,在第一种情况下,输入当前神经网络模型的当前迭代次数小于迭代次数阈值,且与迭代次数阈值之间的差值为1。这样,通过当前神经网络模型对目标图像处理之后,当前迭代次数已经达到了次数阈值,后续不需要再进行迭代了,所以当前神经网络模型可以只输出当前分类结果。
18.第二种情况,将目标图像和当前迭代次数输入当前神经网络模型,以得到当前神经网络模型输出的当前分类结果和当前选择结果。
19.也即是,在第二种情况下,输入当前神经网络模型的当前迭代次数小于迭代次数阈值,且与迭代次数阈值之间的差值大于1。这样,通过当前神经网络模型对目标图像处理之后,当前迭代次数还未达到次数阈值,后续可能还需要再进行迭代,所以当前神经网络模型需要输出当前分类结果和当前选择结果。
20.在一些实施例中,可以将多个分类结果中对应类别的概率的平均值确定为当前整
合结果中相应类别的概率,该多个分类结果包括神经网络模型a输出的分类结果和神经网络模型i输出的分类结果。或者,直接将当前分类结果确定为当前整合结果。
21.也即是,当前整合结果中第一类别的概率包括:多个分类结果中第一类别的概率的平均值,该多个分类结果包括神经网络模型a输出的分类结果和神经网络模型i输出的分类结果。或者,当前整合结果中第一类别的概率包括:神经网络模型i输出的分类结果中第一类别的概率。其中,第一类别为该多个类别中的一个类别。
22.基于上述描述,通过当前神经网络模型对目标图像进行处理分为两种实现方式,在不同的实现方式下,基于当前整合结果确定目标图像的类别不同。因此,接下来也分为两种实现方式进行说明。
23.第一种实现方式,在上述按照第一种实现方式,通过当前神经网络模型对目标图像进行处理时,基于当前整合结果确定目标图像的类别包括:如果当前整合结果满足第一收敛条件或者当前神经网络模型满足第二收敛条件,则将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件且当前神经网络模型不满足第二收敛条件,则将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述方法对目标图像进行处理。
24.由于第一种实现方式中,每个神经网络模型都会输出分类结果和选择结果,所以,在基于当前神经网络模型输出的当前分类结果确定当前整合结果之后,需要判断当前整合结果是否满足第一收敛条件,以及判断当前神经网络模型是否满足第二收敛条件。如果当前整合结果满足第一收敛条件或者当前神经网络模型满足第二收敛条件,则表明当前整合结果的可靠性较高,将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件且当前神经网络模型不满足第二收敛条件,则表明当前整合结果的可靠性不高,此时可以将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述方法对目标图像进行处理。
25.作为一种示例,当前整合结果满足第一收敛条件包括:当前整合结果的置信度大于置信度阈值。当前神经网络模型满足第二收敛条件包括:当前神经网络模型的迭代次数大于或等于迭代次数阈值。当然,当前整合结果满足第一收敛条件还可以包括其他的条件,同理,当前神经网络模型满足第二收敛条件也可以包括其他的条件。
26.在当前整合结果满足第一收敛条件包括当前整合结果的置信度大于置信度阈值的情况下,基于当前分类结果确定当前整合结果之后,还可以确定当前整合结果的置信度。其中,确定当前整合结果的置信度的实现过程包括:将当前整合结果中的最大概率确定为当前整合结果的置信度。或者,将目标图像和当前整合结果输入置信度网络模型,以得到置信度网络模型输出的当前整合结果的置信度。
27.第二种实现方式,在上述按照第二种实现方式,通过当前神经网络模型对目标图像进行处理时,基于当前整合结果确定目标图像的类别的实现过程分为两种情况,接下来分别对这两种情况进行说明,且这两种情况与上述第二种实现方式中的两种情况对应。
28.第一种情况,将当前整合结果中的最大概率对应的类别确定为目标图像的类别。
29.由于第一种情况中,通过当前神经网络模型对目标图像进行处理之后,当前迭代次数已经达到了迭代次数阈值,表明当前整合结果的可靠性较高,因此,可以直接将当前整合结果中的最大概率对应的类别确定为目标图像的类别,无需再判断当前整合结果是否满
足第一收敛条件。
30.第二种情况,如果当前整合结果满足第一收敛条件,则将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件,则将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述方法对目标图像进行处理。
31.由于第二种情况中,通过当前神经网络模型对目标图像进行处理之后,当前迭代次数还未达到迭代次数阈值,当前整合结果的可靠性不确定,因此需要确定当前整合结果是否满足第一收敛条件。如果当前整合结果满足第一收敛条件,则确定当前整合结果的可靠性较高,因此,可以将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件,则确定当前整合结果的可靠性不高,因此,可以将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述方法对目标图像进行处理。
32.可选地,通过上述的m个神经网络模型,对目标图像进行分类之前,还可以对m个待训练神经网络模型进行训练,以得到上述的m个神经网络模型。即,获取n个样本图像和n个样本标签,n个样本标签与n个样本图像一一对应;基于n个样本图像和n个样本标签,确定m个待训练神经网络模型中每个待训练神经网络模型的各个参数的梯度;基于m个待训练神经网络模型的各个参数的梯度,对m个待训练神经网络模型进行更新,以得到已训练的m个神经网络模型。
33.对于该m个待训练神经网络模型中每个待训练神经网络模型来说,确定每个待训练神经网络模型的各个参数的梯度的方法相同,接下来以m个待训练神经网络模型中的待训练神经网络模型k为例进行说明。
34.在一些实施例中,可以按照以下操作确定待训练神经网络模型k的各个参数的梯度:基于n个样本图像和n个样本标签,确定待训练神经网络模型k对应的训练函数值。基于待训练神经网络模型k对应的训练函数值,确定待训练神经网络模型k的各个参数的梯度。
35.基于上文描述,待训练神经网络模型k对应训练函数值包括n个分类函数值、n个权重函数值、n个标签函数值、n个分类损失函数值和n个选择权重函数值,n个分类函数值与n个样本图像一一对应,n个权重函数值与n个样本图像一一对应,n个标签函数值与n个样本图像一一对应,n个分类损失函数值与n个样本图像一一对应,n个选择权重函数值也与n个样本图像一一对应。接下来将对该多个函数值的确定过程分别进行说明。
36.n个分类函数值的确定过程
37.由于每个样本图像对应的分类函数值的确定方式相同,因此,可以从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的分类函数值,直至确定出每个样本图像对应的分类函数值为止:将选择的样本图像输入待训练神经网络模型k,以得到待训练神经网络模型k输出的分类结果。基于选择的样本图像对应的样本标签和待训练神经网络模型k输出的分类结果,确定选择的样本图像对应的分类函数值。
38.其中分类函数值可以为交叉熵损失函数值,或者也称为任务相关函数。
39.n个权重函数值的确定过程
40.在本技术实施例中,n个权重函数值可以基于规则实现,也可以基于元学习实现。接下来对这两种实现方式分别进行说明。
41.第一种实现方式,该n个权重函数值基于规则实现。通过这种实现方式确定n个权重函数值后,能够使得在待训练神经网络模型k之前允许用来处理图像的待训练神经网络模型在确定下一次用来处理该图像的待训练神经网络模型为待训练神经网络模型k时,待训练神经网络模型k在该图像上具有更高的权重函数值。
42.关于第一种实现方式,可以基于n个样本图像和n个样本标签,通过如下步骤(11)-(13)来确定n个权重函数值。
43.(11)通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,以得到n*t个标准概率,t=m-b,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,t个待训练神经网络模型包括待训练神经网络模型k,以及m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型。
44.在一些实施例中,可以通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的平均概率,以得到n*t个平均概率。将n*t个平均概率中与t个待训练神经网络模型中同一待训练神经网络模型对应的平均概率划分为一个概率集合,以得到t个概率集合。基于n*t个平均概率和t个概率集合,对n*t个平均概率进行标准化处理,以得到n*t个标准概率。
45.其中,通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的平均概率的确定方式相同,因此,可以从n个样本图像中选择一个样本图像,从t个待训练神经网络模型中选择一个待训练神经网络模型,通过b个待训练神经网络模型,按照以下操作确定选择的待训练神经网络模型被用来处理选择的样本图像的平均概率,直至确定出n*t个平均概率为止:通过b个待训练神经网络模型中的每个待训练神经网络模型,确定选择的待训练神经网络模型被用来处理选择的样本图像的概率,以得到b个概率。确定该b个概率的平均值,以得到选择的待训练神经网络模型被用来处理选择的样本图像的平均概率。
46.作为一种示例,对于b个待训练神经网络模型中的每个待训练神经网络模型来说,可以将选择的样本图像输入该待训练神经网络模型中,以得到该待训练神经网络模型输出的选择结果,该选择结果包括选择的待训练神经网络模型被用来处理选择的样本图像的概率,也即是,对选择的样本图像进行分类的下一个神经网络模型为选择的待训练神经网络模型的概率。这样,对于b个待训练神经网络模型中的每个待训练神经网络模型来说,都能得到选择的待训练神经网络模型被用来处理选择的样本图像的概率,从而得到b个概率。之后,可以确定该b个概率的平均值,将该b个概率的平均值确定为选择的待训练神经网络模型被用来处理选择的样本图像的平均概率。
47.其中,对t个概率集合中每个概率集合内的每个平均概率进行标准化处理的方式相同,因此,可以从t个概率集合中选择一个概率集合,按照以下操作对选择的概率集合中的每个平均概率进行标准化处理,直至确定出n*t个标准概率为止:确定选择的概率集合中的平均概率的均值和标准差,基于选择的概率集合中的平均概率、均值和标准差,确定选择的概率集合中的每个平均概率对应的标准概率。
48.(12)基于n*t个标准概率,确定n个样本图像中每个样本图像对应的第一权重。
49.在一些实施例中,可以通过下述步骤(a)-(g)来确定该n个样本图像中每个样本图像对应的第一权重。
50.(a)将n*t个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的概率相对值。
51.在一些实施例中,可以从标准概率集合中选择一个标准概率,按照以下操作确定选择的标准概率对应的概率相对值,直至确定出每个标准概率对应的概率相对值为止:从标准概率集合中除选择的标准概率之外的其他标准概率中,确定与选择的标准概率对应同一样本图像的多个标准概率,确定该多个标准概率中的最大标准概率,将选择的标准概率与该最大标准概率的差值确定为选择的标准概率对应的概率相对值。
52.(b)从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值。
53.将标准概率集合中的标准概率对应的概率相对值进行比较,从而确定这些概率相对值中的最大概率相对值。
54.(c)从n个样本图像中确定与最大概率相对值对应的样本图像,以及从t个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型。
55.由于n*t个标准概率是通过b个待训练神经网络模型确定的t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,而标准概率集合是通过n*t个标准概率构成的,所以,标准概率集合中的一个标准概率会对应n个样本图像中的一个样本图像,以及对应t个待训练神经网络模型中的一个待训练神经网络模型。而概率相对值是基于标准概率确定的,因此,每个概率相对值也对应n个样本图像中的一个样本图像,以及对应t个待训练神经网络模型中的一个待训练神经网络模型。这样,在确定出最大概率相对值之后,可以从n个样本图像中确定与最大概率相对值对应的样本图像,以及从t个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型。
56.(d)基于最大概率相对值对应的待训练神经网络模型,确定最大概率相对值对应的样本图像的第一权重。
57.在一些实施例中,如果最大概率相对值对应的待训练神经网络模型为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为如果最大概率相对值对应的待训练神经网络模型不为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为其中,a为设定的实数,满足a≥0,且a≤1。
58.(e)从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率。
59.由于n*t个标准概率是通过b个待训练神经网络模型确定的t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,所以,一个样本图像会对应t个标准概率。这样,在确定出与最大概率相对值对应的样本图像之后,可以从标准概率集合中移除该样本图像对应的t个标准概率,此时,该标准概率集合还存在n*(t-1)个标准概率。
60.(f)如果移除后标准概率集合非空,则更新模型确定次数,该模型确定次数是指从t个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的次数。
61.作为一种示例,可以将模型确定次数增加1。也即是,每当通过一次循环确定出一个最大概率相对值,并从t个待训练神经网络模型中确定该最大概率相对值对应的待训练神经网络模型之后,就可以将该模型确定次数增加1。当然,这只是一种示例性的更新方式,还可以为其他的方式。
62.(g)如果更新后的模型确定次数大于或等于n/t,则从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的标准概率,返回步骤(a)中确定标准概率集合中每个标准概率对应的概率相对值的步骤。
63.由于n*t个标准概率是通过b个待训练神经网络模型确定的t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,所以,t个待训练神经网络模型中的一个待训练神经网络模型会对应n个标准概率。这样,可以从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的n个标准概率,此时,该标准概率集合还存在(n-1)*(t-1)个标准概率。
64.(13)对n个样本图像中每个样本图像对应的第一权重进行归一化处理,以得到n个样本图像中每个样本图像对应的权重函数值。
65.第二种实现方式,该n个权重函数值基于元学习实现。通过这种实现方式确定n个权重函数值后,能够使得待训练神经网络模型k在某些图像上具有更低的分类损失。
66.关于第二种实现方式,可以基于n个样本图像和n个样本标签,通过如下步骤(21)-(27)来确定n个权重函数值。
67.(21)通过b个待训练神经网络模型,从n个样本图像中选择下一次被待训练神经网络模型k处理的h个样本图像,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,h小于n。
68.在一些实施例中,从该n个样本图像中选择一个样本图像,以及从b个待训练神经网络模型中选择一个待训练神经网络模型。将选择的样本图像输入选择的待训练神经网络模型,以得到选择的待训练神经网络模型输出的选择结果,该选择结果包括m个待训练神经网络模型中在选择的待训练神经网络模型之后允许用来处理选择的样本图像的待训练神经网络模型对应的概率。如果该选择结果中的最大概率对应的待训练神经网络模型为待训练神经网络模型k,则将选择的样本图像确定为下一次被待训练神经网络模型k处理的样本图像。按照上述方法遍历完所有的样本图像以及b个待训练神经网络模型中的每个待训练神经网络模型,即可得到h个样本图像。
69.(22)通过元网络模型,确定n个样本图像中每个样本图像对应的预测权重。
70.在一些实施例中,可以将n个样本图像中的每个样本图像输入元网络模型,以得到元网络模型输出的相应样本图像对应的预测权重。也即是,对于该n个样本图像中的任一样本图像,将该样本图像输入元网络模型之后,可以得到该元网络模型输出的该样本图像对应的预测权重。
71.(23)基于该n个样本图像中每个样本图像对应的预测权重和该n个样本图像中每个样本图像对应的分类函数值,确定该n个样本图像的加权损失值。
72.(24)基于该n个样本图像的加权损失值,更新待训练神经网络模型k。
73.(25)将所述选择的h个样本图像输入更新后的待训练神经网络模型k,以得到更新后的待训练神经网络模型k在该h个样本图像上的总损失值。
74.(26)基于更新后的待训练神经网络模型k在该h个样本图像上的总损失值,更新元网络模型。
75.(27)通过更新后的元网络模型,确定该n个样本图像中每个样本图像对应的权重函数值。
76.在一些实施例中,可以将该n个样本图像中的每个样本图像输入更新后的元网络模型,以得到更新后的元网络模型输出的相应样本图像对应的权重函数值。也即是,对于该n个样本图像中的任一样本图像,将该样本图像输入更新后的元网络模型之后,可以得到更新后的元网络模型输出的该样本图像对应的权重函数值。
77.上述确定n个权重函数值的方式仅仅为其中的一种基于元学习的方式,实际应用中,还存在其他基于元学习的方式。比如,可以基于n个样本图像和n个样本标签,通过如下步骤(31)-(37)来确定n个权重函数值。
78.(31)通过b个待训练神经网络模型,从n个样本图像中选择下一次被待训练神经网络模型k处理的h个样本图像,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,h小于n。
79.(32)确定n个样本图像中每个样本图像对应的初始权重。
80.在一些实施例中,可以为该h个样本图像中的每个样本图像设置一个初始权重。比如,该初始权重可以为0。
81.(33)通过该n个样本图像中每个样本图像对应的初始权重,确定该n个样本图像的加权损失值。
82.(34)基于该n个样本图像的加权损失值,更新待训练神经网络模型k。
83.(35)将所述选择的h个样本图像输入更新后的待训练神经网络模型k,以得到更新后的待训练神经网络模型k在该h个样本图像上的总损失值。
84.(36)基于更新后的待训练神经网络模型k在该h个样本图像上的总损失值,以及该n个样本图像中每个样本图像对应的初始权重,确定该n个样本图像中每个样本图像对应的第二权重。
85.(37)对该n个样本图像中每个样本图像对应的第二权重进行归一化处理,以得到该n个样本图像中每个样本图像对应的权重函数值。
86.n个标签函数值的确定过程
87.在本技术实施例中,样本图像对应的标签函数值与在待训练神经网络模型k之后允许用来处理该样本图像的待训练神经网络模型对该样本图像的分类结果的准确度有关。也即是,哪个待训练神经网络模型是用来确定该样本图像对应的标签函数值,那么这个待训练神经网络模型对该样本图像的分类结果就具有更高的准确度,其他待训练神经网络模型对该样本图像的分类结果就具有更低的准确度。其中,可以基于n个样本图像和n个样本标签,通过如下步骤(41)-(42)来确定n个标签函数值。
88.(41)通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率,s个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型。
89.在一些实施例中,可以通过s个待训练神经网络模型中每个待训练神经网络模型,
确定n个样本图像中每个样本图像属于对应的样本标签的概率,以得到n*s个概率。将n*s个概率中与s个待训练神经网络模型中同一待训练神经网络模型对应的平均概率划分为一个概率集合,以得到s个概率集合。基于n*s个概率和s个概率集合,对n*s个概率进行标准化处理,以得到n*s个标准概率。
90.其中,s个待训练神经网络模型中每个待训练神经网络模型确定n个样本图像中每个样本图像属于对应的样本标签的标准概率的方式相同,因此,可以从s个待训练神经网络模型中选择一个待训练神经网络模型,以及从n个样本图像中选择一个样本图像,按照以下操作通过选择的待训练神经网络模型确定选择的样本图像属于对应的样本标签的概率,直至确定出n*s个概率为止:将选择的样本图像输入选择的待训练神经网络模型中,以得到选择的待训练神经网络模型输出的分类结果,该分类结果包括选择的样本图像属于多个类别中各个类别的概率。其中,该多个类别可以包括选择的样本图像对应的样本标签。这样,即可通过选择的待训练神经网络模型确定选择的样本图像属于对应的样本标签的概率。
91.(42)基于n*s个标准概率,确定n个样本图像中每个样本图像对应的标签函数值。
92.在一些实施例中,可以将n*s个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的概率相对值。从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值,从n个样本图像中确定与最大概率相对值对应的样本图像,以及从s个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型。将最大概率相对值对应的待训练神经网络模型在s个待训练神经网络模型中的位置编号,确定为最大概率相对值对应的样本图像的标签函数值。从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率。如果移除后标准概率集合非空,则更新模型确定次数,该模型确定次数是指从s个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的确定次数。如果更新后的模型确定次数大于或等于n/s,则从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的标准概率,返回确定标准概率集合中每个标准概率对应的概率相对值的步骤。
93.n个分类损失函数值的确定过程
94.由于每个样本图像对应的分类损失函数值的确定方式相同,因此,可以从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的分类损失函数值,直至确定出每个样本图像对应的分类损失函数值为止:通过待训练神经网络模型k,确定s个待训练神经网络模型中每个待训练神经网络模型被用来处理选择的样本图像的概率,以得到s个概率;基于选择的样本图像对应的标签函数值和该s个概率,确定选择的样本图像对应的分类损失函数值。
95.在一些实施例中,可以将选择的样本图像输入待训练神经网络模型k,以得到待训练神经网络模型k输出的选择结果,该选择结果包括s个待训练神经网络模型中每个待训练神经网络模型被用来处理选择的样本图像的概率,也即是,对选择的样本图像进行分类的下一个神经网络模型为s个待训练神经网络模型中每个待训练神经网络模型的概率,从而得到s个概率。
96.n个选择权重函数值的确定过程
97.在本技术实施例中,样本图像对应的选择权重函数值与在待训练神经网络模型k之后允许用来处理该n个样本图像的待训练神经网络模型对该样本图像的分类结果的准确
度方差有关。也即是,在待训练神经网络模型k之后允许用来处理该n个样本图像的待训练神经网络模型对哪个样本图像的分类结果的准确度方差越大,那么这个样本图像对应的选择权重函数值越大,在待训练神经网络模型k之后允许用来处理n个样本图像的待训练神经网络模型对哪个样本图像的分类结果的准确度方差越小,那么这个样本图像对应的选择权重函数值越小。
98.在一些实施例中,可以通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率。基于n*s个标准概率,确定n个样本图像中每个样本图像对应的选择权重函数值。
99.其中,基于n*s个标准概率,确定n个样本图像中每个样本图像对应的选择权重函数值的实现过程包括:将n*s个标准概率中与n个样本图像中同一样本图像对应的概率划分为一个概率集合,以得到n个概率集合。确定n个概率集合中每个概率集合包括的标准概率的标准差,以得到n个标准差。对n个标准差中每个标准差进行归一化处理,以得到n个样本图像中每个样本图像对应的选择权重函数值。
100.第二方面,提供了一种计算机设备,所述计算机设备具有实现上述第一方面中图像分类方法行为的功能,或者具有实现上述第一方面中神经网络模型的训练方法行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
101.在一种可能的实现方式中,所述计算机设备包括:
102.图像处理模块,用于通过当前神经网络模型对待分类的目标图像进行处理,以得到当前神经网络模型输出的当前分类结果;
103.其中,当前分类结果包括目标图像属于多个类别中各个类别的概率,当前神经网络模型为神经网络模型a输出的选择结果中最大概率对应的神经网络模型i,神经网络模型a输出的选择结果包括已训练的m个神经网络模型中p个神经网络模型对应的概率,p个神经网络模型为在神经网络模型a之后允许用来处理目标图像的神经网络模型,m个神经网络模型包括神经网络模型i和神经网络模型a,m为大于1的整数,p为大于或等于1的整数;
104.整合结果确定模块,用于基于当前分类结果确定当前整合结果,当前整合结果包括目标图像属于该多个类别中各个类别的整合后的概率;
105.图像类别确定模块,用于基于当前整合结果确定目标图像的类别。
106.上述的图像处理模块、整合结果确定模块以及图像类别确定模块可以执行上述第一方面中的图像分类方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
107.在另一种可能的实现方式中,所述计算机设备包括:
108.样本获取模块,用于获取n个样本图像和n个样本标签,n个样本标签与n个样本图像一一对应;
109.梯度确定模块,用于基于n个样本图像和n个样本标签,确定m个待训练神经网络模型中每个待训练神经网络模型的各个参数的梯度;
110.模型更新模块,用于基于m个待训练神经网络模型的各个参数的梯度,对m个待训练神经网络模型进行更新,以得到已训练的m个神经网络模型。
111.上述的样本获取模块、梯度确定模块以及模型更新模块可以执行上述第一方面中
的神经网络模型的训练方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
112.第三方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储执行上述第一方面所提供的方法的计算机程序指令。所述处理器被配置为用于执行所述存储器中存储的计算机程序指令,以实现上述第一方面所述的方法。
113.可选地,所述计算机设备还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
114.第四方面,提供了一种计算机可读存储介质,所述存储介质内存储有指令,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法的步骤。
115.第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法的步骤。或者说,提供了一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机设备执行上述第一方面所述的方法的步骤。
116.上述第二方面、第三方面、第四方面和第五方面所得到的技术效果与第一方面中对应的技术手段得到的技术效果近似,在这里不再赘述。
117.本技术实施例提供的技术方案至少可以带来以下有益效果:
118.在本技术实施例中,对于训练得到的m个神经网络模型,在进行图像分类时能够根据待分类的目标图像,从该m个神经网络模型中选择部分神经网络模型来处理目标图像,从而确定目标图像的类别,无需获取该m个神经网络模型中每个神经网络模型的分类结果,大幅度降低了计算开销,提高了图像分类效率。
附图说明
119.图1是本技术实施例提供的一种实施环境的示意图;
120.图2是本技术实施例提供的一种示例性实施环境的示意图;
121.图3是本技术实施例提供的一种开启相册分类功能的界面示意图;
122.图4是本技术实施例提供的一种拍摄照片的界面示意图;
123.图5是本技术实施例提供的一种相册分类的界面示意图;
124.图6是本技术实施例提供的一种计算机设备的结构示意图;
125.图7是本技术实施例提供的一种图像分类方法的流程图;
126.图8是本技术实施例提供的一种运行实例的示意图;
127.图9是本技术实施例提供的另一种运行实例的示意图;
128.图10是本技术实施例提供的一种示例性地图像分类方法的流程图;
129.图11是本技术实施例提供的一种不同计算量下的图像分类精度的示意图;
130.图12是本技术实施例提供的一种神经网络模型的训练方法的流程图;
131.图13是本技术实施例提供的一种示例性地神经网络模型的训练方法的流程图;
132.图14是本技术实施例提供的一种图像分类装置的结构示意图;
133.图15是本技术实施例提供的一种神经网络模型的训练装置的结构示意图。
具体实施方式
134.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
135.为了便于理解,在对本技术实施例进行详细地解释说明之前,先对本技术实施例涉及的术语进行解释。
136.神经网络模型:由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,是一个高度复杂的非线性动力学习系统。神经网络模型具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。
137.神经网络模型包括卷积神经网络模型,卷积神经网络模型是一类包含卷积计算且具有深度结构的前馈神经网络模型,是深度学习的代表算法之一。本技术实施例中的神经网络模型可以为卷积神经网络模型。
138.其中,卷积神经网络模型包括卷积层、池化层、全连接层和非线性激活层。卷积层是卷积神经网络模型的核心,其参数由一组可学习的内核(kernels)组成。在前馈期间,每个卷积核对输入进行卷积,来提取更高层次的特征。池化层又称下采样,它的作用是减小数据处理量同时保留有用信息。通常池化层是每四个邻域像素选择最大值变为一个像素。全连接层的输入和输出均为一维向量。本质上全连接操作就是矩阵的乘法操作。输入为一个向量,矩阵为神经网络模型中存储的参数,输出便为上述向量与矩阵的乘积,同样为一个向量。非线性激活层包括relu(修正线性单元)、sigmoid、tanh(双曲正切函数)等,都是业界公认的常用非线性激活函数,均为元素级操作,并不会改变特征的大小。
139.神经网络模型的参数:任何神经网络模型中都包含大量的可学习参数,这些参数称为神经网络模型的参数。
140.神经网络模型的结构:结构是神经网络模型的重要属性之一,影响着网络模型的精度、效率。比较有代表性的结构有vgg、resnets、mobilenet等。
141.神经网络的训练:神经网络模型中包含大量的可学习参数,神经网络模型的训练是指基于数据集与训练算法确定可学习参数值的过程。
142.神经网络的推理:在神经网络模型的训练结束后,我们会将其应用于新数据,以得到新数据的预测结果(比如新数据的类别等)。这个过程称为神经网络模型的推理。在本技术实施例中,神经网络模型的推理具体为图像分类,也即是确定目标图像的类别。
143.本技术实施例提供的方法可以应用于各种场景,图像分类场景仅仅是一种示例,比如还可以应用于视频识别、语音识别、图像信号处理等各种推理场景。对于任何一种推理场景,可以通过当前神经网络模型对待推理的第一数据进行推理处理,以得到当前神经网络模型输出的当前推理结果;其中,当前推理结果因推理场景不同而不同,当前神经网络模型为神经网络模型a输出的选择结果中最大概率对应的神经网络模型i,神经网络模型a输出的选择结果包括已训练的m个神经网络模型中在当前神经网络模型之后允许用来对第一数据进行推理处理的神经网络模型对应的概率,m个神经网络模型包括神经网络模型i和神经网络模型a,m为大于1的整数;基于当前推理结果确定第一数据的推理结果。
144.接下来,本技术实施例以图像分类为例,对本技术实施例的实施环境进行介绍。
145.请参考图1,图1是根据本技术实施例示出的一种实施环境的示意图。该实施环境
包括多个终端101和服务器(例如云服务器)102。该多个终端101中的每个终端101与服务器102通过无线或有线的方式连接,以进行通信。
146.其中,关于图1所示的实施环境,本技术实施例可以按照多种不同的实现方式来进行图像分类。
147.第一种实现方式,服务器102对m个待训练神经网络模型进行训练,以得到已训练的m个神经网络模型。之后,服务器102将已训练的m个神经网络模型部署在该多个终端101中的每个终端101上。对于该多个终端101中的每个终端101,该终端101获取目标图像,并基于已训练的m个神经网络模型,对目标图像进行处理,来确定目标图像的类别。
148.其中,该终端101获取的目标图像可以为终端101上存储的图像,也可以为终端101对外界环境进行拍摄以得到的图像,当然,还可以通过其他途径来获取,本技术实施例对此不做限定。比如,请参考图2,终端可以通过自带的摄像头对外界环境进行拍摄,以得到目标图像。比如图2中得到三张图像。之后,对于三张图像中的每张图像,可以基于该m个神经网络模型,对每张图像进行处理,来确定每张图像的类别。
149.第二种实现方式,服务器102对m个待训练神经网络模型进行训练,以得到已训练的m个神经网络模型。对于该多个终端101中的每个终端101,该终端101获取目标图像,并将目标图像发送给服务器102。服务器102接收终端101发送的目标图像,并基于该m个神经网络模型,对目标图像进行处理,来确定目标图像的类别。
150.当然,除了上述两种实现方式之外,还可以按照其他的实现方式来进行图像分类。比如,终端101对m个待训练神经网络模型进行训练,以得到已训练的m个神经网络模型。之后,该终端101获取目标图像,并基于该m个神经网络模型,对目标图像进行处理,来确定目标图像的类别。
151.需要说明的是,上述的终端101可以为可以是任何一种可与用户通过触摸板、触摸屏、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如,手机、个人数字助手(personal digital assistant,pda)、可穿戴设备、平板电脑、智能车机、智能电视等。上述的服务器102可以为单台服务器,也可以为由多台服务器组成的服务器集群。
152.接下来对本技术实施例进行图像分类的一种示例性的实现过程进行介绍。
153.本技术实施例提供的图像分类方法可以应用于相册的分类。也即是,对于终端拍摄到的多张图像,可以将该多张图像按照不同的类别生成不同的相册。然而,在按照本技术实施例提供的图像分类方法进行相册分类之前,需要开启相册分类的功能,当然相册分类的功能也可以是默认开启的,本技术实施例对此不做限定。接下来以需要手动开启相册分类的功能为例进行介绍。
154.当终端检测到设置操作时,显示设置界面,该设置界面包括多个设置项,该多个设置项包括相册设置项。当终端检测到相册设置项的选择操作时,可以显示相册设置界面,该相册设置界面包括多个相册设置项,该多个相册设置项包括相册分类项。当终端检测到相册分类项的开启操作时,确定当前已开启相册分类的功能。
155.比如,请参考图3中的左图,当终端检测到设置图标的点击操作时,可以显示设置界面,如图3中的中间图所示。该设置界面包括多个设置项,分别为无线和网络设置项、桌面和壁纸设置项、声音设置项、显示设置项和相册设置项。当终端检测到相册设置项的选择操作时,可以显示相册设置界面,如图3中的右图所示。该相册设置界面包括多个相册设置项,
分别为开启云备份的设置项以及开启相册自动生成的设置项,且每个设置项对应一个开关。当终端检测到开启相册自动生成设置项对应的开关的打开操作时,确定当前已开启相册分类的功能。也即是,当用户点击图3中的左图所示的设置图标时,显示图3中的中间图所示的设置界面。当用户点击设置界面中的相册设置项时,显示图3中的右图所示的相册设置界面。当用户点击相册设置界面中开启相册自动生成设置项对应的开关时,确定当前已开启相册分类的功能。
156.在开启相册分类功能之后,当终端拍摄到一张图像之后,终端可以按照上述多种实现方式中的任一种实现方式,确定这张图像的类别,从而基于这张图像的类别,将这张图像加入对应类别的相册。如果在这张图像之前,不存在对应类别的相册,那么终端可以生成对应类别的相册,然后将这张图像加入该相册中。
157.比如,请参考图4中的左图,当终端检测到相机图标的点击操作时,可以显示相机拍摄界面,如图4中的右图所示。该相机拍摄界面包括多个按钮,分别为相册按钮、拍摄按钮和镜头旋转按钮。当终端检测到拍摄按钮的点击操作时,可以对取景框内的图像进行拍摄,以得到一张照片,如图4中右图中显示的建筑物照片。
158.请参考图5中的左图,当终端检测到相册按钮的点击操作时,可以显示相册界面,如图5中的右图。该相册界面包括所有拍摄到的照片,而且对于拍摄到的每张照片,可以按照上述多种实现方式中的任一种实现方式,来确定这张照片的类别,从而加入对应的相册。比如,对于当前拍摄到的建筑物照片,当通过上述多种实现方式中的任一种实现方式,确定该照片的类别为建筑时,可以将该照片加入建筑相册。
159.请参考图6,图6是根据本技术实施例示出的一种计算机设备的结构示意图。该计算机设备可以为上述的终端101,也可以为上述的服务器102。该计算机设备包括处理器601、存储器602以及收发器603。这些组件之间可以通过通信总线604连接,以进行通信。
160.处理器601可以是一个通用中央处理器(central processing unit,cpu)、网络处理器(network processor,np)、微处理器、或者可以是一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
161.存储器602可以是只读存储器(read-only memory,rom),也可以是随机存取存储器(random access memory,ram),也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、光盘(包括只读光盘(compact disc read-only memory,cd-rom)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器602可以是独立存在,并通过通信总线604与处理器601相连接。存储器602也可以和处理器601集成在一起。
162.收发器603使用任何收发器一类的装置,用于与其它设备或通信网络通信。收发器603包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口、电接口或其组合。无线通信接口可以为无线局域网
(wireless local area networks,wlan)接口、蜂窝网络通信接口或其组合等。
163.通信总线604用于在上述组件之间传送信息。通信总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
164.作为一种实施例,处理器601可以包括一个或多个cpu。计算机设备可以包括多个处理器,这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
165.作为一种实施例,计算机设备还可以包括输出设备和输入设备。输出设备和处理器601通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备和处理器601通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
166.在一些实施例中,存储器602用于存储执行本技术方案的程序代码,处理器601可以执行存储器602中存储的程序代码。该程序代码中可以包括一个或多个软件模块,该计算机设备可以通过处理器601以及存储器602中的程序代码,来实现本技术实施例提供的图像分类方法。
167.请参考图7,图7是本技术实施例提供的一种图像分类方法的流程图,该方法应用于计算机设备中。该方法包括如下步骤。
168.步骤701:通过当前神经网络模型对待分类的目标图像进行处理,以得到当前神经网络模型输出的当前分类结果。
169.其中,当前分类结果包括目标图像属于多个类别中各个类别的概率,当前神经网络模型为神经网络模型a输出的选择结果中最大概率对应的神经网络模型i,神经网络模型a输出的选择结果包括已训练的m个神经网络模型中p个神经网络模型对应的概率,p个神经网络模型为在神经网络模型a之后允许用来处理目标图像的神经网络模型,p个神经网络模型包括所述神经网络模型i,m个神经网络模型包括神经网络模型a,m为大于1的整数,p为大于或等于1的整数,p小于m。
170.在一些实施例中,当前神经网络模型还可以输出当前选择结果,当前选择结果包括m个神经网络模型中d个神经网络模型对应的概率,d个神经网络模型为在神经网络模型i之后允许用来处理目标图像的神经网络模型,d为大于或等于1的整数,d小于m。也即是,本技术实施例可以按照两种实现方式,通过当前神经网络模型对目标图像进行处理。接下来对这两种实现方式进行介绍。
171.第一种实现方式,将目标图像输入当前神经网络模型中,以得到当前神经网络模型输出的当前分类结果和当前选择结果。
172.也即是,在第一种实现方式中,将该m个神经网络网络中的任意一个神经网络模型作为当前神经网络模型,将目标图像输入当前神经网络模型之后,当前神经网络模型不仅能够输出关于目标图像的当前分类结果,而且还能够确定在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率,即当前选择结果。
173.其中,在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概
率越大,这个神经网络模型对目标图像的分类精度就越高,而且通常情况下,神经网络模型i对目标图像的分类精度高于神经网络模型a对目标图像的分类精度。
174.第二种实现方式,将目标图像和当前迭代次数输入当前神经网络模型,通过当前神经网络模型对目标图像进行处理。
175.关于第二种实现方式存在两种情况,接下来对这两种情况分别进行介绍。
176.第一种情况,将目标图像和当前迭代次数输入当前神经网络模型,以得到当前神经网络模型输出的当前分类结果。
177.也即是,在第一种情况下,输入当前神经网络模型的当前迭代次数小于迭代次数阈值,且与迭代次数阈值之间的差值为1。这样,通过当前神经网络模型对目标图像处理之后,当前迭代次数已经达到了次数阈值,后续不需要再进行迭代了,所以当前神经网络模型可以只输出当前分类结果。
178.第二种情况,将目标图像和当前迭代次数输入当前神经网络模型,以得到当前神经网络模型输出的当前分类结果和当前选择结果。
179.也即是,在第二种情况下,输入当前神经网络模型的当前迭代次数小于迭代次数阈值,且与迭代次数阈值之间的差值大于1。这样,通过当前神经网络模型对目标图像处理之后,当前迭代次数还未达到次数阈值,后续可能还需要再进行迭代,所以当前神经网络模型需要输出当前分类结果和当前选择结果。
180.步骤702:基于当前分类结果确定当前整合结果,当前整合结果包括目标图像属于多个类别中各个类别的整合后的概率。
181.在一些实施例中,可以将多个分类结果中对应类别的概率的平均值确定为当前整合结果中相应类别的概率,该多个分类结果包括神经网络模型a输出的分类结果和神经网络模型i输出的分类结果。或者,直接将当前分类结果确定为当前整合结果。
182.也即是,当前整合结果中第一类别的概率包括:为多个分类结果中第一类别的概率的平均值,该多个分类结果包括神经网络模型a输出的分类结果和神经网络模型i输出的分类结果。或者,当前整合结果中第一类别的概率包括:神经网络模型i输出的分类结果中第一类别的概率。其中,第一类别为该多个类别中的一个类别。
183.比如,已通过三个神经网络模型对目标图像进行了处理,以得到三个分类结果,分别为分类结果1、分类结果2和分类结果3。这三个分类结果中均包括目标图像属于5个类别的概率。将这三个分类结果中目标图像属于类别1的概率的平均值确定为整合结果中目标图像属于类别1的概率,将这三个分类结果中目标图像属于类别2的概率的平均值确定为整合结果中目标图像属于类别2的概率,将这三个分类结果中目标图像属于类别3的概率的平均值确定为整合结果中目标图像属于类别3的概率,将这三个分类结果中目标图像属于类别4的概率的平均值确定为整合结果中目标图像属于类别4的概率,将这三个分类结果中目标图像属于类别5的概率的平均值确定为整合结果中目标图像属于类别5的概率。
184.步骤703:基于当前整合结果确定目标图像的类别。
185.基于上述步骤701的描述,通过当前神经网络模型对目标图像进行处理分为两种实现方式,在不同的实现方式下,基于当前整合结果确定目标图像的类别不同。因此,接下来也分为两种实现方式进行说明。
186.第一种实现方式,在步骤701按照第一种实现方式,通过当前神经网络模型对目标
图像进行处理时,基于当前整合结果确定目标图像的类别包括:如果当前整合结果满足第一收敛条件或者当前神经网络模型满足第二收敛条件,则将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件且当前神经网络模型不满足第二收敛条件,则将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述步骤701-703的方法对目标图像进行处理。
187.由于第一种实现方式中,每个神经网络模型都会输出分类结果和选择结果,所以,在基于当前神经网络模型输出的当前分类结果确定当前整合结果之后,需要判断当前整合结果是否满足第一收敛条件,以及判断当前神经网络模型是否满足第二收敛条件。如果当前整合结果满足第一收敛条件或者当前神经网络模型满足第二收敛条件,则表明当前整合结果的可靠性较高,将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件且当前神经网络模型不满足第二收敛条件,则表明当前整合结果的可靠性不高,此时可以将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述步骤701-703的方法对目标图像进行处理。
188.作为一种示例,当前整合结果满足第一收敛条件包括:当前整合结果的置信度大于置信度阈值。当前神经网络模型满足第二收敛条件包括:当前神经网络模型的迭代次数大于或等于迭代次数阈值。当然,当前整合结果满足第一收敛条件还可以包括其他的条件,同理,当前神经网络模型满足第二收敛条件也可以包括其他的条件。
189.在当前整合结果满足第一收敛条件包括当前整合结果的置信度大于置信度阈值的情况下,基于当前分类结果确定当前整合结果之后,还可以确定当前整合结果的置信度。其中,确定当前整合结果的置信度的实现过程包括:将当前整合结果中的最大概率确定为当前整合结果的置信度。或者,将目标图像和当前整合结果输入置信度网络模型,以得到置信度网络模型输出的当前整合结果的置信度。
190.其中,置信度网络模型可以是预先训练好的,且置信度网络模型可以为神经网络模型,当然也可以为其他结构的模型。
191.由于置信度用于指示整合结果的可信程度,而且本技术实施例是通过循环迭代方式对目标图像进行分类,所以,在当前整合结果的置信度大于置信度阈值的情况下,或者,在当前迭代次数大于或等于迭代次数阈值的情况下,表明当前整合结果的可信度较高,此时,可以直接将当前整合结果中的最大概率对应的类别确定为目标图像的类别。在当前整合结果的置信度不大于置信度阈值且当前迭代次数小于迭代次数阈值的情况下,表明当前整合结果的可信度不高,此时,可以将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新对目标图像进行处理。
192.其中,置信度阈值为事先设置的,且置信度阈值可以按照不同的需求来调整。迭代次数阈值也可以为事先设置的,该迭代次数阈值可以为指定迭代次数,也可以为最大迭代次数,可以按照不同的需求来设置,本技术实施例对此不做限定。
193.通过上述步骤701-703的方法可知,本技术实施例是通过循环迭代方式来确定目标图像的类别。该循环迭代方式的某次循环包括上述步骤701-703。而且,在当前整合结果不满足第一收敛条件且当前神经网络模型不满足第二收敛条件的情况下,可以继续进行循环迭代处理。此时,将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述步骤对目标图像进行处理,来执行循环迭代方式的下一次循环。也就是
说,通过前一次的神经网络模型能够确定出下一次的神经网络模型,且下一次的神经网络模型的分类精度高于前一次的神经网络模型的分类精度,这样能够逐步提高整合结果的可靠性。
194.可选地,对于该循环迭代方式的第一次循环,当前神经网络模型为该m个神经网络模型中的第一个神经网络模型。而且,对于上述确定当前整合结果的第一种方式,第一次循环得到的当前整合结果为第一个神经网络模型输出的当前分类结果。
195.第二种实现方式,在步骤701按照第二种实现方式,通过当前神经网络模型对目标图像进行处理时,基于当前整合结果确定目标图像的类别的实现过程分为两种情况,接下来分别对这两种情况进行说明,且这两种情况与上述步骤701中第二种实现方式中的两种情况对应。
196.第一种情况,将当前整合结果中的最大概率对应的类别确定为目标图像的类别。
197.由于第一种情况中,通过当前神经网络模型对目标图像进行处理之后,当前迭代次数已经达到了迭代次数阈值,表明当前整合结果的可靠性较高,因此,可以直接将当前整合结果中的最大概率对应的类别确定为目标图像的类别,无需再判断当前整合结果是否满足第一收敛条件。
198.第二种情况,如果当前整合结果满足第一收敛条件,则将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件,则将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述步骤701-703的方法对目标图像进行处理。
199.由于第二种情况中,通过当前神经网络模型对目标图像进行处理之后,当前迭代次数还未达到迭代次数阈值,当前整合结果的可靠性不确定,因此需要确定当前整合结果是否满足第一收敛条件。如果当前整合结果满足第一收敛条件,则确定当前整合结果的可靠性较高,因此,可以将当前整合结果中的最大概率对应的类别确定为目标图像的类别。如果当前整合结果不满足第一收敛条件,则确定当前整合结果的可靠性不高,因此,可以将当前选择结果中最大概率对应的神经网络模型作为当前神经网络模型,重新按照上述步骤701-703的方法对目标图像进行处理。
200.其中,关于第二种实现方式中的第一收敛条件可以参考上述第一种实现方式中的相关介绍,本技术实施例在此不再赘述。
201.在本技术实施例中,将目标图像输入当前神经网络模型之后,当前神经网络模型不仅能够输出关于目标图像的当前分类结果,还能够确定在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率。并且,在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率越大,这个神经网络模型对目标图像的分类精度就越高,而且通常情况下,最大概率对应的神经网络模型对目标图像的分类精度高于当前神经网络模型对目标图像的分类精度,所以,按照这样的方式进行循环迭代处理之后,能够提高图像分类的精度。也就是说,本技术实施例基于目标图像的性质,能够从该m个神经网络模型中动态地选择部分神经网络模型进行图像分类,无需通过每个神经网络模型都进行图像分类,减少了运算量。而且,由于只选择了部分神经网络模型,所以,只需要将部分神经网络模型的参数读入内存,不需要将所有神经网络模型的参数都读入内存,避免了内存读取耗时的问题。
202.接下来结合两个运行实例对本技术实施例提供的图像分类方法进行介绍。
203.请参考图8,在运行实例一中,已训练得到的m个神经网络模型记为net1、net2、net3、...、netm,将目标图像输入net1,以得到分类结果pred1和选择结果sel1,对分类结果pred1进行整合,以得到整合结果pred
11
,以及确定当前迭代次数。如果整合结果pred
11
的置信度不大于置信度阈值且当前迭代次数小于迭代次数阈值,则确定选择结果sel1中的最大概率对应的神经网络模型,假设选择结果sel1中的最大概率对应的神经网络模型为net2,那么,将目标图像输入net2,以得到分类结果pred2和选择结果sel2,对分类结果pred1和pred2进行整合,以得到整合结果pred
12
。如果整合结果pred
12
的置信度大于置信度阈值或者当前迭代次数大于或等于迭代次数阈值,则将整合结果pred
12
中最大概率对应的类别确定为目标图像的类别,否则,继续确定选择结果sel2中的最大概率对应的神经网络模型,重复上述步骤,直至确定得到置信度大于置信度阈值的整合结果或者当前迭代次数大于或等于迭代次数阈值为止。
204.请参考图9,在运行实例二中,已训练得到的m个神经网络模型记为net1、net2、net3、...、netm,将目标图像输入net1,以得到分类结果pred1和选择结果sel1,对分类结果pred1进行整合,以得到整合结果pred
11
,以及确定当前迭代次数。如果整合结果pred
11
的置信度不大于置信度阈值且当前迭代次数小于迭代次数阈值,则确定选择结果sel1中的最大概率对应的神经网络模型,假设选择结果sel1中的最大概率对应的神经网络模型为net2,那么,将目标图像输入net2,以得到分类结果pred2和选择结果sel2,对分类结果pred1和pred2进行整合,以得到整合结果pred
12
。如果整合结果pred
12
的置信度不大于置信度阈值且当前迭代次数小于迭代次数阈值,则确定选择结果sel2中的最大概率对应的神经网络模型,假设选择结果sel2中的最大概率对应的神经网络模型为net4,那么,将目标图像输入net4,以得到分类结果pred3和选择结果sel3,对分类结果pred1、pred2和pred3进行整合,以得到整合结果pred
13
。如果整合结果pred
13
的置信度大于置信度阈值或者当前迭代次数大于或等于迭代次数阈值,则将整合结果pred
13
中最大概率对应的类别确定为目标图像的类别,否则,继续确定选择结果sel3中的最大概率对应的神经网络模型,重复上述步骤,直至确定得到置信度大于置信度阈值的整合结果或者当前迭代次数大于或等于迭代次数阈值为止。
205.示例地,请参考图10,本技术实施例提供的图像分类方法也可以通过图10表示。其中,图10中的q为当前迭代次数,q为迭代次数阈值。即,已训练得到的m个神经网络模型记为net1、net2、net3、...、netm,设置q=1。将神经网络模型net1作为当前神经网络模型,将目标图像输入当前神经网络模型,以得到分类结果predq和选择结果selq,利用{pred1、...、predq}得到整合结果pred
1q
,判断整合结果pred
1q
的置信度是否大于置信度阈值。如果整合结果pred
1q
的置信度大于置信度阈值,则将整合结果pred
1q
中最大概率对应的类别确定为目标图像的类别,否则,判断当前迭代次数q是否大于q。如果当前迭代次数q大于q,则将整合结果pred
1q
中最大概率对应的类别确定为目标图像的类别,否则,令q=q+1,将选择结果selq中最大概率对应的神经网络模型确定为当前神经网络模型,返回将目标图像输入当前神经网络模型的步骤。
206.在上述的置信度阈值不同的情况下,通过本技术实施例提供的方法具有不同的计算量。请参考图11,图11示出了不同计算量下的图像分类精度的曲线图。而且,图11中不仅示意了本技术实施例在不同计算量下的图像分类精度的曲线,还示意了其他相关技术
(basisnet、mobilenetv3)在不同计算量下的图像分类精度的曲线。通过对比可以确定本技术实施例提供的方法具有更高的图像分类精度。而且,将本技术实施例提供的方法在学术界的权威数据集imagenet上进行了验证,本技术实施例提供的方法在性能上远超非动态网络算法,克服了非动态网络算法的性能低问题。例如,相对于当前的主流轻量级模型mobilenetv3,本技术实施例将计算量降低了2.8倍(即从216m降低到77m),图像分类精度提升了1.08%(即从75.2%提高到76.28%)。而且,相对于当前的主流重量级模型resnext-101,本技术实施例将计算量降低178倍(即从32b降低到180m),图像分类精度基本保持不变(即从80.9%到81.04%)。
207.可选地,通过上述的m个神经网络模型,对目标图像进行分类之前,还可以对m个待训练神经网络模型进行训练,以得到上述的m个神经网络模型。请参考图12,对该m个待训练神经网络模型进行训练的过程包括如下步骤。
208.步骤1201:获取n个样本图像和n个样本标签,n个样本标签与n个样本图像一一对应。
209.步骤1202:基于该n个样本图像和该n个样本标签,确定m个待训练神经网络模型中每个待训练神经网络模型的各个参数的梯度。
210.对于该m个待训练神经网络模型中每个待训练神经网络模型来说,确定每个待训练神经网络模型的各个参数的梯度的方法相同,接下来以m个待训练神经网络模型中的待训练神经网络模型k为例进行说明。
211.在一些实施例中,可以按照以下操作确定待训练神经网络模型k的各个参数的梯度:基于n个样本图像和n个样本标签,确定待训练神经网络模型k对应的训练函数值。基于待训练神经网络模型k对应的训练函数值,确定待训练神经网络模型k的各个参数的梯度。
212.作为一种示例,待训练神经网络模型k对应的训练函数值可以通过如下公式(1)和公式(2)来表示:
[0213][0214][0215]
其中,在上述公式(1)中,lk是指待训练神经网络模型k对应的训练函数值。是指待训练神经网络模型k对应的模型选择函数值,可以通过m个待训练神经网络模型中在待训练神经网络模型k之后允许对n个样本图像进行处理的待训练神经网络模型来确定。并且,模型选择函数值能够使得待训练神经网络模型k输出的选择结果可以将某个图像分配给在待训练神经网络模型k之后且分类精度最高的待训练神经网络模型。也即是,将某个图像输入待训练神经网络模型k之后,待训练神经网络模型k输出的选择结果中概率最大的待训练神经网络模型为在待训练神经网络模型k之后且分类精度最高的待训练神经网络模型。
[0216]
ωk(j,net1,...,net
k-1
)是指确定待训练神经网络模型k对应的训练函数值时n个样本图像中样本图像xj对应的权重函数值,为实数,可以通过m个待训练神经网络模型中在待训练神经网络模型k之前允许处理n个样本图像的待训练神经网络模型来确定。并且,权
重函数值能够使得待训练神经网络模型k在某个图像上有更高的分类精度,同时降低在其他图像上的分类精度。也即是,当下一次处理某个图像的待训练神经网络模型为待训练神经网络模型k时,待训练神经网络模型k对这个图像的分类精度较高,而对其他图像的分类精度较低。l
task
(xj,labelj)是指确定待训练神经网络模型k对应的训练函数值时n个样本图像中样本图像xj对应的分类函数值,比如可以为交叉熵损失函数值,或者也称为任务相关函数值。
[0217]
在上述公式(2)中,ψk(j,net
k+1
,...,netm)是指确定待训练神经网络模型k对应的训练函数值时n个样本图像中样本图像xj对应的选择权重函数值,为实数,可以通过m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的待训练神经网络模型来确定。labelk(j,net
k+1
,...,netm)是指确定待训练神经网络模型k对应的训练函数值时n个样本图像中样本图像xj对应的标签函数值,为一个正整数,可以为样本图像xj对应的选择标签,也即是,通过标签函数为样本图像xj确定的标签。并且,标签函数值可以通过m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的待训练神经网络模型来确定。l
ce
是指确定待训练神经网络模型k对应的训练函数值时n个样本图像中样本图像xj对应的分类损失函数值,比如可以为交叉熵损失函数值,可以通过m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的待训练神经网络模型来确定。
[0218]
需要说明的是,可以基于待训练神经网络模型k对应的训练函数值,采用反向传播算法确定待训练神经网络模型k的各个参数的梯度。反向传播算法是一种监督学习算法,采用反向传播算法确定待训练神经网络模型的各个参数的梯度可以参考相关技术,此处不再展开阐述。
[0219]
基于上文描述,待训练神经网络模型k对应训练函数值包括n个分类函数值、n个权重函数值、n个标签函数值、n个分类损失函数值和n个选择权重函数值,n个分类函数值与n个样本图像一一对应,n个权重函数值与n个样本图像一一对应,n个标签函数值与n个样本图像一一对应,n个分类损失函数值与n个样本图像一一对应,n个选择权重函数值也与n个样本图像一一对应。接下来将对该多个函数值的确定过程分别进行说明。
[0220]
n个分类函数值的确定过程
[0221]
由于每个样本图像对应的分类函数值的确定方式相同,因此,可以从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的分类函数值,直至确定出每个样本图像对应的分类函数值为止:将选择的样本图像输入待训练神经网络模型k,以得到待训练神经网络模型k输出的分类结果。基于选择的样本图像对应的样本标签和待训练神经网络模型k输出的分类结果,确定选择的样本图像对应的分类函数值。
[0222]
在一些实施例中,可以基于选择的样本图像对应的样本标签和待训练神经网络模型k输出的分类结果,按照如下公式(3)确定选择的样本图像对应的分类函数值。
[0223]
其中,
[0224]
其中,在上述公式(3)中,l
task
(xj,labelj)是指选择的样本图像对应的分类函数值,xj是指选择的样本图像,labelj是指选择的样本图像对应的样本标签,lc是指待训练神
经网络模型k输出的分类结果中选择的样本图像属于类别c的概率,是指待训练神经网络模型k输出的分类结果中所有概率对应的ylog(l)的求和处理。
[0225]
比如,待训练神经网络模型k输出的分类结果包括5个概率,每个概率是指选择的样本图像属于5个类别中的一个类别的概率。此时,可以基于这5个类别,以及选择的样本图像对应的样本标签,确定每个类别对应的y,然后,基于这5个类别分别对应的y,以及待训练神经网络模型k输出的分类结果中每个类别对应的概率,按照上述方式进行求和处理,以得到选择的样本图像对应的分类函数值。
[0226]
n个权重函数值的确定过程
[0227]
在本技术实施例中,n个权重函数值可以基于规则实现,也可以基于元学习实现。接下来对这两种实现方式分别进行说明。
[0228]
第一种实现方式,该n个权重函数值基于规则实现。通过这种实现方式确定n个权重函数值后,能够使得在待训练神经网络模型k之前允许用来处理图像的待训练神经网络模型在确定下一次用来处理该图像的待训练神经网络模型为待训练神经网络模型k时,待训练神经网络模型k在该图像上具有更高的权重函数值。
[0229]
关于第一种实现方式,可以基于n个样本图像和n个样本标签,通过如下步骤(11)-(13)来确定n个权重函数值。
[0230]
(11)通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,以得到n*t个标准概率,t=m-b,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,t个待训练神经网络模型包括待训练神经网络模型k,以及m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型。
[0231]
在一些实施例中,可以通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的平均概率,以得到n*t个平均概率。将n*t个平均概率中与t个待训练神经网络模型中同一待训练神经网络模型对应的平均概率划分为一个概率集合,以得到t个概率集合。基于n*t个平均概率和t个概率集合,对n*t个平均概率进行标准化处理,以得到n*t个标准概率。
[0232]
其中,通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的平均概率的确定方式相同,因此,可以从n个样本图像中选择一个样本图像,从t个待训练神经网络模型中选择一个待训练神经网络模型,通过b个待训练神经网络模型,按照以下操作确定选择的待训练神经网络模型被用来处理选择的样本图像的平均概率,直至确定出n*t个平均概率为止:通过b个待训练神经网络模型中的每个待训练神经网络模型,确定选择的待训练神经网络模型被用来处理选择的样本图像的概率,以得到b个概率。确定该b个概率的平均值,以得到选择的待训练神经网络模型被用来处理选择的样本图像的平均概率。
[0233]
作为一种示例,对于b个待训练神经网络模型中的每个待训练神经网络模型来说,可以将选择的样本图像输入该待训练神经网络模型中,以得到该待训练神经网络模型输出的选择结果,该选择结果包括选择的待训练神经网络模型被用来处理选择的样本图像的概
率,也即是,对选择的样本图像进行分类的下一个神经网络模型为选择的待训练神经网络模型的概率。这样,对于b个待训练神经网络模型中的每个待训练神经网络模型来说,都能得到选择的待训练神经网络模型被用来处理选择的样本图像的概率,从而得到b个概率。之后,可以确定该b个概率的平均值,将该b个概率的平均值确定为选择的待训练神经网络模型被用来处理选择的样本图像的平均概率。
[0234]
其中,对t个概率集合中每个概率集合内的每个平均概率进行标准化处理的方式相同,因此,可以从t个概率集合中选择一个概率集合,按照以下操作对选择的概率集合中的每个平均概率进行标准化处理,直至确定出n*t个标准概率为止:确定选择的概率集合中的平均概率的均值和标准差,基于选择的概率集合中的平均概率、均值和标准差,确定选择的概率集合中的每个平均概率对应的标准概率。
[0235]
作为一种示例,可以基于选择的概率集合中的平均概率、均值和标准差,按照如下公式(4)确定选择的概率集合中的每个平均概率对应的标准概率。
[0236][0237]
其中,在上述公式(4)中,p
j,h
是指选择的概率集合中的一个平均概率,是指选择的概率集合中的平均概率p
j,h
对应的标准概率,ωh是指选择的概率集合,mean(ωh)是指选择的概率集合的均值,std(ωh)是指选择的概率集合的标准差。
[0238]
(12)基于n*t个标准概率,确定n个样本图像中每个样本图像对应的第一权重。
[0239]
在一些实施例中,可以通过下述步骤(a)-(g)来确定该n个样本图像中每个样本图像对应的第一权重。
[0240]
(a)将n*t个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的概率相对值。
[0241]
在一些实施例中,可以从标准概率集合中选择一个标准概率,按照以下操作确定选择的标准概率对应的概率相对值,直至确定出每个标准概率对应的概率相对值为止:从标准概率集合中除选择的标准概率之外的其他标准概率中,确定与选择的标准概率对应同一样本图像的多个标准概率,确定该多个标准概率中的最大标准概率,将选择的标准概率与该最大标准概率的差值确定为选择的标准概率对应的概率相对值。
[0242]
其中,确定标准概率集合中每个标准概率对应的概率相对值的方法可以通过下述公式(5)来表示。
[0243][0244]
其中,在上述公式(5)中,是指标准概率对应的概率相对值,是指标准概率集合中除标准概率之外的其他标准概率中与标准概率对应同一样本图像的多个标准概率中的最大标准概率。
[0245]
(b)从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值。
[0246]
将标准概率集合中的标准概率对应的概率相对值进行比较,从而确定这些概率相对值中的最大概率相对值。
[0247]
(c)从n个样本图像中确定与最大概率相对值对应的样本图像,以及从t个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型。
[0248]
由于n*t个标准概率是通过b个待训练神经网络模型确定的t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,而标准概率集合是通过n*t个标准概率构成的,所以,标准概率集合中的一个标准概率会对应n个样本图像中的一个样本图像,以及对应t个待训练神经网络模型中的一个待训练神经网络模型。而概率相对值是基于标准概率确定的,因此,每个概率相对值也对应n个样本图像中的一个样本图像,以及对应t个待训练神经网络模型中的一个待训练神经网络模型。这样,在确定出最大概率相对值之后,可以从n个样本图像中确定与最大概率相对值对应的样本图像,以及从t个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型。
[0249]
(d)基于最大概率相对值对应的待训练神经网络模型,确定最大概率相对值对应的样本图像的第一权重。
[0250]
在一些实施例中,如果最大概率相对值对应的待训练神经网络模型为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为如果最大概率相对值对应的待训练神经网络模型不为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为其中,a为设定的实数,满足a≥0,且a≤1。
[0251]
(e)从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率。
[0252]
由于n*t个标准概率是通过b个待训练神经网络模型确定的t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,所以,一个样本图像会对应t个标准概率。这样,在确定出与最大概率相对值对应的样本图像之后,可以从标准概率集合中移除该样本图像对应的t个标准概率,此时,该标准概率集合还存在n*(t-1)个标准概率。
[0253]
(f)如果移除后标准概率集合非空,则更新模型确定次数,该模型确定次数是指从t个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的次数。
[0254]
作为一种示例,可以将模型确定次数增加1。也即是,每当通过一次循环确定出一个最大概率相对值,并从t个待训练神经网络模型中确定该最大概率相对值对应的待训练神经网络模型之后,就可以将该模型确定次数增加1。当然,这只是一种示例性的更新方式,还可以为其他的方式。
[0255]
进一步地,如果移除后标准概率集合为空,则结束操作,此时,已经确定得到n个样本图像中每个样本图像对应的第一权重。
[0256]
(g)如果更新后的模型确定次数大于或等于n/t,则从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的标准概率,返回步骤(a)中确定标准概率集合中每个标准概率对应的概率相对值的步骤。
[0257]
由于n*t个标准概率是通过b个待训练神经网络模型确定的t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,所以,t个待训练神经网络模型中的一个待训练神经网络模型会对应n个标准概率。这样,可以从
标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的n个标准概率,此时,该标准概率集合还存在(n-1)*(t-1)个标准概率。
[0258]
(13)对n个样本图像中每个样本图像对应的第一权重进行归一化处理,以得到n个样本图像中每个样本图像对应的权重函数值。
[0259]
在一些实施例中,可以按照下述公式(6)对n个样本图像中每个样本图像对应的第一权重进行归一化处理,以得到n个样本图像中每个样本图像对应的权重函数值。
[0260][0261]
其中,在上述公式(6)中,ωj是指样本图像xj对应的权重函数值,是指样本图像xj对应的第一权重,是指n个样本图像中第g个样本图像对应的第一权重。
[0262]
第二种实现方式,该n个权重函数值基于元学习实现。通过这种实现方式确定n个权重函数值后,能够使得待训练神经网络模型k在某些图像上具有更低的分类损失。
[0263]
关于第二种实现方式,可以基于n个样本图像和n个样本标签,通过如下步骤(21)-(27)来确定n个权重函数值。
[0264]
(21)通过b个待训练神经网络模型,从n个样本图像中选择下一次被待训练神经网络模型k处理的h个样本图像,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,h小于n。
[0265]
在一些实施例中,从该n个样本图像中选择一个样本图像,以及从b个待训练神经网络模型中选择一个待训练神经网络模型。将选择的样本图像输入选择的待训练神经网络模型,以得到选择的待训练神经网络模型输出的选择结果,该选择结果包括m个待训练神经网络模型中在选择的待训练神经网络模型之后允许用来处理选择的样本图像的待训练神经网络模型对应的概率。如果该选择结果中的最大概率对应的待训练神经网络模型为待训练神经网络模型k,则将选择的样本图像确定为下一次被待训练神经网络模型k处理的样本图像。按照上述方法遍历完所有的样本图像以及b个待训练神经网络模型中的每个待训练神经网络模型,即可得到h个样本图像。
[0266]
(22)通过元网络模型,确定n个样本图像中每个样本图像对应的预测权重。
[0267]
在一些实施例中,可以将n个样本图像中的每个样本图像输入元网络模型,以得到元网络模型输出的相应样本图像对应的预测权重。也即是,对于该n个样本图像中的任一样本图像,将该样本图像输入元网络模型之后,可以得到该元网络模型输出的该样本图像对应的预测权重。
[0268]
其中,元网络模型可以为事先训练好的模型,本技术实施例对此不作限定。
[0269]
(23)基于该n个样本图像中每个样本图像对应的预测权重和该n个样本图像中每个样本图像对应的分类函数值,确定该n个样本图像的加权损失值。
[0270]
作为一种示例,可以基于该n个样本图像中每个样本图像对应的预测权重和该h个样本图像中每个样本图像对应的分类函数值,按照如下公式(7)确定该n个样本图像的加权损失值。
[0271][0272]
其中,在上述公式(7)中,l
train
是指该n个样本图像的加权损失值,是指该n个样本图像中第g个样本图像对应的预测权重,l
task
(xg,labelg)是指该n个样本图像中第g个样本图像对应的分类函数值。
[0273]
(24)基于该n个样本图像的加权损失值,更新待训练神经网络模型k。
[0274]
在一些实施例中,可以基于该n个样本图像的加权损失值,采用反向传播算法,更新待训练神经网络模型k。其中,采用反向传播算法更新待训练神经网络模型k的方式可以参考相关技术,本技术实施例对此不做限定。
[0275]
(25)将所述选择的h个样本图像输入更新后的待训练神经网络模型k,以得到更新后的待训练神经网络模型k在该h个样本图像上的总损失值。
[0276]
(26)基于更新后的待训练神经网络模型k在该h个样本图像上的总损失值,更新元网络模型。
[0277]
在一些实施例中,可以基于更新后的待训练神经网络模型k在该h个样本图像上的总损失值,采用反向传播算法,更新元网络模型。其中,采用反向传播算法更新元网络模型的方式可以参考相关技术,本技术实施例对此不做限定。
[0278]
(27)通过更新后的元网络模型,确定该n个样本图像中每个样本图像对应的权重函数值。
[0279]
在一些实施例中,可以将该n个样本图像中的每个样本图像输入更新后的元网络模型,以得到更新后的元网络模型输出的相应样本图像对应的权重函数值。也即是,对于该n个样本图像中的任一样本图像,将该样本图像输入更新后的元网络模型之后,可以得到更新后的元网络模型输出的该样本图像对应的权重函数值。
[0280]
上述确定n个权重函数值的方式仅仅为其中的一种基于元学习的方式,实际应用中,还存在其他基于元学习的方式。比如,可以基于n个样本图像和n个样本标签,通过如下步骤(31)-(37)来确定n个权重函数值。
[0281]
(31)通过b个待训练神经网络模型,从n个样本图像中选择下一次被待训练神经网络模型k处理的h个样本图像,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,h小于n。
[0282]
其中,步骤(31)的实现过程可以参考上述步骤(21)的实现过程,此处不再赘述。
[0283]
(32)确定n个样本图像中每个样本图像对应的初始权重。
[0284]
在一些实施例中,可以为该h个样本图像中的每个样本图像设置一个初始权重。比如,该初始权重可以为0。
[0285]
(33)通过该n个样本图像中每个样本图像对应的初始权重,确定该n个样本图像的加权损失值。
[0286]
作为一种示例,可以基于该n个样本图像中每个样本图像对应的初始权重和该n个样本图像中每个样本图像对应的分类函数值,按照如下公式(8)确定该n个样本图像的加权损失值。
[0287][0288]
其中,在上述公式(8)中,l
train
是指该n个样本图像的加权损失值,是指该n个样本图像中第g个样本图像对应的初始权重,l
task
(xg,labelg)是指该n个样本图像中第g个样本图像对应的分类函数值。
[0289]
(34)基于该n个样本图像的加权损失值,更新待训练神经网络模型k。
[0290]
在一些实施例中,可以基于该n个样本图像的加权损失值,采用反向传播算法,更新待训练神经网络模型k。其中,采用反向传播算法更新待训练神经网络模型k的方式可以参考相关技术,本技术实施例对此不做限定。
[0291]
(35)将所述选择的h个样本图像输入更新后的待训练神经网络模型k,以得到更新后的待训练神经网络模型k在该h个样本图像上的总损失值。
[0292]
(36)基于更新后的待训练神经网络模型k在该h个样本图像上的总损失值,以及该n个样本图像中每个样本图像对应的初始权重,确定该n个样本图像中每个样本图像对应的第二权重。
[0293]
作为一种示例,可以基于更新后的待训练神经网络模型k在该h个样本图像上的总损失值,以及该n个样本图像中每个样本图像对应的初始权重,通过如下公式(9),确定该n个样本图像中每个样本图像对应的第二权重。
[0294][0295]
其中,在上述公式(9)中,是指该n个样本图像中样本图像xj对应的第二权重,是指更新后的待训练神经网络模型k在该h个样本图像上的总损失值,是指更新后的待训练神经网络模型k在该h个样本图像上的总损失值对样本图像xj的初始权重的梯度。
[0296]
(37)对该n个样本图像中每个样本图像对应的第二权重进行归一化处理,以得到该n个样本图像中每个样本图像对应的权重函数值。
[0297]
作为一种示例,可以按照下述公式(10),对该n个样本图像中每个样本图像对应的第二权重进行归一化处理,以得到该n个样本图像中每个样本图像对应的权重函数值。
[0298][0299]
其中,在上述公式(10)中,ωj是指样本图像xj对应的权重函数值,是指样本图像xj对应的第二权重,是指n个样本图像中第g个样本图像对应的第二权重。
[0300]
n个标签函数值的确定过程
[0301]
在本技术实施例中,样本图像对应的标签函数值与在待训练神经网络模型k之后允许用来处理该样本图像的待训练神经网络模型对该样本图像的分类结果的准确度有关。
也即是,哪个待训练神经网络模型是用来确定该样本图像对应的标签函数值,那么这个待训练神经网络模型对该样本图像的分类结果就具有更高的准确度,其他待训练神经网络模型对该样本图像的分类结果就具有更低的准确度。其中,可以基于n个样本图像和n个样本标签,通过如下步骤(41)-(42)来确定n个标签函数值。
[0302]
(41)通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率,s个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型。
[0303]
在一些实施例中,可以通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的概率,以得到n*s个概率。将n*s个概率中与s个待训练神经网络模型中同一待训练神经网络模型对应的平均概率划分为一个概率集合,以得到s个概率集合。基于n*s个概率和s个概率集合,对n*s个概率进行标准化处理,以得到n*s个标准概率。
[0304]
其中,s个待训练神经网络模型中每个待训练神经网络模型确定n个样本图像中每个样本图像属于对应的样本标签的标准概率的方式相同,因此,可以从s个待训练神经网络模型中选择一个待训练神经网络模型,以及从n个样本图像中选择一个样本图像,按照以下操作通过选择的待训练神经网络模型确定选择的样本图像属于对应的样本标签的概率,直至确定出n*s个概率为止:将选择的样本图像输入选择的待训练神经网络模型中,以得到选择的待训练神经网络模型输出的分类结果,该分类结果包括选择的样本图像属于多个类别中各个类别的概率。其中,该多个类别可以包括选择的样本图像对应的样本标签。这样,即可通过选择的待训练神经网络模型确定选择的样本图像属于对应的样本标签的概率。
[0305]
其中,基于n*s个概率和s个概率集合,对n*s个概率进行标准化处理的方式与上述基于n*t个平均概率和t个概率集合,对n*t个平均概率进行标准化处理的方式类似,本技术实施例对此不再赘述。
[0306]
(42)基于n*s个标准概率,确定n个样本图像中每个样本图像对应的标签函数值。
[0307]
在一些实施例中,可以将n*s个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的概率相对值。从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值,从n个样本图像中确定与最大概率相对值对应的样本图像,以及从s个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型。将最大概率相对值对应的待训练神经网络模型在s个待训练神经网络模型中的位置编号,确定为最大概率相对值对应的样本图像的标签函数值。从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率。如果移除后标准概率集合非空,则更新模型确定次数,该模型确定次数是指从s个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的确定次数。如果更新后的模型确定次数大于或等于n/s,则从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的标准概率,返回确定标准概率集合中每个标准概率对应的概率相对值的步骤。
[0308]
比如,从标准概率集合中的标准概率所对应的概率相对值中确定出最大概率相对值之后,从n个样本图像中确定出与最大概率相对值对应的样本图像为样本图像5,从s个待训练神经网络模型中确定出与最大概率相对值对应的待训练神经网络模型为第8个待训练
神经网络模型。那么,可以确定样本图像5的标签函数值为30。
[0309]
其中,上述实现方式中的内容可以参考上述步骤(12)中的相关描述,此处不再赘述。
[0310]
n个分类损失函数值的确定过程
[0311]
由于每个样本图像对应的分类损失函数值的确定方式相同,因此,可以从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的分类损失函数值,直至确定出每个样本图像对应的分类损失函数值为止:通过待训练神经网络模型k,确定s个待训练神经网络模型中每个待训练神经网络模型被用来处理选择的样本图像的概率,以得到s个概率;基于选择的样本图像对应的标签函数值和该s个概率,确定选择的样本图像对应的分类损失函数值。
[0312]
在一些实施例中,可以将选择的样本图像输入待训练神经网络模型k,以得到待训练神经网络模型k输出的选择结果,该选择结果包括s个待训练神经网络模型中每个待训练神经网络模型被用来处理选择的样本图像的概率,也即是,对选择的样本图像进行分类的下一个神经网络模型为s个待训练神经网络模型中每个待训练神经网络模型的概率,从而得到s个概率。
[0313]
在一些实施例中,可以基于选择的样本图像对应的标签函数值和该s个概率,按照下述公式(11)确定选择的样本图像对应的分类损失函数值。
[0314]
其中,
[0315]
其中,在上述公式(11)中,l
*
是指选择的样本图像xj对应的标签函数值,l
ce
(xj,l
*
)是指选择的样本图像对应的分类损失函数值,re是指待训练神经网络模型k输出的s个概率中选择的样本图像属于类别e的概率,是指待训练神经网络模型k输出的s个概率对应的ylog(l)的求和处理。
[0316]
n个选择权重函数值的确定过程
[0317]
在本技术实施例中,样本图像对应的选择权重函数值与在待训练神经网络模型k之后允许用来处理该n个样本图像的待训练神经网络模型对该样本图像的分类结果的准确度方差有关。也即是,在待训练神经网络模型k之后允许用来处理该n个样本图像的待训练神经网络模型对哪个样本图像的分类结果的准确度方差越大,那么这个样本图像对应的选择权重函数值越大,在待训练神经网络模型k之后允许用来处理n个样本图像的待训练神经网络模型对哪个样本图像的分类结果的准确度方差越小,那么这个样本图像对应的选择权重函数值越小。
[0318]
在一些实施例中,可以通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率。基于n*s个标准概率,确定n个样本图像中每个样本图像对应的选择权重函数值。
[0319]
其中,通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率的实现过程可以参考上述步骤(41)中的描述,此处不再赘述。
[0320]
其中,基于n*s个标准概率,确定n个样本图像中每个样本图像对应的选择权重函
数值的实现过程包括:将n*s个标准概率中与n个样本图像中同一样本图像对应的概率划分为一个概率集合,以得到n个概率集合。确定n个概率集合中每个概率集合包括的标准概率的标准差,以得到n个标准差。对n个标准差中每个标准差进行归一化处理,以得到n个样本图像中每个样本图像对应的选择权重函数值。
[0321]
其中,对n个标准差中每个标准差进行归一化处理的方式与上述步骤(13)中对n个样本图像中每个样本图像对应的第一权重进行归一化处理的方式类似,本技术实施例对此不再赘述。
[0322]
步骤1203:基于该m个待训练神经网络模型的各个参数的梯度,对该m个待训练神经网络模型进行更新,以得到m个神经网络模型。
[0323]
对于该m个待训练神经网络模型中的每个待训练神经网络模型,基于该待训练神经网络模型的各个参数的梯度,采用梯度下降算法,对该待训练神经网络模型进行更新,以得到一个神经网络模型。采用梯度下降算法对每个待训练神经网络模型进行更新之后,可以得到m个神经网络模型。
[0324]
需要说明的是,采用梯度下降算法,对该m个待训练神经网络模型进行更新的方法可以参考相关技术,此处不再展开阐述。比如,该梯度下降算法可以为随机梯度下降(stochastic gradient descent,sgd)算法。
[0325]
示例地,请参考图13,本技术实施例提供的神经网络模型的训练方法也可以通过图13表示。待训练的m个神经网络模型记为net1、net2、net3、...、netm,设置k=1。获取n个样本图像和n个样本标签,n个样本标签与n个样本图像一一对应。确定神经网络模型netk对应的训练函数值。基于神经网络模型netk对应的训练函数值,确定神经网络模型netk的各个参数的梯度。判断k是否小于m,如果k不小于m,则对神经网络模型net1、net2、net3、...、netm进行更新,以得到已训练的m个神经网络模型。如果k小于m,令k=k+1,返回确定神经网络模型netk对应的训练函数值的步骤。
[0326]
图14是本技术实施例提供的一种图像分类装置的结构示意图,该图像分类装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图1所示的终端或服务器。参见图14,该装置包括:图像处理模块1401、整合结果确定模块1402和图像类别确定模块1403。
[0327]
图像处理模块1401,用于通过当前神经网络模型对待分类的目标图像进行处理,以得到当前神经网络模型输出的当前分类结果;
[0328]
其中,当前分类结果包括目标图像属于多个类别中各个类别的概率,当前神经网络模型为神经网络模型a输出的选择结果中最大概率对应的神经网络模型i,神经网络模型a输出的选择结果包括已训练的m个神经网络模型中p个神经网络模型对应的概率,p个神经网络模型为在神经网络模型a之后允许用来处理目标图像的神经网络模型,p个神经网络模型包括所述神经网络模型i,m个神经网络模型包括神经网络模型a,m为大于1的整数,p为大于或等于1的整数,p小于m;
[0329]
整合结果确定模块1402,用于基于当前分类结果确定当前整合结果,当前整合结果包括目标图像属于该多个类别中各个类别的整合后的概率;
[0330]
图像类别确定模块1403,用于基于当前整合结果确定目标图像的类别。
[0331]
可选地,当前整合结果中第一类别的概率包括:多个分类结果中第一类别的概率
的平均值,第一类别为该多个类别中的一个类别,该多个分类结果包括神经网络模型a输出的分类结果和神经网络模型i输出的分类结果;或者,
[0332]
当前整合结果中第一类别的概率包括:神经网络模型i输出的分类结果中第一类别的概率。
[0333]
可选地,图像类别确定模块1403具体用于:将当前整合结果中的最大概率对应的类别确定为目标图像的类别;或者,
[0334]
当前神经网络模型还输出当前选择结果,当前选择结果包括m个神经网络模型中d个神经网络模型对应的概率,d个神经网络模型为在神经网络模型i之后允许用来处理目标图像的神经网络模型,d为大于或等于1的整数;图像类别确定模块1403具体用于:如果当前整合结果满足第一收敛条件或者当前神经网络模型满足第二收敛条件,则将当前整合结果中的最大概率对应的类别确定为目标图像的类别。
[0335]
可选地,当前整合结果满足第一收敛条件包括:当前整合结果的置信度大于置信度阈值。
[0336]
可选地,该装置还包括:
[0337]
第一置信度确定模块,用于将当前整合结果中的最大概率确定为当前整合结果的置信度;或者
[0338]
第二置信度确定模块,用于将目标图像和当前整合结果输入置信度网络模型,以得到置信度网络模型输出的当前整合结果的置信度。
[0339]
可选地,当前神经网络模型满足第二收敛条件包括:当前神经网络模型的迭代次数大于或等于迭代次数阈值。
[0340]
可选地,该装置还包括:
[0341]
样本获取模块,用于获取n个样本图像和n个样本标签,n个样本标签与n个样本图像一一对应;
[0342]
梯度确定模块,用于基于n个样本图像和n个样本标签,确定m个待训练神经网络模型中每个待训练神经网络模型的各个参数的梯度;
[0343]
模型更新模块,用于基于m个待训练神经网络模型的各个参数的梯度,对m个待训练神经网络模型进行更新,以得到已训练的m个神经网络模型。
[0344]
可选地,梯度确定模块包括:
[0345]
按照以下子模块确定m个待训练神经网络模型中待训练神经网络模型k的各个参数的梯度,直至确定出每个待训练神经网络模型的各个参数的梯度为止:
[0346]
函数值确定子模块,用于基于n个样本图像和n个样本标签,确定待训练神经网络模型k对应的训练函数值;
[0347]
梯度确定子模块,用于基于待训练神经网络模型k对应的训练函数值,确定待训练神经网络模型k的各个参数的梯度。
[0348]
可选地,训练函数值包括n个分类函数值,n个分类函数值与n个样本图像一一对应;
[0349]
函数值确定子模块具体用于:
[0350]
从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的分类函数值,直至确定出每个样本图像对应的分类函数值为止:
[0351]
将选择的样本图像输入待训练神经网络模型k,以得到待训练神经网络模型k输出的分类结果;
[0352]
基于选择的样本图像对应的样本标签和待训练神经网络模型k输出的分类结果,确定选择的样本图像对应的分类函数值。
[0353]
可选地,训练函数值包括n个权重函数值,n个权重函数值与n个样本图像一一对应;
[0354]
函数值确定子模块具体用于:
[0355]
通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,以得到n*t个标准概率,t=m-b,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,t个待训练神经网络模型包括待训练神经网络模型k,以及m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型;
[0356]
基于n*t个标准概率,确定n个样本图像中每个样本图像对应的第一权重;
[0357]
对n个样本图像中每个样本图像对应的第一权重进行归一化处理,以得到n个样本图像中每个样本图像对应的权重函数值。
[0358]
可选地,函数值确定子模块具体用于:
[0359]
通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的平均概率,以得到n*t个平均概率;
[0360]
将n*t个平均概率中与t个待训练神经网络模型中同一待训练神经网络模型对应的平均概率划分为一个概率集合,以得到t个概率集合;
[0361]
基于n*t个平均概率和t个概率集合,对n*t个平均概率进行标准化处理,以得到n*t个标准概率。
[0362]
可选地,函数值确定子模块具体用于:
[0363]
从n个样本图像中选择一个样本图像,从t个待训练神经网络模型中选择一个待训练神经网络模型,通过b个待训练神经网络模型,按照以下操作确定选择的待训练神经网络模型被用来处理选择的样本图像的平均概率,直至确定出n*t个平均概率为止:
[0364]
通过b个待训练神经网络模型中的每个待训练神经网络模型,确定选择的待训练神经网络模型被用来处理选择的样本图像的概率,以得到b个概率;
[0365]
确定b个概率的平均值,以得到选择的待训练神经网络模型被用来处理选择的样本图像的平均概率。
[0366]
可选地,函数值确定子模块具体用于:
[0367]
从t个概率集合中选择一个概率集合,按照以下操作对选择的概率集合中的每个平均概率进行标准化处理,直至确定出n*t个标准概率为止:
[0368]
确定选择的概率集合中的平均概率的均值和标准差;
[0369]
基于选择的概率集合中的平均概率、均值和标准差,确定选择的概率集合中的每个平均概率对应的标准概率。
[0370]
可选地,函数值确定子模块具体用于:
[0371]
将n*t个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的概率相对值;
[0372]
从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值;
[0373]
从n个样本图像中确定与最大概率相对值对应的样本图像,以及从t个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型;
[0374]
基于最大概率相对值对应的待训练神经网络模型,确定最大概率相对值对应的样本图像的第一权重;
[0375]
从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率;
[0376]
如果移除后标准概率集合非空,则更新模型确定次数,模型确定次数是指从t个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的次数;
[0377]
如果模型确定次数大于或等于n/t,则从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的标准概率,返回确定标准概率集合中每个标准概率对应的概率相对值的步骤。
[0378]
可选地,函数值确定子模块具体用于:
[0379]
如果最大概率相对值对应的待训练神经网络模型为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为
[0380]
如果最大概率相对值对应的待训练神经网络模型不为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为
[0381]
其中,a为设定的实数,满足a≥0,且a≤1。
[0382]
可选地,训练函数值包括n个标签函数值,n个标签函数值与n个样本图像一一对应;
[0383]
函数值确定子模块具体用于:
[0384]
通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率,s个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型;
[0385]
基于n*s个标准概率,确定n个样本图像中每个样本图像对应的标签函数值。
[0386]
可选地,函数值确定子模块具体用于:
[0387]
将n*s个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的概率相对值;
[0388]
从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值;
[0389]
从n个样本图像中确定与最大概率相对值对应的样本图像,以及从s个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型;
[0390]
将最大概率相对值对应的待训练神经网络模型在s个待训练神经网络模型中的位置编号,确定为最大概率相对值对应的样本图像的标签函数值;
[0391]
从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率;
[0392]
如果移除后标准概率集合非空,则更新模型确定次数,模型确定次数是指从s个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的次数;
[0393]
如果模型确定次数大于或等于n/s,则从标准概率集合中移除与最大概率相对值
对应的待训练神经网络模型对应的标准概率,返回确定标准概率集合中每个标准概率对应的概率相对值的步骤。
[0394]
可选地,函数值确定子模块具体用于:
[0395]
从标准概率集合中选择一个标准概率,按照以下操作确定选择的标准概率对应的概率相对值,直至确定出每个标准概率对应的概率相对值为止:
[0396]
从标准概率集合中除选择的标准概率之外的其他标准概率中,确定与选择的标准概率对应同一样本图像的多个标准概率;
[0397]
确定该多个标准概率中的最大标准概率;
[0398]
将选择的标准概率与最大标准概率的差值确定为选择的标准概率对应的概率相对值。
[0399]
可选地,训练函数值包括n个分类损失函数值,n个分类损失函数值与n个样本图像一一对应;
[0400]
函数值确定子模块具体用于:
[0401]
从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的分类损失函数值,直至确定出每个样本图像对应的分类损失函数值为止:
[0402]
通过待训练神经网络模型k,确定s个待训练神经网络模型中每个待训练神经网络模型被用来处理选择的样本图像的概率,以得到s个概率;
[0403]
基于选择的样本图像对应的标签函数值和s个概率,确定选择的样本图像对应的分类损失函数值。
[0404]
可选地,训练函数值包括n个模型选择权重函数值,n个模型选择权重函数值与n个样本图像一一对应;
[0405]
函数值确定子模块具体用于:
[0406]
通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率,s个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型;
[0407]
基于n*s个标准概率,确定n个样本图像中每个样本图像对应的模型选择权重函数值。
[0408]
可选地,函数值确定子模块具体用于:
[0409]
通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的概率,以得到n*s个概率;
[0410]
将n*s个概率中与s个待训练神经网络模型中同一待训练神经网络模型对应的概率划分为一个概率集合,以得到s个概率集合;
[0411]
基于n*s个概率和s个概率集合,对n*s个概率进行标准化处理,以得到n*s个标准概率。
[0412]
可选地,函数值确定子模块具体用于:
[0413]
将n*s个标准概率中与n个样本图像中同一样本图像对应的概率划分为一个概率集合,以得到n个概率集合;
[0414]
确定n个概率集合中每个概率集合包括的标准概率的标准差,以得到n个标准差;
[0415]
对n个标准差中每个标准差进行归一化处理,以得到n个样本图像中每个样本图像对应的模型选择权重函数值。
[0416]
在本技术实施例中,将目标图像输入当前神经网络模型之后,当前神经网络模型不仅能够输出关于目标图像的当前分类结果,还能够确定在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率。并且,在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率越大,这个神经网络模型对目标图像的分类精度就越高,而且通常情况下,最大概率对应的神经网络模型对目标图像的分类精度高于当前神经网络模型对目标图像的分类精度,所以,按照这样的方式进行循环迭代处理之后,能够提高图像分类的精度。也就是说,本技术实施例基于目标图像的性质,能够从该m个神经网络模型中动态地选择部分神经网络模型进行图像分类,无需通过每个神经网络模型都进行图像分类,减少了运算量。而且,由于只选择了部分神经网络模型,所以,只需要将部分神经网络模型的参数读入内存,不需要将所有神经网络模型的参数都读入内存,避免了内存读取耗时的问题。
[0417]
需要说明的是:上述实施例提供的图像分类装置在图像分类时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像分类装置与图像分类方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0418]
图15是本技术实施例提供的一种神经网络模型的训练装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为图1所示的终端或服务器。参见图15,该装置包括:样本获取模块1501、梯度确定模块1502和模型更新模块1503。
[0419]
样本获取模块1501,用于获取n个样本图像和n个样本标签,n个样本标签与n个样本图像一一对应;
[0420]
梯度确定模块1502,用于基于n个样本图像和n个样本标签,确定m个待训练神经网络模型中每个待训练神经网络模型的各个参数的梯度;
[0421]
模型更新模块1503,用于基于m个待训练神经网络模型的各个参数的梯度,对m个待训练神经网络模型进行更新,以得到已训练的m个神经网络模型。
[0422]
可选地,梯度确定模块1502包括:
[0423]
按照以下子模块确定m个待训练神经网络模型中待训练神经网络模型k的各个参数的梯度,直至确定出每个待训练神经网络模型的各个参数的梯度为止:
[0424]
函数值确定子模块,用于基于n个样本图像和n个样本标签,确定待训练神经网络模型k对应的训练函数值;
[0425]
梯度确定子模块,用于基于待训练神经网络模型k对应的训练函数值,确定待训练神经网络模型k的各个参数的梯度。
[0426]
可选地,训练函数值包括n个分类函数值,n个分类函数值与n个样本图像一一对应;
[0427]
函数值确定子模块具体用于:
[0428]
从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的
分类函数值,直至确定出每个样本图像对应的分类函数值为止:
[0429]
将选择的样本图像输入待训练神经网络模型k,以得到待训练神经网络模型k输出的分类结果;
[0430]
基于选择的样本图像对应的样本标签和待训练神经网络模型k输出的分类结果,确定选择的样本图像对应的分类函数值。
[0431]
可选地,训练函数值包括n个权重函数值,n个权重函数值与n个样本图像一一对应;
[0432]
函数值确定子模块具体用于:
[0433]
通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的标准概率,以得到n*t个标准概率,t=m-b,b个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之前允许用来处理n个样本图像的模型,t个待训练神经网络模型包括待训练神经网络模型k,以及m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型;
[0434]
基于n*t个标准概率,确定n个样本图像中每个样本图像对应的第一权重;
[0435]
对n个样本图像中每个样本图像对应的第一权重进行归一化处理,以得到n个样本图像中每个样本图像对应的权重函数值。
[0436]
可选地,函数值确定子模块具体用于:
[0437]
通过b个待训练神经网络模型,确定t个待训练神经网络模型中每个待训练神经网络模型被用来处理n个样本图像中每个样本图像的平均概率,以得到n*t个平均概率;
[0438]
将n*t个平均概率中与t个待训练神经网络模型中同一待训练神经网络模型对应的平均概率划分为一个概率集合,以得到t个概率集合;
[0439]
基于n*t个平均概率和t个概率集合,对n*t个平均概率进行标准化处理,以得到n*t个标准概率。
[0440]
可选地,函数值确定子模块具体用于:
[0441]
从n个样本图像中选择一个样本图像,从t个待训练神经网络模型中选择一个待训练神经网络模型,通过b个待训练神经网络模型,按照以下操作确定选择的待训练神经网络模型被用来处理选择的样本图像的平均概率,直至确定出n*t个平均概率为止:
[0442]
通过b个待训练神经网络模型中的每个待训练神经网络模型,确定选择的待训练神经网络模型被用来处理选择的样本图像的概率,以得到b个概率;
[0443]
确定b概率的平均值,以得到选择的待训练神经网络模型被用来处理选择的样本图像的平均概率。
[0444]
可选地,函数值确定子模块具体用于:
[0445]
从t个概率集合中选择一个概率集合,按照以下操作对选择的概率集合中的每个平均概率进行标准化处理,直至确定出n*t个标准概率为止:
[0446]
确定选择的概率集合中的平均概率的均值和标准差;
[0447]
基于选择的概率集合中的平均概率、均值和标准差,确定选择的概率集合中的每个平均概率对应的标准概率。
[0448]
可选地,函数值确定子模块具体用于:
[0449]
将n*t个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的
概率相对值;
[0450]
从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值;
[0451]
从n个样本图像中确定与最大概率相对值对应的样本图像,以及从t个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型;
[0452]
基于最大概率相对值对应的待训练神经网络模型,确定最大概率相对值对应的样本图像的第一权重;
[0453]
从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率;
[0454]
如果移除后标准概率集合非空,则更新模型确定次数,模型确定次数是指从t个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的次数;
[0455]
如果模型确定次数大于或等于n/t,则从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的标准概率,返回确定标准概率集合中每个标准概率对应的概率相对值的步骤。
[0456]
可选地,函数值确定子模块具体用于:
[0457]
如果最大概率相对值对应的待训练神经网络模型为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为
[0458]
如果最大概率相对值对应的待训练神经网络模型不为待训练神经网络模型k,则将最大概率相对值对应的样本图像的第一权重确定为
[0459]
其中,a为设定的实数,满足a≥0,且a≤1。
[0460]
可选地,训练函数值包括n个标签函数值,n个标签函数值与n个样本图像一一对应;
[0461]
函数值确定子模块具体用于:
[0462]
通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率,s个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型;
[0463]
基于n*s个标准概率,确定n个样本图像中每个样本图像对应的标签函数值。
[0464]
可选地,函数值确定子模块具体用于:
[0465]
将n*s个标准概率构成标准概率集合,确定标准概率集合中每个标准概率对应的概率相对值;
[0466]
从标准概率集合中的标准概率所对应的概率相对值中,确定最大概率相对值;
[0467]
从n个样本图像中确定与最大概率相对值对应的样本图像,以及从s个待训练神经网络模型中确定与最大概率相对值对应的待训练神经网络模型;
[0468]
将最大概率相对值对应的待训练神经网络模型在s个待训练神经网络模型中的位置编号,确定为最大概率相对值对应的样本图像的标签函数值;
[0469]
从标准概率集合中移除与最大概率相对值对应的样本图像对应的标准概率;
[0470]
如果移除后标准概率集合非空,则更新模型确定次数,模型确定次数是指从s个待训练神经网络模型中确定最大概率相对值对应的待训练神经网络模型的次数;
[0471]
如果模型确定次数大于或等于n/s,则从标准概率集合中移除与最大概率相对值对应的待训练神经网络模型对应的标准概率,返回确定标准概率集合中每个标准概率对应的概率相对值的步骤。
[0472]
可选地,函数值确定子模块具体用于:
[0473]
从标准概率集合中选择一个标准概率,按照以下操作确定选择的标准概率对应的概率相对值,直至确定出每个标准概率对应的概率相对值为止:
[0474]
从标准概率集合中除选择的标准概率之外其他的标准概率中,确定与选择的标准概率对应同一样本图像的多个标准概率;
[0475]
确定该多个标准概率中的最大标准概率;
[0476]
将选择的标准概率与最大标准概率的差值确定为选择的标准概率对应的概率相对值。
[0477]
可选地,训练函数值包括n个分类损失函数值,n个分类损失函数值与n个样本图像一一对应;
[0478]
函数值确定子模块具体用于:
[0479]
从n个样本图像中选择一个样本图像,按照以下操作确定选择的样本图像对应的分类损失函数值,直至确定出每个样本图像对应的分类损失函数值为止:
[0480]
通过待训练神经网络模型k,确定s个待训练神经网络模型中每个待训练神经网络模型被用来处理选择的样本图像的概率,以得到s个概率;
[0481]
基于选择的样本图像对应的标签函数值和s个概率,确定选择的样本图像对应的分类损失函数值。
[0482]
可选地,训练函数值包括n个模型选择权重函数值,n个模型选择权重函数值与n个样本图像一一对应;
[0483]
函数值确定子模块具体用于:
[0484]
通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的标准概率,以得到n*s个标准概率,s个待训练神经网络模型为m个待训练神经网络模型中在待训练神经网络模型k之后允许用来处理n个样本图像的模型;
[0485]
基于n*s个标准概率,确定n个样本图像中每个样本图像对应的模型选择权重函数值。
[0486]
可选地,函数值确定子模块具体用于:
[0487]
通过s个待训练神经网络模型中每个待训练神经网络模型,确定n个样本图像中每个样本图像属于对应的样本标签的概率,以得到n*s个概率;
[0488]
将n*s个概率中与s个待训练神经网络模型中同一待训练神经网络模型对应的概率划分为一个概率集合,以得到s个概率集合;
[0489]
基于n*s个概率和s个概率集合,对n*s个概率进行标准化处理,以得到n*s个标准概率。
[0490]
可选地,函数值确定子模块具体用于:
[0491]
将n*s个标准概率中与n个样本图像中同一样本图像对应的概率划分为一个概率集合,以得到n个概率集合;
[0492]
确定n个概率集合中每个概率集合包括的标准概率的标准差,以得到n个标准差;
[0493]
对n个标准差中每个标准差进行归一化处理,以得到n个样本图像中每个样本图像对应的模型选择权重函数值。
[0494]
在本技术实施例中,将目标图像输入当前神经网络模型之后,当前神经网络模型不仅能够输出关于目标图像的当前分类结果,还能够确定在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率。并且,在当前神经网络模型之后允许用来处理目标图像的神经网络模型对应的概率越大,这个神经网络模型对目标图像的分类精度就越高,而且通常情况下,最大概率对应的神经网络模型对目标图像的分类精度高于当前神经网络模型对目标图像的分类精度,所以,按照这样的方式进行循环迭代处理之后,能够提高图像分类的精度。也就是说,本技术实施例基于目标图像的性质,能够从该m个神经网络模型中动态地选择部分神经网络模型进行图像分类,无需通过每个神经网络模型都进行图像分类,减少了运算量。而且,由于只选择了部分神经网络模型,所以,只需要将部分神经网络模型的参数读入内存,不需要将所有神经网络模型的参数都读入内存,避免了内存读取耗时的问题。
[0495]
需要说明的是:上述实施例提供的图像分类装置在图像分类时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像分类装置与图像分类方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0496]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,dvd))或半导体介质(例如:固态硬盘(solid state disk,ssd))等。值得注意的是,本技术实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
[0497]
应当理解的是,本文提及的“多个”是指两个或两个以上。在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术实施例的技术方案,在本技术实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进
行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0498]
以上所述为本技术提供的实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1