一种模型训练的方法和系统与流程

文档序号:21644268发布日期:2020-07-29 02:57阅读:212来源:国知局
一种模型训练的方法和系统与流程

本说明书实施例涉及计算机技术领域,特别涉及一种模型训练方法及系统。



背景技术:

随着计算机科学技术的发展,机器学习在众多领域中都表现出了极为重要的作用。通常,通过集成多个模型进行计算可以达到较好的计算效果。但由于集成多个模型会带来较大的计算量,往往会影响模型的计算速度。因此,如何在不影响模型计算效果的同时减少计算量,是亟需解决的问题。



技术实现要素:

本说明书实施例的一个方面提供一种模型训练方法,包括:获取训练数据,所述训练数据包括多个样本对,每个样本对包括特征数据和标签数据,所述特征数据包括图像数据、文本数据或音频数据;基于每个样本对的特征数据,利用集成模型确定所述特征数据对应的综合输出结果;以及以所述多个样本对的特征数据作为输入,利用对应的综合输出结果和标签数据联合作为监督对初始模型进行训练,以获得最终模型。

本说明书实施例的另一个方面提供一种模型训练系统,包括获取模块、确定模块和训练模块;所述获取模块用于获取训练数据,所述训练数据包括多个样本对,每个样本对包括特征数据和标签数据,所述特征数据包括图像数据、文本数据或音频数据;所述确定模块用于基于每个样本对的特征数据,利用集成模型确定所述特征数据对应的综合输出结果;所述训练模块用于以所述多个样本对的特征数据作为输入,利用对应的综合输出结果和标签数据联合作为监督对初始模型进行训练,以获得最终模型。

本说明书实施例的一个方面提供一种模型训练装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如本申请任一实施例所述的模型训练方法。

附图说明

本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书的一些实施例所示的模型训练系统的示例性模块图;

图2是根据本说明书的一些实施例所示的模型训练方法的示例性流程图;

图3是根据本说明书的一些实施例所示的确定综合输出结果的示例性流程图;以及

图4是根据本说明书的一些实施例所示的迭代训练获得最终模型的示例性流程图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

在一些实施例中,机器学习模型可以应用于不同的场景以处理不同的数据。例如,可以应用于云客服场景、风险管控场景、放贷审核场景、舆情预警场景、语义理解场景、人脸识别场景、语音识别场景等。机器学习模型所处理的数据可以包括但不限于图像数据、文本数据、视频数据和音频数据等一种或多种的组合。

在一些实施例中,机器学习模型可以应用于云客服场景。例如,可以获取人工客服或智能客服机器人与用户的历史对话内容,将其作为训练数据对机器学习模型进行训练,以获得智能答复模型。该智能答复模型可以处理用户的当前话术和/或结合智能客服机器人与用户对话的上下文内容,确定当前输出话术,以回复用户的当前话术。智能答复模型可以协助智能客服机器人更好的回复用户咨询的问题,或者使智能客服机器人在线完成与相关用户的对话,引导用户完成目标任务。在实际应用中,用户的话术是十分丰富多样的,如果智能答复模型具有较差的泛化能力,对于训练数据以外的样本话术则难以准确反应,导致用户体验不佳。此外,若智能答复模型的反应速度太慢,也同样会导致用户体验不好。

在一些实施例中,机器学习模型可以应用于风险管控场景。例如,可以基于历史商户的用户画像信息、行为信息以及风险等级训练机器学习模型,得到风险管控模型。风险管控模型可以用于处理接入网上支付平台的商户的关联信息(例如,商户所有者身份信息、位置信息以及行为信息等),从而确定商户的风险等级,并基于风险等级对商户执行不同的管控操作。实际应用中,需要风险管控模型具有较好的泛化能力、稳定性和准确率,对于训练数据以外的商户信息也能够准确判断出其风险等级,准确采取风险管控措施,以避免造成大的财产损失。

本说明书的一些实施例所示的模型训练系统100可以用于对机器学习模型进行训练,同时提高模型的泛化能力和稳定性以及减少最终模型的参数和计算量,由此训练得到的机器学习模型可以更好的在上述各技术领域提供服务。

应当理解的,本说明书中所提到的机器学习模型的应用场景仅仅是本说明书一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以将机器学习模型应用于其他类似场景,本申请对此不做限制。

