一种用于标签部分缺失数据流场景的多分类学习技术

摘要: 本发明涉及一种数据分析技术,尤其涉及一种用于标签部分缺失数据流场景的多分类学习方法。背景技术:1、在现实世界中,多分类问题非常普遍。例如,在文本分类中,需要将文...
一种用于标签部分缺失数据流场景的多分类学习技术

本发明涉及一种数据分析技术,尤其涉及一种用于标签部分缺失数据流场景的多分类学习方法。

背景技术:

1、在现实世界中,多分类问题非常普遍。例如,在文本分类中,需要将文章分为不同类别,如新闻分类、情感分析等;在图像分类中,需要将图片分为不同类别,如医学影像的病症分类等。传统的监督分类算法可以通过对有标签的数据进行训练,以预测和分类新的数据样本。然而,获取大量有标签的数据集既耗时又昂贵。现实中,可以获取的数据集往往只有少量有标签数据,大部分数据是无标签的,且数据是否被标记往往并不是随机的,具有某种特征的数据更容易或更不容易被标记。因此,如何利用这些无标签数据进行有效分类成为了一个值得研究的问题。

2、mpu学习,即多正类无标签学习,是在pu学习的基础上发展起来的。一些研究者尝试将二分类问题扩展到多分类问题。针对mpu学习,2017年,y.xu等人在文章《multi-positive and unlabeled learning》中首次提出了这种分类问题,并定义为mpu问题,他们使用了类似于两步策略的方法,选取可靠的负例与正样本共同训练分类器。2020年,s.shu等人在文章

3、《learning from multi-class positive and unlabeled data》中提出了一种urea的方法,利用直接的经验风险最小化构造无偏估计器,该估计器用于多分类pu学习中的原始分类风险估计,但存在一定过拟合问题。在urea的基础上,该文章使用替代损失函数,得到一个具有明确估计误差下界的方法area,减少了过拟合并提升了分类性能。2022年,racanati等人在

4、《dealing with multipositive unlabeled learning combining metriclearning and deep clustering》中开发的protompul框架创新性地结合原型网络与对比聚类策略,通过度量学习优化类间距离,在小样本场景下表现出显著优势。关于pu学习的相关专利,2019年,黄圣君等人在《一种用于正类和无标记数据分类的主动学习方法》中将主动学习应用于正类无标记数据分类问题,花费较少的标注代价即可有效提升pu分类算法的性能(公开号:cn109299162a)。2021年,黄庆明等人在《基于深度pu学习与类别先验估计的数据分类方法及系统》中提出了一种迭代式的深度pu学习与类别先验估计框架,该框架能同时估计类别先验,并利用所得先验估计学习深度模型,无需已知数据的真实先验分布(公开号:cn114417975a)。

5、尽管mpu学习取得初步进展,但与pu学习的研究相比,相关的工作仍显得较为浅显。现有mpu方法存在以下局限:首先,当前的研究局限于完全随机缺失假设(scar),忽视了实际场景中的标签分布偏差。学者们没有考虑构建标签缺失机制的模型,对于数据分布偏差的情况缺乏系统性的研究。其次,传统方法多采用批处理的训练方式,难以适应动态数据流环境,忽略了实际场景中样本分布会随着到达时间而不断变化。本发明提出的在线多正类无标签分类算法,与传统和其他现有方法相比,具有以下几个区分技术特征:(1)与传统方法针对每两个类别之间训练一个分类器的做法不同,本发明训练的分类器数目等于样本类别数,减少了训练的分类器数量,提升了模型训练效率。(2)与传统使用批处理方法解决多分类的方式不同,本发明设计了一种在线学习方法,采用滑动窗口法进行在线更新,能够实时更新模型参数。(3)本发明引入倾向得分加权机制,通过预测正样本的倾向得分来调整数据标签分布,纠正原始数据中因标签不平衡而产生的偏差。现有方法通常将倾向得分模型假设为线性函数,或采用固定函数形式来估计倾向得分,然而,倾向得分通常是复杂且非线性的,这使得线性模型无法有效捕捉数据的特点,本发明采用多层感知机(mlp)模型,能够捕捉更复杂的非线性关系,提供更精确的倾向得分估计。

技术实现思路

1、本发明所采用的mlp包括单隐藏层感知机和双隐藏层感知机两种结构,可参阅附图1。对于单隐藏层感知机,隐藏层使用relu激活函数,输出层使用sigmoid激活函数进行预测,结构见附图1-a,包含两个隐藏层的mlp结构见附图1-b。

2、本发明解决了在多分类问题中数据不满足完全随机缺失假设的问题,降低了人工标注成本。使用mlp估计倾向得分来处理数据标签不满足完全随机缺失假设的问题。结合在线学习,利用小批量的样本估计梯度以更新mlp模型权重,并使用梯度下降法优化分类器最后使用分类器预测样本标签,该方法的步骤流程图可参阅附图2,本发明不仅解决了在多分类问题中标记成本高的问题,还展现出对不满足scar假设数据的高精度分类能力。

3、所公开的方法主要包括以下步骤:

4、s1、数据预处理,将数据的每个特征转换为数值型数据,去除冗余特征,将数据做归一化处理,转换标签取值。

5、s2、设预处理后的训练样本为其中,t为训练样本的总个数,xt∈rd为数据的d维特征,yt=i(i=1,2,3…,k)是xt对应的标签,取y=1,2...,k-1表示正类样本,y=k表示负类样本。使用mlp输出预测值,并使用二元交叉熵损失函数,形式如下,对其进行最小化求解:

6、

7、其中,y为真实标签,为使用mlp得到的倾向得分预测值,n为计算交叉熵损失所使用的样本个数。

