【RL从入门到放弃】【十五】

1、基于策略搜索的RL

之前介绍的都是基于值函数的RL,通过神经网络来毕竟值函数,然后通过greedy策略或者贪婪策略去选择action,基于值函数的RL存在一个缺陷,那就是动作空间必须是有限的且是离散的,当动作空间是连续的或者无穷大时便无法处理。此时基于策略搜索的RL就开始起到作用了

实际上觉得上面这个分类有点怪怪的

在不同的情形下,累积回报的期望是否最大的衡量方式是不同的

分类

其中应该还有逆强化学习,但是这个基本上没有被划分进去,而且讲解的也都是理论知识。

 

2、策略梯度

策略梯度的推导可以从似然率和重要性采样的角度来推导

2.1似然率

存疑:

最后一步的推理感觉很奇怪:

前面那个概率难道就省去了吗?为什么变成这个样子了呢?

为什么可以使用经验平均来获取呢?

2.2重要性采样

这里的第一个问题是:

这里是如何实现的呢?

第二个问题这里是如何推导出来的:

似然率策略梯度

为什么轨迹的似然率可以写成上面这个样子呢?

为什么上面这里会多上一个求和的操作?

证明:

除了上⾯介绍的增加基线的⽅法外,修改回报函数也可以进⼀步减⼩⽅差。

为了使方差最小,可以利用前面的方法求解相应的基线b

3、策略梯度实例

还是不是很清楚这个地方到底是怎么来的

 

        with tf.name_scope('loss'):
            # to maximize total reward (log_p * R) is to minimize -(log_p * R), and the tf only have minimize(loss)
            #第二层网络传入的值
            neg_log_prob = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=all_act, labels=self.tf_acts)   # this is negative log of chosen action
            # or in this way:
            # neg_log_prob = tf.reduce_sum(-tf.log(self.all_act_prob)*tf.one_hot(self.tf_acts, self.n_actions), axis=1)
            #计算loss值
            loss = tf.reduce_mean(neg_log_prob * self.tf_vt)  # reward guided loss

        with tf.name_scope('train'):
            self.train_op = tf.train.AdamOptimizer(self.lr).minimize(loss)

  基于回合进行更新的,就是一次回合才会更新一次。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值