图1是根据本说明书的一些实施例所示的模型训练系统的示例性模块图。

如图1所示,该模型训练系统100可以包括获取模块110、确定模块120和训练模块130。

获取模块110可以用于获取训练数据。在一些实施例中,训练数据包括多个样本对,每个样本对包括特征数据和标签数据。特征数据可以包括图像数据、文本数据或音频数据。

确定模块120可以用于基于每个样本对的特征数据,并利用集成模型确定特征数据对应的综合输出结果。在一些实施例中,集成模型可以包括多个子模型。确定模块120可以基于特征数据,利用多个子模型确定多个子输出结果。确定模块120可以基于多个子输出结果,确定特征数据对应的综合输出结果。在一些实施例中,多个子模型的类型不完全相同。

训练模块130可以用于以多个样本对的特征数据作为输入,利用对应的综合输出结果和标签数据联合作为监督对初始模型进行训练,以获得最终模型。在一些实施例中,训练模块130还可以进一步用于在每一轮迭代中基于综合输出结果和训练中模型的输出结果确定第一损失值。训练模块130可以基于标签数据和训练中模型的输出结果确定第二损失值。训练模块130可以基于第一损失值和第二损失值确定综合损失值。训练模块130可以基于综合损失值进行训练。在一些实施例中,训练模块130还可以进一步用于为第一损失值设置第一权重以及为第二损失值设置第二权重,第一权重和第二权重之和为1。其中,综合损失值为第一损失值和第二损失值基第一权重和第二权重的加权运算结果。

应当理解,图1所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于模型训练系统100及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,图1中披露的获取模块110、确定模块120以及训练模块130可以是一个系统中的不同模块,也可以是一个模块实现上述的两个模块的功能。又例如,模型训练系统100中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

图2是根据本说明书的一些实施例所示的模型训练方法的示例性流程图。在一些实施例中,模型训练方法200可以由模型训练系统100实现。

步骤210,获取训练数据,训练数据包括多个样本对,每个样本对包括特征数据和标签数据,特征数据包括图像数据、文本数据或音频数据。具体的,步骤210可以由获取模块110执行。

在一些实施例中,训练数据可以是输入至待训练模型中用于训练模型的数据。训练数据可以包括多个样本对,每个样本对可以包括特征数据和标签数据。在一些实施例中,根据模型的应用领域及应用场景的不同,训练数据可以包括不同类型的数据。在一些实施例中,特征数据和标签数据可以包括但不限于图像数据、文本数据和音频数据等中的一种或多种的组合。例如,在云客服场景中,特征数据可以是用户的历史话术;标签数据可以为人工客户或智能客服机器人针对该用户历史话术作出的回复。

步骤220,基于每个样本对的特征数据,利用集成模型确定特征数据对应的综合输出结果。具体的,步骤220可以由确定模块120执行。

在一些实施例中,集成模型可以包括多个子模型。确定模块120可以基于每个样本对的特征数据,利用多个子模型分别确定多个子输出结果。在此基础上,确定模块120可以基于多个子输出结果,确定每个样本对的特征数据对应的综合输出结果。关于确定特征数据对应的综合输出结果的更多细节可以参考本申请图3及其相关描述。

步骤230,以多个样本对的特征数据作为输入,利用对应的综合输出结果和标签数据联合作为监督对初始模型进行训练,以获得最终模型。具体的,步骤230可以由训练模块130执行。

在一些实施例中,初始模型可以包括用于训练生成最终模型的任何监督学习模型。例如,初始模型可以包括但不限于线性回归模型、神经网络模型、决策树模型、支持向量机模型、朴素贝叶斯模型或者knn模型等。

在一些实施例中,训练模块130可以基于多个样本对的特征数据、对应的综合输出结果和标签数据对初始模型进行训练。具体的,在每一轮迭代中,训练模块130可以:基于综合输出结果和训练中模型的输出结果确定第一损失值;基于标签数据和训练中模型的输出结果确定第二损失值;基于第一损失值和第二损失值确定综合损失值;基于综合损失值进行训练。关于训练初始模型以获得最终模型的更多细节可以参考本申请图4及其相关描述。

