【强化学习】Policy Gradient原理

1.Policy Gradient和DQN系列强化算法最大的区别在于:
DQN系列基于Value,也就是说执行完所有的动作并保存所得到的价值,根据这些价值计算出最优价值函数,并以此选择动作,最终获得一个特定的策略。
Policy Gradient基于策略来选择动作,Value Based方法中将动作价值函数进行近似,引入了一个动作价值函数q^,状态s和动作a为输入,价值函数输出,得到近似的动作价值。
PG中采用类似的思路,将策略表示成一个连续的函数之后,使用连续函数的优化方法寻找最优策略。

2.Policy Gradient要想得到最优策略需要经过这么几个步骤:
1.得有一个连续的函数,有了连续的函数才能使用连续 函数的优化方法寻找最优策略。我们类比DQN中的方法,将策略Π表示为一个连续的函数(这里只是把她表示出来,具体是需要详细的设计的):
在这里插入图片描述

2.找到一个可以优化的函数目标。最简单的优化目标是初始状态收获的期望
在这里插入图片描述

但有的问题没有明确的初始状态,这时可以将优化目标定义为平均价值
在这里插入图片描述

或者每一步的平均奖励
在这里插入图片描述

得到这个目标函数之后,我们要对他求一个梯度,为啥要求梯度呢,特意去翻了翻高数知识,梯度是指方向导数的最大值,梯度向量的方向即为函数值增长最快的方向,所以。有了梯度之后我们就可以随时找到函数值变化最大的方向,就可以实时的更新策略函数的参数从而找到最优策略了。
在这里插入图片描述

其中,我们把在这里插入图片描述
这块称为分值函数

这大概就是PG的大概思路,所以我们接下来只要设计一个合适的策略函数,前面的就通了。

关于设计合适的策略函数,最常用的策略函数就是softmax策略函数了,它主要应用于离散空间,使用描述状态和行为的特征 ϕ(s,a)和参数
θ的线性组合来权衡一个行为发生的几率
在这里插入图片描述

策略函数表示出来了!接下来就按照前面的流程,求导得对应的分值函数:
在这里插入图片描述

好了我们现在想要的东西都得到了,接下来我们设计策略梯度算法,给它把数学符号和公式想办法变成代码就完工了!
下面这个就是一种最简单的策略梯度算法:
在这里插入图片描述

3.Softmax是什么?
https://blog.csdn.net/bitcarmanlee/article/details/82320853?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161853644116780366579767%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161853644116780366579767&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-82320853.pc_search_result_no_baidu_js&utm_term=softmax
如果将max看成一个分类问题,就是非黑即白(两个变量a,b,如果a>b,则max为a,fan’zhi),最后的输出是一个确定的变量。更多的时候,我们希望输出的是取到某个分类的概率,或者说,我们希望分值大的那一项被经常取到,而分值较小的那一项也有一定的概率偶尔被取到,所以我们就应用到了soft的概念,即最后的输出是每个分类被取到的概率。
在这里插入图片描述

4.交叉熵损失函数
https://blog.csdn.net/bitcarmanlee/article/details/105619286
图片参考:
刘建平Pinard
https://www.cnblogs.com/pinard/p/10137696.html

下一篇是我的PG代码注释版本

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值