Model-Based RL-基于模型的强化学习-理论详解1:最优控制和规划问题(Optimal Control and Planning)/ CEM/MCTS/LQR

本文为笔者观看伯克利大学CS285 2019 MB部分课程结合自己理解所做笔记。如果错误请指出。欢迎讨论。
课程源地址
文章推导过程、公式皆来自于课堂ppt

1. MB概念引出

1.1 概念

强化学习的目标就是希望agent做出的动作序列得到最多的累计奖励,假设我们知道两个状态之间的转换概率 p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t,a_t) p(st+1st,at),那么我们的算法可以表示为:

image-20200708081237844

上图中第一个式子是状态动作序列 τ \tau τ的概率。优化agent训练的依据就是最大化序列奖励的数学期望。

Model-Based reinforcement learning就是学习动力学转换概率,然后算出如何去选择动作。

1.2 MB三个阶段

  • 知道了动力学模型,如何做出好的决策,最优控制和计划。Optimal Control and Planning
  • 如何学习一个描述动力学环境的模型model
  • 如何直接学习策略,不使用控制和计划。

2. Optimal Control and Planning

2.1 三种情况

概念辨别closed-loop和open-loop

close-loop是一个动作进行一次交互,得到新的状态。

open-loop是指观察第一个状态,然后返回一系列动作,这些都是agent自己想的。

image-20200708093911025

1. Deterministic情况下open-loop

Deterministic 是指下一个动作直接通过状态当前状态动作产生。得到初始状态 s 1 s_1 s1,进而agent想象出接下来的一些列动作:

image-20200708091927931

这里f包括了环境。你的模型f通过状态和动作就能直接产生下一个动作。

动作序列的产生是依据最大化累计奖励。

2. 随机开循环Stochastic open-loop case

image-20200708092127066

环境模型是随机的,下一状态是基于概率产生的,即通过model我们得到的是 p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t,a_t) p(st+1st,at)下一个状态的概率,所以我们在计划动作序列的时候,由于知道的是概率,所以在计划动作序列的时候,是利用累计奖励的数学期望。

3. 随机闭循环

image-20200708094122302

和开循环相比,引入了策略函数 π \pi π。那么下一个动作产生的概率为 π ( a t ∣ s t ) \pi(a_t|s_t) π(atst)。我们使用最大化累计奖励来优化 π \pi π的参数。

  • 如果策略是用神经网络表示的,则可以得到全局最优。
  • 如果适应时变线性函数(time-varying linear),则为局部最优函数。(较为简单)

2.2 优化问题

问题抽象

上述的三种情况问题进行抽象,我们动作序列的优化可以成:
a 1 . . . a T = arg ⁡ max ⁡ a 1 . . . a T J ( a 1 . . . a T ) a_1...a_T = \arg \max_{a_1...a_T} J(a_1...a_T) a1...aT=arga1...aTmaxJ(a1...aT)

J代表deterministic和stochastic open-loop的优化项,我们暂时不用考虑具体是哪个。

进而写成:
A = arg ⁡ max ⁡ A J ( A ) A = \arg \max_A J(A) A=argAmaxJ(A)

A代表动作序列 a 1 , a 2 . . . a T a_1,a_2...a_T a1,a2...aT

2.3 优化方法

2.3.1 CEM

CEM: Cross-Entropy method

如何能找到最佳的动作序列的?

最简单的想法:猜测->验证。即

  1. 从某个分布中(例如均一分布,就是随机选取)选择N个组动序列 A 1 . . . A N A_1...A_N A1...AN

  2. 基于 arg ⁡ max ⁡ J ( A ) \arg \max J(A) argmaxJ(A)选择最大的那组动作序列。

CEM的思想:

假设当动作序列 A 1 . . . . A_1.... A1....服从分布p

  1. 采样 A 1 . . . A N A_1...A_N A1...AN依照分布p(A)
  2. 评估这N组动作序列 J ( A 1 ) . . . J ( A N ) J(A_1)...J(A_N) J(A1)...J(AN)
  3. 从N组序列中选择M个效果最好的 A 1 ∗ . . . A M ∗ A_{1}^*...A_{M}^* A1...AM,这里M<N
  4. A 1 ∗ . . . A M ∗ A_{1}^*...A_{M}^* A1...AM重新拟合分布p(A)。使得下次我们按照这个分布的采样能够得到更高的 J 。跳转到步骤1继续循环。

通常来说使用高斯分布能够得到更好的效果。随着CEM的迭代,p能更好的拟合J的分布。

优点

  • 如果并行就非常快
  • 十分简单

缺点

  • 高纬度限制,超过100维就很难了。
  • 只能用在开循环的规划(open-loop planning)
2.3.2 MCTS

对于离散问题的规划,可以使用搜索树的思想。

如果从起始状态开始,每一个绘制出每一个动作和状态的树图,那么找到最理想的动作序列就很容易了。

但是叶节点的数量是指数增长的,如果想要遍历所有路径,对于大规模问题来说显然是不实际的。

image-20200708112305406

所以我们需要对数进行剪枝处理。

MCTS的基本流程:(循环)

  1. 使用TreePolicy(s1)策略选择一个叶节点 s l s_l sl
  2. 使用DefaultPolicy( s l s_l sl)评估该叶节点
  3. 更新从 s 1 s_1 s1 s l s_l sl所有的价值,并且在s1装填选择最好的动作。回到1第一步。