图3是根据本说明书的一些实施例所示的确定综合输出结果的示例性流程图。具体的,该流程图300的步骤310和320可以由确定模块120执行。

步骤310,基于特征数据,利用多个子模型确定多个子输出结果。

在一些实施例中,集成模型可以包括多个子模型。在一些实施例中,集成模型中的子模型可以包括但不限于分类模型或回归模型等。例如,分类模型可以包括knn(k-nearestneighbors)模型、感知机模型、朴素贝叶斯模型、决策树模型、逻辑斯蒂回归模型、支持向量机模型、随机森林模型、神经网络模型等,或其任意组合。又例如,回归模型可以包括线性回归模型、多项式回归模型、岭回归模型、lasso回归模型、弹性网络模型、梯度提升迭代决策树(gbdt)模型等,或其任意组合。在一些实施例中,多个子模型的类型可以相同。例如,集成模型中的多个子模型可以均为朴素贝叶斯模型。又例如,集成模型中的多个子模型可以均为多项式回归模型。在一些实施例中,多个子模型的类型不完全相同(如部分相同或全部不同)。例如,多个子模型可以分别为感知机模型、朴素贝叶斯模型、决策树模型和神经网络模型。通过使得多个子模型的类型不完全相同,能够使得集成模型具有更强的稳定性和泛化能力。在一些实施例中,为了使得多个子模型确定出的多个子输出结果的形式相同,该多个子模型可以均为分类模型或均为回归模型。

在一些实施例中,多个子模型可以基于不完全相同(如部分相同或全部不同)的训练数据训练获得。在一些实施例中,多个子模型可以基于相同的训练数据(如均为步骤210中由获取模块110获取的训练数据)训练获得。通过基于相同的训练数据训练获得多个子模型,可以减小由于训练数据不一致所带来的子模型的差异,从而使得集成模型对该相同的训练数据具有更优的处理能力。

步骤320,基于多个子输出结果,确定特征数据对应的综合输出结果。

在一些实施例中,集成模型中的每个子模型可以基于同一样本对的特征数据获得对应的子输出结果,确定模块120可以将多个子输出结果的平均值确定为该特征数据对应的综合输出结果。例如,集成模型中的多个子模型可以均为分类模型,每个子模型基于特征数据得到的子输出结果可以反映该特征数据属于各个类别的概率,则与该特征数据对应的综合输出结果可以为该特征数据属于各个类别的平均概率,其中平均概率为各个子输出结果属于对应类别的概率的平均值。又例如,集成模型中的多个子模型可以均为回归模型,每个子模型根据特征数据得到的与特征数据对应的子输出结果可以为目标预测值,通过计算各个子输出结果的平均值可以确定特征数据对应的综合输出结果。

在一些实施例中,确定模块120可以将多个子输出结果的加权平均值确定为该特征数据对应的综合输出结果。在一些实施例中,各子模型基于特征数据得到的对应的子输出结果的权重可以通过各子模型的性能进行确定。具体地,各子输出结果的权重可以与各子模型的性能正相关。例如,子模型的性能越高,对应的子输出结果的权重越高。性能可以包括但不限于准确率、精确率、召回率、auc(roc曲线下的面积)、rmse(均方根误差)、mae(平均绝对误差)、mse(均方误差)以及coefficientofdetermination(决定系数)等。其中,准确率反映模型分类正确的样本占总样本个数的比例。精确率反映模型预测为正的样本中实际也为正的样本占被预测为正的样本的比例。召回率反映实际为正的样本被模型预测为正的样本所占实际为正的样本的比例。auc(roc曲线下的面积)反映模型预测任何一对(正、负)样本时,正样本的置信度大于负样本的置信度的概率。rmse(均方根误差)、mae(平均绝对误差)以及mse(均方误差)均反映模型预测值和真实值的偏差。coefficientofdetermination(决定系数)反映模型的拟合程度。

图4是根据本说明书的一些实施例所示的获得最终模型的示例性流程图。具体的,该流程图400的步骤410、420、430和440可以由训练模块130执行。

步骤410,在每一轮迭代中,基于综合输出结果和训练中模型的输出结果确定第一损失值。

