双分支多中心的长尾分布识别的方法与流程

专利2022-05-09  50


本发明涉及计算机视觉领域,具体涉及一种双分支多中心的长尾分布识别的方法。



背景技术:

随着深度卷积神经网络的飞速发展,图像分类的效果已经取得了令人惊叹的成果。这一成果和越来越丰富的数据集密不可分。在学术上,大部分数据集的类别标签数量分布几乎都是均匀的,但是,真实世界中的数据却是不均匀的,甚至呈现出长尾分布,即少部分类占据了大部分图片数量,这部分类别称为头部类,而剩下的类别只占有很少的图片数量,这部分类别称为尾部类,具体可查看图1。

现有的比较流行的处理长尾分布的方法包含重采样和重权重。重采样本质是对不同类别的图片采样频率根据样本数量进行反向加权。如果属于当前类的图片数量越多,则赋予当前类的图片的采样概率就越低,相反的情况下,对应的采样概率就越高。重权重则主要体现在分类的损失上,即给头部类的损失更低的权重,给尾部类的损失更高的权重。

上述两种方法,尽管都能得到更好的预测结果,但这些方法仍会产生不良影响,即会在一定程度上损害深度特征的表征能力。现有的一些方法都存在一些缺陷,具体缺陷如下:

1.当不对长尾分布问题采取任何措施的时候,长尾分布就会表现出对头部类的分类效果较好,而对尾部类的效果较差。并且头部类和尾部类的图片数量的最大比例相差越大,模型对尾部类的分类识别效果就会越差。

2.当对长尾分布数据集使用重采样策略时,即降低头部类别的采样概率,增加尾部类别的采样概率。这样虽然能缓解长尾分布带来的问题,但是也会产生另外一个问题。尾部类别图片的采样概率变高,就会改变特征空间数据的分布,影响模型的识别分类效果,具体可查看图4。



技术实现要素:

本发明的目的是提供一种双分支多中心的长尾分布识别的方法,能够通过双分支的架构和多中心的设计来处理长尾分布数据集带来的问题。

本发明解决其技术问题,采用的技术方案是:

双分支多中心的长尾分布识别的方法,其特征在于,包括如下步骤:

步骤1.初始化两个采样器,一个采用默认采样,得到的图片输入默认分支,另外一个使用重采样策略进行采样,得到的图片输入重采样分支;

步骤2.对两个采样器得到的图片分别进行数据增强;

步骤3.将默认分支和重采样分支输出的图片进行数据增强后分别输入各自对应的深度卷积神经网络,提取出两张图片的高维特征表示,再将两张图片的高维特征表示分别在各自对应的深度卷积神经网络的卷积层中进行全局平均池化,得到各自的低维特征表示,其中,两个深度卷积神经网络的卷积层除了最后一个残差块的参数外共享;

步骤4.将默认分支经过卷积层得到的低维特征表示经过全连接层得到属于每个类别的概率,将重采样分支经过卷积层得到的低维特征表示乘以一个表示多中心的矩阵,得到特征矩阵,再对特征矩阵取行最大值,得到最终的属于每个类别的概率;

步骤5.将默认分支和重采样分支得到的属于每个类别的概率经过损失函数分别计算损失;

步骤6.默认分支的损失乘以权重⍺,得到默认分支的损失,重采样分支的损失乘以权重1-⍺,得到重采样分支的损失,⍺是一个从1到0的变量,然后将两个分支得到的损失进行相加,得到最终的损失,然后依据损失对深度卷积神经网络进行反向传播并更新权重;

步骤7.不断地迭代深度卷积神经网络,直到深度卷积神经网络收敛,使得深度卷积神经网络的识别准确率达到90%以上;

步骤8.当需要进行识别任务时,将图片输入重采样分支,并进行数据增强后输入深度卷积神经网络,得到图片属于各个类别的概率。

