02 强化学习——策略梯度法(PG)(连续动作)

一、PG回顾

1、对于离散动作,策略搜索使用神经网络来参数化随机策略中的动作概率,网络的输入是智能体的当前状态,网络输出为当前所有动作的概率,该网络是一种分类网络。网络训练使用数据为一个episode数据(s,a,r). 参考https://blog.csdn.net/weixin_40493501/article/details/110384894

2、对于连续性动作来说,一般使用随机高斯策略,网络的输入是智能体当前状态,网络的输出的高斯策略的均值和标准差,网络是一个拟合网络。

无论是连续动作还是离散动作,在使用PG时,必须先弄清下面公式【主要推导上一个文章已给出】,离散动作和连续动作最大的不同就在于p(a|s,\theta )

   在离散动作的网络设计中,输入是状态,输出可以看做是每个动作的概率,与动作标签进行对比,尽量使动作概率的输出接近标签。

   在连续动作中,将p(a|s,\theta )看成是动作的分布,例如高斯分布

p(a|s) \sim \frac{1}{\sqrt{2\pi }}exp^{-\frac{(a-\mu)^{2}}{2\delta ^{2}}}

二、连续动作PG算法网络

输入层为状态,连续动作空间的输出层不再是动作,二是动作描述的一种分布参数,利用输出的参数可以得到动作的分布,可以根据分布来选择动作。

【需要补充具体的计算过程】

 

三、代码实现

import tensorflow as tf
import numpy as np
import gym
import matplotlib.pyplot as plt
RENDER = False

'''
连续动作
使用的是高斯策略,用神经网络参数化高斯分布的均值和方差

状态空间为 2
动作空间为 1   其取值范围在[-2,2]之间
注意其误差的构建


'''

#利用当前策略进行采样,产生数据
class Sample():
    def __init__(self,env, policy_net):
        s
  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值