一种机器学习系统的训练方法和训练系统与流程

文档序号:11234039阅读:1148来源:国知局
一种机器学习系统的训练方法和训练系统与流程

本申请涉及大数据处理领域,尤其涉及一种机器学习系统的训练方法和训练系统。



背景技术:

现如今,服务好用户是各互联网公司都希望实现的目标。为此,绝大部分公司都采用机器学习的方式捕捉用户的偏好和习惯,提供个性化的服务。举例来说,各网站可以利用机器学习系统,收集用户上网的行为数据,为不同性别/年龄的用户提供不同的搜索结果,做到最大程度地根据用户的喜好提供服务。

上述的机器学习系统可以收集大量用户的行为数据,例如用户浏览/点击/购买/顶帖子/发表对帖子的意见等等,并利用某些机器学习算法,离线对机器学习系统进行训练。在得到一个预测模型之后,放在线上系统,对用户提供服务。例如亚马逊的推荐系统,其可以根据用户以往的行为日志(比如包含昨天以及昨天再向前推2周的日志),学习用户偏好之后,给不同用户推荐不同的商品.

这种利用以往用户行为数据,离线进行训练,得到模型的方式称为离线学习。然而正常情况下用户行为和兴趣可能在一天之内都会发生显著变化,由于离线学习系统中用户当下产生的日志并不能马上加入到系统中去训练,离线学习显然不能捕获这种变化。

在线学习就是模型随着接收的新训练数据,不断更新模型本身。因而它能取得更好的效果。在线学习精度比较高,但由于数据采集的时间段比较短,模型受数据中噪声影响比较大,造成模型训练不稳定;同时由于在线学习采用异步更新模型的方式,训练数据不断流入模型,模型不断进行更新学习,经常由于某些不可控的问题导致模型训练卡死,出现训练失败,导致无法产出可用的模型、影响线上服务、损害用户体验。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的机器学习系统的训练方法和训练系统。

为解决上述问题,本申请公开一种机器学习系统的训练方法,利用训练数据对所述机器学习系统进行训练,所述训练方法包括:

将所述训练数据分配给多个工作机;

将每一个工作机分配得到的训练数据划分为多个数据片;

获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;

汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值;

利用当前权重和/或当前损失函数值执行模型异常检测;

当所述模型异常检测的结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;

当所述模型异常检测的结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

本申请实施例至少具有以下优点:

根据本申请实施例提出的机器学习系统的训练方法和训练系统,通过使每一个工作机一次只针对一个数据片进行处理、并根据该数据片计算得出的本地权重和本地损失函数值进行汇总,达到了每一次计算后能够准确地小幅度更新权重和损失函数值的效果,避免了现有技术的在线学习中容易受到数据中噪声影响的问题。同时,在获得当前权重和/或当前损失函数值之后执行异常检测,当检测出所获得的当前权重和/或当前损失函数值属于第一类异常或第二类异常,可以抛弃本次计算出的当前权重和/或当前损失函数值,而将上一次汇总得到的权重和损失函数值输入机器学习模型,或者对本次计算出的当前权重和/或当前损失函数值进行修正,将每次计算和汇总获得的权重和损失函数值的更新限制在有效范围内,避免了模型训练的不稳定性,增强了 系统抗数据噪声的能力,提升了在线学习的机器学习系统的稳定性,确保了机器学习系统的正常产出,提高了上线后的机器学习系统的服务能力。

附图说明

图1是本申请第一实施例的机器学习系统的训练方法的流程图。

图2是本申请第二实施例的机器学习系统的训练方法的流程图。

图3是本申请第三实施例的机器学习系统的训练方法的流程图。

图4是本申请第四实施例的机器学习系统的训练系统的方框图。

图5是本申请第五实施例的机器学习系统的训练系统的方框图。

图6是本申请第六实施例的机器学习系统的训练系统的方框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。

本申请的核心思想之一在于,提出一种机器学习系统的训练方法,在该方法中,首先将训练数据分配给多个工作机;将每一个工作机分配得到的训练数据划分为多个数据片;获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;汇总这些本地权重和本地损失函数值,获得当前权重和当前损失函数值;利用当前权重和/或当前损失函数值执行模型异常检测;当检测结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;当检测结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入机器学习系统进行训练。

