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

一种生成流模型训练方法、动作预测方法以及装置

文献发布时间:2024-04-18 20:01:23


一种生成流模型训练方法、动作预测方法以及装置

技术领域

本申请涉及人工智能领域,尤其一种生成流模型训练方法、动作预测方法以及装置。

背景技术

生成流模型以序列决策的方式构建复合结构,常用的生成流模型通常以有向无环图来进行构建,即每一个状态节点可以包括一个或者多个父节点,这与树结构中每个状态节点仅有唯一父节点不同。生成流模型有唯一初始节点,多个终止节点。模型从初始节点开始采样生成动作序列,完成状态之间的转移,直至到达终止节点,结束采样。终止节点对应生成的复合结构。

然而,针对生成流模型的训练,已有的方案通常仅能应用于基于有向无环图构建的模型中,而针对有环图构建模型,则会环的边流量无线累加,无法实现模型训练。

发明内容

本申请提供一种生成流模型训练方法、动作预测方法以及装置,可以实现对有向无环图或者有环图的生成流模型训练,可以更广泛地应用于多种人工智能场景。

有鉴于此,第一方面,本申请提供一种生成流模型的训练方法,方法包括:首先,获取生成流模型中多个状态节点,该多个状态节点可以用于表示智能体的状态,状态节点之间可以通过执行动作来转移;随后根据多个状态节点获取损失函数的值,损失函数的值包括流匹配函数的值和约束函数的值融合的值,生成流模型中的多个状态节点之间可以通过流连接,该流可以用于表示当前状态节点转移到下一个状态节点时选取各个动作的概率,每个状态节点具有输入流和输出流,流匹配函数的值包括基于多个状态节点中每个状态节点的输入流和输出流计算得到的值,约束函数的值包括多个状态节点的输出流对应的评估值计算得到的值,其中,有环路径中状态节点的输出流对应的约束函数的值与无环路径中状态节点的输出流对应的约束函数的值不同,有环路径包括该多个状态节点之间形成环路的路径,无环路径即该多个状态节点之间形成的不包括环路的路径,该多个状态之间形成的路径的起点和终点通常是根据生成流模型执行的任务确定定;随后根据损失函数的值更新生成流模型,得到更新后的生成流模型。

本申请实施方式中,在损失函数中设置了约束项,即约束函数,通过约束函数来对损失函数的输出值的大小进行约束,从而约束生成流模型的整体输出收敛至无环流。如可以在损失函数部分,增加针对环路流设置的奖励值,以使环路流的损失大于0,从而可以约束环路流的奖励收敛至接近于0,使有环部分的流量更接近于0,降低环路对模型输出的影响。因此,本申请提供的方法可以应用于无环以及有环的生成流模型,因此可以应用于更多场景下的生成流模型训练,泛化能力更强。

在一种可能的实施方式中,前述的根据多个状态节点获取损失函数的值,可以包括:可以根据策略网络的输出结果来确定多个状态节点对应的概率分布,该概率分布可以用于确定基于每个状态节点选取下一个动作时待选取的至少一个动作被选取的概率;随后根据概率分布以及多个状态节点计算损失函数的值。

即本申请提供的方法可以应用于强化学习中,可以通过策略网络来学习各个状态节点对应的概率分布。前述的训练过程可以是迭代训练中的其中一次迭代过程,在当前次迭代过程中,可以通过上一次训练后的策略网络的输出至来确定概率分布的,从而根据该概率分布以及生成流网络中的多个状态节点之间可能的转移路径,并计算损失函数的值,从而基于该损失函数的值来对策略网络进行更新,从而基于策略网络的输出结果来对生成流网络进行更新。

在一种可能的实施方式中,前述的根据策略网络确定多个状态节点对应的概率分布,可以包括:根据策略网络输出在测度空间中多个状态节点之间传输的流的测度值,该测度值可以用于表示多个状态节点之间传输的流在测度空间中的密度;随后根据多个状态节点之间的测度值确定概率分布,即各个状态节点在进行状态转移选取动作时,各个待选取的动作对应的被选取概率。本申请实施方式中,测度空间中的密度大小与概率具有对应关系,因此可以通过策略网络输出的测度值来确定进行状态转移时选取各个动作的概率,从而通过测度空间来更直观地对各个状态节点的输入流与输出流以及对应的概率进行度量。

在一种可能的实施方式中,前述的根据概率分布以及多个状态节点计算损失函数的值,可以包括:根据概率分布确定多个状态节点之间的至少一条路径,每条路径的起点和终点为根据生成流模型需要执行的任务确定,比如自动驾驶智能体中,状态节点可以表示当前的自动驾驶状态(比如车速5km/h),即为路径起点,终点可以是需要进行自动驾驶的目标驾驶状态(比如将车速提升至60km/h),状态节点之间的转移动作即可包括加速区间[5,15]、[15,20]等;根据至少一条路径以及每个状态节点的输入流和输出流计算损失函数的值。

本申请实施方式中,在测度空间中确定概率分布后,即可基于该概率分布确定出一条或者多条可能的状态转移路径,从而根据该一条或者多条可能的状态转移路径来计算损失函数的值,实现对生成流网络的更新。

在一种可能的实施方式中,前述的约束函数可以包括基于边缘流矩阵的范数组成的函数,边缘流矩阵为多个状态节点中的中间状态节点之间的边缘流形成的矩阵,边缘流即多个状态节点中任一对节点之间传输的流。本申请实施方式中,可以对边缘流采用边缘流矩阵的范数进行约束,可以降低采样时间,加速模型收敛。

在一种可能的实施方式中,前述的损失函数包括流匹配函数和约束函数之间的散度形成的函数。因此,本申请实施方式中,通过广义散度来计算损失值,从而可以得到更稳定的损失值,可以加快模型收敛,提高训练效率。

在一种可能的实施方式中,前述的损失函数包括基于节点流匹配损失、基于轨迹平衡损失、基于连续空间中节点密度损失的函数或基于连续空间中轨迹的密度损失的函数。因此,本申请实施方式中,可以从多种维度来计算损失值,具有较强的泛化性。

第二方面,本申请提供一种动作预测方法,包括:获取状态信息,状态信息用于指示智能体当前的状态;将状态信息作为生成流模型的输入,得到至少一个动作对应的概率值,该至少一个动作对应的概率值用于确定智能体执行的动作;其中,该生成模型为通过如前述第一方面或者第一方面任一可选实施方式的方法进行训练得到。

第二方面所实现的效果可以参阅前述第一方面或第一方面任一可选实施方式的描述,此处不再赘述。

第三方面,本申请提供一种动作预测方法,包括:首先获取生成流模型中多个状态节点;随后获取多个状态节点的测度值,测度值表示多个状态节点在进行状态转移时形成的路径在测度空间中的密度,测度值用于确定概率分布,概率分布用于确定基于多个状态节点中的每个状态节点选取下一个动作时待选取的至少一个动作被选取的概率;根据多个状态节点的测度值确定至少一条路径,至少一条路径包括多个状态节点之间基于概率分布选取的动作进行转移形成的路径,其中每条路径的起点和终点为根据生成流模型执行的任务确定。

因此,本申请实施方式中,可以在可度量的测度空间中进行动作预测,从而可以预测得到更准确的下一个动作。

在一种可能的实施方式中,前述的方法还可以包括:根据至少一条路径计算损失值;根据损失值更新生成流模型,得到更新后的生成流模型。因此,本申请提供的在测度空间中进行动作预测的方法还可以应用于训练阶段,泛化能力强。

