当前位置:   article > 正文

深度强化学习-----actor-critic 方法_actor网络和critic网络

actor网络和critic网络

actor-critic

actor是策略网络用来指导智能体去运动,可以看作运动员。critic是价值网络用来给动作打分可以看作裁判。

搭建神经网络

超级玛丽为例搭建两个网络:

价值网络有两个输入:状态s、动作a。分别使用卷积层和全连接层从输入中提取特征,得到两个特征向量,将两个特征向量拼接成一个更高的特征向量,使用一个全连接层输出一个实数,这个实数就是裁判给运动员的分数。这个分数说明处在状态s下采用动作a 是好还是坏。价值网络和策略网络可以共享卷积层的参数,也可以和策略网络独立,各自有各自的参数。同时训练策略和价值网络就被称为actor-critic方法

训练神经网络

需要学习两个网络,学习策略网络π是为了让运动员得到更高的平均分,也就是V函数的值更大。为了学习策略网络π我们需要价值网络q作为裁判,给运动员的表现打分,学习价值网络q是为了让裁判打分更加的精准,通过学习两个网络,运动员动得分越来越高,裁判打分越来越准确。

对两个网络做一次更新如下步骤:

(1)观察当前状态st

(2)将st作为输入用策略网络π来计算概率分布,随机抽样得到动作at

(3)智能体执行动作at,环境更新状态为st+1,获得奖励rt

(4)使用TD算法更新价值网络的参数W

(5)使用策略梯度算法更新策略网络的参数

更新价值网络q使用TD算法

  1. 使用价值网络分别给at和at+1打分,这里的动作是策略网络π随机抽样得到的。

  1. 计算TD target

  1. 损失函数

  1. 使用梯度下降来更新参数使损失变小

使用策略梯度算法来更新策略网络π

  1. 定义g(a,θ)

  1. 策略梯度=对函数g求期望

总结

为了让运动员做的动作越来越好,请裁判来帮忙。

运动员做出一个动作,裁判根据状态s和动作a打一个分数记为q。裁判将分数告诉运动员,这样运动员就有办法改进。

这位运动员要根据裁判打分q来改进自己技术,这里的技术就是神经网络中的参数。它通过状态、动作、打分q来近似计算出梯度,根据梯度上升更新参数。

最开始价值网络是随机初始化的,意味着裁判什么也不懂打分全靠瞎猜,所以要改进裁判,让其打分越来越准。裁判要根据奖励r来提高打分水平。

总结算法

  1. 观测状态st,使用策略网络计算概率分布,使用随机抽样得到动作at

  1. Agent执行at;环境会更新新的状态st+1和奖励rt

  1. 将新的状态作为输入用策略网络计算出新的概率,随机抽样得到

(这个动作agent不会做)

  1. 计算两次价值网络的输出qt和qt+1

  1. 计算TD error

  1. 对价值网络求导

  1. 使用TD算法来更新价值网络

  1. 对策略网络π求导

  1. 使用梯度上升来更新策略网络

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/552058
推荐阅读
相关标签
  

闽ICP备14008679号