本文主要介绍使用约束强化学习(Constraint RL)中的PDO(Primal-Dual Optimization)方法相关内容
PDO 方法流程
- PDO 方法主要用于解决解决CMDP问题
- PDO 方法基本思路是构造拉格朗日函数后,使用梯度下降/上升方法依次迭代更新原始变量和对偶变量(更新原始变量时,对偶变量固定不变,反之依然)
- 原始问题定义:建模为带约束最优化问题
- 拉格朗日函数构造:引入拉格朗日变量
- 按照如下流程迭代求解:
- 固定对偶变量\(\lambda\)(可能有多个对偶变量,此时分别更新即可),使用梯度下降/上升法更新原始变量(参数)
- 注:拉格朗日变量时可以分别独立更新的,拉格朗日函数关于他们各自的梯度均不会包含其他对偶变量
- 固定原始变量(参数),使用梯度上升/下降法更新对偶变量
- 固定对偶变量\(\lambda\)(可能有多个对偶变量,此时分别更新即可),使用梯度下降/上升法更新原始变量(参数)
另一类镜像方法:CPO
- CPO(Constraint Policy Optimization)是一类在每一步迭代中都求解一个精心设计的优化问题的方法,可以确保满足约束
- TRPO在每一步中都在解一个约束优化问题,CPO则可以和TRPO求解融合,每一步迭代参数都确保满足指定约束
- CPO vs PDO:CPO一般不如PDO效果好,且仅适配TRPO方法,PDO则可适配任意强化学习方法
其他说明
- RCPO也属于一种PDO方法