第四方面,本申请提供一种生成流模型的训练装置,该装置包括:

获取模块,用于获取生成流模型中多个状态节点;

计算模块,用于根据多个状态节点获取损失函数的值,损失函数的值包括流匹配函数的和约束函数的值融合的值,流匹配函数的值包括基于多个状态节点中每个状态节点的输入流和输出流计算得到的值,约束函数的值包括多个状态节点的输出流对应的评估值计算得到的值,其中,有环路径中的输出流对应的约束函数的值与无环路径中的输出流对应的约束函数的值不同,有环路径包括状态节点之间形成环路的路径,无环路径为状态节点之间形成的不包括环路的路径;

更新模块,用于根据损失函数的值更新生成流模型,得到更新后的生成流模型。

其中,第四方面以及第四方面任一可选实施方式所实现的效果可以参阅前述第一方面或第一方面任一可选实施方式的描述,此处不再赘述。

在一种可能的实施方式中,前述的计算模块,具体用于:根据策略网络确定多个状态节点对应的概率分布,概率分布用于确定基于每个状态节点选取下一个动作时待选取的至少一个动作被选取的概率;根据概率分布以及多个状态节点计算损失函数的值。

在一种可能的实施方式中,前述的计算模块,具体用于:根据策略网络输出在测度空间中多个状态节点之间传输的流的测度值,测度值表示多个状态节点之间传输的流在测度空间中的密度;根据多个状态节点之间的测度值确定概率分布。

在一种可能的实施方式中,前述的计算模块,具体用于:根据概率分布确定多个状态节点之间的至少一条路径,该至少一条路径的起点和终点为根据生成流模型执行的任务确定;根据至少一条路径以及每个状态节点的输入流和输出流计算损失函数的值。

在一种可能的实施方式中,前述的约束函数包括基于边缘流矩阵的范数组成的函数,边缘流矩阵为多个状态节点中的中间状态节点之间的边缘流形成的矩阵,边缘流。

在一种可能的实施方式中,前述的损失函数包括流匹配函数和约束函数之间的散度形成的函数。

在一种可能的实施方式中,前述的损失函数包括基于节点流匹配损失、基于轨迹平衡损失、基于连续空间中节点密度损失或基于连续空间中轨迹的密度损失的函数。

第五方面,本申请提供一种动作预测装置,包括:

获取模块,用于获取状态信息,状态信息用于指示智能体当前的状态;

生成模块,用于将状态信息作为生成流模型的输入,得到至少一个动作对应的概率值,该至少一个动作对应的概率值用于确定智能体执行的动作;

其中,该生成模型为通过如前述第一方面或者第一方面任一可选实施方式的方法进行训练得到。

第六方面,本申请提供一种动作预测装置,包括:

获取模块,用于获取生成流模型中多个状态节点;

测度模块,用于获取多个状态节点的测度值,测度值表示多个状态节点在进行状态转移时形成的路径在测度空间中的密度,测度值用于确定概率分布,所述概率分布用于确定基于所述多个状态节点中的每个状态节点选取下一个动作时待选取的至少一个动作被选取的概率;

确定模块,用于根据多个状态节点的测度值确定至少一条路径,至少一条路径包括多个状态节点之间基于概率分布选取的动作进行转移形成的路径,该至少一条路径的起点和终点为根据生成流模型执行的任务确定。

在一种可能的实施方式中,上述装置还包括更新模块,用于:根据至少一条路径计算损失值;根据损失值更新生成流模型,得到更新后的生成流模型。

第七方面,本申请实施例提供一种生成流模型的训练装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的生成流模型的训练方法中与处理相关的功能。可选地,该数据量化装置可以是芯片。

第八方面,本申请实施例提供一种动作预测装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第二方面任一项所示的动作预测方法中与处理相关的功能。可选地,该数据量化装置可以是芯片。

第九方面,本申请实施例提供一种动作预测装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第三方面任一项所示的动作预测方法中与处理相关的功能。可选地,该数据量化装置可以是芯片。

第十方面,本申请实施例提供了一种数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第一方面至第三方面中任一可选实施方式中与处理相关的功能。

第十一方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面中任一可选实施方式中的方法。

第十二方面,本申请实施例提供了一种包含计算机程序/指令的计算机程序产品,当其被处理器执行时,使得处理器执行上述第一方面至第三方面中的任一可选实施方式中的方法。

附图说明

图1为本申请提供的一种强化学习的流程示意图;

图2为本申请提供的一种生成流模型的结构示意图;

图3为本申请提供的一种生成流模型的训练方法的流程示意图;

图4为本申请提供的另一种生成流模型的训练方法的流程示意图;

图5为本申请提供的另一种生成流模型的训练方法的流程示意图;

图6为本申请提供的一种动作预测方法的流程示意图;

图7为本申请提供的另一种动作预测方法的流程示意图;

图8为本申请提供的一种生成流模型的训练装置的结构示意图;

图9为本申请提供的一种动作预测装置的结构示意图;

图10为本申请提供的另一种动作预测装置的结构示意图;

图11为本申请提供的另一种生成流模型的训练装置的结构示意图;

图12为本申请提供的另一种动作预测装置的结构示意图;

图13为本申请提供的一种芯片结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

首先,本申请提供的方法涉及神经网络相关的概念,为便于理解,下面对涉及到的神经网网络的相关概念进行介绍。

(1)神经网络

神经网络可以是由神经单元组成的,神经单元可以是指以x

其中,s=1、2、……n,n为大于1的自然数,W

(2)卷积神经网络

卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元可以共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取特征的方式与位置无关。卷积核可以以随机大小的矩阵的形式化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

(3)损失函数

在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。该损失函数通常可以包括误差平方均方、交叉熵、对数、指数等损失函数。例如,可以使用误差均方作为损失函数,定义为

(4)图(Graph)

图为包括至少一个顶点以及至少一条边的数据结构。在一些场景中,图中的顶点可以映射为实体,图中的边可以映射为实体与实体之间的关系。图可以是有向图或无向图。当然,图还可以包括顶点以及边以外的其他数据,例如顶点的标签以及边的标签等。

(5)有向无环图(directed acyclic graph,DAG)

有向无环图指的是一个无回路的有向图。比如一个非有向无环图,且A点出发向B经C可回到A,形成一个环。将从C到A的边方向改为从A到C,则变成有向无环图。有向无环图的生成树个数等于入度非零的节点的入度积。

(6)有环图

与前述DAG类似,区别在于有环图中可能包括多个节点之间连接形成的环状结构。

(7)强化学习

强化学习(reinforcement learning,RL),又称再励学习、评价学习或增强学习等,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。

强化学习是智能体(agent)以“试错”的方式进行学习,通过动作(action)与环境进行交互获得的奖励(reward)指导行为,目标是使智能体获得最大的奖励。通常,强化学习可以无需训练数据集,或者通过与环境交互来产生训练数据等。强化学习中由环境提供的强化信号(即奖励)对产生动作的好坏作一种评价,而不是告诉强化学习系统如何去产生正确的动作。由于外部环境提供的信息很少,智能体必须靠自身的经历进行学习。通过这种方式,智能体在行动-评价(即奖励)的环境中获得知识,改进行动方案以适应环境。

