©作者 | 周宣含

学校 | 国防科技大学

研究方向 | 深度强化学习

在强化学习中,智能体通过在未知环境中探索与试错来学习如何决策。大多数 RL 算法允许智能体自由地探索环境,并采取任意能够提升奖励的动作,然而,能够获得较高奖励的动作同时也可能会带来较大风险。而在一些实际场景中,确保智能体的安全至关重要。

不同于标准 RL 只需要最大化奖励函数,此时智能体所采取的行为必须能够避免危险的情况,因此设计者需要合理地设计奖励函数,通过不同的权重系数(奖励因子与惩罚因子)在最大化奖励以及减少危险代价之间取得平衡。这其中存在着两个问题:

1)需要满足的约束条件与正确的权重参数之间不存在给定的映射关系,如果惩罚因子选取得过小,智能体可能会学习到危险的行为,相反,如果惩罚因子选取得过大,智能体可能无法学习到任何东西;2)对于给定的权重系数,即使能够让智能体最终学习到满足约束的最优策略,也依然无法保证智能体在整个训练过程中都能满足约束。

一种确保智能体安全性的方法是在标准马尔科夫框架中增加约束条件,把问题转变成受限马尔科夫决策过程(constraint Markov Decision Process,CMDP),此时智能体的目标是在满足 long-term 代价约束的条件下最大化 long-term 奖励。这种方法能够同时解决上述的两个问题。

当前求解 CMDP 的算法主要包含两大类:原始对偶优化(primal-dual optimization,PDO)算法与受限策略优化(constraint policy optimization,CPO)算法。其中,PDO 算法以拉格朗日松弛(Lagrangian relaxation)技术为基础,轮流更新原始域参数与对偶域参数。具体来说,原始策略参数利用策略梯度上升的方法进行更新,而对偶域的参数则采用对偶梯度上升的方法进行更新。

CPO 与 PPO 的区别在于对偶域的更新方式,在 CPO 中,每一次迭代都会通过求解一个精心设计的优化问题来直接求解对偶参数,这样确保了训练过程中约束条件也能够得到满足,CPO 是 TRPO 在 CMDP 中的扩展。open AI 在对于  safety  RL 的 benchmark 中提到,CPO 的实际效果不如 PDO,并且 CPO 的算法框架基于 TRPO 算法,而 PDO 可以应用在各种标准 RL 算法中,因此这里只介绍 PDO 算法。

Constraint RL