8、s3、使用梯度下降算法进行网络权重和偏置的更新。

9、s4、对于有标签的样本,需要计算倾向得分无标签样本则直接计算损失,瞬时损失如下,对其进行最小化求解:

10、

11、其中,xt∈rd是在t时刻接收的d维样本,yt=i(i=1,2,3…,k)是xt对应的标签,sign{yt=i}在yt=i时取1,在其它情况下取0,γ表示正类样本(即有标签样本)占总样本的比例,损失函数l(·)为非凸损失函数,选用线性判别函数,f(xt)=是线性分类器,是先验概率的估计值,m和∈为加权参数,本发明设置默认值和∈=0.01。

12、s5、采用传统的梯度下降算法求解使得在线瞬时损失最小的权重参数其中是在t时刻,当b=bt时瞬时损失所取的梯度值。

13、s6、依据参数b训练得出分类器用于将样本分类到正确的类别。

14、各步骤的详细说明

15、s1、数据归一化:对样本的各个特征进行处理,通过平移和放缩的方式,使得特征的数值分布具有零均值和单位方差的统计特征,以避免有些特征对模型训练过程产生过大影响,提高模型的泛化能力。

16、s2、选取合适的损失函数l(z)是本发明的关键技术。由于非凸损失函数具有更加复杂的形状,对于异常值和噪声具有一定的鲁棒性,为了保证在随机缺失的条件下,得到的期望损失是无偏的且损失函数是光滑的,本发明考虑一类具有下列性质的损失函数l(z)组成的损失函数族:

17、(1)l:是单调递减的;

18、(2)函数满足l(z)+l(-z)=1;

19、(3)l在上连续可微且lipschitz连续,lipschitz常数为l.

20、|l(z1)-l(z2)|≤l|z1-z2|

21、可以验证非凸的sigmoid损失函数满足上述条件,本发明中,取σ=1,附图3展示了该函数及其导函数图像。

22、s3、使用梯度下降算法更新mlp模型参数。为了实现全过程在线的多分类算法,本发明使用滑动窗口法,引入参数z表示训练mlp的最大样本量,每次输入z个样本进行倾向得分模型的训练。此外,还设置了控制滑动窗口向前滚动的参数t0,t1,t2。附图4展示了滑动窗口的设置,现有滑动窗口的大小设置为z,滑动的步长为γ,窗口的起点和终点分别为t0,t1,分类器更新的起点由t2表示。对于t∈[t0,t1],从数据流中选取对应的样本并打乱分为m个mini-batch{b1,b2,...,bm},对于每个batch,计算二元交叉熵损失:

23、

24、n为一个batch中样本的数量,然后更新mlp模型的权重和偏置:

25、

26、其中,w和b为mlp模型中的网络权重和偏置,η为学习率,l为计算的交叉熵损失

27、s4、对于t∈[t2,t1],接收样本的真实标签yt,判断样本有无标签,若为有标签样本,使用更新后的mlp模型计算倾向得分若为无标签样本,则无需计算然后,计算b在t时刻的在线瞬时损失,并对其求导得出梯度:

28、

29、其中,表示基础损失函数对参数矩阵b中的分量bv求导,参数矩阵的更新规则为:

30、

31、其中,γ1为学习率。

32、算法1.在线的多分类学习算法

33、输入:数据流:(x1,y1),...,(xt,yt),学习率γ1,类别k,训练样本量z,大批量γ

34、输出:ft(xt)=

35、步1、初始化:参数矩阵b←b0;倾向得分模型中的θ=θ0;训练框起点t0=1;训练框终点t1=t0+γ;预测起点t2=1

36、步2、在线迭代

37、(1)for:t=1,2,…,t

38、(2)当t0

39、t1=min(t1,t)

40、对于t∈[t0,t1]:

41、打乱数据集分为m个mini-batch{b1,b2,...,bm}

42、对于每个batch:

43、计算二元交叉熵损失,利用梯度下降法更新模型权重

44、对于t∈[t2,t1]:

45、计算ft(xt)=

46、接收样本的真实标签yt,判断样本有无标签(如果没有标签令yt=k)

47、若xt为有标签样本:

48、得到倾向得分计算瞬时损失l(xt)

49、若xt为无标签样本:

50、计算瞬时损失l(xt)

51、(3)计算

52、(4)更新:

53、(5)更新:t2←t1

54、如果t1≥t,则停止循环

55、更新:t0←t0+γ

56、t1←t1+γ

57、如果t0≥t,则停止循环

58、步3、返回ft(xt)=

59、s5、依据训练得出分类器将样本分类到正确的类别。具体的判别规则如下:若所有fi(x)的值均小于等于0,则将样本判为第k类,否则,将样本判为最大分量fi(x)所对应的类别i。判别规则可以表示为:

60、

61、与现有技术相比,本发明的有益效果是:

62、1、有效解决mpu问题。目前,mpu学习在多分类问题中的应用仍处于探索阶段。本发明结合倾向得分和在线学习的思想,将pu学习扩展至多类别场景,在多个数据集上,本发明方法展示了优于其他现有方法的分类性能。

63、2、高效的在线学习能力。本发明算法具备强大的在线学习能力,能够在动态变化环境中实时适应不断到来的数据流,及时捕捉数据分布的变化。无需重新处理整个数据集即可快速更新模型参数,实现了对大规模动态mpu数据的高效处理,具有较高的实际应用价值。

64、3、鲁棒的多分类学习算法。本发明方法通过预测正样本的倾向得分,调整数据标签分布,从而纠正原始数据中因标签不均衡而产生的偏差,使得算法在正类样本标签不满足完全随机缺失假设的情况下更加稳健。