CN113821968A - 持续学习的方法和装置 - Google Patents
持续学习的方法和装置 Download PDFInfo
- Publication number
- CN113821968A CN113821968A CN202110660907.0A CN202110660907A CN113821968A CN 113821968 A CN113821968 A CN 113821968A CN 202110660907 A CN202110660907 A CN 202110660907A CN 113821968 A CN113821968 A CN 113821968A
- Authority
- CN
- China
- Prior art keywords
- training sample
- model
- task
- loss
- loss gradient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种持续学习的方法和装置,属于机器学习技术领域。本申请中获取第一任务的第一训练样本、第一任务的第一模型和第二任务的第二训练样本,第一模型使用第一任务的训练样本训练获得。确定出第一模型在第一训练样本的第一损失梯度,以及第一模型在第二训练样本的第二损失梯度,然后使用第一损失梯度和第二损失梯度,更新第一模型的参数,获得更新后的第一模型。这样,由于使用第一损失梯度和第二损失梯度,对第一任务的第一模型进行更新,而不是使用第二任务的训练样本重新训练一个模型,所以不是对每个任务训练一个模型,进而可以减少训练资源的占用。
Description
技术领域
本申请涉及机器学习技术领域,特别涉及一种持续学习的方法和装置。
背景技术
在机器学习技术领域中,通常是基于一个任务的训练样本,训练获得模型,该模型能够用于对该任务作出正确的预测。将该模型置于新任务下,无法对新任务作出正确的预测。因此在有新任务时,会基于新任务的训练样本,重新训练一个模型,用于对新任务作出正确的预测。
这样,对于每个任务均需要训练一个模型,会导致占用的训练资源比较多。
发明内容
本申请实施例提供了一种持续学习的方法、装置、设备和存储介质,能够减少训练开销。所述技术方案如下:
一方面,本申请提供了一种持续学习的方法,该方法包括:
获取第一任务的第一训练样本、所述第一任务的第一模型和第二任务的第二训练样本,其中,所述第一模型是基于所述第一任务的训练样本进行训练获得的;
基于目标损失函数,确定所述第一模型在所述第一训练样本的第一损失梯度;
基于所述目标损失函数,确定所述第一模型在所述第二训练样本的第二损失梯度;
基于所述第一损失梯度和所述第二损失梯度,调整所述第一模型的参数,获得更新后的第一模型。
另一方面,本申请提供了一种持续学习的装置,所述装置包括:
获取模块,用于获取第一任务的第一训练样本、所述第一任务的第一模型和第二任务的第二训练样本,其中,所述第一模型是基于所述第一任务的训练样本进行训练获得的;
确定模块,用于:
基于目标损失函数,确定所述第一模型在所述第一训练样本的第一损失梯度;
基于所述目标损失函数,确定所述第一模型在所述第二训练样本的第二损失梯度;
更新模块,用于基于所述第一损失梯度和所述第二损失梯度,调整所述第一模型的参数,获得更新后的第一模型。
再一方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如第一方面所述的持续学习的方法。
再一方面,本申请提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如第一方面所述的持续学习的方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例中,在增加新任务时,使用新任务的训练样本对应的损失梯度和训练过的任务对应的损失梯度,对训练过的任务的模型进行更新,而不是使用新任务的训练样本重新训练一个模型,所以不是对每个任务训练一个模型,进而可以减少训练资源的占用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种生成电子病历的界面示意图;
图2是本申请实施例提供的一种持续学习的方法流程图;
图3是本申请实施例提供的一种目标损失梯度的示意图;
图4是本申请实施例提供的一种模型训练的示意图;
图5是本申请实施例提供的一种模型的训练和评估的算法示意图;
图6是本申请实施例提供的一种持续学习的装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于对本申请实施例的理解,下面首先介绍所涉及到的名词的概念:
电子病历(Electronic Health Record,EHR),是用电子设备(如计算机设备、健康卡等),保存、管理、传输和重现的数字化的医疗记录,用以取代手写纸张病历。电子病历的内容包括纸张病历的所有信息。
人工智能(Artificial Intelligence,AI),是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习(Machine Learning,ML)/深度学习等几大方向。
机器学习,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或者技能,重新组织已有的知识架构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习、持续学习(continual learning)等技术。
其中,持续学习是从一个潜在的非稳定分布中抽取的连续数据流,基于连续数据流进行顺序学习,并在整个生命周期中重用获得的知识,同时避免灾难性的遗忘(catastrophic forgetting)。灾难性的遗忘指神经网络模型在学习新的信息时,遗忘之前学到的知识,致使神经网络模型在之前的任务上的性能表现下降,如预测能力下降等。
在一种相关技术中,在有新任务时,会基于新任务的训练样本,重新训练一个模型,用于对新任务作出正确的预测。这样,对于每个任务均需要训练一个模型,会导致占用的训练资源比较多。
然而,本申请实施例中在增加新任务时,使用新任务的训练样本对应的损失梯度和训练过的任务对应的损失梯度,对训练过的任务的模型进行更新,而不是使用新任务的训练样本重新训练一个模型,所以不是对每个任务训练一个模型,进而可以减少训练资源的占用。
在另一种相关技术中,将训练过的任务的训练样本和新任务的训练样本混合后获得新训练样本。基于新训练样本重新训练,获得一个模型。由于该模型学习到训练过的任务和新任务的信息,所以能够对训练过的任务和新任务作出正确的预测。这样,由于每当有新任务时,均使用新任务的训练样本和训练过的任务的训练样本重新训练,所以需要大量的训练开销。而且还需要保存训练过的任务的全部训练样本,对计算和存储能力都提出了较高的要求。
然而本申请实施例中,在增加新任务时,使用新任务的训练样本对训练过的任务的模型进行更新,且在更新模型的参数时使用训练过的任务的训练样本进行约束,要求更新后的模型也能对训练过的任务作出正确的预测,这样,不仅减少了训练开销,而且缓解了对训练过的任务的灾难性的遗忘问题。
下面介绍本申请实施例的执行主体。
本申请实施例提供了一种持续学习的方法,该方法的执行主体为持续学习的装置。示例性的,持续学习的装置可以是一个软件装置,运行在硬件设备上,该硬件设备为服务器、终端等计算机设备。示例性的,持续学习的装置是一个硬件设备,该硬件设备为服务器、终端等计算机设备。
在持续学习的装置为硬件设备时,该硬件设备设置有处理器、存储器和收发器等。处理器可以用于持续学习的过程的处理,如训练模型等。存储器可以用于存储持续学习的过程中需要的数据以及产生的数据,如存储任务的训练样本等。收发器可以用于接收以及发送数据,如将训练好的模型提供给用户等。
在一些实施例中,上述服务器还可以实现为区块链系统中的节点。区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学相关联产生的数据块,每个数据块中包含了一批次网络交易信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
上文介绍了本申请实施例的执行主体,接下来介绍本申请实施例的应用场景:
本申请实施例能够应用于任务序列的持续学习场景中,每个任务序列中包括多个任务。每个任务序列中的任务具有相似性。例如,某个任务序列中的任务均为疾病预测任务等,某个任务序列中的任务均为动物识别任务等。后文中提到的第一任务和第二任务属于一个任务序列,且第一任务在第二任务之前。
如下介绍应用于疾病预测的任务序列的持续学习场景,该场景中,疾病是基于电子病历的AI疾病预测模型进行预测,电子病历作为疾病样本。目前A疾病和B疾病的模型是基于A疾病的电子病历和B疾病的电子病历进行训练获得的,现在又收集到了C疾病的电子病历。可以使用本申请实施例中持续学习的方法更新A疾病和B疾病的模型,使得更新后的模型既能预测A疾病和B疾病,也能预测C疾病。
示例性的,本申请实施例的方法具体可以应用于AI医疗辅助决策程序,用于增量式的扩展该程序可预测的疾病种类,此处疾病即本申请实施例中提到的任务。图1示出了该程序的生成电子病历的界面示意图,在该界面中医生可以输入的患者的基本信息(如姓名、年龄等)、患者主诉的症状、诊断结果、现病史、既往史、治疗史、检查情况(包括但不限于体格检查和检验检查)、诊断结果、治疗意见和其它事项等。在医生输入完成后,生成该患者的电子病历。另外在该界面中还为医生提供了各种疾病的疾病指南,以及快速转诊选项等。该快速转选项用于医生发现患者挂错号或者需要其它部门的医生协助时触发。
AI医疗辅助决策程序是基于AI疾病预测模型,而AI疾病预测模型需要不同种类的疾病样本可能不是一开始就完全收集完成的,因此可以先使用已有的疾病样本训练模型,在后续逐步添加更多种类的疾病样本,不断扩展模型所能预测的疾病种类,最终形成一个覆盖面广、精确度高的AI辅助决策程序。
上述是以应用疾病预测场景为例进行说明,当然还可以应用于图片识别等场景。例如,一个图片识别模型,开始是用于对猫、老虎进行分类,现在又收集到豹子的图片,通过本申请实施例的方法,图片识别模型能对猫、老虎和豹子进行分类识别。
接下来结合图2介绍本申请实施例中,持续学习的方法流程,在图2中以服务器为执行主体为例进行说明。
步骤201,获取第一任务的第一训练样本、第一任务的第一模型和第二任务的第二训练样本,其中,第一模型是基于第一任务的训练样本进行训练获得的。
其中,第一任务的第一模型是基于第一任务的训练样本进行训练获得的模型,第一任务的第一模型能对第一任务进行预测,第一任务为一个任务或者多个任务。第一任务为任务序列中第二任务之前的任务,第一模型未学习第二任务的信息。第一模型为任意的神经网络模型,如卷积神经网络、长短期记忆(Long/Short Term Memory,LSTM)模型等。第二任务是新任务。
在本实施例中,在新增加第二任务后,对第一模型进行更新,使得更新后的第一模型既能对第一任务进行预测,也能对第二任务进行预测。技术人员可以输入第二任务的训练样本。服务器获取第一任务的第一训练样本、第一任务的第一模型,并且在第二任务的训练样本中获取第二训练样本。第二训练样本为一个或者多个,第二训练样本的数目等于批大小(batch size)。
示例性的,服务器中存储有第一任务的训练样本中具有代表性的训练样本,称为是第一任务的代表训练样本。在第一任务为一个任务的情况下,在之前训练获得第一模型后,服务器对第一任务的训练样本进行聚类处理,获得第一任务的多个训练样本组,在每个训练样本组中选取距离该训练样本组的中心点最近的训练样本,选取出的训练样本即为第一任务的代表训练样本。服务器在第一任务的代表训练样本中,随机选取第一训练样本。
在第一任务为多个任务的情况下,在之前训练获得第一模型之后,服务器对每个任务的训练样本分别进行聚类处理,获得每个任务的多个训练样本组。对于每个任务,在该任务的每个训练样本组中选取距离该样本组的中心点最近的训练样本,选取出每个任务的具有代表性的训练样本,称为每个任务的代表训练样本。服务器在每个任务的代表训练样本中随机选取预设数目个训练样本,组成第一训练样本,这样,第一训练样本包括每个任务的训练样本,此处每个任务的训练样本为预设数目个,预设数目可以为5等。
此处需要说明的是,上述对于一个任务,该任务的多个训练样本组的数目为A%乘以该任务的训练样本数目,A的取值可以根据实际需求设定,例如,A取值10。这样,能够兼顾各个任务的损失梯度。
步骤202,基于目标损失函数,确定第一模型在第一训练样本的第一损失梯度。
其中,目标损失函数为任一损失函数,如均方误差损失函数、交叉熵损失函数等。在后续目标损失函数可以使用L表示。
在本实施例中,服务器计算目标损失函数对第一模型的参数的偏导数。将第一训练样本代入该偏导数,获得第一模型在第一训练样本的第一损失梯度。
步骤203,基于目标损失函数,确定第一模型在第二训练样本的第二损失梯度。
在本实施例中,服务器计算目标损失函数对第一模型的参数的偏导数。将第二训练样本代入该偏导数,获得第一模型在第二训练样本的第二损失梯度。
步骤204,基于第一损失梯度和第二损失梯度,调整第一模型的参数,获得更新后的第一模型。
在本实施例中,服务器使用第一损失梯度和第二损失梯度,调整第一模型的参数的处理有多种方式,如下提供两种可行的方式,见方式一和方式二。
方式一:确定第一损失梯度和第二损失梯度之间的第一夹角与预设角度的大小关系;基于第一夹角与预设角度的大小关系,确定目标损失梯度;基于目标损失梯度,调整第一模型的参数。
其中,预设角度由技术人员预设,存储在服务器中。例如,预设角度为90度等。
在本实施例中,第一损失梯度使用gref表示,第二损失梯度使用g表示。第一损失梯度和第二损失梯度的维度均与第一模型的参数的数目相同,第一损失梯度和第二损失梯度均为向量。服务器使用第一损失梯度和第二损失梯度点乘后,获得一个乘积。若该乘积小于0,则确定第一夹角大于预设角度,若该乘积大于或等于0,则确定第一夹角小于或等于预设角度。服务器使用该大小关系,计算目标损失梯度。然后服务器使用目标损失梯度,调整第一模型的参数。此处是使用点乘的乘积确定第一夹角与预设角度大小关系,当然也可以直接计算出第一夹角,然后再判断第一夹角与预设角度的大小关系。
示例性的,在调整第一模型的参数时,使用梯度下降算法,式子为:
示例性的,计算目标损失梯度的过程为:
若第一夹角小于或等于预设角度,则将第二损失梯度确定为目标损失梯度;若第一夹角大于预设角度,则将第二损失梯度投影到目标损失梯度的方向,获得目标损失梯度,其中,目标损失梯度与第一损失梯度的夹角为预设角度,且与第二损失梯度的夹角最小。
此处投影过程用式子表示为:
例如,图3示出了第一损失梯度gref和第二损失梯度g的关系示意图,图3的(a)表示第一损失梯度gref和第二损失梯度g的夹角小于90度,目标损失梯度等于第二损失梯度g。图3的(b)表示第一损失梯度gref和第二损失梯度g的夹角大于90度,目标损失梯度为式(2)的表达式。在图3的(b)中与gref的夹角为90度,假设g与gref的反方向的夹角为β,g距离为x,那么存在:
gTgref=-|g||gref|cosβ (4)
若g与的夹角小于预设角度,则说明第一模型在第二任务和在第一任务的损失梯度下降方向接近,在第二任务的损失梯度下降时,第一任务的损失梯度也下降。这样,使用第二任务的损失梯度更新参数,使得训练好的模型能够对第一任务和第二任务均进行预测。
若g与的夹角大于预设角度,则说明第一模型在第二任务和在第一任务的损失梯度下降方向相差比较大,在第二任务的损失梯度下降时,第一任务的损失梯度不会下降。那么若还按照第二任务的损失梯度更新参数,使得训练好的模型只能对第二任务进行预测,而不能对第一任务进行预测。将第二任务的损失梯度投影到目标损失梯度由于下降时,第一任务的损失梯度也会下降,那么使用目标损失梯度更新参数,使得训练好的模型能够对第一任务和第二任务均进行预测。
方式二:在第一损失梯度中,获取第一模型的每个神经元在第一训练样本的损失梯度,并在第二损失梯度中,获取第一模型的每个神经元在第二训练样本的损失梯度;对于神经元i,确定第二夹角与预设角度的大小关系,其中,第二夹角为神经元i在第一训练样本的损失梯度与神经元i在第二训练样本的损失梯度的夹角;基于第二夹角与预设角度的大小关系,调整神经元i存在的参数。
其中,预设角度为90度。
在本实施例中,第一模型包括多个神经元,每个神经元对应存在多个参数。服务器在第一损失梯度中,获取每个神经元在第一训练样本的损失梯度。并且在第二损失梯度中,获取每个神经元在第二训练样本的损失梯度。对于神经元i,服务器确定第二夹角与预设角度的大小关系,第二夹角为神经元i在第一训练样本的损失梯度与神经元i在第二训练样本的损失梯度的夹角。示例性的,在确定该大小关系时,服务器确定神经元i在第一训练样本的损失梯度与神经元i在第二训练样本的损失梯度的点乘的结果,若该结果小于0,则确定第二夹角大于预设角度,若该结果大于或等于0,则确定第二夹角小于或等于预设角度。此处是使用点乘的乘积确定第二夹角与预设角度大小关系,当然也可以直接计算出第二夹角,然后再判断第二夹角与预设角度的大小关系。
服务器基于第二夹角与预设角度的大小关系,调整神经元i存在的参数。对于每个神经元的参数,均按照神经元i的处理,调整每个神经元存在的参数。
示例性的,基于第二夹角与预设角度的大小关系,调整神经元i的参数的处理为:
若第二夹角小于或等于预设角度,则基于神经元i在第二训练样本的损失梯度调整神经元i存在的参数;若第二夹角大于预设角度,则不调整神经元i存在的参数。
在本实施例中,若第二夹角小于或等于预设角度,则服务器使用神经元i在第二训练样本的损失梯度调整神经元i的参数,使用式(8)表示为:
θij=θij-αgij (8)
在式(8)中,θij为神经元i存在的任一参数,α为学习率,gij为神经元i在第二训练样本的损失梯度。这样,在第二夹角小于或等于预设角度时,说明神经元i在第一训练样本的损失梯度与神经元i在第二训练样本的损失梯度的梯度下降方向接近,在神经元i在第二训练样本的损失梯度下降时,神经元i在第一训练样本的损失梯度也下降。经过这种方式,使用神经元i在第二训练样本的损失梯度更新参数,使得训练好的模型能够对第一任务和第二任务均进行预测。
若第二夹角大于预设角度,则服务器不调整神经元i存在的参数。这样,在第二夹角大于预设角度时,说明神经元i在第一训练样本的损失梯度与神经元i在第二训练样本的损失梯度的梯度下降方向相差比较大,在神经元i在第二训练样本的损失梯度下降时,神经元i在第一训练样本的损失梯度不会进行下降,所以不调整神经元i的参数,使得能对第一任务进行预测。
示例性的,在步骤204中,获得更新后的第一模型。在获得更新后的第一模型后,按照选取第一训练样本的方式,选取第一任务的第三训练样本,并且按照选取第二训练样本的方式,选取第二任务的第四训练样本。在服务器选取完训练样本之后,执行如下处理,判断更新后的第一模型是否符合要求。
将第三训练样本输入至更新后的第一模型,获得第三训练样本对应的预测值;基于第三训练样本对应的预测值和第三训练样本对应的实际值,计算获得第三训练样本对应的第一损失值;将第四训练样本输入至更新后的第一模型,获得第四训练样本对应的预测值;基于第四训练样本对应的预测值和第四训练样本对应的实际值,计算获得第四训练样本对应的第二损失值;若第二损失值小于预设数值,且第一损失值小于或等于第三损失值,则将更新后的第一模型,确定为训练好的模型,其中,第三损失值为第三训练样本在第一模型的损失值。
其中,预设数值比较小。
在本实施例中,服务器将第三训练样本输入至更新后的第一模型,获得第三训练样本对应的预测值。将第三训练样本对应的预测值和第三训练样本对应的实际值,代入目标损失函数,获得第三训练样本对应的第一损失值。将第四训练样本输入至更新后的第二模型,获得第四训练样本对应的预测值。服务器将第四训练样本对应的预测值和第四训练样本对应的实际值,代入目标损失函数,获得第四训练样本对应的第二损失值。
服务器将第三训练样本输入至第一模型,获得在第一模型第三训练样本对应的预测值。服务器将在第一模型第三训练样本对应的预测值和第三训练样本对应的实际值,代入目标损失函数,获得在第一模型,第三训练样本对应的第三损失值。
服务器判断第二损失值与预设数值的大小关系,并且判断第一损失值与第三损失值的大小关系。若第二损失值小于预设数值,且第一损失值小于或等于第三损失值,则将更新后的第一模型,确定为训练好的模型。
若第二损失值大于或等于预设数值,和/或第一损失值大于第三损失值,则服务器基于目标损失函数,确定更新后的第一模型在第三训练样本的第三损失梯度,确定更新后的第一模型在第四训练样本的第四损失梯度;基于第三损失梯度和第四损失梯度,调整更新后的第一模型的参数。此处“和/或”表示三种情况。例如,A和/或B表示:A、B、以及A和B三种情况。
此处确定第三损失梯度和第四损失梯度的方式,与步骤202和步骤203中的方式相同,此处不再赘述。调整更新后的第一模型的参数的方式与步骤204中的方式相同,此处也不再赘述。
需要说明的是,在上述第二损失值小于预设数值,且第一损失值小于或等于第三损失值,用公式表示为:
在式(9)中,(xk,yk)为第二任务的训练样本,fθ()为训练好的第一模型,L(fθ(xk),yk)为第二损失值。minL(fθ(xk),yk)表示使得第二损失值最小化,但是由于最小化只能在局部最小化,所以第二损失值小于预设数值,即认为是第二损失值最小化。(xM,yM)为第一任务的训练样本,fθ()为基于第二任务的训练样本更新后的第一模型,为第一模型,L(fθ(xM),yM)为第一损失值,为第三损失值,表示第一损失值小于或等于第三损失值。
还需要说明的是,上述仅描述了一次更新参数的过程,每一次更新参数的过程,均与上述方式相同,只不过每次使用的训练样本有可能不相同、每次训练的模型不相同(因为模型一直随着参数更新而更新)。
示例性的,在训练好模型之后,为了使得下次再有新任务,更新当前训练的模型时,不遗忘第二任务的信息,而又要节约资源,可以进行如下处理:
使用预设的聚类处理方式,在第二任务的训练样本中选取目标数目个训练样本,作为第二任务的代表训练样本,其中,第二任务的代表训练样本用于在针对第二任务之后的任务更新训练好的模型时,保持对第二任务的预测能力;对目标数目个训练样本进行存储。
其中,预设的聚类处理方式为任一种聚类方式,如K均值聚类(K-means)、原型聚类和高斯聚类等。目标数目为预设值,如可以为10%乘以第二任务的训练样本数目。
在本实施例中,服务器使用预设的聚类处理方式,在第二任务的训练样本中选取目标数目个训练样本,作为第二任务的代表训练样本。服务器对目标数目个训练样本进行存储。
示例性的,选取目标数目个训练样本的处理方式为:
使用预设的聚类处理的方式,将第二任务的训练样本划分为目标数目个训练样本组;确定目标数目个训练样本组的中心点;在每个训练样本组中,选取距离每个训练样本组的中心点最近的训练样本。
在本实施例中,以预设的聚类处理方式为K均值聚类为例进行说明,服务器将第二任务的训练样本输入编码器,获得第二任务的训练样本的嵌入(embedding)层表示。然后假设共有N个训练样本,目标数目为S。服务器设定聚类簇的数目为S,即训练样本组的数目为S。首先随机选取S个训练样本作为聚簇中心,然后计算每个训练样本到各个聚簇中心的距离,并将其划分到距离最近的聚类簇中。更新每个聚类簇的中心点为该聚类簇中所有训练样本的中心点。如此重复多次执行,直到每个聚类簇中的训练样本不再发生变化,聚类完成,获得S个训练样本组。在每个训练样本组中选取距离每个训练样本组的中心点最近的训练样本。对选取的训练样本进行存储。
示例性的,在服务器中设置有逻辑上的记忆区,记忆区中存储有在训练完成模型后各个任务对应的具有代表性的训练样本,即代表训练样本。服务器将选取的代表训练样本存储至记忆区,并与第二任务对应存储。这样,在训练好模型后,不需要存储第二任务的所有训练样本,能够节约存储空间,而且也在使用新任务更新模型时,不会遗忘第二任务的信息。
这样,通过本申请实施例,每个训练过的任务仅需要存储少量的具有代表性的训练样本,而不需要存储每个任务的全部训练样本,很大程度上节约了存储空间。而且在有新任务时,仅需要使用新任务的训练样本训练模型,而不需要结合已训练过的任务的训练样本进行训练,也节约了训练开销。
而且本申请实施例中,在基于新任务的训练样本训练模型时,为损失梯度增加约束,所以可以使得模型针对新任务的训练,不会影响模型在训练过的任务的预测性能,既缓解了灾难性遗忘的问题,也避免了显式训练之前训练过的任务的训练样本所导致的过拟合问题。
举例来说,如图4所示,在某医院的呼吸科部署了一套基于长短期记忆网络的通用机器学习分类器系统来进行疾病预测。开始时,该模型仅基于上呼吸道疾病和下呼吸道疾病的电子病历进行训练,训练完成后,我们使用聚类方法来从这两大类疾病预测任务中分别选取部分具有代表性的电子病历进行存储,并限制每一种小的疾病类别数目至少保存10个电子病历,作为代表训练样本。待该系统平稳运行一段时间后,表现出了良好的辅助诊断效果,该医院的心内科也准备接入该系统,于是模型按照本申请实施例的训练步骤在心内科的电子病历上开始训练,训练完成并测试效果,模型既对心内科疾病表现出了较好的预测效果,也保持了对两大类呼吸道疾病的预测效果,接着我们把具有代表性的部分心内科疾病的电子病历也进行存储。通过这种方式,越来越多的科室的电子病历被整理与训练,模型所能够预测的疾病种类也越来越多,甚至可以扩展到对小众疾病的预测。
另外,在训练好模型后,本申请实施例中还提供了评估训练好的模型的处理。
示例性的,计算第k个任务的测试样本的预测准确率的过程为:
将第k个任务的每个测试样本输入至训练好的模型中,得到每个测试样本对应的预测值,将每个测试样本对应的预测值与对应的实际值比较,确定预测正确的测试样本的数目以及测试样本的总数目。将预测正确的测试样本与测试样本的总数目相比,获得第k个任务的测试样本的预测准确率。
另外,为了更好地理解本申请实施例,如图5所示,本申请实施例还提供了模型的训练和评估的算法流程图。
1、在图5中,模型的训练算法:
第1步,将{}赋值给M,{}表示训练过的任务的代表训练样本;
第2步,将0∈RT*T赋值给R;
第3步,for k=1,…,T do表示k等于1至T,T表示T个任务;
第4步,for(x,y)in Tkdo表示在Tk中选取(x,y),执行后面的循环;
第7步,if gTgref≥0then;
第9步,否则(else);
第11步,结束(end);
第13步,end;
第14步,从Tk中选取代表训练样本添加至M;
第15步,end;
第16步,将训练好的模型fθ在测试样本Qtest上的测试结果赋值给R。
2、在图5中,模型的评估算法:
第1步,将0∈RT赋值给r;
第2步,for k=1,…,T do表示k等于1至T;
第3步,将0赋值给rk;
第4步,for(x,y)in Qkdo,表示在Qk中选取(x,y),执行后面的循环;
第5步,将rk+acc(fθ(x),y)赋值给rk;acc(fθ(x),y)表示对x的预测准确率,预测正确,取值为1,否则取值为0;
第6步,end;
第7步,将rk/len(Qk)赋值给rk;rk/len(Qk)表示的是将rk除以第k个任务的测试样本的数目;
第8步,end;
基于相同的技术构思,本申请实施例还提供了一种持续学习的装置,如图6所示,该装置包括:
获取模块610,用于获取第一任务的第一训练样本、所述第一任务的第一模型和第二任务的第二训练样本,其中,所述第一模型是基于所述第一任务的训练样本进行训练获得的;
确定模块620,用于:
基于目标损失函数,确定所述第一模型在所述第一训练样本的第一损失梯度;
基于所述目标损失函数,确定所述第一模型在所述第二训练样本的第二损失梯度;
更新模块630,用于基于所述第一损失梯度和所述第二损失梯度,调整所述第一模型的参数,获得更新后的第一模型。
在一种可能的实现方式中,所述更新模块630,用于:
确定所述第一损失梯度和所述第二损失梯度之间的第一夹角与预设角度的大小关系;
基于所述第一夹角与预设角度的大小关系,确定目标损失梯度;
基于所述目标损失梯度,调整所述第一模型的参数。
在一种可能的实现方式中,所述更新模块630,用于:
若所述第一夹角小于或等于预设角度,则将所述第二损失梯度确定为所述目标损失梯度;
若所述第一夹角大于所述预设角度,则将所述第二损失梯度投影到所述目标损失梯度的方向,获得所述目标损失梯度,其中,所述目标损失梯度与所述第一损失梯度的夹角为所述预设角度,且与所述第二损失梯度的夹角最小。
在一种可能的实现方式中,所述更新模块630,用于:
在所述第一损失梯度中,获取所述第一模型的每个神经元在所述第一训练样本的损失梯度,并在所述第二损失梯度中,获取所述第一模型的每个神经元在所述第二训练样本的损失梯度;
对于神经元i,确定第二夹角与预设角度的大小关系,其中,所述第二夹角为所述神经元i在所述第一训练样本的损失梯度与所述神经元i在所述第二训练样本的损失梯度的夹角,其中,i取值为1至所述第一模型的神经元总和的任一数值;
基于所述第二夹角与预设角度的大小关系,调整所述神经元i存在的参数。
在一种可能的实现方式中,所述更新模块630,用于:
若所述第二夹角小于或等于预设角度,则基于所述神经元i在所述第二训练样本的损失梯度调整所述神经元i存在的参数;
若所述第二夹角大于所述预设角度,则不调整所述神经元i存在的参数。
在一种可能的实现方式中,所述更新模块630,还用于:
获取所述第一任务的第三训练样本和所述第二任务的第四训练样本;
将所述第三训练样本输入至所述更新后的第一模型,获得所述第三训练样本对应的预测值;
基于所述第三训练样本对应的预测值和所述第三训练样本对应的实际值,计算获得所述第三训练样本对应的第一损失值;
将所述第四训练样本输入至所述更新后的第一模型,获得所述第四训练样本对应的预测值;
基于所述第四训练样本对应的预测值和所述第四训练样本对应的实际值,计算获得所述第四训练样本对应的第二损失值;
若所述第二损失值小于预设数值,且所述第一损失值小于或等于第三损失值,则将所述更新后的第一模型,确定为训练好的模型,其中,所述第三损失值为所述第三训练样本在所述第一模型的损失值。
在一种可能的实现方式中,所述更新模块630,还用于:
若所述第二损失值大于或等于预设数值,和/或所述第一损失值大于第三损失值,则基于所述目标损失函数,确定所述更新后的第一模型在所述第三训练样本的第三损失梯度,确定所述更新后的第一模型在所述第四训练样本的第四损失梯度;
基于所述第三损失梯度和所述第四损失梯度,调整所述更新后的第一模型的参数。
在一种可能的实现方式中,所述更新模块630,还用于:将所述更新后的第一模型,确定为训练好的模型之后,使用预设的聚类处理方式,在所述第二任务的训练样本中选取目标数目个训练样本,作为所述第二任务的代表训练样本,其中,所述第二任务的代表训练样本用于在针对所述第二任务之后的任务更新所述训练好的模型时,保持对所述第二任务的预测能力;
对所述目标数目个训练样本进行存储。
在一种可能的实现方式中,所述更新模块630,还用于:
使用预设的聚类处理的方式,将所述第二任务的训练样本划分为目标数目个训练样本组;
确定所述目标数目个训练样本组的中心点;
在每个训练样本组中,选取距离每个训练样本组的中心点最近的训练样本。
在一种可能的实现方式中,所述获取模块610:
在所述第一任务的代表训练样本中抽样获取所述第一任务的第一训练样本,其中,所述代表训练样本是基于聚类处理的方式,在所述第一任务的训练样本中获得的训练样本。
在一种可能的实现方式中,所述第一任务为多个任务,所述第一训练样本为所述多个任务中每个任务的训练样本。
需要说明的是:上述实施例提供的持续学习的装置在持续学习时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的持续学习的装置与持续学习的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(CentralProcessing Units,CPU)701和一个或一个以上的存储器702,其中,所述存储器702中存储有至少一条指令,所述至少一条指令由所述处理器701加载并执行以实现上述持续学习的方法步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由终端中的处理器执行以完成上述实施例中的持续学习的方法步骤。例如,该计算机可读存储介质是非临时计算机可读存储介质,如只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact DiscRead-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种持续学习的方法,其特征在于,所述方法包括:
获取第一任务的第一训练样本、所述第一任务的第一模型和第二任务的第二训练样本,其中,所述第一模型是基于所述第一任务的训练样本进行训练获得的;
基于目标损失函数,确定所述第一模型在所述第一训练样本的第一损失梯度;
基于所述目标损失函数,确定所述第一模型在所述第二训练样本的第二损失梯度;
基于所述第一损失梯度和所述第二损失梯度,调整所述第一模型的参数,获得更新后的第一模型。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一损失梯度和所述第二损失梯度,调整所述第一模型的参数,包括:
确定所述第一损失梯度和所述第二损失梯度之间的第一夹角与预设角度的大小关系;
基于所述第一夹角与预设角度的大小关系,确定目标损失梯度;
基于所述目标损失梯度,调整所述第一模型的参数。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一夹角与预设角度的大小关系,确定目标损失梯度,包括:
若所述第一夹角小于或等于预设角度,则将所述第二损失梯度确定为所述目标损失梯度;
若所述第一夹角大于所述预设角度,则将所述第二损失梯度投影到所述目标损失梯度的方向,获得所述目标损失梯度,其中,所述目标损失梯度与所述第一损失梯度的夹角为所述预设角度,且与所述第二损失梯度的夹角最小。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一损失梯度和所述第二损失梯度,调整所述第一模型的参数,包括:
在所述第一损失梯度中,获取所述第一模型的每个神经元在所述第一训练样本的损失梯度,并在所述第二损失梯度中,获取所述第一模型的每个神经元在所述第二训练样本的损失梯度;
对于神经元i,确定第二夹角与预设角度的大小关系,其中,所述第二夹角为所述神经元i在所述第一训练样本的损失梯度与所述神经元i在所述第二训练样本的损失梯度的夹角,其中,i取值为1至所述第一模型的神经元总和的任一数值;
基于所述第二夹角与预设角度的大小关系,调整所述神经元i存在的参数。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第二夹角与预设角度的大小关系,调整所述神经元i存在的参数,包括:
若所述第二夹角小于或等于预设角度,则基于所述神经元i在所述第二训练样本的损失梯度调整所述神经元i存在的参数;
若所述第二夹角大于所述预设角度,则不调整所述神经元i存在的参数。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
获取所述第一任务的第三训练样本和所述第二任务的第四训练样本;
将所述第三训练样本输入至所述更新后的第一模型,获得所述第三训练样本对应的预测值;
基于所述第三训练样本对应的预测值和所述第三训练样本对应的实际值,计算获得所述第三训练样本对应的第一损失值;
将所述第四训练样本输入至所述更新后的第一模型,获得所述第四训练样本对应的预测值;
基于所述第四训练样本对应的预测值和所述第四训练样本对应的实际值,计算获得所述第四训练样本对应的第二损失值;
若所述第二损失值小于预设数值,且所述第一损失值小于或等于第三损失值,则将所述更新后的第一模型,确定为训练好的模型,其中,所述第三损失值为所述第三训练样本在所述第一模型的损失值。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第二损失值大于或等于预设数值,和/或所述第一损失值大于第三损失值,则基于所述目标损失函数,确定所述更新后的第一模型在所述第三训练样本的第三损失梯度,确定所述更新后的第一模型在所述第四训练样本的第四损失梯度;
基于所述第三损失梯度和所述第四损失梯度,调整所述更新后的第一模型的参数。
8.根据权利要求6或7所述的方法,其特征在于,所述将所述更新后的第一模型,确定为训练好的模型之后,还包括:
使用预设的聚类处理方式,在所述第二任务的训练样本中选取目标数目个训练样本,作为所述第二任务的代表训练样本,其中,所述第二任务的代表训练样本用于在针对所述第二任务之后的任务更新所述训练好的模型时,保持对所述第二任务的预测能力;
对所述目标数目个训练样本进行存储。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述获取第一任务的第一训练样本,包括:
在所述第一任务的代表训练样本中,抽样获取所述第一任务的第一训练样本,其中,所述代表训练样本是基于聚类处理的方式,在所述第一任务的训练样本中获得的训练样本。
10.一种持续学习的装置,其特征在于,所述装置包括:
获取模块,用于获取第一任务的第一训练样本、所述第一任务的第一模型和第二任务的第二训练样本,其中,所述第一模型是基于所述第一任务的训练样本进行训练获得的;
确定模块,用于:
基于目标损失函数,确定所述第一模型在所述第一训练样本的第一损失梯度;
基于所述目标损失函数,确定所述第一模型在所述第二训练样本的第二损失梯度;
更新模块,用于基于所述第一损失梯度和所述第二损失梯度,调整所述第一模型的参数,获得更新后的第一模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110660907.0A CN113821968A (zh) | 2021-06-15 | 2021-06-15 | 持续学习的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110660907.0A CN113821968A (zh) | 2021-06-15 | 2021-06-15 | 持续学习的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821968A true CN113821968A (zh) | 2021-12-21 |
Family
ID=78912574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110660907.0A Pending CN113821968A (zh) | 2021-06-15 | 2021-06-15 | 持续学习的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821968A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361635A (zh) * | 2023-06-02 | 2023-06-30 | 中国科学院成都文献情报中心 | 一种多维时序数据异常检测方法 |
-
2021
- 2021-06-15 CN CN202110660907.0A patent/CN113821968A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361635A (zh) * | 2023-06-02 | 2023-06-30 | 中国科学院成都文献情报中心 | 一种多维时序数据异常检测方法 |
CN116361635B (zh) * | 2023-06-02 | 2023-10-10 | 中国科学院成都文献情报中心 | 一种多维时序数据异常检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Durstewitz et al. | Deep neural networks in psychiatry | |
Vásquez-Morales et al. | Explainable prediction of chronic renal disease in the colombian population using neural networks and case-based reasoning | |
US20210397926A1 (en) | Data representations and architectures, systems, and methods for multi-sensory fusion, computing, and cross-domain generalization | |
JP7307926B2 (ja) | 被検体の致命的症状の発生を早期に予測するための予測結果を生成する方法、及びそれを利用する装置 | |
EP3968337A1 (en) | Target object attribute prediction method based on machine learning and related device | |
Kumar et al. | Future of machine learning (ml) and deep learning (dl) in healthcare monitoring system | |
CN114417986A (zh) | 基于人工智能的药物特征信息确定方法及装置 | |
Manduchi et al. | T-dpsom: An interpretable clustering method for unsupervised learning of patient health states | |
KR102469679B1 (ko) | 인공지능 기반의 맞춤형 음식 추천 방법 및 장치 | |
CN113821968A (zh) | 持续学习的方法和装置 | |
Cho et al. | Parallel parsing in a Gradient Symbolic Computation parser | |
CN112466401B (zh) | 利用人工智能ai模型组分析多类数据的方法及装置 | |
US20220044329A1 (en) | Predictive System for Request Approval | |
Lin et al. | A particle swarm optimization based classifier for liver disorders classification | |
Saxena et al. | Deep learning in computational neuroscience | |
Dhanusha et al. | Chaotic chicken swarm optimization-based deep adaptive clustering for alzheimer disease detection | |
CN112349409A (zh) | 一种疾病类型预测方法、装置、设备及系统 | |
Verma et al. | Privacy-preserving continual learning methods for medical image classification: a comparative analysis | |
Murari et al. | Big data analytics with OENN based clinical decision support system | |
Alzubaidi et al. | Deep mining from omics data | |
Vinothini et al. | Heart disease prediction | |
Torralba | Fibonacci Numbers as Hyperparameters for Image Dimension of a Convolu-tional Neural Network Image Prognosis Classification Model of COVID X-ray Images | |
Sahu et al. | Detection of brain abnormalities from spontaneous electroencephalography using spiking neural network | |
US20240169187A1 (en) | Systems and Methods for Supplementing Data With Generative Models | |
US20240169263A1 (en) | Method for operating a machine learning system and a corresponding data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |