掌桥专利:专业的专利平台
掌桥专利
首页

模型更新方法、系统、设备和存储介质

文献发布时间:2024-04-18 19:58:26


模型更新方法、系统、设备和存储介质

技术领域

本发明涉及计算机应用技术领域,更为具体而言,涉及一种模型更新方法、系统、设备和存储介质。

背景技术

目前,传统的机器学习方法是通过离线训练整个模型,然后再利用该模型进行预测,这种方法存在以下缺点:

(1)传统的机器学习方法需要处理大量的数据集以建立模型,而实际应用中的数据集往往十分庞大,传统的机器学习方法的训练时间和计算成本很高,在处理大规模数据集时效率低下;

(2)传统的机器学习方法需要离线训练整个模型,再进行预测。因而对于新的数据,需要重新训练整个模型,成本较高,难以应对实时性要求较高的应用场景;

(3)随着时间推移,数据集特征的分布、大小等往往会发生变化。传统的机器学习方法需要重新训练整个模型以适应新的数据集,较难实现在线更新;

(4)需要专业知识和经验手动选择特征,对数据分布敏感,不适用于非线性问题。

发明内容

为解决上述现有技术存在的问题或至少部分问题,本发明实施方式提供了一种模型更新方法、系统、设备和存储介质,通过原始模型初始化当前模型的参数,进而在当前模型的基础上根据新的数据样本直接进行训练并得到更新后的模型,能够避免重新训练整个模型再进行预测,减少重新训练整个模型的时间和计算成本,以适用于数据集庞大、实时性要求较高的应用场景。

根据本发明的第一方面,本发明实施方式提供了一种模型更新方法,其包括:获取原始模型;获取数据样本;根据所述原始模型初始化当前模型的参数;在所述数据样本中抽取训练样本集和测试样本集;根据所述训练样本集训练所述当前模型得到更新模型的参数;根据所述更新模型的参数更新所述原始模型得到训练后的模型。

根据本发明上述实施方式,通过原始模型初始化当前模型的参数,能够避免重新训练整个模型,从而减少重新训练整个模型的时间和计算成本。并且,在根据原始模型初始化后的当前模型的基础上不断根据接收到的新的数据样本进行模型训练和更新,能够提高模型精度和泛化能力,可以应对大规模数据集、实时性要求高、数据变化等场景,具有更高的效率和更强的适应性。

在本发明的一些实施方式中,根据所述原始模型初始化当前模型的参数包括:将所述原始模型的参数复制到当前模型的参数中。

在本发明的一些实施方式中,根据所述训练样本集训练所述当前模型得到更新模型的参数包括:根据所述训练样本集计算当前模型的损失函数的值;根据所述损失函数的值和输入特征值计算梯度;根据所述梯度更新所述当前模型的参数,更新后的当前模型的参数为更新模型的参数。

在本发明的一些实施方式中,所述模型更新方法还包括:根据所述测试样本集对所述训练后的模型进行性能评估;根据所述性能评估的结果对所述训练后的模型进行优化。

根据本发明的第二方面,本发明实施方式提供了一种模型更新系统,其包括:原始模型获取模块,用于获取原始模型;数据样本获取模块,用于获取数据样本;模型初始化模块,用于根据所述原始模型初始化当前模型的参数;数据抽取模块,用于在所述数据样本中抽取训练样本集和测试样本集;参数更新模块,用于根据所述训练样本集训练所述当前模型得到更新模型的参数,以及根据所述更新模型的参数更新所述原始模型得到训练后的模型。

根据本发明上述实施方式,通过原始模型初始化当前模型的参数,能够避免重新训练整个模型,从而减少重新训练整个模型的时间和计算成本。并且,在根据原始模型初始化后的当前模型的基础上不断根据接收到的新的数据样本进行模型训练和更新,能够提高模型精度和泛化能力,可以应对大规模数据集、实时性要求高、数据变化等场景,具有更高的效率和更强的适应性。

在本发明的一些实施方式中,根据所述原始模型初始化当前模型的参数包括:将所述原始模型的参数复制到当前模型的参数中。

在本发明的一些实施方式中,根据所述训练样本集训练所述当前模型得到更新模型的参数包括:根据所述训练样本集计算当前模型的损失函数的值;根据所述损失函数的值和输入特征值计算梯度;根据所述梯度更新所述当前模型的参数,更新后的当前模型的参数为得更新模型的参数。

在本发明的一些实施方式中,所述模型更新系统还包括:模型评估模块,用于根据所述测试样本集对所述训练后的模型进行性能评估;模型优化模块,用于根据所述性能评估的结果对所述训练后的模型进行优化。

根据本发明的第三方面,本发明实施方式提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述模型更新方法所包含的步骤。

根据本发明的第四方面,本发明实施方式提供一种包括存储器和处理器的计算机设备,所述存储器用于存储一条或多条计算机可读指令,其中,所述一条或多条计算机可读指令被所述处理器执行时能够实现如上任意一种实施方式所述的模型更新方法。

由上述可知,实施本发明提供的模型更新方法、系统、设备和存储介质,通过原始模型初始化当前模型的参数,能够避免重新训练整个模型,从而减少重新训练整个模型的时间和计算成本。并且,在根据原始模型初始化后的当前模型的基础上不断根据接收到的新的数据样本进行模型训练和更新,能够提高模型精度和泛化能力,可以应对大规模数据集、实时性要求高、数据变化等场景,具有更高的效率和更强的适应性。

附图说明

图1是根据本发明的实施例1的模型更新方法的流程示意图;

图2是根据本发明一种实施方式的对训练后的模型进行性能评估的方法流程示意图;

图3是根据本发明的实施例2的模型更新方法的流程示意图;

图4是根据本发明的实施例2的模型更新方法中步骤S37包含的具体步骤的示意图;

图5是根据本发明的实施例4的模型更新系统的架构示意图。

具体实施方式

以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。

【实施例1】

图1是根据本发明的实施例1的模型更新方法的流程示意图。

如图1所示,在本发明的实施例1中,所述模型更新方法可包括:步骤S11、步骤S12、步骤S13、步骤S14、步骤S15和步骤S16,下面对上述步骤进行具体的描述。

在步骤S11中,获取原始模型。在本实施例中,原始模型是根据以前获取的数据训练得到的模型。

在步骤S12中,根据所述原始模型初始化当前模型的参数。在一些实施方式中,根据所述原始模型初始化当前模型的参数包括:将所述原始模型的参数复制到当前模型的参数中。

在步骤S13中,获取数据样本。在本实施例中,该步骤S13中获取的数据样本是在训练得到原始模型之后产生的增量数据。其中,步骤S13中获取的数据样本来自于用户的操作、外部的传感器数据、互联网等在实际应用中不断涌现并获取的数据。在一些实施方式中,获取数据样本包括:从数据源收集数据,并将其处理为可用于训练的格式。在进一步实施方式中,从数据源收集数据后先对数据样本进行预处理,预处理操作具体包括:

(1)删除含有缺失值的行,或者使用均值、中位数或众数等统计量填充缺失值;

(2)使用统计方法检测并处理异常值,例如,采用Z-score法确定异常值并删除异常值;

(3)删除重复的值。

在步骤S14中,在所述数据样本中抽取训练样本集和测试样本集。在一些实施方式中,训练样本集和测试样本集是从原始数据集中随机抽取的,并保持训练样本集和测试样本集的分布一致,从而能够避免样本选择偏差问题,确保模型在测试样本集上的性能能够真实反映模型的泛化能力。

在步骤S15中,根据所述训练样本集训练所述当前模型得到更新模型的参数。

在一些实施方式中,根据所述训练样本集训练所述当前模型得到更新模型的参数包括:根据所述训练样本集计算当前模型的损失函数的值;根据所述损失函数的值和输入特征值计算梯度;根据所述梯度更新所述当前模型的参数,更新后的当前模型的参数为更新模型的参数。其中,梯度是损失函数对模型中每个参数的导数,用来指导模型参数的更新方向。在该实施方式中,首先通过损失函数计算训练样本集中的每个样本的预测值和实际值之间的差值,即误差,然后将所述误差值与对应的输入特征值相乘,求和,最后除以样本数量,得到每个参数的梯度。其中,可以采用交叉熵、均方误差等常见的损失函数。

在步骤S16中,根据所述更新模型的参数更新所述原始模型得到训练后的模型。在一些实施方式中,将原始模型中的参数替换为更新模型的参数,得到训练后的模型。

在本实施例中,步骤S11、S12和S13之间没有固定的先后顺序。

采用本发明实施例1的上述模型更新方法,通过原始模型初始化当前模型的参数,能够避免重新训练整个模型,从而减少重新训练整个模型的时间和计算成本。并且,在根据原始模型初始化后的当前模型的基础上不断根据接收到的新的数据样本进行模型训练和更新,能够使模型更好地拟合新数据,以提高模型精度和泛化能力,从而应对大规模数据集、实时性要求高、数据变化等场景,具有更高的效率和更强的适应性。

在进一步实施方式中,模型更新方法还包括:根据所述测试样本集对所述训练后的模型进行性能评估;根据所述性能评估的结果对所述训练后的模型进行优化。示例性的,通过测试样本集计算训练后的模型的准确率、召回率、F1值等指标来进行性能评估,其中,准确率为预测为正例的样本中实际为正例的比例,准确率越高,表示模型的预测结果与真实结果的一致性越高。召回率表示实际为正例的样本中被预测为正例的比例。召回率衡量模型对正例样本的查全率,即模型能够正确识别出多少个正例样本。召回率越高,表示模型对正例样本的识别能力越强。F1值是准确率和召回率的调和平均数。F1值计算公式为F1=2*(precision*recall)/(precision+recall)其中precision表示准确率,recall表示召回率。F1值越高,表示模型在同时考虑准确率和召回率时的综合表现越好。

本发明给出一种对训练后的模型进行性能评估的示例性方法,如图2所示,该性能评估方法可包括如下步骤:步骤S21、步骤S22、步骤S23、步骤S24、步骤S25和步骤S26,下面对上述步骤进行具体的描述。

在步骤S21中,遍历测试样本集,选择测试样本集中的一部分样本作为测试数据样本。

在步骤S22中,根据测试数据样本对训练后的模型进行测试,计算预测值。

在步骤S23中,计算真实值。

在步骤S24中,计算混淆矩阵。

其中,混淆矩阵是一个二维矩阵,用于展示分类模型的预测结果与真实标签之间的关系。混淆矩阵的四个元素分别表示为:

True Positive(TP):模型正确预测为正例的样本数;

False Positive(FP):模型错误预测为正例的样本数;

False Negative(FN):模型错误预测为负例的样本数;

True Negative(TN):模型正确预测为负例的样本数。

在步骤S25中,计算准确率、召回率、F1值等指标对训练后的模型进行性能评估。

准确率(Accuracy):准确率是分类模型正确预测的样本数占总样本数的比例。计算公式为:准确率=(TP+TN)/(TP+FP+FN+TN)。混淆矩阵中的TP、FP、FN、TN元素用于计算准确率。

召回率(Recall):召回率是分类模型正确预测为正例的样本数占实际正例样本数的比例。计算公式为:召回率=TP/(TP+FN)。混淆矩阵中的TP和FN元素用于计算召回率。

精确率(Precision):精确率是分类模型正确预测为正例的样本数占预测为正例的样本数的比例。计算公式为:精确率=TP/(TP+FP)。混淆矩阵中的TP和FP元素用于计算精确率。

F1值(F1-score):F1值是综合考虑了精确率和召回率的评估指标,用于衡量分类模型的性能。计算公式为:F1=2(precision recall)/(precision+recall)。混淆矩阵中的TP、FP和FN元素用于计算F1值。

在步骤S26中,判断是否遍历完测试样本集中的每个样本,如果是,则结束,如果没有遍历完测试样本集中的每个样本,则返回步骤S22。

在本发明的示例性实施方式中,当性能评估的结果不符合预期时,采用下述两种优化方式对模型进行优化:

1、增加隐藏层:增加模型的复杂度,从而提高模型的表达能力。同时,增加隐藏层也会增加模型的训练时间和计算复杂度,需结合更新期望时间增加隐藏层。

2、调整参数:例如,在神经网络中,通过调整学习率、正则化系数等参数来优化模型。调整参数需要根据具体的问题和数据集进行调整,需要进行多次实验来确定最优的参数。

在更进一步实施方式中,将训练好的模型应用到实际问题中,例如分类、预测等实现模型的应用模型:并定期检查模型性能,对模型进行修改和更新,以保证其准确性和可用性,实现模型维护。

【实施例2】

图3是根据本发明的实施例2的模型更新方法的流程示意图。

如图3所示,在本发明的实施例2中,使用一个线性回归模型作为示例并采用随机梯度下降算法(Stochastic Gradient Descent,SGD)实现对模型的训练,实施例2的模型更新方法可包括如下步骤:步骤S31、步骤S32、步骤S33、步骤S34、步骤S35和步骤S36,下面对上述步骤进行具体的描述。

在步骤S31中,初始化模型参数。在本实施例中,在步骤S31之前,先保存原始模型,原始模型数据可以是以前获取的数据训练得到的模型包含的数据;也可以是初次收集到的数据进行训练得到的模型包含的数据,其中,如果是初次对模型训练,则原始模型数据可以为空。然后,根据已有的模型参数初始化新的模型参数,可选的,通过将原有模型参数复制到新模型参数中来实现现有模型的初始化。

在步骤S32中,选择新数据集和数据样本。在本实施例中,获取训练得到原始模型之后数据源产生的增量数据作为新数据集,并对新数据集进行如实施例1中步骤S13中的预处理。然后,将预处理后的新数据集划分为训练集和测试集,并从测试集中随机选择一部分样本作为训练样本,可选的,采用随机抽样或者其他的采样策略来选取样本。

在步骤S33中,计算损失函数的值。根据步骤S32中选定的一部分样本数据(当前样本)计算步骤S31中初始化后得到的现有模型(当前模型)的损失函数的值。其中,损失函数用于评估模型的好坏,可以采用交叉熵、均方误差等常见的损失函数。在随机梯度下降算法中,每个样本的损失函数的值都是不同的。

在步骤S34中,根据损失函数的值和特征值计算梯度,其中,梯度是损失函数对现有模型中的每个参数的导数,用于指导模型参数的更新方向。在一些实施方式中,根据决策树自动选择特征,以减少手动输入特征的需要。具体而言,遍历每一个特征(特征可以是指定原始数据集合,可以是根据专业知识构造的特征),然后对每个特征的每个可能的分割点计算一个分割标准(如信息增益、基尼不纯度等),选择分割标准最优(信息增益最大或基尼不纯度最小)的特征进行分割,该处理过程会在每个节点重复进行,直到满足停止条件(如树达到最大深度,或者节点中的样本数量小于预设阈值等)。由此,基于决策树的特征选择能够在模型构建过程中自动完成,避免了手动进行特征选择和处理,提高了对大规模数据的处理能力。在进一步实施方式中,针对选择的特征值进行标准化处理,并使用对数转换(例如采用Math.log()函数)、平方转换方法(如Math.pow()函数)进行特征转换。

在步骤S35中,使用步骤S34中计算得到的梯度更新现有模型的参数。

在步骤S36中,判断是否达到迭代次数,如果是则执行步骤S37,如果没有达到迭代次数则返回步骤S33。

在步骤S33~S36中,随机梯度下降算法采用的是参数逐渐调整的方式,使用步骤S33中选定的当前样本得到的梯度来更新参数,直到达到预设的迭代/训练次数或者损失函数收敛时停止当前模型参数的调整。

在步骤S37中,重复步骤S32~S36,直到新数据集中的每个样本都被使用过一次时,得到更新后的模型参数。由此,可以将基于增量数据训练得到的更新后的模型参数替换原始模型的参数,完成原始模型的更新,并且根据需要重新保存更新后的模型。

在本实施例中,步骤S31和S32之间没有固定的先后顺序。

采用本发明实施例2的上述模型更新方法,可以适应各种类型的数据,不拘泥于输入特征的维度和种类;对新数据的学习能力更强,能够快速为新数据建立预测模型,并在训练过程中持续学习、不断完善和优化预测效果,具有很强的自适应学习效能:可以处理大规模数据集,也可以快速进行训练和推理,具有高可靠性和鲁棒性;可扩展性强,通过增加网络的深度和宽度,可以更好地发现输入数据中的隐藏模式;支持在线学习,可以在不断地接收新数据的情况下,不断地更新模型参数;支持增量更新,动态调整模型参数:可以在不重新训练整个模型的情况下,通过增量地学习新数据来灵活、高效地更新模型参数。同时,本发明利用深度神经网络对数据进行处理和特征提取,可以对复杂的数据结构进行建模,从而提高模型的预测准确率。

在一些实施方式中,步骤S37的每一次迭代过程中使用新数据集中的新数据样本作为训练样本更新模型的参数,该过程可以是单次迭代过程,也可以是多次迭代过程,以迭代收敛为目标。

在进一步的实施方式中,将步骤S37的每一次迭代得到的模型与原始模型进行比较,并确定哪个模型更优,在确定哪个模型更优之后,将迭代得到的模型参数融合到上一次迭代得到的模型参数中形成新的模型参数。其中,示例性地采用交叉验证等技术评估模型准确性,并且根据实际需求选择更合适的模型;以及,示例性地采用加权平均等方法将迭代得到的模型参数融合到上一次迭代得到的模型参数中形成新的模型参数。

在其他可选的实施方式中,采用批量梯度下降算法代替本发明实施例2的模型更新方法的随机梯度下降算法实现对模型的训练。

【实施例3】

图4是根据本发明的实施例2的模型更新方法中步骤S37包含的具体步骤的示意图。