可以理解为,强化学习是一种用于解决智能体在与环境交互过程中通过学习策略使得回报最大化或者完成特定的机器学习任务的一种机器学习范式,智能体以一种试错的方式进行学习,通过与环境交互获得奖励并且用于指导选取动作。其在当前状态下找到最优策略,根据该策略选择合适的动作让收益最大化。

此外,强化学习任务中有两个非常重要的概念:开发(exploit)和探索(explore),有时也分别叫做利用和试探。在强化学习中,开发指智能体在已知的所有二元组(状态-动作)分布中,本着最大化动作价值的原则来选择最优的动作。换句话说,当智能体从已知的动作中进行选择时,则称此为开发(或利用)。探索则是指智能体在已知的二元组(状态-动作)分布之外,选择其他未知的动作。

示例性地,图1是强化学习的训练过程示意图。如图1所示,强化学习主要包含多个元素:智能体(agent)、环境(environment)、状态(state)、动作(action)与奖励(reward),其中,智能体的输入称为状态,输出称为动作。

例如,强化学习的训练过程为:通过智能体与环境进行多次交互,获得每次交互的动作、状态、奖励;将这多组(动作,状态,奖励,下一时刻状态)作为训练数据,对智能体进行一次训练。采用上述过程,对智能体进行下一轮次训练,直至满足收敛条件。

其中,获得一次交互的动作、状态、奖励的过程如图1所示,将环境当前状态s(t)输入至智能体,获得智能体输出的动作a(t),根据环境在动作a(t)作用下的相关性能指标计算本次交互的奖励r(t),至此,获得本次交互的状态s(t)、动作a(t)与奖励r(t)。记录本次交互的状态s(t)、动作a(t)与奖励r(t),以备后续用来训练智能体。还记录环境在动作a(t)作用下的下一个状态s(t+1),以便实现智能体与环境的下一次交互。

智能体(agent):是指能够思想并与环境进行交互的实体。例如,智能体可以是某个特定的环境下的计算机系统或者计算机系统的一部分。智能体可以根据自身对环境的感知,按照已有的指示或者通过自主学习,并与其他智能体进行沟通协作,在其所处的环境中自主地完成设定的目标。智能体可以是软件或者软件和硬件结合的实体。在本申请中涉及到的联邦学习的过程中,智能体可以是客户端。

决策模型:是指智能体在强化学习中使用的采用行为的规则。例如,在学习过程中,可以根据状态输出动作,并以此动作探索环境,以更新状态。决策模型的更新依赖于策略梯度policy gradient,PG)。决策模型通常为Q网络或者策略网络,如多层感知器(multilayer perceptron,MLP)或者其他深度强化学习模型(deep Q network,DQN)等。

马尔可夫决策过程(Markov decision process,MDP):是强化学习的常见模型,为一种基于离散时间随机控制的分析决策问题的数学模型。其假设环境具有马尔可夫性质(环境的未来状态的条件概率分布仅依赖于当前状态),决策者通过周期性地观察环境的状态,根据当前环境的状态做出决策(也可称为动作),与环境交互后得到下一步的状态及奖励。换句话说,在每个时刻t,决策者所观察到的状态s(t),在所做动作a(t)的影响下,会转移到下一步状态s(t+1),并反馈奖励r(t)。其中,s(t)表示状态函数,a(t)表示动作函数,r(t)表示奖励,t表示时间。

马尔可夫链:假设经过从一个状态到另一个状态的转换的随机过程。针对状态s,下一个状态依赖于当前状态,而与当前状态之前的状态无关,即s(t+1)仅与s(t)相关。因此通过马尔科夫链进行状态转移时,即可能出现环状结构的状态转移路径。本申请提供的方法中多个状态节点形成的路径即可包括基于马尔科夫链形成的路径。

状态转移矩阵:在马尔科夫决策过程中,每一个状态都以一定的概率转化到下一个状态,多个状态节点之间的转移概率可以表示为矩阵。如本申请提供的方法中,可以通过策略网络来学习各个状态之间的转移概率,即可以通过策略网络来输出状态转移矩阵,在转移概率收敛后即可完成学习。

前向概率和后向概率:由于每个状态生成一个观测变量,那么在t时刻就会生成t个观测变量,在t时刻处于状态i的概率就是前向概率α。在时刻t,状态为s的条件下,处于观测变量O的概率为后向概率β。

(8)测度(measure)空间

假设(X,R)是可测空间,μ是R上的测度,则称(X,R,μ)是测度空间。测度空间中的向量,通常具有非负性、规范性以及可加性。本申请以下提及的实施例中,可以将状态节点投影至可测空间中,测度空间中的测度可以用于对状态节点之间传输的流进行测度。

(9)生成模型

生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它给观测值和标注数据序列指定一个联合概率分布。在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。条件概率分布可以由生成模型根据贝叶斯定理形成。

(10)生成流模型

生成流模型(或者称之为基于流的生成流模型或者生成流模型)是一种以序列决策的方式采样,并构建复合结构的流模型,使得生成结构的概率与该结构奖励回报值成正比。生成流模型以序列决策的方式构建复合结构,它以有向无环图构建流模型,即每一个状态节点有多个父节点,这与树结构中每个状态节点仅有唯一父节点不同。其中,有向无环图有唯一初始节点,以及多个终止节点。生成流模型从有向无环图的初始节点开始采样生成动作序列,完成状态之间的转移,直至到达终止节点,结束采样。终止节点对应有相应的复合结构。

初始节点可以包括输出流量,中间节点可以包括输入流量以及输出流量(或者奖励值),终止节点可以包括输入流量以及奖励值,将该流模型想象成水管,初始节点的水流量为模型的总流入,所有终止节点(如的水流量之和为模型的总流出)。对于每一个中间节点,流入等于流出。节点的流入量和流出量用神经网络(即生成流具体可以通过神经网络来构建)来预测,通过将流匹配约束作为目标函数进行优化,生成流模型可以学习一个策略(即优化该神经网络),使得采样生成复合结构的概率与它的奖励值成正比,奖励值越高的结构更容易被采样到。通过这样的方式,生成流模型可以采样到一系列高奖励值的结构。

生成流模型的一个示例性的图示可以参照图2,如图2所示,其中s

然而,一些已有的生成流模型构建或者训练过程中,通常仅能对有向无环图结构的生成流模型进行训练,而对于可能存在有环图的生成流模型,可能导致边缘流无线累加,导致模型训练的收敛效率低或者无法收敛。且可能出现模型结构不稳定的情况。

因此,本申请提供一种生成流模型训练方法,可以实现基于图结构的生成流模型,可以实现有向无环图或者有环图的生成流模型训练,可以更广泛地应用于多种人工智能场景。

以图2所示的流模型为例,图2中的每个状态节点可以视为智能体所处的状态,状态节点之间的边可以视为从前一个状态节点转移至后一个状态节点所执行的动作,且状态节点之间的边的值(即上述的节点的流出量/流入量)则用于表示执行动作的概率。在训练生成流模型的过程中,主要是通过约束生成流模型针对于某一个状态节点所得到的流入量和流出量的方式来求得损失函数,即状态节点的流入量与流出量相等。

简单来说,对于任意一个状态节点,该状态节点可能具有多个父节点和多个子节点,该状态节点与多个父节点之间的边的值则为该状态节点对应的流入量,该状态节点与多个子节点之间的边的值则为该状态节点对应的流出量。本申请提供的方法中,在训练阶段,在损失函数中设置了流匹配函数和约束函数,流匹配函数即针对各个状态节点的流入和流出之间的损失值,约束函数即针对各个状态节点的输出流进行眼神计算的函数,如基于输出流计算评估值、奖励值或者惩罚值等。因此,即使生成流模型中存在环状路径,也可以通过约束项,来降低环状路径对生成流模型的输出结果的影响,从而避免在生成流内部形成无限循环的循环流,实现针对有环生成流模型的训练。

