一种基于预训练和强化学习的高血压预警方法
未命名
07-13
阅读:119
评论:0
1.本发明涉及智慧医疗领域、预训练技术、强化学习技术,具体涉及一种基于预训练和强化学习的高血压预警方法。
背景技术:
2.近年来,深度学习发展迅速,它在图像识别、自然语言处理和语音识别等取得了很多颠覆性的成果。深度学习通过对大脑处理信息的方式进行模拟,利用神经网络逐步获取所输入信息的特征。深度学习在辅助疾病诊断发展迅速,并在疾病预防、临床决策、疾病风险预警等方面取得了巨大成功。在有充足训练样本的条件下,深度学习模型在诊断某些疾病方面可以达到与领域专家相当甚至更好的性能。但在实际的诊疗场景中,由于病历数据记录的方法存在差异,存在病历数据质量参差不齐的状况,因此很难获得大量的规则的电子健康档案数据。针对训练样本不足和数据依赖性这种现象,衍生出来了迁移学习。
3.近年来,迁移学习飞速发展,迁移学习的主要思想是将源域中的知识迁移到目标域中,以提升学习模型的表现。迁移学习可以在一定程度上解决样本标记任务导致的人力和时间资源消耗过大问题,同时还可以有效解决标注数据稀缺问题。预训练是迁移学习思想的一个具体实现形式。预训练在大量无标注的数据集上训练得到初始化参数,然后在训练集上进行微调,实现知识迁移到目标任务,以提高预测目标任务的有效性。目前,已有研究证明预训练和微调在自然语言处理中的有效性。现如今,大多数研究都以患者的纵向问诊记录进行研究,而忽略了单次问诊数据,使用大量单次问诊数据进行预训练可以进行知识迁移,提高模型迁移效率。
4.强化学习旨在通过使用智能体与其环境的交互样本和潜在的延迟反馈来优化决策。与传统的监督学习不同,传统的监督学习通常依赖于一次性的、详尽的和有监督的奖励信号,而强化学习同时处理采样、评估和延迟反馈的顺序决策问题。在强化学习过程中,个体在每一个时间步骤中采取行动,个体通过激励函数获取行动的价值,通过不断的试探来得到最大化的奖励信号,这使得强化学习不同于传统的监督学习,监督学习主要是发现训练集中的隐藏特征。同时,强化学习特别适合于具有固有时间延迟的系统,在这种系统中,决策并不因为一时的有效性而执行,而是由长期的未来奖励评估。因此,强化学习适用于解决医疗领域那些连续且延迟反馈的过程。
5.为此,本专利提出一种基于预训练和强化学习的高血压预警方法。该方法设计了自我组成预测和目标预测两个预训练任务,两个预训练任务充分学习了各属性之间的关系以及预测目标值的关系,提供了合理的初始化参数;并设计了一个强化学习高血压预警框架,将高血压预测问题转化为智能体选择问题,通过内存管理机制缓解正负样本不平衡问题,通过数据样本选择策略优先选择对高血压预警贡献较大的数据样本,并通过奖惩机制设计防止小样本条件下的局部最优解导致的过拟合问题。
技术实现要素:
6.本发明的目的在于提出一种基于预训练和强化学习的高血压预警方法,用于高血压预警预测。一是提出适用于患者就诊数据的预训练任务,分别为自我组成预测预训练任务和目标预测预训练任务;二是提出一个用于高血压预警的强化学习框架,设计内存管理机制缓解正负样本不平衡问题,设计数据样本选择策略选择对高血压预警贡献较大的数据,并设计奖惩机制解决模型陷入局部最优解导致的过拟合问题。
7.本发明的具体步骤如下:
8.(1)获取个人健康档案数据集,对数据进行去重等预处理,对就诊数据的各属性分别建立词典,并将就诊数据分单次就诊和多次就诊数据,存储为pkl文件。
9.(2)基于建立的就诊属性词典,对单次就诊数据进行编码,并使用transformer模型对单次就诊数据进行预训练。
10.(3)针对多次序列就诊数据特点,进行强化学习建模,设计强化学习框架的个体、行为、状态、内存管理机制、奖惩机制、样本选择策略等部分。
11.(4)采用transformer预训练模型对多次就诊数据进行编码嵌入,并将编码后的多次就诊数据输入强化学习框架进行高血压预警。
12.步骤(1)中,使用个人体检数据构造数据集,选定高血压作为预警的疾病。从个人体检数据表中选择16个与高血压相关的属性,分别为身高、体重、体温、心率、脉搏、收缩压、舒张压、腰围、bmi、总胆固醇、甘油三酯、血清低密度脂蛋白胆固醇、血清高密度脂蛋白胆固醇、锻炼频率、饮酒频率、运动频率。根据个人健康档案基本信息中的“是否患高血压”和“确诊高血压日期”两个字段,以及个人健康体检数据中的“体检时间”字段,判断是否为患病前三年内的体检数据,将患病三年内的体检设为正样本;未确诊高血压以及患病超过三年的体检数据设为负样本。对选定的16个属性字段分别建立词典,并将就诊数据分为单次就诊和多次就诊数据,并存储为pkl文件进行保存。
13.步骤(2)中,基于建立的属性词典,对每个属性字段按照one-hot编码形式进行编码,并对16个属性字段进行拼接,得到每个单次就诊数据的向量表示:
[0014][0015]
attr[i]表示的是电子健康记录中的第i个属性,|m|表示的是电子健康记录属性数目,||表示的是对attr[0],attr[1]
…
attr[|m|]进行连接表示。
[0016]
我们将个体的单次就诊数据的属性attr
(n)
[i]进行随机遮蔽,可得到个体n的每个体检属性表示:
[0017][0018]
其中,0《i≤|m|,i表示的是体检记录中的第i个属性,|m|表示的是电子健康记录的体检属性数目。random_mask是随机属性遮蔽方法,可以用如下公式进行表达:
[0019][0020]
其中0≤i≤|p|,且i为正整数,|p|表示一条体检记录的属性个数。
[0021]
因此完整的就诊记录admission可表示为:
[0022][0023]
||表示对adm[0]、adm[1]
…
adm[|p|]进行连接表示。
[0024]
我们设立了两个预训练任务来增强模型对下游任务的预测效果。
[0025]
自我组成预测任务:我们设置自我组成预测任务来实现对遮蔽属性的检测。我们设计了自合成任务,使模型具有更强的自预测能力。自我组成预测任务的损失函数如下:
[0026][0027]
其中,attr
(n)
[i]表示的是第n个患者的第i个体检记录,pre_attr
(n)
[i]表示的是第n个患者的第i个体检记录经过随机处理并进入transformer模型后得出的向量嵌入。pi∈{voci\attr
(n)
[i]}表示pi是除了attr
(n)
[i]之外的voci中的任意一个值。
[0028]
目标预测任务:我们对患者单次体检记录进行高血压预测任务训练,以便于预测下游任务。对于最终预测目标,该任务的损失函数设计如下:
[0029][0030]
其中,表示的是第n个患者的is_hyper属性经过transformer和random masking任务得到的,attr
(n)
[i]表示的是第n个患者的第i个体检记录,我们最大化每个属性预测是否患高血压的可能性,从而获得最小的目标任务预测损失值。
[0031]
步骤(3)中,我们将高血压预测过程在强化学习框架下进行建模。我们将每个体检者作为强化学习下的个体;将每个体检者的每次就诊数据记录作为强化学习的状态变化依据。我们设置了两种存储器存储状态不同的数据样本,解决了正样本与负样本分布不均衡的问题;设计数据选择策略选择对高血压预警贡献较大的数据;设计奖惩机制解决模型陷入局部最优解导致的过拟合问题。
[0032]
个体(agent):我们将每一个体检者作为个体。个体是根据当前的环境状态提供个性化的高血压预测。
[0033]
行为(action):在时间步骤t,采取行动a
t
决定个体是否患高血压。我们定义了2种行为选择,分别为患高血压行为和不患高血压行为。具体表现形式如下:
[0034][0035]
状态(state):我们初始化个体自身的状态为零向量。在时间步骤t,我们将第n个体检者体检数据经过预训练模型得出的序列作为为了表达与之前电子健康档案记录之间的联系,我们将时间步骤t之前经过预训练模型得出的序列进行求平均得出我们将与进行拼接,得出个体在时间步骤t的状态向量计算
公式如下:
[0036][0037][0038][0039]
其中,表示第n个体检者在时间步骤t下,第i个体检属性经过预训练模型得出的序列值,是对预训练模型得出的体检属性的拼接。表示的是第n个体检者在时间步骤i下的电子健康档案经过预训练得出的序列向量。
[0040]
奖惩机制(reward):在时间步骤t中,个体在采取行动a
t
后,环境给出反馈来评估行动a
t
所带来的奖惩,奖励函数由两部分组成,reward1
t
用来判断行为的准确度,reward2
t
用来判断与正确行为的距离倒数。奖惩的表现形式如下:
[0041][0042][0043]
reward
t
=reward1
t
+reward2
t
[0044]
其中,label表示的是在时间步骤t中,体检者的真实患病情况。
[0045]
基于时间差的优先级分配策略:我们定义基于时间差的优先级策略分数如下:
[0046][0047]
y是折扣系数。
[0048]
样本选择策略(sampling strategy):在计算完内存中每个样本的优先级分数xe后,我们需要按照优先级分数xe对每个数据样本计算被选择从内存中拿出的概率。在本文中,我们选择使用softmax函数对每个数据样本的优先级分数进行映射,定义的公式如下:
[0049][0050]
其中,p(k)表示第k个数据样本在x
(k)
优先级分数下被选择的概率。
[0051]
内存管理机制(memory management mechanism):在本次实验中,由于正负样本数据差距过大,存在样本不平衡的问题。样本不平衡问题会导致强化学习模型在选择数据样本时会偏向于选择大样本数据而不选择小样本数据,这严重影响了模型的实际效果。为了解决上述问题,我们提出了建立另一个存储器来存储正负样本变化的数据样本。具体地,我们建立了两个存储器来分别存储s
t
和s
t+1
所对应的label相同和不相同的(s
t
,a
t
,r
t
,s
t+1
)数据样本。使用存储器m1存储s
t
和s
t+1
所对应label相同的(s
t
,a
t
,r
t
,s
t+1
)数据样本,使用存储器m2存储s
t
和s
t+1
所对应label不同的(s
t
,a
t
,r
t
,s
t+1
)数据样本。通过使用不同的存储器存储不同类比的数据样本,实现对(s
t
,a
t
,r
t
,s
t+1
)状态发生变化的数据样本的学习,解决数据不
平衡问题,提升模型训练效果。
[0052]
步骤(4)中,我们将个体的多次就诊数据输入预训练模型中,得到多次就诊数据向量表示,并将多次就诊数据向量表示输入强化学习框架中,得到个体3年内患高血压的概率。
附图说明
[0053]
图1为本发明的整体架构图。整体架构分为三个模块,分别是输入模块、模型细节和输出模块。输入分为单次就诊数据输入和多次就诊数据输入,单次就诊数据输入到预训练模型中,进行自我组成预测和目标预测任务预训练,得到合适的模型初始化参数,将预训练后的模型送入强化学习预测任务中,使用多次体检数据进入强化学习框架,经过奖惩机制及样本选择策略等手段,经过神经网络得到最终高血压预测结果。
具体实施方式
[0054]
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
[0055]
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0056]
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0057]
实施例一
[0058]
图一示出了本发明的整体架构图。
[0059]
整体架构分为三个模块,分别是输入模块、模型框架和输出模块。输入分为单次就诊数据输入和多次就诊数据输入,单次就诊数据输入到预训练模型中,进行自我组成预测和目标预测任务预训练,得到合适的模型初始化参数,将预训练后的模型送入强化学习预测任务中,使用多次就诊数据进入强化学习框架,经过奖惩机制、内存管理及样本选择等策略,经过神经网络得到最终高血压预测结果。
[0060]
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
技术特征:
1.一种基于预训练和强化学习的高血压预警方法,其特征在于,该方法的实施步骤如下:步骤(1)获取个人体检数据集,对个人体检数据集中的体检数据进行去重预处理,对体检数据的各属性分别建立词典,并将体检数据分为单次体检和多次体检数据,存储为pkl文件;步骤(2)基于建立的就诊属性词典,对单次就诊数据进行编码,并使用transformer模型对单次体检数据进行预训练;步骤(3)针对多次序列体检数据特点,进行强化学习建模,设计强化学习框架的个体、行为、状态、内存管理机制、奖惩机制、数据选择策略部分;步骤(4)采用transformer预训练模型对多次体检数据进行编码嵌入,并将编码后的多次体检数据输入强化学习框架进行慢性病预警。2.根据权利要求1所述的一种基于预训练和强化学习的高血压预警方法,其特征在于,所述步骤(1)中,对个人体检数据进行数据预处理步骤包括:(1)收集个人体检数据,并在体检表中选择身高、体重、体温、心率、脉搏、收缩压、舒张压、腰围、bmi、总胆固醇、甘油三酯、血清低密度脂蛋白胆固醇、血清高密度脂蛋白胆固醇、锻炼频率、饮酒频率、运动频率16个与高血压相关的属性;(2)对收集的个人体检数据进行去除重复数据操作,并对缺失的数据值进行临近值填充操作;(3)根据“是否患高血压”字段和“确诊高血压日期”以及“体检时间”字段判断是否为三年内患病体检数据,划分正负数据样本;(4)将个人体检数据按照体检者的体检次数分为单次体检数据和多次体检数据;对单次体检数据和多次体检数据的16个属性按照属性值分别建立属性词典表,并存储为txt文件;(5)对单次体检数据和多次体检数据按照1:4划分训练验证集和测试集,再对训练验证集按照4:1划分训练集和验证集,并把划分的数据集存储为pkl文件。3.根据权利要求1所述的一种基于预训练和强化学习的高血压预警方法,其特征在于,所述步骤(2)中,使用大量单次体检数据进行预训练来得到模型初始化参数;对单次体检数据进行随机遮蔽得到预训练向量,通过设计自我组成预测任务来进行遮蔽属性检测,使模型具有更强的自我检测能力;通过设计目标预测任务便于下游高血压预测;对单次体检数据进行预训练步骤包括:(1)加载单次体检数据pkl文件,获取单次体检数据集;(2)对每个单次体检数据,按照建立的属性字典对每个体检属性值进行one-hot编码,得到单次体检数据各个体检属性值的嵌入表示;(3)将每个单次体检数据进入transformer模型,并进行随机遮蔽操作;在随机属性遮蔽操作中,各个体检属性有80%的概率使用|mask|字段进行遮蔽,有10%的概率体检属性不变,有10%的概率替换成同一体检属性中的其他字段;(4)单次体检数据基于随机遮蔽操作,进行自我组成预测任务;在自我组成预测任务当中,对每个单次体检数据属性值正确性进行预测,使模型能够更好学习各个体检属性特征;(5)对每个单次体检数据中的体检属性进行拼接,得到每个单次体检数据的嵌入表示,
并将得到的嵌入表示进行目标预测任务;在目标预测任务中,对单次体检数据嵌入表示进行“是否患高血压”预测任务,提高模型最终预测高血压的能力。4.根据权利要求1所述的一种基于预训练和强化学习的高血压预警方法,其特征在于,所述步骤(3)中,高血压强化学习建模过程如下:(1)设置多次体检数据中的每个体检者为强化学习的个体;(2)设置体检者三年后“是否患高血压”为强化学习中的行为,分为三年后患高血压与三年后不患高血压;(3)设置状态为个体从预训练模型得出的向量;(4)设置奖惩函数来对个体做出行为的反馈;奖惩函数计算分为两部分;一部分为个体行为是否与真实患病记录一致,一致返回1,不一致返回-1;另一部分为预测患病概率与真实患病概率平方差的倒数;(5)设置内存管理机制来存储数据样本,设立两个存储器来存储时间t与时间t+1个体患病状态发生变化与不发生变化的数据样本;通过使用不同的存储器存储不同类别的数据样本,实现对状态发生变化的数据样本的学习,解决数据不平衡问题,提升模型训练效果;(6)设置每个数据样本的优先级分数,根据奖惩函数设置每个数据样本的优先级分数;(7)设置数据样本选择策略来选择数据样本,使用softmax函数对每个数据样本的优先级分数进行映射,并根据映射值来随机选取数据样本。5.根据权利要求1所述的一种基于预训练和强化学习的高血压预警方法,其特征在于,所述步骤(4)中,采用transformer模型获取编码嵌入,之后进入强化学习进行高血压预警,过程如下:(1)加载多次体检数据pkl文件,获取多次体检数据集;(2)将每个体检者的多次体检数据输入transformer预训练模型,对于每一次的体检数据,将本次的体检数据编码向量与前几次的体检数据编码向量的平均值进行拼接,得到每一次最终的编码向量;(3)将体检者的每一次的最终编码向量按次序输入强化学习模型中,得到每一次预测结果,并与真实值进行比较,得到最终f1、pr-auc、jaccard模型评定指标。
技术总结
本发明公开了一种基于预训练和强化学习的高血压预警方法,设计了自我组成预测任务和目标预测预训练任务,并应用大量废弃的单次体检数据进行预训练并得到合适的模型初始化参数;并设计了一个高血压预警强化学习框架,并应用多次体检数据进行高血压预警,通过奖惩、内存管理、数据样本选择等策略设计解决了样本不平衡和小样本环境下的过拟合问题。本发明使用某医疗机构的体检数据进行测试,实验表明,该模型框架在高血压预测上取得了很好的效果。该模型框架在高血压预测上取得了很好的效果。该模型框架在高血压预测上取得了很好的效果。
技术研发人员:林绍福 周世伟 陈建辉 王梦真
受保护的技术使用者:北京工业大学
技术研发日:2023.03.20
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
