模型训练方法及相关系统、存储介质
技术领域
本申请涉及人工智能
技术领域
,尤其涉及一种模型训练方法及相关系统、存储介质。背景技术
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
神经网络已经成功应用于多个领域,包括计算机视觉,机器翻译,语音识别等等。成功训练一个神经网络,往往需要调节合适的超参数。其中,超参数是在开始训练深度神经网络之前设置的参数,不是神经网络的网络权重参数,而是用于控制训练过程中的参数。超参数并不直接参与到训练的过程中,它们只是配置变量。
合适的超参数对于训练得到的神经网络的性能有一定的影响。因此,如何自动化超参数选择过程也是一个具有商业价值的技术。
目前,基于种群的老虎机bandit算法(Population-Based Bandit,PB2)将训练过程拆分成若干个训练阶段。每个训练阶段包含多次训练流程。对于每一次训练流程,模型遍历一遍样本集。在挑选超参数时,PB2根据下一个训练阶段中第一次训练流程得到的模型性能估计进行超参数挑选。然而,由于其只能预测下一个训练阶段中进行第一次训练流程得到的模型性能,预测目标过于限定,其对于神经网络的下一个训练阶段的最后一次训练流程得到的模型性能无法预测。由于挑选合适的超参数时更关注每个训练阶段的最后一次训练流程得到的模型性能,因此,该方法对于获得性能较好的神经网络的指导意义不大。
发明内容
本申请公开了一种模型训练方法及相关系统、存储介质,可以有助于提高模型计算效率。
第一方面,本申请实施例提供一种模型训练方法,包括:根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数、第i个训练阶段的训练流程次数Ti确定所述第i个训练阶段中的参考超参数,其中,M、i、Ti均为不小于2的整数;根据M个模型Pi-1的模型性能得分和所述第i个训练阶段中的参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1为所述M个模型Pi-2’在所述第i-1个训练阶段中最后一次训练流程得到的,所述M个模型Pi-1’是根据所述M个模型Pi-1进行处理得到的,所述M个模型Pi-1’与所述M个模型Pi-1一一对应,所述M个模型Pi-1与所述M个模型Pi-2’一一对应;在所述第i个训练阶段中,根据所述M个模型Pi-1’中每个模型的超参数对所述每个模型进行Ti次训练流程,得到M个模型Pi,并得到所述M个模型Pi-1’中每个模型在所述第i个训练阶段中每次训练流程得到的模型性能得分;当所述第i个训练阶段为最后一个训练阶段时,基于所述M个模型Pi中每个模型的性能得分从所述M个模型Pi中确定出目标模型。
通过本申请实施例,通过根据第i-1个训练阶段中M个模型中每个模型每次训练流程得到的模型性能得分、第i-1个训练阶段中每个模型的超参数以及第i个训练阶段的训练流程次数来确定第i个训练阶段中M个模型中每个模型的超参数,通过基于该M个模型的超参数对M个模型进行训练,进而得到目标模型。采用该手段,通过在确定第i个训练阶段的超参数时结合考虑第i个训练阶段的训练流程次数,使得该超参数的确定过程更加全面、更加精确,有助于获得性能较好的神经网络,提高了模型计算效率。
作为一种可选的实现方式,所述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数、第i个训练阶段的训练流程次数Ti确定所述第i个训练阶段中的参考超参数,包括:
根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数;根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数。
通过对于每个模型在第i-1个训练阶段中的上述对应信息均进行学习,进而得到模型性能估计函数,可以实现预测间隔Δt个训练流程的模型性能得分。采用该手段,提高了模型计算效率。
其中,上述根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数,可以是根据M个模型Pi-2’中一个模型在第i-1个训练阶段中最后一次训练流程得到的模型性能得分来得到参考超参数。
其还可以是根据M个模型Pi-2’中多个模型在第i-1个训练阶段中最后一次训练流程得到的模型性能得分来得到参考超参数。
其还可以是根据M个模型Pi-2’中多个模型在第i-1个训练阶段中任意一次训练流程得到的模型性能得分来得到参考超参数。
其中,上述参考超参数可以是一个,也可以是多个,本方案对此不做具体限定。
作为一种可选的实现方式,当i不小于3时,所述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,包括:
根据M个模型Pi-3’中每个模型在第i-2个训练阶段中最后一次训练流程得到的模型性能得分、所述M个模型Pi-3’中每个模型在所述第i-2个训练阶段中的超参数、M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分以及所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,其中,所述M个模型Pi-2’为根据所述M个模型Pi-3’进行处理得到的,所述M个模型Pi-2’与所述M个模型Pi-3’一一对应。
本申请实施例通过对前一个训练阶段中最后一次训练流程得到的模型性能得分、前一个训练阶段中的超参数以及当前训练阶段中每次训练流程得到的模型性能得分、当前训练阶段中的超参数的学习,进而可以进行跨阶段的模型性能估计,提高了模型性能估计的准确度。
作为另一种可选的实现方式,所述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,包括:
根据M个模型P0中每个模型在前i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型P0中每个模型在所述前i-1个训练阶段中每个训练阶段中的超参数,得到模型性能估计函数,所述M个模型P0为初始模型。
本申请实施例通过学习前i-1个训练阶段的各个模型性能得分以及各个超参数,进而得到第i个训练阶段中的参考超参数。采用该手段,通过学习大量数据,提高了模型性能估计的精度,进而提高了选取超参数的可靠性,有助于提高获取性能较好模型的效率。
该实施例以前i-1个训练阶段的训练数据为例进行说明,其还可以是以任意多个训练阶段的训练数据进行学习而得到上述参考超参数,例如,至少3个训练阶段、或者从第3个训练阶段到第i-1个训练阶段等,本方案对此不做具体限定。
作为一种可选的实现方式,所述方法还包括:根据N个长度范围对所述模型性能估计函数进行处理,得到N个处理后的模型性能估计函数,N为不小于2的整数;所述根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数,包括:根据所述第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,分别对所述N个处理后的模型性能估计函数进行处理,得到N个初始超参数;对所述N个初始超参数进行处理,得到所述第i个训练阶段中的参考超参数。
采用该手段,通过多个长度范围来寻找合适的超参数,可以提升模型的稳定性。
作为一种可选的实现方式,所述根据M个模型Pi-1的模型性能得分和所述第i个训练阶段中的参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数,包括:根据所述M个模型Pi-1的模型性能得分得到K个第一模型和M-K个第二模型,其中,所述K个第一模型为所述M个模型Pi-1中模型性能得分小于第一预设阈值的模型,所述M-K个第二模型为所述模型性能得分不小于所述第一预设阈值的模型,K为不小于1的整数,且K小于M;根据所述模型性能得分大于第二预设阈值的模型的参数对所述K个第一模型中每个模型的参数进行更新,得到K个更新后的第一模型,所述第二预设阈值不小于所述第一预设阈值;将所述第i个训练阶段中的参考超参数确定为所述K个更新后的第一模型中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1’包括所述K个更新后的第一模型和所述M-K个第二模型,所述M-K个第二模型中每个模型在所述第i个训练阶段中的超参数与该模型在所述第i-1个训练阶段中的超参数相同。
本申请实施例通过基于M个模型Pi-1的模型性能得分进行模型更新,得到用于下一个训练阶段进行训练的M个模型Pi-1’。通过周期性的更新模型,将模型性能得分较差的模型的参数更新为模型性能得分较高的模型的参数,基于性能好的模型来进行下一训练阶段的训练,提高了获得性能较好的模型的效率。
本申请实施例以将所述第i个训练阶段中的参考超参数确定为所述K个更新后的第一模型中每个模型在所述第i个训练阶段中的超参数为例进行说明,此时该参考超参数可以是一个。
该参考超参数还可以是多个。例如,将其中一个参考超参数确定为模型性能得分最差的模型的超参数,将另一个参考超参数确定为模型性能得分较差的模型的超参数等。其还可以是其他形式,本方案对此不做具体限定。
作为一种可选的实现方式,所述方法还包括:根据前i-1个训练阶段中每个训练阶段的训练流程次数Tj获取所述前i-1个训练阶段的数据量,j为正整数,如j取1、2、3等,Tj为正整数;确认所述前i-1个训练阶段的数据量未超出预设值。
通过实时判断在模型训练过程中是否收集过多的训练数据,从而在数据量过大时,进行初始化处理。采用该手段,可以有效提高计算效率。
当所述前i-1个训练阶段的数据量超出预设值时,作为一种可选的实现方式,则将超参数进行初始化处理。
作为另一种可选的实现方式,当所述前i-1个训练阶段的数据量超出预设值时,还可以将一部分数据进行清除。例如可以仅保存第5个训练阶段至第i-1个训练阶段中的训练数据等。其还可以是其他处理等。
本方案提供的所述目标模型应用于图像处理系统,或者推荐系统。
其中,该图像处理系统可以用于图像识别、实例分割、物体检测等。上述推荐系统可以用于进行商品推荐、电影、音乐等娱乐活动推荐等,如基于点击率预测进行推荐等。
其中,所述超参数包括以下至少一种:学习率、批大小、丢弃比率、权重衰减系数、动量系数。
第二方面,本申请提供了一种模型训练装置,包括:第一确定模块,用于根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数、第i个训练阶段的训练流程次数Ti确定所述第i个训练阶段中的参考超参数,其中,M、i、Ti均为不小于2的整数;第二确定模块,用于根据M个模型Pi-1的模型性能得分和所述第i个训练阶段中的参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1为所述M个模型Pi-2’在所述第i-1个训练阶段中最后一次训练流程得到的,所述M个模型Pi-1’是根据所述M个模型Pi-1进行处理得到的,所述M个模型Pi-1’与所述M个模型Pi-1一一对应,所述M个模型Pi-1与所述M个模型Pi-2’一一对应;模型训练模块,用于在所述第i个训练阶段中,根据所述M个模型Pi-1’中每个模型的超参数对所述每个模型进行Ti次训练流程,得到M个模型Pi,并得到所述M个模型Pi-1’中每个模型在所述第i个训练阶段中每次训练流程得到的模型性能得分;模型确定模块,用于当所述第i个训练阶段为最后一个训练阶段时,基于所述M个模型Pi中每个模型的性能得分从所述M个模型Pi中确定出目标模型。
通过本申请实施例,通过根据第i-1个训练阶段中M个模型中每个模型每次训练流程得到的模型性能得分、第i-1个训练阶段中每个模型的超参数以及第i个训练阶段的训练流程次数来确定第i个训练阶段中M个模型中每个模型的超参数,通过基于该M个模型的超参数对M个模型进行训练,进而得到目标模型。采用该手段,通过在确定第i个训练阶段的超参数时结合考虑第i个训练阶段的训练流程次数,使得该超参数的确定过程更加全面、更加精确,有助于获得性能较好的神经网络,提高了模型计算效率。
作为一种可选的实现方式,所述第一确定模块,用于:根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数;根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数。
通过对于每个模型的上述对应信息均进行学习,进而得到模型性能估计函数,可以实现预测间隔Δt个训练流程的模型性能得分。采用该手段,提高了模型计算效率。
作为一种可选的实现方式,当i不小于3时,所述第一确定模块,还用于:根据M个模型Pi-3’中每个模型在第i-2个训练阶段中最后一次训练流程得到的模型性能得分、所述M个模型Pi-3’中每个模型在所述第i-2个训练阶段中的超参数、M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分以及所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,其中,所述M个模型Pi-2’为根据所述M个模型Pi-3’进行处理得到的,所述M个模型Pi-2’与所述M个模型Pi-3’一一对应。
本申请实施例通过对前一个训练阶段中最后一次训练流程得到的模型性能得分、前一个训练阶段中的超参数以及当前训练阶段中每次训练流程得到的模型性能得分、当前训练阶段中的超参数的学习,进而可以进行跨阶段的模型性能估计,提高了模型性能估计的准确度。
作为另一种可选的实现方式,所述第一确定模块,还用于:根据M个模型P0中每个模型在前i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型P0中每个模型在所述前i-1个训练阶段中每个训练阶段中的超参数,得到模型性能估计函数,所述M个模型P0为初始模型。
本申请实施例通过学习前i-1个训练阶段的各个模型性能得分以及各个超参数,进而得到第i个训练阶段中的参考超参数。采用该手段,通过学习大量数据,提高了模型性能估计的精度,进而提高了选取超参数的可靠性,有助于提高获取性能较好模型的效率。
作为一种可选的实现方式,所述装置还包括处理模块,用于:根据N个长度范围对所述模型性能估计函数进行处理,得到N个处理后的模型性能估计函数,N为不小于2的整数;所述第一确定模块,还用于:根据所述第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,分别对所述N个处理后的模型性能估计函数进行处理,得到N个初始超参数;对所述N个初始超参数进行处理,得到所述第i个训练阶段中的参考超参数。
采用该手段,通过多个长度范围来寻找合适的超参数,可以提升模型的稳定性。
作为一种可选的实现方式,所述第二确定模块,用于:根据所述M个模型Pi-1的模型性能得分得到K个第一模型和M-K个第二模型,其中,所述K个第一模型为所述M个模型Pi-1中模型性能得分小于第一预设阈值的模型,所述M-K个第二模型为所述模型性能得分不小于所述第一预设阈值的模型,K为不小于1的整数,且K小于M;根据所述模型性能得分大于第二预设阈值的模型的参数对所述K个第一模型中每个模型的参数进行更新,得到K个更新后的第一模型,所述第二预设阈值不小于所述第一预设阈值;将所述第i个训练阶段中的参考超参数确定为所述K个更新后的第一模型中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1’包括所述K个更新后的第一模型和所述M-K个第二模型,所述M-K个第二模型中每个模型在所述第i个训练阶段中的超参数与该模型在所述第i-1个训练阶段中的超参数相同。
本申请实施例通过基于M个模型Pi-1的模型性能得分进行模型更新,得到用于下一个训练阶段进行训练的M个模型Pi-1’。通过周期性的更新模型,将模型性能得分较差的模型的参数更新为模型性能得分较高的模型的参数,基于性能好的模型来进行下一训练阶段的训练,提高了获得性能较好的模型的效率。
作为一种可选的实现方式,所述装置还包括确认模块,用于:根据前i-1个训练阶段中每个训练阶段的训练流程次数Tj获取所述前i-1个训练阶段的数据量;确认所述前i-1个训练阶段的数据量未超出预设值。
通过实时判断在模型训练过程中是否收集过多的训练数据,从而在数据量过大时,进行初始化处理。采用该手段,可以有效提高计算效率。
所述目标模型应用于图像处理系统,或者推荐系统。
其中,该图像处理系统可以用于图像识别、实例分割、物体检测等。上述推荐系统可以用于进行商品推荐、电影、音乐等娱乐活动推荐等,如基于点击率预测进行推荐等。
所述超参数包括以下至少一种:学习率、批大小、丢弃比率、权重衰减系数、动量系数。
第三方面,本申请提供了一种模型训练装置,包括处理器和存储器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行所述的方法。
第四方面,本申请提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面任一种可能的实施方式提供的方法。
第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一种可能的实施方式提供的方法。
第六方面,本申请实施例提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面任一种可能的实施方式提供的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面任一种可能的实施方式提供的方法。
可以理解地,上述提供的第二方面所述的装置、第三方面所述的装置、第四方面所述的计算机存储介质、第五方面所述的计算机程序产品或者第六方面所述的芯片均用于执行第一方面中任一所提供的方法。
因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
下面对本申请实施例用到的附图进行介绍。
图1为本发明实施例提供的一种人工智能主体框架示意图;
图2为本发明实施例提供的一种应用环境示意图;
图3为本发明实施例提供的一种卷积神经网络结构示意图;
图4为本发明实施例提供的一种卷积神经网络结构示意图;
图5为本发明实施例提供的一种神经网络处理器的结构示意图;
图6为本申请实施例提供的一种模型训练架构的示意图;
图7是本申请实施例提供的一种模型训练方法的流程示意图;
图8是本申请实施例提供的一种学习方法的示意图;
图9是本申请实施例提供的另一种学习方法的示意图;
图10是本申请实施例提供的一种模型训练方法的示意图;
图11是本申请实施例提供的一种模型训练方法的流程示意图;
图12是本申请实施例提供的一种模型训练装置的结构示意图;
图13是本申请实施例提供的另一种模型训练装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一系列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据-信息-知识-智慧”的凝练过程。
“IT价值链”从人工智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(中央处理器(CentralProcessingUnit,CPU)、嵌入式神经网络处理器NPU、图形处理器(GraphicsProcessing Unit,GPU)、特殊应用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
参见附图2,本发明实施例提供了一种系统架构200。数据采集设备260用于采集如图像数据并存入数据库230,训练设备220基于数据库230中维护的图像数据生成目标模型/规则201。下面将更详细地描述训练设备220如何基于图像数据得到目标模型/规则201,目标模型/规则201能够应用于图像处理系统,或者推荐系统等。
其中,训练设备220根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数、第i个训练阶段的训练流程次数Ti确定所述第i个训练阶段中的参考超参数,其中,M、i、Ti均为不小于2的整数;根据M个模型Pi-1的模型性能得分和所述第i个训练阶段中的参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1为所述M个模型Pi-2’在所述第i-1个训练阶段中最后一次训练流程得到的,所述M个模型Pi-1’是根据所述M个模型Pi-1进行处理得到的,所述M个模型Pi-1’与所述M个模型Pi-1一一对应,所述M个模型Pi-1与所述M个模型Pi-2’一一对应;在所述第i个训练阶段中,根据所述M个模型Pi-1’中每个模型的超参数对所述每个模型进行Ti次训练流程,得到M个模型Pi,并得到所述M个模型Pi-1’中每个模型在所述第i个训练阶段中每次训练流程得到的模型性能得分;当所述第i个训练阶段为最后一个训练阶段时,基于所述M个模型Pi中每个模型的性能得分从所述M个模型Pi中确定出目标模型。
其中,所述训练设备220还用于:根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数;根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数。
作为一种可选的实现方式,当i不小于3时,所述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,包括:根据M个模型Pi-3’中每个模型在第i-2个训练阶段中最后一次训练流程得到的模型性能得分、所述M个模型Pi-3’中每个模型在所述第i-2个训练阶段中的超参数、M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分以及所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,其中,所述M个模型Pi-2’为根据所述M个模型Pi-3’进行处理得到的,所述M个模型Pi-2’与所述M个模型Pi-3’一一对应。
作为另一种可选的实现方式,所述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,包括:根据M个模型P0中每个模型在前i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型P0中每个模型在所述前i-1个训练阶段中每个训练阶段中的超参数,得到模型性能估计函数,所述M个模型P0为初始模型。
作为一种可选的实现方式,所述方法还包括:根据N个长度范围对所述模型性能估计函数进行处理,得到N个处理后的模型性能估计函数,N为不小于2的整数;所述根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数,包括:根据所述第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,分别对所述N个处理后的模型性能估计函数进行处理,得到N个初始超参数;对所述N个初始超参数进行处理,得到所述第i个训练阶段中的参考超参数。
作为一种可选的实现方式,所述根据M个模型Pi-1的模型性能得分和所述第i个训练阶段中的参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数,包括:根据所述M个模型Pi-1的模型性能得分得到K个第一模型和M-K个第二模型,其中,所述K个第一模型为所述M个模型Pi-1中模型性能得分小于第一预设阈值的模型,所述M-K个第二模型为所述模型性能得分不小于所述第一预设阈值的模型,K为不小于1的整数,且K小于M;根据所述模型性能得分大于第二预设阈值的模型的参数对所述K个第一模型中每个模型的参数进行更新,得到K个更新后的第一模型,所述第二预设阈值不小于所述第一预设阈值;将所述第i个训练阶段中的参考超参数确定为所述K个更新后的第一模型中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1’包括所述K个更新后的第一模型和所述M-K个第二模型,所述M-K个第二模型中每个模型在所述第i个训练阶段中的超参数与该模型在所述第i-1个训练阶段中的超参数相同。
其中,所述训练设备220还用于:
根据前i-1个训练阶段中每个训练阶段的训练流程次数Tj获取所述前i-1个训练阶段的数据量;确认所述前i-1个训练阶段的数据量未超出预设值。
深度神经网络中的每一层的工作可以用数学表达式y=a(Wgx+b)来描述:从物理层面深度神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由Wgx完成,4的操作由+b完成,5的操作则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,W是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量W决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重W控制着如何变换空间。训练深度神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
训练设备220得到的目标模型/规则可以应用不同的系统或设备中。在附图2中,执行设备210配置有I/O接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向I/O接口212输入数据。
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
计算模块211使用目标模型/规则201对输入的数据进行图像识别处理或者进行推荐。
关联功能模块213用于提取接收到的数据的特征,并进行归一化操作。
关联功能模块214用于对计算模块输出的结果进行处理。
最后,I/O接口212将处理结果返回给客户设备240,提供给用户。
更深层地,训练设备220可以针对不同的目标,基于不同的数据生成相应的目标模型/规则201,以给用户提供更佳的结果。
在附图2中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在I/O接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向I/O接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到的图像数据存入数据库230。
值得注意的,附图2仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
下面以卷积神经网络做训练为例进行介绍:
卷积神经网络(CNN,Convolutional neuron network)是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元对输入其中的图像中的重叠区域作出响应。
如图3所示,卷积神经网络(CNN)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
卷积层/池化层120:
卷积层:
如图3所示卷积层/池化层120可以包括如示例121-126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。
该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。
不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化......该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
当卷积神经网络100有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图3中120所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。
另外,就像卷积层中用权重矩阵的大小应该与图像大小相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层130:
在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。
因此,在神经网络层130中可以包括多层隐含层(如图3所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等......
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图3由110至140的传播为前向传播)完成,反向传播(如图3由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图3所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,如图4所示的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
参照图5所示,是本发明实施例提供的一种神经网络处理器的结构图。神经网络处理器NPU 50NPU作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器508accumulator中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(Pooling),批归一化(Batch Normalization),局部响应归一化(Local Response Normalization)等。
在一些实现种,向量计算单元507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
存储单元访问控制器505(Direct Memory Access Controller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(Bus Interface Unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,简称DDR SDRAM)、高带宽存储器(High Bandwidth Memory,HBM)或其他可读可写的存储器。
需要说明的是,本方案中的超参数是用来调节整个网络模型训练过程的,例如神经网络的隐藏层的数量,核函数的大小,数量等等。超参数是配置变量,并不直接参与训练过程。
超参数可以是以下任意一种:
1)优化器算法(optimizer)
是指更新网络权重的机器学习算法。例如随机梯度下降算法(stochasticgradient descent,SGD)。
2)学习率
是指优化算法中每次迭代更新参数的幅度,也叫做步长。当步长过大会导致算法不收敛,目标函数处于震荡状态,而步长过小会导致模型的收敛速度过慢。
3)激活函数
指的是在每个神经元上添加的非线性函数,也就是神经网络具有非线性性质的关键,常用的激活函数有sigmoid,relu,tanh等等。
损失函数:也就是优化过程中的目标函数,损失越小越好,训练过程即为最小化损失函数的过程。
常用的损失函数有对数损失函数,平方损失函数,指数损失函数等等。
其中,本申请实施例中的超参数还可以是:
4)批大小(batch size)
是指每次进行梯度下降更新时的数据量大小。
5)丢弃比率(dropout rate)
是指模型训练过程随机屏蔽的网络权重。
6)权重衰减系数(weight decay coefficient)
是指网络权重的正则化项系数。
7)动量系数(momentum coefficient)
是指梯度下降更新网络权重时的动量项系数。
本方案仅以此为例进行说明,其还可以是其他超参数,本方案对此不做具体限定。
参照图6所示,为本申请实施例提供的一种模型训练架构的示意图。其中,该模型训练基于M个模型进行Z个训练阶段的训练,最终得到目标模型。该M个模型中的每个模型均进行Z个训练阶段的训练。
其中,每个训练阶段包括至少两次训练流程。这里的一次训练流程可以理解为模型遍历一次样本集。
作为一种可选的实现方式,该M个模型的规模、结构均一样。
下面对本申请实施例提供的模型训练方法进行详细介绍。
本申请实施例的执行主体可以是服务器等。
参照图7所示,为本申请实施例提供的一种模型训练方法的流程示意图。该方法包括步骤701-704,具体如下:
701、根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数、第i个训练阶段的训练流程次数Ti确定所述第i个训练阶段中的参考超参数,其中,M、i、Ti均为不小于2的整数;
其中,M个模型Pi-2’中每个模型在第i-1个训练阶段中均进行Ti-1次训练流程。每次训练流程可以理解为模型遍历一次样本集。每个模型进行一次训练流程可得到一个模型性能得分。
具体地,在一次训练流程中,模型参数如权重在使用训练数据集进行更新后得到新模型,通过计算新模型在验证数据集上的性能得分即可得到模型性能得分,其中,验证数据集为评估模型性能的数据集。
作为一种可选的实现方式,上述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数、第i个训练阶段的训练流程次数Ti确定所述第i个训练阶段中的参考超参数,包括:
根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数;
根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数。
通过根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分以及M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数进行机器学习,通过不断学习基于第i-1个训练阶段中任意次训练流程得到的模型性能得分以及对应的超参数,来得到间隔Δt个训练流程的模型性能得分,进而得到模型性能估计函数f(yt,Δt,A)。
其中,yt为模型性能得分,Δt为正整数,Δt表示yt对应的训练流程与其预测的模型性能得分对应的训练流程之间的间隔大小,A为yt对应的训练阶段的超参数。
具体可参阅图8所示的学习过程示意图。图8以第i-1个训练阶段有6次训练流程为例进行说明。分别基于第一次训练流程间隔1个训练流程、间隔2个训练流程、间隔3个训练流程、间隔4个训练流程、间隔5个训练流程进行学习,同时还学习第二次训练流程间隔1个训练流程、间隔2个训练流程、间隔3个训练流程、间隔4个训练流程。
相应地,还基于第三次训练流程间隔1个训练流程(图中未示出)、间隔2个训练流程(图中未示出)、间隔3个训练流程(图中未示出),以及基于第四次训练流程间隔1个训练流程(图中未示出)、间隔2个训练流程(图中未示出),以及基于第五次训练流程间隔1个训练流程(图中未示出)进行学习。
通过对于每个模型在第i-1个训练阶段的上述对应信息均进行学习,进而可在不同超参数下,基于不同性能得分来预测间隔Δt个训练流程的模型性能得分。采用该手段,提高了模型计算效率。
其中,上述对所述模型性能估计函数进行处理,可以是对所述模型性能估计函数进行极值求解进而得到参考超参数A*,可参照如下方式:
A*=argmaxA f(yt,Δt,A);
其表示在给定yt,Δt的情况下,在f取最大值时对应的A的值,即为参考超参数A*。
在得到上述模型性能估计函数之后,通过基于M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,以及第i个训练阶段的训练流程次数Ti,对所述模型性能估计函数进行极值求解,可得到在第i个训练阶段的最后一次训练流程得到的模型性能得分最高时的超参数。
其中,上述M个模型Pi-2’中至少一个模型,可以是M个模型Pi-2’中在第i-1个训练阶段中最后一次训练流程得到的模型性能得分最高的模型,
可选的,还可以是从最后一次训练流程得到的模型性能得分超出预设阈值的模型中随机选取一个。其还可以是基于其他选择方式来确定,本方案对此不做具体限定。
上述基于至少一次训练流程得到的模型性能得分来得到在第i个训练阶段的最后一次训练流程得到的模型性能得分最高时的超参数,可以是基于一次训练流程得到的模型性能得分来得到在第i个训练阶段的最后一次训练流程得到的模型性能得分最高时的超参数,也可以是基于多次训练流程得到的模型性能得分来得到在第i个训练阶段的最后一次训练流程得到的模型性能得分最高时的超参数。本方案对此不做具体限定。
具体地,基于M个模型Pi-2’中每个模型在第i-1个训练阶段中最后一次训练流程得到的模型性能得分得到模型性能得分最高的模型;进而基于该模型以及第i个训练阶段的训练流程次数Ti来得到上述参考超参数。
该实施例仅以模型性能得分最高的模型为例进行说明,其还可以是其他任意设定方式挑选出的模型,如可以是在模型性能得分从高到低排在前四的模型中随机选取一个模型等,本方案对此不做具体限定。
上述仅以一个模型在第i-1个训练阶段中最后一次训练流程得到的模型性能得分为例进行说明,其还可以是一个模型在第i-1个训练阶段中除最后一次之外的任意次训练流程得到的模型性能得分来计算参考超参数,本方案对此不做具体限定。
其中,还可以基于多个模型在第i-1个训练阶段中任意次训练流程得到的模型性能得分来计算上述参考超参数,如可以将多个模型得到的超参数设置不同权重,进而得到上述参考超参数。
上述仅以基于模型性能估计函数进行处理得到上述参考超参数为例进行说明,其还可以是通过性能估计模型进行处理得到上述参考超参数,本方案对此不做具体限定。
需要说明的是,本方案确定的上述第i个训练阶段中的参考超参数,可以是一个,也可以是多个,本方案对此不做具体限定。
作为一种可选的实现方式,当i不小于3时,上述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,可包括:
根据M个模型Pi-3’中每个模型在第i-2个训练阶段中最后一次训练流程得到的模型性能得分、所述M个模型Pi-3’中每个模型在所述第i-2个训练阶段中的超参数、M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分以及所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,其中,所述M个模型Pi-2’为根据所述M个模型Pi-3’进行处理得到的,所述M个模型Pi-2’与所述M个模型Pi-3’一一对应。
也就是说,通过基于对前一个训练阶段中最后一次训练流程得到的模型性能得分、前一个训练阶段中的超参数以及当前训练阶段中每次训练流程得到的模型性能得分、当前训练阶段中的超参数的学习,进而得到模型性能估计函数。
如图9所示,为本申请实施例提供的一种学习过程示意图。图9以第i-2个训练阶段有8次训练流程、第i-1个训练阶段有6次训练流程为例进行说明。分别基于第i-2个训练阶段的最后一次训练流程间隔1个训练流程(即第i-1个训练阶段的第1次训练流程)、间隔2个训练流程(即第i-1个训练阶段的第2次训练流程)、间隔3个训练流程、间隔4个训练流程、间隔5个训练流程、间隔6个训练流程进行学习,同时还学习第i-1个训练阶段的第1次训练流程间隔1个训练流程、间隔2个训练流程、间隔3个训练流程、间隔4个训练流程、间隔5个训练流程。
相应地,还基于第i-1个训练阶段的第2次训练流程间隔1个训练流程(图中未示出)、间隔2个训练流程(图中未示出)、间隔3个训练流程(图中未示出)、间隔4个训练流程(图中未示出),以及基于第i-1个训练阶段的第3次训练流程间隔1个训练流程(图中未示出)、间隔2个训练流程(图中未示出)、间隔3个训练流程(图中未示出),以此类推。
通过对于每个模型的上述对应信息均进行学习,进而可在不同超参数下,基于不同性能得分来预测间隔Δt个训练流程的模型性能得分。
本申请实施例通过对前一个训练阶段中最后一次训练流程得到的模型性能得分、前一个训练阶段中的超参数以及当前训练阶段中每次训练流程得到的模型性能得分、当前训练阶段中的超参数的学习,进而可以进行跨阶段的模型性能估计,提高了模型性能估计的准确度。
上述实施例以根据M个模型Pi-3’中每个模型在第i-2个训练阶段中最后一次训练流程得到的模型性能得分来得到模型性能估计函数。
可选的,还可以根据M个模型Pi-3’中每个模型在第i-2个训练阶段中每次训练流程得到的模型性能得分,进而得到模型性能估计函数。本方案对此不做具体限定。
也就是说,可以基于前两个训练阶段的学习进而得到模型性能估计函数。
作为又一种可选的实现方式,上述根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,包括:
根据M个模型P0中每个模型在前i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型P0中每个模型在所述前i-1个训练阶段中每个训练阶段中的超参数,得到模型性能估计函数,所述M个模型P0为初始模型。初始模型,也就是i取2时对应的模型。
具体地,通过学习前i-1个训练阶段的各个模型性能得分以及各个超参数,进而可以基于M个模型Pi-2’中每个模型在第i-1个训练阶段中最后一次训练流程得到的模型性能得分和第i个训练阶段的训练流程次数来得到第i个训练阶段中的参考超参数。
本申请实施例通过学习前i-1个训练阶段的各个模型性能得分以及各个超参数,进而得到第i个训练阶段中的参考超参数。采用该手段,通过学习大量数据,提高了模型性能估计的精度,进而提高了选取超参数的可靠性,有助于提高获取性能较好模型的效率。
上述仅以几种不同实现方式进行说明,其中,其还可以是基于任意若干个训练阶段的各个模型性能得分以及各个超参数进行学习,进而得到第i个训练阶段中的参考超参数。本方案对此不做具体限定。
需要说明的是,本申请实施例在确定参考超参数时,可以是直接基于其中一个模型性能得分来直接预测间隔Δt个训练流程的模型性能得分。其还可以是基于其中一个模型性能得分来预测间隔Δt’个训练流程的中间模型性能得分,进而基于该中间模型性能得分来预测最终的模型性能得分。
例如,基于当前训练阶段的第3个模型性能得分来预测下一训练阶段的第10个训练流程的模型性能得分,可以是基于当前训练阶段的第3个模型性能得分来预测下一训练阶段的第2个训练流程的模型性能得分,进而基于该第2个训练流程的模型性能得分来预测第10个训练流程的模型性能得分。
也就是说,本方案可以基于多次中间预测来进行学习,进而得到模型性能估计函数。上述仅以一实施例进行说明,其还可以是其他形式,本方案对此不做具体限定。
作为一种可选的实现方式,在得到模型性能估计函数之后,还包括:
根据N个长度范围对所述模型性能估计函数进行处理,得到N个处理后的模型性能估计函数,N为不小于2的整数:
根据所述第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,分别对所述N个处理后的模型性能估计函数进行处理,得到N个初始超参数;
对所述N个初始超参数进行处理,得到所述第i个训练阶段中的参考超参数。
其中,长度范围(length scale)是指高斯核中的长度范围项,用于控制两个量之间的相关程度。上述N个长度范围,例如可以是将长度范围0.5到1.5分为N项。
上述根据N个长度范围对所述模型性能估计函数进行处理,可以是通过使用不同长度范围的高斯核来对上述模型性能估计函数进行高斯过程拟合。其中,每个长度范围对应一个拟合后的模型性能估计函数,通过以不同长度范围进行高斯过程拟合后,得到N个处理后的模型性能估计函数。
然后对所述N个处理后的模型性能估计函数中的每个模型性能估计函数进行上述极值求解,得到N个初始超参数;并对这些超参数进行多质心聚类处理,选出如位于中心的超参数,即为所述参考超参数,以此来调整下一训练阶段的网络训练。
当然还可以将聚类而成的若干个中心对应的超参数,均作为第i个训练阶段中的参考超参数。也就是说,本方案的上述参考超参数可以是一个,也可以是多个,本方案对此不做具体限定。
采用该手段,通过多个长度范围来寻找合适的超参数,可以提升模型的稳定性。
作为一种可选的实现方式,在步骤701之前,所述方法还包括:
根据前i-1个训练阶段中每个训练阶段的训练流程次数Tj获取所述前i-1个训练阶段的数据量;
确认所述前i-1个训练阶段的数据量未超出预设值。
其中,上述数据量可表示为:
上述数据量可表征前i-1个训练阶段中每个训练阶段内基于任一一个模型性能得分来得到间隔Δt个训练流程的模型性能得分的训练数据的个数的和。
例如,第3个训练阶段有4个训练流程,则该训练阶段对应的训练数据的个数为4*5/2=10。通过叠加各个训练阶段的训练数据的个数,进而得到上述数据量。
若未超出预设值,则执行步骤701。
可选的,在每次获取到模型性能得分、超参数等时,均进行存储。
若超出预设值,则重置存储训练数据的存储器buffer,并初始化超参数。或者,仅保留最近的若干个训练数据,继续进行训练。
通过实时判断在模型训练过程中是否收集过多的训练数据,从而在数据量过大时,进行相应处理。采用该手段,可以有效提高计算效率。
702、根据M个模型Pi-1的模型性能得分和所述第i个训练阶段中的参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数;
其中,所述M个模型Pi-1为所述M个模型Pi-2’在所述第i-1个训练阶段中最后一次训练流程得到的,所述M个模型Pi-1’是根据所述M个模型Pi-1进行处理得到的,所述M个模型Pi-1’与所述M个模型Pi-1一一对应,所述M个模型Pi-1与所述M个模型Pi-2’一一对应;
如图10所示,为本申请实施例提供的一种模型训练方法的示意图。
图10以M个模型中的模型s为例进行说明。模型Pi-3,s’在第i-2个训练阶段进行Ti-2次训练流程,得到模型Pi-2,s。其中,模型Pi-2,s进行处理得到模型Pi-2,s’。模型Pi-2,s’在第i-1个训练阶段进行Ti-1次训练流程,得到模型Pi-1,s。其中,模型Pi-1,s进行处理得到模型Pi-1,s’。模型Pi-1,s’在第i个训练阶段进行Ti次训练流程,得到模型Pi,s。
也就是说,上述模型Pi-2,s’与模型Pi-1,s对应,模型Pi-1,s与模型Pi-1,s’对应。
作为一种可选的实现方式,上述M个模型Pi-1’是根据所述M个模型Pi-1进行处理得到的,可以理解为,其中,M个模型Pi-1’中的与上述K个第一模型对应的K个模型,是通过将M个模型Pi-1中得分较低的K个第一模型的参数进行更新得到的;M个模型Pi-1’中的与上述M-K个第二模型对应的M-K个模型,是通过将上述得分较高的M-K个第二模型的参数保持不变而得到的,也即得分较高的模型保持不变即可得到用于第i个训练阶段的部分模型。
当然还可以基于其他方式来进行处理,进而得到上述M个模型Pi-1’,本方案对此不做具体限定。
作为一种可选的实现方式,上述根据M个模型Pi-1的模型性能得分和所述参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数,包括:
根据所述M个模型Pi-1的模型性能得分得到K个第一模型和M-K个第二模型,其中,所述K个第一模型为所述M个模型Pi-1中模型性能得分小于第一预设阈值的模型,所述M-K个第二模型为所述模型性能得分不小于所述第一预设阈值的模型,K为不小于1的整数,且K小于M;
根据所述模型性能得分大于第二预设阈值的模型的参数对所述K个第一模型中每个模型的参数进行更新,得到K个更新后的第一模型,所述第二预设阈值不小于所述第一预设阈值;
将所述第i个训练阶段中的参考超参数确定为所述K个更新后的第一模型中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1’包括所述K个更新后的第一模型和所述M-K个第二模型,所述M-K个第二模型中每个模型在所述第i个训练阶段中的超参数与该模型在所述第i-1个训练阶段中的超参数相同。
也就是说,将M个模型Pi-1的模型性能得分进行排序,然后将所述参考超参数确定为其中一部分性能得分较差的模型(如上述K个第一模型)的第i个训练阶段中的超参数。具体地,当参考超参数只有一个时,可以将其确定为性能得分较差的每个模型的超参数。当参考超参数有多个时,可以基于性能得分的排序,来确定性能得分较差的每个模型的超参数。例如可以随机分配,也可以按顺序分配等,本方案对此不做具体限定。
其中,性能得分较好的模型(如上述M-K个第二模型)中每个模型在第i个训练阶段中的超参数与该模型在第i-1个训练阶段中的超参数一致。
其中,上述根据所述模型性能得分大于第二预设阈值的模型的参数对所述K个第一模型中每个模型的参数进行更新,可以是基于性能得分较好的模型的参数来确定上述性能得分较差的模型的参数。
例如,将上述模型性能得分较差的模型的参数更新为模型性能得分最高的模型的参数。或者,将上述模型性能得分最差的模型的参数更新为模型性能得分最高的模型的参数,将上述模型性能得分次差的模型的参数更新为模型性能得分次高的模型的参数等。上述仅以部分示例进行说明,其还可以是其他形式,本方案对此不做具体限定。
可选的,上述第二预设阈值的大小可以和第一预设阈值的大小一样。上述第二预设阈值的大小还可以大于第一预设阈值的大小。
本申请实施例通过基于M个模型Pi-1的模型性能得分进行模型更新,得到用于下一个训练阶段进行训练的M个模型Pi-1’。通过周期性的更新模型,将模型性能得分较差的模型的参数更新为模型性能得分较高的模型的参数,基于性能好的模型来进行下一训练阶段的训练,提高了获得性能较好的模型的效率。
需要说明的是,本申请实施例中模型的参数包括模型的网络权重。其还可以包括其他信息,本方案对此不做限定。
703、在所述第i个训练阶段中,根据所述M个模型Pi-1’中每个模型的超参数对所述每个模型进行Ti次训练流程,得到M个模型Pi,并得到所述M个模型Pi-1’中每个模型在所述第i个训练阶段中每次训练流程得到的模型性能得分;
通过确定第i个训练阶段的M个模型Pi-1’中每个模型的超参数,进而对该M个模型Pi-1’中每个模型进行Ti次训练流程。
其中,若第i个训练阶段不是最后一个训练阶段,则令i=i+1,并重复执行上述步骤701-703,即确定下一个训练阶段的超参数,以及下一个训练阶段的模型,进而进行训练。
直到第i个训练阶段为最后一个训练阶段,则进入步骤704。
704、当所述第i个训练阶段为最后一个训练阶段时,基于所述M个模型Pi中每个模型的性能得分从所述M个模型Pi中确定出目标模型。
具体地,当完成最后一个训练阶段的最后一次训练流程后,基于最终得到的M个模型Pi中每个模型的模型性能得分进行排序,将其中模型性能得分最高的模型确定为目标模型。
本申请实施例仅以模型性能得分最高的模型为目标模型为例进行说明,其还可以是将模型性能得分超出预设值的模型确定为目标模型。也就是说,目标模型可以是一个,也可以是多个,本方案对此不做具体限定。
通过本申请实施例,通过根据第i-1个训练阶段中M个模型中每个模型每次训练流程得到的模型性能得分、第i-1个训练阶段中每个模型的超参数以及第i个训练阶段的训练流程次数来确定第i个训练阶段中M个模型中每个模型的超参数,通过基于该M个模型的超参数对M个模型进行训练,进而得到目标模型。采用该手段,通过在确定第i个训练阶段的超参数时结合考虑第i个训练阶段的训练流程次数,使得该超参数的确定过程更加全面、更加精确,有助于获得性能较好的神经网络,提高了模型计算效率。
下面对本方案的模型训练方法应用于图像处理场景为例进行介绍:
参照图11所示,为本申请实施例提供的一种应用于图像识别的模型训练方法。该训练方法包括步骤1101-1108,具体如下:
1101、获取图像分类样本集;
作为一种可选的实现方式,在监督学习任务上收集训练数据,并对数据进行归一化等预处理操作,将数据整理成样本,进而得到图像分类样本集。
其还可以是采用其他方式等来得到图像分类样本集。
其中,图像分类样本集中包括不同类别的数据,例如桌子图片、椅子图片、飞机图片等。
1102、对M个模型中的每个模型进行初始化处理,得到M个模型P0;
上述初始化处理,可以是设置初始参数以及初始超参数。该初始超参数为该模型在第一个训练阶段的超参数。
该M个模型可以是深度神经网络模型等。
1103、根据所述M个模型P0的初始超参数,对所述M个模型P0进行第一个训练阶段的T1次训练流程,得到M个模型P1,以及M个模型P0中每个模型在第一个训练阶段中每次训练流程得到的模型性能得分;
即i=1时,进行第一个训练阶段的训练。
以超参数学习率为例来进行说明。其中,学习率控制模型参数即网络权重更新速率的快慢。例如,当第i个训练阶段的学习率比第i-1个训练阶段的学习率小时,此时该第i个训练阶段的网络权重更新较慢。
在第i个训练阶段的每一次训练流程中,模型多次抽取批量样本的图像数据,每次均根据预先定义的图像分类评估函数(即损失函数)计算该批量图像数据的损失值,并通过优化器算法计算在该批量图像数据上得到的图像分类模型的权重更新方向,结合学习率来更新模型权重。
其中,每一次训练流程,每个模型均遍历一次上述图像分类样本集。
1104、根据所述M个模型P0中每个模型在第一个训练阶段中每次训练流程得到的模型性能得分、所述M个模型P0的初始超参数以及第二个训练阶段的训练流程次数T2,得到第二个训练阶段的M个模型P1’,以及M个模型P1’中每个模型的超参数;
其中,根据每个模型在第一个训练阶段中每次训练流程得到的模型性能得分、M个模型P0中每个模型在第一个训练阶段中的超参数进行学习,通过基于任一个模型的特定模型性能得分,在该模型的超参数的作用下,学习预测在间隔Δt个训练流程得到的模型性能得分,进而可以得到模型性能估计函数。
然后,基于一个特定模型性能得分(如获取M个模型P0中每个模型在第一个训练阶段中最后一次训练流程得到的模型性能得分中最高的模型性能得分),该模型性能得分对应的模型在第一个训练阶段的超参数,以及特定的Δt(如第二个训练阶段的训练流程次数T2)对该模型性能估计函数进行极值求解,可得到在第二个训练阶段中最后一次训练流程得到的模型性能得分最高时对应的参考超参数。
基于上述参考超参数以及M个模型P0中每个模型在第一个训练阶段中最后一次训练流程得到的模型性能得分,得到第二个训练阶段的M个模型P1’,以及M个模型P1’中每个模型的超参数。
其中,第二个训练阶段的M个模型P1’是基于M个模型P1得到的。具体地,将M个模型P1中性能得分较低的模型的参数更新为该M个模型P1中性能得分较高的模型的参数。
进而,性能得分较高的模型的参数和超参数均保持不变。性能得分较低的模型的超参数根据上述模型性能估计函数得到。
其中,具体处理过程可参阅前述步骤702中的介绍,在此不再赘述。
1105、根据所述M个模型P1’中每个模型的超参数,对所述M个模型P1’中每个模型进行第二个训练阶段的训练,得到M个模型P2,以及M个模型P1’中每个模型在第二个训练阶段中每次训练流程得到的模型性能得分;
即i=2时,进行第二个训练阶段的训练。
1106、确定第i个训练阶段是否是最后一个训练阶段;
此时确定所述第二个训练阶段是否是最后一个训练阶段,若不是,则执行步骤1107;若是,则执行步骤1108。
1107、令i=i+1,重复执行步骤1104-1106,进行下一训练阶段的训练,直到达到最后一个训练阶段。
1108、根据M个模型Pi-1’中每个模型在第i个训练阶段中最后一次训练流程得到的模型性能得分,确定出目标模型。
该目标模型可以是第i个训练阶段中最后一次训练流程得到的模型中性能得分中最高的模型。
需要说明的是,对于第一个训练阶段的M个模型P0,设定P0与P0’一样。
其中,上述具体实现过程可参阅前述实施例的介绍,在此不再赘述。
基于上述模型训练方法,可以得到用于图像识别的目标模型。
下面对本方案应用于推荐系统进行介绍:
本申请实施例提供一种模型训练方法。该训练方法应用于推荐系统,其包括步骤C1-C8,具体如下:
C1、获取推荐数据样本集;
该推荐数据样本集中包括用户性别、用户年龄、用户历史购买行为中的至少一种。
C2、对M个模型中的每个模型进行初始化处理,得到M个模型P0;
C3、根据所述M个模型P0的初始超参数,对所述M个模型P0进行第一个训练阶段的T1次训练流程,得到M个模型P1,以及M个模型P0中每个模型在第一个训练阶段中每次训练流程得到的模型性能得分;
以超参数是权重衰减系数为例来进行说明。其中,权重衰减系数控制网络权重的正则化项系数。例如,当第i个训练阶段的权重衰减系数比第i-1个训练阶段的权重衰减系数大时,此时该第i个训练阶段具有更严格的权重大小惩罚,使得第i个训练阶段的权重变小,具有更好的泛化性。
在第i个训练阶段的每一次训练流程中,模型多次抽取批量样本的用户数据,每次均根据预先定义的商品推荐评估函数(即损失函数)计算该批量用户数据的损失值,并通过优化器算法更新推荐模型的权重。
C4、根据所述M个模型P0中每个模型在第一个训练阶段中每次训练流程得到的模型性能得分、所述M个模型P0的初始超参数以及第二个训练阶段的训练流程次数T2,得到第二个训练阶段的M个模型P1’,以及M个模型P1’中每个模型的超参数;
C5、根据所述M个模型P1’中每个模型的超参数,对所述M个模型P1’中每个模型进行第二个训练阶段的训练,得到M个模型P2,以及M个模型P1’中每个模型在第二个训练阶段中每次训练流程得到的模型性能得分;
C6、确定第i个训练阶段是否是最后一个训练阶段;
此时确定所述第二个训练阶段是否是最后一个训练阶段,若不是,则执行步骤1107;若是,则执行步骤1108。
C7、令i=i+1,重复执行步骤1104-1106,进行下一训练阶段的训练,直到达到最后一个训练阶段。
C8、根据M个模型Pi-1’中每个模型在第i个训练阶段中最后一次训练流程得到的模型性能得分,确定出目标模型。
其中,上述具体实现过程可参阅前述实施例的介绍,在此不再赘述。
基于上述模型训练方法,可以得到用于进行商品推荐的目标模型等。
参照图12所示,为本申请实施例提供的一种模型训练装置,包括第一确定模块1201、第二确定模块1202、模型训练模块1203和模型确定模块1204,具体如下:
第一确定模块1201,用于根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数、第i个训练阶段的训练流程次数Ti确定所述第i个训练阶段中的参考超参数,其中,M、i、Ti均为不小于2的整数;
第二确定模块1202,用于根据M个模型Pi-1的模型性能得分和所述第i个训练阶段中的参考超参数确定M个模型Pi-1’中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1为所述M个模型Pi-2’在所述第i-1个训练阶段中最后一次训练流程得到的,所述M个模型Pi-1’是根据所述M个模型Pi-1进行处理得到的,所述M个模型Pi-1’与所述M个模型Pi-1一一对应,所述M个模型Pi-1与所述M个模型Pi-2’一一对应;
模型训练模块1203,用于在所述第i个训练阶段中,根据所述M个模型Pi-1’中每个模型的超参数对所述每个模型进行Ti次训练流程,得到M个模型Pi,并得到所述M个模型Pi-1’中每个模型在所述第i个训练阶段中每次训练流程得到的模型性能得分;
模型确定模块1204,用于当所述第i个训练阶段为最后一个训练阶段时,基于所述M个模型Pi中每个模型的性能得分从所述M个模型Pi中确定出目标模型。
作为一种可选的实现方式,所述第一确定模块1201,用于:
根据M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数;根据第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,对所述模型性能估计函数进行处理,得到所述第i个训练阶段中的参考超参数。
作为另一种可选的实现方式,当i不小于3时,所述第一确定模块1201,还用于:
根据M个模型Pi-3’中每个模型在第i-2个训练阶段中最后一次训练流程得到的模型性能得分、所述M个模型Pi-3’中每个模型在所述第i-2个训练阶段中的超参数、M个模型Pi-2’中每个模型在第i-1个训练阶段中每次训练流程得到的模型性能得分以及所述M个模型Pi-2’中每个模型在所述第i-1个训练阶段中的超参数,得到模型性能估计函数,其中,所述M个模型Pi-2’为根据所述M个模型Pi-3’进行处理得到的,所述M个模型Pi-2’与所述M个模型Pi-3’一一对应。
作为又一种可选的实现方式,所述第一确定模块1201,还用于:
根据M个模型P0中每个模型在前i-1个训练阶段中每次训练流程得到的模型性能得分、所述M个模型P0中每个模型在所述前i-1个训练阶段中每个训练阶段中的超参数,得到模型性能估计函数,所述M个模型P0为初始模型。
所述装置还包括处理模块,用于:
根据N个长度范围对所述模型性能估计函数进行处理,得到N个处理后的模型性能估计函数,N为不小于2的整数;
所述第一确定模块1201,还用于:
根据所述第i个训练阶段的训练流程次数Ti以及所述M个模型Pi-2’中至少一个模型在第i-1个训练阶段中至少一次训练流程得到的模型性能得分,分别对所述N个处理后的模型性能估计函数进行处理,得到N个初始超参数;对所述N个初始超参数进行处理,得到所述第i个训练阶段中的参考超参数。
作为另一种可选的实现方式,所述第二确定模块1202,用于:
根据所述M个模型Pi-1的模型性能得分得到K个第一模型和M-K个第二模型,其中,所述K个第一模型为所述M个模型Pi-1中模型性能得分小于第一预设阈值的模型,所述M-K个第二模型为所述模型性能得分不小于所述第一预设阈值的模型,K为不小于1的整数,且K小于M;根据所述模型性能得分大于第二预设阈值的模型的参数对所述K个第一模型中每个模型的参数进行更新,得到K个更新后的第一模型,所述第二预设阈值不小于所述第一预设阈值;将所述第i个训练阶段中的参考超参数确定为所述K个更新后的第一模型中每个模型在所述第i个训练阶段中的超参数;其中,所述M个模型Pi-1’包括所述K个更新后的第一模型和所述M-K个第二模型,所述M-K个第二模型中每个模型在所述第i个训练阶段中的超参数与该模型在所述第i-1个训练阶段中的超参数相同。
作为一种可选的实现方式,所述装置还包括确认模块,用于:
根据前i-1个训练阶段中每个训练阶段的训练流程次数Tj获取所述前i-1个训练阶段的数据量;
确认所述前i-1个训练阶段的数据量未超出预设值。
其中,所述超参数包括以下至少一种:学习率、批大小、丢弃比率、权重衰减系数、动量系数。
其中,所述目标模型可应用于图像处理系统,或者推荐系统等。
需要说明的是,上述图12所示的第一确定模块1201、第二确定模块1202、模型训练模块1203和模型确定模块1204用于执行上述模型训练方法的相关步骤。
比如第一确定模块1201用于执行步骤701的相关内容,第二确定模块1202用于执行步骤702的相关内容,模型训练模块1203用于执行步骤703的相关内容,模型确定模块1204用于执行步骤704的相关内容。
在本实施例中,该模型训练装置是以模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上第一确定模块1201、第二确定模块1202、模型训练模块1203和模型确定模块1204,可通过图13所示的模型训练装置的处理器1302来实现。
图13是本申请实施例提供的另一种模型训练装置的硬件结构示意图。图13所示的模型训练装置1300(该装置1300具体可以是一种计算机设备)包括存储器1301、处理器1302、通信接口1303以及总线1304。其中,存储器1301、处理器1302、通信接口1303通过总线1304实现彼此之间的通信连接。
存储器1301可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。
存储器1301可以存储程序,当存储器1301中存储的程序被处理器1302执行时,处理器1302和通信接口1303用于执行本申请实施例的模型训练方法的各个步骤。
处理器1302可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的模型训练装置中的单元所需执行的功能,或者执行本申请方法实施例的模型训练方法。
处理器1302还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的模型训练方法的各个步骤可以通过处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1302还可以是通用处理器、数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1301,处理器1302读取存储器1301中的信息,结合其硬件完成本申请实施例的模型训练装置中包括的单元所需执行的功能,或者执行本申请方法实施例的模型训练方法。
通信接口1303使用例如但不限于收发器一类的收发装置,来实现装置1300与其他设备或通信网络之间的通信。例如,可以通过通信接口1303获取数据。
总线1304可包括在装置1300各个部件(例如,存储器1301、处理器1302、通信接口1303)之间传送信息的通路。
应注意,尽管图13所示的装置1300仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置1300还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置1300还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置1300也可仅仅包括实现本申请实施例所必须的器件,而不必包括图13中所示的全部器件。
本申请实施例还提供一种芯片系统,所述芯片系统应用于电子设备;所述芯片系统包括一个或多个接口电路,以及一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行所述方法。
本申请实施例还提供一种模型训练装置,包括处理器和存储器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行所述模型训练方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
应理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。