具体地,本申请实施例所提供的生成流模型的训练方法可以应用于电子设备上。示例性地,该电子设备例如可以是服务器、机器人、智能手机(mobile phone)、个人电脑(personal computer,PC)、笔记本电脑、工业控制(industrial control)中的无线电子设备、无人驾驶(self driving)中的无线电子设备、智能电网(smart grid)中的无线电子设备、物流仓储中的无线电子设备、运输安全(transportation safety)中的无线电子设备、智慧城市(smart city)中的无线电子设备等。

以上介绍了本申请实施例提供的生成流模型的训练方法所应用的设备,以下将介绍本申请实施例提供的生成流模型的训练方法所应用的场景。具体来说,本申请实施例所提供的生成流模型的训练方法可以应用于训练执行一种或者多种任务的生成流模型。其中,生成流模型执行的任务可以包括但不限于自动驾驶任务、机器人控制任务、游戏角色控制任务、推荐任务、参数优化任务、分子结构搜索或构建任务或蛋白质结构搜索任务等。

例如,在自动驾驶任务中,每个智能车辆可以视为一个智能体,且每个智能车辆能够通过传感器等方式获取到本车的信息以及其他智能车辆的信息,例如本车在道路上所处的位置、本车的速度、其他智能车辆与本车之间的距离、其他智能车辆的速度以及加速度等信息。每个智能车辆所获取到的本车的信息以及其他智能车辆的信息则可以视为该智能车辆对环境状态的观测值,同时也可以称为智能车辆所处的状态对应的状态信息。对于智能车辆而言,智能车辆需要基于智能车辆所处的状态来决定自身所执行的动作,例如加速、减速或者变道等动作,从而使得智能车辆从环境所获得的正向反馈尽可能高,即智能车辆的安全系数尽可能高或者智能车辆到达终点的行驶时间尽可能少。其中,智能车辆能够执行的动作所在的动作空间通常是连续的,例如动作空间具体包括:加速至80-200km/h,减速至0-80km/h,调整转弯角度为0-40度。智能车辆可以基于实际应用场景选择执行动作空间中的任意一个动作。

又例如,在机器人控制任务中,每个机器人视为一个智能体,多个机器人可能协同来完成特定的任务。例如,在物流仓储领域,多个机器人是协同来将指定的货物搬运到指定的地方。每个机器人同样能够通过传感器等方式获取到自身与其他机器人的信息,例如自身的速度、自身的机械手臂的旋转角度、其他机器人与自身之间的距离、其他机器人当前所执行的动作以及其他机器人的运行速度等信息。每个机器人所获取到的其他机器人的信息则可以视为该机器人对环境状态的观测值。对于机器人而言,机器人需要基于对环境状态的观测值来决定自身所执行的动作,例如移动方向、转动角度以及暂停运动等动作,从而使得机器人从环境所获得的正向反馈尽可能高,即机器人在避免碰撞的前提下以尽可能少的时间完成搬运任务。类似地,机器人能够执行的动作所在的动作空间是连续的,例如动作空间具体包括:移动方向调整为0-360度方向,手臂转动角度为0-180度。

还例如,在游戏角色控制任务中,每个角色单位视为一个智能体,多个角色单位可能协同来完成特定的对战任务。例如,在大型即时战略游戏中,多个同一种族的角色单位共同执行与其他种族的角色单位对战的任务。其中,每个角色单位能够获取到本单位的信息以及同一种族内其他角色单位的信息,例如本单位所处的位置、本单位以及其他角色单位的攻击目标、攻击方式以及移动方向等信息。每个角色单位所获取到的本单位的信息其他角色单位的信息则可以视为该角色单位对环境状态的观测值。其中,游戏中的每个角色单位需要基于对环境状态的观测值来决定自身所执行的动作,例如切换攻击目标、更改攻击方式以及改变移动路线等动作,从而使得角色单位从环境所获得的正向反馈尽可能高,即角色单位能够以尽可能少的损失完成对战任务。

对于推荐任务而言,推荐任务具体例如可以为社交推荐任务、商品推荐任务或广告推荐任务。以商品推荐任务为例,向用户推荐商品的服务器可以视为一个智能体。其中,用户点击浏览服务器所推荐的商品信息、用户关闭服务器所推荐的商品信息等情况可以视为智能体所处的推荐环境的状态;服务器向用户推荐具体的某一个商品信息可以视为服务器执行的动作。由于服务器能够推荐的商品是海量的,因此服务器能够执行的动作所属的动作空间是连续的,即动作空间可以视为包括无限的动作。对于服务器而言,服务器需要基于对推荐环境的状态的观测值来决定自身所执行的动作,例如推荐某一些类型的商品、推荐某一些价格区间的商品等动作,从而使得服务器从推荐环境所获得的正向反馈尽可能高,即用户尽可能频繁地点击浏览服务器所推荐的商品信息。

对于参数优化任务而言,参数优化任务例如可以为优化神经网络在训练过程中的超参数或优化无线网络场景下的通信参数。以优化神经网络在训练过程中的超参数为例,用于训练神经网络的服务器可以视为一个智能体。其中,神经网络在训练的超参数调整后的性能可以视为智能体所处的参数优化环境的状态;服务器调整神经网络在训练过程中的超参数的方式可以视为服务器执行的动作。由于超参数通常可以是在一个或多个区间内取值,因此服务器能够执行的动作所属的动作空间也是连续的,即动作空间可以视为包括无限的动作。对于服务器而言,服务器需要基于对参数优化环境的状态的观测值来决定自身所执行的动作,例如将超参数调整至某一个具体的值等动作,从而使得服务器从参数优化环境所获得的正向反馈尽可能高,即调整超参数后训练得到的神经网络的性能尽可能地高。

下面结合前述的应用场景,对本申请提供的方法流程进行介绍。

本申请提供的方法可以分为训练阶段和推理阶段,训练阶段即训练生成流模型的阶段,推理阶段即利用训练后的生成流模型来基于当前的状态预测下一个动作的阶段。其中,训练阶段和推理阶段可以部署于相同的设备中,也可以部署于不同的设备中。例如,训练阶段可以部署于云端或者服务器中,推理阶段则可以部署于智能终端中,如手机、平板、智能车、机器人或者穿戴设备中等。

为便于理解,本申请分别对训练阶段和推理阶段的流程进行介绍。

一、训练阶段

参阅图3,本申请提供的一种生成流模型的训练方法的流程示意图,如下所述。

需要说明的是,通常模型的训练过程可以分为多次迭代或者多次执行,本申请示例性地,以其中一次迭代或者执行过程为例进行示例性介绍,以下提及的步骤均可重复执行,以下不再赘述。

301、获取生成流模型中多个状态节点。

其中,在每次迭代过程中,都可以对生成流模型进行更新,因此本步骤所提及的生成流模型,可以是上一次迭代更新后的生成流模型,每个状态节点具有输入流和输出流。

通常,一个节点具有一个或多个父节点,输入流即该一个或多个父节点输入至当前状态节点的流,该当前状态节点也可以具有一个或多个子节点,输出流即该当前节点输出至该一个或多个子节点的流。输出流可以用于计算当前节点从一个或多个动作中选取下一个动作时该一个或多个动作中每个动作被选取的概率。