第一实施例

本申请第一实施例提出一种机器学习系统的训练方法,如图1所示为本申请第一实施例的机器学习系统的训练方法的流程图。该机器学习系统优选 为分布式机器学习系统,包括参数服务器(parameterserver),该参数服务器例如可以包括多个工作机(worker或者slaver)、多个服务器(server)、一个协调器(coordinator)。如图1所示,该训练方法包括如下步骤:

步骤s101,将所述训练数据分配给多个工作机;

在这一步骤中,例如,每个工作机可以根据其标识读取属于自己的训练数据,各工作机之间的数据不重叠。这一步骤例如可以由协调器按照每个工作机的id将训练数据划分为属于每一个工作机的训练数据,并由对应的工作机读取该训练数据。

步骤s102,将每一个工作机分配得到的训练数据划分为多个数据片;

在这一步骤中,例如,每一个工作机基于其自身的系统配置将其分配得到的训练数据划分为多个数据片,每一个工作机的每次处理是基于一个数据片进行处理。即,每个工作机每次只处理一个数据片。

步骤s103,获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;

在这一步骤中,例如,在每一个工作机中,基于该工作机获得的训练数据中的一个数据片,计算获得该工作机该次计算对应的本地权重和本地损失函数值;由于该机器学习系统包括多个工作机,在这一步骤中,可以获得多个工作机在该次计算中获得的本地权重和本地损失函数值。

步骤s104,汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值;

在这一步骤中,例如,每一个工作机将计算出的本地权重和本地损失函数值发送至服务器,由服务器对由多个工作机在本次计算出的多个本地权重和本地损失函数值进行汇总,获得当前权重和当前损失函数值。汇总的过程包括但不限于相加、相加后平均等,本发明并不特别限制。

在步骤s103中每一个工作机计算出本地权重和本地损失函数值之后,可以异步地发送给服务器,在步骤s104中,可以由协调器驱动服务器进行多个本地权重和本地损失函数的汇总。

步骤s105,利用当前权重和/或当前损失函数值执行模型异常检测;

在这一步骤中,例如,可以将汇总后的当前权重和/或当前损失函数值输入模型异常检测装置,根据预设的条件对模型是否异常进行检测。检测的结果例如可以为正常、第一类异常和第二类异常,并在后续分别针对这三种情况进行对应处理。

在一实施例中,模型异常检测装置的输入值为当前权重、当前损失函数值、上一次汇总后的权重和上一次汇总后的损失函数值。上一次汇总后的权重由每一个工作机基于上一次计算使用的数据片计算得出的上一次本地权重进行汇总获得;上一次汇总后的损失函数值由每一个工作机基于上一次计算使用的数据片计算得出的上一次本地损失函数值进行汇总获得。

步骤s106,当所述模型异常检测的结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;

在这一步骤中,例如检测结果为第一类异常,则忽略或删除每一个工作机本次计算获得的本地权重和本地损失函数值以及汇总后的当前权重和当前损失函数值,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练。

步骤s107,当所述模型异常检测的结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

在这一步骤中,例如检测结果是第二类异常,可以进入模型微调装置,将当前权重和/或当前损失函数值减去预设的第一阈值,获得每一个元素的数值均位于第一阈值内的当前权重和/或当前损失函数值,并输入机器学习系统进行训练。特别地,当第一次减去预设的第一阈值仍不能得到位于第一阈值内的当前权重和/或当前损失函数值时,则可以再进行一次或多次减去第一阈值的处理,直到每一个元素的数值均位于第一阈值内。

在本申请第一实施例提出的机器学习系统的训练方法中,通过使每一个工作机一次只针对一个数据片进行处理、并根据该数据片计算得出的本地权重和本地损失函数值进行汇总,达到了每一次计算后能够准确地小幅度更新权重和损失函数值的效果,避免了现有技术的在线学习中容易受到数据中噪 声影响的问题。同时,在获得当前权重和/或当前损失函数值之后执行异常检测,当检测出所获得的当前权重和/或当前损失函数值属于第一类异常或第二类异常,可以抛弃本次计算出的当前权重和/或当前损失函数值,而将上一次汇总得到的权重和损失函数值输入机器学习模型,或者对本次计算出的当前权重和/或当前损失函数值进行修正,将每次计算和汇总获得的权重和损失函数值的更新限制在有效范围内,避免了模型训练的不稳定性,增强了系统抗数据噪声的能力,提升了在线学习的机器学习系统的稳定性,确保了机器学习系统的正常产出,提高了上线后的机器学习系统的服务能力。

