基于自动发现抽象动作的机器人分层强化学习初始化方法

文档序号:10594030阅读:427来源:国知局
基于自动发现抽象动作的机器人分层强化学习初始化方法
【专利摘要】本发明公开了一种基于自动发现抽象动作的机器人分层强化学习初始化方法,其特征在于:包括Q学习模块、创建抽象动作模块、状态?抽象动作评估值Q(s,o)初始化模块以及分层强化学习模块,先利用Q学习模块让机器人与环境交互产生经验,然后基于这些经验使用创建抽象动作模块让机器人创建抽象动作,最后机器人通过初始化状态?抽象动作评估值Q(s,o)初始化模块,从普通的强化学习转向分层强化学习模块进行分层强化学习,并记录学习结果。本发明通过对状态?抽象动作评估值Q(s,o)进行初始化,使机器人采用分层强化学习方法求解复杂环境中的任务时收敛速度更快。
【专利说明】
基于自动发现抽象动作的机器人分层强化学习初始化方法
技术领域
[0001 ]本发明设及一种机器人控制方法,属于机器学习领域,具体设及一种基于自动发 现抽象动作的机器人分层强化学习初始化方法。
【背景技术】
[0002] 随着机器人应用领域的不断拓展,机器人所面临的任务越来越复杂。尽管很多算 法能够对机器人可能执行的行为进行预先设计和编程,但是当面临复杂的任务,设计人员 往往无法对瞬息万变的外部环境做出有效预测,从而不能对机器人的行为做出合理的预 。因此,能够感知环境并通过采取相关动作来完成任务的自主机器人成为了研究的重点。
[0003] 强化学习 (Reinforcement Learning)是机器学习中的一种重要的学习方法,采用 试错(trial and error)学习的方式获取最优的行为策略,目前已经产生的众多强化学习 算法都在机器人行为学习方面表现出了良好的学习性能。
[0004] 然而,当问题的规模扩大时,传统的强化学习算法性能会急剧下降。运是因为强化 学习需要通过机器人不断地与环境交互,当问题规模扩大时,环境中的特征数量会呈指数 上升,因此算法的复杂度会急剧上升,机器人就需要大量的时间W获得好的策略。目前强化 学习中解决运个问题的方法有很多,如核方法、函数逼近和分层强化学习等,运些方法都可 W用于求解大规模问题。
[0005] 不同于核方法和函数逼近,分层强化学习致力于让机器人能够长期学习,甚至终 生学习,也就是机器人之前学习到的经验能够为之后的学习所利用,运些经验可W用来解 决某一个问题域中的所有或部分任务集合。时间抽象是分层强化学习中的一类重要的方 法,利用时间抽象,机器人可W关注更高层策略的选择,从而减少选择行为所需的时间。
[0006] 基于时间抽象的分层强化学习近些年也产生了很多高性能的算法,经典的学习算 法如Macro-QeMacro-Q算法能够让机器人利用给定的抽象动作来进行高效的学习,从本质 上改善了传统Q-Iearning的性能。但是Q值初始化的好坏会很大程度上影响算法收敛的速 度,因此如何让机器人自动发现抽象动作,得到抽象动作后如何初始化状态-抽象动作评估 值Q( S,O)是一个需要解决的问题。

【发明内容】

