用于强化学习的方法和设备技术

技术编号:31014880 阅读:13 留言:0更新日期:2021-11-30 02:54
本公开涉及用于强化学习的方法和设备。用于具有多个状态和从一个状态移动到下一个状态的动作的主题系统。训练数据通过以一系列动作在系统上操作而生成,且用于训练第二神经网络。用于训练第二神经网络的目标值从第一神经网络得出,该第一神经网络通过每隔一段时间复制第二神经网络的权重而生成。制第二神经网络的权重而生成。制第二神经网络的权重而生成。

【技术实现步骤摘要】
用于强化学习的方法和设备
[0001]分案说明
[0002]本申请属于申请日为2014年10月7日的中国专利技术专利申请201480055621.8的分案申请。
[0003]相关申请的交叉参考
[0004]本申请基于并主张2013年10月8日提交的美国临时申请No.61/888,247的优先权,通过引用将其全部内容合并于此。


[0005]本专利技术涉及用于强化学习的改进技术,尤其是Q学习,并涉及数据处理器和处理器控制代码。

技术介绍

[0006]一般而言,强化学习与监督学习的不同在于,不出现正确的输入输出对,而是机器(软件代理)学习在某些环境中采取动作,将某些形式的奖励最大化或者将成本最小化。采取动作将环境/系统从一个状态移转(move)到另一个状态,并且在Q学习的特定情况下,计算状态动作组合的质量,这描述可用于确定动作的期望效用的动作值函数。在“Q

learning”(Machine learning,vol 8,pages 279

292,1992,Watkins,Christopher JCH and Dayan,Peter,并且例如在Wikipedia
TM
上方便地总结)中描述了Q学习算法。
[0007]尽管如此,学习直接根据高维度传感输入,诸如视觉和语言,来控制软件代理是强化学习(RL)的一个长期挑战。在这些领域中操作的大多数成功的RL应用依赖与线性政策函数组合的手工制作特征,并且这种系统的性能严重依赖特征表示的质量。另一方面,学习传感数据的表示已经成为深度学习方法的焦点,大多数深度学习方法依赖应用于深度卷积神经网络的大监督训练集合。
[0008]可能使用神经网络的强化学习的最广为人知的成功是TD

Gammon(“Temporal difference learning and TD

Gammon”,Communications of the ACM,vol 38(3),pages 58

68,Tesauro,Gerald)。这是一个西洋双陆棋游戏程序,它通过强化学习和自我游戏来学习,并达到超人类的游戏水平。但是这种方法采用人体工程学特征以及无关于动作的状态值函数(总得分),而不是动作值函数。此外它不接受视觉输入。
[0009]追随TD

Gammon的早期尝试不太成功,这种方法对于国际象棋、围棋和跳棋不太有效。这导致一个广泛的信念,即TD

Gammon是一个特例,并且神经网络只能在西洋双陆棋中近似值函数,原因是由于掷骰子的随机性,所以它很平滑。
[0010]此外,已经表明,将无模型强化学习算法诸如Q

learning与非线性函数逼近器诸如神经网络组合会导致Q网络发散。因此,后来的工作集中在具有较好收敛保证的线性函数逼近器。除了关于发散的问题之外,通过强化学习提供的训练信号是否足以训练大型神经网络也不清楚。因此,虽然有卷积神经网络的很多成功应用得益于使用大型标记训练示例集合(监督学习),但是通过RL提供的奖励信号经常延迟、稀少且有噪声。
[0011]尽管如此,在“Neural fitted Q iteration
‑‑
first experiences with a data efficient neural reinforcement learning method”(Machine Learning:ECML 2005,Springer 2005,pages 317

328,Riedmiller,Martin)中已经尝试使用多层感知器来逼近Q值函数。所述技术基于存储并重新使用转化(transition)经验的原理,但是有一些显著的实际缺点:一般而言,基于存储的经验来训练神经网络,但是当用新的三元数组(初始状态

动作

结果状态)更新经验时,将先前的神经网络丢弃,并且在已更新的经验上训练全新的神经网络。这是因为,无监督训练会容易地导致发散行为。但是结果是,每次更新存在与数据集合的大小成比例的可计算成本,这使得将这种方法推广到大型数据集合不切实际。相同的方法已经应用于通过自动编码器预处理的视觉输入,但是这遭遇基本上相同的问题(“Deep Auto

Encoder Neural Networks in Reinforcement Learning”,Sascha Lange and Martin Riedmiller)。
[0012]因此,需要一种用于强化学习的改进技术,特别是在采用神经网络时。