此外,若当前状态节点连接了多个子节点,则当前状态节点与其中一个子节点传输的流可以称为边缘流或者子流。即一对状态节点之间的流即可称为边缘流或者子流。

并且,在训练阶段,生成流模型基于各个状态节点选取下一个动作时各个动作的概率分布可以由策略网络来进行选择。例如,参阅前述图1描述的强化学习过程,一次迭代可以理解为智能体与环境的交互,在每次迭代中,将上一次迭代中环境反馈的状态信息作为智能体的输入,或者说作为生成流模型的输入,结合策略网络输出的概率分布,输出当前次迭代中每个状态节点的输出流,该输出流可以理解为概率流,可以用于确定当前状态节点选择各个待选取动作的概率。

302、根据每个状态节点计算损失函数的值,损失函数包括流匹配函数和约束函数。

该流匹配函数可以用于基于每个状态节点的输入流和输出流之间的差值计算损失值,该约束函数可以基于各个状态节点对应的评估值计算得到。该约束函数可以理解为损失函数中的约束项,尤其用于针对有环部分,可以用于约束减小环路部分的流。可以便于约束有环路径传输的总体流的奖励更接近于0,降低生成流网络中的环路对生成流模型的输出结果的影响。其中,有环路径即多个状态节点之间形成的包括环路的路径,无环路径即多个节点之间形成的不包括环路的路径。

可选地,在对生成流网络进行更新的过程中,可以根据策略网络确定各个状态节点对应的概率分布,即生成流模型基于各个状态节点选取下一个动作时,各个待选取动作对应的概率。并基于该概率分布来计算损失函数的值。因此,本申请实施方式中,可以通过策略网络来学习到各个状态节点更合理的概率分布。

在一种可能的实施方式中,为了便于对各个状态节点之间的输入/输出流进行测度,还可以在测度空间中确定各个状态节点之间可能的概率分布。

可选地,各个状态节点可以被映射至测度空间中的点,可以根据策略网络输出测度空间中各个状态节点之间的测度值,该测度值可以用于表示各个状态节点之间的流在测度空间中的密度。随后可以根据各个节点的测度值确定状态节点的概率分布。如可以基于各个状态之间形成的边缘流的密度,确定各个状态节点之间的转移概率,从而确定概率分布。

可选地,具体可以根据计算得到的概率分布确定多个状态节点之间的至少一条路径,即状态节点之间进行转移的路径,每条路径的起点和终点可以根据生成流模型执行的任务确定,如可以根据概率分布,为各个状态节点选取概率值大于预设值的动作或者概率值最大的动作作为下一个动作,从而生成一条或者多条转移路径。随后根据该至少一条路径以及每个状态节点的输入流和输出流计算损失函数的值。

例如,针对车辆驾驶场景,可以确定的车辆当前驾驶状态,作为一个状态节点,根据概率分布确定当前节点从一个或多个动作中选取下一个动作时各个待选取动作的概率,选取下一个动作后即可进入下一个驾驶状态,即下一个状态节点。

此外,计算损失函数的值的方式还可以包括多种维度或者多种计算方式,如可以包括基于节点流匹配损失、基于轨迹平衡损失或者基于连续空间中的节点或者轨迹的密度的损失等。因此可以基于与实际应用场景适配的训练效率或者训练算力等来选择适配的损失函数计算方式,泛化能力非常强。

可选地,在计算损失函数时,可以对流匹配函数与约束函数进行加权融合,也可以通过计算流匹配函数和约束函数之间的散度进行融合等,具体可以根据实际应用场景选择适配的融合算法,本申请对此不作限定。例如,为了提高损失函数的稳定性,进而提高模型训练效果的稳定性,可以采用计算匹配函数和约束函数之间的散度的方式进行融合,从而提高模型训练的稳定性。

303、根据损失函数的值更新生成流模型,得到更新后的生成流模型。

在计算得到损失函数的值后,即可基于损失函数的值对生成流模型进行反向更新,得到更新后的生成流模型。

具体地,本申请提供的方法在训练阶段可以采用强化学习的方式进行训练,即在更新时,可以更新策略网络,使策略网络可以输出更准确的概率分布,并根据该概率分布更新生成流模型。

本申请实施方式中,在更新生成流模型的阶段,损失函数中除了基于各个节点的输入输出流进行匹配的流匹配函数外,还增加了约束函数。相当于针对总边缘流的大小进行正则化约束,有利于弱化或者终止环路部分,从而减少环路对模型输出结果的影响。因此本申请提供的方法,针对无环生成流模型与有环生成流模型均可实现训练,可以实现更快的收敛效果,提高模型性能,且泛化能力非常强。

下面结合更具体的应用场景对本申请提供的方法进行介绍。

具体地,训练阶段的系统架构可以如图4所示。

该系统架构为基于强化学习的架构,对于环境生成的状态,由策略网络确定概率分布,从而基于该概率分布确定当前状态节点的下一个状态节点,直到任务结束,形成无环或者有环图。

损失函数可以包括多个部分如图4中所示出的流匹配函数和约束函数。即可以基于流匹配函数和约束函数计算损失值。

流匹配损失为针对节点的输入流和输出流之间的差值设置的损失,约束函数为针对有环部分设置的约束项,可以基于各个状态节点的输出流的评估值计算计算得到,该评估值可以包括基于各个状态节点的输出流在强化学习中的奖励值,也可以包括针对各个状态节点的输出流设置的约束值等。相当于针对有环部分,在损失函数中设置正则项,从而进行整体流的正则化,使模型的训练结果更倾向于参考无环部分路径的输出结果,减少环路流的大小。

具体地,本申请提供的方法中,计算损失函数的过程可以分为多个部分。如可以首先在测度空间计算各个状态节点对应的概率分布,随后基于各个状态节点的概率分布计算损失函数的值。为便于理解,本申请实施例分为以下两个部分,即测度空间投影以及损失函数计算部分。

(一)测度空间投影

通常,生成流模型运行时,需要基于概率分布来确定各个状态节点的转移路径。在训练阶段,可以通过策略网络来生成概率分布。为了便于对各个状态节点的输出流进行测度,可以在测度空间中进行概率分布的计算,即可以利用测度空间的密度维度,来对各个状态节点的转移状况进行更直观地度量。

例如,投影至测度空间中的状态节点可以如图5所示,其中,S

本申请实施方式中,在训练阶段,可以在测度空间中进行策略网络的策略学习。可以利用策略网络来输出各个状态节点之间传输的流的测度值,该测度值可以用于表示状态节点之间形成的路径或者流在测度空间中的密度,且测度空间中的值均为非负度量。随后可以根据该测度值确定各个状态节点对应的概率分布,即在基于各个状态节点进行状态转移时,选取动作空间中的各个动作的概率。本申请实施方式中,可以在测度空间中确定概率分布,可以通过策略网络输出各个状态节点之间的流的测度值,从而可以通过测度空间的密度来表示各个状态节点之间的流的概率,如密度值越大的流表示选取动作后转移到对应的状态节点的概率也就越大。

例如,可以通过策略网络输出各个状态之间进行转移的测度值,在测度空间中,各个状态之间进行转移的测度值可以通过密度来表示。因此在测度空间中,即可通过此种方式来确定各个状态节点之间可能的转移路径,或者说各个状态之间可能进行转移的概率。

