强化学习-03--policy gradient

突然从基于值的算法到基于策略的算法,有点很难以理解,代码理解也不是那么顺畅。关于policy gradient的算法原理讲解的内容不较少,或者说所写的内容不容易让人理解,这里推荐下面这些链接供大家学习参考:
深度增强学习之Policy Gradient方法1
Policy gradient(策略梯度详解)

一、Policy Gradient算法

在这里插入图片描述

二、Policy Gradient算法新理解

1、与Q-learning,Sarsa,DQN的区别

(1)Q-learning,Sarsa,DQN:这些输出是状态动作的值,根据值的大小选择适当的动作。
policy gradient :输出直接是动作或者每个动作的概率,根据概率选择适当的动作。

(2)一个是value based,一个是policy based。

(3)Q-learning,Sarsa,DQN:有误差,减少loss,进行反向传播。
Policy Gradient:没有误差,根据奖励结果提高奖励大的动作的概率,降低奖励小的动作的概率。

(4)Q-learning,Sarsa,DQN:适用于离散动作
Policy Gradient:适用于连续动作

(5)Q-learning,Sarsa,DQN:单步更新,从一个状态,执行一个动作,到达下一个状态并获得奖励之后就进行更新。
Policy Gradient:回合更新,当一个episode执行完之后,获得总奖励,得到梯度,最后再进行参数更新。

2、理解

Policy Gradient算法的思想是先将策略表示成一个连续函数,然后用连续函数的优化方法去寻找最优的策略。最常用的是优化方法是梯度上升法(与最小化loss的梯度下降相对),这样,得先找出梯度优化的目标函数,有以下三种情况:
(1)最简单的优化目标就是初始状态收获的期望
(2)但是有的问题是没有明确的初始状态的,那么我们的优化目标可以定义平均价值
(3)或者定义为每一时间步的平均奖励

无论采用哪一种情况来表示优化目标,最终对参数求导的梯度都结果都是一样的可以表示为:
∇𝜃𝐽(𝜃)=𝔼𝜋𝜃[∇𝜃𝑙𝑜𝑔𝜋𝜃(𝑠,𝑎)𝑄𝜋(𝑠,𝑎)]
具体证明步骤可以参考策略梯度的论文附录1里面,有详细的证明过程。

Policy Gradient不通过误差反向传播,它通过观测信息选出一个行为直接进行反向传播,出人意料的是他并没有误差,而是利用reward奖励直接对选择行为的可能性进行增强和减弱,好的行为会被增加下一次被选中的概率,不好的行为会被减弱下次被选中的概率。

总的来说,可以这样理解Policy Gradient算法:根据当前policy参数采样得到N个Trajectory,计算一次期望reward,然后梯度上升的方法更新policy参数,用更新后的policy再进行下一轮采样,如此往复直到收敛,得到期望reward最大的policy。最终该policy(神经网络表示)就学会了根据游戏画面做合适的action,最终赢得游戏。

梯度上升 法方法更新policy参数:
在这里插入图片描述

3、Policy Gradient算法优缺点

优点:

  • 连续的动作空间(或者高维空间)中更加高效;
  • 可以实现随机化的策略;
  • 某种情况下,价值函数可能比较难以计算,而策略函数较容易。

缺点:

  • 通常收敛到局部最优而非全局最优;
  • 评估一个策略通常低效(这个过程可能慢,但是具有更高的可变性,其中也会出现很多并不有效的尝试,而且方差高)。

三、tips

在这里插入图片描述

这里列举了使用policy gradient算法的一个小tips,使用tips是让我们慢慢发现我们现在正在学的这个算法还要哪些不足,还可以怎么优化,如何去更改,逐步锻炼我们的思考能力,其实还有其他tips,想了解的同学可以看李宏毅老师的视频:
李宏毅深度强化学习(国语)课程(2018)

四、总结

这次策略梯度算法看了好长时间,莫烦Python的代码又看了大概三遍,才把代码完全看明白。建议在学习强化学习算法的时候要看,就一次性学明白,再进行下一个算法,不建议看一遍什么都看不懂,觉得好难就放弃了,这样到最后还是什么也没有学到。强化学习的小伙伴们加油哦!

参考链接:

【强化学习】Policy Gradient算法详解
强化学习(十三) 策略梯度(Policy Gradient)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值