技术实现思路

[0013]根据本专利技术,因此提供一种强化学习的方法,所述方法包括:输入与主题系统有关的训练数据,所述主题系统具有多个状态,并且对于每个状态,所述主题系统具有从所述状态中的一个移转到下一个所述状态的动作集合;其中所述训练数据通过以一系列所述动作在所述系统上操作而被生成,并且包括起始状态数据、动作数据以及下一个状态数据,其对于多个所述动作分别限定起始状态、动作以及由于所述动作所致的下一个所述状态;以及利用所述训练数据以及从第一神经网络得出的用于第二神经网络的目标值,训练第二神经网络;所述方法进一步包括:根据所述第二神经网络生成或更新所述第一神经网络。
[0014]一般而言,在本专利技术该方案的实施例中,维持两个神经网络来避免否则在估计动作值参数时会出现的发散,特别是,否则将基于它自己的预测而被更新的神经网络的情况下。在实施例中,第一神经网络生成目标动作值参数,诸如目标Q值,而第二神经网络基于第一神经网络生成的目标而被更新。通过这种方式,目标保持基本上静态,但是每隔一段时间就根据第二神经网络重新生成或更新第一神经网络,例如通过将第二神经网络学习的权重集合中的一些或全部权重复制到第一神经网络。实际上,在实施例中,维持相同神经网络的两个实例,第一实例用于生成用于更新第二实例的目标值,不时更新第一实例,以匹配第二实例。潜在地,在本地连接的网络中,可以在不同的时间将网络的不同部分更新,但是这不太可取。在一个实施例中,在规定数目的动作(例如每104个步骤)之后将第一神经网络更新。
[0015]采用这种方法帮助推广到很大的数据集合,因为训练第二神经网络时涉及的计算减少——在实施例中每次迭代例如采用随机梯度更新以低(恒定)计算成本,将这种第二神经网络有效地连续更新。这样进而促进使用很大数量的训练数据,并且特别是使用用于状态数据的传感数据,诸如图像数据或声音数据(波形)。本技术的实施例可以直接对视觉图像和/或声音进行训练,并且因此可以从该输入到输出动作“端到端”应用强化学习。这样能够实现可能与区分动作值直接相关的特征的学习,而不是所谓的必须尝试通过手动来识别它们。其他优点在于,因为有大数量的低级别数据可用,所以神经网络的前端可以实施通过无监督的强化学习技术来训练的(深度)卷积神经网络。通过这本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种强化学习的方法,所述方法包括:输入与主题系统有关的训练数据,所述主题系统具有多个状态,对于每个状态,所述主题系统具有从所述状态中的一个移转到下一个所述状态的动作集合,其中所述训练数据通过以一系列所述动作在所述系统上操作而被生成、并且包括包含多个转化的经验数据,每个转化包括相应的起始状态数据、动作数据以及下一个状态数据,所述相应的起始状态数据、动作数据以及下一个状态数据对于多个所述动作分别限定起始状态、动作以及由于所述动作所致的下一个所述状态;以及训练第二神经网络,所述第二神经网络是与第一神经网络相同的神经网络的实例,其中,训练所述第二神经网络包括:从所述经验数据中选择转化;通过所述第一神经网络生成用于所述选择的转化的目标动作值参数;基于由所述第一神经网络生成的所述目标动作值参数与由所述第二神经网络生成的动作值参数之间的差来更新所述第二神经网络的权重。2.根据权利要求1所述的方法,进一步包括:利用来自所述第二神经网络的已学习的动作值参数来选择所述动作,其中所述动作响应于为在所述系统的状态下可用的动作集合中的每个动作确定的动作值参数而被选择。3.根据权利要求2所述的方法,其中,所述经验数据从所述选择的动作得出,所述方法进一步包括:通过与限定所述动作的相应的所述起始状态和下一个状态的数据相关联地存储限定由所述第二神经网络选择的所述动作的数据,生成所述经验数据。4.根据权利要求3所述的方法,其中,所述目标动作值参数是通过向所述第一神经网络提供限定所述动作和所述下一个状态的所述数据来生成的,并且所述第二神经网络是利用所述目标动作值参数和限定所述起始状态的所述数据来训练的。5.根据权利要求2所述的方法,进一步包括:输入限定所述系统的状态的状态数据;将所述系统的所述状态的表示提供给所述第二神经网络;为在所述状态下可用的所述动作集合中的每个动作从所述第二神经网络检索已学习的所述动作值参数;以及从所述第二神经网络选择要执行的动作,所述动作具有最大或最小的所述已学习的动作值参数。6.根据权利要求5所述的方法,进一步包括:存储来自所述系统的经验数据,其中所述经验数据通过以利用所述第二神经网络选择的所述动作在所述系统上操作而被生成,并且其中所述训练数据包括所述存储的经验数据。7.根据权利要求6所述的方法,进一步包括:从所述经验数据选择用于多个所述动作中的一个的起始状态数据、动作数据以及下一个状态数据;将来自所述下一个状态数据的所述下一个状态的表示提供给所述第一神经网络;根据所述第一神经网络确定用于所述下一个状态的最大或最小的已学习的动作值参数;根据用于所述下一个状态的所述最大或最小的已学习的动作值参数,确定用于训练所
述第二神经网络的目标动作值参数。8.根据权利要求7所述的方法,其中,所述训练所述第二神经网络包括:将来自所述起始状态数据的所述起始状态的表示提供给所述第二神经网络,以及调节所述神经网络的权重,以使用于通过所述动作数据限定的动作的已学习的动作值参数更接近于所述目标动作值参数。9.根据权利要求7所述的方法,其中,所述经验数据还包括限定由于采取的所述动作所致的所述系统的奖励值或成本值的奖励数据,并且其中所述确定所述目标动作值参数包括分别通过所述奖励值或所述成本值调节用于所述下一个状态的所述最大或最小的已学习的动作值参数。10.根据权利要求1所述的方法,其中,所述系统的状态包括随着时间对所述系统的观察的序列,所述时间表示所述系统的历史。11.根据权利要求2所述的方法,其中,所述训练所述第二神经网络与所述选择所述动作交替,并且包括递增地更新用于选择所述动作的所述第二神经网络的权重集合。12.根据权利要求2所述的方法,其中,根据所述第二神经网络的所述第一神经网络的所述生成或更新在重复利用所述第二神经网络所述动作的所述选择以及所述第二神经网络的所述训练之后每隔一段时间被执行。13.根据权利要求12所述的方法,其中,根据所述第二神经网络的所述第一神经网络的所述生成或更新包括:将所述第二神经网络的权重集合复制到所述第一神经网络。14.根据权利要求1所述的方法,其中,所述第一神经网络和第二神经网络包括有卷积神经网络输入阶段的深度神经网络。15.一种非暂时性数据载体,承载实施权利要求1的方法的处理器控制代码。16.一种Q学习的方法,其中Q值通过神经网络来确定,并且用于选择要在系统上执行的动作,以使所述系统在状态之间移转,其中第一神经网络用于生成用于目标的Q值,以用来训练用于选择所述动作的第二神经网络。17.根据权利要求16所述的方法,其中,每隔一段时间所述第一神经网络根据所述第二神经网络被刷新。18.根据权利要求17所述的方法,其中,所述第一神经网络的权重是准静态的,在所述刷新之间的间隔期间保持基本上不变。19.根据权利要求16所述的方法,进一步包括:存储所述选择的动作和状态的记录,并利用所述记录来生成用于所述目标的所述Q值。20.根据权利要求16所述的方法,其中,所述第一神经网络和第二神经网络是包括本地连接或稀少连接的前端神经网络部分的深度神经网络。21.根据权利要求16所述的方法,其中,所述Q值包括动作值函数的值,所述动作值函数逼近包括限定的下一个动作的动作的策略的期望成本或回报。22.一种非暂时性数据载体,承载实施权利要求16的方法的处理器控制代码。23.一种被配置为执行强化学习的数据处理器,所述数据处理器包括:输入,所述输入用于接收来自系统的训练数据,所述系统具有多个状态,对于每个状态,所述系统具有从所述状态中的一个移转到下一个所述状态的动作集合,其中所述训练数据通过以一系列所述动作在所述系统上操作而被生成、并且包括包含
多个转化的经验数据,每个转化包括相应的起始状态数据、动作数据以及下一个状态数据,所述相应的起始状态数据、动作数据以及下一个状态数据对于多个所述动作分别限定起始状态、动作以及由于所述动作所致的下一个所述状态;训练模块,所述训练模块用于训练第二神经网络,所述第二神经网络是与第一神经网络相同的神经网络的实例,其中,训练所述第二神经网络包括:从所述经验数据中选择转化;通过所述第一神经网络生成用于所述选择的转化的目标动作值参数;以及基于由所述第一神经网络生成的所述目标动作值参数与由所述第二神经网络生成的动作值参数之间的差来更新所述第二神经网络的权重。24.根据权利要求23所述的数据处理器,进一步包括动作选择模块,所述动作选择模块用于响应于用于在所述系统的状态下可用的所述动作集合中的每个动作的动作值参数来选择所述动作,其中所述动作值参数由所述第二神经网络提供。25.根据权利要求23所述的数据处理器,其中,所述神经网络生成模块被配置为将所述第二神经网络的权重集合复制到所述第一神经网络。26.一种被配置为执行Q学习的数据处理器,其中Q值通过神经网络来确定,并且用于选择要在系统上执行的动作,以使所述系统在状态之间移转,所述数据处理器包括耦接到存储处理器控制代码的工作存储器以及非易失性程序存储器的处理器,其中所述处理器控制代码被配置为控制所述处理器:利用第一神经网络来生成用于目标的Q值;利用所述目标来训练第二神经网络;以及利用所述第二神经网络来选择动作以控制所述系统。27.一种在控制系统中学习的方法,对于主题系统的一系列状态,所述方法包括:输入与主题系统的当前状态有关的当前状态数据;将所述当前状态数据的版本提供给神经网络;利用所述神经网络确定用于动作值函数集合的值,潜在动作集合中的一个或每个;响应于所述动作值函数的所述值,选择所述动作;将用于所述选择的动作的动作数据输出到所述主题系统,使得所述主题系统从所述当前状态转化为后续状态;输入与所述主题系统的所述后续状态有关的后续状态数据以及与由于从所述当前状态到所述后续状态的所述转化所致的奖励或成本有关的奖励数据;将经验数据存储在经验存储器中,所述经验数据表示所述当前状态、所述后续状态、所述选择的动作、以及所述奖励或成本;根据所述存储的经验数据,确定用于所述神经网络的目标动作值函数输出;以及利用所述目标动作值函数输出来更新所述神经网络的权重,其中所述更新包括递增地修改先前确定的所述神经网络的权重集合;所述方法进一步包括:存储所述神经网络的权重集合,以产生所述神经网络的两个版本,一个版本针对另一个版本时移,其中用于选择所述动作的所述动作值函数集合的所述值的所述确定利用所述神经网
络版本的后一个版本被执行,以及其中所述目标动作值函数的所述确定利用所述神经网络版本的较早版本被进行。28.根据权利要求27所述的方法,其中,所述目标动作值函数输出通过从所述经验存储器读取识别第一状态、动作、后续状态、以及奖励或成本值的数据而被确定;所述方法进一步包括:利用所述神经网络,确定用于通过所述神经网络为所述后续状态推荐的动作的动作值函数的值;以及根据用于通过所述神经网络为所述后续状态推荐的所述动作的所述动作值函数的所述值与所述奖励或成本值的组合,确定所述目标动作值函数输出。29.一种由一个或多个计算机执行的强化学习的方法,所述方法包括:获得与主题系统有关的训练数据,所述主题系统与强化学习代理交互,所述强化学习代理执行来自动作集合中的动作以使所述主题系统改变状态;其中所述训练数据通过执行来自所述动作集合的一系列动作以与环境交互来生成并且包括多个转化,每个转化包括限定所述环境的相应的起始状态的相应的起始状态数据,限定来自所述动作集合的相应的动作的相应的动作数据以及限定相应的下一个状态的相应的下一个状态数据,所述相应的下一个状态由所述相应的动作被执行所致;以及使用所述训练数据和从第一神经网络得出的第二神经网络的目标值来训练所述第二神经网络;以及根据所述第二神经网络更新所述第一个神经网络。30.根据权利要求29所述的方法,还包括使用从所述第二神经网络获得的作为输出的已学习的动作值参数来选择为生成所述训练数据而执行的动作,其中,所述动作响应于由所述第二神经网络生成的、在所述主题系统的状态下可用的动作集合的每个动作的相应的动作值参数而被选择。31.根据权利要求30所述的方法,所述方法还包括通过将限定使用所述第二神经网络选择的动作的数据与限定所述动作的相应的起始状态和下一个状态的数据相关联地存储来生成所述转化。32.根据权利要求31所述的方法,还包括通过至少提供限定所述下一个状...

【专利技术属性】
技术研发人员:沃洛季米尔
申请(专利权)人:渊慧科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1