lecture5: Policy OptimizatiobⅠ(策略优化)


一、引言
之前的学习方法都是基于价值函数的,而不是通过选择策略输出中取值大的值。
之前基于值函数的学到的都是 确定性的策略(值函数离散化后用table表示或者用网络近似)

我们需要的是策略函数,输出是一个概率,取argmax的动作
对其进行采样,就可以得到具体的行为了(这种情况下不是取最大值)
强化学习基于策略的优化的化,可以让优化更容易。、

分类:
在价值函数中是通过价值函数隐士的表示策略
在策略函数中,不涉及价值函数
两种的结合是Actor-critic。

优势:
不管数据多少都可以得到一个策略函数,通过策略函数进行交互,而在价值函数的时候必须需要很多数据的遍历
在高维空间更有效
学习的是概率,更有优势

不足:
经常收敛到局部最优解,因为对策略函数建模的时候不是最优的
评估的时候有很高的方差,使测试结果不稳定

PART1

二、策略函数

一种是确定性的,一种是以概率形式返回,或者在连续行为中是高斯分布(可以从分布中采样得到)

比如在石头剪刀布中的策略应该是概率的形式

应用:aliased gridworld游戏
agent在灰色区域不知道自己是在左边还是在右边

如果用价值函数,就会得到确定性策略。即在灰色区域也会采取确定性策略,get!

如果采用基于策略的方法,则两个方向的概率就都会是50%。
在这里插入图片描述

三、优化函数

策略函数 Π θ ( s , a ) \Pi_{\theta}(s,a) Πθs,a是关于 θ \theta θ的函数,优化函数
怎么衡量策略的价值?
(一)、
1、如果在可以结束的环境中,可以用开头状态的值,用最开始的价值决定后面的好不好;
2、如果持续性的,可以用average vale来衡量。
在这里插入图片描述
3、或者用每一步获得的平均奖励作为客观函数去优化。

(二)、
从轨迹的角度去看
在这里插入图片描述
根据策略与环境交互,得到很多轨迹,然后将奖励平均,这个奖励也可能值有在结束时候得到。

我们希望
在这里插入图片描述

四、具体做法

如果J是可微,可以用梯度的方法优化,或者其他方法
在这里插入图片描述
如果J不可微,或者梯度难算,可以用**“黑箱优化”**
在这里插入图片描述
####(一)、梯度方法
首先看梯度方法
在这里插入图片描述
让客观函数取大。

有一个tricks:
在这里插入图片描述
注:李宏毅老师课程中也有。
在这里插入图片描述

(二)、“黑箱”— cross-entropy

cross-entropy方法(CEM)
在这里插入图片描述
参数有一个集合,一开始是一个高斯分布,得到很多参数,得到很多策略函数,对于每一个策略函数,算J1,存在C中。
然后进行排序,取前10%的参数
用极大似然的优化更新分布的参数,然后再从中采样,一值下去。
这里就没有显式的J,首先我们需要确定策略函数的形式,然后根据上面介绍的方法将参数带到策略函数中,就会产生轨迹,然后计算J,这样去更新。
代码:
在这里插入图片描述

(三)、“黑箱”— finite difference

finite difference
没法算梯度的情况下,对于每个维度加一个很小的扰动,然后减原来的值,再除以很小的扰动。近似在在那一个上的梯度
在这里插入图片描述
虽然是近似的,而且效率比较低。但是对所有的策略函数都是work的。

五、策略函数的形式

(一)、softmax形式

在这里插入图片描述

(二)、高斯策略

用于动作空间是连续的
在这里插入图片描述
mean:状态特征量的加和
Variance:既可以是参数化的也可以是常数
a:从分布中采样
score function:可以求出

六、策略梯度方法应用

(一)、one-step MDPs

只走了一步的MDP
在这里插入图片描述

(二)、multi-step MDPs

