连续动作空间与DDPG

连续动作空间与DDPG

小车速度,角度,电压的电流量值这些是连续值,对于连续动作的动作控制空间,之前所介绍的Q-learning和 Sarsa、DQN等算法,这里是没有办法处理的。那怎么去输出连续的动作呢?这时候,万能的神经网络又出现了。
在这里插入图片描述

在离散的动作场景下,如果需要输出上、停止、下,有几个动作,神经网络就输出几个概率值。在随机性策略情况下,对于某一个s(state),采取的某一个action的概率并不是百分之百。输出的将会是其中的一个概率的动作。
在连续的动作场景下。比如要输出机器人胳膊弯曲的角度,就输出一个具体的浮点数。在确定性策略情况下,没有概率的影响。在神经网络的参数固定下来的情况下,对于输入的同一个state,必然只会输出同样的action。
在这里插入图片描述
离散动作概率就是再加一层softmax层,确保输出的是动作概率,而且最后加起来和为一。
要输出连续的动作,一般在输出层加一层tanh,使得输出限制在【-1,1】之间,然后根据需要进行缩放后,再进行输出。
在这里插入图片描述
在连续控制领域,比较经典的强化学习算法就是DDPG。
在这里插入图片描述
DDPG在DQN的基础上,加了一个策略网络,用来直接输出action值,所以DDPG需要一边学习Q网络,一边学习策略网络,Q网络的参数用w表示,策略网络的参数用θ来表示,这种结构成为Actor——Critic结构。
在这里插入图片描述

策略网络扮演的是Actor角色,负责对外展示输出舞蹈动作,Q网络是评论家,会在每一step都对Actor输出的动作进行一个评估打分,估计Actor这一次的动作,未来有多少收益,即去估计Actor的action的Q值大概是多少。
那么Actor就需要根据舞台目前的状态来做出一个action,而评论家就需要根据舞台现在的状态和演员输出的action值,对Actor的表现action打一个分数Q。
Actor要做的就是,根据评委的打分来调整自己的策略,即调整action的神经网络的参数θ,争取下次做的更好,而Critic要做的是要根据观众即环境的反馈reward来调整自己的神经网络的w参数,目标是要尽可能让每一场表演都获得观众的掌声和欢呼声,即最大化未来的收益。
刚开始训练时,两个网络的参数都是随机的,Critic是随机打分的,Actor也是乱跳。但因为有reward,所以Critic的评分会越来越准确,从而带着Actor的表现也会越来越好。
既然Actor是一个神经网络,是希望训练好的的策略网络,自然需要计算梯度来更新优化参数θ,简单地说,希望调整Actor的θ参数来使评委打分尽可能的高(注意,Actor不关注观众,只关注评委)。
在这里插入图片描述

最后要求的是Q值最高的对应的那个action,所以要优化策略网络的梯度,就是要去最大化Q值,使Loss=-Q,写代码时要做的就是要把Loss函数扔到优化器里面,最小化Loss,即最大化Q。
优化Q网络的方法同DQN一样,即用真实的reward和下一步的Q来拟合未来的收益Q_target,让Q网络的输出来逼近Q_target,所以构造的Loss就是求Q估计和Q_target这两个值的均方差,然后把Loss函数扔到优化器里面,来最小化Loss即可。
在这里插入图片描述

Q网络的优化存在一个和DQN一样的问题,即Q_target是不稳定的。
为了稳定Q_target,DDPG给Q网络和策略网络都搭建了target network,专门用来稳定Q_target。
训练用到的是四个数据是:s,a,r,s’,同DQN。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值