本发明涉及深度强化学习技术领域,更具体的,涉及一种离散制造场景中的强化学习奖励学习方法。
背景技术:
制造业按其产品制造工艺过程特点总体上可以划分为流程制造和离散制造。相比于流程制造,离散制造的产品往往由多个零件经过一系列并不连续的工序加工装配而成,主要包括机械加工、机床等加工、组装性行业。
针对离散型制造企业的加工生产过程。整个工艺生产过程常常分解成很多个加工任务,而每一个加工任务需要的占用的加工资源不多,但零件从一个工作环节到另一个工作环节,之间常进行不同类型和要求的多种加工任务。又因离散型企业产品定制程度高,不同的订单有不同的工艺需求,导致了其零件加工工艺及设备使用过于灵活,使其品质控制上难度高。现有的mes(manufacturingexecutionsystem)是对整个车间制造过程的优化,而不是单一解决某个生产工序的加工设备控制问题,因此在每一个生产单元中,按目前的主流方案,当从生产a产品切换到生产b产品时,往往需要人工切换设备的制程工艺,生产过程中包括设备使用等多数情况下还是依赖于操作者的技术、经验,但是在此之前并没有将深度强化学习引入生产线的先例。
强化学习中的奖励是agent与环境交互后由环境返回的标量信号,奖励为agent做出的决策提供评估性反馈,没有精心设计的奖励信号会让强化学习算法产生非常差的结果,因此设计合适的奖励一直是强化学习领域的研究热点。对于不同的应用场景,不同的控制目标,需要设计不同的奖励,常见的有如使用[-1,1]区间的标量奖励信号,有偏好的评价上一个动作对于学习目标的好坏,或者是用一个正值代表达到目标,中间过程使用一个较小的负值作为奖励反馈。奖励的设计中还存在着一种情况就是,环境能够反馈奖励信号,但是最大化累计奖励的策略并不总能达到预期目标,例如openai发布的平台universe上的游戏coastrunners中,agent也即是游戏中的船,目标一是完成比赛,二是收集环境中的得分目标,在训练中出现了agent停留在一处不断的获取金币奖励,以另外一种不理想的策略获得更高的奖励。因此相同的框架,奖励函数设置的好坏,直接影响到agent学习的结果。同时一个采用强化学习算法训练过的agent,只能根据设计的奖励达到单次的训练目标
技术实现要素:
本发明为了解决现有的离散制造生产线中,产品制造的各工序控制参数的调节,主要依靠工作人员的工作经验完成的问题,提供了一种离散制造场景中的强化学习奖励自学习方法,其采用深度强化学习的方法,实现生产线设备控制参数的学习。
为实现上述本发明目的,采用的技术方案如下:一种离散制造场景中的强化学习奖励自学习方法,包括如下步骤:
s1:对当前生产线的工序进行细化g∈g={g1,g2,…,gn},其中g为细化后当前工序需达到的目标所对应的状态,智能体agent到达预定目标g记录为一个交互序列episodes,根据初始参数获得g1作为目标对应的多段episodes,进行gpr模块的训练;
s2:引入基于模型的强化学习方法,将episodes中的状态动作
s3:根据智能体agent获得的环境反馈状态st,将新的状态st同步输入grp模块、reward网络、actor网络、critic网络中,则reward网络输出r(st),actor网络输出a(st),critic网络输出v(st),所述的gpr模块根据s2中推导获得的状态转移模型最终输出值函数vg并作为整体的更新方向;
s4:当|vg-v(st)|<ε时,为了避免假阳性,人为判断是否完成当前目标下工序的学习,若完成,则认为实现该段工序的学习,即当前工序下的奖励函数也即reward网络学习完毕,并进行reward网络的参数保存;根据reward网络的参数、actor网络的参数、critic网络的参数继续进行交互,产生以下一个子目标gn 1作为更新方向的episodes,用于gpr的更新;
s5:当设定目标g={g1,g2,…,gn}全部依次实现时,完成了生产线的工艺学习,并得到了能够进行动作评估的奖励函数,即reward网络;
s6:然后移除gpr模块,根据现有网络参数,采用计算量低的强化学习算法在线运行。
优选地,步骤s2,得到系统状态转移模型st 1=f(st,at)的具体步骤如下:
s201:先构建状态差分模型,通过引入差分变量δt=st 1-st ε,
假设△t服从高斯分布,根据高斯分布自共轭,st同样服从高斯分布,即可表示为
s202令
s203:采用核函数来衡量两个量的相似性,
其中,
s204:利用最小化负对数边缘似然对gpr模块进行训练:
其中k为指数平方核的协方差矩阵。
s205:根据gpr模块的性质,数据的联合分布以及预测值
其中,
所预测的后验分布同为高斯分布,可表示为:
其中:
其中ef表示求均值,varf表示求方差;
从而得到状态差分模型。
s206:根据每次输入状态与actor网络动作输出的联合高斯分布
其中q=[q1,…,qn]t,n对应样本数,
当输入状态特征为m维的情况:
相当于对每一维度进行一次以上的推导。
s207:根据状态转移模型推导后续状态分布p(st 1),可由下式推导得出:
均值μt 1=μt μ△
方差∑t 1=∑t ∑△ cov(st,△) cov(△,st)
所述的gpr模块根据步骤s207推导得出预测的p(st 1)。
进一步地,根据以上推导得出状态转移模型让gpr模块实现策略评估,即得到gpr模块的最终输出值函数vg,并作为当前reward网络、critic网络的更新方向;其中所述的值函数表示如下:
其中,
再进一步地,根据得到值函数vg,对actor网络的参数采用基于梯度策略搜索方法进行更新:
其中,ωa指的是actor的网络参数,
再进一步地,所述的reward网络以当前的状态、动作为输入,输出为奖励信号r(st),通过critic网络的输出v(st)与gpr模块中预测的下一状态st 1对应的值函数
所述的critic网络以当前的状态、动作以及reward网络的输出r(st)作为输入,以贝尔曼方程的形式构造损失函数
本发明的有益效果如下:
1.本发明基于强化学习中的actor-critic框架,引入了gpr模块,对于离散制造场景中存在的工序多,奖励稀疏难设计的状况,实现奖励的自学习,对变化的场景更具有自适应性。通过对离散制造中生产线a各个工序进行学习,生成每个工序的reward网络、actor网络,对应于各工序中适用的奖励函数和设备不同状态输入下的控制参数。同样的框架可以重新应用于生产线b的工艺学习,达到多场景自适应的特点。
2.本发明通过引入了基于状态差分模型的高斯过程建模方法,利用过去成功交互的多段episodes进行值函数评估,进而给出更加合理的策略更新方向。对于离散制造场景定制程度高、多工序的特点,这种方法有更高的生产自适应性。
附图说明
图1是实施例1所述的强化学习奖励自学习方法的步骤流程图。
图2是实施例1所述的强化学习的示意图。
图3是实施例1所述的强化学习奖励自学习方法的处理框图。
图4是实施例1所述的actor网络的示意图。
图5是实施例1所述的reward网络的示意图。
图6是实施例1所述的critic网络的示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做详细描述。
实施例1
在强化学习中最核心的概念就是奖励函数,奖励函数向学习过程中的智能体agent显示当前状态下采取不同动作的反馈结果,相当于我们通过奖励函数,对学习任务具体化。但是强化学习问题中面临着奖励需要针对不同的场景手动设置才能达到最佳效果的特点,导致了同一套算法对不同场景的适用性不强。
因此本实施例提出了一种离散制造场景中的强化学习奖励自学习方法,如图1所示,其引入了基于模型的强化学习方法(即用已有的数据学习出环境的模型p(st 1|st,at),对应于gpr部分,只不过gpr部分先学习出来是状态的差分,推导得出下一个状态st 1的分布),通过智能体agent与环境的弱交互,以及观测者对初始交互序列的筛选,自动学习不同场景下的奖励函数,如图2所示,在训练的过程中智能体agent与环境的交互信息只剩下状态xt和动作a(st),这里的xt对应于当前场景t时刻下的生产线上设备多维状态向量,a(st)对应于当前场景t时刻下的多维状态所对应的多维控制参数。
该方法具体包括如下步骤:
s1:对当前生产线的工序进行细化g∈g={g1,g2,…,gn},其中g为细化后当前工序需达到的目标所对应的状态,智能体agent到达预定目标g记录为一个交互序列episode,根据初始参数获得g1作为目标对应的多段episodes;
s2:如图3所示,引入基于模型的强化学习方法,通过智能体agent与环境的弱交互,以及观测者对初始交互序列的筛选,自动学习不同场景下的奖励函数。在训练的过程中智能体agent与环境的交互信息只剩下状态xt和动作a(st),这里的xt对应于当前场景t时刻下的生产线上设备多维状态向量,a(st)对应于当前场景t时刻下的多维状态所对应的多维控制参数。
将episodes中的状态动作
其中,得到系统状态转移模型st 1=f(st,at)的具体步骤如下:
其中本实施例所述的高斯过程(gaussianprocesses)是一个非参数模型,依赖于样本数据来进行预测估计,是机器学习领域里监督学习中的一种函数逼近方法,该方法的目的是利用样本数据来捕捉整个函数的分布,拟合现有数据较为方便,而且能给出不确定性范围,可用于对所生成数据的置信度进行判断。
由于本实施例目的是学习出一条生产线各工艺流程对应的奖励函数,而值函数是累积奖励的期望,这就导致如果用高斯过程直接根据单次输入进行直接的值函数预测效果将会不理想,因此本实施例采用高斯过程对状态的差分进行建模的方法构建基于状态差分的状态转移模型(即根据新的
s201:先构建状态差分模型,通过引入差分变量δt=st 1-st ε,
假设△t服从高斯分布,根据高斯分布自共轭,st同样服从高斯分布,即可表示为
s202:令
s203:采用核函数来衡量两个量的相似性,所述核函数包括指数平方核,本实施例采用指数平方核来衡量两个量的相似性,
其中,
s204:利用最小化负对数边缘似然对gpr模块进行训练:
其中k为指数平方核的协方差矩阵;
s205:根据gpr模块的性质,数据的联合分布以及预测值
其中,
所预测的后验分布同为高斯分布,可表示为:
其中:
从而得到状态差分模型。
其中ef表示求均值,varf表示求方差;
s206:根据已获得的系统状态差分模型后,应用到
其中q=[q1,…,qn]t,n对应样本数,
当输入状态特征为m维的情况:
这里是从状态特征维数为1到状态特征维数为m的扩充,所述的状态特征为位置,速度,角速度,温度,压强时,m=5;
相当于对每一维度进行一次以上的推导。
s207:通过状态转移模型推导后续状态分布p(st 1),可由下式推导得出:
均值μt 1=μt μ△
方差∑t 1=∑t ∑△ cov(st,△) cov(△,st)
所述的gpr模块根据步骤s207推导得出预测的p(st 1)。
根据以上推导得出状态转移模型让gpr模块实现策略评估,即并通过同样的方法推导得出p(st 2)直到p(st),从而得到gpr模块的最终输出值函数vg,并作为当前reward网络、critic网络的更新方向;其中所述的值函数表示如下:
其中,
值函数vg是概率分布p(st 1)到概率分布p(st),分别关于c(st 1)到c(st)求期望(∫c(st 1)p(st 1)dst 1),再求和的结果。
这里的st 1、st 2、st都是通过训练过的gpr模型推出来的,是求取vg的需要,并不是与真实环境交互获得的状态。
根据得到值函数vg,对actor网络的参数采用基于梯度策略搜索方法进行更新:
其中,ωa指的是actor的网络参数,
s3:根据智能体agent获得的环境反馈状态st,将新的状态st同步输入grp模块、reward网络、actor网络、critic网络中,则reward网络输出r(st),actor网络输出a(st),critic网络输出v(st),所述的gpr模块根据s2中推导获得的状态转移模型最终输出值函数vg并作为整体的更新方向;
s4:当|vg-v(st)|<ε时,为了避免假阳性,人为判断是否完成当前目标下工序的学习,若完成,则认为实现该段工序的学习,即当前工序下的奖励函数也即reward网络学习完毕,并进行reward网络的参数保存;根据reward网络的参数、actor网络的参数、critic网络的参数继续进行交互,产生以下一个子目标gn 1作为更新方向的episodes,用于gpr的更新;
s5:当设定目标g={g1,g2,…,gn}全部依次实现时,完成了生产线的工艺学习,并得到了能够进行动作评估的奖励函数,即reward网络;
s6:此时可移除gpr模块,根据现有网络参数,采用计算量低的强化学习算法如ppo、ddpg等在线运行。
在一个具体的实施例中,如图4所示,所述的actor网络根据当前采集的多维状态输入st进行动作的选取,actor网络输出的a(st)为agent在当前状态的各维特征到相应动作分布的映射,输出值分别对应为均值和方差。
在一个具体的实施例中,如图5所示,所述的reward网络以当前的状态、动作为输入,输出为奖励信号r(st),通过critic网络的输出v(st)与gpr模块中预测的下一状态st 1对应的值函数
在一个具体的实施例中,如图6所示,所述的critic网络以当前的状态、动作以及reward网络的输出r(st)作为输入,以贝尔曼方程的形式构造损失函数
根据gpr模块输出的值函数,依据的是已达到目标的episodes的状态转移分布,而且以子目标状态为优化方向,因此在奖励信号r(st)未知的情况下,采用相同的策略得出的vg较于critic输出的v(st 1)是当前更合理的更新方向。
本实施例对于reward网络的更新方向,即目标值函数vg的计算,本实施例并没有采用经验回放(replaybuffer)的方法打乱样本数据相关性用于训练神经网络(即每次将交互获得的数据分段成{s,a,r,s`}进行保存,在迭代更新参数时采样小批次(mini-batch)的经验数据输入神经网络进行值函数预测)。原因是因为本实施例场景中奖励r(st)本身就是待估计的,因此最初是并不能对每次动作给出评价的,无法作为单次更新的依据,也正是因为这个原因,actor网络也即策略的更新方式并没有直接采用经典actor-critic中用td-error作为似然率的策略梯度更新方法
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
1.一种离散制造场景中的强化学习奖励自学习方法,其特征在于:包括如下步骤:
s1:对当前生产线的工序进行细化g∈g={g1,g2,…,gn},其中g为细化后当前工序需达到的目标所对应的状态,智能体agent到达预定目标g记录为一个交互序列episode,根据初始参数获得g1作为目标对应的多段episodes,进行gpr模块的训练;
s2:引入基于模型的强化学习方法,将episodes中的状态动作
s3:根据智能体agent获得的环境反馈状态st,将新的状态st同步输入grp模块、reward网络、actor网络、critic网络中,则reward网络输出r(st),actor网络输出a(st),critic网络输出v(st),所述的gpr模块根据s2中推导获得的状态转移模型最终输出值函数vg并作为整体的更新方向;
s4:当|vg-v(st)|<ε时,为了避免假阳性,人为判断是否完成当前目标下工序的学习,若完成,则认为实现该段工序的学习,即当前工序下的奖励函数也即reward网络学习完毕,并进行reward网络的参数保存;根据reward网络的参数、actor网络的参数、critic网络的参数继续进行交互,产生以下一个子目标gn 1作为更新方向的episodes,用于gpr的更新;
s5:当设定目标g={g1,g2,…,gn}全部依次实现时,完成了生产线的工艺学习,并得到了能够进行动作评估的奖励函数,即reward网络;
s6:然后移除gpr模块,根据现有网络参数,采用计算量低的强化学习算法在线运行。
2.根据权利要求1所述的离散制造场景中的强化学习奖励自学习方法,其特征在于:步骤s2,得到系统状态转移模型st 1=f(st,at)的具体步骤如下:
s201:先构建状态差分模型,通过引入差分变量δt=st 1-st ε,
假设△t服从高斯分布,根据高斯分布自共轭,st同样服从高斯分布,即可表示为
s202:令
s203:采用核函数来衡量两个量的相似性,
其中,
s204:利用最小化负对数边缘似然对gpr模块进行训练:
其中k为采用指数平方核的协方差矩阵。
s205:根据gpr模块的性质,数据的联合分布以及预测值
其中,
所预测的后验分布同为高斯分布,可表示为:
其中:
其中ef表示求均值,varf表示求方差;
从而得到状态差分模型。
s206:根据每次输入状态与actor网络动作输出的联合高斯分布
其中q=[q1,…,qn]t,n对应样本数,
当输入状态特征为m维的情况:
相当于对每一维度进行一次以上的推导。
s207:推导后续状态分布p(st 1),可由下式推导得出:
均值μt 1=μt μ△
方差∑t 1=∑t ∑△ cov(st,△) cov(△,st)
所述的gpr模块根据步骤s207推导得出预测的p(st 1)。
3.根据权利要求2所述的离散制造场景中的强化学习奖励自学习方法,其特征在于:根据以上推导得出状态转移模型让gpr模块实现策略评估,即得到gpr模块的最终输出值函数vg,并作为当前reward网络、critic网络的更新方向;其中所述的值函数表示如下:
其中,
根据每次得到值函数vg,对actor网络的参数采用基于梯度策略搜索方法进行更新:
其中,ωa指的是actor的网络参数,
4.根据权利要求3所述的离散制造场景中的强化学习奖励自学习方法,其特征在于:所述的reward网络以当前的状态为输入,输出为奖励信号r(st),通过critic网络的输出v(st)与gpr模块中预测的下一状态st 1对应的值函数
5.根据权利要求4所述的离散制造场景中的强化学习奖励自学习方法,其特征在于:所述的critic网络以当前的状态、动作以及reward网络的输出r(st)作为输入,以贝尔曼方程的形式构造损失函数