第二实施例

本申请第二实施例提出一种机器学习系统的训练方法,如图2所示为本申请第二实施例的机器学习系统的训练方法的流程图。该机器学习系统优选为分布式机器学习系统,如图2所示,该训练方法包括如下步骤:

s201,将所述训练数据分配给多个工作机;

s202,将每一个工作机分配得到的训练数据划分为多个数据片;

s203,获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;

s204,汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值;

s205,利用当前权重和/或当前损失函数值执行模型异常检测;

s206,当所述模型异常检测的结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;

s207,当所述模型异常检测的结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

上述步骤s201至s207与第一实施例中的步骤s101至s107相同的部分在此不再赘述。

在本实施例中,步骤s205,即所述利用当前权重和/或当前损失函数值 执行模型异常检测的步骤包括:

子步骤s205a,判断当前损失函数值是否大于上一次汇总后的损失函数的值的k倍;

在这一子步骤中,可以预先设置数值k,作为判定当前损失函数值是否异常的判定依据。

子步骤s205b,当判断出当前损失函数值是否大于上一次汇总后的损失函数的值的k倍时,判定所述模型异常检测的结果为第一类异常。

在这一子步骤中,当判断出当前损失函数值大于上一次汇总后的损失函数的值的k倍时,可以认为本次计算并汇总出的当前损失函数值为第一类异常,即较为严重的异常。当判断出模型出现这一类异常,则可以直接抛弃本次计算出的当前权重和当前损失函数值。

在本实施例中,步骤s205,即所述利用当前权重和/或当前损失函数值执行模型异常检测的步骤还可以包括:

子步骤s205c判断当前权重中的元素的最大值和/或最小值的绝对值是否大于预设的第二阈值;

在这一子步骤中,当前权重为包括n个元素的向量,在汇总得出当前权重后,可以判断该向量的每一个元素(即每一个维度)的最大值和/或最小值的绝对值是否大于预设的第二阈值;第二阈值可以预先指定。

子步骤s205d,当判断出当前权重中的元素的最大值和/或最小值的绝对值是否大于预设的第二阈值时,判定所述模型异常检测的结果为第二类异常。

在这一子步骤中,当判断出当前权重中的元素的最大值和最小值中的至少一者的绝对值大于预设的第二阈值时,则认为所述模型存在第二类异常,即相对较为轻微的异常。可以通过修正保留本次计算出的当前权重和当前损失函数值,将其修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

优选地,将当前权重和/或当前损失函数值修正为第一阈值内的本地权重和/或本地损失函数值的步骤可以包括:

将所述最大值和/或最小值的绝对值大于预设的第二阈值的元素减去所述第二阈值,获得每一个元素均位于所述第二阈值内的当前权重。

在本实施例中,步骤s205,即所述利用当前权重和/或当前损失函数值执行模型异常检测的步骤还可以包括:

子步骤s205e,判断前n次汇总后的损失函数值的平均值是否大于第一次汇总后的损失函数值;

在这一子步骤中,前n次汇总得出的损失函数值例如存储在特定的存储区域,可以计算前n次汇总后的损失函数值的平均值,并判断该值是否大于第一次汇总得出的损失函数值。

子步骤s205f,当判断出前n次汇总后的损失函数值的平均值大于第一次汇总后的损失函数值时,判定所述模型异常检测的结果为第一类异常。

在这一子步骤中,当判断出前n次汇总后的损失函数值的平均值大于第一次汇总后的损失函数值时,则可以认为该模型存在第一类异常,即较为严重的异常,当判断出模型出现这一类异常,则可以直接抛弃本次计算出的当前权重和当前损失函数值。

