模型的训练方法、装置、计算设备及计算机可读存储介质
技术领域
本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种模型的训练方法、装置、计算设备及计算机可读存储介质。
背景技术
在机器学习领域中,通常使用有标签样本作为训练样本对模型进行训练,以得到所需要的模型。然而,在一些情况下,有标签样本的样本数量较少,使得无法训练得到所需性能的模型。
以训练用于检测互联网访问数据的模型为例,每天会有海量的互联网访问数据,其中,仅有少量的互联网访问数据能够被识别出是正常数据或异常数据,成为有标签样本,而大量的互联网访问数据则无法被识别出是正常数据或异常数据,仍然为无标签样本,若仅将有标签样本作为训练样本来训练模型,则会使得训练样本数量较少,训练得到的模型的性能较差。
因此,需要提供能够训练出性能较好的模型的模型训练方法。
发明内容
本说明书一个或多个实施例提供了一种模型的训练方法、装置、计算设备及计算机可读存储介质,能够利用有标签样本和无标签样本训练出更为鲁棒的模型,以提高模型的性能。
本说明书一个或多个实施例提供的技术方案如下:
第一方面,提供了一种模型的训练方法,应用于计算设备,模型包括第一子模型、第二子模型和第三子模型,训练样本包括:存储于存储空间中的有标签样本集和无标签样本集,该方法包括:
对于每一轮模型训练,计算设备执行以下步骤:
分别从有标签样本集中采样得到第一训练样本集、第二训练样本集和第三训练样本集;
分别使用第一训练样本集和第一伪标签样本集中的样本训练第一子模型、第二训练样本集和第二伪标签样本集中的样本训练第二子模型、第三训练样本集和第三伪标签样本集中的样本训练第三子模型;
基于测试样本集对训练后的第一子模型和第二子模型进行测试,如果测试得到的结果满足第一预设条件,则利用第一子模型和第二子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第三伪标签样本集,第三伪标签样本集中的样本作为第三子模型的训练的样本;测试样本集是基于有标签样本集得到的;
基于测试样本集对训练后的第一子模型和第三子模型进行测试,如果测试得到的结果满足第二预设条件,则利用第一子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第二伪标签样本集,第二伪标签样本集中的样本作为第二子模型的训练样本;
基于测试样本集对训练后的第二子模型和第三子模型进行测试,如果测试得到的结果满足第三预设条件,则利用第二子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第一伪标签样本集,第一伪标签样本集中的样本作为第一子模型的训练样本;
如果第一伪标签样本集、第二伪标签样本集和第三伪标签样本集中不再有新的样本加入时,模型训练结束,得到最终的模型训练结果。
第二方面,提供了一种模型的训练装置,应用于计算设备,模型包括第一子模型、第二子模型和第三子模型,训练样本包括有标签样本集和无标签样本集,装置包括:
存储模块,其配置为存储有标签样本集、无标签样本集、第一伪标签样本集、第二伪标签样本集和第三伪标签样本集;
训练模块,其配置为对于每一轮模型训练,执行以下步骤:
分别从有标签样本集中采样得到第一训练样本集、第二训练样本集和第三训练样本集;
分别使用第一训练样本集和第一伪标签样本集中的样本训练第一子模型、第二训练样本集和第二伪标签样本集中的样本训练第二子模型、第三训练样本集和第三伪标签样本集中的样本训练第三子模型;
基于测试样本集对训练后的第一子模型和第二子模型进行测试,如果测试得到的结果满足第一预设条件,则利用第一子模型和第二子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第三伪标签样本集,第三伪标签样本集中的样本作为第三子模型的训练的样本;测试样本集是基于有标签样本集得到的;
基于测试样本集对训练后的第一子模型和第三子模型进行测试,如果测试得到的结果满足第二预设条件,则利用第一子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第二伪标签样本集,第二伪标签样本集中的样本作为第二子模型的训练样本;
基于测试样本集对训练后的第二子模型和第三子模型进行测试,如果测试得到的结果满足第三预设条件,则利用第二子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第一伪标签样本集,第一伪标签样本集中的样本作为第一子模型的训练样本;
如果第一伪标签样本集、第二伪标签样本集和第三伪标签样本集中不再有新的样本加入时,模型训练结束,得到最终的模型训练结果。
第三方面,提供了一种计算设备,设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现本说明书第一方面所述的数据检测方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现本说明书所述的检测模型的训练方法或本说明书第一方面所述的数据检测方法。
根据上述的本说明书一个或多个实施例,能够对三个子模型进行协同训练,在计算设备执行每一轮模型训练的过程中,针对每个子模型,利用有标签样本集和该子模型对应的伪标签样本集对该子模型进行训练,利用该子模型以外的其它两个子模型针对测试样本集的测试结果和针对无标签样本集的预测结果,更新该子模型的伪标签样本集,直到每个伪标签样本集中均不再有新的样本加入时,模型训练结束,得到最终的模型训练结果,从而能够利用有标签样本和无标签样本训练出更为鲁棒的模型,以提高模型的性能和可靠性。
附图说明
为了更清楚地说明本说明书一个或多个实施例的技术方案,下面将对本说明书一个或多个实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个示例的互联网访问系统架构图;
图2是本说明书一个实施例提供的模型的训练方法的每一轮模型训练的流程示意图;
图3是本说明书一个示例的模型的训练方法的具体流程图;
图4是本说明书一个实施例提供的模型的训练装置的结构示意图;
图5是本说明书一个实施例提供的互联网访问数据的检测方法的流程示意图;
图6是本说明书一个实施例提供的互联网访问数据的检测装置的结构示意图;
图7是本说明书一个实施例提供的计算设备的硬件结构示意图。
具体实施方式
下面将详细描述本说明书的各个方面的特征和示例性实施例,为了使本说明书的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本说明书进行进一步详细描述。应理解,此处所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。对于本领域技术人员来说,本说明书可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本说明书的示例来提供对本说明书更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
图1示出了本说明书一个示例的互联网访问系统架构图。如图1所示,该互联网访问系统包括用户终端100、用户终端200、用户终端300和被访问的服务器400。用户终端110、用户终端120和用户终端130可以分别通过服务器400内的不同资源的统一资源定位标志(Uniform Resource Locator,URL)对服务器400进行访问。当用户终端100、用户终端200和用户终端300完成访问时,服务器400内能够保存用户终端100、用户终端200和用户终端300对应的互联网访问数据。
由于服务器400每天会被不同的用户终端进行大量次数的访问,因此,每天服务器400都会保存海量的互联网访问数据。其中,只有少部分的互联网访问数据能够被服务器400现有的访问规则识别并标记为正常数据或异常数据,即仅有少部分的互联网访问数据能够被识别为有标签样本,大部分的互联网访问数据无法被识别和标记,成为了大量的无标签样本。为了能够充分利用这些没有被标记的互联网访问数据来训练用于检测异常访问数据的模型。本说明书提供了一种模型的训练方法。
在本说明书中,用户终端具体可以是手机、平板电脑、个人电脑等。服务器可以是一种高性能的电子计算器,用于存储和处理数据,在本说明书中,系统服务器可以存储多个资源,以为用户终端提供资源对应的后台服务。
本说明书一个实施例提供的模型的训练方法,应用于计算设备,其中,模型包括第一子模型、第二子模型和第三子模型,训练样本包括:存储于存储空间中的有标签样本集和无标签样本集。
在本说明书中,计算设备可以为图1所示的服务器,也可以为与服务器连接的其他具有计算功能的电子设备。
图2示出了本说明书一个实施例提供的模型的训练方法的每一轮模型训练的流程示意图。如图2所示,对于每一轮模型训练,计算设备执行以下步骤:
S510、分别从有标签样本集中采样得到第一训练样本集、第二训练样本集和第三训练样本集;
S520、分别使用第一训练样本集和第一伪标签样本集中的样本训练第一子模型、第二训练样本集和第二伪标签样本集中的样本训练第二子模型、第三训练样本集和第三伪标签样本集中的样本训练第三子模型;
S530、基于测试样本集对训练后的第一子模型和第二子模型进行测试,如果测试得到的结果满足第一预设条件,则利用第一子模型和第二子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第三伪标签样本集,第三伪标签样本集中的样本作为第三子模型的训练的样本;测试样本集是基于有标签样本集得到的;
S540、基于测试样本集对训练后的第一子模型和第三子模型进行测试,如果测试得到的结果满足第二预设条件,则利用第一子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第二伪标签样本集,第二伪标签样本集中的样本作为第二子模型的训练样本;
S550、基于测试样本集对训练后的第二子模型和第三子模型进行测试,如果测试得到的结果满足第三预设条件,则利用第二子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第一伪标签样本集,第一伪标签样本集中的样本作为第一子模型的训练样本。
在计算设备执行每一轮模型训练之后,如果第一伪标签样本集、第二伪标签样本集和第三伪标签样本集中不再有新的样本加入时,模型训练结束,得到最终的模型训练结果;如果第一伪标签样本集、第二伪标签样本集和第三伪标签样本集中的任一个有新的样本加入,则继续执行下一轮模型训练。
在本说明书实施例中,在计算设备执行每一轮模型训练的过程中,针对每个子模型,利用有标签样本集和该子模型对应的伪标签样本集对该子模型进行训练,利用该子模型以外的其它两个子模型针对测试样本集的测试结果和针对无标签样本集的预测结果,更新该子模型的伪标签样本集,直到每个伪标签样本集中均不再有新的样本加入时,模型训练结束,得到最终的模型训练结果,从而能够利用有标签样本和无标签样本训练出更为鲁棒的模型,以提高模型的性能和可靠性。
并且,本说明书实施例由于对三个子模型进行协同训练,能够对三个子模型采用更为鲁棒的监督机制,降低训练得到的三个子模型的预测错误率,并且,可以利用训练得到的三个子模型共同完成对待检测数据的结果预测,提高预测结果的准确性。
在本说明书实施例中,被训练的三个子模型可以包括神经网络、随机森林等中的至少一种。
在本说明书中,有标签样本集和伪标签样本集中可以分别包括正样本和负样本。
在一些实施例中,正样本的标记值可以设为1,负样本的标记值可以设为0。在另一些实施例中,正样本的标记值可以设为1,负样本的标记值页可以设为-1。
在本说明书的一些实施例的步骤S510中,分别从有标签样本集中采样得到第一训练样本集、第二训练样本集和第三训练样本集包括:
基于有放回采样的方式分别从有标签样本集中采样得到第一训练样本集、第二训练样本集和第三训练样本集。
其中,有放回采样指的是,在从有标签样本集采集训练样本集的过程中,每从有标签样本集采集一个样本后,都将该样本放回至有标签样本集内,保证有标签样本集内的样本始终不变,再进行下一次采样。
由于有放回采样的方式能够使每一轮模型训练时用于训练模型的样本之间具有差异性,因此,可以更好地增强训练后的模型的鲁棒性。
在利用有放回采样的方式得到第一训练样本集、第二训练样本集和第三训练样本集后,在本说明书实施例中的步骤S520中,利用各个训练样本集和伪标签样本集训练子模型时,以训练第一子模型为例,可以利用第一训练样本集和第一伪标签样本集中的全部的样本训练第一子模型;也可以利用有放回采样的方式从第一伪标签样本集中采集样本后,利用所采集样本和第一训练样本集中的样本训练第一子模型;还可以利用第一伪标签样本集中的部分样本和第一训练样本集中的样本训练第一子模型。
在本说明书的另一些实施例的步骤S510中,还可以直接利用有标记样本集中的全部或部分数据作为第一训练样本集、第二训练样本集和第三训练样本集。
在直接采样得到第一训练样本集、第二训练样本集和第三训练样本集后,在本说明书实施例中的步骤S520中,利用各个训练样本集和伪标签样本集训练子模型时,以训练第一子模型为例,可以利用有放回采样的方式采集第一训练样本集和第一伪标签样本集中的样本,并利用所采集的样本训练第一子模型。
综上,可以用各种采集方法在有标签样本集中采集训练样本集、以及在各个训练样本集和各个伪标签样本集中采集样本,以训练各个子模型,在此不做赘述。
在本说明书实施例中,利用上述的各种方式所最终采集得到的用于训练各个子模型的样本的数量可以相同,以增强每两轮之间对于子模型的性能的比较结果的可靠性。
在本说明书实施例中,测试样本集也可以是基于有标签样本集得到的。其中,在每次基于测试样本集测试各个子模型时,可以利用测试样本集中的全部样本测试各个子模型,以提高多次训练后,测试结果的可靠性和可比较性。
在本说明书实施例中,步骤S530、步骤S540和步骤S550的方法相同,仅是针对不同的子模型的操作。因此,下面将以步骤S530为例,进行详细说明。
在本说明书中,引入了模型监督学习机制,因此,在判断是否有新的样本加入第三子模型的第三伪标签样本集时,是利用训练后的第一子模型和第二子模型针对测试样本集的测试结果以及针对无标签样本集的预测结果来确定的,从而实现三个检测模型的协同训练,提高训练得到的模型的鲁棒性。
具体地,可以基于测试样本集对训练后的第一子模型和第二子模型进行测试,如果测试得到的结果满足第一预设条件,则利用第一子模型和第二子模型对无标签样本集进行预测,将预测结果一致的样本标记上预测结果后,放入第三伪标签样本集,第三伪标签样本集中的样本作为第三子模型的训练的样本。
其中,在一些实施例中,第一预设条件可以为当前第一子模型的性能和第二子模型的性能均优于之前任何一轮模型训练得到第一子模型和第二子模型。同理,第二预设条件可以为当前第一子模型的性能和第三子模型的性能均优于之前任何一轮模型训练得到第一子模型和第三子模型;第三预设条件可以为当前第二子模型的性能和第三子模型的性能均优于之前任何一轮模型训练得到第二子模型和第三子模型。
在本说明书实施例中,子模型的性能可以为子模型的正确率、错误率或损失值等用于评价模型的检测效果的指标。
以子模型的性能为错误率为例,上述的第一预设条件为当前第一子模型的性能和第二子模型的错误率均低于之前任何一轮模型训练得到第一子模型和第二子模型。
在另一些实施例中,第一预设条件可以为当前第一子模型和第二子模型的综合性能优于之前任何一轮模型训练得到第一子模型和第二子模型。同理,第二预设条件可以为当前第一子模型和第三子模型的综合性能优于之前任何一轮模型训练得到第一子模型和第三子模型;第三预设条件可以为当前第二子模型和第三子模型的综合性能优于之前任何一轮模型训练得到第二子模型和第三子模型。
具体地,以子模型的性能为错误率为例,当前第一子模型和第二子模型的综合性能可以为第一子模型和第二子模型的平均错误率。当前第一子模型和第二子模型的综合性能优于之前任何一轮模型训练得到第一子模型和第二子模型指的是,当前第一子模型和第二子模型的平均错误率低于之前任何一轮模型训练得到第一子模型和第二子模型。
下面,将以测试样本集中的正样本的标记值为1、负样本的标记值为0为例,对如何判断当前第一子模型和第二子模型的平均错误率低于之前任何一轮模型训练得到第一子模型和第二子模型进行详细说明。
由于在本说明书实施例中,将每个测试样本分别输入训练后的第一子模型和第二子模型后,能够得到训练后的第一子模型和第二子模型针对该测试样本的测试值,测试值为该测试样本为正样本的概率值,而测试样本的标记值为0或1两个数字,因此,需要设置一个第一预设阈值,将大于或等于第一预设阈值的概率值视为测试结果为1,将小于第一预设阈值的概率视为测试结果为0,以确定对训练后的第一子模型和第二子模型针对每个测试样本的测试结果。其中,第一预设阈值可以设置为0.5。
此时,可以先将训练后的第一子模型和第二子模型针对每个测试样本的测试值利用上述的方法转换为训练后的第一子模型和第二子模型针对每个测试样本的测试结果后,根据每个测试样本的标定值,得到训练后的第一子模型和第二子模型的错误率,最终得到训练后的第一子模型和第二子模型的平均错误率。
此外,也可以先计算训练后的第一子模型和第二子模型针对每个测试样本的平均测试值,然后利用上述的方法将平均测试值转换为训练后的第一子模型和第二子模型针对每个测试样本的测试结果,再根据每个测试样本的标定值,得到训练后的第一子模型和第二子模型针的平均错误率。
在本说明书的一些实施例中,为了保证能够充分地利用每一个无标签样本,在利用第一子模型和第二子模型对无标签样本集进行预测时,可以利用第一子模型和第二子模型对无标签样本集的全部样本中的每一条样本进行预测;在利用第一子模型和第三子模型对无标签样本集进行预测时,可以利用第一子模型和第三子模型对无标签样本集的全部样本中的每一条样本进行预测;在利用第二子模型和第三子模型对无标签样本集进行预测时,可以利用第二子模型和第三子模型对无标签样本集的全部样本中的每一条样本进行预测。
此时,当无标签样本集中的任一样本已获得一个预测结果后,不将其从无标签样本集中剔除,而是继续存在于无标签样本集中。在将任一标记上预测结果的样本加入对应的伪标签样本集时,需要先判断该样本是否已经存在于该伪标签样本集中,如果已经存在,则不将其加入伪标签样本集,如果不存在,则将其加入伪标签样本集中。
以利用第一子模型和第二子模型对无标签样本集的全部样本中的每一条样本进行预测为例,如果任一条样本的预测结果一致,则判断该样本是否已经存在于第三伪标签样本集中,如果已经存在,则不再将该样本重复加入第三伪标签样本集中,如果不存在,则将该样本标记上预测结果后,放入第三位标签样本集中。
在本说明书的另一些实施例中,为了提高计算设备的处理效率,在利用第一子模型和第二子模型对无标签样本集进行预测时,可以利用第一子模型和第二子模型对无标签样本集的剩余样本中的每一条样本进行预测;在利用第一子模型和第三子模型对无标签样本集进行预测时,可以利用第一子模型和第三子模型对无标签样本集的剩余样本中的每一条样本进行预测;在利用第二子模型和第三子模型对无标签样本集进行预测时,可以利用第二子模型和第三子模型对无标签样本集的剩余样本中的每一条样本进行预测。
具体地,当无标签样本集中的任一样本已获得一个预测结果后,便将其从无标签样本集中剔除。在针对每一个伪标签样本集判断是否有新的样本加入时,仅利用无标签样本集中的剩余样本进行预测,从而可以减少判断该样本是否已经存在于对应的伪标签样本集中的过程,提高处理效率。
在本说明书实施例中,以利用第一子模型和第二子模型对无标签样本集进行预测为例,所述的样本的预测结果一致指的是第一子模型和第二子模型针对该无标签样本的预测值均大于或等于第一预设阈值,或,第一子模型和第二子模型针对该无标签样本的预测值均小于第一预设阈值。
例如,如果第一子模型和第二子模型针对该无标签样本的预测值均大于或等于第一预设阈值,则将该无标签样本标记为正样本;如果第一子模型和第二子模型针对该无标签样本的预测值均小于第一预设阈值,则将该无标签样本标记为负样本。
基于第一子模型和第二子模型对无标签样本集的预测,将利用上述方法得到的全部被标记的且未存在于第三伪标签样本集中的样本加入到第三伪标签样本集中,完成对第三伪标签样本集中的更新。
由于在本说明书实施例中,在确定伪标记样本的时候,要求两个子模型针对同一无标签样本的预测结果一致,因此,可以提高筛选样本的严格程度,保证了将伪标签样本集中的样本作为训练用的样本时,具有比较高的可信度,以提高训练后的模型的可靠性。
在本说明书实施例中,第一伪标签样本集、第二伪标签样本集和第三伪标签样本集中不再有新的样本加入可以有至少两种情况。
第一种情况:
在基于测试样本集对训练后的第一子模型和第二子模型测试,得到的结果不满足第一预设条件的情况下,确定第三伪标签样本集中不再有新的样本加入;在基于测试样本集对训练后的第一子模型和第三子模型进行测试,测试得到的结果不满足第二预设条件的情况下,确定第二伪标签样本集中不再有新的样本加入;在基于测试样本集对训练后的第二子模型和第三子模型进行测试,测试得到的结果不满足第三预设条件的情况下,确定第一伪标签样本集中不再有新的样本加入。
继续以基于测试样本集对训练后的第一子模型和第二子模型测试为例,在当前第一子模型的性能和第三子模型的性能中的任一个不优于之前任何一轮模型训练得到第一子模型和第三子模型,或者,在当前第一子模型和第三子模型的综合性能不优于之前任何一轮模型训练得到第一子模型和第三子模型的情况下,由于不会再利用第一子模型和第二子模型对无标签样本集进行预测以更新第三伪标签样本集,因此,可以确定第三伪标签样本集中不再有新的样本加入。
第二种情况:
在利用第一子模型和第二子模型对无标签样本集进行预测时没有可以放入第三伪标签样本集的样本的情况下,确定第三伪标签样本集中不再有新的样本加入;在利用第一子模型和第三子模型对无标签样本集进行预测时没有可以放入第二伪标签样本集的样本的情况下,确定第二伪标签样本集中不再有新的样本加入;在利用第二子模型和第三子模型对无标签样本集进行预测时没有可以放入第一伪标签样本集的样本的情况下,确定第一伪标签样本集中不再有新的样本加入。
继续以利用第一子模型和第二子模型对无标签样本集进行预测为例,在任一条样本的预测结果均不一致,或者,无标签样本集已经没有样本用于预测,或者,预测结果一致的样本均已存在于第三伪标签样本集中的情况下,此时,可以确定第三伪标签样本集中不再有新的样本加入。
在至少上述的两种情况下,可以确定模型训练结束,能够得到最终的模型训练结果。
在本说明书的一些实施例中,可以将各轮训练中得到的性能最优的第一子模型、第二子模型和第三子模型作为最终的模型训练结果,以使获得的模型的性能和鲁棒性最好。
在本说明书的另一些实施例中,也可以将最后一轮训练得到的第一子模型、第二子模型和第三子模型作为最终的模型训练结果。
当本说明书实施例的模型的训练方法应用于训练检测图1所示的互联网访问系统所获得的互联网访问数据中的异常数据的模型时,有标签样本集可以包括有标签的互联网访问数据,无标签样本集可以包括无标签的互联网访问数据。
其中,有标签样本集可以利用被服务器现有的访问规则识别并标记为正常数据或异常数据的互联网访问数据。
由于模型用于检测互联网访问数据中的异常数据,因此,可以将异常数据标记为正样本、将正常数据标记为负样本。
图3示出了本说明书一个示例的模型的训练方法的具体流程图。如图3所示,图中示出了训练样本池L1,L2,L3、无标签样本集和伪标签样本集1,2,3。其中,训练样本池L1,L2,L3中的初始样本分别为一个对应的训练样本集L,三个训练样本集分别包括从有标签样本集中获取的1000个有标签样本,且三个训练样本集的样本相同,其中,初始样本中的正样本的标定值为1,负样本的标定值为0。无标签样本集U中的样本为10000个。图中未示出测试样本集V,测试样本集V也是从有标签样本集L获取的部分,利用上述的训练样本集、测试样本集和无标签样本集训练子模型M1,M2,M3的具体方法如下:
(1)训练样本池初始化:初始化各个训练样本池,令L1=L2=L3。
(2)迭代以下过程直至达到停止条件:
a、训练样本采样:分别对训练样本池L1,L2,L3进行有放回采样,得到子模型M1,M2,M3对应的与初始样本的数据量一样的三组训练样本其中,t表示第t轮迭代;
b、子模型训练:基于三组训练样本训练子模型
c、确定综合性能:利用测试样本集V得到子模型中的每两个在第t轮迭代的综合性能其中,表示子模型和的综合性能,表示子模型和的综合性能,表示子模型和的综合性能。其中,用分别表示对应两个子模型的历史最优综合性能;
d、预测无标签样本集:用子模型对无标签样本集U中的每一个样本分别进行预测,得到每个无标签样本的预测值,其中,预测值为该无标签样本为正样本的概率值,预测值为0到1之间的值,若预测值的分值越高,是正样本的可能性越大。
e、伪标签样本集筛选:对于每一个无标签样本i,可以用分别表示在第t轮三个子模型的预测值。
以综合性能为平均错误率为例。
如果对于每一个无标签样本i:
如果和均大于或等于0.5,则将该无标签样本i放到子模型对应的伪标签样本集3中,并将该无标签样本i的标记值设为1;
如果和均小于0.5,则将该无标签样本i放到子模型对应的伪标签样本集3中,并将该无标签样本i的标记值设为0;
如果对于每一个无标签样本i:
如果和均大于或等于0.5,则将该无标签样本i放到子模型对应的伪标签样本集2中,并将该无标签样本i的标记值设为1;
如果和均小于0.5,则将该无标签样本i放到子模型对应的伪标签样本集2中,并将该无标签样本i的标记值设为0;
如果对于每一个无标签样本i:
如果和均大于或等于0.5,则将该无标签样本i放到子模型对应的伪标签样本集1中,并将该无标签样本i的标记值设为1;
如果和均小于0.5,则将该无标签样本i放到子模型对应的伪标签样本集1中,并将该无标签样本i的标记值设为0;
f、更新训练样本池:将每个训练样本池L1,L2,L3分别与对应的伪标签样本集1,2,3拼合,形成更新后的训练样本池L1,L2,L3。
重复上述迭代过程,直至综合性能且且模型训练结束,得到最终的子模型M1,M2,M3。
综上,本说明书实施例的模型的训练方法,可以首先利用有标签样本集分别构造三个训练样本池,并基于三个训练样本池分别训练三个子模型,然后,利用测试样本集和无标签样本集分别更新每个子模型对应的伪标签样本集,并利用伪标签样本集更新对应的训练样本池;之后再利用更新的训练样本池继续训练三个子模型,重复这一过程,直至三个子模型对应的伪标签样本集中没有新加入的样本为止,得到最终的子模型。
可见,本说明书实施例的模型的训练方法,引入了自监督的机制,只有在训练后的任一子模型以外的两个子模型的性能更优的情况下,才会利用另外两个子模型和无标签样本集更新该子模型的无标签样本集,以用于下一轮的训练。如此为之,可以防止错误信息被放大,使整体效果更为鲁棒。
本说明书一个实施例还提供了一种模型的训练装置,应用于计算设备,模型包括第一子模型、第二子模型和第三子模型,训练样本包括有标签样本集和无标签样本集。
图4示出了本说明书一个实施例提供的模型的训练装置的结构示意图。如图4所示,该模型的训练装置600包括:
存储模块610,其配置为存储有标签样本集、无标签样本集、第一伪标签样本集、第二伪标签样本集和第三伪标签样本集;
训练模块620,其配置为对于每一轮模型训练,执行以下步骤:
分别从有标签样本集中采样得到第一训练样本集、第二训练样本集和第三训练样本集;
分别使用第一训练样本集和第一伪标签样本集中的样本训练第一子模型、第二训练样本集和第二伪标签样本集中的样本训练第二子模型、第三训练样本集和第三伪标签样本集中的样本训练第三子模型;
基于测试样本集对训练后的第一子模型和第二子模型进行测试,如果测试得到的结果满足第一预设条件,则利用第一子模型和第二子模型对无标签样本集进行预测,将预测结果一致的样本标记上所述预测结果后,放入第三伪标签样本集,第三伪标签样本集中的样本作为第三子模型的训练的样本;测试样本集是基于有标签样本集得到的;
基于测试样本集对训练后的第一子模型和第三子模型进行测试,如果测试得到的结果满足第二预设条件,则利用第一子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上所述预测结果后,放入第二伪标签样本集,第二伪标签样本集中的样本作为第二子模型的训练样本;
基于测试样本集对训练后的第二子模型和第三子模型进行测试,如果测试得到的结果满足第三预设条件,则利用第二子模型和第三子模型对无标签样本集进行预测,将预测结果一致的样本标记上所述预测结果后,放入第一伪标签样本集,第一伪标签样本集中的样本作为第一子模型的训练样本;
如果第一伪标签样本集、第二伪标签样本集和第三伪标签样本集中不再有新的样本加入时,模型训练结束,得到最终的模型训练结果。
在本说明书实施例中,在计算设备执行每一轮模型训练的过程中,针对每个子模型,利用有标签样本集和该子模型对应的伪标签样本集对该子模型进行训练,利用该子模型以外的其它两个子模型针对测试样本集的测试结果和针对无标签样本集的预测结果,更新该子模型的伪标签样本集,直到每个伪标签样本集中均不再有新的样本加入时,模型训练结束,得到最终的模型训练结果,从而能够利用有标签样本和无标签样本训练出更为鲁棒的模型,以提高模型的性能和可靠性。
并且,本说明书实施例由于对三个子模型进行协同训练,能够对三个子模型采用更为鲁棒的监督机制,降低训练得到的三个子模型的预测错误率,并且,可以利用训练得到的三个子模型共同完成对待检测数据的结果预测,提高预测结果的准确性。
在本说明书实施例中,被训练的三个子模型可以包括神经网络、随机森林等中的至少一种。
在本说明书中,有标签样本集和伪标签样本集中可以分别包括正样本和负样本。
在本说明书实施例中,训练模块620被进一步配置为基于有放回采样的方式分别从有标签样本集中采样得到第一训练样本集、第二训练样本集和第三训练样本集。
由于有放回采样的方式能够使每一轮模型训练时用于训练模型的样本之间具有差异性,因此,可以更好地增强训练后的模型的鲁棒性。
在本说明书实施例中,测试样本集也可以是基于有标签样本集得到的。其中,在每次基于测试样本集测试各个子模型时,可以利用测试样本集中的全部样本测试各个子模型,以提高多次训练后,测试结果的可靠性和可比较性。
在本说明书中,引入了模型监督学习机制,因此,在判断是否有新的样本加入第三子模型的第三伪标签样本集时,是利用训练后的第一子模型和第二子模型针对测试样本集的测试结果以及针对无标签样本集的预测结果来确定的,从而实现三个检测模型的协同训练,提高训练得到的模型的鲁棒性。
具体地,第一预设条件为当前第一子模型的性能和第二子模型的性能均优于之前任何一轮模型训练得到第一子模型和第二子模型;第二预设条件为当前第一子模型的性能和第三子模型的性能均优于之前任何一轮模型训练得到第一子模型和第三子模型;第三预设条件为当前第二子模型的性能和第三子模型的性能均优于之前任何一轮模型训练得到第二子模型和第三子模型。
其中,子模型的性能可以为子模型的正确率、错误率或损失值等用于评价模型的检测效果的指标。
在本说明书一些实施例中,训练模块620可以被进一步配置为:利用第一子模型和第二子模型对无标签样本集的全部样本中的每一条样本进行预测;利用第一子模型和第三子模型对无标签样本集的全部样本中的每一条样本进行预测;利用第二子模型和第三子模型对无标签样本集的全部样本中的每一条样本进行预测。
在本说明书另一些实施例中,训练模块620被进一步配置为:利用第一子模型和第二子模型对无标签样本集的剩余样本中的每一条样本进行预测;利用第一子模型和第三子模型对无标签样本集的剩余样本中的每一条样本进行预测;利用第二子模型和第三子模型对无标签样本集的剩余样本中的每一条样本进行预测。
在本说明书的一些实施例中,为了保证能够充分地利用每一个无标签样本,训练模块620可以被进一步配置为:在基于测试样本集对训练后的第一子模型和第二子模型进行测试,测试得到的结果不满足第一预设条件的情况下,确定第三伪标签样本集中不再有新的样本加入;在基于测试样本集对训练后的第一子模型和第三子模型进行测试,测试得到的结果不满足第二预设条件的情况下,确定第二伪标签样本集中不再有新的样本加入;在基于测试样本集对训练后的第二子模型和第三子模型进行测试,测试得到的结果不满足第三预设条件的情况下,确定第一伪标签样本集中不再有新的样本加入。
在本说明书的另一些实施例中,为了提高计算设备的处理效率,训练模块620也可以被进一步配置为:在利用第一子模型和第二子模型对无标签样本集进行预测时没有可以放入第三伪标签样本集的样本的情况下,确定第三伪标签样本集中不再有新的样本加入;在利用第一子模型和第三子模型对无标签样本集进行预测时没有可以放入第二伪标签样本集的样本的情况下,确定第二伪标签样本集中不再有新的样本加入;在利用第二子模型和第三子模型对无标签样本集进行预测时没有可以放入第一伪标签样本集的样本的情况下,确定第一伪标签样本集中不再有新的样本加入。
在本说明书一些实施例中,训练模块620可以被进一步配置为:将各轮训练中得到的性能最优的第一子模型、第二子模型和第三子模型作为最终的模型训练结果,以使获得的模型的性能和鲁棒性最好。
在本说明书另一些实施例中,训练模块620可以被进一步配置为:将最后一轮训练得到的第一子模型、第二子模型和第三子模型作为最终的模型训练结果。
当本说明书实施例的模型的训练装置应用于训练检测图1所示的互联网访问系统所获得的互联网访问数据中的异常数据的模型时,有标签样本集可以包括有标签的互联网访问数据,无标签样本集可以包括无标签的互联网访问数据。
其中,有标签样本集可以利用被服务器现有的访问规则识别并标记为正常数据或异常数据的互联网访问数据。
由于模型用于检测互联网访问数据中的异常数据,因此,可以将异常数据标记为正样本、将正常数据标记为负样本。
综上,本说明书实施例由于对三个子模型进行协同训练,能够对三个子模型采用更为鲁棒的监督机制,降低训练得到的三个子模型的预测错误率,并且,可以利用训练得到的三个子模型共同完成对待检测数据的结果预测,提高预测结果的准确性。
图5示出了本说明书一个实施例提供的互联网访问数据的检测方法的流程示意图。如图5所示,该互联网访问数据的检测方法包括:
S710、将待检测的互联网访问数据分别输入利用本说明书的上述一个或多个实施例的模型的训练方法训练得到的三个子模型,得到待检测的互联网访问数据对应的三个预测值;
S720、若三个预测值满足第二预设条件,确定待检测的互联网访问数据为异常数据。
在本说明书实施例中,利用本说明书的上述一个或多个实施例训练得到的三个子模型检测待检测的互联网访问数据,能够较好的发现待检测的互联网访问数据中存在的潜在威胁,即能够更准确地检测出待检测的互联网访问数据是否为异常数据,因此,可以为用户发现潜在网络攻击威胁,建立新的屏蔽异常访问的访问规则,构建安全系统提供更准确的支持。
在本说明书一些实施例中,第二预设条件可以包括三个预测值的平均值大于或等于第一预设阈值。
具体地,可以将三个预测值的平均值与第一预设阈值比较,当平均值大于或等于第一预设阈值时,确定其为异常数据。
在本说明书另一些实施例中,第二预设条件可以包括三个预测值均大于或等于第一预设阈值且三个预测值的平均值大于或等于第二预设阈值。其中,第二预设阈值为大于第一预设阈值的0-1之间的数值,因此,可以进一步提高异常数据检测的准确性。
具体地,可以根据三个预测值及其平均值与第一预设阈值、第二预设阈值进行比较,当三个预测值均大于或等于第一预设阈值且平均值大于或等于第二预设阈值时,确定其为异常数据。
图6示出了本说明书一个实施例提供的互联网访问数据的检测装置的结构示意图。如图6所示,该互联网访问数据的检测装置800包括:
数据检测模块810,其配置为将待检测的互联网访问数据分别输入利用本说明书的上述一个或多个实施例的模型的训练方法训练得到的三个子模型,得到待检测的互联网访问数据对应的三个预测值;
结果确定模块820,其配置为若三个预测值满足第二预设条件,确定待检测的互联网访问数据为异常数据。
在本说明书实施例中,利用本说明书的上述一个或多个实施例训练得到的三个子模型检测待检测的互联网访问数据,能够较好的发现待检测的互联网访问数据中存在的潜在威胁,即能够更准确地检测出待检测的互联网访问数据是否为异常数据,因此,可以为用户发现潜在网络攻击威胁,建立新的屏蔽异常访问的访问规则,构建安全系统提供更准确的支持。
在本说明书一些实施例中,第二预设条件可以包括三个预测值的平均值大于或等于第一预设阈值。
在本说明书另一些实施例中,第二预设条件可以包括三个预测值均大于或等于第一预设阈值且三个预测值的平均值大于或等于第二预设阈值。其中,第二预设阈值为大于第一预设阈值的0-1之间的数值,因此,可以进一步提高异常数据检测的准确性。
图7示出了本说明书一个实施例提供的计算设备的硬件结构示意图。如图7所示,计算设备900包括输入设备901、输入接口902、中央处理器903、存储器904、输出接口905、以及输出设备906。其中,输入接口902、中央处理器903、存储器904、以及输出接口905通过总线910相互连接,输入设备901和输出设备906分别通过输入接口902和输出接口905与总线910连接,进而与计算设备900的其他组件连接。
具体地,输入设备901接收来自外部的输入信息,并通过输入接口902将输入信息传送到中央处理器903;中央处理器903基于存储器904中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器904中,然后通过输出接口905将输出信息传送到输出设备906;输出设备906将输出信息输出到计算设备900的外部供用户使用。
也就是说,图7所示的计算设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图2和图4描述的模型的训练方法和装置和/或实现结合图5和图6描述的互联网访问数据的检测方法和装置。
本说明书实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本说明书实施例提供的模型的训练方法和/或互联网访问数据的检测方法。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本说明书的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述,仅为本说明书的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本说明书的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本说明书的保护范围之内。