进一步,步骤1中,所述初始化两个采样器,一个采用默认采样,得到的图片输入默认分支,另外一个使用重采样策略进行采样,得到的图片输入重采样分支,具体是指:默认采样器按照每张图片使用相同的概率进行采样,然后将图片输入默认分支,重采样采样器通过重采样策略,首先对训练数据集进行统计,计算出每个类别所对应的图片数量,通过使用重采样策略,使每个类别的图片的采样概率相同,然后将图片输入重采样分支。

进一步,步骤2中,所述对两个采样器得到的图片分别进行数据增强,包括对图片进行左右翻转和/或随机裁剪和/或随机填充策略操作。

进一步,步骤3中,所述高维特征表示的维度为4096,低维特征表示的维度为64。

进一步,步骤4中,得到的属于每个类别的概率的特征的维度为训练数据集中类别的数量,表示多中心的矩阵的维度为高维特征数、训练集类别数和中心数。

进一步,步骤5具体为:将两个分支得到的属于各个类别的概率分别和对应的图片的标签计算损失,通过损失函数得到两个分支各自的损失。

进一步,步骤5中,将两个分支得到的属于各个类别的概率分别和对应的图片的标签分别经过crossentropy损失函数,得到各自分支的损失,crossentropy损失函数的公式为:

其中,表示crossentropy损失函数的公式,表示总的类别数,表示当前图片属于第i类的概率,表示模型预测出当前图片属于第i类的概率。

本发明的有益效果是,通过上述双分支多中心的长尾分布识别的方法,首先使用了双分支的架构,既使用了默认采样采样器,又使用了重采样采样器,这样就能初步缓解长尾分布带来的影响。本发明中,双分支的优势在于,默认分支学习分布的整体分布,重采样分支对默认分支学习的分布进行微调;其次,在重采样分支使用了多中心分类器架构,这样就能减轻重采样带来的数据分布变化带来的影响。通过实验证明,因为双分支多中心的架构,本发明能在使用重采样的基础上进一步的处理长尾分布带来的影响,带来更好的识别分类效果,并且模型拥有更好的泛化能力。

附图说明

图1为长尾分布以及头部类尾部类解释示意图;

图2为本发明实施例中双分支多中心的长尾分布识别的方法的流程图;

图3为本发明实施例中双分支多中心的结构图;

图4为重采样前对特征空间分布的影响的示意图;

图5为重采样后对特征空间分布的影响的示意图。

具体实施方式

下面结合附图及实施例,详细描述本发明的技术方案。

本发明提出一种双分支多中心的长尾分布识别的方法,该方法包括如下步骤:

步骤1.初始化两个采样器,一个采用默认采样,得到的图片输入默认分支,另外一个使用重采样策略进行采样,得到的图片输入重采样分支;

步骤2.对两个采样器得到的图片分别进行数据增强;

步骤3.将两个分支的图片分别输入各自对应的网络,提取出两张图片的高维特征表示,再将两个分支分别进行全局平均池化,得到各自的低维特征表示,其中,两个网络的卷积层除了最后一个残差块的参数外共享;

步骤4.将默认分支经过卷积层得到的低维特征表示经过全连接层得到属于每个类别的概率,将重采样分支经过卷积层得到的低维特征表示乘以一个表示多中心的矩阵,得到特征矩阵,再对特征矩阵取行最大值,得到最终的属于每个类别的概率;

步骤5.将两个分支得到的属于每个分类类别的向量经过损失函数分别计算损失;

步骤6.将两个损失分别乘以一个特定的权重,即默认分支的权重从1到0,重采样分支的权重从0到1,得到最终的损失,然后依据损失对网络进行反向传播并进行更新;

步骤7.不断地迭代,直到网络收敛;

步骤8.当需要进行识别任务时,将图片输入重采样分支,得到图片属于各个类别的概率。