1.1 受限马尔科夫决策过程(CMDP

CDMP 在 MDP 的基础上增加了对于长远折扣代价(long-term discounted costs)的约束。具体来说,假设总共有 个代价函数 ,其中每个代价函数 表示状态-动作对到代价之间的映射关系。类似于奖励收益,策略 下的长远折扣代价收益被定义为

对应的约束门限值为 。CMDP 的目标是在满足长远代价收益 的情况下最大化奖励收益 ,即

除此之外,约束条件还有多种形式,例如机会约束 ,风险条件价值约束(constraints on the conditional value at risk,与最坏情况结果的一小部分相比的预期代价总和),每个状态的独立约束 。实际上,在 Sutton 的书中提到过,所有的目标与目的都可以用奖励函数来表示,因此通过合理设计代价函数所能表示出来的约束条件种类是十分广泛的。

另外,Constraint RL 与 multi-objective RL 十分相近,但是两者有着一定的区别,在 constraint RL 中,当约束条件得到满足时,通常存在一个饱和点(saturation point),当到达该点时,继续减少代价函数的值就不再具有任何意义,这个点对应的代价函数的值也就是约束条件的门限值,这个门限值在 multi-objective RL 中不存在类似的定义。

1.2 原始对偶优化(primal-dual optimization)

为了求解 CMDP,可以采用拉格朗日松弛技术,具体来说,上述 CMDP 问题的拉格朗日函数为

其中 是拉格朗日因子。原带约束的优化问题可以转换为如下不带约束的优化问题:

为了求解这个不含约束的 minmax 问题,标准的方法是采用迭代原始-对偶方法,即在每一次迭代中轮流更新原始策略 与对偶变量 。在第 次迭代中的原始-对偶更新过程如下:

  • 固定 ,执行策略梯度上升:,其中 表示更新步长。这里的策略梯度既可以是 on-policy 的似然比策略梯度(REINFORCE 与 TRPO等),也可以是 off-policy 的确定性策略梯度(例如 DDPG)。

  • 固定 ,执行对偶更新:。CMDP 中不同方法的区别就在于对偶更新函数 的选择。例如,PDO 采用简单的对偶梯度上升 ,其中 是步长, 是对于对偶空间 的投影。相反,CPO 通过在每一次迭代中构建新的优化问题来求解对偶变量 ,进一步加强了约束。

实际算法举例

2.1 Primal-Dual DDPG for CMDPs

这里提供 DDPG 算法的原始-对偶优化版本用于求解 CMDP,该算法中的原始策略更新与对偶变量更新均利用经验回访池中的 off-policy 数据样本。为了方便描述,假设此时 CMDP中只存在 1 个约束,多个约束的情况也可以轻易地扩展得到。在原始-对偶 DDPG 算法中,存在以下几个神经网络:

  • Reward critic Q-network 以及 reward target critic Q-network ;

  • Cost critic critic Q-network 以及 cost target critic Q-network ;

  • Actor policy network 以及 actor target policy network ;

具体算法如下:

可以看出,这里的算法与标准 DDPG 的算法区别在于:

1. 多了 1 个用于表征长远折扣代价的神经网络;

2. 需对对偶域的拉格朗日因子即惩罚因子进行梯度上升。

类似的,PDO 还可以应用在 TRPO、PPO、TD3、SAC 等算法上。

2.2 存在的问题

在实验中我发现这种方法存在一定的问题,在实际场景中我们的约束条件是有一定物理意义的,例如一段时间内机器人的能量消耗必须小于一定的阈值,保证机器人的正常运作,这里的阈值是根据无折扣的代价之和求得的,但是在上面的算法流程中,利用了一个神经网络去拟合代价对应的 Q 值,这里的 Q 值对应的是有折扣的代价收益,与奖励对应的收益类似,因此这里的代价 Q 值和我们实际中的代价之和是有区别的。在 open AI 提供的实验中,代价比较简单,通常为 1,此时 open AI 的代码在假设每个 step 都有代价,且均为 1 的情况下,利用有折扣代价之和与无折扣代价之和之间的等式关系:

将实际无折扣代价之和得到的门限值转换成了有折扣代价之和得到的门限值:

这种方法基于每个时刻均有代价,且代价值固定的假设,在实际场景中,代价值和奖励值一样,可能存在各种各样的取值,并且不是每个 step 都会存在,所以这种等式变换是十分不精确的,并不适合实际场景。因此,在我个人的实验中,并没有采用神经网络对代价对应的收益进行拟合,而是直接采用 on-policy 的数据计算一个 episode 的代价之和做为代价收益,然后利用这个值对拉格朗日因子进行梯度更新。

参考文献

[1] A. Ray, J. Achiam, and D. Amodei, ‘Benchmarking Safe Exploration in Deep Reinforcement Learning’, p. 25.
[2] Q. Liang, F. Que, and E. Modiano, ‘Accelerated Primal-Dual Policy Optimization for Safe Reinforcement Learning’, arXiv:1802.06480 [cs, stat], Feb. 2018, Accessed: Apr. 14, 2021. [Online]. Available: arxiv.org/abs/1802.0648
[3]J. Achiam, D. Held, A. Tamar, and P. Abbeel, ‘Constrained Policy Optimization’, arXiv:1705.10528 [cs], May 2017, Accessed: Apr. 17, 2021. [Online]. Available: arxiv.org/abs/1705.1052
[4]Y. Chow, M. Ghavamzadeh, L. Janson, and M. Pavone, ‘Risk-Constrained Reinforcement Learning with Percentile Risk Criteria’, arXiv:1512.01629 [cs, math], Apr. 2017, Accessed: Apr. 17, 2021. [Online]. Available: arxiv.org/abs/1512.0162

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

针对安全探索的受限强化学习:原始对偶优化算法相关推荐

  1. 赠票 | 深度强化学习的理论、算法与应用专题探索班

    文末有数据派赠票福利呦! 深度强化学习是人工智能领域的一个新的研究热点.它以一种通用的形式将深度学习的感知能力与强化学习的决策能力相结合,并能够通过端对端的学习方式实现从原始输入到输出的直接控制.自提 ...

  2. 线下报名 | YOCSEF TDS:深度强化学习的理论、算法与应用

    时间:7月29日9:00-17:20 地点:北京中科院计算所,一层/四层报告厅(暂定) 报名方式:1.报名链接:http://conf2.ccf.org.cn/TDS  2.点击文末阅读原文报名  3 ...

  3. 强化学习在资源优化领域的应用

    点击上方蓝字关注我们 强化学习在资源优化领域的应用 王金予, 魏欣然, 石文磊, 张佳 微软亚洲研究院,北京 100080 摘要:资源优化问题广泛存在于社会.经济的运转中,积累了海量的数据,给强化学习 ...

  4. 【ML4CO论文精读】基于深度强化学习的组合优化问题研究进展(李凯文, 2020)

    基于深度强化学习的组合优化研究进展 本人研究方向(博士期间):多目标组合优化与决策研究--致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发,以及多目标优化技术在一些工程实践中的应用. ...

  5. CORL: 基于变量序和强化学习的因果发现算法

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 来源:诺亚实验室 华为诺亚方舟实验室.西安交通大学 ...

  6. 华为诺亚ICLR 2020满分论文:基于强化学习的因果发现算法

    2019-12-30 13:04:12 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文 ...

  7. 基于深度强化学习的组合优化方法在工业应用中的实践

    <统筹方法平话>中有一个例子曾被收录到语文课本中,讲"烧水泡茶"有五道工序:1.烧开水,2.洗茶壶,3.洗茶杯,4.拿茶叶,5.泡茶,其中前四道工序是泡茶的前提,且各道 ...

  8. 基于强化学习的服务链映射算法

    2018年1月   <通信学报>    魏亮,黄韬,张娇,王泽南,刘江,刘韵洁 摘要 提出基于人工智能技术的多智能体服务链资源调度架构,设计一种基于强化学习的服务链映射算法.通过Q-lea ...

  9. 【强化学习】Policy Gradient算法详解

    DeepMind公开课https://sites.google.com/view/deep-rl-bootcamp/lectures David Silver教程 http://www0.cs.ucl ...

最新文章

  1. 用leangoo怎么添加泳道,拖拽移动泳道?
  2. Docker创建自己的github(Gitea)
  3. 自适应col自动换行显示_10kV配网自适应综合型馈线自动化技术的测试问题及解决措施...
  4. ArrayList 源码阅读记录
  5. mysql generic安装_MySQL 5.6 Generic Binary安装与配置
  6. BZOJ4245 [ONTAK2015]OR-XOR 【贪心】
  7. 胶囊路由_评论:胶囊之间的动态路由
  8. 万物皆可爬系列查看翻页翻到最后是什么
  9. JS-DOM-节点-获取元素-文档结构-元素的属性
  10. wireshark 开始抓包
  11. Spring-core-AnnotationMetadata接口
  12. python代码覆盖率工具_Python代码覆盖率分析工具Coverage
  13. centos7安装mysql客户端
  14. 2021各厂免费云服务器申请攻略(阿里云/腾讯云/华为云)
  15. 这位毁誉参半的政治名嘴,竟然彻底改变了计算机编程
  16. 推荐系统实战:新闻推荐系统基本流程
  17. mysql polygon 类型_MySQL数据类型 - 空间数据类型 (4)
  18. 迈瑞BC5800出图
  19. 数据结构课程设计报告(附代码)
  20. R语言data.table简介

热门文章

  1. Android APP层 ShellUtils
  2. TVS二极管,双向封装,如何选型?
  3. java 当前时间的前一天_java获取当前日期的前一天和后一天
  4. php中控车牌识别push协议,车牌识别一体机的RS485小接口——实现透明传输!
  5. 解题报告 『[NOI2014]起床困难综合症(位运算)』
  6. 汇编语言--微机CPU的指令系统(五)(字符串操作指令)
  7. 【转载】单片机的背后
  8. react+redux使用static mapStoreToProps
  9. OC的项目网址(自己编写的项目)
  10. MVC系统学习6—Filter