如图4所示,在本发明的实施例3中,实施例2的步骤S37可包括:步骤S371、步骤S372、步骤S373、步骤S374和步骤S375,下面对上述步骤进行具体的描述。

在步骤S371中,获取新数据集,遍历新数据样本。在本实施例中,新数据集为实施例2中步骤S32获取的新数据集,新数据样本为新数据集中除步骤S32选择的样本以外剩余的数据样本。

在步骤S372中,从新数据样本中随机选择一个样本作为新训练样本。

在步骤S373中,根据新训练样本对模型进行训练,并计算该模型的预测值和误差。其中,新训练样本的训练对象为上一次迭代后得到的模型。

在步骤S374中,根据预测值和误差对模型的参数进行更新,得到本次迭代后的模型参数。其中,使用当前的模型参数,输入训练数据得到预测值;预测值与实际值之间的差值为误差;对模型的参数进行更新是使模型参数沿着其梯度的负方向移动一小步。

在步骤S375中,判断是否遍历完新数据样本中的所有数据,如果是,则结束,如果没有遍历完新数据样本中的所有数据,则返回步骤S372。

【实施例4】

图5是根据本发明的实施例4的模型更新系统的架构示意图。

如图5所示,所述模型更新系统包括:

原始模型获取模块410,用于获取原始模型。

数据样本获取模块420,用于获取数据样本。

模型初始化模块430,用于根据所述原始模型初始化当前模型的参数。在一些实施方式中,根据所述原始模型初始化当前模型的参数包括:将所述原始模型的参数复制到当前模型的参数中。

数据抽取模块440,用于在所述数据样本中抽取训练样本集和测试样本集。在一些实施方式中,训练样本集和测试样本集是从原始数据集中随机抽取的,并保持训练样本集和测试样本集的分布一致,从而能够避免样本选择偏差问题,确保模型在测试样本集上的性能能够真实反映模型的泛化能力。

参数更新模块450,用于根据所述训练样本集训练所述当前模型得到更新模型的参数,以及根据所述更新模型的参数更新所述原始模型得到训练后的模型。

在一些实施方式中,根据所述训练样本集训练所述当前模型得到更新模型的参数包括:根据所述训练样本集计算当前模型的损失函数的值;根据所述损失函数的值和输入特征值计算梯度;根据所述梯度更新所述当前模型的参数,更新后的当前模型的参数为更新模型的参数。其中,梯度是损失函数对模型中每个参数的导数,用来指导模型参数的更新方向。

模型评估模块460,用于根据所述测试样本集对所述训练后的模型进行性能评估。在一些实施方式中,通过测试样本集计算训练后的模型的准确率、召回率、F1值等指标来进行性能评估。

模型优化模块470,用于根据所述性能评估的结果对所述训练后的模型进行优化。在一些实施方式中,当性能评估的结果不符合预期时,采用增加隐藏层和调整参数的优化方式对模型进行优化。

采用本发明实施例4的上述模型更新系统,通过原始模型初始化当前模型的参数,能够避免重新训练整个模型,从而减少重新训练整个模型的时间和计算成本。并且,在根据原始模型初始化后的当前模型的基础上不断根据接收到的新的数据样本进行模型训练和更新,能够使模型更好地拟合新数据,以提高模型精度和泛化能力,从而应对大规模数据集、实时性要求高、数据变化等场景,具有更高的效率和更强的适应性。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。

对应的,本发明实施方式还提供一种计算机可读存储介质,其上存储有计算机可读指令或程序,所述计算机可读指令或程序被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述模型更新方法所包含的步骤,在此不再赘述。其中,所述存储介质可以包括:例如,光盘、硬盘、软盘、闪存、磁带等。

另外,本发明实施方式还提供一种包括存储器和处理器的计算机设备,所述存储器用于存储一条或多条计算机可读指令或程序,其中,所述一条或多条计算机可读指令或程序被所述处理器执行时能够实现如上任意一种实施方式所述的模型更新方法。所述计算机设备可以是,例如,服务器、台式计算机、笔记本计算机、平板电脑等。

最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。因此本发明的保护范围应以权利要求为准。

相关技术
  • 基于安卓系统的界面更新方法、系统、设备及存储介质
  • 一种更新物种识别模型库的方法、存储介质及电子设备
  • 一种固件更新的方法、系统、装置、设备及存储介质
  • 云端行事历自动更新方法、系统、设备及存储介质
  • 自动驾驶电子围栏更新方法、系统、设备及存储介质
  • 一种模型参数的更新方法、系统、设备及存储介质
  • 更新算法模型的自学习方法、系统、设备及存储介质
技术分类

06120116490041