本发明展示了长尾分布以及头部类尾部类解释,具体见图1,同时,本发明还展示了重采样对特征空间会产生影响,具体见图4-图5,其中包括两个部分,重采样前特征空间、重采样后特征空间。在重采样前,特征空间的分类面能很好的区分头部类,但是不能很好的区分尾部类。因为头部类具有足够数量的样本,具有丰富的特征分布,因此头部类能有很好的分类效果。而尾部类由于图片数量较少,不能完全代表该类的特征分布,因此分类效果较差,容易产生误分类的情况。在重采样后,头部类和尾部类都有了足够量的图片来让模型学习特征分布,因此模型能对头部类和尾部类拥有很好的分类效果。但是重采样会改变原来的特征空间分布,使头部类和尾部类在各自的特征空间更加分散。

实施例

本实施例提供了一种双分支多中心的长尾分布识别的方法,其流程图见图2,其中,本实施例的该方法包括如下步骤:

s1.初始化两个采样器,一个采用默认采样,该采样得到的图片输入默认分支,另外一个使用重采样策略进行采样,该采样得到的图片输入重采样分支。

这里,默认采样器按照每张图片相同的概率进行采样。重采样采样策略,计算出每张图片的采样概率之前,首先需要对训练数据集进行统计,计算出每个类别所对应的图片数量,这里,第i个类别拥有的图片数量为,记拥有最多的图片数量为,所有的类别的图片的总和为n,通过重采样策略,则每个类别的图片的采样概率为,通过这个策略,使每个类别的采样概率相同

s2.对第一步得到的两个样本进行数据增强。

对采样得到的图片进行数据增强,其中,对图片进行数据增强时,包括对图片进行左右翻转和/或随机裁剪策略操作。

s3.将两个分支的图片分别输入各自对应的网络,两个分支的卷积层(除了最后一个残差块)的参数共享。将得到的高维特征分别进行全局平均池化,得到低维的特征表示。

本实施例中,将两个分支各自的图片通过resnet-32卷积层得到一个4096维的一个高维特征表示,这两个分支的卷积层的参数除了最后一个残差块是共享的。其中,resnet-32卷积层见图3,图3中,再对两个分支的高维特征分别进行全局平均池化,得到各自的低维特征表示,该低维特征的维度为64。

s4.将默认分支经过卷积层得到的低维特征经过全连接层得到数每个类别的概率,将重采样分支经过卷积层得到的低维特征乘以多中心的一个矩阵,得到一个多中心的低维矩阵,再将低维特征取最大值,得到最终的属于每个类别的概率。

默认分支中,将得到的64维特征经过全连接层,得到属于每个类别的概率的向量。重采样分支中,将得到的64位特征乘以一个维度为(64,类别数,10)的矩阵,得到一个维度为(类别数,10)的矩阵,再对矩阵进行求行最大值,得到该分支属于每个类别的概率的特征向量。

s5.将两个分支得到的属于每个分类类别的特征分别计算损失。

将两个分支得到的特征向量分别经过crossentropy损失函数,得到各自分支的损失。

crossentropy损失函数的公式为:

其中,表示crossentropy损失函数的公式,表示总的类别数,表示当前图片属于第i类的概率,表示模型预测出当前图片属于第i类的概率。

s6.将两个损失分别乘以一个特定的权重,默认分支的权重从1到0,重采样分支的权重从0到1。

默认分支的损失乘以权重⍺,得到默认分支的损失。重采样分支的损失乘以权重1-⍺,得到重采样分支的损失。然后再将两个损失相加得到最终的损失。

其中,⍺的计算公式为:

其中,e代表当前的迭代轮数,表示预计的最大迭代轮数。

s7.不断地迭代,直到模型收敛得足够好并且具有较好的泛化性。

s8.当需要进行识别任务时,图片就不需要进行数据增强,将图片输入重采样分支,得到图片属于各个类别的概率。

本实施例中,训练好的resnet-32模型在cifar-10数据集上的正确率如下表:

表格中长尾率表示头部类的图片数量与尾部类的图片数量的比值的最大值。从表格中可以看出,本实施例展示了双分支多中心架构在长尾数据任务上的稳定提升,表明了本发明能提升模型的识别效果,并且具有更好的泛化能力。

转载请注明原文地址:https://doc.8miu.com/read-250215.html

最新回复(0)