在本申请第二实施例提出的机器学习系统的训练方法中,通过使每一个工作机一次只针对一个数据片进行处理、并根据该数据片计算得出的本地权重和本地损失函数值进行汇总,达到了每一次计算后能够准确地小幅度更新权重和损失函数值的效果,避免了现有技术的在线学习中容易受到数据中噪声影响的问题。同时,在获得当前权重和/或当前损失函数值之后执行异常检测,当检测出所获得的当前权重和/或当前损失函数值属于第一类异常或第二类异常,可以抛弃本次计算出的当前权重和/或当前损失函数值,而将上一次汇总得到的权重和损失函数值输入机器学习模型,或者对本次计算出的当前权重和/或当前损失函数值进行修正,将每次计算和汇总获得的权重和损失函数值的更新限制在有效范围内,避免了模型训练的不稳定性,增强了系统抗数据噪声的能力,提升了在线学习的机器学习系统的稳定性,确保了机器学习系统的正常产出,提高了上线后的机器学习系统的服务能力。

第三实施例

本申请第三实施例提出一种机器学习系统的训练方法,如图3所示为本申请第三实施例的机器学习系统的训练方法的流程图。该机器学习系统优选为分布式机器学习系统,如图3所示,该训练方法包括如下步骤:

s301,将所述训练数据分配给多个工作机;

s302,将每一个工作机分配得到的训练数据划分为多个数据片;

s303,获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;

s304,汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值;

s305,利用当前权重和/或当前损失函数值执行模型异常检测;

s306,当所述模型异常检测的结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;

s307,当所述模型异常检测的结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

上述步骤s301至s307与第一实施例中的步骤s101至s107相同的部分在此不再赘述。

在本实施例中,在步骤s305即所述利用当前权重和/或当前损失函数值执行模型异常检测的步骤之后,所述训练方法还可以包括:

s308,当所述模型异常检测的结果为正常,将当前权重和/或当前损失函数值输入所述机器学习系统进行训练。

在这一实施例中,当检测出本次计算并汇总后的当前权重和当前损失函数值下该模型正常,则可以将当前权重和/或当前损失函数值作为有效的计算结果,输入所述机器学习系统进行训练。

进一步地,在该实施例中,在步骤s308即所述当所述模型异常检测的结果为正常,将当前权重和/或当前损失函数值输入所述机器学习系统进行训练的步骤之后,所述方法还包括:

s309,判断训练是否结束;

在该步骤中,例如,当检测到当前损失函数的值与上一次汇总后损失函数的值小于第三阈值时,判定训练结束。该第三阈值可以是系统检测到的阈值。

然而,本领域技术人员可以明确,该判断步骤并不限定于通过与差值与第三阈值的比较的方式进行,本领域还有多种验证训练是否可以结束的方法,在此不再赘述。

s310,当判定训练结束,产出所述模型;

在这一步骤中,当判断出训练结束,即该模型已可以使用,则产出该模型,例如可以使该模型上线进行应用。

s311,当判定训练未结束,重复执行获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值的步骤。

在这一步骤中,例如,当检测到当前损失函数的值与上一次汇总后损失函数的值大于第三阈值时,判定训练未结束。在此情况下,可以重复执行获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值的步骤,即让每一个工作机继续基于其他数据片计算出本地权重和本地损失函数值,并在后续汇总获得当前权重和当前损失函数值,重复该训练方法,直到获得满足使用要求的模型。

另外,在第一至第三实施例公开的方案中,优先地,在将所述训练数据分配给多个工作机的步骤之前,所述方法还包括:

获取训练数据;

将所述训练数据分配给多个工作机的步骤还包括:

按照每一个工作机的标识,将所述训练数据分配给多个工作机。

另外,在第一至第三实施例公开的方案中,优先地,所述汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值的步骤可以包括:

将每一个工作机基于每一个数据片计算出的所述本地权重相加,获得当前权重;

将每一个工作机基于每一个数据片计算出的所述本地损失函数值相加,获得当前本地损失函数。

在本申请第三实施例提出的机器学习系统的训练方法中,通过使每一个工作机一次只针对一个数据片进行处理、并根据该数据片计算得出的本地权重和本地损失函数值进行汇总,达到了每一次计算后能够准确地小幅度更新权重和损失函数值的效果,避免了现有技术的在线学习中容易受到数据中噪声影响的问题。同时,在获得当前权重和/或当前损失函数值之后执行异常检测,当检测出所获得的当前权重和/或当前损失函数值属于第一类异常或第二类异常,可以抛弃本次计算出的当前权重和/或当前损失函数值,而将上一次汇总得到的权重和损失函数值输入机器学习模型,或者对本次计算出的当前权重和/或当前损失函数值进行修正,将每次计算和汇总获得的权重和损失函数值的更新限制在有效范围内,避免了模型训练的不稳定性,增强了系统抗数据噪声的能力,提升了在线学习的机器学习系统的稳定性,确保了机器学习系统的正常产出,提高了上线后的机器学习系统的服务能力。