为便于区分,可以将有环路径中的边缘流称为0流。在进行强化学习过程中,环境针对0流的奖励通常为0。通常,在连续的测度空间中,循环对于各个节点之间的路径来说是可忽略的。如针对奖励趋近于0的流,其对应的密度也相应较低,因此在测度空间中环路将被弱化,从而使后续终止环路上的流。

具体例如,测度空间表示为(S,S,F),F可以理解为测度空间中的测度,即状态节点之间的流为测度空间中的测度。在测度空间中,可以定义到A的输出流表示为:F

可以采用前向或者后向马尔科夫链的方式确定各个状态节点之间进行转移的概率。例如,前向概率可以表示为

(二)损失函数计算

在确定了各个状态节点的概率分布之后,即可确定各个状态之间进行状态转移的概率。因此可以基于概率分布确定状态节点之间进行转移形成的至少一条路径。基于各个节点之间形成的流或者路径进行匹配计算损失函数的值,以便于后续可以基于损失函数的值进行更新。

本申请实施方式中,损失函数除了基于节点的输入流与输出流计算损失值之外,还增加了约束项,从而可以针对有环路径的损失值进行约束。相当于通过对整体流的大小进行约束,可以防止训练过程中过拟合的问题以及对需要进行优化的参数进行限制。

例如,损失函数可以表示为:

Lα(F)=L(F)+αR(F)

其中,F表示状态节点之间的总流,R()即为约束函数,L()为流匹配函数,α为权重系数。

具体地,约束函数可以包括基于环境针对流的奖励来确定,也可以是针对有环的流设置的惩罚项等,也可以是针对每个流进行其他延伸计算得到的值。

例如,以约束函数为基于奖励值计算为例。若环境针对流的奖励越高,相应的约束函数的值也就越小,若环境针对流的奖励越低,则相应的约束函数的值也就越大。惩罚项与之类似,奖励越高的流对应的惩罚项也就越小,奖励越低的流对应的惩罚项也就越大。可以理解为,环境通常针对有环流的奖励更少,因此在损失函数中设置的损失值也就越大,即输出的路径与期望输出的路径之间相差越大,表示筛选的状态转移路径与环境的交互结果较差。因此本申请实施例通过对有环路径进行约束,使最终的输出结果更倾向于无环,从而降低环路对模型输出结果的影响。

可选地,约束项可以采用正则化约束,如可以对边缘流矩阵的范数进行约束,如表示为:

从而对状态节点s之间的整体流大小进行正则化约束,使最终的流收敛于无环的流。

