本发明属于计算机视觉和图像处理技术领域,具体地讲,涉及一种图像分类模型的训练方法以及分类方法和训练装置、计算机可读存储介质、计算机设备。
背景技术:
随着大数据时代的来临,图像识别技术的应用场景也越来越广泛,而损失函数softmaxloss也因为其易于优化、收敛快等特征广泛应用于图像识别的学习网络中。现有的softmaxloss所用的全连接层通常是计算样本与全连接层各个类别向量之间的距离,包括计算余弦距离和计算欧式距离。此时深度学习网络的训练目标就是让样本图像的特征与全连接层标签方向的类别向量距离尽量近,而与全连接层其他方向的类别向量距离尽量远。在训练数据足够的情况下,这种全连接层计算方式与softmaxloss结合可以训练出精度足够高的图像识别模型。
现有技术最大的缺点是对数据的需求极大,在某个图像的数据较少时无法得出该图像有效的信息。例如,某一类的图像数量特别多,那么训练完成的模型对该类图像的识别率较准确,另外一类的图像数量特别少,那么训练完成的模型对该类图像的识别率较低。实际情况中,数据不均衡是客观存在的,因此对于本领域技术人员来说,如何利用不均衡的数据训练得到对各个类别图像的识别率都较高的模型是急需解决的技术问题。
技术实现要素:
(一)本发明所要解决的技术问题
本发明解决的技术问题是:如何提高图像分类模型的识别准确率。
(二)本发明所采用的技术方案
一种图像分类模型的训练方法,所述图像分类模型包括特征提取网络和全连接层,所述训练方法包括:
特征提取网络获取训练样本集的样本特征向量,其中所述训练样本集包括多个不同类样本;
全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量;
获取同类样本的样本特征向量和类别向量之间的第一欧式距离,并获取不同类样本的类别向量之间的第二欧式距离;
根据第一欧式距离和第二欧式距离计算样本损失,并根据样本损失更新图像分类模型的参数。
优选地,全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量的具体方法包括:
根据样本特征向量的特征维度n和训练样本集的类别数目c构建参数矩阵,其中参数矩阵的大小为n*c;
对参数矩阵进行初始化处理,其中初始化处理后的参数矩阵的每一列向量为不同类样本对应的类别向量。
优选地,根据第一欧式距离和第二欧式距离计算样本损失的具体方法为:
根据损失函数公式计算样本损失,其中所述损失函数的公式为:
其中,loss表示样本损失,b为一次运算输入的样本数目,c为训练样本集的类别数目,xi表示第i个样本的样本特征向量,yi表示样本的标签xi,w表示n×c维度的全连接层参数矩阵,wi表示w的第i个列向量即类别向量,n表示特征维度,λ表示可调参数,|xi-wyi|为第一欧式距离,|wyi-wj|为第二欧式距离。
优选地,根据样本损失更新图像分类模型的参数的具体方法包括:
根据样本损失计算样本特征向量和类别向量的梯度;
根据梯度更新所述特征提取网络的参数和所述全连接层的参数矩阵。
本发明还公开了一种图像分类模型的训练装置,所述训练装置包括:
特征提取模块,被配置为利用特征提取网络获取训练样本集的样本特征向量,其中所述训练样本集包括多个不同类样本;
类别特征生成模块,被配置为全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量;
距离计算模块,被配置为获取同类样本的样本特征向量和类别向量之间的第一欧式距离,并获取不同类样本的类别向量之间的第二欧式距离;
更新模块,被配置为根据第一欧式距离和第二欧式距离计算样本损失,并根据样本损失更新图像分类模型的参数。
优选地,所述类别特征生成模块包括:
矩阵构建模块,被配置为根据样本特征向量的特征维度n和训练样本集的类别数目c构建参数矩阵,其中参数矩阵的大小为n*c;
初始化模块,被配置为对参数矩阵进行初始化处理,其中初始化处理后的参数矩阵的每一列向量为不同类样本对应的类别向量。
优选地,所述更新模块包括:
损失函数计算子模块,被配置为根据损失函数公式计算样本损失,其中所述损失函数的公式为:
其中,loss表示样本损失,b为一次运算输入的样本数目,c为训练样本集的类别数目,xi表示第i个样本的样本特征向量,yi表示样本的标签xi,w表示n×c维度的全连接层参数矩阵,wi表示w的第i个列向量即类别向量,n表示特征维度,λ表示可调参数,|xi-wyi|为第一欧式距离,|wyi-wj|为第二欧式距离。
优选地,所述更新模块还包括:
参数更新子模块,被配置为根据样本损失计算样本特征向量和类别向量的梯度,并根据梯度更新所述特征提取网络的参数和所述全连接层的参数矩阵。
本发明还公开了一种图像分类模型的分类方法,所述分类方法包括:
将待分类样本和已知样本分布输入至由上述的训练方法训练得到的图像分类模型中,特征提取网络分布输出待分类样本的样本特征向量和已知样本的样本特征向量;
计算待分类样本的样本特征向量和已知样本的样本特征向量之间的欧式距离;
判断所述欧式距离是否大于阈值,若所述欧式距离大于阈值,则待分类样本与已知样本不属于同一类别,若所述欧式距离小于或等于阈值,则待分类样本与已知样本属于同一类别。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有图像分类模型的训练程序,所述图像分类模型的训练程序被处理器执行时实现上述的图像分类模型的训练方法。
(三)有益效果
本发明公开的图像分类模型的分类方法,通过通过计算同类样本的样本特征向量和类别向量之间的第一欧式距离和计算不同类样本的类别向量之间的第二欧式距离,以使得同类样本之间更加靠近,不同类样本之间更加靠近,同时本申请在训练过程每个类别所需求的数据量少,每个类别的区分度更高,从而提高了模型的识别准确率。
附图说明
图1为发明的实施例一的图像分类模型的训练方法的流程图;
图2a为发明的实施例一的现有分类模型的实验结果图;
图2b为发明的实施例一的图像分类模型的实验结果图;
图3为发明的实施例二的图像分类模型的分类方法的流程图;
图4为发明的实施例五的计算机设备原理框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
由于现有技术中全连接层的softmaxloss(损失函数)对样本数量依赖较大,当某类样本中的数据较少时,模型无法得出针对此类样本的最佳全连接层类别训练,即不能对此类样本进行准确分类。本申请的技术方案的主要构思是利用其他样本的类别向量来训练每个样本的类别向量,以此来增大类别向量之间的距离,其作用类似与增大类间距离,同时使用一个中心损失来减少类内距离,这样训练得到模型既能准确识别数据较多的样本,也能准确识别数据较少的样本。
如图1所示,本申请的图像分类模型包括特征提取网络和全连接层,根据本发明的实施例1的图像分类模型的训练方法包括如下步骤:
步骤s10:利用特征提取网络获取训练样本集的样本特征向量,其中所述训练样本集包括多个不同类的样本。
具体来说,特征提取网络优选为卷积神经网络。其中,需要事先准备好针对目标人群的训练样本集,该训练样本集包括多个不同种类的样本,且每个种类的样本数据均不同。训练样本集可以是图像识别领域常用的数据集,例如手写数字数据集,也可以是某一段时间内的机场监控设备拍摄的照片集等等,需要说明的是训练样本集的样本都是带标签的样本,即本申请采用监督学习方式。
进一步地,卷积神经网络包括若干卷积层、池化层和激活层,利用卷积神经网络提取每个样本的样本特征向量,具体的提取过程为现有技术,本领域技术人员可以熟知,在此不进行赘述。
步骤s20:全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量。
具体来说,该步骤s20包括如下步骤:
步骤s21:根据样本特征向量的特征维度n和训练样本集的类别数目c构建参数矩阵,其中参数矩阵的大小为n*c,即参数矩阵为n行c列的矩阵。
步骤s22:对参数矩阵进行初始化处理,其中初始化处理后的参数矩阵的每一列向量为不同类样本对应的类别向量。其中,采用随机初始化参数矩阵,这样形成了不同的类别向量,例如训练样本集的样本种类为10种,即类别数目为10,这样对应有10个类别向量。初始化生成的类别向量不足以指示类别的方向,要经过训练要调整类别向量。
步骤s30:获取同类样本的样本特征向量和类别向量之间的第一欧式距离,并获取不同类样本的类别向量之间的第二欧式距离。
具体来说,传统的全连接层计算的是每个样本的样本特征向量与所有其他样本的类别向量之间的余弦距离或欧式距离,一方面是通过计算每个样本特征向量与其对应的类别向量之间的距离,使得同类样本之间更加靠近;另一方面是通过计算每个样本特征向量与其他样本的类别向量之间的距离,使得不同类样本之间更加远离。这种计算方式的缺点就是在样本数量较少的情况下,每个样本特征向量与其他样本的类别向量之间的距离的数据较少,会导致类别向量所得到的训练不充分,最后形成的类别向量不能有效地指示类别方向,使得不同样本之间不能有效地分开。为此,本申请进行了改进,一方面是通过计算每个样本特征向量与其对应的类别向量之间的距离,即第一欧式距离,使得同类样本之间更加靠近;另一方面是通过计算每个样本的类别向量与其他样本的类别向量之间的距离,即第二欧式距离,以在后续训练过程中增大类别向量之间的距离,使得不同样本之间能有效分开。
示例性地,为了便于理解本申请的方案与现有技术的不同之处,下面通过简单示例来说明上述计算过程。第一类样本有4个,样本特征向量分别是x11、x12、x13和x14,其对应的类别向量为w1;第二类样本有8个,样本特征向量分别是x21、x22……x28,其对应的类别向量为w2;第三类样本有12个,样本特征向量分别是x31、x32……x312,其对应的类别向量为w3。按照传统计算方法,每个样本特征向量与其对应的类别向量之间的距离为∣x11-w1∣,∣x12–w1∣,∣x13–w1∣,∣x21–w2∣……∣x312–w3∣;每个样本特征向量与其他样本的类别向量之间的距离为∣x11–w2∣,∣x12–w2∣,∣x13–w2∣,∣x11–w3∣,∣x11–w3∣,……∣x28–w1∣,……∣x312–w2∣,其中每个样本特征向量与其他样本的类别向量之间的距离的数据总共有48组。按照本申请的计算方法,每个样本特征向量与其对应的类别向量之间的距离为∣x11-w1∣,∣x12–w1∣,∣x13–w1∣,∣x21–w2∣……∣x312–w3∣;每个样本的类别向量与其他样本的类别向量之间的距离为∣w1–w2∣……∣w3–w1∣,其中每个样本特征向量与其对应的类别向量之间的距离的数据总共有48组,有些数据是在一次训练过程中反复使用的。
步骤s40:根据第一欧式距离和第二欧式距离计算样本损失,并根据样本损失更新图像分类模型的参数。
具体地,根据损失函数公式来计算样本损失,其中所述损失函数的公式为:
其中,loss表示样本损失,b为一次运算输入的样本数目,c为所有训练数据的类别数目,xi表示第i个样本,yi表示样本的标签xi,w表示n×c维度的全连接层参数矩阵,wi表示w的第i个列向量即类别向量,n表示特征维度,λ表示可调参数,
进一步需要说明的是,
进一步地,根据样本损失计算样本特征向量和类别向量的梯度,即分别对损失函数中的样本特征向量x和类别向量w求偏导数。根据梯度,并利用反向传播原理更新所述特征提取网络的参数和所述全连接层的参数矩阵。需要说明的是,具体更新过程与现有更新过程相同,本领域技术人员容易获知,在此不进行赘述。全连接层在训练过程中不断增大不同类别向量之间的距离,同时减少样本与同类别的类别向量之间的距离,最终达到同类样本互相汇聚、异类样本互相远离的目的。通过不断对网络进行循环迭代训练使损失函数不断减小,直到完成特定的迭代次数,并将图像分类模型保存下来。
本申请公开的一种图像分类模型的训练方法,通过计算同类样本的样本特征向量和类别向量之间的第一欧式距离和计算不同类样本的类别向量之间的第二欧式距离,以使得同类样本之间更加靠近,不同类样本之间更加靠近,同时本申请在训练过程每个类别所需求的数据量少,每个类别的区分度更高,相对于传统的训练方法,本申请训练得到的分类模型对小样本图像的识别率也较高。
为了证明本申请训练的图像分类模型相对于现有分类模型具有更准确的识别率,采用手写数字数据集分别对本申请的图像分类模型和现有分类模型进行测试。如图2a所示,不同形状的符号代表不同类别的样本,其中空心形状代表样本特征向量,实心形状代表类别向量。采用现有分类模型进行分类时,同一种类的样本特征向量与类别向量之间的距离较远,且不同种类的类别向量之间的距离较近,这表明分类效果不理想,同时也说明对数量较少的样本分类不够准确。如图2b所示,采用本申请的分类模型进行分类时,同一种类的样本特征向量与类别向量之间的距离较近,且不同种类的类别向量之间的距离较远,表明分类效果较好,且无论是针对数据较多的样本还是针对数据较少的样本都能准确地分类。实际测验结果表明,本申请的图像分类模型相对于现有分类模型的分类错误率下降了4个百分点。
实施例二
如图3所示,本发明还公开了一种图像分类模型的分类方法,该分类方法包括如下步骤:
步骤s100:将待分类样本和已知样本分布输入至由实施例一的训练方法训练得到的图像分类模型中,特征提取网络分布输出待分类样本的样本特征向量和已知样本的样本特征向量;
步骤s200:计算待分类样本的样本特征向量和已知样本的样本特征向量之间的欧式距离;
步骤s300:判断所述欧式距离是否大于阈值,若所述欧式距离大于阈值,则待分类样本与已知样本不属于同一类别,若所述欧式距离小于或等于阈值,则待分类样本与已知样本属于同一类别。其中,阈值的大小可根据经验自行设置。
实施例三
本发明还提供了一种图像分类模型的训练装置,该训练装置包括:
特征提取模块,被配置为利用特征提取网络获取训练样本集的样本特征向量,其中所述训练样本集包括多个不同类样本;
类别特征生成模块,被配置为全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量;
距离计算模块,被配置为获取同类样本的样本特征向量和类别向量之间的第一欧式距离,并获取不同类样本的类别向量之间的第二欧式距离;
更新模块,被配置为根据第一欧式距离和第二欧式距离计算样本损失,并根据样本损失更新图像分类模型的参数。
进一步地,所述类别特征生成模块包括:
矩阵构建模块,被配置为根据样本特征向量的特征维度n和训练样本集的类别数目c构建参数矩阵,其中参数矩阵的大小为n*c;
初始化模块,被配置为对参数矩阵进行初始化处理,其中初始化处理后的参数矩阵的每一列向量为不同类样本对应的类别向量。
进一步地,所述更新模块包括:
损失函数计算子模块,被配置为根据损失函数公式计算样本损失;
参数更新子模块,被配置为根据样本损失计算样本特征向量和类别向量的梯度,并根据梯度更新所述特征提取网络的参数和所述全连接层的参数矩阵。
其中,特征提取模块提取样本特征向量具体过程可参照实施例一的描述,类别特征生成模块生成类别向量的具体过程可参照实施例一的描述,在此不进行赘述。
进一步地,损失函数计算子模块和参数更新子模块相关计算过程可参照实施例一的描述,在此不进行赘述。
实施例四
本发明还公开了一种计算机可读存储介质,计算机可读存储介质存储有图像分类模型的训练程序,所述图像分类模型的训练程序被处理器执行时实现如实施例一中的图像分类模型的训练方法。
实施例五
本申请还公开了一种计算机设备,在硬件层面,如图4所示,该终端包括处理器12、内部总线13、网络接口14、计算机可读存储介质11。处理器12从计算机可读存储介质中读取对应的计算机程序然后运行,在逻辑层面上形成请求处理装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。所述计算机可读存储介质11上存储有图像分类模型的训练程序,所述图像分类模型的训练程序被处理器执行时实现上述的图像分类模型的训练方法。
计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上面对本发明的具体实施方式进行了详细描述,虽然已表示和描述了一些实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改和完善,这些修改和完善也应在本发明的保护范围内。
1.一种图像分类模型的训练方法,其特征在于,所述图像分类模型包括特征提取网络和全连接层,所述训练方法包括:
特征提取网络获取训练样本集的样本特征向量,其中所述训练样本集包括多个不同类样本;
全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量;
获取同类样本的样本特征向量和类别向量之间的第一欧式距离,并获取不同类样本的类别向量之间的第二欧式距离;
根据第一欧式距离和第二欧式距离计算样本损失,并根据样本损失更新图像分类模型的参数。
2.根据权利要求1所述的图像分类模型的训练方法,其特征在于,全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量的具体方法包括:
根据样本特征向量的特征维度n和训练样本集的类别数目c构建参数矩阵,其中参数矩阵的大小为n*c;
对参数矩阵进行初始化处理,其中初始化处理后的参数矩阵的每一列向量为不同类样本对应的类别向量。
3.根据权利要求2所述的图像分类模型的训练方法,其特征在于,根据第一欧式距离和第二欧式距离计算样本损失的具体方法为:
根据损失函数公式计算样本损失,其中所述损失函数的公式为:
其中,loss表示样本损失,b为一次运算输入的样本数目,c为训练样本集的类别数目,xi表示第i个样本的样本特征向量,yi表示样本的标签xi,w表示n×c维度的全连接层参数矩阵,wi表示w的第i个列向量即类别向量,n表示特征维度,λ表示可调参数,
4.根据权利要求3所述的图像分类模型的训练方法,其特征在于,根据样本损失更新图像分类模型的参数的具体方法包括:
根据样本损失计算样本特征向量和类别向量的梯度;
根据梯度更新所述特征提取网络的参数和所述全连接层的参数矩阵。
5.一种图像分类模型的训练装置,其特征在于,所述训练装置包括:
特征提取模块,被配置为利用特征提取网络获取训练样本集的样本特征向量,其中所述训练样本集包括多个不同类样本;
类别特征生成模块,被配置为全连接层根据样本特征向量的特征维度n和训练样本集的类别数目c生成与每一类样本一一对应的类别向量;
距离计算模块,被配置为获取同类样本的样本特征向量和类别向量之间的第一欧式距离,并获取不同类样本的类别向量之间的第二欧式距离;
更新模块,被配置为根据第一欧式距离和第二欧式距离计算样本损失,并根据样本损失更新图像分类模型的参数。
6.根据权利要求5所述的图像分类模型的训练装置,其特征在于,所述类别特征生成模块包括:
矩阵构建模块,被配置为根据样本特征向量的特征维度n和训练样本集的类别数目c构建参数矩阵,其中参数矩阵的大小为n*c;
初始化模块,被配置为对参数矩阵进行初始化处理,其中初始化处理后的参数矩阵的每一列向量为不同类样本对应的类别向量。
7.根据权利要求6所述的图像分类模型的训练装置,其特征在于,所述更新模块包括:
损失函数计算子模块,被配置为根据损失函数公式计算样本损失,其中所述损失函数的公式为:
其中,loss表示样本损失,b为一次运算输入的样本数目,c为训练样本集的类别数目,xi表示第i个样本的样本特征向量,yi表示样本的标签xi,w表示n×c维度的全连接层参数矩阵,wi表示w的第i个列向量即类别向量,n表示特征维度,λ表示可调参数,
8.根据权利要求7所述的图像分类模型的训练装置,其特征在于,所述更新模块还包括:
参数更新子模块,被配置为根据样本损失计算样本特征向量和类别向量的梯度,并根据梯度更新所述特征提取网络的参数和所述全连接层的参数矩阵。
9.一种图像分类模型的分类方法,其特征在于,所述分类方法包括:
将待分类样本和已知样本分布输入至由权利要求1至4任一项所述的训练方法训练得到的图像分类模型中,特征提取网络分布输出待分类样本的样本特征向量和已知样本的样本特征向量;
计算待分类样本的样本特征向量和已知样本的样本特征向量之间的欧式距离;
判断所述欧式距离是否大于阈值,若所述欧式距离大于阈值,则待分类样本与已知样本不属于同一类别,若所述欧式距离小于或等于阈值,则待分类样本与已知样本属于同一类别。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有图像分类模型的训练程序,所述图像分类模型的训练程序被处理器执行时实现如权利要求1至4任一项所述的图像分类模型的训练方法。
技术总结