第四实施例

本申请第四实施例提出一种机器学习系统的训练系统,如图4是本申请第四实施例的机器学习系统的训练系统的方框图。该机器学习系统优选为分布式机器学习系统,如图4所示,该训练系统400包括:

训练数据分配模块401,用于将所述训练数据分配给多个工作机;

训练数据划分模块402,用于将每一个工作机分配得到的训练数据划分为多个数据片;

获取模块403,用于获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;

汇总模块404,用于汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值;

异常检测模块405,用于利用当前权重和/或当前损失函数值执行模型异常检测;

第一处理模块406,用于当所述模型异常检测的结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;

第二处理模块407,用于当所述模型异常检测的结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

在本申请第四实施例提出的机器学习系统的训练系统中,通过使每一个工作机一次只针对一个数据片进行处理、并根据该数据片计算得出的本地权重和本地损失函数值进行汇总,达到了每一次计算后能够准确地小幅度更新权重和损失函数值的效果,避免了现有技术的在线学习中容易受到数据中噪声影响的问题。同时,在获得当前权重和/或当前损失函数值之后执行异常检测,当检测出所获得的当前权重和/或当前损失函数值属于第一类异常或第二类异常,可以抛弃本次计算出的当前权重和/或当前损失函数值,而将上一次汇总得到的权重和损失函数值输入机器学习模型,或者对本次计算出的当前权重和/或当前损失函数值进行修正,将每次计算和汇总获得的权重和损失函数值的更新限制在有效范围内,避免了模型训练的不稳定性,增强了系统抗数据噪声的能力,提升了在线学习的机器学习系统的稳定性,确保了机器学习系统的正常产出,提高了上线后的机器学习系统的服务能力。

第五实施例

本申请第五实施例提出一种机器学习系统的训练系统,如图5是本申请第五实施例的机器学习系统的训练系统的方框图。该机器学习系统优选为分布式机器学习系统,如图5所示,该训练系统500包括:

训练数据分配模块501,用于将所述训练数据分配给多个工作机;

训练数据划分模块502,用于将每一个工作机分配得到的训练数据划分为多个数据片;

获取模块503,用于获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;

汇总模块504,用于汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值;

异常检测模块505,用于利用当前权重和/或当前损失函数值执行模型异常检测;

第一处理模块506,用于当所述模型异常检测的结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;

第二处理模块507,用于当所述模型异常检测的结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

在该实施例中,所述异常检测模块505包括:

第一判断子模块505a,用于判断当前损失函数值是否大于上一次汇总后的损失函数值的k倍;

第一判定子模块505b,用于当判断出当前损失函数值大于上一次汇总后的损失函数值的k倍时,判定所述模型异常检测的结果为第一类异常。

第二判断子模块505c,用于判断当前权重中的元素的最大值和/或最小值的绝对值是否大于预设的第二阈值;

第二判定子模块505d,用于当判断出当前权重中的元素的最大值和/或最小值的绝对值大于预设的第二阈值时,判定所述模型异常检测的结果为第二类异常。

所述异常检测模块505还包括:

第三判断子模块505e,用于判断前n次汇总后的损失函数值的平均值是否大于第一次汇总后的损失函数值;

第三判定子模块505f,用于当判断出前n次汇总后的损失函数值的平均值大于第一次汇总后的损失函数值时,判定所述模型异常检测的结果为第一类异常。

优选地,当所述模型异常检测的结果为第二类异常,将当前权重和/或当 前损失函数值修正为第二阈值内的当前权重和/或当前损失函数值的步骤包括:

将所述最大值和/或最小值的绝对值大于预设的第二阈值的元素减去所述第二阈值,获得每一个元素均位于所述第二阈值内的当前权重。