[0007] 本发明的发明目的是提供基于自动发现抽象动作的机器人分层强化学习初始化 方法,在机器人创建了抽象动作之后,加速机器人采用分层强化学习算法时收敛。
[000引为达到上述发明目的,本发明采用的技术方案是:一种基于自动发现抽象动作的 机器人分层强化学习初始化方法,包括Q学习模块、创建抽象动作模块、状态-抽象动作评估 值Q(s,0)初始化模块W及分层强化学习模块,先利用Q学习模块让机器人与环境交互产生 经验,然后基于运些经验使用创建抽象动作模块让机器人创建抽象动作,最后机器人通过 初始化状态-抽象动作评估值Q(s,0)初始化模块,从普通的强化学习转向分层强化学习模 块进行分层强化学习,并记录学习结果。
[0009] 上述技术方案中,所述Q学习模块中让机器人与环境交互产生经验的方式包括W 下几个步骤: (1) 、设定机器人的运行环境,包括环境的边界、任务的起点位置、终点位置、环境中的 固定的障碍物的位置,每一个位置看作一个状态; (2) 、初始化更新值函数的参数,包括设定奖赏值、步长参数、折扣因子; (3) 、机器人使用原始Q学习算法与环境交互,采取动作同时更新所有的状态-动作评估 值Q(s,a); (4) 、保存得到的经验轨迹集1
,一条经验轨迹表示为
,其中聚f表示轨迹的第j个 状态,續表示轨迹彎的第j个动作,巧;谏示在状态Ip采取动作續3后得到的立即奖赏。
[0010] 所述创建抽象动作模块包括对原始经验轨迹去除环、计算所有状态的多样性密度 值W及对子目标集合中所有的子目标创建抽象动作; 所述多样性密度定义如下:
…, 其中較孩駭;永为目标概念K:搁多样性密度值;
良示在轨迹集 合巧V.:.掠深現的条件下正的概率,餐表示第i条负轨迹,醫表示第j条正轨迹; 通过贝叶斯变换得到:
(2), 丑:中.
.为该实 例与目标概念距离上的高斯分布,联立式(1)和式(2)求解得到每个状态的多样性密度值。
[0011] 所述状态-抽象动作评估值Q(s=的初始化模块对所有的状态-动作评估值进行初 始化,对于已经存在的状态-动作评估值直接对其进行赋值,对于未赋值的状态-抽象动作 评估值则通过经验回放的方式对其进行初始化。
[0012] 所述经验回放的方式为:假设Q(s,o)为需要初始化的状态-抽象动作评估值,通过 在无环经验轨迹中捜索抽象动作0,得到该轨迹中抽象动作O的下一个状态-动作对(s',a') 的Q值W及立即奖赏,按照如下更新公式来初始化Q(s,o):
(3), 其中:??表示机器人在状态帮处执行了动作O得到的奖赏,丫表示折扣因子,S表示机器 人采取了动作S之后计算得到的评估值增量;
(4), 其中a表示步长参数,联立(3)式和(4)式得到状态-动作评估值的更新公式。
[0013] 所述分层强化学模块利用所述创建抽象动作模块产生的抽象动作和所述状态-抽 象动作评估值Q(s,o)初始化模块初始化好的状态-抽象动作评估值函数Q(s,o),机器人可 W根据动作评估值函数Q(s,o)结合e-greedy动作选择方法来选择抽象动作,然后根据得到 奖赏W及下一个状态-抽象动作评估值Q(s',o')来更新Q(s,o),最后保存得到的结果信息 中去。
[0014] 由于上述技术方案运用,本发明与现有技术相比具有下列优点: 本发明提供的基于自动发现抽象动作的机器人分层强化学习初始化方法,机器人利用 Q学习模块得到的经验创造建抽象动作,通过对状态-抽象动作评估值Q(s,o)进行初始化, 可W促进机器人更好地从一般强化学习转向分层强化学习,加速机器人在复杂环境下的学 习速度。
[0015] 由于本发明使机器人自动创造抽象动作并进行了特定的初始化操作,因而机器人 可W利用W往的经验,进行分层强化学习,特别适合于各种动态环境、复杂环境中的应用。
【附图说明】
[0016] 图1为本发明实施例一的总流程图; 图2为本发明实施例一中Q学习模块的流程图; 图3为本发明实施例一中创建抽象动作模块的流程图; 图4为本发明实施例一中状态-抽象动作评估值Q(s,o)初始化模块的流程图; 图5为本发明实施例一中分层强化学习模块的流程图; 图6为本发明实施例一中机器人示意图。
【具体实施方式】
[0017] 下面结合附图及实施例对本发明作进一步描述: 实施例:参见图1~6所示,一种基于自动发现抽象动作的机器人分层强化学习初始化 方法:包括Q学习模块、创建抽象动作模块、状态-抽象动作评估值Q(s,〇)初始化模块W及分 层强化学习模块,通过先利用Q学习模块让机器人与环境交互产生经验,然后基于运些经验 使用创建抽象动作模块让机器人创建抽象动作,最后机器人通过初始化状态-抽象动作评 估值Q(s,〇)初始化模块,从普通的强化学习转向分层强化学习模块进行分层强化学习,并 记录学习结果。
[0018] 结合图1所示,具体可W包括W下步骤: 1、Q学习模块。该模块包括环境初始化,参数初始化,动作选择,Q值更新W及保存经验 运几个部分。在环境W及相关参数初始化完之后,按照E-greedy动作选择方法选择动 作,然后按照如下的更新公式来更新所有状态-动作评估值Q(s,a):
(5) 其中1?表示机器人在状态藏处执行了动作a得到的奖赏,I表示折扣因子,疆表示机器 人采取了动作a之后计算得到的评估值增量。
[0019]
(6) 其中保表示步长参数。联立巧)式和(6)式可W得到状态-动作评估值的更新公式。
[0020] 2、创建抽象动作模块。该模块包括对原始经验轨迹去除环、计算所有状态的多样 性密度值W及对子目标集合中所有的子目标创建抽象动作运几个部分组成。
[0021] 3、状态-抽象动作评估值Q(s,o)初始化模块。该模块需要对所有的状态-动作评估 值进行初始化,对于已经存在的状态-动作评估值则直接对其进行赋值,对于未赋值的状 态-抽象动作评估值则需要通过经验回放的方式对其进行初始化。
[0022] 4、分层强化学习模块。该模块需要利用W上步骤产生的抽象动作和步骤3中初始 化好的状态-抽象动作评估值函数Q(s,o)。机器人可W根据动作评估值函数Q(s,o)结合 £ - greedy动作选择方法来选择抽象动作,然后根据得到奖赏W及下一个状态-抽象动作 评估值Q( S ',O ')来更新Q( S,O)。最后保存得到的结果信息。
[0023] 参见图2所示,所述Q学习模块具体可W包括W下步骤: 1、环境初始化,初始化机器人的模拟运行环境,包括环境的边界,任务的起点位置,终 点位置,环境中的固定的障碍物的位置。
[0024] 2、参数初始化,设定机器人到达目标的奖赏值,W及用于更新值的步长参数、折扣 因子等等参数。
[00巧]3、选择动作,机器人根据更新得到的状态-动作值函数Q(s,a)采月
动 作选择方法选择动作。
[0026] 4、更新值函数Q(s,a)。
[0027] 5、判断是否到达目标状态,根据判断结果做如下处理: 1)若到达目标状态,进入步骤6。
[0028] 2 )若没有到达目标状态,进转向步骤3。
[0029] 6、保存学习得到的经验轨迹,运里主要保存的是状态、动作W及奖赏序列。
[0030] 参见图3所示,所述创建抽象动作模块具体可W包括W下步骤: 1、对保存的经验轨迹去环,W经验轨迹中的状态为目标,对轨迹中状态重复的区间进 行去环操作,得到无环的经验轨迹。
[0031] 2、计算所有状态的多样性密度值,由于采用的是无环轨迹,因此该计算过程是效 率很高的。
[0032] 3、判断是否存在多样性密度值大于阔值的状态,根据判断结果做如下处理: 1)若存在,则进入步骤4。
[0033] 2)若不存在,则转向步骤1。
[0034] 4、将满足条件的状态加入子目标集合中,运些状态将会用来创建抽象状态。
[0035] 5、初始化抽象动作S元组< /。,而,,择。>,根据经验轨迹,按照经验回放的方式可 W初始化抽象动作的=元组。其中初始化^的方法是通过捜索去环轨迹中所有出现子目标 的轨迹,如果在无环轨迹r中第个时间步找到了贵蒼戀,那么机器人会将《一《时间步到 £时间步乘坤的状态都加入i中。当机器人到达子目标时或者机器人当前不在4,终止条件 滋::;片:扛否则臟:仁攒。%的初始化方式则可直接根据去环之后的经验轨迹得到。
[0036] 参见图4所示,所述状态-抽象动作评估值Q(s,o)初始化模块具体可W包括W下步 骤: 1、选择状态-动作评估值Q(s,0),即在新的值函数中选择一个状态-动作评估值初始 化。
[0037] 2、判断该动作是否是基本动作,根据判断结果做如下处理: 1)若是基本动作,则进入步骤3。
[0038] 2)若不是基本动作,则进入步骤4。
[0039] 3、直接将旧的值函数Q (S,a)中的值赋值给对应的Q (S,O ),进入步骤6。
[0040] 4、在所有的无环轨迹中捜索动作0,找到之后进入步骤5。
[0041] 5、联立公式3和公式4便可计算出Q(s,o)的值,将计算所得赋值给Q(s,o),进入步 骤6。
[0042] 6、判断是否对所有状态-动作评估值都完成初始化,根据判断结果做如下处理: 1)若是,则结束。
[0043] 2)若不是,则转向步骤1。
[0044] 参见图5所示,分层强化学习模块具体可W包括W下步骤: 1、选择抽象动作,此处抽象动作包括基本动作和抽象动作。
[0045] 2、按照公式3和公式4更新状态-动作值函数Q(s,o)。
[0046] 3、判断当前状态是否为目标状态,根据判断结果做如下处理: 1)若是,则结束。
[0047] 2)若不是,则进入步骤1。
【主权项】
1. 一种基于自动发现抽象动作的机器人分层强化学习初始化方法,其特征在于:包括Q 学习模块、创建抽象动作模块、状态-抽象动作评估值Q(s,〇)初始化模块以及分层强化学习 模块,先利用Q学习模块让机器人与环境交互产生经验,然后基于这些经验使用创建抽象动 作模块让机器人创建抽象动作,最后机器人通过初始化状态-抽象动作评估值Q(s,〇)初始 化模块,从普通的强化学习转向分层强化学习模块进行分层强化学习,并记录学习结果。2. 根据权利要求1所述的基于自动发现抽象动作的机器人分层强化学习初始化方法, 其特征在于:所述Q学习模块中让机器人与环境交互产生经验的方式包括以下几个步骤: (1) 、设定机器人的运行环境,包括环境的边界、任务的起点位置、终点位置、环境中的 固定的障碍物的位置,每一个位置看作一个状态; (2) 、初始化更新值函数的参数,包括设定奖赏值、步长参数、折扣因子; (3) 、机器人使用原始Q学习算法与环境交互,采取动作同时更新所有的状态-动作评估 值Q(s,a); (4) 、保存得到的经验轨迹集合Γ …,一条经验轨迹表示为其中表示轨迹笑:的第j个状 态,表示轨迹的第j个动作,%£表示在状态系1采取动作%€后得到的立即奖赏。3. 根据权利要求1所述的基于自动发现抽象动作的机器人分层强化学习初始化方法, 其特征在于:所述创建抽象动作模块包括对原始经验轨迹去除环、计算所有状态的多样性 密度值以及对子目标集合中所有的子目标创建抽象动作; 所述多样性密度定义如下:⑴, 其中職为目标概念艽的多样性密度值;= 合:?.????:的条件下概率,2Γ表示第i条负轨迹,_表示第j条正轨迹; 通过贝叶斯变换得到:例与目标概念距离上的高斯分布,联立式(1)和式(2)求解得到每个状态的多样性密度值。4. 根据权利要求1所述的基于自动发现抽象动作的机器人分层强化学习初始化方法, 其特征在于:所述状态-抽象动作评估值初始化模块对所有的状态-动作评估值进行 初始化,对于已经存在的状态-动作评估值直接对其进行赋值,对于未赋值的状态-抽象动 作评估值则通过经验回放的方式对其进行初始化。5. 根据权利要求4所述的基于自动发现抽象动作的机器人分层强化学习初始化方法, 其特征在于:所述经验回放的方式为:假设Q(s,〇)为需要初始化的状态-抽象动作评估值, 通过在无环经验轨迹中搜索抽象动作〇,得到该轨迹中抽象动作〇的下一个状态-动作对 (s',a')的Q值以及立即奖赏,按照如下更新公式来初始化Q(s,o):⑶, 其中g表示机器人在状态:?处执行了动作〇得到的奖赏,γ表示折扣因子,S表示机器 人采取了动作*>之后计算得到的评估值增量;⑷, 其中α表示步长参数,联立(3)式和(4)式得到状态-动作评估值的更新公式。6.根据权利要求1所述的基于自动发现抽象动作的机器人分层强化学习初始化方法, 其特征在于:所述分层强化学模块利用所述创建抽象动作模块产生的抽象动作和所述状 态-抽象动作评估值Q(s,o)初始化模块初始化好的状态-抽象动作评估值函数Q(s,o),机器 人可以根据动作评估值函数Q(s,o)结合ε-greedy动作选择方法来选择抽象动作,然后根据 得到奖赏以及下一个状态-抽象动作评估值Q(s',o')来更新Q(s,o),最后保存得到的结果 信息中去。
【文档编号】G06F15/18GK105955921SQ201610238118
【公开日】2016年9月21日
【申请日】2016年4月18日
【发明人】许志鹏, 朱斐, 伏玉琛, 黄蔚
【申请人】苏州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1