其中TreePolicy是选择叶节点的一种方法,以UCT TreePolicy( s t s_t st)为例:

  • 如果 s t s_t st下的某些动作没有尝试,那么就选择一个新的动作 a t a_t at

  • 如果所有的动作都尝试过了,那么就选择子节点 S c o r e ( s t + 1 ) Score(s_{t+1}) Score(st+1)最高的。
    S c o r e ( s t ) = Q ( s t ) N ( s t ) + 2 C 2 ln ⁡ N ( s t − 1 ) N ( s t ) Score(s_t) = \frac{Q(s_t)}{N(s_t)} + 2C \sqrt{\frac{2\ln N(s_{t-1})}{N(s_t)}} Score(st)=N(st)Q(st)+2CN(st)2lnN(st1)

    Q为 s t s_t st节点的状态动作价值

    N为 s t s_t st节点的访问次数

DefaultPolicy()如果很好,就能得到一个很好的价值估计。实际上经常使用随机策略,因为容易使用。

例:

  • 第一次迭代:选择动作0,到达s2,通过DefaultPolicy的评估方法,得到该节点Q = 10, N = 1;

image-20200708113712780

  • 第二次迭代:然后依据TreePolicy,动作2没有选过,所以第二次循环选择动作2,评估得到Q = 12, N=1

    image-20200708113859723

  • 第三次迭代,动作1,2都试过,所以我们选择Score大的,计算发现a1=1的叶节点Score较大。选择这个节点。然后发现这个节点还没有被探索,我们就选择一个动作到达s3。评估Q = 10 , 这个10代表这个s3以后的累计奖励是10, N = 1

image-20200708114301885

​ 然后执行算法第3步,回溯这条路线的数据。更新a1,s2的Q = 10+12 = 22, N = 2;

image-20200708114758435

  • 第四轮次代:s1开始,选择的Score值较大的a1= 0; 然后在该状态下执行一个动作a2=0。同第三次迭代。

image-20200708115130502

  • 第五轮迭代:

    image-20200708115206755

  • 第六轮迭代:

    image-20200708115257549

材料阅读
  1. Browne, Powley, Whitehouse, Lucas, Cowling, Rohlfshagen, Tavener,
    Perez, Samothrakis, Colton. (2012). A Survey of Monte Carlo Tree
    Search Methods

案例分析材料:

  1. Deep Learning for Real-Time Atari Game Play Using Offline Monte-Carlo Tree Search Planning

    ​ - Imitation learning from MCTS

2.2.3 LQR

接下来的字母表示有些改动:

image-20200709080034231

image-20200709080053693

我们是否可以直接使用求导的方式来优化问题呢?

shoot method:

只对动作u进行优化,即算法只通过改变u来达到最优值。对状态x没有控制。状态x是u的函数。只要动作改变,就会产生一个新的不同序列。

image-20200709080259399

collocation method:

优化目标有状态x和动作u两个自变量,这两个自变量之间有额外的限制。这样虽然引入更多变量,但是波动较小

image-20200709080526950

LQR属于shooting method,它的定义如下:

image-20200709080755678

L:对model的假设是一个线性方程

Q:损失函数是二次的

R:Regression

中间推导过程详见ppt

最终算法描述:

image-20200709084320099

上述针对的是deterministic,如果是stochastic环境,使用高斯分布去拟合。

原本的 x t + 1 = f ( x t , u t ) x_{t+1} = f(x_t,u_t) xt+1=f(xt,ut),那么介入高斯分布,则 p ( x t + 1 ∣ x t , u t ) = N ( f ( x t , u t ) , ∑ t ) p(x_{t+1}|x_t,u_t) = N(f(x_t,u_t), \sum_t) p(xt+1xt,ut)=N(f(xt,ut),t)

image-20200709085724385

LQR可以用在随机闭循环中。

2.2.4 DDP/Iterative LQR

这是LQR在非线性环境的使用。

image-20200709090733425

LQR假设动力学环境是线性的,且cost是二次的。把非线性系统近似为一个线性的二次系统,得到如下:

这个是利用泰勒展开式在 ( x ^ t , u ^ t ) (\hat x_t , \hat u_t) (x^t,u^t)处展开,保留前两项。

image-20200709090744412·

注:泰勒展开式公式:**

image-20200709091256147

image-20200709091615523

Iterative LQR算法描述:

image-20200709091642646

直观感受:在局部使用线性方程去拟合非线性的方程。

LQR原理:

事实上,iLQR是牛顿法求解

image-20200709092255977

的一种近似方法。

牛顿法计算 min ⁡ x g ( x ) \min_xg(x) minxg(x)迭代原理:

image-20200709092929773

真正使用牛顿法求解,还需要对使用second order dynamics approximation(红框那项)

image-20200709092433991

具体阅读材料:

  1. Mayne, Jacobson. (1970). Differential dynamic programming.
    • Original differential dynamic programming algorithm.
  2. Tassa, Erez, Todorov. (2012). Synthesis and Stabilization of Complex Behaviors through Online Trajectory Optimization.
    Practical guide for implementing non-linear iterative LQR.
  3. Levine, Abbeel. (2014). Learning Neural Network Policies with Guided Policy Search under Unknown Dynamics.
    • Probabilistic formulation and trust region alternative to deterministic line search
案例材料

Nonlinear model-predictive control :

  1. Synthesis and Stabilization of Complex Behaviors through Online Trajectory Optimization, Yuval Tassa etc.

  2. Synthesis of Complex Behaviors with Online Trajectory Optimization, Yuval Tassa etc.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值