基于半监督多任务学习的医疗数据分类模型的构建方法
技术领域
本发明属于半监督学习技术领域,特别是涉及一种基于半监督多任务学习的医疗数据分类模型的构建方法。
背景技术
半监督学习是监督学习与无监督学习相结合的一种学习方法,可以同时使用大量无标签数据和少量有标签数据来进行模式识别工作。由于真实应用中收集到的观测数据大多数是没有类别标记的,如果对这些样本进行人工标记,会造成人力物力的极大浪费。如果使用监督学习方法只对少量的有标签数据进行训练,这样训练出来的模型往往泛化能力很差,而且也是对无标签数据资源的极大浪费。因此,在有标签数据较少的情况下,如何利用大量无标签的数据来提高模型的学习性能已经引起越来越多的关注,半监督学习正是为了解决这一问题而提出的。多任务学习是和单任务学习相对的一种机器学习方法。在机器学习领域,标准的算法理论是一次学习一个任务。对于复杂的问题,也可以分解为简单且相互独立的子问题来单独解决,然后再合并结果,得到最初复杂问题的结果。这样做看似合理,其实是不正确的,因为现实世界中很多问题不能分解为一个一个独立的子问题,即使可以分解,各个子问题之间也是相互关联的,通过一些共享表示联系在一起。把现实问题当做一个个独立的单任务处理,忽略了问题之间所富含的丰富的关联信息。使用多任务学习不仅可以学到多个任务的共享表示,这个共享表示具有较强的抽象能力,能够适应多个不同但相关的目标,通常可以使训练获得的模型具有更好的泛化能力。此外,由于使用共享表示,多个任务同时进行预测时,减少了数据来源的数量以及整体模型参数的规模,使预测更加高效。因此,在多个应用领域中,可以利用多任务学习来提高效果或性能,比如垃圾邮件过滤、网页检索、自然语言处理、图像识别、语音识别、医疗预测等。现在90%的多任务学习算法都属于监督学习领域,随着研究的深入,半监督多任务学习领域引起了人们极大的关注。
由于此项研究领域具有较高的理论研究与实际应用价值,因此根据实际需求研究人员提出了半监督支持向量机,比较经典的是直推式支持向量机,但是该算法的一个主要的缺陷在于,在训练开始前必须人为的指定训练样本中无标签样本中的正标签样本数,一种简单的方法是根据有标签样本中正负样本的比例来估计无标签样本中正标签样本数,无标签样本中的正标签样本错误的估计值将导致模型的性能下降。廖东平等人在成对标注法和标签重置法的基础上提出了快速的渐进直推式支持向量机方法,在训练开始前,不对无标签样本的分布情况做任何估计,而是在训练过程中,选择在指定大小的边界区域内的无标签样本,赋予它们当下最可能的标签值并把他们加入到有标签样本中,进行新一轮的训练。在这个过程中,如果发现先前标注的无标签样本的标签值与当前的训练输出值不一致,将取消这些不合适的无标签样本的标注并加入到无标签样本中,进行下一次训练。重复上述过程,直到边界区域内不存在满足条件的无标签样本,得到最终的分类模型。
与一般的半监督支持向量机相比,半监督多任务学习具有四大优势:(1)通过使用相关任务混合的数据,来帮助模型更好的学习无标签数据;(2)学习相关任务的共享表示,提高模型的性能和泛化能力;(3)由于最小二乘支持向量机把求解二次规划问题转化为了求解线性方程问题,有效降低了计算复杂度,减少了训练时间;(4)达到同等的性能,多任务学习需要更少的迭代次数和数据量。
现有半监督支持向量机方法的具体缺点如下:
(1)泛化能力差
现在的半监督支持向量机都属于单任务学习,在训练过程中只涉及一个任务的数据样本,通常数据量比较少,这样训练出来的分类器可能效果不错,但是泛化能力差,对相关任务的数据利用不充分。
(2)忽略相关任务之间的关系
把相关任务作为一个一个的独立任务,利用半监督支持向量机进行训练,忽略了相关任务之间的关系,没有利用有标签数据和无标签数据共享参数的特点,导致每个独立任务学习到的参数不能被其他任务利用。
(3)训练需要的时间和数据量大
由于在训练过程中可能出现多次迭代的情况,而半监督支持向量机每次迭代都是转化为二次规划问题求解,训练时间代价大,本发明采用最小二乘支持向量机,把求解二次规划问题转化为了求解线性方程问题,有效降低了计算复杂度,减少了训练时间。与多任务学习相比,若达到同等的性能,半监督支持向量机需要大量的训练数据,但现实中的数据量往往达不到要求。
在医疗方面,有时候不同的疾病所具有的症状相似,反映在数据层面上就是属性相似,如果使用半监督学习算法进行学习,把学习每一种疾病的数据看成一个单任务,忽略了相关任务的有标签和无标签数据的共享表示,所以引入多任务最小二乘支持向量机方法,充分利用混合数据的共享表示,提高模型的效率。现有的医疗数据分类模型大多是针对一种疾病(即单任务的分类模型),只能够判断患者是否患有此疾病;如果患者未患此疾病,并不能够判断患者是否患有与此疾病症状相似的其他疾病。如果要达到以上两种目的,现有的医疗数据分类模型针对具有相似症状的每一种疾病构建单任务分类模型,训练过程中需要的数据量大,时间效率低,而且要将患者的数据信息放入所有的单任务医疗数据分类模型中,才能够作出准确的判断。
发明内容
本发明的目的在于提供一种基于半监督多任务学习的医疗数据分类模型的构建方法,解决了现有的医疗数据分类模型针对具有相似症状的每一种疾病构建单任务分类模型,训练过程中需要的数据量大,时间效率低的问题。
本发明所采用的技术方案是,基于半监督多任务学习的医疗数据分类模型的构建方法,具体按照以下步骤进行:
步骤一、指定参数γ,λ,使用多任务最小二乘支持向量机(MTLS-SVM)对有标签数据进行训练,得到初始分类器SVM0,其中λ,γ是正则化参数;
步骤二、指定参数γ
1,γ
2,用初始分类器SVM
0对每个分类任务i中所有无标签样本的数据进行学习,计算每一个无标签样本的判别函数输出
用区域标注法对处于边界区域内的每个分类任务i中所有无标签样本的数据进行标注;
在每次训练中,对满足式(8)(9)(10)(11)的每个分类任务i中所有无标签样本的数据进行正负标注,并把已经正负标注过的无标签样本加入到每个分类任务i中有标签的数据中,加入到新一轮的训练中,每个分类任务i中所有无标签样本的当前判别函数输出的绝对值大小反映了标注的可信度;
是初始分类器SVM
0对每个分类任务i中所有无标签样本的数据的判别函数输出,γ
1,γ
2是决定标注区域的参数,其中0<γ
1<max,0<γ
2<min;
是每个分类任务i中所有无标签样本的数据;
步骤三、重置每个分类任务i中所有无标签样本的数据,对每个分类任务i中所有有标签的数据和步骤二加入的新标注的每个分类任务i中所有无标签样本的数据按照步骤一进行重新训练,得到分类器SVM1,对每个分类任务i中的每一个医疗数据样本进行分类,判断某一个早期标注的分类任务i中所有无标签样本的数据的标签值和分类器SVM1的判别函数输出的一致性,依据标签重置的法则确定每个分类任务i中的每一个医疗数据样本的标注;
在每一轮训练中,将已标注的分类任务i中所有无标签样本的数据与本轮该数据的标注值进行比较,如果不一致,在早期迭代中出现误标情况,随后把不一致的分类任务i的样本标签重置为分类任务i的无标签样本,加入到后一轮的训练中,重置的分类任务i的无标签样本在未来某次训练中得到更为可靠的标注;
步骤四、用区域标注法寻找当前边界区域内符合新加标注条件的未加标注的分类任务i的无标签样本,如果存在符合新加标注条件的未加标注的分类任务i的无标签样本,则对其加以标注并返回步骤三;如果不存在,则用当前的分类器SVM1对分类任务i中剩下的全部无标签样本做分类并加标签,计算过程结束,并输出结果,初始分类器SVM0和分类器SVM1为最终得到医疗数据分类模型。
进一步的,所述步骤一为学习每一种疾病的数据为一个单任务,有N个相关的医疗数据分类任务,每个分类任务i的分类超平面由一个公共函数ω
0 Tφ
0(x)+b
0和一个私有函数v
i Tφ
i(x)+b
i构成,其中φ
0(x)是医疗数据从输入空间到特征空间公共的非线性映射,φ
i(x)是医疗数据从输入空间到特征空间私有的非线性映射,ν
i是包含了任务i的信息的私有法向量,其中b
0为所有分类任务的常数向量,b
i为分类任务i的常数向量;每个分类任务的分类超平面的法向量ω表示为ω
0+ν,其中ω
0为公共法向量,ν为包含每个任务信息的私有法向量;对每一个分类任务i,有n
i个医疗数据:
其中
其中
表示d维实数向量空间,d表示实数向量空间的维数,y
im∈{+1,-1},m=1,2,…,n
i,x
im表示第i个任务的第m条数据,y
im表示第i个任务的第m条数据的类别标签;N个相关分类任务总共拥有的数据量为
每个分类任务i的分类决策函数为:ω
0 Tφ
0(x)+v
i Tφ
i(x)+b
i+b
0;
多任务最小二乘支持向量机的目标函数是:
其中,
λ,γ是正则化参数,ξ
i的含义是每个分类任务i的松弛变量,
ξi≥0,i=1,2,...,N;(2)
其中,y
i是每个分类任务i中所有数据的类别标签向量,
φ
0(x
i)的含义是每一个分类任务i的医疗数据从输入空间到特征空间公共的非线性映射,φ
i(x
i)是每一个分类任务i的医疗数据从输入空间到特征空间私有的非线性映射,
构造多任务最小二乘支持向量机目标函数的拉格朗日函数为:
其中
其中
表示n
i维实数向量空间,n
i表示每一个分类任务i包含的数据量,
其中
表示N维自然数向量空间,N表示相关的医疗数据分类任务,
α
i表示拉格朗日乘子;
根据约束优化问题的Karush-Kuhn-Tucker条件,对w0,vi,bi,b0,ξi,αi求偏导等于0:
将式(4)带入到式(3)可得:
其中,对分类任务j,有n
j个医疗数据:
其中,h=1,2,…,n
j,x
jh是第j个分类任务的第h条数据,α
im是第i个分类任务中第m条数据的拉格朗日乘子,α
jh是第j个分类任务中第h条数据的拉格朗日乘子,y
im是第i个分类任务中第m条数据的类别标签,y
jh是第j个分类任务中第h条数据的类别标签,K
0(x
im,x
jh)和K
k(x
im,x
jh)为不同的核函数,对第i个分类任务中第m条数据和第j个分类任务中第h条数据进行相应的非线性映射计算,其中K
0(x
im,x
jh)=x
im·x
jh,表示线性核函数,
表示高斯径向核函数,其中exp,σ分别代表以自然常数e为底的指数函数和核函数的宽度参数;
式(5)的解为
和b
*=((b
0+b
1)
*,(b
0+b
2)
*,...,(b
0+b
N)
*)
T,得到了初始分类器SVM
0;
每个分类任务i的决策函数表示为:
其中,
和
为初始分类器SVM
0的解,y
im是第i个分类任务中第m条数据的类别标签,
K
0(x
im,x)和K
k(x
im,x)是对第i个分类任务中第m条数据和所有分类任务的数据进行相应的非线性映射计算,其中K
0(x
im,x)=x
im·x,
本发明的有益效果是,(1)通过使用相关任务混合的数据,来帮助模型更好的学习无标签数据,本发明的基于半监督多任务学习的医疗数据分类模型的构建方法,能够充分利用相关医疗任务的混合数据,因为在训练过程,通过区域标注法不断地往有标签训练集中添加每个相关任务中已标注的无标签数据,相比半监督支持向量机的单任务学习方法而言,增加了训练的数据量,能够帮助模型更好的学习无标签数据;
(2)学习相关任务的共享表示,提高模型的性能和泛化能力,本发明的基于半监督多任务学习的医疗数据分类模型的构建方法,通过学习相关医疗任务的共享表示(参数共享),包括相关任务中有标签数据之间的共享表示和无标签数据之间的共享表示,每一个相关任务学习到的参数都可以帮助其他任务提高效率,多个相关任务放在一起学习,有相关的部分,但也有不相关的部分,当学习一个任务时,与该任务不相关的部分,在学习过程中相当于是噪声,因此,引入噪声可以提高学习的泛化能力;
(3)降低了计算复杂度,减少了训练时间,本发明的基于半监督多任务学习的医疗数据分类模型的构建方法,训练过程可能涉及多次迭代,利用最小二乘支持向量机把求解二次规划问题转化为了求解线性方程问题,相较于半监督最小二乘支持向量机,有效降低了计算复杂度和数据量,减少了训练时间;在标注过程中采用区域标注法,在精度允许范围内,也大大减少了训练时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是基于半监督多任务学习的医疗数据分类模型流程图;
图2是实施例两种方法的性能随着标签数据的变化图;
图3是实施例的训练时间随边界区域的变化图;
图4是实施例的性能随着边界区域的变化图;
图5是实施例的不同核函数组合对方法性能的影响。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于半监督多任务学习的医疗数据分类模型的构建方法,具体按照以下步骤进行:
步骤一、指定参数γ,λ,使用多任务最小二乘支持向量机(MTLS-SVM)对有标签数据进行训练,得到初始分类器SVM0,其中λ,γ是正则化参数;
学习每一种疾病的数据为一个单任务,有N个相关的医疗数据分类任务,每个分类任务i的分类超平面由一个公共函数ω
0 Tφ
0(x)+b
0和一个私有函数v
i Tφ
i(x)+b
i构成,其中φ
0(x)是医疗数据从输入空间到特征空间公共的非线性映射,φ
i(x)是医疗数据从输入空间到特征空间私有的非线性映射,ν
i是包含了任务i的信息的私有法向量,其中b
0为所有分类任务的常数向量,b
i为分类任务i的常数向量;每个分类任务的分类超平面的法向量ω表示为ω
0+ν,其中ω
0为公共法向量,ν为包含每个任务信息的私有法向量;对每一个分类任务i,有n
i个医疗数据:
其中
其中
表示d维实数向量空间,d表示实数向量空间的维数,y
im∈{+1,-1},m=1,2,…,n
i,x
im表示第i个任务的第m条数据,y
im表示第i个任务的第m条数据的类别标签;N个相关分类任务总共拥有的数据量为
每个分类任务i的分类决策函数为:ω
0 Tφ
0(x)+v
i Tφ
i(x)+b
i+b
0;
多任务最小二乘支持向量机的目标函数是:
其中,
λ,γ是正则化参数,ξ
i的含义是每个分类任务i的松弛变量,
ξi≥0,i=1,2,...,N;(2)
其中,y
i是每个分类任务i中所有数据的类别标签向量,
φ
0(x
i)的含义是每一个分类任务i的医疗数据从输入空间到特征空间公共的非线性映射,φ
i(x
i)是每一个分类任务i的医疗数据从输入空间到特征空间私有的非线性映射,
φ
0(x
i)实现了相关分类任务的参数共享,φ
i(x
i)实现了将每个相关分类任务的信息加入到模型以调整最终的分类器;
构造多任务最小二乘支持向量机目标函数的拉格朗日函数为:
其中
其中
表示n
i维实数向量空间,n
i表示每一个分类任务i包含的数据量,
其中
表示N维自然数向量空间,N表示相关的医疗数据分类任务,
α
i表示拉格朗日乘子;
根据约束优化问题的Karush-Kuhn-Tucker(KKT)条件,对w0,vi,bi,b0,ξi,αi求偏导等于0:
将式(4)带入到式(3)可得:
其中,对分类任务j,有n
j个医疗数据:
其中,h=1,2,…,n
j,x
jh是第j个分类任务的第h条数据,α
im是第i个分类任务中第m条数据的拉格朗日乘子,α
jh是第j个分类任务中第h条数据的拉格朗日乘子,y
im是第i个分类任务中第m条数据的类别标签,y
jh是第j个分类任务中第h条数据的类别标签,K
0(x
im,x
jh)和K
k(x
im,x
jh)为不同的核函数,对第i个分类任务中第m条数据和第j个分类任务中第h条数据进行相应的非线性映射计算,其中K
0(x
im,x
jh)=x
im·x
jh,表示线性核函数,用于线性可分的情况,特征空间到输入空间的维度是一样的,其参数少速度快;
表示高斯径向核函数,它是一种局部性强的核函数,将输入空间映射到一个更高维的空间内,无论大样本还是小样本都有比较好的性能,而且其相对于多项式核函数参数要少,其中exp,σ分别代表以自然常数e为底的指数函数和核函数的宽度参数,控制了核函数的径向作用范围;
式(5)的解为
和b
*=((b
0+b
1)
*,(b
0+b
2)
*,...,(b
0+b
N)
*)
T,得到了初始分类器SVM
0;
每个分类任务i的决策函数表示为:
其中,
和
为初始分类器SVM
0的解,y
im是第i个分类任务中第m条数据的类别标签,
K
0(x
im,x)和K
k(x
im,x)是对第i个分类任务中第m条数据和所有分类任务的数据进行相应的非线性映射计算,其中K
0(x
im,x)=x
im·x,
步骤二、指定参数γ
1,γ
2,用初始分类器SVM
0对每个分类任务i中所有无标签样本的数据进行学习,计算每一个无标签样本的判别函数输出
用区域标注法对处于边界区域内的每个分类任务i中所有无标签样本的数据进行标注;
在每次训练中,对满足式(8)(9)(10)(11)的每个分类任务i中所有无标签样本的数据进行正负标注,并把已经正负标注过的无标签样本加入到每个分类任务i中有标签的数据中,加入到新一轮的训练中,结合支持向量机的特点可知,每个分类任务i中所有无标签样本的当前判别函数输出的绝对值大小反映了标注的可信度;
是初始分类器SVM
0对每个分类任务i中所有无标签样本的数据的判别函数输出,γ
1,γ
2是决定标注区域的参数,其中0<γ
1<max,0<γ
2<min;
是每个分类任务i中所有无标签样本的数据;
步骤三、重置每个分类任务i中所有无标签样本的数据,对每个分类任务i中所有有标签的数据和步骤二加入的新标注的每个分类任务i中所有无标签样本的数据按照步骤一进行重新训练,得到分类器SVM1,对每个分类任务i中的每一个医疗数据样本进行分类,判断某一个早期标注的分类任务i中所有无标签样本的数据的标签值和分类器SVM1的判别函数输出的一致性,依据标签重置的法则确定每个分类任务i中的每一个医疗数据样本的标注;
在每一轮训练中,将已标注的分类任务i中所有无标签样本的数据与本轮该数据的标注值进行比较,如果不一致,在早期迭代中出现误标情况,随后把不一致的分类任务i的样本标签重置为分类任务i的无标签样本,加入到后一轮的训练中,重置的分类任务i的无标签样本在未来某次训练中得到更为可靠的标注;
步骤四、用区域标注法寻找当前边界区域内符合新加标注条件的未加标注的分类任务i的无标签样本,如果存在符合新加标注条件的未加标注的分类任务i的无标签样本,则对其加以标注并返回步骤三;如果不存在,则用当前的分类器SVM1对分类任务i中剩下的全部无标签样本做分类并加标签,计算过程结束,并输出结果,初始分类器SVM0和分类器SVM1为最终得到医疗数据分类模型。
实施例
在实际的医疗分类数据集上,运用本发明的基于半监督多任务学习医疗数据分类模型的构建方法,实验设置如表1、2、3所示,分别在皮肤病学(Dermatology)数据集的6个相关任务上,设定有标签数据比例为10%、20%和40%,随机选择训练数据集的70%作为测试集,将本发明提出的方法与半监督最小二乘支持向量机(LS-SVM)进行对比。从表1-3中可以看出1)本发明提出的方法在应用到Dermatology数据集后,可以显著提高预测的准确性;2)在本实验的数据集上,多任务学习可以有效地利用任务间的共享信息,从而提高标注的准确性;3)本文的方法还可以充分利用无标记数据之间的共享信息来提高半监督分类器的性能。在训练数据集的集合中有标记的数据的比例为:{5%,10%,20%,40%,60%,80%},两种方法的精确度比较如图2所示,可以看出随着比例的增大,精度得到了提高,本文提出的方法优于基于半监督的最小二乘支持向量机。由于本发明在训练过程采用区域标注的方法,区域大小的选择对方法的训练时间和精度有一定的影响。如图3和图4所示,方法的训练时间随着边界区域的增加而减小;随着边界区域的增加,方法的平均精度降低。虽然精度有波动区域,但总体上呈下降趋势。本发明提出的方法可以使用不同的核函数,在图5中,比较了不同核函数对6个相关任务的影响。L+G方法的整体性能优于其他两种方法(L-线性核函数,G-高斯核函数,P-多项式核函数)。
表1有标记数据比例为10%时,两种方法对比
Related tasks |
LS-SVM with Semi-Supervised |
MTLS-SVM with Semi-Supervised |
Task1 |
63.01% |
66.30% |
Task2 |
68.12% |
68.25% |
Task3 |
67.20% |
69.33% |
Task4 |
66.17% |
68.56% |
Task5 |
64.50% |
67.76% |
Task6 |
69.20% |
70.07% |
Average Accuracy |
66.37% |
68.38% |
表2有标记数据比例为20%时,两种方法对比
Related tasks |
LS-SVM with Semi-Supervised |
MTLS-SVM with Semi-Supervised |
Task1 |
73.13% |
76.37% |
Task2 |
78.24% |
78.30% |
Task3 |
77.20% |
79.65% |
Task4 |
76.17% |
78.51% |
Task5 |
74.55% |
77.45% |
Task6 |
79.28% |
80.13% |
Average Accuracy |
76.43% |
78.40% |
表3有标记数据比例为40%时,两种方法对比
Related tasks |
LS-SVM with Semi-Supervised |
MTLS-SVM with Semi-Supervised |
Task1 |
75.83% |
78.96% |
Task2 |
80.05% |
82.75% |
Task3 |
79.43% |
81.06% |
Task4 |
78.47% |
80.20% |
Task5 |
76.46% |
78.85% |
Task6 |
82.19% |
84.24% |
Average Accuracy |
78.74% |
81.01% |
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。