通常,为了使损失值稳定,可以定义L(F

因此,为了使损失值稳定,可以设置权重系数α>0,针对0流:

因此,本申请实施方式中,通过设置约束项R,使针对0流的损失值不为0,从而即使路径中存在环路,也可以通过设置的约束项对环路部分进行约束,从而可以实现环路对模型的输出结果的影响,使模型最终可以输出无环路径。

可选地,在计算损失函数时,可以通过多种方式计算,如可以基于节点流匹配、基于轨迹平衡或者基于连续空间中的节点或者轨迹的密度损失等方式计算损失值,具体可以根据实际应用选择,本申请并不作限定。其中,基于节点流匹配即基于各个状态节点的输入流与输出流之间的损失值进行计算,基于轨迹平衡即基于各个状态节点之间的多条边缘流形成的轨迹计算损失值,基于连续空间中的节点或者轨迹的密度即在连续空间中可以基于节点的输入流与输出流进行计算或者基于各个状态节点之间的多条边缘流形成的轨迹计算损失值等。

可选地,为了进一步提高损失函数的稳定性,加快模型的收敛,在计算损失值时,可以在损失函数中设置流匹配函数与约束函数之间的散度。

例如,基于散度计算损失函数的方式可以表示为:

其中,为了使损失值稳定,可以约束:f≥0,g≥1,

本申请实施方式中,可以使用广义散度的方式来计算训练损失,且可以使用正则化约束项来约束0流的循环损失。可以融合流匹配损失与0流的循环损失,来得到整体的损失值。随后可以通过反向传播算法对策略网络进行更新,从而使策略网络收敛,得到更准确的各个状态节点进行状态转移时的概率分布。

下面示例性地,对一些可能的损失函数进行介绍。

示例一、基于节点流匹配

即基于各个状态节点的输入流和输出流之间的差值来计算损失值。

针对广义散度计算函数,可以选择f(x)=log(1+∈∣x∣

ε,η,α,β均大于0,τ表示轨迹,s

通常,在进行转移路径采样时,若R不为0,针对路径τ的采样时间是有限的,通常采样分布于R为正相关关系。如可以表示为:

且/>

从而可以通过对转移路径的采样时长进行约束,可以避免陷入环路的无限采样中。

因此,本示例中,可以以节点为粒度进行损失值的计算,从而实现基于广义散度的损失函数计算,且结合正则化的约束项,以节点为单位对路径的整体流进行约束,使最终更新后的路径的流收敛于无环流,实现对于有环路径的生成流模型训练。

示例二、基于轨迹平衡损失

与前述基于节点流匹配相比,示例二相当于以路径为粒度来计算损失值。如可以表示为:

其中,当正向流和反向流分别由前向概率策略和反向概率策略参数化时:

F

F

因此,本申请实施方式中,可以以轨迹为粒度计算平衡损失,实现损失值的计算。从而实现基于广义散度的损失函数计算,且结合正则化的约束项,以路径中的流为单位对路径的整体流进行约束,使最终更新后的路径的流收敛于无环流,实现对于有环路径的生成流模型训练。

示例三、基于连续空间中节点或轨迹的密度

该连续空间可以是前述的测度空间,也可以是其他几何空间(如欧式空间)等,具体可以根据实际应用场景选择适配的空间,本申请对此不作限定。

如该损失函数可以表示为:

即在连续空间中,将前述两种示例中的输入输出流替换为测量密度f

因此,本申请提供的方法中,可以从多种维度来计算损失函数的值,且通过广义散度来提高损失函数的稳定性,通过增加正则化约束对整体流的大小进行约束,有利于弱化环路的影响,实现针对有环生成流模型的训练。

二、推理阶段

在进行模型训练之后,即可利用训练阶段得到的生成流模型来实现动作预测。

参与图6,本申请一种动作预测方法的流程示意图。

601、获取状态信息。

在推理阶段,智能体可以理解为生成流模型部署的设备,或者也可以直接理解为是生成流模型所应用的任务的本体,是一个学习者或者决策者。

例如,生成流模型应用于处理自动驾驶任务时,智能体则为部署生成流模型的自动驾驶车辆;又例如,生成流模型应用于处理机器人控制任务时,智能体则为部署生成流模型的机器人;例如,生成流模型应用于处理游戏角色控制任务时,智能体则为部署生成流模型的计算机,且该计算机用于控制游戏角色。

随着智能体执行不同的动作,智能体会转移至不同的状态。例如,在自动驾驶任务中,在自动驾驶车辆执行加速的动作后,自动驾驶车辆会移动至不同的位置,且自动驾驶车辆会距离前方的障碍更加的近。又例如,在机器人控制任务中,在机器人转动机械手臂后,机械手臂会处于不同的位置,且机械手臂与货物之间的距离也会发生变化。

总的来说,状态信息是用于指示智能体所处的状态的信息,其中智能体所处的状态可以为任一状态。例如,在自动驾驶任务中,状态信息可以是用于指示作为智能体的自动驾驶车辆在地图中所处的位置,自动驾驶车辆与其他车辆之间的距离,自动驾驶车辆与障碍物之间的距离等信息。又例如,在机器人控制任务中,状态信息可以是指作为智能体的机器人在仓库中所处的位置,机器人与其他机器人之间的距离,机器人的机械手臂与货物之间的距离等信息。

可选的,状态信息是基于状态序列得到的,该状态序列用于指示有序的多个状态。在该状态序列中,在前一个状态下,通过执行某个动作,从而从前一个状态转移至下一个状态。也就是说,该状态序列记录了智能体有序地转移的多个状态。

可选的,在状态序列中,多个状态中的状态是基于前一个状态以及前一个状态对应的执行动作得到的,前一个状态对应的执行动作是在动作空间中采样得到的多个动作中选取的,且多个动作的选取概率是基于生成流模型所输出的预测值得到的。

具体来说,状态序列可以是电子设备基于生成流模型来生成的。在生成状态序列的过程中,电子设备先从当前状态对应的动作空间中随机采样K个动作,然后将当前状态对应的状态信息输入生成流模型,得到生成流模型在当前状态下针对K个动作的K个输出值,即生成流模型在当前状态下选择K个动作的预测值。其次,对生成流模型所输出的K个输出值进行归一化操作,从而计算得到在当前状态下分别选择K个动作的概率值,进而基于该K个动作的概率值选择其中的一个动作,从而基于当前的状态和所选择的动作转移至下一个状态。以此类推,针对于每一个状态,电子设备均在连续的动作空间中采样得到多个动作,并通过生成流模型计算多个动作中每个动作的选择概率,并基于每个动作的选择概率选择一个动作,以执行该动作得到下一个状态。这样一来,电子设备通过不断地在不同的状态下选择相应的动作,能够实现状态之间的不断转移,进而得到包括多个状态的状态序列。

602、将状态信息作为生成流模型的输入,得到至少一个动作对对应的概率值。

在本实施例中,生成流模型用于基于输入的状态信息,预测选择各个动作的概率值。简单来说,在将第一状态信息输入生成流模型之后,生成流模型能够预测得到在第一状态下分别选择给定的各个动作时的预测值,这些预测值能够转换为用于选择各个动作的概率值。

例如,假设多个第一动作分别为动作1-动作5,生成流模型针对动作1-动作5所得到的多个第一输出值分别为1、2、4、5、6,那么智能体在第一状态下选择动作1-动作的概率值可以为1/(1+2+4+5+6)、2/(1+2+4+5+6)、4/(1+2+4+5+6)、5/(1+2+4+5+6)、6/(1+2+4+5+6)。

其中,生成流模型基于输入的状态信息所得到的多个输出值分别与多个动作一一对应,即多个输出值分别用于表示在状态下选择对应的动作时的预测值。此外,多个输出值对应的多个动作是在连续的动作空间中采样得到的。连续的动作空间中所包括的动作为连续变量,即多个动作可以是某一个动作区间范围内采样得到的多个动作。例如,在自动驾驶场景下,假设多个动作所在的动作空间为加速至0-100km/h,那么通过在动作空间中进行随机采样,能够采样得到一定数量的动作(即上述的多个动作)。比如,假设动作采样的数量为5,采样得到的多个动作分别为加速至5km/h、加速至11km/h、加速至23km/h、加速至55km/h、加速至88km/h。

在本实施例中,多个输出值的数量是由采样得到的多个动作的数量来决定的,多个动作的数量可以是根据训练生成流模型的电子设备的能力以及精度需求来确定,例如多个动作的数量为1000、5000或10000等数值,本实施例对多个动作的数量并不做具体限定。

生成流模型的训练过程可以参阅前述训练阶段的介绍,此处不再赘述。

因此,本申请实施方式中,生成流模型基于有环图和无环图均可进行应用,具有非常强的泛化性。

此外,本申请还提供一种动作预测方法,既可以应用于训练阶段,也可以应用于推理阶段。具体地,本申请还提供一种基于测度空间的动作预测方法,可以在测度空间中,

参阅图7,本申请提供的另一种动作预测方法的流程示意图。

701、获取生成流模型中多个状态节点。

其中,步骤701可以参阅前述步骤301的描述,此处不再赘述。

702、获取在测度空间中多个状态节点之间进行状态转移的测度值。

各个状态节点可以被映射至测度空间中的点,该测度值可以用于计算测度空间中各个状态节点进行状态转移时选取各个动作的概率,或者该测度值可以用于表示测度空间中各个状态节点进行状态转移时选取各个动作的概率。

在测度空间中,测度值可以用于表示状态节点在进行状态转移时形成的路径在空间中的密度。通常,可以预先设置动作空间,该动作空间中可以包括多个动作,如在自动驾驶场景下,该动作空间可以设置为加速至0-100km/h的离散动作或者连续动作,或者该动作空间可以设置为转向0-90度的离散动作或者连续动作。测度值即可以用于确定选取各个动作的概率。

703、根据测度值生成至少一条路径。

在测度空间中,各个节点之间的流的大小,即密度与各个节点的测度值相关,如测度值越大,在测度空间中的密度也就越大。因此,可以基于各个状态节点之间的路径的密度,生成至少一条路径,即在多个状态节点之间进行状态转移时的路径。

若本申请实施例提供的方法应用于训练阶段,则可以基于策略网络输出的测度值来确定概率分布,该概率分布即可以用于确定基于多个状态节点中的每个状态节点选取下一个动作时待选取的至少一个动作被选取的概率,即基于各个状态节点进行状态转移时选取各个动作的概率,并在后续阶段计算损失,从而基于策略网络的结果更新生成流模型。

若本申请提供的方法应用于推理阶段,则可以基于具体的任务输出对应的至少一条路径,并继续后续的动作执行。从而在测度空间中实现状态转移的动作预测。

因此,本申请实施方式中,可在测度空间中实现状态转移路径的预测,从而基于可测量的空间,可以更准确更高效地确定出状态转移的路径。

前述对本申请提供的方法流程进行了介绍,下面对执行本申请提供的方法的装置的结构进行介绍。

参阅图8,本申请提供的一种生成模型的训练装置的结构示意图,包括如下所述。

获取模块801,用于获取生成流模型中多个状态节点;

计算模块802,用于根据多个状态节点获取损失函数的值,损失函数的值包括流匹配函数的和约束函数的值融合的值,流匹配函数的值包括基于多个状态节点中每个状态节点的输入流和输出流计算得到的值,约束函数的值包括多个状态节点的输出流对应的评估值计算得到的值,其中,有环路径中的输出流对应的约束函数的值与无环路径中的输出流对应的约束函数的值不同,有环路径包括状态节点之间形成环路的路径,无环路径为状态节点之间形成的不包括环路的路径;

更新模块803,用于根据损失函数的值更新生成流模型,得到更新后的生成流模型。

在一种可能的实施方式中,前述的计算模块802,具体用于:根据策略网络确定多个状态节点对应的概率分布,概率分布用于确定基于每个状态节点选取下一个动作时待选取的至少一个动作被选取的概率;根据概率分布以及多个状态节点计算损失函数的值。

在一种可能的实施方式中,前述的计算模块802,具体用于:根据策略网络输出在测度空间中多个状态节点之间传输的流的测度值,该测度值表示多个状态节点形成的路径在测度空间中的密度;根据多个状态节点之间的测度值确定概率分布。

在一种可能的实施方式中,前述的计算模块802,具体用于:根据概率分布确定多个状态节点之间的至少一条路径,该至少一条路径的起点和终点为根据生成流模型执行的任务确定;根据至少一条路径以及每个状态节点的输入流和输出流计算损失函数的值。

在一种可能的实施方式中,前述的约束函数包括基于边缘流矩阵的范数组成的函数,边缘流矩阵为多个状态节点中的中间状态节点之间的边缘流形成的矩阵,边缘流即一对状态节点之间传输的流。

在一种可能的实施方式中,前述的损失函数包括流匹配函数和约束函数之间的散度形成的函数。

在一种可能的实施方式中,前述的损失函数包括基于节点流匹配损失、基于轨迹平衡损失、基于连续空间中节点密度损失的函数或基于连续空间中轨迹的密度损失的函数。

参阅图9,本申请提供一种动作预测装置的结构示意图,包括如下所述:

获取模块901,用于获取状态信息,状态信息用于指示智能体当前的状态;

生成模块902,用于将状态信息作为生成流模型的输入,得到至少一个动作对应的概率值,该至少一个动作对应的概率值用于确定智能体执行的动作;

其中,该生成模型为通过如前述训练阶段的方法进行训练得到。

参阅图10,本申请提供一种动作预测装置的结构示意图,包括如下所述:

获取模块1001,用于获取生成流模型中多个状态节点;

测度模块1002,用于获取多个状态节点的测度值,测度值表示多个状态节点在进行状态转移时形成的路径在测度空间中的密度,测度值用于确定概率分布,概率分布用于确定基于多个状态节点中的每个状态节点选取下一个动作时待选取的至少一个动作被选取的概率;

确定模块1003,用于根据多个状态节点的测度值确定至少一条路径,至少一条路径包括多个状态节点之间基于概率分布选取的动作进行转移形成的路径,其中每条路径的起点和终点为根据生成流模型执行的任务确定。

在一种可能的实施方式中,上述装置还包括更新模块1004,用于:根据至少一条路径计算损失值;根据损失值更新生成流模型,得到更新后的生成流模型。

如图11所示,为本申请实施例提供的一种生成流模型的训练装置110的硬件结构示意图。该生成流模型的训练装置110可以用于实现前述训练阶段中的方法的步骤。

图11所示的生成流模型的训练装置110可以包括:处理器1101、存储器1102、通信接口1103以及总线1104。处理器1101、存储器1102以及通信接口1103之间可以通过总线1104连接。

处理器1101是生成流模型的训练装置110的控制中心,可以是一个通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等,如具体可以包括GPU或者NPU等,具体可以根据实际应用场景适应性地设置。

作为一个示例,处理器1101可以包括一个或多个CPU,还可以包括其他处理器,例如图11中所示的CPU、NPU或者GPU等。

存储器1102可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

一种可能的实现方式中,存储器1102可以独立于处理器1101存在。存储器1102可以通过总线1104与处理器1101相连接,用于存储数据、指令或者程序代码。处理器1101调用并执行存储器1102中存储的指令或程序代码时,能够实现本申请实施例提供的方法,例如,训练阶段所示的生成流模型的训练方法。

另一种可能的实现方式中,存储器1102也可以和处理器1101集成在一起。

通信接口1103,用于生成流模型的训练装置110与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。通信接口1103可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。

总线1104,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

需要指出的是,图11中示出的结构并不构成对生成流模型的训练装置110的限定,除图11所示部件之外,生成流模型的训练装置110可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图12所示,为本申请实施例提供的一种动作预测装置120的硬件结构示意图。该动作预测装置120可以用于实现前述推理阶段中的方法的步骤。

图12所示的动作预测装置120可以包括:处理器1201、存储器1202、通信接口1203以及总线1204。处理器1201、存储器1202以及通信接口1203之间可以通过总线1204连接。

处理器1201是动作预测装置120的控制中心,可以是一个通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等,如具体可以包括GPU或者NPU等,具体可以根据实际应用场景适应性地设置。

作为一个示例,处理器1201可以包括一个或多个CPU,还可以包括其他处理器,例如图12中所示的CPU、NPU或者GPU等。

存储器1202可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

一种可能的实现方式中,存储器1202可以独立于处理器1201存在。存储器1202可以通过总线1204与处理器1201相连接,用于存储数据、指令或者程序代码。处理器1201调用并执行存储器1202中存储的指令或程序代码时,能够实现本申请实施例提供的方法,例如,推理阶段所示的动作预测方法。

另一种可能的实现方式中,存储器1202也可以和处理器1201集成在一起。

通信接口1203,用于动作预测装置120与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,RAN),无线局域网(wireless localarea networks,WLAN)等。通信接口1203可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。

总线1204,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

需要指出的是,图12中示出的结构并不构成对动作预测装置120的限定,除图12所示部件之外,动作预测装置120可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台数据量化装置(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于训练模型或者执行推理任务的程序,当其在计算机上运行时,使得计算机执行如前述图4至图12中所示实施例描述的方法中的全部步骤或者部分步骤。

本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器,或者处理器的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中的任一个或多个实施例的方法步骤。

本申请实施例中还提供一种计算机程序产品,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

本申请实施例提供的目标感知装置或目标感知装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图4-图7所示实施例描述的方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。

具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(graphicsprocessing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。

示例性地,请参阅图13,图13为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 130,NPU 130作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1303,通过控制器1304控制运算电路1303提取存储器中的矩阵数据并进行乘法运算。

在一些实现中,运算电路1303内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1303是二维脉动阵列。运算电路1303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1303是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1302中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1301中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1308中。

统一存储器1306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1305,DMAC被搬运到权重存储器1302中。输入数据也通过DMAC被搬运到统一存储器1306中。

总线接口单元(bus interface unit,BIU)1310,用于AXI总线与DMAC和取指存储器(instruction fetch buffer,IFB)1309的交互。

总线接口单元1310(bus interface unit,BIU),用于取指存储器1309从外部存储器获取指令,还用于存储单元访问控制器1305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。

DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1306或将权重数据搬运到权重存储器1302中或将输入数据数据搬运到输入存储器1301中。

向量计算单元1307包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。

在一些实现中,向量计算单元1307能将经处理的输出的向量存储到统一存储器1306。例如,向量计算单元1307可以将线性函数和/或非线性函数应用到运算电路1303的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1307生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1303的激活输入,例如用于在神经网络中的后续层中的使用。

控制器1304连接的取指存储器(instruction fetch buffer)1309,用于存储控制器1304使用的指令;

统一存储器1306,输入存储器1301,权重存储器1302以及取指存储器1309均为On-Chip存储器。外部存储器私有于该NPU硬件架构。

其中,循环神经网络中各层的运算可以由运算电路1303或向量计算单元1307执行。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个集成电路用于控制上述图4-图7的方法的程序。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

本申请的说明书和权利要求书及上述附图中的术语“第一”,“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程,方法,系统,产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程,方法,产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些端口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。

相关技术
  • 一种用于复杂难处理钾长石矿高效选矿除杂方法
  • 一种锂辉石矿石的选矿方法
  • 高硫含铜矿石矿山生产中减少石灰和选矿药剂用量的方法
  • 一种白云石型萤石矿选矿抑制剂及含硫白云石型萤石矿的选矿方法
  • 一种萤石矿捕收剂及其应用和萤石矿的选矿方法
技术分类

06120116548211