在一些实施例中,第一损失值可以用于反映训练中模型的输出结果与综合输出结果之间的差异。仅作为示例性说明,集成模型和初始模型为回归模型时,集成模型和初始模型基于相同的特征数据分别产生不同的预测值(即综合输出结果和训练中模型的输出结果),通过损失函数(例如,均方误差函数)可以确定第一损失值。在本实施例中,集成模型是预先训练完成的模型,具有较高的泛化能力和稳定性,在训练初始模型的过程中加入集成模型的监督可以使得最终模型具有集成模型的高泛化能力和高稳定性。

步骤420,基于所述标签数据和训练中模型的所述输出结果确定第二损失值。

在本说明书的实施例中,第二损失值可以用于反映训练中模型的输出结果与标签数据之间的差异。标签数据作为真实目标值,训练中模型的输出结果会与真实目标值存在差异,该差异(即第二损失值)可以通过损失函数计算得出。通过在模型训练过程中使用标签数据作为监督,能够有效提升最终模型的准确率。

在一些实施例中,根据初始模型(或最终模型)的类型可以选择不同的损失函数以确定第一损失值或第二损失值。例如,当最终模型所要解决的是二分类问题时,可以使用二元交叉熵(binarycrossentropy)损失函数确定第一损失值或第二损失值。当最终模型所要解决的是多分类问题时,可以用分类交叉熵(categoricalcrossentropy)损失函数确定第一损失值或第二损失值。当最终模型所要解决的是回归问题时,可以用均方误差(mean-squarederror)损失函数确定第一损失值或第二损失值。当最终模型所要解决的是序列学习问题时,可以用联结主义时序分类(ctc,connectionisttemporalclassification)损失函数确定第一损失值或第二损失值。

步骤430,基于所述第一损失值和所述第二损失值确定综合损失值。

在本说明书的实施例中,综合损失值可以用于反映训练中模型的输出结果与集成模型的综合输出结果和真实目标值之间的整体差异。在一些实施例中,训练模块130可以为第一损失值设置第一权重,为第二损失值设置第二权重,第一权重和所述第二权重之和为1。训练模型130可以进一步将第一损失值和第二损失值基于第一权重和第二权重的加权运算结果(如加权平均值)确定为综合损失值。在一些实施例中,第一权重和第二权重可以是固定值。例如,第一权重为0.3,第二权重为0.7。

在一些实施例中,对初始模型进行训练的过程可以包括多轮迭代。第一权重可以在0~1的范围区间内且与迭代轮次呈负相关,第二权重与迭代轮次呈正相关。即第一权重随着迭代轮次的增加而逐渐递减,第二权重随着迭代轮次的增加而逐渐增加。在模型训练的初期,第一权重较大而第二权重较小时,集成模型的综合输出结果与训练中模型的输出结果的匹配程度(如第一损失值)起到较强的监督作用,集成模型的综合输出结果可以作为监督信号对初始模型进行训练,使得初始模型学习到集成模型的高稳定性和强泛化能力。随着迭代轮次的增加,第一权重逐渐减小,第二权重逐渐增大,标签数据与训练中模型的输出结果的匹配程度起到较强的监督作用,标签数据作为真实目标值可以监督训练中模型的输出结果,从而可以提高最终模型的准确率。

步骤440,基于综合损失值进行训练。

训练模块130可以基于综合损失值对初始模型(或训练中的模型)的参数进行迭代更新(如以最小化综合损失值为目标调整初始模型的参数),进而获得最终模型。由于综合损失值将集成模型的综合输出结果和标签数据共同作为监督信号去训练初始模型,可以使得训练获得的最终模型具有较强的稳定性、较强的泛化能力以及较高的准确率。

本说明书的实施例中还提供一种模型训练装置,该装置可以包括至少一个存储介质和至少一个处理器,至少一个存储介质用于存储计算机指令。至少一个处理器可以用于执行计算机指令以实现如上述的模型训练方法。

本说明书实施例可能带来的有益效果包括但不限于:(1)将集成模型的综合输出结果和标签数据共同作为监督信号训练初始模型,使得最终模型具有较强泛化能力和高稳定性的同时,还保证了最终模型预测的准确率;(2)最终模型的参数相对于集成模型大大减少,使其在实际应用中大大降低了计算量,具有较快的预测速度。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1