产生的是很多轨迹τ
在这里插入图片描述
如何优化:
在这里插入图片描述
值有P是关于θ的,然后再利用log,这里的log可以将练乘变成加和。之前的log可以让函数取期望。
然后因为是MDP方法,因此可以通过采样,代替P。
在这里插入图片描述
然后将log那一项单独拆开后,因为中间那一项与θ没有关系,因此在求导的过程中就直接去掉了。得到的就是每一部分score function的加和。
在这里插入图片描述
最终:
在这里插入图片描述
这里及以下建议自己推导一下。

PART2

一、策略优化

(一)、策略梯度估计

首先是梯度的估计,这里的x代表的就是τ(从p中采样得到),即一条轨迹。f(x)代表一条轨迹的收益。
期望对θ求导得到score function,然后用采样的方式估计。
在这里插入图片描述
从p中采样的x,可以让f(x)尽可能大,其实也就是在优化下面的形状。
第一个是采样的图,第二个图是f(x)后的值(绿色值大),第三个图是根据梯度更新以后的p的分布。
在这里插入图片描述

(二)、最大似然估计

采样的点扔到似然函数中,让似然函数最大化。两者对比如下:
两者唯一的不同是策略梯度估计多了个reward function,相当于一个正负的值,相当于加权后的最大似然古迹。意义是策略鼓励策略进入奖励更高的区域。
在这里插入图片描述
形象来看,让轨迹向红色区域移动
在这里插入图片描述

二、改进

在这里插入图片描述
策略梯度的方法在这里是用MC的方法进行采样的,虽然是unbiased,但是very noisy。

(一)、利用时序的因果关系

周老师讲的是后面是一个log likehold,然后整个式子相当于用前面的reward进行normalization,但是前面的log likehold并不会影响后面的reward,因此有个时序关系。

我的理解是这里用到了一个技巧,因为前面是用每一个奖励乘以到他之前所有的likehold的乘积。举个例子,对于每一个reward,都需要乘以第一个likhold的分量。因此可以将两者的位置换一下。相当于对于第一个likehold,先乘以以后的每一个reward。
在这里插入图片描述
reinforce算法就是利用了这种思想
在这里插入图片描述

(二)、引入一个baseline

还是沿用(一)中的想法,然后因为Gt也是采样出来的一个量,因此具有high variance。
所以让他减去一个b(st),这样可以使Gt-b(st)的variance比Gt小很多。
b(st)的求法
1、可以利用很多Gt的平均值。
在这里插入图片描述
证明不会改变梯度的实际的值,但会减小方差。
在这里插入图片描述
2、可以通过参数化的方法求b(st)
在这里插入图片描述

(三)、引入Critic

评论家
用Q函数替代Gt
在这里插入图片描述

(四)、Actor-Critic

Actor是策略函数,Critic是Q函数,用于评价表演者好不好。
两者都有各自的参数。
在这里插入图片描述
Critic做的就是策略评估MC、TD、least-squares policy evaluation等方法。
1、基本做法
这里的一个算法是用TD策略评估,用线性方法去拟合。策略更新的时候用前一步得到的进行自举。
在这里插入图片描述
或者可以用两个不同的神经网络去拟合,一种节省计算的方法是分享特征提取,然后一部分输出价值函数,一部分输出策略函数。
在这里插入图片描述
2、考虑baseline的方法
这里叫Advantage function
在这里插入图片描述
现在面临的问题是Q和V都有自身的参数。
但是如果有分段不可微分的情况时,可以对这一点进行采样,然后计算后面每分支传回来的梯度,进行加和,再往前传递。
在这里插入图片描述

(四)、扩展

在这里插入图片描述

价值函数和策略函数的两个学派
经典RL 控制论背景
伯克利 机器人北京
周老师的评价
在这里插入图片描述
但是最后都回归到Actor-Critic。
**在机器人中需要考虑怎么减少采样。**策略函数只要有样本就可以去拟合。

代码

在这里插入图片描述
第一篇是策略迭代的总结
第二篇是RL代码
第三个是策略迭代在pong中实现
第四个是加入了baseline,让训练更加稳定

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值