1.本发明涉及深度学习技术领域,具体提供一种数据采样方法、设备和存储介质。
背景技术:2.现实生活中的数据分布经常出现不平衡的现象,某些类别含有大量的样本,而其他类别含有少量样本,比如图像数据集或文本数据集。在不平衡分布数据集上使用传统的分类方法容易导致模型对少数类样本识别不足,从而使分类结果偏向于多数类样本。通常可以通过数据采样的方法对不平衡分布数据集进行均衡。
3.相关技术中,常用的数据采样方法包括在线采样方法和离线采样方法。在线采样方法可以基于focal loss,ohem loss等损失函数得到各样本的输出概率,然后基于各样本的输出概率对样本进行加权,并按照样本的权重进行采样。离线采样方法按照不同类别的样本进行单属性直方图统计,并分析确定每个类别的样本的权重,按照每个类别的样本的权重进行采样。
4.然而,无论是在线采样,还是离线采样,只能针对单一度量信息对应的样本的权重进行采样,而单一度量信息可能会导致所采样的样本与实际需求不相符,造成数据平衡效果较差,影响模型训练效率。
技术实现要素:5.为了克服上述缺陷,提出了本发明,以提供解决或至少部分地解决因单一度量信息可能会导致所采样的样本与实际需求不相符,造成数据平衡效果较差,影响模型训练效率的技术问题的数据采样方法、设备和存储介质。
6.在第一方面,本发明提供一种数据采样方法,包括:
7.获取不同度量信息下每个度量组内的样本数;
8.根据总样本数、每个度量组内的样本数和预设的数据平衡参数,确定每个训练样本在每种度量信息下的单样本概率;
9.对每个训练样本的所有单样本概率进行聚合,得到每个训练样本的最终单样本概率;
10.基于所述最终单样本概率,从所有训练样本中进行采样,得到采样结果。
11.进一步地,上述所述的数据采样方法中,所述数据平衡参数包括每种度量信息下每个度量组的整体采样率;
12.根据总样本数、每个度量组内的样本数和预设的数据平衡参数,确定每个训练样本在每种度量信息下的单样本概率,包括:
13.根据总训练样本数、每个度量组内的样本数和所述度量组的整体采样率,确定每个度量组的采样比;
14.根据每个度量组的采样比和所述总训练样本数,确定每个训练样本在每种度量信息下的单样本概率。
15.进一步地,上述所述的数据采样方法中,所述数据平衡参数还包括每个度量组的最小采样比和每个度量组的最大采样比;
16.根据总训练样本数、每个度量组内的样本数和所述度量组的整体采样率,确定每个度量组的采样比之前,还包括:
17.若每个度量组的采样比小于所述每个度量组的最小采样比,将所述每个度量组的最小采样作为每个度量组的采样比;
18.若每个度量组的采样比大于所述每个度量组的最大采样比,将所述每个度量组的最大采样作为每个度量组的采样比。
19.进一步地,上述所述的数据采样方法中,所述度量信息包括损失度量信息;
20.所述数据平衡参数包括离群阈值和所述损失度量信息下每个度量组的整体采样率;
21.根据总样本数、每个度量组内的样本数和预设的数据平衡参数,确定每个训练样本在每种度量信息下的单样本概率,包括:
22.将第一度量组集合中度量组的训练样本的单样本概率设置为预设概率值;其中,所述第一度量组集合中的度量组为样本数小于所述离群阈值的度量组;
23.根据总训练样本数、第二度量组集合中度量组的样本数和第二度量组集合中度量组的整体采样率,确定第二度量组集合中度量组的采样比,以及,根据第二度量组集合中度量组的采样比和所述总训练样本数,确定第二度量组集合中度量组的训练样本在损失度量信息下的单样本概率;其中,所述第二度量组集合中的度量组为样本数大于所述离群阈值的度量组。
24.进一步地,上述所述的数据采样方法中,对每个训练样本的所有单样本概率进行聚合,得到每个训练样本的最终单样本概率之前,还包括:
25.若至少存在一个单样本概率为所述预设概率值,将所述预设概率值作为所述最终单样本概率;
26.对每个训练样本的所有单样本概率进行聚合,得到每个训练样本的最终单样本概率,包括:
27.若所有单样本概率均不为所述预设概率值,按照如下聚合方式对所有的单样本概率进行聚合,得到训练样本的最终单样本概率;
28.所述聚合方式包括:
29.取所有的单样本概率中的最小值作为训练样本的最终单样本概率;或者
30.取所有的单样本概率中的最大值作为训练样本的最终单样本概率;或者
31.取所有的单样本概率的平均值作为训练样本的最终单样本概率。
32.进一步地,上述所述的数据采样方法中,每种度量信息下每个度量组的整体采样率根据相同的目标分布函数确定,或者,根据不同的目标分布函数确定。
33.进一步地,上述所述的数据采样方法中,基于所述最终单样本概率,对训练样本进行采样,得到采样结果,包括:
34.若采样方式为线上采样,基于所述最终单样本概率,从所有训练样本中进行离散分布采样,得到采样结果;
35.若采样方式为离线采样,基于所述最终单样本概率和目标采样样本总数,确定训
练样本的采样次数,并基于所述采样次数,从所有训练样本中进行采样,得到采样结果。
36.进一步地,上述所述的数据采样方法中,获取不同度量信息下每个度量组内的样本数,包括:
37.根据不同度量信息下的预设组数和预设度量范围,生成不同度量信息的直方图;
38.基于不同度量信息下的直方图,获取不同度量信息下每个度量组内的样本数。
39.在第二方面,本发明提供一种数据采样设备,包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述任一项所述的数据采样方法。
40.在第三方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述任一项技术方案所述的数据采样方法。
41.本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:
42.在实施本发明的技术方案中,通过获取不同度量信息下每个度量组内的样本数;根据总样本数、每个度量组内的样本数和预设的数据平衡参数,确定每个训练样本在每种度量信息下的单样本概率;对每个训练样本的所有单样本概率进行聚合,得到每个训练样本的最终单样本概率,基于所述最终单样本概率,从所有训练样本中进行采样,得到采样结果。实现了综合不同的度量信息得到每个训练样本的最终单样本概率后再进行采样,这样,所采样的样本与实际需求更加相符,提高了数据平衡效果,提高了模型训练效率。
附图说明
43.参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本发明的保护范围组成限制。此外,图中类似的数字用以表示类似的部件,其中:
44.图1是根据本发明的一个实施例的数据采样方法的主要步骤流程示意图;
45.图2是采用本发明的数据采样方法和未采用本发明的数据采样方法时训练样本的单样本概率对比示意图;
46.图3是根据本发明的一个实施例的数据采样设备的主要结构框图。
具体实施方式
47.下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
48.在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“a和/或b”表示所有可能的a与b的组合,比如只是a、只是b或者a和b。术语“至少一个a或b”或者“a和b中的至少一个”含义与“a和/或b”类似,可以包括只是a、
只是b或者a和b。单数形式的术语“一个”、“这个”也可以包含复数形式。
49.通常情况下,可以通过数据采样的方法对不平衡分布数据集进行均衡。常用的数据采样方法包括在线采样方法和离线采样方法。在线采样方法可以基于focal loss,ohem loss等损失函数得到各样本的输出概率,然后基于各样本的输出概率对样本进行加权,并按照样本的权重进行采样。离线采样方法按照不同类别的样本进行单属性直方图统计,并分析确定每个类别的样本的权重,按照每个类别的样本的权重进行采样。
50.然而,无论是在线采样,还是离线采样,只能针对单一度量信息对应的样本的权重进行采样,而单一度量信息可能会导致所采样的样本与实际需求不相符,造成数据平衡效果较差,影响模型训练效率。
51.因此,为了解决上述技术问题,本发明提供了以下技术方案。
52.参阅附图1,图1是根据本发明的一个实施例的数据采样方法的主要步骤流程示意图。如图1所示,本发明实施例中的数据采样方法主要包括下列步骤101-步骤104。
53.步骤101、获取不同度量信息下每个度量组内的样本数;
54.在一个具体实现过程中,可以根据不同度量信息下的预设组数和预设度量范围,生成不同度量信息的直方图;基于不同度量信息下的直方图,获取不同度量信息下每个度量组内的样本数。
55.例如,该度量信息若为类别,其对应的度量组可以为行人、机动车、自行车等,然后分别得到行人的样本数、机动车的样本数、自行车的样本数。该度量信息若为时间,其对应的度量组可以上午、中午、下午等,然后分别得到上午的样本数、中午的样本数、下午的样本数。该度量信息若为损失值,其对应的度量组可以不同的损失值区间,可以得到不同损失值区间的样本数。
56.步骤102、根据总样本数、每个度量组内的样本数和预设的数据平衡参数,确定每个训练样本在每种度量信息下的单样本概率;
57.在一个具体实现过程中,所述数据平衡参数可以包括每种度量信息下每个度量组的整体采样率,其中,每种度量信息下每个度量组的整体采样率可以是均匀的,也可以是非均匀的。且每种度量信息下每个度量组的整体采样率可以根据相同的目标分布函数确定,也可以根据不同的目标分布函数确定,以便针对某些度量信息的样本进行训练。
58.在一个具体实现过程中,可以根据总训练样本数、每个度量组内的样本数和所述度量组的整体采样率,确定每个度量组的采样比;根据每个度量组的采样比和所述总训练样本数,确定每个训练样本在每种度量信息下的单样本概率。
59.具体地,以每种度量信息下每个度量组的整体采样率可以是均匀的为例对本发明的技术方案进行描述。假设有4个度量组,则每个度量组的整体采样率为0.25,假设其中一个度量组内的样本数10,总训练样本数为20,则该度量组下的采样比为0.25/(10/20)=0.5,每个训练样本在该度量组下的单样本概率为0.5/20=0.025。
60.需要说明的是,如果每个训练样本在每种度量信息下的单样本概率过小,则在采样时被采样的次数可能过低,如果每个训练样本在每种度量信息下的单样本概率过大,则在采样时被采样的次数可能过高,这样,均会影响数据平衡效果,因此,还可以设置每个度量组的最小采样比和每个度量组的最大采样比作为数据平衡参数,这样,若每个度量组的采样比小于所述每个度量组的最小采样比,将所述每个度量组的最小采样作为每个度量组
的采样比;若每个度量组的采样比大于所述每个度量组的最大采样比,将所述每个度量组的最大采样作为每个度量组的采样比。
61.在一个具体实现过程中,所述度量信息可以包括损失度量信息,若该损失度量信息对应的损失值较大,说明该样本可能是错误的样本,其会影响模型训练效率,因此,在实际采样过程中是不需要对该样本进行采样的,为了防止这类样本被采样,可以设置离群阈值作为数据平衡参数。然后将样本数小于所述离群阈值的度量组划分到一起,称为第一度量组集合,将样本数大于所述离群阈值的度量组划分到一起,称为第二度量组集合。
62.在一个具体实现过程中,可以将第一度量组集合中度量组的训练样本的单样本概率设置为预设概率值,将第一度量组集合中度量组的训练样本进行清除。其中,该预设概率值可以为0。
63.对于第二度量组集合,可以根据总训练样本数、第二度量组集合中度量组的样本数和第二度量组集合中度量组的整体采样率,确定第二度量组集合中度量组的采样比,以及,根据第二度量组集合中度量组的采样比和所述总训练样本数,确定第二度量组集合中度量组的训练样本在损失度量信息下的单样本概率。
64.需要说明的是,若确定第二度量组集合中度量组的采样比小于所述每个度量组的最小采样比,将所述每个度量组的最小采样作为确定第二度量组集合中度量组的采样比;若确定第二度量组集合中度量组的采样比比大于所述每个度量组的最大采样比,将所述每个度量组的最大采样作为确定第二度量组集合中度量组的采样比。
65.步骤103、对每个训练样本的所有单样本概率进行聚合,得到每个训练样本的最终单样本概率;
66.在一个具体实现过程中,可以按照如下聚合方式对所有的单样本概率进行聚合,得到训练样本的最终单样本概率。
67.其中,所述聚合方式包括:
68.取所有的单样本概率中的最小值作为训练样本的最终单样本概率;或者
69.取所有的单样本概率中的最大值作为训练样本的最终单样本概率;或者
70.取所有的单样本概率的平均值作为训练样本的最终单样本概率。
71.需要说明的是,若所述度量信息包括损失度量信息,则只有每个训练样本的所有单样本概率均不为所述预设概率值时,可以按照如上聚合方式进行聚合,而若每个训练样本至少存在一个单样本概率为所述预设概率值,将所述预设概率值作为所述最终单样本概率,不再进行聚合。
72.步骤104、基于所述最终单样本概率,从所有训练样本中进行采样,得到采样结果。
73.在一个具体实现过程中,若采样方式为线上采样,基于所述最终单样本概率,从所有训练样本中进行离散分布采样,得到采样结果,这样,在采样时,无需遍历所有的训练样本,仅根据离散分布的概率,确定是否接收某一训练样本即可。其中,详细的采样过程,可以参考现有相关技术,在此不再赘述。
74.在一个具体实现过程中,若采样方式为离线采样,基于所述最终单样本概率和目标采样样本总数,确定训练样本的采样次数,并基于所述采样次数,从所有训练样本中进行采样,得到采样结果。
75.具体地,可以用目标采样样本总数乘以最终单样本概率得到的数值向上取整后,
记为训练样本的采样次数,这样,可以保证每个训练样本均能够被采样。然后基于所述采样次数,从所有训练样本中进行采样,得到采样结果即可。例如,目标采样样本总数为100,某个训练样本的最终单样本概率为0.2,则该训练样本的采样次数为20,这样,对该训练样本采样20次即可,当采集到100的样本后,进行洗牌即可得到最终的采样结果。
76.本实施例的数据采样方法,通过获取不同度量信息下每个度量组内的样本数;根据总样本数、每个度量组内的样本数和预设的数据平衡参数,确定每个训练样本在每种度量信息下的单样本概率;对每个训练样本的所有单样本概率进行聚合,得到每个训练样本的最终单样本概率,基于所述最终单样本概率,从所有训练样本中进行采样,得到采样结果。实现了综合不同的度量信息得到每个训练样本的最终单样本概率后再进行采样,这样,所采样的样本与实际需求更加相符,提高了数据平衡效果,提高了模型训练效率。
77.在一个具体实现过程中,以度量信息包括rpn损失度量信息,rcnn损失度量信息和depth损失度量信息为例对本发明的实现过程和所达到的技术效果进行说明。
78.第一步、训练一个3d单目目标检测模型时,利用训练样本迭代训练n轮后,可以读取到每个训练样本的rpn损失值,rcnn损失值和depth损失值;
79.第二步、可以根据直方图计算每种损失度量信息下每个训练样本的最终单样本概率,计算过程如下:
80.(1)输入:损失值,组数(n_bin),每个度量组的整体采样率,每个度量组的最小采样比、每个度量组的最大采样比和离群阈值;
81.(2)对损失值计算组数为n_bin的直方图,取得每个度量组的样本数及区间;
82.(3)根据总训练样本数、每个度量组内的样本数和所述度量组的整体采样率,确定每个度量组的采样比;
83.(4)若每个度量组的采样比小于所述每个度量组的最小采样比,将所述每个度量组的最小采样作为每个度量组的采样比;若每个度量组的采样比大于所述每个度量组的最大采样比,将所述每个度量组的最大采样作为每个度量组的采样比;
84.(5)根据每个度量组的采样比和所述总训练样本数,确定每个训练样本在每种度量信息下的单样本概率;
85.(6)将样本数小于所述离群阈值的度量组中的训练样本的单样本概率设置为0。
86.需要说明的是,步骤(6)也可以在步骤(3)之前完成,这样,后续可以只对样本数小于所述离群阈值的度量组中的训练样本的单样本概率进行计算即可。
87.在一个具体实现过程中,对rpn损失度量信息,rcnn损失度量信息采取了相同的目标分布函数得到每个度量组的整体采样率,对depth损失度量信息采取了其他目标分布函数得到每个度量组的整体采样率,以便让模型更侧重于对depth损失值较大的样本的训练。depth损失度量信息对应的目标分布函数可以使用但不限制于numpy库函数。
88.第三步、对返回的3个单样本概率直接取均值作为最终单样本概率。
89.需要说明的是,若对某个样本,对应3个单样本概率中至少一个单样本概率为0,则说明该样本为离群样本,可以直接将该样本的单样本概率置0,不进行均值运算。
90.图2是采用本发明的数据采样方法和未采用本发明的数据采样方法时训练样本的单样本概率对比示意图。如图2所示,横坐标可以为rpn损失值,也可以为其他损失值,纵坐标为训练样本的单样本概率,未采用本发明的数据采样方法时训练样本的单样本概率如标
号a所示,采用本发明的数据采样方法时训练样本的单样本概率如标号b所示,由图2可知,采用本发明的数据采样方法后,可以将相同rpn损失值下训练样本的单样本概率由较大值变为较小值,训练样本的单样本概率由较小值变为较大值,使得均衡后的训练样本的单样本概率更加均衡,这样最终可以保证每个训练样本被采样的概率差距缩小,采样后的数据更加均衡。
91.第四步、设定目标采样样本总数,计算训练样本的采样次数,并基于所述采样次数,从所有训练样本中进行采样,得到采样结果。
92.基于上述方法,在连续帧评测集上训练200轮的评测结果相比于基准线涨了约5%,并在只训练50轮时相比基准线涨了10%-20%,说明使用本技术的数据采样方法,模型不仅能更快收敛,还能最终获得更好的训练结果。
93.需要指出的是,尽管上述实施例中将各个步骤按照特定的先后顺序进行了描述,但是本领域技术人员可以理解,为了实现本发明的效果,不同的步骤之间并非必须按照这样的顺序执行,其可以同时(并行)执行或以其他顺序执行,这些变化都在本发明的保护范围之内。
94.本领域技术人员能够理解的是,本发明实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
95.进一步,本发明还提供了一种数据采样设备。
96.图3是根据本发明的一个实施例的数据采样设备的主要结构框图。
97.如图3所示,在根据本发明的一个数据采样设备实施例中,该数据采样设备包括处理器30和存储装置31,存储装置31可以被配置成存储执行上述方法实施例的数据采样方法的程序,处理器30可以被配置成用于执行存储装置31中的程序,该程序包括但不限于执行上述方法实施例的数据采样方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该数据采样设备可以是包括各种电子设备形成的控制设备。其可以应用于自动驾驶系统中。
98.进一步,本发明还提供了一种计算机可读存储介质。在根据本发明的一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的数据采样方法的程序,该程序可以由处理器30加载并运行以实现上述数据采样方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机可读存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。
99.进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的装置的功
能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。
100.本领域技术人员能够理解的是,可以对装置中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。
101.至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。