在本申请第五实施例提出的机器学习系统的训练系统中,通过使每一个工作机一次只针对一个数据片进行处理、并根据该数据片计算得出的本地权重和本地损失函数值进行汇总,达到了每一次计算后能够准确地小幅度更新权重和损失函数值的效果,避免了现有技术的在线学习中容易受到数据中噪声影响的问题。同时,在获得当前权重和/或当前损失函数值之后执行异常检测,当检测出所获得的当前权重和/或当前损失函数值属于第一类异常或第二类异常,可以抛弃本次计算出的当前权重和/或当前损失函数值,而将上一次汇总得到的权重和损失函数值输入机器学习模型,或者对本次计算出的当前权重和/或当前损失函数值进行修正,将每次计算和汇总获得的权重和损失函数值的更新限制在有效范围内,避免了模型训练的不稳定性,增强了系统抗数据噪声的能力,提升了在线学习的机器学习系统的稳定性,确保了机器学习系统的正常产出,提高了上线后的机器学习系统的服务能力。

第六实施例

本申请第六实施例提出一种机器学习系统的训练系统,如图6所示为本申请第六实施例的机器学习系统的训练系统的方框图。该机器学习系统优选为分布式机器学习系统,如图6所示,该训练系统包括:

训练数据分配模块601,用于将所述训练数据分配给多个工作机;

训练数据划分模块602,用于将每一个工作机分配得到的训练数据划分为多个数据片;

获取模块603,用于获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值;

汇总模块604,用于汇总每一个工作机基于每一个数据片计算出的所述本地权重和本地损失函数值,获得当前权重和当前损失函数值;

异常检测模块605,用于利用当前权重和/或当前损失函数值执行模型异常检测;

第一处理模块606,用于当所述模型异常检测的结果为第一类异常,将上一次汇总后的权重和上一次汇总后的损失函数值输入所述机器学习系统进行训练;

第二处理模块607,用于当所述模型异常检测的结果为第二类异常,将当前权重和/或当前损失函数值修正为第一阈值内的当前权重和/或当前损失函数值,并输入所述机器学习系统进行训练。

在本实施例中,所述系统还包括:

训练模块608,用于当所述模型异常检测的结果为正常,将当前权重和/或当前损失函数值输入所述机器学习系统进行训练。

在本实施例中,所述系统还包括:

结束判定模块609,用于判断训练是否结束;

模型产出模块610,用于当判定训练结束时,产出所述模型;

返回执行模块611,用于当判定训练未结束,重复执行获取每一个工作机基于每一个数据片计算出的本地权重和本地损失函数值的步骤。

在本实施例中,所述结束判定模块用于当检测到当前损失函数的值与上一次汇总后损失函数的值小于第三阈值,判定训练结束。

在本实施例中,所述系统还可以包括:

训练数据获取模块,用于获取训练数据。所述训练数据分配模块用于按照每一个工作机的标识,将所述训练数据分配给多个工作机。

优选地,所述汇总模块包括:

权重累加模块,用于将每一个工作机基于每一个数据片计算出的所述本地权重相加,获得当前权重;

损失函数值累加模块,用于将每一个工作机基于每一个数据片计算出的所述本地损失函数值相加,获得当前本地损失函数。

在本申请第六实施例提出的机器学习系统的训练系统中,通过使每一个工作机一次只针对一个数据片进行处理、并根据该数据片计算得出的本地权 重和本地损失函数值进行汇总,达到了每一次计算后能够准确地小幅度更新权重和损失函数值的效果,避免了现有技术的在线学习中容易受到数据中噪声影响的问题。同时,在获得当前权重和/或当前损失函数值之后执行异常检测,当检测出所获得的当前权重和/或当前损失函数值属于第一类异常或第二类异常,可以抛弃本次计算出的当前权重和/或当前损失函数值,而将上一次汇总得到的权重和损失函数值输入机器学习模型,或者对本次计算出的当前权重和/或当前损失函数值进行修正,将每次计算和汇总获得的权重和损失函数值的更新限制在有效范围内,避免了模型训练的不稳定性,增强了系统抗数据噪声的能力,提升了在线学习的机器学习系统的稳定性,确保了机器学习系统的正常产出,提高了上线后的机器学习系统的服务能力。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信号存储。信号可以是计算机可读指令、 数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信号。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以, 所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种机器学习系统的训练方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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