5. 强化学习之——策略优化

课程大纲

基于策略的强化学习:前面讲的都是基于价值的强化学习,这次讲基于策略函数去优化的强化学习

蒙特卡罗策略梯度

如何降低策略梯度的方差

Actor-Critic:同时学习策略函数和价值函数

基于策略的强化学习基础知识

Value-based RL 与 Policy-based RL:

Policy-based RL 的优势与劣势:

策略的分类:

(1)确定性策略

(2)概率分布性策略

 对策略进行优化的过程中,优化目标是什么?

给定一个带参数的策略逼近函数(类似于值函数逼近)\pi_{\theta}(s, a),我们就是要找到最优的 \theta 

怎么去评价一个策略 \pi_{\theta} 呢?【废话,当然是用值函数啊】

从环境的角度去看:

(1)对于 episodic 的环境:可以用最开始的那个 value

(2)对于 continuing 环境:可以用平均的 value;也可以用平均的 reward

从轨迹的角度去看:

怎么去优化我们的目标方程 J(\theta) 呢?

(1)当目标方程 J(\theta) 是可微的时候【我们更倾向于这样】

(2)当目标方程 J(\theta) 是不可微的时候 (采用不用求微分的黑箱优化方法)

举例:

黑箱优化方法A:交叉熵方法 Cross Entropy Method

黑箱优化方法B:有限差分法 Finite Difference Method

策略函数的形式可以是怎么样的呢?

(1)Softmax Policy

(2)Gaussian Policy:适用于连续的动作变量

蒙特卡罗策略梯度方法

一步 MDP 的策略梯度(Policy Gradient for One-Step MDPs)

多步 MDP 的策略梯度(Policy Gradient for Multi-Step MDPs)——真实存在的MDP

优化目标是:

 怎么去算梯度呢?—— 注意这里的 log 小技巧,把连乘变成加和的形式

算完梯度之后:(第二步中用 MC 去采样很多轨迹来近似导数)

那为什么把那个 τ 放到 log 里面呢?

答:分解那个 log 变成连加的形式,可以消掉无关项,最后只剩下那个 score function

之后我们就有了 likelihood ratio policy gradient:【整个过程我们并不需要知道状态转移函数】

整个推导过程就让求梯度变成加和的形式,例如10条轨迹,就把10条轨迹上的奖励加和加起来,对于每一步也有 score function(就是 likelihood function 取个梯度) 也是加和起来,然后就直接得到了客观函数的梯度,整个过程我们并不需要知道状态转移函数,这也是 policy gradient 的一个特殊之处

如何降低 policy gradient 的方差 variance【改进策略梯度】

Score Function Gradient Estimator:近似我们的客观函数的梯度,通过采样 S 个来求平均

Policy Gradient Estimator 和 Maximum Likelihood Estimator 的区别:

唯一的区别是那个 reward function,这样来看的话,策略梯度估计就类似于加权后的极大似然估计

问题来了:我们的策略梯度是依据于 MC 采样产生的,虽然是无偏的,但是说方差比较大

三种减小方差的解决方案:

(1)引入时序上的因果关系,去掉不必要的项来减小方差

上面的这种方法就叫 REINFORCE 方法【William 提出于1992年】

(2)包含一个 baseline 项来减小方差

下面是 baseline 的简单推导过程:(即引入 baseline 只会减少方差值而不会改变 policy gradient 的实际的值)

也可以用一个参数来拟合 baseline 这个项:

引入 baseline 的 policy gradient 方法:(1999年 sutton 的论文,是要估计两个参数的)

(3)引入 Critic 的方法来减小方差 —— 引出 Actor-Critic 方法

Actor-Critic 策略梯度方法

Actor 就是我们实际跟环境去交互产生训练数据的一个策略

Critic 就是实际的值函数去用于估计/评论

Critic 到底是在做什么事情呢?要怎样进行 Policy Evaluation 呢?

完整的 Actor-Critic 算法流程

在 Actor-Critic 中值函数和策略函数的逼近方法:

接下来的推导:

如何通过 baseline 方法来降低 Actor-Critic 的方差:中间取那个 Advantage Function 的原因是因为天生 V 函数就可以作为 Q 函数的 baseline 来使用

策略梯度的一些扩展知识

Policy Gradient 的一个很有意思的应用:解决不可微分的问题

Policy Gradient 的扩展发展脉络

最新的 RL 算法基本上都是 policy-based 的方法

比如:A2C、A3C、TRPO 和 PPO 以及2020年刚出来的 SAC[http://studyai.com/spinup/algorithms/sac.html] 等方法

RL 中基于价值和基于策略的两大学派

Value-based 的学派:应用主要是打游戏,主要采用 DP算法,bootstrapping方法等去优化价值函数,然后再从 Q 函数里采取行为;代表人物:Sutton 还有 DeepMind 的 Silver[AlphaGo 项目],他们属于控制背景的老派,哈哈哈

Policy-based 的学派:应用主要是机器人,他们更推崇基于策略函数的强化学习方法,大多是跟 OpenAI 和 Berkeley 有联系,机器学习背景来做强化学习

两家其实殊途同归:都回到了 Actor-Critic 方法

Policy Gradient 和 Q-Learning 的发展脉络

注:本文所有内容源自于B站周博磊老师更新完的强化学习纲要课程,听完之后获益很多,本文也是分享我的听课笔记。周老师Bilibili视频个人主页:https://space.bilibili.com/511221970?spm_id_from=333.788.b_765f7570696e666f.2

感谢周老师 :)

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值